From 3185942a5234e26ab13fa02f9c51d340cec514f8 Mon Sep 17 00:00:00 2001 From: Jari Aalto Date: Mon, 12 Jan 2009 13:36:28 +0000 Subject: [PATCH] Imported from ../bash-4.0-rc1.tar.gz. --- AUTHORS | 3 + CHANGES | 624 + COMPAT | 45 +- COPYING | 923 +- CWRU/audit-patch | 339 + CWRU/changelog | 18306 ++++++----------- CWRU/misc/bison | 22 +- CWRU/misc/errlist.c | 24 +- CWRU/misc/hpux10-dlfcn.h | 24 +- CWRU/misc/open-files.c | 24 +- CWRU/misc/sigs.c | 24 +- CWRU/misc/sigstat.c | 24 +- INSTALL | 23 +- MANIFEST | 155 +- Makefile.in | 90 +- NEWS | 198 + NOTES | 10 + POSIX | 5 +- README | 13 +- aclocal.m4 | 51 +- alias.c | 24 +- alias.h | 22 +- array.c | 181 +- array.h | 30 +- arrayfunc.c | 402 +- arrayfunc.h | 28 +- assoc.c | 518 + assoc.h | 61 + bashansi.h | 24 +- bashhist.c | 83 +- bashhist.h | 27 +- bashintl.h | 28 +- bashjmp.h | 22 +- bashline.c | 568 +- bashline.h | 26 +- bashtypes.h | 24 +- bracecomp.c | 47 +- braces.c | 106 +- builtins.h | 31 +- builtins/Makefile.in | 54 +- builtins/alias.def | 50 +- builtins/bashgetopt.c | 24 +- builtins/bashgetopt.h | 26 +- builtins/bind.def | 74 +- builtins/break.def | 49 +- builtins/builtin.def | 35 +- builtins/caller.def | 54 +- builtins/cd.def | 121 +- builtins/colon.def | 36 +- builtins/command.def | 43 +- builtins/common.c | 138 +- builtins/common.h | 30 +- builtins/complete.def | 305 +- builtins/declare.def | 201 +- builtins/echo.def | 90 +- builtins/enable.def | 61 +- builtins/eval.def | 31 +- builtins/evalfile.c | 51 +- builtins/evalstring.c | 228 +- builtins/exec.def | 49 +- builtins/exit.def | 74 +- builtins/fc.def | 86 +- builtins/fg_bg.def | 47 +- builtins/getopt.c | 21 +- builtins/getopt.h | 21 +- builtins/getopts.def | 30 +- builtins/hash.def | 56 +- builtins/help.def | 262 +- builtins/history.def | 135 +- builtins/inlib.def | 28 +- builtins/jobs.def | 70 +- builtins/kill.def | 48 +- builtins/let.def | 39 +- builtins/mapfile.def | 317 + builtins/mkbuiltins.c | 72 +- builtins/printf.def | 156 +- builtins/psize.c | 20 +- builtins/pushd.def | 214 +- builtins/read.def | 322 +- builtins/reserved.def | 136 +- builtins/return.def | 38 +- builtins/set.def | 202 +- builtins/setattr.def | 151 +- builtins/shift.def | 33 +- builtins/shopt.def | 97 +- builtins/source.def | 62 +- builtins/suspend.def | 36 +- builtins/test.def | 114 +- builtins/times.def | 34 +- builtins/trap.def | 64 +- builtins/type.def | 82 +- builtins/ulimit.def | 132 +- builtins/umask.def | 47 +- builtins/wait.def | 56 +- command.h | 60 +- config-bot.h | 24 +- config-top.h | 49 +- config.h.in | 49 +- configure | 24922 +++++++++++++---------- configure.in | 88 +- conftypes.h | 22 +- copy_cmd.c | 42 +- dispose_cmd.c | 31 +- dispose_cmd.h | 24 +- doc/FAQ | 47 +- doc/Makefile.in | 43 +- doc/bash.1 | 836 +- doc/bashbug.1 | 29 +- doc/bashref.info | 2527 ++- doc/bashref.texi | 1585 +- doc/builtins.1 | 14 +- doc/fdl.texi | 21 +- doc/rbash.1 | 2 +- doc/version.texi | 12 +- error.c | 44 +- error.h | 27 +- eval.c | 32 +- examples/INDEX.html | 16 +- examples/INDEX.txt | 6 +- examples/bashdb/PERMISSION | 27 - examples/bashdb/README | 3 - examples/bashdb/bashdb | 581 - examples/complete/bash_completion | 9401 +++++++++ examples/loadables/Makefile.in | 38 +- examples/loadables/basename.c | 3 + examples/loadables/cat.c | 20 + examples/loadables/cut.c | 3 + examples/loadables/dirname.c | 21 + examples/loadables/finfo.c | 6 + examples/loadables/getconf.c | 2 + examples/loadables/head.c | 21 + examples/loadables/hello.c | 5 +- examples/loadables/id.c | 22 +- examples/loadables/ln.c | 21 + examples/loadables/logname.c | 23 +- examples/loadables/mkdir.c | 21 + examples/loadables/mypid.c | 74 + examples/loadables/necho.c | 20 + examples/loadables/pathchk.c | 21 + examples/loadables/perl/Makefile.in | 34 +- examples/loadables/print.c | 22 + examples/loadables/printenv.c | 23 +- examples/loadables/push.c | 21 + examples/loadables/realpath.c | 25 +- examples/loadables/rmdir.c | 21 + examples/loadables/sleep.c | 95 +- examples/loadables/strftime.c | 20 + examples/loadables/sync.c | 22 +- examples/loadables/tee.c | 21 + examples/loadables/template.c | 3 + examples/loadables/truefalse.c | 25 + examples/loadables/tty.c | 21 + examples/loadables/uname.c | 23 +- examples/loadables/unlink.c | 21 + examples/loadables/whoami.c | 23 +- examples/obashdb/README | 15 +- examples/obashdb/bashdb | 596 +- examples/{bashdb => obashdb}/bashdb.el | 0 examples/obashdb/bashdb.fns | 237 - examples/obashdb/bashdb.pre | 37 - examples/scripts/timeout2 | 29 + examples/scripts/timeout3 | 91 + execute_cmd.c | 743 +- execute_cmd.h | 49 +- expr.c | 35 +- externs.h | 72 +- findcmd.c | 23 +- findcmd.h | 24 +- flags.c | 31 +- flags.h | 26 +- general.c | 153 +- general.h | 31 +- hashcmd.c | 24 +- hashcmd.h | 26 +- hashlib.c | 26 +- hashlib.h | 24 +- include/ansi_stdlib.h | 26 +- include/chartypes.h | 26 +- include/filecntl.h | 26 +- include/gettext.h | 25 +- include/maxpath.h | 26 +- include/memalloc.h | 26 +- include/ocache.h | 26 +- include/posixdir.h | 20 +- include/posixjmp.h | 20 +- include/posixstat.h | 20 +- include/posixtime.h | 20 +- include/posixwait.h | 26 +- include/shmbutil.h | 30 +- include/shtty.h | 33 +- include/stdc.h | 20 +- include/systimes.h | 26 +- include/typemax.h | 26 +- include/unionwait.h | 26 +- input.c | 45 +- input.h | 25 +- jobs.c | 244 +- jobs.h | 35 +- lib/glob/Makefile.in | 23 +- lib/glob/collsyms.h | 22 +- lib/glob/glob.c | 240 +- lib/glob/glob.h | 27 +- lib/glob/glob_loop.c | 26 +- lib/glob/sm_loop.c | 27 +- lib/glob/smatch.c | 26 +- lib/glob/strmatch.c | 28 +- lib/glob/strmatch.h | 32 +- lib/glob/xmbsrtowcs.c | 71 +- lib/intl/Makefile.in | 41 +- lib/intl/bindtextdom.c | 28 +- lib/intl/config.charset | 20 +- lib/intl/dcgettext.c | 28 +- lib/intl/dcigettext.c | 28 +- lib/intl/dcngettext.c | 28 +- lib/intl/dgettext.c | 28 +- lib/intl/dngettext.c | 28 +- lib/intl/eval-plural.h | 28 +- lib/intl/explodename.c | 27 +- lib/intl/finddomain.c | 28 +- lib/intl/gettext.c | 28 +- lib/intl/gettextP.h | 28 +- lib/intl/gmo.h | 28 +- lib/intl/hash-string.h | 28 +- lib/intl/intl-compat.c | 29 +- lib/intl/l10nflist.c | 27 +- lib/intl/libgnuintl.h.in | 28 +- lib/intl/loadinfo.h | 27 +- lib/intl/loadmsgcat.c | 28 +- lib/intl/localcharset.c | 27 +- lib/intl/localcharset.h | 29 +- lib/intl/locale.alias | 28 +- lib/intl/localealias.c | 28 +- lib/intl/localename.c | 28 +- lib/intl/log.c | 28 +- lib/intl/ngettext.c | 28 +- lib/intl/os2compat.c | 28 +- lib/intl/os2compat.h | 30 +- lib/intl/osdep.c | 28 +- lib/intl/plural-exp.c | 28 +- lib/intl/plural-exp.h | 28 +- lib/intl/plural.c | 1431 +- lib/intl/plural.y | 28 +- lib/intl/ref-add.sin | 18 +- lib/intl/ref-del.sin | 18 +- lib/intl/relocatable.c | 29 +- lib/intl/relocatable.h | 28 +- lib/intl/textdomain.c | 28 +- lib/malloc/Makefile.in | 24 +- lib/malloc/getpagesize.h | 24 +- lib/malloc/imalloc.h | 26 +- lib/malloc/malloc.c | 32 +- lib/malloc/mstats.h | 24 +- lib/malloc/shmalloc.h | 28 +- lib/malloc/stats.c | 26 +- lib/malloc/stub.c | 22 +- lib/malloc/table.c | 27 +- lib/malloc/table.h | 28 +- lib/malloc/trace.c | 27 +- lib/malloc/watch.c | 39 +- lib/malloc/watch.h | 28 +- lib/malloc/xmalloc.c | 20 +- lib/readline/COPYING | 913 +- lib/readline/Makefile.in | 25 +- lib/readline/ansi_stdlib.h | 26 +- lib/readline/bind.c | 154 +- lib/readline/callback.c | 37 +- lib/readline/chardefs.h | 25 +- lib/readline/compat.c | 26 +- lib/readline/complete.c | 309 +- lib/readline/display.c | 276 +- lib/readline/doc/Makefile | 25 +- lib/readline/doc/fdl.texi | 21 +- lib/readline/doc/history.texi | 25 +- lib/readline/doc/hstech.texi | 2 +- lib/readline/doc/hsuser.texi | 17 +- lib/readline/doc/rlman.texi | 24 +- lib/readline/doc/rltech.texi | 178 +- lib/readline/doc/rluser.texi | 113 +- lib/readline/doc/rluserman.texi | 25 +- lib/readline/doc/version.texi | 12 +- lib/readline/emacs_keymap.c | 25 +- lib/readline/examples/Inputrc | 24 +- lib/readline/examples/Makefile | 26 +- lib/readline/examples/fileman.c | 29 +- lib/readline/examples/histexamp.c | 25 +- lib/readline/examples/manexamp.c | 23 +- lib/readline/examples/rl.c | 23 +- lib/readline/examples/rlcat.c | 23 +- lib/readline/examples/rltest.c | 23 +- lib/readline/funmap.c | 28 +- lib/readline/histexpand.c | 51 +- lib/readline/histfile.c | 31 +- lib/readline/histlib.h | 30 +- lib/readline/history.c | 31 +- lib/readline/history.h | 30 +- lib/readline/histsearch.c | 29 +- lib/readline/input.c | 28 +- lib/readline/isearch.c | 41 +- lib/readline/keymaps.c | 27 +- lib/readline/keymaps.h | 23 +- lib/readline/kill.c | 30 +- lib/readline/macro.c | 30 +- lib/readline/mbutil.c | 37 +- lib/readline/misc.c | 78 +- lib/readline/nls.c | 26 +- lib/readline/parens.c | 28 +- lib/readline/posixdir.h | 20 +- lib/readline/posixjmp.h | 20 +- lib/readline/posixstat.h | 20 +- lib/readline/readline.c | 63 +- lib/readline/readline.h | 51 +- lib/readline/rlconf.h | 32 +- lib/readline/rldefs.h | 32 +- lib/readline/rlmbutil.h | 25 +- lib/readline/rlprivate.h | 75 +- lib/readline/rlshell.h | 25 +- lib/readline/rlstdc.h | 28 +- lib/readline/rltty.c | 149 +- lib/readline/rltty.h | 28 +- lib/readline/rltypedefs.h | 25 +- lib/readline/rlwinsize.h | 33 +- lib/readline/savestring.c | 26 +- lib/readline/search.c | 33 +- lib/readline/shell.c | 26 +- lib/readline/signals.c | 147 +- lib/readline/tcap.h | 32 +- lib/readline/terminal.c | 38 +- lib/readline/text.c | 38 +- lib/readline/tilde.c | 34 +- lib/readline/tilde.h | 29 +- lib/readline/undo.c | 34 +- lib/readline/util.c | 182 +- lib/readline/vi_keymap.c | 27 +- lib/readline/vi_mode.c | 83 +- lib/readline/xmalloc.c | 27 +- lib/readline/xmalloc.h | 25 +- lib/sh/Makefile.in | 80 +- lib/sh/casemod.c | 206 + lib/sh/clktck.c | 26 +- lib/sh/clock.c | 26 +- lib/sh/eaccess.c | 26 +- lib/sh/fdprintf.c | 70 + lib/sh/fmtullong.c | 28 +- lib/sh/fmtulong.c | 26 +- lib/sh/fmtumax.c | 28 +- lib/sh/fpurge.c | 123 + lib/sh/getcwd.c | 61 +- lib/sh/getenv.c | 26 +- lib/sh/inet_aton.c | 2 + lib/sh/input_avail.c | 105 + lib/sh/itos.c | 22 +- lib/sh/mailstat.c | 26 +- lib/sh/makepath.c | 38 +- lib/sh/mbscmp.c | 62 + lib/sh/memset.c | 19 +- lib/sh/mktime.c | 32 +- lib/sh/netconn.c | 19 +- lib/sh/netopen.c | 20 +- lib/sh/oslib.c | 26 +- lib/sh/pathcanon.c | 24 +- lib/sh/pathphys.c | 24 +- lib/sh/rename.c | 20 +- lib/sh/setlinebuf.c | 26 +- lib/sh/shmatch.c | 30 +- lib/sh/shquote.c | 28 +- lib/sh/shtty.c | 108 +- lib/sh/snprintf.c | 32 +- lib/sh/spell.c | 48 +- lib/sh/strcasecmp.c | 26 +- lib/sh/strerror.c | 26 +- lib/sh/strftime.c | 6 +- lib/sh/strindex.c | 25 +- lib/sh/stringlist.c | 26 +- lib/sh/stringvec.c | 26 +- lib/sh/strnlen.c | 18 +- lib/sh/strpbrk.c | 19 +- lib/sh/strstr.c | 27 +- lib/sh/strtod.c | 16 +- lib/sh/strtoimax.c | 19 +- lib/sh/strtol.c | 29 +- lib/sh/strtoll.c | 26 +- lib/sh/strtoul.c | 26 +- lib/sh/strtoull.c | 26 +- lib/sh/strtoumax.c | 20 +- lib/sh/strtrans.c | 28 +- lib/sh/times.c | 26 +- lib/sh/timeval.c | 26 +- lib/sh/tmpfile.c | 23 +- lib/sh/uconvert.c | 116 + lib/sh/ufuncs.c | 104 + lib/sh/vprint.c | 24 +- lib/sh/wcsdup.c | 24 +- lib/sh/winsize.c | 24 +- lib/sh/xstrchr.c | 26 +- lib/sh/zcatfd.c | 26 +- lib/sh/zgetline.c | 115 + lib/sh/zmapfd.c | 90 + lib/sh/zread.c | 28 +- lib/sh/zwrite.c | 28 +- lib/termcap/Makefile.in | 23 +- lib/termcap/grot/COPYING | 347 - lib/termcap/grot/ChangeLog | 137 - lib/termcap/grot/INSTALL | 176 - lib/termcap/grot/Makefile.in | 138 - lib/termcap/grot/NEWS | 20 - lib/termcap/grot/README | 34 - lib/termcap/grot/configure | 998 - lib/termcap/grot/configure.in | 23 - lib/termcap/grot/termcap.info | 80 - lib/termcap/grot/termcap.info-1 | 1114 - lib/termcap/grot/termcap.info-2 | 974 - lib/termcap/grot/termcap.info-3 | 1480 -- lib/termcap/grot/termcap.info-4 | 220 - lib/termcap/grot/termcap.texi | 3617 ---- lib/termcap/grot/texinfo.tex | 4422 ---- lib/termcap/ltcap.h | 17 +- lib/termcap/termcap.c | 35 +- lib/termcap/termcap.h | 17 +- lib/termcap/tparam.c | 35 +- lib/termcap/version.c | 26 +- lib/tilde/Makefile.in | 23 +- lib/tilde/shell.c | 21 +- lib/tilde/tilde.c | 34 +- lib/tilde/tilde.h | 29 +- list.c | 25 +- locale.c | 67 +- mailcheck.c | 95 +- mailcheck.h | 23 +- make_cmd.c | 51 +- make_cmd.h | 27 +- mksyntax.c | 24 +- nojobs.c | 63 +- parse.y | 956 +- parser-built | 160 + parser.h | 45 +- patchlevel.h | 24 +- pathexp.c | 77 +- pathexp.h | 26 +- pathnames.h.in | 22 +- pcomplete.c | 103 +- pcomplete.h | 31 +- pcomplib.c | 24 +- po/._de.po | Bin 0 -> 4096 bytes po/._nl.po | Bin 0 -> 4096 bytes po/._sv.po | Bin 0 -> 4096 bytes po/LINGUAS | 2 +- po/Makefile.in.in | 5 +- po/POTFILES.in | 1 + po/README | 1 + po/af.gmo | Bin 0 -> 1231 bytes po/af.po | 4438 ++++ po/bash.pot | 3474 +++- po/bg.gmo | Bin 0 -> 36341 bytes po/bg.po | 5447 +++++ po/ca.gmo | Bin 0 -> 10101 bytes po/ca.po | 6336 ++++++ po/cs.gmo | Bin 0 -> 153701 bytes po/cs.po | 5957 ++++++ po/de.gmo | Bin 0 -> 35764 bytes po/de.po | 6485 ++++++ po/en@boldquot.gmo | Bin 118280 -> 154201 bytes po/en@boldquot.po | 5585 +++-- po/en@quot.gmo | Bin 116592 -> 152713 bytes po/en@quot.po | 5553 +++-- po/eo.gmo | Bin 0 -> 25421 bytes po/eo.po | 5234 +++++ po/es.gmo | Bin 0 -> 31030 bytes po/es.po | 7590 +++++++ po/et.gmo | Bin 0 -> 12257 bytes po/et.po | 3804 ++++ po/fr.gmo | Bin 0 -> 27590 bytes po/fr.po | 5419 +++++ po/hu.gmo | Bin 0 -> 9591 bytes po/hu.po | 6154 ++++++ po/id.gmo | Bin 0 -> 152559 bytes po/id.po | 6114 ++++++ po/ja.gmo | Bin 0 -> 8183 bytes po/ja.po | 4058 ++++ po/lt.gmo | Bin 0 -> 24059 bytes po/lt.po | 4169 ++++ po/nl.gmo | Bin 0 -> 154123 bytes po/nl.po | 5283 +++++ po/pl.gmo | Bin 0 -> 26025 bytes po/pl.po | 5059 +++++ po/pt_BR.gmo | Bin 0 -> 9926 bytes po/pt_BR.po | 6154 ++++++ po/ro.gmo | Bin 0 -> 9699 bytes po/ro.po | 6262 ++++++ po/ru.gmo | Bin 10827 -> 9142 bytes po/ru.po | 3586 ++-- po/sk.gmo | Bin 0 -> 49408 bytes po/sk.po | 5216 +++++ po/sv.gmo | Bin 0 -> 149365 bytes po/sv.po | 5279 +++++ po/tr.gmo | Bin 0 -> 25573 bytes po/tr.po | 5364 +++++ po/vi.gmo | Bin 0 -> 164633 bytes po/vi.po | 5323 +++++ po/zh_TW.gmo | Bin 0 -> 5993 bytes po/zh_TW.po | 3805 ++++ print_cmd.c | 207 +- quit.h | 24 +- redir.c | 145 +- redir.h | 25 +- shell.c | 96 +- shell.h | 24 +- sig.c | 39 +- sig.h | 24 +- siglist.c | 112 +- siglist.h | 24 +- stringlib.c | 29 +- subst.c | 1050 +- subst.h | 64 +- support/Makefile.in | 28 +- support/bashbug.sh | 21 +- support/bashversion.c | 25 +- support/checkbashisms | 170 + support/config.guess | 818 +- support/config.rpath | 15 +- support/config.sub | 332 +- support/fixlinks | 22 +- support/missing | 27 +- support/mkclone | 21 +- support/mkconffiles | 21 +- support/mkdirs | 21 +- support/mksignames.c | 26 +- support/mkversion.sh | 26 +- support/printenv.c | 22 +- support/printenv.sh | 22 +- support/recho.c | 23 +- support/rlvers.sh | 22 +- support/shobj-conf | 87 +- support/signames.c | 26 +- support/texi2dvi | 22 +- support/texi2html | 25 +- support/xcase.c | 95 + support/xenix-link.sh | 22 +- support/zecho.c | 27 +- syntax.h | 24 +- test.c | 30 +- test.h | 24 +- tests/COPYRIGHT | 3 +- tests/arith.right | 67 +- tests/arith.tests | 6 + tests/array.right | 114 +- tests/array.tests | 37 +- tests/array5.sub | 34 + tests/array6.sub | 109 + tests/array7.sub | 14 + tests/array8.sub | 23 + tests/array9.sub | 27 + tests/assoc.right | 134 + tests/assoc.tests | 173 + tests/assoc1.sub | 16 + tests/assoc2.sub | 15 + tests/assoc3.sub | 15 + tests/assoc4.sub | 22 + tests/braces.right | 28 + tests/braces.tests | 36 + tests/builtins.right | 15 +- tests/builtins.tests | 3 + tests/builtins1.sub | 2 +- tests/case.right | 5 + tests/case.tests | 14 + tests/casemod.right | 35 + tests/casemod.tests | 72 + tests/comsub-eof.right | 7 + tests/comsub-eof.tests | 7 + tests/comsub-eof0.sub | 4 + tests/comsub-eof1.sub | 4 + tests/comsub-eof2.sub | 2 + tests/comsub-eof3.sub | 4 + tests/comsub-posix.right | 57 + tests/comsub-posix.tests | 204 + tests/comsub-posix1.sub | 3 + tests/comsub.right | 21 + tests/comsub.tests | 42 + tests/cond-regexp.sub | 42 + tests/cond.right | 24 + tests/cond.tests | 24 + tests/coproc.right | 13 + tests/coproc.tests | 45 + tests/dbg-support.right | 8 +- tests/dollar-at-star | 4 + tests/dollar-star3.sub | 18 + tests/dollar.right | 15 + tests/dstack.right | 4 +- tests/dstack.tests | 2 +- tests/errors.right | 15 +- tests/exec.right | 1 + tests/exec8.sub | 1 + tests/execscript | 2 + tests/exp.right | 17 + tests/{exp-tests => exp.tests} | 4 + tests/exp1.sub | 21 + tests/exp2.sub | 12 + tests/extglob.right | 1 + tests/extglob.tests | 7 +- tests/extglob1.sub | 2 +- tests/func.right | 2 +- tests/heredoc.right | 1 + tests/history.right | 35 +- tests/history.tests | 13 + tests/history1.sub | 13 + tests/intl.right | 3 + tests/intl.tests | 5 +- tests/intl1.sub | 11 + tests/mapfile.data | 17 + tests/mapfile.right | 131 + tests/mapfile.tests | 40 + tests/new-exp.right | 24 +- tests/new-exp.tests | 8 + tests/new-exp5.sub | 10 + tests/new-exp6.sub | 7 + tests/new-exp7.sub | 13 + tests/nquote5.right | 86 + tests/nquote5.tests | 63 + tests/printf.right | Bin 1307 -> 1510 bytes tests/printf.tests | 54 + tests/read.right | 15 +- tests/read.tests | 3 + tests/read2.sub | 14 +- tests/read6.sub | 10 + tests/redir.right | 45 +- tests/redir.tests | 67 +- tests/redir8.sub | 58 + tests/redir9.sub | 50 + tests/rsh.right | 2 +- tests/run-array | 2 + tests/run-assoc | 4 + tests/run-builtins | 4 + tests/run-case | 2 + tests/run-casemod | 2 + tests/run-comsub | 2 + tests/run-comsub-eof | 2 + tests/run-comsub-posix | 2 + tests/run-coproc | 4 + tests/run-exp-tests | 2 +- tests/run-invert | 2 +- tests/run-mapfile | 2 + tests/run-minimal | 2 +- tests/run-nquote4 | 2 +- tests/run-nquote5 | 2 + tests/set-e-test | 21 + tests/set-e.right | 7 + tests/shopt.right | 17 +- tests/source5.sub | 2 +- tests/source6.sub | 31 + tests/test.right | 1 + tests/test.tests | 3 + tests/trap.right | 2 - tests/trap.tests | 4 + tests/type.right | 15 + tests/type.tests | 9 + tests/type1.sub | 10 + trap.c | 62 +- trap.h | 25 +- unwind_prot.c | 34 +- unwind_prot.h | 25 +- variables.c | 563 +- variables.h | 44 +- version.c | 50 +- xmalloc.c | 25 +- xmalloc.h | 24 +- y.tab.c | 5455 +++-- y.tab.h | 194 +- 666 files changed, 191523 insertions(+), 57487 deletions(-) create mode 100644 CWRU/audit-patch create mode 100644 assoc.c create mode 100644 assoc.h create mode 100644 builtins/mapfile.def mode change 100755 => 100644 configure delete mode 100644 examples/bashdb/PERMISSION delete mode 100644 examples/bashdb/README delete mode 100755 examples/bashdb/bashdb create mode 100644 examples/complete/bash_completion create mode 100644 examples/loadables/mypid.c mode change 100644 => 100755 examples/obashdb/bashdb rename examples/{bashdb => obashdb}/bashdb.el (100%) delete mode 100644 examples/obashdb/bashdb.fns delete mode 100644 examples/obashdb/bashdb.pre create mode 100755 examples/scripts/timeout2 create mode 100644 examples/scripts/timeout3 mode change 100755 => 100644 lib/intl/config.charset mode change 100644 => 100755 lib/intl/ref-add.sin mode change 100644 => 100755 lib/intl/ref-del.sin create mode 100644 lib/sh/casemod.c create mode 100644 lib/sh/fdprintf.c create mode 100644 lib/sh/fpurge.c create mode 100644 lib/sh/input_avail.c create mode 100644 lib/sh/mbscmp.c create mode 100644 lib/sh/uconvert.c create mode 100644 lib/sh/ufuncs.c create mode 100644 lib/sh/zgetline.c create mode 100644 lib/sh/zmapfd.c delete mode 100644 lib/termcap/grot/COPYING delete mode 100644 lib/termcap/grot/ChangeLog delete mode 100644 lib/termcap/grot/INSTALL delete mode 100644 lib/termcap/grot/Makefile.in delete mode 100644 lib/termcap/grot/NEWS delete mode 100644 lib/termcap/grot/README delete mode 100755 lib/termcap/grot/configure delete mode 100644 lib/termcap/grot/configure.in delete mode 100644 lib/termcap/grot/termcap.info delete mode 100644 lib/termcap/grot/termcap.info-1 delete mode 100644 lib/termcap/grot/termcap.info-2 delete mode 100644 lib/termcap/grot/termcap.info-3 delete mode 100644 lib/termcap/grot/termcap.info-4 delete mode 100644 lib/termcap/grot/termcap.texi delete mode 100644 lib/termcap/grot/texinfo.tex create mode 100644 po/._de.po create mode 100644 po/._nl.po create mode 100644 po/._sv.po create mode 100644 po/README create mode 100644 po/af.gmo create mode 100644 po/af.po create mode 100644 po/bg.gmo create mode 100644 po/bg.po create mode 100644 po/ca.gmo create mode 100644 po/ca.po create mode 100644 po/cs.gmo create mode 100644 po/cs.po create mode 100644 po/de.gmo create mode 100644 po/de.po create mode 100644 po/eo.gmo create mode 100644 po/eo.po create mode 100644 po/es.gmo create mode 100644 po/es.po create mode 100644 po/et.gmo create mode 100644 po/et.po create mode 100644 po/fr.gmo create mode 100644 po/fr.po create mode 100644 po/hu.gmo create mode 100644 po/hu.po create mode 100644 po/id.gmo create mode 100644 po/id.po create mode 100644 po/ja.gmo create mode 100644 po/ja.po create mode 100644 po/lt.gmo create mode 100644 po/lt.po create mode 100644 po/nl.gmo create mode 100644 po/nl.po create mode 100644 po/pl.gmo create mode 100644 po/pl.po create mode 100644 po/pt_BR.gmo create mode 100644 po/pt_BR.po create mode 100644 po/ro.gmo create mode 100644 po/ro.po create mode 100644 po/sk.gmo create mode 100644 po/sk.po create mode 100644 po/sv.gmo create mode 100644 po/sv.po create mode 100644 po/tr.gmo create mode 100644 po/tr.po create mode 100644 po/vi.gmo create mode 100644 po/vi.po create mode 100644 po/zh_TW.gmo create mode 100644 po/zh_TW.po create mode 100755 support/checkbashisms mode change 100755 => 100644 support/config.guess mode change 100755 => 100644 support/config.sub create mode 100644 support/xcase.c create mode 100644 tests/array5.sub create mode 100644 tests/array6.sub create mode 100644 tests/array7.sub create mode 100644 tests/array8.sub create mode 100644 tests/array9.sub create mode 100644 tests/assoc.right create mode 100644 tests/assoc.tests create mode 100644 tests/assoc1.sub create mode 100644 tests/assoc2.sub create mode 100644 tests/assoc3.sub create mode 100644 tests/assoc4.sub create mode 100644 tests/case.right create mode 100644 tests/case.tests create mode 100644 tests/casemod.right create mode 100644 tests/casemod.tests create mode 100644 tests/comsub-eof.right create mode 100644 tests/comsub-eof.tests create mode 100644 tests/comsub-eof0.sub create mode 100644 tests/comsub-eof1.sub create mode 100644 tests/comsub-eof2.sub create mode 100644 tests/comsub-eof3.sub create mode 100644 tests/comsub-posix.right create mode 100644 tests/comsub-posix.tests create mode 100644 tests/comsub-posix1.sub create mode 100644 tests/comsub.right create mode 100644 tests/comsub.tests create mode 100644 tests/cond-regexp.sub create mode 100644 tests/coproc.right create mode 100644 tests/coproc.tests create mode 100644 tests/dollar-star3.sub create mode 100644 tests/exec8.sub rename tests/{exp-tests => exp.tests} (99%) create mode 100644 tests/exp1.sub create mode 100644 tests/exp2.sub create mode 100644 tests/history1.sub create mode 100644 tests/intl1.sub create mode 100644 tests/mapfile.data create mode 100644 tests/mapfile.right create mode 100644 tests/mapfile.tests create mode 100644 tests/new-exp7.sub create mode 100644 tests/nquote5.right create mode 100644 tests/nquote5.tests create mode 100644 tests/read6.sub create mode 100644 tests/redir8.sub create mode 100644 tests/redir9.sub create mode 100644 tests/run-assoc create mode 100644 tests/run-case create mode 100644 tests/run-casemod create mode 100644 tests/run-comsub create mode 100644 tests/run-comsub-eof create mode 100644 tests/run-comsub-posix create mode 100644 tests/run-coproc create mode 100644 tests/run-mapfile create mode 100644 tests/run-nquote5 create mode 100644 tests/source6.sub create mode 100644 tests/type1.sub diff --git a/AUTHORS b/AUTHORS index a44e906e4..a7fa8f2d6 100644 --- a/AUTHORS +++ b/AUTHORS @@ -125,6 +125,7 @@ builtins/let.def Chet Ramey, Brian Fox builtins/history.def Brian Fox, Chet Ramey builtins/jobs.def Brian Fox, Chet Ramey builtins/kill.def Brian Fox, Chet Ramey +builtins/mapfile.def Rocky Bernstein builtins/mkbuiltins.c Brian Fox, Chet Ramey builtins/pushd.def Brian Fox, Chet Ramey builtins/read.def Brian Fox, Chet Ramey @@ -456,3 +457,5 @@ lib/sh/zread.c Chet Ramey lib/sh/zwrite.c Chet Ramey tests/posix-ifs.sh Glenn Fowler + +support/checkbashisms Julian Gilbey, Debian Linux team diff --git a/CHANGES b/CHANGES index d8a64fbd8..62e867753 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,627 @@ +This document details the changes between this version, bash-4.0-rc1, +and the previous version, bash-4.0-beta2. + +1. Changes to Bash + +a. Fixed a bug that caused parsing errors when a $()-style command + substitution was follwed immediately by a quoted newline. + +b. Fixed a bug that caused extended shell globbing patterns beginning with + `*(' to not work when used with pattern substitution word expansions. + +------------------------------------------------------------------------------ +This document details the changes between this version, bash-4.0-beta2, +and the previous version, bash-4.0-beta. + +1. Changes to Bash + +a. Fixed a bug that caused failed word expansions to set $? but not + PIPESTATUS. + +b. Changed filename completion to quote the tilde in a filename with a + leading tilde that exists in the current directory. + +c. Fixed a bug that caused a file descriptor leak when performing + redirections attached to a compound command. + +d. Fixed a bug that caused expansions of $@ and $* to not exit the shell if + the -u option was enabled and there were no posititional parameters. + +e. Fixed a bug that resulted in bash not terminating immediately if a + terminating signal was received while performing output. + +f. Fixed a bug that caused the shell to crash after creating 256 process + substitutions during word completion. + +2. Changes to Readline + +a. Fixed a bug that caused redisplay errors when using prompts with invisible + characters and numeric arguments to a command in a multibyte locale. + +b. Fixed a bug that caused redisplay errors when using prompts with invisible + characters spanning more than two physical screen lines. + +------------------------------------------------------------------------------ +This document details the changes between this version, bash-4.0-beta, +and the previous version, bash-4.0-beta. + +1. Changes to Bash + +a. Fixed a typo that caused a variable to be used before initialization + while parsing Posix-style command substitutions. + +b. Fixed a bug that caused stray ^? when the expansion of a parameter used + as part of a pattern removal expansion is empty, but part of a non- + empty string. + +c. Fixed a bug that could cause strings not converted to numbers by strtol + to be treated as if the conversion had been successful. + +d. The `return' builtin now accepts no options and requires a `--' before + a negative return value, as Posix requires. + +e. Fixed a bug that caused local variables to be created with the empty + string for a value rather than no value. + +f. Changed behavior so the shell now acts as if it received an interrupt + when a pipeline is killed by SIGINT while executing a list. + +g. Fixed a bug that caused `declare var' and `typeset var' to initialize + `var' to the empty string. + +h. Changed `bind' builtin to print a warning but proceed if invoked when + line editing is not active. + +i. Fixed a bug that caused the shell to exit when the `errexit' option is + set and a command in a pipeline returns a non-zero exit status. + +j. Fixed a bug that caused the shell to not run the exit trap in a command + run with `bash -c' under some circumstances. + +k. Fixed a bug that caused parser errors to occasionally not set $? when + running commands with `eval'. + +l. Fixed a bug that caused stray control characters when evaluating compound + array assignments containing $'\x7f' escapes. + +m. Fixed a bug that caused redirections involving file descriptor 10 as the + target to behave incorrectly. + +n. Fixed a bug that could cause memory to be freed multiple times when + assigning to COMP_WORDBREAKS. + +o. Fixed a bug that could cause NULL pointer dereferences when COMP_WORDBREAKS + was unset. + +2. Changes to Readline + +3. New Features in Bash + +a. A value of 0 for the -t option to `read' now returns success if there is + input available to be read from the specified file descriptor. + +b. CDPATH and GLOBIGNORE are ignored when the shell is running in privileged + mode. + +c. New bindable readline functions shell-forward-word and shell-backward-word, + which move forward and backward words delimited by shell metacharacters + and honor shell quoting. + +d. New bindable readline functions shell-backward-kill-word and shell-kill-word + which kill words backward and forward, but use the same word boundaries + as shell-forward-word and shell-backward-word. + +4. New Features in Readline + +a. If the kernel supports it, readline displays special characters + corresponding to a keyboard-generated signal when the signal is received. + +------------------------------------------------------------------------------ +This document details the changes between this version, bash-4.0-alpha, +and the previous version, bash-3.2-release. + +1. Changes to Bash + +a. Fixed several bugs in old-style `` command substitution parsing, including + comment parsing and quoted string handling. + +b. Fixed problems parsing arguments to the [[ command's =~ regular expression + matching operator: metacharacter and whitespace parsing. + +c. Fixed a bug that caused the shell to inappropriately reuse high-numbered + file descriptors it used internally. + +d. Fixed a bug in pattern replacement word expansions that caused a `/' as + the first character of an expanded pattern to be mistaken for a global + replacement specifier. + +e. Fixed several problems with the asprintf and snprintf replacement functions + that caused hangs and crashes. + +f. Fixed a bug in the calculation of the current and previous job that caused + it to refer to incorrect jobs. + +g. Fixed a bug in the check for the validity of a hashed command pathname that + caused unnecessary hash table deletions and additions. + +h. Fixed a bug that caused child processes to inherit the wrong value for $!. + +i. Fixed a bug that caused `.' to fail to read and execute commands from non- + regular files such as devices or named pipes. + +j. Fixed a bug in printf formatting for the %x and %X expansions that occurred + on some systems. + +k. Fixed a bug that caused the shell to crash when creating temporary files if + $TMPDIR named a non-writable directory. + +l. Fixed a bug that caused the shell to ignore $TMPDIR when creating temporary + files under some circumstances. + +m. Fixed a bug that caused named pipes created by process substitution to not + be cleaned up. + +n. Fixed a bug that caused HISTTIMEFORMAT to not be honored when it appeared + in the initial shell environment. + +o. Fixed several bugs in the expansion of $* and $@ (quoted and unquoted) + when IFS is null or contains non-whitespace characters; the same changes + apply to arrays subscripted with * or @. + +p. Fixed several problems with pattern substitution expansions on the + positional parameters and arrays subscripted with * or @ that occurred + when $IFS was set to the empty string. + +q. Made a change to the default locale initialization code that should + result in better behavior from the locale-aware library functions. + +r. Fixed a bug that caused compacting the jobs list to drop jobs. + +s. Fixed a bug that caused jumps back to the top-level processing loop from + a builtin command to leave the shell in an inconsistent state. + +t. Fixed a bug that caused characters that would be escaped internally to be + doubled when escaped with a backslash. + +u. Fixed the initialization of mailboxes to not cause maildirs to be read + (and stat(2) called for every message file) at shell startup. + +v. Fixed a bug that caused the shell to not display $PS2 when the read builtin + reads a line continued with a backslash. + +w. Fixed a bug that caused errors in word splitting when $IFS contained + characters used for internal quoting. + +x. Fixed bugs that caused problems with output from shell builtins not being + completely displayed on some systems. + +y. Fixed a bug that caused output to be lost when a redirection is acting on + the shell's output file descriptor. + +z. Fixed bugs caused by shell builtins not checking for all write errors. + +aa. Fixed a problem that caused the shell to dump core if expansions on the + pattern passed to the pattern removal word expansions resulted in expansion + errors. + +bb. Fixed a bug that caused bash to loop infinitely after creating and + waiting for 4096 jobs. + +cc. Fixed a bug that caused bash to lose the status of a background job under + certain circumstances. + +dd. Fixed a bug that caused bash to not look in the temporary environment + when performing variable lookup under certain circumstances. + +ee. Fixed a bug that caused bash to close file descriptors greater than 10 + when they were used in redirections. + +ff. Fixed a problem that caused the shell to attempt to read from the standard + input when called as `bash -i script'. + +gg. Fixed a memory leak and variable initialization problems when the -v option + was supplied to `printf' that could cause incorrect results. + +hh. Fixed a bug that caused the `read' builtin to count bytes when the -n option + was supplied, rather than (possibly multibyte) characters. + +ii. Fixed a bug when displaying a function due to not converting the function + to an external form. + +jj. Changed job control initialization to ensure that the shell has a tty + as its controlling terminal before enabling job control. + +kk. Fixed a bug with the `test' builtin that caused it to misinterpret + arguments beginning with `-' but containing more than one character. + +ll. Fixed bug that could cause the shell to dump core in certain cases where + a command sets the SIGINT disposition to the default. + +mm. Fixed a bug in the pattern replacement (affecting both word expansion + and the `fc' builtin) that occurred when the pattern and replacement + strings were empty. + +nn. Fixed a bug that caused an arithmetic evaluation error to disable all + further evaluation. + +oo. Fixed a bug in pathname expansion that caused it to interpret backslashes + in the pathname as quoting characters. + +pp. Fixed a bug in the replacement getcwd() implementation that could cause + memory to be overwritten. + +qq. When in Posix mode, the `ulimit' builtin now uses a block size of 512 for + the `-c' and `-f' options. + +rr. Brace expansion now allows process substitutions to pass through unchanged. + +ss. Fixed a problem in the command name completion code to avoid quoting + escaped special characters twice when the command name begins with a tilde. + +tt. Fixed a problem in the printf builtin that resulted in single-byte + output for the "'" escape, even when using multibyte characters. + +uu. Fixed a bug that caused the failure exit status to be lost when redirections + attached to a compound command failed. + +vv. Fixed a bug that caused the internal random number generator to not be + re-seeded correctly when creating a subshell. + +ww. Fixed a bug that could cause the bash replacement getcwd to overwrite + memory. + +xx. Fixed a bug that caused the shell to not receive SIGINT if it was sent + while the shell was waiting for a command substitution to terminate, and + make sure the exit status is correct when it does. + +yy. Fixed a bug that resulted in the second and subsequent children spawned + by a shell begun to run a command substitution being placed into the + wrong process group. + +zz. Fixed a bug that caused the results of successful tilde expansion to be + subject to pathname expansion and word splitting. + +aaa. Fixed a bug that could cause the shell to hang if it encountered an + error that caused it to jump back to the top processing loop during a + command substitution or `eval' command. + +bbb. Fixed a bug that caused the `read' builtin to use the tty's attributes + instead of those of the file descriptor passed with the -u option when + processing the -n and -d options. + +ccc. Fixed a bug that caused incorrect expansion of ${array[@]:foo} if the + first character of $IFS was not whitespace. + +ddd. Fixed a bug that occurred when scanning for the ending delimiter of a + ${parameter/pat/sub} expansion. + +eee. Fixed a bug that caused the shell to inappropriately expand command + substitutions in words when expanding directory names for completion. + +fff. Fixed a bug that caused the `fc' builtin to look too far back in the + history list under certain circumstances. + +ggg. Fixed a bug that caused a shell running in Posix mode to search $PWD for + a file specified as an argument to source/. when the file was not found + in $PATH. + +hhh. Fixed a bug that caused the shell to modify the case of a command word + found via command completion when the shell was performing case- + insensitive completion. + +iii. Fixed a bug that caused the shell to search $PATH for an argument to + source/. even when it contained a `/'. + +jjj. Fixed a bug that caused brace expansion to misorder expansions when the + locale did not have a collating order like aAbBcC...zZ. + +kkk. Fixed a bug that did not allow `set +o history' to have any effect when + run in a startup file or from a sourced file. + +lll. Fixed a bug with the precedence of the ?: conditional arithmetic operator. + +mmm. Fixed a bug that caused side effects of temporary variable assignments + to persist in the shell environment. + +nnn. Fixed a bug that caused the terminal to be left in non-canonical mode + when using editing commands that invoke the an editor on the current + command line. + +ooo. Fixed a bug that caused globbing characters and characters in $IFS to not + be quoted appropriately when displaying assignment statements. + +ppp. Fixed a bug that caused the `-e' option to be inherited when sourcing a + file or evaluating a command with `eval' even if the return value of the + command was supposed to be ignored. + +qqq. Fixed a bug that caused the shell to attempt to created variables with + invalid names if such names appeared in the initial environment. + +rrr. Fixed a bug with quote removal in strings where the final character is a + backslash. + +sss. Fixed a bug that caused the effects of special variables to persist even + when the variables were unset as part of the shell reinitializing itself + to execute a shell script. + +ttt. Fixed a bug that caused the history to not be saved after `history -c' or + `history -d' was executed until a sufficient number of commands had been + saved to the history. + +uuu. Bash now parses command substitutions according to Posix rules: parsing + the command contained in $() to find the closing delimiter. + +vvv. Fixed a bug that caused traps on SIGCHLD set in a SIGCHLD handler to + not persist. + +www. Fixed a bug that didn't allow SIGCHLD to interrupt the `wait' builtin + as Posix specifies. + +xxx. Invalid numeric arguments to shell builtins no longer cause the shell to + short-circuit any executing compound command. + +yyy. Fixed a bug that caused the exit status to be lost when `break' was + used to short-circuit a loop's execution. + +zzz. Fixed a bug that caused stray ^? characters to be left in expansions of + "${array[*]}". + +aaaa. Bash now prints better error messages for here documents terminated by + EOF and for identifying the incorrect token in an invalid arithmetic + expression. + +bbbb. Fixed a bug in the variable length word expansion that caused it to + incorrectly calculate the number of multibyte characters. + +cccc. Fixed a race condition that could result in the top-level shell setting + the terminal's process group to an incorrect value if the process + group was changed by a child of a child of the shell. + +dddd. Fixed a bug that caused here documents belonging to commands within a + compound command to be displayed in a syntactially-incorrect form, which + prevented them from being re-read as input. + +eeee. The shell displays more warnings about failures to set the locale. + +ffff. Fixed a bug that caused the body of a here-document to not be saved to + the history list. + +gggg. Fixed a bug that caused configure to incorrectly conclude that FreeBSD + had /dev/fd available, resulting in problems with process substitution. + +2. Changes to Readline + +a. Fixed a number of redisplay errors in environments supporting multibyte + characters. + +b. Fixed bugs in vi command mode that caused motion commands to inappropriately + set the mark. + +c. When using the arrow keys in vi insertion mode, readline allows movement + beyond the current end of the line (unlike command mode). + +d. Fixed bugs that caused readline to loop when the terminal has been taken + away and reads return -1/EIO. + +e. Fixed bugs in redisplay occurring when displaying prompts containing + invisible characters. + +f. Fixed a bug that caused the completion append character to not be reset to + the default after an application-specified completion function changed it. + +g. Fixed a problem that caused incorrect positioning of the cursor while in + emacs editing mode when moving forward at the end of a line while using + a locale supporting multibyte characters. + +h. Fixed an off-by-one error that caused readline to drop every 511th + character of buffered input. + +i. Fixed a bug that resulted in SIGTERM not being caught or cleaned up. + +j. Fixed redisplay bugs caused by multiline prompts with invisible characters + or no characters following the final newline. + +k. Fixed redisplay bug caused by prompts consisting solely of invisible + characters. + +l. Fixed a bug in the code that buffers characters received very quickly in + succession which caused characters to be dropped. + +m. Fixed a bug that caused readline to reference uninitialized data structures + if it received a SIGWINCH before completing initialzation. + +n. Fixed a bug that caused the vi-mode `last command' to be set incorrectly + and therefore unrepeatable. + +o. Fixed a bug that caused readline to disable echoing when it was being used + with an output file descriptor that was not a terminal. + +p. Readline now blocks SIGINT while manipulating internal data structures + during redisplay. + +q. Fixed a bug in redisplay that caused readline to segfault when pasting a + very long line (over 130,000 characters). + +r. Fixed bugs in redisplay when using prompts with no visible printing + characters. + +3. New Features in Bash + +a. When using substring expansion on the positional parameters, a starting + index of 0 now causes $0 to be prefixed to the list. + +b. The `help' builtin now prints its columns with entries sorted vertically + rather than horizontally. + +c. There is a new variable, $BASHPID, which always returns the process id of + the current shell. + +d. There is a new `autocd' option that, when enabled, causes bash to attempt + to `cd' to a directory name that is supplied as the first word of a + simple command. + +e. There is a new `checkjobs' option that causes the shell to check for and + report any running or stopped jobs at exit. + +f. The programmable completion code exports a new COMP_TYPE variable, set to + a character describing the type of completion being attempted. + +g. The programmable completion code exports a new COMP_KEY variable, set to + the character that caused the completion to be invoked (e.g., TAB). + +h. If creation of a child process fails due to insufficient resources, bash + will try again several times before reporting failure. + +i. The programmable completion code now uses the same set of characters as + readline when breaking the command line into a list of words. + +j. The block multiplier for the ulimit -c and -f options is now 512 when in + Posix mode, as Posix specifies. + +k. Changed the behavior of the read builtin to save any partial input received + in the specified variable when the read builtin times out. This also + results in variables specified as arguments to read to be set to the empty + string when there is no input available. When the read builtin times out, + it returns an exit status greater than 128. + +l. The shell now has the notion of a `compatibility level', controlled by + new variables settable by `shopt'. Setting this variable currently + restores the bash-3.1 behavior when processing quoted strings on the rhs + of the `=~' operator to the `[[' command. + +m. The `ulimit' builtin now has new -b (socket buffer size) and -T (number + of threads) options. + +n. The -p option to `declare' now displays all variable values and attributes + (or function values and attributes if used with -f). + +o. There is a new `compopt' builtin that allows completion functions to modify + completion options for existing completions or the completion currently + being executed. + +p. The `read' builtin has a new -i option which inserts text into the reply + buffer when using readline. + +q. A new `-E' option to the complete builtin allows control of the default + behavior for completion on an empty line. + +r. There is now limited support for completing command name words containing + globbing characters. + +s. Changed format of internal help documentation for all builtins to roughly + follow man page format. + +t. The `help' builtin now has a new -d option, to display a short description, + and a -m option, to print help information in a man page-like format. + +u. There is a new `mapfile' builtin to populate an array with lines from a + given file. + +v. If a command is not found, the shell attempts to execute a shell function + named `command_not_found_handle', supplying the command words as the + function arguments. + +w. There is a new shell option: `globstar'. When enabled, the globbing code + treats `**' specially -- it matches all directories (and files within + them, when appropriate) recursively. + +x. There is a new shell option: `dirspell'. When enabled, the filename + completion code performs spelling correction on directory names during + completion. + +y. The `-t' option to the `read' builtin now supports fractional timeout + values. + +z. Brace expansion now allows zero-padding of expanded numeric values and + will add the proper number of zeroes to make sure all values contain the + same number of digits. + +aa. There is a new bash-specific bindable readline function: `dabbrev-expand'. + It uses menu completion on a set of words taken from the history list. + +bb. The command assigned to a key sequence with `bind -x' now sets two new + variables in the environment of the executed command: READLINE_LINE_BUFFER + and READLINE_POINT. The command can change the current readline line + and cursor position by modifying READLINE_LINE_BUFFER and READLINE_POINT, + respectively. + +cc. There is a new >>& redirection operator, which appends the standard output + and standard error to the named file. + +dd. The parser now understands `|&' as a synonym for `2>&1 |', which redirects + the standard error for a command through a pipe. + +ee. The new `;&' case statement action list terminator causes execution to + continue with the action associated with the next pattern in the + statement rather than terminating the command. + +ff. The new `;;&' case statement action list terminator causes the shell to + test the next set of patterns after completing execution of the current + action, rather than terminating the command. + +gg. The shell understands a new variable: PROMPT_DIRTRIM. When set to an + integer value greater than zero, prompt expansion of \w and \W will + retain only that number of trailing pathname components and replace + the intervening characters with `...'. + +hh. There are new case-modifying word expansions: uppercase (^[^]) and + lowercase (,[,]). They can work on either the first character or + array element, or globally. They accept an optional shell pattern + that determines which characters to modify. There is an optionally- + configured feature to include capitalization operators. + +ii. The shell provides associative array variables, with the appropriate + support to create, delete, assign values to, and expand them. + +jj. The `declare' builtin now has new -l (convert value to lowercase upon + assignment) and -u (convert value to uppercase upon assignment) options. + There is an optionally-configurable -c option to capitalize a value at + assignment. + +kk. There is a new `coproc' reserved word that specifies a coprocess: an + asynchronous command run with two pipes connected to the creating shell. + Coprocs can be named. The input and output file descriptors and the + PID of the coprocess are available to the calling shell in variables + with coproc-specific names. + +4. New Features in Readline + +a. A new variable, rl_sort_completion_matches; allows applications to inhibit + match list sorting (but beware: some things don't work right if + applications do this). + +b. A new variable, rl_completion_invoking_key; allows applications to discover + the key that invoked rl_complete or rl_menu_complete. + +c. The functions rl_block_sigint and rl_release_sigint are now public and + available to calling applications who want to protect critical sections + (like redisplay). + +d. The functions rl_save_state and rl_restore_state are now public and + available to calling applications; documented rest of readline's state + flag values. + +e. A new user-settable variable, `history-size', allows setting the maximum + number of entries in the history list. + +f. There is a new implementation of menu completion, with several improvements + over the old; the most notable improvement is a better `completions + browsing' mode. + +g. The menu completion code now uses the rl_menu_completion_entry_function + variable, allowing applications to provide their own menu completion + generators. + +h. There is support for replacing a prefix of a pathname with a `...' when + displaying possible completions. This is controllable by setting the + `completion-prefix-display-length' variable. Matches with a common prefix + longer than this value have the common prefix replaced with `...'. + +i. There is a new `revert-all-at-newline' variable. If enabled, readline will + undo all outstanding changes to all history lines when `accept-line' is + executed. + +------------------------------------------------------------------------------ This document details the changes between this version, bash-3.2-release, and the previous version, bash-3.2-beta. diff --git a/COMPAT b/COMPAT index c591ede5f..b80beff37 100644 --- a/COMPAT +++ b/COMPAT @@ -1,5 +1,5 @@ This document details the incompatibilities between this version of bash, -bash-3.2, and the previous widely-available versions, bash-1.14 (which is +bash-4.0, and the previous widely-available versions, bash-1.14 (which is still the `standard' version for a few Linux distributions) and bash-2.x. These were discovered by users of bash-2.x and 3.x, so this list is not comprehensive. Some of these incompatibilities occur between the current @@ -271,5 +271,44 @@ bash-2.0 were significant.) file permission bits obtained with stat(2). This obeys restrictions of the file system (e.g., read-only or noexec mounts) not available via stat. -33. Beginning with bash-3.1/readline-5.1, the readline key binding code obeys - the current setting of the `convert-meta' variable. +33. Bash-3.2 adopts the convention used by other string and pattern matching + operators for the `[[' compound command, and matches any quoted portion + of the right-hand-side argument to the =~ operator as a string rather + than a regular expression. + +34. Bash-4.0 allows the behavior in the previous item to be modified using + the notion of a shell `compatibility level'. + +35. Bash-3.2 (patched) and Bash-4.0 fix a bug that leaves the shell in an + inconsistent internal state following an assignment error. One of the + changes means that compound commands or { ... } grouping commands are + aborted under some circumstances in which they previously were not. + This is what Posix specifies. + +36. Bash-4.0 now allows process substitution constructs to pass unchanged + through brace expansion, so any expansion of the contents will have to be + separately specified, and each process subsitution will have to be + separately entered. + +37. Bash-4.0 now allows SIGCHLD to interrupt the wait builtin, as Posix + specifies, so the SIGCHLD trap is no longer always invoked once per + exiting child if you are using `wait' to wait for all children. + +38. Since bash-4.0 now follows Posix rules for finding the closing delimiter + of a $() command substitution, it will not behave as previous versions + did, but will catch more syntax and parsing errors before spawning a + subshell to evaluate the command substitution. + +39. The programmable completion code uses the same set of delimiting characters + as readline when breaking the command line into words, rather than the + set of shell metacharacters, so programmable completion and readline + should be more consistent. + +40. When the read builtin times out, it attempts to assign any input read to + specified variables, which also causes variables to be set to the empty + string if there is not enough input. Previous versions discarded the + characters read. + +41. Beginning with bash-4.0, when one of the commands in a pipeline is killed + by a SIGINT while executing a command list, the shell acts as if it + received the interrupt. diff --git a/COPYING b/COPYING index 2b940a412..94a9ed024 100644 --- a/COPYING +++ b/COPYING @@ -1,293 +1,626 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 - Copyright (C) 1989, 1991 Free Software Foundation, Inc. - 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA + Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. -The Free Software Foundation has exempted Bash from the requirement of -Paragraph 2c of the General Public License. This is to say, there is -no requirement for Bash to print a notice when it is started -interactively in the usual way. We made this exception because users -and standards expect shells not to print such messages. This -exception applies to any program that serves as a shell and that is -based primarily on Bash as opposed to other GNU software. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Library General Public License instead.) You can apply it to + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. The precise terms and conditions for copying, distribution and modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of this License. - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - Appendix: How to Apply These Terms to Your New Programs + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it @@ -295,15 +628,15 @@ free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least +state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. - Copyright (C) 19yy + Copyright (C) - This program is free software; you can redistribute it and/or modify + 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 of the License, or + the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, @@ -312,36 +645,30 @@ the "copyright" line and a pointer to where the full notice is found. 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 + along with this program. If not, see . Also add information on how to contact you by electronic and paper mail. -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: - Gnomovision version 69, Copyright (C) 19yy name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Library General -Public License instead of this License. +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/CWRU/audit-patch b/CWRU/audit-patch new file mode 100644 index 000000000..3e14cccf6 --- /dev/null +++ b/CWRU/audit-patch @@ -0,0 +1,339 @@ +Date: Tue, 06 Feb 2007 16:06:58 -0500 +From: Steve Grubb +Subject: Re: bash and linux audit +To: chet.ramey@case.edu +Organization: Red Hat + +OK, I released audit 1.4 Sunday which has the logging function for user +commands. It produces audit events like this: + +type=USER_CMD msg=audit(01/30/2007 18:23:45.793:143) : user pid=22862 uid=root +auid=root subj=system_u:system_r:unconfined_t:s0-s0:c0.c1023 +msg='cwd=/root/test dir cmd=ls -l (terminal=tty1 res=success)' + +diff -urp bash-3.2.orig/config-bot.h bash-3.2/config-bot.h +--- bash-3.2.orig/config-bot.h 2007-01-03 09:01:05.000000000 -0500 ++++ bash-3.2/config-bot.h 2007-01-20 11:59:23.000000000 -0500 +@@ -97,6 +97,11 @@ + # define RESTRICTED_SHELL_NAME "rbash" + #endif + ++/* If the shell is called by this name, it will become audited. */ ++#if defined (AUDIT_SHELL) ++# define AUDIT_SHELL_NAME "aubash" ++#endif ++ + /***********************************************************/ + /* Make sure feature defines have necessary prerequisites. */ + /***********************************************************/ +diff -urp bash-3.2.orig/config.h.in bash-3.2/config.h.in +--- bash-3.2.orig/config.h.in 2007-01-03 09:01:05.000000000 -0500 ++++ bash-3.2/config.h.in 2007-01-20 11:59:23.000000000 -0500 +@@ -81,6 +81,11 @@ + flag. */ + #undef RESTRICTED_SHELL + ++/* Define AUDIT_SHELL if you want the generated shell to audit all ++ actions performed by root account. The shell thus generated can become ++ audited by being run with the name "aubash". */ ++#undef AUDIT_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 +diff -urp bash-3.2.orig/configure.in bash-3.2/configure.in +--- bash-3.2.orig/configure.in 2007-01-03 09:01:05.000000000 -0500 ++++ bash-3.2/configure.in 2007-01-20 11:59:23.000000000 -0500 +@@ -162,6 +162,7 @@ opt_history=yes + opt_bang_history=yes + opt_dirstack=yes + opt_restricted=yes ++opt_audit=yes + opt_process_subst=yes + opt_prompt_decoding=yes + opt_select=yes +@@ -195,8 +196,8 @@ dnl a minimal configuration turns everyt + dnl added individually + if test $opt_minimal_config = yes; then + opt_job_control=no opt_alias=no opt_readline=no +- opt_history=no opt_bang_history=no opt_dirstack=no +- opt_restricted=no opt_process_subst=no opt_prompt_decoding=no ++ opt_history=no opt_bang_history=no opt_dirstack=no opt_restricted=no ++ opt_audit=no opt_process_subst=no opt_prompt_decoding=no + opt_select=no opt_help=no opt_array_variables=no opt_dparen_arith=no + opt_brace_expansion=no opt_disabled_builtins=no opt_command_timing=no + opt_extended_glob=no opt_cond_command=no opt_arith_for_command=no +@@ -227,6 +228,7 @@ AC_ARG_ENABLE(progcomp, AC_HELP_STRING([ + AC_ARG_ENABLE(prompt-string-decoding, AC_HELP_STRING([--enable-prompt-string-decoding], [turn on escape character decoding in prompts]), opt_prompt_decoding=$enableval) + AC_ARG_ENABLE(readline, AC_HELP_STRING([--enable-readline], [turn on command line editing]), opt_readline=$enableval) + AC_ARG_ENABLE(restricted, AC_HELP_STRING([--enable-restricted], [enable a restricted shell]), opt_restricted=$enableval) ++AC_ARG_ENABLE(audit, AC_HELP_STRING([--enable-audit], [enable an audited shell]), opt_audit=$enableval) + AC_ARG_ENABLE(select, AC_HELP_STRING([--enable-select], [include select command]), opt_select=$enableval) + AC_ARG_ENABLE(separate-helpfiles, AC_HELP_STRING([--enable-separate-helpfiles], [use external files for help builtin documentation]), opt_separate_help=$enableval) + AC_ARG_ENABLE(single-help-strings, AC_HELP_STRING([--enable-single-help-strings], [store help documentation as a single string to ease translation]), opt_single_longdoc_strings=$enableval) +@@ -254,6 +256,10 @@ fi + if test $opt_restricted = yes; then + AC_DEFINE(RESTRICTED_SHELL) + fi ++if test $opt_audit = yes; then ++AC_DEFINE(AUDIT_SHELL) ++AUDIT_LIB='-laudit' ++fi + if test $opt_process_subst = yes; then + AC_DEFINE(PROCESS_SUBSTITUTION) + fi +@@ -355,6 +361,8 @@ AC_SUBST(HELPDIRDEFINE) + AC_SUBST(HELPINSTALL) + AC_SUBST(HELPSTRINGS) + ++AC_SUBST(AUDIT_LIB) ++ + echo "" + echo "Beginning configuration for bash-$BASHVERS-$RELSTATUS for ${host_cpu}-${host_vendor}-${host_os}" + echo "" +diff -urp bash-3.2.orig/doc/bash.1 bash-3.2/doc/bash.1 +--- bash-3.2.orig/doc/bash.1 2007-01-03 09:01:05.000000000 -0500 ++++ bash-3.2/doc/bash.1 2007-01-20 11:59:23.000000000 -0500 +@@ -155,6 +155,12 @@ single-character options to be recognize + .PP + .PD 0 + .TP ++.B \-\-audit ++The shell logs all commands run by the root user (see ++.SM ++.B "AUDIT SHELL" ++below). ++.TP + .B \-\-debugger + Arrange for the debugger profile to be executed before the shell + starts. +@@ -8770,6 +8776,17 @@ turns off any restrictions in the shell + script. + .\" end of rbash.1 + .if \n(zY=1 .ig zY ++.SH "AUDIT SHELL" ++.zY ++.PP ++If ++.B bash ++is started with the name ++.BR aubash , ++or the ++.B \-\-audit ++option is supplied at invocation, the shell logs all commands issued by the root user to the audit system. ++.if \n(zY=1 .ig zY + .SH "SEE ALSO" + .PD 0 + .TP +diff -urp bash-3.2.orig/eval.c bash-3.2/eval.c +--- bash-3.2.orig/eval.c 2007-01-03 09:01:06.000000000 -0500 ++++ bash-3.2/eval.c 2007-01-20 11:59:23.000000000 -0500 +@@ -45,6 +45,11 @@ + # include "bashhist.h" + #endif + ++#if defined (AUDIT_SHELL) ++# include ++# include ++#endif ++ + extern int EOF_reached; + extern int indirection_level; + extern int posixly_correct; +@@ -58,6 +63,38 @@ extern int rpm_requires; + static void send_pwd_to_eterm __P((void)); + static sighandler alrm_catcher __P((int)); + ++#if defined (AUDIT_SHELL) ++static int audit_fd = -1; ++ ++static int ++audit_start () ++{ ++ audit_fd = audit_open (); ++ if (audit_fd < 0) ++ return -1; ++ else ++ return 0; ++} ++ ++static int ++audit (cmd, result) ++ char *cmd; ++ int result; ++{ ++ int rc; ++ ++ if (audit_fd < 0) ++ return 0; ++ ++ rc = audit_log_user_command (audit_fd, AUDIT_USER_CMD, cmd, ++ NULL, !result); ++ close (audit_fd); ++ audit_fd = -1; ++ return rc; ++} ++#endif ++ ++ + /* Read and execute commands until EOF is reached. This assumes that + the input source has already been initialized. */ + int +@@ -145,7 +182,25 @@ reader_loop () + + executing = 1; + stdin_redir = 0; ++#if defined (AUDIT_SHELL) ++ if (audited && interactive_shell && getuid () == 0) ++ { ++ if (audit_start () < 0) ++ { ++ if (errno != EINVAL && errno != EPROTONOSUPPORT && ++ errno != EAFNOSUPPORT) ++ return EXECUTION_FAILURE; ++ } ++ } ++#endif ++ + execute_command (current_command); ++#if defined (AUDIT_SHELL) ++ { ++ extern char *shell_input_line; ++ audit (shell_input_line, last_command_exit_value); ++ } ++#endif + + exec_done: + QUIT; +diff -urp bash-3.2.orig/externs.h bash-3.2/externs.h +--- bash-3.2.orig/externs.h 2007-01-03 09:01:06.000000000 -0500 ++++ bash-3.2/externs.h 2007-01-20 12:05:00.000000000 -0500 +@@ -77,6 +77,10 @@ extern int shell_is_restricted __P((char + extern int maybe_make_restricted __P((char *)); + #endif + ++#if defined (AUDIT_SHELL) ++extern int maybe_make_audited __P((char *)); ++#endif ++ + extern void unset_bash_input __P((int)); + extern void get_current_user_info __P((void)); + +diff -urp bash-3.2.orig/flags.c bash-3.2/flags.c +--- bash-3.2.orig/flags.c 2007-01-03 09:01:06.000000000 -0500 ++++ bash-3.2/flags.c 2007-01-20 11:59:23.000000000 -0500 +@@ -142,6 +142,12 @@ int restricted = 0; /* currently restri + int restricted_shell = 0; /* shell was started in restricted mode. */ + #endif /* RESTRICTED_SHELL */ + ++#if defined (AUDIT_SHELL) ++/* Non-zero means that this shell is audited. An audited shell records ++ each command that the root user executes. */ ++int audited = 0; /* shell was started in audit mode. */ ++#endif /* AUDIT_SHELL */ ++ + /* Non-zero means that this shell is running in `privileged' mode. This + is required if the shell is to run setuid. If the `-p' option is + not supplied at startup, and the real and effective uids or gids +diff -urp bash-3.2.orig/flags.h bash-3.2/flags.h +--- bash-3.2.orig/flags.h 2007-01-03 09:01:06.000000000 -0500 ++++ bash-3.2/flags.h 2007-01-20 11:59:23.000000000 -0500 +@@ -66,6 +66,10 @@ extern int restricted; + extern int restricted_shell; + #endif /* RESTRICTED_SHELL */ + ++#if defined (AUDIT_SHELL) ++extern int audited; ++#endif /* AUDIT_SHELL */ ++ + extern int *find_flag __P((int)); + extern int change_flag __P((int, int)); + extern char *which_set_flags __P((void)); +Only in bash-3.2: .made +diff -urp bash-3.2.orig/Makefile.in bash-3.2/Makefile.in +--- bash-3.2.orig/Makefile.in 2007-01-03 09:01:06.000000000 -0500 ++++ bash-3.2/Makefile.in 2007-01-20 11:59:23.000000000 -0500 +@@ -366,6 +366,8 @@ MALLOC_LIBRARY = @MALLOC_LIBRARY@ + MALLOC_LDFLAGS = @MALLOC_LDFLAGS@ + MALLOC_DEP = @MALLOC_DEP@ + ++AUDIT_LIB = @AUDIT_LIB@ ++ + 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 +@@ -386,7 +388,7 @@ BASHINCFILES = $(BASHINCDIR)/posixstat. + $(BASHINCDIR)/ocache.h + + LIBRARIES = $(SHLIB_LIB) $(READLINE_LIB) $(HISTORY_LIB) $(TERMCAP_LIB) $(GLOB_LIB) \ +- $(TILDE_LIB) $(MALLOC_LIB) $(INTL_LIB) $(LOCAL_LIBS) ++ $(TILDE_LIB) $(MALLOC_LIB) $(INTL_LIB) $(LOCAL_LIBS) $(AUDIT_LIB) + + LIBDEP = $(SHLIB_DEP) $(INTL_DEP) $(READLINE_DEP) $(HISTORY_DEP) $(TERMCAP_DEP) $(GLOB_DEP) \ + $(TILDE_DEP) $(MALLOC_DEP) +diff -urp bash-3.2.orig/parse.y bash-3.2/parse.y +--- bash-3.2.orig/parse.y 2007-01-03 09:01:06.000000000 -0500 ++++ bash-3.2/parse.y 2007-01-20 11:59:23.000000000 -0500 +@@ -258,7 +258,7 @@ 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; ++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) */ +diff -urp bash-3.2.orig/shell.c bash-3.2/shell.c +--- bash-3.2.orig/shell.c 2007-01-03 09:01:06.000000000 -0500 ++++ bash-3.2/shell.c 2007-01-20 12:04:23.000000000 -0500 +@@ -240,6 +240,9 @@ struct { + #if defined (RESTRICTED_SHELL) + { "restricted", Int, &restricted, (char **)0x0 }, + #endif ++#if defined (AUDIT_SHELL) ++ { "audit", Int, &audited, (char **)0x0 }, ++#endif + { "verbose", Int, &echo_input_at_read, (char **)0x0 }, + { "version", Int, &do_version, (char **)0x0 }, + { "wordexp", Int, &wordexp_only, (char **)0x0 }, +@@ -644,6 +647,10 @@ main (argc, argv, env) + maybe_make_restricted (shell_name); + #endif /* RESTRICTED_SHELL */ + ++#if defined (AUDIT_SHELL) ++ maybe_make_audited (shell_name); ++#endif ++ + if (wordexp_only) + { + startup_state = 3; +@@ -1143,6 +1150,29 @@ maybe_make_restricted (name) + } + #endif /* RESTRICTED_SHELL */ + ++#if defined (AUDIT_SHELL) ++/* Perhaps make this shell an `audited' one, based on NAME. If the ++ basename of NAME is "aubash", then this shell is audited. The ++ name of the audited shell is a configurable option, see config.h. ++ In an audited shell, all actions performed by root will be logged ++ to the audit system. ++ Do this also if `audited' is already set to 1 maybe the shell was ++ started with --audit. */ ++int ++maybe_make_audited (name) ++ char *name; ++{ ++ char *temp; ++ ++ temp = base_pathname (name); ++ if (*temp == '-') ++ temp++; ++ if (audited || (STREQ (temp, AUDIT_SHELL_NAME))) ++ audited = 1; ++ return (audited); ++} ++#endif /* AUDIT_SHELL */ ++ + /* Fetch the current set of uids and gids and return 1 if we're running + setuid or setgid. */ + static int diff --git a/CWRU/changelog b/CWRU/changelog index 830baec0d..6df20950a 100644 --- a/CWRU/changelog +++ b/CWRU/changelog @@ -1,13730 +1,7288 @@ - 4/9/2001 - -------- -[bash-2.05 released] - - 4/10 - ---- -redir.c - - check return value of fclose() in write_here_document() for error - returns; don't just rely on fwrite() failing + 7/27/2004 + --------- -support/bashbug.sh - - set TMPDIR to /tmp if it's null or unset - - use $TMPDIR in the TEMP tempfile name template - - fixed the call to `mktemp', if it exists, to make it more portable +[bash-3.0 released] -jobs.c - - if WCONTINUED is not defined, define it to 0 and add a define for - WIFCONTINUED(wstatus) which expands to 0 - - add WCONTINUED to the flags passed to waitpid(2) in waitchld() - - don't increment children_exited if waitpid's status is WIFCONTINUED, - since we don't want to call a SIGCHLD trap handler in this case - - in waitchld(), we set child->running to 1 if WIFCONTINUED(status) - is non-zero - - make sure pretty_print_job doesn't check for the core dump bit if - the process has been continued; it's only valid if the job is dead - - in set_job_status_and_cleanup, set the job to JRUNNING if job_state - is non-zero and the job was previously marked as JSTOPPED + 7/28 + ---- +array.c + - in array_insert(), make sure the value to be added is non-NULL before + calling savestring() on it -configure.in - - add -DBROKEN_DIRENT_D_INO to interix LOCAL_CFLAGS +builtins/reserved.def + - fix description of `CDPATH' -lib/glob/glob.c - - if BROKEN_DIRENT_D_INO is defined, define REAL_DIR_ENTRY to 1 +lib/readline/display.c + - when expanding a prompt that spans multiple lines with embedded + newlines, set prompt_physical_chars from the portion after the + final newline, not the preceding portion. Bug reported by + "Ralf S. Engelschall" -jobs.c - - in kill_pid, we only need to block and unblock SIGCHLD if the - `group' argument is non-zero, since otherwise we just call `kill' - on the pid argument +make_cmd.c + - explicitly declare `lineno' in function prologue for make_case_command -version.c - - update copyright date to 2001 +builtins/evalfile.c + - include `trap.h' for declaration for run_return_trap bashline.c - - prog_complete_return needs to take a `const char *' as its first - argument - - history_completion_generator needs to take a `const char *' as - its first argument, and `text' needs to be a `const char *' - - 4/11 - ---- -redir.c - - fixed a weird typo in redir_special_open, case RF_DEVFD, added - call to all_digits before call to legal_number - - fixed do_redirection_internal to call legal_number instead of atol(3) - when translating r_duplicating_{in,out}put_word, so it handles - overflow better - - produce an error message in redirection_error for out-of-range - file descriptors - - change allocation strategy in redirection_error so we don't have to - malloc scratch memory if redirection_expand() fails - -jobs.h - - added defines for `running' member of a struct process + - fix a `return' without a value in enable_hostname_completion general.c - - fix legal_number to return 0 when strtol(3) reports overflow or - underflow - -parse.y - - changed read_token_word to call legal_number instead of atoi(3) - -input.c - - return -1/EBADF from close_buffered_fd if fd is < 0 - -command.h - - fixed bogus comment about IS_DESCRIPTOR in description of the - REDIRECTEE struct - -print_cmd.c - - change cprintf's 'd' modifier code to display negative numbers as - an out-of-range value. We can do this only because the only use - of %d is to output file descriptor numbers in redirections + - include test.h for extern declaration for test_eaccess -support/mksignames.c - - need to include config.h to get a possible value for - UNUSABLE_RT_SIGNALS +externs.h + - add declaration for zcatfd - 4/16 - ---- -lib/readline/doc/rluser.texinfo - - corrected a small error in one description of M-DEL +tests/{history,histexp}.tests + - unset HISTFILESIZE to avoid problems if a value of 0 is inherited + from the environment - 4/17 + 7/30 ---- -stringlib.c - - need to initialize `ind' before calls to RESIZE_MALLOCED_BUFFER - in strcreplace() - -support/bashversion.c - - new file, prints bash version information +bashline.c + - small changes to glob_expand_word to perform tilde expansion before + attempting globbing -Makefile.in - - rules for building bashversion and linking it to version.o +builtins/Makefile.in + - fix the install-help target to not cd into the `helpfiles' + subdirectory, so a value of $INSTALL_DATA containing a relative + pathname (e.g., .././support/install.sh) remains valid - 4/24 + 7/31 ---- -conftypes.h - - new file with HOSTTYPE, OSTYPE, MACHTYPE, etc. defines from - variables.h - -variables.h, version.c - - include conftypes.h - -patchlevel.h - - new file, contains define for PATCHLEVEL. Doing away with the old - scheme of having the information in configure.in - -version.c - - include patchlevel.h +subst.c + - new function, mbstrlen(s), returns length of a multibyte character + string -Makefile.in - - run bashversion -p to find patch level rather than have configure - substitute in a value - - pass -S ${top_srcdir} to support/mkversion.sh +include/shmbutil.h + - new macro, MB_STRLEN(s), calls mbstrlen or STRLEN as appropriate -support/mkversion.sh - - don't put PATCHLEVEL define into version.h, but accept and ignore - a -p option - - take a new -S srcdir option - - find the patch level by parsing it out of patchlevel.h +builtins/trap.def + - small change so that a first argument that's a valid signal number + (digits only -- no symbolic names) will be treated as a signal and + reverted back to the original handling disposition. Fixes debian + complaints -configure.in - - hard-code BASHVERS assignment instead of reading it from a file - - remove BASHPATCH; don't substitute it +subst.c + - call MB_STRLEN instead of STRLEN where appropriate in + parameter_brace_expand_length to handle multibyte characters properly + - call MB_STRLEN instead of strlen in verify_substring_values so that + negative substrings of strings with multibyte chars work properly -_distribution,_patchlevel - - removed + 8/1 + --- +jobs.c + - describe_pid needs to write to stderr, not stdout (POSIX) + - start_job, since it's only used by builtins (fg/bg), needs to write + its output to stdout, not stderr (POSIX) - 4/26 - ---- -shell.c - - call init_noninteractive() in open_shell_script if forced_interactive - is non-zero (the shell was started with -i) and fd_is_tty is 0 - (the script file is a real file, not something like /dev/stdin), - since it wasn't done earlier +sig.c + - add an `orig_flags' member to struct terminating_signal so the + original signal handling flags (SA_RESTART, etc.) can be preserved + on POSIX systems + - make sure to preserve the signal flags state in + initialize_terminating_signals and reset them for child processes + in reset_terminating_signals -builtins/printf.def - - change for POSIX.2 compliance when conversion errors are encountered - when processing %d, %u, and floating point conversion operators - (print a warning message, return the value accumulated at the time - of the error -- which is always 0 -- and exit with a non-zero status) +builtins/fc.def + - fixed an off-by-one error that caused `fc -l' to list one too many + history entries + - in posix mode, `fc' should not list any indication as to whether or + not history lines have been modified (POSIX) + - when in posix mode, the default editor for `fc' should be `ed' (POSIX) -command.h - - added CMD_COMMAND_BUILTIN for use by the `command' builtin and the - code in execute_cmd.c +doc/bashref.texi + - updated the description of `trap' behavior when given a first + argument that is a valid signal number + - noted that `fc -l' won't indicate whether a history entry has been + modified if the shell is in posix mode builtins/command.def - - add CMD_COMMAND_BUILTIN to the created command's flags + - fixed bug: `command -v' is supposed to be silent if a command is not + found - 5/1 - --- -configure.in - - add call to AC_C_CONST to test `const' compiler behavior - - add call to AC_C_INLINE to test `inline' compiler behavior - - add call to AC_C_STRINGIZE to test cpp #x stringizing operator +builtins/hash.def + - `hash' should print its `hash table empty' message to stderr -config.h.in - - add `#undef const' for configure to substitute - - add `#undef inline' for configure to substitute - - add `#undef HAVE_STRINGIZE' for configure to substitute +lib/readline/misc.c + - back out 7/7 change to _rl_maybe_save_line; it breaks emacs-mode ^P + +general.c + - changed base_pathname so that it will return reasonable results for + non-absolute pathnames -- this is what is intended by all of its + callers -include/stdc.h - - remove code that defines or undefines `const' and `inline' - - change the __STRING macro to be defined depending on the value - of HAVE_STRINGIZE +arrayfunc.c + - fix array_variable_part to return NULL if it finds an invisible + variable in the hash table. Fixes seg fault caused by referring to + unset local variable using array notation -lib/malloc/malloc.c - - change the __STRING macro to be defined depending on the value - of HAVE_STRINGIZE +{locale,variables}.c + - support LC_TIME as a special locale variable so HISTTIMEFORMAT tracks + the current locale -lib/readline/{readline,rlprivate}.h - - moved rl_get_termcap to readline.h, making it a public function + 8/2 + --- +variables.c + - fixed small memory leak in makunbound() when a local array variable + is unset. Fix from William Park -lib/readline/readline.h - - new #define, RL_READLINE_VERSION, hex-encoded library version - number, currently set to 0x0402 - - new public int variable, rl_readline_version +lib/readline/display.c + - fixed a problem when computing the number of invisible characters on + the first line of a prompt whose length exceeds the screen width + (should only happen when invisible characters occur after the + line wrap). Bug reported by agriffis@gentoo.org -lib/readline/readline.c - - #define RL_READLINE_VERSION if it is not already defined (which it - should be in readline.h) - - initialize rl_readline_version to RL_READLINE_VERSION +builtins/command.def + - `command -V' passes a new flag, CDESC_ABSPATH, which means to convert + to an absolute path -lib/readline/doc/rltech.texinfo - - documented rl_get_termcap - - documented rl_readline_version +builtins/type.def + - in posix mode, `type' and `command -v/-V' should not report + non-executable files, even if the execution code will attempt to + run them. Other posix shells do this -jobs.c - - job_exit_status should return an int, not a WAIT (undetected - before because on most POSIX-like systems a WAIT is really an int) +doc/bashref.texi + - add note to POSIX Mode section describing behavior of type and command + when finding a non-executable file -builtins/evalfile.c - - added FEVAL_REGFILE (file must be a regular file) to accepted - _evalfile flags - - fc_execute_file() adds FEVAL_REGFILE to _evalfile flags. This - means that startup files and files read with `.' no longer need - to be regular files +execute_cmd.c + - force extended_glob to 1 before calling binary_test in + execute_cond_node so that the right extended pattern matching gets + performed - 5/2 + 8/3 --- +braces.c + - make sure lhs[0] and rhs[0] are cast to `unsigned char' so chars + with values > 128 are handled correctly -lib/termcap/Makefile.in - - fix target for installed termcap library (normally unused) +builtins/printf.def + - change bexpand() and printstr() to handle strings with a leading + '\0' whose length is non-zero, since that's valid input for the + `%b' format specifier -lib/tilde/Makefile.in - - fix install target to install in $(libdir) (normally unused) +subst.c + - fix a couple of instances of find_variable that didn't check the + result for an invisible variable -Makefile.in - - don't make $(man3dir) since there's nothing installed there +variables.c + - BASH_ARGC, BASH_ARGV, BASH_SOURCE, BASH_LINENO no longer created as + invisible vars -Makefile.in,doc/Makefile.in - - change `man1ext' to `.1', `man3ext' to `.3' - - change appropriate install targets to use new values of man[13]ext - - use `test ...' instead of `[...]' - - add support for DESTDIR root installation prefix, for package - building (installdirs, install, install-strip, uninstall targets) +pcomplete.c + - make sure COMP_WORDS is not invisible when bind_comp_words returns + - ditto for COMPREPLY in gen_shell_function_matches -builtins/common.c - - new function int get_exitstat(WORD_LIST *list) returns an eight-bit - exit status value for use in return, exit, logout builtins + 8/4 + --- +braces.c + - fix problem where ${ was ignored but did not increment the open + brace count. Bug reported by Tim Waugh -builtins/common.h - - extern declaration for get_exitstat() +variables.c + - if make_local_variable finds a variable in the correct context in + the right variable scope, make sure it's not invisible before + returning it -builtins/{exit,return}.def - - call get_exitstat where appropriate + 8/5 + --- +builtins/trap.def + - fixed usage message to show `action' as not optional, though it + actually is when not in posix mode (for a single argument) -builtins/printf.def - - add support for "'" flag character as posix 1003.2-200x d6 says - - fix core dump when user-supplied field width or precision is 0 - - fix to printstr() to handle zero-length precision with `%b' format - specifier (printf '%.0b-%.0s\n' foo bar) - - fix to printstr() to treat a negative field width as a positive - field width with left-justification - - fix to mklong to avoid static buffers, which can always be overrun - by someone sufficiently motivated + 8/7 + --- +configure.in + - kfreebsd-gnu has had its sbrk() problems fixed, and no longer needs + to be configured --without-gnu-malloc -bashline.c - - change var in add_host_name to type `size_t' for passing to xrealloc +lib/readline/vi_mode.c + - in rl_vi_search, free any saved history line before starting the + search, so failure leaves you at that line, not the last line in + the history (assuming the current line is not the last history line). + Fix from llattanzi@apple.com to replace fix of 7/7 - 5/3 + 8/9 --- -execute_cmd.c - - change restore_signal_mask to accept a sigset_t *, since a sigset_t - may not fit into a pointer, change call +support/Makefile.in + - renamed `mostly-clean' target to `mostlyclean' -unwind_prot.c - - use a union UWP in restore_variable when restoring a variable whose - size is the same as sizeof(int), the reverse of the method used to - store it in unwind_protect_int + 8/11 + ---- +lib/readline/vi_mode.c + - make same change for EOL in multibyte character case of + rl_vi_change_char -builtins/printf.def - - use a #define LENMODS containing the length modifiers instead of - testing against each possible modifier character, save any mod - character found - - add support for ISO C99 length specifiers `j', `t', and `z' - - if `L' modifier is supplied with a floating point conversion char, - pass a `long double' to printf if HAVE_LONG_DOUBLE is defined + 8/12 + ---- +subst.c + - in verify_substring_values, fix off-by-one error checking bounds of + `offset', esp. in array values (e.g., getting the highest element + of an array) -configure.in,config.h.in - - call AC_C_LONG_DOUBLE to check for `long double'; define - HAVE_LONG_DOUBLE if supported + 8/16 + ---- +aclocal.m4 + - change BASH_CHECK_DEV_FD to make sure that file descriptors > 2 are + accessible via /dev/fd, unlike FreeBSD 5.x -bashline.c - - fix an inadvertantly-unclosed comment in attempt_shell_completion - - make set_saved_history return a value - - make dynamic_complete_history return a useful value +lib/sh/strftime.c + - make sure `zone' is initialized with gettimeofday before it is used + - work around HPUX lack of `altzone' and differing definitions of + `timezone' -{make_cmd,execute_cmd,shell,subst,trap,variables,input,unwind_prot,test, -pcomplete}.c - - removed some declared-but-unused variables +lib/malloc/malloc.c + - internal_memalign and memalign now take a `size_t' as their first + argument, which seems to be the prevailing standard -builtins/{cd,enable,fc,set,setattr,type,umask,printf,complete}.def - - removed some declared-but-unused variables +lib/malloc/{malloc.c,shmalloc.h} + - change sh_memalign to take a `size_t' as its first argument -lib/sh/{zread,netopen}.c - - removed some declared-but-unused variables +builtins/echo.def + - if posixly_correct and xpg_echo are both set, don't try to interpret + any arguments at all, as POSIX/XOPEN requires (fix inspired by Paul + Eggert) -execute_cmd.c - - in execute_arith_command, use a long variable to hold the result - of evalexp(), since that's what it returns +doc/bashref.texi + - amend description of bash posix mode to include new echo behavior -builtins/evalstring.c - - make cat_file return -1 on a read or write error - -lib/sh/stringlib.c - - make merge_stringlists() return the right value +builtins/fg_bg.def + - allow bg to take multiple job arguments, as posix seems to specify, + placing them all in the background, returning the status of the last + one as the status of `bg' - 5/7 - --- -pcomplete.c - - remove typo that caused empty declaration (;;) +lib/readline/vi_mode + - fix _rl_vi_change_mbchar_case (multibyte-char version of `~' + command) to have the right behavior at EOL -- handle case where vi + mode backs up at the end of the line -parse.y - - fix yyerror() to accept a single string argument; fix callers + 8/18 + ---- +array.c + - check for an empty array in array_rshift before shifting elements + and adjusting max_index + - check for null array in array_subrange -trap.c - - cast pointer to long instead of int when printing message with - internal_warning() in run_pending_traps() +jobs.c + - fix raw_job_exit_status to not ignore exit status of the last + process in the pipeline when `set -o pipefail' is enabled -subst.c - - fix process_substitute to handle stdin being closed + 8/19 + ---- +lib/readline/mbutil.c + - make sure _rl_find_next_mbchar_internal has a valid multibyte + character before it checks whether or not it's a zero-width + wide character and adjusts point accordingly -test.c - - change `while' to `if' in and() and or(), since the loop isn't - actually performed -- there's an unconditional `return' in the - loop body - - check for integer overflow of arguments to `-t' + 8/24 + ---- +bashline.c + - new function, bash_directory_expansion, duplicates the expansions + performed on the directory name by rl_filename_completion_function + - call bash_directory_expansion in command_word_completion_function + if we decide we're doing tilde expansion (and any other + canonicalization) on the directory name being completed -lib/sh/netopen.c - - change _getserv() to reject negative port/service numbers + 8/25 + ---- +configure.in + - use new-style AC_CHECK_HEADER to check for sys/ptem.h (which requires + sys/stream.h). The correct checks are in the code, but autoconf + complains if sys/stream.h is not included, rather than simply + checking for the header's presence -expr.c - - fix strlong() to not convert the base specification from long to - int before checking for overflow, since truncation on machines - where sizeof(int) != sizeof(long) may mask errors + 8/26 + ---- +builtins/hash.def + - fix a bug that prevented `hash -d' from working right (as soon as + hash removed a command from the table, the bug caused it to be added + right back) -builtins/{jobs,kill,wait}.def - - use legal_number instead of atoi when converting strings to pid_t; - check for numeric overflow + 8/27 + ---- +doc/{bash.1,bashref.texi} + - explicitly note that conditional primaries that operate on files + operate on the targets of symbolic links rather than the links + themselves -input.c - - fix for cygwin in b_fill_buffer -- off-by-one error when checking - buffer for \r\n termination + 8/30 + ---- +lib/readline/display.c + - fix multibyte calculation of `physchars' in prompt expansion, to + handle double-width multibyte characters correctly + - changes to rl_redisplay to handle prompts longer than the screenwidth + that might contain double-width multibyte characters. Fixes from + Tomohiro Kubota -general.h - - new #define INT_STRLEN_BOUND(t), computes max length of string - representing integer value of type T, possibly including a sign - character - - include if it's present + 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 -{execute_cmd,findcmd,test}.c - - don't include , since general.h does it now + 9/8 + --- +lib/readline/complete.c + - change fnprint to calculate the displayed width of a filename in + the same way as fnwidth -{execute_cmd,lib/sh/itos,pcomplete,print_cmd,subst,variables}.c - - use INT_STRLEN_BOUND instead of static array sizes when converting - various strings to integer values +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) -shell.h - - struct fd_bitmap now uses an `int' size, since it's bounded by - the number of file descriptors, which must fit into an `int' +builtins/common.c + - new error function, sh_wrerror(), for builtins to call when a write + error occurs -execute_cmd.c - - FD_BITMAP_DEFAULT_SIZE is now 32, not 32L - - new_fd_bitmap takes an `int' size parameter, not a `long' +builtins/common.h + - extern declaration for sh_wrerror() -execute_cmd.h - - change prototype for new_fd_bitmap() +builtins/cd.def + - change builtin_error call to use sh_wrerror() -test.c - - fix test_stat to check for overflow when parsing the integer file - descriptor number; return ENOENT instead of EBADF for files that - are not open +builtins/echo.def + - report write errors with sh_wrerror() instead of just returning + failure -hashlib.c - - don't discard the upper 32 bits of the random value, if present +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 -lib/readline/shell.c - - use the same INT_STRLEN_BOUND mechanism to decide how much space to - allocated in sh_set_lines_and_columns +execute_cmd.c + - change execute_in_subshell so the subshell command inherits the + command timing flags from the enclosing COMMAND * - 5/8 - --- -aclocal.m4 - - add check for libtinfo (termcap-specific portion of ncurses-5.2) to - BASH_CHECK_LIB_TERMCAP - - new macro, RL_LIB_READLINE_VERSION, checks version of installed - readline library and (optionally) writes version #defines to - config.h. Bash doesn't use the version defines + 9/11 + ---- +[prayers for the victims of 9/11/2001] -configure.in - - call RL_LIB_READLINE_VERSION instead of support/rlvers.sh +lib/sh/strnlen.c + - new file, implementation of GNU libc extension function strnlen -execute_cmd.c - - fix execute_shell_script and the WHITECHAR and STRINGCHAR macros - to check array bounds before indexing into the sample string +lib/sh/Makefile.in, {config.h,configure,Makefile}.in, MANIFEST + - changes for strnlen -unwind_prot.[ch] - - import new versions submitted by Paul Eggert - with a couple of changes for backwards compatibility, so the rest - of the source doesn't need to be changed yet +configure.in + - version changed to 3.1-devel -jobs.c - - use unwind_protect_var on last_made_pid in run_sigchld_trap +doc/bash.1, lib/readline/doc/rluser.texi + - added description of `-o plusdirs' to complete/compgen (thanks, + Arnold) -builtins/bind.def - - use unwind_protect_var on rl_outstream +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 -general.c - - rework print_rlimtype to use INT_STRLEN_BOUND and handle the - most negative number correctly + 9/13 + ---- +variables.c + - make BASH_ARGC, BASH_ARGV, BASH_LINENO, and BASH_SOURCE + non-unsettable, since the shell uses those values internally expr.c - - `tokval' should have been a `long', since all arithmetic is done - as longs - -builtins/history.def - - consolidate tests for valid history position in one block to - avoid duplicate code and strings + - make exponentiation right-associative, as is apparently correct -builtins/ulimit.def - - fix check for overflow when setting limit to work when int is 32 - bits and RLIMTYPE is 64 + 9/16 + ---- +arrayfunc.c + - make sure convert_var_to_array marks the environment as needing + recreation if the converted variable was exported -lib/sh/tmpfile.c - - don't truncate the result of time(3) to int; just use time_t, - since it's being assigned to an `unsigned long' + 9/17 + ---- +braces.c + - mark ${ as introducing an additional level of braces only if it's + not in a quoted string -- quoted strings are handled before brace + matching is done -mailcheck.c - - use legal_number instead of atoi in time_to_check_mail() to catch - more numeric errors; consolidate error checking in one block - - last_time_mail_checked should be a time_t +parse.y + - fixed an obscure problem in history_delimiting_chars where the `in' + in a case statement could have a semicolon added after it, if the + `case word' was on a previous line - 5/9 - --- -builtins/set.def - - recognize `set [-+]o nolog' if HISTORY is defined +support/config.guess + - support for newest versions of tandem non-stop kernel -bashline.c - - new variable `dont_save_function_defs', set by `set -o nolog'; - currently ignored +lib/readline/display.c + - in compute_lcd_of_matches, explicitly cast `text' to `char *' before + passing it to rl_filename_dequoting_function -command.h - - the `dest' member of a REDIRECTEE is now an `int' +lib/readline/terminal.c + - bind the key sequence sent by the keypad `delete' key to delete-char + (same as ^D in emacs mode) -parse.y,redir.c - - changed uses of `redir.test' (where redir is a REDIRECTEE) since - it's now an int +builtins/ulimit.def + - in print_all_limits, don't print anything if get_limit returns + -1/EINVAL, indicating that the kernel doesn't support that particular + limit + - add -i (max number of pending signals), -q (max size of posix msg + queues), -x (max number of file locks) for systems (Linux) that + support them -lib/readline/rlstdc.h - - don't mess around with `const', rely on configure to supply a - proper definition if the compiler doesn't support it +doc/{bash.1,bashref.texi} + - fix description of correspondence between FUNCNAME, BASH_LINENO, + and BASH_SOURCE indices in description of BASH_LINENO -lib/tilde/tilde.h - - include if HAVE_CONFIG_H is defined - - don't mess around with `const', rely on configure + 9/18 + ---- +lib/sh/shquote.c + - don't quote CTLESC and CTLNUL with CTLESC in sh_backslash_quote, as + long as the resultant string never gets sent to the word expansion + functions without going through the shell parser -builtins/shopt.def - - new read-only `shopt' option, login_shell, non-zero if shell is a - login shell (as decided by shell.c) - - new function set_login_shell(), sets shopt private value of - login_shell +externs.h + - add extern declarations for strnlen and strpbkrk from lib/sh -builtins/common.h - - new extern declaration for set_login_shell +subst.[ch] + - changes to handle case where IFS consists of multibyte characters. + Changed: string_extract_verbatim, split_at_delims, + string_list_dollar_star, string_list_dollar_at, list_string, + get_word_from_string, setifs -shell.c - - call set_login_shell after setting value of login_shell (in - main() and set_shell_name()) + 9/19 + ---- +mailcheck.c + - change file_mod_date_changed to reset the cached mail file data if + the file size drops to zero -parse.y - - added new `\A' prompt string escape sequence: time in 24-hour - HH:MM format +lib/readline/complete.c + - change append_to_match so that a non-zero value for + rl_completion_suppress_append will cause no `/' to be appended to a + directory name -configure.in, config.h.in - - check for , define HAVE_GRP_H if found +bashline.c + - experimental change to suppress appending a slash for a completed + filename that is found in PATH as well as a directory in the current + directory under certain circumstances: a single instance found in + $PATH when `.' is not in $PATH, and multiple instances found in the + $PATH, even when `.' is in the $PATH -builtins/complete.def - - add new `-A group/-g' option to complete group names + 9/24 + ---- +command.h + - new word flag: W_ASSIGNRHS, means word is rhs of assignment statement + - new word flag: W_NOTILDE, means word is not to be tilde expanded + - new word flag (internal): W_ITILDE, means the next character is a + tilde that should be expanded -pcomplete.h - - new define for CA_GROUP, used with group name completion +general.c + - new set of tilde suffixes for use when parsing the RHS of an + assignment statement and =~ should not be subject to tilde expansion + - if ASSIGN_P argument to bash_tilde_expand is 2, use tilde prefixes + for parsing RHS of assignment statement -pcomplete.c - - add code to support CA_GROUP group name completion +general.[ch] + - new function bash_tilde_find_word, drop-in replacement for + tilde_find_word -bashline.c - - new function, bash_groupname_completion_function(), supports - programmable completion of group names +subst.c + - call bash_tilde_expand with secord argument of 2 when expanding rhs + of an assignment statement, so tildes after second and subsequent + `=' in an assignment are not expanded + - new function, expand_string_assignment, to expand the rhs of an + assignment statement + - add `~' to EXP_CHAR, the characters that will cause the word + expansion functions to be called + - move tilde expansion into expand_word_internal instead of many + different calls to bash_tilde_expand scattered across different + functions. NOTE: This means that double quotes surrounding a + {paramOPword} expansion will cause tilde expansion to NOT be + performed on `word'. I think this is right, what POSIX specifies, + and consistent with the behavior of other characters in the rhs -bashline.h - - extern declaration for bash_groupname_completion_function +execute_cmd.c + - take out calls to bash_tilde_expand before calling word expansion + functions -lib/readline/bind.c - - new inputrc variable, `match-hidden-files', controls completion - matching files beginning with a `.' (on Unix) - -lib/readline/complete.c - - new variable, _rl_match_hidden_files, mirrors `match-hidden-files' - inputrc variable - -lib/readline/rlprivate.h - - extern declaration for _rl_match_hidden_files + 9/26 + ---- +execute_cmd.c + - make sure to call UNBLOCK_CHILD before returning on a pipe creation + failure in execute_pipeline -builtins/hash.def - - new `-t' option to list hash values for each filename argument + 9/27 + ---- +variables.c + - change get_bash_command to deal with the_printed_command_except_trap + being NULL -builtins/read.def - - alarm(3) takes an `unsigned int' argument, not int - - check for arithmetic overflow with -t and -n options +execute_cmd.c + - fix execute_simple_command to deal with the_printed_command being + NULL when assigning to the_printed_command_except_trap -- fixes + seg fault in savestring() -input.c - - check for read error before doing \r\n translation on cygwin in - b_fill_buffer - - reset bp->b_used to 0 instead of leaving it at -1 on read error - in b_fill_buffer +parse.y + - change the parser so that the closing `)' in a compound variable + assignment delimits a token -- ksh93 does it this way -builtins/shopt.def - - new functions, shopt_setopt(name, mode) and - shopt_listopt(name, mode) to give the rest of the shell an easy - interface +doc/{bash.1,bashref.texi} + - change description of tilde expansion to note that expansion is + attempted only after the first =~ in an assignment statement -builtins/common.h - - extern declarations for shopt_setopt and shopt_listopt +builtins/declare.def + - when assigning to an array variable with declare -a x=(...), make + sure the last character in the rhs of the variable assignment is + `)', not just that it appears somewhere -shell.c - - new invocation options -O and +O, to list or set/unset shopt - options like +o/-o sets and unsets `set -o' options + 9/28 + ---- +command.h + - add a `W_NOEXPAND' flag to inhibit all expansion except quote removal + - add a `W_COMPASSIGN' flag to denote a word is a compound assignment + statement -doc/{bash.1,bashref.texi} - - document `set -o nolog' - - document `login_shell' shopt option - - document new `\A' prompt string escape sequence - - document new `-t' option to `hash' - - document new `[+-]O' invocation option +parse.y + - set W_COMPASSIGN on words that appear to be compound assignments -doc/bashref.texi - - add text to `Invoking Bash' section defining a login shell; text - taken from man page +subst.c + - pass W_NOXPAND and W_COMPASSIGN through end of expand_word_internal -doc/bash.1, lib/readline/doc/rluser.texinfo - - documented new complete/compgen `-A group/-g' option +subst.[ch] + - new function, expand_assignment_string_to_string, calls + expand_string_assignment and then string_list on the result -lib/readline/doc/{rluser.texinfo,readline.3}, doc/bash.1 - - documented new `match-hidden-files' inputrc variable +variables.c + - assign_in_env now calls expand_assignment_string_to_string - 5/10 + 9/30 ---- -configure.in - - fix AC_CHECK_PROG(ar, ...) - - add AC_CHECK_TYPE for ssize_t +builtins/common.c + - change get_job_spec so the null job `%' once again means the current + job -config.h.in - - new #undef for ssize_t + 10/1 + ---- +subst.c + - do_assignment_internal now takes a WORD_DESC * as its first + argument, and uses its `word' member as the assignment string + - change expand_word_list_internal to call do_word_assignment instead + of do_assignment, passing it `word' instead of, e.g., `word->word' + - change extract_array_assignment_list to just return the passed + string minus a trailing `)' if the last character is a right + paren + - change do_assignment_internal to call extract_array_assignment_list -lib/sh/zread.c - - int -> ssize_t fixes to mirror modern declarations of read and write - - the `off' variable in zsyncfd should be an off_t since it computes - a file offset - - the local buffer `lbuf' is now char, since it's not nice to pass - unsigned char * to read(2), and the values from it are assigned to - a char anyway - - lind and lused are now size_t, since they index into a buffer - - set lused to 0 on read error - -lib/sh/zwrite.c - - change second argument to type `char *', since ISO C says you have - to pass a `char *' to `write' +subst.[ch] + - change do_assignment and do_assignment_no_expand to take a `char *' + instead of `const char *' first argument; change extern prototypes + - new function, do_word_assignment, takes a WORD_DESC * and calls + do_assignment_internal on it; add extern declaration with prototype -externs.h - - fix extern declarations of zread, zread1, zreadc, and zwrite - - prototype extern declaration of qsort_string_compare - - add extern declaration for history_delimiting_chars() from parse.y +general.h + - new typedef, sh_wassign_func_t, like sh_assign_func_t but takes a + WORD_DESC * as its first argument -input.h - - b_used and b_inputp members ofr struct BSTREAM are now size_t +variables.[ch] + - assign_in_env now takes a WORD_DESC * as its first argument -builtins/evalstring.c - - the number of chars read with zread in cat_file should be assigned - to a variable of type ssize_t + 10/2 + ---- +command.h + - new word flag, W_ASSNBLTIN, denotes that the word is a builtin + command (in a command position) that takes assignment statements + as arguments, like `declare' + - new word flags, W_ASSIGNARG, denotes that word is an assignment + statement given as argument to assignment builtin -input.c - - the number of chars read with zread in b_fill_buffer should be - assigned to a variable of type ssize_t - - `localbuf' is now type char[], since POSIX says you shouldn't pass - unsigned char * to read(2) - - in getc_with_restart(), use a variable of type unsigned char to - get a value from the local buffer and return it - - in ungetc_with_restart, explicitly return the character arg passed - to avoid relying on localbuf being unsigned char +execute_cmd.c + - set W_ASSNBLTIN flag in fix_assignment_words if necessary (if there + are any arguments that are assignment statements) + - set W_ASSIGNARG flag in fix_assignment_words if necessary subst.c - - the number of chars read with zread in read_comsub should be - assigned to a variable of type ssize_t + - new function, do_compound_assignment, encapsulates the necessary + code to perform a compound array assignment (including creation of + local variables); called from do_assignment_internal + - to fix the double-expansion problem with compound array assignments + that are arguments to builtins like `declare', changed + shell_expand_word_list to treat those arguments like assignment + statements (with proper creation of local variables inside shell + functions) and pass the attribute-setting portion of the statement + onto the builtin. This is what ksh93 appears to do, from inspection + of the `ksh93 -x' output -mksyntax.c - - instead of casting to unsigned char * in addcstr, use a variable - of type unsigned char and let the compiler do the work +execute_cmd.c + - fix execute_simple_command: in case of pipeline or async command, + when forking early, set `subshell_environment' so that it can contain + both SUBSHELL_PIPE and SUBSHELL_ASYNC -- the two should not be + mutually exclusive. Fixes bug reported by pierre.humblet@ieee.org + - remove references to last_pid, old_command_subst_pid; use NO_PID as + a sentinel value to decide whether or not a child process has been + created and needs to be waited for. Submitted by + pierre.humblet@ieee.org to fix recycling-pid problem on cygwin -parse.y - - instead of casting to unsigned char * in yy_readline_get, use a - variable of type unsigned char and let the compiler do the work - - ditto for yy_string_get and shell_getc (cast to unsigned char) +doc/{bash.1,bashref.texi} + - fixed documentation of `@(pattern)' extended globbing operator -- + it succeeds if the string matches one of the patterns, not exactly + one. This is what ksh93 does, too +lib/readline/complete.c + - fixed rl_menu_complete so that a negative argument cycles backwards + through the list + + 10/3 + ---- subst.c - - instead of casting to unsigned char when assigning to ifscmap in - expand_word_internal, use a variable of type unsigned char and - let the compiler do the work + - use W_COMPASSIGN flag in do_assignment_internal instead of deciding + lexically which assignments are compound array assignments -lib/sh/strtrans.c - - instead of casting to unsigned char in ansic_quote, use a variable - of type unsigned char and let the compiler do the work + 10/6 + ---- +support/shobj-conf + - additions for System V.5 from Boyd Gerber -builtins/evalstring.c - - remove extern declarations for zwrite and run_trap_cleanup; they're - in externs.h - - prototype cat_file forward declaration +subst.c + - in command_substitute, if subshell_environment includes + SUBSHELL_ASYNC, call make_child with the `async_p' argument set to + non-zero. This keeps command substitutions for async commands or + pipelines from trying to give the terminal back to the shell's + pgrp. make sure to save and restore last_asynchronous_pid. Fix + suggested by -Makefile.in - - remove -I$(includedir) from INCLUDES and SUBDIR_INCLUDES + 10/7 + ---- +config.h.in + - add a placeholder definition for WCONTINUED_BROKEN + 10/9 + ---- aclocal.m4 - - change RL_LIB_READLINE_VERSION to set RL_PREFIX, RL_LIBDIR, - and RL_INCLUDEDIR to what it used to test the installed readline - library version for use by the caller - - change RL_LIB_READLINE_VERSION to not compute ac_cv_rl_prefix if - the caller has already assigned it a value - - rename _rl_prefix -> ac_cv_rl_prefix, _rl_libdir -> ac_cv_rl_libdir, - _rl_includedir -> ac_cv_rl_includedir + - add BASH_CHECK_WCONTINUED, checks for glibc bug where WCONTINUED is + defined but rejected as invalid by waitpid(2) configure.in - - change testing of whether to use the value of - $opt_with_installed_readline to be != no, to allow the user to - specify a prefix where the installed readline library may be found - - if --with-installed-readline=PREFIX is supplied, set ac_cv_rl_prefix - to PREFIX before calling RL_LIB_READLINE_VERSION - - if --with-installed-readline[=PREFIX] is supplied, don't set - RL_LIBDIR and RL_INCLUDEDIR; let RL_LIB_READLINE_VERSION take care - of it, set RL_INCLUDE=-I${RL_INCLUDEDIR} - - if --with-installed-readline[=PREFIX] is supplied, and we're - linking with the history library, assign $RL_LIBDIR to HIST_LIBDIR - so we use the same version of the installed readline and history - libraries - -Makefile.in, builtins/Makefile.in - - have configure substitute RL_INCLUDEDIR, set RL_INCLUDEDIR variable - -doc/bashref.texi - - updated description of --with-installed-readline configure option + - add call to BASH_CHECK_WCONTINUED, defines WCONTINUED_BROKEN -general.c - - moved QSFUNC typedef here from builtins/common.c +redir.c + - experimental change to add_undo_redirect to save manipulations to + file descriptors >= SHELL_FD_BASE (10) on the list of redirections + to be undone even if `exec' causes the list to be discarded -{alias,bashline,variables,lib/sh/stringvec}.c - - cast fourth argument to qsort to (QSFUNC *) +doc/{bash.1,bashref.texi} + - note that redirections using file descriptors > 9 should be used + carefully, because they might conflict with file descriptors the + shell uses internally -alias.c - - prototype forward declaration of qsort_alias_compare + 10/11 + ----- +parse.y + - fix pipeline_command production to handle case where `pipeline' + as `argument' of `!' or `time' is null (e.g., a syntax error not + handled by the grammar) -bashhist.c - - include for extern declaration of glob_pattern_p - - remove extern declaration of history_delimiting_chars; it's now - in externs.h - - prototype forward declarations of histignore_item_func, - maybe_add_history, and bash_add_history + 10/13 + ----- +lib/readline/readline.c + - new internal variable, _rl_bind_stty_chars; if non-zero, bind the + terminal special characters to readline equivalents at startup + - change readline_default_bindings() and reset_default_bindings() to + understand _rl_bind_stty_chars -bracecomp.c - - remove extern declaration for sh_backslash_quote; it's in externs.h +lib/readline/rlprivate.h + - new extern declaration for _rl_bind_stty_chars -braces.c - - remove extern declaration for extract_command_subst; it's in subst.h - - prototype forward declarations for expand_amble, array_concat, and - brace_gobbler +lib/readline/rltty.c + - change rl_prep_terminal to add support for _rl_bind_stty_chars -error.c - - prototype extern declaration of give_terminal_to, fix bad call + 10/15 + ----- +lib/readline/bind.c + - new bindable variable, `bind-tty-special-chars', bound to value of + _rl_bind_stty_chars -{execute_cmd,expr,findcmd,jobs,mailcheck,nojobs,pcomplete,print_cmd,redir, -shell}.c - - prototype all static forward function declarations +doc/bash.1,lib/readline/doc/{readline.3,rluser.texi} + - documented new readline variable `bind-tty-special-chars' -pcomplete.c - - changed some function parameters to `const char *' to avoid discarding - const qualifier +builtins/pushd.def + - make the first check for option `--' skip the rest of option + checking -make_cmd.c - - make_bare_word, make_word_flags, and make_word now take a - `const char *' string argument + 10/16 + ----- +lib/readline/shell.c + - change sh_set_lines_and_columns to prefer setenv, which has + predictable memory allocation behavior, to putenv, which does not -make_cmd.h - - changed extern declarations for make_bare_word and make_word + 10/19 + ----- +variables.c + - change push_exported_var so that a tempenv variable has to have the + export attribute set (which they all do -- something to look at) and + the `propagate' attribute set to be propagated down to the next + scope -print_cmd.c - - cprintf now takes a `const char *' as its first argument, like - xprintf and printf - - the conditional define for xprintf should have been HAVE_VPRINTF, - not HAVE_VFPRINTF +execute_cmd.c + - change execute_builtin so that if CMD_COMMAND_BUILTIN is set in the + passed flags argument, call pop_scope with a value that says the + builtin is not special, since `command' means that preceding variable + assignments don't persist in the environment. Fixes problem with + variable assignments preceding command preceding special builtin + keeping those variable assignments around (when in posix mode) -shell.c - - in isnetconn(), the return value of sizeof() is size_t + 10/20 + ----- +lib/sh/shquote.c + - new function, sh_mkdoublequoted, brackets a given string with + double quotes and returns a new string. Flags argument, if non- + zero, means to quote embedded double quotes with backslashes -aclocal.m4 - - add inclusion of stddef.h if STDC_HEADERS is defined to 1 in - BASH_CHECK_TYPE +externs.h + - new extern declaration for sh_mkdoublequoted -configure.in - - add a call to BASH_CHECK_TYPE for socklen_t (type of third argument - to getpeername(2)) +parse.y + - use sh_mkdoublequoted after calling localeexpand() - 5/11 - ---- -lib/readline/bind.c - - make `useq' a char array to pass to rl_macro_bind in - rl_parse_and_bind +lib/sh/strtrans.c + - change ansicstr to understand that (flags & 4) != 0 means to remove + backslash from unrecognized escape sequences -lib/readline/{{bind,isearch}.c,rlprivate.h} - - _rl_isearch_terminators is now a char *, not unsigned char * +general.c + - fix logic problem in assignment() that caused non-variable-starter + characters to be allowed, resulting in things like `1=xxx' creating + a variable `1' in the hash table -{subst,variables,lib/sh/tmpfile}.c - - dollar_dollar_pid is now a `pid_t' instead of `int' + 10/21 + ----- +bashline.c + - don't call programmable_completions with an assignment statement + argument -variables.c - - sbrand() now takes an `unsigned long' to set the seed value - - changed last_random_value to type int, since it's always between - 0 and 32767 - - use strtoul to convert the value in assign_random instead of atoi - - take out casts in any arguments to sbrand() - - take out cast to int in call to inttostr in set_ppid() + 10/22 + ----- +lib/readline/rltty.c + - in prepare_terminal_settings, turn echoing on (readline_echoing_p) + if get_tty_settings fails because the input is not a terminal -subst.c - - don't cast last_asynchronous_pid when passing to itos() + 10/24 + ----- +lib/readline/util.c + - include rlmbutil.h for multibyte definitions + - new function, _rl_walphabetic, wide char version of rl_alphabetic -{sig,subst}.c - - prototype all static forward function declarations +lib/readline/mbutil.c + - new function, _rl_char_value(buf, ind), returns value of (possibly + multibyte) character at buf[ind] - 5/14 - ---- -{test,trap,variables}.c - - prototype all static forward function declarations +lib/readline/rlmbutil.h + - extern defines for _rl_walphabetic and _rl_char_value for when + multibyte chars are not being used + - new wrapper definitions for _rl_find_next_mbchar (MB_NEXTCHAR) and + _rl_find_prev_mbchar (MB_PREVCHAR) that try to avoid unneeded + function calls -variables.c - - free_variable_hash_data() now takes a PTR_T, a `generic pointer' +lib/readline/text.c + - fix rl_foward_word to work with multibyte characters (or in a + multibyte locale) using above utility functions + - fix rl_backward_word to work with multibyte characters (or in a + multibyte locale) using above utility functions -builtins/{alias,bind,break,cd,complete,declare,enable,exit,fc,fg_bg,help, -history,jobs,pushd,read,set,trap,umask, - - prototype all static forward function declarations + 10/26 + ----- +parse.y + - fix parse_matched_pair so that it doesn't swallow \ when + parsing a $'...' construct (call shell_getc with different arg) -builtins/read.def - - reset_eol_delim now takes a `char *' arg, since that's what the - unwind_protect functions pass it, and it ignores its arguments - anyway + 10/28 + ----- +lib/glob/glob.c + - after some (compiled-in) threshold, glob_vector will stop using + alloca to allocate `struct globval's and will switch to using + malloc, with appropriate cleanup before returning -lib/readline/{histsearch,input,kill,rltty,search,vi_mode}.c - - prototype all static forward function declarations +subst.c + - don't expand tildes after `=' in expand_word_internal, even if the + W_TILDEEXP flag is set, unless it's the first tilde in a word + marked W_ASSIGNMENT -lib/tilde/tilde.c - - prototype all static forward function declarations - - tilde_find_prefix, tilde_find_suffix, isolate_tilde_prefix, and - glue_prefix_and_suffix now take `const char *' arguments where - appropriate + 10/31 + ----- +lib/readline/text.c + - make sure rl_point doesn't go below 0 in rl_delete_horizontal_space + (from SUSE, but not sent in) -configure.in,config.h.in - - check for vsnprintf, define HAVE_VSNPRINTF if found +shell.c + - make sure shell_is_restricted skips over a single leading `-' in + the shell name (from SUSE, but not sent in) lib/readline/display.c - - use vsnprintf() in rl_message if it's available; if we don't, at - least set the last character in msg_buf to 0 to avoid overrun -- - we really can't do anything about overflow at this point. if it's - available, this fixes buffer overflow problems in rl_message + - disable `fast redisplay' at the end of the line if in a locale that + supports multibyte characters (from SUSE, but not sent in) - 5/15 - ---- lib/readline/histexpand.c - - in get_history_word_specifier, allow any character to terminate - a `:first-' modifier, not just `:' and null. This is what csh - appears to do. This allows things like `!:0- xyzzy' to replace the - last argument with xyzzy + - fix a problem with finding the delimiter of a `?' substring when + compiled for multibyte characters (from SUSE, but not sent in) - 5/18 + 11/1 ---- -configure.in, config.h.in - - check for , define HAVE_STDINT_H if found - - check for intmax_t in , define intmax_t as long if not - found +lib/readline/display.c + - correct some assignments to _rl_last_c_pos: when in a multibyte + locale, it's used as an absolute cursor position; when not using + multibyte characters, it's a buffer offset. I should have caught + this when the multibyte character support was donated - 5/21 + 11/5 ---- -builtins/kill.def - - change to use strerror() for error message when kill(2) fails +general.c + - change `assignment()' to accept `+=' assignment operator -aclocal.m4 - - new macro, BASH_C_LONG_LONG, check for `long long' +arrayfunc.[ch] + - bind_array_variable and assign_array_element both take a new `flags' + argument + - assign_array_var_from_string, assign_array_from_string, and + assign_array_var_from_word_list now all take a new `flags' argument + - change assign_array_var_from_word_list to understand how to append + to an array variable + - change assign_array_var_from_string to understand how to append + to an array variable. It does not unset the previous value if + appending, allowing both old values to be changed and new ones to + be added -configure.in, config.h.in - - call BASH_C_LONG_LONG, define HAVE_LONG_LONG if found +subst.h + - new flag #defines to use for evaluating assignment statements -lib/sh/snprintf.c - - new file, with implementations of snprintf, vsnprintf, asprintf, - and vasprintf, derived from inetutils version +{subst,variables}.c, builtins/{declare,read}.def + - change callers of assign_array_element and bind_array_variable + - change do_compound_assignment to understand assignment flags + - change do_assignment_internal to set assignment flags and pass them + to underlying functions -Makefile.in, lib/sh/Makefile.in - - add snprintf.c/snprintf.o +pcomplete.c,builtins/{declare,read}.def + - fix callers of assign_array_var_from_string, assign_array_var_from_word_list -configure.in, config.h.in - - add checks for snprintf, asprintf, vasprintf, with appropriate - cpp defines +variables.[ch] + - make_variable_value now takes a new `flags' argument + - make_variable_value now understands how to append to a particular + variable, using the old value + - bind_variable_value now takes a new `flags' argument + - change make_variable_value to understand ASS_APPEND flag + - bind_variable now takes a new `flags' argument + - bind_variable_internal now takes a new `flags' argument -lib/readline/{rldefs,xmalloc}.h, lib/readline/xmalloc.c - - xmalloc and xrealloc now take `size_t' arguments, like their bash - counterparts +arrayfunc.c + - change callers of make_variable_value to add flags arg -externs.h,lib/sh/itos.c - - inttostr and itos now take `long' arguments - - inttostr takes a `size_t' argument for the buffer size +builtins/declare.def + - change callers of bind_variable_value to add flags arg -{expr,lib/malloc/malloc,variables,general}.c - - fixed calls to itos() by removing casts, etc. +{execute_cmd,mailcheck,pcomplete,shell,subst,variables}.c,parse.y +builtins/{cd,command,declare,getopts,read,set,setattr}.def + - change callers of bind_variable to add flags arg -subst.[ch] - - get_dollar_var_value now takes a long, not an int - - sub_append_number now takes a long, not an int +variables.c + - change callers of bind_variable_internal + - change bind_variable_internal to pass assignment flags on to + make_variable_value + - change assign_in_env to treat `var+=value' like `var=value' -subst.c - - in parameter_brace_expand_word, use a long and legal_number to - translate ${N}, to avoid overflow - - in parameter_brace_expand_length, use a long and legal_number to - translate ${#N}, to avoid overflow - - in do_array_element_assignment, array_expand_index, - array_value_internal, use arrayind_t instead of int - - let verify_substring_values take long * arguments for the return - value of evalexp() - - pass long * arguments to verify_substring_values in - parameter_brace_substring - - parameter_brace_expand_length now returns `long' - - parameter_brace_expand now uses a long variable for the return - value of parameter_brace_expand_length - - param_expand now uses a long variable for the return value from - evalexp - - array_length reference now returns an `arrayind_t', since it can - return the num_elements member of an array, which is of type - arrayind_t +arrayfunc.c + - break code that actually constructs the new value and assigns it + to a particular array index out into a new functions: + bind_array_var_internal. This fakes out make_variable_value by + passing a dummy SHELL_VAR * so it can do proper appending and other + += processing + - changes to assign_array_var_from_string to accept and process as if + they were `standalone' assignment statements array assignment words + of the form [ind]+=val -subst.h - - array_expand_index now returns an `arrayind_t' + 11/7 + ---- +builtins/declare.def + - added support for `declare [flags] var+=value'. `Flags' are applied + before the assignment is performed, which has implications for things + like `-i' -- if -i is supplied, arithmetic evaluation and increment + will be performed -array.[ch] - - array_subrange now takes arrayind_t arguments, not `int' - - dup_array_subrange now uses arrayind_t local variable to do - array indexing - - use long to print array indices in print_element +builtins/setattr.def + - add support for `+=' assignment for rest of `assignment builtins': + export, readonly -variables.c - - null_array_assign, assign_dirstack, bind_array_variable - now take arrayind_t arguments as array indices - - assign_array_var_from_word_list, assign_array_var_from_string, - unbind_array_element now use arrayind_t local variables for - array indexing + 11/12 + ----- +lib/readline/display.c + - make sure prompt_physical_chars and prompt_invis_chars_first_line + are reset to 0 if the prompt string passed to rl_expand_prompt is + NULL or empty -variables.h - - change extern declaration of bind_array_variable + 11/14 + ----- +{configure,config.h}.in + - check for `raise', define HAVE_RAISE if available -builtins/common.[ch] - - get_numeric_arg now returns a `long', since it usually returns - the value of legal_number() +lib/intl/dcigettext.c + - make sure `raise' is defined if HAVE_RAISE is not before + eval-plurah.h is included -builtins/{shift,break}.def - - use long variables for the return value of get_numeric_arg +lib/malloc/trace.c + - put extern declaration for imalloc_fopen inside the MALLOC_TRACE + #ifdef -builtins/history.def - - convert string argument to int only if it's in range + 11/16 + ----- +lib/intl/Makefile.in + - make sure SHELL is defined to cpp -builtins/pushd.def - - set_dirstack_element and get_dirstack_element now take `long' - index arguments - - get_dirstack_index now takes a `long' index argument, since it's - passed the converted value from legal_number +lib/intl/dcigettext.c + - make sure we use getcwd() even if HAVE_GETCWD is not defined after + including config.h; if SHELL is defined, #define HAVE_GETCWD -lib/sh/timeval.c - - in print_timeval, don't assume that the number of minutes fits into - an int, since it's just seconds/60. + 11/18 + ----- +trap.[ch] + - new function, int signal_in_progress(int sig), returns TRUE if the + trap handler for signal SIG is currently executing -lib/sh/clock.c - - ditto for print_clock_t + 11/19 + ----- +redir.c + - slightly change do_redirection_internal to set the close-on-exec + flag for file descriptors > 2 used to save file descriptors < 2 + using explicit redirections (e.g., `exec 3>&1'). This keeps file + descriptors pointing to pipes from being left open but doesn't + change the shell's file descriptor semantics - 5/22 - ---- -shell.c - - since the -O option settings may possibly be overridden by the - normal shell initialization or posix initialization, save the - invocation options on an alist (with add_shopt_to_alist) and - process them after basic initialization (with run_shopt_alist) + 11/20 + ----- +doc/{bash.1,bashref.texi} + - correct some minor typos, forwarded from doko@debian.org - 5/23 - ---- -trap.h - - new define, BASH_NSIG, all system signals plus special bash traps + 11/22 + ----- +doc/bash.1,lib/readline/doc/{readline.3,rluser.texi} + - documented detail that yank-last-arg and yank-nth-arg use the history + arg expansion code (and, as a result, are subject to restrictions + of the history-comment character) -trap.c, builtins/trap.def - - use BASH_NSIG for array bounds and loops where appropriate + 11/23 + ----- +execute_cmd.c + - changes so that BASH_COMMAND preserves its value into a DEBUG trap: + for commands, arithmetic for command expressions, select commands, + case commands, (( commands, [[ commands, simple commands -trap.c - - change decode_signal to disallow numeric signal numbers above - NSIG -- this means you can only reference special traps like - DEBUG by name - - new SPECIAL_TRAP(s) macro to test whether s is one of the special - bash traps (currently DEBUG and EXIT) - - change reset_or_restore_signal_handlers so command substitution - doesn't inherit the debug trap (like ksh93), and child processes - don't have to rely on initialize_traps being run to get rid of - any debug trap + 11/24 + ----- +doc/{bash.1,bashref.texi} + - changed description of `set' builtin slightly so that it is clear + that only variables are displayed in posix mode and that read-only + variables can't be reset by simply sourcing the output of `set' -support/mksignames.c - - add extra "ERR" signal name, value NSIG+1, allocate space for it - and write it out in signal_names[] +lib/sh/strftime.c + - don't try to redefine `inline' if it's already defined -trap.h - - new define: ERROR_TRAP == NSIG+1, change BASH_NSIG to NSIG+2 - - extern declarations for set_error_trap, run_error_trap - - new define: TRAP_STRING(s), expands to trap_list[s] if signal S - is trapped and not ignored, NULL otherwise + 11/26 + ----- +execute_cmd.c + - fix execute_function to check funcname_a after function execution, + since FUNCNAME can be changed or unset within a function -trap.c - - add ERROR_TRAP to SPECIAL_TRAPS define - - initialize ERROR_TRAP stuff in initialize_traps - - new function: set_error_trap(command), sets the ERR trap string - - new function: run_error_trap(command), runs the ERR trap string - - set trap string for ERROR_TRAP to NULL in free_trap_strings - - change reset_or_restore_signal_handlers so child processes don't - inherit the ERR trap - - add case to call run_error_trap in maybe_call_trap_handler + 11/27 + ----- +builtins/evalfile.c + - make same changes as 11/26, this time to _evalfile execute_cmd.c - - in execute_command_internal, keep track of ERR trap and call it if - necessary - - use TRAP_STRING to get the value of debug and error traps - - in execute_function, arrange things so the ERR trap is not inherited - by shell functions, and is saved and restored like the DEBUG trap - -doc/{bash.1,bashref.texi} - - documented new ERR trap + - change execute_function to run the return trap after a function + completes execution even if the shell is compiled without DEBUGGER + defined -tests/{trap.{tests,right},trap2.sub,trap2a.sub} - - added ERR trap tests +trap.c + - change reset_or_restore_signal_handlers so that the RETURN trap is + not inherited by command substitution when DEBUGGER is not defined -subst.c - - on machines without /dev/fd, change the named pipe fifo list to a - list of structs containing pathname and proc information - - change unlink_fifo_list to kill the proc in the fifo list with - signal 0 and not remove the fifo if the proc is still alive. This - should fix the problem on those backward systems without /dev/fd - where fifos were removed when a job using process substitution was - suspended + 11/30 + ----- +lib/readline/misc.c + - fix memory leaks in _rl_free_history_entry and rl_maybe_replace_line + caused by not freeing `timestamp' member of history entry + - make sure timestamp is initialized to NULL in rl_maybe_save_line - 5/24 + 12/1 ---- -examples/loadables/getconf.h - - new file, with basic defines needed to make getconf work minimally - on POSIX systems without the necessary definitions +execute_cmd.c + - fix execute_function so a function calling `return' will run the + RETURN trap, if one's defined + +doc/{bash.1,bashref.texi} + - fix description of RETURN trap in various places to indicate that it's + only inherited by shell functions if function tracing is on globally + or has been enabled for that function + - fix documentation to indicate that the DEBUG and RETURN traps are + inherited under the same conditions -examples/loadables/getconf.c - - replacement functions for confstr, sysconf, pathconf for systems - that lack them, providing a minimal posix interface - - heavily augmented getconf, now supports all POSIX.1-200x, - POSIX.2-200x, Solaris 7, AIX 4.2 getconf variables +execute_cmd.c + - a function does not inherit the RETURN trap if a DEBUG trap is + currently running - 5/29 + 12/2 ---- -builtins/setattr.def - - make `readonly', `export', and `declare' print `invisible' variables - as just a command and variable name, without a value, when listing - all variables (as POSIX.2-200x d6 requires) +lib/glob/xmbsrtowcs.c + - change xmbsrtowcs to handle the one case where malloc can fail + (though it should not matter) -- don't try to free a null pointer - 5/30 + 12/9 ---- +subst.c + - fix get_var_and_type to handle var[@], where `var' is a scalar + variable, identically to var -- all calling expansions can now + handle var[@] like var. Bug reported by agriffis@gentoo.org -configure.in - - upgraded to autoconf-2.50 on main development machine, so require - autoconf-2.50 in preparation for using some if its new features - - call AC_C_PROTOTYPES - - remove call to AC_EXEEXT, which now does the wrong thing - - changed AC_INIT to new flavor - - added call to AC_CONFIG_SRCDIR - - AC_CONFIG_HEADER -> AC_CONFIG_HEADERS - - AC_RETSIGTYPE -> AC_TYPE_SIGNAL - -configure.in, aclocal.m4, config.h.in - - removed call to BASH_LARGE_FILE_SUPPORT, use AC_SYS_LARGEFILE - standard support, with new macros _FILE_OFFSET_BITS and - _LARGE_FILES - - removed definition of BASH_LARGE_FILE_SUPPORT + 12/10 + ----- +lib/readline/bind.c + - make new-style "\M-x" keybindings obey `convert-meta' settings + (bug reported by twaugh@redhat.com) -doc/bashref.texi - - document new `--enable-largefile' configure option - -lib/readline/readline.c - - change rl_set_prompt to call rl_expand_prompt unconditionally, so - local_prompt and local_prompt_prefix get set correctly - - 6/6 - --- -lib/readline/complete.c - - don't append `/' or ` ' to a match when completing a symlink that - resolves to a directory, unless the match doesn't add anything - to the word. This means that a tab will complete the word up to - the full name, but not add anything, and a subsequent tab will add - a slash. Change to append_to_match; callers changed - -hashlib.c - - new function, hash_table_nentries (table), returns the number of - items in TABLE - -hashlib.h - - extern declaration for hash_table_nentries + 12/14 + ----- +builtins/set.def + - added description of `-' option to help text -configure.in - - configure without bash malloc on openbsd; they claim it needs - eight-bit alignment (which the bash malloc provides, but...) +builtins/shopt.def + - fix bug that caused `gnu_errfmt' to not be compiled in unless + READLINE is defined - 7/2 - --- -stringlib.c - - only call RESIZE_MALLOCED_BUFFER from strsub() if the replacement - string length is > 0, avoid possible hangs if replacement is null + 12/16 + ----- +subst.c + - fixed a typo in string_extract_verbatim in first call to MBLEN + (used `slen - 1' instead of `slen - i') + 12/17 + ----- subst.c - - don't include input.h; no longer needed + - avoid some calls to strlen if the value is only being used for + ADVANCE_CHAR and MB_CUR_MAX == 1 (since ADVANCE_CHAR doesn't need + it unless multibyte characters are possible) + - change string_extract_verbatim so it takes the length of the string + as a parameter, so we don't have to recompute the length of the same + string over and over again when doing word splitting (that kills if + it's a long string) -configure.in - - remove calls to AC_SYS_RESTARTABLE_SYSCALLS and - BASH_SYS_RESTARTABLE_SYSCALLS; the results are no longer used + 12/18 + ----- +subst.c + - in string_list_dollar_star, make sure to null-terminate the + separator if the character is longer than one byte -config.h.in - - remove define for HAVE_RESTARTABLE_SYSCALLS + 12/22 + ----- +doc/{bash.1,bashref.texi} + - changed text in quoting section explaining that double quotes do + not prevent history expansion from taking place, and that backslashes + escaping ! are not removed -aclocal.m4 - - removed definition of BASH_SYS_RESTARTABLE_SYSCALLS; no longer used + 12/28 + ----- +shell.c + - set gnu_error_format to 1 if running under emacs. This should allow + the emacs `next-error' stuff to work, at least for interactive shells -execute_cmd.c - - changed select command so `return' no longer terminates the select - command, so it can be used to return from an enclosing function. - This is as ksh (88 and 93) does it +parse.y + - change yy_stream_get to set interrupt_immediately before calling + getc_with_restart when the shell is interactive. This avoids the + synchronization problem caused by the call to QUIT in read_a_line, + which results in the first character after a SIGINT/^C to be + dropped -lib/readline/vi_mode.c - - fix trivial typo in declaration of vi_motion; `t' appears twice; - the second instance should be `T' + 12/30 + ----- +builtins/mkbuiltins.c + - changes to write long documentation to arrays as a single string by + default, rather than an array of strings -- enabled by default + - new option, -S, to restore old behavior of writing multiple strings + for long documentation + - changes to avoid filenames written when the separate-filenames option + (-H) has been supplied being run through gettext - 7/3 - --- configure.in - - don't add -static to LDFLAGS on Solaris 2.x. This means that the - auxiliary programs will be built as dynamic executables, but that - should do no harm + - new cofiguration option, --enable-single-help-strings (on by default), + causes help text to be stored as a single string (or smaller set than + one string per line) - 7/5 - --- -lib/glob/fnmatch.c - - fix the code that processes **(pattern) to short-circuit if the - pattern is ill-formed or lacks a trailing `)' -- this fixes the - segfault on **(/*) +builtins/Makefile.in + - pass `-S' to mkbuiltins if single-help-strings is turned off -Makefile.in, builtins/Makefile.in - - split CCFLAGS into CCFLAGS_FOR_BUILD and CFLAGS, to aid in - cross-compilation - - build programs that use $(CC_FOR_BUILD) using $(CCFLAGS_FOR_BUILD) +doc/bashref.texi + - documented new `single-help-strings' configure option -configure.in, config.h.in - - check for getaddrinfo(3), define HAVE_GETADDRINFO if found + 1/3/2005 + -------- +jobs.c + - make wait_for return a non-zero status if the job or processed + waited for is suspended. Returns 128 + stop signal. This fixes + the problem with `echo one && sleep 5 && echo two' displaying + `two' after the sleep is suspended -lib/sh/netopen.c - - implemented a version of _netopen (_netopen6) that uses - getaddrinfo(3) if available, use if HAVE_GETADDRINFO is defined. - old _netopen is _netopen4; _netopen now calls either _netopen6 - or _netopen4 as appropriate + 1/5 + --- +print_cmd.c + - change indirection_level_string so the code duplicates the first + character of $PS4 to indicate the indirection level, rather than + the first byte - 7/9 + 1/8 --- -builtins/exit.def - - don't source ~/.bash_logout if subshell_environment is non-zero +variables.c + - new special variable hook function for COMP_WORDBREAKS; sets + rl_completer_word_break_characters back to NULL when the variable + is unset + - change bind_variable_value to understand dynamic variables with + assign_function set, and handle them correctly. If the variable is + being appended to, use make_variable_value to create the new + value + - change bind_variable_internal to understand dynamic variables with + assign_function set, and handle them the same way + - RANDOM and LINENO now get the integer attribute, so appending works + as expected + - ditto for HISTCMD, MAILCHECK, OPTIND -execute_command.c - - in execute_until_or_while, handle the case where `breaking' is - set in the loop test (e.g., by the job control code when a job - is stopped with SIGTSTP), but the return value from the test is - something that would cause the loop to break. Need to decrement - `breaking' in this case +lib/readline/display.c + - change _rl_make_prompt_for_search to set prompt_physical_chars + appropriately + - rl_save_prompt and rl_restore_prompt save and restore + prompt_prefix_length + - change redraw_prompt to use rl_save_prompt and rl_restore_prompt + - change rl_restore_prompt to set the `save' variables back to + NULL/0 so code can check whether or not the prompt has been saved + - change rl_message and rl_clear_message to save and restore the + prompt if the caller has not already done it (using a simple + semaphore-like variable) + - change rl_message to call expand_prompt, so that local_prompt and + local_prompt prefix are set before calling the redisplay functions, + in case the prompt is longer than a screenwidth (fixes bug + reported to debian by epl@unimelb.edu.au) - 7/10 - ---- -execute_cmd.c - - in execute_in_subshell, make sure a command of type cm_subshell - inherits its `enclosing' command's CMD_IGNORE_RETURN flag +lib/readline/doc/rltech.texi + - make sure to note that rl_save_prompt should be called before + rl_message, and rl_restore_prompt before rl_clear_message -variables.c - - in maybe_make_export_env, don't allow restricted shells to put - exported functions in the export environment +pcomplete.c + - make sure to save and restore the parser state around the call to + execute_shell_function in gen_shell_function_matches. Fixes bug + reported by a050106.1.keeLae3x@captaincrumb.com (cute) - 7/11 +lib/readline/readline.c + - fix _rl_dispatch_subseq in the case where we're recursing back up + the chain (r == -2) and we encounter a key shadowed by a keymap, + but originally bound to self-insert. Calling rl_dispatch with + ANYOTHERKEY as the first argument will call rl_insert, but with + ANYOTHERKEY (256) as the char to insert. Use the shadow keymap + and set things up to dispatch to rl_insert with the shadowed key + as the argument. Fixes the bug reported by Thomas Glanzmann + (sithglan@stud.uni-erlangen.de) + + 1/13 ---- -lib/glob/strmatch.h - - renamed old fnmatch.h - - changed guard #ifdef to _STRMATCH_H - - include system if HAVE_LIBC_FNM_EXTMATCH is defined +command.h + - new word flag: W_HASQUOTEDNULL -lib/glob/strmatch.c - - renamed old fnmatch.c - - include "strmatch.h" - - if HAVE_LIBC_FNM_EXTMATCH is defined, define a dummy version of - strmatch() that just calls fnmatch(3) +make_cmd.c + - new function to allocate a WORD_DESC * without doing anything with a + containing string: alloc_word_desc -lib/glob/glob.c - - include "strmatch.h" - - fnmatch -> strmatch +make_cmd.h + - extern declaration for alloc_word_desc -Makefile.in, lib/glob/Makefile.in - - fnmatch -> strmatch +dispose_cmd.c + - new function to just free a WORD_DESC * without freeing the contained + string: dispose_word_desc -{bashhist,execute_cmd,pathexp,pcomplete,shell,stringlib,subst,test}.c, -pathexp.h,builtins/help.def - - include - - fnmatch -> strmatch +dispose_cmd.h + - extern declaration for dispose_word_desc -execute_cmd.c - - broke the code that parses the interpreter name from a #! line - out from execute_shell_script to a new function, getinterp() - - call getinterp from execute_shell_script - - use return value from getinterp in error message about bad - #! interpreter in shell_execve +subst.c + - change some places to use alloc_word_desc + - make same changes to word_list_quote_removal as were made to + word_list_split + - set W_HASQUOTEDNULL when a word is created with w->word[0] == + CTLNUL and w->word[1] == '\0' - 7/12 - ---- -lib/readline/isearch.c - - the last isearch string is now remembered in a new static variable, - last_isearch_string - - if ^R^R is typed, readline now searches for the remembered isearch - string, if one exists +subst.c + - parameter_brace_expand_word now returns a WORD_DESC * -- changed + callers to understand + - parameter_brace_expand_indir now returns a WORD_DESC * -- changed + callers to understand + - parameter_brace_expand_rhs now returns a WORD_DESC * -- changed + callers to understand + - remove W_HASQUOTEDNULL from a word's flags when remove_quoted_nulls + is called on the word's enclosed string - 7/24 + 1/15 ---- -pcomplete.h - - extern declaration for completions_to_stringlist() +subst.c + - param_expand now returns a WORD_DESC * -- changed callers to + understand + - parameter_brace_expand now returns a WORD_DESC * -- changed + callers to understand + - in expand_word_internal, only call remove_quoted_nulls after a word + is returned with W_HASQUOTEDNULL + - changes to pass W_HASQUOTEDNULL flag out of expand_word_internal; + changed callers to call remove_quoted_nulls only if return value has + W_HASQUOTEDNULL set. This is a mostly-complete fix for the + long-standing CTLNUL confusion between a quoted null expansion and + the expansion of a variable with a literal '\177' in its value + - change string_list_dollar_at to compute the separator character the + same way as string_list_dollar_star: using the already-computed + values generated in setifs() + - when expanding unquoted $*, if $IFS is empty, check whether or not + we're eventually going to split the results (e.g., on the rhs of an + assignment statement) and concatenate the positional parameters as + if the expansion were within double quotes if we're not going to + split - 7/25 - ---- -builtins/complete.def - - make compgen handle -o default option - - make compgen return success only if sl->list_len is non-zero, - indicating that there are items on the list +tests/iquote.tests + - test cases based on old bug reports about the quoted-null vs. 0177 + problem the recent code fixes - 7/31 + 1/16 ---- -execute_cmd.c - - in execute_connection, force stdin to /dev/null for asynchronous - commands if job control is not active, not just if the shell is - running a shell script (since you can run `set -m' in a script) +dispose_cmd.c + - set w->word to 0 before putting a WORD_DESC * back in the cache in + dispose_word_desc; changed callers to delete those assignments -lib/readline/rltty.c - - make sure _rl_tty_restore_signals resets `tty_sigs_disabled' on - successful restoration of the terminal modes - - make sure _rl_tty_disable_signals turns off IXON so that ^S and - ^Q can be read by rl_quoted_insert +variables.c + - change assign_random and get_random_value so that the random number + generator only gets re-seeded once in a subshell environment, and + assigning a value to RANDOM counts as seeding the generator. This + makes the sequences a little more predictable - 8/1 - --- -aclocal.m4 - - new check for FNM_EXTMATCH being defined in , as Ullrich - Drepper intends to do for new versions of GNU libc + 1/20 + ---- +lib/readline/history.c + - fix replace_history_entry, remove_history to return NULL if + passed index is < 0 -config.h.in - - new definition for HAVE_LIBC_FNM_EXTMATCH + 1/22 + ---- +lib/sh/netconn.c + - fix isnetconn() to understand that getpeername can return ENOTCONN + to indicate that an fd is not a socket configure.in - - check for fnmatch, but don't define anything in config.h - - call BASH_FUNC_FNMATCH_EXTMATCH to check for FNM_EXTMATCH + - set BUILD_DIR to contain backslashes to escape any spaces in the + directory name -- this is what make will accept in targets and + prerequisites, so it's better than trying to use double quotes + - set SIZE to the appropriate value if some cross-compiling tool + chain is being used; `size' by default (can be overridden by + SIZE environment variable) - 8/2 - --- -alias.h - - remove bogus extern declaration for xmalloc() - - include "stdc.h" - - add prototype declarations for all extern function declarations +Makefile.in + - use $(SIZE) instead of size; set SIZE from configure -xmalloc.c,lib/readline/xmalloc.c - - fix xmalloc to return a PTR_T - - fix xrealloc to return a PTR_T and take a PTR_T as first argument + 1/31 + ---- +arrayfunc.c + - in array_value_internal, return NULL right away if the variable's + value is NULL, instead of passing a null string to add_string_to_list -include/ansi_stdlib.h - - extern declarations for malloc and realloc have them return PTR_T + 2/1 + --- +jobs.h + - new struct to hold stats and counters for child processes and jobs + - change some uses of global and static variables to use members of + new struct (struct jobstats) -xmalloc.h - - new file, with extern declarations for functions in xmalloc.c + 2/2 + --- -general.h - - removed extern declarations for functions in xmalloc.c - - include xmalloc.h - -Makefile.in,builtins/Makefile.in - - update dependencies to include xmalloc.h +jobs.[ch] + - change PRUNNING to PALIVE + - new define INVALID_JOB + - new macro get_job_by_jid(ind), currently expands to jobs[ind] + - new define J_JOBSTATE, operates on a JOB * like JOBSTATE operates on + a job index + - new function, reset_job_indices, called from delete_job if + js.j_lastj or js.j_firstj are removed + - change various functions to keep counters and stats in struct jobstats -parse.y,{alias,array,bashline,bracecomp,execute_cmd,findcmd,flags,general, -hashcmd,locale,mailcheck,make_cmd,pathexp,pcomplete,print_cmd,stringlib, -subst,unwind_prot,variables}.c -builtins/{common,evalfile}.c -builtins/{cd,command,enable,exec,printf,read,set}.def -lib/sh/{makepath,netopen,pathphys,setlinebuf,shquote,snprintf,stringlist, -strtrans,tmpfile}.c -lib/readline/{util,terminal,shell,readline,macro,kill,isearch,input, -histfile,histexpand,display,complete,bind}.c - - make sure all calls to xmalloc are cast to the right return value +pcomplete.c, builtins/common.c, builtins/{exit,fg_bg,jobs,kill,wait}.def + - change global variables (e.g., job_slots) to struct members + (e.g., js.j_jobslots) + - use INVALID_JOB define where appropriate + - use get_job_by_jid and J_JOBSTATE where appropriate -siglist.c - - include xmalloc.h +trap.c + - change reset_or_restore_signal_handler to not free the exit trap + string if the function pointer is reset_signal, which is used when + the trap strings shouldn't be freed, like in command substitution -parse.y,{alias,bashline,bracecomp,expr,make_cmd,nojobs,print_cmd,subst}.c -builtins/{fc,printf,read}.def -lib/sh/snprintf.c, lib/tilde/tilde.c -lib/readline/{bind,display,histexpand,isearch,macro,util,vi_mode}.c - - make sure all calls to xrealloc are cast to the right return value + 2/4 + --- +jobs.c + - new function, realloc_jobs_list, copies jobs array to newly-allocated + memory shrinking (or growing) size to have next multiple of JOB_SLOTS + greater than js.j_njobs + - change compact_jobs_list to just call reap_dead_jobs and then + realloc_jobs_list, simplifying it considerably + - discard_pipeline now returns `int': the number of processes freed + - slightly changed the logic deciding whether or not to call + compact_jobs_list: now non-interactive shells will compact the + list if it reaches MAX_JOBS_IN_ARRAY in size -lib/sh/{netopen,setlinebuf,shquote,snprintf}.c, lib/tilde/tilde.c - - include xmalloc.h, remove extern declaration of xmalloc +parse.y + - move test for backslash-newline after pop_string in shell_getc so + that things like -lib/readline/xmalloc.h - - xmalloc and xrealloc should return PTR_T + ((echo 5) \ + (echo 6)) -lib/readline/rldefs.h - - don't include an extern declaration for xmalloc + work right - 8/7 + 2/8 --- -support/shobj-conf - - fixed up commented-out stanzas for HP's unbundled C compiler on - HP/UX - -support/bashbug.sh - - force the subject to be changed from the default +jobs.h + - new structs for holding status of exited background processes, as + POSIX specifies + - new job flag: J_ASYNC -lib/readline/doc/{rluser.texinfo,readline.3}, doc/bash.1 - - document that transpose-words swaps the last two words on the line - if point is at the end of the line +jobs.c + - new functions to manipulate struct holding status of exited + background processes + - new members in struct jobstats to hold pointer to last created job + and last created asynchronous job + - initialize js.c_childmax in initialize_job_control + - if the `async' arg to stop_pipeline is non-null, set the J_ASYNC + flag in the job struct + - set js.j_last_made_job and js.j_last_asynchronous_job in + stop_pipeline + - new function: find_last_proc, returns the PROCESS * to the last proc + in a job's pipeline + - changed find_last_pid to call find_last_proc + - change delete_job to call bgp_add on the last proc of the job being + deleted + - change delete_all_jobs and wait_for_background_pids to call bgp_clear - 8/9 + 2/9 --- -stringlib.c - - fix possible infinite recursion problem with null pattern in - strsub() - -hashlib.c - - new function copy_hash_table to copy a hash table using a caller- - supplied function to copy item data (defaults to savestring()) - -hashlib.h - - new extern declaration for copy_hash_table - -builtins/declare.def - - changes so that declare [-a] var=value assigns `value' to element 0 - of array variable `var' like ksh93 - - change so that declare [-a] var[N]=value assigns `value' to element - N of array variable `var' like ksh93 +jobs.c + - change wait_for_single_pid to look for pid in bgpids.list (using + bgp_search()) if find_pipeline returns NULL - 8/13 + 2/10 ---- -arrayfunc.c - - new file, for miscellaneous array functions - -arrayfunc.h - - new file, extern declarations for functions in arrayfunc.c - -variables.c - - move convert_var_to_array, bind_array_variable, - assign_array_from_string, assign_array_var_from_word_list, - assign_array_var_from_string, quote_array_assignment_chars, - skipsubscript, unbind_array_element, print_array_assignment - to arrayfunc.c - -shell.h - - include arrayfunc.h after variables.h - -variables.h - - remove above extern function declarations moved to arrayfunc.h - - add extern declaration for var_lookup - -Makefile.in - - add arrayfunc.c, arrayfunc.h in appropriate places - - add arrayfunc.h to dependencies - -subst.c - - move valid_array_reference, array_expand_index, array_variable_part, - array_value_internal, array_value (now global), get_array_value, - do_array_element_assignment to arrayfunc.c +support/shobj-conf + - change the solaris-gcc stanza so that it auto-selects the appropriate + options for ld depending on which `ld' gcc says it's going to run -subst.h - - extern declarations for functions above moved to arrayfunc.h + 2/11 + ---- +jobs.h + - add support for PS_RECYCLED as a process state, add PRECYCLED macro + to test it. Change PALIVE and PRUNNING macros to not count processes + in PS_RECYCLED state -arrayfunc.h - - extern declarations for above functions from subst.c +execute_cmd.c + - restore use of last_pid as sentinel value; use NO_PID as sentinel + only if RECYCLES_PIDS is defined -subst.[ch] - - string_list_dollar_star and string_list_dollar_at are now global - functions - - quote_escapes is now a global function +jobs.c + - change find_job to return a pointer to the PROCESS the desired pid + belongs to, analogous to find_pipeline returning pointer to JOB + - change find_job callers to add extra argument + - change running_only arguments to find_pipeline and find_job to + alive_only, since we don't want recycled pids returned here and it + better describes the result + - new function find_process, calls find_pipeline and searches the + returned pipeline for the PROCESS * describing the desired pid + - in make_child, if fork() returns the same pid as the value of + last_asynchronous_pid when RECYCLES_PIDS is defined, avoid pid + aliasing by resetting last_asynchronous_pid to 1 + - use PRUNNING instead of child->running, since we, for the most + part, don't want to consider recycled pids (e.g., in make_child()) + - call find_process instead of find_pipeline in waitchld() + - use PEXITED(p) instead of testing p->running == PS_DONE + - in make_child, call bgp_delete to remove a just-created pid from the + last of saved pid statuses + - in add_process, check whether or not pid being added is already in + the_pipeline or the jobs list (using find_process) and mark it as + recycled if so + - This set of fixes mostly came from Pierre Humblet + to fix pid aliasing and reuse problems on + cygwin -subst.c - - maybe_expand_string -> expand_string_if_necessary - - expand_string_to_string -> expand_string_to_string_internal - - new functions: expand_string_to_string and - expand_string_unsplit_to_string, which call - expand_string_to_string_internal with expand_string and - expand_string_unsplit as the FUNC arguments, respectively +variables.c + - set $_ from the environment if we get it there, set to $0 by + default if not in env -arrayfunc.c - - change array_expand_index to call expand_string_to_string instead - of maybe_expand_string +doc/{bashref.texi,bash.1} + - a couple of clarifying changes to the description of $_ based on + comments from Glenn Morris - 8/14 + 2/15 ---- shell.c - - in execute_env_file, call expand_string_unsplit_to_string - -mailcheck.c - - in check_mail, call expand_string_to_string - -variables.c - - in assign_in_env, call expand_string_unsplit_to_string - -arrayfunc.c - - new function, array_variable_name, splits an array reference into - a name (which is returned as a new string) and subscript - - change array_variable_part to just call array_variable_name and - look up the string returned with find_variable - - new function, find_or_make_array_variable (name, flags) which will - look up an array variable and convert a string variable to an - array if necessary. The FLAGS argument, if non-zero, says to - check the readonly and noassign attributes and fail if either is set - -builtins/read.def - - make `read -a aname' honor any readonly status of `aname' - - read -a now calls find_or_make_array_variable with FLAGS value 1 - -arrayfunc.[ch], subst.c, builtins/{declare,read}.def - - do_array_element_assignment -> assign_array_element + - use strstr instead of strmatch when checking whether $EMACS contains + `term' -- simpler and faster - 8/20 + 2/18 ---- -parse.y - - changed `for' command grammar to allow missing word list after `IN' - token, like latest POSIX drafts require - -lib/sh/tmpfile.c - - in sh_mktmpname(), check for filenum == 0 and init to non-zero number - in this case. it can happen on arithmetic overflow +builtins/cd.def + - implement posix requirement that `pwd -P' set $PWD to a directory + name containing no symlinks + - add new function, setpwd(), just sets (and changes exported value) + of PWD -support/mkversion.sh - - added `[0-9].[0-9][0-9][a-z]' as an acceptable value for a - distribution to allow for intermediate versions, like 2.05a +doc/bashref.texi + - add note to posix mode section about pwd -P setting $PWD -support/config.guess - - removed the addition of the output of `/usr/bin/objformat' when - creating the canonical name on FreeBSD machines, so the canonical - name is once again `freebsd4.2' instead of `freebsdelf4.2' +doc{bash.1,bashref.texi} + - added note that BASH_ARGC and BASH_ARGV are only set in extended + debug mode + - expand description of extdebug option to include everything changed + by extended debug mode - 8/22 + 2/19 ---- -lib/readline/{rlstdc,history,keymaps,readline,rldefs,rlprivate,rlshell, -rltypedefs,xmalloc}.h -lib/readline/{bind,compat,complete,display,funmap,histexpand,histsearch, -input,isearch,kill,nls,parens,readline,rltty,search,shell,signals,vi_mode - - changed __P to PARAMS - -lib/tilde/tilde.[ch] - - changed __P to PARAMS +pathexp.h + - new flag macro, FNMATCH_IGNCASE, evaluates to FNM_CASEFOLD if the + match_ignore_case variable is non-zero -{Makefile,configure}.in - - changed the version number to 2.05a - - changed the release status to `alpha1' +execute_cmd.c + - new variable, match_ignore_case + - change call to strmatch() in execute_case_command so it includes + FNMATCH_IGNCASE - 8/23 - ---- -support/shobj-conf - - support for building shared libraries on Darwin/MacOS X +test.c + - change call to strmatch() in patcomp() so that pattern matching + calls for [[ ... ]] obey the match_ignore_case variable -siglist.h - - extern declaration for strsignal() to compensate for lack of - a definition in some system include files +lib/sh/shmatch.c + - if match_ignore_case is set, enable REG_ICASE in the regexp match + flags -jobs.c - - remove casts from strsignal() calls +builtins/shopt.def + - new settable option, `nocasematch', controls the match_ignore_case + variable. Currently alters pattern matching for case and [[ ... ]] + commands (==, !=, and =~ operators) -[bash-2.05a-alpha1 frozen] +doc/{bashref.texi,bash.1} + - updated descriptions of [[ and case to include reference to + nocasematch option - 8/27 + 2/22 ---- -[bash-2.05a-alpha1 released] +builtins/mkbuiltins.c + - add `times' to the list of posix special builtins - 8/27 + 2/23 ---- -execute_cmd.c - - fix eval_arith_for_expr to handle the case where the expanded - word list is NULL, returning 0 in this case +builtins/cd.def + - posix mode no longer turns on effect of -P option on $PWD if a + directory is chosen from CDPATH -print_cmd.c - - in print_function_def, make sure that func_redirects is assigned - a value before being used +doc/bashref.texi + - clarified that in posix mode, reserved words are not alias expanded + only in a reserved word context + - removed item about cd, $CDPATH, and -P from posix mode section - 8/28 + 2/24 ---- -alias.c - - include for definition of isalpha() +builtins/reserved.def + - minor cleanups to the description of `if' -bashhist.h - - add prototypes for extern function declarations + 3/2 + --- +subst.c + - change list_string and get_word_from_string to explicitly treat an + IFS character that is not space, tab, or newline *and any adjacent + IFS white space* as a single delimiter, as SUSv3/XPG6 says -flags.c - - include bashhist.h for extern function declarations +builtins/read.def + - check whether or not the number of fields is exactly the same as + the number of variables instead of just assigning the rest of the + line (minus any trailing IFS white space) to the last variable. + This parses a field and checks whether or not it consumes all of + the input (including any trailing field delimiters), falling back + to the previous behavior if it does not. This is what POSIX.2 + specifies, I believe (and the consensus of the austin-group list). + This requires a few tests in read.tests to be changed: backslashes + escaping IFS whitespace characters at the end of input cause the + whitespace characters to be preserved in the value assigned to the + variable, and the trailing non-whitespace field delimiter issue -mksyntax.c - - include if HAVE_UNISTD_H is defined in config.h + 3/7 + --- +configure.in + - add -D_POSIX_SOURCE to the LOCAL_CFLAGS for Interix -parse.y - - include test.h for extern function declarations + 3/8 + --- +bashline.c + - make bash_directory_expansion a void function, since it doesn't have + any return value -externs.h - - change extern declaration for setlinebuf to sh_setlinebuf + 3/9 + --- +builtins/read.def + - when testing for a pipe, use `fd' instead of hard-coding 0, since we + can read from other file descriptors now -stringlib.c - - include for extern function declarations +lib/sh/zread.c + - in zsyncfd, only set lind and lused to 0 if the lseek succeeds. + If the lseek fails, we might steal input from other programs, but + a failed lseek won't cause us to erroneously discard input -variables.h - - add function prototypes for all of the sv_* functions - -builtins/common.h - - add extern declarations for set_shellopts() and parse_shellopts() - from builtins/set.def + 3/11 + ---- +builtins/evalstring.c + - don't allow parse_and_execute to short-circuit and call exec() if + the command's return value is being inverted -variables.c - - include "hashcmd.h" for extern declaration for flush_hashed_filenames - - include "pathexp.h" for extern declaration for setup_glob_ignore + 3/15 + ---- +builtins/printf.def + - new macro PC to call putchar and increment number of chars printed - + fixes bug in computation of value for %n format char + - `tw' is now a global var so printstr can modify it using PC() + - convert PF macro to use asprintf into a local buffer + Preparation for printf -v var + - add code to add the text printed to a `variable buffer' if -v option + supplied. The buffer grows as needed + - printf now takes a `-v var' option to put the output into the variable + VAR rather than sending it to stdout. It does not: + print partial output on error (e.g., format string error) + handle NULs in the variable value, as usual -lib/malloc/malloc.c - - cast to `long' instead of `int' in memalign for 64-bit machines + 3/16 + ---- +parse.y + - fix bug in prompt string decoding that caused a core dump when PS1 + contained \W and PWD was unset (null pointer deref) -{pcomplete,trap}.c - - changed printf escape sequences used to print pointers to %p +builtins/printf.def + - changed -v var behavior so it stores partial output into the named + variable upon an error -lib/readline/undo.c - - include "xmalloc.h" for extern function declaration + 3/24 + ---- +lib/readline/bind.c + - bool_to_int now takes a `const char *' argument -input.h - - add function prototypes to extern declarations for getc_with_restart - and ungetc_with_restart +support/{printenv,recho,zecho}.c + - include config.h + - include "bashansi.h" for appropriate extern function declarations -variables.[ch] - - changed type of `function' member of `struct name_and_function' to - `sv_func_t', which is defined and prototyped in variables.h - - map_over now takes an `sh_var_map_func_t *' +configure.in + - on MacOS X 10.4, compensate for loader not allowing static library + to override existing system dynamic library when compiling -dynamic + (affects readline and history libraries); so use absolute pathname + instead of -lreadline as library name -shell.h - - start of a set of function pointer typedefs like those in - lib/readline/rltypedefs.h +lib/glob/{glob,sm_loop,smatch}.c + - make sure to cast arguments to (char *) or (unsigned char *) as + appropriate to avoid gcc4 warnings -hashlib.[ch] - - second paramter to flush_hash_table is now an `sh_free_func_t *' +lib/glob/smatch.c + - collsym (single-byte version) now takes a (CHAR *) first argument to + match callers; cast argument to strncmp appropriately -trap.c - - parameter to reset_or_restore_signal_handlers is now an - `sh_resetsig_func_t *' +lib/sh/snprintf.c + - fix ldfallback and dfallback to handle width and precision specs in + the format passed to sprintf() + - fix STAR_ARGS macro to deal with negative field widths and precisions -pcomplete.h, pcomplib.c - - function pointer argument to print_all_compspecs is now an - `sh_csprint_func_t *' - - function pointer `list_getter' element of an `ITEMLIST' is now - prototyped with __P((...)) instead of using `Function *' + 3/25 + ---- +builtins/printf.def + - since a negative precision in a "x.x[fFgGeE]" format specifier should + be allowed but treated as if the precision were missing, let it + through -jobs.[ch] - - `j_cleanup' member of a JOB is now an `sh_vptrfunc_t *' +lib/sh/snprintf.c + - fix * code to deal with a negative precision by treating it as if + the `.' and any digit string in the precision had not been specified + - fix format parsing code to deal with a negative inline precision, + e.g., "%4.-4f" by treating it as if the `'. and any digit string in + the precision had not been specified + - a `+' in a format specifier should only act as a flag if it comes + before a `.' (otherwise it is ignored) -alias.c - - map_over_aliases now takes an `sh_alias_map_func_t *' - - free_alias_data now takes a `PTR_T' +lib/readline/vi_mode.c + - new function, rl_vi_rubout, to rl_rubout as rl_vi_delete is to + rl_delete; saves deleted text for possible reinsertion as with any + vi-mode `text modification' command (fixes problem with `X' reported + by beat.wieland@gmx.ch) -pathexp.c - - function pointer argument to ignore_globbed_names is now an - `sh_ignore_func_t *' +lib/readline/vi_keymap.c + - bind `X' in vi command mode to rl_vi_rubout -bashline.c - - function pointer argument to _ignore_completion_names is now an - `sh_ignore_func_t *' +lib/readline/funmap.c + - add a bindable `vi-rubout' command, runs rl_vi_rubout -pathexp.h,{bashhist,bashline.c - - `item_func' member of a `struct ignorevar' is now an - `sh_iv_item_func_t *' +lib/readline/text.c + - rewrote internals of _rl_rubout_char to make structure cleaner -builtins/evalfile.c - - `errfunc' is now an `sh_vmsg_func_t *' +lib/readline/{complete,text}.c + - changed code to remove #ifdef HANDLE_MULTIBYTE where possible -jobs.c - - map_over_job now takes an `sh_job_map_func_t *' as its first argument + 3/28 + ---- +lib/readline/examples/rl.c + - include instead of posixstat.h if READLINE_LIBRARY not + defined -array.[ch] - - function pointer argument to array_walk is now an - `sh_ae_map_func_t *' +subst.c + - fix mbstrlen to treat invalid multibyte sequences as sequences of + single-byte characters -general.c - - tilde_expansion_preexpansion_hook has type `tilde_hook_func_t *', - and so the assignment in tilde_initialize doesn't need a cast + 4/8 + --- +configure.in + - default SIZE to `:' if cross-compiling and an appropriate size for + the target is not found -list.c - - map_over_words now takes an `sh_icpfunc_t *' as its second argument + 4/11 + ---- +subst.c + - change match_upattern and match_wpattern to check whether or not the + supplied pattern matches anywhere in the supplied string, prefixing + and appending the pattern with `*' if necessary. If it doesn't we + can short-circuit immediately rather than waste time doing up to + N-1 unsuccessful calls to strmatch/wcsmatch (which kills for long + strings, even if the pattern is short) -input.h - - the `getter' and `ungetter' function pointer members of a - BASH_INPUT are now of types `sh_cget_func_t *' and - `sh_cunget_func_t *' respectively - - init_yy_io now takes an `sh_cget_func_t *' as its first argument and - an `sh_cunget_func_t *' as its second + 4/12 + ---- +configure.in + - make sure the special case for MacOS X 10.4 only kicks in if the + `--with-installed-readline' option isn't supplied -parse.y - - init_yy_io now takes an `sh_cget_func_t *' as its first argument and - an `sh_cunget_func_t *' as its second - - initialize_bash_input casts bash_input.getter and bash_input.ungetter - appropriately +lib/readline/{callback,readline,signals}.c + - make sure rl_prep_term_function and rl_deprep_term_function aren't + dereferenced if NULL (as the documentation says) builtins/mkbuiltins.c - - make the extern function definitions written to builtext.h have - prototypes with __P((...)) - - include "stdc.h" - - change Function to mk_handler_func_t - - fixed comment_handler to take the right number of args - - prototyped all the handler functions with __P((...)) - -builtins.h - - the `function' member of a struct builtin is now of type - `sh_builtin_func_t *' - -builtins/common.[ch] - - last_shell_builtin, this_shell_builtin are now of type - `sh_builtin_func_t *' - - find_shell_builtin, builtin_address, find_special_builtin now return - `sh_builtin_func_t *' + - don't bother with the special HAVE_BCOPY code; just use straight + assignments -builtins/exit.def, {execute_cmd,jobs,nojobs,variables}.c, parse.y - - changed all declarations of last_shell_builtin and this_shell_builtin +builtins/ulimit.def + - use _POSIX_PIPE_BUF in pipesize() if it's defined and PIPE_BUF is + not + 4/13 + ---- execute_cmd.c - - execute_builtin, execute_builtin_or_function, - execute_subshell_builtin_or_function now take an - `sh_builtin_func_t *' instead of a `Function *' for argument - - changed appropriate variables from `Function *' to - `sh_builtin_func_t *' - -builtins/{bind,builtin,enable,read,setattr}.def - - replaced uses of `Function *' in variable declarations with - appropriate types (sh_builtin_func_t * or rl_command_func_t *) - -builtins/set.def - - set_func and get_func members of binary_o_options are now of types - `setopt_set_func_t *' and `setopt_get_func_t *', which are - prototyped + - add cm_function_def to the list of control structures for which + child processes are forked when pipes come in or out -builtins/shopt.def - - set_func member of shopt_vars is now of type `shopt_set_func_t *' + 4/14 + ---- +builtins/read.def + - make sure the ^As added for internal quoting are not counted as + characters read when -n is supplied -bashline.c - - enable_hostname_completion now returns `int' (the old value of - perform_hostname_completion) + 4/20 + ---- +redir.c + - fix redir_open so that the repeat open on failure that AFS support + adds restores the correct value of errno for any error message -[The only use of Function and VFunction now is for unwind-protects] + 4/26 + ---- - 9/4 - --- -lib/sh/getcwd.c - - use const define from config.h rather than `CONST' - - use PTR_T define from xmalloc.h rather than `PTR' - - include xmalloc.h for PTR_T - - remove PATH_MAX define, rely on value from maxpath.h +Makefile.in + - make sure mksignames and mksyntax are invoked with the $(EXEEXT) + extension -{general,mailcheck}.c, lib/sh/{pathcanon,pathphys}.c - - don't include maxpath.h directly; it's already included by shell.h + 4/28 + ---- +lib/readline/readline.h + - new state variable: RL_STATE_CALLBACK, means readline is using the + callback interface -lib/sh/mailstat.c - - new `mailstat()' implementation, to stat a mailbox file for - mail checking. handles maildir-style mail directories with one - file per message and creates a dummy stat struct from them +lib/readline/callback.c + - set RL_STATE_CALLBACK in rl_callback_handler_install, unset in + rl_callback_handler_remove -lib/sh/Makefile.in - - add mailstat.c and mailstat.o in the appropriate places + 4/29 + ---- +config-top.h + - DONT_REPORT_SIGPIPE is now on by default, since it apparently + interferes with scripts -lib/malloc/malloc.c - - augmented implementation with wrapper functions that pass in file - and line number information from cpp. currently unused, but a - placeholder for future debugging and use tracking +configure.in + - arrange things so PGRP_PIPE is defined on Linux-2.4+ and version 3 + kernels (ones that apparently schedule children to run before their + parent) -lib/malloc/shmalloc.h - - new file, extern declarations for allocation wrapper functions for - use by the shell (and others, I guess) + 4/30 + ---- +builtins/caller.def + - add call to no_options, so it can handle `--' option -xmalloc.[ch] - - wrapper functions for xmalloc, xfree, xrealloc (sh_ prefixed) that - pass cpp line number information through to the malloc functions, - if USING_BASH_MALLOC is defined +doc/{bash.1,bashref.texi} + - note explicitly that test, :, true, and false don't understand -- + as meaning the end of options - 9/5 + 5/7 --- -lib/malloc/gmalloc.c - - removed; no longer part of distribution - -lib/malloc/Makefile.in - - removed references to gmalloc.[co] - -configure.in, doc/bashref.texi - - removed references to `--with-glibc-malloc' configure option - -{configure,Makefile}.in - - changed the way bash malloc is configured into the Makefile, making - it more like how readline is configured. If the bash malloc is - not configured in, nothing in lib/malloc will be built +support/shobj-conf + - darwin 8 needs the same LDFLAGS setting as darwin 7 - 9/6 - --- -lib/malloc/imalloc.h - - new file, some internal malloc definitions +parse.y + - in save_parser_state, make sure we cast the return value from + xmalloc() to the right type + - remove casts to (char *) in calls to yyerror() -lib/malloc/mstats.h - - new file, definitions for malloc statistics structs and functions +lib/readline/signals.c + - make SIGQUIT and SIGALRM code conditional on their definition + - use raise() to send a signal if we don't have kill() -lib/malloc/trace.c - - new file, malloc tracing functions (currently just print messages - to stderr), code is #ifdef MALLOC_TRACE +lib/readline/display.c + - some MS-DOS and MINGW changes from the cygwin and mingw folks -lib/malloc/stats.c - - new file, moved malloc stats code from malloc.c to here +config.h.in + - add HAVE_PWD_H for + - add HAVE_FCNTL, HAVE_KILL for respective system calls + - add HAVE_GETPW{ENT,NAM,UID} for passwd functions -lib/malloc/malloc.c - - moved some definitions to imalloc.h - - moved stats code to stats.c - - malloc tracing calls added to internal_{malloc,realloc,free}, all - #ifdef MALLOC_TRACE +configure.in + - add check for + - add checks for fcntl, kill system calls + - add checks for getpw{ent,nam,uid} C library functions + - pass a flag indicating we're cross compiling through to + CFLAGS_FOR_BUILD in Makefile.in -lib/malloc/Makefile.in, Makefile.in - - added {imalloc,mstats}.h, {trace,stats}.c +lib/readline/complete.c + - guard inclusion of with HAVE_PWD_H + - don't provide a missing declaration for getpwent if we don't have it + - guard calls to {get,end}pwent with HAVE_GETPWENT -parse.y - - changed decode_prompt_string to save and restore $? - (last_command_exit_value) around calls to expand_prompt_string(), - so command substitutions in PS1, etc. don't change $? +lib/readline/shell.c + - guard inclusion of with HAVE_PWD_H + - guard inclusion of with HAVE_FCNTL_H + - don't provide a missing declaration for getpwuid if we don't have it + - guard calls to getpwuid with HAVE_GETPWUID + - don't bother with body of sh_unset_nodelay_mode if we don't have + fcntl -{array,subst}.c - - a couple more arrayind_t fixes from Paul Eggert +lib/tilde/tilde.c + - guard inclusion of with HAVE_PWD_H + - guard calls to getpw{nam,uid} with HAVE_GETPW{NAM,UID} + - guard calls to {get,end}pwent with HAVE_GETPWENT -configure.in - - remove redundant check for wait3(2) +Makefile.in,builtins/Makefile.in + - @CROSS_COMPILE@ is substituted into CFLAGS_FOR_BUILD (equal to + -DCROSS_COMPILING if bash is being cross-compiled) -redir.h - - fixed a typo (stdin_redirs -> stdin_redirects) + 5/9 + --- +aclocal.m4 + - print version as `0.0' in RL_LIB_READLINE_VERSION if the + `rl_gnu_readline_p' variable isn't 1 (accept no imitations) - 9/10 + 5/11 ---- -execute_cmd.c - - remove check for \n and \r from WHITESPACE macro, since those - chars are not whitespace as returned by the whitespace(c) macro - - getinterp now takes a `char *' as first arg, not unsigned char * - - execute_shell_script now takes a `char *' as first arg, not - unsigned char * - - fix typo in forward declaration for `initialize_subshell' - -general.[ch] - - check_binary_file now takes a (char *) argument, not unsigned char * - - pass unsigned char to isspace and isprint because of ISO C fuckup - - bash_tilde_expand now takes a `const char *' as its argument +lib/readline/rlprivate.h + - definition of a readline `search context', to be use for incremental + search initially and other types of search later. Original from + Bob Rossi as part of work on incremental searching problems when + using callback interface -builtins/evalfile.c, shell.c - - buffer passed to check_binary_file is char, not unsigned char +lib/readline/isearch.c + - functions to allocate and free search contexts + - function to take a search context and a character just read and + `dispatch' on it: change search parameters, add to search string, + search further, etc. + - isearch is now completely context-driven: a search context is + allocated and passed to the rest of the functions -parse.y - - fix extern declaration for yyerror() - - yyerror now takes a `const char *' as first arg - -{error,jobs}.c - - fixes to printf-style functions to handle pids wider than an int - -lib/readline/{isearch,vi_mode}.c - - fix call to rl_message in rl_display_search (remove extra arg) + 5/12 + ---- +lib/readline/isearch.c + - an additional `isearch cleanup' function that can be called from + the callback interface functions when the search is to be terminated + - an additional `isearch callback' function that can be called from + rl_callback_read_char when input is available + - short-circuit from rl_search_history after initialization if + the callback interface is being used -variables.c - - fix missing argument to builtin_error in make_local_variable +lib/readline/callback.c + - in rl_callback_read_char(), if RL_STATE_ISEARCH is set, call + _rl_isearch_callback to read the character and dispatch on it. + If RL_STATE_ISEARCH is unset when that call returns, and there is + input pending, call rl_callback_read_char() again so we don't + have to wait for new input to pick it up -builtins/getopts.def - - since getopts takes no options, change while loop calling - internal_getopts to a simple `if' check +support/shobj-conf,configure.in + - add support for dragonfly bsd, the same as freebsd -builtins/printf.def - - since printf takes no options, change while loop calling - internal_getopts to a simple `if' check + 5/13-5/15 + --------- +lib/readline/callback.c + - support for readline functions to `register' a function that will + be called when more input is available, with a generic data + structure to encapsulate the arguments and parameters. Primarily + intended for functions that read a single additional character, + like quoted-insert + - support for callback code reading numeric arguments in a loop, + using readline state and an auxiliary variable + - support for callback code performing non-incremental searches using + the same search context struct as the isearch code -lib/readline/bind.c - - remove _SET_BELL macro, expand code inline +lib/readline/{callback,display}.c + - if a callback function sets `_rl_redisplay_wanted', the redisplay + function will be called as soon as it returns lib/readline/input.c - - change _rl_input_available to use either select or FIONREAD, - but not both - -lib/readline/readline.c - - fix rl_digit_loop to remove unreachable code at end of loop - -{bashhist,bashline,expr,jobs,redir,shell}.c, builtins/fc.def, lib/sh/snprintf.c - - bracket unused functions with #ifdef INCLUDE_UNUSED/#endif - - remove some unused variables - -execute_cmd.c - - remove #ifdef'd code that allowed `return' to terminate a select - statement - -expr.c - - remove some extraneous tests from strlong() + - changes to _rl_read_mbchar to handle reading the null multibyte + character and translating it into '\0' -array.h - - arrayind_t is now a long, since shell arithmetic is performed as - longs - - remove second declaration of new_array_element +lib/readline/misc.c + - break rl_digit_loop() into component functions that can be called + individually from the callback code more easily + - share some of the functions with rl_digit_loop1() in vi_mode.c -builtins/printf.def - - in mklong, xrealloc cannot return NULL, so don't check for it - - remove some #if 0 code - - fix core dump triggered by a format specification with more than - one `*' - - remove `foundmod', since its value mirrors `modchar != 0' - - include "common.h" for builtin_{error,usage} declarations +lib/readline/readline.h + - change the version #defines to reflect readline 5.1 -Makefile.in,builtins/Makefile.in - - updated some dependencies due to new include files +lib/readline/search.c + - break code into smaller functions that can be composed to work with + the callback code more easily -pcomplete.c - - include "execute_cmd.h" for declaration of execute_shell_function +lib/readline/text.c + - in rl_quoted_insert(), don't mess around with the tty signals if + running in `callback mode' -arrayfunc.c - - include for printf - - include "builtins/common.h" for builtin_error declaration +lib/readline/vi_mode.c + - changed set-mark, goto-mark, change-char, and char-search to work + when called by callback functions -builtins/evalstring.c - - include "../trap.h" for run_trap_cleanup declaration + 5/17 + ---- -builtins/help.def - - include "common.h" instead of locally declaring builtin_error - and builtin_usage +lib/readline/rlprivate.h + - new struct declaration for a `reading key sequence' context -error.h - - add extern declaration for itrace() - - add prototype to extern declaration of get_name_for_error - - file_error now takes a `const char *' as first argument +lib/readline/readline.c + - new variable, _rl_dispatching_keymap, keeps track of which keymap + we are currently searching + - functions to allocate and deallocate contexts for reading multi-char + key sequences -externs.h - - added prototype for sh_setlinebuf declaration, bracketed with - NEED_SH_SETLINEBUF_DECL so we don't need stdio.h everywhere - - add extern declaration for parse.y:return_EOF() + 5/18 + ---- +lib/readline/rlprivate.h + - new struct defining a context for multiple-key key sequences (the + base case is escape-prefixed commands) -shell.c - - add NEED_SH_SETLINEBUF_DECL before including shell.h +lib/readline/readline.c + - change structure of _rl_dispatch_subseq to allow for callback code + to use it - rudimentary support for supporting the existing + recursion using a stack of contexts, each with a reference to the + previous + - fix so that ^G works when in callback mode lib/readline/callback.c - - include or "ansi_stdlib.h" for abort declaration - -quit.h - - remove declaration of throw_to_top_level - -subst.c - - remove unused extern declaration for getopts_reset + - call the appropriate multiple-key sequence callback if the state is + set -lib/sh/netopen.c - - include for legal_number, etc. - - add prototype for inet_aton extern declaration + 5/19 + ---- +lib/readline/readline.c + - broke code from _readline_internal_char after call to rl_dispatch + out into separate function: _rl_internal_char_cleanup, callable by + other parts of the code + - change _rl_internal_char_cleanup to unset _rl_want_redisplay after + it calls (*rl_redisplay_func) -lib/sh/clock.c - - include for __P declaration - - add extern declaration for get_clk_tck +lib/readline/callback.c + - call _rl_internal_char_cleanup from rl_callback_read_char when + appropriate -support/mkversion.sh - - changed so that extern function declarations for functions in - version.c (moved from externs.h) are in the generated version.h + 5/24 + ---- +lib/readline/callback.c + - use _rl_dispatch_callback and a chain of _rl_keyseq_contexts to + simulate the recursion used to decode multicharacter key sequences + (even things like ESC- as meta-prefix) + - call setjmp in rl_callback_read_char to give things like rl_abort + a place to jump, since the saved location in readline() will not + be valid + - keep calling _rl_dispatch_callback from rl_callback_read_char while + we are still decoding a multi-key key sequence + - keep calling readline_internal_char from rl_callback_read_char while + we are reading characters from a macro -shell.h - - include version.h +lib/readline/macro.c + - use a slightly different strategy upon encountering the end of a macro + when using the callback interface: when the last character of a + macro is read, and we are reading a command, pop the macro off the + stack immediately so the loop in rl_callback_read_char terminates + when it should -version.c - - various `char *' version variables are now `const char *' +lib/readline/readline.c + - if longjmp() is called and we end up at the saved location while + using the callback interface, just return -- don't go back into a + blocking read + - new function to dispose a chain of rl_keyseq_cxts + - only read new input in _rl_dispatch_callback if the KSEQ_DISPATCHED + flag is not set in the current keyseq context -- if it is, we are + traversing the chain back up and should use what we already saved + - use -3 as a magic value from _rl_dispatch_subseq to indicate that + we're allocating a new context and moving downward in the chain + (a special return value for the benefit of _rl_dispatch_callback) -general.h - - add prototype for same_file, bracketed with _POSIXSTAT_H - #ifdef, since that's what include/posixstat.h defines +lib/readline/rlprivate.h + - new extern declaration for _rl_keyseq_chain_dispose -builtins/common.[ch] - - _evalfile, maybe_execute_file, source_file, and fc_execute_file - now take a `const char *' as their first argument + 6/1 + --- +builtins/read.def + - fixed a bug that occurred when reading a set number of chars and + the nth char is a backslash (read one too many). Bug reported by + Chris Morgan -eval.c - - removed extern declaration of yyparse; it's in externs.h +execute_cmd.c + - fix execute_builtin so the `unset' builtin also operates on the + temporary environment in POSIX mode (as well as source and eval), + so that unsetting variables in the temporary environment doesn't + leave them set when unset completes. Report by Eric Blake + -parse.y - - added prototypes to static forward function declarations - - changed local `all_digits' variable in read_token_word () to - all_digit_token to avoid clash with all_digits() function in - general.c +array.c + - fix from William Park for array_rshift when shifting right on an + empty array -- corrects calculation of array->max_index -{bashhist,copy_cmd,make_cmd,hashlib,mailcheck}.c - - added prototypes for static function declarations +builtins/exec.def + - if an exec fails and the execfail option is set, don't call + restart_job_control unless the shell is interactive or job_control + is set -shell.h - - add extern declarations for interactive, interactive_shell, - changed c files with extern declarations +jobs.c + - add a run-time check for WCONTINUED being defined in header files + but rejected with EINVAL by waitpid(). Fix from Maciej Rozycki + -pcomplete.c - - changed it_init_aliases to avoid shadowing global variable - `aliases' + 6/20 + ---- +bashhist.c + - make sure calls to sv_histchars are protected by #ifdef BANG_HISTORY + - ditto for calls to history_expand_line_internal -bashline.c,pathexp.c,general.h - - sh_ignore_func_t is now a pointer to a function taking a - `const char *'; users changed + 6/23 + ---- +doc/bashref.texi + - remove extra blank lines in @menu constructs -configure.in - - test for +variables.c + - assign export_env to environ (extern char **) every time it changes + (mostly in add_to_export_env define), so maybe getenv will work on + systems that don't allow it to be replaced -config.h.in - - add #undef HAVE_STRINGS_H + 6/29 + ---- +bashline.c + - in bash_directory_completion_hook, be careful about not turning `/' + into `//' and `//' into `///' for benefit of those systems that treat + `//' as some sort of `network root'. Fix from Eric Blake + -bashansi.h - - change like recommended in autoconf manual +lib/readline/complete.c + - in to_print, do the right thing after stripping the trailing slash + from full_pathname: // doesn't turn into /, and /// doesn't become + //. Fix from Eric Blake - 9/11 + 6/30 ---- -[a date which will live in infamy. prayers for the victims.] - -execute_cmd.c - - don't use an absolute index into abuf in mkfmt, use - sizeof(abuf) to compute last index +lib/malloc/trace.c + - include if it's available for a definition of size_t -builtins/common.c - - fix read_octal to do a better job of detecting overflow while - iterating through the string +jobs.c + - in wait_for, if a child process is marked as running but waitpid() + returns -1/ECHILD (e.g., when the bash process is being traced by + strace), make sure to increment c_reaped when marking the child as + dead + - in without_job_control, make sure to close the pgrp pipe after + calling start_pipeline -builtins/umask.def - - change octal-print mode to print 4 digits, like other shells - - cast umask to unsigned long to avoid problems on systems where - it's wider than an int (POSIX doesn't guarantee that mode_t is - no wider than an int, but real-world systems use int) + 7/1 + --- +Makefile.in + - only remove pathnames.h when the other files created by running + configure are removed (e.g., Makefile). Fix from William Park -builtins/printf.def - - mklong can never return NULL (it uses xrealloc), so the mainline - doesn't need to check for NULL returns - - new function, getldouble (long double *), to get long doubles - - mklong now takes a `char *' as its second argument, the modifier(s) - to use - - changed use of `modchar' to handle more than a single modifier - character - - changed to handle `long double' and `L' formats better, rather - than discarding long double information - - since printf now follows the POSIX.2 rules for conversion errors, - we can dispense with the status returns from the get* functions - - make the get* functions as similar in structure as possible, - removing type casts, etc. - -lib/sh/timeval.c,execute_cmd.c - - change some instances of `long' to `time_t', for systems where - a time_t is bigger than a long +lib/sh/shquote.c + - since backslash-newline disappears when within double quotes, don't + add a backslash in front of a newline in sh_double_quote. Problem + reported by William Park jobs.c - - include "posixtime.h" instead of + - in notify_of_job_status, don't print status messages about + terminated background processes unless job control is active -config.h.in - - add defines for HAVE_DECL_CONFSTR, HAVE_DECL_STRTOLD, - HAVE_DECL_SBRK, HAVE_DECL_PRINTF - - remove defines for SBRK_DECLARED and PRINTF_DECLARED - - add _GNU_SOURCE define +bashhist.c + - new variable, hist_last_line_pushed, set to 0 in really_add_history + (used by `history -s' code) -configure.in - - add AC_CHECK_DECLS for strtold, confstr, sbrk, printf - - remove call to BASH_FUNC_SBRK_DECLARED - - remove call to BASH_FUNC_PRINTF +bashhist.h + - new extern declaration for history -s -xmalloc.c, lib/malloc/malloc.c - - change check of SBRK_DECLARED to HAVE_SBRK_DECL +builtins/history.def + - don't remove last history entry in push_history if it was added by + a call to push_history -- use hist_last_line_pushed as a sentinel + and set it after adding history entry. This allows multiple + calls to history -s to work right: adding all lines to the history + rather than deleting all but the last. Bug reported by Matthias + Schniedermeyer + - pay attention to hist_last_line_pushed in expand_and_print_history() + so we don't delete an entry pushed by history -s + 7/4 + --- print_cmd.c - - change PRINTF_DECLARED to HAVE_DECL_PRINTF - -builtins/evalstring.c, builtins/common.h - - parse_and_execute now takes a `const char *' as its second argument - -input.h,parse.y - - with_input_from_* functions now take a `const char *' as their - second argument - - init_yy_io now takes a `const char *' as its fourth argument + - fix print_arith_for_command to not print so many blanks between + expressions in ((...)) -parse.y,externs.h - - parse_string_to_word_list now takes a `const char *' as its second - argument +command.h + - new word flag: W_DQUOTE. Means word should be treated as if double + quoted -tests/builtins.right - - change output to account for extra digit in umask output +make_cmd.c + - add W_DQUOTE to word flags in make_arith_for_expr -pcomplib.c - - free_progcomp now takes a PTR_T argument +parse.y + - add W_DQUOTE to word flags for (( ... )) arithmetic commands -builtins/bashgetopt.h - - include - - add prototypes to extern declarations +subst.c + - don't perform tilde expansion on a word with W_DQUOTE flag set + - don't perform process substitution on a word with W_DQUOTE flag set -builtins/shopt.def - - add prototypes to static function declarations - -builtins/{fc,umask,wait}.def, builtins/{bashgetopt,common}.c - - include for isdigit macro (referenced by `digit(x)') - -lib/readline/complete.c - - added more static function declarations with prototypes +arrayfunc.c + - expand an array index within [...] the same way as an arithmetic + expansion between (( ... )) - 9/12 - ---- -lib/sh/tmpfile.c - - use `^' instead of `*' in sh_mktmpname to make filenames a bit - more random +lib/readline/input.c + - use getch() instead of read() on mingw -include/stdc.h,lib/readline/rldstdc.h - - add __attribute__ definition +lib/readline/readline.c + - add a few key bindings for the arrow keys on mingw -builtins/common.h - - add printf __attribute__ to declaration of builtin_error +lib/readline/rldefs.h + - if on mingw, define NO_TTY_DRIVER -error.h - - add printf __attribute__ to declaration of programming_error, - report_error, parser_error, fatal_error, sys_error, internal_error, - internal_warning +lib/readline/rltty.c + - compile in the stub functions for _rl_{disable,restore}_tty_signals + if on mingw + - compile in stub function for rl_restart_output on mingw + - make sure enough functions and macros are defined to compile if + NO_TTY_DRIVER is defined (lightly tested - builds on MacOS X, at + least) -lib/readline/readline.h - - add printf __attribute__ to declaration of rl_message + 7/7 + --- +command.h + - add a `flags' member to the PATTERN_LIST structure -pcomplete.c - - add printf __attribute__ to declaration of debug_printf +make_cmd.c + - intialize the `flags' member of a PATTERN_LIST when it's created -print_cmd.c - - add printf __attribute__ to declarations of cprintf, xprintf +builtins/psize.c + - protect extern declaration of errno with usual #ifdef errno -include/chartypes.h - - new file, includes and defines macros that check for - safe (ascii) arguments before calling the regular ctype macros +configure.in, variables.c + - changes for QNX 6.x -{alias,bashline,execute_cmd,expr,findcmd,general,locale,mksyntax,stringlib,subst,variables}.c + 7/9 + --- parse.y -builtins/{bashgetopt,common}.c -builtins/{fc,printf,umask,wait}.def -lib/glob/strmatch.c -lib/sh/{oslib,pathcanon,pathphys,snprintf,strcasecmp,strindex,stringvec,strtod,strtol,strtrans}.c -examples/loadables/{head,sleep}.c - - include "chartypes.h" or instead of - -Makefile.in,{builtins,lib/{glob,sh}}/Makefile.in - - update dependencies to include chartypes.h - -lib/sh/inet_aton.c - - use `unsigned char' instead of `char' to pass to ctype.h functions - -lib/sh/netopen.c - - check for '0' <= host[0] <= '9' in _getaddr instead of using - isdigit - -subst.c,lib/sh/shquote.c - - change array subscripts into sh_syntaxtab from `char' to - `unsigned char' - -{alias,bashline,execute_cmd,expr,general,subst}.c, parse.y -builtins/{fc,printf,umask,wait}.def builtins/{bashgetopt,common}.c -lib/sh/{pathcanon,pathphys,snprintf,strcasecmp,strindex,strtod,strtol,strtrans}.c -examples/loadables/{head,sleep}.c - - change to use some of the new macros in chartypes.h - - remove old local macro definitions now provided by chartypes.h - -general.h - - remove definition of isletter, ISOCTAL, digit, digit_value - - change legal_variable_starter and legal_variable_char to use - chartypes.h macros - - change ABSPATH to use chartypes.h macros - -lib/readline/util.c - - change to use Paul Eggert's FUNCTION_FOR_MACRO define to define - function replacements for macros in chardefs.h + - fix parse_matched_pair to handle single and double quoted strings + inside old-style command substitution (``) since they can each + quote the ` and embedded $-expansions. Report by Eric Blake + -lib/readline/chardefs.h - - added some of the same macros as in chartypes.h - - change _rl_lowercase_p, _rl_uppercase_p, _rl_digit_p, - _rl_to_upper, _rl_to_lower to use new IS* macros - - added _rl_isident macro from vi_mode.c:isident +{configure,Makefile}.in + - TILDE_LIB is now substituted into Makefile by configure -lib/readline/{bind,complete,nls}.c - - change to use some of the new macros from chardefs.h +configure.in + - if configuring --with-installed-readline on cygwin, set TILDE_LIB + to the empty string to avoid multiply-defined symbols. Cygwin + doesn't allow undefined symbols in dynamic libraries. Report by + Eric Blake -lib/readline/vi_mode.c - - isident -> _rl_isident - - remove local defines of macros in chardefs.h + 7/11 + ---- +input.c + - in duplicate_buffered_stream, don't call free_buffered_stream if the + two buffered streams share the same b_buffer object (e.g., if they + had already been duplicated with a previous call). Fixes Debian bug + reported by eero17@bigfoot.com -lib/sh/strtol.c - - updated to new version, modified from glibc 2.2.4 and sh-utils-2.0. - This one can do strtoll and strtoull, if necessary + 7/12 + ---- +shell.c + - make set_shell_name more resistant to a NULL argument + - in bind_args, use < instead of != when counting the arguments and + making the arg list + - in main(), make sure arg_index is not initialized to a value greater + than argc - 9/13 + 7/14 ---- -builtins/ulimit.def - - changed get_limit so it retrieves both hard and soft limits - instead of one or the other - - changed callers of get_limit - - changed getmaxvm to take soft limit, hard limit as arguments - - changed getmaxuprc to just take a single argument, the value - - changed calls to printone() to pass soft limit or hard limit - depending on `mode' instead of using old current_limit variable - - moved check for out-of-range limits in ulimit_internal into the - block that converts a string argument to a value of type rlim_t - - changed RESOURCE_LIMITS struct to break the description into a - description string and separate scale factor string - - changed print_all_limits to print a single error message if - get_limit fails, including limits[i].description now that the - scale factor has been removed from the description string - - removed DESCFMT define, since it's now used only in printone() - - changed printone to print the option character associated with a - particular limit if we're printing multiple limits - - changed calls to builtin_error to print the description associated - with a limit if setting or getting the limit fails - - added support for new POSIX 1003.1-200x rlim_t values: - RLIM_SAVED_CUR and RLIM_SAVED_MAX, which expand to the current - soft and hard limits, whatever they are - - changed printone to print `hard' or `soft' if the current limit is - RLIM_SAVED_MAX or RLIM_SAVED_CUR, respectively - - changed ulimit_internal to handle new `hard' and `soft' arguments - - changed help text do describe the special limit arguments `hard', - `soft', and `unlimited' +lib/readline/display.c + - in expand_prompt, don't set the location of the last invisible + char if the sequence is zero length (\[\]) + 7/15 + ---- doc/{bash.1,bashref.texi} - - documented new `hard' and `soft' limit arguments to `ulimit' + - document that the shell uses $TMPDIR when creating temporary files -hashlib.[ch] - - find_hash_item now takes a `const char *' is its first argument - - hash_string now takes a `const char *' is its first argument - - remove_hash_item now takes a `const char *' as its first argument + 7/20 + ---- +[bash-3.1-alpha1 frozen] -pcomplib.c - - removed cast from first argument to find_hash_item in find_compspec + 7/29 + ---- +builtins/evalstring.c + - make sure that parse_and_execute saves and restores the value of + loop_level, so loops in sourced scripts and eval'd strings don't + mess up the shell's parser state -general.[ch] - - absolute_program now takes a `const char *' as its argument - - absolute_pathname now takes a `const char *' as its argument +bashline.c + - change command_subst_completion_function to suppress appending + any character to a unique completion, instead of a space, unless + the last word in the quoted command substitution completes to a + directory name. In that case we append the expected slash -lib/glob/glob.[ch] - - glob_pattern_p now takes a `const char *' as its argument + 8/1 + --- +builtins/printf.def + - make sure variables are initialized if their values are tested later -bashline.c - - removed cast from first argument to absolute_program in - command_word_completion_function - - removed cast from first argument to glob_pattern_p in - attempt_shell_completion - -findcmd.[ch] - - find_absolute_program, find_user_command, find_path_file, - search_for_command, user_command_matches now take a - `const char *' as their first argument - - file_status, executable_file, is_directory, executable_or_directory - now take a `const char *' as their argument - - _find_user_command_internal, find_user_command_internal, - find_user_command_in_path - -lib/sh/makepath.c, externs.h - - changed sh_makepath so it takes `const char *' for its first - two arguments - -hashcmd.[ch] - - find_hashed_filename now takes a `const char *' as its first arg - - remove_hashed_filename now takes a `const char *' as its first arg +[bash-3.1-alpha1 updated and re-frozen] -variables.[ch] - - new_shell_variable, var_lookup, shell_var_from_env_string, - find_name_in_env_array, bind_function, makunbound, - bind_name_in_env_array, bind_tempenv_variable, bind_variable - now take a `const char *' as their first arg - - find_function, make_new_variable, find_tempenv_variable, - find_variable_internal, find_variable, set_func_read_only, - set_func_auto_export, all_variables_matching_prefix, assign_in_env, - assignment, kill_local_variable, make_local_variable, unbind_variable - now take a `const char *' as their arg - - mk_env_string now takes `const char *' arguments + 8/2 + --- +variables.c + - make sure to call stifle_history with an `int' instead of an intmax_t. + Sometimes it makes a difference -arrayfunc.[ch] - - skipsubscript now takes a `const char *' as its argument + 8/3 + --- +[bash-3.1-alpha1 released] - 9/17 - ---- -lib/readline/complete.c - - attempt to preserve case of what the user typed in - compute_lcd_of_matches if we're ignoring case in completion +support/mksignames.c + - add `SIGSTKFLT' (RHE3) + - add `SIGXRES' (Solaris 9) -builtins/{let,pushd}.def,{execute_cmd,expr}.c - - change some 0L constants to 0 and let the compiler sort it out + 8/4 + --- +builtins/ulimit.def + - fix typo to make `x' the right option for locks + - add new options to short help synopsis - 9/18 - ---- -lib/malloc/alloca.c - - alloca now takes a `size_t' argument +variables.c + - use get_variable_value instead of direct reference to value_cell + in make_variable_value when appending to the current value, so + references to array variables without subscripts will be equivalent + to element 0 -include/memalloc.h - - if we're providing an extern function declaration for alloca, - use `void *' and prototype if __STDC__ is defined - - if HAVE_ALLOCA_H is defined, but C_ALLOCA is defined, don't - define HAVE_ALLOCA +lib/readline/text.c + - rewrote rl_change_case to correctly change the case of multibyte + characters where appropriate - 9/19 - ---- -subst.c - - do_assignment_internal, do_assignment, and do_assignment_no_expand - now take a `const char *' as their first argument + 8/5 + --- +configure.in + - remove call to obsolete macro AC_ACVERSION + - remove special calls to AC_CYGWIN and AC_MINGW32; AC_CANONICAL_HOST + takes care of those cases general.h - - a `sh_assign_func_t' is now a function taking a `const char *' and - returning int + - include `chartypes.h' for definition of ISALPHA + - fix definitions of ABSPATH and RELPATH for cygwin + - fix definition of ISDIRSEP for cygwin to allow backslash as a + directory name separator -hashcmd.c - - free_filename_data now takes a `PTR_T' argument to agree with the - typedef for `sh_free_func_t' + 8/9 + --- +builtins/setattr.def + - when setting a variable from the temporary environment in + set_var_attribute (e.g., `LC_ALL=C export LC_ALL'), make sure to + call stupidly_hack_special_variables after binding the variable in + the current context -lib/sh/snprintf.c - - use TYPE_MAXIMUM define like strtol.c instead of huge constants +builtins/printf.def + - make sure to call stupidly_hack_special_variables if using `printf -v' + to put formatted output in a shell variable - 9/20 + 8/11 ---- -lib/sh/snprintf.c - - don't bother to compile the bulk of the body unless HAVE_SNPRINTF - or HAVE_ASPRINTF is not defined +support/shobj-conf + - new variable: SHLIB_LIBPREF, prefix for shared library name (defaults + to `lib' + - new variable: SHLIB_DLLVERSION, used on Cygwin to set the library + version number + - new variable: SHLIB_DOT, separator character between library name and + suffix and version information (defaults to `.') + - new stanza for cygwin to generate windows-compatible dll - 9/24 + 8/14 ---- -flags.c - - ignore `set -n' if the shell was started interactively - -lib/readline/readline.c - - initialize readline_echoing_p to 0; let the terminal-specific code - in rltty.c set it appropriately +variables.c + - new special variable function for Cygwin, so the export environment + is remade when HOME is changed. The environment is the only way to + get information from the shell to cygwin dlls, for instanace, when + bash is compiled to use an already-installed libreadline -lib/malloc/malloc.c - - changed internal_memalign() slightly to avoid compiler warnings about - negating an unsigned variable (-alignment -> (~alignment + 1)) +variables.h + - new extern declaration for sv_home - 9/27 + 8/15 ---- -lib/readline/readline.c - - changed rl_newline to set _rl_history_saved_point appropriately - for the {previous,next}_history code - -lib/readline/rlprivate.h - - extern declaration for _rl_history_preserve_point +lib/readline/display.c + - call init_line_structures from rl_redisplay if vis_lbreaks == 0 + to avoid consequences of a poorly-timed SIGWINCH -lib/readline/bind.c - - new bindable variable, `history-preserve-point', sets value of - _rl_history_preserve_point + 8/16 + ---- +subst.c + - fix logic for performing tilde expansion when in posix mode (don't + rely on W_TILDEEXP flag always being set, because it won't be when + expanding the RHS of assignment statement). Use W_TILDEEXP only + when deciding to expand a word marked as W_ASSIGNMENT that doesn't + precede a command name - 10/1 + 8/17 ---- -lib/malloc/table.c - - new file, with a map of allocated (and freed) memory for debugging - multiple frees, etc. Indexed by hash on values returned by - malloc(); holds size, file and line number info for last alloc or - free and a couple of statistics pointers +execute_cmd.c + - in execute_function, when subshell == 1, don't short-cut by using + the command contained in the group command -- if you do, any + redirections attached to the group command (function) don't get + executed -lib/malloc/malloc.c - - a few cleanups; added calls for registering allocations and frees - if MALLOC_REGISTER is defined - - replaced MALLOC_RETURN with explicit MALLOC_NOTRACE define - - reordered fields in `struct...minfo' in `union mhead' to restore - eight-byte alignment - - added explicit checks for underflow in free and realloc since - checking mh_magic2 is not sufficient to detect everything (it's - no longer the last field in the struct, and thus not the bytes - immediately preceding what's returned to the user) - - new function, xbotch, for printing file and line number info for - the failed assertion before calling botch() (programming_error()) +general.h + - new #define, FS_READABLE, indicates file is readable by current + user -configure.in - - replaced call to BASH_C_LONG_LONG with call to - AC_CHECK_TYPES([long long]) - - moved the C compiler tests before the tests for various - system types, so we can know whether we have `long long' - before testing for 64-bit types - - if we have `long long', check for sizeof(long long) and save value +findcmd.c + - rewrote file_status to use S_xxx POSIX file mode bits and to add + support for FS_READABLE (affects ./source and searching $PATH for + scripts whose names are supplied as arguments on the command line) + - change find_path_file to look for readable files -- source requires + it + - change find_in_path_element to do the right thing when FS_READABLE + is supplied as a flag -aclocal.m4 - - changed BASH_TYPE_BITS64_T to check `long long' before `long', but - after `double' +doc/bashref.texi + - remove note about posix non-compliance in `.': we now require and + look for readable files when searching $PATH - 10/2 + 8/20 ---- -lib/malloc/malloc.c - - made malloc and realloc both agree on the rounding for a request of - size N (round up to nearest multiple of 8 after adjusting for - malloc overhead); uses new ALLOCATED_BYTES macro - - realloc and free now use new IN_BUCKET macro for underflow checks - -execute_cmd.c - - fixed time_command() to use `time_t' instead of `long' to hold - time stamps +subst.c + - fix setifs to handle case where passed variable is non-zero but + v->value == 0 (as in an unset local variable); treat IFS as unset + in this case -lib/sh/clock.c - - clock_t_to_secs now takes a `time_t *' second argument - - fixed print_clock_t to call clock_t_to_secs with right arguments +jobs.c + - in kill_pid, if asked to killpg a process or pgrp whose pgrp is + recorded as the same as the shell's, just call killpg and let the + chips fall where they may -- there may be other processes in that + pgrp that are not children of the shell, so killing each process + in the pipeline will not do a complete job, and killpg'ing each + such process will send too many signals in the majority of cases -lib/sh/timeval.c - - fixed print_timeval to make `minutes' a `long' and make its - structure identical to print_clock_t +builtins/cd.def + - in posix mode, pwd needs to check that the value it prints and `.' + are the same file -redir.c - - changed redirection_error to check for EBADF and use the file - descriptor being redirected from in the error message if it - is >= 0 +builtins/read.def + - if reading input from stdin in a non-interactive shell and calling + `read', call sync_buffered_stream to seek backward in the input + stream if necessary (XXX - should we do this for all shell builtins?) -Makefile.in - - changed release status to `beta1' + 8/23 + ---- +builtins/cd.def + - in posix mode, if canonicalization of the absolute pathname fails + because the path length exceeds PATH_MAX, but the length of the passed + (non-absolute) pathname does not, attempt the chdir, just as when + not in posix mode -lib/glob/collsyms.h - - added a few ASCII symbols to the posix_collsyms array +builtins/type.def + - don't have describe_command call sh_makepath if the full path found + is already an absolute pathname (sh_makepath will stick $PWD onto the + front of it) - 10/3 + 8/24 ---- -aclocal.m4 - - fixed typo in BASH_TYPE_BITS64_T -configure.in - - added check for unsigned chars with AC_C_CHAR_UNSIGNED +jobs.c + - in posix mode, don't have start_job print out and indication of + whether the job started by `bg' is the current or previous job + - change start_job to return success if a job to be resumed in the + background is already running. This means that bg won't fail when + asked to bg a background job, as SUSv3/XPG6 requires + - new function, init_job_stats, to zero out the global jobstats struct -config.h.in - - added PROTOTYPES and __CHAR_UNSIGNED__ #defines +{jobs,nojobs}.c + - change kill_pid to handle pids < -1 by killing process groups -general.h - - if CHAR_MAX is not define by , provide a definition +jobs.h + - extern declaration for init_job_stats -builtins/printf.def - - change tescape() to mask \0 and \x escape sequences with 0xFF - - change tescape() to process at most two hex digits after a `\x' +lib/readline/history.c + - check whether or not the history list is null in remove_history -lib/sh/strtrans.c - - change strtrans() to mask \0 and \x escape sequences with 0xFF - - change strtrans() to process at most two hex digits after a `\x'. - This affects `echo -e' and $'...' processing +builtins/history.def + - delete_last_history is no longer static so fc builtin can use it -lib/readline/bind.c - - changed rl_translate_keyseq() to process at most two hex digits - after a `\x' +builtins/fc.def + - use free_history_entry in fc_replhist instead of freeing struct + members individually + - call delete_last_history from fc_replhist instead of using inline + code + - if editing (-l not specified), make sure the fc command that caused + the editing is removed from the history list, as POSIX specifies + +builtins/kill.def + - just call kill_pid with any pid argument and let it handle pids < -1 + This is the only way to let kill_pid know whether a negative pid or + a job spec was supplied as an argument to kill -lib/readline/doc/{rluser.texinfo,readline.3}, doc/bash.1 - - changed documentation for key binding escape sequences to specify - that at most two hex digits after \x are translated - - changed documentation for key binding to specify that the result - of \nnn or \xhh escapes is an eight-bit value, not just ASCII +builtins/fg_bg.def + - force fg_bg to return EXECUTION_SUCCESS explicitly if called by bg + and start_job returns successfully + - bg now returns success only if all the specified jobs were resumed + successfully -doc/{bash.1,bashref.texi} - - changed documentation of $'...' to specify that at most two hex - digits after \x are translated - - changed `echo' documentation to specify that at most two hex - digits after \x are translated - - changed documentation for `echo' and $'...' to specify that the - result of \nnn or \xhh escapes is an eight-bit value, not just ASCII +execute_cmd.c + - call init_job_stats from initialize_subshell to zero out the global + job stats structure - 10/4 + 8/25 ---- -lib/malloc/malloc.c - - changed interface for xbotch to pass memory address and error code - as two additional arguments - - call mregister_describe_mem from xbotch to get the last allocation - or free before the botch +bashline.c + - change vi_edit_and_execute_command to just call vi when in posix + mode, instead of checking $FCEDIT and $EDITOR -configure.in - - call AC_CHECK_DECLS([strsignal]) +lib/readline/search.c + - if in vi_mode, call rl_free_undo_list in make_history_line_current + to dispose of undo list accumulated while reading the search string + (if this isn't done, since vi mode leaves the current history + position at the entry which matched the search, the call to + rl_revert_line in rl_internal_teardown will mangle the matched + history entry using a bogus rl_undo_list) + - call rl_free_undo_list after reading a non-incremental search string + into rl_line_buffer -- that undo list should be discarded -config.h.in - - add HAVE_DECL_STRSIGNAL +lib/readline/rlprivate.h + - add UNDO_LIST * member to search context struct -siglist.h - - make declaration of strsignal() dependent on !HAVE_DECL_STRSIGNAL +lib/readline/isearch.c + - initialize UNDO_LIST *save_undo_list member of search context struct - 10/5 + 8/27 ---- -support/texi2html - - upgraded to version 1.64 +lib/readline/bind.c + - change rl_parse_and_bind to strip whitespace from the end of a + variable value assignment before calling rl_variable_bind - 10/9 - ---- -aclocal.m4 - - added check for `long long' to BASH_TYPE_PTRDIFF_T +doc/bash.1,lib/readline/doc/{rluser.texi,readline.3} + - clarified the language concerning parsing values for boolean + variables in assignment statements -configure.in - - replaced call to BASH_HAVE_TIOCGWINSZ with AC_HEADER_TIOCGWINSZ + 8/28 + ---- +lib/sh/pathphys.c + - fix small memory leak in sh_realpath reported by Eric Blake -aclocal.m4 - - replaced body of BASH_STRUCT_TERMIOS_LDISC with call to - AC_CHECK_MEMBER(struct termios.c_line, ...) - - replaced body of BASH_STRUCT_TERMIO_LDISC with call to - AC_CHECK_MEMBER(struct termios.c_line, ...) + 8/31 + ---- +doc/bashref.texi + - add additional notes to posix mode section -[bash-2.05a-beta1 frozen] + 9/3 + --- +parse.y + - if $'...' occurs within a ${...} parameter expansion within + double quotes, don't single-quote the expanded result -- the double + quotes will cause it to be expanded incorrectly - 10/10 - ----- -lib/sh/snprintf.c - - fixed exponent() to not smash the trailing zeros in the fraction - when using %g or %G with an `alternate form' - - fixed exponent() to handle the optional precision with %g and %G - correctly (number of significant digits before the exponent) + 9/4 + --- +builtins/fc.def + - if STRICT_POSIX is defined, the posix mode default for the editor to + use is $FCEDIT, then ed - 10/11 - ----- -expr.c - - fixed strlong() to correct the values of `@' and `_' when - translating base-64 constants (64#@ == 62 and 64#_ == 64), for - compatibility with ksh +shell.c + - if STRICT_POSIX is defined, initialize `posixly_correct' to 1 -lib/sh/itos.c - - added a slightly more flexible fmtlong() function that takes a - base argument and flags (for future use) - - rewrote itos and inttostr in terms of fmtlong +config.h.in + - add #undef STRICT_POSIX -lib/sh/fmtulong.c - - new file, converts unsigned long to string. hooks for `unsigned - long long' in the future. unused as yet + 9/5 + --- +configure.in + - add new option argument, --enable-strict-posix-default, configures + bash to be posix-conformant (including defaulting echo to posix + conformance) by default - 10/15 - ----- -lib/readline/rltty.c - - change the SET_SPECIAL macro to avoid possible (but highly - unlikely) negative array subscripts +builtins/echo.def + - if STRICT_POSIX is defined, default echo to xpg-style -error.h - - add __attribute__ to extern declaration of itrace (even though the - function isn't defined in released versions of bash) +doc/bashref.texi + - describe the --enable-strict-posix-default option to configure -bashansi.h - - include if HAVE_STRINGS_H is defined, to get any extra - function declarations provided therein + 9/10 + ---- +builtins/mkbuiltins.c + - change to not generate N_(""), because the translated empty string is + special to GNU gettext -copy_cmd.c - - fix typo in forward declaration for copy_arith_for_command + 9/13 + ---- +lib/readline/complete.c + - a negative value for rl_completion_query_items means to not ask -lib/malloc/stats.c - - make the accumulators in _print_malloc_stats be `unsigned long' - instead of `int' +lib/readline/doc/{{rltech,rluser}.texi,readline.3} + - documented new semantics for rl_completion_query_items/ + completion-query-items -externs.h, sig.h - - add `__noreturn__' gcc attribute to exit_shell and jump_to_top_level - declarations + 9/14 + ---- +bashline.c + - bind M-TAB in emacs mode to dynamic-complete-history even if the + current binding is `tab-insert' (which is what it is by default), + not just if it's unbound -lib/sh/mailstat.c, support/bashversion.c - - include for some string function declarations + 9/15 + ---- +eval.c + - call QUIT before calling dispose_command on current_command after + the `exec_done' label. If we dispose current_command first, the + longjmp might restore the value of current_command after we've + disposed it, and the subsequent call to dispose_command from the + DISCARD case will free memory twice -lib/malloc/shmalloc.h - - added extern declarations of functions that do malloc debugging + 9/16 + ---- +lib/sh/strto[iu]max.c + - make sure the function being declared is not a cpp define before + defining it -- should fix problems on HP-UX -lib/readline/{isearch,readline,vi_mode}.c - - make sure we index into _rl_keymap with a non-negative index + 9/19 + ---- +Makefile.in + - make sure the binaries for the tests are at the front of $PATH + 9/22 + ---- parse.y - - make sure we index into sh_syntaxtab with a non-negative index - -lib/readline/vi_mode.c - - bound the vi_mark_chars array with the number of characters between - 'a' and 'z' rather than using a fixed amount - - don't use _rl_lowercase_p when deciding whether the char read by - rl_vi_set_mark is a valid mark; just use 'a' <= char <= 'z' - -lib/readline/chardefs.h - - conditionally include memory.h and strings.h as in general.h - - replace ISASCII with IN_CTYPE_DOMAIN like other GNU software - - add defines for ISPRINT(c), ISLOWER(c) and ISUPPER(c) - - fix defines for _rl_lowercase_p, _rl_uppercase_p, _rl_digit_p, - _rl_pure_alphabetic, ALPHABETIC, _rl_to_upper, _rl_to_lower, - and _rl_isident to work on systems with signed chars - -include/chartypes.h - - replace ISASCII with IN_CTYPE_DOMAIN like other GNU software - -lib/sh/{strcasecmp,strtod,strtol}.c - - don't pass possibly-negative characters to tolower() or toupper() - -lib/glob/strmatch.c - - don't bother testing for isupper in FOLD; rely on TOLOWER macro - from to do it - - don't use local definitions of isblank, et al.; rely on macros - from - -lib/readline/{display,readline}.c, mksyntax.c - - use new ISPRINT macro instead of isprint() - -builtins/{kill.def,mkbuiltins.c},{error,execute_cmd,jobs,nojobs,subst}.c - - don't assume that a pid_t fits into an int for printing and other - uses - -variables.[ch] - - the unused put_gnu_argv_flags_into_env now takes a `long' pid - argument + - new flag for parse_matched_pair: P_COMMAND, indicating that the + text being parsed is a command (`...`, $(...)) + - change calls to parse_matched_pair to include P_COMMAND where + appropriate + - if P_COMMAND flag is set and the text is unquoted, check for comments + and don't try to parse embedded quoted strings if in a comment (still + not exactly right yet) -configure.in, config.h.in - - call AC_STRUCT_ST_BLOCKS, define HAVE_STRUCT_STAT_ST_BLOCKS if found - - check for strtoull(), define HAVE_STRTOULL if found - - check for uintmax_t, define to `unsigned long' if not found + 9/24 + ---- +builtins/history.def + - if running history -n, don't count these new lines as history lines + for the current session if the `histappend' shell option is set. + If we're just appending to the history file, the issue that caused + history_lines_this_session to be recalculated doesn't apply -- the + history file won't be missing any entries -lib/sh/mailstat.c - - don't use st_blocks member of struct stat unless - HAVE_STRUCT_STAT_ST_BLOCKS is defined; otherwise use the st_nlink - field to return the total number of messages in a maildir-style - mail directory +lib/readline/isearch.c + - fix C-w handler for isearch string reader to handle multibyte chars -general.h,{alias,expr,general,subst,variables}.c -builtins/{printf,read}.def -lib/readline/{bind,complete,nls}.c -lib/sh/{pathcanon,pathphys,shquote,snprintf,strindex,strtod,strtol,strtrans}.c - - cast args to ctype macros to unsigned char for systems with signed - chars; other fixes for signed chars +lib/readline/rlmbutil.h + - new defines for _rl_to_wupper and _rl_to_wlower -lib/sh/{fmtullong,strtoull.c} - - new files, more support for `long long' +lib/readline/text.c + - use _rl_to_wupper and _rl_to_wlower as appropriate -Makefile.in, lib/sh/Makefile.in - - make fmtullong.o and strtoull.o part of libsh + 9/26 + ---- +execute_cmd.c + - in shell_execve, if the exec fails due to E2BIG or ENOMEM, just print + the appropriate error message instead of checking out any interpreter + specified with #! -lib/sh/itos.c - - remove local copy of fmtlong; use fmtulong instead - - new functions: uitos, uinttostr work on `unsigned long' + 9/30 + ---- +bashhist.c + - make $HISTCMD available anytime remember_on_history is non-zero, + which indicates that we're saving commands to the history, and + let it evaluate to 1 if we're not + 10/4 + ---- lib/sh/snprintf.c - - fixes to make `unsigned long long' work (%llu) - - fixes to make unsigned formats not print the sign when given - an unsigned long that is greater than LONG_MAX - -externs.h - - extern declarations for fmtulong, fmtulloing, strtoull - - extern declarations for uitos, uinttostr + - in floating(), make sure d != 0 before calling chkinfnan -- gcc on the + version of Solaris 9 I have translates 0 to -inf on the call - 10/16 - ----- -configure.in - - move header checks before function checks - - move c compiler tests before header checks - - check for with BASH_HEADER_INTTYPES - - change type checks for intmax_t, uintmax_t to not attempt to - include - - check for strtoimax, strtoumax, strtoll, strtol, strtoull, strtoul - with BASH_CHECK_DECL (for declarations in header files) and - AC_REPLACE_FUNCS (for availability and LIBOBJS substitution) - - remove check for have_long_long around sizeof check for long long - (since autoconf will give it a size of 0 if the type isn't found) +[bash-3.1-beta1 frozen] -config.h.in - - add a define for HAVE_INTTYPES_H - - add a define for HAVE_UNSIGNED_LONG_LONG - - add defines for HAVE_STRTOIMAX, HAVE_STRTOUMAX, HAVE_STRTOLL + 10/6 + ---- +jobs.c + - set the_pipeline to NULL right away in cleanup_the_pipeline, and + dispose a copy of the pointer so we don't mess with the_pipeline + while we're in the process of destroying it + - block and unblock SIGCHLD around manipulating the_pipeline in + cleanup_the_pipeline -aclocal.m4 - - new func, BASH_HEADER_INTTYPES, which just calls AC_CHECK_HEADERS - on ; separate so it can be AC_REQUIREd - - AC_REQUIRE([BASH_HEADER_INTTYPES]) in BASH_CHECK_TYPE - - include in BASH_CHECK_TYPE if HAVE_INTTYPES_H is - defined - - change AC_DEFINE to AC_DEFINE_UNQUOTED in BASH_CHECK_TYPE - - new `long long' checking macros: BASH_TYPE_LONG_LONG and - BASH_TYPE_UNSIGNED_LONG_LONG - - new BASH_CHECK_DECL + 10/7 + ---- +[bash-3.1-beta1 released] -lib/sh/{strto[iu]max,strtoll}.c, lib/sh/Makefile.in, Makefile.in - - new files +lib/readline/isearch.c + - when switching directions, make sure we turn off the SF_REVERSE + flag in the search context's flags word if we're going from reverse + to forward i-search -externs.h - - extern declarations for strtoll, strtoimax, strtoumax +lib/readline/bind.c + - new function, rl_variable_value, returns a string representing a + bindable readline variable's value + - new auxiliary function, _rl_get_string_variable_value, encapsulates + everything needed to get a bindable string variable's value + - rewrote rl_variable_dumper to use _rl_get_string_variable_value -lib/malloc/alloca.c - - include for size_t +lib/readline/readline.h + - new extern declaration for rl_variable_value -builtins/printf.def - - new functions: getllong, getullong, getintmax, getuintmax; return - long long, unsigned long long, intmax_t, uintmax_t respectively - - builtin printf now handles `ll' and `j' length modifiers directly +lib/readline/doc/rltech.texi + - documented rl_variable_value -lib/sh/Makefile.in - - use LIBOBJS to decide whether or not the strto* functions are - needed +bashline.c + - in command_word_completion_function, if readline sets + rl_completion_found_quote, but doesn't set rl_completion_quote_character, + we have an embedded quoted string or backslash-escaped character in + the passed text. We need to dequote that before calling + filename_completion_function. So far, this is in place only for + absolute program names (those containing a `/') + - in command_word_completion_function, use rl_variable_value to decide + whether or not we should ignore case, and use strncasecmp instead of + strncmp where appropriate - 10/17 + 10/11 ----- -configure.in - - call AC_REPLACE_FUNCS(rename) - - move getcwd, strpbrk, strcasecmp, strerror, strtod - from AC_CHECK_FUNCS to AC_REPLACE_FUNCS - - only call BASH_FUNC_GETCWD if $ac_func_getcwd == "yes" - - call BASH_CHECK_SYS_SIGLIST - - if we don't have vprintf but have _doprnt, call AC_LIBOBJ(vprint) - -lib/sh/Makefile.in - - remove rename, getcwd, inet_aton, strpbrk, strcasecmp, strerror, - strtod, vprint from OBJECTS; picked up from LIBOBJS +builtins/fc.def + - fixed a typo when using POSIX_FC_EDIT_COMMAND -aclocal.m4 - - change BASH_FUNC_GETCWD to call AC_LIBOBJ(getcwd) if the libc - getcwd(3) calls popen(3) - - change BASH_FUNC_INET_ATON to call AC_LIBOBJ(inet_aton) if it's - not found in libc or as a #define even with the special includes - - BASH_KERNEL_RLIMIT_CHECK -> BASH_CHECK_KERNEL_RLIMIT - - BASH_DEFAULT_MAILDIR -> BASH_SYS_DEFAULT_MAILDIR - - BASH_JOB_CONTROL_MISSING -> BASH_SYS_JOB_CONTROL_MISSING - - BASH_REINSTALL_SIGHANDLERS -> BASH_SYS_REINSTALL_SIGHANDLERS - - BASH_SIGNAL_CHECK -> BASH_SYS_SIGNAL_VINTAGE - - BASH_DUP2_CLOEXEC_CHECK -> BASH_FUNC_DUP2_CLOEXEC_CHECK - - BASH_PGRP_SYNC -> BASH_SYS_PGRP_SYNC - - BASH_RLIMIT_TYPE -> BASH_TYPE_RLIMIT - - BASH_FUNC_PRINTF -> BASH_DECL_PRINTF - - BASH_FUNC_SBRK_DECLARED -> BASH_DECL_SBRK - - BASH_MISC_SPEED_T -> BASH_CHECK_SPEED_T - - BASH_CHECK_SOCKLIB -> BASH_CHECK_LIB_SOCKET - - new macro, BASH_CHECK_SYS_SIGLIST, encapsulates all the checks for - sys_siglist, _sys_siglist, and strsignal(), sets SIGLIST_O to - siglist.o if appropriate +redir.h + - new flag values for redirections: RX_INTERNAL and RX_USER (currently + unused) -Makefile.in - - use SIGLIST_O variable to decide whether or not we need siglist.o +redir.c + - add_undo_redirect and add_undo_close_redirect now set RX_INTERNAL + flag when making new redirects + - in do_redirection_internal, only set file descriptors > 2 to CLEXEC + if they're marked as RX_INTERNAL -{execute_cmd,subst}.c - - change a couple of instances of ISDIGIT to DIGIT, where we really, - really only want ascii digits + 10/12 + ----- +jobs.c + - in wait_for_single_pid, if in posix mode, remove the waited-for pid + from the list of background pids, forgetting it entirely. POSIX + conformance tests test for this. -ansi_stdlib.h - - don't need a declaration for atol() +lib/readline/{readline.h,vi_mode.c} + - new state flag, RL_STATE_VICMDONCE, set after entering vi command + mode the first time; reset on each call to readline() - 10/18 + 10/13 ----- +lib/readline/undo.c + - in rl_revert_line, make sure that revert-line in vi mode leaves + rl_point set to 0 no matter the state of the line buffer -aclocal.m4 - - new macro, BASH_FUNC_PRINTF_A_FORMAT, checks for printf support - for %a, %A conversion specifiers, defines HAVE_PRINTF_A_FORMAT - if successful +lib/readline/vi_mode.c + - when entering vi_command mode for the first time, free any existing + undo list so the previous insertions won't be undone by the `U' + command. This is how POSIX.2 says `U' should work (and the test + suite tests for it) -configure.in - - call AC_CHECK_FUNCS for isascii - - call BASH_FUNC_PRINTF_A_FORMAT +lib/readline/bind.c + - change rl_parse_and_bind so only `set' commands involving boolean + readline variables have trailing whitespace stripped from the value + string -config.h.in - - add a define for HAVE_ISASCII - - add a define for HAVE_PRINTF_A_FORMAT + 10/16 + ----- +lib/glob/sm_loop.c + - fix patscan() to correctly scan backslash-escaped characters -lib/sh/snprintf.c - - for long double output, fall back to sprintf using ldfallback() - function for floating point formats - - support %a, %A using dfallback() or ldfallback() if - HAVE_PRINTF_A_FORMAT is defined - - fix bug in vasprintf that returned wrong value in its first - argument if the buffer holding the result string got reallocated - - fixed PUT_CHAR macro to increment the counter even if we've - exceeded the buffer size, for the return value from - vsnprintf/snprintf - - fix vsnprintf_internal to not use counter < length as a loop - condition, but always process the entire format string (for - the return value from vsnprintf/snprintf) + 10/18 + ----- +lib/sh/{winsize.c,Makefile.in},{jobs,nojobs}.c,Makefile.in,externs.h + - moved get_new_window_size from jobs.c/nojobs.c to new file, + lib/sh/winsize.c, made function global -builtins/printf.def - - support %a, %A if HAVE_PRINTF_A_FORMAT is defined +{jobs,nojobs,sig}.c,{jobs,sig}.h + - moved SIGWINCH handling code to sig.c rather than duplicate it in + jobs.c and nojobs.c + - call set_sigwinch_handler from sig.c code rather than job control + signal initialization -include/typemax.h - - new file, with the TYPE_MAXIMUM stuff that's duplicated in several - files in lib/sh +sig.[ch] + - new variable, sigwinch_received, acts like interrupt_state for + SIGWINCH, set by sigwinch_sighandler. sigwinch_sighandler no longer + calls get_new_window_size -lib/sh/{fmtulong,strtol,snprintf}.c - - include instead of having the definitions in each file +parse.y + - add call to get_new_window_size if sigwinch_received at top of + shell_getc -lib/sh/Makefile.in - - updated dependencies for typemax.h + 10/19 + ----- +lib/malloc/malloc.c + - to avoid orphaning memory on free if the right bucket is busy, use a + new function xplit(mem, bucket) to split the block into two or more + smaller ones and add those to the right bucket (appropriately marking + it as busy) + - audit bsplit(), bcoalesce(), and xsplit() for proper use of busy[], + since they're dealing with two separate buckets 10/22 ----- -configure.in - - call AC_CHECK_FUNCS on ctype.h functions/macros that bash redefines - in chartypes.h - -config.h.in - - defines for HAVE_IS{ASCII,BLANK,GRAPH,PRINT,SPACE,XDIGIT} - -include/chartypes.h, lib/glob/strmatch.c, lib/readline/chardefs.h - - don't redefine some is* ctype macros/functions if HAVE_ISXXX is - defined (meaning that an appropriate function, but not a macro, - exists) +subst.c + - new flag for string_extract: EX_REQMATCH, means to return an error + if a matching/closing character is not found before EOS + - new static flag variables: extract_string_error and extract_string_fatal + - change expand_word_internal to check for new error returns from + string_extract and return errors if appropriate -lib/sh/strtrans.c - - new function, ansic_shouldquote, returns 1 if argument string - contains non-printing chars that should be quoted with $'...' + 10/23 + ----- +builtins/cd.def + - make sure we free TDIR in change_to_directory after calling + set_working_directory (which allocates new memory) and other places + we short-circuit and return -externs.h - - new declaration for ansic_shouldquote() + 10/24 + ----- +subst.c + - modified fix from 10/22 to allow bare ` to pass through (for + some backwards compatibility and more correctness) -variables.c - - change print_var_value to ansi C quote the string if we're not in - posix mode and the variable's value contains non-printing chars, - to use the regular shell single quoting if the value contains - shell meta-characters, and to just output the string otherwise + 10/27 + ----- +conftypes.h + - make MacOS X use the RHAPSODY code that gets HOSTTYPE, et al. + at build rather than configure time, to support universal binaries + (fix from llattanzi@apple.com) -lib/sh/shquote.c - - add `break' to `case '~':' to avoid fallthrough and extra test + 10/30 + ----- +builtins/evalstring.c + - make sure we don't turn on CMD_NO_FORK in parse_and_execute if + we're running a trap command on signal receipt or exit -doc/bashref.texi - - note that in POSIX mode, `set' displays variable values that - include nonprinting characters without quoting, unless they - contain shell metacharacters +execute_cmd.c + - in shell_execve, improve the error message a little bit if the + interpreter name in a #! exec header ends with a ^M (as in a DOS- + format file) -builtins/printf.def, lib/sh/snprintf.c - - handle `F' conversion specifier as equivalent to 'f' + 11/1 + ---- +lib/readline/vi_mode.c + - fix vi-mode `r' command to leave the cursor in the right place -parse.y, {nojobs,variables}.c - - a couple of cleanups for when building a minimal configuration +[bash-3.1-rc1 frozen] -nojobs.c - - new function: stop_making_children(), just sets - already_making_children to 0 (like stop_pipeline) + 11/5 + ---- +execute_cmd.c + - make sure a DEBUG trap doesn't overwrite a command string passed to + make_child in execute_simple_command -subst.c - - call stop_making_children from subst.c:command_substitute if - JOB_CONTROL is not defined. This fixes the bug where the wrong - process is waited for (and its status returned) when using - command substitution in a null command in a shell function +bashline.c + - rearrange some code in bash_quote_filename so filenames with leading + tildes containing spaces aren't tilde-expanded before being + returned to the caller -builtins/printf.def - - new variable `tw' used to keep track of the total number of - characters written by a single call to `printf' -- to be - used for the `%n' conversion, which will be added later. It - gets reset each time we reuse the format string, which is what - ksh93 seems to do + 11/6 + ---- +lib/readline/display.c + - when deciding where to move the cursor in rl_redisplay and needing + to move the cursor back after moving it vertically and compensate + for invisible characters in the prompt string, make sure that + _rl_last_c_pos is treated as an absolute cursor position in a + multibyte locale and the wrap offset (number of invisible characters) + is added explicitly when deciding how many characters to backspace - 10/23 + 11/10 ----- -variables.c - - new function, bind_var_to_int (char *var, long val) - -variables.h - - extern declaration for bind_var_to_int +lib/readline/terminal.c + - _rl_set_screen_size now interprets a lines or columns argument < 0 + as an indication not to change the current value -lib/sh/netopen.c - - use gai_strerror() for error messages when getaddrinfo() fails - - use PF_INET if DEBUG is defined, since IPv6 doesn't work for me + 11/11 + ----- -Makefile.in - - pass DEBUG=${DEBUG} down to makes in some subdirectories +lib/readline/terminal.c + - new function, rl_reset_screen_size, calls _rl_get_screen_size to + reset readline's idea of the terminal size + - don't call _rl_get_screen_size in _rl_init_terminal_io if both + _rl_screenheight and _rl_screenwidth are > 0 + - don't initialize _rl_screenheight and _rl_screenwidth to 0 in + _rl_init_terminal_io; let caller take care of it + - set _rl_screenheight and _rl_screenwidth to 0 before calling + _rl_init_terminal_io -{builtins,lib/{glob,sh}}/Makefile.in - - append ${DEBUG} to LOCAL_CFLAGS value, passed by top-level Makefile +lib/readline/readline.h + - new extern declaration for rl_reset_screen_size -builtins/printf.def - - added support for %n format conversion char (number of chars printed - so far from current format string) +lib/readline/doc/rltech.texi + - documented rl_reset_screen_size - 10/24 - ----- variables.c - - if posixly_correct is set, the default value of $MAILCHECK is 600 - - use legal_number instead of atoi in adjust_shell_level - - treat non-numeric assignments to SECONDS as 0 in assign_seconds - - new function, init_funcname_var; sets FUNCNAME as a dynamic variable - if it's not set in the initial environment - - new function, init_groups_var; sets GROUPS as a dynamic array - variable if it's not set in the initial environment - - new function, init_dirstack_var; sets DIRSTACK as a dynamic array - variable if it's not set in the initial environment - - new function, init_seconds_var; sets SECONDS as a dynamic - variable using any valid integer value in the initial environment - as the initial value, as if an assignment had been performed - - call init_funcname_var, init_groups_var, init_dirstack_var, - init_seconds_var from initialize_dynamic_variables - - non-numeric values assigned to LINENO are treated as 0 - - change initialize_shell_variables to not auto-export PATH or TERM - - change set_home_var to not auto-export HOME - - change set_shell_var to not auto-export SHELL - - broke the code that sets HOSTNAME, HOSTTYPE, MACHTYPE, OSTYPE - out into a separate function, set_machine_vars; none of those - variables are auto-exported - - bash no longer un-exports SSH_CLIENT or SSH2_CLIENT - -shell.c - - changed isnetconn() to check SSH_CLIENT and SSH2_CLIENT only if - SSH_SOURCE_BASHRC is defined in config-top.h + - if readline is being used, compile in a special var function for + assignments to LINES and COLUMNS that calls rl_set_screen_size or + rl_reset_screen_size as appropriate. Only do this in posix mode + and only when STRICT_POSIX is defined at compile time + - new semaphore variable, winsize_assignment, set while doing an + assignment to LINES or COLUMNS + - new variable, winsize_assigned, says LINES or COLUMNS was assigned + to or found in the environment + - if in the middle of an assignment to LINES or COLUMNS, make + sh_set_lines_and_columns a no-op -config-top.h - - added a commented-out definition for SSH_SOURCE_BASHRC +lib/sh/winsize.c + - get_new_window_size now takes two int * arguments, to return the + screen dimensions - 10/25 - ----- +externs.h + - change extern declaration for get_new_window_size -Makefile.in - - changed RELSTATUS to `rc1' (release candidate 1) +{jobs,nojobs}.c, parse.y + - change callers of get_new_window_size - 10/29 + 11/12 ----- -locale.c - - fixed an `=' vs. `==' typo in set_locale_var when parsing - LC_NUMERIC +lib/readline/terminal.c + - new variable, rl_prefer_env_winsize, gives LINES and COLUMNS + precedence over values from the kernel when computing window size -doc/{bash.1,bashref.texi} - - document what bash does with $POSIXLY_CORRECT +lib/readline/readline.h + - extern declaration for rl_prefer_env_winsize -doc/builtins.1 - - some updates +lib/readline/doc/rltech.texi + - document rl_prefer_env_winsize -builtins/psize.sh - - some mktemp(1) changes + 11/13 + ----- +lib/readline/rltty.c + - change rl_prep_terminal to make sure we set and reset the tty + special characters in the vi insertion keymap if in vi mode. This + matters if we get accept-line for the previous line while in vi + command mode -lib/readline/readline.c - - change rl_backward to check for rl_point < 0 and reset to 0 if so + 11/14 + ----- +builtins/pushd.def + - make sure any call to cd_builtin includes a leading `--' from the + argument list (or constructs one) -lib/readline/util.c - - don't compile in _rl_strpbrk if HAVE_STRPBRK is defined + 11/16 + ----- +pcomplete.c + - fix small memory leak in gen_wordlist_matches -lib/readline/rlprivate.h - - remove extern declaration of _rl_strpbrk +[bash-3.1-rc2 frozen] -lib/readline/rldefs.h - - #define _rl_strpbrk as strpbrk if HAVE_STRPBRK is define, otherwise - add extern declaration of _rl_strpbrk from rlprivate.h + 11/21 + ----- +[bash-3.1-rc2 released] -{mailcheck,shell,variables}.c - - make sure to include posixtime.h to get any prototype for time(3) - in scope + 11/23 + ----- +lib/readline/display.c + - changes to rl_redisplay to compensate for update_line updating + _rl_last_c_pos without taking invisible characters in the line into + account. Important in multibyte locales where _rl_last_c_pos is an + absolute cursor position + - changes to _rl_move_cursor_relative to account for _rl_last_c_pos + being an absolute cursor position in a multibyte character locale + - rewrote _rl_move_cursor_relative to make it a little simpler -{array,eval,execute_cmd,mksyntax,subst}.c, parse.y -builtins/common.c -lib/sh/pathcanon.c - - a few changes as the result of `gcc -Wall' patches from solar - designer + 11/29 + ----- +lib/readline/display.c + - changes to rl_redisplay and update_line for update_line to communicate + upward that it took the number of invisible characters on the current + line into account when modifying _rl_last_c_pos + - in update_line, adjust _rl_last_c_pos by wrap_offset before calling + _rl_move_cursor_relative, so we pass correct information about the + true cursor position -builtins/read.def, parse.y - - change some calls to free() to xfree() + 12/1 + ---- +configure.in + - changed release status to `release' -builtins/set.def - - make sure unset_builtin() resets unset_array to 0 each time through - the loop, because it's set (and used) depending on the current - argument +[bash-3.1 frozen] -shell.h - - new define, USE_VAR, to force the compiler to not put a particular - variable in a register -- helpful if registers are not restored - by setjmp/longjmp + 12/8 + ---- +[bash-3.1 released] -builtins/{evalfile.c,{read,wait}.def}, {eval,execute_cmd,shell,test}.c - - use USE_VAR for some variables + 12/9 + ---- +doc/{bash.1,version.texi},lib/readline/doc/version.texi + - remove `beta1' from man page footer and texinfo documents -subst.c - - fixed a case in expand_word_internal where a NULL pointer could - have been passed to free() (though free() should ignore it) - - fixed a case at the end of expand_word_internal where LIST could - have been used uninitialized (it makes gcc happy, though it - doesn't happen in practice) +variables.c + - make sure winsize_assignment is protected by #ifdef READLINE, so + minimal shell will compile -test.c - - give test_syntax_error(), beyond(), and integer_expected_error() - the `__noreturn__' attribute for gcc +builtins/read.def + - make sure error cases free memory and run any unwind-protects to + avoid memory leaks -unwind_prot.c - - in clear_unwind_protect_list(), convert `flags' to `long' (via - assignment to a `long' variable) before casting to `char *', in - case pointers and longs are 64 bits and ints are 32 (makes no - difference on 32-bit machines) - - 10/30 + 12/10 ----- -print_cmd.c - - fixed cprintf to avoid gcc warning about assigning const pointer - to non-const (discarding type qualifier) - -{make_cmd,pcomplete,test}.c,parse.y - - some minor changes to shut up gcc warnings - -lib/sh/tmpfile.c - - fixed sh_mktmpfp to avoid file descriptor leaks in the case that - sh_mktmpfd succeeds but fdopen fails for some reason - - change sh_mktmpfd to use the same scheme for computing `filenum' - as sh_mktmpname - - change get_sys_tmpdir to prefer P_tmpdir if P_tmpdir is defined - - changed sh_mktmpname and sh_mktmpfd to avoid trying to assign to - `nameroot' if `nameroot == 0' (duh) - - add code to sh_mktmpfd to use mkstemp(3) if USE_MKSTEMP is defined - - add code to sh_mktmpname to use mktemp(3) if USE_MKTEMP is defined - -support/{fixlinks,mkclone} - - use mktemp if it's available for the symlink test - - use $TMPDIR instead of hardcoding /tmp; default to /tmp - - use a better filename for the symlink test instead of `z' - -support/bashbug.sh - - more changes inspired by a patch from solar designer - -lib/malloc/Makefile.in - - new target `alloca', which builds libmalloc.a with alloca.o only - (for systems without alloca that are configured --without-bash-malloc) - -configure.in - - if we don't have a working alloca and are not configured to build - the bash malloc library, make a malloc library containing only - alloca.o +execute_cmd.c + - change execute_command_internal to set $PIPESTATUS for ((...)) and + [[ ... ]] commands -aclocal.m4 - - slight change to RL_LIB_READLINE_VERSION to deal with minor version - numbers with a letter appended (like 4.2a) +doc/{bash.1,bashref.texi,version.texi} + - add documentation for ulimit -[iqx] and bump revision date - 10/31 + 12/12 ----- -doc/{bash.1,bashref.texi} - - slight change to note that only interactive shells resend a SIGHUP - to all jobs before exiting - -externs.h - - declare strto[ui]max only if NEED_STRTOIMAX_DECL is defined. This - keeps picky compilers from choking because intmax_t is not defined - (MacOS X 10.1) - -builtins/printf.def - - #define NEED_STRTOIMAX_DECL before including shell.h +parse.y + - make sure parse_compound_assignment saves and restores the + PST_ASSIGNOK parser state flag around its calls to read_token. + Fixes bug reported by Mike Frysinger - 11/1 - ---- -general.c - - check in bash_tilde_expand() for an unquoted tilde-prefix; don't - bother passing the string to tilde_expand unless the prefix is - unquoted + 12/13 + ----- +parse.y + - change parse_compound_assignment to save and restore the value of + last_read_token. Not sure why it was set unconditionally in the + first place after parsing the complete compound assignment -shell.c - - fix a problem with $LINENO when executing commands supplied with - the -c invocation option when ONESHOT is defined + 12/14 + ----- +lib/readline/text.c + - don't use return value of rl_kill_text (which always succeeds and + returns the number of characters killed) in rl_delete as an indication + of success or failure + - ditto for return value of rl_delete_text -[bash-2.05a-rc1 frozen] +lib/readline/readline.c + - don't return the value of the called readline function as the return + value from _rl_dispatch_subseq; -1 means something different to the + callers (return 0 all the time to indicate that a readline function + was found and dispatched). Fix from Andreas Schwab for + bug in callback interface first reported by Mike Frysinger -builtins/printf.def - - fix the %n conversion to require that the variable name supplied - be a valid shell identifier +execute_cmd.c + - fixed a typo in execute_case_command -variables.c - - improve random number generator slightly by using the upper 16 - bits of the running random number instead of the lower 16, which - are incrementally more random + 12/15 + ----- +aclocal.m4 + - add check for wctype() to BASH_CHECK_MULTIBYTE, define HAVE_WCTYPE - 11/2 - ---- -configure.in - - if RL_INCLUDEDIR ends up being /usr/include, don't put - -I$(RL_INCLUDEDIR) into CFLAGS +config.h.in + - add HAVE_WCTYPE #define - 11/5 - ---- -doc/{bash.1,bashref.texi} - - correct description of POSIXLY_CORRECT to note that the shell enters - posix mode *before* the startup files are read if POSIXLY_CORRECT - is in the initial environment +config-bot.h + - add HAVE_WCTYPE to the set of checks for HANDLE_MULTIBYTE. This + should catch the deficient NetBSD multibyte support -variables.c - - fix function prologues for init_dirstack_var and init_groups_var - to agree with caller (no arguments) + 12/16 + ----- +parse.y + - use CTLESC instead of literal '\001' when decode_prompt_string + prefixes RL_PROMPT_START_IGNORE and RL_PROMPT_END_IGNORE -jobs.c - - fix forward function declarations for pipe_read and pipe_close + 12/20 + ----- +lib/readline/display.c + - don't treat RL_PROMPT_START_IGNORE specially inside a sequence of + ignored characters + - keep track of the start of the current sequence of ignored + characters; make sure that an empty sequence of such characters + really is an empty sequence, not one that happens to end with '\001' + (RL_PROMPT_START_IGNORE) + 12/21 + ----- subst.c - - removed `inline' attribute from skip_double_quoted because it can - potentially be called recursively - -bashline.c - - quick fix to bashline.c:attempt_shell_completion programmable - completion code to just punt if the end of the command word found - by find_cmd_end is <= the start found by find_cmd_start (the bug - is probably in find_cmd_start -- fix later) - -pcomplete.c - - fix gen_matches_from_itemlist to return if the stringlist is null - after any cleaning or initialization, before trying to use it - - fix GEN_COMPS to only bother to try to append the STRINGLIST - returned by gen_matches_from_itemlist to `glist' if it's non-NULL - -lib/sh/stringlist.c - - make copy_stringlist return NULL if the STRINGLIST * passed as an - argument is NULL - - make append_stringlist call copy_stringlist only if M2 is non-NULL; - otherwise just return NULL if m1 is NULL - - make word_list_to_stringlist return 0 immediately if the passed - LIST argument is NULL - - make realloc_stringlist call alloc_stringlist if the passed - STRINGLIST argument (`sl') is 0, just like realloc calls malloc + - change expand_word_internal to process rest of `tilde-word' as a + regular part of the word if tilde expansion leaves the tilde-word + unchanged. This means that ~$USER expands to ~chet, which seems + more intuitive, and is effectively what bash-3.0 did + 12/23 + ----- subst.c - - in skip_to_delim(), if we have an unclosed ${, and it's at the end - of the string (string[i] == '{', string[i+1] == '{' and - string[i+2] == 0, return si (i + 2) immediately without bothering - to call extract_dollar_brace_string or extract_delimited_string - - in skip_to_delim(), if string[i] is 0 after a call to - extract_dollar_brace_string or extract_delimited_string (meaning we - have an unclosed ${ or other expansion, return i immediately without - doing a `continue' (which will increment i past the end of string) - - in split_at_delims, don't increment te by 1 if it's pointing to a - delimiter. this has the effect of skipping the first delimiter - char in a possibly multi-character delimiter, and ignoring - single-char delimiters like `>' + - when making a local array variable in do_compound_assignment, make + sure that we don't use a variable of the same name from a previous + context -configure.in - - use AC_CHECK_MEMBERS([struct stat.st_blocks]) instead of a call to - AC_STRUCT_ST_BLOCKS to avoid configure changing LIBOBJS if the test - fails +doc/bash.1 + - documented expansions for word and patterns in case statement -general.c - - introduce two new variables: bash_tilde_{prefixes,suffixes}, set - to the additional prefixes and suffixes bash wants to pass to the - tilde expansion code (reserved for post-bash-2.05a fix) +builtins/ulimit.def,doc/{bashref.texi,bash.1} + - added new -e and -r (nice and rtprio) options to ulimit; documented + them -aclocal.m4 - - add missing `test' in BASH_CHECK_SYS_SIGLIST + 12/26 + ----- +variables.c + - use `hmax' instead of `num' in sv_histsize to avoid integer overflow + problems with intmax_t - 11/7 - ---- -lib/readline/vi_mode.c - - fix rl_vi_goto_mark to explicitly check that the desired mark is - between 'a' and 'z', since some locales have lowercase letters - outside that range, which could cause a negative subscript +builtins/read.def + - add unwind-protect to restore rl_attempted_completion_function in + case of a timeout -include/chartypes.h - - remove superfluous `#undef ISASCII' +{bashline,variables}.c + - move initialization of HISTSIZE from initialization path to + load_history, so it can be overridden by a value assigned in a + startup file -lib/sh/strto[iu]max.c - - changes from Paul Eggert to work around buggy compilers and catch - configuration errors at compile time +lib/readline/misc.c + - add a missing `return r' so that rl_digit_loop returns a meaningful + value -aclocal.m4 - - new macro, BASH_C_LONG_DOUBLE, identical to AC_C_LONG_DOUBLE but - with a fix for Irix 5.3 (not called, since I'm not sure it's the - right thing to do -- the C standard allows double and long double - to be the same size) +lib/readline/{bind,callback,display,isearch,rltty,search,text,vi_mode}.c + - minor cleanups to satisfy compiler warnings, mostly removing unused + variables -lib/sh/snprintf.c - - only try to write the trailing NUL in vsnprintf_internal if - data->length is >= 0, since if it's not, we probably don't have - a buffer + 12/27 + ----- +support/Makefile.in + - add LIBS_FOR_BUILD support; defaults to ${LIBS} Makefile.in - - changed RELSTATUS to `release' - - 11/8 - ---- -lib/sh/strtol.c - - make sure chars passed to toupper are cast to unsigned - -unwind_prot.c - - change clear_unwind_protect_list to not require a cast from `int' - to `char *' - -lib/readline/chardefs.h - - make _rl_digit_p succeed only for ascii digits, since that's what - most callers assume + - add LIBS_FOR_BUILD with no default value; use when linking programs + using CC_FOR_BUILD (e.g., bashversion) - 11/13 + 12/28 ----- -doc/bashref.texi - - added `ERR' trap and [-+]O invocation option to section listing - differences from the Bourne shell +lib/readline/bind.c + - fix rl_translate_keyseq bad translation of \M-\C-x sequences - 11/15 - ----- -[bash-2.05a released] +execute_cmd.c + - in execute_arith_command, if the expression expands to more than one + word, make sure we join the words into a single string and pass the + entire thing to evalexp() - 11/19 - ----- -include/stdc.h - - new define, INLINE, defined as `inline' for gcc and empty otherwise +expr.c + - new functions: _is_arithop(c), returns true if C is a valid single- + character arithmetic operator; _is_multiop(c), returns true if C is + a token corresponding to a valid multi-character arithmetic operator + - if we encounter a character that isn't a valid arithmetic + operator, throw an error. Try to be intelligent about what type of + error message to print subst.c - - make skip_double_quoted, sub_append_string have INLINE attribute - -trap.c - - use BASH_NSIG as upper limit for signal names in signal_name() - -lib/readline/bind.c - - use RL_COMMENT_BEGIN_DEFAULT in output for rl-comment-begin value + - new function, expand_arith_string, calls expand_string_if_necessary; + used where an arithmetic expression needs to be expanded -error.c - - fix sys_error to save value of errno around calls to fprintf +subst.h + - new extern declaration for expand_arith_string -doc/Makefile.in - - added rules to create PDF files from postscript and dvi input +arrayfunc.c + - in array_expand_index, call expand_arith_string to expand the + subscript in a fashion consistent with other arithmetic expressions -MANIFEST.doc - - added {article,bash,bashref,rose94}.pdf +subst.c + - fix parameter_brace_patsub so that we don't try to anchor the pattern + at the beginning or end of the string if we're doing global + replacement -- that combination doesn't doesn't make sense, and + the changed behavior is compatible with ksh93 -doc/bash.1 - - rearranged some `.PD 0' and `.TP' directives so man2html will - handle them better (shouldn't affect groff output) +doc/{bash.1,bashref.texi} + - changed description of pattern substitution to match the new + semantics -support/man2html.c - - small fix to handle quoted string arguments to directives like - `.BR' without mangling the output +tests/new-exp.tests + - change tests to remove all ${pat//#rep} and ${pat//%rep} + expansions, since they don't mean the same thing anymore - 11/20 + 12/29 ----- -{arrayfunc,variables}.c - - changed calling sequence for dynamic array variable `assign' - functions to (SHELL_VAR *self, char *value, arrayind_t ind) - - changed calling sequence for dynamic variable assign functions - to the same as array variable assign_func. Now this can be - prototyped - -variables.h - - the assign_func member of a `struct variable' is now of type - `sh_var_assign_func_t', which is prototyped - - the dynamic_value member of a `struct variable' is now of type - `sh_var_value_func_t', which is prototyped - -variables.c - - changed to use `sh_var_assign_func_t' and `sh_var_value_func_t' - -builtins/cd.def - - when in posix mode, if the new directory name formed by PWD and - the argument passed by the user cannot be canonicalized, and the - -P option has not been supplied, return failure immediately - - if canonicalization failed, but the fallback to the directory - name specified by the user succeeds, reset the current working - directory +support/signames.c + - new file, initialize_signames() function from old mksignames.c. This + file builds the signal_names array -lib/readline/{input.c,rlprivate.h} - - renamed rl_unget_char to _rl_unget_char; made library global +support/mksignames.c + - strip out initialize_signames(), move to signames.c. This file only + writes signames.h + - set up to only write a stub signames.h if CROSS_COMPILING is defined, + with extern declaration for initialize_signames + - if not cross compiling, #define initialize_signames to nothing -lib/readline/{{bind,readline}.c,{keymaps,rlprivate}.h} - - support for `key subsequences'; allows a key sequence and a function - mapped to a subsequence of that key sequence. Primarily to allow - arrow keys to be bound in readline vi insert mode, while preserving - the ESC function to switch to command mode. +Makefile.in + - mksignames is now linked from mksignames.o and buildsignames.o + - add rules to build signames.o, assuming we're building it as part + of the shell (cross-compiling) -lib/readline/{input.c,rlprivate.h} - - new function, _rl_input_queued(T), does a check with select or - FIONREAD with a timeout of `T' (which is generally 0) +trap.c + - call initialize_signames from initialize_traps -lib/readline/readline.c - - change _rl_dispatch_subseq to test for input in the queue if we - get ESC while in vi insertion mode if the keymap entry type for - ESC is ISKMAP. If _rl_input_queued returns non-zero, we assume - that an arrow key sequence has been pressed and go ahead with the - subsequence. If it returns zero, we assume that the user pressed - ESC to switch into command mode, and dispatch to that right away. - This avoids forcing the user to press another key before switching - into command mode +configure.in + - set SIGNAMES_O to nothing (normal) or signames.o (cross-compiling), + substitute into Makefile + - don't set SIGNAMES_H if cross-compiling any more - 11/21 + 12/30 ----- -lib/readline/readline.c - - bind common arrow key sequences in vi insertion keymap +command.h + - new word flag: W_NOPROCSUB, inhibits process substitution on a word -lib/readline/terminal.c - - bind termcap definition's arrow keys in vi insertion keymap +subst.c + - change expand_word_internal to suppress process substitution if the + word has the W_NOPROCSUB flag -lib/readline/bind.c - - check for rl_vi_movement_mode in _rl_bind_if_unbound, so - binding the arrow keys can work +shell.c + - --wordexp turns on W_NOPROCSUB in addition to W_NOCOMSUB -lib/readline/readline.c - - since _rl_bind_if_unbound does the check of what's currently - bound to the key sequence, the check in bind_arrow_keys_internal - was redundant - - bind_arrow_keys_internal now takes a Keymap argument and handles - saving and restoring _rl_keymap; changed bind_arrow_keys - accordingly +subst.c + - change string_list_dollar_at and string_list_dollar_star so that + MB_CUR_MAX is used to size an array only when using gcc, since gcc + can handle non-constant array sizes using a mechanism like alloca. + Other compilers, e.g. Sun's compiler, do not implement that + extension -builtins/fc.def - - fix from Paul Eggert to substitute the nearest history number in - range if an out-of-range value is supplied. POSIX requires this + 12/31 + ----- +builtins/mkbuiltins.c + - when cross-compiling, don't include , since it's for the + target rather than the host system. Instead, choose a reasonable + set of default #defines based on a minimal POSIX system -lib/sh/pathcanon.c - - fix from Corrina Vinschen for the special `cygdrive' prefix on - Cygwin +jobs.c + - change find_process to handle a NULL return value from find_pipeline + - return immediately from delete_job if jobs[index] is already NULL or + if it has a null pipeline associated with it + - in delete_job, if find_last_proc returns NULL, don't try to call + bgp_delete -bashhist.c - - split the history adding code into more pieces: - check_history_control (char *line) checks LINE against the value - of HISTCONTROL, returning 1 if LINE should be saved and 0 if not + 1/7/2006 + -------- +doc/bash.1 + - patch from Tim Waugh to replace some literal single quotes with + \(aq, the groff special character for it - check_add_history (char *line) calls check_history_control and - history_should_ignore (line) and saves the line with - bash_add_history if the checks indicate that it should be saved +jobs.c + - in realloc_jobs_list, make sure to zero out slots after j_lastj + in the new list - maybe_add_history just calls check_add_history to set the value - of first_line_saved - -bashhist.h - - extern declaration for check_add_history() - -shell.c - - don't call load_history() from the interactive shell startup - code if history_lines_this_session is > 0, indicating that we've - already saved some lines in the history and that we probably - don't want to overwrite them - -builtins/history.def - - call check_add_history from push_history, so `history -s xx' - works even when in a compound command whose first line has not - been saved. (Caveat: in a compound command when the first - line has been saved, the line supplied to history -s will become - part of the compound command's history entry. Of course, the - delete_history call could remove the compound command from the - history entirely) - -bashline.c - - use sh_makepath instead of xmalloc/sprintf in - command_word_completion_function - -lib/readline/complete.c - - get_y_or_n now takes an int FOR_PAGER argument; caller changed - If FOR_PAGER is non-zero, get_y_or_n returns appropriate values - for a more-like pager: `newline' or `return' return 2; `q' or - `Q' return 0 - - there is now a mini internal more-like pager for displaying a - list of completions that exceeds the screen height (new function - _rl_internal_pager, called from rl_display_match_list) - - 11/24 - ----- -command.h - - new flag, W_TILDEEXP, says to do tilde expansion on an - assignment word - -execute_cmd.c - - fix_assignment_words now sets W_TILDEEXP for assignment word - arguments to `assignment builtins' - -general.c - - bash_tilde_expand now takes a second argument indicating whether - or not it's being invoked in an `assignment context' - -general.h - - change extern declaration for bash_tilde_expand - -{bashline,execute_cmd,findcmd,general,variables}.c -builtins/evalfile.c -lib/sh/makepath.c - - fix callers of bash_tilde_expand appropriately - -subst.c - - fix callers of bash_tilde_expansion appropriately - - add (currently commented-out) code that would tilde expand assignment - statement arguments to assignment builtins (W_TILDEEXP flag set) - even when the shell is in posix mode - -bashline.c - - fix attempt_shell_completion to turn off - rl_filename_completion_desired when doing command name completion, - so no slash gets appended to the name if there happens to be a - directory with the same name in the current directory - - 11/26 - ----- -lib/readline/rltech.texinfo - - a couple of additions to the rl_stuff_char description + 1/9 + --- +support/mksignames.c + - make sure to include to get right value of NSIG from + (usually) + 1/10 + ---- parse.y - - turn off echo_input_at_read in parse_string_to_word_list, so `set -v' - doesn't give extra lines of output when doing compound array - assignment - -subst.c - - fix split_at_delims to handle skipping over a `\n' if it's a - delimiter (use spctabnl(c) instead of whitespace(c)) + - when calling parse_matched_pair on a $(...) command substitution, + don't pass the P_DQUOTE flag so that single quotes don't get + stripped from $'...' inside the command substitution. Bug report + and fix from Mike Stroyan - 11/27 - ----- -support/config.{guess,sub} - - updated (with bash changes) to latest version from gnu.org +jobs.c + - start maintaining true count of living children in js.c_living + - call reset_current in realloc_jobs_list, since old values for current + and previous job are most likely incorrect + - don't allocate a new list in realloc_jobs_list if the old size and + new size are the same; just compact the existing list + - make sure realloc_jobs_list updates value of js.j_njobs + - add some more itrace messages about non-null jobs after j_lastj in + jobs array -sig.h - - add prototype for set_signal_handler declaration + 1/11 + ---- +bashjmp.h + - new value for second argument to longjmp: SIGEXIT. Reserved for + future use -builtins/setattr.def - - add prototype to extern declaration of declare_builtin + 1/12 + ---- +jobs.c + - add logic to make_child to figure out when pids wrap around + - turn second argument to delete_job into flags word, added flag to + prevent adding proc to bgpids list -builtins/times.def - - add no_options call, since times takes no options + 1/13 + ---- +lib/readline/vi_mode.c + - move code that moves forward a character out of rl_vi_append_mode + into a separate function, _rl_vi_append_forward + - change _rl_vi_append_mode to save `a' as the last command, so it + can be redone properly + - new function _rl_vi_backup, moves point back a character taking + multibyte locales into account + - change rl_vi_redo to handle redoing an `a' command specially -- + it should be redone like `i' but after moving forward a character + - change rl_vi_redo to use _rl_vi_backup to move point backward + after redoing `i' or `a' -lib/sh/spell.c - - add prototypes to forward declarations for midist and spdist +jobs.c + - new function, delete_old_job (pid), checks whether or not PID is in + a job in the jobs list. If so, and the job is dead, it just removes + the job from the list. If so, and the job is not dead, it zeros + the pid in the appropriate PROCESS so pid aliasing doesn't occur + - make_child calls delete_old_job to potentially remove an already-used + instance of the pid just forked from the jobs list if pids have + wrapped around. Finally fixes the bug reported by Tim Waugh + -lib/sh/strtrans.c - - add explicit int return type to ansic_shouldquote declaration +trap.c + - new define, GETORIGSIG(sig), gets the original handling for SIG and + sets SIG_HARD_IGNORE if that handler is SIG_IGN + - call GETORIGSIG from initialize_traps, get_original_signal, and + set_signal -lib/readline/rldefs.h, lib/readline/{macro,readline,util,undo}.c - - move define for SWAP to rldefs.h, removed from various C files +jobs.c + - in wait_for, if the original SIGINT handler is SIG_IGN, don't set + the handler to wait_sigint_handler. This keeps scripts started in + the background (and ignoring SIGINT) from dying due to SIGINT while + they're waiting for a child to exit. Bug reported by Ingemar + Nilsson lib/readline/vi_mode.c - - removed define for exchange(), changed to use SWAP instead - -lib/readline/bind.c - - added some static forward function declarations - - find_boolean_var, find_string_var now take a `const char *' argument + - don't save text to buffer unless undo pointer points to a record of + type UNDO_INSERT; zero it out instead. This fixes bug reported by + Craig Turner with redoing `ctd[ESC]' (empty + insert after change to) -lib/readline/signals.c - - added static forward declaration for rl_maybe_set_sighandler +shell.c + - change set_shell_name so invocations like "-/bin/bash" are marked as + login shells -lib/readline/readline.c - - add some common key bindings for the HOME and END keys in - bind_arrow_keys_internal +doc/bash.1 + - add note about destroying functions with `unset -f' to the section + on shell functions lib/readline/terminal.c - - fetch the `@7' termcap string; it's sent by the END key - - attempt to bind the terminal's END key to rl_end_of_line in - bind_termcap_arrow_keys; I don't know why I was using `kH' - instead of `@7' + - if readline hasn't been initialized (_rl_term_autowrap == -1, the + value it's now initialized with), call _rl_init_terminal_io from + _rl_set_screen_size before deciding whether or not to decrement + _rl_screenwidth. Fixes bug from Mike Frysinger -doc/builtins.1 - - remove `case', `for', `if', `until', `while' from NAME section; - those are not shell builtins + 1/14 + ---- +lib/readline/input.c + - allow rl_set_keyboard_input_timeout to set the timeout to 0, for + applications that want to use select() like a poll without any + waiting - 11/28 - ----- -stringlib.c - - new function, find_token_in_alist, takes a token value and an - ALIST argument, and returns the string correspoinding to the - token if found in the alist +lib/readline/doc/rltech.texi + - documented valid values for timeout in rl_set_keyboard_input_timeout -externs.h - - new extern declaration for find_token_in_alist() +jobs.c + - in stop_pipeline, don't have the parent shell call give_terminal_to + if subshell_environment contains SUBSHELL_ASYNC (no background + process should ever give the terminal to anything other than + shell_pgrp) + - in make_child, don't give the terminal away if subshell_environment + contains SUBSHELL_ASYNC + 1/15 + ---- subst.c - - string_list_internal is no longer static - -subst.h - - new extern declaration for string_list_internal() + - in parameter_brace_expand, if extracting ${#varname}, only allow + `}' to end the expansion, since none of the other expansions are + valid. Fixes Debian bug reported by Jan Nordhorlz + 1/17 + ---- parse.y - - new alist array of other tokens returned by read_token which are - not reserved words in word_token_alist[] - - reworked error reporting: new functions print_offending_line, - which prints the line containing the syntax error, - error_token_from_token, which takes the current token and tries to - figure out its textual representation, and error_token_from_text, - which does the old job of finding the bad token by analyzing the - text of shell_input_line at the current index - - report_syntax_error now tries to figure out the token that caused - the syntax error by first looking at current_token and falling - back to the old method of textual analysis if that fails - - report_syntax_error doesn't say the token resulting from the textual - analysis of the input line is an `unexpected token'; it just - says there is a `syntax error near xxx' - - changed conditional command error reporting to use the value - returned by error_token_from_token if it's not null instead of - just using the token value in the message, since current_token - ends up being set to -1, and the text of the message from - report_syntax_error might not be exactly right - - change parse_string_to_word_list to set current_token to the - offending token returned by read_token before calling yyerror() - to make the error reporting do the right thing - -aclocal.m4 - - fixed typo in BASH_CHECK_LIB_TERMCAP - -configure.in - - add check for isinf(3); define HAVE_ISINF_IN_LIBC if found - -config.h.in - - add define for HAVE_ISINF_IN_LIBC - -lib/sh/snprintf.c - - check for Inf and NaN, using isinf and isnan if they're found in - libc - - use the current locale for thousands separator and decimal point - - recognize "'" flag; not implemented yet - - fix for snprintf/vsnprintf with length of 0 and string argument of - 0 with non-zero length + - in parse_matched_pair, protect all character tests with the MBTEST + macro + - in parse_dparen, take out extra make_word after call to alloc_word_desc + (mem leak) -builtins/read.def - - TMOUT is now the default timeout for `read' (and select) if set, - like ksh93 when reading from the terminal - - edit_line (called by read -e) now just does readline's filename - completion by setting rl_attempted_completion_function to NULL, - since e.g., doing command completion for the first word on the - line wasn't really useful + 1/18 + ---- +parse.y + - in parse_matched_pair, add P_ALLOWESC to flags passed to recursive + parse_matched_pair call when encountering a single or double quote + inside a ``-style command substitution execute_cmd.c - - changed select_command to return failure status if select_query - returns NULL, indicating that read_builtin returned - EXECUTION_FAILURE - -doc/{bash.1,bashref.texi} - - documented new TMOUT behavior - - slight change to the description of the test `-ef' option + - add call to QUIT at beginning of execute_command_internal; better + responsiveness to SIGINT -doc/bashref.texi - - added item to posix mode section describing failure behavior of - cd when invoked in logical mode and the pathname formed by - combining $PWD and the directory argument does not refer to an - existing directory + 1/21 + ---- +lib/readline/bind.c + - change rl_invoking_keyseqs_in_map to honor the setting of + convert-meta when listing key bindings, since if convert-meta is off, + using '\M-' as the prefix for bindings in, for instance, + emacs-escape-keymap, is wrong. This affects `bind -p' output + - change rl_untranslate_keyseq to add '\e' instead of '\C-[' for + ESC - 11/29 - ----- execute_cmd.c - - fix execute_function to call dispose_function_env after - merge_function_env if the shell is in posix mode (fixes debian - bash bug #117673) - -lib/readline/readline.c - - rl_forward -> rl_forward_char; rl_forward function for compatibility - - rl_backward -> rl_backward_char; rl_forward function for - compatibility - - new functions, rl_forward_byte, rl_backward_byte, for future use - -lib/readline/readline.h - - extern declarations for rl_forward_char, rl_backward_char, - rl_forward_byte, rl_backward_byte - -lib/readline/{emacs_keymap,funmap,vi_keymap,vi_mode - - rl_forward -> rl_forward_char - - rl_backward -> rl_backward_char + - add call to QUIT at end of execute_command -lib/readline/funmap.c - - new bindable names, `backward-byte' and `forward-byte' + 1/23 + ---- +lib/readline/display.c + - changed two places in update_line where a check of whether the cursor + is before the last invisible character in the prompt string to + differentiate between the multibyte character case (where + _rl_last_c_pos is a physical cursor position) and the single-byte + case (where it is a buffer index). This prevents many unnecessary + \r-redraw the line sequences. Reported by Dan Jacobson. -aclocal.m4 - - new function, BASH_CHECK_MULTIBYTE, encapsulates checks for - multibyte code + 1/24 + ---- +quit.h + - wrap QUIT macro in do...while(0) like other compound statement + macros + - CHECK_TERMSIG define (placeholder for now); future use will be to + handle any received signals that should cause the shell to + terminate (e.g., SIGHUP) -config.h.in - - add necessary defines for multibyte include files and functions +{input,jobs,nojobs}.c + - add calls to CHECK_TERMSIG where appropriate (reading input and + waiting for children) + - include quit.h if necessary -configure.in - - add call to BASH_CHECK_MULTIBYTE + 1/25 + ---- +parse.y + - undo change that makes `)' in a compound assignment delimit a token. + It messes up arithmetic expressions in assignments to `let', among + other things -config-bot.h - - add code to define HANDLE_MULTIBYTE if prerequisites are met +sig.h,{jobs,nojobs,sig,trap}.c,builtins/trap.def + - rename termination_unwind_protect to termsig_sighandler -lib/sh/xstrchr.c - - new file, xstrchr() is strchr(3) that handles multibyte characters +sig.c + - split termsig_sighandler into two functions: termsig_sighandler, which + runs as a signal handler and sets a flag noting that a terminating + signal was received, and termsig_handler, which runs when it is `safe' + to handle the signal and exit + - new terminate_immediately variable, similar to interrupt_immediately + - termsig_sighandler calls termsig_handler immediately if + terminate_immediately is non-zero -bashhist.c - - first_line_saved -> current_command_first_line_saved; variable is - now global +quit.h + - change CHECK_TERMSIG macro to check terminating_signal and call + termsig_handler if it's non-zero + - add same check of terminating_signal and call to termsig_handler to + QUIT macro -bashhist.h - - extern declaration for current_command_first_line_saved +{jobs,nojobs}.c + - change call to termsig_sighandler to call termsig_handler directly, + as was intended - 11/30 - ----- -bashhist.c - - break the code that actually calls add_history out of - bash_add_history into a new function, really_add_history; - bash_add_history now calls really_add_history - - check_add_history takes a second `force' argument telling it - whether to call bash_add_history (force == 0) or really_add_history - (force != 0) +parse.y,builtins/read.def + - set terminate_immediately to non-zero value when reading interactive + input, as is done with interrupt_immediately -builtins/history.def - - in push_history, call delete_last_history if the current command - has more than one line, the first line was saved, and - command-oriented history is active. This takes care of deleting - the right history element if `history -s' is used within a - compound or multiline command - - in push_history, call check_add_history with second argument of 1 - to skip check of current_command_line_count and add the arguments - to history -s as a single separate history entry + 1/26 + ---- +doc/{bash.1,bashref.texi} + - reworded the POSIX standard references to remove mention of POSIX.2 + or 1003.2 -- it's all the 1003.1 standard now. Recommended by + Arnold Robbins - 12/3 + 1/27 ---- lib/readline/complete.c - - append a slash to completed names which are symlinks to directories - if the new variable _rl_complete_mark_symlink_dirs is non-zero - -lib/readline/rlprivate.h - - extern declaration for _rl_complete_mark_symlink_dirs + - move call to filename dequoting function into + rl_filename_completion_function; call only if directory completion + hook isn't set. This means that directory-completion-hook now needs + to dequote the directory name. We don't want to dequote the directory + name before calling the directory-completion-hook. Bug reported by + Andrew Parker -lib/readline/bind.c - - new bindable variable, `mark-symlinked-directories', mirrors the - value of _rl_complete_mark_symlink_dirs +bashline.c + - add necessary directory name dequoting to bash_directory_expansion + and bash_directory_completion_hook -doc/bash.1, lib/readline/doc/{readline.3,rluser.texinfo} - - documented new `mark-symlinked-directories' variable +lib/readline/doc/rltech.texi + - add note to description of rl_directory_completion_hook that it + needs to dequote the directory name even if no other expansions are + performed - 12/4 + 1/28 ---- -variables.[ch] - - set_pipestatus_array now takes a second argument with the number - of processes in the array - - changed set_pipestatus_array to just modify the value in place if - the existing array has one element and the new array has one - element, and to modify existing values in place if new array has - more elements than existing array +braces.c + - make sure that we skip over braces that don't start a valid matched + brace expansion construct in brace_expand -- there might be a valid + brace expansion after the unmatched `{' later in the string + - brace_gobbler now checks that when looking for a `}' to end a brace + expansion word, there is an unquoted `,' or `..' that's not inside + another pair of braces. Fixes the a{b{c,d}e}f problem reported by + Tim Waugh -variables.c, jobs.c - - changed set_pipestatus_array callers +builtins/declare.def + - when not in posix mode, and operating on shell functions, typeset + and declare do not require their variable operands to be valid + shell identifiers. The other `attribute' builtins work this way. + Fixes inconsistency reported by Mike Frysinger -jobs.c - - moved call to setjstatus() from set_job_status_and_cleanup to - wait_for, since set_job_status_and_cleanup is part of the SIGCHLD - signal handler call path, and race conditions accessing the - PIPESTATUS array will result for things like +{configure,config.h}.in + - add test for setregid, define HAVE_SETREGID and HAVE_DECL_SETREGID + as appropriate + - add test for eaccess, define HAVE_EACCESS if found - while true; do date; done | cat > /dev/null +lib/sh/eaccess.c + - new file, with sh_stat and sh_eaccess functions, moved from test.c + - renamed old sh_eaccess as sh_stataccess, since it uses the stat(2) + information to determine file accessibility + - new function, sh_euidaccess, to call when uid != euid or gid != egid; + temporarily swaps uid/euid and gid/egid around call to access + - rewrote sh_eaccess to call eaccess, access, sh_euidaccess or + sh_stataccess as appropriate. access(2) will take into account + things like ACLs, read-only file systems, file flags, and so on. - 12/5 - ---- -xmalloc.h - - don't redefine xmalloc, xrealloc, and xfree if DISABLE_MALLOC_WRAPPERS - is #defined +lib/sh/Makefile.in,Makefile.in + - add necessary entries for eaccess.[co] -config.h.in - - #undef for DISABLE_MALLOC_WRAPPERS +test.c + - change calls to test_stat to call sh_stat -configure.in - - define DISABLE_MALLOC_WRAPPERS if the --with-purify option is - supplied +{test,general}.c + - change calls to test_eaccess to call sh_eaccess -lib/malloc/trace.c - - new function, malloc_trace_bin(N), traces allocations and frees - to bucket N (uses the same type of bitmap as `busy') +externs.h + - new extern declaration for sh_eaccess -lib/malloc/table.c - - fix wraparound search problem in find_entry when searching for a - free entry when the table is full +test.[ch] + - remove test_stat and test_eaccess - 12/6 + 1/29 ---- -lib/malloc/table.c - - keep an `overflow bucket' around to use when the table is full, - so find_entry always returns a valid pointer when FIND_ALLOC - is set - - new static variable to keep a count of the number of MT_ALLOC - entries in the mem_table +braces.c + - make change from 1/28 dependant on CSH_BRACE_COMPAT not being + defined (since old bash behavior is what csh does, defining + CSH_BRACE_COMPAT will produce old bash behavior) -lib/sh/{oslib,clktck}.c - - if HAVE_LIMITS_H is defined, include + 1/30 + ---- +bashline.c + - last argument of bash_default_completion is now a flags word: + DEFCOMP_CMDPOS (in command position) is only current value + - attempt_shell_completion now computes flags before calling + bash_default_completion + - if no_empty_command_completion is set, bash does not attempt command + word completion even if not at the beginning of the line, as long + as the word to be completed is empty and start == end (catches + beginning of line and all whitespace preceding point) -lib/sh/oslib.c - - new function, getmaxgroups() returns max number of simultaneous - groups - - new function, getmaxchild(), returns max number of simultaneous - user processes + 2/4 + --- +lib/readline/display.c + - change _rl_make_prompt_for_search to use rl_prompt and append the + search character to it, so the call to expand_prompt in rl_message + will process the non-printing characters correctly. Bug reported + by Mike Stroyan -general.c - - removed forest of #defines for getmaxgroups() + 2/5 + --- +lib/readline/display.c + - fix off-by-one error when comparing against PROMPT_ENDING_INDEX, + which caused a prompt with invisible characters to be redrawn one + extra time in a multibyte locale. Change from <= to < fixes + multibyte locale, but I added 1 to single-byte definition of + PROMPT_ENDING_INDEX (worth checking) to compensate. Bug reported + by Egmont Koblinger -externs.h - - new extern declaration for getmaxgroups() - - new extern declaration for getmaxchild() - - new extern declaration for isnetconn() + 2/8 + --- +lib/readline/terminal.c + - call _emx_get_screensize with wr, wc like ioctl code for consistency + - new function, _win_get_screensize, gets screen dimensions using + standard Windows API for mingw32 (code from Denis Pilat) + - call _win_get_screensize from _rl_get_screen_size on mingw32 -lib/sh/netconn.c,shell.c - - new file, isnetconn() from shell.c moved here +lib/readline/rlconf.h + - define SYS_INPUTRC (/etc/inputrc) as system-wide default inputrc + filename -Makefile.in, lib/sh/Makefile.in - - necessary changes for netconn.c +support/shobj-conf + - changes to make loadable builtins work on MacOS X 10.[34] -builtins/ulimit.def - - changed getmaxuprc() to just call getmaxchild() and massage the - return value appropriately +builtins/pushd.def + - changes to make it work as a loadable builtin compiled with gcc4 -{jobs,nojobs}.c - - use the value returned by getmaxchild() in - mark_dead_jobs_as_notified instead of static CHILD_MAX + 2/9 + --- +lib/readline/bind.c + - add SYS_INPUTRC as last-ditch default (if DEFAULT_INPUTRC does not + exist or can't be read) in rl_read_init_file -jobs.c - - new function, compact_jobs_list, removes some number of jobs from - the jobs table and reallocates the table, copying the jobs that - are left from the old table to the new. Compaction happens from - the beginning of the list and removes dead jobs, and we make sure - to keep the last CHILD_MAX jobs as POSIX.2 requires - - call compact_jobs_list from stop_pipeline if we're in a subshell, - there are no free jobs in the jobs table, and the jobs table is - at or above some maximum limit +lib/readline/doc/rluser.texi + - add description of /etc/inputrc as ultimate default startup file -execute_cmd.c - - change eval_arith_for_expr to set this_command_name to `((' before - calling evalexp, since it might be changed by evaluating the - loop body between evalexp calls + 2/10 + ---- +lib/readline/bind.c + - fix problem with rl_function_of_keyseq that returns a non-keymap + bound to a portion of the passed key sequence without processing + the entire thing. We can bind maps with existing non-map + functions using the ANYOTHERKEY binding code. -trap.c - - change reset_signal to turn off the SIG_TRAPPED flag for the - given signal, so shell builtins and functions running in command - substitutions don't run the signal handlers (traps are not supposed - to be inherited by command substitutions) +variables.c + - shells running in posix mode do not set $HOME, as POSIX apparently + requires -parse.y - - changed parse_string_to_word_list to turn off alias expansion - while parsing the array assignment + 2/15 + ---- +braces.c + - mkseq() now takes the increment as an argument; changed callers - 12/9 + 2/16 ---- -alias.c - - fix add_alias so that redefining an alias's value also resets the - EXPANDNEXT flag +builtins/hash.def + - print `hash table empty' message to stdout instead of stderr - 12/10 - ----- -parse.y - - new function, token_is_assignment, called to check whether the text - before `=' makes up a valid assignment token before trying to parse - a compound assignment statement - - new function, parse_compound_assignment, to parse a compound - assignment statement instead of using parse_matched_pair; handles - comments and error reporting in the parser instead of waiting until - expansion time - - changed parse_compound_assignment and parse_string_to_word_list to - allow reserved words in compound array assignments - -lib/readline/doc/rltech.texinfo - - changed the documentation for rl_callback_read_char and - rl_callback_handler_remove to say what happens to the terminal - settings and what needs to be done to reset them + 2/17 + ---- +lib/readline/readline.c + - when resetting rl_prompt in rl_set_prompt, make sure rl_display_prompt + is set when the function returns - 12/11 - ----- -bashline.c - - add emacs_edit_and_execute_command, bound to C-xC-e, like vi-mode - `v' command - - add bindable command name `edit-and-execute-command', bound to - run emacs_edit_and_execute_command() + 2/18 + ---- +lib/readline/display.c + - further fixes to _rl_make_prompt_for_search from Eric Blake to deal + with multiple calls to expand_prompt -lib/glob/strmatch.c - - add support for ksh93-like [:word:] character class (isalnum + `_') + 2/21 + ---- +builtins/hash.def + - don't print `hash table empty' message in posix mode -doc/{bash.1,bashref.texi} - - add note to section describing lists to clarify that a sequence of - one or more newlines may be used to delimit a command, equivalent - to a semicolon - - document new [:word:] pattern matching character class + 2/27 + ---- +lib/glob/sm_loop.c + - change extmatch() to turn off FNM_PERIOD in flags passed to recursive + calls to gmatch() when calling it with a substring after the start + of the string it receives. Changed `+', `*', `?, `@', and `!' cases + to do the right thing. Fixes bug reported by Benoit Vila + -doc/bash.1, lib/readline/doc/rluser.texinfo - - document `edit-and-execute-command' and its default emacs-mode - binding +braces.c + - add QUIT; statements to mkseq to make large sequence generation + interruptible -include/chartypes.h - - add defines for TOCTRL and UNCTRL if they're not already defined + 2/28 + ---- +lib/glob/glob.c + - initialize nalloca in glob_vector -lib/readline/chardefs.h - - #undef UNCTRL if it's defined to avoid cpp redefinition warnings + 3/1 + --- +lib/glob/glob.c + - in glob_vector, when freeing up the linked list after some error, + make sure to set `tmplink' to 0 if `firstlink' is set to 0, else we + get multiple-free errors -lib/sh/strtrans.c - - add \cX (Control-X) escape for $'...' to ansicstr() - - change ansic_quote() to allocate at least four chars for each char - in the string argument, to account for \0xx octal values - - change ansic_quote() to no longer call sprintf for non-printable - characters; just translate the string to octal directly + 3/5 + --- +trap.c + - inheritance of the DEBUG, RETURN, and ERR traps is now dependent + only on the `functrace' and `errtrace' shell options, as the + documentation says, rather than on whether or not the shell is in + debugging mode. Reported by Philip Susi -print_cmd.c - - change xtrace_print_word_list to call ansic_quote() if - ansic_shouldquote() indicates that there are nonprinting characters - in a word +parse.y + - in parse_matched_pair, don't recursively parse ${...} or other + ${...} constructs inside `` + - in parse_matched_pair, remove special code that recursively parses + quoted strings inside `` constructs. For Bourne shell compatibility -builtins/type.def - - changed deprecated long option parsing to just replace the word - in the list with the equivalent short option (-type -> -t) instead - of removing words from the list - - changed describe_command to take a single flags argument instead - of two int args; changed caller - - type now has two new options: -f suppresses function lookup (like - command), and -P forces a PATH search for the name(s) + 3/6 + --- +builtins/pushd.def + - let get_directory_stack take take an `int flags' argument and convert + $HOME to ~ if flags&1 is non-zero builtins/common.h - - flags for describe_command are here - - changed extern declaration of describe_command - -builtins/command.def - - changed call to describe_command to use flags from common.h, and - the right number of arguments - -doc/{bash.1,bashref.texi} - - documented new -f and -P options to `type' - - 12/12 - ----- -lib/readline/rldefs.h - - fixed prototype for _rl_strnicmp - -execute_cmd.c - - select_query now takes a new argument, an int flag saying whether - or not to print the menu the first time through the loop. An - empty line in response to the prompt will always cause the menu - to be reprinted - - changed execute_select_command to cause select_query to reprint - the menu only if REPLY is set to NULL, if KSH_COMPATIBLE_SELECT - is defined - -config-top.h - - define KSH_COMPATIBLE_SELECT, with a comment about its meaning - -lib/readline/readline.c - - change rl_insert_comment to toggle if given an explicit numeric - argument: if the first characters on the line don't specify a - comment, insert one; if they do, delete the comment text - -doc/bash.1, lib/readline/doc/{readline.3,rluser.texinfo} - - documented new behavior of insert-comment with a numeric argument - - 12/13 - ----- -lib/malloc/watch.c - - new file, implements watchpoint functions - -lib/malloc/watch.h - - new file, define some `events' for watchpoints and extern function - and variable declarations for watchpoint code + - change extern declaration for get_directory_stack -lib/malloc/imalloc.h - - #define MALLOC_WATCH if MALLOC_DEBUG is defined - - add __P define as in include/stdc.h if not already defined +variables.c + - call get_directory_stack with an arg of 0 to inhibit converting + $HOME to ~ in the result. Fixes cd ${DIRSTACK[1]} problem + reported by Len Lattanzi (cd fails because + the tildes won't be expanded after variable expansion) -lib/malloc/malloc.c - - remove __P define, now in imalloc.h - - include watch.h if MALLOC_WATCH is defined - - added calls to _malloc_ckwatch in internal_malloc, internal_free, - and internal_realloc +jobs.c + - changed hangup_all_jobs slightly so stopped jobs marked J_NOHUP + won't get a SIGCONT -include/stdc.h - - augment __P define to allow prototypes if PROTOTYPES is defined +general.c + - changed check_binary_file() to check for a NUL byte instead of a + non-printable character. Might at some point want to check + entire (possibly multibyte) characters instead of just bytes. Hint + from ksh via David Korn -lib/readline/rlstdc.h - - augment PARAMS define to allow prototypes if PROTOTYPES is defined + 3/7 + --- +builtins/reserved.def + - changed runs of spaces to tabs in variables help text to make + indentation better when displayed -lib/malloc/Makefile.in, Makefile.in - necessary changes to include watch.c in libmalloc +builtins/mkbuiltins.c + - changes to avoid the annoying extra space that keeps gettext from + being passed an empty string -lib/readline/readline.c - - fix rl_delete_text to make sure that the starting position is >= 0 - - _rl_init_line_state (called by readline via readline_initialize) - now sets rl_mark to 0 - - rl_get_{next,previous}_history set rl_mark to 0 if rl_point is at - the end of the line and rl_end otherwise in emacs mode - -lib/readline/kill.c - - rl_yank_nth_arg_internal and rl_paste_clipboard now set the mark - at point before calling rl_insert_text, like rl_yank - - rl_kill_full_line now resets rl_mark to 0 - - rl_kill_line and rl_backward_kill_line now set rl_mark to the - point after the kill in emacs mode - - rl_kill_word and rl_backward_kill_word now set rl_mark to the - point after the kill in emacs mode - - rl_unix_word_rubout and rl_unix_line_discard now set rl_mark to - the point after the kill in emacs mode + 3/9 + --- +lib/glob/glob.c + - make sure globbing is interrupted if the shell receives a terminating + signal + 3/14 + ---- lib/readline/search.c - - noninc_search saves and restores the mark, since it can be changed - while reading the search string - - noninc_dosearch sets the mark at the end of the line, making the - region bound the `inserted' text since rl_point is set to 0 - - rl_history_search_internal sets the mark at the end of the line, - for the same reason - -lib/readline/isearch.c - - rl_search_history now saves and restores the mark - - if no matching lines are found at all when doing an isearch, leave - point where it was instead of moving it to the end of the line + - call rl_message with format argument of "%" in _rl_nsearch_init + to avoid `%' characters in the prompt string from being interpreted + as format specifiers to vsnprintf/vsprintf - 12/17 - ----- -lib/readline/rlmbutil.h - - new file, place for multi-byte character defines and extern - declarations - -lib/readline/{bind.c,readline.c,rlprivate.h} - - new bindable variable, `byte-oriented', tracks value of - rl_byte_oriented variable - -lib/readline/mbutil.c - - new file, with multibyte char utility functions + 3/19 + ---- +parse.y, eval.c, input.h + - change execute_prompt_command to execute_variable_command; takes the + variable name as a new second argument -lib/readline/{complete,display,readline,util,vi_mode}.c - - new code for multibyte characters, derived from IBM patch + 3/25 + ---- +bashline.c + - command_word_completion_function keeps track of when it's searching + $PATH and doesn't return directory names as matches in that case. + Problem reported by Pascal Terjan + - command_word_completion_function returns what it's passed as a + possible match if it's the name of a directory in the current + directory (only non-absolute pathnames are so tested). - 12/18 - ----- -lib/sh/tmpfile.c - - include posixtime.h for time() extern declaration + 3/27 + ---- +subst.c + - expand_arith_string takes a new argument: quoted. Either 0 (outside + subst.c) or Q_DOUBLE_QUOTES (substitution functions); changed callers -support/bashversion.c - - include if it's available +subst.h + - changed extern declaration for expand_arith_string -lib/readline/{histexpand,input,isearch,search}.c - - new code for multibyte characters, derived from IBM patch +arrayfunc.c + - changed call to expand_arith_string in array_expand_index -lib/readline/readline.h - - include rltypedefs.h + 3/31 + ---- +lib/readline/histfile.c + - change read_history_range to allow windows-like \r\n line endings - 12/19 - ----- -lib/readline/complete.c - - slight change to mark-directories code to avoid adding a slash if - point is at the end of the line (rl_line_buffer[rl_point] == '\0') - and the previous character was a slash - - change printable_part to not return empty pathnames, which could - happen when completing filenames and a filename with a trailing - slash was passed as the argument. If the portion following the - trailing slash is NULL, ignore it and look for a previous slash. - If there's no previous slash, just return the filename argument - - new variable, rl_completion_mark_symlink_dirs, mirrors the value - of (user-settable with a variable) _rl_complete_mark_symlink_dirs - but may be modified by application-specific completion functions - when appropriate (set in rl_complete_internal and rl_menu_complete) +execute_cmd.c + - add new variable, line_number_for_err_trap, currently set but not + used -lib/readline/readline.h - - extern declaration for rl_completion_mark_symlink_dirs + 4/2 + --- +lib/sh/strtrans.c + - add code to echo -e and echo with xpg_echo enabled to require + a leading 0 to specify octal constants -pcomplete.c - - if one of the actions is CA_DIRECTORY, set - rl_completion_mark_symlink_dirs to indicate that we want the - trailing slash (might have to relax this) + 4/3 + --- +subst.c + - slight change to wcsdup() replacement: use memcpy instead of wcscpy -lib/readline/doc/rltech.texinfo - - documented rl_completion_mark_symlink_dirs variable +parse.y + - before turning on W_COMPASSIGN, make sure the final character in the + token is a `(' (avoids problems with things like a=(4*3)/2) -lib/readline/doc/rluser.texinfo, doc/bash.1 - - documented the fact that `complete -d' and `complete -o dirnames' - force readline to append a slash to symlinks to directories + 4/4 + --- +lib/sh/snprintf.c + - in number() and lnumber(), turn off PF_ZEROPAD if explicit precision + supplied in format + - change number() and lnumber() to correctly implement zero-padding + specified by a non-zero `.precision' part of the format -builtins/enable.def - - changed enable_shell_builtin to disallow enabling disabled - builtins in a restricted shell +subst.c + - new flag for extract_delimited_string: EX_COMMAND. For $(...), so + we can do things like skip over delimiters in comments. Added to + appropriate callers + - changes to extract_delimited_string to skip over shell comments when + extracting a command for $(...) (EX_COMMAND is contained in the + flags argument) -doc/{bash.1,bashref.texi} - - documented new enable behavior in restricted shells + 4/5 + --- +subst.c + - first argument to skip_single_quoted is now a const char * + - new function, chk_arithsub, checks for valid arithmetic expressions + by balancing parentheses. Fix based on a patch from Len Lattanzi -doc/Makefile.in - - new rule to make an `RBASH' file documenting the restrictions - imposed by a restricted shell + 4/6 + --- +{configure,config.h}.in + - add separate test for isnan in libc, instead of piggybacking on + isinf-in-libc test -expr.c - - broke the code that evaluates variables and returns results out - of readtok() into a new function: expr_streval() - - expr_streval() now performs the standard unset variable error - behavior if `set -u' has been executed and it's asked to look - up an unset variable - - broke the code that frees up the expression context stack into - a new function: expr_unwind() +lib/sh/snprintf.c + - separate the isnan replacement function so it's guarded by its own + HAVE_ISNAN_IN_LIBC define -variables.c - - fixed bind_int_variable so it handles array element assignment, - so expressions like `b[7]++' and `b[0] = 42' work right - - new function, get_variable_value, returns the string value of - the SHELL_VAR * passed as an argument - - get_string_value now calls get_variable_value with a non-null - result from find_variable +lib/sh/wcsdup.c + - new file, contains replacement wcsdup library function from subst.c + with change back to using wcscpy - 12/20 - ----- -lib/readline/rlmbutil.h, mbutil.c - - combined _rl_find_next_mbchar and _rl_find_next_nonzero_mbchar into - a single function - - combined _rl_find_prev_mbchar and _rl_find_prev_nonzero_mbchar into - a single function +Makefile.in,lib/sh/Makefile.in + - make sure wcsdup.c is compiled and linked in -lib/readline/{display,readline,vi_mode}.c - - changed callers of _rl_find_next_mbchar and - _rl_find_next_nonzero_mbchar +subst.c + - wcsdup now found in libsh; removed static definition -lib/readline/{complete,display,histexpand,readline,vi_mode}.c - - changed callers of _rl_find_prev_mbchar and - _rl_find_prev_nonzero_mbchar + 4/10 + ---- +lib/readline/callback.c + - loop over body of rl_callback_read_char as long as there is additional + input rather than just calling readline_internal_char, which does + not handle multi-character key sequences or escape-prefixed chars - 12/20 - ----- -lib/sh/mktime.c - - new file, from glibc/gawk, compiled in if system doesn't have a - working mktime(3) +lib/readline/macro.c + - make sure we turn off RL_STATE_MACROINPUT when the macro stack is + empty if we are reading additional input with RL_STATE_MOREINPUT -lib/sh/strftime.c - - new file, from gawk, compiled in if system doesn't have a - working strftime(3) +support/shobj-conf + - Mac OS X no longer likes the `-bundle' option to gcc when creating a + dynamic shared library -lib/sh/Makefile.in, Makefile.in - - changes for mktime.c, strftime.c + 4/11 + ---- +lib/tilde/tilde.c + - don't try to dereference user_entry if HAVE_GETPWENT isn't defined -configure.in - - call AC_FUNC_MKTIME, AC_STRUCT_TM, AC_STRUCT_TIMEZONE - - call AC_REPLACE_FUNC(strftime) +lib/readline/input.c + - make sure chars_avail is not used without being assigned a value in + rl_gather_tyi + - use _kbhit() to check for available input on Windows consoles, in + rl_gather_tyi and _rl_input_available -config.h.in - - add defines for TM_IN_SYS_TIME, HAVE_TZSET, HAVE_TM_ZONE, - HAVE_STRUCT_TM_TM_ZONE, HAVE_STRFTIME + 4/21 + ---- +lib/readline/display.c + - calculate (in expand_prompt) and keep track of length of local_prompt + in local_prompt_len; use where appropriate + - when using o_pos to check whether or not we need to adjust + _rl_last_c_pos after calling update_line, assume that it's correct + (a buffer index in non-multibyte locales and a cursor position in + multibyte locales) and adjust with wrap_offset as appropriate + - in update_line, set cpos_adjusted to 1 after calling + _rl_move_cursor_relative to move to the end of the displayed prompt + string + - in _rl_move_cursor_relative, check that the multibyte display + position is after the last invisible character in the prompt string + before offsetting it by the number of invisible characters in the + prompt (woff) -externs.h - - provide an extern declaration for strftime if HAVE_STRFTIME is - not defined and NEED_STRFTIME_DECL is + 4/26 + ---- +lib/readline/doc/{rluser.texi,readline.3} + - make sure to note that key bindings don't allow any whitespace + between the key name or sequence to be bound and the colon -lib/tilde/tilde.h - - header files should not include + 4/28 + ---- +lib/readline/display.c + - in update_line, make sure we compare _rl_last_c_pos as strictly less + than PROMPT_ENDING_INDEX, since it's 0-based, to avoid multiple + prompt redraws + 5/4 + --- parse.y - - replace code in decode_prompt_string that chops up value returned - by ctime(3) with calls to strftime -- as a result, the expansion - of \@ has changed slightly (since it depends on the locale) - - added new \D{format} prompt string escape; `format' is passed to - strftime(3). Empty format is the same as `%X' (locale-specific - representation of the current time) - - combined cases for '\\', '\a', '\e', and '\r' in same case branch - in decode_prompt_string - -doc/{bash.1,bashref.texi} - - documented new \D{format} prompt string expansion - -builtins/printf.def - - use ISO C PRIdMAX instead of INTMAX_CONV - - pass length of format modifiers to mklong instead of computing it - with strlen() + - in decode_prompt_string, only prefix the expansion of \[ or \] + with CTLESC if the corresponding readline escape character is + CTLESC (coincidentally the same as \[) or CTLNUL. Bug report sent + by Mike Frysinger prompted the discovery -lib/sh/{fmtulong,fmtullong}.c - - changes from Paul Eggert to make more general +aclocal.m4 + - slight change to test for /dev/fd to compensate for a linux + failing; suggested by Mike Frysinger + 5/9 + --- arrayfunc.c - - when converting a variable to an array, make sure to unset the - dynamic_value and assign_func members of the struct variable, - since they're not valid anymore - - 12/27 - ----- -configure.in - - use AC_HELP_STRING in AC_ARG_WITH and AC_ARG_ENABLE - - remove AC_ARG_ENABLE for largefile, since AC_SYS_LARGEFILE adds - one + - broke assign_array_var_from_string into two functions: + expand_compound_array_assignment and assign_compound_array_list; + assign_array_var_from_string just calls those functions now - 1/2/2002 - -------- -{alias,bashline,execute_cmd,general,shell,subst,variables,arrayfunc}.c,general.h - - changed some calls to strchr to calls to xstrchr for multibyte - characters +arrayfunc.h + - new extern declarations for expand_compound_array_assignment and + assign_compound_array_list -include/shmbutil.h - - add extern declaration for xstrchr to avoid including externs.h - where it's not appropriate +subst.c + - in do_compound_assignment, call expand_compound_array_assignment + before creating the local variable so a previous inherited + value can be used when expanding the rhs of the compound assignment + statement -{braces,make_cmd,pathexp,subst,arrayfunc}.c, lib/sh/xstrchr.c - - include shmbutil.h + 5/11 + ---- +doc/{bash.1,bashref.texi} + - clarifed `trap' description to make it clear that trapped signals + that are not set to SIG_IGN are reset when a subshell is created -{stringlib,subst}.c, {externs,subst}.h - - moved substring() from subst.c to stringlib.c, moved declaration - from subst.h to externs.h + 5/18 + ---- +locale.c + - change reset_locale_vars to call setlocale (LC_ALL, "") if LANG + is unset or NULL + - if LANG is unset or NULL, reset the export environment before + calling setlocale in reset_locale_vars, and trust that it will + change the environment setlocale() inspects -lib/sh/xmbsrtowcs.c - - new file, replacement function for mbsrtowcs + 5/21 + ---- +lib/readline/history.c + - new function, HIST_ENTRY *alloc_history_entry (char *string, char *ts); + creates a new history entry with text STRING and timestamp TS (both + of which may be NULL) + - new function, HIST_ENTRY *copy_history_entry (HIST_ENTRY *hist), + which copies the line and timestamp entries to new memory but just + copies the data member, since that's an opaque pointer + - new function, void replace_history_data (int which, histdata_t *old, histdata_t *new) + which replaces the `data' member of specified history entries with + NEW, as long as it is OLD. WHICH says which history entries to + modify + - add calls to replace_history_data in rl_free_undo_list and + rl_do_undo -lib/sh/Makefile.in - - add entries for xmbsrtowcs.c +lib/readline/undo.c + - new function, alloc_undo_entry (enum undo_code what, int start, int end, char *text) + takes care of allocating and populating a struct for an individual + undo list entry + - new function: _rl_copy_undo_entry(UNDO_LIST *entry) + - new function: _rl_copy_undo_list(UNDO_LIST *head) -Makefile.in - - add dependencies on shmbutil.h to appropriate object files +lib/readline/rlprivate.h + - new extern declarations for _rl_copy_undo_{entry,list} -lib/glob/strmatch.c - - break character-class testing out into separate function: - is_cclass, in prep for multibyte changes +execute_cmd.c + - change execute_cond_node so that quoting the rhs of the =~ + operator forces string matching, like the == and != operators -{braces,make_cmd}.c - - changes for multibyte characters + 5/23 + ---- +redir.c + - add_undo_redirect now takes as an additional argument the type of + redirection we're trying to undo + - don't add a "preservation" redirection for fds > SHELL_FD_BASE if + the redirection is closing the fd -builtins/printf.def - - changes from Paul Eggert to just use intmax_t everywhere an - int/long/quad is needed and print with "%ld" if the number - fits in a long and %PRIdMAX otherwise - - remove getlong, getulong, getllong, getullong, since they're - no longer needed - - use a new type `floatmax_t' to print floating point numbers, the - widest-available floating point type (like `intmax_t'); new - function `getfloatmax' that calls strtold or strtod as appropriate - - remove getdouble, getldouble, since they're no longer needed - -lib/sh/fmtumax.c - - new file, string-to-[u]intmax_t conversion, just includes - fmtulong.c with the right defines - -Makefile.in, lib/sh/Makefile.in - - additions for fmtumax.c - -bashtypes.h - - include if it's available + 5/24 + ---- +subst.c + - make sure that parameter_brace_substring leaves this_command_name + set to either NULL or its previous value after setting it so that + arithmetic evaluation errors while expanding substring values + contain meaningful information -expr.c - - arithmetic is now in intmax_t instead of long + 6/9 + --- +execute_cmd.c + - make sure that SUBSHELL_ASYNC and SUBSHELL_PIPE are set as flag bits + in subshell_environment, rather than setting only a single value + - change execute_subshell_builtin_or_function to give the `return' + builtin a place to longjmp to when executed in a subshell or pipeline + (mostly as the last command in a pipeline). Bug reported by + Oleg Verych + - in execute_simple_command, make sure to call execute_disk_command + with the_printed_command_except_trap to keep DEBUG trap command + strings from overwriting the command strings associated with jobs + and printed in job control messages. Bug reported by Daniel Kahn + Gillmor -externs.h - - extern declaration for fmtumax - - change extern declarations for evalexp, itos, inttostr, - uitos, uinttostr since they now return or use intmax_t instead - of long - -{execute_cmd,general,mailcheck,subst,variables}.c, parse.y -{array,general,subst,test,variables}.h -lib/sh/{itos,netopen}.c -builtins/{bashgetopt,common}.c, builtins/common.h -builtins/{break,fc,history,jobs,let,printf,pushd,read,shift,wait}.def - - changes for intmax_t shell arithmetic conversion +[bash-3.2-alpha frozen] -doc/{bashref.texi,bash.1} - - documented long->intmax_t shell arithmetic conversion - -sig.c - - in initialize_terminating_signals, if we've already trapped a - terminating signal, don't reset the signal handler for it - - 1/3 - --- -{arrayfunc,pathexp}.c, parse.y - - changes for multibyte chars + 6/22 + ---- +syntax.h + - add new CBLANK (for [:blank:] class) flag value for syntax table and + shellblank(c) character test macro -parse.y, lib/sh/strtrans.c - - moved ansiexpand from parse.y to lib/sh/strtrans.c +mksyntax.c + - add support for setting CBLANK flag in the syntax table depending on + whether or not isblank(x) returns true for character x -parse.y, locale.c - - moved mk_msgstr and localeexpand from parse.y to locale.c +locale.c + - change locale_setblanks to set or unset CBLANK flag for each + character when locale changes parse.y - - new function, yy_input_name, returns name of input file from - bash_input.name - - broke the code that parses ((...)) constructs out of read_token - into a new function, parse_dparen() + - change call to whitespace(c) in lexical analyzer (read_token()) to + call shellblank(c) instead, so locale-specific blank characters are + treated as white space. Fixes bug reported by Serge van deb Boom + -externs.h - - new extern declaration for ansiexpand(), mk_msgstr(), and - localeexpand() +print_cmd.c + - when printing redirections, add a space between <, >, and <> and the + following word, to avoid conflicts with process substitution. Bug + reported by Ittay Dror -input.h - - new extern declaration for yy_input_name() + 6/26 + ---- +configure.in + - set CROSS_COMPILE to the empty string by default, so we don't inherit + a random value from the environment. Bug reported by + Lee Revell -{error,locale}.c - - use yy_input_name for error and other messages + 6/29 + ---- +lib/glob/xmbsrtowcs.c + - make sure destp is non-null before assigning a 0 to *destp in + xdupmbstowcs. Fix from Louiwa Salem execute_cmd.c - - change shell_execve to make sure that the file is executable - before looking at the interpreter to find out why the execve() - failed (avoids misleading error message) + - fix execute_in_subshell to make sure asynchronous isn't set to 0 + before subshell_environment is set appropriately and + setup_async_signals is run. Based on report by Louiwa Salem + -lib/glob/glob.c - - move code that matches leading `.' and skips those filenames into - a separate function: skipname(), so there can be unibyte and - multibyte versions of that function +lib/readline/bind.c + - in rl_generic_bind(), make sure that the keys array is freed before + an error return. Fix from Louiwa Salem - 1/7 + 7/1 --- -subst.c - - more changes for multibyte characters - -print_cmd.c - - change semicolon() so it doesn't output a `;' immediately after a - newline, since that results in a null command, which is a syntax - error +builtins/read.def + - make sure all editing code is protected with #ifdef READLINE, esp. + unwind-protect that restores the default completion function -variables.c - - fix indirection_level_string to turn off set -x while evaluating - PS4 +lib/readline/display.c + - make sure to set local_prompt_len in rl_message() [in bash-3.2-alpha] - 1/8 + 7/5 --- -builtins/set.def - - make -o options into one struct, instead of separate structs for - option names corresponding to flags and non-flag option names. - This has the side effect of sorting the option names in output - -lib/glob/glob.c - - new function, mbskipname(), multibyte char version of skipname() - - removed all #ifndef SHELL code, this will never be used outside - the shell - -include/posixdir.h - - move REAL_DIR_ENTRY define here from lib/glob/glob.c - -lib/glob/glob_loop.c - - new file, included in glob.c for unibyte and multibyte versions of - glob_pattern_p - - added some forward static function declarations with prototypes - - more changes for multibyte character handling - -lib/glob/Makefile.in - - make glob.c depend on glob_loop.c - - changes for xmbsrtowcs.[co] - -lib/glob/xmbsrtowcs.c - - moved here from lib/sh, since the matching functions use it, and - libglob.a is linked after libsh.a +builtins/printf.def + - add more of echo's write error handling to printf. Suggested by + martin.wilck@fujitsu-siemens.com - 1/9 + 7/7 --- -lib/glob/smatch.c - - new file, with strmatch (now xstrmatch) and associated functions, - with changes for multibyte chars - -lib/glob/sm_loop.c - - new file, included by smatch.c, with `generic' versions of matching - functions that are compiled twice: once each for single-byte and - multibyte characters +lib/readline/display.c + - save and restore local_prompt_len in rl_{save,restore}_prompt + [in bash-3.2-alpha] -lib/glob/strmatch.c - - strip out everything except strmatch(), which either calls fnmatch - (if HAVE_LIBC_FNM_EXTMATCH is defined) or xstrmatch + 7/8 + --- +[bash-3.2-alpha released] -lib/glob/collsyms.c - - changes for multibyte chars + 7/9 + --- +lib/readline/display.c + - make sure that _rl_move_cursor_relative sets cpos_adjusted when it + offsets `dpos' by wrap_offset in a multi-byte locale. Bug reported + by Andreas Schwab and Egmont Koblinger -lib/glob/Makefile.in, Makefile.in - - changes for new source files +subst.c + - make sure that the call to mbstowcs in string_extract_verbatim is + passed a string with enough space for the closing NUL. Reported + by Andreas Schwab - 1/10 + 7/18 ---- -lib/readline/complete.c - - new function, rl_completion_mode (rl_command_func_t *func), returns - the appropriate value to pass to rl_complete_internal depending on - FUNC and the value of `show-all-if-ambiguous'. This allows - application completion functions to present the same interface as - rl_complete - -lib/readline/readline.h - - new extern declaration for rl_completion_mode() - -lib/readline/doc/rltech.texinfo - - documented rl_completion_mode - -lib/readline/readline.[ch] - - bumped the version number to 4.3, changing the relevant cpp defines +lib/readline/{display,terminal}.c + - remove #ifdefs for HACK_TERMCAP_MOTION so we can use + _rl_term_forward_char in the redisplay code unconditionally -configure.in - - require that an installed readline version be at least readline-4.3 +lib/readline/rlprivate.h + - new extern declaration for _rl_term_forward_char -bashline.c - - converted bash-specific completion functions to use - rl_completion_mode instead of passing TAB unconditionally +lib/readline/display.c + - in _rl_move_cursor_relative, use `dpos' instead of `new' when + deciding whether or not a CR is faster than moving the cursor from + its current position + - in _rl_move_cursor_relative, we can use _rl_term_forward_char to + move the cursor forward in a multibyte locale, if it's available. + Since that function doesn't have a handle on where the cursor is in + the display buffer, it has to output a cr and print all the data. + Fixes rest of problem reported by Egmont Koblinger + - change variable denoting the position of the cursor in the line buffer + from c_pos (variable local to rl_redisplay) to cpos_buffer_position + (variable local to file) for future use by other functions -builtins/bashgetopt.c - - the `#' option specifier now means a required numeric argument, - not an optional one + 7/25 + ---- +lib/malloc/{stats,table}.h + - include for prototypes for memset, strlen -builtins/type.def - - when converting [-]-{path,type,all} to -[pta], don't bother - freeing and reallocating the option string; just change opt[1] - and null opt[2] +lib/termcap/{termcap,tparam}.c + - include and provide macro replacement for bcopy if + necessary -lib/sh/snprintf.c - - support %ls/%S and %lc/%C for wide strings and characters, - respectively, if HANDLE_MULTIBYTE is defined + 7/27 + ---- +lib/readline/histexpand.c + - add support for `<<<' here-string redirection operator to + history_tokenize_word. Bug reported by agriffis@gentoo.org -mailcheck.c - - don't print a message about new mail if the file has not grown, - even if the access time is less than the modification time +externs.h + - don't add prototype for strerror() if HAVE_STRERROR defined - 1/14 + 7/29 ---- -lib/readline/readline.c - - new function, rl_replace_line, to replace the readline line buffer - with the text supplied as an argument - - new function, rl_replace_from_history, replaces readline line - buffer with text from history entry passed as argument (undocumented, - not in readline.h because it requires a definition of - HIST_ENTRY for the prototype) +subst.c + - in list_string, use `string' instead of `s' -- s is not initialized -lib/readline/readlne.h - - new extern declaration for rl_replace_line + 8/9 + --- +subst.c + - fix parameter_brace_expand to set W_HASQUOTEDNULL in the WORD_DESC it + returns if the result of parameter_brace_substring is a quoted null + ("\177"). Fixes bug reported by Igor Peshansky -lib/readline/doc/rltech.texinfo - - documented rl_replace_line + 8/16 + ---- +lib/readline/readline.h + - new #define, READERR, intended to be used to denote read/input errors -lib/readline/{isearch,readline,search}.c - - use rl_replace_line and rl_replace_from_history where appropriate +lib/readline/input.c + - in rl_getc, if read() returns an error other than EINTR (after the + EWOULDBLOCK/EAGAIN cases are handled), return READERR rather than + converting return value to EOF if readline is reading a top-level + command (RL_STATE_READCMD) lib/readline/readline.c - - broke the code that sets point after moving through the history - (_rl_history_preserve_point and _rl_history_saved_point) out - into a separate function, _rl_history_set_point() - -lib/readline/{complete.c,rlprivate.h} - - find_completion_word -> _rl_find_completion_word - - free_match_list -> _rl_free_match_list - -lib/readline/complete.c - - postprocess_matches and _rl_free_match_list now return immediately - if passed a null match list - -variables.c - - new function, find_local_variable, finds a local variable by name - at the current variable context - - in find_variable_internal, call find_local_variable before searching - any of the temporary environments if variable_context > 0 (meaning - we're in a shell function). This lets a local variable - override a variable whose value was passed in the `function - environment' - - 1/15 - ---- -variables.h, execute_cmd.c - - declare variables describing the temporary environments in - variables.h instead of in C files - -findcmd.c, builtins/setattr.def - - instead of calling find_tempenv_variable, use find_variable_internal - and check whether the returned SHELL_VAR * has the tempvar - attribute + - if rl_read_key returns READERR to readline_internal_char[loop], + abort as if it had read EOF on an empty line, without any conversion + to newline, which would cause a partial line to be executed. This + fixes the bug reported by Mathieu Bonnet -variables.c - - tentative change to lookup order in find_variable_internal so that - function local variables are found before variables in - function_env when executing a shell function - - change make_local_variable to handle making a local variable when - a variable with the same name already appears in one of the - temporary environments - - broke the body of make_var_array out into a new function: - static char **make_env_array_from_var_list (SHELL_VAR **vars) - - new function, make_var_array_internal, takes a hash table to look - in and a pointer to a mapping function and returns a char ** - environment-style list - - make_var_array now just calls make_var_array_internal - - new mapping function, local_and_exported, returns all local variables - in the current variable context with the export attribute set - - new function, make_local_export_array, returns an environment-style - char ** array of exported local variables in current context - - change environment creation order in maybe_make_export_env to - add variables to the environment in opposite order that - find_variable_internal uses. This means that local variables in - shell functions override variables with the same name in the - function_env - - change make_local_variable to set the initial value of the - variable it creates to NULL to make the `is set' and `is null' - tests that the expansion code does work right - - change make_local_variable to inherit the value of a variable with - the same name from the temporary enviroment +aclocal.m4 + - when testing for validity of /dev/fd/3, use /dev/null instead of + standard input, since the standard input fails with linux and `su'. + Bug reported by Greg Shafer - 1/16 + 8/17 ---- Makefile.in - - link bashversion with buildversion.o instead of version.o, for - cross-compiling. version.o is for the target system; - buildversion.o is for the build system - -error.c - - add line numbers to internal_error() messages if the shell is - not interactive and running a shell script or a -c command - - report_error now prints non-zero line numbers for non-interactive - shells + - switch the TAGS and tags targets so TAGS is the output of `etags' and + tags is the output of `ctags'. Suggested by Masatake YAMATO -test.c - - test_syntax_error now calls builtin_error() instead of printing - its own messages + 8/25 + ---- +execute_cmd.c + - change code to match documentation: set BASH_COMMAND (which takes its + value from the_printed_command_except_trap) only when not running a + trap. Rocky says the debugger is ok with this, and this is what his + original diffs did -builtins/common.c - - builtin_error now prints line numbers if a non-interactive shell - is running a shell script or a -c command + 8/29 + ---- +variables.c + - change set_if_not to create shell_variables if it is NULL, since + -o invocation options can cause variables to be set before the + environment is scanned -print_cmd.c - - in cprintf, remove free_argp, since it's not used +[bash-3.2-beta frozen] -builtins/history.def - - make `history -n' increment the number of history lines in this - session by the number of lines read from the history file + 9/5 + --- +[bash-3.2-beta released] -arrayfunc.c - - fix array_value_internal to expand the subscript even if the - variable is unset, so side effects produced by the arithmetic - evaluation will take place + 9/8 + --- +variables.c + - change dispose_used_env_vars to call maybe_make_export_env + immediately if we're disposing a temporary environment, since + `environ' points to the export environment and getenv() will use + that on systems that don't allow getenv() to be replaced. This + could cause the temporary environment to affect the shell. Bug + reported by Vasco Pedro -lib/readline/doc/{rluser,rltech}.texinfo - - some fixes for printing in @smallbook format from Brian - Youmans +builtins/echo.def,doc/{bash.1,bashref.texi} + - clarify that `echo -e' and echo when the `xpg_echo' shell option is + enabled require the \0 to precede any octal constant to be expanded. + Reported by Vasco Pedro - 1/17 + 9/12 ---- -jobs.h - - new PRUNNING, PSTOPPED, PDEADPROC defines for PROCESSes, analogous - to RUNNING, STOPPED, and DEADJOB defines for jobs +builtins/printf.def + - make sure `%q' format specifier outputs '' for empty string arguments + Bug reported by Egmont Koblinger -jobs.c - - use PS_RUNNING, PS_DONE, PS_STOPPED values for `running' field - of a PROCESS - - find_pipeline and find_job now take an additional flags argument - that, if non-zero, means to find only running processes; changed - all callers - - changed calls to find_pipeline and find_job made from waitchld - to find only running processes - - find_pipeline takes a third argument: an int *. If it looks in - the jobs list to find the pid, and the arg is non-null, it passes - the job index back to the caller. Used to avoid calls to - find_pipeline immediately followed by find_job with the same PID - -nojobs.c - - a couple of changes to make sure that set_pid_status is never - called with a pid argument of 0 or -1 +make_cmd.c + - change make_here_document to echo lines in here-doc if set -v has + been executed. Reported by Eduardo Ochs -trap.c - - change trap_handler to longjmp to wait_intr_buf (set by wait_builtin) - if a signal is received for which a trap has been set during - execution of the wait builtin (need to include builtins.h and - builtins/builtext.h and declare some extern variables for the - right things to check) - - new variable to keep track of which signal caused the longjmp to - wait_intr_buf, set by trap_handler (wait_signal_received) - -builtins/wait.def - - set the return value of wait when a longjmp(wait_intr_buf, 1) is - done to 128 + wait_signal_received +aclocal.m4 + - change BASH_CHECK_MULTIBYTE: + o replace check for wctomb with check for wcrtomb + o add checks for wcscoll, iswctype, iswupper, iswlower, + towupper, towlower + o add call to AC_FUNC_MBRTOWC to check for mbrtowc and mbstate_t + define HAVE_MBSTATE_T manually + o add checks for wchar_t, wctype_t, wint_t -{jobs,nojobs}.c - - set wait_signal_received to SIGINT in wait_sigint_handler before - the longjmp(wait_intr_buf, 1) +config.h.in + - add defines for wcscoll, iswctype, iswupper, iswlower, towupper, + towlower functions + - replace define for wctomb with one for wcrtomb + - add defines for wchar_t, wint_t, wctype_t types - 1/18 - ---- -bashline.c - - turn off rl_filename_completion_desired when completing a command - name with a single match only if the first char of that match is - not a `/' - - if there are multiple identical matches for a command name in - attempt_shell_completion, turn off rl_filename_completion_desired - if the first char is not a `/' to avoid readline appending a - slash if there's a directory with the same name in the current - directory +config-bot.h, lib/readline/rlmbutil.h + - add check for HAVE_LOCALE_H before defining HANDLE_MULTIBYTE + - add checks for: ISWCTYPE, ISWLOWER, ISWUPPER, TOWLOWER, TOWUPPER + - add checks for: WCTYPE_T, WCHAR_T, WCTYPE_T - 1/22 + 9/13 ---- -lib/readline/complete.c - - new variable, _rl_page_completions, to control whether we want to - run the internal pager when listing completions (defaults to 1) - -lib/readline/rlprivate.h - - extern declaration for _rl_page_completions - -lib/readline/bind.c - - new bindable variable, `page-completions', controls value of - _rl_page_completions - -lib/readline/doc/{rluser.texinfo,readline.3}, doc/bash.1 - - documented `page-completions' variable - -Makefile.in - - use $(INSTALL_SCRIPT) instead of $(INSTALL_PROGRAM) to install - `bashbug' - -aclocal.m4 - - fix small quoting problem in RL_LIB_READLINE_VERSION macro - -lib/readline/terminal.c - - fetch and save terminal's `vs' and `ve' cursor control attributes - - fetch and save terminal's `kI' attribute (string sent by Insert) - - new function, _rl_set_cursor, sets cursor to normal (insert mode) - or very visible (overwrite mode) - -lib/readline/readline.c - - new global variable, rl_insert_mode - - new function to toggle overwrite mode, rl_overwrite_mode - - each new line starts in insert mode - - switching to vi mode or emacs mode resets to insert mode - - reset cursor to normal before returning line - - _rl_replace_text now returns the number of characters inserted, - the return value from rl_insert_text - - new function, _rl_insert_or_replace_text (const char *string, int insert), - either inserts STRING or replaces the number of chars in STRING - with STRING starting at rl_point, depending on value of INSERT - - renamed rl_insert to _rl_insert_char, rl_insert just calls - _rl_insert_char with the same arguments when in insert mode - - new function, _rl_overwrite_char, handles self-insert in overwrite - mode. Does multibyte chars by reading an entire multibyte character - before entering overwrite loop - - new function, _rl_overwrite_rubout, handles RUBOUT when in - overwrite mode, called from rl_rubout - - new function, _rl_rubout_char, old body of rl_rubout; rl_rubout - calls this when not in overwrite mode - -lib/readline/readline.h - - extern declarations for rl_insert_mode and rl_overwrite_mode() - -lib/readline/rldefs.h - - define constants for values of rl_insert_mode - -lib/readline/rlprivate.h - - extern declarations for _rl_set_cursor and _rl_set_insert_mode - - change type of _rl_replace_text to return int - - extern declarations for _rl_insert_char, _rl_rubout_char - -lib/readline/funmap.c - - new bindable name `overwrite-mode', bound to rl_overwrite_mode - -lib/readline/rlconf.h - - define CURSOR_MODE if you want the cursor to show insert or - overwrite mode (only available if both `vs' and `ve' capabilities - are present) - -lib/readline/{complete,parens,readline,search,vi_mode}.c - - change calls to rl_insert to _rl_insert_char - -lib/readline/{readline,search}.c - - change calls to rl_rubout to _rl_rubout_char to avoid overwrite - mode problems - -lib/readline/vi_mode.c - - fix rl_vi_overstrike to just call _rl_overwrite_char, which - handles multibyte chars - -lib/readline/doc/{rluser.texinfo,readline.3}, doc/bash.1 - - document new `overwrite-mode' command - - 1/23 - ---- -lib/readline/readline.c - - return 0 immediately from rl_insert_text if the string to insert - is NULL or "" - -bashline.c - - if a numeric argument is given to one of the bash-specific glob - pattern completion functions (including TAB), append a `*' to - the word before generating matches - - in attempt_shell_completion, when doing glob completion, only - set the match list to NULL if rl_completion_type == TAB and - there is more than one completion. This permits listing completions - with double tabs and displaying ambiguous completions - - new function, bash_glob_complete_word, appends a `*' to the word - to be completed and then globs it. It uses a new filename - quoting function (bash_glob_quote_filename) to avoid quoting - globbing characters in the filename if there are no matches or - multiple matches - -lib/readline/complete.c - - set completion_changed_buffer to 0 in rl_complete_internal if - no matches were produced by the completion generator function - - new variable, rl_completion_suppress_append, suppresses appending - of rl_completion_append_character. Settable by application - completion functions, always 0 when application completion - functions are called (set to 0 by rl_complete_internal and - rl_menu_complete) - - broke the code that assigns default values to readline completion - variables out of rl_complete_internal and rl_menu_complete into - a new function, set_completion_defaults (int what_to_do) - -lib/readline/readline.h - - extern declaration for rl_completion_suppress_append - -lib/readline/doc/rluser.texinfo, doc/bash.1 - - documented behavior of glob-expand-word and glob-list-expansions - when supplied a numeric argument - - documented glob-complete-word - -lib/readline/doc/rltech.texinfo - - documented rl_completion_suppress_append - - 1/24 - ---- -lib/readline/text.c - - new file, text and character handling functions from readline.c - -lib/readline/misc.c - - new file, miscellanous bindable functions and their supporting - code from readline.c - -Makefile.in, lib/readline/Makefile.in - - changes for text.c, misc.c - -lib/readline/bind.c - - change ISKMAP case of rl_invoking_keyseqs_in_map to output - ESC as "\M-" instead of "\e" -- it's closer to the documentation - - change _rl_get_keyname to output ESC as \e instead of \C-[ - (it's easier to understand) - -pcomplete.h - - new flag, COPT_NOSPACE - -builtins/complete.def - - new `-o nospace' option for complete and compgen (though it doesn't - really do anything for compgen, since that doesn't hand anything - off to readline) - -bashline.c - - if a programmable completion specifies COPT_NOSPACE, set - rl_completion_suppress_append = 1 - -lib/readline/doc/rluser.texinfo - - documented new `-o nospace' option to complete and compgen - -doc/{bash.1,bashref.texi} - - documented $'\cX' escape sequence (forgot to before) - - 1/28 - ---- -variables.c - - make_new_variable now takes the HASH_TABLE * as its second - argument; changed callers - - new function, bind_variable_in_table, takes the HASH_TABLE * as - its third paramter; bind_variable calls bind_variable_in_table - with shell_variables as third argument - -variables.h - - new struct var_context, variable context (per-scope -- global, - function local, etc.) - -variables.[ch],builtins/common.[ch] - - moved functions that push and pop a variable context from - builtins/common.c to variables.c; move extern function - declarations to variables.h - - new function, all_local_variables - - variable_in_context is now static, used only by all_local_variables - -variables.[ch],execute_cmd.c - - push_context now takes the function name as an argument for - future use - - push_context takes an indication of whether or not the function is - executing in a subshell and saves the positional parameters only - if not in a subshell - - new functions for managing a stack of variable contexts and - scopes: new_var_context, dispose_var_context, push_var_context, - pop_var_context, push_scope, pop_scope - -builtins/declare.def - - call all_local_variables instead of map_over (...) in declare_internal - - don't call make_local_variable if we're looking at functions - ((flags_on & att_function) != 0), since it's wasted - - make sure VAR is set to NULL if check for variable_context fails - and we didn't just create or fetch a local variable in - declare_internal - - in non-function branch of declare_internal, only call find_variable - if VAR is NULL -- if it's not null, we just created or fetched a - local variable and don't need to do it again - - 1/29 - ---- -variables.[ch] - - the temporary environments (temporary_env, builtin_env, function_env) - are now HASH_TABLEs instead of argv-style arrays of strings (this - is an intermediate step on the way to the new lcc-inspired symbol - table scope structure) - - new internal attribute for variables: att_propagate. This means - to propagate the value out of the temporary environment up the - (for now implicit) chain of variable scopes when the containing - temporary environment is deleted - -variables.c - - assign_in_env now adds to the HASH_TABLE temporary_env instead - of making environment-style strings in an array of strings - - changed the way the temporary environments are merged into the - shell variable table to account for the new HASH_TABLE temp - environments - - changed the way the export environment is created due to the new - structure of the temporary environments - - new function, bind_variable_internal (name, value, table), binds - NAME to have VALUE in TABLE without searching the temporary - environments - - removed: shell_var_from_env_string, bind_name_in_env_array - - variable_in_context now checks the att_local attribute and makes - sure the variable is not invisible - - local_and_exported now makes sure the variable is not invisible - -execute_cmd.c - - we no longer need to copy the temporary environment to function_env - or builtin_env, we can simply use variable assignments - -{findcmd,subst,variables}.c, builtins/{declare,setattr}.def - - since variables from the temporary environments are no longer turned - into SHELL_VARs on the fly, don't dispose the SHELL_VAR returned - by find_variable or find_variable_internal - - need to savestring() the value returned by find_variable if it has - the tempvar attribute before calling bind_variable on it, because - bind_variable will search and bind into the temporary environments - and will free the old value before binding the new. For temporary - environments, these two pointers will be the same, and - bind_tempenv_variable will end up using freed memory - -builtins/{declare,setattr}.def - - set the att_propagate attribute when exporting or making readonly - variables from the temp environment (i.e., `var=value declare -x var' - or `var=value export var' sets the propagate attribute on the entry - for `var' in the temporary environment HASH_TABLE) - -lib/readline/isearch.c - - ^W when reading isearch string yanks the current word out of the - current line into the search string, skipping the portion already - matched - - ^Y when reading isearch string yanks the rest of the current line - into the search string, skipping the portion already matched - - 1/30 - ---- -{print_cmd,variables}.c - - moved indirection_level_string() from variables.c to print_cmd.c - -{externs,variables}.h - - moved extern declaration of indirection_level_string to externs.h - -{general,variables}.c - - moved assignment() from variables.c to general.c - -{general,variables}.h - - moved extern declaration of assignment() to general.h - -{externs,input}.h - - moved extern declaration of decode_prompt_string to externs.h - -print_cmd.c - - include flags.h, don't include stdc.h - -variables.c - - moved some functions around to group functions better - - changed new_shell_variable to explicitly initialize each member - of the created struct variable instead of calling bzero() - - make_new_variable now just calls new_shell_variable instead - of duplicating what it does - - removed some code in bind_function that duplicated what - new_variable does on the newly-created SHELL_VAR - - since there are no local function variables (functions are always - made at the global scope), kill_all_local_variables() doesn't - need to consider functions - - 1/31 - ---- -variables.c - - sort the array of special variables - - short-circuit the search in stupidly_hack_special_variables if - the passed name can't be found in the rest of the array - (that is, if name[0] < special_vars[i].name[0]) - -lib/readline/history.c - - unstifle_history() was returning values exactly opposite of - the documentation - -lib/readline/doc/{hsuser.texinfo,history.3} - - clarified the unstifle_history() documentation a little - - 2/4 - --- -variables.c - - in bind_variable, don't call bind_tempenv_variable after a - find_tempenv_variable succeeds -- just change the value inline. - There's no reason to look it up twice - - change makunbound to only call stupidly_hack_special_variables - if we're not unsetting a function - -variables.[ch] - - new function, unbind_function, like makunbound but doesn't mess - with previous contexts or calling stupidly_hack_special_variables - -builtins/set.def - - change unset_builtin to call either unbind_func or unbind_variable - -builtins/getopts.def - - call unbind_variable(name) instead of makunbound(name, shell_variables) - - 2/5 - --- -lib/glob/sm_loop.c - - use malloc instead of xmalloc in BRACKMATCH and handle failures - -error.c - - add extern declaration of executing_line_number with prototype, - since execute_cmd.h can't be included without including other - files - -lib/readline/parens.c - - include - -lib/malloc/stats.c - - include - - add extern declaration of malloc_free_blocks() with prototype - -pathexp.c - - added some forward declarations with prototypes for static functions - -lib/readline/rlprivate.h - - removed declarations of rl_untranslate_keyseq, rl_discard_argument, - rl_stop_output, rl_alphabetic since they appear in readline.h - - 2/6 - --- -{arrayfunc,execute_cmd,pcomplete,shell}.c - - change calls to makunbound(name, shell_variables) to - unbind_variable (name) - - 2/7 - --- -builtins/getopt.c - - don't defer incrementing of OPTIND when an invalid option is - encountered until the next call to sh_getopt() -- what if OPTIND - is reset before that next call? This means that OPTIND is always - incremented to the next option to be handled when an option is - returned, whether it's valid or not. This is what POSIX-2002 - says to do. - -syntax.h - - new #define, CSUBSTOP - -mksyntax.c - - add "-=?+" with value CSUBSTOP to the syntax table. These are the - valid expansion operators OP in ${param[:]OPword} - -subst.c - - use table lookup for CSUBSTOP in VALID_PARAM_EXPAND_CHAR - - new flags for the string extraction functions: EX_NOALLOC. This - indicates that the functions are being used only to skip over - strings and the result won't be used, so the substring shouldn't - be allocated, copied, and freed - - new flag for string_extract: EX_VARNAME. This serves the same - purpose as the old `varname' parameter. parameter_brace_expand() - changed appropriately - - extract_delimited_string and extract_dollar_brace_string now take - an additional `flags' argument, which may include EX_NOALLOC - - changed callers of extract_delimited_string and - extract_dollar_brace_string appropriately - - string_extract now understands EX_NOALLOC; callers changed - - some smaller code cleanups - - converted char_is_quoted(), unclosed_pair(), and skip_to_delim() - to understand multibyte characters - - 2/11 - ---- -variables.[ch] - - moved to a symbol organization inspired by lcc. The basic structure - is no longer a HASH_TABLE, but a VAR_CONTEXT, which includes a hash - table as one of its members. VAR_CONTEXTs are linked together to do - variable scoping. One nice thing about this is that the entire - symbol table doesn't need to be searched at function scope exit to - remove local variables. Fixes problems with only one instance of - builtin_env and function_env, even though it really is a stack - - shell_variables is now a VAR_CONTEXT *, with a global_variables - variable that points to the bottom of the stack for fast access - - function-scope local variables (assignments specified on the command - line before a function call) and function-local variables (declared - with the `local' builtin) have been unified in the same variable - context, replacing function_env - - assignment statements preceding the `.' and `eval' builtins are now - a separate variable scope VAR_CONTEXT, replacing builtin_env - - temporary_env (a HASH_TABLE) is now the only separate environment - - changes to export environment creation, variable binding, variable - lookup, local variable propagation all changed to work with the - new symbol table/scope structure - - a SHELL_VAR no longer has a `prev_context' member; it's not needed - -execute_cmd.c - - changes to push_context calls to include any temporary variables in - temporary_env; pop_context takes care of propagating any temporary - variables if necessary - - calls to push_scope if `eval' or `.' is called with a list of - preceding variable assignments, and pop_scope called at end of - builtin's execution. pop_scope takes care of merging temporary - variables into the shell environment when appropriate - -builtins/{setattr,declare}.def - - changes to account for variable assignments preceding `local', - `export', `readonly', `declare', etc. to work with the new - variable scoping implementation - -shell.c - - since shell_variables is now a VAR_CONTEXT, call - delete_all_contexts() when the shell is reinitializing instead of - delete_all_variables() - -builtins/common.c - - new function, get_job_by_name(), used by execute_simple_command() - for the `auto_resume' stuff and get_job_spec() - -builtins/common.h - - new set of #defined constants for flags argument to - get_job_by_name() - - 2/12 - ---- -command.h - - new redirection operator: r_reading_string for `here strings' - -parse.y - - new token, LESS_LESS_LESS, for new redirection `here string' - operator: [N]<<< word - - recognize LESS_LESS_LESS and create the appropriate redirection - -{dispose_cmd,copy_cmd,make_cmd,print_cmd}.c - - recognize r_reading_string and do the right thing (dispose_redirects, - copy_redirect, print_redirection, and make_redirection, respectively) - -redir.c - - here_document_to_fd now takes the redirection operator as its - second argument - - new function, write_here_string, expands a here string and writes it - to the here document file descriptor - - here_document_to_fd calls write_here_string for r_reading_string - operator - - handle r_reading_string in do_redirection_internal() and - stdin_redirection() - - 2/18 - ---- -doc/{bash.1,bashref.texi} - - documented here strings - -{configure,Makefile}.in - - bumped version number up to bash-2.05b and the release status - to alpha1 - -expr.c - - make expr_streval understand that variables with the `invisible' - attribute are really unset, and accessing such a variable when - `set -u' is set should be an error - -variables.h - - new accessor macros: var_isset(var) and var_isnull(var), test - whether var->value is NULL - -{eval,subst,variables}.c, builtins/{declare,setattr}.def - - be more consistent about using value_cell(var) instead of - directly referencing var->value - - use var_isset and var_isnull where appropriate - -builtins/help.def - - augmented a couple of help strings with pointers to `info' and - `man -k' - - 2/14 - ---- -variables.h - - new macros to use when setting variable values directly instead of - through bind_variable and its siblings - -{arrayfunc,variables}.c - - use var_setarray and other lvalue macros instead of assigning to - var->value directly - -builtins/setattr.def - - change show_var_attributes to show function definitions separately - from function attributes. This allows the output of `declare -f' - (with other flags), `export -f', and `readonly -f' to be reused as - shell input, instead of the old - - declare -f[flags] func() - { - foo - } - - which has syntax errors. When in posix mode, `export -fp' and - `readonly -fp' still don't print function definitions - - 2/16 - ---- -parse.y - - comment out calls to discard_parser_constructs; no need to call - empty functions - - 2/18 - ---- -lib/sh/memset.c - - replacement function for memset(3) - -lib/sh/Makefile.in, Makefile.in - - additions for memset.c - -configure.in,config.h.in - - check for memset, define HAVE_MEMSET if found, add memset.o to - LIBOBJS if not - -lib/malloc/malloc.c - - removed zmemset(), replaced with calls to memset(3) - -{subst,execute_cmd,lib/sh/netopen}.c - - replaced calls to bzero with calls to memset - -subst.c - - word_split() now takes a second argument: the value of $IFS, so - it doesn't have to look up IFS every time - - word_list_split() now calls getifs() and passes the result to - each call to word_split() as its second arg - - do a quick scan for CTLNUL in remove_quoted_nulls before allocating - new string, copying old string to it, copying over original string - and freeing new string - -eval.c - - don't bother calling dispose_used_env_vars if temporary_env is NULL - -execute_cmd.c - - fix fix_assignment_words to only look up the builtin corresponding - to the first word if one of the words in the list is marked as - W_ASSIGNMENT - -hashlib.c - - renamed hash_string to hash_bucket, which better reflects what it - does - - extracted the portion of hash_bucket that computes the hash out - into a new hash_string() - - made new body of hash_bucket into a macro HASH_BUCKET; function - just calls the macro - - calls to hash_bucket in this file now call HASH_BUCKET macro - - in add_hash_item, just add a new item at the front of the appropriate - bucket list instead of at the end - -hashcmd.h - - reduced FILENAME_HASH_BUCKETS to 53 from 107 - - 2/19 - ---- -hashlib.[ch] - - find_hash_item, remove_hash_item, add_hash_item all take a new - third `flags' argument - - add_hash_item doesn't call find_hash_item if HASH_NOSRCH passed in - flags arg - - find_hash_item will create a new hash table entry if HASH_CREATE is - passed in flags arg - - new function, hash_walk, takes a pointer to a function and a table - and calls the function for each item in the table. If the function - returns < 0, the walk is terminated - - fixed flush_hash_table to set table->nentries to 0 after freeing - all entries - - BUCKET_CONTENTS now has a new `khash' member, what key hashes to; - set by HASH_BUCKET macro (which calls hash_string), assigned in - find_hash_item (HASH_CREATE) and add_hash_item - - find_hash_item and remove_hash_item check `khash' against the - hash of the string argument before calling strcmp - -{alias,hashlib,hashcmd,pcomplib,variables}.c - - changed all calls to {find,remove,add}_hash_item - -builtins/hash.def - - return immediately from print_hashed_commands if there are no - entries in the hash table (this eliminates need for `any_printed' - variable) - - change print_hashed_commands to use hash_walk - -alias.c - - short-circuit all_aliases and map_over_aliases if - HASH_ENTRIES(aliases) == 0 - - simplify map_over_aliases by just allocating enough room in the - returned list for all entries in the aliases hash table, instead - of doing the check and xrealloc - - add_alias now calls add_hash_item with HASH_NOSRCH argument - -pcomplete.h - - sh_csprint_func_t is no more; use hash_wfunc instead - -pcomplib.c - - short-circuit print_all_compspecs if HASH_ENTRIES(prog_completes) - is 0 - - print_all_compspecs now takes a `hash_wfunc *' argument - - print_all_compspecs now just calls hash_walk - -builtins/complete.def - - new function, print_compitem, takes a BUCKET_CONTENTS *, extracts - the right info, and calls print_one_completion - -variables.c - - short-circuit map_over_funcs if HASH_ENTRIES(shell_functions) == 0 - - short-circuit flatten if the passed table has no entries - - bind_variable_internal takes a new fourth argument: `hflags', - to pass to hash table functions - - make_new_variable now passes HASH_NOSRCH flag to add_hash_item - - set_if_not now calls bind_variable_internal and passes - HASH_NOSRCH as flags argument - - bind_function now calls add_hash_item with HASH_NOSRCH argument - - fixed make_local_variable: old_var == 0 && was_tmpvar can never - be true - - if we didn't find an old variable in make_local_variable, call - bind_variable_internal with HASH_NOSRCH argument - - fix push_temp_var to reset variable context to 0 if binding into - global_variables->table - -parse.y - - fix to parse_compound_assignment to avoid core dumps on empty - compound array assignments - -subst.c - - getifs() is now global so read_builtin can call it - -subst.h - - extern declaration for getifs() - - 2/20 - ---- -hashlib.c - - changed hash_string to use a better hash function - - changed HASH_BUCKET to use masking rather than modulus to hash a - string to a bucket -- HASH TABLES MUST NOW BE SIZED BY POWERS - OF TWO - -hashlib.h - - DEFAULT_HASH_BUCKETS is now 64 - -hashcmd.h - - FILENAME_HASH_BUCKETS is now 64 - -pcomplib.c - - COMPLETE_HASH_BUCKETS is now 32 - -variables.c - - TEMPENV_HASH_BUCKETS is now 4 - -alias.c - - new define, ALIAS_HASH_BUCKETS, set to 16, used to size alias table - -hashlib.c - - removed initialize_hash_table; folded code into make_hash_table - - fixed copy_bucket_array to copy the `khash' member of an item - - renamed functions to be more systematic and easier for me: - make_hash_table -> hash_create - hash_table_nentries -> hash_size - copy_hash_table -> hash_copy - find_hash_item -> hash_search - remove_hash_item -> hash_remove - add_hash_item -> hash_insert - flush_hash_table -> hash_flush - dispose_hash_table -> hash_dispose - print_table_stats -> hash_pstats - get_hash_bucket -> hash_items - - changed hash_search to short-circuit if table->nentries == 0 and - HASH_CREATE has not been passed in the flags argument - -{alias,variables,hashcmd,pcomplib}.c - - renamed calls to all renamed functions from hashlib.c - -builtins/kill.def - - don't drop a leading `-' in a pid argument - - call kill_pid with an explicit third argument of 1 if the pid - argument to kill is < -1, rather than rely on the behavior of - kill(2) - - 2/21 - ---- -subst.c - - quoted_strchr is no longer declared `inline' - - skip_double_quoted is no longer declared `inline' - - string_extract_double_quoted is no longer declared `inline' - -lib/readline/input.c - - rl_gather_tyi is now an `int' valued function; returns the number - of characters read (0 or 1) or -1 on error - - if rl_gather_tyi() returns -1 to rl_read_key(), set rl_done to 1 - and return a newline; something is wrong with the input fd - - 2/25 - ---- -variables.[ch] - - IFS is now a special variable - - new special var function, sv_ifs(), called when IFS is set or unset - - call setifs() when IFS is first set in initialize_shell_variables - - call setifs() from make_local_variable and assign_in_env if - appropriate - - if assign_in_env() is called with a var assignment like `VAR=', - make the value in the new SHELL_VAR created be "" like - do_assignment_internal does, since certain parts of the shell use - a NULL value as evidence that the variable is unset (though - attributes may have been assigned) - - if push_temp_var pushes something up to the global_variables table, - make sure that the context is set to 0 - - new function dispose_temporary_env, called by both - dispose_used_env_vars and merge_temporary_env with different `free - func' function pointers; calls sv_ifs after disposing the temporary - environment - - push_exported_var now calls bind_variable_internal instead of - bind_variable - - pop_scope and pop_context now call sv_ifs - -subst.[ch] - - new global variables used to keep track of IFS state, to avoid - having to call find_variable("IFS") all the time: - - ifs_var the SHELL_VAR for IFS - ifs_value ifs_var ? value_cell (ifs_var) : " \t\n" - ifs_cmap bitmap of characters in ifs_value - ifs_firstc first character in ifs_value - - - new function setifs(), sets the aforementioned ifs variables each - time IFS is set or unset, and at nested scope exit - - instead of calling getifs() from inside subst.c, use ifs_value - - getifs() now just returns ifs_value - - use ifs_firstc in string_list_dollar_star() - - only call member() in issep() if separators is more than one char - - don't cache a bitmap every time expand_word_internal() is called; - use ifs_cmap instead - - new macro, isifs(c), checks whether C is in ifs_cmap - -builtins/read.def - - use issep() and isifs() macros instead of looking at $IFS directly - -syntax.h - - make sure macros that access sh_syntaxtab cast the argument to - `unsigned char' before array access - - new macros: issyntype(c, type) and notsyntype(c, type), check - sh_syntaxtab[c] for a particular flag value `type' - - 2/26 - ---- -hashlib.h - - the `data' member of a `BUCKET_CONTENTS' is now a PTR_T - -{hashlib,alias,variables,hashcmd,pcomplib}.c - - removed some casts when assigning to and using `data' member of a - `BUCKET_CONTENTS' - -subst.c - - in split_at_delims, call make_word_list instead of allocating and - initializing a WORD_LIST * directly - -make_cmd.[ch] - - add_string_to_list is now just a macro that calls make_word_list - - make_simple_command now calls make_word_list instead of allocating - a WORD_LIST * directly - - 2/27 - ---- -copy_cmd.c - - copy_word now calls make_bare_word to allocate the copy - - copy_word_list now calls make_word_list to allocate the copy - -shell.h - - include `ocache.h' for simple object caching - - call cmd_init() to initialize the WORD_DESC and WORD_LIST object - caches - -{make,dispose}_cmd.c - - allocate WORD_DESC * and WORD_LIST * vars from their respective - ocaches, and return them to the cache when disposing - -jobs.c - - renamed old `waiting_for_job' variable to `queue_sigchld', which - better reflects its intent: sigchld_handler does not call waitchld - if `queue_sigchld' is non-zero, it simply increments the count of - waiting children - - cleanup_dead_jobs now just sets and clears queue_sigchld instead of - blocking and unblocking SIGCHLD; it calls waitchld at the end if - `sigchld' is non-zero, but that's not really necessary - - in setjstatus, only call xrealloc if `statsize' is less than the - number of processes passed -- no reason to do it if they're the - same - - 2/28 - ---- -sig.[ch] - - reinitialize_signals is no more; initialize_signals takes an - argument saying whether or not we are reinitializing - -builtins/exec.def - - reinitialize_signals() -> initialize_signals(1) - -test.c - - fix filecomp() to work right when one file has a non-positive - timestamp and the other file does not exist - -doc/{bash.1,bashref.texi} - - document what happens for test's -nt and -ot operators when one - file operand exists and the other does not - -jobs.c - - if we haven't messed with SIGTTOU, just manipulate queue_sigchld - in notify_of_job_status instead of calling sigprocmask() - - list_one_job now calls pretty_print_job directly instead of going - through print_job - - pretty_print_job now must be called with SIGCHLD blocked or held - instead of blocking SIGCHLD itself - - changed start_job so that it doesn't call UNBLOCK_CHILD and then - immediately call BLOCK_CHILD again (explicitly or via last_pid()), - call find_last_pid instead of last_pid and then UNBLOCK_CHILD - - changed wait_for_job the same way - - find_last_pid now takes a second argument: block; uses BLOCK_CHILD - if `block' is 1, not otherwise. Changed existing calls: - find_last_pid(j) -> find_last_pid(j, 0) - last_pid(j) -> find_last_pid(j, 1) - `last_pid()' is now gone - - rewrote wait_for_background_pids(); it was a little strange - -copy_cmd.c - - copy_if_command: don't copy null false_case commands - - copy_simple_command: don't copy a null redirection list - -subst.c - - in get_word_from_string and list_string, just check for " \t\n" - directly rather than calling strcmp - - in get_word_from_string and strip_trailing_ifs_whitespace, use - isifs() instead of issep(), since they're never called with - separators != $IFS - - change issep() to call isifs if separators is longer than one - character, since it's never called with anything but "", " ", - or $IFS - - 3/1 - --- -sig.h - - enclose the BLOCK_SIGNAL macro in a do {...} while (0) loop, at it - should have been all along - -lib/readline/doc/rltech.texinfo - - document that readline defaults to stdin/stdout if rl_instream/ - rl_outstream are NULL - -lib/readline/terminal.c - - if an application is using a custom redisplay function, - rl_resize_terminal just calls rl_forced_update_display to tell - (*rl_redisplay_func) to update the display, otherwise call - _rl_redisplay_after_sigwinch - -lib/readline/readline.c - - change readline_internal_setup() so the change to vi insertion mode - happens even if readline_echoing_p is 0 - - don't print the prompt to rl_outstream in readline_internal_setup - if we're not echoing and the caller has defined a custom redisplay - function -- let the redisplay function deal with it - -configure.in - - new option: --enable-mem-scramble, controls memory scrambling on - free() (on by default; only affects use of bash malloc) - -config.h.in - - new option MEMSCRAMBLE, controlled by --enable-mem-scramble - - 3/5 - --- -parse.y - - added ksh-like behavior of [...] to read_token_word: if a `[' is - seen in an assignment context and the previous characters in the - token form a valid identifier, parse the [...] with - parse_matched_pair to allow spaces (and newlines) in the subscript - -bashline.c - - new function bash_servicename_completion_function, for completing - service names from /etc/services - -bashline.h - - new extern declaration for bash_servicename_completion_function - -builtins/complete.def - - allow new `-s/-A service' option to complete and compgen builtins - -pcomplete.h - - new CA_SERVICE define, new ITEMLIST variable it_services - -pcomplete.c - - add callback to bash_servicename_completion_function to generate - list of matching service names for completion - -doc/bash.1,lib/readline/doc/rluser.texinfo - - documented new `-s/-A service' option to complete and compgen - - 3/6 - --- -builtins/read.def - - change hard-coded `0' to new variable `fd' (initially 0) in - preparation for adding `-u fd' option - -bashline.c - - bash_directory_completion_hook calls expand_prompt_string instead - of expand_string (it does the right thing). This keeps expansion - errors from causing a longjmp, which shouldn't happen because of - completion - - command_subst_completion_function was augmented very slightly to - do filename completion on a non-command-word in a command - substitution - - command_subst_completion_function now skips over the lcd that - rl_completion_matches puts in matches[0] if there is more than - one possible completion - - 3/7 - --- -builtins/read.def - - only add the unwind_protect to free `rlbuf' if `edit' is non-zero, - since we won't be using readline otherwise - -lib/sh/zread.c - - renamed zread1 -> zreadintr - -redir.c - - small change to redirection_error() to make a slightly better - guess about the invalid file descriptor if the redirection op is - r_duplicating_input or r_duplicating_output - -include/stdc.h - - new macro, SH_VA_START, to encapsulate the difference between - stdarg va_start and varargs va_start - -{error,pcomplete,print_cmd}.c,builtins/common.c,lib/sh/snprintf.c - - use SH_VA_START - - 3/8 - --- -builtins/read.def - - support for the ksh-like `-u fd' option - -general.c - - new function sh_validfd(fd), returns 1 if fd is a valid open file - descriptor - -general.h - - extern decl for sh_validfd - -bashline.c - - don't call posix_readline_initialize() from initialize_readline(); - sv_strict_posix() should already have taken care of it - - 3/11 - ---- -{error,pcomplete,print_cmd}.c, builtins/common.c - - removed non-varargs versions of functions - -builtins/printf.def - - if the string argument to %q has non-printing characters, call - ansic_quote to quote it rather than sh_backslash_quote - -variables.h - - new attribute: att_trace (and corresponding trace_p() macro). - Functions with this attribute will inherit the DEBUG trap. - Currently ignored for variables - -builtins/declare.def - - new `-t' option to declare/typeset toggle the `att_trace' attribute - -builtins/setattr.def - - check for att_trace and output `-t' flag in show_var_attributes - -execute_cmd.c - - if a function is being traced (it has the `-t' attribute set), - don't turn off the DEBUG trap when it executes - -doc/{bash.1,bashref.texi} - - document the new `-t' option to declare/typeset - - 3/12 - ---- -execute_cmd.c - - don't execute the debug trap in the `cm_simple:' case of - execute_command_internal; run it in execute_simple_command so we - get the line number information right when executing in a shell - function - - run a DEBUG trap before executing ((...)) arithmetic commands, - like ksh93 - - run a DEBUG trap before executing [[...]] conditional commands, - like ksh93 - -eval.c - - add a static forward declaration for alrm_catcher() - -general.c - - add static forward declarations for bash_special_tilde_expansions, - unquoted_tilde_word, initialize_group_array - -variables.h - - add extern declarations for sh_get_env_value, map_over_funcs, - local_exported_variables - -variables.c - - add static forward declarations for dispose_temporary_env, - make_func_export_array - -bashhist.c - - add static forward declaration for check_history_control - -configure.in - - add a call to AC_CHECK_DECLS for strcpy - -config.h.in - - add placeholder for HAVE_DECL_STRCPY define, set by configure - -general.h - - don't declare strcpy if HAVE_DECL_STRCPY is defined with a non-zero - value - -sig.h - - add prototype to typedef of SigHandler - -lib/readline/histlib.h - - removed extern declaration of strcpy() - - include string.h/strings.h directly in histlib.h instead of source - files - -lib/readline/{histexpand,histfile,history,histsearch}.c - - don't include string.h/strings.h now that histlib.h includes it - -lib/tilde/tilde.c - - removed extern declaration of strcpy(), rely on string.h/strings.h - -command.h - - four new redirection types: r_move_input, r_move_output, - r_move_input_word, r_move_output_word, for - [N]<&word- and [N]>&word- from ksh93 - -print_cmd.c - - changes to print r_move_input[_word] and r_move_output[_word] - -copy_cmd.c - - changes to copy r_move_input[_word] and r_move_output[_word] - -dispose_cmd.c - - changes to dispose r_move_input_word and r_move_output_word - -make_cmd.c - - changes to make r_move_input[_word] and r_move_output[_word] from - r_duplicating_{input,output}_word, which is how the new redirs - are passed by the parser - -redir.c - - changes to make r_move_input[_word] and r_move_output[_word] do - the right thing when executed - -builtins/read.def - - print an error message and return failure immediately if zread/zreadc - return < 0 - -doc/{bash.1,bashref.texi} - - documented new [n]<&word- and [n]>&word- redirections - - 3/13 - ---- -lib/readline/isearch.c - - enabled code to allow chars bound to rl_rubout to delete characters - from the incremental search string - -shell.c - - add `-l' invocation option to parse_shell_options; equivalent to - `--login' - - fixed set_login_shell to check first char of base pathname of argv0 - for `-', like other shells - - move the check for make_login_shell after the call to - parse_shell_options because the `-l' option might set it - -doc/{bash.1,bashref.texi} - - documented new `-l' invocation option - -array.c - - new function, array_shift, shifts an array left by a specified - number of elements - - array_walk is now compiled in by default - - array_to_assignment_string now takes a second argument: int quoted. - If non-zero, the result is single-quoted before being returned - - quoted_array_assignment_string has been removed - -array.[ch] - - renamed most of the array functions so that all have an array_ - prefix and are more systematically named - - array_slice now preserves the indicies from the original array - - change array_to_assign to use a static buffer for expanding the - array indices, instead of malloc/free - -{arrayfunc,subst,variables}.c, builtins/read.def - - changed calls to various array functions to use new names - -lib/sh/stringvec.c, externs.h - - renamed all of the functions to have a strvec_ prefix and to have - a more sensible name scheme - - strvec_search's arguments are now supplied in reverse order, so - the char **array is first, like the other functions - - new function, strvec_resize, xrealloc for strvecs - -{alias,array,bracecomp,braces,bashline,execute_cmd,findcmd,general,pathexp, -pcomplete,variables}.c -lib/sh/stringlist.c -builtins/{bind,complete,exec,getopts,pushd,set}.def - - change calls to all functions from lib/sh/stringvec.c - - use strvec_resize where appropriate - -externs.h - - only declare dup2() if HAVE_DUP2 is undefined or DUP2_BROKEN is - defined - -lib/readline/{macro,readline,util}.c, lib/readline/rlprivate.h - - _rl_defining_kbd_macro is gone, use RL_ISSTATE(RL_STATE_MACRODEF) - -lib/readline/readline.h - - new struct readline_state, encapsulates most of readline's internal - state in case you need reentrancy or nested calls to readline() - - extern declarations for rl_save_state, rl_restore_state - -lib/readline/readline.c - - add (undocumented) int rl_save_state (struct readline_state *), - int rl_restore_state (struct readline_state *) - - 3/14 - ---- -array.[ch] - - new function, array_rshift, shifts an array right by a specified - number of elements, optionally inserting a new element 0 - -examples/bashdb/bashdb - - new single-file version of bash debugger, originally modified from - version in bash-2.04 by Gary Vaughan (the old debugger still - appears in examples/obashdb). This version has a more gdb-like - command set - -examples/bashdb/bashdb.el - - new emacs bashdb debugger mode from Masatake YAMATO - -execute_cmd.c - - don't make $LINENO relative to function start unless the shell is - currently interactive -- this is what ksh93 does and what I - believe to be the intent of POSIX.2 (this required changing some - of the test checks because the output has changed) - - run the debug trap for each command in an arithmetic for expression, - like ksh93 does - -lib/readline/vi_mode.c - - redid rl_vi_subst (binding func for `s' and `S') in terms of - rl_vi_change_to: `S' == `cc' and `s' == `c '. This makes undo - work right - - 3/18 - ---- -hashlib.c - - fixed hash_walk to return if the item function returns < 0, instead - of breaking out of the current hash chain - -array.c - - fixed array_walk to return if the item function returns < 0, like - hash_walk - -lib/sh/stringlist.c, externs.h - - new function: strlist_walk, takes a stringlist and a pointer to an - item func. Like other _walk funcs, if item func returns < 0 the - walk is cancelled - - new function: strlist_flush, frees items in the contained list - with strvec_flush - - renamed functions to have a strlist_ prefix and be more systematic - -pcomplib.c,pcomplete.h - - removed redundant `progcomp_initialized' variable - - renamed functions to have `progcomp_' or `compspec_' prefixes - like the hash library - -{bashline,pcomplete}.c,builtins/complete.def - - fixed calls to stringlist functions to use new names - - fixed calls to functions in pcomplib.c to use new names - -pcomplete.c - - made the debugging code #ifdef DEBUG -- it should be mature enough - -builtins/hash.def,parse.y - - use REVERSE_LIST(x, t) instead of (t)reverse_list(x) - -list.c,{externs,general}.h - - renamed the list functions to have a list_ prefix, changed callers - -externs.h,{execute_cmd,stringlib,subst}.c,builtins/common.c,lib/sh/stringvec.c - - word_list_to_argv -> strvec_from_word_list - - argv_to_word_list -> strvec_to_word_list - - moved functions to lib/sh/stringvec.c - -lib/sh/stringvec.c - - changed name of second argument to strvec_from_word_list from `copy' - to `alloc' so the use of `copy' between strvec_from_word_list and - strvec_to_word_list isn't as confusing - - changed name and sense of second argument to - strvec_to_word_list from `copy' to `alloc' for the same reason -- - now both functions agree on semantics of second argument - -lib/sh/stringlist.c - - ditto for strlist_from_word_list and strlist_to_word_list - -subst.c - - changed callers of strvec_to_word_list - - 3/19 - ---- -builtins/hash.def - - added `-l' option to list table or individual targets in reusable - format - - added `-d' option to remove one or more names from the table of - hashed commands (provides `unhash' or `unalias -t' functionality) - -doc/{bash.1,bashref.texi} - - documented new `-l' and `-d' options to `hash' - -hashcmd.[ch] - - renamed functions to have a `phash_' prefix and follow new naming - convention - - phash_remove now returns an int: 1 if command not in hash table, - 0 if filename removed OK - -{findcmd,variables}.c, builtins/{hash,type}.def - - changed callers to use new names from hashcmd.c - -builtins/common.[ch] - - new function, sh_notfound(s), prints standard `not found' message - - new function, sh_invalidid(s), prints standard `invalid identifier' - message - - new function, sh_restricted(s), prints standard `restricted' message - for restricted shells - - new function, sh_invalidnum(s), prints standard `invalid number' - message - - renamed bad_option to sh_invalidopt, changed to print - `invalid option' instead of `unknown option' - - new function, sh_invalidoptname, prints standard `invalid option - name' for long options - - new function, sh_badjob (s), prints standard `no such job' message - - new function, sh_invalidsig (s), prints standard `invalid signal - specification' message - - new function, sh_nojobs (s), prints standard `no job control' message - - new function, sh_needarg (s), prints standard `option requires an - argument' message - - new function, sh_neednumarg (s), prints standard `numeric - argument required' message - - new function, sh_badpid(s), prints standard `not a pid...' message - - new function, sh_erange (s, desc) prints standard `out of range' - message, optionally using `desc' to say what the argument is - -builtins/{alias,command,declare,exec,hash,type}.def - - call sh_notfound() instead of calling builtin_error directly - -builtins/{declare,getopts,read,set,setattr}.def - - call sh_invalidid() instead of calling builtin_error directly - -builtins/{cd,command,enable,exec,hash,source}.def - - call sh_restricted() instead of calling builtin_error directly - -builtins/{printf,read,ulimit}.def, builtins/common.c - - call sh_invalidnum instead of calling builtin_error directly - -builtins/{complete,declare,pushd,set}.def, builtins/bashgetopt.c - - call sh_invalidopt instead of bad_option or builtin_error directly - -builtins/{complete,set,shopt}.def - - call sh_invalidoptname instead of builtin_error directly - -builtins/{fg_bg,jobs,kill,wait}.def - - call sh_badjob instead of calling builtin_error directly - -builtins/common.c, builtins/{kill,signal}.def - - call sh_invalidsig instead of calling builtin_error directly - -builtins/{fg_bg,suspend,wait}.def - - call sh_nojobs instead of calling builtin_error directly - -builtins/{common,bashgetopt}.c, builtins/{hash,kill}.def - - call sh_neednumarg and sh_needarg where required - -builtins/{kill,wait}.def - - call sh_badpid where required - -builtins/{break,fc,history,pushd,shift,ulimit,umask}.def - - call sh_erange where appropriate - -builtins/printf.def - - new static function, printf_erange, prints standard out-of-range - warning message - -builtins/set.def - - changed so that calls to sh_invalidopt always include the leading - `+' or `-' - -builtins/shopt.def - - changed SHOPT_ERROR macro to shopt_error function - -builtins/bind.def - - regularized error messages to `bind: object: error string' like - other error messages - -builtins.h - - the `short_doc' member of a `struct builtin' is now of type - `const char *' - - the strings in `long_doc' array of a struct builtin are now const - -builtins/mkbuiltins.c - - changes for new `const' members of struct builtin - - 3/20 - ---- -lib/readline/histfile.c - - use pointers instead of indexing into buffer when reading the - contents of the history file in read_history_range and - history_truncate_file - - 3/21 - ---- -lib/readline/histfile.c - - new file, with code to mmap the history file for reading and - writing (depends on HAVE_MMAP, currently nothing checks for that) - - 3/25 - ---- -error.[ch] - - new function, err_badarraysub(s), calls report_error with standard - `bad array subscript' message - - new function, err_unboundvar(s), calls report_error with standard - `unbound variable' message - - new function, err_readonly(s), calls report_error with standard - `readonly variable' message - -{arrayfunc,subst}.c - - call err_badarraysub where appropriate - -{expr,subst}.c - - call err_unboundvar where appropriate - -{arrayfunc,variables}.c - - call err_readonly where appropriate - -shell.c - - changed text of bad option error messages to be the same as that - printed for builtin errors - -builtins/common.c - - changed sh_invalidopt to print the invalid option before the rest - of the error message (required some tests to be modified) - - new function, sh_readonly, calls builtin_error with standard - `readonly variable' message - -variables.c,builtins/declare.def - - call sh_readonly where appropriate - -lib/sh/stringvec.c - - added strvec_remove (sv, s), removes S from SV and shuffles rest of - elements down 1 - -lib/sh/stringlist.c - - added strlist_remove(sl, s), just calls strvec_remove on the - component list - -externs.h - - new extern declarations for strvec_remove and strlist_remove - - fixed extern declaration for strvec_search; the arguments were - reversed (unimportant, it's not compiled into the shell) - -subst.c - - change param_expand to call quote_escapes on values retrieved when - expanding the positional parameters - - change parameter_brace_expand_word to quote escapes on values - retrieved when expanding the positional parameters - - fix parameter_brace_substring to quote escape characters on unquoted - substrings extracted from variable values (needed to separate case - VT_VARIABLE from VT_ARRAYMEMBER for this, since, because - get_var_and_type calls array_value for VT_ARRAYMEMBER, we need to - skip over quoted characters in an already-appropriately-quoted - string to find the substring we want) - - fix parameter_brace_substring to quote escape characters in the - value returned by pos_params when expanding subsets of the - positional parameters and not within double quotes (in which case - pos_params() quotes the string for us) - - fix parameter_brace_substring to quote escape characters in the - value returned by array_subrange when expanding subsets of an - array and not within double quotes (in which case - array_subrange() quotes the string for us) - - new function, quoted_strlen(s), does strlen(s) while skipping over - characters quoted with CTLESC (#ifdef INCLUDE_UNUSED, since it's - not used yet) - - changed pos_params() so it always returns a list whose members are - quoted strings if (quoted&(Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) != 0 - -arrayfunc.c - - fix array_value to consistently call quote_escapes, even when a - non-array variable is being subscripted with element 0, in which - case we return the variable value - -lib/sh/strtrans.c - - make the for_echo parameter to ansicstr a `flags' parameter that - has its old `for echo' meaning if flags&1 is non-zero (which is - consistent with the old code) - - Added code to the `flags' parameter to ansicstr so that if flags&2 - is non-zero, CTLESC and CTLNUL are escaped with CTLESC in the - expanded string - - change ansiexpand() to call ansicstr with a `flags' parameter of 2 - - 3/26 - ---- -lib/readline/histfile.c - - when reading and writing the history file, use malloc instead of - xmalloc and handle failures gracefully, so the application doesn't - abort if the history file or history list is too big - - 3/27 - ---- -arrayfunc.c - - changed array_value_internal to take an additional `int *' - parameter, in which is returned the type of array indexing - performed (array[@] vs. array or array[index]) - - changed array_value and get_array_value to take a corresponding - extra parameter and pass it to array_value_internal - - changed array_value_internal to no longer return newly-allocated - memory or quote CTLESC and CTLNUL in the returned string if - `simple' array indexing (subscript not `@' or `*') is being - performed. This makes it more like a variable lookup - -arrayfunc.h - - changed prototypes for array_value and get_array_value - -expr.c - - added new parameter to call to get_array_value in expr_streval - - don't need to free memory returned by get_array_value any more - -subst.c - - quote_escapes now works with multibyte characters - - dequote_string now works with multibyte characters - - dequote_escapes is now needed, so it's compiled in, and it - now works with multibyte characters - - remove_quoted_escapes now just calls dequote_escapes and copies the - result over the argument string - - remove_quoted_nulls now returns its char * argument, parallels - remove_quoted_escapes - - parameter_brace_expand_word now passes the new argument to - array_value and quotes CTLESC and CTLNUL in the result if it's a - `simple' array expansion by calling quote_escapes - - get_var_and_type now returns VT_ARRAYMEMBER for references like - ${array} where `array' is an array variable (just like ${array[0]}). - Documented (in comment) that a VT_VARIABLE return value means that - quote_escapes has been called at some point - - changed callers of get_var_and_type to no longer free value if - VT_ARRAYMEMBER is returned as type - - changed parameter_brace_substring and parameter_brace_patsub to - call dequote_escapes on the value from get_var_and_type if the - type is VT_VARIABLE, since the substring and pattern substitution - code doesn't understand CTLESC quoting - - parameter_brace_substring no longer needs to call quoted_substring - for the VT_ARRAYMEMBER case - - changed parameter_brace_patsub to call quote_escapes on the result - of pat_subst for the VT_VARIABLE and VT_ARRAYMEMBER cases, and to - quote the returned string in the VT_ARRAYVAR and VT_POSPARAMS cases - if the `MATCH_QUOTED' flag isn't set (if it is, the pattern - substitution functions perform any necessary quoting) - - quoted_substring is no longer used; it's now #ifdef INCLUDE_UNUSED - -lib/malloc/mstats.h - - new member in _malstats: u_bits32_t bytesreq, the total number of - bytes requested by the caller via calls to malloc() and realloc() - -lib/malloc/stats.c - - print bytesreq member in _print_malloc_stats - - don't print statistics for buckets for which nmal == 0 (no mallocs) - -lib/malloc/malloc.c - - modified internal_malloc, internal_realloc to keep running total of - number of bytes requested by calling application - -shell.c - - sh_exit is now compiled in; exit_shell calls sh_exit - -error.c - - changed fatal_error, report_error, parser_error to call sh_exit - - 3/28 - ---- -subst.[ch] - - changed Q_NOQUOTE to Q_PATQUOTE; it makes the intent more clear - -subst.c - - moved code from parameter_brace_expand into a new function that - dispatches for pattern substitution: parameter_brace_remove_pattern - - changed structure of parameter_brace_remove_pattern to be like - parameter_brace_patsub and its ilk: call get_var_and_type to - isolate the variable name, move the pattern isolation code out of - the various *_remove_pattern functions into - parameter_brace_remove_pattern and pass the results to the various - functions, use a switch on the return value from get_var_and_type - to decide which function to call, regularized the arguments to the - separate pattern removal functions - - parameter_brace_remove_pattern now properly quotes escape chars in - the returned value - - changed get_var_and_type to call dequote_escapes on the `value' - parameter for case VT_VARIABLE and return the result in *valp, - so the calling functions don't have to do it themselves; changed - callers appropriately - - fixed getpattern() where it broke posix compliance: if you enclose - a pattern removal spec in double quotes, the outer double quotes - have no effect on the pattern (POSIX.1-200x 2.6.2). This uncovered - a bug in the test suite (!) - -pathexp.c - - fixed a problem with quote_string_for_globbing where it would change - consecutive CTLESC chars all to \ instead of changing every other - quoted char - - 3/31 - ---- -lib/malloc/{malloc,stats}.c - - moved declaration of _mstats to malloc.c so stats.o doesn't get - linked into the shell if the stats functions aren't called - - 4/2 - --- -lib/glob/smatch.c - - introduce `XCHAR' define, which is the type of arguments passed to - strcoll/strcmp/strlen and their wide-character equivalents, added - appropriate casts - - static arrays in single-byte version of rangecmp() are `char', not - `unsigned char', so compilers don't complain about calls to strcoll - -lib/glob/sm_loop.c - - casts for `XCHAR' and `XCHAR *' arguments to libc functions - - use prototype declaration for BRACKMATCH if `PROTOTYPES' is defined - to avoid problems with type promotion (unsigned char -> int) - -lib/glob/collsyms.h - - `name' member of struct _COLLSYM is now of type `XCHAR *', since - some compilers don't like `unsigned char *' initializers from - constant strings - -[bash-2.05b-alpha1 released] - - 4/3 - --- -builtins/{evalstring.c,common.h} - - new flag for parse_and_execute, SEVAL_NOFREE, means to not free - the argument string when finished - -lib/readline/text.c - - fixed a trivial typo in _rl_insert_char when reading multibyte - char sequences - - replace calls to ding() with rl_ding() - -include/chartypes.h - - remove SIGN_EXTEND_CHAR and TOASCII macros; they're unused - -make_cmd.c - - include dispose_cmd.h for extern function declarations - -lib/glob/glob.c - - include `shmbutil.h' and `xmalloc.h' for extern function declarations - -lib/glob/smatch.c - - include `xmalloc.h' for extern function declarations - -shell.c - - fix maybe_make_restricted to use its argument instead of global - `shell_name' - -version.c - - update copyright message to include this year - -lib/readline/display.c - - fixes from Jiro SEKIBA to fix autowrapping - when using multibyte characters - -lib/glob/sm_loop.c - - fixed a problem in BRACKMATCH where not enough memory was allocated - to hold a multibyte character when parsing POSIX.2 char class names - -support/config.{guess,sub} - - updated via patch from Paul Eggert with latest GNU additions - -variables.c - - var_lookup should use its `vcontext' argument instead of - unconditionally using `shell_variables' - - 4/4 - --- -builtins/bind.def,doc/{bash.1,bashref.texi} - - changed the usage summary and help text to make it clear that any - readline command that may appear in ~/.inputrc may be supplied as - one of the non-option arguments to `bind' - -builtins/mkbuiltins.c - - added support for `-H' option, which means to write long documentation - for each builtin to a separate file in the `helpfiles' directory - -builtins/Makefile.in - - new target `helpdoc', just creates long doc files in helpfiles - directory - -lib/sh/zcatfd.c - - new file, with zcatfd(int fd, int ofd, char *fn); dumps data from - FD to OFD - -Makefile.in,lib/sh/Makefile.in - - added zcatfd.c, zcatfd.o member of libsh.a - -builtins/evalstring.c - - changed cat_file to call zcatfd(fd, 1, fn) - -builtins/{shopt,colon}.def - - removed the $DOCNAME directive for `shopt', `true', and `false'; - just use the names - - changed $DOCNAME for `:' to just be `colon' instead of - `colon_builtin' - -builtins/reserved.def - - added help entries for ((, [[, `for ((' - -builtins/let.def - - add id++, id--, ++id, --id, ** to help text - - 4/8 - --- -builtins/bashgetopt.[ch] - - changed to allow options beginning with `+', enabled by a leading - `+' in the option string - - new variable, list_opttype, set to `-' or `+' - -builtins/{common.c,{builtin,eval,exit,fg_bg,let,printf,pushd,return,source,wait}.def - - changes to allow a `--' option for every builtin that accepts - operands but not options, as per posix.1-2001 - -builtins/{declare,setattr}.def - - use internal_getopt for parsing options, now that it supports `+' - -builtins/set.def - - use internal_getopt for initial option parse, now that it supports - a leading `+' - - -{configure,Makefile}.in, builtins/{Makefile.in,help.def,mkbuiltins.c} - - support for a new configure option, ``--enable-separate-helpfiles'', - moves the `long' help text to separate help files, installed by - default into ${datadir}/bash, one file per builtin. Off by - default -- it saves 47K, but it's only 47K, and it's in the text - segment - -flags.c - - build internal_getopt() option string argument from flags array at - runtime in shell.c - -shell.c - - new variable to control writing malloc stats at exit: - malloc_trace_at_exit, 0 by default - -lib/malloc/malloc.c - - heavily updated: - o partial page allocated on first call to malloc to make - subsequent sbrks page-aligned no longer wasted - o begin and end range guards are now the same value: the chunk - requested - o coalescing code was changed to attempt to coalesce first two - adjacent blocks on the free list; enabled by default - o blocks of size 32 are now candidates for larger block - splitting, since 32 is the most popular size - o blocks of size 32 are now candidates for smaller block - coalescing - o the IN_BUCKET check was changed to just make sure that the - size isn't too big for the bucket, since the `busy block' - checking code may increase the bucket by one or more, - meaning that the old check would fail and cause a panic when - a chunk allocated in such a way was freed - o bin sizes are now precomputed and looked up in an array - rather than being computed at runtime - o moved the _mstats declaration here to avoid the stats code - being linked in even when no stats functions were called - (only matters if MALLOC_DEBUG is defined) - o malloc now keeps track of the address of the top of the heap - and will return large chunks to the system with calls to - sbrk with a negative argument when freeing the top chunk. - Two thresholds: LESSCORE_FRC means to unconditionally return - memory to the system; LESSCORE_MIN means to return memory if - there's at least one block already on the free list - -lib/malloc/mstats.h - - stats struct now keeps track of number of block coalesces by bin, - and the number of times memory was returned to the system by bin - -lib/malloc/stats.c - - trace_malloc_stats now takes a second argument: the name of the file - to write to. The first `%p' in the template file name is replaced - by the pid - - 4/9 - --- -lib/malloc/imalloc.h - - added some macros derived from dlmalloc and glibc malloc to inline - memcpy and memset if the requested size is <= 32 bytes - -lib/malloc/malloc.c - - use MALLOC_MEMSET instead of memset in internal_{malloc,free} - -include/ocache.h - - use OC_MEMSET (variant of MALLOC_MEMSET) in ocache_free - -configure.in, config.h.in - - check for getservent(), define HAVE_GETSERVENT if found - -bashline.c - - punt immediately from bash_servicename_completion_function if - HAVE_GETSERVENT is not defined (cygwin seems to not define it) - - include "input.h" for extern save_token_state() and - restore_token_state() declarations - - change bash_execute_unix_command to call parse_and_execute with - SEVAL_NOHIST flag so the command doesn't get saved on the history - list - - change bash_execute_unix_command to save and restore the current - command line count and the token state (last_read_token, etc.). - Everything else is saved by either parse_and_execute directly or - the call it makes to push_stream(). The shell_input_line stuff - doesn't need to be saved and restored; it's not computed until - readline() returns - - 4/10 - ---- -lib/glob/glob.[ch] - - glob_filename and glob_vector now take an additional `flags' arg - - define GX_MARKDIRS as possible flag value for glob_filename and - glob_vector - -lib/sh/snprintf.c - - fixed some bugs with handling of `g' and `G' formats - - make sure numtoa returns the fractional part correctly when passed 0 - - implemented thousands grouping for `'' flag character - -lib/sh/rename.c - - a few changes to make it more bulletproof - - 4/11 - ---- -lib/glob/glob.c - - added the couple of dozen lines of code to glob_dir_to_array to - finish implementing GX_MARKDIRS - -builtins/set.def - - changed unset builtin so that it no longer considers unsetting an - unset variable or function to be an error - -lib/readline/display.c - - fix to rl_redisplay for a problem which caused display to be messed - up when the last line of a multi-line prompt (possibly containing - invisible characters) was longer than the screen width - - 4/15 - ---- -aclocal.m4 - - use AC_DEFINE_UNQUOTED in BASH_SYS_DEFAULT_MAIL_DIR instead of - enumerating all of the possible values and using AC_DEFINE - - 4/16 - ---- -Makefile.in, {builtins,support}/Makefile.in - - new variables, CFLAGS_FOR_BUILD and CPPFLAGS_FOR_BUILD, substituted - by `configure' - - changed CCFLAGS_FOR_BUILD to BASE_CCFLAGS, removing $(CPPFLAGS); - CCFLAGS and CCFLAGS_FOR_BUILD now include $(BASE_CCFLAGS) with - (possibly) different values for CPPFLAGS and CFLAGS - - GCC_LINT_CFLAGS now includes $(BASE_CCFLAGS) and $(CPPFLAGS) - instead of CCFLAGS_FOR_BUILD - - new variable, LDFLAGS_FOR_BUILD, right now equivalent to LDFLAGS - - remove $(CPPFLAGS) from recipes for buildversion, mksignames, and - mksyntax - -configure.in - - compute and substitute CFLAGS_FOR_BUILD, CPPFLAGS_FOR_BUILD, and - LDFLAGS_FOR_BUILD - - changed qnx to use LOCAL_LDFLAGS and LOCAL_LIBS instead of putting - everything in LOCAL_LDFLAGS - -builtins/Makefile.in - - remove $(PROFILE_FLAGS) from recipe for building `mkbuiltins' - - use LDFLAGS_FOR_BUILD instead of LDFLAGS in recipe for building - `mkbuiltins' - -Makefile.in - - use $(CC_FOR_BUILD) and $(CCFLAGS_FOR_BUILD) to build auxiliary - test programs (printenv, recho, zecho) - -support/Makefile.in - - use CC_FOR_BUILD and CCFLAGS_FOR_BUILD in recipe for building - `man2html' - -lib/tilde/Makefile.in - - substitute PROFILE_FLAGS, use PROFILE_FLAGS in $(CCFLAGS) - - 4/25 - ---- -Makefile.in, configure.in - - moved RELSTATUS to configure.in; configure substitutes it into - the generated Makefile - -lib/sh/snprintf.c - - fix wchars() to deal with systems where MB_CUR_MAX is not a - constant expression - - 5/2 - --- -lib/sh/shquote.c - - add `,' to list of chars that are backslash-quoted. It doesn't - hurt normal usage and prevents filenames with commas from being - inappropriately split by brace expansion after using - complete-into-braces - - 5/6 - --- -lib/sh/xstrchr.c - - we only need the check of MB_CUR_MAX and the slow code for a - few encodings, and even then only for a subset of the charset - -arrayfunc.c - - some speedups for skipsubscript and multibyte chars from Bruno Haible - -locale.c - - changed set_lang to call setlocale(LC_ALL, ...) if LC_ALL doesn't - already have a value, but doesn't change any shell variables - -include/shmbutil.h - - major speedups from Bruno Haible, mostly concerned with reducing - the number of strlen(3) calls - -subst.c - - change callers of macros in shmbutil.h to add extra argument as - necessary - - skip_single_quoted and skip_double_quoted take another argument: - the length of the string; mostly useful when using multibyte chars - - many speedups from precomputing string lengths at function start - - fixed a small bug in de_backslash in the midst of rewriting for - better efficiency - -{braces,make_cmd,pathexp}.c - - change callers of macros in shmbutil.h to add extra argument as - necessary - -pathexp.c - - fix a one-too-far problem with multibyte chars in - unquoted_glob_pattern_p - -braces.c - - brace_gobbler takes a new argument, the length of the passed string - - expand_amble takes a new argument, the length of the passed string - - 5/7 - --- -subst.c - - modified remove_quoted_nulls to eliminate the memory allocation and - do the copy in place using the same strategy as de_backslash - -lib/readline/{rldefs.h,complete.c} - - new define RL_QF_OTHER_QUOTE, so _rl_find_completion_word can note - that it found a quoting character other than \'" that appears in - rl_completer_quote_characters - - 5/9 - --- -jobs.c - - save and restore old value of jobs_list_frozen when calling trap - handlers from set_job_status_and_cleanup to avoid seg faults when - running recursive trap handlers - - 5/10 - ---- -builtins/common.h - - new #defines to use for value of changed_dollar_vars (provides - information about the caller who wants to blow away the old dollar - variables) - -builtins/common.c - - changed set_dollar_vars_changed to set changed_dollar_vars to one - of the ARGS_* values depending on the caller and environment - -builtins/source.def - - source restores the positional parameters unless the `set' builtin - was called to specify a new set while not executing a shell function - - 5/13 - ---- -POSIX - - new file, was in CWRU/POSIX.NOTES - -doc/{Makefile.in,Makefile} - - changed `posix' rule to modify ../POSIX - -doc/mkposix - - write to `POSIX' by default - -lib/sh/strtrans.c - - when ansicstr is parsing a format string for `echo -e' (or the - equivalent xpg_echo option is enabled), obey the POSIX-2001/SUSv3 - standard and accept 0-3 octal digits after a leading `0' - -doc/{bash.1,bashref.texi} - - updated `echo' description to note that up to three octal digits - are now accepted following `\0' - - 5/16 - ---- -doc/Makefile.in - - remove the generated documentation on `make distclean' if the - build directory and source directory are not the same - -Makefile.in - - descend into `support' subdirectory on a `make clean' and - `make distclean' - - remove parser-built, y.tab[ch] on a `make distclean' if the build - directory and source directory are not the same - -support/Makefile.in - - support various `clean' targets and remove man2html.o and man2html - -{configure,Makefile}.in - - move values for DEBUG and MALLOC_DEBUG into configure.in; on by - default for development versions; off by default for releases - (off for profiling, too) - - 5/21 - ---- -parse.y - - modified the grammar to allow a simple_list followed by yacc_EOF - to terminate a command. This fixes problems with things like - a backslash-newline at the end of an `eval'd string - - change handle_eof_input_unit() to reset the token state before - calling prompt_again(), in case the prompt to be evaluated contains - a command substitution - - 5/23 - ---- -lib/readline/vi_mode.c - - fix `r' command (rl_vi_change_char) when HANDLE_MULTIBYTE is defined - but MB_CUR_MAX == 1 - - 5/24 - ---- -lib/malloc/watch.c - - don't try to print `file' argument to _watch_warn if it's null - -lib/malloc/malloc.c - - changed guard checking code in internal_{malloc,free,realloc} to - access memory as (char *) and copy into a union instead of - casting and dereferencing a pointer to u_bits32_t, since that - results in unaligned accesses which will cause Sparcs to upchuck - - 5/30 - ---- -[bash-2.05b-beta1 released] - -lib/readline/text.c - - fixed a problem with rl_transpose_chars on systems supporting - multibyte characters with a locale that doesn't have any multibyte - chars - - 6/4 - --- -expr.c - - fix a/=0 and a%=0 to throw evaluation errors rather than core dumps - -lib/readline/display.c - - fix core dump when line wrapping a multibyte character (line - accidentally dropped from the original patch) - -lib/readline/mbutil.c - - fix reversed return value from _rl_is_mbchar_matched; fixes problem - with backward-char-search - - 6/10 - ---- -lib/sh/getenv.c - - fix getenv to not free value returned by find_tempenv_variable - - add setenv, putenv, unsetenv for completeness - - 6/12 - ---- -shell.c - - change init_noninteractive to init expand_aliases to the value of - posixly_correct - - don't initialize expand_aliases to posixly_correct anywhere else. - This allows the -O expand_aliases invocation option to work correctly - -general.c - - fix move_to_high_fd to not try the dup2 unless the fd loop results - in an fd > 3; just return the passed file descriptor otherwise - - use HIGH_FD_MAX, defined in general.h, instead of hard-coded 256 - as highest file descriptor to try - -subst.c - - in process_substitute, call move_to_high_fd with `maxfd' parameter - of -1 instead of 64, so move_to_high_fd will use its maximum - - 6/21 - ---- -lib/malloc/malloc.c - - don't bother calling MALLOC_MEMSET if the requested size is 0 - -builtins/setattr.def - - note in short doc that export and readonly can take assignment - statements as arguments - -error.c - - new function, error_prolog(), to capture common error message - prefix code (except for parser errors) - - 6/25 - ---- -aclocal.m4 - - add tests for standard-conforming declarations for putenv and - unsetenv in system header files - -{configure,config.h}.in - - call BASH_FUNC_STD_PUTENV and BASH_FUNC_STD_UNSETENV, define - HAVE_STD_GETENV and HAVE_STD_UNSETENV, respectively, if they - succeed - -lib/sh/getenv.c - - change putenv and unsetenv to take differing prototypes in - stdlib.h into account - - 6/27 - ---- -[bash-2.05b-beta2 released] - - 6/28 - ---- -builtins/common.c - - fix get_job_spec so that %N works when N is the size of the jobs - list (%8 means job 8, but the 7th member of the jobs array, so - it's OK if N == job_slots because the function returns N-1) - - 7/1 - --- -shell.c - - turn off line editing if $EMACS is set to `t' - - 7/10 - ---- -builtins/set.def - - remove mention of `-i' from long help doc, since it has no effect - - 7/17 - ---- -[bash-2.05b released] - - 7/18 - ---- - -lib/malloc/malloc.c - - make sure that the `free_return' label has a non-empty statement - to branch to - - 7/19 - ---- -locale.c - - only call setlocale() from set_lang() if HAVE_SETLOCALE is defined; - otherwise just return 0 - -lib/readline/mbutil.c - - only try to memset `ps' in _rl_get_char_len if it's non-NULL. Ditto - for _rl_adjust_point - - 7/23 - ---- -execute_cmd.c - - fix for executing_line_number() when compiling without conditional - commands, dparen arithmetic or the arithmetic for command - - - 7/24 - ---- -support/Makefile.in - - fix maintainer-clean, distclean, mostlyclean targets - -builtins/common.c - - fix bug in sh_nojobs where it doesn't pass the right number of args - to builtin_error - -bashline.c - - when using command completion and trying to avoid appending a slash - if there's a directory with the same name in the current directory, - use absolute_pathname() instead of just checking whether the first - char of the match is a slash to catch things like ./ and ../ - -examples/complete/bashcc-1.0.1.tar.gz - - a package of completions for Clear Case, from Richard S. Smith - (http://www.rssnet.org/bashcc.html) - -input.c - - fix check_bash_input to call sync_buffered_stream if the passed fd - is 0 and the shell is currently reading input from fd 0 -- all it - should cost is maybe an additional read system call, and it fixes - the bug where an input redirection to a builtin inside a script - which is being read from stdin causes the already-read-and-buffered - part of the script to be thrown away, e.g.: - - bash < x1 - - where x1 is - - hostname - read Input < t.in - echo $Input - echo xxx - -execute_cmd.c - - in initialize_subshell(), call unset_bash_input (0) to not mess with - fd 0 if that's where bash thinks it's reading input from. Fixes - bug reported by jg@cs.tu-berlin.de on 17 July 2002. Should be a way - to check whether or not the current fd 0 at the time of the call has - not been redirected, like in the bug report. Also might eventually - want to throw in a sync_buffered_stream if bash is reading input - from fd 0 in a non-interactive shell into a buffered stream, so the - stream is sync'd -- might be necessary for some uses - - 7/25 - ---- -lib/readline/signals.c - - make sure rl_catch_sigwinch is declared even if SIGWINCH is not - defined, so the readline state saving and restoring functions in - readline.c are always the same size even if SIGWINCH is not defined, - and undefined references don't occur when SIGWINCH is not defined - - 7/30 - ---- -bashline.c - - augment patch from 7/24 to not disable rl_filename_completion_desired - if the first char of the match is `~' - -lib/readline/bind.c - - when creating `shadow' keymaps `bound' to ANYOTHERKEY, don't bind - a key whose type is ISFUNC but whose function is the `fake' - rl_do_lowercase_version (fixes debian bash bug #154123) - -lib/readline/readline.c - - don't call _rl_vi_set_last from _rl_dispatch_subseq if - key == ANYOTHERKEY (when truncated to `sizeof(char)', it will be 0, - which strchr will find in `vi_textmod') - - 7/31 - ---- -lib/readline/input.c - - fix rl_gather_tyi to only slurp up one line of available input, even - if more than one line is available (fixes debian bash bug #144585) - - 8/3 - --- -bashline.c - - better fix for command completion problem -- test for directory - explicitly with test_for_directory before turning off - rl_filename_completion_desired, since that's the case we're trying - to protect against - - 8/5 - --- -include/shmbutil.h - - fix ADVANCE_CHAR macro to advance the string pointer if mbrlen - returns 0, indicating that the null wide character (wide string - terminator) was found (debian bash bug #155436) - -lib/readline/mbutil.c - - fix _rl_adjust_point to increment the string pointer if mbrlen - returns 0 - -support/shobj-conf - - fix for the `-install_name' value in SHLIB_XLDFLAGS assignment for - Darwin from the fink folks - - 8/6 - --- -builtins/exit.def - - broke code that runs ~/.bash_logout out into a separate function: - bash_logout() - -builtins/common.h - - extern declaration for bash_logout() - -eval.c - - call bash_logout() from alrm_catcher(), so timed-out login shells - run ~/.bash_logout before processing the exit trap - -lib/sh/strtrans.c - - implemented $'\x{hexdigits}' expansion from ksh93 - -configure.in - - define RECYCLES_PIDS in LOCAL_CFLAGS for cygwin; don't bother to - link with -luser32 - -examples/loadables/strftime.c - - new loadable builtin, interface to strftime(3) - - 8/7 - --- -parse.y - - parse_arith_cmd now takes a second argument, a flag saying whether - or not to add double quotes to a parsed arithmetic command; changed - callers - - changed parse_dparen so it tells parse_arith_cmd to not add the - double quotes and therefore doesn't need to remove them - - change parse_dparen to add W_NOGLOB|W_NOSPLIT|W_QUOTED flags to word - created when parsing (( ... )) arithmetic command, since the double - quotes are no longer added - -make_cmd.c - - in make_arith_for_expr, set the flags on the created word to - W_NOGLOB|W_NOSPLIT|W_QUOTED - -execute_cmd.c - - change execute_arith_command to expand the expression with - expand_words_no_vars, like the arithmetic for command code does - - fix execute_arith_command to handle the case where the expanded - expression results in a NULL word without crashing - -tests/{arith-for,cprint}.tests - - change expected output to account for no longer adding quotes to - ((...)) commands - - 8/8 - --- -print_cmd.c - - take out the space after printing the `((' and before printing the - `))' in print_arith_command, print_arith_for_command, and - xtrace_print_arith_cmd - -tests/{arith-for,cprint}.tests - - change expected output to account for no longer adding leading and - trailing spaces when printing ((...)) and arithmetic for commands - - 8/17 - ---- -subst.c - - fix issep() define to handle case where separators[0] == '\0', in - which case it always returns false - -lib/readline/histexpand.c - - fix off-by-one error in history_expand_internal when using the `g' - modifier that causes it to skip every other match when matching a - single character (reported by gjyun90@resl.auto.inha.ac.kr) - -doc/{bash.1,bashref.texi} - - make sure that the name=word form of argument to declare/typeset, - export, and readonly is documented in the description - - 8/30 - ---- -lib/readline/histexpand.c - - make history_expand_internal understand double quotes, because - single quotes are not special inside double quotes, according to - our shell-like quoting conventions. We don't want unmatched - single quotes inside double-quoted strings inhibiting history - expansion - - make `a' modifier equivalent to `g' modifier for compatibility with - the BSD csh - - add a `G' modifier that performs a given substitution once per word - (tokenized as the shell would do it) like the BSD csh `g' modifier - - 8/31 - ---- -braces.c - - when compiling for the shell, treat ${...} like \{...} instead of - trying to peek backward when we see a `{'. This makes it easier - to handle things like \${, which should be brace expanded because - the $ is quoted - - 9/7 - --- -aclocal.m4 - - redirect stdin from /dev/null in BASH_CHECK_DEV_FD before testing - the readability of /dev/fd/0, so we're dealing with a known quantity - - 9/11 - ---- -[prayers for the victims of 9/11/01] - -shell.c - - fix maybe_make_restricted to handle a restricted login shell with a - base pathname of `-rbash' and skip over any leading `-' - - 9/13 - ---- -builtins/evalstring.c - - in parse_and_execute, make sure we don't try to run unwind-protects - back to `pe_dispose' after a longjmp back to top_level if the - pe_dispose frame hasn't been initialized - -lib/readline/display.c - - fix problem with prompt overwriting previous output when the output - doesn't contain a newline in a multi-byte locale. This also should - fix the problem of bash slowing down drastically on long lines when - using a multi-byte locale, because it no longer tries to rewrite the - entire line each time. Patch from Jiro SEKIBA - -parse.y - - move the typedef for alias_t that is compiled in if ALIAS is not - defined up before the prototype for push_string, since that takes - an alias_t * parameter - -lib/readline/terminal.c - - bind the termcap description's left and right arrow keys to - rl_backward_char and rl_forward_char, respectively, instead of - rl_forward and rl_backward (which are just there for backwards - compatibility) - -aclocal.m4 - - when testing readability of /dev/stdin, redirect stdin from /dev/null - to make sure it's a readable file - - 9/17 - ---- -config-bot.h - - don't test __STDC__ when deciding whether or not to use stdarg.h; - just use it if it's present - -tests/read2.sub - - redirect from /dev/tty when using `read -t' - - 9/20 - ---- -builtins/history.def - - when reading `new' entries from the history file with `history -n', - fix increment of history_lines_this_session by taking any change - in history_base into account - -lib/sh/pathphys.c - - changes to sh_physpath to deal with pathnames that end up being - longer than PATH_MAX without dumping core - -lib/readline/doc/{history.3,hsuser.texinfo},doc/ bash.1 - - documented new `a' and `G' history modifiers - - 9/25 - ---- -lib/readline/misc.c - - when traversing the history list with arrow keys in vi insertion - mode, put the cursor at the end of the line (like in emacs mode) - -mksyntax.c - - don't try to use \a and \v unless __STDC__ is defined; use the - ascii integer equivalents otherwise - - include "config.h" in the generated syntax.c file for a possible - definition of `const' - -doc/{bash.1,bashref.texi} - - document the meaning of a null directory in $PATH - - 9/26 - ---- -parse.y - - fix set_line_mbstate to handle case where mbrlen() returns 0, - indicating the null wide character - - fix set_line_mbstate so we don't directly compare a char variable - to EOF, since char can (and is) unsigned on some machines - -bashline.c - - change bash_execute_unix_command to save a little bit more state: - last_shell_builtin, this_shell_builtin, last_command_exit_value - - 9/27 - ---- -execute_cmd.c - - tentative change to execute_simple_command to avoid freeing freed - memory in the case where bash forks early but still ends up calling - execute_disk_command, without passing newly-allocated memory to - make_child. This may fix the core dumps with the linux-from-scratch - folks - - 9/28 - ---- -Makefile.in,{builtins,lib/sh}/Makefile.in - - fix up dependencies, mostly on ${BUILD_DIR}/version.h, so that - parallel makes work with GNU and BSD makes - -shell.h - - new struct to save partial parsing state when doing things like - bash_execute_unix_command and other operations that execute - commands while a line is being entered and parsed - -parse.y - - new functions, save_parser_state() and restore_parser_state(), to - save and restore partial parsing state - -bashline.c - - change bash_execute_unix_command to call {save,restore}_parser_state - -builtins/jobs.def - - change execute_list_with_replacements to eliminate a run_unwind_frame - in favor of calling the cleanup explicitly and discarding the frame - -execute_cmd.c - - change execute_for_command to avoid a run_unwind_frame in the case - where the loop variable is readonly or otherwise not assignable - - change execute_select_command and execute_simple_command to use - discard_unwind_frame by running the cleanup code explicitly, instead - of using run_unwind_frame - - make sure execute_select_command decreases loop_level even on error - - 9/30 - ---- -doc/{bash.1,bashref.texi} - - fixed description of `unset' now that unsetting a previously-unset - variable is no longer an error - - 10/3 - ---- -{configure,config.h}.in - - augment check for strtold with additional check to detect the - horribly broken hp/ux 11.x implementation that returns `long_double'; - defines STRTOLD_BROKEN if so - -builtins/printf.def - - define floatmax_t as `double' if STRTOLD_BROKEN is defined - - 10/5 - ---- -lib/readline/keymaps.c - - don't automatically bind uppercase keys to rl_do_lowercase_version - in rl_make_bare_keymap - -lib/readline/readline.c - - explicitly check for ANYOTHERKEY binding to rl_do_lowercase_version - and dispatch to lowercase of key when a prefix is not matched - - 10/12 - ----- -bashline.c - - set COMP_WORDBREAKS in enable_hostname_completion to the value - of rl_completer_word_break_characters - -variables.c - - new special variable COMP_WORDBREAKS, controls the value of - rl_completer_word_break_characters - -variables.h - - new extern declaration for sv_comp_wordbreaks() - -subst.c - - change split_at_delims to behave more like shell word splitting if - the passed value for the delimiters is NULL, indicating that the - function is to use $IFS to split - -{execute_cmd,jobs,test,findcmd,input,make_cmd,redir,shell}.c -builtins/mkbuiltins.c,builtins/{fc,history,source,umask}.def -lib/sh/netconn.c -lib/termcap/termcap.c -lib/readline/histfile.c - - make sure all inclusions of are protected by - HAVE_SYS_FILE_H - -bashline.c - - don't turn off rl_filename_completion_desired in - attempt_shell_completion if the partial pathname contains a slash. - This still doesn't solve the problem of partial pathname completion - starting with a directory in the current directory without a - leading `./'. There's no way to tell the difference between that - and a file found in $PATH (which may contain `.') at the point that - attempt_shell_completion acts - - 10/18 - ----- -locale.c - - don't set lc_all to the default locale when LC_ALL is being unset - - new function, reset_locale_vars(), called to recompute the correct - locale variable values when LC_ALL is unset - - changed set_lang to not set LC_ALL, which it never should have been - doing in the first place, and to maintain a local variable `lang' - corresponding to $LANG - - change get_locale_var to use the precedence posix.2 specifies: - LC_ALL overrides individual variables; LANG, if set, is the default - - change set_locale_var to call get_locale_var to get the appropriate - value for the variable being set or unset - - call get_locale_var instead of using passed value in set_locale_var - to get the defaulting and precedence right - -lib/readline/nls.c - - new function, _rl_get_locale_var(), which does the same thing as - locale.c:get_locale_var(), with the right precedence and defaulting, - using sh_get_env_value to get the right bash variable values - - if HAVE_SETLOCALE is defined, _rl_init_eightbit first calls - _rl_get_locale_var to get the right value for LC_CTYPE, and uses - that in the call to setlocale. If _rl_get_locale_var returns NULL, - call setlocale() to get the current international environment, and, - finally, if that returns null, call setlocale with a second argument - of "" to force the implementation's `native' environment - -pcomplete.c - - change gen_wordlist_completions to dequote the text before comparing - it against the expanded word list - - changed gen_matches_from_itemlist to do the same thing - -bashline.c - - new global function, bash_dequote_word, calls bash_dequote_filename - on the text passed. Used by the programmable completion code - -lib/readline/histfile.c - - make sure that whenever read_history_range returns a non-zero value - that it sets errno to some useful value - - 10/19 - ----- -variables.c - - COMP_WORDBREAKS is now a dynamic variable, mirroring value of - rl_completer_word_break_characters. Makes sure that the variable - always points to dynamic memory if it's not null or the readline - default - -bashline.c - - change enable_hostname_completion to manage a dynamic value of - rl_completer_word_break_characters, since assignments to - COMP_WORDBREAKS can change its value unpredictably - -lib/readline/{complete.c,readline.h} - - rl_completer_word_break_characters no longer has `const' attribute - -bashline.c - - clean up necessary places due to rl_completer_word_break_characters - no longer being `const' - -doc/{bash.1,bashref.texi} - - document new COMP_WORDBREAKS variable - - 10/21 - ----- -print_cmd.c - - fix indirection_level_string to handle the case where the decoded - $PS4 is null without seg faulting - - 10/22 - ----- -builtins/shift.def - - make sure that there is actually an argument when reporting a shift - count that exceeds the number of positional paramters and - shift_verbose is enabled - -lib/readline/rltty.c - - change SET_SPECIAL to call a new function, set_special_char, since - it contains a block. It's called infrequently, so the performance - impact of making it a function should be negligible, and it helps - debugging - - 10/29 - ----- -bashline.c - - make sure the editor in VI_EDIT_COMMAND and EMACS_EDIT_COMMAND is - quoted; it might contain spaces (e.g., `emacs -nw') - -aclocal.m4 - - cache ac_cv_rl_version in RL_LIB_READLINE_VERSION macro - -configure.in - - change logic that sets RL_INCLUDEDIR so that it doesn't try to set - a bogus include path if the argument to --with-installed-readline - is `yes' -- helps with cross-compiling - -lib/readline/histexpand.c - - fix history_tokenize_word so that it handles <( and >( better - - 10/30 - ----- -redir.c - - fix write_here_string so it handles the case where `herestr' expands - to NULL without seg faulting - - 10/31 - ----- -mailcheck.c - - reverse logic flip from bash-2.05 that handled systems that don't - change the atime when the mailbox is accessed; make sure the file - is bigger before we report new mail. This is the case in the vast - majority of cases. Reported by jim@jtan.com - - 11/5 - ---- -parse.y - - change action for `for x; { list; }' and corresponding `select' - production to use \"$@\" instead of just $@, as it is with all the - other actions - - 11/9 - ---- -parse.y - - new flag for parse_matched_pair: P_DQUOTE, indicating that the - pair of characters being matched is between double quotes - - parse_matched_pair now passes P_DQUOTE down to recursive calls: - if the open char to be matched is a `"' or the passed-in flags - include P_DQUOTE, set the local `rflags' variable to P_DQUOTE and - pass `rflags' down to recursive calls - - if `rflags' includes P_DQUOTE, don't try to ansiexpand $'...' or - locale expand $"..."; consistent with other quoting constructs - - 11/11 - ----- -doc/{bash.1,bashref.texi} - - explicitly note that variables referenced in arithmetic expressions - without using `$' evaluate to 0 if they are null or unset - - note that a null variable value evaluates to 0 when used in an - arithmetic context, like when a variable with the `-i' attribute is - assigned a null value - - document the ${!prefix@} expansion as equivalent to ${!prefix*} - - 11/12 - ----- -doc/{bash.1,bashref.texi} - - note that the value of an arithmetic expression is as in C - - change the wording to note that `arithmetic evaluation' (not - arithmetic expansion, which has a different meaning) is performed - on the value assigned to a variable whose integer attribute is set - - 11/13 - ----- -execute_cmd.c - - fix execute_disk_command so it calls exit() after printing the error - message in a restricted shell context if the shell has already forked - (nofork != 0 && there are no pipes) - - 11/19 - ----- -builtins/type.def - - don't report on aliases unless expand_aliases is set and the parser - is performing alias expansion; changed tests/type.tests and - tests/type.right accordingly - - 11/25 - ----- -general.c - - fix for full pathnames including drive letters on cygwin from - Corinna (convert to posix-style paths, which the rest of the - code handles much better) - -lib/readline/text.c - - fixes to overwrite mode from jimmy@is-vn.bg: - o in _rl_overwrite_char, do the overwrite mode self-insert - as one group, even when overwriting more than 1 char - o in _rl_overwrite_char, do the insert before the delete so - that an undo positions the cursor on the character restored, - not to the right of it - o in _rl_overwrite_rubout, don't do rl_insert_char(' ') unless - rl_point < rl_end. Since overwrite-mode self-insert acts as - in insert-mode when at eol, make rubout behave like - insert-mode rubout - - 11/30 - ----- -lib/readline/misc.c - - call rl_replace_line with `1' as second parameter if we're going to - immediately overwrite the undo list - -lib/readline/search.c - - in make_history_line_current, use _rl_replace_text to make the line - replacement an undoable operation. Affects all non-incremental - search functions. - -parse.y - - make behavior introduced on 11/9 dependent on extended_quote - variable, controllable by extquote shopt option. Default setting is - on for backwards compatibility - -builtins/shopt.def - - new `extquote' option to control extended_quote variable - - 12/3 - ---- -jobs.c - - change message printed when attempting to put a background job in - the background with `bg' to include the job id and make the - statement declarative - - 12/10 - ----- -bashhist.h - - define explicit flag values for history_control - -variables.c - - change sv_history_control to use new flag values - - change sv_history_control to parse $HISTCONTROL as a colon-separated - list of values for the history_control variable - -bashhist.c - - change check_history_control to use new flag values and restructure - to remove case statement - - new function hc_erasedups(line); removes all entries matching LINE - from the history list - - call hc_erasedups() from check_add_history after we've determined - that we're saving the line - -doc/{bash.1,bashref.texi} - - documented new options available for $HISTCONTROL and that it can - be a colon-separated list of history control options - - 12/11 - ----- -subst.c - - fix pat_subst() to not increment `e' (pointer to the end of the - matched portion of the string) until after we're sure we're going - around the loop again; fixes problem with empty replacements for - a pattern that doesn't match (bug reported by Don Coleman - ) - - 12/17 - ----- -lib/readline/display.c - - fixes to multibyte redisplay from jir@yamato.ibm.com (Jiro SEKIBA): - o speed up calculation of first difference between old and new - lines in the common case - o don't try to see if we're in the middle of a multbyte char - in update_line (we'll see how this one works out) - - 12/18 - ----- -doc/bashref.texi - - make it clear that the `command-list' function definition may be - terminated by an ampersand before the closing brace - - 12/28 - ----- -redir.c - - set `expanding_redir' flag when expanding words in a redirection - -subst.c - - new function, exp_jump_to_top_level(), to do any word expansion - cleanup before a call to jump_to_top_level from within that file; - sets expanding_redir back to 0 before jump_to_top_level - -variables.c - - in find_variable(), don't call find_variable_internal with a second - parameter of 1 if expanding_redir is non-zero - - in find_variable_internal(), don't search the temporary env if - subshell_environment includes SUBSHELL_FORK (indicating a simple - command) and expanding_redir is non-zero - -parse.y - - increment line_number when we read a \ pair - -array.c - - added array_unshift_element and array_shift_element (which just call - array_shift and array_rshift, respectively), for bash debugger - support - - 1/4/2003 - -------- -doc/{bash.1,bashref.texi} - - note in the section describing the execution environment passed to - children that subshells inherit shell functions marked for export - - note in the section describing shell functions the possibility - that exported functions may result in two entries in the environment - with the same name - -parse.y - - when pushing an alias expansion onto the pushed_string list, append - a space to the expanded definition to make the parser's lookahead - work without using the `mustpop' hack in shell_getc - - 1/8 - --- -shell.c - - change calls to exit() with EX_USAGE as a parameter to use - EX_BADUSAGE instead, since EX_USAGE is defined as 258 and is - technically out of range - - 1/14 - ---- -aclocal.m4 - - check for the termcap functions in libc first: if we don't have - to link in another library, let's not do it - - change the test for mbstate_t to use AC_TRY_COMPILE instead of - AC_TRY_RUN - -doc/{bash.1,bashref.texi} - - document that bash turns line editing off if environment variable - EMACS is set to `t' when it starts up - -doc/bash.1 - - minor change to give the ftp url for the latest version of bash in - the bug reports section - -lib/readline/histexpand.c - - in get_history_event, cast a couple of `const char *' variables to - `char *' in function call parameter lists to avoid compiler warnings - - 1/21 - ---- -builtins/cd.def - - change `cd -' so it prints the current working directory after a - successful chdir even when the shell is not interactive - - 1/31 - ---- -lib/readline/doc/rltech.texinfo - - clarified exactly what is meant by the term `application-specific - completion function', made its use consistent, and documented - what variables are changed before such a function is called - -lib/readline/input.c - - new function, _rl_pushed_input_available(), returns non-zero if - there are characters in the input queue managed by rl_get_char - and _rl_unget_char - -lib/readline/rlprivate.h - - new extern declaration for _rl_pushed_input_available - -lib/readline/callback.c - - change rl_callback_read_char to check _rl_pushed_input_available - and loop if there's something there, so characters don't languish - until more keyboard input is read - -execute_cmd.c - - new variable, last_command_exit_signal, non-zero if - last_command_exit_value result from wait_for was result of a signal - -nojobs.c - - keep track of whether or not a given pid was killed by a signal with - a new flag in the pid_list array - - new function int find_termsig_by_pid(pid_t pid) to get the - terminating signal, if any, for a particular pid - - new function int get_termsig(WAIT status) returns the terminating - signal corresponding to status - - set last_command_exit_signal in wait_for and the various wait_for_xx - functions - -jobs.c - - new functions, process_exit_signal and job_exit_signal, return the - signal that killed a given process or job, if a signal caused its - death - - set last_command_exit_signal in wait_for by calling job_exit_signal - or process_exit_signal appropriately - -subst.c - - don't resend SIGINT to ourselves unless last_command_exit_signal is - SIGINT and last_command_exit_value == 128 + SIGINT. This fixes the - $(exit 130) bug reported by Paul Jarc - -expr.c - - new function, expr_bind_variable, calls bind_int_variable and - then stupidly_hack_special_variables. This fixes the - `let OPTIND=1' bug - -bashline.c - - change history_and_alias_expand_line and shell_expand_line to call - history_expand_line_internal so calls to pre_process_line are - localized - - change history_expand_line_internal and cleanup_expansion_error to - temporarily turn off hist_verify before calling pre_process_line - to avoid the effects described by teirllm@dms.auburn.edu - -parse.y - - don't unconditionally turn off PST_ALEXPNEXT in push_string. This - fixes the multiple alias expansion bug reported by Paul Jarc. - -lib/readline/vi_mode.c - - change rl_vi_subst to push `l' instead of ` ' -- it should be - equivalent, but this has been reported to fix a problem in multibyte - locales - -lib/readline/readline.h - - new state flag value RL_STATE_TTYCSAVED, indicates that save_tty_chars - has been called. Since it's only used and visible internally, it's - undocumented - -lib/readline/rltty.h - - changed all of the members of _rl_tty_chars struct to `unsigned char' - -lib/readline/rltty.c - - set the RL_STATE_TTYCSAVED after save_tty_chars is called - - new function, rl_tty_unset_default_bindings(), resets bindings for - everything rl_tty_set_default_bindings() messes with back to - rl_insert, so rl_tty_set_default_bindings can be called again with - possible changes - - new function that does the bulk of the work for - rltty_set_default_bindings: _rl_bind_tty_special_chars() - - change prepare_terminal_settings so that it can track changes to the - terminal special chars made by stty(1): unset the bindings with - rl_tty_unset_default_bindings before calling save_tty_chars, and - _rl_tty_set_default_bindings after, with the new values from - get_tty_settings(). This implements a long-standing request, most - recently made by Tim Waugh of Red Hat. - -lib/readline/readline.h - - extern declaration for rl_tty_unset_default_bindings() - -lib/readline/readline.c - - new function, reset_default_bindings, calls - rl_tty_unset_default_bindings() to reset the terminal special chars - back to rl_insert and then read the new ones - -lib/readline/doc/rltech.texinfo - - documented rl_tty_unset_default_bindings() - - 2/1 - --- -[prayers and condolences to the families of the space shuttle crew members] - -aclocal.m4 - - add checks for mbrtowc and mbrlen in BASH_CHECK_MULTIBYTE - - new check, BASH_FUNC_CTYPE_NONASCII, checks whether or not the ctype - functions handle non-ascii characters correctly - -config.h.in - - add HAVE_MBRTOWC and HAVE_MBRLEN - - add NO_MULTIBYTE_SUPPORT for new configure argument - - add CTYPE_NON_ASCII - -config-bot.h, lib/readline/rlmbutil.h - - make sure that mbrtowc, mbrlen, and wcwidth are all present before - turning on HANDLE_MULTIBYTE - - turn off multibyte chars if NO_MULTIBYTE_SUPPORT is defined - -configure.in - - new argument --enable-multibyte (enabled by default), allows - multibyte support to be turned off even on systems that support it - -lib/readline/chardefs.h - - define NON_NEGATIVE as 1 if CTYPE_NON_ASCII is defined - - 2/3 - --- -config.h.in - - add HAVE_WCTOMB - -aclocal.m4 - - check for wctomb in BASH_CHECK_MULTIBYTE - - 2/4 - --- -lib/readline/vi_mode.c - - in _rl_vi_change_mbchar_case, make sure the result from wctomb() - is NULL-terminated before trying to insert it with rl_insert_text() - - 2/5 - --- -lib/readline/display.c - - fix to update_line to avoid problems on systems with multibyte - characters when moving between history lines when the new line - has more glyphs but fewer bytes (twaugh@redhat.com) - -lib/readline/vi_mode.c - - use wcrtomb() instead of wctomb() in _rl_vi_change_mbchar_case - -pcomplete.c - - fix init_itemlist_from_varlist to handle the case where the - `varlist' is NULL - -doc/{bash.1,bashref.texi} - - clarified when a simple command may fail without the shell exiting - when -e is set - - 2/13 - ---- -parse.y - - when bash is started with --nolineediting, ignore \[ and \] when - decoding the prompt string - -subst.c - - fix remove_quoted_nulls so that a string with a CTLESC appearing - after a CTLNUL (which was removed) does not leave characters in - the string inappropriately - - 2/14 - ---- -builtins/common.h - - new flag value for parse_and_execute(): SEVAL_RESETLINE, which - allows the caller to specify whether or not the internal idea - of the line number should be reset to 1 - -builtins/evalstring.c - - parse_and_execute() now tells push_string to reset the line - number only if the SEVAL_RESETLINE flag is set by the caller - - 2/15 - ---- -builtins/evalfile.c - - pass SEVAL_RESETLINE from _evalfile() to parse_and_execute() - -subst.c - - if the shell is currently interactive, pass SEVAL_RESETLINE to - parse_and_execute() when doing command substitution - -jobs.c - - add SEVAL_RESETLINE to parse_and_execute while running SIGCHLD trap - -command.h - - add `line' members to case_com, for_com, select_com - - rearranged order of members in some of the command structs, so - `flags' and `line' are first - - added a `source_file' member to the function_def struct; keeps - track of where the function was defined - -doc/Makefile.in - - add some new suffix rules: .dvi.ps - -doc/{bash.1,bashref.texi} - - added text to the description of the `trap' builtin tightening up - the language describing when the ERR trap will be run - -error.c - - if $BASH_SOURCE (internally-maintained) exists, use BASH_SOURCE[0] - in get_name_for_error if the shell is not interactive - -array.h - - new convenience defines: array_push and array_pop - -variables.c - - change get_funcname to return this_shell_function->name only if - arrays have not been compiled into the shell - - change init_funcname_var to initialize FUNCNAME as an array variable - if we have arrays - - new function: get_self(SHELL_VAR *self), a degenerate `dynamic_value' - function for dynamic variables - - new function: init_dynamic_array_var(), a generic dynamic array - variable initializer to handle the common case - - use init_dynamic_array_var() instead of explicit init_dirstack_var() - - use init_dynamic_array_var() instead of explicit init_groups_var() - - new dynamic array variables: BASH_ARGC, BASH_ARGV, BASH_SOURCE, - BASH_LINENO, initialized with init_dynamic_array_var - -shell.c - - initialize BASH_LINENO, BASH_SOURCE, FUNCNAME in open_shell_script - -{execute_cmd,trap}.c - - take out trap_line_number, since parse_and_execute doesn't reset the - line number any more when running the trap commands - -make_cmd.c - - augment make_function_def to get source file name and call - bind_function_def to save the entire FUNCTION_DEF - -variables.c - - new hash table: shell_function_defs, keeps table of shell function - definitions including source file and line number info corresponding - to shell_functions table - - new functions: find_function_def and bind_function_def to manage - the shell_function_defs hash table - - new function: unbind_function_def to remove a function definition - from the shell_function_defs table (right now uncalled) - -variables.h - - extern declaration for bind_function_def, find_function_def - - new extern declaration for unbind_function_def - -execute_cmd.c - - in function prologue and epilogue, push and pop FUNCNAME, - BASH_SOURCE, and BASH_LINENO information - -dispose_cmd.c - - broke the code that disposes a FUNCTION_DEF out into two new - functions: dispose_function_def and dispose_function_def_contents - -dispose_cmd.h - - new extern declarations for dispose_function_def_contents and - dispose_function_def - -copy_cmd.c - - move body of copy_function_def (other than allocating a new - FUNCTION_DEF) to copy_function_def_contents - - make sure to copy the new source_file member of a function_def in - copy_function_def_contents - - copy_function_def is no longer static, copy_function_def_contents - is not either - -command.h - - new extern declaration for copy_function_def_contents and - copy_function_def - -parse.y - - keep a stack of line numbers where case, select, and for commands - start, with a maximum nesting level of 128; increment when reading - word after `for', `select' or `case' in read_token_word; decrement - in grammar actions after parsing a complete for, arith_for, select, - or case command - - create for, case, arith_for, and select commands with an extra - line number (word_lineno[word_top]) argument - -make_cmd.c - - make_for_or_select, make_for_command, make_case_command, and - make_select_command all take an extra `line_number' argument - -make_cmd.h - - corresponding changes to extern declarations for those functions - - 2/16 - ---- -{execute_cmd,shell,variables}.c - - follow each call to remember_args with a call to push_args or - pop_args to manage the BASH_ARGV and BASH_ARGC arrays. Only set - when the shell is started to run shell script or runs a shell - function. Doesn't handle `set' or `shift' yet, nor `source'. - -execute_cmd.c - - keep track of the level of subshells with a new variable, manipulated - in execute_in_subshell - - set currently_executing_command in execute_command_internal(), - even if we're running a trap - - better line number management when executing simple commands, - conditional commands, for commands in execute_command_internal() - and the various functions that implement the commands - (execute_cond_command, execute_for_command, execute_etc.) - -variables.c - - new dynamic variable BASH_SUBSHELL, with new get_subshell and - assign_subshell functions to manipulate it - - new functions push_args (WORD_LIST *list) and pop_args (void) to - manage the BASH_ARGC and BASH_ARGV dynamic array variables - -variables.h - - new extern declarations for push_args and pop_args - -builtins/evalfile.c - - in _evalfile, do appropriate things to the FUNCNAME, BASH_ARGV, - BASH_ARGC, BASH_SOURCE, and BASH_LINENO variables - -support/mksignames.c - - add another fake signal for `trap'; make NSIG+2 == `RETURN' - -trap.c - - _run_trap_internal now returns an int: the exit value of the command - run as the result of the trap - - run_debug_trap now returns an int: the exit value of the command - run as the result of the trap - - RETURN is a new special trap - - new function: set_return_trap(char *command) interface for the rest - of the shell, like set_{debug,error}_trap - - new function: run_return_trap() - - command substitution and other child processes don't inherit the - return trap - -trap.h - - new extern declaration for set_return_trap() and run_return_trap - - new defines for RETURN_TRAP; increment BASH_NSIG - - change extern declaration for run_debug_trap() since it now returns - an int - -shell.c - - new invocation long option: --debugger, turns on debugging and - sets internal `debugging_mode' variable - -execute_cmd.c - - new code to save return trap when executing a shell function, so - shell functions don't inherit it - - run debug trap before binding the variable and running the action - list in a `for' command - - run debug trap before binding the selection variable and running - the query in a `select' command - - run debug trap before running matcher in a `case' command - -builtins/set.def - - new `set -o functrace' (set -T), causes DEBUG trap to be inherited - by shell functions - - new `set -o errtrace' (set -E), causes ERR trap to be inherited - by shell functions - -flags.c - - new flags -E and -T, control error_trace_mode and - function_trace_mode respectively - -flags.h - - new extern declarations for error_trace_mode and function_trace_mode - - 2/17 - ---- -doc/bashref.texi - - changed the `dircategory' as per Karl Berry's suggestion - -doc/texinfo.tex - - update to version of 2003/02/04 from texinfo.org - -support/texi2dvi - - update to version 1.14 from texinfo-4.5 distribution - - 2/20 - ---- -support/config.{guess,sub} - - update to versions of 2002/11/30 - -lib/readline/doc/manvers.texinfo - - renamed to version.texi to match other GNU software - - UPDATE-MONTH variable is now `UPDATED-MONTH' - -lib/readline/doc/{hist,rlman,rluserman}.texinfo - - include version.texi - -doc/version.texi - - new file, with standard stuff matching other GNU distributions - -{doc,lib/readline/doc}/Makefile.in - - include right stuff for `version.texi' - -lib/readline/doc/{rluserman,rlman,hist}.texinfo - - use @copying and @insertcopying and @ifnottex instead of @ifinfo - - add FDL as an appendix entitled `Copying This Manual' - -lib/readline/doc/{rltech,rluser,hstech,hsuser}.texi - - changed the suffix from `texinfo' to `texi' - -lib/readline/doc/{rlman,rluserman}.texinfo, doc/bashref.texi - - include rltech.texi,rluser.texi,hstech.texi, and hsuser.texi - -lib/readline/doc/Makefile.in,doc/Makefile.in - - made appropriate changes for {{rl,hs}tech,{rl,hs}user}.texi - -lib/readline/doc/{rlman,rluserman}.texinfo - - changed the suffix from `texinfo' to `texi' - -lib/readline/doc/hist.texinfo - - renamed to history.texi - - 2/25 - ---- -pathnames.h.in - - moved pathnames.h here so value of DEBUGGER_START_FILE can be - substituted by configure - -aclocal.m4 - - added AM_PATH_LISPDIR for debugger - -configure.in - - added some variables: `bashvers', `relstatus' to use info in more - than one place - - call AM_PATH_LISPDIR - - new option: --enable-debugger, sets DEBUGGER cpp option - - new option with AC_ARG_VAR: DEBUGGER_START_FILE - - make `pathnames.h' a file generated by configure - -Makefile.in - - add rule to create pathnames.h - -builtins/declare.def - - added extra line number and source file name to `declare -F' output - if `--debugger' is used at startup - -builtins/evalfile.c - - call run_return_trap from source_file before returning the result - from _evalfile() - -execute_cmd.c - - call run_return_trap in execute_function before restoring the old - context - -builtins/source.def - - arrange to save and restore DEBUG traps when sourcing files if - function_trace_mode (set -o functrace) is not set - -print_cmd.c - - broke print_for_command, print_select_command, print_case_command - into two functions each: one to print the `header' and one for - the body - - print_cond_command is no longer static - - print_arith_command now takes a WORD_LIST *, since it doesn't - actually do anything with the ARITH_COM it's passed except print - the enclosed WORD_LIST - - print_arith_command is no longer static - -externs.h - - extern declarations for print_{for,select,case}_command_head, - print_cond_command, print_arith_command - -{.,builtins,lib/sh}/Makefile.in - - corrected dependencies on pathnames.h, since it's now created in - the build directory - - 3/5 - --- -lib/glob/glob.c - - handle alloca() failing (it's supposed to return NULL) - - use malloc() (with its attendent bookkeeping) instead of alloca() - in glob_filename() - -subst.c - - check whether shell_glob_filename returns NULL in - glob_expand_word_list - - change parameter_brace_expand_rhs to handle cases like - ${a[2]:=value} by properly creating the array element instead of a - variable named `a[2]' (reported by ) - -variables.c - - change bind_int_variable to use valid_array_reference instead - of looking for `[' - -lib/readline/vi_mode.c - - check for `a' in _rl_vi_done_inserting so the text inserted by an - `a' command can be reinserted with a `.' - -lib/readline/readline.c - - when entering vi insertion mode in readline_internal_setup(), make - sure that _rl_vi_last_key_before_insert is set to `i' so that undo - groups and redo work better (reported by ) - -lib/glob/sm_loop.c - - handle ?(...) in a pattern immediately following a `*', instead of - ignoring the `(' and treating the `?' as a single-char match, as - long as FNM_EXTFLAG is set (reported by ) - -aclocal.m4 - - new test for presence of struct timezone, BASH_STRUCT_TIMEZONE - -config.h.in - - add HAVE_STRUCT_TIMEZONE - -configure.in - - call BASH_STRUCT_TIMEZONE - -execute_cmd.c - - don't try to use `struct timezone' in calls to gettimeofday unless - HAVE_STRUCT_TIMEZONE is defined; use (void *)NULL otherwise - - 3/20 - ---- -execute_cmd.c - - new variable, the_printed_command_except_trap, saves the command - being executed before a trap is executed, for the debugger - -trap.c - - if in debugging mode, let command substitutions and other child - processes inherit the DEBUG and ERR traps if the `functrace' - (which is really a bad name, given this semantic) or `errtrace' - options, respectively, have been set - -shell.c - - local_pending_command renamed to command_execution_string; no longer - static - -variables.c - - new dynamic variable, BASH_COMMAND, set to the command string - currently executing, or the one that caused a trap to execute - (mapped to the_printed_command_except_trap) - - new variable, BASH_EXECUTION_STRING, set to the argument to the - -c invocation option, if the shell was started that way - - 3/22 - ---- -execute_cmd.c - - changed execute_for_command, eval_arith_for_expr, - execute_select_command, execute_arith_command, execute_cond_command, - execute_simple_command to implement new DEBUG trap semantics - for the debugger: if the DEBUG trap commands return a non-zero - status and debugging_mode is non-zero, we skip the command to be - executed - -trap.c - - change run_debug_trap for the debugger: if we're in the debugger - and the DEBUG trap returns 2 while we're in a function or sourced - script, we force a `return' - -shell.c - - new function, start_debugger(), that sources the debugger start file - and turns the debugger on - -builtins/shopt.def - - new settable option, `extdebug', turns on debugging_mode, as if - --debugger had been supplied at invocation (but does not source - debugger startup file) - -trap.c - - make sure that run_exit_trap arranges for `returns' to come back - there, too, so a `return' executed by an `exit' invoked within a - shell function behaves correctly - -support/shobj-conf - - change darwin/MacOS X stanza based on advice from mac os x developers - -lib/sh/mailstat.c - - set the atime member of the synthesized stat struct to 0 if `cur/' - is empty, rather than leaving it undefined - - 3/24 - ---- -builtins/caller.def - - new builtin to provide a call stack for the debugger - -builtins/evalfile.c - - added a second `flags' argument to source_file() - - new flag value for flags argument to _evalfile(): FEVAL_NOPUSHARGS. - If included in flags arg, it means to not manipulate the BASH_ARGV - and BASH_ARGC arrays - -builtins/common.h - - change prototype for source_file() - -builtins/source.def - - add flag value to call to source_file(): set to 1 if we replaced - the positional parameters - - add call to push_args if additional arguments supplied to the - source builtin - - add call to pop_args in maybe_pop_dollar_vars - -execute_cmd.c - - run the debug trap in execute_function so the debugger can stop - before the first command in a function body is executed - - modify subshell_level before executing a builtin or function in a - subshell - - print `for', `select', `case' command heads when set -x is enabled - -print_cmd.c - - `xtrace_print_word_list' now takes an additional flags argument, - which, if non-zero, says to print indirection_level_string() - - new functions to print for, select, and case command heads when - set -x is enabled - - add spaces after `((' and before `))' in xtrace_print_arith_command - -externs.h - - changed extern declaration for xtrace_print_word_list - - new declarations for xtrace_print_{for,case,select}_command_head() - -subst.c - - modify subshell_level when executing a command substitution - - 3/25 - ---- -execute_cmd.c - - use `line_number' in executing_line_number instead of looking into - the current command if it's a simple command; rearrange code to - make this simpler to compile in and out - - need to save and restore value of currently_executing_command around - calls to debug trap and return trap in execute_function - -make_cmd.c - - make sure make_arith_for_command() disposes the WORD_LIST * it is - passed, since nothing else does and it's not used directly - - 3/28 - ---- -Makefile.in - - fixed dependencies for `error.o' on shell.h and version.h -- makes - parallel makes (gmake -j 4) work correctly - -doc/{bash.1,bashref.texi} - - documented all new features added to support the debugger - - 4/1 - --- -lib/sh/shquote.c - - make sure CTLESC and CTLNUL characters are escaped with CTLESC - by sh_double_quote, sh_backslash_quote and - sh_backslash_quote_for_double_quotes - Fixes vulnerability reported by svdb@stack.nl - -shell.h - - new `pipestatus' member of sh_parser_state_t, to save and restore - $PIPESTATUS - -parse.y - - changes to save_parser_state and restore_parser_state to save and - restore $PIPESTATUS - -builtins/read.def - - add a call to word_list_remove_quoted_nulls before assigning the - word list read from standard input to an array variable. Fixes - bug reported by holzhey@ppprs1.phy.tu-dresden.de - - 4/3 - --- -execute_cmd.c - - in execute_null_command, if redirections are supplied, make sure - things like 3 for possible definitions of intmax_t, uintmax_t - (reported by ro@techfak.uni-bielefeld.de) - - 7/30 - ---- -parse.y - - remove checking for `time' reserved word from special_case_tokens(); - use regular mechanism in CHECK_FOR_RESERVED_WORD. This allows `time' - to be aliased. (Reported by Glenn Morris - ) - - 7/31 - ---- -lib/readline/history.h - - extern declaration for history_write_timestamps - -lib/readline/histfile.c - - don't write timestamps to the history file in history_do_write - unless history_write_timestamps is set to non-zero by the application - (set to 0 by default) - -lib/readline/doc/{hstech.texi,history.3} - - document history_write_timestamps - -variables.[ch] - - new special variable function, HISTTIMEFORMAT; special function - sets history_write_timestamps to 1 if HISTTIMEFORMAT is set - - 8/4 - --- -builtins/history.def - - added support for printing time stamps based on the value of the - HISTTIMEFORMAT variable when displaying history entries - -doc/{bash.1,bashref.texi} - - added description of new HISTTIMEFORMAT variable - - 8/5 - --- -config-top.h - - remove /usr/ucb from any default paths - -mailcheck.c - - make_default_mailpath now returns NULL if DEFAULT_MAIL_DIRECTORY - is not defined - - remember_mail_dates now returns if make_default_mailpath returns - NULL - -config-bot.h - - reorganized the sections; provide an explicit placeholder for - builders to #undef any feature defines they don't want that - configure creates for them, like the default mail path - - 8/9 - --- -config.h.in - - add HAVE_REGEX_H, HAVE_REGCOMP, HAVE_REGEXEC for detection of POSIX.2 - regular expression functions - - add COND_REGEXP define to enable and disable the =~ operator for - matching extended regular expressions in [[...]] commands - -configure.in - - new option, --enable-cond-regexp, enables =~ and code to perform - regular expression matching in [[...]] - -config-bot.h - - undef COND_REGEXP if the OS doesn't provide posix regexp support - -doc/bashref.texi - - documnent new --enable-cond-regexp option to configure - - 8/18 - ---- -support/shobj-conf - - support for shared objects on FreeBSD-gnu (from Robert Millan) - - 8/25 - ---- -lib/sh/shmatch.c - - new file, shell interface to posix extended regular expression - matching - -externs.h - - new extern declarations for functions in shmatch.c - -execute_cmd.c - - incorporate code into execute_cond_node that does extended regular - expression matching for the =~ operator - -parse.y - - add `=~' to the list of binary operators accepted by the conditional - command parser - -doc/{bash.1,bashref.texi} - - documented =~ conditional binary operator and the BASH_REMATCH - variable - - 8/27 - ---- -lib/readline/display.c - - take multibyte characters into account when looking for quoted - substrings on which to do completion (fix from jir@yamato.ibm.com) - -lib/readline/util.c - - fix typo in _rl_strpbrk - -lib/readline/rldefs.h - - use function version of _rl_strpbrk in multibyte locales, because - it understands to skip over special characters in multibyte - character sequences - - 8/28 - ---- -jobs.c - - in wait_for, check for window size changes if a job that exits due - to a signal or is stopped was in the foreground, not just if it's - the current job - - 9/10 - ---- -support/config.{guess,sub} - - add support to recognize FreeBSD running on the amd64 - -subst.c - - if the new `fail_glob_expansion' variable is non-zero, globbing that - fails to match anything causes an expansion error - -builtins/shopt.def - - new `failglob' expansion: if enabled, failed globs cause an error - -test/shopt.right - - take `failglob' into account - -doc/{bash.1,bashref.texi} - - documented new `failglob' option and its effects - - 9/12 - ---- -findcmd.c - - fix file_status to treat the mode bits and uid right -- in particular, - don't assume the `other' bits always apply. Bug reported by - ; fix inspired by - -command.h - - new word flag: W_NOCOMSUB, meaning to not perform command - substitution on a word - -subst.c - - new flag for param_expand: PF_NOCOMSUB. If non-zero, $(...) - command substitutions are not expanded, but returned unchanged - - change expand_word_internal to pass through `` command substitutions - unchanged if (word->flags & W_NOCOMSUB) != 0 - - change expand_word_internal to pass PF_NOCOMSUB to param_expand - if (word->flags & W_NOCOMSUB) != 0 - -builtins/shopt.def - - rename set_interactive_comments to set_shellopts_after_change, which - more accurately reflects its purpose - -syntax.h - - add a define for isblank() in case the system doesn't provide one - -jobs.c - - change raw_job_exit_status to understand `pipefail', using the new - `pipefail_opt' variable - -flags.[ch] - - declare pipefail_opt - - reset pipefail_opt to 0 in reset_shell_flags - -builtins/set.def - - add `set -o pipefail' and document it in help output - -doc/{bash.1,bashref.texi} - - document `set -o pipefail' and the effect of the pipefail option - -mksyntax.c,syntax.h - - sh_syntaxtab is no longer `const' - - new generated variable, sh_syntabsiz, set to number of entries in - sh_syntaxtab, written to generated syntax.c - -locale.c - - new function, locale_setblanks(), sets each member of the current - locale's class to have the CSHBRK flag in sh_syntaxtab - - 9/17 - ---- -arrayfunc.c - - change convert_var_to_array to not set array[0] to a NULL value - (if the scalar variable had no value; e.g., after being created - with `local arrayvar') - -lib/readline/display.c - - save and restore the value of prompt_invis_chars_first_line in - rl_{save,restore}_prompt, and reinitialize it to 0 before printing - something in the message area - -lib/readline/bind.c - - new functions: rl_bind_keyseq_if_unbound_in_map(ks, func, kmap); - binds key sequence KS to function FUNC in keymap KMAP, and - rl_bind_keyseq_if_unbound (ks, func); binds key sequence KS to - function FUNC in the current keymap - -lib/readline/readline.h - - extern function declarations for rl_bind_keyseq_if_unbound_in_map and - rl_bind_keyseq_if_unbound - -lib/readline/{readline,terminal}.c - - _rl_bind_if_unbound -> rl_bind_keyseq_if_unbound - -lib/readline/{bind.c,rlprivate.h} - - remove _rl_bind_if_unbound - - 9/18 - ---- -lib/readline/doc/rltech.texi - - document rl_bind_keyseq_if_unbound and - rl_bind_keyseq_if_unbound_in_map - - 9/19 - ---- -lib/readline/bind.c - - new functions rl_bind_key_if_unbound_in_map and - rl_bind_key_if_unbound; analogous to (and implemented in terms of) - keyseq functions - - rl_bind_keyseq_in_map: a new function, equivalent to rl_set_key - (which remains for backwards compatibility); changed callers to - use it - - new function, rl_bind_keyseq, equivalent to rl_bind_keyseq_in_map - with a third argument of _rl_keymap - -lib/readline/readline.h - - extern declarations for rl_bind_key_if_unbound_in_map and - rl_bind_key_if_unbound - - extern declarations for rl_bind_keyseq_in_map and rl_bind_keyseq - -lib/readline/doc/rltech.texi - - document rl_bind_keyseq and rl_bind_keyseq_in_map - -configure.in - - require at least readline-5.0 - -config-bot.h - - define SYS_SIGLIST_DECLARED if it's not defined, but - HAVE_DECL_SYS_SIGLIST is, to deal with differences between - autoconf versions - -bashline.c - - use rl_bind_key_if_unbound_in_map when binding bash keybindings in - initialize_readline(), so inputrc files can override them - - 9/22 - ---- -lib/readline/histsearch.c - - do better bounds checking for history_offset and history_length in - history_search_internal - -builtins/history.def - - in delete_last_history(), make sure we don't leave the history - offset longer than the history length after calling delete_histent - - 9/23 - ---- -jobs.c - - small change to notify_of_job_status so job status messages get - printed even if the shell was started to run `-c command'. The - old behavior was intentional, but I cannot remember why, so we'll - try it the other way for a while (debian bash bug #211693) - - 9/24 - ---- -jobs.c - - slightly modify change from 9/23 so that jobs started to run - command substitutions don't print job status messages - - 9/25 - ---- -lib/readline/search.c - - when reading a non-incremental search string from the terminal, - use a separate undo list rather than chaining it to the undo list - from the rest of the line, since the whole undo list will get - freed when the search string is complete - -lib/readline/readline.h - - changed the defines guarding the stdarg prototype for rl_message to - match what's actually used in display.c, where it's defined - - 9/26 - ---- -[bash-3.0-alpha released] - - 9/29 - ---- -lib/sh/shmatch.c - - fix to build correctly when arrays are not compiled into the shell - -subst.c - - fix command substitution to run any exit trap defined in the - command substitution before returning; the exit trap is not inherited - from the calling shell - -lib/readline/shell.c - - change sh_set_lines_and_columns to free the memory allocated and - passed to setenv(), since setenv is specified by POSIX to allocate - new memory and copy its arguments - -jobs.c - - change logic in make_child so that every child process attempts to - set the terminal's process group to the pipeline's process group - when PGRP_PIPE is defined, just like when it's undefined. This is - reported to fix some tricky synchronization problems on Red Hat - Enterprise Linux 3. Fix from Ernie Petrides . - - 9/30 - ---- -builtins/printf.def - - tescape no longer needs a `trans_squote' argument, since it's the - same as the `sawc' argument. The `sawc' argument now means to do - the %b argument processing if non-null - - fix processing of octal constants for %b arguments (\0 followed by - up to three octal digits) and other escape sequences (\ followed by - up to three octal digits) - - hex constants `\xHHH' are now allowed to contain any positive - number of digits; previously they were restricted to two [removed] - - allow two new escape sequences: \" and \?, for compatibility with - ksh93 and ANSI C - -doc/{bash.1,bashref.texi} - - documented processing that printf performs for arguments to %b - escape sequences - -lib/sh/strtrans.c - - add \" and \? to escape sequences recognized by `echo -e' - - 10/1 - ---- -version.c - - use snprintf instead of sprintf if configure tells us we have it - - 10/3 - ---- -subst.c - - in list_remove_pattern, take into account the fact that one of the - list elements may be NULL, and don't free the result of - remove_pattern() without checking - - in remove_pattern, return savestring(param) if *param == '\0', - since callers expect to free() non-null return values - - 10/4 - ---- -subst.c - - change verify_substring_values to make it clearer that the first - offset deals with array indices and the second deals with numbers - of elements, when doing array subranges with ${a[@]:e1:e2} - -array.c - - change array_subrange to make it explicit that the second offset - argument is a count of the desired number of elements, not an - ending index. This deals with sparse arrays correctly. - - 10/6 - ---- -variables.c - - fix memory leak in assign_in_env - - 10/8 - ---- -subst.c - - in parameter_brace_expand, check that the last characters are `]}' - before checking for ${!array[@]} - -execute_cmd.c,builtins/source.def - - push and pop the args (BASH_ARGV and BASH_ARGC) when executing a - shell function or sourcing a script only when in debugging mode - - 10/11 - ----- -arrayfunc.c - - make sure array_variable_name returns values for the SUBP and LENP - arguments if they're non-null, since callers expect to use them - even if the array subscript is bad - -error.c - - call exit_shell instead of sh_exit from parser_error and - report_error so the right things happen (running exit trap, doing - the right interactive cleanup, etc.) - -lib/readline/complete.c - - new variable, rl_completion_quote_character, set to any quote char - readline thinks it finds before any application completion - function is called - - new variable, rl_completion_suppress_quote, settable by an - application-specific completion function. If set to non-zero, the - completion code does not append a closing quote in append_to_match - -lib/readline/readline.h - - extern declarations for rl_completion_quote_character and - rl_completion_suppress_quote - -bashline.c - - set rl_completion_suppress_quote in command_subst_completion_function - because that would be inserted before any closing "`" or ")", which - is somewhat disconcerting - -lib/readline/doc/rltech.texi - - documented rl_completion_suppress_quote and - rl_completion_quote_character - - 10/13 - ----- -bashhist.c - - use sv_histchars instead of setting history_comment_char directly in - bash_initialize_history so assignments to $histchars made in - ~/.bashrc are honored - - 10/21 - ----- -trap.c - - make sure run_exit_trap sets `running_trap' appropriately - - new variable, trap_saved_exit_value, set to last_command_exit_value - before running any trap commands; available to the rest of the - shell; use trap_saved_exit_value to replace some function-local - variables - -builtins/exit.def - - if the shell is running the exit trap, and no argument is given - to `exit', use trap_saved_exit_value as the exit status instead - of the last command exit value (which could be the previous command - run in the exit trap), as required by POSIX.2 - - 10/25 - ----- -doc/{bash.1,bashref.texi} - - add `alias' to the list of documented `assignment statement' builtins - - 11/1 - ---- -doc/bash.1 - - remove the `.' from the sample $PATH value - -parse.y - - make sure parse_compound_assignment prompts with $PS2 if it reads - a newline while parsing the compound assignment statement. Bug - reported by Stephane Chazelas - - parse_string_to_word_list now takes a new second argument: `int flags' - - new parser state flag: PST_COMPASSIGN; indicates that the shell is - parsing a compound assignment statement - - parse_string_to_word_list turns on PST_COMPASSIGN if `flags' arg - has low bit set - - turn PST_COMPASSIGN on and off in parse_compound_assignment - -externs.h - - change prototype declaration for parse_string_to_word_list - -arrayfunc.c - - change call to parse_string_to_word_list to add new flags arg - -general.c - - assignment() takes a new `flags' second argument - - if `flags' is non-zero, accept `[' as a legal assignment statement - starter character (for parsing compound array assignments) - -general.h - - add new argument to prototype declaration for assignment() - -parse.y,{subst,variables}.c, builtins/{setattr,declare}.def - - change calls to assignment() (parse.y calls with flags == 1 when - parser_state inlcudes PST_COMPASSIGN) - -arrayfunc.c - - in assign_array_var_from_string(), don't treat an expanded word - of the form [ind]=value specially unless the W_ASSIGNMENT flag is - set. This means that words that are the result of expansions but - happen to have the same format as compound assignment statement - words will not be treated as such. For instance - - v='[12]=foobar' - a=( $v ) - - will result in a[0]='[12]=foobar' instead of a[12]=foobar. This - is closer to how `regular' assignment statements are treated and - compatible with ksh93. Bug reported by Stephane Chazelas - -shell.c - - new --protected argument, disables command substitution when used - with --wordexp (like --wordexp, it remains undocumented) - - change run_wordexp to turn on the W_NOCOMSUB flag in each word - to be expanded if protected_mode is set - - 11/7 - ---- -doc/{bash.1,bashref.texi} - - clarified the language concerning inherited signal dispositions and - when traps are run - -support/shobj-conf - - slight changes to the darwin (Mac OS X) stanza for MacOS X 10.3 - (for the readline shared library builds, which shares this script) - -lib/readline/histexpand.c - - change to make `^' behave as equivalent to word one, as csh does, - and as the documentation states - -lib/readline/display.c - - in update_line, make sure to use col_lendiff in all calculations - where the cursor position is concerned (like when calculating - the value of _rl_last_c_pos). Fixes bug reported by Andreas - Schwab - - 11/12 - ----- -trap.c - - make _run_trap_internal catch `return' builtin longjmps and clean - up before longjmping on to where the return was intended to go - (fixes bug with not turning off SIG_INPROGRESS flag when `return' - executed in trap command) - - 11/18 - ----- -builtins/cd.def - - in posix mode, set errno to ENOTDIR if canonicalization fails, - unless the canonicalization functions leave it set to ENOENT - - 11/25 - ----- -make_cmd.c - - in make_simple_command, don't blindly dereference element.redirect - -parse.y - - the list_terminator production now has an `int' value so it can be - used in other grammar productions - - add a rule that makes `time' on a line by itself time a null - command (this is iffy) - - 11/28 - ----- -subst.c - - change the pattern substitution code (${var//pat/rep}) to use the - same pattern expansion function (getpattern()) as the pattern - removal expansions. This has the effect of no longer performing - quote removal on the pattern before trying to match it. This - fixes an incompatibility with ksh93 reported on comp.unix.shell - -nojobs.c - - add replacement function for siginterrupt on the off chance that a - system has posix signals but lacks siginterrrupt - -lib/readline/display.c - - fix from Tim Waugh at Red Hat to speed up inserting characters into - long lines in a UTF-8 environment by optimizing the calculation of - the first difference between old and new lines by checking to see - whether the old line is a subset of the new - - 11/29 - ----- -lib/malloc/stats.c - - break code that opens file (and interprets %p) into separate function - _imalloc_fopen(char *s, char *fn, char *def, char *defbuf, size_t defsiz) - for use by rest of library - - default stats file is now `stats.PID' - -lib/malloc/trace.c - - new function, malloc_set_tracefn (char *s, char *fn), sets tracing - to the file named by FN (with %p interpolated as the pid), using - some default if FN is NULL - -lib/malloc/shmalloc.h - - new extern declaration for malloc_set_tracefn - - 12/4 - ---- -execute_cmd.c - - combined several common strings from do_piping() into one - dup_error() function - -builtins/common.[ch] - - new function, `sh_notbuiltin(s)' prints error message about s not - being a shell builtin - -builtins/{builtin,enable}.def - - call sh_notbuiltin instead of using literal string - -{arrayfunc,expr,error}.c - - use one string variable for `bad array subscript' error message; use - in calls to various error reporting functions - -Makefile.in - - add variables for localedir and the PACKAGE_* variables, auto-set - by configure - -configure.in - - un-cache values for gettext, textdomain, and bindtextdomain if they're - not in libc but in libintl so the right variables get set - -bashintl.h - - add necessary defines for marking strings to be translated using - gettext - -locale.c - - set textdomain and directory in set_default_locale - - don't call textdomain with the value of $TEXTDOMAIN, since we don't - want to override the default domain ("bash") - - don't call bindtextdomain unless default_domain already has a value - - when translating $"..." strings, use dgettext with the script's - default domain (value of $TEXTDOMAIN) - - 12/9 - ---- -builtins/mkbuiltins.c - - include "bashintl.h" in the generated "builtins.c" - -support/{config.rpath,mkinstalldirs} - - new files to support gettext i18n - -ABOUT-NLS - - new readme file for gettext internationalization - -po/{Makefile.in.in,Rules-quot,boldquot.sed,en@boldquot.header,en@quot.header,insert-header.sin,quot.sed,remove-potcdate.sin} -po/{POTFILES.in,bash.pot} - - new files for gettext - -lib/intl - - new directory, with libintl stuff from gettext - -aclocal.m4 - - add m4 files from gettext distribution needed by libintl - -configure.in - - create po/Makefile.in and lib/intl/Makefile in AC_OUTPUT - - add call to AM_GNU_GETTEXT to initialize gettext stuff - -Makefile.in - - use mkinstalldirs instead of mkdirs in the `installdirs' target - - changes for intl/ and po/ subdirectories in build and install - - changes to have libintl linked in, as determined by configure - - changes to have libintl built, just in case it's used (though I'd - rather not) - - 12/10 - ----- -config.h.in - - additional #defines required by the libintl library - - add ENABLE_NLS define for AM_GNU_GETTEXT - - take out defines for HAVE_{BINDTEXTDOMAIN,GETTEXT,TEXTDOMAIN} - -configure.in - - removed old tests for libintl and gettext/textdomain/bindtextdomain - -locale.c - - remove HAVE_GETTEXT code; we have gettext unconditionally now - -bashintl.h - - change to include "gettext.h" and remove the conditional code based - on whether or not gettext is present - - 12/16 - ----- -lib/readline/vi_mode.c - - fix problem with rl_vi_eWord that caused it to skip over the last - character of a word if invoked while point was on the next-to-last - character - - 12/18 - ----- -{arrayfunc,bashhist,bashline,error,eval,execute_cmd,expr,general,input,jobs}.c -{mailcheck,make_cmd,nojobs,pcomplete,pcomplib,print_cmd,redir,shell,sig}.c -{subst,test,trap,variables,version,xmalloc}.c -parse.y -builtins/{common,evalfile,getopt}.c -builtins/{bind,break,caller,cd,complete,declare,enable,exec,exit,fc,fg_bg}.def -builtins/{hash,help,history,jobs,kill,printf,pushd,read,return,set,setattr}.def -builtins/{shift,shopt,source,suspend,type,ulimit,umask}.def -lib/sh/{fmtulong,netopen}.c - - include "bashintl.h" for gettext defines - -Makefile.in - - add `-DBUILDTOOL' to CFLAGS for buildversion.o - -bashintl.h - - if `BUILDTOOL' is defined, define ENABLE_NLS to 0 so we don't have - to compile and link in the gettext stuff - -Makefile.in,lib/sh/Makefile.in,builtins/Makefile.in - - update dependencies on bashintl.h and include/gettext.h - - 12/19 - ----- -{arrayfunc,bashhist,bashline,error,eval,execute_cmd,expr,general,input,jobs}.c -{mailcheck,make_cmd,nojobs,pcomplete,pcomplib,print_cmd,redir,shell,sig}.c -{subst,test,trap,variables,version,xmalloc}.c -builtins/{common,evalfile,getopt}.c -builtins/{bind,break,caller,cd,complete,declare,enable,exec,exit,fc,fg_bg}.def -builtins/{hash,help,history,jobs,kill,let,printf,pushd,read,return,set}.def -builtins/{setattr,shift,shopt,source,suspend,type,ulimit,umask}.def -lib/sh/{fmtulong,netopen}.c -lib/malloc/{malloc,stats,table,watch}.c - - mark up strings in source files for gettext processing - -lib/malloc/imalloc.h - - include "bashintl.h" if SHELL is defined, otherwise make _(x) an - identity define - -lib/malloc/Makefile.in - - add dependencies on ${topdir}/bashintl.h and ${BASHINCDIR}/gettext.h - - 12/21 - ----- -bashline.c - - make sure we index into rl_line_buffer with indexes > 0 in - attempt_shell_completion - - 12/31 - ----- -Makefile.in - - descend into `po' and run make recursively for the various clean - targets - - 1/4 - --- -include/shmbutil.h - - two new macros: BACKUP_CHAR(str, strsize, i), which backs up one - multibyte character in STR starting at index I, and - BACKUP_CHAR_P(str, strsize, p), which backs up one multibyte - character in STR starting at P, which is a char * - - 1/6 - --- -pcomplete.c - - in pcomp_filename_completion_function, use the quote character - readline found (and assigned to rl_complete_quote_character) when - dequoting the filename by a completion call from readline (when - rl_dispatching != 0) - -bashline.c - - ditto for bash_directory_completion_matches - - 1/7 - --- -lib/readline/complete.c - - new variable, rl_completion_found_quote, set to non-zero value if - readline finds what it thinks is quoting in the word to be completed - -lib/readline/readline.h - - extern declaration for rl_completion_found_quote - - 1/8 - --- -lib/readline/doc/rltech.texi - - documented rl_completion_found_quote - -lib/readline/complete.c - - in compute_lcd_of_matches, if it looks like what the user typed was - dequoted before generating filename matches, dequote the user's - text again before figuring out the case-insensitive lcd - - 1/9 - --- -lib/readline/display.c - - fix from Edward Catmur to logic that handles - invisible characters in prompt string. Original code was wrong - about local_prompt_prefix; it gave incorrect results when prompt - contained invisible characters after a line break - - 1/10 - ---- -subst.c - - new function, mb_substring(), does character (possibly multibyte) - oriented rather than strictly byte-oriented substring extraction. - The passed indices, rather than strictly indexing into the string, - indicate character positions that need to be calculated. From - Tim Waugh - - change parameter_brace_substring to use mb_substring if necessary - -included/shmbutil.h - - new define SADD_MBQCHAR_BODY, common code for adding a quoted - (preceded by CTLESC) multibyte character to an accumulating string - in the subst.c expansion code - -subst.c - - use SADD_MBQCHAR_BODY in expand_word_internal - - new static function, mb_getcharlens, allocates and returns an array - of character lengths for (possibly multibyte) characters in the - argument string - - change pattern matching operations to use while loops instead of - for loops to handle multibyte characters better (no more simple - increment or decrement) - - change pattern matching operations to use multibyte character - operations instead of simple increments and decrements. Don't - use BACKUP_CHAR_P -- use the mblen array instead, because that - avoids the N**2 behavior of having to count from the beginning - of the string each time you want to back up one character. Changes - to remove_pattern and match_pattern - - 1/12 - ---- -lib/readline/display.c - - make expand_prompt count multbyte characters in the prompt string - by using _rl_find_next_mbchar (and copying possibly more than one - byte) instead of a simple increment and single byte copy - - 1/13 - ---- -lib/readline/display.c - - expand_prompt takes a new reference argument -- it returns - the actual count of (possibly multibyte) characters displayed - on the screen - - don't short-circuit in expand_prompt unless we're not going to - be using any multibyte characters - - change calls to expand_prompt to pass an argument for the - number of physical characters the prompt occupies - (prompt_physical_chars) - - initialize `lpos' (the physical cursor position) from - prompt_physical_chars in rl_redisplay - -lib/readline/mbutil.c - - in _rl_find_prev_mbchar_internal, if mbrtowc returns -1 or -2, and - we assume that the character is a single-byte char, make sure we - update `prev' so it doesn't get lost. Fixes problems encountered - when a non-ascii char is the last char on the line and we're moving - back past it with ^B, and other display problems caused by the same - situation - - 1/15 - ---- -lib/readline/doc/rltech.texi - - document RL_PROMPT_START_IGNORE and RL_PROMPT_END_IGNORE in the - description of rl_expand_prompt() - - 1/20 - ---- -bashline.c - - in initialize_readline, make sure M-C-j and M-C-m are still bound to - vi-editing-mode before unbinding them -- they may have been rebound - in an inputrc - -variables.c - - in unbind_variable, unset attributes other than `local' and exported - (if the variable came from a temporary environment) when unsetting a - local variable inside a function - - 1/21 - ---- -configure.in - - add libintl build directory to the list of include directories if - it's being built (using INTL_BUILDDIR) - -Makefile.in,{builtins,lib/{sh,malloc}}/Makefile.in - - substitute LIBBUILD as ${BUILD_DIR}/${LIBSUBDIR} - - define INTL_BUILDDIR as ${LIBBUILD}/intl - -{builtins,lib/sh}/Makefile.in - - make sure INTL_INC is added to the list of include directories - - make sure INTL_LIBSRC is defined with the correct value - -{configure,Makefile,{builtins,lib/sh}/Makefile}.in - - substitute LIBINTL_H as ${INTL_BUILDDIR}/libintl.h - -Makefile.in,builtins/Makefile.iin - - all files depending on bashintl.h also depend on ${LIBINTL_H} - (which may be empty) - -Makefile.in - - make a rule telling how to build lib/intl/libintl.h if necessary - - 1/24 - ---- -builtins/read.def - - make sure that the array name supplied as an argument to -a is a - valid identifier - -parse.y - - make the \W expansion abbreviate $HOME with a ~ (seems to be more - useful) - -doc/{bash.1,bashref.texi} - - document new behavior of \W - -subst.c - - make sure parameter_brace_expand_rhs uses the first character of - $IFS when making the string to return from the expanded word - (which, in the case of "$@" or $@, contains multiple words that - need to be separated) - - 1/25 - ---- -builtins/common.c - - change get_job_spec to make `%' by itself or an empty argument - return NO_JOB - -jobs.h - - new possible value for a job spec return value: BAD_JOBSPEC - (for syntactically invalid specs, like the empty string) - -shell.c - - in open_shell_script, check to see whether or not we can find and - open the filename argument before setting dollar_vars[0] or - manipulating BASH_SOURCE, so the error messages come out better - -subst.c - - in string_list_internal, short-circuit right away to savestring() - if the list only has a single element - - 1/28 - ---- -lib/readline/rltypedefs.h - - new set of typedefs for functions returning char * with various - arguments (standard set) - -lib/readline/complete.c - - new function pointer, rl_completion_word_break_hook, called by - _rl_find_completion_word, used to set word break characters at - completion time, allowing them to be position-based - -lib/readline/doc/rltech.texi - - documented rl_completion_word_break_hook - -lib/readline/kill.c - - added new rl_unix_filename_rubout, which deletes one filename - component in a Unix pathname backward (delimiters are whitespace - and `/') - -lib/readline/readline.h - - extern declaration for rl_unix_filename_rubout - -lib/readline/funmap.c - - new bindable readline command `unix-filename-rubout' - -lib/readline/doc/{readline.3,rluser.texi},doc/bash.1 - - documented `unix-filename-rubout' - - 1/29 - ---- -lib/readline/histexpand.c - - change history_tokenize_internal to handle non-whitespace delimiter - characters by creating separate fields (like the shell does when - splitting on $IFS) - - 1/30 - ---- -lib/glob/xmbsrtowcs.c - - new function, xdupmbstowcs, for convenience: calls xmbsrtowcs - while allocating memory for the new wide character string - - some small efficiency improvments to xmbsrtowcs - -include/shmbutil.h - - extern declaration for xdupmbstowcs - -lib/glob/strmatch.h - - include config.h for definition of HANDLE_MULTIBYTE - - remove the HAVE_LIBC_FNM_EXTMATCH tests - - new extern declaration for wcsmatch(whchar_t *, wchar_t *, int) - -configure.in - - remove call to BASH_FUNC_FNMATCH_EXTMATCH; it's no longer used - -lib/glob/smatch.c - - simplify xstrmatch() by using xdupmbstowcs() instead of inline code - -lib/glob/glob.c - - modify mbskipname() to avoid the use of alloca - - simplify mbskipname() by using xdupmbstowcs() instead of inline code - - simplify glob_pattern_p() by using xdupmbstowcs() instead of - inline code - - fix memory leak in wdequote_pathname - - simplify wdequote_pathname() by using xdupmbstowcs() instead of - inline code - -lib/glob/strmatch.c - - new function, wcsmatch(), `exported' wide-character equivalent of - strmatch() - -subst.c - - old match_pattern is now match_upattern - - match_pattern now either calls match_upattern or converts - mbstrings to wide chars and calls match_wpattern - - match_upattern reverted to old non-multibyte code - - new function: match_pattern_wchar, wide character version of - match_pattern_char - - 2/1 - --- -subst.c - - old remove_pattern is now remove_upattern - - remove_upattern reverted to old non-multibyte code (pre-Waugh patch) - - new multibyte version of remove_pattern: remove_wpattern - - remove_pattern now calls either remove_upattern or converts a - multibyte string to a wide character string and calls - remove_wpattern - - new function, wcsdup, wide-character version of strdup(3) - - 2/4 - --- -print_cmd.c - - temporarily translate a >&filename redirection from - r_duplicating_output_word to r_err_and_out (as the expansion code - in redir.c does) so it prints without a leading `1' (file - descriptor) - - 2/5 - --- -aclocal.m4 - - add a check for wcsdup to BASH_CHECK_MULTIBYTE - -config.h.in - - add HAVE_WCSDUP define - - 2/9 - --- -builtins/shift.def - - fix a call to sh_erange that possibly dereferences a NULL pointer - - 2/12 - ---- -general.c - - start at a general set of file property checking functions: - file_isdir(), file_iswdir() (is writable directory) - -general.h - - extern declarations for new functions - -lib/sh/tmpfile.c - - use file_iswdir() to make sure the temporary directory used for - here documents and other temp files is writable in get_sys_tmpdir() - - 2/17 - ---- -bashline.c - - fix conditional binding of emacs-mode M-~ -- there is a default - binding for it (rl_tilde_expand), so a straight call to - rl_bind_key_if_unbound_in_map doesn't do the right thing - - 2/27 - ---- -[bash-3.0-beta1 released] - - 2/29 - ---- -subst.c - - fixed expansion so referencing $a, when a is an array variable - without an element assigned to index 0, exits the shell when - `-u' is enabled - -expr.c - - make the exponentiation operator (**) associative, so things like - 2**3**4 work right (change `if' to `while') - - 3/3 - --- -lib/sh/strftime.c - - SCO Unix 3.2, like Solaris, requires that the system's `timezone' - variable be declared as long - -lib/readline/{bind,histfile,input,parens}.c - - changes for Tandem (including `floss.h' (?)) - - 3/4 - --- -subst.c - - change param_expand to quote the entire expanded string instead - of just the escape characters if the expansion appears between - double quotes or in a here-document (for simple variable expansions - or expansions of positional parameters) - - 3/8 - --- -subst.c - - analogous changes to parameter_brace_expand_word to fix the same - quoting problem as on 3/4; fix callers to understand that the - value returned might be quoted now and should be dequoted if - necessary - - add a `quoted' argument to get_var_and_type, change callers - - change today's fix and fix from 3/4 to not call quote_string if the - value is "" (because quote_string turns that into CTLNUL\0) - - 3/9 - --- -builtins/cd.def - - resetpwd() now takes a `caller' argument so it can be used by pwd - as well as cd - - change pwd_builtin to call resetpwd() if sh_physpath() fails to - return a valid pathname - - 3/14 - ---- -expr.c - - reworked exp0 and readtok() to make post-increment and post-decrement - into real tokens, which may be separated from their accompanying - variables by whitesapce - - made analogous changes to readtok() to make pre-increment and - pre-decrement work when separated from their accompanying identifier - by whitespace - - 3/18 - ---- -lib/readline/misc.c - - in rl_maybe_unsave_line, don't force rl_replace_line to clear - the undo_list, since it might point directly at an undo list - from a history entry (to which we have no handle) - - 3/19 - ---- -lib/readline/display.c - - rl_save_prompt and rl_restore_prompt now save and restore the value - of prompt_physical_chars - - set prompt_physical_chars in rl_redisplay when expand_prompt has - not been called (e.g., when rl_display_prompt is set and is not - equal to rl_prompt, like when searching) - -lib/readline/histexpand.c - - don't call add_history in history_expand if the `:p' modifier is - supplied; leave that to the calling application. This means that - `history -p', for example, will not add anything to the history - list (as documented), nor will history expansions invoked by - emacs-mode M-C-e line editing - -config-bot.h - - check whether HAVE_DECL_SYS_SIGLIST is defined to 1 rather than just - defined, to work around newer versions of autoconf defining it to 0 - -config.h.in - - change default status of HAVE_MALLOC to #undef instead of #define - -bashhist.c - - extern declarations for rl_done and rl_dispatching - - don't call re_edit from pre_process_line unless rl_dispatcing is zero, - so we don't call it from something like shell-expand-line - - change pre_process_line to add an expanded history specification - that returned `print only' to the history list, since history_expand - no longer does it (and, when using readline, do it only when - rl_dispatching is zero) - - 3/22 - ---- -config.h.in,aclocal.m4 - - change bash-specific functions that look in struct dirent to define - HAVE_STRUCT_DIRENT_xxx, like AC_CHECK_MEMBERS does (though the - functions are otherwise the same) - - new function, BASH_STRUCT_DIRENT_D_NAMLEN, define - HAVE_STRUCT_DIRENT_D_NAMLEN if struct dirent has a `d_namlen' member - -configure.in - - call BASH_STRUCT_DIRENT_D_NAMLEN - -include/posixdir.h - - use new and renamed HAVE_STRUCT_DIRENT_D_xxx defines - - 4/7 - --- -builtins/cd.def - - ensure that we print out a non-null pathname after getting a - directory from CDPATH and canonicalizing it (e.g., if the result - exceeds PATH_MAX in length and the_current_working_directory is - set to NULL) - - 4/12 - ---- -print_cmd.c - - new function to print out assignment statements when `set -x' has - been enabled: xtrace_print_assignment - -externs.h - - extern declaration for xtrace_print_assignment - - 4/13 - ---- -{subst,variables}.c - - call xtrace_print_assignment instead of using inline code - -jobs.c - - if turning on job control when it was previously off, set - pipeline_pgrp to 0 in set_job_control so make_child puts - subsequent children in their own process group - - 4/14 - ---- -general.c - - new function, legal_alias_name, called to decide whether an - argument to add_alias is a valid alias name -- essentially any - character except one which must be quoted to the shell parser - and `/' - -general.h - - new extern declaration for legal_alias_name - -builtins/alias.def - - `unalias' now returns failure status if no NAME arguments are - supplied and -a is not given - - call legal_alias_name to make sure alias name is valid before - calling add_alias from alias_builtin - - 4/19 - ---- -include/shmbutil.h - - include for definition of HANDLE_MULTIBYTE rather than - duplicating logic - - 4/20 - ---- - -doc/{bash.1,bashref.texi} - - make sure $0 is consistently referred to as a `special parameter' - - document which characters are now not allowed in alias names - - 4/23 - ---- - -builtins/{jobs,kill,wait}.def - - removed requirement that job control be enabled to use job control - notation, as SUSv3 implies - -subst.c - - based on a message from David Korn, change param_expand to not call - string_list_dollar_star if the only quoting is Q_HERE_DOCUMENT -- - quoted here documents are like double quoting, but not exactly - - analogous changes to list_remove_pattern and pos_params - - 4/24 - ---- -lib/readline/doc/rluser.texi - - fix error in description of emacs-mode C-xC-e command (uses $VISUAL - instead of $FCEDIT) - - 4/28 - ---- -support/bashbug.sh - - integrate a patch from Stefan Nordhausen - that reduces race conditions - by using a temporary directory inside $TMPDIR and creating the - temp files in that - - 4/30 - ---- -builtins/common.c - - use pathconf(".", _PC_PATH_MAX) where available to size the argument - to getcwd() rather than using a straight PATH_MAX - -builtins/cd.def - - if get_working_directory fails and returns null (causing resetpwd - to return NULL), use set_working_directory to set $PWD to the - absolute pathname for which chdir just succeeded - - 5/1 - --- -lib/readline/vi_mode.c - - in rl_vi_change_to, call _rl_vi_set_last with rl_numeric_arg instead - of `last', since they're equal at call time and rl_vi_domove can - change rl_numeric_arg (which vi apparently updates). Fixes redo bug - of `c2....' reported by Marion Berryman - - 5/4 - --- -parse.y - - fix decode_prompt_string to properly deal with strftime() returning 0 - - 5/6 - --- -variables.c - - in make_local_array_variable, return an already-existing local array - variable immediately rather than creating a new array (causing a - memory leak) - - 5/8 - --- -lib/readline/vi_mode.c - - change rl_vi_domove to set rl_explicit_arg before calling - rl_digit_loop1 so that multi-digit numeric arguments work right - - _rl_vi_last_command is no longer static - -lib/readline/rlprivate.h - - new extern declaration for _rl_vi_last_command - -lib/readline/text.c - - change rl_newline to only call _rl_vi_reset_last if the last command - (_rl_vi_last_command) is not a text modification command. This lets - the last-command and last-argument work across command lines - - 5/13 - ---- -builtins/common.c - - use getcwd(0,0) rather than providing a fixed pathname with a fixed - length (PATH_MAX) so getcwd() will allocate sufficient memory - -aclocal.m4 - - change BASH_FUNC_GETCWD to check whether or not getcwd(0,0) will - allocate memory for the returned value -- nobody implements that - and getcwd-via-popen, so it should capture the old test as well - - 5/27 - ---- - -builtins/trap.def - - the historical behavior of assuming that a signal's handling should - be set to its original disposition is only in effect if a single - argument is given, otherwise the first argument is assumed to be a - command to execute - - when in posix mode, if trap gets a single argument, display an - error message and return EX_USAGE - - change the help message and usage string to better explain trap's - behavior - -doc/{bash.1,bashref.texi} - - describe the new default behavior when the first argument is a - signal spec - - note that signal names are case insensitive and the SIG prefix is - optional in arguments to `trap' - - note that signal name arguments to `kill' are case-insensitive - -lib/readline/display.c - - make sure rl_on_new_line_with_prompt sets rl_display_prompt to - rl_prompt (just to make sure it's set) - - have rl_on_new_line_with_prompt use local_prompt if it's set - - 6/2 - --- -subst.c - - in string_extract_double_quoted, cope with extract_delimited_string - returning NULL, as it can when attempting completion on an unclosed - command substitution - - 6/24 - ---- -lib/readline/complete.c - - change print_filename to add a `/' to listed directory names if - `mark-directories' has been enabled - -builtins/umask.def - - make sure that the mask passed to parse_symbolic_mode has all but - the operative low eight bits masked off, to avoid complementing - all 0s to -1, which is the error return code. This makes things - like `a=rwx' and `ugo=rwx' work and turn off the umask - - 6/26 - ---- -builtins/getopts.def - - when `getopts' reaches the end of options, unset OPTARG before - returning EOF. In response to a bug report from Apple - -configure.in - - when cross-compiling, don't set CPPFLAGS_FOR_BUILD and - LDFLAGS_FOR_BUILD from CPPFLAGS and LDFLAGS, respectively, since - those are for the target instead of the build platform (report - from robert@schwebel.de) - -shell.c - - a shell whose standard error (but not standard output) is directed - to a terminal should be interactive, according to POSIX/SUS. This - means that sh > sh.out will start an interactive shell. Bug report - from llattanzi@apple.com - -doc/{bash.1,bashref.texi} - - change mention of standard output to standard error in definition - of interactive shell - -lib/readline/vi_mode.c - - new convenience function, rl_vi_start_inserting, calls - _rl_vi_set_last to save the last textmod command state and then calls - rl_vi_insertion_mode to enter insert mode - - change functions to use rl_vi_start_inserting - -lib/readline/readline.h - - extern declaration for rl_vi_start_inserting - -bashline.c - - new function for vi-mode completion, bash_vi_complete. Does - filename expansion as POSIX specifies, unlike the default readline - bindings (which don't know about globbing). Bound to `\', `*', - and `=' in vi command keymap. Internals very similar to - rl_vi_complete; just calls bash glob expansion functions - -lib/readline/vi_mode.c - - change rl_vi_change_char so that an entire change is a single - undoable event, rather than each individual change in a [count]r - command - - fix rl_vi_change_char so that replacing characters up to EOL works - rather than generating rl_ding - - fix rl_vi_change_case so that replacing characters up to EOL works - rather than generating rl_ding - - 6/28 - ---- -builtins/echo.def - - call clearerr(stdout) before writing anything and testing its - failure or success - - 6/29 - ---- -bashline.c - - only set rl_explicit_arg in bash_glob_complete_word if readline is - in emacs mode; let bash_vi_complete take care of setting it in vi - mode - - fix bash_vi_complete to only set rl_explicit_arg unless the posix - conditions are met: no globbing characters in the vi `bigword' - being completed - - 6/30 - ---- -[bash-3.0-rc1 released] - - 7/1 - --- -lib/readline/complete.c - - make sure `extension_char' is initialized before deciding whether - or not the append a `/' to a possible completion when visible-stats - is not enabled - - 7/2 - --- -subst.c - - fix a boundary overrun in string_extract_double_quoted that could - occur when the word completion code attempts to expand an incomplete - construct (like a quoted unclosed command substitution) - - 7/4 - --- -subst.c - - set tempenv_assign_error to non-zero if an assignment to the - temporary environment fails for some reason (e.g., attempted - assignment to a readonly variable) - -execute_cmd.c - - fix execute_simple_command to force a non-interactive shell in - POSIX mode to exit if an assignment to the temporary environment - preceding a special builtin fails (bug report from - llattanzi@apple.com) - - 7/5 - --- -bashline.c - - in bash_directory_completion_hook, don't perform word expansions - if the filename appears to have been completed from the file - system rather than typed in by the user. Bug reported by Tim - Waugh - - 7/7 - --- -lib/readline/misc.c - - if _rl_maybe_save_line is being asked to save a line other than - what's already saved, free up the current saved line and save the - current contents of rl_line_buffer. Bug reported by - llattanzi@apple.com - - 7/12 - ---- -lib/readline/input.c - - do better EOF detection in rl_gather_tyi -- if a read returns 0 when - the fd is in non-blocking mode, stuff an EOF into the input stream - (reported by mattias@virtutech.se) - - 7/13 - ---- -lib/readline/vi_mode.c - - make sure rl_vi_put honors `count' arguments and yanks things - multiple times if requested - - 7/16 - ---- -builtins/umask.def - - make sure that the `who' part of the umask symbolic mode argument - defaults to `a' if it's missing - -flags.c - - make sure that maybe_make_restricted only gets called after the - shell is initialized, so `bash -r' doesn't result in inappropriate - error messages - -[bash-3.0 frozen] - - 7/27 - ---- -doc/Makefile.in - - small fixes - -[bash-3.0-released] - - 7/28 - ---- -array.c - - in array_insert(), make sure the value to be added is non-NULL before - calling savestring() on it - -builtins/reserved.def - - fix description of `CDPATH' - -lib/readline/display.c - - when expanding a prompt that spans multiple lines with embedded - newlines, set prompt_physical_chars from the portion after the - final newline, not the preceding portion. Bug reported by - "Ralf S. Engelschall" - -make_cmd.c - - explicitly declare `lineno' in function prologue for make_case_command - -builtins/evalfile.c - - include `trap.h' for declaration for run_return_trap - -bashline.c - - fix a `return' without a value in enable_hostname_completion - -general.c - - include test.h for extern declaration for test_eaccess - -externs.h - - add declaration for zcatfd - -tests/{history,histexp}.tests - - unset HISTFILESIZE to avoid problems if a value of 0 is inherited - from the environment - - 7/30 - ---- -bashline.c - - small changes to glob_expand_word to perform tilde expansion before - attempting globbing - -builtins/Makefile.in - - fix the install-help target to not cd into the `helpfiles' - subdirectory, so a value of $INSTALL_DATA containing a relative - pathname (e.g., .././support/install.sh) remains valid - - 7/31 - ---- -subst.c - - new function, mbstrlen(s), returns length of a multibyte character - string - -include/shmbutil.h - - new macro, MB_STRLEN(s), calls mbstrlen or STRLEN as appropriate - -builtins/trap.def - - small change so that a first argument that's a valid signal number - (digits only -- no symbolic names) will be treated as a signal and - reverted back to the original handling disposition. Fixes debian - complaints - -subst.c - - call MB_STRLEN instead of STRLEN where appropriate in - parameter_brace_expand_length to handle multibyte characters properly - - call MB_STRLEN instead of strlen in verify_substring_values so that - negative substrings of strings with multibyte chars work properly - - 8/1 - --- -jobs.c - - describe_pid needs to write to stderr, not stdout (POSIX) - - start_job, since it's only used by builtins (fg/bg), needs to write - its output to stdout, not stderr (POSIX) - -sig.c - - add an `orig_flags' member to struct terminating_signal so the - original signal handling flags (SA_RESTART, etc.) can be preserved - on POSIX systems - - make sure to preserve the signal flags state in - initialize_terminating_signals and reset them for child processes - in reset_terminating_signals - -builtins/fc.def - - fixed an off-by-one error that caused `fc -l' to list one too many - history entries - - in posix mode, `fc' should not list any indication as to whether or - not history lines have been modified (POSIX) - - when in posix mode, the default editor for `fc' should be `ed' (POSIX) - -doc/bashref.texi - - updated the description of `trap' behavior when given a first - argument that is a valid signal number - - noted that `fc -l' won't indicate whether a history entry has been - modified if the shell is in posix mode - -builtins/command.def - - fixed bug: `command -v' is supposed to be silent if a command is not - found - -builtins/hash.def - - `hash' should print its `hash table empty' message to stderr - -lib/readline/misc.c - - back out 7/7 change to _rl_maybe_save_line; it breaks emacs-mode ^P - -general.c - - changed base_pathname so that it will return reasonable results for - non-absolute pathnames -- this is what is intended by all of its - callers - -arrayfunc.c - - fix array_variable_part to return NULL if it finds an invisible - variable in the hash table. Fixes seg fault caused by referring to - unset local variable using array notation - -{locale,variables}.c - - support LC_TIME as a special locale variable so HISTTIMEFORMAT tracks - the current locale - - 8/2 - --- -variables.c - - fixed small memory leak in makunbound() when a local array variable - is unset. Fix from William Park - -lib/readline/display.c - - fixed a problem when computing the number of invisible characters on - the first line of a prompt whose length exceeds the screen width - (should only happen when invisible characters occur after the - line wrap). Bug reported by agriffis@gentoo.org - -builtins/command.def - - `command -V' passes a new flag, CDESC_ABSPATH, which means to convert - to an absolute path - -builtins/type.def - - in posix mode, `type' and `command -v/-V' should not report - non-executable files, even if the execution code will attempt to - run them. Other posix shells do this - -doc/bashref.texi - - add note to POSIX Mode section describing behavior of type and command - when finding a non-executable file - -execute_cmd.c - - force extended_glob to 1 before calling binary_test in - execute_cond_node so that the right extended pattern matching gets - performed - - 8/3 - --- -braces.c - - make sure lhs[0] and rhs[0] are cast to `unsigned char' so chars - with values > 128 are handled correctly - -builtins/printf.def - - change bexpand() and printstr() to handle strings with a leading - '\0' whose length is non-zero, since that's valid input for the - `%b' format specifier - -subst.c - - fix a couple of instances of find_variable that didn't check the - result for an invisible variable - -variables.c - - BASH_ARGC, BASH_ARGV, BASH_SOURCE, BASH_LINENO no longer created as - invisible vars - -pcomplete.c - - make sure COMP_WORDS is not invisible when bind_comp_words returns - - ditto for COMPREPLY in gen_shell_function_matches - - 8/4 - --- -braces.c - - fix problem where ${ was ignored but did not increment the open - brace count. Bug reported by Tim Waugh - -variables.c - - if make_local_variable finds a variable in the correct context in - the right variable scope, make sure it's not invisible before - returning it - - 8/5 - --- -builtins/trap.def - - fixed usage message to show `action' as not optional, though it - actually is when not in posix mode (for a single argument) - - 8/7 - --- -configure.in - - kfreebsd-gnu has had its sbrk() problems fixed, and no longer needs - to be configured --without-gnu-malloc - -lib/readline/vi_mode.c - - in rl_vi_search, free any saved history line before starting the - search, so failure leaves you at that line, not the last line in - the history (assuming the current line is not the last history line). - Fix from llattanzi@apple.com to replace fix of 7/7 - - 8/9 - --- -support/Makefile.in - - renamed `mostly-clean' target to `mostlyclean' - - 8/11 - ---- -lib/readline/vi_mode.c - - make same change for EOL in multibyte character case of - rl_vi_change_char - - 8/12 - ---- -subst.c - - in verify_substring_values, fix off-by-one error checking bounds of - `offset', esp. in array values (e.g., getting the highest element - of an array) - - 8/16 - ---- -aclocal.m4 - - change BASH_CHECK_DEV_FD to make sure that file descriptors > 2 are - accessible via /dev/fd, unlike FreeBSD 5.x - -lib/sh/strftime.c - - make sure `zone' is initialized with gettimeofday before it is used - - work around HPUX lack of `altzone' and differing definitions of - `timezone' - -lib/malloc/malloc.c - - internal_memalign and memalign now take a `size_t' as their first - argument, which seems to be the prevailing standard - -lib/malloc/{malloc.c,shmalloc.h} - - change sh_memalign to take a `size_t' as its first argument - -builtins/echo.def - - if posixly_correct and xpg_echo are both set, don't try to interpret - any arguments at all, as POSIX/XOPEN requires (fix inspired by Paul - Eggert) - -doc/bashref.texi - - amend description of bash posix mode to include new echo behavior - -builtins/fg_bg.def - - allow bg to take multiple job arguments, as posix seems to specify, - placing them all in the background, returning the status of the last - one as the status of `bg' - -lib/readline/vi_mode - - fix _rl_vi_change_mbchar_case (multibyte-char version of `~' - command) to have the right behavior at EOL -- handle case where vi - mode backs up at the end of the line - - 8/18 - ---- -array.c - - check for an empty array in array_rshift before shifting elements - and adjusting max_index - - check for null array in array_subrange - -jobs.c - - fix raw_job_exit_status to not ignore exit status of the last - process in the pipeline when `set -o pipefail' is enabled - - 8/19 - ---- -lib/readline/mbutil.c - - make sure _rl_find_next_mbchar_internal has a valid multibyte - character before it checks whether or not it's a zero-width - wide character and adjusts point accordingly - - 8/24 - ---- -bashline.c - - new function, bash_directory_expansion, duplicates the expansions - performed on the directory name by rl_filename_completion_function - - call bash_directory_expansion in command_word_completion_function - if we decide we're doing tilde expansion (and any other - canonicalization) on the directory name being completed - - 8/25 - ---- -configure.in - - use new-style AC_CHECK_HEADER to check for sys/ptem.h (which requires - sys/stream.h). The correct checks are in the code, but autoconf - complains if sys/stream.h is not included, rather than simply - checking for the header's presence - - 8/26 - ---- -builtins/hash.def - - fix a bug that prevented `hash -d' from working right (as soon as - hash removed a command from the table, the bug caused it to be added - right back) - - 8/27 - ---- -doc/{bash.1,bashref.texi} - - explicitly note that conditional primaries that operate on files - operate on the targets of symbolic links rather than the links - themselves - - 8/30 - ---- -lib/readline/display.c - - fix multibyte calculation of `physchars' in prompt expansion, to - handle double-width multibyte characters correctly - - changes to rl_redisplay to handle prompts longer than the screenwidth - 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 - - 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 - - 9/13 - ---- -variables.c - - make BASH_ARGC, BASH_ARGV, BASH_LINENO, and BASH_SOURCE - non-unsettable, since the shell uses those values internally - -expr.c - - make exponentiation right-associative, as is apparently correct - - 9/16 - ---- -arrayfunc.c - - make sure convert_var_to_array marks the environment as needing - recreation if the converted variable was exported - - 9/17 - ---- -braces.c - - mark ${ as introducing an additional level of braces only if it's - not in a quoted string -- quoted strings are handled before brace - matching is done - -parse.y - - fixed an obscure problem in history_delimiting_chars where the `in' - in a case statement could have a semicolon added after it, if the - `case word' was on a previous line - -support/config.guess - - support for newest versions of tandem non-stop kernel - -lib/readline/display.c - - in compute_lcd_of_matches, explicitly cast `text' to `char *' before - passing it to rl_filename_dequoting_function - -lib/readline/terminal.c - - bind the key sequence sent by the keypad `delete' key to delete-char - (same as ^D in emacs mode) - -builtins/ulimit.def - - in print_all_limits, don't print anything if get_limit returns - -1/EINVAL, indicating that the kernel doesn't support that particular - limit - - add -i (max number of pending signals), -q (max size of posix msg - queues), -x (max number of file locks) for systems (Linux) that - support them - -doc/{bash.1,bashref.texi} - - fix description of correspondence between FUNCNAME, BASH_LINENO, - and BASH_SOURCE indices in description of BASH_LINENO - - 9/18 - ---- -lib/sh/shquote.c - - don't quote CTLESC and CTLNUL with CTLESC in sh_backslash_quote, as - long as the resultant string never gets sent to the word expansion - functions without going through the shell parser - -externs.h - - add extern declarations for strnlen and strpbkrk from lib/sh - -subst.[ch] - - changes to handle case where IFS consists of multibyte characters. - Changed: string_extract_verbatim, split_at_delims, - string_list_dollar_star, string_list_dollar_at, list_string, - get_word_from_string, setifs - - 9/19 - ---- -mailcheck.c - - change file_mod_date_changed to reset the cached mail file data if - the file size drops to zero - -lib/readline/complete.c - - change append_to_match so that a non-zero value for - rl_completion_suppress_append will cause no `/' to be appended to a - directory name - -bashline.c - - experimental change to suppress appending a slash for a completed - filename that is found in PATH as well as a directory in the current - directory under certain circumstances: a single instance found in - $PATH when `.' is not in $PATH, and multiple instances found in the - $PATH, even when `.' is in the $PATH - - 9/24 - ---- -command.h - - new word flag: W_ASSIGNRHS, means word is rhs of assignment statement - - new word flag: W_NOTILDE, means word is not to be tilde expanded - - new word flag (internal): W_ITILDE, means the next character is a - tilde that should be expanded - -general.c - - new set of tilde suffixes for use when parsing the RHS of an - assignment statement and =~ should not be subject to tilde expansion - - if ASSIGN_P argument to bash_tilde_expand is 2, use tilde prefixes - for parsing RHS of assignment statement - -general.[ch] - - new function bash_tilde_find_word, drop-in replacement for - tilde_find_word - -subst.c - - call bash_tilde_expand with secord argument of 2 when expanding rhs - of an assignment statement, so tildes after second and subsequent - `=' in an assignment are not expanded - - new function, expand_string_assignment, to expand the rhs of an - assignment statement - - add `~' to EXP_CHAR, the characters that will cause the word - expansion functions to be called - - move tilde expansion into expand_word_internal instead of many - different calls to bash_tilde_expand scattered across different - functions. NOTE: This means that double quotes surrounding a - {paramOPword} expansion will cause tilde expansion to NOT be - performed on `word'. I think this is right, what POSIX specifies, - and consistent with the behavior of other characters in the rhs - -execute_cmd.c - - take out calls to bash_tilde_expand before calling word expansion - functions - - 9/26 - ---- -execute_cmd.c - - make sure to call UNBLOCK_CHILD before returning on a pipe creation - failure in execute_pipeline - - 9/27 - ---- -variables.c - - change get_bash_command to deal with the_printed_command_except_trap - being NULL - -execute_cmd.c - - fix execute_simple_command to deal with the_printed_command being - NULL when assigning to the_printed_command_except_trap -- fixes - seg fault in savestring() - -parse.y - - change the parser so that the closing `)' in a compound variable - assignment delimits a token -- ksh93 does it this way - -doc/{bash.1,bashref.texi} - - change description of tilde expansion to note that expansion is - attempted only after the first =~ in an assignment statement - -builtins/declare.def - - when assigning to an array variable with declare -a x=(...), make - sure the last character in the rhs of the variable assignment is - `)', not just that it appears somewhere - - 9/28 - ---- -command.h - - add a `W_NOEXPAND' flag to inhibit all expansion except quote removal - - add a `W_COMPASSIGN' flag to denote a word is a compound assignment - statement - -parse.y - - set W_COMPASSIGN on words that appear to be compound assignments - -subst.c - - pass W_NOXPAND and W_COMPASSIGN through end of expand_word_internal - -subst.[ch] - - new function, expand_assignment_string_to_string, calls - expand_string_assignment and then string_list on the result - -variables.c - - assign_in_env now calls expand_assignment_string_to_string - - 9/30 - ---- -builtins/common.c - - change get_job_spec so the null job `%' once again means the current - job - - 10/1 - ---- -subst.c - - do_assignment_internal now takes a WORD_DESC * as its first - argument, and uses its `word' member as the assignment string - - change expand_word_list_internal to call do_word_assignment instead - of do_assignment, passing it `word' instead of, e.g., `word->word' - - change extract_array_assignment_list to just return the passed - string minus a trailing `)' if the last character is a right - paren - - change do_assignment_internal to call extract_array_assignment_list - -subst.[ch] - - change do_assignment and do_assignment_no_expand to take a `char *' - instead of `const char *' first argument; change extern prototypes - - new function, do_word_assignment, takes a WORD_DESC * and calls - do_assignment_internal on it; add extern declaration with prototype - -general.h - - new typedef, sh_wassign_func_t, like sh_assign_func_t but takes a - WORD_DESC * as its first argument - -variables.[ch] - - assign_in_env now takes a WORD_DESC * as its first argument - - 10/2 - ---- -command.h - - new word flag, W_ASSNBLTIN, denotes that the word is a builtin - command (in a command position) that takes assignment statements - as arguments, like `declare' - - new word flags, W_ASSIGNARG, denotes that word is an assignment - statement given as argument to assignment builtin - -execute_cmd.c - - set W_ASSNBLTIN flag in fix_assignment_words if necessary (if there - are any arguments that are assignment statements) - - set W_ASSIGNARG flag in fix_assignment_words if necessary - -subst.c - - new function, do_compound_assignment, encapsulates the necessary - code to perform a compound array assignment (including creation of - local variables); called from do_assignment_internal - - to fix the double-expansion problem with compound array assignments - that are arguments to builtins like `declare', changed - shell_expand_word_list to treat those arguments like assignment - statements (with proper creation of local variables inside shell - functions) and pass the attribute-setting portion of the statement - onto the builtin. This is what ksh93 appears to do, from inspection - of the `ksh93 -x' output - -execute_cmd.c - - fix execute_simple_command: in case of pipeline or async command, - when forking early, set `subshell_environment' so that it can contain - both SUBSHELL_PIPE and SUBSHELL_ASYNC -- the two should not be - mutually exclusive. Fixes bug reported by pierre.humblet@ieee.org - - remove references to last_pid, old_command_subst_pid; use NO_PID as - a sentinel value to decide whether or not a child process has been - created and needs to be waited for. Submitted by - pierre.humblet@ieee.org to fix recycling-pid problem on cygwin - -doc/{bash.1,bashref.texi} - - fixed documentation of `@(pattern)' extended globbing operator -- - it succeeds if the string matches one of the patterns, not exactly - one. This is what ksh93 does, too - -lib/readline/complete.c - - fixed rl_menu_complete so that a negative argument cycles backwards - through the list - - 10/3 - ---- -subst.c - - use W_COMPASSIGN flag in do_assignment_internal instead of deciding - lexically which assignments are compound array assignments - - 10/6 - ---- -support/shobj-conf - - additions for System V.5 from Boyd Gerber - -subst.c - - in command_substitute, if subshell_environment includes - SUBSHELL_ASYNC, call make_child with the `async_p' argument set to - non-zero. This keeps command substitutions for async commands or - pipelines from trying to give the terminal back to the shell's - pgrp. make sure to save and restore last_asynchronous_pid. Fix - suggested by - - 10/7 - ---- -config.h.in - - add a placeholder definition for WCONTINUED_BROKEN - - 10/9 - ---- -aclocal.m4 - - add BASH_CHECK_WCONTINUED, checks for glibc bug where WCONTINUED is - defined but rejected as invalid by waitpid(2) - -configure.in - - add call to BASH_CHECK_WCONTINUED, defines WCONTINUED_BROKEN - -redir.c - - experimental change to add_undo_redirect to save manipulations to - file descriptors >= SHELL_FD_BASE (10) on the list of redirections - to be undone even if `exec' causes the list to be discarded - -doc/{bash.1,bashref.texi} - - note that redirections using file descriptors > 9 should be used - carefully, because they might conflict with file descriptors the - shell uses internally - - 10/11 - ----- -parse.y - - fix pipeline_command production to handle case where `pipeline' - as `argument' of `!' or `time' is null (e.g., a syntax error not - handled by the grammar) - - 10/13 - ----- -lib/readline/readline.c - - new internal variable, _rl_bind_stty_chars; if non-zero, bind the - terminal special characters to readline equivalents at startup - - change readline_default_bindings() and reset_default_bindings() to - understand _rl_bind_stty_chars - -lib/readline/rlprivate.h - - new extern declaration for _rl_bind_stty_chars - -lib/readline/rltty.c - - change rl_prep_terminal to add support for _rl_bind_stty_chars - - 10/15 - ----- -lib/readline/bind.c - - new bindable variable, `bind-tty-special-chars', bound to value of - _rl_bind_stty_chars - -doc/bash.1,lib/readline/doc/{readline.3,rluser.texi} - - documented new readline variable `bind-tty-special-chars' - -builtins/pushd.def - - make the first check for option `--' skip the rest of option - checking - - 10/16 - ----- -lib/readline/shell.c - - change sh_set_lines_and_columns to prefer setenv, which has - predictable memory allocation behavior, to putenv, which does not - - 10/19 - ----- -variables.c - - change push_exported_var so that a tempenv variable has to have the - export attribute set (which they all do -- something to look at) and - the `propagate' attribute set to be propagated down to the next - scope - -execute_cmd.c - - change execute_builtin so that if CMD_COMMAND_BUILTIN is set in the - passed flags argument, call pop_scope with a value that says the - builtin is not special, since `command' means that preceding variable - assignments don't persist in the environment. Fixes problem with - variable assignments preceding command preceding special builtin - keeping those variable assignments around (when in posix mode) - - 10/20 - ----- -lib/sh/shquote.c - - new function, sh_mkdoublequoted, brackets a given string with - double quotes and returns a new string. Flags argument, if non- - zero, means to quote embedded double quotes with backslashes - -externs.h - - new extern declaration for sh_mkdoublequoted - -parse.y - - use sh_mkdoublequoted after calling localeexpand() - -lib/sh/strtrans.c - - change ansicstr to understand that (flags & 4) != 0 means to remove - backslash from unrecognized escape sequences - -general.c - - fix logic problem in assignment() that caused non-variable-starter - characters to be allowed, resulting in things like `1=xxx' creating - a variable `1' in the hash table - - 10/21 - ----- -bashline.c - - don't call programmable_completions with an assignment statement - argument - - 10/22 - ----- -lib/readline/rltty.c - - in prepare_terminal_settings, turn echoing on (readline_echoing_p) - if get_tty_settings fails because the input is not a terminal - - 10/24 - ----- -lib/readline/util.c - - include rlmbutil.h for multibyte definitions - - new function, _rl_walphabetic, wide char version of rl_alphabetic - -lib/readline/mbutil.c - - new function, _rl_char_value(buf, ind), returns value of (possibly - multibyte) character at buf[ind] - -lib/readline/rlmbutil.h - - extern defines for _rl_walphabetic and _rl_char_value for when - multibyte chars are not being used - - new wrapper definitions for _rl_find_next_mbchar (MB_NEXTCHAR) and - _rl_find_prev_mbchar (MB_PREVCHAR) that try to avoid unneeded - function calls - -lib/readline/text.c - - fix rl_foward_word to work with multibyte characters (or in a - multibyte locale) using above utility functions - - fix rl_backward_word to work with multibyte characters (or in a - multibyte locale) using above utility functions - - 10/26 - ----- -parse.y - - fix parse_matched_pair so that it doesn't swallow \ when - parsing a $'...' construct (call shell_getc with different arg) - - 10/28 - ----- -lib/glob/glob.c - - after some (compiled-in) threshold, glob_vector will stop using - alloca to allocate `struct globval's and will switch to using - malloc, with appropriate cleanup before returning - -subst.c - - don't expand tildes after `=' in expand_word_internal, even if the - W_TILDEEXP flag is set, unless it's the first tilde in a word - marked W_ASSIGNMENT - - 10/31 - ----- -lib/readline/text.c - - make sure rl_point doesn't go below 0 in rl_delete_horizontal_space - (from SUSE, but not sent in) - -shell.c - - make sure shell_is_restricted skips over a single leading `-' in - the shell name (from SUSE, but not sent in) - -lib/readline/display.c - - disable `fast redisplay' at the end of the line if in a locale that - supports multibyte characters (from SUSE, but not sent in) - -lib/readline/histexpand.c - - fix a problem with finding the delimiter of a `?' substring when - compiled for multibyte characters (from SUSE, but not sent in) - - 11/1 - ---- -lib/readline/display.c - - correct some assignments to _rl_last_c_pos: when in a multibyte - locale, it's used as an absolute cursor position; when not using - multibyte characters, it's a buffer offset. I should have caught - this when the multibyte character support was donated - - 11/5 - ---- -general.c - - change `assignment()' to accept `+=' assignment operator - -arrayfunc.[ch] - - bind_array_variable and assign_array_element both take a new `flags' - argument - - assign_array_var_from_string, assign_array_from_string, and - assign_array_var_from_word_list now all take a new `flags' argument - - change assign_array_var_from_word_list to understand how to append - to an array variable - - change assign_array_var_from_string to understand how to append - to an array variable. It does not unset the previous value if - appending, allowing both old values to be changed and new ones to - be added - -subst.h - - new flag #defines to use for evaluating assignment statements - -{subst,variables}.c, builtins/{declare,read}.def - - change callers of assign_array_element and bind_array_variable - - change do_compound_assignment to understand assignment flags - - change do_assignment_internal to set assignment flags and pass them - to underlying functions - -pcomplete.c,builtins/{declare,read}.def - - fix callers of assign_array_var_from_string, assign_array_var_from_word_list - -variables.[ch] - - make_variable_value now takes a new `flags' argument - - make_variable_value now understands how to append to a particular - variable, using the old value - - bind_variable_value now takes a new `flags' argument - - change make_variable_value to understand ASS_APPEND flag - - bind_variable now takes a new `flags' argument - - bind_variable_internal now takes a new `flags' argument - -arrayfunc.c - - change callers of make_variable_value to add flags arg - -builtins/declare.def - - change callers of bind_variable_value to add flags arg - -{execute_cmd,mailcheck,pcomplete,shell,subst,variables}.c,parse.y -builtins/{cd,command,declare,getopts,read,set,setattr}.def - - change callers of bind_variable to add flags arg - -variables.c - - change callers of bind_variable_internal - - change bind_variable_internal to pass assignment flags on to - make_variable_value - - change assign_in_env to treat `var+=value' like `var=value' - -arrayfunc.c - - break code that actually constructs the new value and assigns it - to a particular array index out into a new functions: - bind_array_var_internal. This fakes out make_variable_value by - passing a dummy SHELL_VAR * so it can do proper appending and other - += processing - - changes to assign_array_var_from_string to accept and process as if - they were `standalone' assignment statements array assignment words - of the form [ind]+=val - - 11/7 - ---- -builtins/declare.def - - added support for `declare [flags] var+=value'. `Flags' are applied - before the assignment is performed, which has implications for things - like `-i' -- if -i is supplied, arithmetic evaluation and increment - will be performed - -builtins/setattr.def - - add support for `+=' assignment for rest of `assignment builtins': - export, readonly - - 11/12 - ----- -lib/readline/display.c - - make sure prompt_physical_chars and prompt_invis_chars_first_line - are reset to 0 if the prompt string passed to rl_expand_prompt is - NULL or empty - - 11/14 - ----- -{configure,config.h}.in - - check for `raise', define HAVE_RAISE if available - -lib/intl/dcigettext.c - - make sure `raise' is defined if HAVE_RAISE is not before - eval-plurah.h is included - -lib/malloc/trace.c - - put extern declaration for imalloc_fopen inside the MALLOC_TRACE - #ifdef - - 11/16 - ----- -lib/intl/Makefile.in - - make sure SHELL is defined to cpp - -lib/intl/dcigettext.c - - make sure we use getcwd() even if HAVE_GETCWD is not defined after - including config.h; if SHELL is defined, #define HAVE_GETCWD - - 11/18 - ----- -trap.[ch] - - new function, int signal_in_progress(int sig), returns TRUE if the - trap handler for signal SIG is currently executing - - 11/19 - ----- -redir.c - - slightly change do_redirection_internal to set the close-on-exec - flag for file descriptors > 2 used to save file descriptors < 2 - using explicit redirections (e.g., `exec 3>&1'). This keeps file - descriptors pointing to pipes from being left open but doesn't - change the shell's file descriptor semantics - - 11/20 - ----- -doc/{bash.1,bashref.texi} - - correct some minor typos, forwarded from doko@debian.org - - 11/22 - ----- -doc/bash.1,lib/readline/doc/{readline.3,rluser.texi} - - documented detail that yank-last-arg and yank-nth-arg use the history - arg expansion code (and, as a result, are subject to restrictions - of the history-comment character) - - 11/23 - ----- -execute_cmd.c - - changes so that BASH_COMMAND preserves its value into a DEBUG trap: - for commands, arithmetic for command expressions, select commands, - case commands, (( commands, [[ commands, simple commands - - 11/24 - ----- -doc/{bash.1,bashref.texi} - - changed description of `set' builtin slightly so that it is clear - that only variables are displayed in posix mode and that read-only - variables can't be reset by simply sourcing the output of `set' - -lib/sh/strftime.c - - don't try to redefine `inline' if it's already defined - - 11/26 - ----- -execute_cmd.c - - fix execute_function to check funcname_a after function execution, - since FUNCNAME can be changed or unset within a function - - 11/27 - ----- -builtins/evalfile.c - - make same changes as 11/26, this time to _evalfile - -execute_cmd.c - - change execute_function to run the return trap after a function - completes execution even if the shell is compiled without DEBUGGER - defined - -trap.c - - change reset_or_restore_signal_handlers so that the RETURN trap is - not inherited by command substitution when DEBUGGER is not defined - - 11/30 - ----- -lib/readline/misc.c - - fix memory leaks in _rl_free_history_entry and rl_maybe_replace_line - caused by not freeing `timestamp' member of history entry - - make sure timestamp is initialized to NULL in rl_maybe_save_line - - 12/1 - ---- -execute_cmd.c - - fix execute_function so a function calling `return' will run the - RETURN trap, if one's defined - -doc/{bash.1,bashref.texi} - - fix description of RETURN trap in various places to indicate that it's - only inherited by shell functions if function tracing is on globally - or has been enabled for that function - - fix documentation to indicate that the DEBUG and RETURN traps are - inherited under the same conditions - -execute_cmd.c - - a function does not inherit the RETURN trap if a DEBUG trap is - currently running - - 12/2 - ---- -lib/glob/xmbsrtowcs.c - - change xmbsrtowcs to handle the one case where malloc can fail - (though it should not matter) -- don't try to free a null pointer - - 12/9 - ---- -subst.c - - fix get_var_and_type to handle var[@], where `var' is a scalar - variable, identically to var -- all calling expansions can now - handle var[@] like var. Bug reported by agriffis@gentoo.org - - 12/10 - ----- -lib/readline/bind.c - - make new-style "\M-x" keybindings obey `convert-meta' settings - (bug reported by twaugh@redhat.com) - - 12/14 - ----- -builtins/set.def - - added description of `-' option to help text - -builtins/shopt.def - - fix bug that caused `gnu_errfmt' to not be compiled in unless - READLINE is defined - - 12/16 - ----- -subst.c - - fixed a typo in string_extract_verbatim in first call to MBLEN - (used `slen - 1' instead of `slen - i') - - 12/17 - ----- -subst.c - - avoid some calls to strlen if the value is only being used for - ADVANCE_CHAR and MB_CUR_MAX == 1 (since ADVANCE_CHAR doesn't need - it unless multibyte characters are possible) - - change string_extract_verbatim so it takes the length of the string - as a parameter, so we don't have to recompute the length of the same - string over and over again when doing word splitting (that kills if - it's a long string) - - 12/18 - ----- -subst.c - - in string_list_dollar_star, make sure to null-terminate the - separator if the character is longer than one byte - - 12/22 - ----- -doc/{bash.1,bashref.texi} - - changed text in quoting section explaining that double quotes do - not prevent history expansion from taking place, and that backslashes - escaping ! are not removed - - 12/28 - ----- -shell.c - - set gnu_error_format to 1 if running under emacs. This should allow - the emacs `next-error' stuff to work, at least for interactive shells - -parse.y - - change yy_stream_get to set interrupt_immediately before calling - getc_with_restart when the shell is interactive. This avoids the - synchronization problem caused by the call to QUIT in read_a_line, - which results in the first character after a SIGINT/^C to be - dropped - - 12/30 - ----- -builtins/mkbuiltins.c - - changes to write long documentation to arrays as a single string by - default, rather than an array of strings -- enabled by default - - new option, -S, to restore old behavior of writing multiple strings - for long documentation - - changes to avoid filenames written when the separate-filenames option - (-H) has been supplied being run through gettext - -configure.in - - new cofiguration option, --enable-single-help-strings (on by default), - causes help text to be stored as a single string (or smaller set than - one string per line) - -builtins/Makefile.in - - pass `-S' to mkbuiltins if single-help-strings is turned off - -doc/bashref.texi - - documented new `single-help-strings' configure option - - 1/3/2005 - -------- -jobs.c - - make wait_for return a non-zero status if the job or processed - waited for is suspended. Returns 128 + stop signal. This fixes - the problem with `echo one && sleep 5 && echo two' displaying - `two' after the sleep is suspended - - 1/5 - --- -print_cmd.c - - change indirection_level_string so the code duplicates the first - character of $PS4 to indicate the indirection level, rather than - the first byte - - 1/8 - --- -variables.c - - new special variable hook function for COMP_WORDBREAKS; sets - rl_completer_word_break_characters back to NULL when the variable - is unset - - change bind_variable_value to understand dynamic variables with - assign_function set, and handle them correctly. If the variable is - being appended to, use make_variable_value to create the new - value - - change bind_variable_internal to understand dynamic variables with - assign_function set, and handle them the same way - - RANDOM and LINENO now get the integer attribute, so appending works - as expected - - ditto for HISTCMD, MAILCHECK, OPTIND - -lib/readline/display.c - - change _rl_make_prompt_for_search to set prompt_physical_chars - appropriately - - rl_save_prompt and rl_restore_prompt save and restore - prompt_prefix_length - - change redraw_prompt to use rl_save_prompt and rl_restore_prompt - - change rl_restore_prompt to set the `save' variables back to - NULL/0 so code can check whether or not the prompt has been saved - - change rl_message and rl_clear_message to save and restore the - prompt if the caller has not already done it (using a simple - semaphore-like variable) - - change rl_message to call expand_prompt, so that local_prompt and - local_prompt prefix are set before calling the redisplay functions, - in case the prompt is longer than a screenwidth (fixes bug - reported to debian by epl@unimelb.edu.au) - -lib/readline/doc/rltech.texi - - make sure to note that rl_save_prompt should be called before - rl_message, and rl_restore_prompt before rl_clear_message - -pcomplete.c - - make sure to save and restore the parser state around the call to - execute_shell_function in gen_shell_function_matches. Fixes bug - reported by a050106.1.keeLae3x@captaincrumb.com (cute) - -lib/readline/readline.c - - fix _rl_dispatch_subseq in the case where we're recursing back up - the chain (r == -2) and we encounter a key shadowed by a keymap, - but originally bound to self-insert. Calling rl_dispatch with - ANYOTHERKEY as the first argument will call rl_insert, but with - ANYOTHERKEY (256) as the char to insert. Use the shadow keymap - and set things up to dispatch to rl_insert with the shadowed key - as the argument. Fixes the bug reported by Thomas Glanzmann - (sithglan@stud.uni-erlangen.de) - - 1/13 - ---- -command.h - - new word flag: W_HASQUOTEDNULL - -make_cmd.c - - new function to allocate a WORD_DESC * without doing anything with a - containing string: alloc_word_desc - -make_cmd.h - - extern declaration for alloc_word_desc - -dispose_cmd.c - - new function to just free a WORD_DESC * without freeing the contained - string: dispose_word_desc - -dispose_cmd.h - - extern declaration for dispose_word_desc - -subst.c - - change some places to use alloc_word_desc - - make same changes to word_list_quote_removal as were made to - word_list_split - - set W_HASQUOTEDNULL when a word is created with w->word[0] == - CTLNUL and w->word[1] == '\0' - -subst.c - - parameter_brace_expand_word now returns a WORD_DESC * -- changed - callers to understand - - parameter_brace_expand_indir now returns a WORD_DESC * -- changed - callers to understand - - parameter_brace_expand_rhs now returns a WORD_DESC * -- changed - callers to understand - - remove W_HASQUOTEDNULL from a word's flags when remove_quoted_nulls - is called on the word's enclosed string - - 1/15 - ---- -subst.c - - param_expand now returns a WORD_DESC * -- changed callers to - understand - - parameter_brace_expand now returns a WORD_DESC * -- changed - callers to understand - - in expand_word_internal, only call remove_quoted_nulls after a word - is returned with W_HASQUOTEDNULL - - changes to pass W_HASQUOTEDNULL flag out of expand_word_internal; - changed callers to call remove_quoted_nulls only if return value has - W_HASQUOTEDNULL set. This is a mostly-complete fix for the - long-standing CTLNUL confusion between a quoted null expansion and - the expansion of a variable with a literal '\177' in its value - - change string_list_dollar_at to compute the separator character the - same way as string_list_dollar_star: using the already-computed - values generated in setifs() - - when expanding unquoted $*, if $IFS is empty, check whether or not - we're eventually going to split the results (e.g., on the rhs of an - assignment statement) and concatenate the positional parameters as - if the expansion were within double quotes if we're not going to - split - -tests/iquote.tests - - test cases based on old bug reports about the quoted-null vs. 0177 - problem the recent code fixes - - 1/16 - ---- -dispose_cmd.c - - set w->word to 0 before putting a WORD_DESC * back in the cache in - dispose_word_desc; changed callers to delete those assignments - -variables.c - - change assign_random and get_random_value so that the random number - generator only gets re-seeded once in a subshell environment, and - assigning a value to RANDOM counts as seeding the generator. This - makes the sequences a little more predictable - - 1/20 - ---- -lib/readline/history.c - - fix replace_history_entry, remove_history to return NULL if - passed index is < 0 - - 1/22 - ---- -lib/sh/netconn.c - - fix isnetconn() to understand that getpeername can return ENOTCONN - to indicate that an fd is not a socket - -configure.in - - set BUILD_DIR to contain backslashes to escape any spaces in the - directory name -- this is what make will accept in targets and - prerequisites, so it's better than trying to use double quotes - - set SIZE to the appropriate value if some cross-compiling tool - chain is being used; `size' by default (can be overridden by - SIZE environment variable) - -Makefile.in - - use $(SIZE) instead of size; set SIZE from configure - - 1/31 - ---- -arrayfunc.c - - in array_value_internal, return NULL right away if the variable's - value is NULL, instead of passing a null string to add_string_to_list - - 2/1 - --- -jobs.h - - new struct to hold stats and counters for child processes and jobs - - change some uses of global and static variables to use members of - new struct (struct jobstats) - - 2/2 - --- - -jobs.[ch] - - change PRUNNING to PALIVE - - new define INVALID_JOB - - new macro get_job_by_jid(ind), currently expands to jobs[ind] - - new define J_JOBSTATE, operates on a JOB * like JOBSTATE operates on - a job index - - new function, reset_job_indices, called from delete_job if - js.j_lastj or js.j_firstj are removed - - change various functions to keep counters and stats in struct jobstats - -pcomplete.c, builtins/common.c, builtins/{exit,fg_bg,jobs,kill,wait}.def - - change global variables (e.g., job_slots) to struct members - (e.g., js.j_jobslots) - - use INVALID_JOB define where appropriate - - use get_job_by_jid and J_JOBSTATE where appropriate - -trap.c - - change reset_or_restore_signal_handler to not free the exit trap - string if the function pointer is reset_signal, which is used when - the trap strings shouldn't be freed, like in command substitution - - 2/4 - --- -jobs.c - - new function, realloc_jobs_list, copies jobs array to newly-allocated - memory shrinking (or growing) size to have next multiple of JOB_SLOTS - greater than js.j_njobs - - change compact_jobs_list to just call reap_dead_jobs and then - realloc_jobs_list, simplifying it considerably - - discard_pipeline now returns `int': the number of processes freed - - slightly changed the logic deciding whether or not to call - compact_jobs_list: now non-interactive shells will compact the - list if it reaches MAX_JOBS_IN_ARRAY in size - -parse.y - - move test for backslash-newline after pop_string in shell_getc so - that things like - - ((echo 5) \ - (echo 6)) - - work right - - 2/8 - --- -jobs.h - - new structs for holding status of exited background processes, as - POSIX specifies - - new job flag: J_ASYNC - -jobs.c - - new functions to manipulate struct holding status of exited - background processes - - new members in struct jobstats to hold pointer to last created job - and last created asynchronous job - - initialize js.c_childmax in initialize_job_control - - if the `async' arg to stop_pipeline is non-null, set the J_ASYNC - flag in the job struct - - set js.j_last_made_job and js.j_last_asynchronous_job in - stop_pipeline - - new function: find_last_proc, returns the PROCESS * to the last proc - in a job's pipeline - - changed find_last_pid to call find_last_proc - - change delete_job to call bgp_add on the last proc of the job being - deleted - - change delete_all_jobs and wait_for_background_pids to call bgp_clear - - 2/9 - --- -jobs.c - - change wait_for_single_pid to look for pid in bgpids.list (using - bgp_search()) if find_pipeline returns NULL - - 2/10 - ---- -support/shobj-conf - - change the solaris-gcc stanza so that it auto-selects the appropriate - options for ld depending on which `ld' gcc says it's going to run - - 2/11 - ---- -jobs.h - - add support for PS_RECYCLED as a process state, add PRECYCLED macro - to test it. Change PALIVE and PRUNNING macros to not count processes - in PS_RECYCLED state - -execute_cmd.c - - restore use of last_pid as sentinel value; use NO_PID as sentinel - only if RECYCLES_PIDS is defined - -jobs.c - - change find_job to return a pointer to the PROCESS the desired pid - belongs to, analogous to find_pipeline returning pointer to JOB - - change find_job callers to add extra argument - - change running_only arguments to find_pipeline and find_job to - alive_only, since we don't want recycled pids returned here and it - better describes the result - - new function find_process, calls find_pipeline and searches the - returned pipeline for the PROCESS * describing the desired pid - - in make_child, if fork() returns the same pid as the value of - last_asynchronous_pid when RECYCLES_PIDS is defined, avoid pid - aliasing by resetting last_asynchronous_pid to 1 - - use PRUNNING instead of child->running, since we, for the most - part, don't want to consider recycled pids (e.g., in make_child()) - - call find_process instead of find_pipeline in waitchld() - - use PEXITED(p) instead of testing p->running == PS_DONE - - in make_child, call bgp_delete to remove a just-created pid from the - last of saved pid statuses - - in add_process, check whether or not pid being added is already in - the_pipeline or the jobs list (using find_process) and mark it as - recycled if so - - This set of fixes mostly came from Pierre Humblet - to fix pid aliasing and reuse problems on - cygwin - -variables.c - - set $_ from the environment if we get it there, set to $0 by - default if not in env - -doc/{bashref.texi,bash.1} - - a couple of clarifying changes to the description of $_ based on - comments from Glenn Morris - - 2/15 - ---- -shell.c - - use strstr instead of strmatch when checking whether $EMACS contains - `term' -- simpler and faster - - 2/18 - ---- -builtins/cd.def - - implement posix requirement that `pwd -P' set $PWD to a directory - name containing no symlinks - - add new function, setpwd(), just sets (and changes exported value) - of PWD - -doc/bashref.texi - - add note to posix mode section about pwd -P setting $PWD - -doc{bash.1,bashref.texi} - - added note that BASH_ARGC and BASH_ARGV are only set in extended - debug mode - - expand description of extdebug option to include everything changed - by extended debug mode - - 2/19 - ---- -pathexp.h - - new flag macro, FNMATCH_IGNCASE, evaluates to FNM_CASEFOLD if the - match_ignore_case variable is non-zero - -execute_cmd.c - - new variable, match_ignore_case - - change call to strmatch() in execute_case_command so it includes - FNMATCH_IGNCASE - -test.c - - change call to strmatch() in patcomp() so that pattern matching - calls for [[ ... ]] obey the match_ignore_case variable - -lib/sh/shmatch.c - - if match_ignore_case is set, enable REG_ICASE in the regexp match - flags - -builtins/shopt.def - - new settable option, `nocasematch', controls the match_ignore_case - variable. Currently alters pattern matching for case and [[ ... ]] - commands (==, !=, and =~ operators) - -doc/{bashref.texi,bash.1} - - updated descriptions of [[ and case to include reference to - nocasematch option - - 2/22 - ---- -builtins/mkbuiltins.c - - add `times' to the list of posix special builtins - - 2/23 - ---- -builtins/cd.def - - posix mode no longer turns on effect of -P option on $PWD if a - directory is chosen from CDPATH - -doc/bashref.texi - - clarified that in posix mode, reserved words are not alias expanded - only in a reserved word context - - removed item about cd, $CDPATH, and -P from posix mode section - - 2/24 - ---- -builtins/reserved.def - - minor cleanups to the description of `if' - - 3/2 - --- -subst.c - - change list_string and get_word_from_string to explicitly treat an - IFS character that is not space, tab, or newline *and any adjacent - IFS white space* as a single delimiter, as SUSv3/XPG6 says - -builtins/read.def - - check whether or not the number of fields is exactly the same as - the number of variables instead of just assigning the rest of the - line (minus any trailing IFS white space) to the last variable. - This parses a field and checks whether or not it consumes all of - the input (including any trailing field delimiters), falling back - to the previous behavior if it does not. This is what POSIX.2 - specifies, I believe (and the consensus of the austin-group list). - This requires a few tests in read.tests to be changed: backslashes - escaping IFS whitespace characters at the end of input cause the - whitespace characters to be preserved in the value assigned to the - variable, and the trailing non-whitespace field delimiter issue - - 3/7 - --- -configure.in - - add -D_POSIX_SOURCE to the LOCAL_CFLAGS for Interix - - 3/8 - --- -bashline.c - - make bash_directory_expansion a void function, since it doesn't have - any return value - - 3/9 - --- -builtins/read.def - - when testing for a pipe, use `fd' instead of hard-coding 0, since we - can read from other file descriptors now - -lib/sh/zread.c - - in zsyncfd, only set lind and lused to 0 if the lseek succeeds. - If the lseek fails, we might steal input from other programs, but - a failed lseek won't cause us to erroneously discard input - - 3/11 - ---- -builtins/evalstring.c - - don't allow parse_and_execute to short-circuit and call exec() if - the command's return value is being inverted - - 3/15 - ---- -builtins/printf.def - - new macro PC to call putchar and increment number of chars printed - - fixes bug in computation of value for %n format char - - `tw' is now a global var so printstr can modify it using PC() - - convert PF macro to use asprintf into a local buffer - Preparation for printf -v var - - add code to add the text printed to a `variable buffer' if -v option - supplied. The buffer grows as needed - - printf now takes a `-v var' option to put the output into the variable - VAR rather than sending it to stdout. It does not: - print partial output on error (e.g., format string error) - handle NULs in the variable value, as usual - - 3/16 - ---- -parse.y - - fix bug in prompt string decoding that caused a core dump when PS1 - contained \W and PWD was unset (null pointer deref) - -builtins/printf.def - - changed -v var behavior so it stores partial output into the named - variable upon an error - - 3/24 - ---- -lib/readline/bind.c - - bool_to_int now takes a `const char *' argument - -support/{printenv,recho,zecho}.c - - include config.h - - include "bashansi.h" for appropriate extern function declarations +lib/readline/display.c + - when displaying prompts longer than the screenwidth in rl_redisplay, + and looking for the index of the last character whose buffer index + is <= the screen width to set up the inv_lbreaks array, make sure to + catch the case where the index == the screen width (an off-by-one + error occurs otherwise with prompts one character longer than the + screen width). Bug reported by Alexey Toptygin configure.in - - on MacOS X 10.4, compensate for loader not allowing static library - to override existing system dynamic library when compiling -dynamic - (affects readline and history libraries); so use absolute pathname - instead of -lreadline as library name - -lib/glob/{glob,sm_loop,smatch}.c - - make sure to cast arguments to (char *) or (unsigned char *) as - appropriate to avoid gcc4 warnings - -lib/glob/smatch.c - - collsym (single-byte version) now takes a (CHAR *) first argument to - match callers; cast argument to strncmp appropriately - -lib/sh/snprintf.c - - fix ldfallback and dfallback to handle width and precision specs in - the format passed to sprintf() - - fix STAR_ARGS macro to deal with negative field widths and precisions + - change DEBUGGER_START_FILE to start with ${ac_default_prefix}/share, + like bashdb installs itself. Reported by Nick Brown + - 3/25 + 9/14 ---- -builtins/printf.def - - since a negative precision in a "x.x[fFgGeE]" format specifier should - be allowed but treated as if the precision were missing, let it - through - -lib/sh/snprintf.c - - fix * code to deal with a negative precision by treating it as if - the `.' and any digit string in the precision had not been specified - - fix format parsing code to deal with a negative inline precision, - e.g., "%4.-4f" by treating it as if the `'. and any digit string in - the precision had not been specified - - a `+' in a format specifier should only act as a flag if it comes - before a `.' (otherwise it is ignored) - -lib/readline/vi_mode.c - - new function, rl_vi_rubout, to rl_rubout as rl_vi_delete is to - rl_delete; saves deleted text for possible reinsertion as with any - vi-mode `text modification' command (fixes problem with `X' reported - by beat.wieland@gmx.ch) - -lib/readline/vi_keymap.c - - bind `X' in vi command mode to rl_vi_rubout - -lib/readline/funmap.c - - add a bindable `vi-rubout' command, runs rl_vi_rubout - -lib/readline/text.c - - rewrote internals of _rl_rubout_char to make structure cleaner - -lib/readline/{complete,text}.c - - changed code to remove #ifdef HANDLE_MULTIBYTE where possible +lib/readline/display.c + - make multibyte code that computes the buffer indices of line breaks + for a multi-line prompt dependent on MB_CUR_MAX, so we don't take + the function call hit unless we're in a locale that can have + multibyte characters - 3/28 + 9/19 ---- -lib/readline/examples/rl.c - - include instead of posixstat.h if READLINE_LIBRARY not - defined - subst.c - - fix mbstrlen to treat invalid multibyte sequences as sequences of - single-byte characters + - make dequote_list extern so other parts of the shell can use it - 4/8 - --- -configure.in - - default SIZE to `:' if cross-compiling and an appropriate size for - the target is not found +subst.h + - extern declaration for dequote_list - 4/11 +builtins/read.def + - call dequote_list before assigning words read to array variable if + we saw an escape character. Old code left spurious CTLESCs in the + string after processing backslashes. Bug reported by Daniel Dawson + + + 9/21 ---- -subst.c - - change match_upattern and match_wpattern to check whether or not the - supplied pattern matches anywhere in the supplied string, prefixing - and appending the pattern with `*' if necessary. If it doesn't we - can short-circuit immediately rather than waste time doing up to - N-1 unsuccessful calls to strmatch/wcsmatch (which kills for long - strings, even if the pattern is short) +[bash-3.2 frozen] - 4/12 + 10/9 ---- -configure.in - - make sure the special case for MacOS X 10.4 only kicks in if the - `--with-installed-readline' option isn't supplied +support/shobj-coonf + - change -fpic to -fPIC for FreeBSD systems (needed for SPARC at least) -lib/readline/{callback,readline,signals}.c - - make sure rl_prep_term_function and rl_deprep_term_function aren't - dereferenced if NULL (as the documentation says) + 10/11 + ----- +[bash-3.2 released] -builtins/mkbuiltins.c - - don't bother with the special HAVE_BCOPY code; just use straight - assignments + 10/12 + ----- +parse.y + - change parse_matched_pair to make sure `` command substitution does + not check for shell comments while parsing. Bug reported against + bash-3.2 by Greg Schaefer + + 10/14 + ----- +parse.y + - add new parser_state flag: PST_REGEXP; means we are parsing a + regular expression following the =~ conditional operator + - cond_node sets PST_REGEXP after reading the `=~' operator + - change read_token to call read_token_word immediately if the + PST_REGEXP bit is set in parser_state + - change read_token_word to skip over `(' and `|' if PST_REGEXP is + set, since those characters are legitimate regexp chars (but still + parse matched pairs of parens) + 10/16 + ----- builtins/ulimit.def - - use _POSIX_PIPE_BUF in pipesize() if it's defined and PIPE_BUF is - not + - add -e and -r to $SHORT_DOC usage string - 4/13 - ---- -execute_cmd.c - - add cm_function_def to the list of control structures for which - child processes are forked when pipes come in or out +po/ru.po + - fix encoding; Russian text in the file is actually encoded in KOI8-R - 4/14 - ---- -builtins/read.def - - make sure the ^As added for internal quoting are not counted as - characters read when -n is supplied + 10/23 + ----- +shell.c + - make sure that the call to move_to_high_fd in open_shell_script + passes 1 for the `check_new' parameter so open high file descriptors + don't get closed and reused. Bug reported by Mike Stroyan + - 4/20 - ---- -redir.c - - fix redir_open so that the repeat open on failure that AFS support - adds restores the correct value of errno for any error message +doc/bashref.texi + - fixes for typos and misspellings sent in by Brian Gough - 4/26 - ---- + 10/24 + ----- +support/shobj-conf + - make netbsd shared library creation like openbsd's until I hear + differently (called using `gcc -shared') -Makefile.in - - make sure mksignames and mksyntax are invoked with the $(EXEEXT) - extension + 10/26 + ----- +subst.c + - fix bug in parameter_brace_patsub so if the first character of the + expanded pattern is a `/', it is not taken as a global replacement + specifier. Bug reported on forums.nekochan.net - 4/28 - ---- -lib/readline/readline.h - - new state variable: RL_STATE_CALLBACK, means readline is using the - callback interface + 10/27 + ----- +builtins/printf.def + - if we need an extern declaration for asprintf, make sure we include + stdarg.h or varargs.h, whichever is appropriate + - if we do not have asprintf, add an extern declaration using + stdarg format. This fixes the bugs with %G on IRIX reported by + Matthew Woehlke and Stuart Shelton + -lib/readline/callback.c - - set RL_STATE_CALLBACK in rl_callback_handler_install, unset in - rl_callback_handler_remove - 4/29 - ---- -config-top.h - - DONT_REPORT_SIGPIPE is now on by default, since it apparently - interferes with scripts +lib/sh/snprintf.c + - add note to not call log_10 with 0 argument -- we don't want to do + what real log10 does (-infinity/raise divide-by-zero exception) + - make sure numtoa (used by dtoa) takes the precision into account + when computing the fractional part with an argument of `0.0' + - make sure `g' and `G' formats don't print radix char if there are + no characters to be printed after it (change to floating()) + - change callers of log_10 (exponent, 'g' and 'G' cases in + vsnprintf_internal) to not call it with 0 for argument. This fixes + the hang reported on IRIX by Matthew Woehlke + and Stuart Shelton -configure.in - - arrange things so PGRP_PIPE is defined on Linux-2.4+ and version 3 - kernels (ones that apparently schedule children to run before their - parent) + 10/28 + ----- +builtins/{caller,pushd}.def + - changed longdoc strings in loadable builtin section to be single + strings, as put in the build directory builtins.c file, to aid + translators - 4/30 + 11/1 ---- -builtins/caller.def - - add call to no_options, so it can handle `--' option - -doc/{bash.1,bashref.texi} - - note explicitly that test, :, true, and false don't understand -- - as meaning the end of options - - 5/7 - --- -support/shobj-conf - - darwin 8 needs the same LDFLAGS setting as darwin 7 - -parse.y - - in save_parser_state, make sure we cast the return value from - xmalloc() to the right type - - remove casts to (char *) in calls to yyerror() +execute_cmd.c + - reset subshell_environment to 0 after make_child() call in + execute_null_command. Fix provided by Roy Marples + -lib/readline/signals.c - - make SIGQUIT and SIGALRM code conditional on their definition - - use raise() to send a signal if we don't have kill() + 11/7 + ---- +lib/tilde/tilde.c +lib/readline/{util,undo,callback,input,isearch,kill}.c + - make sure that memory allocated with xmalloc is freed with xfree + 11/9 + ---- lib/readline/display.c - - some MS-DOS and MINGW changes from the cygwin and mingw folks + - make sure that _rl_redisplay_after_sigwinch clears the last displayed + line instead of the current line (instead of assuming that the + cursor is on the last line). Fixes bug reported by Egmont + Koblinger -config.h.in - - add HAVE_PWD_H for - - add HAVE_FCNTL, HAVE_KILL for respective system calls - - add HAVE_GETPW{ENT,NAM,UID} for passwd functions + 11/10 + ----- +lib/readline/display.c + - make sure that _rl_col_width is never called with MB_CUR_MAX == 1, + since it doesn't count invisible characters and they are not + compensated for. Added a warning in _rl_col_width if called when + MB_CUR_MAX == 1. Bug reported and solution suggested by Eric + Blake -configure.in - - add check for - - add checks for fcntl, kill system calls - - add checks for getpw{ent,nam,uid} C library functions - - pass a flag indicating we're cross compiling through to - CFLAGS_FOR_BUILD in Makefile.in + 11/11 + ----- +lib/readline/display.c + - make sure _rl_wrapped_line is initialized to inv_lbsize int chars. + inv_lbsize and vis_lbsize are the same at that point, but it makes + the intent clearer. Fix from jan.kratochvil@redhat.com. + - in rl_redisplay, make sure we call memset on _rl_wrapped_line with + its full initialized size: inv_lbsize*sizeof(int). Fix from + jan.kratochvil@redhat.com. + - wrap the invisible and visible line variables and _rl_wrapped_line + into line_state structures, which can be swapped more efficiently. + Have to watch the wrapped_line field, since there's now one for + each struct. Changes from jan.kratochvil@redhat.com. lib/readline/complete.c - - guard inclusion of with HAVE_PWD_H - - don't provide a missing declaration for getpwent if we don't have it - - guard calls to {get,end}pwent with HAVE_GETPWENT - -lib/readline/shell.c - - guard inclusion of with HAVE_PWD_H - - guard inclusion of with HAVE_FCNTL_H - - don't provide a missing declaration for getpwuid if we don't have it - - guard calls to getpwuid with HAVE_GETPWUID - - don't bother with body of sh_unset_nodelay_mode if we don't have - fcntl + - in stat_char, check for `//server' on cygwin and return `/', since + it will always behave as a directory. Fix from Eric Blake -lib/tilde/tilde.c - - guard inclusion of with HAVE_PWD_H - - guard calls to getpw{nam,uid} with HAVE_GETPW{NAM,UID} - - guard calls to {get,end}pwent with HAVE_GETPWENT +lib/readline/histfile.c + - Cygwin's mmap() works in recent versions, so don't #undef HAVE_MMAP. + Recommendation from Eric Blake -Makefile.in,builtins/Makefile.in - - @CROSS_COMPILE@ is substituted into CFLAGS_FOR_BUILD (equal to - -DCROSS_COMPILING if bash is being cross-compiled) +lib/readline/rlwinsize.h + - make sure tcflow() is defined on SCO Unix. Fix from William Bader - 5/9 - --- aclocal.m4 - - print version as `0.0' in RL_LIB_READLINE_VERSION if the - `rl_gnu_readline_p' variable isn't 1 (accept no imitations) + - add check for localeconv to AM_INTL_SUBDIR macro - 5/11 - ---- -lib/readline/rlprivate.h - - definition of a readline `search context', to be use for incremental - search initially and other types of search later. Original from - Bob Rossi as part of work on incremental searching problems when - using callback interface +config.h.in + - add HAVE_LOCALECONV -lib/readline/isearch.c - - functions to allocate and free search contexts - - function to take a search context and a character just read and - `dispatch' on it: change search parameters, add to search string, - search further, etc. - - isearch is now completely context-driven: a search context is - allocated and passed to the rest of the functions +lib/sh/snprintf.c + - add check for HAVE_LOCALECONV for GETLOCALEDATA macro - 5/12 - ---- -lib/readline/isearch.c - - an additional `isearch cleanup' function that can be called from - the callback interface functions when the search is to be terminated - - an additional `isearch callback' function that can be called from - rl_callback_read_char when input is available - - short-circuit from rl_search_history after initialization if - the callback interface is being used +general.[ch] + - first argument to legal_number is now `const char *' -lib/readline/callback.c - - in rl_callback_read_char(), if RL_STATE_ISEARCH is set, call - _rl_isearch_callback to read the character and dispatch on it. - If RL_STATE_ISEARCH is unset when that call returns, and there is - input pending, call rl_callback_read_char() again so we don't - have to wait for new input to pick it up + 11/14 + ----- +lib/readline/{readline,rlprivate}.h + - move rl_display_prompt declaration from rlprivate.h to readline.h -support/shobj-conf,configure.in - - add support for dragonfly bsd, the same as freebsd +lib/readline/util.h + - new function: rl_free(void *mem), for use by users of readline dlls + on Windows - 5/13-5/15 - --------- -lib/readline/callback.c - - support for readline functions to `register' a function that will - be called when more input is available, with a generic data - structure to encapsulate the arguments and parameters. Primarily - intended for functions that read a single additional character, - like quoted-insert - - support for callback code reading numeric arguments in a loop, - using readline state and an auxiliary variable - - support for callback code performing non-incremental searches using - the same search context struct as the isearch code +lib/readline/readline.h + - new extern declaration for rl_free -lib/readline/{callback,display}.c - - if a callback function sets `_rl_redisplay_wanted', the redisplay - function will be called as soon as it returns +lib/readline/doc/rltech.texi + - document rl_free and rl_display_prompt for use by application writers -lib/readline/input.c - - changes to _rl_read_mbchar to handle reading the null multibyte - character and translating it into '\0' + 11/15 + ----- +aclocal.m4 + - change tests for /dev/fd and /dev/stdin to use constructs of the form + (exec test ... ) instead of test ... to avoid bash's /dev/fd and + /dev/stdin emulation -lib/readline/misc.c - - break rl_digit_loop() into component functions that can be called - individually from the callback code more easily - - share some of the functions with rl_digit_loop1() in vi_mode.c + 11/16 + ----- +jobs.c + - in delete_job, reset_current was being called before the job slot + was cleared -- moved after job_slots[job] was set to NULL. Fixes + bug reported by Dan Jacobson -lib/readline/readline.h - - change the version #defines to reflect readline 5.1 + 11/19 + ----- +findcmd.c + - when the checkhash option is set, fix the check for the hashed + pathname being an existing executable file. Old code required a + hash table deletion and re-addition. Bug reported by Linda + Walsh -lib/readline/search.c - - break code into smaller functions that can be composed to work with - the callback code more easily + 11/21 + ----- +subst.c + - in pos_params, handle case of `start' == 0 by making the list of + positional parameters begin with $0 + - in parameter_brace_substring, increment `len' if start == 0, sicne + we will be adding $0 to the beginning of the list when we process it + +doc/{bash.1,bashref.texi} + - document new behavior of `0' offset when using substring expansion + with the positional parameters -lib/readline/text.c - - in rl_quoted_insert(), don't mess around with the tty signals if - running in `callback mode' +support/shobj-conf + - changes to shared object creation for loadable builtins on Mac OS X + 10.4 to use libtool instead of ld by specifying -dynamiclib + argument and changing options to be appropriate for libtool. This + winds up creating a dynamic shared library instead of an executable -lib/readline/vi_mode.c - - changed set-mark, goto-mark, change-char, and char-search to work - when called by callback functions + 11/24 + ----- +{jobs,nojobs}.c + - don't set last_asynchronous_pid to the child's pid in the child + for asynchronous jobs (for compatibility -- all other posix shells + seem to do it this way). This means that (echo $! )& echo $! should + display two different pids. Fix from discussion on the + austin-group-l list - 5/17 - ---- +builtins/mkbuiltins.c + - change builtins.c file generation so short doc strings are marked for + gettext and available for subsequent translation. Suggestion by + Benno Schulenberg -lib/readline/rlprivate.h - - new struct declaration for a `reading key sequence' context +builtins/{bind,cd,hash,inlib,printf,pushd,test,times,ulimit}.def +lib/malloc/malloc.c +{shell,subst}.c + - fix a few strings that were not marked as translatable. Fix from + Benno Schulenberg -lib/readline/readline.c - - new variable, _rl_dispatching_keymap, keeps track of which keymap - we are currently searching - - functions to allocate and deallocate contexts for reading multi-char - key sequences +lib/readline/misc.c + - new function, _rl_revert_all_lines(void). Goes through history, + reverting all entries to their initial state by undoing any undo + lists. - 5/18 - ---- lib/readline/rlprivate.h - - new struct defining a context for multiple-key key sequences (the - base case is escape-prefixed commands) - -lib/readline/readline.c - - change structure of _rl_dispatch_subseq to allow for callback code - to use it - rudimentary support for supporting the existing - recursion using a stack of contexts, each with a reference to the - previous - - fix so that ^G works when in callback mode + - extern declaration for _rl_revert_all_lines -lib/readline/callback.c - - call the appropriate multiple-key sequence callback if the state is - set +rldefs.h + - add #undef HAVE_STRCOLL if STRCOLL_BROKEN is defined, prep to move + from config.h.in. Problem reported by Valerly Ushakov + - 5/19 - ---- + 11/25 + ----- lib/readline/readline.c - - broke code from _readline_internal_char after call to rl_dispatch - out into separate function: _rl_internal_char_cleanup, callable by - other parts of the code - - change _rl_internal_char_cleanup to unset _rl_want_redisplay after - it calls (*rl_redisplay_func) - -lib/readline/callback.c - - call _rl_internal_char_cleanup from rl_callback_read_char when - appropriate - - 5/24 - ---- -lib/readline/callback.c - - use _rl_dispatch_callback and a chain of _rl_keyseq_contexts to - simulate the recursion used to decode multicharacter key sequences - (even things like ESC- as meta-prefix) - - call setjmp in rl_callback_read_char to give things like rl_abort - a place to jump, since the saved location in readline() will not - be valid - - keep calling _rl_dispatch_callback from rl_callback_read_char while - we are still decoding a multi-key key sequence - - keep calling readline_internal_char from rl_callback_read_char while - we are reading characters from a macro + - call _rl_revert_all_lines from readline_internal_teardown if the + variable _rl_revert_all_at_newline is non-zero + - declare _rl_revert_all_lines initially 0 -lib/readline/macro.c - - use a slightly different strategy upon encountering the end of a macro - when using the callback interface: when the last character of a - macro is read, and we are reading a command, pop the macro off the - stack immediately so the loop in rl_callback_read_char terminates - when it should + 11/27 + ----- +doc/{bash.1,bashref.texi} + - make sure to be explicit that `typeset +r' cannot remove the readonly + attribute from a variable -lib/readline/readline.c - - if longjmp() is called and we end up at the saved location while - using the callback interface, just return -- don't go back into a - blocking read - - new function to dispose a chain of rl_keyseq_cxts - - only read new input in _rl_dispatch_callback if the KSEQ_DISPATCHED - flag is not set in the current keyseq context -- if it is, we are - traversing the chain back up and should use what we already saved - - use -3 as a magic value from _rl_dispatch_subseq to indicate that - we're allocating a new context and moving downward in the chain - (a special return value for the benefit of _rl_dispatch_callback) + 11/28 + ----- +lib/sh/zmapfd.c + - new file, implements zmapfd(), which takes a file and returns its + contents in a string -lib/readline/rlprivate.h - - new extern declaration for _rl_keyseq_chain_dispose +externs.h + - extern declaration for zmapfd - 6/1 - --- -builtins/read.def - - fixed a bug that occurred when reading a set number of chars and - the nth char is a backslash (read one too many). Bug reported by - Chris Morgan + 11/29 + ----- +builtins/evalfile.c + - in _evalfile, use zmapfd to read the contents of the file into a + string, rather than using the size reported by stat and reading that + many characters, if the file is not a regular file (for things like + named pipes, stat reports the size as 0) -execute_cmd.c - - fix execute_builtin so the `unset' builtin also operates on the - temporary environment in POSIX mode (as well as source and eval), - so that unsetting variables in the temporary environment doesn't - leave them set when unset completes. Report by Eric Blake - + 12/3 + ---- +lib/sh/snprintf.c + - make sure number() sets the FL_UNSIGNED flag for %x and %X, so + fmtulong treats them as unsigned numbers. Fixes bug reported by + James Botte -array.c - - fix from William Park for array_rshift when shifting right on an - empty array -- corrects calculation of array->max_index + 12/13 + ----- +lib/readline/util.c + - new function, _rl_ttymsg, for internal warning messages -- does + redisplay after printing message + - new function, _rl_errmsg, for internal warning/error messages -- + does not do redisplay after printing message -builtins/exec.def - - if an exec fails and the execfail option is set, don't call - restart_job_control unless the shell is interactive or job_control - is set +lib/readline/rlprivate.h + - new extern declaration for _rl_ttymsg, _rl_errmsg -jobs.c - - add a run-time check for WCONTINUED being defined in header files - but rejected with EINVAL by waitpid(). Fix from Maciej Rozycki - +lib/readline/{bind,callback,complete,display,rltty}.c + - use _rl_ttymsg/_rl_errmsg instead of direct writes to stderr - 6/20 - ---- -bashhist.c - - make sure calls to sv_histchars are protected by #ifdef BANG_HISTORY - - ditto for calls to history_expand_line_internal +lib/sh/tmpfile.c + - in get_tmpdir(), make sure that $TMPDIR names a writable directory; + otherwise skip it. This catches names longer than PATH_MAX, but in + case it doesn't test that the length does not exceed PATH_MAX. Fixes + heap overrun bug reported by Eric Blake - 6/23 - ---- -doc/bashref.texi - - remove extra blank lines in @menu constructs + 12/16 + ----- +builtin/{set,declare,shopt,trap,wait,bind,complete,enable,fc,history,read,setattr}.def +doc/{bash.1,bashref.texi} + - improvements and clarifications to the help text associated with + several builtins, in some cases bringing them into line with the + man page text. From Benno Schulenberg -variables.c - - assign export_env to environ (extern char **) every time it changes - (mostly in add_to_export_env define), so maybe getenv will work on - systems that don't allow it to be replaced +doc/{bash.1,bashref.texi} + - add `E' and `T' to the synopsis of the set builtin. + From Benno Schulenberg - 6/29 - ---- -bashline.c - - in bash_directory_completion_hook, be careful about not turning `/' - into `//' and `//' into `///' for benefit of those systems that treat - `//' as some sort of `network root'. Fix from Eric Blake - +builtins/{break,exit,fg_bg,hash,jobs,type,ulimit}.def +builtins/{common,evalfile}.c +{error,expr,jobs,mksyntax,nojobs,shell,subst,version,siglist}.c + - add gettextizing marks to untranslated strings + From Benno Schulenberg -lib/readline/complete.c - - in to_print, do the right thing after stripping the trailing slash - from full_pathname: // doesn't turn into /, and /// doesn't become - //. Fix from Eric Blake + 12/19 + ----- +builtins/common.c + - change display_signal_list (used by `trap -l' and `kill -l') to use + five columns instead of 4 to display signal names - 6/30 - ---- -lib/malloc/trace.c - - include if it's available for a definition of size_t +builtins/help.def + - use the true terminal width instead of assuming 80 when displaying + help topics, leaving two characters of whitespace between horizontal + descriptions instead of 1 + - change to print in columns with entries sorted down rather than across + (that is, like `ls' rather than `ls -x'). Change inspired by Benno + Schulenberg -jobs.c - - in wait_for, if a child process is marked as running but waitpid() - returns -1/ECHILD (e.g., when the bash process is being traced by - strace), make sure to increment c_reaped when marking the child as - dead - - in without_job_control, make sure to close the pgrp pipe after - calling start_pipeline +jobs.h + - give values to the JOB_STATE enumerations so they can be used as + bitmasks, too - 7/1 - --- -Makefile.in - - only remove pathnames.h when the other files created by running - configure are removed (e.g., Makefile). Fix from William Park + 12/22 + ----- +doc/{bash.1,bashref.texi} + - change description of `set' to make it clearer that you can use + `+' to turn off options + - clarify in the description of word splitting that sequences of + IFS whitespace at the beginning or end of the string are ignored -lib/sh/shquote.c - - since backslash-newline disappears when within double quotes, don't - add a backslash in front of a newline in sh_double_quote. Problem - reported by William Park + 12/26 + ----- +doc/bashref.texi + - move `shopt' builtin to its own section; change internal references + from `Bash Builtins' to the new shopt builtin + - new section for builtins that modify shell behavior in `Shell + Builtin Commands'; move set and shopt to new section. Changes + inspired by Benno Schulenberg -jobs.c - - in notify_of_job_status, don't print status messages about - terminated background processes unless job control is active +{redir,subst}.c + - add MT_USETMPDIR flag to calls to sh_mktmpfd and sh_mktmpname. Bug + reported by Eric Blake -bashhist.c - - new variable, hist_last_line_pushed, set to 0 in really_add_history - (used by `history -s' code) +{configure,Makefile}.in + - changes so that the pathname for DEBUGGER_START_FILE is substituted + into pathnames.h at make time (allowing more flexibility in setting + `prefix' or `datadir') instead of at configure time. Suggested by + Nick Brown -bashhist.h - - new extern declaration for history -s +shell.c + - declaration for have_devfd; initialized from HAVE_DEV_FD + - declaration for check_jobs_at_exit; initialized to 0 + - declaration for autocd; initialized to 0 -builtins/history.def - - don't remove last history entry in push_history if it was added by - a call to push_history -- use hist_last_line_pushed as a sentinel - and set it after adding history entry. This allows multiple - calls to history -s to work right: adding all lines to the history - rather than deleting all but the last. Bug reported by Matthias - Schniedermeyer - - pay attention to hist_last_line_pushed in expand_and_print_history() - so we don't delete an entry pushed by history -s +variables.c + - new dynamic variable, BASHPID, always set from return value from + getpid() (changes even when $$ doesn't change). Idea from Bruce + Korb - 7/4 - --- -print_cmd.c - - fix print_arith_for_command to not print so many blanks between - expressions in ((...)) +builtins/exit.def + - if check_jobs_at_exit is non-zero, list jobs if there are any stopped + or running background jobs; don't exit shell if any running jobs -command.h - - new word flag: W_DQUOTE. Means word should be treated as if double - quoted +execute_cmd.c + - in execute_simple_command, if the first word of a simple command is + a directory name (after looking for builtins, so `.' isn't caught) + that isn't found in $PATH, and `autocd' is non-zero, prefix a "cd" + to the command words -make_cmd.c - - add W_DQUOTE to word flags in make_arith_for_expr +builtins/shopt.def + - new `checkjobs' option, changes value of check_jobs_at_exit + - new `autocd' option, changes value of autocd -parse.y - - add W_DQUOTE to word flags for (( ... )) arithmetic commands +pcomplete.c + - add COMP_TYPE, set to rl_completion_type, to list of variables set + by bind_compfunc_variables and unset by unbind_compfunc_variables -subst.c - - don't perform tilde expansion on a word with W_DQUOTE flag set - - don't perform process substitution on a word with W_DQUOTE flag set +doc/{bash.1,bashref.texi} + - document BASHPID + - document new shopt `checkjobs' option + - document new shopt `autocd' option + - document COMP_TYPE completion variable -arrayfunc.c - - expand an array index within [...] the same way as an arithmetic - expansion between (( ... )) + 12/29 + ----- +aclocal.m4 + - in BASH_SYS_SIGLIST, check HAVE_DECL_SYS_SIGLIST instead of the + obsolete and no-longer-supported SYS_SIGLIST_DECLARED -lib/readline/input.c - - use getch() instead of read() on mingw + 12/30 + ----- +lib/readline/vi_mode.c + - add ` (backquote) to the list of vi motion characters + - in rl_vi_delete_to, rl_vi_change_to, and rl_vi_yank_to, don't delete + character under the cursor if the motion command moves the cursor + backward, so add F and T to the commands that don't cause the + mark to be adjusted + - add ` to the characters that don't cause the mark to be adjusted + when used as a motion command, since it's defined to behave that way + - when a motion character that may adjust the mark moves point + backward, don't adjust the mark so the character under the cursor + isn't deleted -lib/readline/readline.c - - add a few key bindings for the arrow keys on mingw +lib/readline/complete.c + - add variable rl_sort_completion_matches; allows application to + inhibit match list sorting + - add variable rl_completion_invoking_key; allows applications to + discover the key that invoked rl_complete or rl_menu_complete -lib/readline/rldefs.h - - if on mingw, define NO_TTY_DRIVER +lib/readline/readline.h + - extern declarations for rl_completion_invoking_key and + rl_sort_completion_matches -lib/readline/rltty.c - - compile in the stub functions for _rl_{disable,restore}_tty_signals - if on mingw - - compile in stub function for rl_restart_output on mingw - - make sure enough functions and macros are defined to compile if - NO_TTY_DRIVER is defined (lightly tested - builds on MacOS X, at - least) +lib/readline/doc/rltech.texi + - documented rl_completion_invoking_key and rl_sort_completion_matches - 7/7 - --- -command.h - - add a `flags' member to the PATTERN_LIST structure +pcomplete.c + - export variable COMP_KEY to completion functions; initialized from + rl_completion_invoking_key; unset along with rest of completion + variables -make_cmd.c - - intialize the `flags' member of a PATTERN_LIST when it's created +doc/{bash.1,bashref.texi},lib/readline/doc/rluser.texi + - document COMP_KEY -builtins/psize.c - - protect extern declaration of errno with usual #ifdef errno +[many files] + - changes to make variables and function parameters `const' for better + text sharing. Changes originally from Andreas Mohr + -configure.in, variables.c - - changes for QNX 6.x + 1/4/2007 + -------- +lib/intl/Makefile.in + - use cmp before copying libgnuintl.h to libintl.h -- maybe save a few + rebuilds - 7/9 +lib/builtins/Makefile + - fixes to build LIBINTL_H if necessary, dependency on this for + mkbuiltins.o prevented `make -j 6' from working correctly + + 1/8 --- -parse.y - - fix parse_matched_pair to handle single and double quoted strings - inside old-style command substitution (``) since they can each - quote the ` and embedded $-expansions. Report by Eric Blake - +subst.c + - new function, fifos_pending(), returns the count of FIFOs in + fifo_list (process substitution) -{configure,Makefile}.in - - TILDE_LIB is now substituted into Makefile by configure +subst.h + - extern declaration for fifos_pending() -configure.in - - if configuring --with-installed-readline on cygwin, set TILDE_LIB - to the empty string to avoid multiply-defined symbols. Cygwin - doesn't allow undefined symbols in dynamic libraries. Report by - Eric Blake +execute_cmd.c + - in execute_simple_command, if CMD_NO_FORK is set before we call + execute_disk_command, make sure there are no FIFOs in the expanded + words (from process substitution) and turn off CMD_NO_FORK if there + are, so they can get unlinked when the command finishes - 7/11 + 1/10 ---- -input.c - - in duplicate_buffered_stream, don't call free_buffered_stream if the - two buffered streams share the same b_buffer object (e.g., if they - had already been duplicated with a previous call). Fixes Debian bug - reported by eero17@bigfoot.com +subst.c + - read_comsub now takes a flags parameter and returns appropriate W_* + flags in it + - command_substitute now returns a WORD_DESC *, with the string it used + to return as the `word' and `flags' filled in appropriately - 7/12 +subst.h + - changed extern declaration for command_substitute + +{pcomplete,subst}.c + - changed callers of command_substitute appropriately + +subst.c + - string_extract_verbatim now takes an additional int flags argument; + changed callers + + 1/11 ---- -shell.c - - make set_shell_name more resistant to a NULL argument - - in bind_args, use < instead of != when counting the arguments and - making the arg list - - in main(), make sure arg_index is not initialized to a value greater - than argc +support/texi2html + - fix problem that caused index links to not be generated if the first + index node had a name different than the node name - 7/14 +doc/bashref.texi + - encapsulated all indexes into a single `Indexes' appendix; works + around bug fixed in texi2html + + 1/12 ---- -lib/readline/display.c - - in expand_prompt, don't set the location of the last invisible - char if the sequence is zero length (\[\]) +subst.c + - add call to sv_histtimefmt in initialize_variables so HISTTIMEFORMAT + from the environment is honored. Fix from Ark Submedes (heh) + - 7/15 +lib/readline/histfile.c + - make sure that the first character following the history comment + character at the beginning of a line is a digit before interpreting + it as a timestamp for the previous line + +doc/{bash.1,bashref.texi},lib/readline/doc/hsuser.texi + - added detail to make it clear exactly how history timestamps are + saved to and read from the history file + +subst.c + - change quote_escapes to add CTLESC before spaces if IFS is null, + just in case we have to split on literal spaces later on (e.g., in + case of unquoted $@). Corresponding changes to dequote_escapes. + Fixes a couple of problems reported by Brett Stahlman + + + 1/14 ---- -doc/{bash.1,bashref.texi} - - document that the shell uses $TMPDIR when creating temporary files +subst.c + - make same change to read_comsub to add CTLESC before ' ' if $IFS is + null, since we will split on literal spaces later - 7/20 + 1/15 ---- -[bash-3.1-alpha1 frozen] +array.c + - new function, array_quote_escapes (ARRAY *a), calls quote_escapes + on each element of the array in the same way array_quote calls + quote_string + - call array_quote_escapes if match is not quoted in array_patsub + - array_slice is now used, so remove the #ifdef INCLUDE_UNUSED define + - change structure of array_subrange to call array_slice to create a + new array with the desired subset of elements, then call array_quote + or array_quote_escapes as necessary, like array_patsub. Convert to + a string by calling array_to_string on the sliced-out array - 7/29 +array.h + - new extern declaration for array_quote_escapes + +subst.c + - since array_patsub now calls quote_escapes as necessary, callers + don't need to call it after array_patsub returns. Fixes first bug + reported by Brett Stahlman + - since array_subrange now calls quote_escapes as necessary, callers + don't need to call it after array_patsub returns. Same fix as + for array_patsub + + 1/31 ---- -builtins/evalstring.c - - make sure that parse_and_execute saves and restores the value of - loop_level, so loops in sourced scripts and eval'd strings don't - mess up the shell's parser state +configure.in + - add -DSOLARIS to LOCAL_CFLAGS for solaris x -bashline.c - - change command_subst_completion_function to suppress appending - any character to a unique completion, instead of a space, unless - the last word in the quoted command substitution completes to a - directory name. In that case we append the expected slash +config-bot.h + - don't #undef HAVE_GETCWD if GETCWD_BROKEN and SOLARIS are both + defined. Solaris's loopback mount implementation breaks some of the + file system assumptions the replacement getcwd uses. - 8/1 - --- -builtins/printf.def - - make sure variables are initialized if their values are tested later +builtins/common.c + - if GETCWD_BROKEN is defined, call getcwd with PATH_MAX for the size + argument, so it will allocate a buffer for the current working dir + with that size, instead of one that's `big enough' -[bash-3.1-alpha1 updated and re-frozen] +config.h.in + - add #undef PRI_MACROS_BROKEN for AIX 4.3.3 - 8/2 - --- -variables.c - - make sure to call stifle_history with an `int' instead of an intmax_t. - Sometimes it makes a difference +pathexp.h + - new flag value for quote_string_for_globbing: QGLOB_REGEXP (quoting + an ERE for matching as a string) - 8/3 - --- -[bash-3.1-alpha1 released] +pathexp.c + - change quote_string_for_globbing to understand QGLOB_REGEXP -support/mksignames.c - - add `SIGSTKFLT' (RHE3) - - add `SIGXRES' (Solaris 9) +execute_cmd.c + - change execute_cond_node to pass 2 (regexp match), 1 (shell pattern + match), or 0 (no matching) to cond_expand_word - 8/4 +subst.c + - change cond_expand_word to translate SPECIAL==2 into passing + QGLOB_REGEXP to quote_string_for_globbing + +locale.c + - by default, if all else fails, set shell's idea of locale to "" + instead of its idea of `default_locale' -- the library functions + behave better with that value + + 2/2 --- -builtins/ulimit.def - - fix typo to make `x' the right option for locks - - add new options to short help synopsis +builtins/printf.def + - if PRI_MACROS_BROKEN is defined, #undef PRIdMAX (AIX 4.3.3 broken) -variables.c - - use get_variable_value instead of direct reference to value_cell - in make_variable_value when appending to the current value, so - references to array variables without subscripts will be equivalent - to element 0 + 2/3 + --- +Makefile.in,{builtins,doc}/Makefile.in,lib/*/Makefile.in + - add assignment for datarootdir as per GNU coding standards + +Makefile.in,builtins/Makefile.in,lib/intl/Makefile.in,po/Makefile.in.in + - use @localedir@ instead of $(datadir)/locale in assignment + + 2/13 + ---- +jobs.c + - fix compact_jobs_list to not return js.j_lastj, since that is in use + and should not be overwritten. Fix from Len Lattanzi + + 2/16 + ---- lib/readline/text.c - - rewrote rl_change_case to correctly change the case of multibyte - characters where appropriate + - change rl_forward_char to allow moving to the end of the line when + using the arrow keys in vi insertion mode, rather than having the + behavior identical between vi command and insertion modes. Change + suggested by Hugh Sasse - 8/5 - --- -configure.in - - remove call to obsolete macro AC_ACVERSION - - remove special calls to AC_CYGWIN and AC_MINGW32; AC_CANONICAL_HOST - takes care of those cases + 2/19 + ---- +CWRU/audit-patch + - patch from Steve Grubb of RedHat to make bash + audit root's behavior by logging commands using his audit + framework. Enabled if the shell's name is `aubash'. -general.h - - include `chartypes.h' for definition of ISALPHA - - fix definitions of ABSPATH and RELPATH for cygwin - - fix definition of ISDIRSEP for cygwin to allow backslash as a - directory name separator + 3/8 + --- +jobs.c + - use WSTATUS (p->status) instead of bare p->status. Fix from + Jim Brown - 8/9 + 3/9 --- -builtins/setattr.def - - when setting a variable from the temporary environment in - set_var_attribute (e.g., `LC_ALL=C export LC_ALL'), make sure to - call stupidly_hack_special_variables after binding the variable in - the current context +lib/readline/{complete,input,isearch,misc,readline,text,vi_mode}.c + - make sure cases where rl_read_key returns -1 (usually due to EIO + because the controlling tty has gone away) are handled correctly. + Prompted by report from Thomas Loeber -builtins/printf.def - - make sure to call stupidly_hack_special_variables if using `printf -v' - to put formatted output in a shell variable + 3/10 + ---- +sig.c + - new function, top_level_cleanup, callable from contexts where some + cleanup needs to be performed before a non-fatal call to + jump_to_top_level - 8/11 +sig.h + - new extern declaration for top_level_cleanup + +builtins/common.c + - add calls to top_level_cleanup before calls to jump_to_top_level + in a builtin command context (no_args(), get_numeric_arg()). Fixes + bug reported by Ian Watson + +lib/readline/display.c + - in _rl_move_cursor_relative, use `new' when comparing against + the last invisible character in the prompt, since they both denote + buffer indices when in a multibyte locale, whereas `dpos' is a + display position + + 3/13 ---- -support/shobj-conf - - new variable: SHLIB_LIBPREF, prefix for shared library name (defaults - to `lib' - - new variable: SHLIB_DLLVERSION, used on Cygwin to set the library - version number - - new variable: SHLIB_DOT, separator character between library name and - suffix and version information (defaults to `.') - - new stanza for cygwin to generate windows-compatible dll +lib/readline/complete.c + - set rl_completion_append_character to the default (' ') in + set_completion_defaults(). Fixes bug reported by David Emerson + - 8/14 + 3/23 ---- -variables.c - - new special variable function for Cygwin, so the export environment - is remade when HOME is changed. The environment is the only way to - get information from the shell to cygwin dlls, for instanace, when - bash is compiled to use an already-installed libreadline +builtins/evalfile.c + - make sure read() returns a value >= 0 before using it as an index + into string[] + - use a variable of type `ssize_t' for return value from read() + - only try to read the entire contents of a regular file in one shot + if the file size is less than SSIZE_MAX. These fix problems + reported by hooanon05@yahoo.co.jp. -variables.h - - new extern declaration for sv_home +include/typemax.h + - define SSIZE_MAX as 32767 if it's not defined - 8/15 - ---- lib/readline/display.c - - call init_line_structures from rl_redisplay if vis_lbreaks == 0 - to avoid consequences of a poorly-timed SIGWINCH + - in rl_redisplay() and update_line(), if redrawing the prompt because + it contains invisible characters, make sure we redraw the character + indicating a modified history line and take it into account when + computing _rl_last_c_pos + - in update_line, if deleting characters and redrawing the new text, + make sure we adjust _rl_last_c_pos by wrap_offset in a multibyte + locale if the text we're drawing starts before or at the last + invisible character in the prompt string. Fixes bug reported on + bug-readline by J Pelkey - 8/16 +parse.y + - when adding at CTLESC character to the current token, do not + escape it with CTLESC if pass_next_character indicates that the + CTLESC was escaped by a backslash. Fixes bug reported by + Paul Bagshaw . + + 3/25 ---- +lib/readline/text.c + - in rl_forward_char, short-circuit the loop if in emacs mode and + rl_point == rl_end. Fixes problem with multibyte locales + reported by Len Lattanzi + + 3/29 + ---- +command.h + - new flag for subshell_environment: SUBSHELL_PROCSUB, for process + substitution + subst.c - - fix logic for performing tilde expansion when in posix mode (don't - rely on W_TILDEEXP flag always being set, because it won't be when - expanding the RHS of assignment statement). Use W_TILDEEXP only - when deciding to expand a word marked as W_ASSIGNMENT that doesn't - precede a command name + - add SUBSHELL_PROCSUB to subshell_environment in process_substitute - 8/17 + 3/30 ---- -execute_cmd.c - - in execute_function, when subshell == 1, don't short-cut by using - the command contained in the group command -- if you do, any - redirections attached to the group command (function) don't get - executed +doc/Makefile.in + - fix installation of bash.info to understand that it is in the build + directory, not the source directory -general.h - - new #define, FS_READABLE, indicates file is readable by current - user +mailcheck.c + - new function, init_mail_dates, calls remember_mail_dates only if + there are no mailboxes in `mailfiles' + - new function, init_mail_file, initializes a FILEINFO, using the + last time mail was checked as the mtime and atime (or the time the + shell was started if last_time_mail_checked is uninitialized) + - call init_mail_file instead of update_mail_file in add_mail_file, + called from remember_mail_dates (which is supposed to initialize + the list of mail files) + - new convenience functions, alloc_mail_file and dispose_mail_file to + allocate and free FILEINFO structs + +mailcheck.h + - extern declaration for init_mail_dates -findcmd.c - - rewrote file_status to use S_xxx POSIX file mode bits and to add - support for FS_READABLE (affects ./source and searching $PATH for - scripts whose names are supplied as arguments on the command line) - - change find_path_file to look for readable files -- source requires - it - - change find_in_path_element to do the right thing when FS_READABLE - is supplied as a flag +shell.c + - call init_mail_dates instead of remember_mail_dates -doc/bashref.texi - - remove note about posix non-compliance in `.': we now require and - look for readable files when searching $PATH + 4/4 + --- +builtins/read.def + - changes to print $PS2 when a line is continued with a backslash in + an interactive shell. This is as POSIX requires - 8/20 - ---- + 4/5 + --- subst.c - - fix setifs to handle case where passed variable is non-zero but - v->value == 0 (as in an unset local variable); treat IFS as unset - in this case + - make sure quote_escapes is only ever called when the word to be + escaped is not marked as double-quoted -- cleaner, and allows us + to make certain assumptions -jobs.c - - in kill_pid, if asked to killpg a process or pgrp whose pgrp is - recorded as the same as the shell's, just call killpg and let the - chips fall where they may -- there may be other processes in that - pgrp that are not children of the shell, so killing each process - in the pipeline will not do a complete job, and killpg'ing each - such process will send too many signals in the majority of cases + 4/6 + --- +subst.c + - change all EX_* defines to begin with SX_ + - new flag, SX_NOCTLESC, obeyed by string_extract_verbatim, tells it + to not obey CTLESC quoting + - change quote_escapes to not quote CTLESC with CTLESC if one of the + chars in $IFS is CTLESC, since the return value from quote_string + will be passed to word splitting and filename generation + - change read_comsub to do the same thing for unquoted command + substitutions + - change list_string to pass SX_NOCTLESC if CTLESC is one of the + chars in $IFS, so it will split on CTLESC instead of using it as a + quote character -builtins/cd.def - - in posix mode, pwd needs to check that the value it prints and `.' - are the same file + 4/7 + --- +subst.c + - slight change to string_extract_verbatim to allow CTLESC to quote + CTLNUL even if SX_NOCTLESC is set in the flags passed, to protect + the CTLNULs from future calls to remove_quoted_nulls. Only + matters when $IFS contains CTLESC + - changes to cope with $IFS containing CTLNUL in the same way as the + CTLESC changes builtins/read.def - - if reading input from stdin in a non-interactive shell and calling - `read', call sync_buffered_stream to seek backward in the input - stream if necessary (XXX - should we do this for all shell builtins?) + - changes to cope with $IFS containing CTLNUL in the same way as the + CTLESC changes - 8/23 + 4/16 ---- -builtins/cd.def - - in posix mode, if canonicalization of the absolute pathname fails - because the path length exceeds PATH_MAX, but the length of the passed - (non-absolute) pathname does not, attempt the chdir, just as when - not in posix mode +lib/sh/strftime.c + - a couple of fixes to the `%z' code -builtins/type.def - - don't have describe_command call sh_makepath if the full path found - is already an absolute pathname (sh_makepath will stick $PWD onto the - front of it) +eval.c + - add an fflush after printing the auto-logout message - 8/24 + 4/24 ---- +subst.c + - add call to top_level_cleanup in exp_jump_to_top_level to get things + like unwind-protects and the loop levels cleaned up -jobs.c - - in posix mode, don't have start_job print out and indication of - whether the job started by `bg' is the current or previous job - - change start_job to return success if a job to be resumed in the - background is already running. This means that bg won't fail when - asked to bg a background job, as SUSv3/XPG6 requires - - new function, init_job_stats, to zero out the global jobstats struct +{arrayfunc,expr,variables}.c + - add calls to top_level_cleanup before jump_to_top_level() -{jobs,nojobs}.c - - change kill_pid to handle pids < -1 by killing process groups + 4/27 + ---- +builtins/complete.def + - make sure the `command' argument to the -C option is printed with + single quotes, since multi-word commands will require them. Bug + reported by martin@snowplow.org -jobs.h - - extern declaration for init_job_stats +execute_cmd.c + - change execute_builtin_or_function and execute_subshell_builtin_or_function + to call fflush(stdout) after the builtin or function returns, to + make sure that all output is flushed before the call returns. It + matters on cygwin. Fix suggested by Eric Blake -lib/readline/history.c - - check whether or not the history list is null in remove_history +redir.c + - in do_redirection_internal, if the file descriptor being acted upon + is the same one used by the stdout stream, call fflush(stdout) to + make sure all output is flushed before changing the underlying fd + out from underneath stdio. Fix suggested by Eric Blake -builtins/history.def - - delete_last_history is no longer static so fc builtin can use it + + 4/30 + ---- + +builtins/common.c + - new function, sh_chkwrite(int), fflushes stdout and checks for error; + printing an error message and returning a new exit status if there's + an error on stdout. Takes exit status as argument; returns new exit + status (EXECUTION_FAILURE if write error) + +builtins/common.h + - new extern declaration for sh_chkwrite + +builtins/{alias,cd,complete,echo,fc,history,pushd,shopt,times,trap,type,ulimit,umask}.def + - change to use sh_chkwrite to report write errors builtins/fc.def - - use free_history_entry in fc_replhist instead of freeing struct - members individually - - call delete_last_history from fc_replhist instead of using inline - code - - if editing (-l not specified), make sure the fc command that caused - the editing is removed from the history list, as POSIX specifies + - if an error occurs while writing commands from the history to a file + to be executed, report a write error and return failure without + attempting to execute any commands -builtins/kill.def - - just call kill_pid with any pid argument and let it handle pids < -1 - This is the only way to let kill_pid know whether a negative pid or - a job spec was supplied as an argument to kill + 5/1 + --- +builtins/{bind,declare,set,setattr}.def + - change to use sh_chkwrite to report write errors -builtins/fg_bg.def - - force fg_bg to return EXECUTION_SUCCESS explicitly if called by bg - and start_job returns successfully - - bg now returns success only if all the specified jobs were resumed - successfully + 5/2 + --- +lib/readline/input.c + - fix off-by-one errors in _rl_get_char (pop_index) and rl_stuff_char + (push_index) that caused the 511th character in the buffer to be + discarded. Fixes bug reported by Tom Bjorkholm -execute_cmd.c - - call init_job_stats from initialize_subshell to zero out the global - job stats structure + 5/8 + --- +subst.c + - fix parameter_brace_remove_pattern to pass getpattern() newly-allocated + memory. If word expansions (particularly brace expansions) are + required, the expansion code will free the string passed to + expand_word_internal, and we don't want to free unallocated memory + (patstr++) or have duplicate frees (patstr). Fixes bug reported on + Red Hat bugzilla - 8/25 + 5/9 + --- +lib/readline/signals.c + - fix bug in rl_set_signals that caught SIGINT twice and didn't catch + SIGTERM. Bug reported by Ed Kwan + + 5/18 ---- -bashline.c - - change vi_edit_and_execute_command to just call vi when in posix - mode, instead of checking $FCEDIT and $EDITOR +jobs.c + - change compact_jobs_list to return 1 if js.j_lastj == 0 and there is + a job in jobs[0]; compact_jobs_list should never return an index + already occupied + - change reset_job_indices to avoid infinite looping when js.j_firstj + == 0 or js.j_firstj == js.j_jobslots upon function entry. Fixes + bug reported by osicka@post.cz -lib/readline/search.c - - if in vi_mode, call rl_free_undo_list in make_history_line_current - to dispose of undo list accumulated while reading the search string - (if this isn't done, since vi mode leaves the current history - position at the entry which matched the search, the call to - rl_revert_line in rl_internal_teardown will mangle the matched - history entry using a bogus rl_undo_list) - - call rl_free_undo_list after reading a non-incremental search string - into rl_line_buffer -- that undo list should be discarded + 5/20 + ---- -lib/readline/rlprivate.h - - add UNDO_LIST * member to search context struct +execute_cmd.c + - new variable, executing_builtin, keeps track of number of "levels" + of builtins being executed; incremented by execute_builtin; saved + and restored by execute_simple_command -lib/readline/isearch.c - - initialize UNDO_LIST *save_undo_list member of search context struct +subst.c + - new variable, assigning_in_environment, set and unset around calls + to assign_in_env by the expansion code - 8/27 +variables.c + - use executing_builtin and assigning_in_environment to decide whether + or not to look into temporary_env when calling find_variable_internal. + Fixes problem reported by Kevin Quinn + + 5/22 ---- -lib/readline/bind.c - - change rl_parse_and_bind to strip whitespace from the end of a - variable value assignment before calling rl_variable_bind +redir.c + - change add_undo_redirect to differentiate between file descriptors + greater than SHELL_FD_BASE (currently 10) used internally to save + others and then being the targets of user redirection and fds that + are just the target of user redirections. The former need to have + an `exec undo' redirect added to undo it in case exec throws away + redirections; the latter does not. We use the close-on-exec flag + for this: if it's set, we assume that the file descriptor is being + used internally to save another. Fixes problem reported by Ian + Jackson -doc/bash.1,lib/readline/doc/{rluser.texi,readline.3} - - clarified the language concerning parsing values for boolean - variables in assignment statements +shell.c + - new function, init_interactive_script(), does interactive initialization + for a script run with `bash -i script' -- does everything the same + as init_interactive except set `interactive == 1', which causes the + shell to read from the standard input, after calling + init_noninteractive + - call init_interactive_script if a script is run as `bash -i script'. + Fixes problem reported by Joseph Michaud - 8/28 + 5/24 ---- -lib/sh/pathphys.c - - fix small memory leak in sh_realpath reported by Eric Blake +builtins/printf.def + - change vbadd to only call FASTCOPY if the passed buffer length is + > 1 + - if the `-v' option is supplied and `vbuf' is already non-null from a + previous `printf -v var' call, set vbuf[0]=0 explicitly instead of + relying on vbadd to do it -- vbadd may not be called. + - fix PRETURN macro to set vbuf[0] == 0 if vbuf is not freed. These + should fix problem reported by Elmar Stellnberger - 8/31 +lib/readline/display.c + - fix update_line to deal with the case where col_lendiff > 0 (meaning + the new string takes up more screen real estate than the old) but + lendiff < 0 (meaning that it takes fewer bytes to do so). This can + happen when a multibyte prompt string is replaced with a longer one + containing only single-byte characters (e.g., when doing a reverse + i-search). Fixes gentoo bug reported by Peter Volkov + + +builtins/read.def + - make sure we only print $PS2 if the standard input is a terminal + - new function, read_mbchar, to read a multibyte character so we + can make sure we read entire multibyte chars when `read -n' is + used, rather than bytes. Only called when -n is supplied. + Fixes problem reported by Stanislav Brabec + + 5/25 ---- -doc/bashref.texi - - add additional notes to posix mode section +externs.h + - new #defines for third argument to named_function_string: + FUNC_MULTILINE (don't suppress newlines) and FUNC_EXTERNAL (convert + to external display form) - 9/3 - --- -parse.y - - if $'...' occurs within a ${...} parameter expansion within - double quotes, don't single-quote the expanded result -- the double - quotes will cause it to be expanded incorrectly +subst.h + - new extern declaration for remove_quoted_escapes - 9/4 - --- -builtins/fc.def - - if STRICT_POSIX is defined, the posix mode default for the editor to - use is $FCEDIT, then ed +subst.c + - remove_quoted_escapes is now global -shell.c - - if STRICT_POSIX is defined, initialize `posixly_correct' to 1 +print_cmd.c + - in named_function_string, if FUNC_EXTERNAL is in the flags argument, + call remove_quoted_escapes to convert from internal to external form. + Fixes bug reported by Bo Andresen -config.h.in - - add #undef STRICT_POSIX +variables.c,builtins/{declare,setattr,type}.def + - use FUNC_MULTILINE in calls to named_function_string as appropriate + - add FUNC_EXTERNAL to calls to named_function_string as appropriate - 9/5 - --- -configure.in - - add new option argument, --enable-strict-posix-default, configures - bash to be posix-conformant (including defaulting echo to posix - conformance) by default + 5/27 + ---- +{make_cmd,variables}.c + - changes to enable the shell to compile when debugger support is + configured out (function_def hash table and access functions). Fixes + bug reported by Horst Wente -builtins/echo.def - - if STRICT_POSIX is defined, default echo to xpg-style +builtins/help.def + - fix bug in `help' two-column printing to avoid referencing + shell_builtins[num_shell_builtins] -doc/bashref.texi - - describe the --enable-strict-posix-default option to configure +error.c + - in get_name_for_error, use dollar_vars[0] if the name returned from + looking in $BASH_SOURCE[0] is the empty string as well as if it's + null - 9/10 + 5/31 + ---- +arrayfunc.c + - change array_value_internal to set *RTYPE to 1 if the reference is + array[*] and 2 if the reference is array[@] + +subst.c + - in parameter_brace_expand_word, set the flags returned by the word + desc to include W_HASQUOTEDNULL if array_value returns QUOTED_NULL + for an array reference like x[*] and the word is quoted. Fixes bug + reported by Christophe Martin + + 6/1 + --- +jobs.c + - several changes to preserve errno if tcgetpgrp/tcgetattr/tcsetattr + fail, for subsequent error messages + - change initialize_job_control to turn off job control if the terminal + pgrp == -1 or is not equal to shell_pgrp (with an error message) + - in initialize_job_control, if the shell has been forced interactive + with -i, make sure stderr is hooked to a tty before using it as + the controlling terminal. If it's not, try to open /dev/tty and + assign it to shell_tty. Fixes problems reported by Derek Fawcus + + + 6/13 + ---- +support/shobj-conf + - changes to support shared object and shared library creation on AIX + 5.x and later versions. From Niklas Edmundsson + + 6/17 ---- builtins/mkbuiltins.c - - change to not generate N_(""), because the translated empty string is - special to GNU gettext + - new array of builtins, posix_builtins, containing builtins listed + as special to the command search order by POSIX + - add POSIX_BUILTIN to the builtin flags if the builtin name is one + that's special to the posix command search order - 9/13 +builtins.h + - new define, POSIX_BUILTIN, means that a builtin is special to the + posix command search order + + 6/22 ---- -lib/readline/complete.c - - a negative value for rl_completion_query_items means to not ask +lib/readline/display.c + - new macro, WRAP_OFFSET, intended to replace W_OFFSET. Takes prompt + strings longer than one physical line with invisible characters on + the second line into account when calculating the number of + invisible characters on the current screen line + - use WRAP_OFFSET where appropriate (update_line, _rl_move_cursor_relative) + - change update_line to deal with adjusting _rl_last_c_pos in a + multibyte environment when the prompt has invisible chars on the + second line and redisplay has output the invisible characters + - change _rl_move_cursor_relative to adjust _rl_last_c_pos in a + multibyte environment when the prompt has invisible chars on the + second line and the redisplay draws the invisible character. Fixes + redisplay bug reported by Andreas Schwab -lib/readline/doc/{{rltech,rluser}.texi,readline.3} - - documented new semantics for rl_completion_query_items/ - completion-query-items - 9/14 + 7/11 ---- -bashline.c - - bind M-TAB in emacs mode to dynamic-complete-history even if the - current binding is `tab-insert' (which is what it is by default), - not just if it's unbound - 9/15 +lib/readline/rltty.c + - enable flush-output code for systems other than AIX 4.1. Problem + reported by Jan Kratochvil + + 7/12 ---- -eval.c - - call QUIT before calling dispose_command on current_command after - the `exec_done' label. If we dispose current_command first, the - longjmp might restore the value of current_command after we've - disposed it, and the subsequent call to dispose_command from the - DISCARD case will free memory twice +lib/readline/display.c + - set prompt_invis_chars_first_line from the portion of the prompt + following the final newline, instead of from the prefix. Fixes + bug reported on the Ubuntu bug list by dAniel hAhler + - 9/16 + 7/13 ---- -lib/sh/strto[iu]max.c - - make sure the function being declared is not a cpp define before - defining it -- should fix problems on HP-UX +variables.c + - use native __QNX__ and __QNXNTO__ cpp defines instead of qnx and + qnx6, respectively. Patch from Sean Boudreau - 9/19 +lib/sh/getcwd.c + - #undef HAVE_LSTAT on qnx, so it uses stat instead. Patch from + Sean Boudreau + + 7/21 ---- -Makefile.in - - make sure the binaries for the tests are at the front of $PATH +builtins/common.c + - change sh_invalidnum to be a little smarter about octal and hex + numbers and change the message appropriately. Bug originally + reported on coreutils list by Jürgen Niinre - 9/22 + 7/26 ---- +test.c + - make sure the string passed to test_unop has only a single character + following the `-'. Fixes bug reported by Michael A. Smith + + parse.y - - new flag for parse_matched_pair: P_COMMAND, indicating that the - text being parsed is a command (`...`, $(...)) - - change calls to parse_matched_pair to include P_COMMAND where - appropriate - - if P_COMMAND flag is set and the text is unquoted, check for comments - and don't try to parse embedded quoted strings if in a comment (still - not exactly right yet) + - better input validation: make sure a word looks like a conditional + unary operator (-X) before calling test_unop - 9/24 + 7/28 ---- -builtins/history.def - - if running history -n, don't count these new lines as history lines - for the current session if the `histappend' shell option is set. - If we're just appending to the history file, the issue that caused - history_lines_this_session to be recalculated doesn't apply -- the - history file won't be missing any entries +trap.c + - in trap_handler, if it's called directly from the signal handler + (e.g., SIGINT sighandler, set by set_sigint_handler), but the + trap disposition has been reset to the default between the + assignment and receipt of the signal, check that the signal is + trapped and issue a warning if the shell was compiled with + debugging enabled. Fixes bug reported by Fergus Henderson + -lib/readline/isearch.c - - fix C-w handler for isearch string reader to handle multibyte chars + 8/1 + --- +lib/readline/{util,histexpand}.c + - fixes for small memory leaks from Michael Snyder -lib/readline/rlmbutil.h - - new defines for _rl_to_wupper and _rl_to_wlower + 8/18 + ---- +Makefile.in + - add dependency on builtins/builtext.h to nojobs.o list. Fixes + `make -j 5' issue reported by Chris MacGregor -lib/readline/text.c - - use _rl_to_wupper and _rl_to_wlower as appropriate +examples/loadables/Makefile.in + - add @LDFLAGS@ to SHOBJ_LDFLAGS assignment -- experimental. Suggested + by Mike Frysinger - 9/26 +examples/loadables/{basename,cut,dirname,finfo,head,ln,logname,mkdir,pathchk,print,printenv,push,realpath,rmdir,sleep,tee,truefalse,tty,uname,unlink,whoami}.c + - fix up some includes. Fix from Mike Frysinger + + 8/21 ---- -execute_cmd.c - - in shell_execve, if the exec fails due to E2BIG or ENOMEM, just print - the appropriate error message instead of checking out any interpreter - specified with #! +histexpand.c + - fix another memory leak in history_find_word. Bug report originally + from Michael Snyder ; test case suggested by Jim + Blandy - 9/30 + 8/26 ---- -bashhist.c - - make $HISTCMD available anytime remember_on_history is non-zero, - which indicates that we're saving commands to the history, and - let it evaluate to 1 if we're not +subst.c + - change to do_assignment_internal to make an assignment to a variable + with the `noassign' internal attribute not a variable assignment + error. + - fix do_assignment_internal so assignment to a `noassign' variable + does not cause it to suddenly become visible if it's currently + invisible - 10/4 + 9/3 + --- +stringlib.c + - change strsub to check whether or not temp is non-null before + trying to null-terminate it. Also make sure temp is allocated + even if the pattern and replacement strings are empty, and set + to a copy of string (like ${foo//}) + Bug report from Timo Lindfors + + 9/10 ---- -lib/sh/snprintf.c - - in floating(), make sure d != 0 before calling chkinfnan -- gcc on the - version of Solaris 9 I have translates 0 to -inf on the call +{config.h,Makefile,configure}.in,aclocal.m4 + - new tests for fpurge and __fpurge -[bash-3.1-beta1 frozen] +lib/sh/fpurge.c, externs.h + - new file, fpurge(3) implementation with external decl in externs.h - 10/6 +builtins/common.c + - add call to fpurge(stdout) to sh_chkwrite + +{redir,execute_cmd}.c + - add call to fpurge(stdout) after fflush(stdout) before changing + stdout file descriptor and after a builtin or function executes + + 9/12 ---- -jobs.c - - set the_pipeline to NULL right away in cleanup_the_pipeline, and - dispose a copy of the pointer so we don't mess with the_pipeline - while we're in the process of destroying it - - block and unblock SIGCHLD around manipulating the_pipeline in - cleanup_the_pipeline +expr.c + - make sure noeval is set to 0 when a longjmp occurs, since it will + not be reset otherwise, and it can be set to 1 while processing + a {pre,post}-increment or {pre,post}-decrement token + - set noeval to 0 at the beginning of evalexp, since it's never + called recursively - 10/7 + 9/14 ---- -[bash-3.1-beta1 released] +config-top.h + - new builder-modifiable define: DONT_REPORT_BROKEN_PIPE_WRITE_ERRORS + Turning it on will cause errors from EPIPE to not be reported by + the normal shell write error message mechanism -lib/readline/isearch.c - - when switching directions, make sure we turn off the SF_REVERSE - flag in the search context's flags word if we're going from reverse - to forward i-search +builtins/common.c + - if DONT_REPORT_BROKEN_PIPE_WRITE_ERRORS is defined, don't print an + error message from sh_wrerror if errno == EPIPE. Suggestion from + Petr Sumbera -lib/readline/bind.c - - new function, rl_variable_value, returns a string representing a - bindable readline variable's value - - new auxiliary function, _rl_get_string_variable_value, encapsulates - everything needed to get a bindable string variable's value - - rewrote rl_variable_dumper to use _rl_get_string_variable_value + 9/19 + ---- +{jobs,nojobs}.c,jobs.h + - add code to retry fork() after EAGAIN, with a progressively longer + sleep between attempts, up to FORKSLEEP_MAX (16) seconds. Suggested + by Martin Koeppe -lib/readline/readline.h - - new extern declaration for rl_variable_value + 9/21 + ---- +version.c + - change copyright year to 2007 -lib/readline/doc/rltech.texi - - documented rl_variable_value + 9/25 + ---- +pathexp.c + - change quote_string_for_globbing to add a backslash in front of a + backslash appearing in the pathname string, since the globbing + code will interpret backslashes as quoting characters internally. + Bug reported by on the debian list + (443685) -bashline.c - - in command_word_completion_function, if readline sets - rl_completion_found_quote, but doesn't set rl_completion_quote_character, - we have an embedded quoted string or backslash-escaped character in - the passed text. We need to dequote that before calling - filename_completion_function. So far, this is in place only for - absolute program names (those containing a `/') - - in command_word_completion_function, use rl_variable_value to decide - whether or not we should ignore case, and use strncasecmp instead of - strncmp where appropriate + 10/8 + ---- +lib/readline/display.c + - in update_line, make sure _rl_last_c_pos is > 0 before setting + cpos_adjusted (or we actually moved the cursor to column 0 in + _rl_move_cursor_relative). Fixes redisplay bug with prompt with + only invisible characters reported by dAniel hAhler + - 10/11 + 10/10 ----- -builtins/fc.def - - fixed a typo when using POSIX_FC_EDIT_COMMAND - -redir.h - - new flag values for redirections: RX_INTERNAL and RX_USER (currently - unused) - -redir.c - - add_undo_redirect and add_undo_close_redirect now set RX_INTERNAL - flag when making new redirects - - in do_redirection_internal, only set file descriptors > 2 to CLEXEC - if they're marked as RX_INTERNAL +lib/readline/display.c + - in rl_redisplay, when calculating the new physical cursor position + in a multibyte locale (`tx'), do not call rl_backspace if tx ends + up < 0. Rest of fix for bug reported by dAniel hAhler + 10/12 ----- -jobs.c - - in wait_for_single_pid, if in posix mode, remove the waited-for pid - from the list of background pids, forgetting it entirely. POSIX - conformance tests test for this. +lib/sh/getcwd.c + - fix memory overwrite problem that's possible if buf is NULL and + passed size is greater than the pathname length. Reported by + Ian Campbell -lib/readline/{readline.h,vi_mode.c} - - new state flag, RL_STATE_VICMDONCE, set after entering vi command - mode the first time; reset on each call to readline() +builtins/ulimit.def + - change the multiplier for the -c and -f options (`blocks') to 512, + the traditional value (and the one POSIX specifies). Bug reported + by Pete Graner - 10/13 - ----- -lib/readline/undo.c - - in rl_revert_line, make sure that revert-line in vi mode leaves - rl_point set to 0 no matter the state of the line buffer +braces.c + - pass process substitution through unchanged the same as command + substitution. Prompted by suggestion from Stephane Chazelas + -lib/readline/vi_mode.c - - when entering vi_command mode for the first time, free any existing - undo list so the previous insertions won't be undone by the `U' - command. This is how POSIX.2 says `U' should work (and the test - suite tests for it) +lib/readline/input.c + - in rl_unget_char, fix off-by-one error when resetting pop_index if + it's < 0. Bug reported by Uwe Doering -lib/readline/bind.c - - change rl_parse_and_bind so only `set' commands involving boolean - readline variables have trailing whitespace stripped from the value - string +builtins/type.def + - change exit status of `type' to not successful if any of the + requested commands are not found. Reported by Stephane Chazleas + + +pcomplete.c + - change command_line_to_word_list to use rl_completer_word_break_characters + instead of the shell metacharacters to split words, so programmable + completion does the same thing readline does internally. Reported + by Vasily Tarasov 10/16 ----- -lib/glob/sm_loop.c - - fix patscan() to correctly scan backslash-escaped characters +bashline.c + - When completing a command name beginning with a tilde and containing + escaped specical characters, dequote the filename before prefixing + it to the matches, so the escapes are not quoted again. Reported + by neil@s-z.org - 10/18 + 10/17 ----- -lib/sh/{winsize.c,Makefile.in},{jobs,nojobs}.c,Makefile.in,externs.h - - moved get_new_window_size from jobs.c/nojobs.c to new file, - lib/sh/winsize.c, made function global +expr.c + - in readtok(), don't reset lasttp if we've consumed the whitespace + at the end of the expression string. Fixes error message problem + reported by -{jobs,nojobs,sig}.c,{jobs,sig}.h - - moved SIGWINCH handling code to sig.c rather than duplicate it in - jobs.c and nojobs.c - - call set_sigwinch_handler from sig.c code rather than job control - signal initialization + 11/1 + ---- +builtins/printf.def + - change asciicode() to return intmax_t; add multibyte character + support instead of assuming ASCII (depending on behavior of system + multibyte support functions). Fixes bug reported by Rich + Felker -sig.[ch] - - new variable, sigwinch_received, acts like interrupt_state for - SIGWINCH, set by sigwinch_sighandler. sigwinch_sighandler no longer - calls get_new_window_size + 11/5 + ---- +execute_cmd.c + - if redirections attached to a compound command fail, make sure to + set last_command_exit_value when returning EXECUTION_FAILURE. + Fixes bug reported separately by Andreas Schwab + and Paul Eggert -parse.y - - add call to get_new_window_size if sigwinch_received at top of - shell_getc + 11/9 + ---- +builtins/read.def + - make sure the return value from get_word_from_string is freed if + non-null. Fixes memory leak bug reported by Lars Ellenberg + - 10/19 + 11/10 ----- -lib/malloc/malloc.c - - to avoid orphaning memory on free if the right bucket is busy, use a - new function xplit(mem, bucket) to split the block into two or more - smaller ones and add those to the right bucket (appropriately marking - it as busy) - - audit bsplit(), bcoalesce(), and xsplit() for proper use of busy[], - since they're dealing with two separate buckets +variables.c + - use getpid() as value of seeded_subshell to avoid problems with + random number generator not getting re-seeded correctly when + subshells are created. Fix from Tomas Janousek - 10/22 +lib/readline/display.c + - in update_line(), when outputting characters at the end of the line, + e.g., when displaying the prompt string, adjust _rl_last_c_pos by + wrap_offset if the text we're drawing begins before the last + invisible character in the line. Similar to fix from 5/24. Fixes + bug reported by Miroslav Lichvar + + 11/14 ----- subst.c - - new flag for string_extract: EX_REQMATCH, means to return an error - if a matching/closing character is not found before EOS - - new static flag variables: extract_string_error and extract_string_fatal - - change expand_word_internal to check for new error returns from - string_extract and return errors if appropriate + - fix $[ expansion case to deal with extract_arithmetic_subst + returning NULL (if the `]' is missing) and return the construct + unchanged in that case. Fixes tab completion bug reported by + Heikki Hokkanen (debian bug 451263) - 10/23 +lib/readline/mbutil.c + - fix _rl_find_next_mbchar_internal to deal with invalid multibyte + character sequences when finding non-zero-length chars. Fixes + bug reported by Morita Sho + + 11/15 ----- -builtins/cd.def - - make sure we free TDIR in change_to_directory after calling - set_working_directory (which allocates new memory) and other places - we short-circuit and return +variables.c + - add new function `seedrand' to seed the bash random number + generator from more random data. Suggestion from Steve Grubb + + - replace the rng in brand() with a slightly better one from FreeBSD + (filtered through Mac OS X 10.5). Replacement suggested by + Steve Grubb - 10/24 + 11/21 ----- +configure.in + - darwin 9 also requires linking against libreadline.a and + libhistory.a because of Apple's questionable decision to ship a + libreadline "replacement" that doesn't provide all functions + +doc/{bash.1,bashref.texi} + - slight change to the text describing the effect of set -e when + in a || or && list + + 12/5 + ---- +jobs.c + - fix raw_job_exit_status to correct mixing of int/WAIT values (need + to return a WAIT) + - arrange so that children run as part of command substitutions also + set the SIGINT handler to wait_sigint_handler, since they effectively + don't do job control + - in wait_for, if a child run as part of a command substitution exits + due to SIGINT, resend the SIGINT to the waiting shell with kill(2). + This makes sure the exit status propagates + +doc/{bash.1,bashref.texi} + - tighten up the language describing when bash tries to see if its + stdin is a socket, so it can run the startup files. Suggested by + Vincent Lefevre + +eval.c + - in the DISCARD case of a longjmp to top_level, make sure + last_command_exit_value is set to EXECUTION_FAILURE if it's 0, + but leave existing non-zero values alone + subst.c - - modified fix from 10/22 to allow bare ` to pass through (for - some backwards compatibility and more correctness) + - in command_substitute, don't reset pipeline_pgrp in the child + process -- this means that second and subsequent children spawned by + this comsub shell get put into the wrong process group, not the + shell's. Fix for bug reported by Ingo Molnar - 10/27 + 12/6 + ---- +support/shobj-conf + - make sure the cases for darwin8.x (Mac OS X 10.4.x) are extended to + darwin9.x (Mac OS X 10.5.x). Fixes problem originally reported + against readline-5.2 by schneecrash@gmail.com + + 12/8 + ---- +subst.c + - make sure to add the results of (successful) tilde expansion as a + quoted string, to inhibit pathname expansion and word splitting. + From recent Austin Group interpretation. + +include/shtty.h, lib/sh/shtty.c + - add ttfd_onechar, ttfd_noecho, ttfd_eightbit, ttfd_nocanon, and + ttfd_cbreak to set tty attributes associated with a particular + file descriptor (which is presumed to point to a terminal). Support + for fix for bug reported by b_bashbug@thebellsplace.com + +lib/readline/display.c + - make sure we only use rl_invis_chars_first_line when the number of + physical characters exceeds the screen width, since that's the + only time expand_prompt sets it to a valid value + + 12/12 ----- -conftypes.h - - make MacOS X use the RHAPSODY code that gets HOSTTYPE, et al. - at build rather than configure time, to support universal binaries - (fix from llattanzi@apple.com) +builtins/set.def + - change set_minus_o_option to return EX_USAGE if an invalid option + name is supplied. All callers can handle it. + - change set_builtin to return what set_minus_o_option returns if it's + not EXECUTION_SUCCESS. This allows EX_USAGE errors to abort a + shell running in posix mode - 10/30 + 12/14 ----- -builtins/evalstring.c - - make sure we don't turn on CMD_NO_FORK in parse_and_execute if - we're running a trap command on signal receipt or exit +builtins/read.def + - generalize the calls to the tty attribute functions to maintain a + local copy of the terminal attributes and use the fd supplied as + the argument to the -u option (default 0). Fix for bug reported + by b_bashbug@thebellsplace.com +doc/bashref.texi, lib/readline/doc/{history,rlman,rluser,rluserman}.texi + - Slight changes to conform to the latest FSF documentation standards. + Patch from Karl Berry + + 12/20 + ----- execute_cmd.c - - in shell_execve, improve the error message a little bit if the - interpreter name in a #! exec header ends with a ^M (as in a DOS- - format file) + - after calling clear_unwind_protect_list, make sure we reset + parse_and_execute_level to 0, since there's nothing left to + restore it if top_level_cleanup tests it. Fixes bug reported + by Len Lattanzi - 11/1 + 12/31 + ----- +lib/sh/getcwd.c + - new function, _path_checkino, checks whether the inode corresponding + to the path constructed from the first two arguments is the same as + the inode number passed as the third argument + - if BROKEN_DIRENT_D_INO is defined, meaning the d_ino/d_fileno + member of struct dirent doesn't contain valid values, use + _path_checkino instead of directly comparing against d_fileno. + Fixes Interix problem reported by Michael Haubenwallner + + + 1/7/2008 + -------- +array.c + - fix array_subrange to separate elements in returned string with + first char of $IFS if QUOTED is non-zero, since this indicates + the caller used ${array[@]:foo}. Fixes bug reported by Lea + Wiemann + + 1/8 + --- +subst.c + - new function returning a string containing the first character of + $IFS: char *ifs_firstchar(int *) + +subst.h + - extern declaration for ifs_firstchar() + +array.c + - call ifs_firstchar() to get first character of $IFS when needed + (array_subrange() and array_patsub()) + + 1/11 ---- -lib/readline/vi_mode.c - - fix vi-mode `r' command to leave the cursor in the right place +lib/readline/display.c + - use sentinel variable set at end of init_line_structures to decide + whether to call it from rl_redisplay, since early SIGWINCH on + Mac OS X that hits during this function can cause _rl_wrapped_line + to be referenced before initialization. Fix for bug reported by + Len Lattanzi -[bash-3.1-rc1 frozen] +subst.[ch] + - skip_to_delim is now compiled into the shell all the time, not just + when readline is linked in - 11/5 +subst.c + - use skip_to_delim to find the `/' denoting the end of a pattern + in pattern substitution, since it knows more shell syntax than + quoted_strchr and understands multibyte characters. Fixes bug + reported by Dmitry V Golovashkin + + 1/15 ---- -execute_cmd.c - - make sure a DEBUG trap doesn't overwrite a command string passed to - make_child in execute_simple_command +subst.c + - add `flags' argument to skip_to_delim telling it whether or not to + set no_longjmp_on_fatal_error; set this flag when calling from the + readline completion code -bashline.c - - rearrange some code in bash_quote_filename so filenames with leading - tildes containing spaces aren't tilde-expanded before being - returned to the caller +subst.h + - update extern declaration for skip_to_delim - 11/6 + 1/17 ---- -lib/readline/display.c - - when deciding where to move the cursor in rl_redisplay and needing - to move the cursor back after moving it vertically and compensate - for invisible characters in the prompt string, make sure that - _rl_last_c_pos is treated as an absolute cursor position in a - multibyte locale and the wrap offset (number of invisible characters) - is added explicitly when deciding how many characters to backspace +subst.c + - expand_prompt_string takes a third argument: the initial flags for + the WORD - 11/10 - ----- -lib/readline/terminal.c - - _rl_set_screen_size now interprets a lines or columns argument < 0 - as an indication not to change the current value +subst.h + - change extern declaration for expand_prompt_string to add third arg + +bashline.c + - pass W_NOCOMSUB as third argment to expand_prompt_string when + calling from bash_directory_completion_hook, since we don't want + to do command substitution from the completion code + +parse.y + - change call to expand_prompt_string - 11/11 - ----- + 1/18 + ---- +doc/Makefile.in + - added an `install_builtins' rule to install the builtins.1 man page, + preprocessing it with sed to force `.so man1/bash.1', which some + versions of man require. Suggestion from Peter Breitenlohner + + - new target `install_everything' that will install normal documentation + and builtins man page + - changed uninstall target to remove bash_builtins page from man + directory -lib/readline/terminal.c - - new function, rl_reset_screen_size, calls _rl_get_screen_size to - reset readline's idea of the terminal size - - don't call _rl_get_screen_size in _rl_init_terminal_io if both - _rl_screenheight and _rl_screenwidth are > 0 - - don't initialize _rl_screenheight and _rl_screenwidth to 0 in - _rl_init_terminal_io; let caller take care of it - - set _rl_screenheight and _rl_screenwidth to 0 before calling - _rl_init_terminal_io +lib/readline/vi_mode.c + - new function, rl_vi_insert_mode, which calls rl_vi_start_inserting + to make sure the value of `last command to repeat' is set correctly. + Fix from Thomas Janousek + - add support for redoing inserts made with the `I' command. Fix + from Thomas Janousek + - add support for redoing inserts made with the `A' command lib/readline/readline.h - - new extern declaration for rl_reset_screen_size + - new extern declaration for rl_vi_insert_mode -lib/readline/doc/rltech.texi - - documented rl_reset_screen_size +lib/readline/{misc,readline,vi_mode,vi_keymap}.c + - change calls to rl_vi_insertion_mode to rl_vi_insert_mode -variables.c - - if readline is being used, compile in a special var function for - assignments to LINES and COLUMNS that calls rl_set_screen_size or - rl_reset_screen_size as appropriate. Only do this in posix mode - and only when STRICT_POSIX is defined at compile time - - new semaphore variable, winsize_assignment, set while doing an - assignment to LINES or COLUMNS - - new variable, winsize_assigned, says LINES or COLUMNS was assigned - to or found in the environment - - if in the middle of an assignment to LINES or COLUMNS, make - sh_set_lines_and_columns a no-op + 1/19 + ---- +builtins/read.def + - change timeout behavior when not reading from a tty device to save + any partial input in the variable list, but still return failure. + This also causes variables specified as arguments to read to be + set to null when there is no input available. Fix inspired by + Brian Craft -lib/sh/winsize.c - - get_new_window_size now takes two int * arguments, to return the - screen dimensions + 1/21 + ---- +builtins/fc.def + - change computation of last_hist to use remember_on_history instead + of a hard-coded `1'. This keeps fc -l -1 in PROMPT_COMMAND from + looking too far back -externs.h - - change extern declaration for get_new_window_size + 1/25 + ---- +lib/readline/complete.c + - fix fnwidth to use string[pos] instead of *string when testing the + current character for a control character or rubout -{jobs,nojobs}.c, parse.y - - change callers of get_new_window_size + 2/2 + --- +general.c + - change posix_initialize to turn off source/. searching $PWD when + the file sourced is not found in $PATH. Fixes bug reported by + Paolo Bonzini and Eric Blake - 11/12 - ----- + 2/9 + --- +builtins/*.def + - changes to text and formatting suggested by Jan Schampera + + + 2/16 + ---- +bashline.c + - change command_word_completion_function to use the word completion + found by readline, which matters only when ignoring case is on + and the completion found in the file system differs in case from + the text the user typed (this is what readline does for normal + filename completion). Fixes issue reported by Jian Wang + . + + 2/18 + ---- +builtins/source.def + - if the filename passed as an argument contains a `/', don't search + $PATH. Not sure why it wasn't like this before + + 2/21 + ---- lib/readline/terminal.c - - new variable, rl_prefer_env_winsize, gives LINES and COLUMNS - precedence over values from the kernel when computing window size + - change rl_crlf so that the MINT system on ATARI systems adds a + carriage return before the \n -lib/readline/readline.h - - extern declaration for rl_prefer_env_winsize + 2/22 + ---- +doc/{bash.1,bashref.texi} + - added text to the EXIT STATUS section noting that exit statuses + fall between 0 and 255, inclusive -lib/readline/doc/rltech.texi - - document rl_prefer_env_winsize +support/mkversion.sh + - output a #define for DEFAULT_COMPAT_LEVEL (${major}${minor}; e.g. 32) + to version.h - 11/13 - ----- -lib/readline/rltty.c - - change rl_prep_terminal to make sure we set and reset the tty - special characters in the vi insertion keymap if in vi mode. This - matters if we get accept-line for the previous line while in vi - command mode +version.c + - int variable, shell_compatibility_level, set to DEFAULT_COMPAT_LEVEL + by default - 11/14 - ----- -builtins/pushd.def - - make sure any call to cd_builtin includes a leading `--' from the - argument list (or constructs one) +builtins/shopt.def + - new shopt variable, compat31, sets shell_compatibility_level to 31 + (or back to default if unset) - 11/16 - ----- -pcomplete.c - - fix small memory leak in gen_wordlist_matches +execute_cmd.c + - in execute_cond_node, restore bash-3.1 behavior of quoted rhs of + regexp matches if shell_compatibility_level == 31 -[bash-3.1-rc2 frozen] + 2/28 + ---- +lib/readline/rltty.c + - set readline_echoing_p = 1 if tcgetattr fails and sets errno to + EINVAL, as Linux does when the fd is a pipe. Reported by Mike + Frysinger - 11/21 - ----- -[bash-3.1-rc2 released] + 3/6 + --- +{MANIFEST,Makefile.in},lib/sh/{casemod,uconvert,ufuncs}.c + - new library sources from bash-4.0-devel tree - 11/23 - ----- -lib/readline/display.c - - changes to rl_redisplay to compensate for update_line updating - _rl_last_c_pos without taking invisible characters in the line into - account. Important in multibyte locales where _rl_last_c_pos is an - absolute cursor position - - changes to _rl_move_cursor_relative to account for _rl_last_c_pos - being an absolute cursor position in a multibyte character locale - - rewrote _rl_move_cursor_relative to make it a little simpler +lib/sh/spell.c + - moved cdspell() here from builtins/cd.def, renamed dirspell() - 11/29 - ----- -lib/readline/display.c - - changes to rl_redisplay and update_line for update_line to communicate - upward that it took the number of invisible characters on the current - line into account when modifying _rl_last_c_pos - - in update_line, adjust _rl_last_c_pos by wrap_offset before calling - _rl_move_cursor_relative, so we pass correct information about the - true cursor position +externs.h + - new declarations for extern functions from new library files + - new extern declaration for lib/sh/spell.c:dirspell() - 12/1 - ---- -configure.in - - changed release status to `release' +builtins/cd.def + - call extern library function dirspell(); remove static cdspell() -[bash-3.1 frozen] +builtins/read.def + - when read times out, make sure input_string is null-terminated before + assigning any partial input read to the named variables - 12/8 + 3/10 ---- -[bash-3.1 released] +lib/glob/xmbsrtowcs.c + - cut the number of memory allocations in xdupmbstowcs by not keeping + track of the indices if the caller hasn't asked for it - 12/9 + 3/17 ---- -doc/{bash.1,version.texi},lib/readline/doc/version.texi - - remove `beta1' from man page footer and texinfo documents +builtins/fc.def + - make sure the adjustment to i in fc_gethnum uses the same formula + fc_builtin uses to calculate last_hist + - make sure that every time fc_gethnum is called, the fc command last + in the history list has not yet been deleted, since fc_gethnum + assumes that it has not. Fix from John Haxby -variables.c - - make sure winsize_assignment is protected by #ifdef READLINE, so - minimal shell will compile +lib/readline/complete.c + - new private library function, _rl_reset_completion_state(), used to + reset any completion state internal to the library when a signal + is received + - call _rl_reset_completion_state() before returning from + rl_complete_internal -builtins/read.def - - make sure error cases free memory and run any unwind-protects to - avoid memory leaks +lib/readline/rlprivate.h + - new extern declaration for _rl_reset_completion_state - 12/10 - ----- -execute_cmd.c - - change execute_command_internal to set $PIPESTATUS for ((...)) and - [[ ... ]] commands +lib/readline/signals.c + - call _rl_reset_completion_state from rl_signal_handler on SIGINT. + This fixes one of the problems identified by Mika Fischer + -doc/{bash.1,bashref.texi,version.texi} - - add documentation for ulimit -[iqx] and bump revision date +pcomplete.c + - programmable_completions now saves pointer to the compspec it's + working with in new global variable CURCS + - new function, pcomp_set_readline_variables, that sets or unsets + readline variables based on a passed flags value (COPT_FILENAMES, + etc.) + - new function, pcomp_set_compspec_options, to set or unset bits in + the options word of a passed compspec (default CURCS) + - only call bash_dequote_filename (via rl_filename_dequoting_function) + from pcomp_filename_completion_function if the readline state + word indicates word completion is in progress - 12/12 - ----- -parse.y - - make sure parse_compound_assignment saves and restores the - PST_ASSIGNOK parser state flag around its calls to read_token. - Fixes bug reported by Mike Frysinger +pcomplete.h + - new extern declaration for curcs + - new extern declaration for pcomp_set_readline_variables + - new extern declaration for pcomp_set_compspec_options - 12/13 - ----- -parse.y - - change parse_compound_assignment to save and restore the value of - last_read_token. Not sure why it was set unconditionally in the - first place after parsing the complete compound assignment +bashline.c + - fix bash_dequote_filename to implement shell quoting conventions: + 1. Inhibit backslash stripping within single quotes + 2. Inhibit backslash stripping within double quotes only if + the following character is one of the special ones + - call pcomp_set_readline_variables from attempt_shell_completion + instead of doing the equivalent inline - 12/14 - ----- -lib/readline/text.c - - don't use return value of rl_kill_text (which always succeeds and - returns the number of characters killed) in rl_delete as an indication - of success or failure - - ditto for return value of rl_delete_text + 3/18 + ---- +bracecomp.c + - make sure we sort array of matches in byte order (using strcmp). so + the brace calculations work correctly even when the locale orders + characters like aAbBcC...zZ. Fixes bug reported by Torsten Nahm + -lib/readline/readline.c - - don't return the value of the called readline function as the return - value from _rl_dispatch_subseq; -1 means something different to the - callers (return 0 all the time to indicate that a readline function - was found and dispatched). Fix from Andreas Schwab for - bug in callback interface first reported by Mike Frysinger + 3/20 + ---- +lib/readline/{rltty,signals}.c + - move block_sigint and release_sigint from rltty.c to signals.c; add + _rl_ prefix to make them public to the library; change callers. + From Jan Kratchovil -execute_cmd.c - - fixed a typo in execute_case_command +lib/readline/rlprivate.h + - new extern declarations for _rl_block_sigint and _rl_release_sigint - 12/15 - ----- -aclocal.m4 - - add check for wctype() to BASH_CHECK_MULTIBYTE, define HAVE_WCTYPE +lib/readline/display.c + - add calls to _rl_block_sigint and _rl_release_sigint to rl_redisplay, + since it maniupluates global data structures. Fix from Jan + Kratchovil -config.h.in - - add HAVE_WCTYPE #define +builtins/printf.def + - change calls to asprintf and manually adding to vbuf to use calls + to vsnprintf against vbuf directly -- if the number of characters + to be written overflows the buffer, realloc the buffer and use + vsnprintf again. This should reduce the memory used by printf. + Idea from Yuya Katayama -config-bot.h - - add HAVE_WCTYPE to the set of checks for HANDLE_MULTIBYTE. This - should catch the deficient NetBSD multibyte support +lib/readline/doc/rltech.texi + - documented rest of readline's state flags, including RL_STATE_CALLBACK + - documented rl_save_state and rl_restore_state - 12/16 - ----- -parse.y - - use CTLESC instead of literal '\001' when decode_prompt_string - prefixes RL_PROMPT_START_IGNORE and RL_PROMPT_END_IGNORE + 3/27 + ---- +lib/readline/{rlprivate.h,{display,readline,rltty,terminal,text}.c} + - rename readline_echoing_p to _rl_echoing_p for namespace consistency - 12/20 - ----- -lib/readline/display.c - - don't treat RL_PROMPT_START_IGNORE specially inside a sequence of - ignored characters - - keep track of the start of the current sequence of ignored - characters; make sure that an empty sequence of such characters - really is an empty sequence, not one that happens to end with '\001' - (RL_PROMPT_START_IGNORE) +lib/readline/{rlprivate.h,{callback,readline,util}.c} + - rename readline_top_level to _rl_top_level for namespace consistency - 12/21 - ----- -subst.c - - change expand_word_internal to process rest of `tilde-word' as a - regular part of the word if tilde expansion leaves the tilde-word - unchanged. This means that ~$USER expands to ~chet, which seems - more intuitive, and is effectively what bash-3.0 did +builtins/ulimit.def + - new -b (socket buffer size) and -T (number of threads) options - 12/23 - ----- -subst.c - - when making a local array variable in do_compound_assignment, make - sure that we don't use a variable of the same name from a previous - context +array.c + - fix bug in calculation of the array element assignment string length: + use length of `is' instead of `indstr'. Reported as ubuntu bug + #202885 by John McCabe-Dansted -doc/bash.1 - - documented expansions for word and patterns in case statement +builtins/setattr.def + - new function, show_all_var_attributes, displays attributes and + values for all shell variables (or shell functions) in a reusable + format -builtins/ulimit.def,doc/{bashref.texi,bash.1} - - added new -e and -r (nice and rtprio) options to ulimit; documented - them +builtins/common.h + - new extern declaration for show_all_var_attributes - 12/26 - ----- -variables.c - - use `hmax' instead of `num' in sv_histsize to avoid integer overflow - problems with intmax_t +builtins/declare.def + - change `declare -p' to print out all variable attributes and values, + and `declare -fp' to print out all function attributes and + definitions. Inspired by request from John Love-Jensen + + +doc/{bash.1,bashref.texi} + - document new -b and -T options to ulimit + - tighten up language describing AND and OR lists + - add description of new behavior of `declare -p' + + 3/28 + ---- +pcomplete.c + - rename curcs -> pcomp_curcs + - new global completion variable, pcomp_curcmd, the current command + name being completed + +builtins/complete.def + - new builtin, compopt, allows completion options for command names + supplied as arguments or the current completion being executed to + be modified. Suggested by Mika Fischer + + 3/30 + ---- +doc/{bash.1,bashref.texi},lib/readline/doc/rluser.texi + - document new compopt builtin + + 4/5 + --- +support/shobj-conf + - change solaris10 stanza to use -fPIC to fix 64-bit sparc_v9/solaris10 + compilations. Fix from Fabian Groffen builtins/read.def - - add unwind-protect to restore rl_attempted_completion_function in - case of a timeout + - added `-i text' option, inserts `text' into line if using readline. + Suggested by many, used some ideas from Kevin Pulo -{bashline,variables}.c - - move initialization of HISTSIZE from initialization path to - load_history, so it can be overridden by a value assigned in a - startup file +doc/{bash.1,bashref.texi} + - document new `-i text' option to read builtin -lib/readline/misc.c - - add a missing `return r' so that rl_digit_loop returns a meaningful - value + 4/7 + --- +lib/readline/bind.c + - new settable variable, `history-size', sets the max number of + entries in the history list -lib/readline/{bind,callback,display,isearch,rltty,search,text,vi_mode}.c - - minor cleanups to satisfy compiler warnings, mostly removing unused - variables +doc/bash.1,lib/readline/doc/{rluser.texi,readline.3} + - document new `history-size' settable readline variable - 12/27 - ----- -support/Makefile.in - - add LIBS_FOR_BUILD support; defaults to ${LIBS} + 4/8 + --- +builtins/complete.def + - change build_actions calling sequence to take a struct with `other' + (non-action) flag arguments (-p, -r) + - add support for `-E' option to build_actions and complete builtin -- + modifies or displays (internal) `_EmptycmD_' completion spec -Makefile.in - - add LIBS_FOR_BUILD with no default value; use when linking programs - using CC_FOR_BUILD (e.g., bashversion) +bashline.c + - change attempt_shell_completion to try programmable completion on an + `empty' command line and return the results - 12/28 - ----- -lib/readline/bind.c - - fix rl_translate_keyseq bad translation of \M-\C-x sequences +doc/bash.1,lib/readline/doc/rluser.texi + - documented new `-E' option to `complete' -execute_cmd.c - - in execute_arith_command, if the expression expands to more than one - word, make sure we join the words into a single string and pass the - entire thing to evalexp() + 4/9 + --- +bashhist.c + - new variable, `enable_history_list', used to reflect setting of + `-o history' option + - change bash_history_{enable,disable,reinit} to set enable_history_list + as well as remember_on_history -expr.c - - new functions: _is_arithop(c), returns true if C is a valid single- - character arithmetic operator; _is_multiop(c), returns true if C is - a token corresponding to a valid multi-character arithmetic operator - - if we encounter a character that isn't a valid arithmetic - operator, throw an error. Try to be intelligent about what type of - error message to print +builtins/set.def + - use `enable_history_list' instead of `remember_on_history' to keep + value of `-o history' option -subst.c - - new function, expand_arith_string, calls expand_string_if_necessary; - used where an arithmetic expression needs to be expanded +builtins/evalstring.c + - instead of unwind-protecting remember_on_history, use a function to + restore it to the value of `enable_history_list' after + parse_and_execute runs the commands in the string. This allows + history to be turned off in a startup file, for instance. Problem + reported by Dan Jacobson -subst.h - - new extern declaration for expand_arith_string + 4/11 + ---- +bashline.c + - limited support for completing command words with globbing characters + (only a single match completed on TAB, absolute or relative + pathnames supported, no $PATH searching, some support for displaying + possible matches, can be used with menu completion). + Suggested by Harald Koenig -arrayfunc.c - - in array_expand_index, call expand_arith_string to expand the - subscript in a fashion consistent with other arithmetic expressions +print_cmd.c + - change redirection printing to output r_err_and_out as `&>file', + since the man page says that's the preferred form -subst.c - - fix parameter_brace_patsub so that we don't try to anchor the pattern - at the beginning or end of the string if we're doing global - replacement -- that combination doesn't doesn't make sense, and - the changed behavior is compatible with ksh93 + 4/12 + ---- +builtins/*.def + - change long doc so the first line is a short description + - add `Exit Status:' section to each longdoc describing exit values -doc/{bash.1,bashref.texi} - - changed description of pattern substitution to match the new - semantics +builtins/help.def + - new `-d' option to print short description of each utility + - new `-m' option to print description of each builtin in a + pseudo-manpage format (inspired by ksh93) -tests/new-exp.tests - - change tests to remove all ${pat//#rep} and ${pat//%rep} - expansions, since they don't mean the same thing anymore +doc/{bash.1,bashref.texi} + - document new `-d' and `-m' options to `help' - 12/29 - ----- -support/signames.c - - new file, initialize_signames() function from old mksignames.c. This - file builds the signal_names array +builtins/mapfile.def + - new builtin, `mapfile', imported from bash-4.0-devel branch -support/mksignames.c - - strip out initialize_signames(), move to signames.c. This file only - writes signames.h - - set up to only write a stub signames.h if CROSS_COMPILING is defined, - with extern declaration for initialize_signames - - if not cross compiling, #define initialize_signames to nothing +tests/{mapfile.{data,right,tests},run-mapfile} + - tests for `mapfile' builtin -Makefile.in - - mksignames is now linked from mksignames.o and buildsignames.o - - add rules to build signames.o, assuming we're building it as part - of the shell (cross-compiling) +doc/{bash.1,bashref.texi} + - added description of `mapfile' builtin -trap.c - - call initialize_signames from initialize_traps +MANIFEST,Makefile.in,builtins/Makefile.in + - added entries for mapfile source files -configure.in - - set SIGNAMES_O to nothing (normal) or signames.o (cross-compiling), - substitute into Makefile - - don't set SIGNAMES_H if cross-compiling any more +arrayfunc.[ch] + - new function, bind_array_element, to support mapfile builtin - 12/30 - ----- -command.h - - new word flag: W_NOPROCSUB, inhibits process substitution on a word + 4/20 + ---- +expr.c + - fix operator precendence in expcond(): term after the `:' is + a conditional-expression, not a logical-OR-expression (using C + terminology). Bug reported by -subst.c - - change expand_word_internal to suppress process substitution if the - word has the W_NOPROCSUB flag + 4/22 + ---- +bashintl.h + - new P_ define for using ngettext to decide on plural forms + (currently unused) -shell.c - - --wordexp turns on W_NOPROCSUB in addition to W_NOCOMSUB + 4/25 + ---- +execute_cmd.c + - in execute_disk_command, if the command is not found, search for + a shell function named `command_not_found_handle' and call it + with the words in the command as arguments. Inspired by Debian + feature. -subst.c - - change string_list_dollar_at and string_list_dollar_star so that - MB_CUR_MAX is used to size an array only when using gcc, since gcc - can handle non-constant array sizes using a mechanism like alloca. - Other compilers, e.g. Sun's compiler, do not implement that - extension +doc/{bash.1,bashref.texi} + - document new command_not_found_handle behavior in COMMAND EXECUTION + section - 12/31 - ----- -builtins/mkbuiltins.c - - when cross-compiling, don't include , since it's for the - target rather than the host system. Instead, choose a reasonable - set of default #defines based on a minimal POSIX system +configure.in + - change default version to bash-4.0-devel -jobs.c - - change find_process to handle a NULL return value from find_pipeline - - return immediately from delete_job if jobs[index] is already NULL or - if it has a null pipeline associated with it - - in delete_job, if find_last_proc returns NULL, don't try to call - bgp_delete + 4/28 + ---- +variables.c + - change push_func_var and push_exported_var to call + stupidly_hack_special_variables if the temporary variable is going + to be disposed. This undoes any internal changes caused by a local + variable assignment in the environment or in a shell function. Bug + reported by Morita Sho in + http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=478096 - 1/7 + 5/3 --- -doc/bash.1 - - patch from Tim Waugh to replace some literal single quotes with - \(aq, the groff special character for it +builtins/fc.def + - fixed a problem caused by change of 1/21 to use remember_on_history, + since it's turned off by parse_and_execute(), but can cause the + last command in history to be deleted and leave last_hist pointing + beyond the end of the history list. edit_and_execute_command can + do this. -jobs.c - - in realloc_jobs_list, make sure to zero out slots after j_lastj - in the new list +bashline.c + - new define, RL_BOOLEAN_VAR_VALUE, to take a readline boolean variable + and get its value as 0 or 1 (consider making readline global) + - put tty back into canonical mode before calling parse_and_execute in + edit_and_execute_command and then back into raw mode after it + returns. Fixes problem identified by . - 1/9 + 5/4 --- -support/mksignames.c - - make sure to include to get right value of NSIG from - (usually) +lib/glob/glob.c + - code to support `globstar' option: GX_GLOBSTAR and two internal + flags. Changes to skipname, glob_vector, mbskipname, glob_filename. + New function finddirs(). - 1/10 - ---- -parse.y - - when calling parse_matched_pair on a $(...) command substitution, - don't pass the P_DQUOTE flag so that single quotes don't get - stripped from $'...' inside the command substitution. Bug report - and fix from Mike Stroyan +lib/glob/glob.h + - new defines to support globstar code -jobs.c - - start maintaining true count of living children in js.c_living - - call reset_current in realloc_jobs_list, since old values for current - and previous job are most likely incorrect - - don't allocate a new list in realloc_jobs_list if the old size and - new size are the same; just compact the existing list - - make sure realloc_jobs_list updates value of js.j_njobs - - add some more itrace messages about non-null jobs after j_lastj in - jobs array +builtins/shopt.def + - new shell option, `globstar', enables special handling of `**' in + glob patterns -- matches all directories recursively - 1/11 - ---- -bashjmp.h - - new value for second argument to longjmp: SIGEXIT. Reserved for - future use +pathexp.h + - extern declaration for glob_star - 1/12 - ---- -jobs.c - - add logic to make_child to figure out when pids wrap around - - turn second argument to delete_job into flags word, added flag to - prevent adding proc to bgpids list +pathexp.c + - break inline code out of quote_globbing_chars into a separate + function to decide whether a character is a globbing char: + glob_char_p + - change shell_glob_filename to call glob_filename with the + GX_GLOBSTAR flag if glob_star is set - 1/13 - ---- -lib/readline/vi_mode.c - - move code that moves forward a character out of rl_vi_append_mode - into a separate function, _rl_vi_append_forward - - change _rl_vi_append_mode to save `a' as the last command, so it - can be redone properly - - new function _rl_vi_backup, moves point back a character taking - multibyte locales into account - - change rl_vi_redo to handle redoing an `a' command specially -- - it should be redone like `i' but after moving forward a character - - change rl_vi_redo to use _rl_vi_backup to move point backward - after redoing `i' or `a' +doc/{bash.1,bashref.texi} + - document new `globstar' shell option -jobs.c - - new function, delete_old_job (pid), checks whether or not PID is in - a job in the jobs list. If so, and the job is dead, it just removes - the job from the list. If so, and the job is not dead, it zeros - the pid in the appropriate PROCESS so pid aliasing doesn't occur - - make_child calls delete_old_job to potentially remove an already-used - instance of the pid just forked from the jobs list if pids have - wrapped around. Finally fixes the bug reported by Tim Waugh - +arrayfunc.c + - new function, broken out of quote_array_assignment_chars: + quote_assign; extended from old code to make sure that globbing + chars and chars in $IFS are quoted when displaying assignment + statements, especially in compound array assignments -trap.c - - new define, GETORIGSIG(sig), gets the original handling for SIG and - sets SIG_HARD_IGNORE if that handler is SIG_IGN - - call GETORIGSIG from initialize_traps, get_original_signal, and - set_signal + 5/5 + --- +bashline.c + - new variable, dircomplete_spelling, controls spelling correction + of directory names when doing filename completion + - change bash_directory_completion_hook to incorporate spelling + correction if initial canonicalization of directory name fails -jobs.c - - in wait_for, if the original SIGINT handler is SIG_IGN, don't set - the handler to wait_sigint_handler. This keeps scripts started in - the background (and ignoring SIGINT) from dying due to SIGINT while - they're waiting for a child to exit. Bug reported by Ingemar - Nilsson +builtins/shopt.def + - new shell option, `dirspell', enables and disables spelling + correction of directory names during word completion -lib/readline/vi_mode.c - - don't save text to buffer unless undo pointer points to a record of - type UNDO_INSERT; zero it out instead. This fixes bug reported by - Craig Turner with redoing `ctd[ESC]' (empty - insert after change to) +builtins/read.def + - support for fractional timeout values (ival.uval); uses uconvert + and falarm/setitimer -shell.c - - change set_shell_name so invocations like "-/bin/bash" are marked as - login shells +config.h.in + - new `HAVE_SETITIMER' define -doc/bash.1 - - add note about destroying functions with `unset -f' to the section - on shell functions +configure.in + - look for setitimer(2), define HAVE_SETITIMER if found -lib/readline/terminal.c - - if readline hasn't been initialized (_rl_term_autowrap == -1, the - value it's now initialized with), call _rl_init_terminal_io from - _rl_set_screen_size before deciding whether or not to decrement - _rl_screenwidth. Fixes bug from Mike Frysinger +doc/{bash.1,bashref.texi} + - document new `dirspell' shopt option + - document new fractional values to `read -t timeout' - 1/14 - ---- -lib/readline/input.c - - allow rl_set_keyboard_input_timeout to set the timeout to 0, for - applications that want to use select() like a poll without any - waiting + 5/6 + --- +assoc.[ch] + - new files, basic support for associative array implementation -lib/readline/doc/rltech.texi - - documented valid values for timeout in rl_set_keyboard_input_timeout +general.h + - new extern declarations for sh_openpipe, sh_closepipe, trim_pathname + +general.c + - new functions: sh_openpipe to create a pipe and move the file + descriptors to a high range; sh_closepipe, to close pipe fds and + clean up, and trim_pathname, to replace portions of a pathname + with `...' (for prompting) jobs.c - - in stop_pipeline, don't have the parent shell call give_terminal_to - if subshell_environment contains SUBSHELL_ASYNC (no background - process should ever give the terminal to anything other than - shell_pgrp) - - in make_child, don't give the terminal away if subshell_environment - contains SUBSHELL_ASYNC + - don't set last_asynchronous_pid in child shell (messes up $!, among + other things) - 1/15 - ---- -subst.c - - in parameter_brace_expand, if extracting ${#varname}, only allow - `}' to end the expansion, since none of the other expansions are - valid. Fixes Debian bug reported by Jan Nordhorlz +parse.y,parser.h + - moved definitions of parser flags to parser.h - 1/17 - ---- -parse.y - - in parse_matched_pair, protect all character tests with the MBTEST - macro - - in parse_dparen, take out extra make_word after call to alloc_word_desc - (mem leak) +array.c + - imported array_modcase (case-changing operations on arrays) from + 4.0-devel branch - 1/18 - ---- -parse.y - - in parse_matched_pair, add P_ALLOWESC to flags passed to recursive - parse_matched_pair call when encountering a single or double quote - inside a ``-style command substitution +array.h + - new extern declaration for array_modcase -execute_cmd.c - - add call to QUIT at beginning of execute_command_internal; better - responsiveness to SIGINT +lib/readline/complete.c + - new variable, rl_menu_completion_entry_function, generator for + rl_menu_complete + - new menu completion `browsing' implementation, with several + improvements over the old code. Inspired by Sami + +lib/readline/readline.h + - extern declaration for rl_menu_completion_entry_function + + 5/8 + --- +lib/readline/complete.c + - add support for a third argument to fnprint and print_filename, + which supports replacing a specified portion of the pathnames + printed when displaying possible completions with a `...' (or + `___', if the prefix would be confused with a portion of the + filename) + - new variable, _rl_completion_prefix_display_length, sets the + number of characters in a common prefix to be replaced with an + ellipsis when displaying possible completions + - add support to _rl_display_match_list to find the length of the + common prefix of all items being displayed, and passing that + value to print_filename for possible replacement with an ellipsis + if that length is longer than _rl_completion_prefix_display_length - 1/21 - ---- lib/readline/bind.c - - change rl_invoking_keyseqs_in_map to honor the setting of - convert-meta when listing key bindings, since if convert-meta is off, - using '\M-' as the prefix for bindings in, for instance, - emacs-escape-keymap, is wrong. This affects `bind -p' output - - change rl_untranslate_keyseq to add '\e' instead of '\C-[' for - ESC + - add support for retrieving value of history-size variable to + _rl_get_string_variable_value + - new bindable variable, completion-prefix-display-length. When + displaying possible completions, matches with a common prefix + longer than this value have the common prefix replaced with an + ellipsis + - support for retrieving value of completion-prefix-display-length + variable to _rl_get_string_variable_value + - new bindable variable, revert-all-at-newline: if enabled, causes + all changes in history lines to be undone before readline returns + after processing a newline + +doc/bash.1,lib/readline/doc/{readline.3,rluser.texi} + - document new `completion-prefix-display-length' variable + - document new `revert-all-at-newline' variable execute_cmd.c - - add call to QUIT at end of execute_command + - change execute_builtin to not inherit the `-e' flag into commands + executed by the `command' or `source/.' builtins if we are supposed + to be ignoring the return value. This is like `eval'. Fixes bug + reported by Hiroshi Fujishima - 1/23 + 5/10 ---- -lib/readline/display.c - - changed two places in update_line where a check of whether the cursor - is before the last invisible character in the prompt string to - differentiate between the multibyte character case (where - _rl_last_c_pos is a physical cursor position) and the single-byte - case (where it is a buffer index). This prevents many unnecessary - \r-redraw the line sequences. Reported by Dan Jacobson. +variables.c + - when reading the initial environment, don't create variables with + names that are not valid shell identifiers. Fixes bug reported by + Stephane Chazleas - 1/24 + 5/13 ---- -quit.h - - wrap QUIT macro in do...while(0) like other compound statement - macros - - CHECK_TERMSIG define (placeholder for now); future use will be to - handle any received signals that should cause the shell to - terminate (e.g., SIGHUP) +subst.c + - fix string_quote_removal to gracefully handle the case where a + backslash is the final character in the string (leaves the backslash + in place). Fixes bug reported by Ian Robertson + -{input,jobs,nojobs}.c - - add calls to CHECK_TERMSIG where appropriate (reading input and - waiting for children) - - include quit.h if necessary + 5/16 + ---- +support/checkbashisms + - Perl script that purports to check for bash-specific features in a + shell script. Lifted from Debian via ubuntu - 1/25 + 5/20 ---- -parse.y - - undo change that makes `)' in a compound assignment delimit a token. - It messes up arithmetic expressions in assignments to `let', among - other things +lib/readline/display.c + - in update_line, when deciding whether or not to adjust _rl_last_c_pos + in a multibyte environment after printing the last line of a multiline + prompt with invisible characters on the first and last lines, use + the number of inivisible chars on the first line in the calculation + deciding whether or not we're past the last invisible character and + need to adjust the cursor position. Old code used the number of + invisible chars on the last prompt line. Fixes bug reported by + stuff@slinkp.com. + - in update_line, when fixing _rl_last_c_pos after drawing the first + line of the prompt, use the number of invisible chars on the first + line as the offset, instead of the total number of invisible chars + - use prompt_multibyte_characters, the number of multibyte chars in + the prompt string, to short-circuit some relatively expensive + multibyte text processing in rl_redisplay -sig.h,{jobs,nojobs,sig,trap}.c,builtins/trap.def - - rename termination_unwind_protect to termsig_sighandler + 5/21 + ---- +variables.c + - new function, reinit_special_variables(), a hook for special + vars that need their hook functions called when they're unset as + a result of the shell reinitializing itself to run a script -sig.c - - split termsig_sighandler into two functions: termsig_sighandler, which - runs as a signal handler and sets a flag noting that a terminating - signal was received, and termsig_handler, which runs when it is `safe' - to handle the signal and exit - - new terminate_immediately variable, similar to interrupt_immediately - - termsig_sighandler calls termsig_handler immediately if - terminate_immediately is non-zero +shell.c + - shell_reinitialize now calls reinit_special_variables + - shell_reinitialize now calls bashline_reset -quit.h - - change CHECK_TERMSIG macro to check terminating_signal and call - termsig_handler if it's non-zero - - add same check of terminating_signal and call to termsig_handler to - QUIT macro +variables.h + - new extern declaration for reinit_special_variables -{jobs,nojobs}.c - - change call to termsig_sighandler to call termsig_handler directly, - as was intended +bashline.c + - new function, bashline_reset(), called when the shell reinitializes + in shell_reinitialize. Right now, just resets + bash_readline_initialized to 0. -parse.y,builtins/read.def - - set terminate_immediately to non-zero value when reading interactive - input, as is done with interrupt_immediately +bashline.h + - new extern declaration for bashline_reset() - 1/26 + 5/23 ---- -doc/{bash.1,bashref.texi} - - reworded the POSIX standard references to remove mention of POSIX.2 - or 1003.2 -- it's all the 1003.1 standard now. Recommended by - Arnold Robbins +bashhist.c + - new function, bash_clear_history, clears the history and resets any + associated internal bash state - 1/27 - ---- -lib/readline/complete.c - - move call to filename dequoting function into - rl_filename_completion_function; call only if directory completion - hook isn't set. This means that directory-completion-hook now needs - to dequote the directory name. We don't want to dequote the directory - name before calling the directory-completion-hook. Bug reported by - Andrew Parker +bashhist.h + - extern declaration for bash_clear_history -bashline.c - - add necessary directory name dequoting to bash_directory_completion_hook - and bash_directory_expansion +builtins/history.def + - call bash_clear_history instead of clear_history for `history -c'. + Fixes part of problem reported by Scott McDermott + + - decrement history_lines_this_session in delete_histent, called for + `history -d' -lib/readline/doc/rltech.texi - - add note to description of rl_directory_completion_hook that it - needs to dequote the directory name even if no other expansions are - performed +builtins/history.def,bashhist.[ch] + - move delete_histent() to bashhist.c; rename to bash_delete_histent + - move delete_last_history() to bashhist.c; rename to + bash_delete_last_history() - 1/28 + 5/25 ---- braces.c - - make sure that we skip over braces that don't start a valid matched - brace expansion construct in brace_expand -- there might be a valid - brace expansion after the unmatched `{' later in the string - - brace_gobbler now checks that when looking for a `}' to end a brace - expansion word, there is an unquoted `,' or `..' that's not inside - another pair of braces. Fixes the a{b{c,d}e}f problem reported by - Tim Waugh + - add another parameter to mkseq(), the number of digits to put into + each member of a numeric sequence (width), changes to determine + any zero-padding go into expand_seqterm + - changes to expand_seqterm to allow user-specified increments + +bashline.[ch],shell.c,sig.c + - switched names of bashline_reinitialize and bashline_reset to better + reflect their functions + - when searching $PATH for directories to use for command completion, + make sure to free `current_path' before going out of scope + - new bindable function `dabbrev-expand', which is more or less + menu completion using dynamic history completion as the generator + - changes to bash_execute_unix_command to set variables for the + executed command like programmable completion: READLINE_LINE + (rl_line_buffer) and READLINE_POINT (rl_point) + - change to bash_execute_unix_command to allow the executed command + to change the readline line buffer by modifying the value of + READLINE_LINE and to change rl_point by modifying the value of + READLINE_POINT + +common.h + - new SEVAL_ defines for later parse_string changes from 4.0-devel + branch -builtins/declare.def - - when not in posix mode, and operating on shell functions, typeset - and declare do not require their variable operands to be valid - shell identifiers. The other `attribute' builtins work this way. - Fixes inconsistency reported by Mike Frysinger +command.h + - new defines for new &>> r_append_err_and_out redirection -{configure,config.h}.in - - add test for setregid, define HAVE_SETREGID and HAVE_DECL_SETREGID - as appropriate - - add test for eaccess, define HAVE_EACCESS if found +builtins/evalstring.c + - new function, parse_string, parses a command from a passed string + and returns the number of characters consumed. For satisfying + Posix rules when parsing command substitutions, from bash-4.0-devel + branch + - split out common prolog code from parse_string and + parse_and_execute into a separate function called from both -lib/sh/eaccess.c - - new file, with sh_stat and sh_eaccess functions, moved from test.c - - renamed old sh_eaccess as sh_stataccess, since it uses the stat(2) - information to determine file accessibility - - new function, sh_euidaccess, to call when uid != euid or gid != egid; - temporarily swaps uid/euid and gid/egid around call to access - - rewrote sh_eaccess to call eaccess, access, sh_euidaccess or - sh_stataccess as appropriate. access(2) will take into account - things like ACLs, read-only file systems, file flags, and so on. +parse.y + - small changes to add symbols needed for parse_string + - parser change to add `|&' as synonym for `2>&1 |'; translation is + performed at parse time so |& never shows up in output of + print_command, for instance. Picked up from zsh, merged in from + bash-4.0-devel branch + +parse.y,{redir,copy_cmd,dispose_cmd,make_cmd,print_cmd}.c + - implement new &>> r_append_err_and_out (like >>foo 2>&1); merged + in from bash-4.0-devel branch + +doc/{bash.1,bashref.texi},lib/readline/doc/rluser.texi + - document new optional increment in brace expansion + - document new zero-padded fixed-width integer brace expansion + - document new `dabbrev-expand' bindable readline command + - document new effects of `bind -x' setting and reading the values of + READLINE_LINE and READLINE_POINT + - document new |& synonym for `2>&1 |' pipeline operator + + 5/26 + ---- +parse.y - recognize new ;& and ;;& case action list terminator tokens and + implement them in the grammar, setting CASEPAT_FALLTHROUGH and + CASEPAT_TESTNEXT flags as appropriate -lib/sh/Makefile.in,Makefile.in - - add necessary entries for eaccess.[co] +print_cmd.c + - print new ;& and ;;& case clause action list terminators as + appropriate -test.c - - change calls to test_stat to call sh_stat +execute_cmd.c + - implement new case clause action list terminators: + ;& - fall through to actions associated with next pattern list + ;;& - fall through to tests in next pattern list -{test,general}.c - - change calls to test_eaccess to call sh_eaccess +doc/{bash.1,bashref.texi} + - document new ;& and ;;& case clause action list terminators -externs.h - - new extern declaration for sh_eaccess + 5/28 + ---- +jobs.c + - change waitchld so it treats SIGCHLD like SIGINT if `wait' is being + executed, and allows wait to jump out before running any trap set + on SIGCHLD. Fixes debian bug #483016 reported by Miroslav Rudisin + + - run_sigchld_trap is no longer static, so the trap code in trap.c + can call it + - change run_sigchld_trap to call set_impossible_sigchld_trap instead + of just using a call to restore_default_signal -test.[ch] - - remove test_stat and test_eaccess +jobs.h + - new extern declaration for run_sigchld_trap - 1/29 - ---- -braces.c - - make change from 1/28 dependant on CSH_BRACE_COMPAT not being - defined (since old bash behavior is what csh does, defining - CSH_BRACE_COMPAT will produce old bash behavior) +trap.c + - fix run_pending_traps to run a SIGCHLD trap if the trap handler isn't + set to IMPOSSIBLE_TRAP_HANDLER + - in trap_handler, don't reset the SIGCHLD trap handler to trap_handler + if MUST_REINSTALL_SIGHANDLERS is defined + - new function, set_impossible_sigchld_handler, sets the trap string + associated with SIGCHLD to IMPOSSIBLE_TRAP_HANDLER; used as a sentinel + by run_sigchld_trap and maybe_set_sigchld_handler + - change maybe_set_sigchld_handler to set the SIGCHLD trap string only + if the current value is IMPOSSIBLE_TRAP_HANDLER. This ensures that + any traps on SIGCHLD set in a SIGCHLD handler will persist. Fixes + debian bug #483016 reported by Miroslav Rudisin + - 1/30 +trap.h + - new extern declaration for set_impossible_sigchld_trap + + 5/31 ---- -bashline.c - - last argument of bash_default_completion is now a flags word: - DEFCOMP_CMDPOS (in command position) is only current value - - attempt_shell_completion now computes flags before calling - bash_default_completion - - if no_empty_command_completion is set, bash does not attempt command - word completion even if not at the beginning of the line, as long - as the word to be completed is empty and start == end (catches - beginning of line and all whitespace preceding point) +parse.y + - new function: parse_comsub(), parses $(...) by parsing command + between parens and making sure the next token is `)'. From + the bash-4.0-devel branch + - new function: xparse_dolparen, helper function for parsing + command substitutions in $(...). Called from subst.c to extract + a command substitution during word expansion. From bash-4.0-devel + branch + - new function: rewind_input_stream(). Rewinds bash_input.location.string + back to where it was before the shell parsed a $() command + substitution. From bash-4.0-devel branch + - changes to parse_matched_pair to combine most of the flag variables + (was_dollar, in_comment, and so on) into a local flags word - 2/4 + 6/2 --- -lib/readline/display.c - - change _rl_make_prompt_for_search to use rl_prompt and append the - search character to it, so the call to expand_prompt in rl_message - will process the non-printing characters correctly. Bug reported - by Mike Stroyan +parse.y + - call trim_pathname, which retains only the last $PROMPT_DIRTRIM + directories and replaces the intervening characters with `...', + when expanding \w and \W - 2/5 - --- -lib/readline/display.c - - fix off-by-one error when comparing against PROMPT_ENDING_INDEX, - which caused a prompt with invisible characters to be redrawn one - extra time in a multibyte locale. Change from <= to < fixes - multibyte locale, but I added 1 to single-byte definition of - PROMPT_ENDING_INDEX (worth checking) to compensate. Bug reported - by Egmont Koblinger +doc/{bash.1,bashref.texi} + - document the effect of setting PROMPT_DIRTRIM - 2/8 + 6/3 --- -lib/readline/terminal.c - - call _emx_get_screensize with wr, wc like ioctl code for consistency - - new function, _win_get_screensize, gets screen dimensions using - standard Windows API for mingw32 (code from Denis Pilat) - - call _win_get_screensize from _rl_get_screen_size on mingw32 +builtins/ulimit.def + - make the multiplier (block size) for -c and -f 512 bytes only if in + Posix mode and 1024 bytes otherwise (as in previous versions). Uses + POSIXBLK and BLOCK_SIZE defines to parameterize size based on value + of posixly_correct -lib/readline/rlconf.h - - define SYS_INPUTRC (/etc/inputrc) as system-wide default inputrc - filename +doc/bashref.texi + - document this addition to posix mode -support/shobj-conf - - changes to make loadable builtins work on MacOS X 10.[34] +builtins/common.c + - change get_numeric_arg to have a calling sequence and return value + more closely mimicking general.c:legal_number(), with the addition + of a flags word + - add extra value for `fatal' argument to get_numeric_arg to force it + to return failure to the caller rather than longjmping + +builtins/common.h + - change prototype declaration for get_numeric_arg + +builtins/{break,shift}.def + - change calls to get_numeric_arg to deal with new semantics and calling + sequence + +builtins/history.def + - display_history now returns an int + - change calling sequence for get_numeric_arg in display_history + - display_history now returns failure to the caller if get_numeric_arg + detects an invalid number, rather than jumping back to the top level + - use value returned by display_history as return status of history + builtin, filtered through sh_chkwrite + - history no longer aborts compound commands on invalid arguments. + fixes problem reported by Chu Li + +{braces,subst}.c + - extract_command_subst now takes a third flags argument; passed flags + are ORd into flags passed to other functions; changed callers + +subst.h + - move SX_* defines here from subst.c so parse.y:xparse_dolparen can + see them and behave appropriately + - extract_command_subst now takes a third flags argument; change + prototype + +subst.c + - change extract_command_subst to call xparse_dolparen when extracting + a $() construct + - change calls to extract_delimited_string to extract_command_subst + as appropriate + - if command_substitute returns a NULL word desc, don't call + dispose_word_desc on it + +parse.y + - change xparse_dolparen to use the SX_* flags now in subst.h + + 6/16 + ---- +subst.c + - in quote_list, set W_HASQUOTEDNULL flag in the word if quote_string + turns "" into CTLNUL + - in dequote_list, turn off W_HASQUOTEDNULL flag in the word if + dequote_string turns CTLNUL into "" + - new function, string_list_pos_params, encapsulates everything + needed to turn the positional parameters or an array indexed with + '@' or '*' into a string, including taking care of quoting and + using the first char of $IFS, when used in another expansion like + pattern removal or pattern substitution + - change list_remove_pattern, pos_params, pos_params_pat_subst to + call string_list_pos_params. Fixes problems reported by + Stephane Chazelas + + 6/22 + ---- +variables.h + - include assoc.h for associative arrays + - defines for case-modifying expansions and associative array variables + - sh_var_assign_func_t functions now take an extra char * parameter + + 6/25 + ---- +variables.c + - change declarations and definitions of sh_var_assign_func_t functions + to add the extra char * parameter: null_assign, null_array_assign, + assign_seconds, assign_random, assign_lineno, assign_subshell, + assign_dirstack + - change calls to var->assign_func to add extra char * argument + - broke part of body of dispose_variable out into a new function, + dispose_variable_value, which knows how to free all kinds of shell + variable data + - changes to deal with variables with the internal `nofree' attribute -builtins/pushd.def - - changes to make it work as a loadable builtin compiled with gcc4 +arrayfunc.c + - change calls to var->assign_func to add extra char * argument + - bind_array_var_internal now takes an extra `char *key' argument + - additions for associative array implementation; from bash-4.0-devel + tree - 2/9 - --- -lib/readline/bind.c - - add SYS_INPUTRC as last-ditch default (if DEFAULT_INPUTRC does not - exist or can't be read) in rl_read_init_file +arrayfunc.[ch],subst.c + - expand_compound_array_assignment now takes the variable as the first + argument (SHELL_VAR *); changed function definition and callers -lib/readline/doc/rluser.texi - - add description of /etc/inputrc as ultimate default startup file +builtins/set.def + - changes to handle associative arrays in `unset' - 2/10 - ---- -lib/readline/bind.c - - fix problem with rl_function_of_keyseq that returns a non-keymap - bound to a portion of the passed key sequence without processing - the entire thing. We can bind maps with existing non-map - functions using the ANYOTHERKEY binding code. +{execute_cmd,command}.h + - definitions for coproc implementation; from bash-4.0-devel tree variables.c - - shells running in posix mode do not set $HOME, as POSIX apparently - requires + - new functions for associative arrays: make_new_assoc_variable, + make_local_assoc_variable - 2/15 + 6/26 ---- -braces.c - - mkseq() now takes the increment as an argument; changed callers +variables.c + - more infrastructure for associative arrays; from bash-4.0-devel tree + - infrastructure for handling assignments to variables with + case-modifying attributes; from bash-4.0-devel tree - 2/16 - ---- -builtins/hash.def - - print `hash table empty' message to stdout instead of stderr +config.h.in + - add #defines controlling case-modifying variable attributes and word + expansions - 2/17 - ---- -lib/readline/readline.c - - when resetting rl_prompt in rl_set_prompt, make sure rl_display_prompt - is set when the function returns +configure.in + - add enable options for case-modifying variable attributes and word + expansions (--enable-casemod-attributes and --enable-casemod-expansions, + respectively); from bash-4.0-devel tree - 2/18 - ---- -lib/readline/display.c - - further fixes to _rl_make_prompt_for_search from Eric Blake to deal - with multiple calls to expand_prompt +execute_cmd.c + - add code to fix_assignment_words to handle assignment statements to + "assignment builtins" that seem to be associative arrays. Imperfect - 2/21 +subst.c + - array_remove_pattern now takes a SHELL_VAR * as its first argument + instead of an ARRAY *; from the bash-4.0-devel tree + - changes to array_length_reference for associative arrays; from the + bash-4.0-devel tree + - changes to get_var_and_type for associative arrays; from the + bash-4.0-devel tree + - changes to parameter_brace_substring for associative arrays; from the + bash-4.0-devel tree + - changes to param_expand for associative arrays; from the + bash-4.0-devel tree + +builtins/declare.def + - changes for associative arrays: new `-A' option, changes to make + local and global associative array variables; from the bash-4.0-devel + tree + + 6/27 ---- -builtins/hash.def - - don't print `hash table empty' message in posix mode +execute_cmd.c + - in execute_command_internal, when short-circuiting execution + because `breaking' or `continuing' is non-zero, preserve the exit + status by returning `last_command_exit_value' instead of an + unconditional EXECUTION_SUCCESS. Fixes bug reported by Roman + Rakus - 2/27 + 6/28 ---- -lib/glob/sm_loop.c - - change extmatch() to turn off FNM_PERIOD in flags passed to recursive - calls to gmatch() when calling it with a substring after the start - of the string it receives. Changed `+', `*', `?, `@', and `!' cases - to do the right thing. Fixes bug reported by Benoit Vila - +variables.c + - fix get_var_and_type to appropriately handle references like + ${varname[0]}, where `varname' is a scalar variable -braces.c - - add QUIT; statements to mkseq to make large sequence generation - interruptible +make_cmd.[ch],parse.y + - make_here_document now takes a second argument: the current line + number; changed caller (gather_here_documents) - 2/28 +builtins/setattr.def + - added support for associative arrays and the `-A' variable attribute + option; from the bash-4.0-devel tree + +subst.c + - change code that transforms `declare -A xxx=(yyy)' to perform the + internal `declare -A xxx' before doing the variable assignment, + because associative arrays have to be declared before being assigned + to as such; uses new function make_internal_declare + + 6/30 ---- -lib/glob/glob.c - - initialize nalloca in glob_vector +subst.[ch] + - dequote_escapes is now external; add declaration in subst.h + - remove_quoted_nulls is now external; add declaration in subst.h - 3/1 - --- -lib/glob/glob.c - - in glob_vector, when freeing up the linked list after some error, - make sure to set `tmplink' to 0 if `firstlink' is set to 0, else we - get multiple-free errors +array.[ch] + - new functions for completeness: array_dequote, array_dequote_escapes, + array_remove_quoted_nulls + - array_subrange now calls array_remove_quoted_nulls for "${array[*]}". + Fixes bug reported by Vitor De Araujo + - array_patsub now calls array_remove_quoted_nulls for "${array[*]}" + - array_modcase now calls array_remove_quoted_nulls for "${array[*]}" + - array_patsub now handles the mflags&MATCH_QUOTED case appropriately + (that implies "${array[@]}") - 3/5 - --- -trap.c - - inheritance of the DEBUG, RETURN, and ERR traps is now dependent - only on the `functrace' and `errtrace' shell options, as the - documentation says, rather than on whether or not the shell is in - debugging mode. Reported by Philip Susi +subst.c + - new functions for case-modifying word expansion suppport: + pos_params_casemod, parameter_brace_casemod; from bash-4.0-devel branch -parse.y - - in parse_matched_pair, don't recursively parse ${...} or other - ${...} constructs inside `` - - in parse_matched_pair, remove special code that recursively parses - quoted strings inside `` constructs. For Bourne shell compatibility +assoc.c + - new functions for completeness: assoc_remove_quoted_nulls + - assoc_patsub now calls assoc_remove_quoted_nulls for "${assoc[*]}" + - assoc_modcase now calls assoc_remove_quoted_nulls for "${array[*]}" + - assoc_patsub now handles the mflags&MATCH_QUOTED case appropriately + (that implies "${assoc[@]}") - 3/6 + 7/1 --- -builtins/pushd.def - - let get_directory_stack take take an `int flags' argument and convert - $HOME to ~ if flags&1 is non-zero +assoc.[ch] + - new function, assoc_subrange: takes a hash table, converts it to a + word list, and performs the subrange and indexing on that list + - new functions for completeness: assoc_dequote, assoc_dequote_escapes -builtins/common.h - - change extern declaration for get_directory_stack +subst.c + - verify_substring_values now takes the variable SHELL_VAR * as its + new first argument; changed callers + - change verify_substring_values to handle associative arrays using the + number of elements as the upper bound + - brought in code to do case-modifying word expansions from + bash-4.0-devel branch, conditional on CASEMOD_EXPANSIONS -variables.c - - call get_directory_stack with an arg of 0 to inhibit converting - $HOME to ~ in the result. Fixes cd ${DIRSTACK[1]} problem - reported by Len Lattanzi (cd fails because - the tildes won't be expanded after variable expansion) +input.c + - if the read(2) in getc_with_restart returns -1/EAGAIN, turn off + non-blocking mode on the file descriptor and try again. Fixes + problem reported by Glynn Clements -jobs.c - - changed hangup_all_jobs slightly so stopped jobs marked J_NOHUP - won't get a SIGCONT + 7/2 + --- +doc/{bash.1,bashref.texi} + - documented new case-modifying word expansions -general.c - - changed check_binary_file() to check for a NUL byte instead of a - non-printable character. Might at some point want to check - entire (possibly multibyte) characters instead of just bytes. Hint - from ksh via David Korn +make_cmd.c + - change make_here_document to display a warning message including the + start line of a here document if it ends up delimited by EOF. + Addresses issue raised by Richard Neill - 3/7 +subst.c + - in do_assignment_internal, make sure the `invisible' attribute is + unset before returning success + + 7/3 --- -builtins/reserved.def - - changed runs of spaces to tabs in variables help text to make - indentation better when displayed +config-top.h + - add `CASEMOD_CAPCASE' define to include or exclude the ~[~] word + expansion and the `capcase' variable attribute (declare -c) -builtins/mkbuiltins.c - - changes to avoid the annoying extra space that keeps gettext from - being passed an empty string +builtins/declare.def + - add support for manipulating the case-modifying attributes (new + declare -clu); from bash-4.0-devel branch - 3/9 +builtins/setattr.def + - add support for reporting case-modifying attributes (-clu attributes); + from bash-4.0-devel branch + +doc/{bash.1,bashref.texi} + - specify that the read builtin timing out results in a return value + greater than 128 + - document new `-l' and `-u' options to declare/typeset/local. Leave + `-c' undocumented for now + + 7/4 --- -lib/glob/glob.c - - make sure globbing is interrupted if the shell receives a terminating - signal +make_cmd.[ch] + - make_coproc_command: construct a coproc; from bash-4.0-devel tree - 3/14 - ---- -lib/readline/search.c - - call rl_message with format argument of "%" in _rl_nsearch_init - to avoid `%' characters in the prompt string from being interpreted - as format specifiers to vsnprintf/vsprintf +dispose_cmd.c + - dispose coproc command; from bash-4.0-devel tree - 3/19 - ---- -parse.y, eval.c, input.h - - change execute_prompt_command to execute_variable_command; takes the - variable name as a new second argument +copy_cmd.c + - copy a coproc command; from bash-4.0-devel tree - 3/25 - ---- -bashline.c - - command_word_completion_function keeps track of when it's searching - $PATH and doesn't return directory names as matches in that case. - Problem reported by Pascal Terjan - - command_word_completion_function returns what it's passed as a - possible match if it's the name of a directory in the current - directory (only non-absolute pathnames are so tested). +print_cmd.c + - print a coproc command; from bash-4.0-devel tree - 3/27 - ---- -subst.c - - expand_arith_string takes a new argument: quoted. Either 0 (outside - subst.c) or Q_DOUBLE_QUOTES (substitution functions); changed callers +shell.c + - dispoe the current coproc on shell exit; from bash-4.0-devel tree -subst.h - - changed extern declaration for expand_arith_string +redir.c + - when closing redirects as part of user redirections, check whether + or not active coprocess fds are being closed and close the coproc + if so; from bash-4.0-devel tree -arrayfunc.c - - changed call to expand_arith_string in array_expand_index +config.h.in + - add define for COPROCESS_SUPPORT to include coprocesses - 3/31 - ---- -lib/readline/histfile.c - - change read_history_range to allow windows-like \r\n line endings +configure.in + - add support for configuring coprocesses into and out of the build -execute_cmd.c - - add new variable, line_number_for_err_trap, currently set but not - used +jobs.c + - in waitchld, check whether or not a coproc processs has exited; + from the bash-4.0-devel tree - 4/2 + 7/5 --- -lib/sh/strtrans.c - - add code to echo -e and echo with xpg_echo enabled to require - a leading 0 to specify octal constants +doc/bashref.texi + - document new --enable-coprocesses option that includes coprocess + support - 4/3 - --- -subst.c - - slight change to wcsdup() replacement: use memcpy instead of wcscpy +execute_cmd.c + - add functions for coprocess support, including execute_coproc and + code to call it when command->type == cm_coproc; from + bash-4.0-devel tree -parse.y - - before turning on W_COMPASSIGN, make sure the final character in the - token is a `(' (avoids problems with things like a=(4*3)/2) +lib/sh/fdprintf.c + - new library function fdprintf(int fd, const char *format, ...); + printf to a file descriptor - 4/4 - --- -lib/sh/snprintf.c - - in number() and lnumber(), turn off PF_ZEROPAD if explicit precision - supplied in format - - change number() and lnumber() to correctly implement zero-padding - specified by a non-zero `.precision' part of the format +{configure,config.h}.in + - support for detecting fdprintf and compiling in replacement -subst.c - - new flag for extract_delimited_string: EX_COMMAND. For $(...), so - we can do things like skip over delimiters in comments. Added to - appropriate callers - - changes to extract_delimited_string to skip over shell comments when - extracting a command for $(...) (EX_COMMAND is contained in the - flags argument) +Makefile.in,lib/sh/Makefile.in + - add rules to include fdprintf.o - 4/5 +doc/{bash.1,bashref.texi} + - documented coprocesses and `coproc' reserved word + + 7/7 --- subst.c - - first argument to skip_single_quoted is now a const char * - - new function, chk_arithsub, checks for valid arithmetic expressions - by balancing parentheses. Fix based on a patch from Len Lattanzi + - fix array_length_reference to use MB_STRLEN instead of STRLEN, so + multibyte characters in array values are computed correctly. Fixes + bug reported by Wang Xin - 4/6 - --- -{configure,config.h}.in - - add separate test for isnan in libc, instead of piggybacking on - isinf-in-libc test + 7/10 + ---- +jobs.c + - new function, maybe_give_terminal_to (old, new, flags), sets the + terminal pgrp to NEW if and only if it's currently set to OLD + - call maybe_give_terminal_to when the parent sets the terminal pgrp + to the pipeline pgrp in stop_pipeline, so we don't give the + terminal to the new job's pgrp unless it's currently owned by the + shell. Fixes race condition described by Joe Peterson + , where parent bash may change tty pgrp after a + grandchild (interactive bash child of su) has changed it to + something else. The call to maybe_give_terminal_to makes explicit + a previously-implicit assumption + +aclocal.m4 + - remove dependency on writable /tmp by creating directories in + build directory + +shell.c + - make changes to how bash sets no_line_editing and running_under_emacs + to deal with various emacs terminal emulators; use better check + for `eterm', since bash sends $PWD to eterm with control sequences + that confuse other programs. Problem reported by Micah Cowan + + + + 7/12 + ---- +print_cmd.c + - break code that prints here-documents into two functions: + print_heredoc_header, which prints the operator and delimiter, and + print_heredoc_body, which prints the body text and closing delimiter + - change print_redirection to call print_heredoc_{header,body} + - sentinel variable, printing_connection, used when printing a command + of type `connection' (|, &&, ||, etc.) + - change print_redirection_list to save any here documents it finds + while printing a connection and save them in `deferred_heredocs' + - new function, print_deferred_heredocs, called from print_redirection + in the cm_connection case, calls print_heredoc_header for all the + here documents, then prints the operator (|, &&, ||, etc.), then + the here-document body. This preserves syntactic correctness; the + old code printed the control operator after the body of the here + document. Fixes bug reported by + + 7/16 + ---- +locale.c + - in set_locale_var, print a warning message if setlocale() fails any + time it's called -- required some code restructuring + + 7/19 + ---- +support/shobj-conf + - support for mingw32, contributed by Carlo Bramix + + + 7/23 + ---- +execute_cmd.c + - added support (currently unused) to manage a list of coprocs + + 7/25 + ---- +bashline.c + - add extern declarations for literal_history and force_append_history -lib/sh/snprintf.c - - separate the isnan replacement function so it's guarded by its own - HAVE_ISNAN_IN_LIBC define +builtins/shopt.def + - include "bashhist.h" instead of having extern declarations for the + appropriate history variables -lib/sh/wcsdup.c - - new file, contains replacement wcsdup library function from subst.c - with change back to using wcscpy +parser.h + - new parser_state value: PST_HEREDOC, set when reading body of here- + document in parse.y:read_secondary_line -Makefile.in,lib/sh/Makefile.in - - make sure wcsdup.c is compiled and linked in +parse.y + - set PST_HEREDOC bit in parser_state when reading a secondary line + for the body of a here-document + - change read_secondary_line to save lines in the body of a here- + document in the shell history list if remember_on_history is + set. Fixes bug reported by Gene Golub -subst.c - - wcsdup now found in libsh; removed static definition + 8/4 + --- +configure.in + - changed to 4.0-alpha - 4/10 +lib/readline/readline.h + - changed constants to reflect readline-6.0 version + + 8/11 ---- -lib/readline/callback.c - - loop over body of rl_callback_read_char as long as there is additional - input rather than just calling readline_internal_char, which does - not handle multi-character key sequences or escape-prefixed chars +lib/readline/signals.c + - make sure we don't use SIGWINCH without checking whether or not it's + defined. Fix from Pedro Alves -lib/readline/macro.c - - make sure we turn off RL_STATE_MACROINPUT when the macro stack is - empty if we are reading additional input with RL_STATE_MOREINPUT + 8/12 + ---- -support/shobj-conf - - Mac OS X no longer likes the `-bundle' option to gcc when creating a - dynamic shared library +COPYING + - updated to GPLv3; edits in every file with a copyright or license + declaration to update to gpl3 - 4/11 +version.c + - update extended version info to latest gnu standard + + 8/17 ---- -lib/tilde/tilde.c - - don't try to dereference user_entry if HAVE_GETPWENT isn't defined +subst.c + - change exp_jump_to_top_level to only call top_level_cleanup if + parse_and_execute_level is 0. If it's not, the longjmp to + parse_and_execute will run the unwind-protect stack. Fixes bug + most recently reported by Roman Rakus -lib/readline/input.c - - make sure chars_avail is not used without being assigned a value in - rl_gather_tyi - - use _kbhit() to check for available input on Windows consoles, in - rl_gather_tyi and _rl_input_available + 8/18 + ---- +support/config.{guess,sub} + - updated to newer versions from autoconf-2.62 distribution - 4/21 + 8/20 ---- -lib/readline/display.c - - calculate (in expand_prompt) and keep track of length of local_prompt - in local_prompt_len; use where appropriate - - when using o_pos to check whether or not we need to adjust - _rl_last_c_pos after calling update_line, assume that it's correct - (a buffer index in non-multibyte locales and a cursor position in - multibyte locales) and adjust with wrap_offset as appropriate - - in update_line, set cpos_adjusted to 1 after calling - _rl_move_cursor_relative to move to the end of the displayed prompt - string - - in _rl_move_cursor_relative, check that the multibyte display - position is after the last invisible character in the prompt string - before offsetting it by the number of invisible characters in the - prompt (woff) +subst.c + - fixed parameter_brace_substring to differentiate between indexed and + associative arrays when computing second offset, instead of + assuming indexed array - 4/26 + 8/21 ---- -lib/readline/doc/{rluser.texi,readline.3} - - make sure to note that key bindings don't allow any whitespace - between the key name or sequence to be bound and the colon +support/xcase.c + - simple program to convert input from lower to uppercase and vice + versa. Now used by coproc test suite, since `tr -u' is not + portable. - 4/28 + 8/22 ---- -lib/readline/display.c - - in update_line, make sure we compare _rl_last_c_pos as strictly less - than PROMPT_ENDING_INDEX, since it's 0-based, to avoid multiple - prompt redraws +doc/bash.1 + - fixed description of the bindable edit-and-execute commands to note + they check $VISUAL first, instead of $FCEDIT. Fixed bug reported + by - 5/4 +[bash-4.0-alpha frozen] + + 8/28 + ---- +[bash-4.0-alpha released] + + 9/1 --- -parse.y - - in decode_prompt_string, only prefix the expansion of \[ or \] - with CTLESC if the corresponding readline escape character is - CTLESC (coincidentally the same as \[) or CTLNUL. Bug report sent - by Mike Frysinger prompted the discovery +builtins/evalstring.c + - fixed typo in parse_string (ostring used uninitialized). Bug + reported by Andreas Schwab -aclocal.m4 - - slight change to test for /dev/fd to compensate for a linux - failing; suggested by Mike Frysinger +subst.c + - fix return value of parameter_brace_expand to set the + W_HASQUOTEDNULL flag in the returned WORD_DESC * if the return value + from parameter_brace_remove_pattern is a quoted null string. Fixes + bug reported by Andreas Schwab + - set the W_HASQUOTEDNULL flag in the return value from + parameter_brace_expand if the return value from parameter_brace_patsub + is a quoted null string - 5/9 + 9/6 --- -arrayfunc.c - - broke assign_array_var_from_string into two functions: - expand_compound_array_assignment and assign_compound_array_list; - assign_array_var_from_string just calls those functions now +builtins/read.def + - change read -t 0 to return success if there is input available to be + read -- allows scripts to poll for input. Uses input_avail libsh + function -arrayfunc.h - - new extern declarations for expand_compound_array_assignment and - assign_compound_array_list + 9/9 + --- +externs.h + - fix extern fpurge declaration -- use HAVE_DECL_FPURGE instead of + NEED_FPURGE_DECL, since the former is set by `configure' -subst.c - - in do_compound_assignment, call expand_compound_array_assignment - before creating the local variable so a previous inherited - value can be used when expanding the rhs of the compound assignment - statement +jobs.h + - add extern declaration for close_pgrp_pipe + - add a new job state JNONE (-1) to the enum - 5/11 - ---- -doc/{bash.1,bashref.texi} - - clarifed `trap' description to make it clear that trapped signals - that are not set to SIG_IGN are reset when a subshell is created +jobs.c + - include execute_cmd.h for extern declarations for coproc functions - 5/18 - ---- -locale.c - - change reset_locale_vars to call setlocale (LC_ALL, "") if LANG - is unset or NULL - - if LANG is unset or NULL, reset the export environment before - calling setlocale in reset_locale_vars, and trust that it will - change the environment setlocale() inspects +subst.c + - include builtins/builtext.h for extern declarations for functions + implementing builtins (e.g., declare_builtin) - 5/21 - ---- -lib/readline/history.c - - new function, HIST_ENTRY *alloc_history_entry (char *string, char *ts); - creates a new history entry with text STRING and timestamp TS (both - of which may be NULL) - - new function, HIST_ENTRY *copy_history_entry (HIST_ENTRY *hist), - which copies the line and timestamp entries to new memory but just - copies the data member, since that's an opaque pointer - - new function, void replace_history_data (int which, histdata_t *old, histdata_t *new) - which replaces the `data' member of specified history entries with - NEW, as long as it is OLD. WHICH says which history entries to - modify - - add calls to replace_history_data in rl_free_undo_list and - rl_do_undo +arrayfunc.c + - include "pathexp.h" for extern declaration for glob_char_p -lib/readline/undo.c - - new function, alloc_undo_entry (enum undo_code what, int start, int end, char *text) - takes care of allocating and populating a struct for an individual - undo list entry - - new function: _rl_copy_undo_entry(UNDO_LIST *entry) - - new function: _rl_copy_undo_list(UNDO_LIST *head) +braces.c + - add extern declaration for `asprintf' lib/readline/rlprivate.h - - new extern declarations for _rl_copy_undo_{entry,list} + - add extern declarations for _rl_trace, _rl_tropen -execute_cmd.c - - change execute_cond_node so that quoting the rhs of the =~ - operator forces string matching, like the == and != operators +lib/sh/zgetline.c + - add extern declarations for zread, zreadc - 5/23 +lib/sh/mktime.c + - include "bashansi.h" for string function declarations + +builtins/common.h + - add extern declaration for parse_string + +trap.c + - include jobs.h for extern declaration for run_sigchld_trap + +general.c + - fix call to strtoimax in legal_number; if ep == string when function + returns, the number was not converted, even if errno is not set. + Fix from Paul Jarc + + 9/11 ---- -redir.c - - add_undo_redirect now takes as an additional argument the type of - redirection we're trying to undo - - don't add a "preservation" redirection for fds > SHELL_FD_BASE if - the redirection is closing the fd +[prayers for the victims of 9/11/2001] - 5/24 +builtins/return.def + - call no_options, as Posix requires. This also has the effect of + disallowing negative return values unless they're prefixed by `--' + + 9/13 ---- -subst.c - - make sure that parameter_brace_substring leaves this_command_name - set to either NULL or its previous value after setting it so that - arithmetic evaluation errors while expanding substring values - contain meaningful information +builtins/bind.def + - add an error message when bind is used without line editing active, + instead of just returning an error status - 6/9 - --- -execute_cmd.c - - make sure that SUBSHELL_ASYNC and SUBSHELL_PIPE are set as flag bits - in subshell_environment, rather than setting only a single value - - change execute_subshell_builtin_or_function to give the `return' - builtin a place to longjmp to when executed in a subshell or pipeline - (mostly as the last command in a pipeline). Bug reported by - Oleg Verych - - in execute_simple_command, make sure to call execute_disk_command - with the_printed_command_except_trap to keep DEBUG trap command - strings from overwriting the command strings associated with jobs - and printed in job control messages. Bug reported by Daniel Kahn - Gillmor +variables.c + - make sure make_local_variable never creates visible variables with + a value, whether or not a variable with the same name existed in a + previous context. This is consistent with ksh93. Fix from + -[bash-3.2-alpha frozen] + 9/16 + ---- +execute_cmd.c + - add call to CHECK_TERMSIG in shell_execve after the call to execve + returns. Recommended by Roman Rakus + - add QUIT check in execute_connection after executing first command + in a `&' connection - 6/22 + 9/22 ---- -syntax.h - - add new CBLANK (for [:blank:] class) flag value for syntax table and - shellblank(c) character test macro +execute_cmd.c + - new semaphore variable, executing_list, incremented every time a + list (command1;command2 or command1 || command2 or command1 && + command2) is executed; used as sentinel for rest of shell -mksyntax.c - - add support for setting CBLANK flag in the syntax table depending on - whether or not isblank(x) returns true for character x +sig.c,builtins/evalstring.c + - set executing_list to 0 when throwing execution back to top level; + make sure to unwind-protect it in appropriate places -locale.c - - change locale_setblanks to set or unset CBLANK flag for each - character when locale changes +jobs.c + - if a pipeline is killed by SIGINT while executing a list (when + executing_list is non-zero), make sure the shell acts as if an + interrupt occurred. The behavior is dependent on the shell + compatibility level being > 32 (bash-4.0 and above) -parse.y - - change call to whitespace(c) in lexical analyzer (read_token()) to - call shellblank(c) instead, so locale-specific blank characters are - treated as white space. Fixes bug reported by Serge van deb Boom - + 9/23 + ---- +redir.c + - don't bother reporting an error with a file descriptor, even if + the errno is EBADF, if the redirection error (e.g., NOCLOBBER) + can't have anything to do with the fd. Fixes bug reported by + "David A. Harding" , debian bug #499633. -print_cmd.c - - when printing redirections, add a space between <, >, and <> and the - following word, to avoid conflicts with process substitution. Bug - reported by Ittay Dror + 9/24 + ---- +builtins/declare.def + - make `declare [option] var' (and the `typeset' equivalent) create + invisible variables, instead of assigning the null string to a + visible variable. Fixes bug reported by Bernd Eggink - 6/26 + 9/25 ---- -configure.in - - set CROSS_COMPILE to the empty string by default, so we don't inherit - a random value from the environment. Bug reported by - Lee Revell +builtins/common.[ch] + - new function, builtin_warning(), like builtin_error but for warning + messages - 6/29 +builtins/bind.def + - experimental: print a warning, but go on, if line editing not active + when bind is invoked. Suggested by Rocky Bernstein + + + 10/3 ---- -lib/glob/xmbsrtowcs.c - - make sure destp is non-null before assigning a 0 to *destp in - xdupmbstowcs. Fix from Louiwa Salem +test.c + - use same_file instead of directly comparing st_dev and st_ino when + comparing files in filecomp(). From mingw32 patches submitted + by Hector Chu -execute_cmd.c - - fix execute_in_subshell to make sure asynchronous isn't set to 0 - before subshell_environment is set appropriately and - setup_async_signals is run. Based on report by Louiwa Salem - + 10/4 + ---- -lib/readline/bind.c - - in rl_generic_bind(), make sure that the keys array is freed before - an error return. Fix from Louiwa Salem +redir.c + - in redirection_error(), use `error' instead of errno when comparing + against EBADF. From mingw32 patches submitted by Hector Chu + + +shell.c + - in unset_bash_input(), reset bash_input.type to st_none after + closing the default buffered fd. From mingw32 patches submitted + by Hector Chu + +builtins/cd.def + - ignore CDPATH when in privileged mode. Suggested by Paul Jarc + + +variables.c + - change sv_globignore to only act if privileged mode is not enabled. + Suggested by Paul Jarc + +doc/bash.1,bashref.texi + - document new treatment of CDPATH and GLOBIGNORE when privileged + mode is enabled - 7/1 - --- builtins/read.def - - make sure all editing code is protected with #ifdef READLINE, esp. - unwind-protect that restores the default completion function + - change prompt printing to occur after terminal is set to no-echo + mode. Based on suggestion from Stephane Chazelas + -lib/readline/display.c - - make sure to set local_prompt_len in rl_message() [in bash-3.2-alpha] - - 7/5 - --- -builtins/printf.def - - add more of echo's write error handling to printf. Suggested by - martin.wilck@fujitsu-siemens.com +lib/readline/signals.c + - new variables to keep track of special characters corresponding to + SIGINT, SIGQUIT, and SIGTSTP + - new variable to keep track of whether tty is echoing control + characters corresponding to SIGINT, SIGQUIT, and SIGTSTP + - new function, _rl_echo_signal_char(int sig) to display the tty + special char generating SIGINT, SIGQUIT, or SIGTSTP. Based on + idea and code from Joe Peterson + - call rl_echo_signal_char in rl_signal_handler: if the terminal + settings indicate it, readline will echo characters that generate + keyboard signals - 7/7 - --- -lib/readline/display.c - - save and restore local_prompt_len in rl_{save,restore}_prompt - [in bash-3.2-alpha] +lib/readline/rltty.c + - set _rl_intr_char, _rl_quit_char, and _rl_susp_char to special + characters that generate signals from keyboard + - set _rl_echoctl if ECHOCTL tty flag is set - 7/8 - --- -[bash-3.2-alpha released] +lib/readline/rlprivate.h + - extern declarations for _rl_intr_char, _rl_quit_char, and + _rl_susp_char + - extern declaration for _rl_echoctl - 7/9 - --- -lib/readline/display.c - - make sure that _rl_move_cursor_relative sets cpos_adjusted when it - offsets `dpos' by wrap_offset in a multi-byte locale. Bug reported - by Andreas Schwab and Egmont Koblinger +lib/readline/readline.h + - extern declaration for rl_echo_signal_char() -subst.c - - make sure that the call to mbstowcs in string_extract_verbatim is - passed a string with enough space for the closing NUL. Reported - by Andreas Schwab +lib/readline/doc/rltech.texi + - document rl_echo_signal_handler(): available for applications + that install their own signal handlers - 7/18 + 10/5 ---- -lib/readline/{display,terminal}.c - - remove #ifdefs for HACK_TERMCAP_MOTION so we can use - _rl_term_forward_char in the redisplay code unconditionally +execute_cmd.c + - fix errexit logic to not cause the shell to exit when a command in + a pipeline fails. Fixes bug reported by Marcin Owsiany + -lib/readline/rlprivate.h - - new extern declaration for _rl_term_forward_char + 10/14 + ----- +builtins/evalstring.c + - don't short-circuit execution in parse_and_execute if we want to + run an exit trap. Fixes bug reported by Steffen Kiess + -lib/readline/display.c - - in _rl_move_cursor_relative, use `dpos' instead of `new' when - deciding whether or not a CR is faster than moving the cursor from - its current position - - in _rl_move_cursor_relative, we can use _rl_term_forward_char to - move the cursor forward in a multibyte locale, if it's available. - Since that function doesn't have a handle on where the cursor is in - the display buffer, it has to output a cr and print all the data. - Fixes rest of problem reported by Egmont Koblinger - - change variable denoting the position of the cursor in the line buffer - from c_pos (variable local to rl_redisplay) to cpos_buffer_position - (variable local to file) for future use by other functions + 10/18 + ----- +parse.y + - fix error production to only call YYACCEPT if the shell is currently + interactive and not in parse_and_execute (so parser errors in + things like eval will correctly set $?). Fixes bug reported by + marco-oweber@gmx.de - 7/25 - ---- -lib/malloc/{stats,table}.h - - include for prototypes for memset, strlen +execute_cmd.c + - make sure variable name errors in execute_for_command and non- + identifier function names in execute_intern_function set the + return status to EX_BADUSAGE (2), not EX_USAGE (258) -lib/termcap/{termcap,tparam}.c - - include and provide macro replacement for bcopy if - necessary +parser.h + - new parser state, PST_REPARSE - 7/27 - ---- -lib/readline/histexpand.c - - add support for `<<<' here-string redirection operator to - history_tokenize_word. Bug reported by agriffis@gentoo.org +parse.y + - turn PST_REPARSE on in parse_string_to_word_list + - in parse_matched_pair, if parsing a single-quoted string and + PST_REPARSE is set, don't requote CTLESC or CTLNUL. Fixes bug with + compound array assignment using $'\x7f' reported by Antonio Macchi + -externs.h - - don't add prototype for strerror() if HAVE_STRERROR defined + 10/23 + ----- +configure.in + - define LOCAL_LDFLAGS as `-z interpose' on Solaris 8, 9, and 10 to + allow the bash malloc to interpose the libc malloc when called by + library functions pre-bound to the libc malloc. Suggested by + Serge Dussud - 7/29 - ---- -subst.c - - in list_string, use `string' instead of `s' -- s is not initialized + 10/26 + ----- +doc/bash.1 + - add single-sentence descriptions to rest of parameter expansions. + Suggested by Ken Irving - 8/9 - --- + 10/27 + ----- subst.c - - fix parameter_brace_expand to set W_HASQUOTEDNULL in the WORD_DESC it - returns if the result of parameter_brace_substring is a quoted null - ("\177"). Fixes bug reported by Igor Peshansky - - 8/16 - ---- -lib/readline/readline.h - - new #define, READERR, intended to be used to denote read/input errors + - rearrange code in skip_to_delims to allow quote characters and other + shell expansion characters to be delimiters + - add new flags value for inverting search: skip to the next character + NOT in the set of delimiters passed as an argument -lib/readline/input.c - - in rl_getc, if read() returns an error other than EINTR (after the - EWOULDBLOCK/EAGAIN cases are handled), return READERR rather than - converting return value to EOF if readline is reading a top-level - command (RL_STATE_READCMD) +subst.h + - define for new SD_INVERT flag value for skip_to_delims -lib/readline/readline.c - - if rl_read_key returns READERR to readline_internal_char[loop], - abort as if it had read EOF on an empty line, without any conversion - to newline, which would cause a partial line to be executed. This - fixes the bug reported by Mathieu Bonnet + 10/28 + ----- +bashline.c + - new bindable functions: shell-forward-word and shell-backward-word. + Like forward-word and backward-word, but understand shell quoting + and use shell metacharacters and whitespace as delimiters. + Suggested by Andre Majorel + - new bindable functions: shell-kill-word and shell-backward-kill-word. + Like kill-word and backward-kill-word, but understand shell quoting + and use shell metacharacters and whitespace as delimiters. + Suggested by Andre Majorel -aclocal.m4 - - when testing for validity of /dev/fd/3, use /dev/null instead of - standard input, since the standard input fails with linux and `su'. - Bug reported by Greg Shafer +doc/bash.1,lib/readline/doc/rluser.texi + - documented shell-forward-word and shell-backward-word + - documented shell-kill-word and shell-backward-kill-word - 8/17 + 11/1 ---- -Makefile.in - - switch the TAGS and tags targets so TAGS is the output of `etags' and - tags is the output of `ctags'. Suggested by Masatake YAMATO +redir.c + - add extra argument to add_undo_redirect: fdbase. FD used to save + a file descriptor must be > fdbase if fdbase >= SHELL_FD_BASE. A + value of -1 for fdbase means to just use SHELL_FD_BASE. Fixes bug + with 0<&10 reported by Clark Jian Wang - 8/25 + 11/5 ---- -execute_cmd.c - - change code to match documentation: set BASH_COMMAND (which takes its - value from the_printed_command_except_trap) only when not running a - trap. Rocky says the debugger is ok with this, and this is what his - original diffs did +unwind_prot.c + - new function: have_unwind_protects(); returns 1 if unwind_protect_list + is not empty - 8/29 +unwind_prot.h + - extern declaration for have_unwind_protects + +builtins/evalstring.c + - in parse_and_execute_cleanup, make sure that we don't call + run_unwind_frame and expect it to decrement parse_and_execute_level + if there's no unwind_protect_list, since there's a while loop in + throw_to_top_level that calls parse_and_execute_cleanup as long as + parse_and_execute_level is non-zero + + 11/9 ---- variables.c - - change set_if_not to create shell_variables if it is NULL, since - -o invocation options can cause variables to be set before the - environment is scanned + - fix the assign function for COMP_WORDBREAKS to allocate new memory + to store as the variable's value, to avoid freeing memory twice + if the variable is unset after rl_completer_word_break_characters + is freed and reallocated. Fix from Mike Stroyan + - call reset_completer_word_break_chars in sv_comp_wordbreaks when the + variable is unset -builtins/echo.def,doc/{bash.1,bashref.texi} - - clarify that `echo -e' and echo when the `xpg_echo' shell option is - enabled require the \0 to precede any octal constant to be expanded. - Reported by Vasco Pedro +[bash-4.0-beta frozen] - 9/12 - ---- -builtins/printf.def - - make sure `%q' format specifier outputs '' for empty string arguments - Bug reported by Egmont Koblinger + 11/16 + ----- +subst.c + - call set_pipestatus_from_exit in exp_jump_to_top_level so that + failed expansions that set $? will set $PIPESTATUS. Fixes bug + reported by Eric Blake -make_cmd.c - - change make_here_document to echo lines in here-doc if set -v has - been executed. Reported by Eduardo Ochs + 11/20 + ----- +general.c + - new 'file_exists(fn)' primitive; just calls stat(2) -aclocal.m4 - - change BASH_CHECK_MULTIBYTE: - o replace check for wctomb with check for wcrtomb - o add checks for wcscoll, iswctype, iswupper, iswlower, - towupper, towlower - o add call to AC_FUNC_MBRTOWC to check for mbrtowc and mbstate_t - define HAVE_MBSTATE_T manually - o add checks for wchar_t, wctype_t, wint_t +general.h + - new extern declaration for file_exists -config.h.in - - add defines for wcscoll, iswctype, iswupper, iswlower, towupper, - towlower functions - - replace define for wctomb with one for wcrtomb - - add defines for wchar_t, wint_t, wctype_t types +bashline.c + - add `~' to rl_filename_quote_characters so make_quoted_replacement + will call bash_quote_filename for words containing `~'. Then + bash_quote_filename can make choices based on that + - change quote_word_break_chars to backslash-quote the tilde in a + filename with a leading tilde that exists in the current directory, + since we want to inhibit tilde expansion in this case -config-bot.h, lib/readline/rlmbutil.h - - add check for HAVE_LOCALE_H before defining HANDLE_MULTIBYTE - - add checks for: ISWCTYPE, ISWLOWER, ISWUPPER, TOWLOWER, TOWUPPER - - add checks for: WCTYPE_T, WCHAR_T, WCTYPE_T +execute_cmd.c + - call file_isdir from shell_execve instead of stat(2) directly - 9/13 - ---- +bashhist.c + - use file_exists and file_isdir primitives instead of calling stat + + 11/21 + ----- +redir.c + - When undoing saving of non-standard file descriptors (>=3) using + file descriptors >= SHELL_FD_BASE, we set the saving fd to be + close-on-exec and use a flag (RX_SAVCLEXEC) to decide how to set + close-on-exec when the fd is restored. Set flag in add_undo_redirect, + check in do_redirection_internal. Fixes problem reported by Andreas + Schwab + + 11/26 + ----- +subst.c + - fix param_expand to have expansions of $@ and $* exit the shell if + there are no positional parameters and `set -u' is enabled. Fixes + bug reported by Dan Jacobson + + 11/27 + ----- lib/readline/display.c - - when displaying prompts longer than the screenwidth in rl_redisplay, - and looking for the index of the last character whose buffer index - is <= the screen width to set up the inv_lbreaks array, make sure to - catch the case where the index == the screen width (an off-by-one - error occurs otherwise with prompts one character longer than the - screen width). Bug reported by Alexey Toptygin + - fix update_line to not call space_to_eol if current cursor position + (_rl_last_c_pos) indicates that we're already at end of line. + Partial fix for bug reported by Mike Frysinger + - in update_line, don't call insert_some_chars if that will start + before the last invisible character in the prompt string and not + draw the entire prompt string. More of the partial fix for bug + reported by Mike Frysinger + - fix update_line to adjust _rl_last_c_pos by wrap_offset when adding + characters beginning before the last invisible character in the + prompt. New code is same as previously existed in a different code + path. Rest of fix for bug from Mike Frysinger + - fix assignment of newline breaks (inv_lbreaks) to correctly account + for prompts longer than two screen lines containing invisible + characters. The assumption is that part of the invisible characters + are on the first line (prompt_invis_chars_first_line) and the + remainder are on the last (wrap_offset - prompt_invis_chars_first_line). + Fix is in rl_redisplay. part of fix for bug reported by + "Wesley J. Landaker" in + http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=265182 + [TENTATIVE] + - fix _rl_move_cursor_relative to correctly offset `dpos' by `woff' + when there are invisible characters on lines after the second by + using (_rl_screenwidth*_rl_last_v_pos) when seeing whether or not + we just wrote some invisible characters. Rest of fix for bug + reported in http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=265182 + [TENTATIVE] -configure.in - - change DEBUGGER_START_FILE to start with ${ac_default_prefix}/share, - like bashdb installs itself. Reported by Nick Brown - + 12/11 + ----- +sig.c + - reset the execution context before running the exit trap in + termsig_handler + +general.c + - set and unset terminate_immediately like interrupt_immediately in + bash_tilde_expand + +builtins/read.def + - change terminate_immediately to a counter instead of a flag, as + interrupt_immediately is used - 9/14 - ---- lib/readline/display.c - - make multibyte code that computes the buffer indices of line breaks - for a multi-line prompt dependent on MB_CUR_MAX, so we don't take - the function call hit unless we're in a locale that can have - multibyte characters + - slight change to fix from 11/27 to deal with prompts longer than a + screen line where the invisible characters all appear after the + line wrap. Fixes bug reported by Andreas Schwab - 9/19 - ---- +builtins/{echo,printf}.def + - increment terminate_immediately at entry; decrement before returning. + Fix for bug reported by Ralf.Wildenhues@gmx.de + + 12/16 + ----- subst.c - - make dequote_list extern so other parts of the shell can use it + - fix off-by-one error in /dev/fd version of add_fifo_list; make + sure we add to totfds when it is == fd, not just when fd > totfds. + Fixes bug reported by marciso@gmail.com -subst.h - - extern declaration for dequote_list +[bash-4.0-beta2 frozen] -builtins/read.def - - call dequote_list before assigning words read to array variable if - we saw an escape character. Old code left spurious CTLESCs in the - string after processing backslashes. Bug reported by Daniel Dawson - + 12/29 + ----- +doc/{bash.1,bashref.texi} + - document more clearly that when not in Posix mode, command + substitution does not inherit the -e option. From bug report from + Freddy Vulto + +{execute_cmd,sig,builtins/evalstring}.c + - sentinel variable to keep track of whether or not we're supposed to + ignore the failure status of a command executed in a command + substitution even if the `-e' option is set: comsub_ignore_return + - increment and decrement comsub_ignore_return in execute_simple_command + before calling expand_words + - in parse_and_execute, if comsub_ignore_return is non-zero and the + SUBSHELL_COMSUB bit is set in subshell_environment, enable the + CMD_IGNORE_RETURN flag in every command executed from the passed + string. Fixes problem reported by Freddy Vulto + - make sure to reset comsub_ignore_return every time we throw to the + top level, like executing_list flag + + 1/2/2009 + -------- +parse.y + - fix to rewind_input_stream to handle case of $(...) command + substitution followed by a quoted literal newline. Report and fix + from Andreas Schwab - 9/21 - ---- -[bash-3.2 frozen] + 1/7 + --- + +subst.c + - fix match_wpattern and match_upattern to prefix a `*' to the + pattern even if it starts with a `*(' (if extglob is enabled) + before checking whether or not it can match anywhere in the + string. Fixes bug reported by os@sernet.de. + +[bash-4.0-rc1 frozen] diff --git a/CWRU/misc/bison b/CWRU/misc/bison index 5dcd3a89d..58aae79ed 100755 --- a/CWRU/misc/bison +++ b/CWRU/misc/bison @@ -5,19 +5,19 @@ # 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 free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. # -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . # -# 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. if [ "$1" = '-y' ]; then shift diff --git a/CWRU/misc/errlist.c b/CWRU/misc/errlist.c index 3970ba193..53c368d36 100644 --- a/CWRU/misc/errlist.c +++ b/CWRU/misc/errlist.c @@ -2,23 +2,23 @@ * If necessary, link with lib/sh/libsh.a */ -/* Copyright (C) 1998-2002 Free Software Foundation, Inc. +/* Copyright (C) 1998-2009 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. + 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #include #include diff --git a/CWRU/misc/hpux10-dlfcn.h b/CWRU/misc/hpux10-dlfcn.h index 69b626ede..49d442810 100644 --- a/CWRU/misc/hpux10-dlfcn.h +++ b/CWRU/misc/hpux10-dlfcn.h @@ -17,23 +17,23 @@ * the -E flag to LOCAL_LDFLAGS. */ -/* Copyright (C) 1998-2002 Free Software Foundation, Inc. +/* Copyright (C) 1998-2009 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. + 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #if !defined (__HPUX10_DLFCN_H__) diff --git a/CWRU/misc/open-files.c b/CWRU/misc/open-files.c index ca3d26ed4..6a5557769 100644 --- a/CWRU/misc/open-files.c +++ b/CWRU/misc/open-files.c @@ -1,22 +1,22 @@ /* open-files -- report files a process has open */ -/* Copyright (C) 1989-2002 Free Software Foundation, Inc. +/* Copyright (C) 1989-2009 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. + 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #include #include diff --git a/CWRU/misc/sigs.c b/CWRU/misc/sigs.c index 2c16935f8..097ab3179 100644 --- a/CWRU/misc/sigs.c +++ b/CWRU/misc/sigs.c @@ -1,22 +1,22 @@ /* sigs - print signal dispositions for a process */ -/* Copyright (C) 1990-2002 Free Software Foundation, Inc. +/* Copyright (C) 1990-2009 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. + 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #include #include diff --git a/CWRU/misc/sigstat.c b/CWRU/misc/sigstat.c index 2252a8573..9135baa4a 100644 --- a/CWRU/misc/sigstat.c +++ b/CWRU/misc/sigstat.c @@ -5,23 +5,23 @@ * chet@po.cwru.edu */ -/* Copyright (C) 1991-2002 Free Software Foundation, Inc. +/* Copyright (C) 1991-2009 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. + 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #include #include diff --git a/INSTALL b/INSTALL index 4dfaa0d92..eee64bb35 100644 --- a/INSTALL +++ b/INSTALL @@ -275,7 +275,16 @@ does not provide the necessary support. `--enable-brace-expansion' Include `csh'-like brace expansion ( `b{a,b}c' ==> `bac bbc' ). - See *Note Brace Expansion::, for a complete description. + See *note Brace Expansion::, for a complete description. + +`--enable-casemod-attributes' + Include support for case-modifying attributes in the `declare' + builtin and assignment statements. Variables with the UPPERCASE + attribute, for example, will have their values converted to + uppercase upon assignment. + +`--enable-casemod-expansion' + Include support for case-modifying word expansions. `--enable-command-timing' Include support for recognizing `time' as a reserved word and for @@ -292,6 +301,10 @@ does not provide the necessary support. `=~' binary operator in the `[[' conditional command. (*note Conditional Constructs::). +`--enable-coprocesses' + Include support for coprocesses and the `coproc' reserved word + (*note Pipelines::). + `--enable-debugger' Include support for the bash debugger (distributed separately). @@ -301,7 +314,7 @@ does not provide the necessary support. `--enable-disabled-builtins' Allow builtin commands to be invoked via `builtin xxx' even after - `xxx' has been disabled using `enable -n xxx'. See *Note Bash + `xxx' has been disabled using `enable -n xxx'. See *note Bash Builtins::, for details of the `builtin' and `enable' builtin commands. @@ -311,7 +324,7 @@ does not provide the necessary support. `--enable-extended-glob' Include support for the extended pattern matching features - described above under *Note Pattern Matching::. + described above under *note Pattern Matching::. `--enable-help-builtin' Include the `help' builtin, which displays help on shell builtins @@ -346,7 +359,7 @@ does not provide the necessary support. `--enable-prompt-string-decoding' Turn on the interpretation of a number of backslash-escaped characters in the `$PS1', `$PS2', `$PS3', and `$PS4' prompt - strings. See *Note Printing a Prompt::, for a complete list of + strings. See *note Printing a Prompt::, for a complete list of prompt string escape sequences. `--enable-readline' @@ -355,7 +368,7 @@ does not provide the necessary support. `--enable-restricted' Include support for a "restricted shell". If this is enabled, - Bash, when called as `rbash', enters a restricted mode. See *Note + Bash, when called as `rbash', enters a restricted mode. See *note The Restricted Shell::, for a description of restricted mode. `--enable-select' diff --git a/MANIFEST b/MANIFEST index f9d96cc3f..cbb03fd1f 100644 --- a/MANIFEST +++ b/MANIFEST @@ -10,7 +10,6 @@ builtins d cross-build d doc d examples d -examples/bashdb d examples/obashdb d examples/complete d examples/functions d @@ -33,7 +32,6 @@ 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 @@ -61,6 +59,7 @@ config.h.in f aclocal.m4 f array.c f arrayfunc.c f +assoc.c f eval.c f print_cmd.c f general.c f @@ -111,6 +110,7 @@ patchlevel.h f variables.h f array.h f arrayfunc.h f +assoc.h f jobs.h f findcmd.h f hashlib.h f @@ -177,6 +177,7 @@ builtins/let.def f builtins/history.def f builtins/jobs.def f builtins/kill.def f +builtins/mapfile.def f builtins/mkbuiltins.c f builtins/printf.def f builtins/pushd.def f @@ -375,18 +376,23 @@ lib/readline/examples/rl.c f lib/readline/examples/rlcat.c f lib/readline/examples/Inputrc f lib/sh/Makefile.in f +lib/sh/casemod.c f lib/sh/clktck.c f lib/sh/clock.c f lib/sh/eaccess.c f +lib/sh/fdprintf.c f lib/sh/fmtullong.c f lib/sh/fmtulong.c f lib/sh/fmtumax.c f +lib/sh/fpurge.c f lib/sh/getcwd.c f lib/sh/getenv.c f lib/sh/inet_aton.c f +lib/sh/input_avail.c f lib/sh/itos.c f lib/sh/mailstat.c f lib/sh/makepath.c f +lib/sh/mbscmp.c f lib/sh/memset.c f lib/sh/mktime.c f lib/sh/netconn.c f @@ -421,11 +427,15 @@ lib/sh/strtrans.c f lib/sh/times.c f lib/sh/timeval.c f lib/sh/tmpfile.c f +lib/sh/uconvert.c f +lib/sh/ufuncs.c f lib/sh/vprint.c f lib/sh/wcsdup.c f lib/sh/winsize.c f lib/sh/xstrchr.c f lib/sh/zcatfd.c f +lib/sh/zgetline.c f +lib/sh/zmapfd.c f lib/sh/zread.c f lib/sh/zwrite.c f lib/termcap/Makefile.in f @@ -434,21 +444,6 @@ 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 @@ -458,18 +453,63 @@ po/LINGUAS f po/Makefile.in.in f po/Makevars f po/POTFILES.in f +po/README 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.gmo 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/ru.po f +po/en@quot.header f +po/en@quot.po f +po/af.gmo f +po/af.po f +po/bg.gmo f +po/bg.po f +po/ca.gmo f +po/ca.po f +po/cs.gmo f +po/cs.po f +po/de.gmo f +po/de.po f +po/eo.gmo f +po/eo.po f +po/es.gmo f +po/es.po f +po/et.gmo f +po/et.po f +po/fr.gmo f +po/fr.po f +po/hu.gmo f +po/hu.po f +po/id.gmo f +po/id.po f +po/ja.gmo f +po/ja.po f +po/lt.gmo f +po/lt.po f +po/nl.gmo f +po/nl.po f +po/pl.gmo f +po/pl.po f +po/pt_BR.gmo f +po/pt_BR.po f +po/ro.gmo f +po/ro.po f po/ru.gmo f +po/ru.po f +po/sk.gmo f +po/sk.po f +po/sv.gmo f +po/sv.po f +po/tr.gmo f +po/tr.po f +po/vi.gmo f +po/vi.po f +po/zh_TW.gmo f +po/zh_TW.po f po/insert-header.sin f po/quot.sed f po/remove-potcdate.sin f @@ -481,6 +521,7 @@ CWRU/misc/errlist.c f CWRU/misc/hpux10-dlfcn.h f CWRU/PLATFORMS f CWRU/README f +CWRU/audit-patch f CWRU/changelog f CWRU/sh-redir-hack f CWRU/mh-folder-comp f @@ -503,6 +544,7 @@ doc/fdl.texi f doc/fdl.txt f support/Makefile.in f support/bashversion.c f +support/checkbashisms f 755 support/config.guess f support/config.rpath f 755 support/config.sub f @@ -521,6 +563,7 @@ support/bashbug.sh f support/man2html.c f support/recho.c f support/zecho.c f +support/xcase.c f support/SYMLINKS f support/fixlinks f 755 support/install.sh f 755 @@ -531,15 +574,11 @@ support/shobj-conf f 755 support/rlvers.sh f 755 examples/INDEX.txt f examples/INDEX.html f -examples/bashdb/PERMISSION f -examples/bashdb/README 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/obashdb/bashdb f +examples/obashdb/bashdb.el f +examples/complete/bash_completion f examples/complete/complete-examples f examples/complete/complete.ianmac f examples/complete/complete2.ianmac f @@ -577,6 +616,7 @@ examples/loadables/uname.c f examples/loadables/sync.c f examples/loadables/mkdir.c f examples/loadables/ln.c f +examples/loadables/mypid.c f examples/loadables/unlink.c f examples/loadables/perl/Makefile.in f examples/loadables/perl/README f @@ -656,6 +696,8 @@ examples/scripts/showperm.bash f examples/scripts/shprompt f examples/scripts/spin.bash f examples/scripts/timeout f +examples/scripts/timeout2 f +examples/scripts/timeout3 f examples/scripts/vtree2 f examples/scripts/vtree3 f examples/scripts/vtree3a f @@ -697,8 +739,19 @@ tests/array1.sub f tests/array2.sub f tests/array3.sub f tests/array4.sub f +tests/array5.sub f +tests/array6.sub f +tests/array7.sub f +tests/array8.sub f +tests/array9.sub f tests/array-at-star f tests/array2.right f +tests/assoc.tests f +tests/assoc.right f +tests/assoc1.sub f +tests/assoc2.sub f +tests/assoc3.sub f +tests/assoc4.sub f tests/braces.tests f tests/braces.right f tests/builtins.tests f @@ -710,8 +763,27 @@ tests/source2.sub f tests/source3.sub f tests/source4.sub f tests/source5.sub f +tests/source6.sub f +tests/case.tests f +tests/case.right f +tests/casemod.tests f +tests/casemod.right f +tests/comsub.tests f +tests/comsub.right f +tests/comsub-eof.tests f +tests/comsub-eof0.sub f +tests/comsub-eof1.sub f +tests/comsub-eof2.sub f +tests/comsub-eof3.sub f +tests/comsub-eof.right f +tests/comsub-posix.tests f +tests/comsub-posix.right f +tests/comsub-posix1.sub f tests/cond.tests f tests/cond.right f +tests/cond-regexp.sub f +tests/coproc.tests f +tests/coproc.right f tests/cprint.tests f tests/cprint.right f tests/dbg-support.right f @@ -724,6 +796,7 @@ tests/dollar-at1.sub f tests/dollar-at2.sub f tests/dollar-star1.sub f tests/dollar-star2.sub f +tests/dollar-star3.sub f tests/dollar.right f tests/dstack.tests f tests/dstack.right f @@ -740,8 +813,11 @@ tests/exec4.sub f tests/exec5.sub f tests/exec6.sub f tests/exec7.sub f -tests/exp-tests f +tests/exec8.sub f +tests/exp.tests f tests/exp.right f +tests/exp1.sub f +tests/exp2.sub f tests/extglob.tests f tests/extglob.right f tests/extglob1.sub f @@ -775,6 +851,7 @@ tests/histexp.right f tests/history.tests f tests/history.right f tests/history.list f 444 +tests/history1.sub f tests/ifs.tests f tests/ifs.right f tests/ifs-posix.tests f @@ -783,6 +860,7 @@ tests/input-line.sh f tests/input-line.sub f tests/input.right f tests/intl.tests f +tests/intl1.sub f tests/intl.right f tests/iquote.tests f tests/iquote.right f @@ -794,6 +872,9 @@ tests/jobs2.sub f tests/jobs3.sub f tests/jobs4.sub f tests/jobs.right f +tests/mapfile.data f +tests/mapfile.right f +tests/mapfile.tests f tests/more-exp.tests f tests/more-exp.right f tests/new-exp.tests f @@ -803,6 +884,7 @@ tests/new-exp3.sub f tests/new-exp4.sub f tests/new-exp5.sub f tests/new-exp6.sub f +tests/new-exp7.sub f tests/new-exp.right f tests/nquote.tests f tests/nquote.right f @@ -814,6 +896,8 @@ tests/nquote3.tests f tests/nquote3.right f tests/nquote4.tests f tests/nquote4.right f +tests/nquote5.tests f +tests/nquote5.right f tests/posix2.tests f tests/posix2.right f tests/posixpat.tests f @@ -831,6 +915,7 @@ tests/read2.sub f tests/read3.sub f tests/read4.sub f tests/read5.sub f +tests/read6.sub f tests/redir.tests f tests/redir.right f tests/redir1.sub f @@ -843,6 +928,8 @@ tests/redir4.in1 f tests/redir5.sub f tests/redir6.sub f tests/redir7.sub f +tests/redir8.sub f +tests/redir9.sub f tests/rhs-exp.tests f tests/rhs-exp.right f tests/rsh.tests f @@ -855,9 +942,16 @@ tests/run-arith-for f tests/run-arith f tests/run-array f tests/run-array2 f +tests/run-assoc f tests/run-braces f tests/run-builtins f +tests/run-case f +tests/run-casemod f +tests/run-comsub f +tests/run-comsub-eof f +tests/run-comsub-posix f tests/run-cond f +tests/run-coproc f tests/run-cprint f tests/run-dbg-support f tests/run-dbg-support2 f @@ -883,6 +977,7 @@ tests/run-intl f tests/run-iquote f tests/run-invert f tests/run-jobs f +tests/run-mapfile f tests/run-more-exp f tests/run-new-exp f tests/run-nquote f @@ -890,6 +985,7 @@ tests/run-nquote1 f tests/run-nquote2 f tests/run-nquote3 f tests/run-nquote4 f +tests/run-nquote5 f tests/run-posix2 f tests/run-posixpat f tests/run-precedence f @@ -930,6 +1026,7 @@ tests/trap2.sub f 755 tests/trap2a.sub f 755 tests/type.tests f tests/type.right f +tests/type1.sub f tests/varenv.right f tests/varenv.sh f tests/varenv1.sub f diff --git a/Makefile.in b/Makefile.in index b5339b72b..c0bdaa8b7 100644 --- a/Makefile.in +++ b/Makefile.in @@ -1,20 +1,19 @@ -# Makefile for bash-3.1, version 2.159 +# Makefile for bash-4.0, version 3.4 # -# Copyright (C) 1996-2005 Free Software Foundation, Inc. +# Copyright (C) 1996-2009 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 free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# 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. +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . # Make sure the first target in the makefile is the right one all: .made @@ -31,12 +30,15 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ prefix = @prefix@ exec_prefix = @exec_prefix@ + +datarootdir = @datarootdir@ + bindir = @bindir@ libdir = @libdir@ infodir = @infodir@ includedir = @includedir@ datadir = @datadir@ -localedir = $(datadir)/locale +localedir = @localedir@ mandir = @mandir@ manpfx = man @@ -78,6 +80,8 @@ INSTALLMODE2 = -m 0555 TESTSCRIPT = @TESTSCRIPT@ +DEBUGGER_START_FILE = @DEBUGGER_START_FILE@ + #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. @@ -204,7 +208,12 @@ SHLIB_SOURCE = ${SH_LIBSRC}/clktck.c ${SH_LIBSRC}/getcwd.c \ ${SH_LIBSRC}/memset.c ${SH_LIBSRC}/xstrchr.c \ ${SH_LIBSRC}/zcatfd.c ${SH_LIBSRC}/shmatch.c \ ${SH_LIBSRC}/strnlen.c ${SH_LIBSRC}/winsize.c \ - ${SH_LIBSRC}/eaccess.c ${SH_LIBSRC}/wcsdup.c + ${SH_LIBSRC}/eaccess.c ${SH_LIBSRC}/wcsdup.c \ + ${SH_LIBSRC}/zmapfd.c ${SH_LIBSRC}/fpurge.c \ + ${SH_LIBSRC}/zgetline.c ${SH_LIBSRC}/mbscmp.c \ + ${SH_LIBSRC}/casemod.c ${SH_LIBSRC}/uconvert.c \ + ${SH_LIBSRC}/ufuncs.c ${SH_LIBSRC}/fdprintf.c \ + ${SH_LIBSRC}/input_avail.c SHLIB_LIB = -lsh SHLIB_LIBNAME = libsh.a @@ -402,7 +411,7 @@ 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 \ + input.c bashhist.c array.c arrayfunc.c assoc.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 @@ -413,7 +422,7 @@ HSOURCES = shell.h flags.h trap.h hashcmd.h hashlib.h jobs.h builtins.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 \ + execute_cmd.h parser.h pathexp.h pathnames.h pcomplete.h assoc.h \ $(BASHINCFILES) SOURCES = $(CSOURCES) $(HSOURCES) $(BUILTIN_DEFS) @@ -431,7 +440,7 @@ 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 \ + alias.o array.o arrayfunc.o assoc.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 $(SIGNAMES_O) @@ -456,7 +465,8 @@ BUILTIN_DEFS = $(DEFSRC)/alias.def $(DEFSRC)/bind.def $(DEFSRC)/break.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 + $(DEFSRC)/pushd.def $(DEFSRC)/shopt.def $(DEFSRC)/printf.def \ + $(DEFSRC)/mapfile.def BUILTIN_C_SRC = $(DEFSRC)/mkbuiltins.c $(DEFSRC)/common.c \ $(DEFSRC)/evalstring.c $(DEFSRC)/evalfile.c \ $(DEFSRC)/bashgetopt.c $(GETOPT_SOURCE) @@ -475,7 +485,7 @@ BUILTIN_OBJS = $(DEFDIR)/alias.o $(DEFDIR)/bind.o $(DEFDIR)/break.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) + $(DEFDIR)/getopts.o $(DEFDIR)/mapfile.o $(BUILTIN_C_OBJ) GETOPT_SOURCE = $(DEFSRC)/getopt.c $(DEFSRC)/getopt.h PSIZE_SOURCE = $(DEFSRC)/psize.sh $(DEFSRC)/psize.c @@ -497,10 +507,11 @@ SIGNAMES_SUPPORT = $(SUPPORT_SRC)mksignames.c SUPPORT_SRC = $(srcdir)/support/ SDIR = $(dot)/support/ -TESTS_SUPPORT = recho$(EXEEXT) zecho$(EXEEXT) printenv$(EXEEXT) +TESTS_SUPPORT = recho$(EXEEXT) zecho$(EXEEXT) printenv$(EXEEXT) xcase$(EXEEXT) CREATED_SUPPORT = signames.h recho$(EXEEXT) zecho$(EXEEXT) printenv$(EXEEXT) \ tests/recho$(EXEEXT) tests/zecho$(EXEEXT) \ - tests/printenv$(EXEEXT) mksignames$(EXEEXT) lsignames.h \ + tests/printenv$(EXEEXT) xcase$(EXEEXT) tests/xcase$(EXEEXT) \ + mksignames$(EXEEXT) lsignames.h \ mksyntax${EXEEXT} syntax.c $(VERSPROG) $(VERSOBJ) \ buildversion.o mksignames.o signames.o buildsignames.o CREATED_CONFIGURE = config.h config.cache config.status config.log \ @@ -614,7 +625,7 @@ ${INTL_LIBRARY}: config.h ${INTL_LIBDIR}/Makefile @(cd ${INTL_LIBDIR} && \ $(MAKE) $(MFLAGS) all) || exit 1 -${LIBINTL_H}: ${INTL_LIBRARY} +${LIBINTL_H}: ${INTL_DEP} signames.o: $(SUPPORT_SRC)signames.c $(RM) $@ @@ -669,9 +680,6 @@ ${DEFDIR}/builtext.h: $(BUILTIN_DEFS) 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 ; \ @@ -685,6 +693,15 @@ stamp-h: config.status $(srcdir)/config.h.in $(srcdir)/config-top.h $(srcdir)/co config.status: $(srcdir)/configure $(SHELL) ./config.status --recheck +pathnames.h: Makefile $(srcdir)/pathnames.h.in + @sed -e 's|@DEBUGGER_START_FILE\@|${DEBUGGER_START_FILE}|g' $(srcdir)/pathnames.h.in > pathnames.tmp + @if test -f $@; then \ + cmp -s pathnames.tmp $@ || mv pathnames.tmp $@; \ + else \ + mv pathnames.tmp $@; \ + fi + @${RM} pathnames.tmp + # comment out for distribution $(srcdir)/configure: $(srcdir)/configure.in $(srcdir)/aclocal.m4 $(srcdir)/config.h.in cd $(srcdir) && autoconf @@ -811,6 +828,9 @@ zecho$(EXEEXT): $(SUPPORT_SRC)zecho.c printenv$(EXEEXT): $(SUPPORT_SRC)printenv.c @$(CC_FOR_BUILD) $(CCFLAGS_FOR_BUILD) -o $@ $(SUPPORT_SRC)printenv.c ${LIBS_FOR_BUILD} +xcase$(EXEEXT): $(SUPPORT_SRC)xcase.c + @$(CC_FOR_BUILD) $(CCFLAGS_FOR_BUILD) -o $@ $(SUPPORT_SRC)xcase.c ${LIBS_FOR_BUILD} + test tests check: force $(Program) $(TESTS_SUPPORT) @-test -d tests || mkdir tests @cp $(TESTS_SUPPORT) tests @@ -977,7 +997,7 @@ shell.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h arr 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: jobs.h siglist.h input.h execute_cmd.h findcmd.h bashhist.h bashline.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 @@ -1043,6 +1063,7 @@ 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 +nojobs.o: $(DEFDIR)/builtext.h # shell features that may be compiled in @@ -1059,6 +1080,14 @@ 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 +assoc.o: config.h bashansi.h ${BASHINCDIR}/ansi_stdlib.h +assoc.o: shell.h syntax.h config.h bashjmp.h ${BASHINCDIR}/posixjmp.h +assoc.o: command.h ${BASHINCDIR}/stdc.h error.h +assoc.o: general.h xmalloc.h bashtypes.h variables.h arrayfunc.h conftypes.h +assoc.o: assoc.h hashlib.h +assoc.o: quit.h ${BASHINCDIR}/maxpath.h unwind_prot.h dispose_cmd.h +assoc.o: make_cmd.h subst.h sig.h pathnames.h externs.h +assoc.o: $(DEFSRC)/common.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 @@ -1367,6 +1396,9 @@ 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 +builtins/mapfile.o: command.h config.h ${BASHINCDIR}/memalloc.h error.h general.h xmalloc.h ${BASHINCDIR}/maxpath.h +builtins/mapfile.o: quit.h dispose_cmd.h make_cmd.h subst.h externs.h ${BASHINCDIR}/stdc.h +builtins/mapfile.o: shell.h syntax.h bashjmp.h ${BASHINCDIR}/posixjmp.h sig.h unwind_prot.h variables.h arrayfunc.h conftypes.h # libintl dependencies builtins/bind.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h @@ -1390,7 +1422,8 @@ 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/mapfile.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h +builtins/mkbuiltins.o: ${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 @@ -1441,6 +1474,7 @@ 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/mapfile.o: $(DEFSRC)/mapfile.def builtins/pushd.o: $(DEFSRC)/pushd.def builtins/read.o: $(DEFSRC)/read.def builtins/reserved.o: $(DEFSRC)/reserved.def diff --git a/NEWS b/NEWS index 3fa504ed8..b53aa7523 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,201 @@ +This is a terse description of the new features added to bash-4.0 since +the release of bash-3.2. As always, the manual page (doc/bash.1) is +the place to look for complete descriptions. + +1. New Features in Bash + +a. When using substring expansion on the positional parameters, a starting + index of 0 now causes $0 to be prefixed to the list. + +b. The `help' builtin now prints its columns with entries sorted vertically + rather than horizontally. + +c. There is a new variable, $BASHPID, which always returns the process id of + the current shell. + +d. There is a new `autocd' option that, when enabled, causes bash to attempt + to `cd' to a directory name that is supplied as the first word of a + simple command. + +e. There is a new `checkjobs' option that causes the shell to check for and + report any running or stopped jobs at exit. + +f. The programmable completion code exports a new COMP_TYPE variable, set to + a character describing the type of completion being attempted. + +g. The programmable completion code exports a new COMP_KEY variable, set to + the character that caused the completion to be invoked (e.g., TAB). + +h. If creation of a child process fails due to insufficient resources, bash + will try again several times before reporting failure. + +i. The programmable completion code now uses the same set of characters as + readline when breaking the command line into a list of words. + +j. The block multiplier for the ulimit -c and -f options is now 512 when in + Posix mode, as Posix specifies. + +k. Changed the behavior of the read builtin to save any partial input received + in the specified variable when the read builtin times out. This also + results in variables specified as arguments to read to be set to the empty + string when there is no input available. When the read builtin times out, + it returns an exit status greater than 128. + +l. The shell now has the notion of a `compatibility level', controlled by + new variables settable by `shopt'. Setting this variable currently + restores the bash-3.1 behavior when processing quoted strings on the rhs + of the `=~' operator to the `[[' command. + +m. The `ulimit' builtin now has new -b (socket buffer size) and -T (number + of threads) options. + +n. The -p option to `declare' now displays all variable values and attributes + (or function values and attributes if used with -f). + +o. There is a new `compopt' builtin that allows completion functions to modify + completion options for existing completions or the completion currently + being executed. + +p. The `read' builtin has a new -i option which inserts text into the reply + buffer when using readline. + +q. A new `-E' option to the complete builtin allows control of the default + behavior for completion on an empty line. + +r. There is now limited support for completing command name words containing + globbing characters. + +s. Changed format of internal help documentation for all builtins to roughly + follow man page format. + +t. The `help' builtin now has a new -d option, to display a short description, + and a -m option, to print help information in a man page-like format. + +u. There is a new `mapfile' builtin to populate an array with lines from a + given file. + +v. If a command is not found, the shell attempts to execute a shell function + named `command_not_found_handle', supplying the command words as the + function arguments. + +w. There is a new shell option: `globstar'. When enabled, the globbing code + treats `**' specially -- it matches all directories (and files within + them, when appropriate) recursively. + +x. There is a new shell option: `dirspell'. When enabled, the filename + completion code performs spelling correction on directory names during + completion. + +y. The `-t' option to the `read' builtin now supports fractional timeout + values. + +z. Brace expansion now allows zero-padding of expanded numeric values and + will add the proper number of zeroes to make sure all values contain the + same number of digits. + +aa. There is a new bash-specific bindable readline function: `dabbrev-expand'. + It uses menu completion on a set of words taken from the history list. + +bb. The command assigned to a key sequence with `bind -x' now sets two new + variables in the environment of the executed command: READLINE_LINE_BUFFER + and READLINE_POINT. The command can change the current readline line + and cursor position by modifying READLINE_LINE_BUFFER and READLINE_POINT, + respectively. + +cc. There is a new >>& redirection operator, which appends the standard output + and standard error to the named file. + +dd. The parser now understands `|&' as a synonym for `2>&1 |', which redirects + the standard error for a command through a pipe. + +ee. The new `;&' case statement action list terminator causes execution to + continue with the action associated with the next pattern in the + statement rather than terminating the command. + +ff. The new `;;&' case statement action list terminator causes the shell to + test the next set of patterns after completing execution of the current + action, rather than terminating the command. + +gg. The shell understands a new variable: PROMPT_DIRTRIM. When set to an + integer value greater than zero, prompt expansion of \w and \W will + retain only that number of trailing pathname components and replace + the intervening characters with `...'. + +hh. There are new case-modifying word expansions: uppercase (^[^]) and + lowercase (,[,]). They can work on either the first character or + array element, or globally. They accept an optional shell pattern + that determines which characters to modify. There is an optionally- + configured feature to include capitalization operators. + +ii. The shell provides associative array variables, with the appropriate + support to create, delete, assign values to, and expand them. + +jj. The `declare' builtin now has new -l (convert value to lowercase upon + assignment) and -u (convert value to uppercase upon assignment) options. + There is an optionally-configurable -c option to capitalize a value at + assignment. + +kk. There is a new `coproc' reserved word that specifies a coprocess: an + asynchronous command run with two pipes connected to the creating shell. + Coprocs can be named. The input and output file descriptors and the + PID of the coprocess are available to the calling shell in variables + with coproc-specific names. + +ll. A value of 0 for the -t option to `read' now returns success if there is + input available to be read from the specified file descriptor. + +mm. CDPATH and GLOBIGNORE are ignored when the shell is running in privileged + mode. + +nn. New bindable readline functions shell-forward-word and shell-backward-word, + which move forward and backward words delimited by shell metacharacters + and honor shell quoting. + +oo. New bindable readline functions shell-backward-kill-word and shell-kill-word + which kill words backward and forward, but use the same word boundaries + as shell-forward-word and shell-backward-word. + +2. New Features in Readline + +a. A new variable, rl_sort_completion_matches; allows applications to inhibit + match list sorting (but beware: some things don't work right if + applications do this). + +b. A new variable, rl_completion_invoking_key; allows applications to discover + the key that invoked rl_complete or rl_menu_complete. + +c. The functions rl_block_sigint and rl_release_sigint are now public and + available to calling applications who want to protect critical sections + (like redisplay). + +d. The functions rl_save_state and rl_restore_state are now public and + available to calling applications; documented rest of readline's state + flag values. + +e. A new user-settable variable, `history-size', allows setting the maximum + number of entries in the history list. + +f. There is a new implementation of menu completion, with several improvements + over the old; the most notable improvement is a better `completions + browsing' mode. + +g. The menu completion code now uses the rl_menu_completion_entry_function + variable, allowing applications to provide their own menu completion + generators. + +h. There is support for replacing a prefix of a pathname with a `...' when + displaying possible completions. This is controllable by setting the + `completion-prefix-display-length' variable. Matches with a common prefix + longer than this value have the common prefix replaced with `...'. + +i. There is a new `revert-all-at-newline' variable. If enabled, readline will + undo all outstanding changes to all history lines when `accept-line' is + executed. + +j. If the kernel supports it, readline displays special characters + corresponding to a keyboard-generated signal when the signal is received. + +------------------------------------------------------------------------------- This is a terse description of the new features added to bash-3.2 since the release of bash-3.1. As always, the manual page (doc/bash.1) is the place to look for complete descriptions. diff --git a/NOTES b/NOTES index 2e5c6b98d..b938d02bb 100644 --- a/NOTES +++ b/NOTES @@ -335,3 +335,13 @@ Platform-Specific Configuration and Operation Notes 17. Do NOT use bison-1.75. It builds a non-working parser. The most obvious effect is that constructs like "for i; do echo $i; done" don't loop over the positional parameters. + +18. I have received reports that using -O2 with the MIPSpro results in a + binary that fails in strange ways. Using -O1 seems to work. + +19. There is special handling to ensure the shell links against static + versions of the included readline and history libraries on Mac OS X; + Apple ships inadequate dynamic libreadline and libhistory "replacements" + as standard libraries. + + diff --git a/POSIX b/POSIX index 992981467..f6b6b3edb 100644 --- a/POSIX +++ b/POSIX @@ -154,13 +154,16 @@ The following list is what's changed when `POSIX mode' is in effect: `$PATH'. 40. The `vi' editing mode will invoke the `vi' editor directly when - the `v' command is run, instead of checking `$FCEDIT' and + the `v' command is run, instead of checking `$VISUAL' and `$EDITOR'. 41. When the `xpg_echo' option is enabled, Bash does not attempt to interpret any arguments to `echo' as options. Each argument is displayed, after escape characters are converted. + 42. The `ulimit' builtin uses a block size of 512 bytes for the `-c' + and `-f' options. + There is other POSIX behavior that Bash does not implement by default even when in POSIX mode. Specifically: diff --git a/README b/README index 4a4f27048..2d43cea62 100644 --- a/README +++ b/README @@ -1,7 +1,7 @@ Introduction ============ -This is GNU Bash, version 3.2. Bash is the GNU Project's Bourne +This is GNU Bash, version 4.0. Bash is the GNU Project's Bourne Again SHell, a complete implementation of the POSIX.2 shell spec, but also with interactive command line editing, job control on architectures that support it, csh-like features such as history @@ -15,13 +15,14 @@ See the file POSIX for a discussion of how the Bash defaults differ from the POSIX.2 spec and a description of the Bash `posix mode'. There are some user-visible incompatibilities between this version -of Bash and previous widely-distributed versions, bash-1.14 and -bash-2.05b. For details, see the file COMPAT. The NEWS file tersely +of Bash and previous widely-distributed versions, bash-2.05b and +bash-3.2. For details, see the file COMPAT. The NEWS file tersely lists features that are new in this release. -Bash is free software, distributed under the terms of the [GNU] -General Public License, version 2. For more information, see the -file COPYING. +Bash is free software, distributed under the terms of the [GNU] General +Public License as published by the Free Software Foundation, +version 3 of the License (or any later version). For more information, +see the file COPYING. A number of frequently-asked questions are answered in the file `doc/FAQ'. diff --git a/aclocal.m4 b/aclocal.m4 index eda151c03..63fadbb37 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -215,7 +215,7 @@ AC_CACHE_VAL(bash_cv_sys_siglist, #ifdef HAVE_UNISTD_H #include #endif -#ifndef SYS_SIGLIST_DECLARED +#if !HAVE_DECL_SYS_SIGLIST extern char *sys_siglist[]; #endif main() @@ -336,18 +336,18 @@ main() { DIR *dir; int fd, err; -err = mkdir("/tmp/bash-aclocal", 0700); +err = mkdir("bash-aclocal", 0700); if (err < 0) { perror("mkdir"); exit(1); } -unlink("/tmp/bash-aclocal/not_a_directory"); -fd = open("/tmp/bash-aclocal/not_a_directory", O_WRONLY|O_CREAT|O_EXCL, 0666); +unlink("bash-aclocal/not_a_directory"); +fd = open("bash-aclocal/not_a_directory", O_WRONLY|O_CREAT|O_EXCL, 0666); write(fd, "\n", 1); close(fd); -dir = opendir("/tmp/bash-aclocal/not_a_directory"); -unlink("/tmp/bash-aclocal/not_a_directory"); -rmdir("/tmp/bash-aclocal"); +dir = opendir("bash-aclocal/not_a_directory"); +unlink("bash-aclocal/not_a_directory"); +rmdir("bash-aclocal"); exit (dir == 0); }], bash_cv_opendir_not_robust=yes,bash_cv_opendir_not_robust=no, [AC_MSG_WARN(cannot check opendir if cross compiling -- defaulting to no) @@ -685,7 +685,7 @@ fi ]) AC_DEFUN(BASH_FUNC_GETCWD, -[AC_MSG_CHECKING([if getcwd() will dynamically allocate memory]) +[AC_MSG_CHECKING([if getcwd() will dynamically allocate memory with 0 size]) AC_CACHE_VAL(bash_cv_getcwd_malloc, [AC_TRY_RUN([ #include @@ -1423,19 +1423,19 @@ exit (1); #if defined (NeXT) exit (1); #endif -err = mkdir("/tmp/bash-aclocal", 0700); +err = mkdir("bash-aclocal", 0700); if (err < 0) { perror ("mkdir"); exit(1); } -fd = mknod ("/tmp/bash-aclocal/sh-np-autoconf", 0666 | S_IFIFO, 0); +fd = mknod ("bash-aclocal/sh-np-autoconf", 0666 | S_IFIFO, 0); if (fd == -1) { - rmdir ("/tmp/bash-aclocal"); + rmdir ("bash-aclocal"); exit (1); } close(fd); -unlink ("/tmp/bash-aclocal/sh-np-autoconf"); -rmdir ("/tmp/bash-aclocal"); +unlink ("bash-aclocal/sh-np-autoconf"); +rmdir ("bash-aclocal"); exit(0); }], bash_cv_sys_named_pipes=present, bash_cv_sys_named_pipes=missing, [AC_MSG_WARN(cannot check for named pipes if cross-compiling -- defaulting to missing) @@ -1541,18 +1541,16 @@ AC_DEFUN(BASH_CHECK_DEV_FD, [AC_MSG_CHECKING(whether /dev/fd is available) AC_CACHE_VAL(bash_cv_dev_fd, [bash_cv_dev_fd="" -if test -d /dev/fd && test -r /dev/fd/0 < /dev/null; then +if test -d /dev/fd && (exec test -r /dev/fd/0 < /dev/null) ; then # check for systems like FreeBSD 5 that only provide /dev/fd/[012] - exec 3]) +]) diff --git a/alias.c b/alias.c index 1aa9cb11b..2eedad58c 100644 --- a/alias.c +++ b/alias.c @@ -1,23 +1,23 @@ /* alias.c -- Not a full alias, but just the kind that we use in the shell. Csh style alias is somewhere else (`over there, in a box'). */ -/* Copyright (C) 1987-2002 Free Software Foundation, Inc. +/* Copyright (C) 1987-2009 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public - License for more details. + 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. */ + along with Bash. If not, see . +*/ #include "config.h" @@ -67,7 +67,7 @@ HASH_TABLE *aliases = (HASH_TABLE *)NULL; void initialize_aliases () { - if (!aliases) + if (aliases == 0) aliases = hash_create (ALIAS_HASH_BUCKETS); } diff --git a/alias.h b/alias.h index b70b3ec0e..4d0075f85 100644 --- a/alias.h +++ b/alias.h @@ -1,22 +1,22 @@ /* alias.h -- structure definitions. */ -/* Copyright (C) 1987,1991 Free Software Foundation, Inc. +/* Copyright (C) 1987-2009 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 1, or (at your option) - any later version. + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public - License for more details. + 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. */ + along with Bash. If not, see . +*/ #if !defined (_ALIAS_H_) #define _ALIAS_H_ diff --git a/array.c b/array.c index cee9c1fff..a8c7766e1 100644 --- a/array.c +++ b/array.c @@ -9,23 +9,23 @@ * chet@ins.cwru.edu */ -/* Copyright (C) 1997-2004 Free Software Foundation, Inc. +/* Copyright (C) 1997-2009 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. + 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #include "config.h" @@ -137,7 +137,7 @@ ARRAY_ELEMENT *s, *e; a = array_create (); a->type = array->type; - for (p = s, i = 0; p != e; p = element_forw(p), i++) { + for (mi = 0, p = s, i = 0; p != e; p = element_forw(p), i++) { n = array_create_element (element_index(p), element_value(p)); ADD_BEFORE(a->head, n); mi = element_index(n); @@ -281,7 +281,7 @@ char *v; return (array_rshift (a, 1, v)); } -ARRAY * +ARRAY * array_quote(array) ARRAY *array; { @@ -298,7 +298,7 @@ ARRAY *array; return array; } -ARRAY * +ARRAY * array_quote_escapes(array) ARRAY *array; { @@ -315,6 +315,54 @@ ARRAY *array; return array; } +ARRAY * +array_dequote(array) +ARRAY *array; +{ + ARRAY_ELEMENT *a; + char *t; + + if (array == 0 || array_head(array) == 0 || array_empty(array)) + return (ARRAY *)NULL; + for (a = element_forw(array->head); a != array->head; a = element_forw(a)) { + t = dequote_string (a->value); + FREE(a->value); + a->value = t; + } + return array; +} + +ARRAY * +array_dequote_escapes(array) +ARRAY *array; +{ + ARRAY_ELEMENT *a; + char *t; + + if (array == 0 || array_head(array) == 0 || array_empty(array)) + return (ARRAY *)NULL; + for (a = element_forw(array->head); a != array->head; a = element_forw(a)) { + t = dequote_escapes (a->value); + FREE(a->value); + a->value = t; + } + return array; +} + +ARRAY * +array_remove_quoted_nulls(array) +ARRAY *array; +{ + ARRAY_ELEMENT *a; + char *t; + + if (array == 0 || array_head(array) == 0 || array_empty(array)) + return (ARRAY *)NULL; + for (a = element_forw(array->head); a != array->head; a = element_forw(a)) + a->value = remove_quoted_nulls (a->value); + return array; +} + /* * Return a string whose elements are the members of array A beginning at * index START and spanning NELEM members. Null elements are counted. @@ -329,7 +377,8 @@ int starsub, quoted; ARRAY *a2; ARRAY_ELEMENT *h, *p; arrayind_t i; - char *ifs, sep[2], *t; + char *ifs, *sifs, *t; + int slen; p = a ? array_head (a) : 0; if (p == 0 || array_empty (a) || start > array_max_index(a)) @@ -360,13 +409,25 @@ int starsub, quoted; array_quote_escapes(a2); if (starsub && (quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT))) { - ifs = getifs(); - sep[0] = ifs ? *ifs : '\0'; + /* ${array[*]} */ + array_remove_quoted_nulls (a2); + sifs = ifs_firstchar ((int *)NULL); + t = array_to_string (a2, sifs, 0); + free (sifs); + } else if (quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT)) { + /* ${array[@]} */ + sifs = ifs_firstchar (&slen); + ifs = getifs (); + if (ifs == 0 || *ifs == 0) { + if (slen < 2) + sifs = xrealloc(sifs, 2); + sifs[0] = ' '; + sifs[1] = '\0'; + } + t = array_to_string (a2, sifs, 0); + free (sifs); } else - sep[0] = ' '; - sep[1] = '\0'; - - t = array_to_string (a2, sep, 0); + t = array_to_string (a2, " ", 0); array_dispose(a2); return t; @@ -380,7 +441,8 @@ int mflags; { ARRAY *a2; ARRAY_ELEMENT *e; - char *t, *ifs, sifs[2]; + char *t, *sifs, *ifs; + int slen; if (a == 0 || array_head(a) == 0 || array_empty(a)) return ((char *)NULL); @@ -396,11 +458,24 @@ int mflags; array_quote(a2); else array_quote_escapes(a2); + if (mflags & MATCH_STARSUB) { - ifs = getifs(); - sifs[0] = ifs ? *ifs : '\0'; - sifs[1] = '\0'; + array_remove_quoted_nulls (a2); + sifs = ifs_firstchar((int *)NULL); t = array_to_string (a2, sifs, 0); + free(sifs); + } else if (mflags & MATCH_QUOTED) { + /* ${array[@]} */ + sifs = ifs_firstchar (&slen); + ifs = getifs (); + if (ifs == 0 || *ifs == 0) { + if (slen < 2) + sifs = xrealloc (sifs, 2); + sifs[0] = ' '; + sifs[1] = '\0'; + } + t = array_to_string (a2, sifs, 0); + free(sifs); } else t = array_to_string (a2, " ", 0); array_dispose (a2); @@ -408,6 +483,56 @@ int mflags; return t; } +char * +array_modcase (a, pat, modop, mflags) +ARRAY *a; +char *pat; +int modop; +int mflags; +{ + ARRAY *a2; + ARRAY_ELEMENT *e; + char *t, *sifs, *ifs; + int slen; + + if (a == 0 || array_head(a) == 0 || array_empty(a)) + return ((char *)NULL); + + a2 = array_copy(a); + for (e = element_forw(a2->head); e != a2->head; e = element_forw(e)) { + t = sh_modcase(element_value(e), pat, modop); + FREE(element_value(e)); + e->value = t; + } + + if (mflags & MATCH_QUOTED) + array_quote(a2); + else + array_quote_escapes(a2); + + if (mflags & MATCH_STARSUB) { + array_remove_quoted_nulls (a2); + sifs = ifs_firstchar((int *)NULL); + t = array_to_string (a2, sifs, 0); + free(sifs); + } else if (mflags & MATCH_QUOTED) { + /* ${array[@]} */ + sifs = ifs_firstchar (&slen); + ifs = getifs (); + if (ifs == 0 || *ifs == 0) { + if (slen < 2) + sifs = xrealloc (sifs, 2); + sifs[0] = ' '; + sifs[1] = '\0'; + } + t = array_to_string (a2, sifs, 0); + free(sifs); + } else + t = array_to_string (a2, " ", 0); + array_dispose (a2); + + return t; +} /* * Allocate and return a new array element with index INDEX and value * VALUE. @@ -618,8 +743,8 @@ ARRAY *a; } /* - * Return a string that is the concatenation of all the elements in A, - * separated by SEP. + * Return a string that is the concatenation of the elements in A from START + * to END, separated by SEP. */ static char * array_to_string_internal (start, end, sep, quoted) diff --git a/array.h b/array.h index b9632b42e..1080fc980 100644 --- a/array.h +++ b/array.h @@ -1,23 +1,24 @@ /* array.h -- definitions for the interface exported by array.c that allows the rest of the shell to manipulate array variables. */ -/* Copyright (C) 1997 Free Software Foundation, Inc. +/* Copyright (C) 1997-2009 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ - 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 _ARRAY_H_ #define _ARRAY_H_ @@ -54,11 +55,16 @@ extern ARRAY_ELEMENT *array_shift __P((ARRAY *, int, int)); extern int array_rshift __P((ARRAY *, int, char *)); extern ARRAY_ELEMENT *array_unshift_element __P((ARRAY *)); extern int array_shift_element __P((ARRAY *, char *)); + extern ARRAY *array_quote __P((ARRAY *)); extern ARRAY *array_quote_escapes __P((ARRAY *)); +extern ARRAY *array_dequote __P((ARRAY *)); +extern ARRAY *array_dequote_escapes __P((ARRAY *)); +extern ARRAY *array_remove_quoted_nulls __P((ARRAY *)); extern char *array_subrange __P((ARRAY *, arrayind_t, arrayind_t, int, int)); extern char *array_patsub __P((ARRAY *, char *, char *, int)); +extern char *array_modcase __P((ARRAY *, char *, int, int)); /* Basic operations on array elements. */ extern ARRAY_ELEMENT *array_create_element __P((arrayind_t, char *)); diff --git a/arrayfunc.c b/arrayfunc.c index 6bc248a7d..dbc2e20c3 100644 --- a/arrayfunc.c +++ b/arrayfunc.c @@ -1,22 +1,22 @@ /* arrayfunc.c -- High-level array functions used by other parts of the shell. */ -/* Copyright (C) 2001-2006 Free Software Foundation, Inc. +/* Copyright (C) 2001-2009 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. + 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #include "config.h" @@ -30,6 +30,7 @@ #include "bashintl.h" #include "shell.h" +#include "pathexp.h" #include "shmbutil.h" @@ -39,13 +40,14 @@ extern char *this_command_name; extern int last_command_exit_value; extern int array_needs_making; -static SHELL_VAR *bind_array_var_internal __P((SHELL_VAR *, arrayind_t, char *, int)); +static SHELL_VAR *bind_array_var_internal __P((SHELL_VAR *, arrayind_t, char *, char *, int)); +static char *quote_assign __P((const char *)); static void quote_array_assignment_chars __P((WORD_LIST *)); static char *array_value_internal __P((char *, int, int, int *)); /* Standard error message to use when encountering an invalid array subscript */ -char *bash_badsub_errmsg = N_("bad array subscript"); +const char * const bash_badsub_errmsg = N_("bad array subscript"); /* **************************************************************** */ /* */ @@ -84,10 +86,42 @@ convert_var_to_array (var) return var; } +/* Convert a shell variable to an array variable. The original value is + saved as array[0]. */ +SHELL_VAR * +convert_var_to_assoc (var) + SHELL_VAR *var; +{ + char *oldval; + HASH_TABLE *hash; + + oldval = value_cell (var); + hash = assoc_create (0); + if (oldval) + assoc_insert (hash, "0", oldval); + + FREE (value_cell (var)); + var_setassoc (var, hash); + + /* these aren't valid anymore */ + var->dynamic_value = (sh_var_value_func_t *)NULL; + var->assign_func = (sh_var_assign_func_t *)NULL; + + INVALIDATE_EXPORTSTR (var); + if (exported_p (var)) + array_needs_making++; + + VSETATTR (var, att_assoc); + VUNSETATTR (var, att_invisible); + + return var; +} + static SHELL_VAR * -bind_array_var_internal (entry, ind, value, flags) +bind_array_var_internal (entry, ind, key, value, flags) SHELL_VAR *entry; arrayind_t ind; + char *key; char *value; int flags; { @@ -100,7 +134,10 @@ bind_array_var_internal (entry, ind, value, flags) { dentry = (SHELL_VAR *)xmalloc (sizeof (SHELL_VAR)); dentry->name = savestring (entry->name); - newval = array_reference (array_cell (entry), ind); + if (assoc_p (entry)) + newval = assoc_reference (assoc_cell (entry), key); + else + newval = array_reference (array_cell (entry), ind); if (newval) dentry->value = savestring (newval); else @@ -109,7 +146,7 @@ bind_array_var_internal (entry, ind, value, flags) dentry->value[0] = '\0'; } dentry->exportstr = 0; - dentry->attributes = entry->attributes & ~(att_array|att_exported); + dentry->attributes = entry->attributes & ~(att_array|att_assoc|att_exported); /* Leave the rest of the members uninitialized; the code doesn't look at them. */ newval = make_variable_value (dentry, value, flags); @@ -119,7 +156,9 @@ bind_array_var_internal (entry, ind, value, flags) newval = make_variable_value (entry, value, flags); if (entry->assign_func) - (*entry->assign_func) (entry, newval, ind); + (*entry->assign_func) (entry, newval, ind, key); + else if (assoc_p (entry)) + assoc_insert (assoc_cell (entry), key, newval); else array_insert (array_cell (entry), ind, newval); FREE (newval); @@ -157,7 +196,38 @@ bind_array_variable (name, ind, value, flags) entry = convert_var_to_array (entry); /* ENTRY is an array variable, and ARRAY points to the value. */ - return (bind_array_var_internal (entry, ind, value, flags)); + return (bind_array_var_internal (entry, ind, 0, value, flags)); +} + +SHELL_VAR * +bind_array_element (entry, ind, value, flags) + SHELL_VAR *entry; + arrayind_t ind; + char *value; + int flags; +{ + return (bind_array_var_internal (entry, ind, 0, value, flags)); +} + +SHELL_VAR * +bind_assoc_variable (entry, name, key, value, flags) + SHELL_VAR *entry; + char *name; + char *key; + char *value; + int flags; +{ + SHELL_VAR *dentry; + char *newval; + + if (readonly_p (entry) || noassign_p (entry)) + { + if (readonly_p (entry)) + err_readonly (name); + return (entry); + } + + return (bind_array_var_internal (entry, 0, key, value, flags)); } /* Parse NAME, a lhs of an assignment statement of the form v[s], and @@ -167,7 +237,7 @@ assign_array_element (name, value, flags) char *name, *value; int flags; { - char *sub, *vname; + char *sub, *vname, *akey; arrayind_t ind; int sublen; SHELL_VAR *entry; @@ -184,15 +254,32 @@ assign_array_element (name, value, flags) return ((SHELL_VAR *)NULL); } - ind = array_expand_index (sub, sublen); - if (ind < 0) + entry = find_variable (vname); + + if (entry && assoc_p (entry)) { - free (vname); - err_badarraysub (name); - return ((SHELL_VAR *)NULL); + sub[sublen-1] = '\0'; + akey = expand_assignment_string_to_string (sub, 0); /* [ */ + sub[sublen-1] = ']'; + if (akey == 0 || *akey == 0) + { + free (vname); + err_badarraysub (name); + return ((SHELL_VAR *)NULL); + } + entry = bind_assoc_variable (entry, vname, akey, value, flags); + } + else + { + ind = array_expand_index (sub, sublen); + if (ind < 0) + { + free (vname); + err_badarraysub (name); + return ((SHELL_VAR *)NULL); + } + entry = bind_array_variable (vname, ind, value, flags); } - - entry = bind_array_variable (vname, ind, value, flags); free (vname); return (entry); @@ -200,27 +287,33 @@ assign_array_element (name, value, flags) /* Find the array variable corresponding to NAME. If there is no variable, create a new array variable. If the variable exists but is not an array, - convert it to an indexed array. If CHECK_FLAGS is non-zero, an existing + convert it to an indexed array. If FLAGS&1 is non-zero, an existing variable is checked for the readonly or noassign attribute in preparation - for assignment (e.g., by the `read' builtin). */ + for assignment (e.g., by the `read' builtin). If FLAGS&2 is non-zero, we + create an associative array. */ SHELL_VAR * -find_or_make_array_variable (name, check_flags) +find_or_make_array_variable (name, flags) char *name; - int check_flags; + int flags; { SHELL_VAR *var; var = find_variable (name); if (var == 0) - var = make_new_array_variable (name); - else if (check_flags && (readonly_p (var) || noassign_p (var))) + var = (flags & 2) ? make_new_assoc_variable (name) : make_new_array_variable (name); + else if ((flags & 1) && (readonly_p (var) || noassign_p (var))) { if (readonly_p (var)) err_readonly (name); return ((SHELL_VAR *)NULL); } - else if (array_p (var) == 0) + else if ((flags & 2) && array_p (var)) + { + report_error (_("%s: cannot convert indexed to associative array"), name); + return ((SHELL_VAR *)NULL); + } + else if (array_p (var) == 0 && assoc_p (var) == 0) var = convert_var_to_array (var); return (var); @@ -234,8 +327,13 @@ assign_array_from_string (name, value, flags) int flags; { SHELL_VAR *var; + int vflags; - var = find_or_make_array_variable (name, 1); + vflags = 1; + if (flags & ASS_MKASSOC) + vflags |= 2; + + var = find_or_make_array_variable (name, vflags); if (var == 0) return ((SHELL_VAR *)NULL); @@ -259,14 +357,15 @@ assign_array_var_from_word_list (var, list, flags) for (l = list; l; l = l->next, i++) if (var->assign_func) - (*var->assign_func) (var, l->word->word, i); + (*var->assign_func) (var, l->word->word, i, 0); else array_insert (a, i, l->word->word); return var; } WORD_LIST * -expand_compound_array_assignment (value, flags) +expand_compound_array_assignment (var, value, flags) + SHELL_VAR *var; char *value; int flags; { @@ -315,18 +414,30 @@ assign_compound_array_list (var, nlist, flags) int flags; { ARRAY *a; + HASH_TABLE *h; WORD_LIST *list; char *w, *val, *nval; int len, iflags; arrayind_t ind, last_ind; + char *akey; - a = array_cell (var); + a = (var && array_p (var)) ? array_cell (var) : (ARRAY *)0; + h = (var && assoc_p (var)) ? assoc_cell (var) : (HASH_TABLE *)0; + + akey = (char *)0; + ind = 0; /* Now that we are ready to assign values to the array, kill the existing value. */ - if (a && (flags & ASS_APPEND) == 0) - array_flush (a); - last_ind = (flags & ASS_APPEND) ? array_max_index (a) + 1 : 0; + if ((flags & ASS_APPEND) == 0) + { + if (array_p (var) && a) + array_flush (a); + else if (assoc_p (var) && h) + assoc_flush (h); + } + + last_ind = (a && (flags & ASS_APPEND)) ? array_max_index (a) + 1 : 0; for (list = nlist; list; list = list->next) { @@ -341,9 +452,14 @@ assign_compound_array_list (var, nlist, flags) /* XXX - changes for `+=' */ if (w[len] != ']' || (w[len+1] != '=' && (w[len+1] != '+' || w[len+2] != '='))) { + if (assoc_p (var)) + { + err_badarraysub (w); + continue; + } nval = make_variable_value (var, w, flags); if (var->assign_func) - (*var->assign_func) (var, nval, last_ind); + (*var->assign_func) (var, nval, last_ind, 0); else array_insert (a, last_ind, nval); FREE (nval); @@ -359,17 +475,34 @@ assign_compound_array_list (var, nlist, flags) if (ALL_ELEMENT_SUB (w[1]) && len == 2) { - report_error (_("%s: cannot assign to non-numeric index"), w); + if (assoc_p (var)) + report_error (_("%s: invalid associative array key"), w); + else + report_error (_("%s: cannot assign to non-numeric index"), w); continue; } - ind = array_expand_index (w + 1, len); - if (ind < 0) + if (array_p (var)) { - err_badarraysub (w); - continue; + ind = array_expand_index (w + 1, len); + if (ind < 0) + { + err_badarraysub (w); + continue; + } + + last_ind = ind; } - last_ind = ind; + else if (assoc_p (var)) + { + akey = substring (w, 1, len); + if (akey == 0 || *akey == 0) + { + err_badarraysub (w); + continue; + } + } + /* XXX - changes for `+=' -- just accept the syntax. ksh93 doesn't do this */ if (w[len + 1] == '+' && w[len + 2] == '=') { @@ -379,6 +512,11 @@ assign_compound_array_list (var, nlist, flags) else val = w + len + 2; } + else if (assoc_p (var)) + { + report_error (_("%s: %s: must use subscript when assigning associative array"), var->name, w); + continue; + } else /* No [ind]=value, just a stray `=' */ { ind = last_ind; @@ -387,7 +525,7 @@ assign_compound_array_list (var, nlist, flags) if (integer_p (var)) this_command_name = (char *)NULL; /* no command name for errors */ - bind_array_var_internal (var, ind, val, iflags); + bind_array_var_internal (var, ind, akey, val, iflags); last_ind++; } } @@ -405,7 +543,7 @@ assign_array_var_from_string (var, value, flags) if (value == 0) return var; - nlist = expand_compound_array_assignment (value, flags); + nlist = expand_compound_array_assignment (var, value, flags); assign_compound_array_list (var, nlist, flags); if (nlist) @@ -413,15 +551,44 @@ assign_array_var_from_string (var, value, flags) return (var); } +/* Quote globbing chars and characters in $IFS before the `=' in an assignment + statement (usually a compound array assignment) to protect them from + unwanted filename expansion or word splitting. */ +static char * +quote_assign (string) + const char *string; +{ + size_t slen; + int saw_eq; + char *temp, *t; + const char *s, *send; + DECLARE_MBSTATE; + + slen = strlen (string); + send = string + slen; + + t = temp = (char *)xmalloc (slen * 2 + 1); + saw_eq = 0; + for (s = string; *s; ) + { + if (*s == '=') + saw_eq = 1; + if (saw_eq == 0 && (glob_char_p (s) || isifs (*s))) + *t++ = '\\'; + + COPY_CHAR_P (t, s, send); + } + *t = '\0'; + return temp; +} + /* For each word in a compound array assignment, if the word looks like - [ind]=value, quote the `[' and `]' before the `=' to protect them from - unwanted filename expansion. */ + [ind]=value, quote globbing chars and characters in $IFS before the `='. */ static void quote_array_assignment_chars (list) WORD_LIST *list; { - char *s, *t, *nword; - int saw_eq; + char *nword; WORD_LIST *l; for (l = list; l; l = l->next) @@ -431,17 +598,7 @@ quote_array_assignment_chars (list) /* Don't bother if it doesn't look like [ind]=value */ if (l->word->word[0] != '[' || xstrchr (l->word->word, '=') == 0) /* ] */ continue; - s = nword = (char *)xmalloc (strlen (l->word->word) * 2 + 1); - saw_eq = 0; - for (t = l->word->word; *t; ) - { - if (*t == '=') - saw_eq = 1; - if (saw_eq == 0 && (*t == '[' || *t == ']')) - *s++ = '\\'; - *s++ = *t++; - } - *s = '\0'; + nword = quote_assign (l->word->word); free (l->word->word); l->word->word = nword; } @@ -496,7 +653,7 @@ skipsubscript (s, i) c = s[i]; if (c == 0) - break; + break; else if (c == '[') count++; else if (c == ']') @@ -516,6 +673,7 @@ unbind_array_element (var, sub) { int len; arrayind_t ind; + char *akey; ARRAY_ELEMENT *ae; len = skipsubscript (sub, 0); @@ -531,15 +689,30 @@ unbind_array_element (var, sub) unbind_variable (var->name); return (0); } - ind = array_expand_index (sub, len+1); - if (ind < 0) + + if (assoc_p (var)) { - builtin_error ("[%s]: %s", sub, _(bash_badsub_errmsg)); - return -1; + akey = expand_assignment_string_to_string (sub, 0); /* [ */ + if (akey == 0 || *akey == 0) + { + builtin_error ("[%s]: %s", sub, _(bash_badsub_errmsg)); + return -1; + } + assoc_remove (assoc_cell (var), akey); + } + else + { + ind = array_expand_index (sub, len+1); + if (ind < 0) + { + builtin_error ("[%s]: %s", sub, _(bash_badsub_errmsg)); + return -1; + } + ae = array_remove (array_cell (var), ind); + if (ae) + array_dispose_element (ae); } - ae = array_remove (array_cell (var), ind); - if (ae) - array_dispose_element (ae); + return 0; } @@ -563,6 +736,26 @@ print_array_assignment (var, quoted) } } +/* Format and output an associative array assignment in compound form + VAR=(VALUES), suitable for re-use as input. */ +void +print_assoc_assignment (var, quoted) + SHELL_VAR *var; + int quoted; +{ + char *vstr; + + vstr = assoc_to_assign (assoc_cell (var), quoted); + + if (vstr == 0) + printf ("%s=%s\n", var->name, quoted ? "'()'" : "()"); + else + { + printf ("%s=%s\n", var->name, vstr); + free (vstr); + } +} + /***********************************************************************/ /* */ /* Utility functions to manage arrays and their contents for expansion */ @@ -693,8 +886,8 @@ array_variable_part (s, subp, lenp) /* Return a string containing the elements in the array and subscript described by S. If the subscript is * or @, obeys quoting rules akin to the expansion of $* and $@ including double quoting. If RTYPE - is non-null it gets 1 if the array reference is name[@] or name[*] - and 0 otherwise. */ + is non-null it gets 1 if the array reference is name[*], 2 if the + reference is name[@], and 0 otherwise. */ static char * array_value_internal (s, quoted, allow_all, rtype) char *s; @@ -702,6 +895,7 @@ array_value_internal (s, quoted, allow_all, rtype) { int len; arrayind_t ind; + char *akey; char *retval, *t, *temp; WORD_LIST *l; SHELL_VAR *var; @@ -730,8 +924,14 @@ array_value_internal (s, quoted, allow_all, rtype) } else if (var == 0 || value_cell (var) == 0) return ((char *)NULL); - else if (array_p (var) == 0) + else if (array_p (var) == 0 && assoc_p (var) == 0) l = add_string_to_list (value_cell (var), (WORD_LIST *)NULL); + else if (assoc_p (var)) + { + l = assoc_to_word_list (assoc_cell (var)); + if (l == (WORD_LIST *)NULL) + return ((char *)NULL); + } else { l = array_to_word_list (array_cell (var)); @@ -754,24 +954,40 @@ array_value_internal (s, quoted, allow_all, rtype) { if (rtype) *rtype = 0; - ind = array_expand_index (t, len); - if (ind < 0) + if (var == 0 || array_p (var) || assoc_p (var) == 0) { - if (var) - err_badarraysub (var->name); - else + ind = array_expand_index (t, len); + if (ind < 0) { - t[-1] = '\0'; - err_badarraysub (s); - t[-1] = '['; /* ] */ +index_error: + if (var) + err_badarraysub (var->name); + else + { + t[-1] = '\0'; + err_badarraysub (s); + t[-1] = '['; /* ] */ + } + return ((char *)NULL); } - return ((char *)NULL); } + else if (assoc_p (var)) + { + t[len - 1] = '\0'; + akey = expand_assignment_string_to_string (t, 0); /* [ */ + t[len - 1] = ']'; + if (akey == 0 || *akey == 0) + goto index_error; + } + if (var == 0) return ((char *)NULL); - if (array_p (var) == 0) + if (array_p (var) == 0 && assoc_p (var) == 0) return (ind == 0 ? value_cell (var) : (char *)NULL); - retval = array_reference (array_cell (var), ind); + else if (assoc_p (var)) + retval = assoc_reference (assoc_cell (var), akey); + else + retval = array_reference (array_cell (var), ind); } return retval; @@ -815,14 +1031,14 @@ array_keys (s, quoted) if (var == 0 || ALL_ELEMENT_SUB (t[0]) == 0 || t[1] != ']') return (char *)NULL; - if (array_p (var) == 0) + if (array_p (var) == 0 && assoc_p (var) == 0) l = add_string_to_list ("0", (WORD_LIST *)NULL); + else if (assoc_p (var)) + l = assoc_keys_to_word_list (assoc_cell (var)); else - { - l = array_keys_to_word_list (array_cell (var)); - if (l == (WORD_LIST *)NULL) - return ((char *) NULL); - } + l = array_keys_to_word_list (array_cell (var)); + if (l == (WORD_LIST *)NULL) + return ((char *) NULL); if (t[0] == '*' && (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES))) { diff --git a/arrayfunc.h b/arrayfunc.h index 5c3f94477..44dd39d10 100644 --- a/arrayfunc.h +++ b/arrayfunc.h @@ -1,22 +1,22 @@ /* arrayfunc.h -- declarations for miscellaneous array functions in arrayfunc.c */ -/* Copyright (C) 2001-2004 Free Software Foundation, Inc. +/* Copyright (C) 2001-2009 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public - License for more details. + 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. */ + along with Bash. If not, see . +*/ #if !defined (_ARRAYFUNC_H_) #define _ARRAYFUNC_H_ @@ -26,8 +26,10 @@ #if defined (ARRAY_VARS) extern SHELL_VAR *convert_var_to_array __P((SHELL_VAR *)); +extern SHELL_VAR *convert_var_to_assoc __P((SHELL_VAR *)); extern SHELL_VAR *bind_array_variable __P((char *, arrayind_t, char *, int)); +extern SHELL_VAR *bind_array_element __P((SHELL_VAR *, arrayind_t, char *, int)); extern SHELL_VAR *assign_array_element __P((char *, char *, int)); extern SHELL_VAR *find_or_make_array_variable __P((char *, int)); @@ -35,13 +37,15 @@ extern SHELL_VAR *find_or_make_array_variable __P((char *, int)); extern SHELL_VAR *assign_array_from_string __P((char *, char *, int)); extern SHELL_VAR *assign_array_var_from_word_list __P((SHELL_VAR *, WORD_LIST *, int)); -extern WORD_LIST *expand_compound_array_assignment __P((char *, int)); +extern WORD_LIST *expand_compound_array_assignment __P((SHELL_VAR *, char *, int)); extern void assign_compound_array_list __P((SHELL_VAR *, WORD_LIST *, int)); extern SHELL_VAR *assign_array_var_from_string __P((SHELL_VAR *, char *, int)); extern int unbind_array_element __P((SHELL_VAR *, char *)); extern int skipsubscript __P((const char *, int)); + extern void print_array_assignment __P((SHELL_VAR *, int)); +extern void print_assoc_assignment __P((SHELL_VAR *, int)); extern arrayind_t array_expand_index __P((char *, int)); extern int valid_array_reference __P((char *)); diff --git a/assoc.c b/assoc.c new file mode 100644 index 000000000..476facb34 --- /dev/null +++ b/assoc.c @@ -0,0 +1,518 @@ +/* + * assoc.c - functions to manipulate associative arrays + * + * Associative arrays are standard shell hash tables. + * + * Chet Ramey + * chet@ins.cwru.edu + */ + +/* Copyright (C) 2008,2009 Free Software Foundation, Inc. + + This file is part of GNU Bash, the Bourne Again SHell. + + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ + +#include "config.h" + +#if defined (ARRAY_VARS) + +#if defined (HAVE_UNISTD_H) +# ifdef _MINIX +# include +# endif +# include +#endif + +#include +#include "bashansi.h" + +#include "shell.h" +#include "array.h" +#include "assoc.h" +#include "builtins/common.h" + +static WORD_LIST *assoc_to_word_list_internal __P((HASH_TABLE *, int)); + +/* assoc_create == hash_create */ + +void +assoc_dispose (hash) + HASH_TABLE *hash; +{ + if (hash) + { + hash_flush (hash, 0); + hash_dispose (hash); + } +} + +void +assoc_flush (hash) + HASH_TABLE *hash; +{ + hash_flush (hash, 0); +} + +int +assoc_insert (hash, key, value) + HASH_TABLE *hash; + char *key; + char *value; +{ + BUCKET_CONTENTS *b; + + b = hash_search (key, hash, HASH_CREATE); + if (b == 0) + return -1; + FREE (b->data); + b->data = value ? savestring (value) : (char *)0; + return (0); +} + +void +assoc_remove (hash, string) + HASH_TABLE *hash; + char *string; +{ + BUCKET_CONTENTS *b; + + b = hash_remove (string, hash, 0); + if (b) + { + free ((char *)b->data); + free (b->key); + free (b); + } +} + +char * +assoc_reference (hash, string) + HASH_TABLE *hash; + char *string; +{ + BUCKET_CONTENTS *b; + + if (hash == 0) + return (char *)0; + + b = hash_search (string, hash, 0); + return (b ? (char *)b->data : 0); +} + +/* Quote the data associated with each element of the hash table ASSOC, + using quote_string */ +HASH_TABLE * +assoc_quote (h) + HASH_TABLE *h; +{ + int i; + BUCKET_CONTENTS *tlist; + char *t; + + if (h == 0 || assoc_empty (h)) + return ((HASH_TABLE *)NULL); + + for (i = 0; i < h->nbuckets; i++) + for (tlist = hash_items (i, h); tlist; tlist = tlist->next) + { + t = quote_string ((char *)tlist->data); + FREE (tlist->data); + tlist->data = t; + } + + return h; +} + +/* Quote escape characters in the data associated with each element + of the hash table ASSOC, using quote_escapes */ +HASH_TABLE * +assoc_quote_escapes (h) + HASH_TABLE *h; +{ + int i; + BUCKET_CONTENTS *tlist; + char *t; + + if (h == 0 || assoc_empty (h)) + return ((HASH_TABLE *)NULL); + + for (i = 0; i < h->nbuckets; i++) + for (tlist = hash_items (i, h); tlist; tlist = tlist->next) + { + t = quote_escapes ((char *)tlist->data); + FREE (tlist->data); + tlist->data = t; + } + + return h; +} + +HASH_TABLE * +assoc_dequote (h) + HASH_TABLE *h; +{ + int i; + BUCKET_CONTENTS *tlist; + char *t; + + if (h == 0 || assoc_empty (h)) + return ((HASH_TABLE *)NULL); + + for (i = 0; i < h->nbuckets; i++) + for (tlist = hash_items (i, h); tlist; tlist = tlist->next) + { + t = dequote_string ((char *)tlist->data); + FREE (tlist->data); + tlist->data = t; + } + + return h; +} + +HASH_TABLE * +assoc_dequote_escapes (h) + HASH_TABLE *h; +{ + int i; + BUCKET_CONTENTS *tlist; + char *t; + + if (h == 0 || assoc_empty (h)) + return ((HASH_TABLE *)NULL); + + for (i = 0; i < h->nbuckets; i++) + for (tlist = hash_items (i, h); tlist; tlist = tlist->next) + { + t = dequote_escapes ((char *)tlist->data); + FREE (tlist->data); + tlist->data = t; + } + + return h; +} + +HASH_TABLE * +assoc_remove_quoted_nulls (h) + HASH_TABLE *h; +{ + int i; + BUCKET_CONTENTS *tlist; + char *t; + + if (h == 0 || assoc_empty (h)) + return ((HASH_TABLE *)NULL); + + for (i = 0; i < h->nbuckets; i++) + for (tlist = hash_items (i, h); tlist; tlist = tlist->next) + { + t = remove_quoted_nulls ((char *)tlist->data); + tlist->data = t; + } + + return h; +} + +/* + * Return a string whose elements are the members of array H beginning at + * the STARTth element and spanning NELEM members. Null elements are counted. + */ +char * +assoc_subrange (hash, start, nelem, starsub, quoted) +HASH_TABLE *hash; +arrayind_t start, nelem; +int starsub, quoted; +{ + WORD_LIST *l, *save, *h, *t; + int i, j; + char *ret; + + if (assoc_empty (hash)) + return ((char *)NULL); + + save = l = assoc_to_word_list (hash); + if (save == 0) + return ((char *)NULL); + + for (i = 1; l && i < start; i++) + l = l->next; + if (l == 0) + return ((char *)NULL); + for (j = 0,h = t = l; l && j < nelem; j++) + { + t = l; + l = l->next; + } + + t->next = (WORD_LIST *)NULL; + + ret = string_list_pos_params (starsub ? '*' : '@', h, quoted); + + if (t != l) + t->next = l; + + dispose_words (save); + return (ret); + +} + +char * +assoc_patsub (h, pat, rep, mflags) + HASH_TABLE *h; + char *pat, *rep; + int mflags; +{ + BUCKET_CONTENTS *tlist; + int i, slen; + HASH_TABLE *h2; + char *t, *sifs, *ifs; + + if (h == 0 || assoc_empty (h)) + return ((char *)NULL); + + h2 = assoc_copy (h); + for (i = 0; i < h2->nbuckets; i++) + for (tlist = hash_items (i, h2); tlist; tlist = tlist->next) + { + t = pat_subst ((char *)tlist->data, pat, rep, mflags); + FREE (tlist->data); + tlist->data = t; + } + + if (mflags & MATCH_QUOTED) + assoc_quote (h2); + else + assoc_quote_escapes (h2); + + if (mflags & MATCH_STARSUB) + { + assoc_remove_quoted_nulls (h2); + sifs = ifs_firstchar ((int *)NULL); + t = assoc_to_string (h2, sifs, 0); + free (sifs); + } + else if (mflags & MATCH_QUOTED) + { + /* ${array[@]} */ + sifs = ifs_firstchar (&slen); + ifs = getifs (); + if (ifs == 0 || *ifs == 0) + { + if (slen < 2) + sifs = xrealloc (sifs, 2); + sifs[0] = ' '; + sifs[1] = '\0'; + } + t = assoc_to_string (h2, sifs, 0); + free(sifs); + } + else + t = assoc_to_string (h2, " ", 0); + + assoc_dispose (h2); + + return t; +} + +char * +assoc_modcase (h, pat, modop, mflags) + HASH_TABLE *h; + char *pat; + int modop; + int mflags; +{ + BUCKET_CONTENTS *tlist; + int i, slen; + HASH_TABLE *h2; + char *t, *sifs, *ifs; + + if (h == 0 || assoc_empty (h)) + return ((char *)NULL); + + h2 = assoc_copy (h); + for (i = 0; i < h2->nbuckets; i++) + for (tlist = hash_items (i, h2); tlist; tlist = tlist->next) + { + t = sh_modcase ((char *)tlist->data, pat, modop); + FREE (tlist->data); + tlist->data = t; + } + + if (mflags & MATCH_QUOTED) + assoc_quote (h2); + else + assoc_quote_escapes (h2); + + if (mflags & MATCH_STARSUB) + { + assoc_remove_quoted_nulls (h2); + sifs = ifs_firstchar ((int *)NULL); + t = assoc_to_string (h2, sifs, 0); + free (sifs); + } + else if (mflags & MATCH_QUOTED) + { + /* ${array[@]} */ + sifs = ifs_firstchar (&slen); + ifs = getifs (); + if (ifs == 0 || *ifs == 0) + { + if (slen < 2) + sifs = xrealloc (sifs, 2); + sifs[0] = ' '; + sifs[1] = '\0'; + } + t = assoc_to_string (h2, sifs, 0); + free(sifs); + } + else + t = assoc_to_string (h2, " ", 0); + + assoc_dispose (h2); + + return t; +} + +char * +assoc_to_assign (hash, quoted) + HASH_TABLE *hash; + int quoted; +{ + char *ret; + char *istr, *vstr; + int i, rsize, rlen, elen; + BUCKET_CONTENTS *tlist; + + if (hash == 0 || assoc_empty (hash)) + return (char *)0; + + ret = xmalloc (rsize = 128); + ret[0] = '('; + rlen = 1; + + for (i = 0; i < hash->nbuckets; i++) + for (tlist = hash_items (i, hash); tlist; tlist = tlist->next) + { + istr = tlist->key; + vstr = tlist->data ? sh_double_quote ((char *)tlist->data) : (char *)0; + + elen = STRLEN (istr) + 8 + STRLEN (vstr); + RESIZE_MALLOCED_BUFFER (ret, rlen, (elen+1), rsize, rsize); + + ret[rlen++] = '['; + strcpy (ret+rlen, istr); + rlen += STRLEN (istr); + ret[rlen++] = ']'; + ret[rlen++] = '='; + if (vstr) + { + strcpy (ret + rlen, vstr); + rlen += STRLEN (vstr); + } + ret[rlen++] = ' '; + + FREE (vstr); + } + + RESIZE_MALLOCED_BUFFER (ret, rlen, 1, rsize, 8); + ret[rlen++] = ')'; + ret[rlen] = '\0'; + + if (quoted) + { + vstr = sh_single_quote (ret); + free (ret); + ret = vstr; + } + + return ret; +} + +static WORD_LIST * +assoc_to_word_list_internal (h, t) + HASH_TABLE *h; + int t; +{ + WORD_LIST *list; + int i; + BUCKET_CONTENTS *tlist; + char *w; + + if (h == 0 || assoc_empty (h)) + return((WORD_LIST *)NULL); + list = (WORD_LIST *)NULL; + + for (i = 0; i < h->nbuckets; i++) + for (tlist = hash_items (i, h); tlist; tlist = tlist->next) + { + w = (t == 0) ? (char *)tlist->data : (char *)tlist->key; + list = make_word_list (make_bare_word(w), list); + } + return (REVERSE_LIST(list, WORD_LIST *)); +} + +WORD_LIST * +assoc_to_word_list (h) + HASH_TABLE *h; +{ + return (assoc_to_word_list_internal (h, 0)); +} + +WORD_LIST * +assoc_keys_to_word_list (h) + HASH_TABLE *h; +{ + return (assoc_to_word_list_internal (h, 1)); +} + +char * +assoc_to_string (h, sep, quoted) + HASH_TABLE *h; + char *sep; + int quoted; +{ + BUCKET_CONTENTS *tlist; + int i; + char *result, *t, *w; + WORD_LIST *list, *l; + + if (h == 0) + return ((char *)NULL); + if (assoc_empty (h)) + return (savestring ("")); + + result = NULL; + list = NULL; + /* This might be better implemented directly, but it's simple to implement + by converting to a word list first, possibly quoting the data, then + using list_string */ + for (i = 0; i < h->nbuckets; i++) + for (tlist = hash_items (i, h); tlist; tlist = tlist->next) + { + w = (char *)tlist->data; + if (w == 0) + continue; + t = quoted ? quote_string (w) : savestring (w); + list = make_word_list (make_bare_word(t), list); + FREE (t); + } + + l = REVERSE_LIST(list, WORD_LIST *); + + result = l ? string_list_internal (l, sep) : savestring (""); + return result; +} + +#endif /* ARRAY_VARS */ diff --git a/assoc.h b/assoc.h new file mode 100644 index 000000000..1ec1f6b23 --- /dev/null +++ b/assoc.h @@ -0,0 +1,61 @@ +/* assoc.h -- definitions for the interface exported by assoc.c that allows + the rest of the shell to manipulate associative array variables. */ + +/* Copyright (C) 2008,2009 Free Software Foundation, Inc. + + This file is part of GNU Bash, the Bourne Again SHell. + + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ + +#ifndef _ASSOC_H_ +#define _ASSOC_H_ + +#include "stdc.h" +#include "hashlib.h" + +#define assoc_empty(h) ((h)->nentries == 0) +#define assoc_num_elements(h) ((h)->nentries) + +#define assoc_create(n) (hash_create((n))) + +#define assoc_copy(h) (hash_copy((h), 0)) + +#define assoc_walk(h, f) (hash_walk((h), (f)) + +extern void assoc_dispose __P((HASH_TABLE *)); +extern void assoc_flush __P((HASH_TABLE *)); + +extern int assoc_insert __P((HASH_TABLE *, char *, char *)); +extern void assoc_remove __P((HASH_TABLE *, char *)); + +extern char *assoc_reference __P((HASH_TABLE *, char *)); + +extern char *assoc_subrange __P((HASH_TABLE *, arrayind_t, arrayind_t, int, int)); +extern char *assoc_patsub __P((HASH_TABLE *, char *, char *, int)); +extern char *assoc_modcase __P((HASH_TABLE *, char *, int, int)); + +extern HASH_TABLE *assoc_quote __P((HASH_TABLE *)); +extern HASH_TABLE *assoc_quote_escapes __P((HASH_TABLE *)); +extern HASH_TABLE *assoc_dequote __P((HASH_TABLE *)); +extern HASH_TABLE *assoc_dequote_escapes __P((HASH_TABLE *)); +extern HASH_TABLE *assoc_remove_quoted_nulls __P((HASH_TABLE *)); + +extern char *assoc_to_assign __P((HASH_TABLE *, int)); + +extern WORD_LIST *assoc_to_word_list __P((HASH_TABLE *)); +extern WORD_LIST *assoc_keys_to_word_list __P((HASH_TABLE *)); + +extern char *assoc_to_string __P((HASH_TABLE *, char *, int)); +#endif /* _ASSOC_H_ */ diff --git a/bashansi.h b/bashansi.h index e7f11585b..2c33937d0 100644 --- a/bashansi.h +++ b/bashansi.h @@ -1,22 +1,22 @@ /* bashansi.h -- Typically included information required by picky compilers. */ -/* Copyright (C) 1993 Free Software Foundation, Inc. +/* Copyright (C) 1993-2009 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. + 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #if !defined (_BASHANSI_H_) #define _BASHANSI_H_ diff --git a/bashhist.c b/bashhist.c index 3b8541609..02afb38f7 100644 --- a/bashhist.c +++ b/bashhist.c @@ -1,22 +1,22 @@ /* bashhist.c -- bash interface to the GNU history library. */ -/* Copyright (C) 1993-2004 Free Software Foundation, Inc. +/* Copyright (C) 1993-2009 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. + 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #include "config.h" @@ -265,7 +265,6 @@ void load_history () { char *hf; - struct stat buf; /* Truncate history file for interactive shells which desire it. Note that the history file is automatically truncated to the @@ -280,7 +279,7 @@ load_history () /* Read the history in HISTFILE into the history list. */ hf = get_string_value ("HISTFILE"); - if (hf && *hf && stat (hf, &buf) == 0) + if (hf && *hf && file_exists (hf)) { read_history (hf); using_history (); @@ -288,16 +287,65 @@ load_history () } } +void +bash_clear_history () +{ + clear_history (); + history_lines_this_session = 0; +} + +/* Delete and free the history list entry at offset I. */ +int +bash_delete_histent (i) + int i; +{ + HIST_ENTRY *discard; + + discard = remove_history (i); + if (discard) + free_history_entry (discard); + history_lines_this_session--; + + return 1; +} + +int +bash_delete_last_history () +{ + register int i; + HIST_ENTRY **hlist, *histent; + int r; + + hlist = history_list (); + if (hlist == NULL) + return 0; + + for (i = 0; hlist[i]; i++) + ; + i--; + + /* History_get () takes a parameter that must be offset by history_base. */ + histent = history_get (history_base + i); /* Don't free this */ + if (histent == NULL) + return 0; + + r = bash_delete_histent (i); + + if (where_history () > history_length) + history_set_pos (history_length); + + return r; +} + #ifdef INCLUDE_UNUSED /* Write the existing history out to the history file. */ void save_history () { char *hf; - struct stat buf; hf = get_string_value ("HISTFILE"); - if (hf && *hf && stat (hf, &buf) == 0) + if (hf && *hf && file_exists (hf)) { /* Append only the lines that occurred this session to the history file. */ @@ -348,7 +396,6 @@ maybe_save_shell_history () { int result; char *hf; - struct stat buf; result = 0; if (history_lines_this_session) @@ -358,7 +405,7 @@ maybe_save_shell_history () if (hf && *hf) { /* If the file doesn't exist, then create it. */ - if (stat (hf, &buf) == -1) + if (file_exists (hf) == 0) { int file; file = open (hf, O_CREAT | O_TRUNC | O_WRONLY, 0600); diff --git a/bashhist.h b/bashhist.h index 654043c77..c44e7c607 100644 --- a/bashhist.h +++ b/bashhist.h @@ -1,22 +1,22 @@ /* bashhist.h -- interface to the bash history functions in bashhist.c. */ -/* Copyright (C) 1993 Free Software Foundation, Inc. +/* Copyright (C) 1993-2009 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. + 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #if !defined (_BASHHIST_H_) #define _BASHHIST_H_ @@ -51,6 +51,9 @@ extern void bash_initialize_history __P((void)); extern void bash_history_reinit __P((int)); extern void bash_history_disable __P((void)); extern void bash_history_enable __P((void)); +extern void bash_clear_history __P((void)); +extern int bash_delete_histent __P((int)); +extern int bash_delete_last_history __P((void)); extern void load_history __P((void)); extern void save_history __P((void)); extern int maybe_append_history __P((char *)); diff --git a/bashintl.h b/bashintl.h index 12068e484..7e6b83fc0 100644 --- a/bashintl.h +++ b/bashintl.h @@ -1,22 +1,22 @@ -/* bashintl.h -- Internationalization stuff +/* bashintl.h -- Internationalization functions and defines. */ - Copyright (C) 1996-2003 Free Software Foundation, Inc. +/* Copyright (C) 1996-2009 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. + 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #if !defined (_BASHINTL_H_) #define _BASHINTL_H_ @@ -37,6 +37,8 @@ #define N_(msgid) msgid #define D_(d, msgid) dgettext(d, msgid) +#define P_(m1, m2, n) ngettext(m1, m2, n) + #if defined (HAVE_SETLOCALE) && !defined (LC_ALL) # undef HAVE_SETLOCALE #endif diff --git a/bashjmp.h b/bashjmp.h index f77e7b958..c26053d4b 100644 --- a/bashjmp.h +++ b/bashjmp.h @@ -1,22 +1,22 @@ /* bashjmp.h -- wrapper for setjmp.h with necessary bash definitions. */ -/* Copyright (C) 1987,1991 Free Software Foundation, Inc. +/* Copyright (C) 1987-2009 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public - License for more details. + 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. */ + along with Bash. If not, see . +*/ #ifndef _BASHJMP_H_ #define _BASHJMP_H_ diff --git a/bashline.c b/bashline.c index fa4055e21..c5e836973 100644 --- a/bashline.c +++ b/bashline.c @@ -1,22 +1,22 @@ /* bashline.c -- Bash's interface to the readline library. */ -/* Copyright (C) 1987-2006 Free Software Foundation, Inc. +/* Copyright (C) 1987-2009 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public - License for more details. + 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. */ + along with Bash. If not, see . +*/ #include "config.h" @@ -50,7 +50,10 @@ #include "execute_cmd.h" #include "findcmd.h" #include "pathexp.h" +#include "shmbutil.h" + #include "builtins/common.h" + #include #include #include @@ -73,6 +76,8 @@ # define VI_EDITING_MODE 0 #endif +#define RL_BOOLEAN_VARIABLE_VALUE(s) ((s)[0] == 'o' && (s)[1] == 'n' && (s)[2] == '\0') + #if defined (BRACE_COMPLETION) extern int bash_brace_completion __P((int, int)); #endif /* BRACE_COMPLETION */ @@ -99,7 +104,14 @@ static int alias_expand_line __P((int, int)); static int history_and_alias_expand_line __P((int, int)); #endif +static int bash_forward_shellword __P((int, int)); +static int bash_backward_shellword __P((int, int)); +static int bash_kill_shellword __P((int, int)); +static int bash_backward_kill_shellword __P((int, int)); + /* Helper functions for Readline. */ +static char *restore_tilde __P((char *, char *)); + static void bash_directory_expansion __P((char **)); static int bash_directory_completion_hook __P((char **)); static int filename_completion_ignore __P((char **)); @@ -118,6 +130,7 @@ static char *command_subst_completion_function __P((const char *, int)); static void build_history_completion_array __P((void)); static char *history_completion_generator __P((const char *, int)); static int dynamic_complete_history __P((int, int)); +static int bash_dabbrev_expand __P((int, int)); static void initialize_hostname_list __P((void)); static void add_host_name __P((char *)); @@ -158,6 +171,7 @@ extern int hist_verify; #endif extern int current_command_line_count, last_command_exit_value; +extern int array_needs_making; extern int posixly_correct, no_symbolic_links; extern char *current_prompt_string, *ps1_prompt; extern STRING_INT_ALIST word_token_alist[]; @@ -220,6 +234,9 @@ int no_empty_command_completion; are the only possible matches, even if FIGNORE says to. */ int force_fignore = 1; +/* Perform spelling correction on directory names during word completion */ +int dircomplete_spelling = 0; + static char *bash_completer_word_break_characters = " \t\n\"'@><=;|&(:"; static char *bash_nohostname_word_break_characters = " \t\n\"'><=;|&(:"; /* )) */ @@ -254,6 +271,12 @@ posix_readline_initialize (on_or_off) #endif } +void +reset_completer_word_break_chars () +{ + rl_completer_word_break_characters = perform_hostname_completion ? savestring (bash_completer_word_break_characters) : savestring (bash_nohostname_word_break_characters); +} + /* When this function returns, rl_completer_word_break_characters points to dynamically allocated memory. */ int @@ -353,6 +376,11 @@ initialize_readline () rl_add_defun ("magic-space", tcsh_magic_space, -1); #endif + rl_add_defun ("shell-forward-word", bash_forward_shellword, -1); + rl_add_defun ("shell-backward-word", bash_backward_shellword, -1); + rl_add_defun ("shell-kill-word", bash_kill_shellword, -1); + rl_add_defun ("shell-backward-kill-word", bash_backward_kill_shellword, -1); + #ifdef ALIAS rl_add_defun ("alias-expand-line", alias_expand_line, -1); # ifdef BANG_HISTORY @@ -388,6 +416,7 @@ initialize_readline () #endif rl_add_defun ("dynamic-complete-history", dynamic_complete_history, -1); + rl_add_defun ("dabbrev-expand", bash_dabbrev_expand, -1); /* Bind defaults before binding our custom shell keybindings. */ if (RL_ISSTATE(RL_STATE_INITIALIZED) == 0) @@ -489,7 +518,11 @@ initialize_readline () enable_hostname_completion (perform_hostname_completion); /* characters that need to be quoted when appearing in filenames. */ +#if 0 rl_filename_quote_characters = " \t\n\\\"'@<>=;|&()#$`?*[!:{"; /*}*/ +#else + rl_filename_quote_characters = " \t\n\\\"'@<>=;|&()#$`?*[!:{~"; /*}*/ +#endif rl_filename_quoting_function = bash_quote_filename; rl_filename_dequoting_function = bash_dequote_filename; rl_char_is_quoted_p = char_is_quoted; @@ -506,13 +539,19 @@ initialize_readline () bash_readline_initialized = 1; } +void +bashline_reinitialize () +{ + bash_readline_initialized = 0; +} + /* On Sun systems at least, rl_attempted_completion_function can end up getting set to NULL, and rl_completion_entry_function set to do command word completion if Bash is interrupted while trying to complete a command word. This just resets all the completion functions to the right thing. It's called from throw_to_top_level(). */ void -bashline_reinitialize () +bashline_reset () { tilde_initialize (); rl_attempted_completion_function = attempt_shell_completion; @@ -812,8 +851,8 @@ edit_and_execute_command (count, c, editing_mode, edit_command) int count, c, editing_mode; char *edit_command; { - char *command; - int r, cclc, rrs; + char *command, *metaval; + int r, cclc, rrs, metaflag; rrs = rl_readline_state; cclc = current_command_line_count; @@ -840,10 +879,17 @@ edit_and_execute_command (count, c, editing_mode, edit_command) command = savestring (edit_command); } + metaval = rl_variable_value ("input-meta"); + metaflag = RL_BOOLEAN_VARIABLE_VALUE (metaval); + /* Now, POSIX.1-2001 and SUSv3 say that the commands executed from the temporary file should be placed into the history. We don't do that yet. */ + if (rl_deprep_term_function) + (*rl_deprep_term_function) (); r = parse_and_execute (command, (editing_mode == VI_EDITING_MODE) ? "v" : "C-xC-e", SEVAL_NOHIST); + if (rl_prep_term_function) + (*rl_prep_term_function) (metaflag); current_command_line_count = cclc; @@ -902,6 +948,203 @@ posix_edit_macros (count, key) } #endif +/* Bindable commands that move `shell-words': that is, sequences of + non-unquoted-metacharacters. */ + +#define WORDDELIM(c) (shellmeta(c) || shellblank(c)) + +static int +bash_forward_shellword (count, key) + int count, key; +{ + size_t slen; + int sindex, c, p; + DECLARE_MBSTATE; + + if (count < 0) + return (bash_backward_shellword (-count, key)); + + /* The tricky part of this is deciding whether or not the first character + we're on is an unquoted metacharacter. Not completely handled yet. */ + /* XXX - need to test this stuff with backslash-escaped shell + metacharacters and unclosed single- and double-quoted strings. */ + + p = rl_point; + slen = rl_end; + + while (count) + { + if (p == rl_end) + { + rl_point = rl_end; + return 0; + } + + /* Move forward until we hit a non-metacharacter. */ + while (p < rl_end && (c = rl_line_buffer[p]) && WORDDELIM (c)) + { + switch (c) + { + default: + ADVANCE_CHAR (rl_line_buffer, slen, p); + continue; /* straight back to loop, don't increment p */ + case '\\': + if (p < rl_end && rl_line_buffer[p]) + ADVANCE_CHAR (rl_line_buffer, slen, p); + break; + case '\'': + p = skip_to_delim (rl_line_buffer, ++p, "'", SD_NOJMP); + break; + case '"': + p = skip_to_delim (rl_line_buffer, ++p, "\"", SD_NOJMP); + break; + } + + if (p < rl_end) + p++; + } + + if (rl_line_buffer[p] == 0 || p == rl_end) + { + rl_point = rl_end; + rl_ding (); + return 0; + } + + /* Now move forward until we hit a non-quoted metacharacter or EOL */ + while (p < rl_end && (c = rl_line_buffer[p]) && WORDDELIM (c) == 0) + { + switch (c) + { + default: + ADVANCE_CHAR (rl_line_buffer, slen, p); + continue; /* straight back to loop, don't increment p */ + case '\\': + if (p < rl_end && rl_line_buffer[p]) + ADVANCE_CHAR (rl_line_buffer, slen, p); + break; + case '\'': + p = skip_to_delim (rl_line_buffer, ++p, "'", SD_NOJMP); + break; + case '"': + p = skip_to_delim (rl_line_buffer, ++p, "\"", SD_NOJMP); + break; + } + + if (p < rl_end) + p++; + } + + if (p == rl_end || rl_line_buffer[p] == 0) + { + rl_point = rl_end; + return (0); + } + + count--; + } + + rl_point = p; + return (0); +} + +static int +bash_backward_shellword (count, key) + int count, key; +{ + size_t slen; + int sindex, c, p; + DECLARE_MBSTATE; + + if (count < 0) + return (bash_forward_shellword (-count, key)); + + p = rl_point; + slen = rl_end; + + while (count) + { + if (p == 0) + { + rl_point = 0; + return 0; + } + + /* Move backward until we hit a non-metacharacter. */ + while (p > 0) + { + c = rl_line_buffer[p]; + if (WORDDELIM (c) && char_is_quoted (rl_line_buffer, p) == 0) + BACKUP_CHAR (rl_line_buffer, slen, p); + break; + } + + if (p == 0) + { + rl_point = 0; + return 0; + } + + /* Now move backward until we hit a metacharacter or BOL. */ + while (p > 0) + { + c = rl_line_buffer[p]; + if (WORDDELIM (c) && char_is_quoted (rl_line_buffer, p) == 0) + break; + BACKUP_CHAR (rl_line_buffer, slen, p); + } + + count--; + } + + rl_point = p; + return 0; +} + +static int +bash_kill_shellword (count, key) + int count, key; +{ + int p; + + if (count < 0) + return (bash_backward_kill_shellword (-count, key)); + + p = rl_point; + bash_forward_shellword (count, key); + + if (rl_point != p) + rl_kill_text (p, rl_point); + + rl_point = p; + if (rl_editing_mode == 1) /* 1 == emacs_mode */ + rl_mark = rl_point; + + return 0; +} + +static int +bash_backward_kill_shellword (count, key) + int count, key; +{ + int p; + + if (count < 0) + return (bash_kill_shellword (-count, key)); + + p = rl_point; + bash_backward_shellword (count, key); + + if (rl_point != p) + rl_kill_text (p, rl_point); + + if (rl_editing_mode == 1) /* 1 == emacs_mode */ + rl_mark = rl_point; + + return 0; +} + + /* **************************************************************** */ /* */ /* How To Do Shell Completion */ @@ -944,7 +1187,7 @@ find_cmd_start (start) register int s, os; os = 0; - while (((s = skip_to_delim (rl_line_buffer, os, COMMAND_SEPARATORS)) <= start) && + while (((s = skip_to_delim (rl_line_buffer, os, COMMAND_SEPARATORS, SD_NOJMP)) <= start) && rl_line_buffer[s]) os = s+1; return os; @@ -956,7 +1199,7 @@ find_cmd_end (end) { register int e; - e = skip_to_delim (rl_line_buffer, end, COMMAND_SEPARATORS); + e = skip_to_delim (rl_line_buffer, end, COMMAND_SEPARATORS, SD_NOJMP); return e; } @@ -971,7 +1214,7 @@ find_cmd_name (start) ; /* skip until a shell break character */ - e = skip_to_delim (rl_line_buffer, s, "()<>;&| \t\n"); + e = skip_to_delim (rl_line_buffer, s, "()<>;&| \t\n", SD_NOJMP); name = substring (rl_line_buffer, s, e); @@ -1070,8 +1313,9 @@ attempt_shell_completion (text, start, end) #if defined (PROGRAMMABLE_COMPLETION) /* Attempt programmable completion. */ - if (!matches && in_command_position == 0 && prog_completion_enabled && - (progcomp_size () > 0) && current_prompt_string == ps1_prompt) + if (matches == 0 && (in_command_position == 0 || text[0] == '\0') && + prog_completion_enabled && (progcomp_size () > 0) && + current_prompt_string == ps1_prompt) { int s, e, foundcs; char *n; @@ -1084,7 +1328,9 @@ attempt_shell_completion (text, start, end) s = find_cmd_start (start); e = find_cmd_end (end); n = find_cmd_name (s); - if (e > s && assignment (n, 0) == 0) + if (e == 0 && e == s && text[0] == '\0') + prog_complete_matches = programmable_completions ("_EmptycmD_", text, s, e, &foundcs); + else if (e > s && assignment (n, 0) == 0) prog_complete_matches = programmable_completions (n, text, s, e, &foundcs); else foundcs = 0; @@ -1092,16 +1338,11 @@ attempt_shell_completion (text, start, end) /* XXX - if we found a COMPSPEC for the command, just return whatever the programmable completion code returns, and disable the default filename completion that readline will do unless the COPT_DEFAULT - option has been set with the `-o default' option to complete. */ + option has been set with the `-o default' option to complete or + compopt. */ if (foundcs) { - /* If the user specified that the compspec returns filenames, make - sure that readline knows it. */ - if (foundcs & COPT_FILENAMES) - rl_filename_completion_desired = 1; - /* If the user doesn't want a space appended, tell readline. */ - if (foundcs & COPT_NOSPACE) - rl_completion_suppress_append = 1; + pcomp_set_readline_variables (foundcs, 1); /* Turn what the programmable completion code returns into what readline wants. I should have made compute_lcd_of_matches external... */ @@ -1235,8 +1476,11 @@ command_word_completion_function (hint_text, state) static char *val = (char *)NULL; static char *filename_hint = (char *)NULL; static char *dequoted_hint = (char *)NULL; + static char *directory_part = (char *)NULL; + static char **glob_matches = (char **)NULL; static int path_index, hint_len, dequoted_len, istate, igncase; static int mapping_over, local_index, searching_path, hint_is_dir; + static int old_glob_ignore_case, globpat; static SHELL_VAR **varlist = (SHELL_VAR **)NULL; #if defined (ALIAS) static alias_t **alias_list = (alias_t **)NULL; @@ -1245,7 +1489,7 @@ command_word_completion_function (hint_text, state) /* We have to map over the possibilities for command words. If we have no state, then make one just for that purpose. */ - if (!state) + if (state == 0) { if (dequoted_hint && dequoted_hint != hint) free (dequoted_hint); @@ -1257,18 +1501,37 @@ command_word_completion_function (hint_text, state) val = (char *)NULL; temp = rl_variable_value ("completion-ignore-case"); - igncase = strcmp (temp, "on") == 0; + igncase = RL_BOOLEAN_VARIABLE_VALUE (temp); + + if (glob_matches) + { + free (glob_matches); + glob_matches = (char **)NULL; + } + + globpat = glob_pattern_p (hint_text); /* If this is an absolute program name, do not check it against aliases, reserved words, functions or builtins. We must check whether or not it is unique, and, if so, whether that filename is executable. */ - if (absolute_program (hint_text)) + if (globpat || absolute_program (hint_text)) { /* Perform tilde expansion on what's passed, so we don't end up passing filenames with tildes directly to stat(). */ if (*hint_text == '~') - hint = bash_tilde_expand (hint_text, 0); + { + hint = bash_tilde_expand (hint_text, 0); + directory_part = savestring (hint_text); + temp = strchr (directory_part, '/'); + if (temp) + *temp = 0; + else + { + free (directory_part); + directory_part = (char *)NULL; + } + } else hint = savestring (hint_text); @@ -1291,9 +1554,18 @@ command_word_completion_function (hint_text, state) filename_hint = savestring (hint); - mapping_over = 4; istate = 0; - goto inner; + + if (globpat) + { + mapping_over = 5; + goto globword; + } + else + { + mapping_over = 4; + goto inner; + } } dequoted_hint = hint = savestring (hint_text); @@ -1392,6 +1664,50 @@ command_word_completion_function (hint_text, state) mapping_over++; } +globword: + /* Limited support for completing command words with globbing chars. Only + a single match (multiple matches that end up reducing the number of + characters in the common prefix are bad) will ever be returned on + regular completion. */ + if (glob_pattern_p (hint)) + { + if (state == 0) + { + glob_ignore_case = igncase; + glob_matches = shell_glob_filename (hint); + glob_ignore_case = old_glob_ignore_case; + + if (GLOB_FAILED (glob_matches) || glob_matches == 0) + { + glob_matches = (char **)NULL; + return ((char *)NULL); + } + + local_index = 0; + + if (glob_matches[1] && rl_completion_type == TAB) /* multiple matches are bad */ + return ((char *)NULL); + } + + while (val = glob_matches[local_index++]) + { + if (executable_or_directory (val)) + { + if (*hint_text == '~') + { + temp = restore_tilde (val, directory_part); + free (val); + val = temp; + } + return (val); + } + free (val); + } + + glob_ignore_case = old_glob_ignore_case; + return ((char *)NULL); + } + /* If the text passed is a directory in the current directory, return it as a possible match. Executables in directories in the current directory can be specified using relative pathnames and successfully @@ -1409,13 +1725,13 @@ command_word_completion_function (hint_text, state) istate = (val != (char *)NULL); - if (!istate) + if (istate == 0) { char *current_path; /* Get the next directory from the path. If there is none, then we are all done. */ - if (!path || !path[path_index] || + if (path == 0 || path[path_index] == 0 || (current_path = extract_colon_unit (path, &path_index)) == 0) return ((char *)NULL); @@ -1442,7 +1758,7 @@ command_word_completion_function (hint_text, state) free (filename_hint); filename_hint = sh_makepath (current_path, hint, 0); - free (current_path); + free (current_path); /* XXX */ } inner: @@ -1461,9 +1777,6 @@ command_word_completion_function (hint_text, state) else { int match, freetemp; -#if 0 - char *temp; /* shadows previous declaration */ -#endif if (absolute_program (hint)) { @@ -1475,24 +1788,7 @@ command_word_completion_function (hint_text, state) /* If we performed tilde expansion, restore the original filename. */ if (*hint_text == '~') - { - int l, tl, vl, dl; - char *rd; - vl = strlen (val); - tl = strlen (hint_text); -#if 0 - l = vl - hint_len; /* # of chars added */ -#else - rd = savestring (filename_hint); - bash_directory_expansion (&rd); - dl = strlen (rd); - l = vl - dl; /* # of chars added */ - free (rd); -#endif - temp = (char *)xmalloc (l + 2 + tl); - strcpy (temp, hint_text); - strcpy (temp + tl, val + vl - l); - } + temp = restore_tilde (val, directory_part); else temp = savestring (val); freetemp = 1; @@ -2250,22 +2546,19 @@ filename_completion_ignore (names) return 0; } -/* Return 1 if NAME is a directory. */ +/* Return 1 if NAME is a directory. NAME undergoes tilde expansion. */ static int test_for_directory (name) const char *name; { - struct stat finfo; char *fn; + int r; fn = bash_tilde_expand (name, 0); - if (stat (fn, &finfo) != 0) - { - free (fn); - return 0; - } + r = file_isdir (fn); free (fn); - return (S_ISDIR (finfo.st_mode)); + + return (r); } /* Remove files from NAMES, leaving directories. */ @@ -2292,6 +2585,45 @@ bash_ignore_everything (names) return 0; } +/* Replace a tilde-prefix in VAL with a `~', assuming the user typed it. VAL + is an expanded filename. DIRECTORY_PART is the tilde-prefix portion + of the un-tilde-expanded version of VAL (what the user typed). */ +static char * +restore_tilde (val, directory_part) + char *val, *directory_part; +{ + int l, vl, dl2, xl; + char *dh2, *expdir, *ret; + + vl = strlen (val); + + /* We need to duplicate the expansions readline performs on the directory + portion before passing it to our completion function. */ + dh2 = directory_part ? bash_dequote_filename (directory_part, 0) : 0; + bash_directory_expansion (&dh2); + dl2 = strlen (dh2); + + expdir = bash_tilde_expand (directory_part, 0); + xl = strlen (expdir); + free (expdir); + + /* + dh2 = unexpanded but dequoted tilde-prefix + dl2 = length of tilde-prefix + expdir = tilde-expanded tilde-prefix + xl = length of expanded tilde-prefix + l = length of remainder after tilde-prefix + */ + l = (vl - xl) + 1; + + ret = (char *)xmalloc (dl2 + 2 + l); + strcpy (ret, dh2); + strcpy (ret + dl2, val + xl); + + free (dh2); + return (ret); +} + /* Simulate the expansions that will be performed by rl_filename_completion_function. This must be called with the address of a pointer to malloc'd memory. */ @@ -2319,7 +2651,7 @@ bash_directory_expansion (dirname) *dirname = nd; } } - + /* Handle symbolic link references and other directory name expansions while hacking completion. */ static int @@ -2334,9 +2666,6 @@ bash_directory_completion_hook (dirname) return_value = should_expand_dirname = 0; local_dirname = *dirname; -#if 0 - should_expand_dirname = xstrchr (local_dirname, '$') || xstrchr (local_dirname, '`'); -#else if (xstrchr (local_dirname, '$')) should_expand_dirname = 1; else @@ -2345,7 +2674,6 @@ bash_directory_completion_hook (dirname) if (t && unclosed_pair (local_dirname, strlen (local_dirname), "`") == 0) should_expand_dirname = 1; } -#endif #if defined (HAVE_LSTAT) if (should_expand_dirname && lstat (local_dirname, &sb) == 0) @@ -2386,7 +2714,7 @@ bash_directory_completion_hook (dirname) local_dirname = *dirname = new_dirname; } - if (!no_symbolic_links && (local_dirname[0] != '.' || local_dirname[1])) + if (no_symbolic_links == 0 && (local_dirname[0] != '.' || local_dirname[1])) { char *temp1, *temp2; int len1, len2; @@ -2395,6 +2723,19 @@ bash_directory_completion_hook (dirname) temp1 = make_absolute (local_dirname, t); free (t); temp2 = sh_canonpath (temp1, PATH_CHECKDOTDOT|PATH_CHECKEXISTS); + + /* Try spelling correction if initial canonicalization fails. */ + if (temp2 == 0 && dircomplete_spelling) + { + temp2 = dirspell (temp1); + if (temp2) + { + free (temp1); + temp1 = temp2; + temp2 = sh_canonpath (temp1, PATH_CHECKDOTDOT|PATH_CHECKEXISTS); + return_value = temp2 != 0; + } + } /* If we can't canonicalize, bail. */ if (temp2 == 0) { @@ -2497,12 +2838,12 @@ dynamic_complete_history (count, key) int count, key; { int r; - rl_compentry_func_t *orig_func; rl_completion_func_t *orig_attempt_func; orig_func = rl_completion_entry_function; orig_attempt_func = rl_attempted_completion_function; + rl_completion_entry_function = history_completion_generator; rl_attempted_completion_function = (rl_completion_func_t *)NULL; @@ -2517,6 +2858,33 @@ dynamic_complete_history (count, key) return r; } +static int +bash_dabbrev_expand (count, key) + int count, key; +{ + int r; + rl_compentry_func_t *orig_func; + rl_completion_func_t *orig_attempt_func; + + orig_func = rl_menu_completion_entry_function; + orig_attempt_func = rl_attempted_completion_function; + + rl_menu_completion_entry_function = history_completion_generator; + rl_attempted_completion_function = (rl_completion_func_t *)NULL; + rl_filename_completion_desired = 0; + + /* XXX - use rl_completion_mode here? */ + if (rl_last_func == bash_dabbrev_expand) + rl_last_func = rl_menu_complete; + r = rl_menu_complete (count, key); + + rl_last_func = bash_dabbrev_expand; + rl_menu_completion_entry_function = orig_func; + rl_attempted_completion_function = orig_attempt_func; + + return r; +} + #if defined (SPECIFIC_COMPLETION_FUNCTIONS) static int bash_complete_username (ignore, ignore2) @@ -2844,9 +3212,17 @@ bash_dequote_filename (text, quote_char) ret = (char *)xmalloc (l + 1); for (quoted = quote_char, p = text, r = ret; p && *p; p++) { - /* Allow backslash-quoted characters to pass through unscathed. */ + /* Allow backslash-escaped characters to pass through unscathed. */ if (*p == '\\') { + /* Backslashes are preserved within single quotes. */ + if (quoted == '\'') + *r++ = *p; + /* Backslashes are preserved within double quotes unless the + character is one that is defined to be escaped */ + else if (quoted == '"' && ((sh_syntaxtab[p[1]] & CBSDQUOTE) == 0)) + *r++ = *p; + *r++ = *++p; if (*p == '\0') break; @@ -2897,6 +3273,9 @@ quote_word_break_chars (text) rl_completer_word_break_characters. */ if (xstrchr (rl_completer_word_break_characters, *s)) *r++ = '\\'; + /* XXX -- check for standalone tildes here and backslash-quote them */ + if (s == text && *s == '~' && file_exists (text)) + *r++ = '\\'; *r++ = *s; } *r = '\0'; @@ -3008,8 +3387,12 @@ bash_execute_unix_command (count, key) Keymap ckmap; /* current keymap */ Keymap xkmap; /* unix command executing keymap */ register int i; - char *cmd; + intmax_t mi; + int save_point; sh_parser_state_t ps; + char *cmd, *value, *l; + SHELL_VAR *v; + char ibuf[INT_STRLEN_BOUND(int) + 1]; /* First, we need to find the right command to execute. This is tricky, because we might have already indirected into another keymap. */ @@ -3045,12 +3428,41 @@ bash_execute_unix_command (count, key) rl_crlf (); /* move to a new line */ + v = bind_variable ("READLINE_LINE", rl_line_buffer, 0); + if (v) + VSETATTR (v, att_exported); + l = value_cell (v); + save_point = rl_point; + value = inttostr (rl_point, ibuf, sizeof (ibuf)); + v = bind_int_variable ("READLINE_POINT", value); + if (v) + VSETATTR (v, att_exported); + array_needs_making = 1; + save_parser_state (&ps); + parse_and_execute (cmd, "bash_execute_unix_command", SEVAL_NOHIST|SEVAL_NOFREE); + restore_parser_state (&ps); - cmd = savestring (cmd); - parse_and_execute (cmd, "bash_execute_unix_command", SEVAL_NOHIST); + v = find_variable ("READLINE_LINE"); + if (value_cell (v) != l) + maybe_make_readline_line (value_cell (v)); + v = find_variable ("READLINE_POINT"); + if (v && legal_number (value_cell (v), &mi)) + { + i = mi; + if (i != save_point) + { + rl_point = i; + if (rl_point > rl_end) + rl_point = rl_end; + else if (rl_point < 0) + rl_point = 0; + } + } - restore_parser_state (&ps); + unbind_variable ("READLINE_LINE"); + unbind_variable ("READLINE_POINT"); + array_needs_making = 1; /* and restore the readline buffer and display after command execution. */ rl_forced_update_display (); diff --git a/bashline.h b/bashline.h index eac5d3533..9daa8f9fd 100644 --- a/bashline.h +++ b/bashline.h @@ -1,22 +1,22 @@ /* bashline.h -- interface to the bash readline functions in bashline.c. */ -/* Copyright (C) 1993 Free Software Foundation, Inc. +/* Copyright (C) 1993-2009 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. + 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #if !defined (_BASHLINE_H_) #define _BASHLINE_H_ @@ -26,8 +26,10 @@ extern int bash_readline_initialized; extern void posix_readline_initialize __P((int)); +extern void reset_completer_word_break_chars __P((void)); extern int enable_hostname_completion __P((int)); extern void initialize_readline __P((void)); +extern void bashline_reset __P((void)); extern void bashline_reinitialize __P((void)); extern int bash_re_edit __P((char *)); diff --git a/bashtypes.h b/bashtypes.h index 7409247c0..f77365217 100644 --- a/bashtypes.h +++ b/bashtypes.h @@ -1,22 +1,22 @@ /* bashtypes.h -- Bash system types. */ -/* Copyright (C) 1993 Free Software Foundation, Inc. +/* Copyright (C) 1993-2009 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. + 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #if !defined (_BASHTYPES_H_) # define _BASHTYPES_H_ diff --git a/bracecomp.c b/bracecomp.c index 34fc91e8d..cb218a2bf 100644 --- a/bracecomp.c +++ b/bracecomp.c @@ -4,25 +4,26 @@ /* Original version by tromey@cns.caltech.edu, Fri Feb 7 1992. */ -/* Copyright (C) 1993 Free Software Foundation, Inc. +/* Copyright (C) 1993-2009 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. + 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #include "config.h" + #if defined (BRACE_EXPANSION) && defined (READLINE) #include @@ -35,10 +36,13 @@ #endif #include "bashansi.h" +#include "shmbutil.h" #include "shell.h" #include +static int _strcompare __P((char **, char **)); + /* Find greatest common prefix of two strings. */ static int string_gcd (s1, s2) @@ -145,6 +149,19 @@ really_munge_braces (array, real_start, real_end, gcd_zero) return (result); } +static int +_strcompare (s1, s2) + char **s1, **s2; +{ + int result; + + result = **s1 - **s2; + if (result == 0) + result = strcmp (*s1, *s2); + + return result; +} + static int hack_braces_completion (names) char **names; @@ -152,7 +169,11 @@ hack_braces_completion (names) register int i; char *temp; - temp = really_munge_braces (names, 1, strvec_len (names), 0); + i = strvec_len (names); + if (MB_CUR_MAX > 1 && i > 2) + qsort (names+1, i-1, sizeof (char *), (QSFUNC *)_strcompare); + + temp = really_munge_braces (names, 1, i, 0); for (i = 0; names[i]; ++i) { diff --git a/braces.c b/braces.c index 253739741..4e0c08a79 100644 --- a/braces.c +++ b/braces.c @@ -1,22 +1,22 @@ /* braces.c -- code for doing word expansion in curly braces. */ -/* Copyright (C) 1987-2003 Free Software Foundation, Inc. +/* Copyright (C) 1987-2009 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public - License for more details. + 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. */ + along with Bash. If not, see . +*/ /* Stuff in curly braces gets expanded before all other shell expansions. */ @@ -45,6 +45,8 @@ #define BRACE_SEQ_SPECIFIER ".." +extern int asprintf __P((char **, const char *, ...)) __attribute__((__format__ (printf, 2, 3))); + /* Basic idea: Segregate the text into 3 sections: preamble (stuff before an open brace), @@ -55,13 +57,13 @@ */ /* The character which is used to separate arguments. */ -int brace_arg_separator = ','; +static const int brace_arg_separator = ','; #if defined (__P) static int brace_gobbler __P((char *, size_t, int *, int)); static char **expand_amble __P((char *, size_t, int)); static char **expand_seqterm __P((char *, size_t)); -static char **mkseq __P((int, int, int, int)); +static char **mkseq __P((int, int, int, int, int)); static char **array_concat __P((char **, char **)); #else static int brace_gobbler (); @@ -301,10 +303,11 @@ expand_amble (text, tlen, flags) #define ST_BAD 0 #define ST_INT 1 #define ST_CHAR 2 +#define ST_ZINT 3 static char ** -mkseq (start, end, incr, type) - int start, end, incr, type; +mkseq (start, end, incr, type, width) + int start, end, incr, type, width; { int n, i; char **result, *t; @@ -330,6 +333,12 @@ mkseq (start, end, incr, type) #endif if (type == ST_INT) result[i++] = itos (n); + else if (type == ST_ZINT) + { + int len; + len = asprintf (&t, "%0*d", width, n); + result[i++] = t; + } else { t = (char *)xmalloc (2); @@ -337,9 +346,9 @@ mkseq (start, end, incr, type) t[1] = '\0'; result[i++] = t; } - if (n == end) - break; n += incr; + if ((incr < 0 && n < end) || (incr > 0 && n > end)) + break; } while (1); @@ -353,17 +362,17 @@ expand_seqterm (text, tlen) size_t tlen; { char *t, *lhs, *rhs; - int i, lhs_t, rhs_t, lhs_v, rhs_v; + int i, lhs_t, rhs_t, lhs_v, rhs_v, incr, lhs_l, rhs_l, width; intmax_t tl, tr; - char **result; + char **result, *ep; t = strstr (text, BRACE_SEQ_SPECIFIER); if (t == 0) return ((char **)NULL); - i = t - text; /* index of start of BRACE_SEQ_SPECIFIER */ - lhs = substring (text, 0, i); - rhs = substring (text, i + sizeof(BRACE_SEQ_SPECIFIER) - 1, tlen); + lhs_l = t - text; /* index of start of BRACE_SEQ_SPECIFIER */ + lhs = substring (text, 0, lhs_l); + rhs = substring (text, lhs_l + sizeof(BRACE_SEQ_SPECIFIER) - 1, tlen); if (lhs[0] == 0 || rhs[0] == 0) { @@ -376,8 +385,36 @@ expand_seqterm (text, tlen) sides have to match. */ lhs_t = (legal_number (lhs, &tl)) ? ST_INT : ((ISALPHA (lhs[0]) && lhs[1] == 0) ? ST_CHAR : ST_BAD); - rhs_t = (legal_number (rhs, &tr)) ? ST_INT : - ((ISALPHA (rhs[0]) && rhs[1] == 0) ? ST_CHAR : ST_BAD); + + /* Decide on rhs and whether or not it looks like the user specified + an increment */ + ep = 0; + if (ISDIGIT (rhs[0]) || ((rhs[0] == '+' || rhs[0] == '-') && ISDIGIT (rhs[1]))) + { + rhs_t = ST_INT; + tr = strtoimax (rhs, &ep, 10); + if (ep && *ep != 0 && *ep != '.') + rhs_t = ST_BAD; /* invalid */ + } + else if (ISALPHA (rhs[0]) && (rhs[1] == 0 || rhs[1] == '.')) + { + rhs_t = ST_CHAR; + ep = rhs + 1; + } + else + { + rhs_t = ST_BAD; + ep = 0; + } + + incr = 1; + if (rhs_t != ST_BAD) + { + if (ep && *ep == '.' && ep[1] == '.' && ep[2]) + incr = strtoimax (ep + 2, &ep, 10); + if (*ep != 0) + rhs_t = ST_BAD; /* invalid incr */ + } if (lhs_t != rhs_t || lhs_t == ST_BAD || rhs_t == ST_BAD) { @@ -394,14 +431,27 @@ expand_seqterm (text, tlen) { lhs_v = (unsigned char)lhs[0]; rhs_v = (unsigned char)rhs[0]; + width = 1; } else { lhs_v = tl; /* integer truncation */ rhs_v = tr; + + /* Decide whether or not the terms need zero-padding */ + rhs_l = tlen - lhs_l - sizeof (BRACE_SEQ_SPECIFIER) + 1; + width = 0; + if (lhs_l > 1 && lhs[0] == '0') + width = lhs_l, lhs_t = ST_ZINT; + if (lhs_l > 2 && lhs[0] == '-' && lhs[1] == '0') + width = lhs_l, lhs_t = ST_ZINT; + if (rhs_l > 1 && rhs[0] == '0' && width < rhs_l) + width = rhs_l, lhs_t = ST_ZINT; + if (rhs_l > 2 && rhs[0] == '-' && rhs[1] == '0' && width < rhs_l) + width = rhs_l, lhs_t = ST_ZINT; } - result = mkseq (lhs_v, rhs_v, 1, lhs_t); + result = mkseq (lhs_v, rhs_v, incr, lhs_t, width); free (lhs); free (rhs); @@ -486,11 +536,11 @@ brace_gobbler (text, tlen, indx, satisfy) } #if defined (SHELL) - /* Pass new-style command substitutions through unchanged. */ - if (c == '$' && text[i+1] == '(') /* ) */ + /* Pass new-style command and process substitutions through unchanged. */ + if ((c == '$' || c == '<' || c == '>') && text[i+1] == '(') /* ) */ { si = i + 2; - t = extract_command_subst (text, &si); + t = extract_command_subst (text, &si, 0); i = si; free (t); i++; diff --git a/builtins.h b/builtins.h index f75e5038b..8f7b46178 100644 --- a/builtins.h +++ b/builtins.h @@ -1,22 +1,22 @@ /* builtins.h -- What a builtin looks like, and where to find them. */ -/* Copyright (C) 1987,1991 Free Software Foundation, Inc. +/* Copyright (C) 1987-2009 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public - License for more details. + 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. */ + along with Bash. If not, see . +*/ #include "config.h" @@ -35,11 +35,12 @@ #endif /* Flags describing various things about a builtin. */ -#define BUILTIN_ENABLED 0x1 /* This builtin is enabled. */ -#define BUILTIN_DELETED 0x2 /* This has been deleted with enable -d. */ -#define STATIC_BUILTIN 0x4 /* This builtin is not dynamically loaded. */ -#define SPECIAL_BUILTIN 0x8 /* This is a Posix `special' builtin. */ +#define BUILTIN_ENABLED 0x01 /* This builtin is enabled. */ +#define BUILTIN_DELETED 0x02 /* This has been deleted with enable -d. */ +#define STATIC_BUILTIN 0x04 /* This builtin is not dynamically loaded. */ +#define SPECIAL_BUILTIN 0x08 /* This is a Posix `special' builtin. */ #define ASSIGNMENT_BUILTIN 0x10 /* This builtin takes assignment statements. */ +#define POSIX_BUILTIN 0x20 /* This builtins is special in the Posix command search order. */ #define BASE_INDENT 4 diff --git a/builtins/Makefile.in b/builtins/Makefile.in index e027f7aaa..96dfaa3ca 100644 --- a/builtins/Makefile.in +++ b/builtins/Makefile.in @@ -1,20 +1,19 @@ # This Makefile for building libbuiltins.a is in -*- text -*- for Emacs. # -# Copyright (C) 1996-2005 Free Software Foundation, Inc. +# Copyright (C) 1996-2009 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 free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# 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. +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . PACKAGE = @PACKAGE_NAME@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ @@ -39,9 +38,12 @@ prefix = @prefix@ srcdir = @srcdir@ VPATH = .:@srcdir@ topdir = @top_srcdir@ + +datarootdir = @datarootdir@ + includedir = @includedir@ datadir = @datadir@ -localedir = $(datadir)/locale +localedir = @localedir@ # Support an alternate destination root directory for package building DESTDIR = @@ -63,7 +65,7 @@ LOCAL_DEFS = @LOCAL_DEFS@ LIBS = @LIBS@ LDFLAGS = @LDFLAGS@ $(LOCAL_LDFLAGS) $(CFLAGS) -LDFLAGS_FOR_BUILD = $(LDFLAGS) +LDFLAGS_FOR_BUILD = @LDFLAGS_FOR_BUILD@ $(LOCAL_LDFLAGS) $(CFLAGS_FOR_BUILD) LOCAL_LDFLAGS = @LOCAL_LDFLAGS@ #LIBS_FOR_BUILD = @LIBS_FOR_BUILD@ LIBS_FOR_BUILD = $(LIBS) @@ -74,7 +76,10 @@ RL_INCLUDEDIR = @RL_INCLUDEDIR@ INTL_LIBSRC = ${topdir}/lib/intl INTL_BUILDDIR = ${LIBBUILD}/intl +INTL_LIBDIR = ${INTL_BUILDDIR} +INTL_LIBRARY = ${INTL_BUILDDIR}/libintl.a INTL_INC = @INTL_INC@ +INTL_DEP = @INTL_DEP@ LIBINTL_H = @LIBINTL_H@ HELPDIR = @HELPDIR@ @@ -134,7 +139,7 @@ DEFSRC = $(srcdir)/alias.def $(srcdir)/bind.def $(srcdir)/break.def \ $(srcdir)/times.def $(srcdir)/trap.def $(srcdir)/type.def \ $(srcdir)/ulimit.def $(srcdir)/umask.def $(srcdir)/wait.def \ $(srcdir)/reserved.def $(srcdir)/pushd.def $(srcdir)/shopt.def \ - $(srcdir)/printf.def $(srcdir)/complete.def + $(srcdir)/printf.def $(srcdir)/complete.def $(srcdir)/mapfile.def STATIC_SOURCE = common.c evalstring.c evalfile.c getopt.c bashgetopt.c \ getopt.h @@ -142,8 +147,8 @@ STATIC_SOURCE = common.c evalstring.c evalfile.c getopt.c bashgetopt.c \ OFILES = builtins.o \ alias.o bind.o break.o builtin.o caller.o cd.o colon.o command.o \ common.o declare.o echo.o enable.o eval.o evalfile.o \ - evalstring.o exec.o \ - exit.o fc.o fg_bg.o hash.o help.o history.o jobs.o kill.o let.o \ + evalstring.o exec.o exit.o fc.o fg_bg.o hash.o help.o history.o \ + jobs.o kill.o let.o mapfile.o \ pushd.o read.o return.o set.o setattr.o shift.o source.o \ suspend.o test.o times.o trap.o type.o ulimit.o umask.o \ wait.o getopts.o shopt.o printf.o getopt.o bashgetopt.o complete.o @@ -236,6 +241,11 @@ $(OFILES): $(MKBUILTINS) ../config.h po: builtins.c xgettext -L C -o $(topdir)/po/builtins.pot --keyword='N_' builtins.c 2>/dev/null +${LIBINTL_H}: + @echo making $@ in ${INTL_BUILDDIR} + @(cd ${INTL_BUILDDIR} && \ + $(MAKE) $(MFLAGS) libintl.h) || exit 1 + # dependencies alias.o: alias.def @@ -260,6 +270,7 @@ history.o: history.def jobs.o: jobs.def kill.o: kill.def let.o: let.def +mapfile.o: mapfile.def printf.o: printf.def pushd.o: pushd.def read.o: read.def @@ -584,6 +595,12 @@ complete.o: ${topdir}/bashtypes.h ${topdir}/bashansi.h ${BASHINCDIR}/ansi_stdlib complete.o: ${topdir}/builtins.h complete.o: ${topdir}/pcomplete.h complete.o: ${srcdir}/common.h ${srcdir}/bashgetopt.h +mapfile.o: $(topdir)/command.h ../config.h $(BASHINCDIR)/memalloc.h +mapfile.o: $(topdir)/error.h $(topdir)/general.h $(topdir)/xmalloc.h +mapfile.o: $(topdir)/quit.h $(topdir)/dispose_cmd.h $(topdir)/make_cmd.h +mapfile.o: $(topdir)/subst.h $(topdir)/externs.h $(BASHINCDIR)/maxpath.h +mapfile.o: $(topdir)/shell.h $(topdir)/syntax.h $(topdir)/variables.h $(topdir)/conftypes.h +mapfile.o: $(topdir)/arrayfunc.h #bind.o: $(RL_LIBSRC)chardefs.h $(RL_LIBSRC)readline.h $(RL_LIBSRC)keymaps.h @@ -609,7 +626,8 @@ inlib.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h jobs.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h kill.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h let.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h -mkbuiltins.c: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h +mapfile.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h +mkbuiltins.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h printf.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h pushd.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h read.o: ${topdir}/bashintl.h ${LIBINTL_H} $(BASHINCDIR)/gettext.h diff --git a/builtins/alias.def b/builtins/alias.def index 572910bc4..d760cebe0 100644 --- a/builtins/alias.def +++ b/builtins/alias.def @@ -1,35 +1,43 @@ This file is alias.def, from which is created alias.c It implements the builtins "alias" and "unalias" in Bash. -Copyright (C) 1987-2004 Free Software Foundation, Inc. +Copyright (C) 1987-2009 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 free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. -Bash is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. +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. +You should have received a copy of the GNU General Public License +along with Bash. If not, see . $BUILTIN alias $FUNCTION alias_builtin $DEPENDS_ON ALIAS $PRODUCES alias.c $SHORT_DOC alias [-p] [name[=value] ... ] -`alias' with no arguments or with the -p option prints the list -of aliases in the form alias NAME=VALUE on standard output. +Define or display aliases. + +Without arguments, `alias' prints the list of aliases in the reusable +form `alias NAME=VALUE' on standard output. + Otherwise, an alias is defined for each NAME whose VALUE is given. A trailing space in VALUE causes the next word to be checked for -alias substitution when the alias is expanded. Alias returns -true unless a NAME is given for which no alias has been defined. +alias substitution when the alias is expanded. + +Options: + -p Print all defined aliases in a reusable format + +Exit Status: +alias returns true unless a NAME is supplied for which no alias has been +defined. $END #include @@ -103,7 +111,7 @@ alias_builtin (list) free (alias_list); /* XXX - Do not free the strings. */ if (list == 0) - return (EXECUTION_SUCCESS); + return (sh_chkwrite (EXECUTION_SUCCESS)); } any_failed = 0; @@ -149,8 +157,12 @@ $BUILTIN unalias $FUNCTION unalias_builtin $DEPENDS_ON ALIAS $SHORT_DOC unalias [-a] name [name ...] -Remove NAMEs from the list of defined aliases. If the -a option is given, -then remove all alias definitions. +Remove each NAME from the list of defined aliases. + +Options: + -a remove all alias definitions. + +Return success unless a NAME is not an existing alias. $END #if defined (ALIAS) diff --git a/builtins/bashgetopt.c b/builtins/bashgetopt.c index 4c8d907a9..b1b707060 100644 --- a/builtins/bashgetopt.c +++ b/builtins/bashgetopt.c @@ -2,21 +2,21 @@ /* Copyright (C) 1992-2002 Free Software Foundation, Inc. -This file is part of GNU Bash, the Bourne Again SHell. + 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. -Bash is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. + 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #include diff --git a/builtins/bashgetopt.h b/builtins/bashgetopt.h index 835797c15..f2aea2668 100644 --- a/builtins/bashgetopt.h +++ b/builtins/bashgetopt.h @@ -4,19 +4,19 @@ 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. */ + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ /* See getopt.h for the explanation of these variables. */ diff --git a/builtins/bind.def b/builtins/bind.def index 4711031e1..fcc3bbb9a 100644 --- a/builtins/bind.def +++ b/builtins/bind.def @@ -1,23 +1,22 @@ This file is bind.def, from which is created bind.c. It implements the builtin "bind" in Bash. -Copyright (C) 1987-2003 Free Software Foundation, Inc. +Copyright (C) 1987-2009 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 free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. -Bash is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. +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. +You should have received a copy of the GNU General Public License +along with Bash. If not, see . $PRODUCES bind.c @@ -27,12 +26,15 @@ $BUILTIN bind $DEPENDS_ON READLINE $FUNCTION bind_builtin $SHORT_DOC bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-x keyseq:shell-command] [keyseq:readline-function or readline-command] -Bind a key sequence to a Readline function or a macro, or set -a Readline variable. The non-option argument syntax is equivalent -to that found in ~/.inputrc, but must be passed as a single argument: -bind '"\C-x\C-r": re-read-init-file'. -bind accepts the following options: - -m keymap Use `keymap' as the keymap for the duration of this +Set Readline key bindings and variables. + +Bind a key sequence to a Readline function or a macro, or set a +Readline variable. The non-option argument syntax is equivalent to +that found in ~/.inputrc, but must be passed as a single argument: +e.g., bind '"\C-x\C-r": re-read-init-file'. + +Options: + -m keymap Use KEYMAP as the keymap for the duration of this command. Acceptable keymap names are emacs, emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move, vi-command, and vi-insert. @@ -40,18 +42,21 @@ bind accepts the following options: -P List function names and bindings. -p List functions and bindings in a form that can be reused as input. - -r keyseq Remove the binding for KEYSEQ. - -x keyseq:shell-command Cause SHELL-COMMAND to be executed when - KEYSEQ is entered. - -f filename Read key bindings from FILENAME. - -q function-name Query about which keys invoke the named function. - -u function-name Unbind all keys which are bound to the named function. - -V List variable names and values - -v List variable names and values in a form that can - be reused as input. -S List key sequences that invoke macros and their values -s List key sequences that invoke macros and their values in a form that can be reused as input. + -V List variable names and values + -v List variable names and values in a form that can + be reused as input. + -q function-name Query about which keys invoke the named function. + -u function-name Unbind all keys which are bound to the named function. + -r keyseq Remove the binding for KEYSEQ. + -f filename Read key bindings from FILENAME. + -x keyseq:shell-command Cause SHELL-COMMAND to be executed when + KEYSEQ is entered. + +Exit Status: +bind returns 0 unless an unrecognized option is given or an error occurs. $END #if defined (READLINE) @@ -110,14 +115,21 @@ bind_builtin (list) char *initfile, *map_name, *fun_name, *unbind_name, *remove_seq, *cmd_seq; if (no_line_editing) - return (EXECUTION_FAILURE); + { +#if 0 + builtin_error (_("line editing not enabled")); + return (EXECUTION_FAILURE); +#else + builtin_warning (_("line editing not enabled")); +#endif + } kmap = saved_keymap = (Keymap) NULL; flags = 0; initfile = map_name = fun_name = unbind_name = remove_seq = (char *)NULL; return_code = EXECUTION_SUCCESS; - if (!bash_readline_initialized) + if (bash_readline_initialized == 0) initialize_readline (); begin_unwind_frame ("bind_builtin"); @@ -266,7 +278,7 @@ bind_builtin (list) run_unwind_frame ("bind_builtin"); - return (return_code); + return (sh_chkwrite (return_code)); } static int @@ -310,7 +322,7 @@ unbind_command (name) function = rl_named_function (name); if (function == 0) { - builtin_error ("`%s': unknown function name", name); + builtin_error (_("`%s': unknown function name"), name); return EXECUTION_FAILURE; } diff --git a/builtins/break.def b/builtins/break.def index e61d5027e..232ac1a71 100644 --- a/builtins/break.def +++ b/builtins/break.def @@ -1,31 +1,35 @@ This file is break.def, from which is created break.c. It implements the builtins "break" and "continue" in Bash. -Copyright (C) 1987-2003 Free Software Foundation, Inc. +Copyright (C) 1987-2009 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 free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. -Bash is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. +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. +You should have received a copy of the GNU General Public License +along with Bash. If not, see . $PRODUCES break.c $BUILTIN break $FUNCTION break_builtin $SHORT_DOC break [n] -Exit from within a FOR, WHILE or UNTIL loop. If N is specified, -break N levels. +Exit for, while, or until loops. + +Exit a FOR, WHILE or UNTIL loop. If N is specified, break N enclosing +loops. + +Exit Status: +The exit status is 0 unless N is not greater than or equal to 1. $END #include @@ -66,11 +70,11 @@ break_builtin (list) if (check_loop_level () == 0) return (EXECUTION_SUCCESS); - newbreak = get_numeric_arg (list, 1); + (void)get_numeric_arg (list, 1, &newbreak); if (newbreak <= 0) { - sh_erange (list->word->word, "loop count"); + sh_erange (list->word->word, _("loop count")); breaking = loop_level; return (EXECUTION_FAILURE); } @@ -86,8 +90,13 @@ break_builtin (list) $BUILTIN continue $FUNCTION continue_builtin $SHORT_DOC continue [n] -Resume the next iteration of the enclosing FOR, WHILE or UNTIL loop. -If N is specified, resume at the N-th enclosing loop. +Resume for, while, or until loops. + +Resumes the next iteration of the enclosing FOR, WHILE or UNTIL loop. +If N is specified, resumes the Nth enclosing loop. + +Exit Status: +The exit status is 0 unless N is not greater than or equal to 1. $END /* Set up to continue x levels, where x defaults to 1, but can be specified @@ -101,11 +110,11 @@ continue_builtin (list) if (check_loop_level () == 0) return (EXECUTION_SUCCESS); - newcont = get_numeric_arg (list, 1); + (void)get_numeric_arg (list, 1, &newcont); if (newcont <= 0) { - sh_erange (list->word->word, "loop count"); + sh_erange (list->word->word, _("loop count")); breaking = loop_level; return (EXECUTION_FAILURE); } diff --git a/builtins/builtin.def b/builtins/builtin.def index dfa58bc97..3e765e410 100644 --- a/builtins/builtin.def +++ b/builtins/builtin.def @@ -1,32 +1,37 @@ This file is builtin.def, from which is created builtin.c. It implements the builtin "builtin" in Bash. -Copyright (C) 1987-2002 Free Software Foundation, Inc. +Copyright (C) 1987-2009 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 free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. -Bash is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. +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. +You should have received a copy of the GNU General Public License +along with Bash. If not, see . $PRODUCES builtin.c $BUILTIN builtin $FUNCTION builtin_builtin $SHORT_DOC builtin [shell-builtin [arg ...]] -Run a shell builtin. This is useful when you wish to rename a -shell builtin to be a function, but need the functionality of the -builtin within the function itself. +Execute shell builtins. + +Execute SHELL-BUILTIN with arguments ARGs without performing command +lookup. This is useful when you wish to reimplement a shell builtin +as a shell function, but need to execute the builtin within the function. + +Exit Status: +Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is +not a shell builtin.. $END #include diff --git a/builtins/caller.def b/builtins/caller.def index f5f2c0836..7ddbdad49 100644 --- a/builtins/caller.def +++ b/builtins/caller.def @@ -1,39 +1,41 @@ This file is caller.def, from which is created caller.c. It implements the builtin "caller" in Bash. -Copyright (C) 2002-2003 Rocky Bernstein for Free Software Foundation, Inc. +Copyright (C) 2002-2008 Rocky Bernstein for 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 free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. -Bash is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. +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. +You should have received a copy of the GNU General Public License +along with Bash. If not, see . $PRODUCES caller.c $BUILTIN caller $FUNCTION caller_builtin $DEPENDS_ON DEBUGGER -$SHORT_DOC caller [EXPR] +$SHORT_DOC caller [expr] +Return the context of the current subroutine call. -Returns the context of the current subroutine call. - -Without EXPR, returns "$line $filename". With EXPR, -returns "$line $subroutine $filename"; this extra information -can be used to provide a stack trace. +Without EXPR, returns "$line $filename". With EXPR, returns +"$line $subroutine $filename"; this extra information can be used to +provide a stack trace. The value of EXPR indicates how many call frames to go back before the current one; the top frame is frame 0. + +Exit Status: +Returns 0 unless the shell is not executing a shell function or EXPR +is invalid. $END #include @@ -128,14 +130,14 @@ caller_builtin (list) #ifdef LOADABLE_BUILTIN static char *caller_doc[] = { - N_("Returns the context of the current subroutine call."), - N_(" "), - N_("Without EXPR, returns returns \"$line $filename\". With EXPR,"), - N_("returns \"$line $subroutine $filename\"; this extra information"), - N_("can be used used to provide a stack trace."), - N_(" "), - N_("The value of EXPR indicates how many call frames to go back before the"), - N_("current one; the top frame is frame 0."), +N_("Returns the context of the current subroutine call.\n\ + \n\ + Without EXPR, returns "$line $filename". With EXPR, returns\n\ + "$line $subroutine $filename"; this extra information can be used to\n\ + provide a stack trace.\n\ + \n\ + The value of EXPR indicates how many call frames to go back before the\n\ + current one; the top frame is frame 0."), (char *)NULL }; diff --git a/builtins/cd.def b/builtins/cd.def index 54e328e4f..d53b25870 100644 --- a/builtins/cd.def +++ b/builtins/cd.def @@ -1,23 +1,22 @@ This file is cd.def, from which is created cd.c. It implements the builtins "cd" and "pwd" in Bash. -Copyright (C) 1987-2005 Free Software Foundation, Inc. +Copyright (C) 1987-2009 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 free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. -Bash is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. +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. +You should have received a copy of the GNU General Public License +along with Bash. If not, see . $PRODUCES cd.c #include @@ -56,15 +55,13 @@ extern int errno; extern int posixly_correct; extern int array_needs_making; -extern char *bash_getcwd_errstr; +extern const char * const bash_getcwd_errstr; static int bindpwd __P((int)); static void setpwd __P((char *)); static char *resetpwd __P((char *)); static int change_to_directory __P((char *, int)); -static char *cdspell __P((char *)); - /* Change this to 1 to get cd spelling correction by default. */ int cdspelling = 0; @@ -73,17 +70,29 @@ int cdable_vars; $BUILTIN cd $FUNCTION cd_builtin $SHORT_DOC cd [-L|-P] [dir] -Change the current directory to DIR. The variable $HOME is the -default DIR. The variable CDPATH defines the search path for -the directory containing DIR. Alternative directory names in CDPATH -are separated by a colon (:). A null directory name is the same as -the current directory, i.e. `.'. If DIR begins with a slash (/), -then CDPATH is not used. If the directory is not found, and the -shell option `cdable_vars' is set, then try the word as a variable -name. If that variable has a value, then cd to the value of that -variable. The -P option says to use the physical directory structure -instead of following symbolic links; the -L option forces symbolic links -to be followed. +Change the shell working directory. + +Change the current directory to DIR. The default DIR is the value of the +HOME shell variable. + +The variable CDPATH defines the search path for the directory containing +DIR. Alternative directory names in CDPATH are separated by a colon (:). +A null directory name is the same as the current directory. If DIR begins +with a slash (/), then CDPATH is not used. + +If the directory is not found, and the shell option `cdable_vars' is set, +the word is assumed to be a variable name. If that variable has a value, +its value is used for DIR. + +Options: + -L force symbolic links to be followed + -P use the physical directory structure without following symbolic + links + +The default is to follow symbolic links, as if `-L' were specified. + +Exit Status: +Returns 0 if the directory is changed; non-zero otherwise. $END /* Just set $PWD, don't change OLDPWD. Used by `pwd -P' in posix mode. */ @@ -108,9 +117,11 @@ bindpwd (no_symlinks) int no_symlinks; { char *dirname, *pwdvar; - int old_anm; + int old_anm, r; SHELL_VAR *tvar; + r = sh_chkwrite (EXECUTION_SUCCESS); + #define tcwd the_current_working_directory dirname = tcwd ? (no_symlinks ? sh_physpath (tcwd, 0) : tcwd) : get_working_directory ("cd"); @@ -131,7 +142,7 @@ bindpwd (no_symlinks) if (dirname && dirname != the_current_working_directory) free (dirname); - return (EXECUTION_SUCCESS); + return (r); } /* Call get_working_directory to reset the value of @@ -224,7 +235,7 @@ cd_builtin (list) } else if (absolute_pathname (list->word->word)) dirname = list->word->word; - else if (cdpath = get_string_value ("CDPATH")) + else if (privileged_mode == 0 && (cdpath = get_string_value ("CDPATH"))) { dirname = list->word->word; @@ -300,7 +311,7 @@ cd_builtin (list) typo. This is similar to the UNIX 8th and 9th Edition shells. */ if (lflag & LCD_DOSPELL) { - temp = cdspell (dirname); + temp = dirspell (dirname); if (temp && change_to_directory (temp, no_symlinks)) { printf ("%s\n", temp); @@ -317,9 +328,18 @@ cd_builtin (list) $BUILTIN pwd $FUNCTION pwd_builtin $SHORT_DOC pwd [-LP] -Print the current working directory. With the -P option, pwd prints -the physical directory, without any symbolic links; the -L option -makes pwd follow symbolic links. +Print the name of the current working directory. + +Options: + -L print the value of $PWD if it names the current working + directory + -P print the physical directory, without any symbolic links + +By default, `pwd' behaves as if `-L' were specified. + +Exit Status: +Returns 0 unless an invalid option is given or the current directory +cannot be read. $END /* Non-zero means that pwd always prints the physical directory, without @@ -375,15 +395,7 @@ pwd_builtin (list) setpwd (directory); if (directory != the_current_working_directory) free (directory); - fflush (stdout); - if (ferror (stdout)) - { - sh_wrerror (); - clearerr (stdout); - return (EXECUTION_FAILURE); - } - - return (EXECUTION_SUCCESS); + return (sh_chkwrite (EXECUTION_SUCCESS)); } else return (EXECUTION_FAILURE); @@ -499,28 +511,3 @@ change_to_directory (newdir, nolinks) free (tdir); return r; } - -/* Code for cd spelling correction. Original patch submitted by - Neil Russel (caret@c-side.com). */ - -static char * -cdspell (dirname) - char *dirname; -{ - int n; - char *guess; - - n = (strlen (dirname) * 3 + 1) / 2 + 1; - guess = (char *)xmalloc (n); - - switch (spname (dirname, guess)) - { - case -1: - default: - free (guess); - return (char *)NULL; - case 0: - case 1: - return guess; - } -} diff --git a/builtins/colon.def b/builtins/colon.def index a7cdc1250..4b78b30c1 100644 --- a/builtins/colon.def +++ b/builtins/colon.def @@ -1,23 +1,22 @@ This file is colon.def, from which is created colon.c. It implements the builtin ":" in Bash. -Copyright (C) 1987-2002 Free Software Foundation, Inc. +Copyright (C) 1987-2009 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 free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. -Bash is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. +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. +You should have received a copy of the GNU General Public License +along with Bash. If not, see . $PRODUCES colon.c @@ -25,19 +24,30 @@ $BUILTIN : $DOCNAME colon $FUNCTION colon_builtin $SHORT_DOC : -No effect; the command does nothing. A zero exit code is returned. +Null command. + +No effect; the command does nothing. + +Exit Status: +Always succeeds. $END $BUILTIN true $FUNCTION colon_builtin $SHORT_DOC true Return a successful result. + +Exit Status: +Always succeeds. $END $BUILTIN false $FUNCTION false_builtin $SHORT_DOC false Return an unsuccessful result. + +Exit Status: +Always fails. $END /* Return a successful result. */ diff --git a/builtins/command.def b/builtins/command.def index dbc1e9a14..77f91268b 100644 --- a/builtins/command.def +++ b/builtins/command.def @@ -1,35 +1,42 @@ This file is command.def, from which is created command.c. It implements the builtin "command" in Bash. -Copyright (C) 1987-2004 Free Software Foundation, Inc. +Copyright (C) 1987-2009 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 free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. -Bash is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. +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. +You should have received a copy of the GNU General Public License +along with Bash. If not, see . $PRODUCES command.c $BUILTIN command $FUNCTION command_builtin $SHORT_DOC command [-pVv] command [arg ...] -Runs COMMAND with ARGS ignoring shell functions. If you have a shell -function called `ls', and you wish to call the command `ls', you can -say "command ls". If the -p option is given, a default value is used -for PATH that is guaranteed to find all of the standard utilities. If -the -V or -v option is given, a string is printed describing COMMAND. -The -V option produces a more verbose description. +Execute a simple command or display information about commands. + +Runs COMMAND with ARGS suppressing shell function lookup, or display +information about the specified COMMANDs. Can be used to invoke commands +on disk when a function with the same name exists. + +Options: + -p use a default value for PATH that is guaranteed to find all of + the standard utilities + -v print a description of COMMAND similar to the `type' builtin + -V print a more verbose description of each COMMAND + +Exit Status: +Returns exit status of COMMAND, or failure if COMMAND is not found. $END #include diff --git a/builtins/common.c b/builtins/common.c index 89c6a870a..f03a655df 100644 --- a/builtins/common.c +++ b/builtins/common.c @@ -1,20 +1,22 @@ -/* Copyright (C) 1987-2007 Free Software Foundation, Inc. +/* common.c - utility functions for all builtins */ + +/* Copyright (C) 1987-2009 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. - 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #include @@ -42,6 +44,8 @@ #include "../bashansi.h" #include "../bashintl.h" +#define NEED_FPURGE_DECL + #include "../shell.h" #include "maxpath.h" #include "../flags.h" @@ -69,7 +73,7 @@ extern int last_command_exit_value; extern int running_trap; extern int posixly_correct; extern char *this_command_name, *shell_name; -extern char *bash_getcwd_errstr; +extern const char * const bash_getcwd_errstr; /* Used by some builtins and the mainline code. */ sh_builtin_func_t *last_shell_builtin = (sh_builtin_func_t *)NULL; @@ -84,6 +88,22 @@ sh_builtin_func_t *this_shell_builtin = (sh_builtin_func_t *)NULL; /* This is a lot like report_error (), but it is for shell builtins instead of shell control structures, and it won't ever exit the shell. */ + +static void +builtin_error_prolog () +{ + char *name; + + name = get_name_for_error (); + fprintf (stderr, "%s: ", name); + + if (interactive_shell == 0) + fprintf (stderr, _("line %d: "), executing_line_number ()); + + if (this_command_name && *this_command_name) + fprintf (stderr, "%s: ", this_command_name); +} + void #if defined (PREFER_STDARG) builtin_error (const char *format, ...) @@ -94,16 +114,29 @@ builtin_error (format, va_alist) #endif { va_list args; - char *name; - name = get_name_for_error (); - fprintf (stderr, "%s: ", name); + builtin_error_prolog (); - if (interactive_shell == 0) - fprintf (stderr, "line %d: ", executing_line_number ()); + SH_VA_START (args, format); - if (this_command_name && *this_command_name) - fprintf (stderr, "%s: ", this_command_name); + vfprintf (stderr, format, args); + va_end (args); + fprintf (stderr, "\n"); +} + +void +#if defined (PREFER_STDARG) +builtin_warning (const char *format, ...) +#else +builtin_warning (format, va_alist) + const char *format; + va_dcl +#endif +{ + va_list args; + + builtin_error_prolog (); + fprintf (stderr, _("warning: ")); SH_VA_START (args, format); @@ -117,7 +150,7 @@ void builtin_usage () { if (this_command_name && *this_command_name) - fprintf (stderr, "%s: usage: ", this_command_name); + fprintf (stderr, _("%s: usage: "), this_command_name); fprintf (stderr, "%s\n", current_builtin->short_doc); fflush (stderr); } @@ -199,7 +232,15 @@ void sh_invalidnum (s) char *s; { - builtin_error (_("%s: invalid number"), s); + char *msg; + + if (*s == '0' && isdigit (s[1])) + msg = _("invalid octal number"); + else if (*s == '0' && s[1] == 'x') + msg = _("invalid hex number"); + else + msg = _("invalid number"); + builtin_error ("%s: %s", s, msg); } void @@ -274,9 +315,27 @@ sh_notbuiltin (s) void sh_wrerror () { +#if defined (DONT_REPORT_BROKEN_PIPE_WRITE_ERRORS) && defined (EPIPE) + if (errno != EPIPE) +#endif /* DONT_REPORT_BROKEN_PIPE_WRITE_ERRORS && EPIPE */ builtin_error (_("write error: %s"), strerror (errno)); } +int +sh_chkwrite (s) + int s; +{ + fflush (stdout); + if (ferror (stdout)) + { + sh_wrerror (); + fpurge (stdout); + clearerr (stdout); + return (EXECUTION_FAILURE); + } + return (s); +} + /* **************************************************************** */ /* */ /* Shell positional parameter manipulation */ @@ -372,30 +431,35 @@ set_dollar_vars_changed () /* Read a numeric arg for this_command_name, the name of the shell builtin that wants it. LIST is the word list that the arg is to come from. Accept only the numeric argument; report an error if other arguments - follow. If FATAL is true, call throw_to_top_level, which exits the - shell; if not, call jump_to_top_level (DISCARD), which aborts the - current command. */ -intmax_t -get_numeric_arg (list, fatal) + follow. If FATAL is 1, call throw_to_top_level, which exits the + shell; if it's 2, call jump_to_top_level (DISCARD), which aborts the + current command; if FATAL is 0, return an indication of an invalid + number by setting *NUMOK == 0 and return -1. */ +int +get_numeric_arg (list, fatal, count) WORD_LIST *list; int fatal; + intmax_t *count; { - intmax_t count = 1; + char *arg; + + if (count) + *count = 1; if (list && list->word && ISOPTION (list->word->word, '-')) list = list->next; if (list) { - register char *arg; - arg = list->word->word; - if (arg == 0 || (legal_number (arg, &count) == 0)) + if (arg == 0 || (legal_number (arg, count) == 0)) { - sh_neednumarg (list->word->word); - if (fatal) + sh_neednumarg (list->word->word ? list->word->word : "`'"); + if (fatal == 0) + return 0; + else if (fatal == 1) /* fatal == 1; abort */ throw_to_top_level (); - else + else /* fatal == 2; discard current command */ { top_level_cleanup (); jump_to_top_level (DISCARD); @@ -404,7 +468,7 @@ get_numeric_arg (list, fatal) no_args (list->next); } - return (count); + return (1); } /* Get an eight-bit status value from LIST */ @@ -647,7 +711,7 @@ display_signal_list (list, forcecols) { printf ("%2d) %s", i, name); - if (++column < 4) + if (++column < 5) printf ("\t"); else { diff --git a/builtins/common.h b/builtins/common.h index 1233d667a..a3835ca22 100644 --- a/builtins/common.h +++ b/builtins/common.h @@ -4,19 +4,19 @@ 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. + 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #if !defined (__COMMON_H) # define __COMMON_H @@ -31,6 +31,8 @@ #define SEVAL_NOHIST 0x004 #define SEVAL_NOFREE 0x008 #define SEVAL_RESETLINE 0x010 +#define SEVAL_PARSEONLY 0x020 +#define SEVAL_NOLONGJMP 0x040 /* Flags for describe_command, shared between type.def and command.def */ #define CDESC_ALL 0x001 /* type -a */ @@ -57,6 +59,7 @@ /* Functions from common.c */ extern void builtin_error __P((const char *, ...)) __attribute__((__format__ (printf, 1, 2))); +extern void builtin_warning __P((const char *, ...)) __attribute__((__format__ (printf, 1, 2))); extern void builtin_usage __P((void)); extern void no_args __P((WORD_LIST *)); extern int no_options __P((WORD_LIST *)); @@ -78,6 +81,7 @@ 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 int sh_chkwrite __P((int)); extern char **make_builtin_argv __P((WORD_LIST *, int *)); extern void remember_args __P((WORD_LIST *, int)); @@ -86,7 +90,7 @@ extern int dollar_vars_changed __P((void)); extern void set_dollar_vars_unchanged __P((void)); extern void set_dollar_vars_changed __P((void)); -extern intmax_t get_numeric_arg __P((WORD_LIST *, int)); +extern int get_numeric_arg __P((WORD_LIST *, int, intmax_t *)); extern int get_exitstat __P((WORD_LIST *)); extern int read_octal __P((char *)); @@ -141,6 +145,7 @@ extern int describe_command __P((char *, int)); /* Functions from setattr.def */ extern int set_or_show_attributes __P((WORD_LIST *, int, int)); +extern int show_all_var_attributes __P((int, int)); extern int show_var_attributes __P((SHELL_VAR *, int, int)); extern int show_name_attributes __P((char *, int)); extern void set_var_attribute __P((char *, int, int)); @@ -154,6 +159,7 @@ extern WORD_LIST *get_directory_stack __P((int)); /* Functions from evalstring.c */ extern int parse_and_execute __P((char *, const char *, int)); extern void parse_and_execute_cleanup __P((void)); +extern int parse_string __P((char *, const char *, int, char **)); /* Functions from evalfile.c */ extern int maybe_execute_file __P((const char *, int)); diff --git a/builtins/complete.def b/builtins/complete.def index a859b88f0..d7e9aee36 100644 --- a/builtins/complete.def +++ b/builtins/complete.def @@ -1,35 +1,45 @@ This file is complete.def, from which is created complete.c. -It implements the builtins "complete" and "compgen" in Bash. +It implements the builtins "complete", "compgen", and "compopt" in Bash. -Copyright (C) 1999-2003 Free Software Foundation, Inc. +Copyright (C) 1999-2009 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 free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. -Bash is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. +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. +You should have received a copy of the GNU General Public License +along with Bash. If not, see . $PRODUCES complete.c $BUILTIN complete $DEPENDS_ON PROGRAMMABLE_COMPLETION $FUNCTION complete_builtin -$SHORT_DOC complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W wordlist] [-P prefix] [-S suffix] [-X filterpat] [-F function] [-C command] [name ...] -For each NAME, specify how arguments are to be completed. -If the -p option is supplied, or if no options are supplied, existing -completion specifications are printed in a way that allows them to be -reused as input. The -r option removes a completion specification for -each NAME, or, if no NAMEs are supplied, all completion specifications. +$SHORT_DOC complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [name ...] +Specify how arguments are to be completed by Readline. + +For each NAME, specify how arguments are to be completed. If no options +are supplied, existing completion specifications are printed in a way that +allows them to be reused as input. + +Options: + -p print existing completion specifications in a reusable format + -r remove a completion specification for each NAME, or, if no + NAMEs are supplied, all completion specifications + +When completion is attempted, the actions are applied in the order the +uppercase-letter options are listed above. + +Exit Status: +Returns success unless an invalid option is supplied or an error occurs. $END #include @@ -57,22 +67,31 @@ $END #define STRDUP(x) ((x) ? savestring (x) : (char *)NULL) +/* Structure containing all the non-action (binary) options; filled in by + build_actions(). */ +struct _optflags { + int pflag; + int rflag; + int Eflag; +}; + static int find_compact __P((char *)); static int find_compopt __P((char *)); -static int build_actions __P((WORD_LIST *, int *, int *, unsigned long *, unsigned long *)); +static int build_actions __P((WORD_LIST *, struct _optflags *, unsigned long *, unsigned long *)); static int remove_cmd_completions __P((WORD_LIST *)); static int print_one_completion __P((char *, COMPSPEC *)); static int print_compitem __P((BUCKET_CONTENTS *)); +static void print_compopts __P((const char *, COMPSPEC *, int)); static void print_all_completions __P((void)); static int print_cmd_completions __P((WORD_LIST *)); static char *Garg, *Warg, *Parg, *Sarg, *Xarg, *Farg, *Carg; -static struct _compacts { - char *actname; +static const struct _compacts { + const char * const actname; int actflag; int actopt; } compacts[] = { @@ -104,8 +123,8 @@ static struct _compacts { }; /* This should be a STRING_INT_ALIST */ -static struct _compopt { - char *optname; +const static struct _compopt { + const char * const optname; int optflag; } compopts[] = { { "bashdefault", COPT_BASHDEFAULT }, @@ -156,9 +175,9 @@ find_compopt (name) */ static int -build_actions (list, pp, rp, actp, optp) +build_actions (list, flagp, actp, optp) WORD_LIST *list; - int *pp, *rp; + struct _optflags *flagp; unsigned long *actp, *optp; { int opt, ind, opt_given; @@ -168,15 +187,15 @@ build_actions (list, pp, rp, actp, optp) opt_given = 0; reset_internal_getopt (); - while ((opt = internal_getopt (list, "abcdefgjko:prsuvA:G:W:P:S:X:F:C:")) != -1) + while ((opt = internal_getopt (list, "abcdefgjko:prsuvA:G:W:P:S:X:F:C:E")) != -1) { opt_given = 1; switch (opt) { case 'r': - if (rp) + if (flagp) { - *rp = 1; + flagp->rflag = 1; break; } else @@ -187,9 +206,9 @@ build_actions (list, pp, rp, actp, optp) } case 'p': - if (pp) + if (flagp) { - *pp = 1; + flagp->pflag = 1; break; } else @@ -256,6 +275,18 @@ build_actions (list, pp, rp, actp, optp) case 'C': Carg = list_optarg; break; + case 'E': + if (flagp) + { + flagp->Eflag = 1; + break; + } + else + { + sh_invalidopt ("-E"); + builtin_usage (); + return (EX_USAGE); + } case 'F': Farg = list_optarg; break; @@ -291,9 +322,11 @@ int complete_builtin (list) WORD_LIST *list; { - int opt_given, pflag, rflag, rval; + int opt_given, rval; unsigned long acts, copts; COMPSPEC *cs; + struct _optflags oflags; + WORD_LIST *l, *wl; if (list == 0) { @@ -301,24 +334,33 @@ complete_builtin (list) return (EXECUTION_SUCCESS); } - opt_given = pflag = rflag = 0; + opt_given = oflags.pflag = oflags.rflag = oflags.Eflag = 0; + acts = copts = (unsigned long)0L; Garg = Warg = Parg = Sarg = Xarg = Farg = Carg = (char *)NULL; cs = (COMPSPEC *)NULL; /* Build the actions from the arguments. Also sets the [A-Z]arg variables as a side effect if they are supplied as options. */ - rval = build_actions (list, &pflag, &rflag, &acts, &copts); + rval = build_actions (list, &oflags, &acts, &copts); if (rval == EX_USAGE) return (rval); opt_given = rval != EXECUTION_FAILURE; list = loptend; + wl = oflags.Eflag ? make_word_list (make_bare_word ("_EmptycmD_"), (WORD_LIST *)NULL) : 0; + /* -p overrides everything else */ - if (pflag || (list == 0 && opt_given == 0)) + if (oflags.pflag || (list == 0 && opt_given == 0)) { - if (list == 0) + if (wl) + { + rval = print_cmd_completions (wl); + dispose_words (wl); + return rval; + } + else if (list == 0) { print_all_completions (); return (EXECUTION_SUCCESS); @@ -327,9 +369,15 @@ complete_builtin (list) } /* next, -r overrides everything else. */ - if (rflag) + if (oflags.rflag) { - if (list == 0) + if (wl) + { + rval = remove_cmd_completions (wl); + dispose_words (wl); + return rval; + } + else if (list == 0) { progcomp_flush (); return (EXECUTION_SUCCESS); @@ -337,7 +385,7 @@ complete_builtin (list) return (remove_cmd_completions (list)); } - if (list == 0 && opt_given) + if (wl == 0 && list == 0 && opt_given) { builtin_usage (); return (EX_USAGE); @@ -357,13 +405,14 @@ complete_builtin (list) cs->command = STRDUP (Carg); cs->filterpat = STRDUP (Xarg); - for (rval = EXECUTION_SUCCESS ; list; list = list->next) + for (rval = EXECUTION_SUCCESS, l = wl ? wl : list ; l; l = l->next) { /* Add CS as the compspec for the specified commands. */ - if (progcomp_insert (list->word->word, cs) == 0) + if (progcomp_insert (l->word->word, cs) == 0) rval = EXECUTION_FAILURE; } + dispose_words (wl); return (rval); } @@ -419,6 +468,14 @@ remove_cmd_completions (list) printf ("-o %s ", f); \ } while (0) +#define XPRINTCOMPOPT(a, f) \ + do { \ + if (copts & a) \ + printf ("-o %s ", f); \ + else \ + printf ("+o %s ", f); \ + } while (0) + static int print_one_completion (cmd, cs) char *cmd; @@ -478,15 +535,49 @@ print_one_completion (cmd, cs) SQPRINTARG (cs->suffix, "-S"); SQPRINTARG (cs->filterpat, "-X"); + SQPRINTARG (cs->command, "-C"); + /* simple arguments that don't require quoting */ PRINTARG (cs->funcname, "-F"); - PRINTARG (cs->command, "-C"); printf ("%s\n", cmd); return (0); } +static void +print_compopts (cmd, cs, full) + const char *cmd; + COMPSPEC *cs; + int full; +{ + int copts; + + printf ("compopt "); + copts = cs->options; + + if (full) + { + XPRINTCOMPOPT (COPT_BASHDEFAULT, "bashdefault"); + XPRINTCOMPOPT (COPT_DEFAULT, "default"); + XPRINTCOMPOPT (COPT_DIRNAMES, "dirnames"); + XPRINTCOMPOPT (COPT_FILENAMES, "filenames"); + XPRINTCOMPOPT (COPT_NOSPACE, "nospace"); + XPRINTCOMPOPT (COPT_PLUSDIRS, "plusdirs"); + } + else + { + PRINTCOMPOPT (COPT_BASHDEFAULT, "bashdefault"); + PRINTCOMPOPT (COPT_DEFAULT, "default"); + PRINTCOMPOPT (COPT_DIRNAMES, "dirnames"); + PRINTCOMPOPT (COPT_FILENAMES, "filenames"); + PRINTCOMPOPT (COPT_NOSPACE, "nospace"); + PRINTCOMPOPT (COPT_PLUSDIRS, "plusdirs"); + } + + printf ("%s\n", cmd); +} + static int print_compitem (item) BUCKET_CONTENTS *item; @@ -525,17 +616,22 @@ print_cmd_completions (list) ret = EXECUTION_FAILURE; } } - return (ret); + + return (sh_chkwrite (ret)); } $BUILTIN compgen $DEPENDS_ON PROGRAMMABLE_COMPLETION $FUNCTION compgen_builtin -$SHORT_DOC compgen [-abcdefgjksuv] [-o option] [-A action] [-G globpat] [-W wordlist] [-P prefix] [-S suffix] [-X filterpat] [-F function] [-C command] [word] -Display the possible completions depending on the options. Intended -to be used from within a shell function generating possible completions. -If the optional WORD argument is supplied, matches against WORD are -generated. +$SHORT_DOC compgen [-abcdefgjksuv] [-o option] [-A action] [-G globpat] [-W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word] +Display possible completions depending on the options. + +Intended to be used from within a shell function generating possible +completions. If the optional WORD argument is supplied, matches against +WORD are generated. + +Exit Status: +Returns success unless an invalid option is supplied or an error occurs. $END int @@ -557,7 +653,7 @@ compgen_builtin (list) /* Build the actions from the arguments. Also sets the [A-Z]arg variables as a side effect if they are supplied as options. */ - rval = build_actions (list, (int *)NULL, (int *)NULL, &acts, &copts); + rval = build_actions (list, (struct _optflags *)NULL, &acts, &copts); if (rval == EX_USAGE) return (rval); if (rval == EXECUTION_FAILURE) @@ -620,3 +716,114 @@ compgen_builtin (list) compspec_dispose (cs); return (rval); } + +$BUILTIN compopt +$DEPENDS_ON PROGRAMMABLE_COMPLETION +$FUNCTION compopt_builtin +$SHORT_DOC compopt [-o|+o option] [name ...] +Modify or display completion options. + +Modify the completion options for each NAME, or, if no NAMEs are supplied, +the completion currently begin executed. If no OPTIONs are givenm, print +the completion options for each NAME or the current completion specification. + +Options: + -o option Set completion option OPTION for each NAME + +Using `+o' instead of `-o' turns off the specified option. + +Arguments: + +Each NAME refers to a command for which a completion specification must +have previously been defined using the `complete' builtin. If no NAMEs +are supplied, compopt must be called by a function currently generating +completions, and the options for that currently-executing completion +generator are modified. + +Exit Status: +Returns success unless an invalid option is supplied or NAME does not +have a completion specification defined. +$END + +int +compopt_builtin (list) + WORD_LIST *list; +{ + int opts_on, opts_off, *opts, opt, oind, ret, Eflag; + WORD_LIST *l; + COMPSPEC *cs; + + opts_on = opts_off = 0; + ret = EXECUTION_SUCCESS; + + reset_internal_getopt (); + while ((opt = internal_getopt (list, "+o:")) != EOF) + { + opts = (list_opttype == '-') ? &opts_on : &opts_off; + + switch (opt) + { + case 'o': + oind = find_compopt (list_optarg); + if (oind < 0) + { + sh_invalidoptname (list_optarg); + return (EX_USAGE); + } + *opts |= compopts[oind].optflag; + break; + default: + builtin_usage (); + return (EX_USAGE); + } + } + list = loptend; + + if (list == 0) + { + if (RL_ISSTATE (RL_STATE_COMPLETING) == 0 || pcomp_curcs == 0) + { + builtin_error (_("not currently executing completion function")); + return (EXECUTION_FAILURE); + } + cs = pcomp_curcs; + + if (opts_on == 0 && opts_off == 0) + { + print_compopts (pcomp_curcmd, cs, 1); + return (sh_chkwrite (ret)); + } + + /* Set the compspec options */ + pcomp_set_compspec_options (cs, opts_on, 1); + pcomp_set_compspec_options (cs, opts_off, 0); + + /* And change the readline variables the options control */ + pcomp_set_readline_variables (opts_on, 1); + pcomp_set_readline_variables (opts_off, 0); + + return (ret); + } + + for (l = list; l; l = l->next) + { + cs = progcomp_search (l->word->word); + if (cs == 0) + { + builtin_error (_("%s: no completion specification"), l->word->word); + ret = EXECUTION_FAILURE; + continue; + } + if (opts_on == 0 && opts_off == 0) + { + print_compopts (l->word->word, cs, 1); + continue; /* XXX -- fill in later */ + } + + /* Set the compspec options */ + pcomp_set_compspec_options (cs, opts_on, 1); + pcomp_set_compspec_options (cs, opts_off, 0); + } + + return (ret); +} diff --git a/builtins/declare.def b/builtins/declare.def index 4d94face6..9931f5e4a 100644 --- a/builtins/declare.def +++ b/builtins/declare.def @@ -1,59 +1,67 @@ This file is declare.def, from which is created declare.c. It implements the builtins "declare" and "local" in Bash. -Copyright (C) 1987-2004 Free Software Foundation, Inc. +Copyright (C) 1987-2009 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 free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. -Bash is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. +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. +You should have received a copy of the GNU General Public License +along with Bash. If not, see . $PRODUCES declare.c $BUILTIN declare $FUNCTION declare_builtin -$SHORT_DOC declare [-afFirtx] [-p] [name[=value] ...] -Declare variables and/or give them attributes. If no NAMEs are -given, then display the values of variables instead. The -p option -will display the attributes and values of each NAME. +$SHORT_DOC declare [-aAfFilrtux] [-p] [name[=value] ...] +Set variable values and attributes. -The flags are: +Declare variables and give them attributes. If no NAMEs are given, +display the attributes and values of all variables. - -a to make NAMEs arrays (if supported) - -f to select from among function names only - -F to display function names (and line number and source file name if - debugging) without definitions +Options: + -f restrict action or display to function names and definitions + -F restrict display to function names only (plus line number and + source file when debugging) + -p display the attributes and value of each NAME + +Options which set attributes: + -a to make NAMEs indexed arrays (if supported) + -A to make NAMEs associative arrays (if supported) -i to make NAMEs have the `integer' attribute + -l to convert NAMEs to lower case on assignment -r to make NAMEs readonly -t to make NAMEs have the `trace' attribute + -u to convert NAMEs to upper case on assignment -x to make NAMEs export +Using `+' instead of `-' turns off the given attribute. + Variables with the integer attribute have arithmetic evaluation (see -`let') done when the variable is assigned to. +the `let' command) performed when the variable is assigned a value. -When displaying values of variables, -f displays a function's name -and definition. The -F option restricts the display to function -name only. +When used in a function, `declare' makes NAMEs local, as with the `local' +command. -Using `+' instead of `-' turns off the given attribute instead. When -used in a function, makes NAMEs local, as with the `local' command. +Exit Status: +Returns success unless an invalid option is supplied or an error occurs. $END $BUILTIN typeset $FUNCTION declare_builtin -$SHORT_DOC typeset [-afFirtx] [-p] name[=value] ... -Obsolete. See `declare'. +$SHORT_DOC typeset [-aAfFilrtux] [-p] name[=value] ... +Set variable values and attributes. + +Obsolete. See `help declare'. $END #include @@ -90,10 +98,18 @@ declare_builtin (list) $BUILTIN local $FUNCTION local_builtin -$SHORT_DOC local name[=value] ... -Create a local variable called NAME, and give it VALUE. LOCAL -can only be used within a function; it makes the variable NAME -have a visible scope restricted to that function and its children. +$SHORT_DOC local [option] name[=value] ... +Define local variables. + +Create a local variable called NAME, and give it VALUE. OPTION can +be any option accepted by `declare'. + +Local variables can only be used within a function; they are visible +only to the function where they are defined and its children. + +Exit Status: +Returns success unless an invalid option is supplied, an error occurs, +or the shell is not executing a function. $END int local_builtin (list) @@ -109,9 +125,9 @@ local_builtin (list) } #if defined (ARRAY_VARS) -# define DECLARE_OPTS "+afiprtxF" +# define DECLARE_OPTS "+acfilprtuxAF" #else -# define DECLARE_OPTS "+fiprtxF" +# define DECLARE_OPTS "+cfilprtuxF" #endif /* The workhorse function. */ @@ -120,7 +136,8 @@ declare_internal (list, local_var) register WORD_LIST *list; int local_var; { - int flags_on, flags_off, *flags, any_failed, assign_error, pflag, nodefs, opt; + int flags_on, flags_off, *flags; + int any_failed, assign_error, pflag, nodefs, opt; char *t, *subscript_start; SHELL_VAR *var; FUNCTION_DEF *shell_fn; @@ -136,8 +153,19 @@ declare_internal (list, local_var) case 'a': #if defined (ARRAY_VARS) *flags |= att_array; + break; +#else + builtin_usage (); + return (EX_USAGE); #endif + case 'A': +#if defined (ARRAY_VARS) + *flags |= att_assoc; break; +#else + builtin_usage (); + return (EX_USAGE); +#endif case 'p': if (local_var == 0) pflag++; @@ -162,6 +190,25 @@ declare_internal (list, local_var) *flags |= att_exported; array_needs_making = 1; break; +#if defined (CASEMOD_ATTRS) +# if defined (CASEMOD_CAPCASE) + case 'c': + *flags |= att_capcase; + if (flags == &flags_on) + flags_off |= att_uppercase|att_lowercase; + break; +# endif + case 'l': + *flags |= att_lowercase; + if (flags == &flags_on) + flags_off |= att_capcase|att_uppercase; + break; + case 'u': + *flags |= att_uppercase; + if (flags == &flags_on) + flags_off |= att_capcase|att_lowercase; + break; +#endif /* CASEMOD_ATTRS */ default: builtin_usage (); return (EX_USAGE); @@ -172,7 +219,7 @@ declare_internal (list, local_var) /* If there are no more arguments left, then we just want to show some variables. */ - if (list == 0) /* declare -[afFirtx] */ + if (list == 0) /* declare -[aAfFirtx] */ { /* Show local variables defined at this context level if this is the `local' builtin. */ @@ -191,19 +238,17 @@ declare_internal (list, local_var) free (vlist); } } + else if (pflag && (flags_on == 0 || flags_on == att_function)) + show_all_var_attributes (flags_on == 0, nodefs); + else if (flags_on == 0) + return (set_builtin ((WORD_LIST *)NULL)); else - { - if (flags_on == 0) - set_builtin ((WORD_LIST *)NULL); - else - set_or_show_attributes ((WORD_LIST *)NULL, flags_on, nodefs); - } + set_or_show_attributes ((WORD_LIST *)NULL, flags_on, nodefs); - fflush (stdout); - return (EXECUTION_SUCCESS); + return (sh_chkwrite (EXECUTION_SUCCESS)); } - if (pflag) /* declare -p [-afFirtx] name [name...] */ + if (pflag) /* declare -p [-aAfFirtx] name [name...] */ { for (any_failed = 0; list; list = list->next) { @@ -214,13 +259,13 @@ declare_internal (list, local_var) any_failed++; } } - return (any_failed ? EXECUTION_FAILURE : EXECUTION_SUCCESS); + return (sh_chkwrite (any_failed ? EXECUTION_FAILURE : EXECUTION_SUCCESS)); } #define NEXT_VARIABLE() free (name); list = list->next; continue /* There are arguments left, so we are making variables. */ - while (list) /* declare [-afFirx] name [name ...] */ + while (list) /* declare [-aAfFirx] name [name ...] */ { char *value, *name; int offset, aflags; @@ -232,7 +277,7 @@ declare_internal (list, local_var) offset = assignment (name, 0); aflags = 0; - if (offset) /* declare [-afFirx] name=value */ + if (offset) /* declare [-aAfFirx] name=value */ { name[offset] = '\0'; value = name + offset + 1; @@ -279,7 +324,9 @@ declare_internal (list, local_var) if (variable_context && ((flags_on & att_function) == 0)) { #if defined (ARRAY_VARS) - if ((flags_on & att_array) || making_array_special) + if (flags_on & att_assoc) + var = make_local_assoc_variable (name); + else if ((flags_on & att_array) || making_array_special) var = make_local_array_variable (name); else #endif @@ -336,8 +383,9 @@ declare_internal (list, local_var) #endif /* DEBUGGER */ { t = nodefs ? var->name - : named_function_string (name, function_cell (var), 1); + : named_function_string (name, function_cell (var), FUNC_MULTILINE|FUNC_EXTERNAL); printf ("%s\n", t); + any_failed = sh_chkwrite (any_failed); } } else /* declare -[fF] -[rx] name [name...] */ @@ -351,7 +399,7 @@ declare_internal (list, local_var) NEXT_VARIABLE (); } } - else /* declare -[airx] name [name...] */ + else /* declare -[aAirx] name [name...] */ { /* Non-null if we just created or fetched a local variable. */ if (var == 0) @@ -360,11 +408,20 @@ declare_internal (list, local_var) if (var == 0) { #if defined (ARRAY_VARS) - if ((flags_on & att_array) || making_array_special) + if (flags_on & att_assoc) + var = make_new_assoc_variable (name); + else if ((flags_on & att_array) || making_array_special) var = make_new_array_variable (name); else #endif - var = bind_variable (name, "", 0); + + if (offset) + var = bind_variable (name, "", 0); + else + { + var = bind_variable (name, (char *)NULL, 0); + VSETATTR (var, att_invisible); + } } /* Cannot use declare +r to turn off readonly attribute. */ @@ -386,30 +443,48 @@ declare_internal (list, local_var) } #if defined (ARRAY_VARS) - if ((making_array_special || (flags_on & att_array) || array_p (var)) && offset) + if ((making_array_special || (flags_on & (att_array|att_assoc)) || array_p (var) || assoc_p (var)) && offset) { int vlen; vlen = STRLEN (value); -#if 0 - if (value[0] == '(' && strchr (value, ')')) -#else + if (value[0] == '(' && value[vlen-1] == ')') -#endif compound_array_assign = 1; else simple_array_assign = 1; } - /* Cannot use declare +a name to remove an array variable. */ - if ((flags_off & att_array) && array_p (var)) + /* Cannot use declare +a name or declare +A name to remove an + array variable. */ + if (((flags_off & att_array) && array_p (var)) || ((flags_off & att_assoc) && assoc_p (var))) { builtin_error (_("%s: cannot destroy array variables in this way"), name); any_failed++; NEXT_VARIABLE (); } - /* declare -a name makes name an array variable. */ - if ((making_array_special || (flags_on & att_array)) && array_p (var) == 0) + if ((flags_on & att_array) && assoc_p (var)) + { + builtin_error (_("%s: cannot convert associative to indexed array"), name); + any_failed++; + NEXT_VARIABLE (); + } + if ((flags_on & att_assoc) && array_p (var)) + { + builtin_error (_("%s: cannot convert indexed to associative array"), name); + any_failed++; + NEXT_VARIABLE (); + } + + /* declare -A name[[n]] makes name an associative array variable. */ + if (flags_on & att_assoc) + { + if (assoc_p (var) == 0) + var = convert_var_to_assoc (var); + } + /* declare -a name[[n]] or declare name[n] makes name an indexed + array variable. */ + else if ((making_array_special || (flags_on & att_array)) && array_p (var) == 0) var = convert_var_to_array (var); #endif /* ARRAY_VARS */ diff --git a/builtins/echo.def b/builtins/echo.def index 923c43a24..62c61994a 100644 --- a/builtins/echo.def +++ b/builtins/echo.def @@ -1,23 +1,22 @@ This file is echo.def, from which is created echo.c. It implements the builtin "echo" in Bash. -Copyright (C) 1987-2002 Free Software Foundation, Inc. +Copyright (C) 1987-2009 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 free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. -Bash is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. +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. +You should have received a copy of the GNU General Public License +along with Bash. If not, see . $PRODUCES echo.c #include @@ -37,31 +36,48 @@ $BUILTIN echo $FUNCTION echo_builtin $DEPENDS_ON V9_ECHO $SHORT_DOC echo [-neE] [arg ...] -Output the ARGs. If -n is specified, the trailing newline is -suppressed. If the -e option is given, interpretation of the -following backslash-escaped characters is turned on: - \a alert (bell) - \b backspace - \c suppress trailing newline - \E escape character - \f form feed - \n new line - \r carriage return - \t horizontal tab - \v vertical tab - \\ backslash - \0nnn the character whose ASCII code is NNN (octal). NNN can be - 0 to 3 octal digits - -You can explicitly turn off the interpretation of the above characters -with the -E option. +Write arguments to the standard output. + +Display the ARGs on the standard output followed by a newline. + +Options: + -n do not append a newline + -e enable interpretation of the following backslash escapes + -E explicitly suppress interpretation of backslash escapes + +`echo' interprets the following backslash-escaped characters: + \a alert (bell) + \b backspace + \c suppress further output + \e escape character + \f form feed + \n new line + \r carriage return + \t horizontal tab + \v vertical tab + \\ backslash + \0nnn the character whose ASCII code is NNN (octal). NNN can be + 0 to 3 octal digits + \xHH the eight-bit character whose value is HH (hexadecimal). HH + can be one or two hex digits + +Exit Status: +Returns success unless a write error occurs. $END $BUILTIN echo $FUNCTION echo_builtin $DEPENDS_ON !V9_ECHO $SHORT_DOC echo [-n] [arg ...] -Output the ARGs. If -n is specified, the trailing newline is suppressed. +Write arguments to the standard output. + +Display the ARGs on the standard output followed by a newline. + +Options: + -n do not append a newline + +Exit Status: +Returns success unless a write error occurs. $END #if defined (V9_ECHO) @@ -143,6 +159,7 @@ just_echo: clearerr (stdout); /* clear error before writing and testing success */ + terminate_immediately++; while (list) { i = len = 0; @@ -175,12 +192,7 @@ just_echo: if (display_return) putchar ('\n'); - fflush (stdout); - if (ferror (stdout)) - { - sh_wrerror (); - clearerr (stdout); - return (EXECUTION_FAILURE); - } - return (EXECUTION_SUCCESS); + + terminate_immediately--; + return (sh_chkwrite (EXECUTION_SUCCESS)); } diff --git a/builtins/enable.def b/builtins/enable.def index 823c38f9b..40cbb440a 100644 --- a/builtins/enable.def +++ b/builtins/enable.def @@ -1,42 +1,51 @@ This file is enable.def, from which is created enable.c. It implements the builtin "enable" in Bash. -Copyright (C) 1987-2003 Free Software Foundation, Inc. +Copyright (C) 1987-2009 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 free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. -Bash is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. +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. +You should have received a copy of the GNU General Public License +along with Bash. If not, see . $PRODUCES enable.c $BUILTIN enable $FUNCTION enable_builtin -$SHORT_DOC enable [-pnds] [-a] [-f filename] [name ...] -Enable and disable builtin shell commands. This allows -you to use a disk command which has the same name as a shell -builtin without specifying a full pathname. If -n is used, the -NAMEs become disabled; otherwise NAMEs are enabled. For example, -to use the `test' found in $PATH instead of the shell builtin -version, type `enable -n test'. On systems supporting dynamic -loading, the -f option may be used to load new builtins from the -shared object FILENAME. The -d option will delete a builtin -previously loaded with -f. If no non-option names are given, or -the -p option is supplied, a list of builtins is printed. The --a option means to print every builtin with an indication of whether -or not it is enabled. The -s option restricts the output to the POSIX.2 -`special' builtins. The -n option displays a list of all disabled builtins. +$SHORT_DOC enable [-a] [-dnps] [-f filename] [name ...] +Enable and disable shell builtins. + +Enables and disables builtin shell commands. Disabling allows you to +execute a disk command which has the same name as a shell builtin +without using a full pathname. + +Options: + -a print a list of builtins showing whether or not each is enabled + -n disable each NAME or display a list of disabled builtins + -p print the list of builtins in a reusable format + -s print only the names of Posix `special' builtins + +Options controlling dynamic loading: + -f Load builtin NAME from shared object FILENAME + -d Remove a builtin loaded with -f + +Without options, each NAME is enabled. + +To use the `test' found in $PATH instead of the shell builtin +version, type `enable -n test'. + +Exit Status: +Returns success unless NAME is not a shell builtin or an error occurs. $END #include diff --git a/builtins/eval.def b/builtins/eval.def index 500e8c730..ee9a23d57 100644 --- a/builtins/eval.def +++ b/builtins/eval.def @@ -1,30 +1,35 @@ This file is eval.def, from which is created eval.c. It implements the builtin "eval" in Bash. -Copyright (C) 1987-2002 Free Software Foundation, Inc. +Copyright (C) 1987-2009 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 free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. -Bash is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. +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. +You should have received a copy of the GNU General Public License +along with Bash. If not, see . $PRODUCES eval.c $BUILTIN eval $FUNCTION eval_builtin $SHORT_DOC eval [arg ...] -Read ARGs as input to the shell and execute the resulting command(s). +Execute arguments as a shell command. + +Combine ARGs into a single string, use the result as input to the shell, +and execute the resulting commands. + +Exit Status: +Returns exit status of command or success if command is null. $END #include diff --git a/builtins/evalfile.c b/builtins/evalfile.c index d05bc7bb3..55b5cb786 100644 --- a/builtins/evalfile.c +++ b/builtins/evalfile.c @@ -1,20 +1,22 @@ -/* Copyright (C) 1996-2003 Free Software Foundation, Inc. +/* evalfile.c - read and evaluate commands from a file or file descriptor */ + +/* Copyright (C) 1996-2009 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. - 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #include @@ -45,6 +47,8 @@ # include "../bashhist.h" #endif +#include + #include "common.h" #if !defined (errno) @@ -78,6 +82,7 @@ _evalfile (filename, flags) volatile int old_interactive; procenv_t old_return_catch; int return_val, fd, result, pflags; + ssize_t nr; /* return value from read(2) */ char *string; struct stat finfo; size_t file_size; @@ -147,31 +152,37 @@ file_error_and_exit: setmode (fd, O_TEXT); #endif - string = (char *)xmalloc (1 + file_size); - result = read (fd, string, file_size); - string[result] = '\0'; + if (S_ISREG (finfo.st_mode) && file_size <= SSIZE_MAX) + { + string = (char *)xmalloc (1 + file_size); + nr = read (fd, string, file_size); + if (nr >= 0) + string[nr] = '\0'; + } + else + nr = zmapfd (fd, &string, 0); return_val = errno; close (fd); errno = return_val; - if (result < 0) /* XXX was != file_size, not < 0 */ + if (nr < 0) /* XXX was != file_size, not < 0 */ { free (string); goto file_error_and_exit; } - if (result == 0) + if (nr == 0) { free (string); return ((flags & FEVAL_BUILTIN) ? EXECUTION_SUCCESS : 1); } if ((flags & FEVAL_CHECKBINARY) && - check_binary_file (string, (result > 80) ? 80 : result)) + check_binary_file (string, (nr > 80) ? 80 : nr)) { free (string); - (*errfunc) ("%s: cannot execute binary file", filename); + (*errfunc) (_("%s: cannot execute binary file"), filename); return ((flags & FEVAL_BUILTIN) ? EX_BINARY_FILE : -1); } diff --git a/builtins/evalstring.c b/builtins/evalstring.c index 511ce86c3..8f172de7c 100644 --- a/builtins/evalstring.c +++ b/builtins/evalstring.c @@ -1,22 +1,22 @@ -/* Evaluate a string as one or more shell commands. +/* evalstring.c - evaluate a string as one or more shell commands. - Copyright (C) 1996-2005 Free Software Foundation, Inc. +/* Copyright (C) 1996-2009 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License along - with Bash; see the file COPYING. If not, write to the Free Software - Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #include @@ -44,6 +44,8 @@ #include "../redir.h" #include "../trap.h" +#include + #if defined (HISTORY) # include "../bashhist.h" #endif @@ -58,15 +60,21 @@ extern int errno; extern int indirection_level, subshell_environment; extern int line_number; +extern int current_token, shell_eof_token; extern int last_command_exit_value; extern int running_trap; extern int loop_level; +extern int executing_list; +extern int comsub_ignore_return; extern int posixly_correct; int parse_and_execute_level = 0; static int cat_file __P((REDIRECT *)); +#define PE_TAG "parse_and_execute top" +#define PS_TAG "parse_string top" + #if defined (HISTORY) static void set_history_remembering () @@ -84,44 +92,35 @@ parse_and_execute_cleanup () run_trap_cleanup (running_trap - 1); unfreeze_jobs_list (); } - run_unwind_frame ("parse_and_execute_top"); -} -/* Parse and execute the commands in STRING. Returns whatever - execute_command () returns. This frees STRING. FLAGS is a - flags word; look in common.h for the possible values. Actions - are: - (flags & SEVAL_NONINT) -> interactive = 0; - (flags & SEVAL_INTERACT) -> interactive = 1; - (flags & SEVAL_NOHIST) -> call bash_history_disable () - (flags & SEVAL_NOFREE) -> don't free STRING when finished - (flags & SEVAL_RESETLINE) -> reset line_number to 1 -*/ + if (have_unwind_protects ()) + run_unwind_frame (PE_TAG); + else + parse_and_execute_level = 0; /* XXX */ +} -int -parse_and_execute (string, from_file, flags) +static void +parse_prologue (string, flags, tag) char *string; - const char *from_file; int flags; + char *tag; { - int code, x, lreset; - volatile int should_jump_to_top_level, last_result; char *orig_string; - COMMAND *volatile command; + int x; orig_string = string; /* Unwind protect this invocation of parse_and_execute (). */ - begin_unwind_frame ("parse_and_execute_top"); + begin_unwind_frame (tag); unwind_protect_int (parse_and_execute_level); unwind_protect_jmp_buf (top_level); unwind_protect_int (indirection_level); unwind_protect_int (line_number); unwind_protect_int (loop_level); + unwind_protect_int (executing_list); + unwind_protect_int (comsub_ignore_return); if (flags & (SEVAL_NONINT|SEVAL_INTERACT)) unwind_protect_int (interactive); - lreset = flags & SEVAL_RESETLINE; - #if defined (HISTORY) if (parse_and_execute_level == 0) add_unwind_protect (set_history_remembering, (char *)NULL); @@ -129,9 +128,7 @@ parse_and_execute (string, from_file, flags) unwind_protect_int (remember_on_history); /* can be used in scripts */ # if defined (BANG_HISTORY) if (interactive_shell) - { - unwind_protect_int (history_expansion_inhibited); - } + unwind_protect_int (history_expansion_inhibited); # endif /* BANG_HISTORY */ #endif /* HISTORY */ @@ -146,8 +143,42 @@ parse_and_execute (string, from_file, flags) add_unwind_protect (xfree, orig_string); end_unwind_frame (); + if (flags & (SEVAL_NONINT|SEVAL_INTERACT)) + interactive = (flags & SEVAL_NONINT) ? 0 : 1; + +#if defined (HISTORY) + if (flags & SEVAL_NOHIST) + bash_history_disable (); +#endif /* HISTORY */ +} + +/* Parse and execute the commands in STRING. Returns whatever + execute_command () returns. This frees STRING. FLAGS is a + flags word; look in common.h for the possible values. Actions + are: + (flags & SEVAL_NONINT) -> interactive = 0; + (flags & SEVAL_INTERACT) -> interactive = 1; + (flags & SEVAL_NOHIST) -> call bash_history_disable () + (flags & SEVAL_NOFREE) -> don't free STRING when finished + (flags & SEVAL_RESETLINE) -> reset line_number to 1 +*/ + +int +parse_and_execute (string, from_file, flags) + char *string; + const char *from_file; + int flags; +{ + int code, lreset; + volatile int should_jump_to_top_level, last_result; + COMMAND *volatile command; + + parse_prologue (string, flags, PE_TAG); + parse_and_execute_level++; + lreset = flags & SEVAL_RESETLINE; + /* Reset the line number if the caller wants us to. If we don't reset the line number, we have to subtract one, because we will add one just before executing the next command (resetting the line number sets it to @@ -157,13 +188,6 @@ parse_and_execute (string, from_file, flags) line_number--; indirection_level++; - if (flags & (SEVAL_NONINT|SEVAL_INTERACT)) - interactive = (flags & SEVAL_NONINT) ? 0 : 1; - -#if defined (HISTORY) - if (flags & SEVAL_NOHIST) - bash_history_disable (); -#endif /* HISTORY */ code = should_jump_to_top_level = 0; last_result = EXECUTION_SUCCESS; @@ -224,7 +248,7 @@ parse_and_execute (string, from_file, flags) if (parse_command () == 0) { - if (interactive_shell == 0 && read_but_dont_execute) + if ((flags & SEVAL_PARSEONLY) || (interactive_shell == 0 && read_but_dont_execute)) { last_result = EXECUTION_SUCCESS; dispose_command (global_command); @@ -241,6 +265,12 @@ parse_and_execute (string, from_file, flags) global_command = (COMMAND *)NULL; + if ((subshell_environment & SUBSHELL_COMSUB) && comsub_ignore_return) +{ + command->flags |= CMD_IGNORE_RETURN; +itrace("parse_and_execute: turned on CMD_IGNORE_RETURN from comsub_ignore_return"); +} + #if defined (ONESHOT) /* * IF @@ -305,7 +335,7 @@ parse_and_execute (string, from_file, flags) out: - run_unwind_frame ("parse_and_execute_top"); + run_unwind_frame (PE_TAG); if (interrupt_state && parse_and_execute_level == 0) { @@ -322,6 +352,110 @@ parse_and_execute (string, from_file, flags) return (last_result); } +/* Parse a command contained in STRING according to FLAGS and return the + number of characters consumed from the string. If non-NULL, set *ENDP + to the position in the string where the parse ended. Used to validate + command substitutions during parsing to obey Posix rules about finding + the end of the command and balancing parens. */ +int +parse_string (string, from_file, flags, endp) + char *string; + const char *from_file; + int flags; + char **endp; +{ + int code, nc; + volatile int should_jump_to_top_level; + COMMAND *volatile command, *oglobal; + char *ostring; + + parse_prologue (string, flags, PS_TAG); + + /* Reset the line number if the caller wants us to. If we don't reset the + line number, we have to subtract one, because we will add one just + before executing the next command (resetting the line number sets it to + 0; the first line number is 1). */ + push_stream (0); + + code = should_jump_to_top_level = 0; + oglobal = global_command; + ostring = string; + + with_input_from_string (string, from_file); + while (*(bash_input.location.string)) + { + command = (COMMAND *)NULL; + +#if 0 + if (interrupt_state) + break; +#endif + + /* Provide a location for functions which `longjmp (top_level)' to + jump to. */ + code = setjmp (top_level); + + if (code) + { +#if defined (DEBUG) +itrace("parse_string: longjmp executed: code = %d", code); +#endif + should_jump_to_top_level = 0; + switch (code) + { + case FORCE_EOF: + case ERREXIT: + case EXITPROG: + case DISCARD: /* XXX */ + if (command) + dispose_command (command); + /* Remember to call longjmp (top_level) after the old + value for it is restored. */ + should_jump_to_top_level = 1; + goto out; + + default: + command_error ("parse_string", CMDERR_BADJUMP, code, 0); + break; + } + } + + if (parse_command () == 0) + { + dispose_command (global_command); + global_command = (COMMAND *)NULL; + } + else + { + if ((flags & SEVAL_NOLONGJMP) == 0) + { + should_jump_to_top_level = 1; + code = DISCARD; + } + else + reset_parser (); /* XXX - sets token_to_read */ + break; + } + + if (current_token == yacc_EOF || current_token == shell_eof_token) + break; + } + + out: + + global_command = oglobal; + nc = bash_input.location.string - ostring; + if (endp) + *endp = bash_input.location.string; + + run_unwind_frame (PS_TAG); + + if (should_jump_to_top_level) + jump_to_top_level (code); + + return (nc); +} + /* Handle a $( < file ) command substitution. This expands the filename, returning errors as appropriate, then just cats the file to the standard output. */ diff --git a/builtins/exec.def b/builtins/exec.def index 0818a25e2..0837a9834 100644 --- a/builtins/exec.def +++ b/builtins/exec.def @@ -1,37 +1,44 @@ This file is exec.def, from which is created exec.c. It implements the builtin "exec" in Bash. -Copyright (C) 1987-2003 Free Software Foundation, Inc. +Copyright (C) 1987-2009 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 free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. -Bash is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. +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. +You should have received a copy of the GNU General Public License +along with Bash. If not, see . $PRODUCES exec.c $BUILTIN exec $FUNCTION exec_builtin -$SHORT_DOC exec [-cl] [-a name] file [redirection ...] -Exec FILE, replacing this shell with the specified program. -If FILE is not specified, the redirections take effect in this -shell. If the first argument is `-l', then place a dash in the -zeroth arg passed to FILE, as login does. If the `-c' option -is supplied, FILE is executed with a null environment. The `-a' -option means to make set argv[0] of the executed process to NAME. -If the file cannot be executed and the shell is not interactive, -then the shell exits, unless the shell option `execfail' is set. +$SHORT_DOC exec [-cl] [-a name] [command [arguments ...]] [redirection ...] +Replace the shell with the given command. + +Execute COMMAND, replacing this shell with the specified program. +ARGUMENTS become the arguments to COMMAND. If COMMAND is not specified, +any redirections take effect in the current shell. + +Options: + -a name pass NAME as the zeroth argument to COMMAND + -c execute COMMAND with an empty environment + -l place a dash in the zeroth argument to COMMAND + +If the command cannot be executed, a non-interactive shell exits, unless +the shell option `execfail' is set. + +Exit Status: +Returns success unless COMMAND is not found or a redirection error occurs. $END #include diff --git a/builtins/exit.def b/builtins/exit.def index ddaa5d315..edf8db09d 100644 --- a/builtins/exit.def +++ b/builtins/exit.def @@ -1,30 +1,31 @@ This file is exit.def, from which is created exit.c. It implements the builtins "exit", and "logout" in Bash. -Copyright (C) 1987-2005 Free Software Foundation, Inc. +Copyright (C) 1987-2009 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 free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. -Bash is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. +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. +You should have received a copy of the GNU General Public License +along with Bash. If not, see . $PRODUCES exit.c $BUILTIN exit $FUNCTION exit_builtin $SHORT_DOC exit [n] -Exit the shell with a status of N. If N is omitted, the exit status +Exit the shell. + +Exits the shell with a status of N. If N is omitted, the exit status is that of the last command executed. $END @@ -45,6 +46,7 @@ $END #include "common.h" #include "builtext.h" /* for jobs_builtin */ +extern int check_jobs_at_exit; extern int last_command_exit_value; extern int running_trap, trap_saved_exit_value; extern int subshell_environment; @@ -60,7 +62,7 @@ exit_builtin (list) { if (interactive) { - fprintf (stderr, login_shell ? "logout\n" : "exit\n"); + fprintf (stderr, login_shell ? _("logout\n") : "exit\n"); fflush (stderr); } @@ -69,8 +71,11 @@ exit_builtin (list) $BUILTIN logout $FUNCTION logout_builtin -$SHORT_DOC logout -Logout of a login shell. +$SHORT_DOC logout [n] +Exit a login shell. + +Exits a login shell with exit status N. Returns an error if not executed +in a login shell. $END /* How to logout. */ @@ -94,7 +99,7 @@ exit_or_logout (list) int exit_value; #if defined (JOB_CONTROL) - int exit_immediate_okay; + int exit_immediate_okay, stopmsg; exit_immediate_okay = (interactive == 0 || last_shell_builtin == exit_builtin || @@ -102,21 +107,32 @@ exit_or_logout (list) last_shell_builtin == jobs_builtin); /* Check for stopped jobs if the user wants to. */ - if (!exit_immediate_okay) + if (exit_immediate_okay == 0) { register int i; - for (i = 0; i < js.j_jobslots; i++) + for (i = stopmsg = 0; i < js.j_jobslots; i++) if (jobs[i] && STOPPED (i)) - { - fprintf (stderr, _("There are stopped jobs.\n")); - - /* This is NOT superfluous because EOF can get here without - going through the command parser. Set both last and this - so that either `exit', `logout', or ^D will work to exit - immediately if nothing intervenes. */ - this_shell_builtin = last_shell_builtin = exit_builtin; - return (EXECUTION_FAILURE); - } + stopmsg = JSTOPPED; + else if (check_jobs_at_exit && stopmsg == 0 && RUNNING (i)) + stopmsg = JRUNNING; + + if (stopmsg == JSTOPPED) + fprintf (stderr, _("There are stopped jobs.\n")); + else if (stopmsg == JRUNNING) + fprintf (stderr, _("There are running jobs.\n")); + + if (stopmsg && check_jobs_at_exit) + list_all_jobs (JLIST_STANDARD); + + if (stopmsg) + { + /* This is NOT superfluous because EOF can get here without + going through the command parser. Set both last and this + so that either `exit', `logout', or ^D will work to exit + immediately if nothing intervenes. */ + this_shell_builtin = last_shell_builtin = exit_builtin; + return (EXECUTION_FAILURE); + } } #endif /* JOB_CONTROL */ diff --git a/builtins/fc.def b/builtins/fc.def index 101eb008c..22425d704 100644 --- a/builtins/fc.def +++ b/builtins/fc.def @@ -1,48 +1,52 @@ This file is fc.def, from which is created fc.c. It implements the builtin "fc" in Bash. -Copyright (C) 1987-2005 Free Software Foundation, Inc. +Copyright (C) 1987-2009 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 free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. -Bash is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. +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. +You should have received a copy of the GNU General Public License +along with Bash. If not, see . $PRODUCES fc.c $BUILTIN fc $FUNCTION fc_builtin $DEPENDS_ON HISTORY -$SHORT_DOC fc [-e ename] [-nlr] [first] [last] or fc -s [pat=rep] [cmd] +$SHORT_DOC fc [-e ename] [-lnr] [first] [last] or fc -s [pat=rep] [command] +Display or execute commands from the history list. + fc is used to list or edit and re-execute commands from the history list. FIRST and LAST can be numbers specifying the range, or FIRST can be a string, which means the most recent command beginning with that string. - -e ENAME selects which editor to use. Default is FCEDIT, then EDITOR, - then vi. - - -l means list lines instead of editing. - -n means no line numbers listed. - -r means reverse the order of the lines (making it newest listed first). +Options: + -e ENAME select which editor to use. Default is FCEDIT, then EDITOR, + then vi + -l list lines instead of editing + -n omit line numbers when listing + -r reverse the order of the lines (newest listed first) -With the `fc -s [pat=rep ...] [command]' format, the command is +With the `fc -s [pat=rep ...] [command]' format, COMMAND is re-executed after the substitution OLD=NEW is performed. A useful alias to use with this is r='fc -s', so that typing `r cc' runs the last command beginning with `cc' and typing `r' re-executes the last command. + +Exit Status: +Returns success or status of executed command; non-zero if an error occurs. $END #include @@ -88,7 +92,6 @@ extern int posixly_correct; extern int unlink __P((const char *)); extern FILE *sh_mktmpfp __P((char *, int, char **)); -extern int delete_last_history __P((void)); /* **************************************************************** */ /* */ @@ -290,12 +293,7 @@ fc_builtin (list) line was actually added (HISTIGNORE may have caused it to not be), so we check hist_last_line_added. */ - /* "When not listing, he fc command that caused the editing shall not be - entered into the history list." */ - if (listing == 0 && hist_last_line_added) - delete_last_history (); - - last_hist = i - 1 - hist_last_line_added; + last_hist = i - remember_on_history - hist_last_line_added; if (list) { @@ -322,6 +320,21 @@ fc_builtin (list) histbeg = histend = last_hist; } + /* "When not listing, the fc command that caused the editing shall not be + entered into the history list." */ + if (listing == 0 && hist_last_line_added) + { + bash_delete_last_history (); + /* If we're editing a single command -- the last command in the + history -- and we just removed the dummy command added by + edit_and_execute_command (), we need to check whether or not we + just removed the last command in the history and need to back + the pointer up. remember_on_history is off because we're running + in parse_and_execute(). */ + if (histbeg == histend && histend == last_hist && hlist[last_hist] == 0) + last_hist = histbeg = --histend; + } + /* We print error messages for line specifications out of range. */ if ((histbeg < 0) || (histend < 0)) { @@ -368,8 +381,15 @@ fc_builtin (list) } if (listing) - return (EXECUTION_SUCCESS); + return (sh_chkwrite (EXECUTION_SUCCESS)); + fflush (stream); + if (ferror (stream)) + { + sh_wrerror (); + fclose (stream); + return (EXECUTION_FAILURE); + } fclose (stream); /* Now edit the file of commands. */ @@ -436,10 +456,11 @@ fc_gethnum (command, hlist) char *command; HIST_ENTRY **hlist; { - int sign = 1, n, clen; + int sign, n, clen; register int i, j; register char *s; + sign = 1; /* Count history elements. */ for (i = 0; hlist[i]; i++); @@ -449,8 +470,9 @@ fc_gethnum (command, hlist) and makes the last command that this deals with be the last command the user entered before the fc. We need to check whether the line was actually added (HISTIGNORE may have caused it to not be), - so we check hist_last_line_added. */ - i -= 1 + hist_last_line_added; + so we check hist_last_line_added. This needs to agree with the + calculation of last_hist in fc_builtin above. */ + i -= remember_on_history + hist_last_line_added; /* No specification defaults to most recent command. */ if (command == NULL) @@ -601,7 +623,7 @@ fc_replhist (command) if (command && *command) { - delete_last_history (); + bash_delete_last_history (); maybe_add_history (command); /* Obeys HISTCONTROL setting. */ } } diff --git a/builtins/fg_bg.def b/builtins/fg_bg.def index c14381b6d..ae7e90402 100644 --- a/builtins/fg_bg.def +++ b/builtins/fg_bg.def @@ -1,23 +1,22 @@ This file is fg_bg.def, from which is created fg_bg.c. It implements the builtins "bg" and "fg" in Bash. -Copyright (C) 1987-2005 Free Software Foundation, Inc. +Copyright (C) 1987-2009 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 free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. -Bash is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. +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. +You should have received a copy of the GNU General Public License +along with Bash. If not, see . $PRODUCES fg_bg.c @@ -25,9 +24,14 @@ $BUILTIN fg $FUNCTION fg_builtin $DEPENDS_ON JOB_CONTROL $SHORT_DOC fg [job_spec] -Place JOB_SPEC in the foreground, and make it the current job. If -JOB_SPEC is not present, the shell's notion of the current job is -used. +Move job to the foreground. + +Place the job identified by JOB_SPEC in the foreground, making it the +current job. If JOB_SPEC is not present, the shell's notion of the +current job is used. + +Exit Status: +Status of command placed in foreground, or failure if an error occurs. $END #include @@ -83,9 +87,14 @@ $BUILTIN bg $FUNCTION bg_builtin $DEPENDS_ON JOB_CONTROL $SHORT_DOC bg [job_spec ...] -Place each JOB_SPEC in the background, as if it had been started with -`&'. If JOB_SPEC is not present, the shell's notion of the current -job is used. +Move jobs to the background. + +Place the jobs identified by each JOB_SPEC in the background, as if they +had been started with `&'. If JOB_SPEC is not present, the shell's notion +of the current job is used. + +Exit Status: +Returns success unless job control is not enabled or an error occurs. $END #if defined (JOB_CONTROL) @@ -137,7 +146,7 @@ fg_bg (list, foreground) if (INVALID_JOB (job)) { if (job != DUP_JOB) - sh_badjob (list ? list->word->word : "current"); + sh_badjob (list ? list->word->word : _("current")); goto failure; } diff --git a/builtins/getopt.c b/builtins/getopt.c index b223a76a9..feb18b58e 100644 --- a/builtins/getopt.c +++ b/builtins/getopt.c @@ -1,21 +1,22 @@ -/* getopt for BASH. +/* getopt.c - getopt for Bash. Used by the getopt builtin. */ - Copyright (C) 1993, 1994 - Free Software Foundation, Inc. +/* Copyright (C) 1993-2009 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 file is part of GNU Bash, the Bourne Again SHell. - This program is distributed in the hope that it will be useful, + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ + along with Bash. If not, see . +*/ #include diff --git a/builtins/getopt.h b/builtins/getopt.h index 7a4afb160..75fdec571 100644 --- a/builtins/getopt.h +++ b/builtins/getopt.h @@ -1,19 +1,22 @@ -/* Declarations for getopt. - Copyright (C) 1989, 1990, 1991, 1992, 1993 Free Software Foundation, Inc. +/* getopt.h - declarations for getopt. */ - 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. +/* Copyright (C) 1989, 1990, 1991, 1992, 1993, 2008,2009 Free Software Foundation, Inc. - This program is distributed in the hope that it will be useful, + This file is part of GNU Bash, the Bourne Again SHell. + + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ + along with Bash. If not, see . +*/ /* XXX THIS HAS BEEN MODIFIED FOR INCORPORATION INTO BASH XXX */ diff --git a/builtins/getopts.def b/builtins/getopts.def index a9aad62bd..c077c8e05 100644 --- a/builtins/getopts.def +++ b/builtins/getopts.def @@ -5,26 +5,28 @@ 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 free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. -Bash is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. +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. +You should have received a copy of the GNU General Public License +along with Bash. If not, see . $PRODUCES getopts.c $BUILTIN getopts $FUNCTION getopts_builtin $SHORT_DOC getopts optstring name [arg] -Getopts is used by shell procedures to parse positional parameters. +Parse option arguments. + +Getopts is used by shell procedures to parse positional parameters +as options. OPTSTRING contains the option letters to be recognized; if a letter is followed by a colon, the option is expected to have an argument, @@ -54,6 +56,10 @@ OPTSTRING is not a colon. OPTERR has the value 1 by default. Getopts normally parses the positional parameters ($0 - $9), but if more arguments are given, they are parsed instead. + +Exit Status: +Returns success if an option is found; fails if the end of options is +encountered or an error occurs. $END #include diff --git a/builtins/hash.def b/builtins/hash.def index 697ffd0a9..7a8aced8b 100644 --- a/builtins/hash.def +++ b/builtins/hash.def @@ -1,39 +1,47 @@ This file is hash.def, from which is created hash.c. It implements the builtin "hash" in Bash. -Copyright (C) 1987-2006 Free Software Foundation, Inc. +Copyright (C) 1987-2009 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 free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. -Bash is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. +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. +You should have received a copy of the GNU General Public License +along with Bash. If not, see . $PRODUCES hash.c $BUILTIN hash $FUNCTION hash_builtin $SHORT_DOC hash [-lr] [-p pathname] [-dt] [name ...] -For each NAME, the full pathname of the command is determined and -remembered. If the -p option is supplied, PATHNAME is used as the -full pathname of NAME, and no path search is performed. The -r -option causes the shell to forget all remembered locations. The -d -option causes the shell to forget the remembered location of each NAME. -If the -t option is supplied the full pathname to which each NAME -corresponds is printed. If multiple NAME arguments are supplied with --t, the NAME is printed before the hashed full pathname. The -l option -causes output to be displayed in a format that may be reused as input. -If no arguments are given, information about remembered commands is displayed. +Remember or display program locations. + +Determine and remember the full pathname of each command NAME. If +no arguments are given, information about remembered commands is displayed. + +Options: + -d forget the remembered location of each NAME + -l display in a format that may be reused as input + -p pathname use PATHNAME is the full pathname of NAME + -r forget all remembered locations + -t print the remembered location of each NAME, preceding + each location with the corresponding NAME if multiple + NAMEs are given +Arguments: + NAME Each NAME is searched for in $PATH and added to the list + of remembered commands. + +Exit Status: +Returns success unless NAME is not found or an invalid option is given. $END #include @@ -158,7 +166,7 @@ hash_builtin (list) #ifdef EISDIR builtin_error ("%s: %s", pathname, strerror (EISDIR)); #else - builtin_error ("%s: is a directory", pathname); + builtin_error (_("%s: is a directory"), pathname); #endif opt = EXECUTION_FAILURE; } @@ -233,7 +241,7 @@ print_hashed_commands (fmt) return (0); if (fmt == 0) - printf ("hits\tcommand\n"); + printf (_("hits\tcommand\n")); hash_walk (hashed_filenames, fmt ? print_portable_hash_info : print_hash_info); return (1); } diff --git a/builtins/help.def b/builtins/help.def index 35a6de9cc..004abe29f 100644 --- a/builtins/help.def +++ b/builtins/help.def @@ -1,35 +1,46 @@ This file is help.def, from which is created help.c. It implements the builtin "help" in Bash. -Copyright (C) 1987-2003 Free Software Foundation, Inc. +Copyright (C) 1987-2009 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 free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. -Bash is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. +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. +You should have received a copy of the GNU General Public License +along with Bash. If not, see . $PRODUCES help.c $BUILTIN help $FUNCTION help_builtin $DEPENDS_ON HELP_BUILTIN -$SHORT_DOC help [-s] [pattern ...] -Display helpful information about builtin commands. If PATTERN is +$SHORT_DOC help [-ds] [pattern ...] +Display information about builtin commands. + +Displays brief summaries of builtin commands. If PATTERN is specified, gives detailed help on all commands matching PATTERN, -otherwise a list of the builtins is printed. The -s option -restricts the output for each builtin command matching PATTERN to -a short usage synopsis. +otherwise the list of help topics is printed. + +Options: + -d output short description for each topic + -m display usage in pseudo-manpage format + -s output only a short usage synopsis for each topic matching + PATTERN + +Arguments: + PATTERN Pattern specifiying a help topic + +Exit Status: +Returns success unless PATTERN is not found or an invalid option is given. $END #include @@ -63,7 +74,13 @@ $END extern int errno; #endif +extern const char * const bash_copyright; +extern const char * const bash_license; + static void show_builtin_command_help __P((void)); +static int open_helpfile __P((char *)); +static void show_desc __P((char *, int)); +static void show_manpage __P((char *, int)); static void show_longdoc __P((int)); /* Print out a list of the known functions in the shell, and what they do. @@ -75,14 +92,20 @@ help_builtin (list) { register int i; char *pattern, *name; - int plen, match_found, sflag; + int plen, match_found, sflag, dflag, mflag; - sflag = 0; + dflag = sflag = mflag = 0; reset_internal_getopt (); - while ((i = internal_getopt (list, "s")) != -1) + while ((i = internal_getopt (list, "dms")) != -1) { switch (i) { + case 'd': + dflag = 1; + break; + case 'm': + mflag = 1; + break; case 's': sflag = 1; break; @@ -104,10 +127,7 @@ help_builtin (list) if (glob_pattern_p (list->word->word)) { - if (list->next) - printf (_("Shell commands matching keywords `")); - else - printf (_("Shell commands matching keyword `")); + printf (ngettext ("Shell commands matching keyword `", "Shell commands matching keywords `", (list->next ? 2 : 1))); print_word_list (list, ", "); printf ("'\n\n"); } @@ -123,12 +143,22 @@ help_builtin (list) if ((strncmp (pattern, name, plen) == 0) || (strmatch (pattern, name, FNMATCH_EXTFLAG) != FNM_NOMATCH)) { + match_found++; + if (dflag) + { + show_desc (name, i); + continue; + } + else if (mflag) + { + show_manpage (name, i); + continue; + } + printf ("%s: %s\n", name, shell_builtins[i].short_doc); if (sflag == 0) show_longdoc (i); - - match_found++; } } } @@ -143,6 +173,21 @@ help_builtin (list) return (EXECUTION_SUCCESS); } +static int +open_helpfile (name) + char *name; +{ + int fd; + + fd = open (name, O_RDONLY); + if (fd == -1) + { + builtin_error (_("%s: cannot open: %s"), name, strerror (errno)); + return -1; + } + return fd; +} + /* By convention, enforced by mkbuiltins.c, if separate help files are being used, the long_doc array contains one string -- the full pathname of the help file for this builtin. */ @@ -158,12 +203,9 @@ show_longdoc (i) if (doc && doc[0] && *doc[0] == '/' && doc[1] == (char *)NULL) { - fd = open (doc[0], O_RDONLY); - if (fd == -1) - { - builtin_error (_("%s: cannot open: %s"), doc[0], strerror (errno)); - return; - } + fd = open_helpfile (doc[0]); + if (fd < 0) + return; zcatfd (fd, 1, doc[0]); close (fd); } @@ -172,11 +214,124 @@ show_longdoc (i) printf ("%*s%s\n", BASE_INDENT, " ", _(doc[j])); } +static void +show_desc (name, i) + char *name; + int i; +{ + register int j; + char **doc, *line; + int fd, usefile; + + doc = (char **)shell_builtins[i].long_doc; + + usefile = (doc && doc[0] && *doc[0] == '/' && doc[1] == (char *)NULL); + if (usefile) + { + fd = open_helpfile (doc[0]); + if (fd < 0) + return; + zmapfd (fd, &line, doc[0]); + close (fd); + } + else + line = doc ? doc[0] : (char *)NULL; + + printf ("%s - ", name); + for (j = 0; line && line[j]; j++) + { + putchar (line[j]); + if (line[j] == '\n') + break; + } + + fflush (stdout); + + if (usefile) + free (line); +} + +/* Print builtin help in pseudo-manpage format. */ +static void +show_manpage (name, i) + char *name; + int i; +{ + register int j; + char **doc, *line; + int fd, usefile; + + doc = (char **)shell_builtins[i].long_doc; + + usefile = (doc && doc[0] && *doc[0] == '/' && doc[1] == (char *)NULL); + if (usefile) + { + fd = open_helpfile (doc[0]); + if (fd < 0) + return; + zmapfd (fd, &line, doc[0]); + close (fd); + } + else + line = doc ? _(doc[0]) : (char *)NULL; + + /* NAME */ + printf ("NAME\n"); + printf ("%*s%s - ", BASE_INDENT, " ", name); + for (j = 0; line && line[j]; j++) + { + putchar (line[j]); + if (line[j] == '\n') + break; + } + printf ("\n"); + + /* SYNOPSIS */ + printf ("SYNOPSIS\n"); + printf ("%*s%s\n\n", BASE_INDENT, " ", shell_builtins[i].short_doc); + + /* DESCRIPTION */ + printf ("DESCRIPTION\n"); + if (usefile == 0) + { + for (j = 0; doc[j]; j++) + printf ("%*s%s\n", BASE_INDENT, " ", _(doc[j])); + } + else + { + for (j = 0; line && line[j]; j++) + { + putchar (line[j]); + if (line[j] == '\n') + printf ("%*s", BASE_INDENT, " "); + } + } + putchar ('\n'); + + /* SEE ALSO */ + printf ("SEE ALSO\n"); + printf ("%*sbash(1)\n\n", BASE_INDENT, " "); + + /* IMPLEMENTATION */ + printf ("IMPLEMENTATION\n"); + printf ("%*s", BASE_INDENT, " "); + show_shell_version (0); + printf ("%*s", BASE_INDENT, " "); + printf ("%s\n", _(bash_copyright)); + printf ("%*s", BASE_INDENT, " "); + printf ("%s\n", _(bash_license)); + + fflush (stdout); + if (usefile) + free (line); +} + static void show_builtin_command_help () { int i, j; - char blurb[36]; + int height, width; + char *t, blurb[128]; printf ( _("These shell commands are defined internally. Type `help' to see this list.\n\ @@ -187,21 +342,42 @@ Use `man -k' or `info' to find out more about commands not in this list.\n\ A star (*) next to a name means that the command is disabled.\n\ \n")); - for (i = 0; i < num_shell_builtins; i++) + t = get_string_value ("COLUMNS"); + width = (t && *t) ? atoi (t) : 80; + if (width <= 0) + width = 80; + + width /= 2; + if (width > sizeof (blurb)) + width = sizeof (blurb); + height = (num_shell_builtins + 1) / 2; /* number of rows */ + + for (i = 0; i < height; i++) { QUIT; + + /* first column */ blurb[0] = (shell_builtins[i].flags & BUILTIN_ENABLED) ? ' ' : '*'; - strncpy (blurb + 1, shell_builtins[i].short_doc, 34); - blurb[35] = '\0'; + strncpy (blurb + 1, shell_builtins[i].short_doc, width - 2); + blurb[width - 2] = '>'; /* indicate truncation */ + blurb[width - 1] = '\0'; printf ("%s", blurb); + if (((i << 1) >= num_shell_builtins) || (i+height >= num_shell_builtins)) + { + printf ("\n"); + break; + } + + /* two spaces */ + for (j = strlen (blurb); j < width; j++) + putc (' ', stdout); - if (i % 2) - printf ("\n"); - else - for (j = strlen (blurb); j < 35; j++) - putc (' ', stdout); + /* second column */ + blurb[0] = (shell_builtins[i+height].flags & BUILTIN_ENABLED) ? ' ' : '*'; + strncpy (blurb + 1, shell_builtins[i+height].short_doc, width - 3); + blurb[width - 3] = '>'; /* indicate truncation */ + blurb[width - 2] = '\0'; + printf ("%s\n", blurb); } - if (i % 2) - printf ("\n"); } #endif /* HELP_BUILTIN */ diff --git a/builtins/history.def b/builtins/history.def index efee00521..e8249e990 100644 --- a/builtins/history.def +++ b/builtins/history.def @@ -1,51 +1,58 @@ This file is history.def, from which is created history.c. It implements the builtin "history" in Bash. -Copyright (C) 1987-2003 Free Software Foundation, Inc. +Copyright (C) 1987-2009 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 free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. -Bash is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. +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. +You should have received a copy of the GNU General Public License +along with Bash. If not, see . $PRODUCES history.c $BUILTIN history $FUNCTION history_builtin $DEPENDS_ON HISTORY -$SHORT_DOC history [-c] [-d offset] [n] or history -awrn [filename] or history -ps arg [arg...] -Display the history list with line numbers. Lines listed with -with a `*' have been modified. Argument of N says to list only -the last N lines. The `-c' option causes the history list to be -cleared by deleting all of the entries. The `-d' option deletes -the history entry at offset OFFSET. The `-w' option writes out the -current history to the history file; `-r' means to read the file and -append the contents to the history list instead. `-a' means -to append history lines from this session to the history file. -Argument `-n' means to read all history lines not already read -from the history file and append them to the history list. - -If FILENAME is given, then that is used as the history file else +$SHORT_DOC history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg [arg...] +Display or manipulate the history list. + +Display the history list with line numbers, prefixing each modified +entry with a `*'. An argument of N lists only the last N entries. + +Options: + -c clear the history list by deleting all of the entries + -d offset delete the history entry at offset OFFSET. + + -a append history lines from this session to the history file + -n read all history lines not already read from the history file + -r read the history file and append the contents to the history + list + -w write the current history to the history file + and append them to the history list + + -p perform history expansion on each ARG and display the result + without storing it in the history list + -s append the ARGs to the history list as a single entry + +If FILENAME is given, it is used as the history file. Otherwise, if $HISTFILE has a value, that is used, else ~/.bash_history. -If the -s option is supplied, the non-option ARGs are appended to -the history list as a single entry. The -p option means to perform -history expansion on each ARG and display the result, without storing -anything in the history list. If the $HISTTIMEFORMAT variable is set and not null, its value is used as a format string for strftime(3) to print the time stamp associated with each displayed history entry. No time stamps are printed otherwise. + +Exit Status: +Returns success unless an invalid option is given or an error occurs. $END #include @@ -79,11 +86,8 @@ extern int errno; extern int current_command_line_count; extern int force_append_history; /* shopt -s histappend */ -int delete_last_history __P((void)); - static char *histtime __P((HIST_ENTRY *, const char *)); -static void display_history __P((WORD_LIST *)); -static int delete_histent __P((int)); +static int display_history __P((WORD_LIST *)); static void push_history __P((WORD_LIST *)); static int expand_and_print_history __P((WORD_LIST *)); @@ -154,7 +158,7 @@ history_builtin (list) /* clear the history, but allow other arguments to add to it again. */ if (flags & CFLAG) { - clear_history (); + bash_clear_history (); if (list == 0) return (EXECUTION_SUCCESS); } @@ -170,7 +174,7 @@ history_builtin (list) { if (list) return (expand_and_print_history (list)); - return (EXECUTION_SUCCESS); + return (sh_chkwrite (EXECUTION_SUCCESS)); } #endif else if (flags & DFLAG) @@ -183,7 +187,7 @@ history_builtin (list) return (EXECUTION_FAILURE); } opt = delete_offset; - result = delete_histent (opt - history_base); + result = bash_delete_histent (opt - history_base); /* Since remove_history changes history_length, this can happen if we delete the last history entry. */ if (where_history () > history_length) @@ -192,8 +196,8 @@ history_builtin (list) } else if ((flags & (AFLAG|RFLAG|NFLAG|WFLAG|CFLAG)) == 0) { - display_history (list); - return (EXECUTION_SUCCESS); + result = display_history (list); + return (sh_chkwrite (result)); } filename = list ? list->word->word : get_string_value ("HISTFILE"); @@ -255,7 +259,7 @@ histtime (hlist, histtimefmt) return timestr; } -static void +static int display_history (list) WORD_LIST *list; { @@ -266,7 +270,9 @@ display_history (list) if (list) { - limit = get_numeric_arg (list, 0); + if (get_numeric_arg (list, 0, &limit) == 0) + return (EXECUTION_FAILURE); + if (limit < 0) limit = -limit; } @@ -285,7 +291,6 @@ display_history (list) else i = 0; - histtimefmt = get_string_value ("HISTTIMEFORMAT"); while (hlist[i]) @@ -300,48 +305,8 @@ display_history (list) i++; } } -} - -/* Delete and free the history list entry at offset I. */ -static int -delete_histent (i) - int i; -{ - HIST_ENTRY *discard; - - discard = remove_history (i); - if (discard) - free_history_entry (discard); - - return 1; -} - -int -delete_last_history () -{ - register int i; - HIST_ENTRY **hlist, *histent; - int r; - - hlist = history_list (); - if (hlist == NULL) - return 0; - - for (i = 0; hlist[i]; i++) - ; - i--; - - /* History_get () takes a parameter that must be offset by history_base. */ - histent = history_get (history_base + i); /* Don't free this */ - if (histent == NULL) - return 0; - - r = delete_histent (i); - - if (where_history () > history_length) - history_set_pos (history_length); - return r; + return (EXECUTION_SUCCESS); } /* Remove the last entry in the history list and add each argument in @@ -359,12 +324,12 @@ push_history (list) If you don't want history -s to remove the compound command from the history, change #if 0 to #if 1 below. */ #if 0 - if (hist_last_line_pushed == 0 && hist_last_line_added && delete_last_history () == 0) + if (hist_last_line_pushed == 0 && hist_last_line_added && bash_delete_last_history () == 0) #else if (hist_last_line_pushed == 0 && (hist_last_line_added || (current_command_line_count > 0 && current_command_first_line_saved && command_oriented_history)) - && delete_last_history () == 0) + && bash_delete_last_history () == 0) #endif return; @@ -389,7 +354,7 @@ expand_and_print_history (list) char *s; int r, result; - if (hist_last_line_pushed == 0 && hist_last_line_added && delete_last_history () == 0) + if (hist_last_line_pushed == 0 && hist_last_line_added && bash_delete_last_history () == 0) return EXECUTION_FAILURE; result = EXECUTION_SUCCESS; while (list) diff --git a/builtins/inlib.def b/builtins/inlib.def index 094c4b949..c4faf0d53 100644 --- a/builtins/inlib.def +++ b/builtins/inlib.def @@ -5,19 +5,18 @@ Copyright (C) 1987-2002 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 free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. -Bash is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. +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. +You should have received a copy of the GNU General Public License +along with Bash. If not, see . $PRODUCES inlib.c #include @@ -29,12 +28,17 @@ $BUILTIN inlib $FUNCTION inlib_builtin $DEPENDS_ON apollo $SHORT_DOC inlib pathname [pathname...] +Install user-supplied library. + Install a user-supplied library specified by pathname in the current shell process. The library is used to resolve external references in programs and libraries loaded after its installation. Note that the library is not loaded into the address space unless it is needed to resolve an external reference. The list of inlibed libraries is passed to all children of the current shell. + +Exit Status: +Returns success unless PATHNAME is not found or an error occurs. $END #if defined (apollo) @@ -64,7 +68,7 @@ inlib_builtin (list) if (status.all != status_$ok) { - builtin_error ("%s: inlib failed", list->word->word); + builtin_error (_("%s: inlib failed"), list->word->word); return_value = EXECUTION_FAILURE; } diff --git a/builtins/jobs.def b/builtins/jobs.def index 4c3ba6a73..b14e91f24 100644 --- a/builtins/jobs.def +++ b/builtins/jobs.def @@ -1,23 +1,22 @@ This file is jobs.def, from which is created jobs.c. It implements the builtins "jobs" and "disown" in Bash. -Copyright (C) 1987-2005 Free Software Foundation, Inc. +Copyright (C) 1987-2009 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 free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. -Bash is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. +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. +You should have received a copy of the GNU General Public License +along with Bash. If not, see . $PRODUCES jobs.c @@ -25,15 +24,26 @@ $BUILTIN jobs $FUNCTION jobs_builtin $DEPENDS_ON JOB_CONTROL $SHORT_DOC jobs [-lnprs] [jobspec ...] or jobs -x command [args] -Lists the active jobs. The -l option lists process id's in addition -to the normal information; the -p option lists process id's only. -If -n is given, only processes that have changed status since the last -notification are printed. JOBSPEC restricts output to that job. The --r and -s options restrict output to running and stopped jobs only, -respectively. Without options, the status of all active jobs is -printed. If -x is given, COMMAND is run after all job specifications -that appear in ARGS have been replaced with the process ID of that job's +Display status of jobs. + +Lists the active jobs. JOBSPEC restricts output to that job. +Without options, the status of all active jobs is displayed. + +Options: + -l lists process IDs in addition to the normal information + -n list only processes that have changed status since the last + notification + -p lists process IDs only + -r restrict output to running jobs + -s restrict output to stopped jobs + +If -x is supplied, COMMAND is run after all job specifications that +appear in ARGS have been replaced with the process ID of that job's process group leader. + +Exit Status: +Returns success unless an invalid option is given or an error occurs. +If -x is used, returns the exit status of COMMAND. $END #include @@ -203,11 +213,19 @@ $BUILTIN disown $FUNCTION disown_builtin $DEPENDS_ON JOB_CONTROL $SHORT_DOC disown [-h] [-ar] [jobspec ...] -By default, removes each JOBSPEC argument from the table of active jobs. -If the -h option is given, the job is not removed from the table, but is -marked so that SIGHUP is not sent to the job if the shell receives a -SIGHUP. The -a option, when JOBSPEC is not supplied, means to remove all -jobs from the job table; the -r option means to remove only running jobs. +Remove jobs from current shell. + +Removes each JOBSPEC argument from the table of active jobs. Without +any JOBSPECs, the shell uses its notion of the current job. + +Options: + -a remove all jobs if JOBSPEC is not supplied + -h mark each JOBSPEC so that SIGHUP is not sent to the job if the + shell receives a SIGHUP + -r remove only running jobs + +Exit Status: +Returns success unless an invalid option or JOBSPEC is given. $END #if defined (JOB_CONTROL) @@ -261,7 +279,7 @@ disown_builtin (list) if (job == NO_JOB || jobs == 0 || INVALID_JOB (job)) { - sh_badjob (list ? list->word->word : "current"); + sh_badjob (list ? list->word->word : _("current")); retval = EXECUTION_FAILURE; } else if (nohup_only) diff --git a/builtins/kill.def b/builtins/kill.def index bedbb1a6d..734da250e 100644 --- a/builtins/kill.def +++ b/builtins/kill.def @@ -1,36 +1,46 @@ This file is kill.def, from which is created kill.c. It implements the builtin "kill" in Bash. -Copyright (C) 1987-2005 Free Software Foundation, Inc. +Copyright (C) 1987-2009 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 free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. -Bash is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. +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. +You should have received a copy of the GNU General Public License +along with Bash. If not, see . $PRODUCES kill.c $BUILTIN kill $FUNCTION kill_builtin $SHORT_DOC kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec] -Send the processes named by PID (or JOBSPEC) the signal SIGSPEC. If -SIGSPEC is not present, then SIGTERM is assumed. An argument of `-l' -lists the signal names; if arguments follow `-l' they are assumed to -be signal numbers for which names should be listed. Kill is a shell -builtin for two reasons: it allows job IDs to be used instead of -process IDs, and, if you have reached the limit on processes that -you can create, you don't have to start a process to kill another one. +Send a signal to a job. + +Send the processes identified by PID or JOBSPEC the signal named by +SIGSPEC or SIGNUM. If neither SIGSPEC nor SIGNUM is present, then +SIGTERM is assumed. + +Options: + -s sig SIG is a signal name + -n sig SIG is a signal number + -l list the signal names; if arguments follow `-l' they are + assumed to be signal numbers for which names should be listed + +Kill is a shell builtin for two reasons: it allows job IDs to be used +instead of process IDs, and allows processes to be killed if the limit +on processes that you can create is reached. + +Exit Status: +Returns success unless an invalid option is given or an error occurs. $END #include diff --git a/builtins/let.def b/builtins/let.def index ab43a4542..2601fb95f 100644 --- a/builtins/let.def +++ b/builtins/let.def @@ -1,33 +1,34 @@ This file is let.def, from which is created let.c. It implements the builtin "let" in Bash. -Copyright (C) 1987-2002 Free Software Foundation, Inc. +Copyright (C) 1987-2009 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 free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. -Bash is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. +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. +You should have received a copy of the GNU General Public License +along with Bash. If not, see . $BUILTIN let $FUNCTION let_builtin $PRODUCES let.c $SHORT_DOC let arg [arg ...] -Each ARG is an arithmetic expression to be evaluated. Evaluation -is done in fixed-width integers with no check for overflow, though -division by 0 is trapped and flagged as an error. The following -list of operators is grouped into levels of equal-precedence operators. -The levels are listed in order of decreasing precedence. +Evaluate arithmetic expressions. + +Evaluate each ARG as an arithmetic expression. Evaluation is done in +fixed-width integers with no check for overflow, though division by 0 +is trapped and flagged as an error. The following list of operators is +grouped into levels of equal-precedence operators. The levels are listed +in order of decreasing precedence. id++, id-- variable post-increment, post-decrement ++id, --id variable pre-increment, pre-decrement @@ -59,8 +60,8 @@ Operators are evaluated in order of precedence. Sub-expressions in parentheses are evaluated first and may override the precedence rules above. -If the last ARG evaluates to 0, let returns 1; 0 is returned -otherwise. +Exit Status: +If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise.. $END #include diff --git a/builtins/mapfile.def b/builtins/mapfile.def new file mode 100644 index 000000000..32742ee1f --- /dev/null +++ b/builtins/mapfile.def @@ -0,0 +1,317 @@ +This file is mapfile.def, from which is created mapfile.c. +It implements the builtin "mapfile" in Bash. + +Copyright (C) 2005-2006 Rocky Bernstein for Free Software Foundation, Inc. +Copyright (C) 2008,2009 Free Software Foundation, Inc. + +This file is part of GNU Bash, the Bourne Again SHell. + +Bash is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Bash is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Bash. If not, see . + +$PRODUCES mapfile.c + +$BUILTIN mapfile +$FUNCTION mapfile_builtin +$SHORT_DOC mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array] +Read lines from a file into an array variable. + +Read lines from the standard input into the array variable ARRAY, or from +file descriptor FD if the -u option is supplied. The variable MAPFILE is +the default ARRAY. + +Options: + -n count Copy at most COUNT lines. If COUNT is 0, all lines are copied. + -O origin Begin assigning to ARRAY at index ORIGIN. The default index is 0. + -s count Discard the first COUNT lines read. + -t Remove a trailing newline from each line read. + -u fd Read lines from file descriptor FD instead of the standard input. + -C callback Evaluate CALLBACK each time QUANTUM lines are read. + -c quantum Specify the number of lines read between each call to CALLBACK. + +Arguments: + ARRAY Array variable name to use for file data. + +If -C is supplied without -c, the default quantum is 5000. + +If not supplied with an explicit origin, mapfile will clear ARRAY before +assigning to it. + +Exit Status: +Returns success unless an invalid option is given or ARRAY is readonly. +$END + +#include + +#include "builtins.h" +#include "posixstat.h" + +#if defined (HAVE_UNISTD_H) +# include +#endif + +#include "bashansi.h" + +#include +#include + +#include "../bashintl.h" +#include "../shell.h" +#include "common.h" +#include "bashgetopt.h" + + +#if !defined (errno) +extern int errno; +#endif + +#if defined (ARRAY_VARS) + +#define DEFAULT_ARRAY_NAME "MAPFILE" + +/* The value specifying how frequently `mapfile' calls the callback. */ +#define DEFAULT_QUANTUM 5000 + +/* Values for FLAGS */ +#define MAPF_CLEARARRAY 0x01 +#define MAPF_CHOP 0x02 + +static int +run_callback(callback, current_index) + const char *callback; + unsigned int current_index; +{ + unsigned int execlen; + char *execstr; + + execlen = strlen (callback) + 10; + /* 1 for space between %s and %d, + another 1 for the last nul char for C string. */ + execlen += 2; + execstr = xmalloc (execlen); + + snprintf (execstr, execlen, "%s %d", callback, current_index); + return parse_and_execute(execstr, NULL, 0); +} + +static void +do_chop(line) + char * line; +{ + int length; + + length = strlen (line); + if (length && line[length-1] == '\n') + line[length-1] = '\0'; +} + +static int +mapfile (fd, line_count_goal, origin, nskip, callback_quantum, callback, array_name, flags) + int fd; + long line_count_goal, origin, nskip, callback_quantum; + char *callback, *array_name; + int flags; +{ + char *line; + size_t line_length; + unsigned int array_index, line_count; + SHELL_VAR *entry; + int unbuffered_read; + + line = NULL; + line_length = 0; + unbuffered_read = 0; + + /* The following check should be done before reading any lines. Doing it + here allows us to call bind_array_element instead of bind_array_variable + and skip the variable lookup on every call. */ + entry = find_or_make_array_variable (array_name, 1); + if (entry == 0) + return (EXECUTION_FAILURE); + if (flags & MAPF_CLEARARRAY) + array_flush (array_cell (entry)); + +#ifndef __CYGWIN__ + unbuffered_read = (lseek (fd, 0L, SEEK_CUR) < 0) && (errno == ESPIPE); +#else + unbuffered_read = 1; +#endif + + /* Skip any lines at beginning of file? */ + for (line_count = 0; line_count < nskip; line_count++) + zgetline(fd, &line, &line_length, unbuffered_read); + line = 0; + line_length = 0; + + /* Reset the buffer for bash own stream */ + for (array_index = origin, line_count = 0; + zgetline(fd, &line, &line_length, unbuffered_read) != -1; + array_index++, line_count++) + { + /* Have we exceeded # of lines to store? */ + if (line_count_goal != 0 && line_count >= line_count_goal) + break; + + /* Remove trailing newlines? */ + if (flags & MAPF_CHOP) + do_chop (line); + + /* Has a callback been registered and if so is it time to call it? */ + if (callback && line_count && (line_count % callback_quantum) == 0) + { + run_callback (callback, array_index); + + /* Reset the buffer for bash own stream. */ + if (unbuffered_read == 0) + zsyncfd (fd); + } + + bind_array_element (entry, array_index, line, 0); + } + + xfree (line); + + if (unbuffered_read == 0) + zsyncfd (fd); + + return EXECUTION_SUCCESS; +} + +int +mapfile_builtin (list) + WORD_LIST *list; +{ + int opt, code, fd, clear_array, flags; + intmax_t intval; + long lines, origin, nskip, callback_quantum; + char *array_name, *callback; + + clear_array = 1; + fd = 0; + lines = origin = nskip = 0; + flags = MAPF_CLEARARRAY; + callback_quantum = DEFAULT_QUANTUM; + callback = 0; + + reset_internal_getopt (); + while ((opt = internal_getopt (list, "u:n:O:tC:c:s:")) != -1) + { + switch (opt) + { + case 'u': + code = legal_number (list_optarg, &intval); + if (code == 0 || intval < 0 || intval != (int)intval) + { + builtin_error (_("%s: invalid file descriptor specification"), list_optarg); + return (EXECUTION_FAILURE); + } + else + fd = intval; + + if (sh_validfd (fd) == 0) + { + builtin_error (_("%d: invalid file descriptor: %s"), fd, strerror (errno)); + return (EXECUTION_FAILURE); + } + break; + + case 'n': + code = legal_number (list_optarg, &intval); + if (code == 0 || intval < 0 || intval != (unsigned)intval) + { + builtin_error (_("%s: invalid line count"), list_optarg); + return (EXECUTION_FAILURE); + } + else + lines = intval; + break; + + case 'O': + code = legal_number (list_optarg, &intval); + if (code == 0 || intval < 0 || intval != (unsigned)intval) + { + builtin_error (_("%s: invalid array origin"), list_optarg); + return (EXECUTION_FAILURE); + } + else + origin = intval; + flags &= ~MAPF_CLEARARRAY; + break; + case 't': + flags |= MAPF_CHOP; + break; + case 'C': + callback = list_optarg; + break; + case 'c': + code = legal_number (list_optarg, &intval); + if (code == 0 || intval < 0 || intval != (unsigned)intval) + { + builtin_error (_("%s: invalid callback quantum"), list_optarg); + return (EXECUTION_FAILURE); + } + else + callback_quantum = intval; + break; + case 's': + code = legal_number (list_optarg, &intval); + if (code == 0 || intval < 0 || intval != (unsigned)intval) + { + builtin_error (_("%s: invalid line count"), list_optarg); + return (EXECUTION_FAILURE); + } + else + nskip = intval; + break; + default: + builtin_usage (); + return (EX_USAGE); + } + } + list = loptend; + + if (list == 0) + array_name = DEFAULT_ARRAY_NAME; + else if (list->word == 0 || list->word->word == 0) + { + builtin_error ("internal error: getting variable name"); + return (EXECUTION_FAILURE); + } + else if (list->word->word[0] == '\0') + { + builtin_error (_("empty array variable name")); + return (EX_USAGE); + } + else + array_name = list->word->word; + + if (legal_identifier (array_name) == 0 && valid_array_reference (array_name) == 0) + { + sh_invalidid (array_name); + return (EXECUTION_FAILURE); + } + + return mapfile (fd, lines, origin, nskip, callback_quantum, callback, array_name, flags); +} + +#else + +int +mapfile_builtin (list) + WORD_LIST *list; +{ + builtin_error (_("array variable support required")); + return (EXECUTION_FAILURE); +} + +#endif /* ARRAY_VARS */ diff --git a/builtins/mkbuiltins.c b/builtins/mkbuiltins.c index ff0bdc090..cdd45e404 100644 --- a/builtins/mkbuiltins.c +++ b/builtins/mkbuiltins.c @@ -1,23 +1,23 @@ /* mkbuiltins.c - Create builtins.c, builtext.h, and builtdoc.c from a single source file called builtins.def. */ -/* Copyright (C) 1987-2006 Free Software Foundation, Inc. +/* Copyright (C) 1987-2009 Free Software Foundation, Inc. -This file is part of GNU Bash, the Bourne Again SHell. + 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. -Bash is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. + 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #if !defined (CROSS_COMPILING) # include @@ -71,6 +71,7 @@ extern char *strcpy (); /* Flag values that builtins can have. */ #define BUILTIN_FLAG_SPECIAL 0x01 #define BUILTIN_FLAG_ASSIGNMENT 0x02 +#define BUILTIN_FLAG_POSIX_BUILTIN 0x04 #define BASE_INDENT 4 @@ -154,9 +155,18 @@ char *assignment_builtins[] = (char *)NULL }; +/* The builtin commands that are special to the POSIX search order. */ +char *posix_builtins[] = +{ + "alias", "bg", "cd", "command", "false", "fc", "fg", "getopts", "jobs", + "kill", "newgrp", "pwd", "read", "true", "umask", "unalias", "wait", + (char *)NULL +}; + /* Forward declarations. */ static int is_special_builtin (); static int is_assignment_builtin (); +static int is_posix_builtin (); #if !defined (HAVE_RENAME) static int rename (); @@ -800,6 +810,8 @@ builtin_handler (self, defs, arg) new->flags |= BUILTIN_FLAG_SPECIAL; if (is_assignment_builtin (name)) new->flags |= BUILTIN_FLAG_ASSIGNMENT; + if (is_posix_builtin (name)) + new->flags |= BUILTIN_FLAG_POSIX_BUILTIN; array_add ((char *)new, defs->builtins); building_builtin = 1; @@ -1080,23 +1092,23 @@ char *structfile_header[] = { "/* This file is manufactured by ./mkbuiltins, and should not be", " edited by hand. See the source to mkbuiltins for details. */", "", - "/* Copyright (C) 1987-2002 Free Software Foundation, Inc.", + "/* Copyright (C) 1987-2009 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 free software: you can redistribute it and/or modify", + " it under the terms of the GNU General Public License as published by", + " the Free Software Foundation, either version 3 of the License, or", + " (at your option) any later version.", "", - " Bash is distributed in the hope that it will be useful, but WITHOUT", - " ANY WARRANTY; without even the implied warranty of MERCHANTABILITY", - " or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public", - " License for more details.", + " 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. */", + " along with Bash. If not, see .", + "*/", "", "/* The list of shell builtins. Each element is name, function, flags,", " long-doc, short-doc. The long-doc field contains a pointer to an array", @@ -1217,14 +1229,15 @@ write_builtins (defs, structfile, externfile) else fprintf (structfile, "(sh_builtin_func_t *)0x0, "); - fprintf (structfile, "%s%s%s, %s_doc,\n", + fprintf (structfile, "%s%s%s%s, %s_doc,\n", "BUILTIN_ENABLED | STATIC_BUILTIN", (builtin->flags & BUILTIN_FLAG_SPECIAL) ? " | SPECIAL_BUILTIN" : "", (builtin->flags & BUILTIN_FLAG_ASSIGNMENT) ? " | ASSIGNMENT_BUILTIN" : "", + (builtin->flags & BUILTIN_FLAG_POSIX_BUILTIN) ? " | POSIX_BUILTIN" : "", document_name (builtin)); fprintf - (structfile, " \"%s\", (char *)NULL },\n", + (structfile, " N_(\"%s\"), (char *)NULL },\n", builtin->shortdoc ? builtin->shortdoc : builtin->name); } @@ -1561,6 +1574,13 @@ is_assignment_builtin (name) return (_find_in_table (name, assignment_builtins)); } +static int +is_posix_builtin (name) + char *name; +{ + return (_find_in_table (name, posix_builtins)); +} + #if !defined (HAVE_RENAME) static int rename (from, to) diff --git a/builtins/printf.def b/builtins/printf.def index 5a631677b..7f07d156c 100644 --- a/builtins/printf.def +++ b/builtins/printf.def @@ -1,39 +1,49 @@ This file is printf.def, from which is created printf.c. It implements the builtin "printf" in Bash. -Copyright (C) 1997-2007 Free Software Foundation, Inc. +Copyright (C) 1997-2009 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 free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. -Bash is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. +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, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA +You should have received a copy of the GNU General Public License +along with Bash. If not, see . $PRODUCES printf.c $BUILTIN printf $FUNCTION printf_builtin $SHORT_DOC printf [-v var] format [arguments] -printf formats and prints ARGUMENTS under control of the FORMAT. FORMAT -is a character string which contains three types of objects: plain -characters, which are simply copied to standard output, character escape -sequences which are converted and copied to the standard output, and +Formats and prints ARGUMENTS under control of the FORMAT. + +Options: + -v var assign the output to shell variable VAR rather than + display it on the standard output + +FORMAT is a character string which contains three types of objects: plain +characters, which are simply copied to standard output; character escape +sequences, which are converted and copied to the standard output; and format specifications, each of which causes printing of the next successive -argument. In addition to the standard printf(1) formats, %b means to -expand backslash escape sequences in the corresponding argument, and %q -means to quote the argument in a way that can be reused as shell input. -If the -v option is supplied, the output is placed into the value of the -shell variable VAR rather than being sent to the standard output. +argument. + +In addition to the standard format specifications described in printf(1) +and printf(3), printf interprets: + + %b expand backslash escape sequences in the corresponding argument + %q quote the argument in a way that can be reused as shell input + +Exit Status: +Returns success unless an invalid option is given or a write or assignment +error occurs. $END #include @@ -66,6 +76,7 @@ $END #include "../bashintl.h" #include "../shell.h" +#include "shmbutil.h" #include "stdc.h" #include "bashgetopt.h" #include "common.h" @@ -99,31 +110,22 @@ extern int errno; #define PF(f, func) \ do { \ - char *b = 0; \ int nw; \ clearerr (stdout); \ if (have_fieldwidth && have_precision) \ - nw = asprintf(&b, f, fieldwidth, precision, func); \ + nw = vflag ? vbprintf (f, fieldwidth, precision, func) : printf (f, fieldwidth, precision, func); \ else if (have_fieldwidth) \ - nw = asprintf(&b, f, fieldwidth, func); \ + nw = vflag ? vbprintf (f, fieldwidth, func) : printf (f, fieldwidth, func); \ else if (have_precision) \ - nw = asprintf(&b, f, precision, func); \ + nw = vflag ? vbprintf (f, precision, func) : printf (f, fieldwidth, func); \ else \ - nw = asprintf(&b, f, func); \ + nw = vflag ? vbprintf (f, func) : printf (f, func); \ tw += nw; \ - if (b) \ + if (ferror (stdout)) \ { \ - if (vflag) \ - (void)vbadd (b, nw); \ - else \ - (void)fputs (b, stdout); \ - if (ferror (stdout)) \ - { \ - sh_wrerror (); \ - clearerr (stdout); \ - return (EXECUTION_FAILURE); \ - } \ - free (b); \ + sh_wrerror (); \ + clearerr (stdout); \ + return (EXECUTION_FAILURE); \ } \ } while (0) @@ -148,6 +150,9 @@ extern int errno; vbsize = 0; \ vbuf = 0; \ } \ + else if (vbuf) \ + vbuf[0] = 0; \ + terminate_immediately--; \ fflush (stdout); \ if (ferror (stdout)) \ { \ @@ -165,11 +170,16 @@ extern int errno; extern int asprintf __P((char **, const char *, ...)) __attribute__((__format__ (printf, 2, 3))); #endif +#ifndef HAVE_VSNPRINTF +extern int vsnprintf __P((char *, size_t, const char *, ...)) __attribute__((__format__ (printf, 3, 4))); +#endif + static void printf_erange __P((char *)); 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 *vbadd __P((char *, int)); +static int vbprintf __P((const char *, ...)) __attribute__((__format__ (printf, 1, 2))); static char *mklong __P((char *, char *, size_t)); static int getchr __P((void)); static char *getstr __P((void)); @@ -188,7 +198,7 @@ typedef double floatmax_t; #endif static floatmax_t getfloatmax __P((void)); -static int asciicode __P((void)); +static intmax_t asciicode __P((void)); static WORD_LIST *garglist; static int retval; @@ -228,6 +238,8 @@ printf_builtin (list) { vflag = 1; vblen = 0; + if (vbuf) + vbuf[0] = 0; } else { @@ -259,6 +271,8 @@ printf_builtin (list) /* If the format string is empty after preprocessing, return immediately. */ if (format == 0 || *format == 0) return (EXECUTION_SUCCESS); + + terminate_immediately++; /* Basic algorithm is to scan the format string for conversion specifications -- once one is found, find out if the field @@ -554,7 +568,7 @@ static void printf_erange (s) char *s; { - builtin_error ("warning: %s: %s", s, strerror(ERANGE)); + builtin_error (_("warning: %s: %s"), s, strerror(ERANGE)); } /* We duplicate a lot of what printf(3) does here. */ @@ -577,7 +591,7 @@ printstr (fmt, string, len, fieldwidth, precision) #else if (string == 0 || len == 0) #endif - return; + return 0; #if 0 s = fmt; @@ -835,7 +849,7 @@ vbadd (buf, blen) if (blen == 1) vbuf[vblen++] = buf[0]; - else + else if (blen > 1) { FASTCOPY (buf, vbuf + vblen, blen); vblen += blen; @@ -850,6 +864,42 @@ vbadd (buf, blen) return vbuf; } +static int +#if defined (PREFER_STDARG) +vbprintf (const char *format, ...) +#else +vbprintf (format, va_alist) + const char *format; + va_dcl +#endif +{ + va_list args; + size_t nlen; + int blen; + + SH_VA_START (args, format); + blen = vsnprintf (vbuf + vblen, vbsize - vblen, format, args); + + nlen = vblen + blen + 1; + if (nlen >= vbsize) + { + vbsize = ((nlen + 63) >> 6) << 6; + vbuf = (char *)xrealloc (vbuf, vbsize); + blen = vsnprintf (vbuf + vblen, vbsize - vblen, format, args); + } + + va_end (args); + vblen += blen; + vbuf[vblen] = '\0'; + +#ifdef DEBUG + if (strlen (vbuf) != vblen) + internal_error ("printf:vbadd: vblen (%d) != strlen (vbuf) (%d)", vblen, (int)strlen (vbuf)); +#endif + + return (blen); +} + static char * mklong (str, modifiers, mlen) char *str; @@ -1014,12 +1064,28 @@ getfloatmax () } /* NO check is needed for garglist here. */ -static int +static intmax_t asciicode () { - register int ch; + register intmax_t ch; +#if defined (HANDLE_MULTIBYTE) + wchar_t wc; + size_t mblength, slen; +#endif + DECLARE_MBSTATE; + +#if defined (HANDLE_MULTIBYTE) + slen = strlen (garglist->word->word+1); + mblength = MBLEN (garglist->word->word+1, slen); + if (mblength > 1) + { + mblength = mbtowc (&wc, garglist->word->word+1, slen); + ch = wc; /* XXX */ + } + else +#endif + ch = (unsigned char)garglist->word->word[1]; - ch = garglist->word->word[1]; garglist = garglist->next; return (ch); } diff --git a/builtins/psize.c b/builtins/psize.c index 23abb6582..30881fb3f 100644 --- a/builtins/psize.c +++ b/builtins/psize.c @@ -4,19 +4,19 @@ 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public - License for more details. + 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. */ + along with Bash. If not, see . +*/ /* Write output in 128-byte chunks until we get a sigpipe or write gets an EPIPE. Then report how many bytes we wrote. We assume that this is the diff --git a/builtins/pushd.def b/builtins/pushd.def index 86c0bddb5..05b752927 100644 --- a/builtins/pushd.def +++ b/builtins/pushd.def @@ -1,94 +1,114 @@ This file is pushd.def, from which is created pushd.c. It implements the builtins "pushd", "popd", and "dirs" in Bash. -Copyright (C) 1987-2004 Free Software Foundation, Inc. +Copyright (C) 1987-2009 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 free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. -Bash is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. +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. +You should have received a copy of the GNU General Public License +along with Bash. If not, see . $PRODUCES pushd.c $BUILTIN pushd $FUNCTION pushd_builtin $DEPENDS_ON PUSHD_AND_POPD -$SHORT_DOC pushd [dir | +N | -N] [-n] +$SHORT_DOC pushd [-n] [+N | -N | dir] +Add directories to stack. + Adds a directory to the top of the directory stack, or rotates the stack, making the new top of the stack the current working directory. With no arguments, exchanges the top two directories. -+N Rotates the stack so that the Nth directory (counting +Options: + -n Suppresses the normal change of directory when adding + directories to the stack, so only the stack is manipulated. + +Arguments: + +N Rotates the stack so that the Nth directory (counting from the left of the list shown by `dirs', starting with zero) is at the top. --N Rotates the stack so that the Nth directory (counting + -N Rotates the stack so that the Nth directory (counting from the right of the list shown by `dirs', starting with zero) is at the top. --n suppress the normal change of directory when adding directories - to the stack, so only the stack is manipulated. - -dir adds DIR to the directory stack at the top, making it the + dir Adds DIR to the directory stack at the top, making it the new current working directory. -You can see the directory stack with the `dirs' command. +The `dirs' builtin displays the directory stack. + +Exit Status: +Returns success unless an invalid argument is supplied or the directory +change fails. $END $BUILTIN popd $FUNCTION popd_builtin $DEPENDS_ON PUSHD_AND_POPD -$SHORT_DOC popd [+N | -N] [-n] -Removes entries from the directory stack. With no arguments, -removes the top directory from the stack, and cd's to the new -top directory. +$SHORT_DOC popd [-n] [+N | -N] +Remove directories from stack. + +Removes entries from the directory stack. With no arguments, removes +the top directory from the stack, and changes to the new top directory. -+N removes the Nth entry counting from the left of the list +Options: + -n Suppresses the normal change of directory when removing + directories from the stack, so only the stack is manipulated. + +Arguments: + +N Removes the Nth entry counting from the left of the list shown by `dirs', starting with zero. For example: `popd +0' removes the first directory, `popd +1' the second. --N removes the Nth entry counting from the right of the list + -N Removes the Nth entry counting from the right of the list shown by `dirs', starting with zero. For example: `popd -0' removes the last directory, `popd -1' the next to last. --n suppress the normal change of directory when removing directories - from the stack, so only the stack is manipulated. +The `dirs' builtin displays the directory stack. -You can see the directory stack with the `dirs' command. +Exit Status: +Returns success unless an invalid argument is supplied or the directory +change fails. $END $BUILTIN dirs $FUNCTION dirs_builtin $DEPENDS_ON PUSHD_AND_POPD $SHORT_DOC dirs [-clpv] [+N] [-N] +Display directory stack. + Display the list of currently remembered directories. Directories find their way onto the list with the `pushd' command; you can get back up through the list with the `popd' command. -The -l flag specifies that `dirs' should not print shorthand versions -of directories which are relative to your home directory. This means -that `~/bin' might be displayed as `/homes/bfox/bin'. The -v flag -causes `dirs' to print the directory stack with one entry per line, -prepending the directory name with its position in the stack. The -p -flag does the same thing, but the stack position is not prepended. -The -c flag clears the directory stack by deleting all of the elements. +Options: + -c clear the directory stack by deleting all of the elements + -l do not print tilde-prefixed versions of directories relative + to your home directory + -p print the directory stack with one entry per line + -v print the directory stack with one entry per line prefixed + with its position in the stack -+N displays the Nth entry counting from the left of the list shown by +Arguments: + +N Displays the Nth entry counting from the left of the list shown by dirs when invoked without options, starting with zero. --N displays the Nth entry counting from the right of the list shown by + -N Displays the Nth entry counting from the right of the list shown by dirs when invoked without options, starting with zero. + +Exit Status: +Returns success unless an invalid option is supplied or an error occurs. $END #include @@ -448,7 +468,7 @@ dirs_builtin (list) if (index_flag) { putchar ('\n'); - return EXECUTION_SUCCESS; + return (sh_chkwrite (EXECUTION_SUCCESS)); } } @@ -473,8 +493,8 @@ dirs_builtin (list) printf ("%s%s", (vflag & 1) ? "\n" : " ", DIRSTACK_ENTRY (i)); putchar ('\n'); - fflush (stdout); - return (EXECUTION_SUCCESS); + + return (sh_chkwrite (EXECUTION_SUCCESS)); } static void @@ -483,9 +503,9 @@ pushd_error (offset, arg) char *arg; { if (offset == 0) - builtin_error ("directory stack empty"); + builtin_error (_("directory stack empty")); else - sh_erange (arg, "directory stack index"); + sh_erange (arg, _("directory stack index")); } static void @@ -660,66 +680,70 @@ get_directory_stack (flags) #ifdef LOADABLE_BUILTIN char * const dirs_doc[] = { - N_("Display the list of currently remembered directories. Directories"), - N_("find their way onto the list with the `pushd' command; you can get"), - N_("back up through the list with the `popd' command."), - N_(" "), - N_("The -l flag specifies that `dirs' should not print shorthand versions"), - N_("of directories which are relative to your home directory. This means"), - N_("that `~/bin' might be displayed as `/homes/bfox/bin'. The -v flag"), - N_("causes `dirs' to print the directory stack with one entry per line,"), - N_("prepending the directory name with its position in the stack. The -p"), - N_("flag does the same thing, but the stack position is not prepended."), - N_("The -c flag clears the directory stack by deleting all of the elements."), - N_(" "), - N_("+N displays the Nth entry counting from the left of the list shown by"), - N_(" dirs when invoked without options, starting with zero."), - N_(" "), - N_("-N displays the Nth entry counting from the right of the list shown by"), - N_(" dirs when invoked without options, starting with zero."), +N_("Display the list of currently remembered directories. Directories\n\ + find their way onto the list with the `pushd' command; you can get\n\ + back up through the list with the `popd' command.\n\ + \n\ + Options:\n\ + -c clear the directory stack by deleting all of the elements\n\ + -l do not print tilde-prefixed versions of directories relative\n\ + to your home directory\n\ + -p print the directory stack with one entry per line\n\ + -v print the directory stack with one entry per line prefixed\n\ + with its position in the stack\n\ + \n\ + Arguments:\n\ + +N Displays the Nth entry counting from the left of the list shown by\n\ + dirs when invoked without options, starting with zero.\n\ + \n\ + -N Displays the Nth entry counting from the right of the list shown by\n\ + dirs when invoked without options, starting with zero."), (char *)NULL }; char * const pushd_doc[] = { - N_("Adds a directory to the top of the directory stack, or rotates"), - N_("the stack, making the new top of the stack the current working"), - N_("directory. With no arguments, exchanges the top two directories."), - N_(" "), - N_("+N Rotates the stack so that the Nth directory (counting"), - N_(" from the left of the list shown by `dirs', starting with"), - N_(" zero) is at the top."), - N_(" "), - N_("-N Rotates the stack so that the Nth directory (counting"), - N_(" from the right of the list shown by `dirs', starting with"), - N_(" zero) is at the top."), - N_(" "), - N_("-n suppress the normal change of directory when adding directories"), - N_(" to the stack, so only the stack is manipulated."), - N_(" "), - N_("dir adds DIR to the directory stack at the top, making it the"), - N_(" new current working directory."), - N_(" "), - N_("You can see the directory stack with the `dirs' command."), +N_("Adds a directory to the top of the directory stack, or rotates\n\ + the stack, making the new top of the stack the current working\n\ + directory. With no arguments, exchanges the top two directories.\n\ + \n\ + Options:\n\ + -n Suppresses the normal change of directory when adding\n\ + directories to the stack, so only the stack is manipulated.\n\ + \n\ + Arguments:\n\ + +N Rotates the stack so that the Nth directory (counting\n\ + from the left of the list shown by `dirs', starting with\n\ + zero) is at the top.\n\ + \n\ + -N Rotates the stack so that the Nth directory (counting\n\ + from the right of the list shown by `dirs', starting with\n\ + zero) is at the top.\n\ + \n\ + dir Adds DIR to the directory stack at the top, making it the\n\ + new current working directory.\n\ + \n\ + The `dirs' builtin displays the directory stack."), (char *)NULL }; char * const popd_doc[] = { - N_("Removes entries from the directory stack. With no arguments,"), - N_("removes the top directory from the stack, and cd's to the new"), - N_("top directory."), - N_(" "), - N_("+N removes the Nth entry counting from the left of the list"), - N_(" shown by `dirs', starting with zero. For example: `popd +0'"), - N_(" removes the first directory, `popd +1' the second."), - N_(" "), - N_("-N removes the Nth entry counting from the right of the list"), - N_(" shown by `dirs', starting with zero. For example: `popd -0'"), - N_(" removes the last directory, `popd -1' the next to last."), - N_(" "), - N_("-n suppress the normal change of directory when removing directories"), - N_(" from the stack, so only the stack is manipulated."), - N_(" "), - N_("You can see the directory stack with the `dirs' command."), +N_("Removes entries from the directory stack. With no arguments, removes\n\ + the top directory from the stack, and changes to the new top directory.\n\ + \n\ + Options:\n\ + -n Suppresses the normal change of directory when removing\n\ + directories from the stack, so only the stack is manipulated.\n\ + \n\ + Arguments:\n\ + +N Removes the Nth entry counting from the left of the list\n\ + shown by `dirs', starting with zero. For example: `popd +0'\n\ + removes the first directory, `popd +1' the second.\n\ + \n\ + -N Removes the Nth entry counting from the right of the list\n\ + shown by `dirs', starting with zero. For example: `popd -0'\n\ + removes the last directory, `popd -1' the next to last.\n\ + \n\ + The `dirs' builtin displays the directory stack."), (char *)NULL }; diff --git a/builtins/read.def b/builtins/read.def index afa549ed9..c93681edb 100644 --- a/builtins/read.def +++ b/builtins/read.def @@ -1,50 +1,63 @@ This file is read.def, from which is created read.c. It implements the builtin "read" in Bash. -Copyright (C) 1987-2005 Free Software Foundation, Inc. +Copyright (C) 1987-2009 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 free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. -Bash is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. +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. +You should have received a copy of the GNU General Public License +along with Bash. If not, see . $PRODUCES read.c $BUILTIN read $FUNCTION read_builtin -$SHORT_DOC read [-ers] [-u fd] [-t timeout] [-p prompt] [-a array] [-n nchars] [-d delim] [name ...] -One line is read from the standard input, or from file descriptor FD if the --u option is supplied, and the first word is assigned to the first NAME, -the second word to the second NAME, and so on, with leftover words assigned -to the last NAME. Only the characters found in $IFS are recognized as word -delimiters. If no NAMEs are supplied, the line read is stored in the REPLY -variable. If the -r option is given, this signifies `raw' input, and -backslash escaping is disabled. The -d option causes read to continue -until the first character of DELIM is read, rather than newline. If the -p -option is supplied, the string PROMPT is output without a trailing newline -before attempting to read. If -a is supplied, the words read are assigned -to sequential indices of ARRAY, starting at zero. If -e is supplied and -the shell is interactive, readline is used to obtain the line. If -n is -supplied with a non-zero NCHARS argument, read returns after NCHARS -characters have been read. The -s option causes input coming from a -terminal to not be echoed. - -The -t option causes read to time out and return failure if a complete line -of input is not read within TIMEOUT seconds. If the TMOUT variable is set, -its value is the default timeout. The return code is zero, unless end-of-file -is encountered, read times out, or an invalid file descriptor is supplied as -the argument to -u. +$SHORT_DOC read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-p prompt] [-t timeout] [-u fd] [name ...] +Read a line from the standard input and split it into fields. + +Reads a single line from the standard input, or from file descriptor FD +if the -u option is supplied. The line is split into fields as with word +splitting, and the first word is assigned to the first NAME, the second +word to the second NAME, and so on, with any leftover words assigned to +the last NAME. Only the characters found in $IFS are recognized as word +delimiters. + +If no NAMEs are supplied, the line read is stored in the REPLY variable. + +Options: + -a array assign the words read to sequential indices of the array + variable ARRAY, starting at zero + -d delim continue until the first character of DELIM is read, rather + than newline + -e use Readline to obtain the line in an interactive shell + -i text Use TEXT as the initial text for Readline + -n nchars return after reading NCHARS characters rather than waiting + for a newline + -p prompt output the string PROMPT without a trailing newline before + attempting to read + -r do not allow backslashes to escape any characters + -s do not echo input coming from a terminal + -t timeout time out and return failure if a complete line of input is + not read withint TIMEOUT seconds. The value of the TMOUT + variable is the default timeout. TIMEOUT may be a + fractional number. If TIMEOUT is 0, read returns success only + if input is available on the specified file descriptor. The + exit status is greater than 128 if the timeout is exceeded + -u fd read from file descriptor FD instead of the standard input + +Exit Status: +The return code is zero, unless end-of-file is encountered, read times out, +or an invalid file descriptor is supplied as the argument to -u. $END #include @@ -54,6 +67,8 @@ $END #include +#include "bashansi.h" + #if defined (HAVE_UNISTD_H) # include #endif @@ -87,13 +102,24 @@ $END extern int errno; #endif +struct ttsave +{ + int fd; + TTYSTRUCT *attrs; +}; + #if defined (READLINE) static void reset_attempted_completion_function __P((char *)); -static char *edit_line __P((char *)); +static int set_itext __P((void)); +static char *edit_line __P((char *, char *)); static void set_eol_delim __P((int)); static void reset_eol_delim __P((char *)); #endif static SHELL_VAR *bind_read_variable __P((char *, char *)); +#if defined (HANDLE_MULTIBYTE) +static int read_mbchar __P((int, char *, int, int, int)); +#endif +static void ttyrestore __P((struct ttsave *)); static sighandler sigalrm __P((int)); static void reset_alarm __P((void)); @@ -113,7 +139,7 @@ static void reset_alarm () { set_signal_handler (SIGALRM, old_alrm); - alarm (0); + falarm (0, 0); } /* Read the value of the shell variables whose names follow. @@ -130,18 +156,21 @@ read_builtin (list) int size, i, nr, pass_next, saw_escape, eof, opt, retval, code, print_ps2; int input_is_tty, input_is_pipe, unbuffered_read, skip_ctlesc, skip_ctlnul; int raw, edit, nchars, silent, have_timeout, fd; - unsigned int tmout; + unsigned int tmsec, tmusec; + long ival, uval; intmax_t intval; char c; char *input_string, *orig_input_string, *ifs_chars, *prompt, *arrayname; char *e, *t, *t1, *ps2, *tofree; struct stat tsb; SHELL_VAR *var; + TTYSTRUCT ttattrs, ttset; + struct ttsave termsave; #if defined (ARRAY_VARS) WORD_LIST *alist; #endif #if defined (READLINE) - char *rlbuf; + char *rlbuf, *itext; int rlind; #endif @@ -153,7 +182,8 @@ read_builtin (list) USE_VAR(input_is_pipe); /* USE_VAR(raw); */ USE_VAR(edit); - USE_VAR(tmout); + USE_VAR(tmsec); + USE_VAR(tmusec); USE_VAR(nchars); USE_VAR(silent); USE_VAR(ifs_chars); @@ -162,6 +192,7 @@ read_builtin (list) #if defined (READLINE) USE_VAR(rlbuf); USE_VAR(rlind); + USE_VAR(itext); #endif USE_VAR(list); USE_VAR(ps2); @@ -173,16 +204,16 @@ read_builtin (list) fd = 0; /* file descriptor to read from */ #if defined (READLINE) - rlbuf = (char *)0; + rlbuf = itext = (char *)0; rlind = 0; #endif - tmout = 0; /* no timeout */ + tmsec = tmusec = 0; /* no timeout */ nr = nchars = input_is_tty = input_is_pipe = unbuffered_read = have_timeout = 0; delim = '\n'; /* read until newline */ reset_internal_getopt (); - while ((opt = internal_getopt (list, "ersa:d:n:p:t:u:")) != -1) + while ((opt = internal_getopt (list, "ersa:d:i:n:p:t:u:")) != -1) { switch (opt) { @@ -198,6 +229,11 @@ read_builtin (list) case 'e': #if defined (READLINE) edit = 1; +#endif + break; + case 'i': +#if defined (READLINE) + itext = list_optarg; #endif break; #if defined (ARRAY_VARS) @@ -206,8 +242,8 @@ read_builtin (list) break; #endif case 't': - code = legal_number (list_optarg, &intval); - if (code == 0 || intval < 0 || intval != (unsigned int)intval) + code = uconvert (list_optarg, &ival, &uval); + if (code == 0 || ival < 0 || uval < 0) { builtin_error (_("%s: invalid timeout specification"), list_optarg); return (EXECUTION_FAILURE); @@ -215,7 +251,8 @@ read_builtin (list) else { have_timeout = 1; - tmout = intval; + tmsec = ival; + tmusec = uval; } break; case 'n': @@ -256,24 +293,34 @@ read_builtin (list) /* `read -t 0 var' returns failure immediately. XXX - should it test whether input is available with select/FIONREAD, and fail if those are unavailable? */ - if (have_timeout && tmout == 0) + if (have_timeout && tmsec == 0 && tmusec == 0) +#if 0 return (EXECUTION_FAILURE); +#else + return (input_avail (fd) ? EXECUTION_SUCCESS : EXECUTION_FAILURE); +#endif /* IF IFS is unset, we use the default of " \t\n". */ ifs_chars = getifs (); if (ifs_chars == 0) /* XXX - shouldn't happen */ ifs_chars = ""; + for (skip_ctlesc = skip_ctlnul = 0, e = ifs_chars; *e; e++) + skip_ctlesc |= *e == CTLESC, skip_ctlnul |= *e == CTLNUL; input_string = (char *)xmalloc (size = 112); /* XXX was 128 */ + input_string[0] = '\0'; /* $TMOUT, if set, is the default timeout for read. */ if (have_timeout == 0 && (e = get_string_value ("TMOUT"))) { - code = legal_number (e, &intval); - if (code == 0 || intval < 0 || intval != (unsigned int)intval) - tmout = 0; + code = uconvert (e, &ival, &uval); + if (code == 0 || ival < 0 || uval < 0) + tmsec = tmusec = 0; else - tmout = intval; + { + tmsec = ival; + tmusec = uval; + } } begin_unwind_frame ("read_builtin"); @@ -296,6 +343,9 @@ read_builtin (list) if ((prompt || edit || silent) && input_is_tty == 0) { prompt = (char *)NULL; +#if defined (READLINE) + itext = (char *)NULL; +#endif edit = silent = 0; } @@ -304,30 +354,30 @@ read_builtin (list) add_unwind_protect (xfree, rlbuf); #endif - if (prompt && edit == 0) - { - fprintf (stderr, "%s", prompt); - fflush (stderr); - } - pass_next = 0; /* Non-zero signifies last char was backslash. */ saw_escape = 0; /* Non-zero signifies that we saw an escape char */ - if (tmout > 0) + if (tmsec > 0 || tmusec > 0) { /* Turn off the timeout if stdin is a regular file (e.g. from input redirection). */ if ((fstat (fd, &tsb) < 0) || S_ISREG (tsb.st_mode)) - tmout = 0; + tmsec = tmusec = 0; } - if (tmout > 0) + if (tmsec > 0 || tmusec > 0) { code = setjmp (alrmbuf); if (code) { +#if 0 run_unwind_frame ("read_builtin"); return (EXECUTION_FAILURE); +#else + input_string[i] = '\0'; /* make sure it's terminated */ + retval = 128+SIGALRM;; + goto assign_vars; +#endif } old_alrm = set_signal_handler (SIGALRM, sigalrm); add_unwind_protect (reset_alarm, (char *)NULL); @@ -335,7 +385,7 @@ read_builtin (list) if (edit) add_unwind_protect (reset_attempted_completion_function, (char *)NULL); #endif - alarm (tmout); + falarm (tmsec, tmusec); } /* If we've been asked to read only NCHARS chars, or we're using some @@ -361,29 +411,46 @@ read_builtin (list) #endif if (input_is_tty) { - ttsave (); + /* ttsave() */ + termsave.fd = fd; + ttgetattr (fd, &ttattrs); + termsave.attrs = &ttattrs; + + ttset = ttattrs; if (silent) - ttcbreak (); + ttfd_cbreak (fd, &ttset); /* ttcbreak () */ else - ttonechar (); - add_unwind_protect ((Function *)ttrestore, (char *)NULL); + ttfd_onechar (fd, &ttset); /* ttonechar () */ + add_unwind_protect ((Function *)ttyrestore, (char *)&termsave); } } else if (silent) /* turn off echo but leave term in canonical mode */ { - ttsave (); - ttnoecho (); - add_unwind_protect ((Function *)ttrestore, (char *)NULL); + /* ttsave (); */ + termsave.fd = fd; + ttgetattr (fd, &ttattrs); + termsave.attrs = &ttattrs; + + ttset = ttattrs; + ttfd_noecho (fd, &ttset); /* ttnoecho (); */ + + add_unwind_protect ((Function *)ttyrestore, (char *)&termsave); } /* This *must* be the top unwind-protect on the stack, so the manipulation of the unwind-protect stack after the realloc() works right. */ add_unwind_protect (xfree, input_string); interrupt_immediately++; - terminate_immediately = 1; + terminate_immediately++; unbuffered_read = (nchars > 0) || (delim != '\n') || input_is_pipe; + if (prompt && edit == 0) + { + fprintf (stderr, "%s", prompt); + fflush (stderr); + } + #if defined (__CYGWIN__) && defined (O_TEXT) setmode (0, O_TEXT); #endif @@ -401,7 +468,7 @@ read_builtin (list) } if (rlbuf == 0) { - rlbuf = edit_line (prompt ? prompt : ""); + rlbuf = edit_line (prompt ? prompt : "", itext); rlind = 0; } if (rlbuf == 0) @@ -439,7 +506,7 @@ read_builtin (list) } #endif - if (i + 2 >= size) + if (i + 4 >= size) /* XXX was i + 2; use i + 4 for multibyte/read_mbchar */ { input_string = (char *)xrealloc (input_string, size += 128); remove_unwind_protect (); @@ -462,18 +529,22 @@ read_builtin (list) continue; } + /* This may cause problems if IFS contains CTLESC */ if (c == '\\' && raw == 0) { pass_next++; - saw_escape++; - input_string[i++] = CTLESC; + if (skip_ctlesc == 0) + { + saw_escape++; + input_string[i++] = CTLESC; + } continue; } if ((unsigned char)c == delim) break; - if (c == CTLESC || c == CTLNUL) + if ((skip_ctlesc == 0 && c == CTLESC) || (skip_ctlnul == 0 && c == CTLNUL)) { saw_escape++; input_string[i++] = CTLESC; @@ -481,6 +552,15 @@ read_builtin (list) add_char: input_string[i++] = c; + +#if defined (HANDLE_MULTIBYTE) + if (nchars > 0 && MB_CUR_MAX > 1) + { + input_string[i] = '\0'; /* for simplicity and debugging */ + i += read_mbchar (fd, input_string, i, c, unbuffered_read); + } +#endif + nr++; if (nchars > 0 && nr >= nchars) @@ -497,7 +577,7 @@ add_char: } #endif - if (tmout > 0) + if (tmsec > 0 || tmusec > 0) reset_alarm (); if (nchars > 0 || delim != '\n') @@ -513,20 +593,22 @@ add_char: else #endif if (input_is_tty) - ttrestore (); + ttyrestore (&termsave); } else if (silent) - ttrestore (); + ttyrestore (&termsave); if (unbuffered_read == 0) zsyncfd (fd); interrupt_immediately--; - terminate_immediately = 0; + terminate_immediately--; discard_unwind_frame ("read_builtin"); retval = eof ? EXECUTION_FAILURE : EXECUTION_SUCCESS; +assign_vars: + #if defined (ARRAY_VARS) /* If -a was given, take the string read, break it into a list of words, an assign them to `arrayname' in turn. */ @@ -603,7 +685,6 @@ add_char: for (t = input_string; ifs_chars && *ifs_chars && spctabnl(*t) && isifs(*t); t++) ; input_string = t; - for (; list->next; list = list->next) { varname = list->word->word; @@ -718,8 +799,66 @@ bind_read_variable (name, value) #endif /* !ARRAY_VARS */ } +#if defined (HANDLE_MULTIBYTE) +static int +read_mbchar (fd, string, ind, ch, unbuffered) + int fd; + char *string; + int ind, ch, unbuffered; +{ + char mbchar[MB_LEN_MAX + 1]; + int i, n, r; + char c; + size_t ret; + mbstate_t ps, ps_back; + wchar_t wc; + + memset (&ps, '\0', sizeof (mbstate_t)); + memset (&ps_back, '\0', sizeof (mbstate_t)); + + mbchar[0] = ch; + i = 1; + for (n = 0; n <= MB_LEN_MAX; n++) + { + ps_back = ps; + ret = mbrtowc (&wc, mbchar, i, &ps); + if (ret == (size_t)-2) + { + ps = ps_back; + if (unbuffered) + r = zread (fd, &c, 1); + else + r = zreadc (fd, &c); + if (r < 0) + goto mbchar_return; + mbchar[i++] = c; + continue; + } + else if (ret == (size_t)-1 || ret == (size_t)0 || ret > (size_t)0) + break; + } + +mbchar_return: + if (i > 1) /* read a multibyte char */ + /* mbchar[0] is already string[ind-1] */ + for (r = 1; r < i; r++) + string[ind+r-1] = mbchar[r]; + return i - 1; +} +#endif + + +static void +ttyrestore (ttp) + struct ttsave *ttp; +{ + ttsetattr (ttp->fd, ttp->attrs); +} + #if defined (READLINE) static rl_completion_func_t *old_attempted_completion_function = 0; +static rl_hook_func_t *old_startup_hook; +static char *deftext; static void reset_attempted_completion_function (cp) @@ -729,9 +868,28 @@ reset_attempted_completion_function (cp) rl_attempted_completion_function = old_attempted_completion_function; } +static int +set_itext () +{ + int r1, r2; + + r1 = r2 = 0; + if (old_startup_hook) + r1 = (*old_startup_hook) (); + if (deftext) + { + r2 = rl_insert_text (deftext); + deftext = (char *)NULL; + rl_startup_hook = old_startup_hook; + old_startup_hook = (rl_hook_func_t *)NULL; + } + return (r1 || r2); +} + static char * -edit_line (p) +edit_line (p, itext) char *p; + char *itext; { char *ret; int len; @@ -741,6 +899,12 @@ edit_line (p) old_attempted_completion_function = rl_attempted_completion_function; rl_attempted_completion_function = (rl_completion_func_t *)NULL; + if (itext) + { + old_startup_hook = rl_startup_hook; + rl_startup_hook = set_itext; + deftext = itext; + } ret = readline (p); rl_attempted_completion_function = old_attempted_completion_function; old_attempted_completion_function = (rl_completion_func_t *)NULL; diff --git a/builtins/reserved.def b/builtins/reserved.def index e968ec7cf..04c59b019 100644 --- a/builtins/reserved.def +++ b/builtins/reserved.def @@ -2,35 +2,41 @@ This file is reserved.def, in which the shell reserved words are defined. It has no direct C file production, but defines builtins for the Bash builtin help command. -Copyright (C) 1987-2006 Free Software Foundation, Inc. +Copyright (C) 1987-2009 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 free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. -Bash is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. +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. +You should have received a copy of the GNU General Public License +along with Bash. If not, see . $BUILTIN for -$SHORT_DOC for NAME [in WORDS ... ;] do COMMANDS; done +$SHORT_DOC for NAME [in WORDS ... ] ; do COMMANDS; done +Execute commands for each member in a list. + The `for' loop executes a sequence of commands for each member in a list of items. If `in WORDS ...;' is not present, then `in "$@"' is assumed. For each element in WORDS, NAME is set to that element, and the COMMANDS are executed. + +Exit Status: +Returns the status of the last command executed. $END $BUILTIN for (( $DOCNAME arith_for $SHORT_DOC for (( exp1; exp2; exp3 )); do COMMANDS; done +Arithmetic for loop. + Equivalent to (( EXP1 )) while (( EXP2 )); do @@ -39,10 +45,15 @@ Equivalent to done EXP1, EXP2, and EXP3 are arithmetic expressions. If any expression is omitted, it behaves as if it evaluates to 1. + +Exit Status: +Returns the status of the last command executed. $END $BUILTIN select $SHORT_DOC select NAME [in WORDS ... ;] do COMMANDS; done +Select words from a list and execute commands. + The WORDS are expanded, generating a list of words. The set of expanded words is printed on the standard error, each preceded by a number. If `in WORDS' is not present, `in "$@"' @@ -54,25 +65,42 @@ redisplayed. If EOF is read, the command completes. Any other value read causes NAME to be set to null. The line read is saved in the variable REPLY. COMMANDS are executed after each selection until a break command is executed. + +Exit Status: +Returns the status of the last command executed. $END $BUILTIN time -$SHORT_DOC time [-p] PIPELINE +$SHORT_DOC time [-p] pipeline +Report time consumed by pipeline's execution. + Execute PIPELINE and print a summary of the real time, user CPU time, and system CPU time spent executing PIPELINE when it terminates. -The return status is the return status of PIPELINE. The `-p' option -prints the timing summary in a slightly different format. This uses -the value of the TIMEFORMAT variable as the output format. + +Options: + -p print the timing summary in the portable Posix format + +The value of the TIMEFORMAT variable is used as the output format. + +Exit Status: +The return status is the return status of PIPELINE. $END $BUILTIN case $SHORT_DOC case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac +Execute commands based on pattern matching. + Selectively execute COMMANDS based upon WORD matching PATTERN. The `|' is used to separate multiple patterns. + +Exit Status: +Returns the status of the last command executed. $END $BUILTIN if $SHORT_DOC if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else COMMANDS; ] fi +Execute commands based on conditional. + The `if COMMANDS' list is executed. If its exit status is zero, then the `then COMMANDS' list is executed. Otherwise, each `elif COMMANDS' list is executed in turn, and if its exit status is zero, the corresponding @@ -80,75 +108,119 @@ executed in turn, and if its exit status is zero, the corresponding the `else COMMANDS' list is executed, if present. The exit status of the entire construct is the exit status of the last command executed, or zero if no condition tested true. + +Exit Status: +Returns the status of the last command executed. $END $BUILTIN while $SHORT_DOC while COMMANDS; do COMMANDS; done +Execute commands as long as a test succeeds. + Expand and execute COMMANDS as long as the final command in the `while' COMMANDS has an exit status of zero. + +Exit Status: +Returns the status of the last command executed. $END $BUILTIN until $SHORT_DOC until COMMANDS; do COMMANDS; done +Execute commands as long as a test does not succeed. + Expand and execute COMMANDS as long as the final command in the `until' COMMANDS has an exit status which is not zero. + +Exit Status: +Returns the status of the last command executed. $END $BUILTIN function -$SHORT_DOC function NAME { COMMANDS ; } or NAME () { COMMANDS ; } -Create a simple command invoked by NAME which runs COMMANDS. -Arguments on the command line along with NAME are passed to the -function as $0 .. $n. +$SHORT_DOC function name { COMMANDS ; } or name () { COMMANDS ; } +Define shell function. + +Create a shell function named NAME. When invoked as a simple command, +NAME runs COMMANDs in the calling shell's context. When NAME is invoked, +the arguments are passed to the function as $1...$n, and the function's +name is in $FUNCNAME. + +Exit Status: +Returns success unless NAME is readonly. $END $BUILTIN { ... } $DOCNAME grouping_braces $SHORT_DOC { COMMANDS ; } +Group commands as a unit. + Run a set of commands in a group. This is one way to redirect an entire set of commands. + +Exit Status: +Returns the status of the last command executed. $END $BUILTIN % $DOCNAME fg_percent -$SHORT_DOC JOB_SPEC [&] +$SHORT_DOC job_spec [&] +Resume job in foreground. + Equivalent to the JOB_SPEC argument to the `fg' command. Resume a stopped or background job. JOB_SPEC can specify either a job name or a job number. Following JOB_SPEC with a `&' places the job in the background, as if the job specification had been supplied as an argument to `bg'. + +Exit Status: +Returns the status of the resumed job. $END $BUILTIN (( ... )) $DOCNAME arith $SHORT_DOC (( expression )) +Evaluate arithmetic expression. + The EXPRESSION is evaluated according to the rules for arithmetic evaluation. Equivalent to "let EXPRESSION". + +Exit Status: +Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise. $END $BUILTIN [[ ... ]] $DOCNAME conditional $SHORT_DOC [[ expression ]] +Execute conditional command. + Returns a status of 0 or 1 depending on the evaluation of the conditional expression EXPRESSION. Expressions are composed of the same primaries used -by the `test' builtin, and may be combined using the following operators +by the `test' builtin, and may be combined using the following operators: - ( EXPRESSION ) Returns the value of EXPRESSION - ! EXPRESSION True if EXPRESSION is false; else false - EXPR1 && EXPR2 True if both EXPR1 and EXPR2 are true; else false - EXPR1 || EXPR2 True if either EXPR1 or EXPR2 is true; else false + ( EXPRESSION ) Returns the value of EXPRESSION + ! EXPRESSION True if EXPRESSION is false; else false + EXPR1 && EXPR2 True if both EXPR1 and EXPR2 are true; else false + EXPR1 || EXPR2 True if either EXPR1 or EXPR2 is true; else false -When the `==' and `!=' operators are used, the string to the right of the -operator is used as a pattern and pattern matching is performed. The -&& and || operators do not evaluate EXPR2 if EXPR1 is sufficient to +When the `==' and `!=' operators are used, the string to the right of +the operator is used as a pattern and pattern matching is performed. +When the `=~' operator is used, the string to the right of the operator +is matched as a regular expression. + +The && and || operators do not evaluate EXPR2 if EXPR1 is sufficient to determine the expression's value. + +Exit Status: +0 or 1 depending on value of EXPRESSION. $END $BUILTIN variables $DOCNAME variable_help -$SHORT_DOC variables - Some variable names and meanings +$SHORT_DOC variables - Names and meanings of some shell variables +Common shell variable names and usage. + BASH_VERSION Version information for this Bash. CDPATH A colon-separated list of directories to search - for directries given as arguments to `cd'. + for directories given as arguments to `cd'. GLOBIGNORE A colon-separated list of patterns describing filenames to be ignored by pathname expansion. #if defined (HISTORY) diff --git a/builtins/return.def b/builtins/return.def index 23389c070..641ee16a7 100644 --- a/builtins/return.def +++ b/builtins/return.def @@ -1,23 +1,22 @@ This file is return.def, from which is created return.c. It implements the builtin "return" in Bash. -Copyright (C) 1987-2003 Free Software Foundation, Inc. +Copyright (C) 1987-2009 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 free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. -Bash is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. +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. +You should have received a copy of the GNU General Public License +along with Bash. If not, see . $PRODUCES return.c @@ -25,8 +24,14 @@ $BUILTIN return $FUNCTION return_builtin $SHORT_DOC return [n] -Causes a function to exit with the return value specified by N. If N -is omitted, the return status is that of the last command. +Return from a shell function. + +Causes a function or sourced script to exit with the return value +specified by N. If N is omitted, the return status is that of the +last command executed within the function or script. + +Exit Status: +Returns N, or failure if the shell is not executing a function or script. $END #include @@ -42,6 +47,7 @@ $END #include "../shell.h" #include "common.h" +#include "bashgetopt.h" extern int last_command_exit_value; extern int subshell_environment; @@ -54,6 +60,10 @@ int return_builtin (list) WORD_LIST *list; { + if (no_options (list)) + return (EX_USAGE); + list = loptend; /* skip over possible `--' */ + return_catch_value = get_exitstat (list); if (return_catch_flag) diff --git a/builtins/set.def b/builtins/set.def index 9d8631915..5e550cbc9 100644 --- a/builtins/set.def +++ b/builtins/set.def @@ -1,23 +1,22 @@ This file is set.def, from which is created set.c. It implements the "set" and "unset" builtins in Bash. -Copyright (C) 1987-2004 Free Software Foundation, Inc. +Copyright (C) 1987-2009 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 free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. -Bash is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. +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. +You should have received a copy of the GNU General Public License +along with Bash. If not, see . $PRODUCES set.c @@ -60,87 +59,96 @@ extern int no_line_editing; $BUILTIN set $FUNCTION set_builtin -$SHORT_DOC set [--abefhkmnptuvxBCHP] [-o option] [arg ...] - -a Mark variables which are modified or created for export. - -b Notify of job termination immediately. - -e Exit immediately if a command exits with a non-zero status. - -f Disable file name generation (globbing). - -h Remember the location of commands as they are looked up. - -k All assignment arguments are placed in the environment for a - command, not just those that precede the command name. - -m Job control is enabled. - -n Read commands but do not execute them. - -o option-name - Set the variable corresponding to option-name: - allexport same as -a - braceexpand same as -B +$SHORT_DOC set [--abefhkmnptuvxBCHP] [-o option-name] [arg ...] +Set or unset values of shell options and positional parameters. + +Change the value of shell attributes and positional parameters, or +display the names and values of shell variables. + +Options: + -a Mark variables which are modified or created for export. + -b Notify of job termination immediately. + -e Exit immediately if a command exits with a non-zero status. + -f Disable file name generation (globbing). + -h Remember the location of commands as they are looked up. + -k All assignment arguments are placed in the environment for a + command, not just those that precede the command name. + -m Job control is enabled. + -n Read commands but do not execute them. + -o option-name + Set the variable corresponding to option-name: + allexport same as -a + braceexpand same as -B #if defined (READLINE) - emacs use an emacs-style line editing interface + emacs use an emacs-style line editing interface #endif /* READLINE */ - errexit same as -e - errtrace same as -E - functrace same as -T - hashall same as -h + errexit same as -e + errtrace same as -E + functrace same as -T + hashall same as -h #if defined (BANG_HISTORY) - histexpand same as -H + histexpand same as -H #endif /* BANG_HISTORY */ #if defined (HISTORY) - history enable command history + history enable command history #endif - ignoreeof the shell will not exit upon reading EOF - interactive-comments - allow comments to appear in interactive commands - keyword same as -k - monitor same as -m - noclobber same as -C - noexec same as -n - noglob same as -f - nolog currently accepted but ignored - notify same as -b - nounset same as -u - onecmd same as -t - physical same as -P - pipefail the return value of a pipeline is the status of - the last command to exit with a non-zero status, - or zero if no command exited with a non-zero status - posix change the behavior of bash where the default - operation differs from the 1003.2 standard to - match the standard - privileged same as -p - verbose same as -v + ignoreeof the shell will not exit upon reading EOF + interactive-comments + allow comments to appear in interactive commands + keyword same as -k + monitor same as -m + noclobber same as -C + noexec same as -n + noglob same as -f + nolog currently accepted but ignored + notify same as -b + nounset same as -u + onecmd same as -t + physical same as -P + pipefail the return value of a pipeline is the status of + the last command to exit with a non-zero status, + or zero if no command exited with a non-zero status + posix change the behavior of bash where the default + operation differs from the Posix standard to + match the standard + privileged same as -p + verbose same as -v #if defined (READLINE) - vi use a vi-style line editing interface + vi use a vi-style line editing interface #endif /* READLINE */ - xtrace same as -x - -p Turned on whenever the real and effective user ids do not match. - Disables processing of the $ENV file and importing of shell - functions. Turning this option off causes the effective uid and - gid to be set to the real uid and gid. - -t Exit after reading and executing one command. - -u Treat unset variables as an error when substituting. - -v Print shell input lines as they are read. - -x Print commands and their arguments as they are executed. + xtrace same as -x + -p Turned on whenever the real and effective user ids do not match. + Disables processing of the $ENV file and importing of shell + functions. Turning this option off causes the effective uid and + gid to be set to the real uid and gid. + -t Exit after reading and executing one command. + -u Treat unset variables as an error when substituting. + -v Print shell input lines as they are read. + -x Print commands and their arguments as they are executed. #if defined (BRACE_EXPANSION) - -B the shell will perform brace expansion + -B the shell will perform brace expansion #endif /* BRACE_EXPANSION */ - -C If set, disallow existing regular files to be overwritten - by redirection of output. - -E If set, the ERR trap is inherited by shell functions. + -C If set, disallow existing regular files to be overwritten + by redirection of output. + -E If set, the ERR trap is inherited by shell functions. #if defined (BANG_HISTORY) - -H Enable ! style history substitution. This flag is on - by default when the shell is interactive. + -H Enable ! style history substitution. This flag is on + by default when the shell is interactive. #endif /* BANG_HISTORY */ - -P If set, do not follow symbolic links when executing commands - such as cd which change the current directory. - -T If set, the DEBUG trap is inherited by shell functions. - - Assign any remaining arguments to the positional parameters. - The -x and -v options are turned off. + -P If set, do not follow symbolic links when executing commands + such as cd which change the current directory. + -T If set, the DEBUG trap is inherited by shell functions. + - Assign any remaining arguments to the positional parameters. + The -x and -v options are turned off. Using + rather than - causes these flags to be turned off. The flags can also be used upon invocation of the shell. The current set of flags may be found in $-. The remaining n ARGs are positional parameters and are assigned, in order, to $1, $2, .. $n. If no ARGs are given, all shell variables are printed. + +Exit Status: +Returns success unless an invalid option is given. $END typedef int setopt_set_func_t __P((int, char *)); @@ -161,13 +169,13 @@ static int get_edit_mode __P((char *)); static int bash_set_history __P((int, char *)); #endif -static char *on = "on"; -static char *off = "off"; +static const char * const on = "on"; +static const char * const off = "off"; /* A struct used to match long options for set -o to the corresponding option letter or internal variable. The functions can be called to dynamically generate values. */ -struct { +const struct { char *name; int letter; int *variable; @@ -426,7 +434,7 @@ set_minus_o_option (on_or_off, option_name) } sh_invalidoptname (option_name); - return (EXECUTION_FAILURE); + return (EX_USAGE); } static void @@ -549,7 +557,7 @@ initialize_shell_options (no_shellopts) /* set up any shell options we may have inherited. */ if (var && imported_p (var)) { - temp = (array_p (var)) ? (char *)NULL : savestring (value_cell (var)); + temp = (array_p (var) || assoc_p (var)) ? (char *)NULL : savestring (value_cell (var)); if (temp) { parse_shellopts (temp); @@ -581,17 +589,18 @@ int set_builtin (list) WORD_LIST *list; { - int on_or_off, flag_name, force_assignment, opts_changed; + int on_or_off, flag_name, force_assignment, opts_changed, rv, r; register char *arg; char s[3]; if (list == 0) { print_all_shell_variables (); - return (EXECUTION_SUCCESS); + return (sh_chkwrite (EXECUTION_SUCCESS)); } /* Check validity of flag arguments. */ + rv = EXECUTION_SUCCESS; reset_internal_getopt (); while ((flag_name = internal_getopt (list, optflags)) != -1) { @@ -654,6 +663,7 @@ set_builtin (list) if (opt == 0) { list_minus_o_opts (-1, (on_or_off == '+')); + rv = sh_chkwrite (rv); continue; } @@ -668,10 +678,10 @@ set_builtin (list) list = list->next; /* Skip over option name. */ opts_changed = 1; - if (set_minus_o_option (on_or_off, option_name) != EXECUTION_SUCCESS) + if ((r = set_minus_o_option (on_or_off, option_name)) != EXECUTION_SUCCESS) { set_shellopts (); - return (EXECUTION_FAILURE); + return (r); } } else if (change_flag (flag_name, on_or_off) == FLAG_ERROR) @@ -700,17 +710,27 @@ set_builtin (list) /* Set up new value of $SHELLOPTS */ if (opts_changed) set_shellopts (); - return (EXECUTION_SUCCESS); + return (rv); } $BUILTIN unset $FUNCTION unset_builtin $SHORT_DOC unset [-f] [-v] [name ...] -For each NAME, remove the corresponding variable or function. Given -the `-v', unset will only act on variables. Given the `-f' flag, -unset will only act on functions. With neither flag, unset first -tries to unset a variable, and if that fails, then tries to unset a -function. Some variables cannot be unset; also see readonly. +Unset values and attributes of shell variables and functions. + +For each NAME, remove the corresponding variable or function. + +Options: + -f treat each NAME as a shell function + -v treat each NAME as a shell variable + +Without options, unset first tries to unset a variable, and if that fails, +tries to unset a function. + +Some variables cannot be unset; also see `readonly'. + +Exit Status: +Returns success unless an invalid option is given or a NAME is read-only. $END #define NEXT_VARIABLE() any_failed++; list = list->next; continue; @@ -798,7 +818,7 @@ unset_builtin (list) #if defined (ARRAY_VARS) if (var && unset_array) { - if (array_p (var) == 0) + if (array_p (var) == 0 && assoc_p (var) == 0) { builtin_error (_("%s: not an array variable"), name); NEXT_VARIABLE (); diff --git a/builtins/setattr.def b/builtins/setattr.def index 28102bc47..8b4cdf765 100644 --- a/builtins/setattr.def +++ b/builtins/setattr.def @@ -1,23 +1,22 @@ This file is setattr.def, from which is created setattr.c. It implements the builtins "export" and "readonly", in Bash. -Copyright (C) 1987-2004 Free Software Foundation, Inc. +Copyright (C) 1987-2009 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 free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. -Bash is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. +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. +You should have received a copy of the GNU General Public License +along with Bash. If not, see . $PRODUCES setattr.c @@ -52,14 +51,21 @@ extern int declare_builtin __P((WORD_LIST *)); $BUILTIN export $FUNCTION export_builtin -$SHORT_DOC export [-nf] [name[=value] ...] or export -p -NAMEs are marked for automatic export to the environment of -subsequently executed commands. If the -f option is given, -the NAMEs refer to functions. If no NAMEs are given, or if `-p' -is given, a list of all names that are exported in this shell is -printed. An argument of `-n' says to remove the export property -from subsequent NAMEs. An argument of `--' disables further option -processing. +$SHORT_DOC export [-fn] [name[=value] ...] or export -p +Set export attribute for shell variables. + +Marks each NAME for automatic export to the environment of subsequently +executed commands. If VALUE is supplied, assign VALUE before exporting. + +Options: + -f refer to shell functions + -n remove the export property from each NAME + -p display a list of all exported variables and functions + +An argument of `--' disables further option processing. + +Exit Status: +Returns success unless an invalid option is given or NAME is invalid. $END /* For each variable name in LIST, make that variable appear in the @@ -77,13 +83,22 @@ export_builtin (list) $BUILTIN readonly $FUNCTION readonly_builtin $SHORT_DOC readonly [-af] [name[=value] ...] or readonly -p -The given NAMEs are marked readonly and the values of these NAMEs may -not be changed by subsequent assignment. If the -f option is given, -then functions corresponding to the NAMEs are so marked. If no -arguments are given, or if `-p' is given, a list of all readonly names -is printed. The `-a' option means to treat each NAME as -an array variable. An argument of `--' disables further option -processing. +Mark shell variables as unchangeable. + +Mark each NAME as read-only; the values of these NAMEs may not be +changed by subsequent assignment. If VALUE is supplied, assign VALUE +before marking as read-only. + +Options: + -a refer to indexed array variables + -A refer to associative array variables + -f refer to shell functions + -p display a list of all readonly variables and functions + +An argument of `--' disables further option processing. + +Exit Status: +Returns success unless an invalid option is given or NAME is invalid. $END /* For each variable name in LIST, make that variable readonly. Given an @@ -96,7 +111,7 @@ readonly_builtin (list) } #if defined (ARRAY_VARS) -# define ATTROPTS "afnp" +# define ATTROPTS "aAfnp" #else # define ATTROPTS "fnp" #endif @@ -110,7 +125,8 @@ set_or_show_attributes (list, attribute, nodefs) int attribute, nodefs; { register SHELL_VAR *var; - int assign, undo, functions_only, arrays_only, any_failed, assign_error, opt; + int assign, undo, any_failed, assign_error, opt; + int functions_only, arrays_only, assoc_only; int aflags; char *name; #if defined (ARRAY_VARS) @@ -118,7 +134,8 @@ set_or_show_attributes (list, attribute, nodefs) WORD_DESC *w; #endif - undo = functions_only = arrays_only = any_failed = assign_error = 0; + functions_only = arrays_only = assoc_only = 0; + undo = any_failed = assign_error = 0; /* Read arguments from the front of the list. */ reset_internal_getopt (); while ((opt = internal_getopt (list, ATTROPTS)) != -1) @@ -133,8 +150,11 @@ set_or_show_attributes (list, attribute, nodefs) break; #if defined (ARRAY_VARS) case 'a': - arrays_only = 1; - break; + arrays_only = 1; + break; + case 'A': + assoc_only = 1; + break; #endif case 'p': break; @@ -206,11 +226,11 @@ set_or_show_attributes (list, attribute, nodefs) #if defined (ARRAY_VARS) /* Let's try something here. Turn readonly -a xxx=yyy into declare -ra xxx=yyy and see what that gets us. */ - if (arrays_only) + if (arrays_only || assoc_only) { tlist = list->next; list->next = (WORD_LIST *)NULL; - w = make_word ("-ra"); + w = arrays_only ? make_word ("-ra") : make_word ("-rA"); nlist = make_word_list (w, list); opt = declare_builtin (nlist); if (opt != EXECUTION_SUCCESS) @@ -257,6 +277,12 @@ set_or_show_attributes (list, attribute, nodefs) if (attribute != att_array) attribute &= ~att_array; } + else if (attribute & att_assoc) + { + assoc_only++; + if (attribute != att_assoc) + attribute &= ~att_assoc; + } #endif if (variable_list) @@ -266,9 +292,15 @@ set_or_show_attributes (list, attribute, nodefs) #if defined (ARRAY_VARS) if (arrays_only && array_p (var) == 0) continue; + else if (assoc_only && assoc_p (var) == 0) + continue; #endif if ((var->attributes & attribute)) - show_var_attributes (var, READONLY_OR_EXPORT, nodefs); + { + show_var_attributes (var, READONLY_OR_EXPORT, nodefs); + if (any_failed = sh_chkwrite (any_failed)) + break; + } } free (variable_list); } @@ -279,6 +311,30 @@ set_or_show_attributes (list, attribute, nodefs) : EXECUTION_FAILURE)); } +/* Show all variable variables (v == 1) or functions (v == 0) with + attributes. */ +int +show_all_var_attributes (v, nodefs) + int v, nodefs; +{ + SHELL_VAR **variable_list, *var; + int any_failed; + register int i; + + variable_list = v ? all_shell_variables () : all_shell_functions (); + if (variable_list == 0) + return (EXECUTION_SUCCESS); + + for (i = any_failed = 0; var = variable_list[i]; i++) + { + show_var_attributes (var, READONLY_OR_EXPORT, nodefs); + if (any_failed = sh_chkwrite (any_failed)) + break; + } + free (variable_list); + return (any_failed == 0 ? EXECUTION_SUCCESS : EXECUTION_FAILURE); +} + /* Show the attributes for shell variable VAR. If NODEFS is non-zero, don't show function definitions along with the name. If PATTR is non-zero, it indicates we're being called from `export' or `readonly'. @@ -290,7 +346,7 @@ show_var_attributes (var, pattr, nodefs) SHELL_VAR *var; int pattr, nodefs; { - char flags[8], *x; + char flags[16], *x; int i; i = 0; @@ -301,6 +357,9 @@ show_var_attributes (var, pattr, nodefs) #if defined (ARRAY_VARS) if (array_p (var)) flags[i++] = 'a'; + + if (assoc_p (var)) + flags[i++] = 'A'; #endif if (function_p (var)) @@ -317,12 +376,24 @@ show_var_attributes (var, pattr, nodefs) if (exported_p (var)) flags[i++] = 'x'; + + if (capcase_p (var)) + flags[i++] = 'c'; + + if (lowercase_p (var)) + flags[i++] = 'l'; + + if (uppercase_p (var)) + flags[i++] = 'u'; } else { #if defined (ARRAY_VARS) if (array_p (var)) flags[i++] = 'a'; + + if (assoc_p (var)) + flags[i++] = 'A'; #endif if (function_p (var)) @@ -336,7 +407,7 @@ show_var_attributes (var, pattr, nodefs) reused as input to recreate the current state. */ if (function_p (var) && nodefs == 0 && (pattr == 0 || posixly_correct == 0)) { - printf ("%s\n", named_function_string (var->name, function_cell (var), 1)); + printf ("%s\n", named_function_string (var->name, function_cell (var), FUNC_MULTILINE|FUNC_EXTERNAL)); nodefs++; if (pattr == 0 && i == 1 && flags[0] == 'f') return 0; /* don't print `declare -f name' */ @@ -350,8 +421,10 @@ show_var_attributes (var, pattr, nodefs) printf ("%s ", this_command_name); #if defined (ARRAY_VARS) - if (array_p (var)) + if (array_p (var)) print_array_assignment (var, 1); + else if (assoc_p (var)) + print_assoc_assignment (var, 1); else #endif /* force `readonly' and `export' to not print out function definitions @@ -359,7 +432,7 @@ show_var_attributes (var, pattr, nodefs) if (nodefs || (function_p (var) && pattr != 0 && posixly_correct)) printf ("%s\n", var->name); else if (function_p (var)) - printf ("%s\n", named_function_string (var->name, function_cell (var), 1)); + printf ("%s\n", named_function_string (var->name, function_cell (var), FUNC_MULTILINE|FUNC_EXTERNAL)); else if (invisible_p (var)) printf ("%s\n", var->name); else diff --git a/builtins/shift.def b/builtins/shift.def index e20b4d542..32130862a 100644 --- a/builtins/shift.def +++ b/builtins/shift.def @@ -1,23 +1,22 @@ This file is shift.def, from which is created shift.c. It implements the builtin "shift" in Bash. -Copyright (C) 1987-2003 Free Software Foundation, Inc. +Copyright (C) 1987-2009 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 free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. -Bash is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. +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. +You should have received a copy of the GNU General Public License +along with Bash. If not, see . $PRODUCES shift.c @@ -39,8 +38,13 @@ $PRODUCES shift.c $BUILTIN shift $FUNCTION shift_builtin $SHORT_DOC shift [n] -The positional parameters from $N+1 ... are renamed to $1 ... If N is +Shift positional parameters. + +Rename the positional parameters $N+1,$N+2 ... to $1,$2 ... If N is not given, it is assumed to be 1. + +Exit Status: +Returns success unless N is negative or greater than $#. $END int print_shift_error; @@ -57,7 +61,8 @@ shift_builtin (list) register int count; WORD_LIST *temp; - times = get_numeric_arg (list, 0); + if (get_numeric_arg (list, 0, ×) == 0) + return (EXECUTION_FAILURE); if (times == 0) return (EXECUTION_SUCCESS); diff --git a/builtins/shopt.def b/builtins/shopt.def index db46c318b..d30a869d5 100644 --- a/builtins/shopt.def +++ b/builtins/shopt.def @@ -1,37 +1,44 @@ This file is shopt.def, from which is created shopt.c. It implements the Bash `shopt' builtin. -Copyright (C) 1994-2005 Free Software Foundation, Inc. +Copyright (C) 1994-2009 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 free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. -Bash is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. +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. +You should have received a copy of the GNU General Public License +along with Bash. If not, see . $PRODUCES shopt.c $BUILTIN shopt $FUNCTION shopt_builtin -$SHORT_DOC shopt [-pqsu] [-o long-option] optname [optname...] -Toggle the values of variables controlling optional behavior. -The -s flag means to enable (set) each OPTNAME; the -u flag -unsets each OPTNAME. The -q flag suppresses output; the exit -status indicates whether each OPTNAME is set or unset. The -o -option restricts the OPTNAMEs to those defined for use with -`set -o'. With no options, or with the -p option, a list of all -settable options is displayed, with an indication of whether or -not each is set. +$SHORT_DOC shopt [-pqsu] [-o] [optname ...] +Set and unset shell options. + +Change the setting of each shell option OPTNAME. Without any option +arguments, list all shell options with an indication of whether or not each +is set. + +Options: + -o restrict OPTNAMEs to those defined for use with `set -o' + -p print each shell option with an indication of its status + -q suppress output + -s enable (set) each OPTNAME + -u disable (unset) each OPTNAME + +Exit Status: +Returns success if OPTNAME is enabled; fails if an invalid option is +given or OPTNAME is disabled. $END #include @@ -45,6 +52,8 @@ $END #include +#include "version.h" + #include "../bashintl.h" #include "../shell.h" @@ -52,6 +61,10 @@ $END #include "common.h" #include "bashgetopt.h" +#if defined (HISTORY) +# include "../bashhist.h" +#endif + #define UNSETOPT 0 #define SETOPT 1 @@ -68,20 +81,20 @@ extern int glob_ignore_case, match_ignore_case; extern int hup_on_exit; extern int xpg_echo; extern int gnu_error_format; +extern int check_jobs_at_exit; +extern int autocd; +extern int glob_star; #if defined (EXTENDED_GLOB) extern int extended_glob; #endif -#if defined (HISTORY) -extern int literal_history, command_oriented_history; -extern int force_append_history; -#endif - #if defined (READLINE) extern int hist_verify, history_reediting, perform_hostname_completion; extern int no_empty_command_completion; extern int force_fignore; +extern int dircomplete_spelling; + extern int enable_hostname_completion __P((int)); #endif @@ -109,6 +122,7 @@ static int set_restricted_shell __P((int)); static int shopt_login_shell; static int shopt_compat31; +static int shopt_compat32; typedef int shopt_set_func_t __P((int)); @@ -117,14 +131,22 @@ static struct { int *value; shopt_set_func_t *set_func; } shopt_vars[] = { + { "autocd", &autocd, (shopt_set_func_t *)NULL }, { "cdable_vars", &cdable_vars, (shopt_set_func_t *)NULL }, { "cdspell", &cdspelling, (shopt_set_func_t *)NULL }, { "checkhash", &check_hashed_filenames, (shopt_set_func_t *)NULL }, +#if defined (JOB_CONTROL) + { "checkjobs", &check_jobs_at_exit, (shopt_set_func_t *)NULL }, +#endif { "checkwinsize", &check_window_size, (shopt_set_func_t *)NULL }, #if defined (HISTORY) { "cmdhist", &command_oriented_history, (shopt_set_func_t *)NULL }, #endif { "compat31", &shopt_compat31, set_compatibility_level }, + { "compat32", &shopt_compat32, set_compatibility_level }, +#if defined (READLINE) + { "dirspell", &dircomplete_spelling, (shopt_set_func_t *)NULL }, +#endif { "dotglob", &glob_dot_filenames, (shopt_set_func_t *)NULL }, { "execfail", &no_exit_on_failed_exec, (shopt_set_func_t *)NULL }, { "expand_aliases", &expand_aliases, (shopt_set_func_t *)NULL }, @@ -139,6 +161,7 @@ static struct { #if defined (READLINE) { "force_fignore", &force_fignore, (shopt_set_func_t *)NULL }, #endif + { "globstar", &glob_star, (shopt_set_func_t *)NULL }, { "gnu_errfmt", &gnu_error_format, (shopt_set_func_t *)NULL }, #if defined (HISTORY) { "histappend", &force_append_history, (shopt_set_func_t *)NULL }, @@ -174,8 +197,8 @@ static struct { { (char *)0, (int *)0, (shopt_set_func_t *)NULL } }; -static char *on = "on"; -static char *off = "off"; +static const char * const on = "on"; +static const char * const off = "off"; static int find_shopt __P((char *)); static int toggle_shopts __P((int, WORD_LIST *, int)); @@ -352,7 +375,7 @@ list_shopts (list, flags) if ((flags & QFLAG) == 0) print_shopt (shopt_vars[i].name, val, flags); } - return (EXECUTION_SUCCESS); + return (sh_chkwrite (EXECUTION_SUCCESS)); } for (l = list, rval = EXECUTION_SUCCESS; l; l = l->next) @@ -371,7 +394,7 @@ list_shopts (list, flags) print_shopt (l->word->word, val, flags); } - return (rval); + return (sh_chkwrite (rval)); } static int @@ -386,7 +409,7 @@ list_some_shopts (mode, flags) if (((flags & QFLAG) == 0) && mode == val) print_shopt (shopt_vars[i].name, val, flags); } - return (EXECUTION_SUCCESS); + return (sh_chkwrite (EXECUTION_SUCCESS)); } static int @@ -401,7 +424,7 @@ list_shopt_o_options (list, flags) { if ((flags & QFLAG) == 0) list_minus_o_opts (-1, (flags & PFLAG)); - return (EXECUTION_SUCCESS); + return (sh_chkwrite (EXECUTION_SUCCESS)); } for (l = list, rval = EXECUTION_SUCCESS; l; l = l->next) @@ -423,7 +446,7 @@ list_shopt_o_options (list, flags) printf (OPTFMT, l->word->word, val ? on : off); } } - return (rval); + return (sh_chkwrite (rval)); } static int @@ -432,7 +455,7 @@ list_some_o_options (mode, flags) { if ((flags & QFLAG) == 0) list_minus_o_opts (mode, (flags & PFLAG)); - return (EXECUTION_SUCCESS); + return (sh_chkwrite (EXECUTION_SUCCESS)); } static int @@ -470,8 +493,10 @@ set_compatibility_level (mode) /* Need to change logic here as we add more compatibility levels */ if (shopt_compat31) shell_compatibility_level = 31; - else + else if (shopt_compat32) shell_compatibility_level = 32; + else + shell_compatibility_level = DEFAULT_COMPAT_LEVEL; return 0; } @@ -552,5 +577,5 @@ shopt_listopt (name, reusable) } print_shopt (name, *shopt_vars[i].value, reusable ? PFLAG : 0); - return (EXECUTION_SUCCESS); + return (sh_chkwrite (EXECUTION_SUCCESS)); } diff --git a/builtins/source.def b/builtins/source.def index 9576f09e1..72627db3a 100644 --- a/builtins/source.def +++ b/builtins/source.def @@ -1,44 +1,55 @@ This file is source.def, from which is created source.c. It implements the builtins "." and "source" in Bash. -Copyright (C) 1987-2003 Free Software Foundation, Inc. +Copyright (C) 1987-2009 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 free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. -Bash is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. +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. +You should have received a copy of the GNU General Public License +along with Bash. If not, see . $PRODUCES source.c $BUILTIN source $FUNCTION source_builtin $SHORT_DOC source filename [arguments] -Read and execute commands from FILENAME and return. The pathnames -in $PATH are used to find the directory containing FILENAME. If any -ARGUMENTS are supplied, they become the positional parameters when -FILENAME is executed. +Execute commands from a file in the current shell. + +Read and execute commands from FILENAME in the current shell. The +entries in $PATH are used to find the directory containing FILENAME. +If any ARGUMENTS are supplied, they become the positional parameters +when FILENAME is executed. + +Exit Status: +Returns the status of the last command executed in FILENAME; fails if +FILENAME cannot be read. $END + $BUILTIN . $DOCNAME dot $FUNCTION source_builtin $SHORT_DOC . filename [arguments] -Read and execute commands from FILENAME and return. The pathnames -in $PATH are used to find the directory containing FILENAME. If any -ARGUMENTS are supplied, they become the positional parameters when -FILENAME is executed. +Execute commands from a file in the current shell. + +Read and execute commands from FILENAME in the current shell. The +entries in $PATH are used to find the directory containing FILENAME. +If any ARGUMENTS are supplied, they become the positional parameters +when FILENAME is executed. + +Exit Status: +Returns the status of the last command executed in FILENAME; fails if +FILENAME cannot be read. $END -/* source.c - Implements the `.' and `source' builtins. */ #include @@ -68,6 +79,8 @@ $END extern int errno; #endif /* !errno */ +extern int posixly_correct; + static void maybe_pop_dollar_vars __P((void)); /* If non-zero, `.' uses $PATH to look up the script to be sourced. */ @@ -126,7 +139,12 @@ source_builtin (list) #endif filename = (char *)NULL; - if (source_uses_path) + /* XXX -- should this be absolute_pathname? */ + if (posixly_correct && strchr (list->word->word, '/')) + filename = savestring (list->word->word); + else if (absolute_pathname (list->word->word)) + filename = savestring (list->word->word); + else if (source_uses_path) filename = find_path_file (list->word->word); if (filename == 0) { diff --git a/builtins/suspend.def b/builtins/suspend.def index ea86ae22c..8711e6817 100644 --- a/builtins/suspend.def +++ b/builtins/suspend.def @@ -1,23 +1,22 @@ This file is suspend.def, from which is created suspend.c. It implements the builtin "suspend" in Bash. -Copyright (C) 1987-2003 Free Software Foundation, Inc. +Copyright (C) 1987-2009 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 free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. -Bash is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. +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. +You should have received a copy of the GNU General Public License +along with Bash. If not, see . $PRODUCES suspend.c @@ -25,9 +24,16 @@ $BUILTIN suspend $DEPENDS_ON JOB_CONTROL $FUNCTION suspend_builtin $SHORT_DOC suspend [-f] -Suspend the execution of this shell until it receives a SIGCONT -signal. The `-f' if specified says not to complain about this -being a login shell if it is; just suspend anyway. +Suspend shell execution. + +Suspend the execution of this shell until it receives a SIGCONT signal. +Unless forced, login shells cannot be suspended. + +Options: + -f force the suspend, even if the shell is a login shell + +Exit Status: +Returns success unless job control is not enabled or an error occurs. $END #include diff --git a/builtins/test.def b/builtins/test.def index e51d00b7a..4adff93b6 100644 --- a/builtins/test.def +++ b/builtins/test.def @@ -1,29 +1,30 @@ This file is test.def, from which is created test.c. It implements the builtin "test" in Bash. -Copyright (C) 1987-2002 Free Software Foundation, Inc. +Copyright (C) 1987-2009 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 free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. -Bash is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. +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. +You should have received a copy of the GNU General Public License +along with Bash. If not, see . $PRODUCES test.c $BUILTIN test $FUNCTION test_builtin $SHORT_DOC test [expr] +Evaluate conditional expression. + Exits with a status of 0 (true) or 1 (false) depending on the evaluation of EXPR. Expressions may be unary or binary. Unary expressions are often used to examine the status of a file. There @@ -31,27 +32,27 @@ are string operators as well, and numeric comparison operators. File operators: - -a FILE True if file exists. - -b FILE True if file is block special. - -c FILE True if file is character special. - -d FILE True if file is a directory. - -e FILE True if file exists. - -f FILE True if file exists and is a regular file. - -g FILE True if file is set-group-id. - -h FILE True if file is a symbolic link. - -L FILE True if file is a symbolic link. - -k FILE True if file has its `sticky' bit set. - -p FILE True if file is a named pipe. - -r FILE True if file is readable by you. - -s FILE True if file exists and is not empty. - -S FILE True if file is a socket. - -t FD True if FD is opened on a terminal. - -u FILE True if the file is set-user-id. - -w FILE True if the file is writable by you. - -x FILE True if the file is executable by you. - -O FILE True if the file is effectively owned by you. - -G FILE True if the file is effectively owned by your group. - -N FILE True if the file has been modified since it was last read. + -a FILE True if file exists. + -b FILE True if file is block special. + -c FILE True if file is character special. + -d FILE True if file is a directory. + -e FILE True if file exists. + -f FILE True if file exists and is a regular file. + -g FILE True if file is set-group-id. + -h FILE True if file is a symbolic link. + -L FILE True if file is a symbolic link. + -k FILE True if file has its `sticky' bit set. + -p FILE True if file is a named pipe. + -r FILE True if file is readable by you. + -s FILE True if file exists and is not empty. + -S FILE True if file is a socket. + -t FD True if FD is opened on a terminal. + -u FILE True if the file is set-user-id. + -w FILE True if the file is writable by you. + -x FILE True if the file is executable by you. + -O FILE True if the file is effectively owned by you. + -G FILE True if the file is effectively owned by your group. + -N FILE True if the file has been modified since it was last read. FILE1 -nt FILE2 True if file1 is newer than file2 (according to modification date). @@ -62,41 +63,47 @@ File operators: String operators: - -z STRING True if string is empty. + -z STRING True if string is empty. - -n STRING - STRING True if string is not empty. + -n STRING + STRING True if string is not empty. - STRING1 = STRING2 - True if the strings are equal. - STRING1 != STRING2 - True if the strings are not equal. - STRING1 < STRING2 - True if STRING1 sorts before STRING2 lexicographically. - STRING1 > STRING2 - True if STRING1 sorts after STRING2 lexicographically. + STRING1 = STRING2 + True if the strings are equal. + STRING1 != STRING2 + True if the strings are not equal. + STRING1 < STRING2 + True if STRING1 sorts before STRING2 lexicographically. + STRING1 > STRING2 + True if STRING1 sorts after STRING2 lexicographically. Other operators: - -o OPTION True if the shell option OPTION is enabled. - ! EXPR True if expr is false. - EXPR1 -a EXPR2 True if both expr1 AND expr2 are true. - EXPR1 -o EXPR2 True if either expr1 OR expr2 is true. + -o OPTION True if the shell option OPTION is enabled. + ! EXPR True if expr is false. + EXPR1 -a EXPR2 True if both expr1 AND expr2 are true. + EXPR1 -o EXPR2 True if either expr1 OR expr2 is true. - arg1 OP arg2 Arithmetic tests. OP is one of -eq, -ne, - -lt, -le, -gt, or -ge. + arg1 OP arg2 Arithmetic tests. OP is one of -eq, -ne, + -lt, -le, -gt, or -ge. Arithmetic binary operators return true if ARG1 is equal, not-equal, less-than, less-than-or-equal, greater-than, or greater-than-or-equal than ARG2. + +Exit Status: +Returns success if EXPR evaluates to true; fails if EXPR evaluates to +false or an invalid argument is given. $END $BUILTIN [ $DOCNAME test_bracket $FUNCTION test_builtin $SHORT_DOC [ arg... ] -This is a synonym for the "test" builtin, but the last -argument must be a literal `]', to match the opening `['. +Evaluate conditional expression. + +This is a synonym for the "test" builtin, but the last argument must +be a literal `]', to match the opening `['. $END #include @@ -109,6 +116,7 @@ $END #endif #include "../bashansi.h" +#include "../bashintl.h" #include "../shell.h" #include "../test.h" @@ -131,7 +139,7 @@ test_builtin (list) { if (this_command_name[0] == '[' && !this_command_name[1]) { - builtin_error ("missing `]'"); + builtin_error (_("missing `]'")); return (EX_BADUSAGE); } diff --git a/builtins/times.def b/builtins/times.def index 22304fc2f..f31f43331 100644 --- a/builtins/times.def +++ b/builtins/times.def @@ -1,31 +1,35 @@ This file is times.def, from which is created times.c. It implements the builtin "times" in Bash. -Copyright (C) 1987-2002 Free Software Foundation, Inc. +Copyright (C) 1987-2009 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 free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. -Bash is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. +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. +You should have received a copy of the GNU General Public License +along with Bash. If not, see . $PRODUCES times.c $BUILTIN times $FUNCTION times_builtin $SHORT_DOC times -Print the accumulated user and system times for processes run from -the shell. +Display process times. + +Prints the accumulated user and system times for the shell and all of its +child processes. + +Exit Status: +Always succeeds. $END #include @@ -111,5 +115,5 @@ times_builtin (list) # endif /* HAVE_TIMES */ #endif /* !HAVE_TIMES */ - return (EXECUTION_SUCCESS); + return (sh_chkwrite (EXECUTION_SUCCESS)); } diff --git a/builtins/trap.def b/builtins/trap.def index 2735791e4..a8da71dd9 100644 --- a/builtins/trap.def +++ b/builtins/trap.def @@ -1,43 +1,55 @@ This file is trap.def, from which is created trap.c. It implements the builtin "trap" in Bash. -Copyright (C) 1987-2006 Free Software Foundation, Inc. +Copyright (C) 1987-2009 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 free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. -Bash is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. +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. +You should have received a copy of the GNU General Public License +along with Bash. If not, see . $PRODUCES trap.c $BUILTIN trap $FUNCTION trap_builtin -$SHORT_DOC trap [-lp] [arg signal_spec ...] -The command ARG is to be read and executed when the shell receives +$SHORT_DOC trap [-lp] [[arg] signal_spec ...] +Trap signals and other events. + +Defines and activates handlers to be run when the shell receives signals +or other conditions. + +ARG is a command to be read and executed when the shell receives the signal(s) SIGNAL_SPEC. If ARG is absent (and a single SIGNAL_SPEC is supplied) or `-', each specified signal is reset to its original value. If ARG is the null string each SIGNAL_SPEC is ignored by the -shell and by the commands it invokes. If a SIGNAL_SPEC is EXIT (0) -the command ARG is executed on exit from the shell. If a SIGNAL_SPEC -is DEBUG, ARG is executed after every simple command. If the`-p' option -is supplied then the trap commands associated with each SIGNAL_SPEC are -displayed. If no arguments are supplied or if only `-p' is given, trap -prints the list of commands associated with each signal. Each SIGNAL_SPEC -is either a signal name in or a signal number. Signal names -are case insensitive and the SIG prefix is optional. `trap -l' prints -a list of signal names and their corresponding numbers. Note that a -signal can be sent to the shell with "kill -signal $$". +shell and by the commands it invokes. + +If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell. If +a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command. + +If no arguments are supplied, trap prints the list of commands associated +with each signal. + +Options: + -l print a list of signal names and their corresponding numbers + -p display the trap commands associated with each SIGNAL_SPEC + +Each SIGNAL_SPEC is either a signal name in or a signal number. +Signal names are case insensitive and the SIG prefix is optional. A +signal may be sent to the shell with "kill -signal $$". + +Exit Status: +Returns success unless a SIGSPEC is invalid or an invalid option is given. $END #include @@ -112,9 +124,9 @@ trap_builtin (list) opt = DSIG_NOCASE|DSIG_SIGPREFIX; /* flags for decode_signal */ if (list_signal_names) - return (display_signal_list ((WORD_LIST *)NULL, 1)); + return (sh_chkwrite (display_signal_list ((WORD_LIST *)NULL, 1))); else if (display || list == 0) - return (display_traps (list)); + return (sh_chkwrite (display_traps (list))); else { char *first_arg; diff --git a/builtins/type.def b/builtins/type.def index d03ccb2d9..ee341bb8b 100644 --- a/builtins/type.def +++ b/builtins/type.def @@ -1,50 +1,53 @@ This file is type.def, from which is created type.c. It implements the builtin "type" in Bash. -Copyright (C) 1987-2002 Free Software Foundation, Inc. +Copyright (C) 1987-2009 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 free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. -Bash is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. +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. +You should have received a copy of the GNU General Public License +along with Bash. If not, see . $PRODUCES type.c $BUILTIN type $FUNCTION type_builtin $SHORT_DOC type [-afptP] name [name ...] +Display information about command type. + For each NAME, indicate how it would be interpreted if used as a command name. -If the -t option is used, `type' outputs a single word which is one of -`alias', `keyword', `function', `builtin', `file' or `', if NAME is an -alias, shell reserved word, shell function, shell builtin, disk file, -or unfound, respectively. - -If the -p flag is used, `type' either returns the name of the disk -file that would be executed, or nothing if `type -t NAME' would not -return `file'. - -If the -a flag is used, `type' displays all of the places that contain -an executable named `file'. This includes aliases, builtins, and -functions, if and only if the -p flag is not also used. - -The -f flag suppresses shell function lookup. - -The -P flag forces a PATH search for each NAME, even if it is an alias, -builtin, or function, and returns the name of the disk file that would -be executed. +Options: + -a display all locations containing an executable named NAME; + includes aliases, builtins, and functions, if and only if + the `-p' option is not also used + -f suppress shell function lookup + -P force a PATH search for each NAME, even if it is an alias, + builtin, or function, and returns the name of the disk file + that would be executed + -p returns either the name of the disk file that would be executed, + or nothing if `type -t NAME' would not return `file'. + -t output a single word which is one of `alias', `keyword', + `function', `builtin', `file' or `', if NAME is an alias, shell + reserved word, shell function, shell builtin, disk file, or not + found, respectively + +Arguments: + NAME Command name to be interpreted. + +Exit Status: +Returns success if all of the NAMEs are found; fails if any are not found. $END #include @@ -108,14 +111,14 @@ int type_builtin (list) WORD_LIST *list; { - int dflags, successful_finds, opt; + int dflags, any_failed, opt; WORD_LIST *this; if (list == 0) return (EXECUTION_SUCCESS); dflags = CDESC_SHORTDESC; /* default */ - successful_finds = 0; + any_failed = 0; /* Handle the obsolescent `-type', `-path', and `-all' by prescanning the arguments and converting those options to the form that @@ -181,13 +184,12 @@ type_builtin (list) if (!found && (dflags & (CDESC_PATH_ONLY|CDESC_TYPE)) == 0) sh_notfound (list->word->word); - successful_finds += found; + any_failed += found == 0; list = list->next; } - fflush (stdout); - - return ((successful_finds != 0) ? EXECUTION_SUCCESS : EXECUTION_FAILURE); + opt = (any_failed == 0) ? EXECUTION_SUCCESS : EXECUTION_FAILURE; + return (sh_chkwrite (opt)); } /* @@ -267,18 +269,14 @@ describe_command (command, dflags) puts ("function"); else if (dflags & CDESC_SHORTDESC) { -#define PRETTY_PRINT_FUNC 1 char *result; printf (_("%s is a function\n"), command); /* We're blowing away THE_PRINTED_COMMAND here... */ - result = named_function_string (command, - (COMMAND *) function_cell (func), - PRETTY_PRINT_FUNC); + result = named_function_string (command, function_cell (func), FUNC_MULTILINE|FUNC_EXTERNAL); printf ("%s\n", result); -#undef PRETTY_PRINT_FUNC } else if (dflags & CDESC_REUSABLE) printf ("%s\n", command); @@ -390,7 +388,7 @@ describe_command (command, dflags) if (dflags & CDESC_TYPE) puts ("file"); else if (dflags & CDESC_SHORTDESC) - printf ("%s is %s\n", command, full_path); + printf (_("%s is %s\n"), command, full_path); else if (dflags & (CDESC_REUSABLE|CDESC_PATH_ONLY)) printf ("%s\n", full_path); diff --git a/builtins/ulimit.def b/builtins/ulimit.def index 2d2e7b2b8..7c1e2568b 100644 --- a/builtins/ulimit.def +++ b/builtins/ulimit.def @@ -1,62 +1,68 @@ This file is ulimit.def, from which is created ulimit.c. It implements the builtin "ulimit" in Bash. -Copyright (C) 1987-2005 Free Software Foundation, Inc. +Copyright (C) 1987-2009 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 free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. -Bash is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. +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. +You should have received a copy of the GNU General Public License +along with Bash. If not, see . $PRODUCES ulimit.c $BUILTIN ulimit $FUNCTION ulimit_builtin $DEPENDS_ON !_MINIX -$SHORT_DOC ulimit [-SHacdfilmnpqstuvx] [limit] -Ulimit provides control over the resources available to processes -started by the shell, on systems that allow such control. If an -option is given, it is interpreted as follows: - - -S use the `soft' resource limit - -H use the `hard' resource limit - -a all current limits are reported - -c the maximum size of core files created - -d the maximum size of a process's data segment - -e the maximum scheduling priority (`nice') - -f the maximum size of files written by the shell and its children - -i the maximum number of pending signals - -l the maximum size a process may lock into memory - -m the maximum resident set size - -n the maximum number of open file descriptors - -p the pipe buffer size - -q the maximum number of bytes in POSIX message queues - -r the maximum real-time scheduling priority - -s the maximum stack size - -t the maximum amount of cpu time in seconds - -u the maximum number of user processes - -v the size of virtual memory - -x the maximum number of file locks - -If LIMIT is given, it is the new value of the specified resource; -the special LIMIT values `soft', `hard', and `unlimited' stand for -the current soft limit, the current hard limit, and no limit, respectively. -Otherwise, the current value of the specified resource is printed. -If no option is given, then -f is assumed. Values are in 1024-byte -increments, except for -t, which is in seconds, -p, which is in -increments of 512 bytes, and -u, which is an unscaled number of -processes. +$SHORT_DOC ulimit [-SHacdefilmnpqrstuvx] [limit] +Modify shell resource limits. + +Provides control over the resources available to the shell and processes +it creates, on systems that allow such control. + +Options: + -S use the `soft' resource limit + -H use the `hard' resource limit + -a all current limits are reported + -b the socket buffer size + -c the maximum size of core files created + -d the maximum size of a process's data segment + -e the maximum scheduling priority (`nice') + -f the maximum size of files written by the shell and its children + -i the maximum number of pending signals + -l the maximum size a process may lock into memory + -m the maximum resident set size + -n the maximum number of open file descriptors + -p the pipe buffer size + -q the maximum number of bytes in POSIX message queues + -r the maximum real-time scheduling priority + -s the maximum stack size + -t the maximum amount of cpu time in seconds + -u the maximum number of user processes + -v the size of virtual memory + -x the maximum number of file locks + +If LIMIT is given, it is the new value of the specified resource; the +special LIMIT values `soft', `hard', and `unlimited' stand for the +current soft limit, the current hard limit, and no limit, respectively. +Otherwise, the current value of the specified resource is printed. If +no option is given, then -f is assumed. + +Values are in 1024-byte increments, except for -t, which is in seconds, +-p, which is in increments of 512 bytes, and -u, which is an unscaled +number of processes. + +Exit Status: +Returns success unless an invalid option is supplied or an error occurs. $END #if !defined (_MINIX) @@ -98,7 +104,7 @@ extern int errno; # if defined (HPUX) && defined (RLIMIT_NEEDS_KERNEL) # undef _KERNEL # endif -#else +#elif defined (HAVE_SYS_TIMES_H) # include #endif @@ -172,6 +178,14 @@ extern int errno; #define LIMIT_HARD 0x01 #define LIMIT_SOFT 0x02 +/* "Blocks" are defined as 512 bytes when in Posix mode and 1024 bytes + otherwise. */ +#define POSIXBLK -2 + +#define BLOCKSIZE(x) (((x) == POSIXBLK) ? (posixly_correct ? 512 : 1024) : (x)) + +extern int posixly_correct; + static int _findlim __P((int)); static int ulimit_internal __P((int, char *, int, int)); @@ -193,13 +207,19 @@ typedef struct { int option; /* The ulimit option for this limit. */ int parameter; /* Parameter to pass to get_limit (). */ int block_factor; /* Blocking factor for specific limit. */ - char *description; /* Descriptive string to output. */ - char *units; /* scale */ + const char * const description; /* Descriptive string to output. */ + const char * const units; /* scale */ } RESOURCE_LIMITS; static RESOURCE_LIMITS limits[] = { +#ifdef RLIMIT_PTHREAD + { 'T', RLIMIT_PTHREAD, 1, "number of threads", (char *)NULL }, +#endif +#ifdef RLIMIT_SBSIZE + { 'b', RLIMIT_SBSIZE, 1, "socket buffer size", "bytes" }, +#endif #ifdef RLIMIT_CORE - { 'c', RLIMIT_CORE, 1024, "core file size", "blocks" }, + { 'c', RLIMIT_CORE, POSIXBLK, "core file size", "blocks" }, #endif #ifdef RLIMIT_DATA { 'd', RLIMIT_DATA, 1024, "data seg size", "kbytes" }, @@ -207,7 +227,7 @@ static RESOURCE_LIMITS limits[] = { #ifdef RLIMIT_NICE { 'e', RLIMIT_NICE, 1, "scheduling priority", (char *)NULL }, #endif - { 'f', RLIMIT_FILESIZE, 1024, "file size", "blocks" }, + { 'f', RLIMIT_FILESIZE, POSIXBLK, "file size", "blocks" }, #ifdef RLIMIT_SIGPENDING { 'i', RLIMIT_SIGPENDING, 1, "pending signals", (char *)NULL }, #endif @@ -356,7 +376,7 @@ ulimit_builtin (list) } #endif print_all_limits (mode == 0 ? LIMIT_SOFT : mode); - return (EXECUTION_SUCCESS); + return (sh_chkwrite (EXECUTION_SUCCESS)); } /* default is `ulimit -f' */ @@ -425,12 +445,12 @@ ulimit_internal (cmd, cmdarg, mode, multiple) else if (all_digits (cmdarg)) { limit = string_to_rlimtype (cmdarg); - block_factor = limits[limind].block_factor; + block_factor = BLOCKSIZE(limits[limind].block_factor); real_limit = limit * block_factor; if ((real_limit / block_factor) != limit) { - sh_erange (cmdarg, "limit"); + sh_erange (cmdarg, _("limit")); return (EXECUTION_FAILURE); } } @@ -687,7 +707,9 @@ printone (limind, curlim, pdesc) int pdesc; { char unitstr[64]; + int factor; + factor = BLOCKSIZE(limits[limind].block_factor); if (pdesc) { if (limits[limind].units) @@ -704,7 +726,7 @@ printone (limind, curlim, pdesc) else if (curlim == RLIM_SAVED_CUR) puts ("soft"); else - print_rlimtype ((curlim / limits[limind].block_factor), 1); + print_rlimtype ((curlim / factor), 1); } /* Set all limits to NEWLIM. NEWLIM currently must be RLIM_INFINITY, which @@ -740,7 +762,7 @@ set_all_limits (mode, newlim) for (retval = i = 0; limits[i].option > 0; i++) if (set_limit (i, newlim, mode) < 0) { - builtin_error ("%s: cannot modify limit: %s", limits[i].description, + builtin_error (_("%s: cannot modify limit: %s"), limits[i].description, strerror (errno)); retval = 1; } diff --git a/builtins/umask.def b/builtins/umask.def index 489ca3305..289a0f548 100644 --- a/builtins/umask.def +++ b/builtins/umask.def @@ -1,36 +1,42 @@ This file is umask.def, from which is created umask.c. It implements the builtin "umask" in Bash. -Copyright (C) 1987-2004 Free Software Foundation, Inc. +Copyright (C) 1987-2009 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 free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. -Bash is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. +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. +You should have received a copy of the GNU General Public License +along with Bash. If not, see . $PRODUCES umask.c $BUILTIN umask $FUNCTION umask_builtin $SHORT_DOC umask [-p] [-S] [mode] -The user file-creation mask is set to MODE. If MODE is omitted, or if -`-S' is supplied, the current value of the mask is printed. The `-S' -option makes the output symbolic; otherwise an octal number is output. -If `-p' is supplied, and MODE is omitted, the output is in a form -that may be used as input. If MODE begins with a digit, it is -interpreted as an octal number, otherwise it is a symbolic mode string -like that accepted by chmod(1). +Display or set file mode mask. + +Sets the user file-creation mask to MODE. If MODE is omitted, prints +the current value of the mask. + +If MODE begins with a digit, it is interpreted as an octal number; +otherwise it is a symbolic mode string like that accepted by chmod(1). + +Options: + -p if MODE is omitted, output in a form that may be reused as input + -S makes the output symbolic; otherwise an octal number is output + +Exit Status: +Returns success unless MODE is invalid or an invalid option is given. $END #include @@ -137,8 +143,7 @@ umask_builtin (list) printf ("%04lo\n", (unsigned long)umask_arg); } - fflush (stdout); - return (EXECUTION_SUCCESS); + return (sh_chkwrite (EXECUTION_SUCCESS)); } /* Print the umask in a symbolic form. In the output, a letter is diff --git a/builtins/wait.def b/builtins/wait.def index a30959528..0206926f3 100644 --- a/builtins/wait.def +++ b/builtins/wait.def @@ -1,44 +1,54 @@ This file is wait.def, from which is created wait.c. It implements the builtin "wait" in Bash. -Copyright (C) 1987-2005 Free Software Foundation, Inc. +Copyright (C) 1987-2009 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 free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. -Bash is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. +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. +You should have received a copy of the GNU General Public License +along with Bash. If not, see . $BUILTIN wait $FUNCTION wait_builtin $DEPENDS_ON JOB_CONTROL $PRODUCES wait.c -$SHORT_DOC wait [n] -Wait for the specified process and report its termination status. If -N is not given, all currently active child processes are waited for, -and the return code is zero. N may be a process ID or a job -specification; if a job spec is given, all processes in the job's -pipeline are waited for. +$SHORT_DOC wait [id] +Wait for job completion and return exit status. + +Waits for the process identified by ID, which may be a process ID or a +job specification, and reports its termination status. If ID is not +given, waits for all currently active child processes, and the return +status is zero. If ID is a a job specification, waits for all processes +in the job's pipeline. + +Exit Status: +Returns the status of ID; fails if ID is invalid or an invalid option is +given. $END $BUILTIN wait $FUNCTION wait_builtin $DEPENDS_ON !JOB_CONTROL -$SHORT_DOC wait [n] -Wait for the specified process and report its termination status. If -N is not given, all currently active child processes are waited for, -and the return code is zero. N is a process ID; if it is not given, -all child processes of the shell are waited for. +$SHORT_DOC wait [pid] +Wait for process completion and return exit status. + +Waits for the specified process and reports its termination status. If +PID is not given, all currently active child processes are waited for, +and the return code is zero. PID must be a process ID. + +Exit Status: +Returns the status of ID; fails if ID is invalid or an invalid option is +given. $END #include diff --git a/command.h b/command.h index 75e4990d0..dd52c39c0 100644 --- a/command.h +++ b/command.h @@ -1,23 +1,23 @@ /* command.h -- The structures used internally to represent commands, and the extern declarations of the functions used to create them. */ -/* Copyright (C) 1993-2005 Free Software Foundation, Inc. +/* Copyright (C) 1993-2009 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. + 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #if !defined (_COMMAND_H_) #define _COMMAND_H_ @@ -31,7 +31,8 @@ enum r_instruction { r_duplicating_input, r_duplicating_output, r_deblank_reading_until, r_close_this, r_err_and_out, r_input_output, r_output_force, r_duplicating_input_word, r_duplicating_output_word, - r_move_input, r_move_output, r_move_input_word, r_move_output_word + r_move_input, r_move_output, r_move_input_word, r_move_output_word, + r_append_err_and_out }; /* Redirection errors. */ @@ -44,7 +45,7 @@ enum r_instruction { (ri == r_output_direction || ri == r_err_and_out) #define OUTPUT_REDIRECT(ri) \ - (ri == r_output_direction || ri == r_input_output || ri == r_err_and_out) + (ri == r_output_direction || ri == r_input_output || ri == r_err_and_out || ri == r_append_err_and_out) #define INPUT_REDIRECT(ri) \ (ri == r_input_direction || ri == r_inputa_direction || ri == r_input_output) @@ -54,6 +55,7 @@ enum r_instruction { ri == r_input_output || \ ri == r_err_and_out || \ ri == r_appending_to || \ + ri == r_append_err_and_out || \ ri == r_output_force) /* redirection needs translation */ @@ -64,7 +66,7 @@ enum r_instruction { /* Command Types: */ enum command_type { cm_for, cm_case, cm_while, cm_if, cm_simple, cm_select, cm_connection, cm_function_def, cm_until, cm_group, - cm_arith, cm_cond, cm_arith_for, cm_subshell }; + cm_arith, cm_cond, cm_arith_for, cm_subshell, cm_coproc }; /* Possible values for the `flags' field of a WORD_DESC. */ #define W_HASDOLLAR 0x000001 /* Dollar sign present. */ @@ -88,6 +90,8 @@ enum command_type { cm_for, cm_case, cm_while, cm_if, cm_simple, cm_select, #define W_HASQUOTEDNULL 0x040000 /* word contains a quoted null character */ #define W_DQUOTE 0x080000 /* word should be treated as if double-quoted */ #define W_NOPROCSUB 0x100000 /* don't perform process substitution */ +#define W_HASCTLESC 0x200000 /* word contains literal CTLESC characters */ +#define W_ASSIGNASSOC 0x400000 /* word looks like associative array assignment */ /* Possible values for subshell_environment */ #define SUBSHELL_ASYNC 0x01 /* subshell caused by `command &' */ @@ -95,6 +99,8 @@ enum command_type { cm_for, cm_case, cm_while, cm_if, cm_simple, cm_select, #define SUBSHELL_COMSUB 0x04 /* subshell caused by `command` or $(command) */ #define SUBSHELL_FORK 0x08 /* subshell caused by executing a disk command */ #define SUBSHELL_PIPE 0x10 /* subshell from a pipeline element */ +#define SUBSHELL_PROCSUB 0x20 /* subshell caused by <(command) or >(command) */ +#define SUBSHELL_COPROC 0x40 /* subshell from a coproc pipeline */ /* A structure which represents a word. */ typedef struct word_desc { @@ -156,6 +162,7 @@ typedef struct element { #define CMD_AMPERSAND 0x200 /* command & */ #define CMD_STDIN_REDIR 0x400 /* async command needs implicit . +*/ /*********************************************************/ /* Modify or set defines based on the configure results. */ diff --git a/config-top.h b/config-top.h index 7a90b1615..22433fb3a 100644 --- a/config-top.h +++ b/config-top.h @@ -1,25 +1,22 @@ -/* config-top.h */ +/* config-top.h - various user-settable options not under the control of autoconf. */ -/* This contains various user-settable options not under the control of - autoconf. */ - -/* Copyright (C) 2002 Free Software Foundation, Inc. +/* Copyright (C) 2002-2009 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. + 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ /* Define CONTINUE_AFTER_KILL_ERROR if you want the kill command to continue processing arguments after one of them fails. This is @@ -46,9 +43,14 @@ #define V9_ECHO /* Define DONT_REPORT_SIGPIPE if you don't want to see `Broken pipe' messages - when a job like `cat jobs.c | exit 1' is executed. */ + when a job like `cat jobs.c | exit 1' terminates due to a SIGPIPE. */ #define DONT_REPORT_SIGPIPE +/* Define DONT_REPORT_BROKEN_PIPE_WRITE_ERRORS if you don't want builtins + like `echo' and `printf' to report errors when output does not succeed + due to EPIPE. */ +/* #define DONT_REPORT_BROKEN_PIPE_WRITE_ERRORS */ + /* The default value of the PATH variable. */ #ifndef DEFAULT_PATH_VALUE #define DEFAULT_PATH_VALUE \ @@ -83,5 +85,16 @@ /* #define NON_INTERACTIVE_LOGIN_SHELLS */ /* Define this if you want bash to try to check whether it's being run by - sshd and source the .bashrc if so (like the rshd behavior). */ + sshd and source the .bashrc if so (like the rshd behavior). This checks + for the presence of SSH_CLIENT or SSH2_CLIENT in the initial environment, + which can be fooled under certain not-uncommon circumstances. */ /* #define SSH_SOURCE_BASHRC */ + +/* Define if you want the case-capitalizing operators (~[~]) and the + `capcase' variable attribute (declare -c). */ +#define CASEMOD_CAPCASE + +/* This is used as the name of a shell function to call when a command + name is not found. If you want to name it something other than the + default ("command_not_found_handle"), change it here. */ +/* #define NOTFOUND_HOOK "command_not_found_handle" */ diff --git a/config.h.in b/config.h.in index 3699374d4..60f6d2467 100644 --- a/config.h.in +++ b/config.h.in @@ -1,22 +1,22 @@ /* config.h -- Configuration file for bash. */ -/* Copyright (C) 1987-2007 Free Software Foundation, Inc. +/* Copyright (C) 1987-2009 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public - License for more details. + 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. */ + along with Bash. If not, see . +*/ #ifndef _CONFIG_H_ #define _CONFIG_H_ @@ -123,6 +123,10 @@ =~ binary operator in the [[...]] conditional command. */ #define COND_REGEXP +/* Define COPROCESS_SUPPORT if you want support for ksh-like coprocesses and + the `coproc' reserved word */ +#define COPROCESS_SUPPORT + /* Define ARITH_FOR_COMMAND if you want the ksh93-style for (( init; test; step )) do list; done arithmetic for command. */ @@ -155,6 +159,13 @@ /* Define AFS if you are using Transarc's AFS. */ #undef AFS +/* Define for case-modifying variable attributes; variables modified on + assignment */ +#undef CASEMOD_ATTRS + +/* Define for case-modifying word expansions */ +#undef CASEMOD_EXPANSIONS + #undef ENABLE_NLS /* End of configuration settings controllable by autoconf. */ @@ -356,7 +367,7 @@ #undef HAVE_SYS_ERRLIST #undef HAVE_TZNAME - +#undef HAVE_DECL_TZNAME /* Characteristics of some of the system structures. */ @@ -531,6 +542,14 @@ /* Define if you have the fcntl function. */ #undef HAVE_FCNTL +/* Define if you have the fdprintf function. */ +#undef HAVE_FDPRINTF + +/* Define if you have the fpurge/__fpurge function. */ +#undef HAVE_FPURGE +#undef HAVE___FPURGE +#undef HAVE_DECL_FPURGE + /* Define if you have the getaddrinfo function. */ #undef HAVE_GETADDRINFO @@ -633,6 +652,9 @@ /* Define if you have the mbrtowc function. */ #undef HAVE_MBRTOWC +/* Define if you have the mbscmp function. */ +#undef HAVE_MBSCMP + /* Define if you have the mbsrtowcs function. */ #undef HAVE_MBSRTOWCS @@ -678,6 +700,9 @@ /* Define if you have the setenv function. */ #undef HAVE_SETENV +/* Define if you have the setitimer function. */ +#undef HAVE_SETITIMER + /* Define if you have the setlinebuf function. */ #undef HAVE_SETLINEBUF diff --git a/configure b/configure old mode 100755 new mode 100644 index 3477a08fb..c22908333 --- a/configure +++ b/configure @@ -1,28 +1,85 @@ #! /bin/sh -# From configure.in for Bash 3.2, version 3.190. +# From configure.in for Bash 4.0, version 4.009. # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.59 for bash 3.2-release. +# Generated by GNU Autoconf 2.63 for bash 4.0-rc1. # # Report bugs to . # -# Copyright (C) 2003 Free Software Foundation, Inc. +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, +# 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## -# Be Bourne compatible +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' -elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then - set -o posix + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in + *posix*) set -o posix ;; +esac + +fi + + + + +# PATH needs CR +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + +as_nl=' +' +export as_nl +# Printing a long string crashes Solaris 7 /usr/bin/printf. +as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo +if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='printf %s\n' + as_echo_n='printf %s' +else + if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then + as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' + as_echo_n='/usr/ucb/echo -n' + else + as_echo_body='eval expr "X$1" : "X\\(.*\\)"' + as_echo_n_body='eval + arg=$1; + case $arg in + *"$as_nl"*) + expr "X$arg" : "X\\(.*\\)$as_nl"; + arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; + esac; + expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" + ' + export as_echo_n_body + as_echo_n='sh -c $as_echo_n_body as_echo' + fi + export as_echo_body + as_echo='sh -c $as_echo_body as_echo' +fi + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } fi -DUALCASE=1; export DUALCASE # for MKS sh # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then @@ -32,33 +89,60 @@ else fi +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +case $0 in + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break +done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + { (exit 1); exit 1; } +fi + # Work around bugs in pre-3.0 UWIN ksh. -$as_unset ENV MAIL MAILPATH +for as_var in ENV MAIL MAILPATH +do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var +done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. -for as_var in \ - LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ - LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ - LC_TELEPHONE LC_TIME -do - if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then - eval $as_var=C; export $as_var - else - $as_unset $as_var - fi -done +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE # Required to use basename. -if expr a : '\(a\)' >/dev/null 2>&1; then +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi -if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false @@ -66,157 +150,391 @@ fi # Name of the executable. -as_me=`$as_basename "$0" || +as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)$' \| \ - . : '\(.\)' 2>/dev/null || -echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } - /^X\/\(\/\/\)$/{ s//\1/; q; } - /^X\/\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` + X"$0" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` +# CDPATH. +$as_unset CDPATH -# PATH needs CR, and LINENO needs CR and PATH. -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi - rm -f conf$$.sh +if test "x$CONFIG_SHELL" = x; then + if (eval ":") 2>/dev/null; then + as_have_required=yes +else + as_have_required=no fi + if test $as_have_required = yes && (eval ": +(as_func_return () { + (exit \$1) +} +as_func_success () { + as_func_return 0 +} +as_func_failure () { + as_func_return 1 +} +as_func_ret_success () { + return 0 +} +as_func_ret_failure () { + return 1 +} - as_lineno_1=$LINENO - as_lineno_2=$LINENO - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x$as_lineno_3" = "x$as_lineno_2" || { - # Find who we are. Look in the path if we contain no path at all - # relative or not. - case $0 in - *[\\/]* ) as_myself=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break -done +exitcode=0 +if as_func_success; then + : +else + exitcode=1 + echo as_func_success failed. +fi - ;; - esac - # We did not find ourselves, most probably we were run as `sh COMMAND' - # in which case we are not to be found in the path. - if test "x$as_myself" = x; then - as_myself=$0 - fi - if test ! -f "$as_myself"; then - { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2 - { (exit 1); exit 1; }; } - fi - case $CONFIG_SHELL in - '') +if as_func_failure; then + exitcode=1 + echo as_func_failure succeeded. +fi + +if as_func_ret_success; then + : +else + exitcode=1 + echo as_func_ret_success failed. +fi + +if as_func_ret_failure; then + exitcode=1 + echo as_func_ret_failure succeeded. +fi + +if ( set x; as_func_ret_success y && test x = \"\$1\" ); then + : +else + exitcode=1 + echo positional parameters were not saved. +fi + +test \$exitcode = 0) || { (exit 1); exit 1; } + +( + as_lineno_1=\$LINENO + as_lineno_2=\$LINENO + test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" && + test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; } +") 2> /dev/null; then + : +else + as_candidate_shells= as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - for as_base in sh bash ksh sh5; do - case $as_dir in + case $as_dir in /*) - if ("$as_dir/$as_base" -c ' + for as_base in sh bash ksh sh5; do + as_candidate_shells="$as_candidate_shells $as_dir/$as_base" + done;; + esac +done +IFS=$as_save_IFS + + + for as_shell in $as_candidate_shells $SHELL; do + # Try only shells that exist, to save several forks. + if { test -f "$as_shell" || test -f "$as_shell.exe"; } && + { ("$as_shell") 2> /dev/null <<\_ASEOF +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in + *posix*) set -o posix ;; +esac + +fi + + +: +_ASEOF +}; then + CONFIG_SHELL=$as_shell + as_have_required=yes + if { "$as_shell" 2> /dev/null <<\_ASEOF +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in + *posix*) set -o posix ;; +esac + +fi + + +: +(as_func_return () { + (exit $1) +} +as_func_success () { + as_func_return 0 +} +as_func_failure () { + as_func_return 1 +} +as_func_ret_success () { + return 0 +} +as_func_ret_failure () { + return 1 +} + +exitcode=0 +if as_func_success; then + : +else + exitcode=1 + echo as_func_success failed. +fi + +if as_func_failure; then + exitcode=1 + echo as_func_failure succeeded. +fi + +if as_func_ret_success; then + : +else + exitcode=1 + echo as_func_ret_success failed. +fi + +if as_func_ret_failure; then + exitcode=1 + echo as_func_ret_failure succeeded. +fi + +if ( set x; as_func_ret_success y && test x = "$1" ); then + : +else + exitcode=1 + echo positional parameters were not saved. +fi + +test $exitcode = 0) || { (exit 1); exit 1; } + +( as_lineno_1=$LINENO as_lineno_2=$LINENO - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` test "x$as_lineno_1" != "x$as_lineno_2" && - test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then - $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } - $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } - CONFIG_SHELL=$as_dir/$as_base - export CONFIG_SHELL - exec "$CONFIG_SHELL" "$0" ${1+"$@"} - fi;; - esac - done -done -;; - esac + test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; } + +_ASEOF +}; then + break +fi + +fi + + done + + if test "x$CONFIG_SHELL" != x; then + for as_var in BASH_ENV ENV + do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var + done + export CONFIG_SHELL + exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} +fi + + + if test $as_have_required = no; then + echo This script requires a shell more modern than all the + echo shells that I found on your system. Please install a + echo modern shell, or manually run the script under such a + echo shell if you do have one. + { (exit 1); exit 1; } +fi + + +fi + +fi + + + +(eval "as_func_return () { + (exit \$1) +} +as_func_success () { + as_func_return 0 +} +as_func_failure () { + as_func_return 1 +} +as_func_ret_success () { + return 0 +} +as_func_ret_failure () { + return 1 +} + +exitcode=0 +if as_func_success; then + : +else + exitcode=1 + echo as_func_success failed. +fi + +if as_func_failure; then + exitcode=1 + echo as_func_failure succeeded. +fi + +if as_func_ret_success; then + : +else + exitcode=1 + echo as_func_ret_success failed. +fi + +if as_func_ret_failure; then + exitcode=1 + echo as_func_ret_failure succeeded. +fi + +if ( set x; as_func_ret_success y && test x = \"\$1\" ); then + : +else + exitcode=1 + echo positional parameters were not saved. +fi + +test \$exitcode = 0") || { + echo No shell found that supports shell functions. + echo Please tell bug-autoconf@gnu.org about your system, + echo including any error possibly output before this message. + echo This can help us improve future autoconf versions. + echo Configuration will now proceed without shell functions. +} + + + + as_lineno_1=$LINENO + as_lineno_2=$LINENO + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a - # line-number line before each line; the second 'sed' does the real - # work. The second script uses 'N' to pair each line-number line - # with the numbered line, and appends trailing '-' during - # substitution so that $LINENO is not a special case at line end. + # line-number line after each line using $LINENO; the second 'sed' + # does the real work. The second script uses 'N' to pair each + # line-number line with the line containing $LINENO, and appends + # trailing '-' during substitution so that $LINENO is not a special + # case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the - # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) - sed '=' <$as_myself | + # scripts with optimization help from Paolo Bonzini. Blame Lee + # E. McMahon (1931-1989) for sed's syntax. :-) + sed -n ' + p + /[$]LINENO/= + ' <$as_myself | sed ' + s/[$]LINENO.*/&-/ + t lineno + b + :lineno N - s,$,-, - : loop - s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, + :loop + s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop - s,-$,, - s,^['$as_cr_digits']*\n,, + s/-\n.*// ' >$as_me.lineno && - chmod +x $as_me.lineno || - { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 + chmod +x "$as_me.lineno" || + { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the - # original and so on. Autoconf is especially sensible to this). - . ./$as_me.lineno + # original and so on. Autoconf is especially sensitive to this). + . "./$as_me.lineno" # Exit status is that of the last command. exit } -case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in - *c*,-n*) ECHO_N= ECHO_C=' -' ECHO_T=' ' ;; - *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; - *) ECHO_N= ECHO_C='\c' ECHO_T= ;; -esac +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi -if expr a : '\(a\)' >/dev/null 2>&1; then +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in +-n*) + case `echo 'x\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + *) ECHO_C='\c';; + esac;; +*) + ECHO_N='-n';; +esac +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file -echo >conf$$.file -if ln -s conf$$.file conf$$ 2>/dev/null; then - # We could just check for DJGPP; but this test a) works b) is more generic - # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). - if test -f conf$$.exe; then - # Don't use ln at all; we don't have any links - as_ln_s='cp -p' - else +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -p'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -p' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -p' fi -elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln else as_ln_s='cp -p' fi -rm -f conf$$ conf$$.exe conf$$.file +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p=: @@ -225,7 +543,28 @@ else as_mkdir_p=false fi -as_executable_p="test -f" +if test -x / >/dev/null 2>&1; then + as_test_x='test -x' +else + if ls -dL / >/dev/null 2>&1; then + as_ls_L_option=L + else + as_ls_L_option= + fi + as_test_x=' + eval sh -c '\'' + if test -d "$1"; then + test -d "$1/."; + else + case $1 in + -*)set "./$1";; + esac; + case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in + ???[sx]*):;;*)false;;esac;fi + '\'' sh + ' +fi +as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" @@ -234,90 +573,298 @@ as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" -# IFS -# We need space, tab and new line, in precisely that order. -as_nl=' -' -IFS=" $as_nl" - -# CDPATH. -$as_unset CDPATH +exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` -exec 6>&1 - # # Initializations. # ac_default_prefix=/usr/local +ac_clean_files= ac_config_libobj_dir=. +LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= SHELL=${CONFIG_SHELL-/bin/sh} -# Maximum number of lines to put in a shell here document. -# This variable seems obsolete. It should probably be removed, and -# only ac_max_sed_lines should be used. -: ${ac_max_here_lines=38} - # Identity of this package. PACKAGE_NAME='bash' PACKAGE_TARNAME='bash' -PACKAGE_VERSION='3.2-release' -PACKAGE_STRING='bash 3.2-release' +PACKAGE_VERSION='4.0-rc1' +PACKAGE_STRING='bash 4.0-rc1' PACKAGE_BUGREPORT='bug-bash@gnu.org' ac_unique_file="shell.h" # Factoring default headers for most tests. ac_includes_default="\ #include -#if HAVE_SYS_TYPES_H +#ifdef HAVE_SYS_TYPES_H # include #endif -#if HAVE_SYS_STAT_H +#ifdef HAVE_SYS_STAT_H # include #endif -#if STDC_HEADERS +#ifdef STDC_HEADERS # include # include #else -# if HAVE_STDLIB_H +# ifdef HAVE_STDLIB_H # include # endif #endif -#if HAVE_STRING_H -# if !STDC_HEADERS && HAVE_MEMORY_H +#ifdef HAVE_STRING_H +# if !defined STDC_HEADERS && defined HAVE_MEMORY_H # include # endif # include #endif -#if HAVE_STRINGS_H +#ifdef HAVE_STRINGS_H # include #endif -#if HAVE_INTTYPES_H +#ifdef HAVE_INTTYPES_H # include -#else -# if HAVE_STDINT_H -# include -# endif #endif -#if HAVE_UNISTD_H +#ifdef HAVE_STDINT_H +# include +#endif +#ifdef HAVE_UNISTD_H # include #endif" -ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os host host_cpu host_vendor host_os EMACS lispdir DEBUGGER_START_FILE TESTSCRIPT PURIFY MALLOC_TARGET MALLOC_SRC MALLOC_LIB MALLOC_LIBRARY MALLOC_LDFLAGS MALLOC_DEP htmldir HELPDIR HELPDIRDEFINE HELPINSTALL HELPSTRINGS CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP EGREP CROSS_COMPILE SIGNAMES_H SIGNAMES_O CC_FOR_BUILD STATIC_LD CFLAGS_FOR_BUILD CPPFLAGS_FOR_BUILD LDFLAGS_FOR_BUILD RL_VERSION RL_MAJOR RL_MINOR READLINE_LIB READLINE_DEP RL_LIBDIR RL_INCLUDEDIR RL_INCLUDE HISTORY_LIB HISTORY_DEP HIST_LIBDIR TILDE_LIB INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA AR RANLIB ac_ct_RANLIB YACC SET_MAKE MAKE_SHELL SIZE MKINSTALLDIRS USE_NLS MSGFMT GMSGFMT XGETTEXT MSGMERGE ALLOCA GLIBC21 LIBICONV LTLIBICONV INTLBISON BUILD_INCLUDED_LIBINTL USE_INCLUDED_LIBINTL CATOBJEXT DATADIRNAME INSTOBJEXT GENCAT INTLOBJS INTL_LIBTOOL_SUFFIX_PREFIX INTLLIBS LIBINTL LTLIBINTL POSUB LIBOBJS INTL_DEP INTL_INC LIBINTL_H SIGLIST_O TERMCAP_LIB TERMCAP_DEP JOBS_O SHOBJ_CC SHOBJ_CFLAGS SHOBJ_LD SHOBJ_LDFLAGS SHOBJ_XLDFLAGS SHOBJ_LIBS SHOBJ_STATUS PROFILE_FLAGS incdir BUILD_DIR ARFLAGS BASHVERS RELSTATUS DEBUG MALLOC_DEBUG LOCAL_LIBS LOCAL_CFLAGS LOCAL_LDFLAGS LOCAL_DEFS LTLIBOBJS' +ac_header_list= +ac_func_list= +ac_subst_vars='LTLIBOBJS +LOCAL_DEFS +LOCAL_LDFLAGS +LOCAL_CFLAGS +LOCAL_LIBS +MALLOC_DEBUG +DEBUG +RELSTATUS +BASHVERS +ARFLAGS +BUILD_DIR +incdir +PROFILE_FLAGS +SHOBJ_STATUS +SHOBJ_LIBS +SHOBJ_XLDFLAGS +SHOBJ_LDFLAGS +SHOBJ_LD +SHOBJ_CFLAGS +SHOBJ_CC +JOBS_O +TERMCAP_DEP +TERMCAP_LIB +SIGLIST_O +LIBINTL_H +INTL_INC +INTL_DEP +LIBOBJS +POSUB +LTLIBINTL +LIBINTL +INTLLIBS +INTL_LIBTOOL_SUFFIX_PREFIX +INTLOBJS +GENCAT +INSTOBJEXT +DATADIRNAME +CATOBJEXT +USE_INCLUDED_LIBINTL +BUILD_INCLUDED_LIBINTL +INTLBISON +LTLIBICONV +LIBICONV +GLIBC21 +ALLOCA +MSGMERGE +XGETTEXT +GMSGFMT +MSGFMT +USE_NLS +MKINSTALLDIRS +SIZE +MAKE_SHELL +SET_MAKE +YFLAGS +YACC +RANLIB +AR +INSTALL_DATA +INSTALL_SCRIPT +INSTALL_PROGRAM +TILDE_LIB +HIST_LIBDIR +HISTORY_DEP +HISTORY_LIB +RL_INCLUDE +RL_INCLUDEDIR +RL_LIBDIR +READLINE_DEP +READLINE_LIB +RL_MINOR +RL_MAJOR +RL_VERSION +LDFLAGS_FOR_BUILD +CPPFLAGS_FOR_BUILD +CFLAGS_FOR_BUILD +STATIC_LD +CC_FOR_BUILD +SIGNAMES_O +SIGNAMES_H +CROSS_COMPILE +EGREP +GREP +CPP +OBJEXT +EXEEXT +ac_ct_CC +CPPFLAGS +LDFLAGS +CFLAGS +CC +HELPSTRINGS +HELPINSTALL +HELPDIRDEFINE +HELPDIR +MALLOC_DEP +MALLOC_LDFLAGS +MALLOC_LIBRARY +MALLOC_LIB +MALLOC_SRC +MALLOC_TARGET +PURIFY +TESTSCRIPT +DEBUGGER_START_FILE +lispdir +EMACS +host_os +host_vendor +host_cpu +host +build_os +build_vendor +build_cpu +build +target_alias +host_alias +build_alias +LIBS +ECHO_T +ECHO_N +ECHO_C +DEFS +mandir +localedir +libdir +psdir +pdfdir +dvidir +htmldir +infodir +docdir +oldincludedir +includedir +localstatedir +sharedstatedir +sysconfdir +datadir +datarootdir +libexecdir +sbindir +bindir +program_transform_name +prefix +exec_prefix +PACKAGE_BUGREPORT +PACKAGE_STRING +PACKAGE_VERSION +PACKAGE_TARNAME +PACKAGE_NAME +PATH_SEPARATOR +SHELL' ac_subst_files='' +ac_user_opts=' +enable_option_checking +with_lispdir +with_afs +with_bash_malloc +with_curses +with_gnu_malloc +with_installed_readline +with_purecov +with_purify +enable_minimal_config +enable_alias +enable_arith_for_command +enable_array_variables +enable_bang_history +enable_brace_expansion +enable_casemod_attributes +enable_casemod_expansions +enable_command_timing +enable_cond_command +enable_cond_regexp +enable_coprocesses +enable_debugger +enable_directory_stack +enable_disabled_builtins +enable_dparen_arithmetic +enable_extended_glob +enable_help_builtin +enable_history +enable_job_control +enable_multibyte +enable_net_redirections +enable_process_substitution +enable_progcomp +enable_prompt_string_decoding +enable_readline +enable_restricted +enable_select +enable_separate_helpfiles +enable_single_help_strings +enable_strict_posix_default +enable_usg_echo_default +enable_xpg_echo_default +enable_mem_scramble +enable_profiling +enable_static_link +enable_largefile +enable_nls +with_gnu_ld +enable_rpath +with_libiconv_prefix +with_included_gettext +with_libintl_prefix +' + ac_precious_vars='build_alias +host_alias +target_alias +DEBUGGER_START_FILE +CC +CFLAGS +LDFLAGS +LIBS +CPPFLAGS +CPP +YACC +YFLAGS' + # Initialize some variables set by options. ac_init_help= ac_init_version=false +ac_unrecognized_opts= +ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null @@ -340,34 +887,48 @@ x_libraries=NONE # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. +# (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' -datadir='${prefix}/share' +datarootdir='${prefix}/share' +datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' -libdir='${exec_prefix}/lib' includedir='${prefix}/include' oldincludedir='/usr/include' -infodir='${prefix}/info' -mandir='${prefix}/man' +docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' +infodir='${datarootdir}/info' +htmldir='${docdir}' +dvidir='${docdir}' +pdfdir='${docdir}' +psdir='${docdir}' +libdir='${exec_prefix}/lib' +localedir='${datarootdir}/locale' +mandir='${datarootdir}/man' ac_prev= +ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then - eval "$ac_prev=\$ac_option" + eval $ac_prev=\$ac_option ac_prev= continue fi - ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'` + case $ac_option in + *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; + *) ac_optarg=yes ;; + esac # Accept the important Cygnus configure options, so we can diagnose typos. - case $ac_option in + case $ac_dashdash$ac_option in + --) + ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; @@ -389,33 +950,61 @@ do --config-cache | -C) cache_file=config.cache ;; - -datadir | --datadir | --datadi | --datad | --data | --dat | --da) + -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; - -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ - | --da=*) + -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; + -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ + | --dataroo | --dataro | --datar) + ac_prev=datarootdir ;; + -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ + | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) + datarootdir=$ac_optarg ;; + -disable-* | --disable-*) - ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` + ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. - expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid feature name: $ac_feature" >&2 + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2 { (exit 1); exit 1; }; } - ac_feature=`echo $ac_feature | sed 's/-/_/g'` - eval "enable_$ac_feature=no" ;; + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=no ;; + + -docdir | --docdir | --docdi | --doc | --do) + ac_prev=docdir ;; + -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) + docdir=$ac_optarg ;; + + -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) + ac_prev=dvidir ;; + -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) + dvidir=$ac_optarg ;; -enable-* | --enable-*) - ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` + ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. - expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid feature name: $ac_feature" >&2 + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2 { (exit 1); exit 1; }; } - ac_feature=`echo $ac_feature | sed 's/-/_/g'` - case $ac_option in - *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; - *) ac_optarg=yes ;; + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; esac - eval "enable_$ac_feature='$ac_optarg'" ;; + eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ @@ -442,6 +1031,12 @@ do -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; + -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) + ac_prev=htmldir ;; + -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ + | --ht=*) + htmldir=$ac_optarg ;; + -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; @@ -466,13 +1061,16 @@ do | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; + -localedir | --localedir | --localedi | --localed | --locale) + ac_prev=localedir ;; + -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) + localedir=$ac_optarg ;; + -localstatedir | --localstatedir | --localstatedi | --localstated \ - | --localstate | --localstat | --localsta | --localst \ - | --locals | --local | --loca | --loc | --lo) + | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ - | --localstate=* | --localstat=* | --localsta=* | --localst=* \ - | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) + | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) @@ -537,6 +1135,16 @@ do | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; + -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) + ac_prev=pdfdir ;; + -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) + pdfdir=$ac_optarg ;; + + -psdir | --psdir | --psdi | --psd | --ps) + ac_prev=psdir ;; + -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) + psdir=$ac_optarg ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; @@ -587,26 +1195,38 @@ do ac_init_version=: ;; -with-* | --with-*) - ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` + ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. - expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid package name: $ac_package" >&2 + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2 { (exit 1); exit 1; }; } - ac_package=`echo $ac_package| sed 's/-/_/g'` - case $ac_option in - *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; - *) ac_optarg=yes ;; + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" + ac_unrecognized_sep=', ';; esac - eval "with_$ac_package='$ac_optarg'" ;; + eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) - ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` + ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. - expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid package name: $ac_package" >&2 + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2 { (exit 1); exit 1; }; } - ac_package=`echo $ac_package | sed 's/-/_/g'` - eval "with_$ac_package=no" ;; + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. @@ -626,7 +1246,7 @@ do | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; - -*) { echo "$as_me: error: unrecognized option: $ac_option + -*) { $as_echo "$as_me: error: unrecognized option: $ac_option Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; } ;; @@ -635,17 +1255,16 @@ Try \`$0 --help' for more information." >&2 ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 + { $as_echo "$as_me: error: invalid variable name: $ac_envvar" >&2 { (exit 1); exit 1; }; } - ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` - eval "$ac_envvar='$ac_optarg'" + eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. - echo "$as_me: WARNING: you should use --build, --host, --target" >&2 + $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && - echo "$as_me: WARNING: invalid host type: $ac_option" >&2 + $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} ;; @@ -654,31 +1273,39 @@ done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` - { echo "$as_me: error: missing argument to $ac_option" >&2 + { $as_echo "$as_me: error: missing argument to $ac_option" >&2 { (exit 1); exit 1; }; } fi -# Be sure to have absolute paths. -for ac_var in exec_prefix prefix -do - eval ac_val=$`echo $ac_var` - case $ac_val in - [\\/$]* | ?:[\\/]* | NONE | '' ) ;; - *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 - { (exit 1); exit 1; }; };; +if test -n "$ac_unrecognized_opts"; then + case $enable_option_checking in + no) ;; + fatal) { $as_echo "$as_me: error: unrecognized options: $ac_unrecognized_opts" >&2 + { (exit 1); exit 1; }; } ;; + *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac -done +fi -# Be sure to have absolute paths. -for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \ - localstatedir libdir includedir oldincludedir infodir mandir +# Check all directory arguments for consistency. +for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ + datadir sysconfdir sharedstatedir localstatedir includedir \ + oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ + libdir localedir mandir do - eval ac_val=$`echo $ac_var` + eval ac_val=\$$ac_var + # Remove trailing slashes. case $ac_val in - [\\/$]* | ?:[\\/]* ) ;; - *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 - { (exit 1); exit 1; }; };; + */ ) + ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` + eval $ac_var=\$ac_val;; esac + # Be sure to have absolute directory names. + case $ac_val in + [\\/$]* | ?:[\\/]* ) continue;; + NONE | '' ) case $ac_var in *prefix ) continue;; esac;; + esac + { $as_echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 + { (exit 1); exit 1; }; } done # There might be people who depend on the old broken behavior: `$host' @@ -692,7 +1319,7 @@ target=$target_alias if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe - echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. + $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used." >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes @@ -705,78 +1332,76 @@ test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null +ac_pwd=`pwd` && test -n "$ac_pwd" && +ac_ls_di=`ls -di .` && +ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || + { $as_echo "$as_me: error: working directory cannot be determined" >&2 + { (exit 1); exit 1; }; } +test "X$ac_ls_di" = "X$ac_pwd_ls_di" || + { $as_echo "$as_me: error: pwd does not report name of working directory" >&2 + { (exit 1); exit 1; }; } + + # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes - # Try the directory containing this script, then its parent. - ac_confdir=`(dirname "$0") 2>/dev/null || -$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$0" : 'X\(//\)[^/]' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$0" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` + # Try the directory containing this script, then the parent directory. + ac_confdir=`$as_dirname -- "$as_myself" || +$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_myself" : 'X\(//\)[^/]' \| \ + X"$as_myself" : 'X\(//\)$' \| \ + X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_myself" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` srcdir=$ac_confdir - if test ! -r $srcdir/$ac_unique_file; then + if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi -if test ! -r $srcdir/$ac_unique_file; then - if test "$ac_srcdir_defaulted" = yes; then - { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2 +if test ! -r "$srcdir/$ac_unique_file"; then + test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." + { $as_echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 { (exit 1); exit 1; }; } - else - { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 - { (exit 1); exit 1; }; } - fi fi -(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null || - { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2 +ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" +ac_abs_confdir=`( + cd "$srcdir" && test -r "./$ac_unique_file" || { $as_echo "$as_me: error: $ac_msg" >&2 { (exit 1); exit 1; }; } -srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'` -ac_env_build_alias_set=${build_alias+set} -ac_env_build_alias_value=$build_alias -ac_cv_env_build_alias_set=${build_alias+set} -ac_cv_env_build_alias_value=$build_alias -ac_env_host_alias_set=${host_alias+set} -ac_env_host_alias_value=$host_alias -ac_cv_env_host_alias_set=${host_alias+set} -ac_cv_env_host_alias_value=$host_alias -ac_env_target_alias_set=${target_alias+set} -ac_env_target_alias_value=$target_alias -ac_cv_env_target_alias_set=${target_alias+set} -ac_cv_env_target_alias_value=$target_alias -ac_env_DEBUGGER_START_FILE_set=${DEBUGGER_START_FILE+set} -ac_env_DEBUGGER_START_FILE_value=$DEBUGGER_START_FILE -ac_cv_env_DEBUGGER_START_FILE_set=${DEBUGGER_START_FILE+set} -ac_cv_env_DEBUGGER_START_FILE_value=$DEBUGGER_START_FILE -ac_env_CC_set=${CC+set} -ac_env_CC_value=$CC -ac_cv_env_CC_set=${CC+set} -ac_cv_env_CC_value=$CC -ac_env_CFLAGS_set=${CFLAGS+set} -ac_env_CFLAGS_value=$CFLAGS -ac_cv_env_CFLAGS_set=${CFLAGS+set} -ac_cv_env_CFLAGS_value=$CFLAGS -ac_env_LDFLAGS_set=${LDFLAGS+set} -ac_env_LDFLAGS_value=$LDFLAGS -ac_cv_env_LDFLAGS_set=${LDFLAGS+set} -ac_cv_env_LDFLAGS_value=$LDFLAGS -ac_env_CPPFLAGS_set=${CPPFLAGS+set} -ac_env_CPPFLAGS_value=$CPPFLAGS -ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set} -ac_cv_env_CPPFLAGS_value=$CPPFLAGS -ac_env_CPP_set=${CPP+set} -ac_env_CPP_value=$CPP -ac_cv_env_CPP_set=${CPP+set} -ac_cv_env_CPP_value=$CPP + pwd)` +# When building in place, set srcdir=. +if test "$ac_abs_confdir" = "$ac_pwd"; then + srcdir=. +fi +# Remove unnecessary trailing slashes from srcdir. +# Double slashes in file names in object file debugging info +# mess up M-x gdb in Emacs. +case $srcdir in +*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; +esac +for ac_var in $ac_precious_vars; do + eval ac_env_${ac_var}_set=\${${ac_var}+set} + eval ac_env_${ac_var}_value=\$${ac_var} + eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} + eval ac_cv_env_${ac_var}_value=\$${ac_var} +done # # Report the --help message. @@ -785,7 +1410,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.2-release to adapt to many kinds of systems. +\`configure' configures bash 4.0-rc1 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -805,14 +1430,11 @@ Configuration: -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] -_ACEOF - - cat <<_ACEOF Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX - [$ac_default_prefix] + [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX - [PREFIX] + [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify @@ -822,18 +1444,25 @@ for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: - --bindir=DIR user executables [EPREFIX/bin] - --sbindir=DIR system admin executables [EPREFIX/sbin] - --libexecdir=DIR program executables [EPREFIX/libexec] - --datadir=DIR read-only architecture-independent data [PREFIX/share] - --sysconfdir=DIR read-only single-machine data [PREFIX/etc] - --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] - --localstatedir=DIR modifiable single-machine data [PREFIX/var] - --libdir=DIR object code libraries [EPREFIX/lib] - --includedir=DIR C header files [PREFIX/include] - --oldincludedir=DIR C header files for non-gcc [/usr/include] - --infodir=DIR info documentation [PREFIX/info] - --mandir=DIR man documentation [PREFIX/man] + --bindir=DIR user executables [EPREFIX/bin] + --sbindir=DIR system admin executables [EPREFIX/sbin] + --libexecdir=DIR program executables [EPREFIX/libexec] + --sysconfdir=DIR read-only single-machine data [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] + --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --libdir=DIR object code libraries [EPREFIX/lib] + --includedir=DIR C header files [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc [/usr/include] + --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] + --datadir=DIR read-only architecture-independent data [DATAROOTDIR] + --infodir=DIR info documentation [DATAROOTDIR/info] + --localedir=DIR locale-dependent data [DATAROOTDIR/locale] + --mandir=DIR man documentation [DATAROOTDIR/man] + --docdir=DIR documentation root [DATAROOTDIR/doc/bash] + --htmldir=DIR html documentation [DOCDIR] + --dvidir=DIR dvi documentation [DOCDIR] + --pdfdir=DIR pdf documentation [DOCDIR] + --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF @@ -846,11 +1475,12 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of bash 3.2-release:";; + short | recursive ) echo "Configuration of bash 4.0-rc1:";; esac cat <<\_ACEOF Optional Features: + --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-minimal-config a minimal sh-like configuration @@ -862,10 +1492,16 @@ Optional Features: --enable-bang-history turn on csh-style history substitution --enable-brace-expansion include brace expansion + --enable-casemod-attributes + include case-modifying variable attributes + --enable-casemod-expansions + include case-modifying word expansions --enable-command-timing enable the time reserved word and command timing --enable-cond-command enable the conditional command - --enable-cond-regexp enable extgended regular expression matching in + --enable-cond-regexp enable extended regular expression matching in conditional commands + --enable-coprocesses enable coprocess support and the coproc reserved + word --enable-debugger enable support for bash debugger --enable-directory-stack enable builtins pushd/popd/dirs @@ -936,129 +1572,103 @@ Some influential environment variables: CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory - CPPFLAGS C/C++ preprocessor flags, e.g. -I if you have - headers in a nonstandard directory + LIBS libraries to pass to the linker, e.g. -l + CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I if + you have headers in a nonstandard directory CPP C preprocessor + YACC The `Yet Another C Compiler' implementation to use. Defaults to + the first program found out of: `bison -y', `byacc', `yacc'. + YFLAGS The list of arguments that will be passed by default to $YACC. + This script will default YFLAGS to the empty string to avoid a + default value of `-d' given by some make applications. Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to . _ACEOF +ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. - ac_popdir=`pwd` for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue - test -d $ac_dir || continue + test -d "$ac_dir" || + { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || + continue ac_builddir=. -if test "$ac_dir" != .; then - ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` - # A "../" for each directory in $ac_dir_suffix. - ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` -else - ac_dir_suffix= ac_top_builddir= -fi +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix case $srcdir in - .) # No --srcdir option. We are building in place. + .) # We are building in place. ac_srcdir=. - if test -z "$ac_top_builddir"; then - ac_top_srcdir=. - else - ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` - fi ;; - [\\/]* | ?:[\\/]* ) # Absolute path. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir ;; - *) # Relative path. - ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_builddir$srcdir ;; -esac - -# Do not use `cd foo && pwd` to compute absolute paths, because -# the directories may not exist. -case `pwd` in -.) ac_abs_builddir="$ac_dir";; -*) - case "$ac_dir" in - .) ac_abs_builddir=`pwd`;; - [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; - *) ac_abs_builddir=`pwd`/"$ac_dir";; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_top_builddir=${ac_top_builddir}.;; -*) - case ${ac_top_builddir}. in - .) ac_abs_top_builddir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; - *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_srcdir=$ac_srcdir;; -*) - case $ac_srcdir in - .) ac_abs_srcdir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; - *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; - esac;; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac -case $ac_abs_builddir in -.) ac_abs_top_srcdir=$ac_top_srcdir;; -*) - case $ac_top_srcdir in - .) ac_abs_top_srcdir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; - *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; - esac;; -esac - - cd $ac_dir - # Check for guested configure; otherwise get Cygnus style configure. - if test -f $ac_srcdir/configure.gnu; then - echo - $SHELL $ac_srcdir/configure.gnu --help=recursive - elif test -f $ac_srcdir/configure; then - echo - $SHELL $ac_srcdir/configure --help=recursive - elif test -f $ac_srcdir/configure.ac || - test -f $ac_srcdir/configure.in; then - echo - $ac_configure --help +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + cd "$ac_dir" || { ac_status=$?; continue; } + # Check for guested configure. + if test -f "$ac_srcdir/configure.gnu"; then + echo && + $SHELL "$ac_srcdir/configure.gnu" --help=recursive + elif test -f "$ac_srcdir/configure"; then + echo && + $SHELL "$ac_srcdir/configure" --help=recursive else - echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 - fi - cd $ac_popdir + $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 + fi || ac_status=$? + cd "$ac_pwd" || { ac_status=$?; break; } done fi -test -n "$ac_init_help" && exit 0 +test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -bash configure 3.2-release -generated by GNU Autoconf 2.59 +bash configure 4.0-rc1 +generated by GNU Autoconf 2.63 -Copyright (C) 2003 Free Software Foundation, Inc. +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, +2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF - exit 0 + exit fi -exec 5>config.log -cat >&5 <<_ACEOF +cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by bash $as_me 3.2-release, which was -generated by GNU Autoconf 2.59. Invocation command line was +It was created by bash $as_me 4.0-rc1, which was +generated by GNU Autoconf 2.63. Invocation command line was $ $0 $@ _ACEOF +exec 5>>config.log { cat <<_ASUNAME ## --------- ## @@ -1077,7 +1687,7 @@ uname -v = `(uname -v) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` -hostinfo = `(hostinfo) 2>/dev/null || echo unknown` +/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` @@ -1089,8 +1699,9 @@ for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - echo "PATH: $as_dir" + $as_echo "PATH: $as_dir" done +IFS=$as_save_IFS } >&5 @@ -1112,7 +1723,6 @@ _ACEOF ac_configure_args= ac_configure_args0= ac_configure_args1= -ac_sep= ac_must_keep_next=false for ac_pass in 1 2 do @@ -1123,8 +1733,8 @@ do -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; - *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) - ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + *\'*) + ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; @@ -1145,9 +1755,7 @@ do -* ) ac_must_keep_next=true ;; esac fi - ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'" - # Get rid of the leading space. - ac_sep=" " + ac_configure_args="$ac_configure_args '$ac_arg'" ;; esac done @@ -1158,8 +1766,8 @@ $as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_ # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. -# WARNING: Be sure not to use single quotes in there, as some shells, -# such as our DU 5.0 friend, will then `close' the trap. +# WARNING: Use '\'' to represent an apostrophe within the trap. +# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { @@ -1172,20 +1780,35 @@ trap 'exit_status=$? _ASBOX echo # The following way of writing the cache mishandles newlines in values, -{ +( + for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5 +$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) $as_unset $ac_var ;; + esac ;; + esac + done (set) 2>&1 | - case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in - *ac_space=\ *) + case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( + *${as_nl}ac_space=\ *) sed -n \ - "s/'"'"'/'"'"'\\\\'"'"''"'"'/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p" - ;; + "s/'\''/'\''\\\\'\'''\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" + ;; #( *) - sed -n \ - "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; - esac; -} + esac | + sort +) echo cat <<\_ASBOX @@ -1196,22 +1819,28 @@ _ASBOX echo for ac_var in $ac_subst_vars do - eval ac_val=$`echo $ac_var` - echo "$ac_var='"'"'$ac_val'"'"'" + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + $as_echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then cat <<\_ASBOX -## ------------- ## -## Output files. ## -## ------------- ## +## ------------------- ## +## File substitutions. ## +## ------------------- ## _ASBOX echo for ac_var in $ac_subst_files do - eval ac_val=$`echo $ac_var` - echo "$ac_var='"'"'$ac_val'"'"'" + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi @@ -1223,26 +1852,24 @@ _ASBOX ## ----------- ## _ASBOX echo - sed "/^$/d" confdefs.h | sort + cat confdefs.h echo fi test "$ac_signal" != 0 && - echo "$as_me: caught signal $ac_signal" - echo "$as_me: exit $exit_status" + $as_echo "$as_me: caught signal $ac_signal" + $as_echo "$as_me: exit $exit_status" } >&5 - rm -f core *.core && - rm -rf conftest* confdefs* conf$$* $ac_clean_files && + rm -f core *.core core.conftest.* && + rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status - ' 0 +' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. -rm -rf conftest* confdefs.h -# AIX cpp loses on an empty file, so make sure it contains at least a newline. -echo >confdefs.h +rm -f -r conftest* confdefs.h # Predefined preprocessor variables. @@ -1272,18 +1899,24 @@ _ACEOF # Let the site file select an alternate cache file if it wants to. -# Prefer explicitly selected file to automatically selected ones. -if test -z "$CONFIG_SITE"; then - if test "x$prefix" != xNONE; then - CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" - else - CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" - fi -fi -for ac_site_file in $CONFIG_SITE; do +# Prefer an explicitly selected file to automatically selected ones. +ac_site_file1=NONE +ac_site_file2=NONE +if test -n "$CONFIG_SITE"; then + ac_site_file1=$CONFIG_SITE +elif test "x$prefix" != xNONE; then + ac_site_file1=$prefix/share/config.site + ac_site_file2=$prefix/etc/config.site +else + ac_site_file1=$ac_default_prefix/share/config.site + ac_site_file2=$ac_default_prefix/etc/config.site +fi +for ac_site_file in "$ac_site_file1" "$ac_site_file2" +do + test "x$ac_site_file" = xNONE && continue if test -r "$ac_site_file"; then - { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 -echo "$as_me: loading site script $ac_site_file" >&6;} + { $as_echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 +$as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" fi @@ -1293,54 +1926,66 @@ if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special # files actually), so we avoid doing that. if test -f "$cache_file"; then - { echo "$as_me:$LINENO: loading cache $cache_file" >&5 -echo "$as_me: loading cache $cache_file" >&6;} + { $as_echo "$as_me:$LINENO: loading cache $cache_file" >&5 +$as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in - [\\/]* | ?:[\\/]* ) . $cache_file;; - *) . ./$cache_file;; + [\\/]* | ?:[\\/]* ) . "$cache_file";; + *) . "./$cache_file";; esac fi else - { echo "$as_me:$LINENO: creating cache $cache_file" >&5 -echo "$as_me: creating cache $cache_file" >&6;} + { $as_echo "$as_me:$LINENO: creating cache $cache_file" >&5 +$as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi +ac_header_list="$ac_header_list sys/time.h" +ac_header_list="$ac_header_list unistd.h" +ac_func_list="$ac_func_list alarm" +ac_func_list="$ac_func_list fpurge" +ac_func_list="$ac_func_list __fpurge" # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false -for ac_var in `(set) 2>&1 | - sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do +for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set - eval ac_old_val="\$ac_cv_env_${ac_var}_value" - eval ac_new_val="\$ac_env_${ac_var}_value" + eval ac_old_val=\$ac_cv_env_${ac_var}_value + eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) - { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 -echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} + { $as_echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 +$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) - { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 -echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} + { $as_echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 +$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then - { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 -echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} - { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 -echo "$as_me: former value: $ac_old_val" >&2;} - { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 -echo "$as_me: current value: $ac_new_val" >&2;} - ac_cache_corrupted=: + # differences in whitespace do not lead to failure. + ac_old_val_w=`echo x $ac_old_val` + ac_new_val_w=`echo x $ac_new_val` + if test "$ac_old_val_w" != "$ac_new_val_w"; then + { $as_echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 +$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} + ac_cache_corrupted=: + else + { $as_echo "$as_me:$LINENO: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 +$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} + eval $ac_var=\$ac_old_val + fi + { $as_echo "$as_me:$LINENO: former value: \`$ac_old_val'" >&5 +$as_echo "$as_me: former value: \`$ac_old_val'" >&2;} + { $as_echo "$as_me:$LINENO: current value: \`$ac_new_val'" >&5 +$as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in - *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) - ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; + *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in @@ -1350,19 +1995,15 @@ echo "$as_me: current value: $ac_new_val" >&2;} fi done if $ac_cache_corrupted; then - { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 -echo "$as_me: error: changes in the environment can compromise the build" >&2;} - { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 -echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} + { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} + { $as_echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 +$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} + { { $as_echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 +$as_echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} { (exit 1); exit 1; }; } fi -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - @@ -1387,6 +2028,11 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu @@ -1394,93 +2040,128 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_aux_dir= -for ac_dir in ./support $srcdir/./support; do - if test -f $ac_dir/install-sh; then +for ac_dir in ./support "$srcdir"/./support; do + if test -f "$ac_dir/install-sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break - elif test -f $ac_dir/install.sh; then + elif test -f "$ac_dir/install.sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break - elif test -f $ac_dir/shtool; then + elif test -f "$ac_dir/shtool"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then - { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in ./support $srcdir/./support" >&5 -echo "$as_me: error: cannot find install-sh or install.sh in ./support $srcdir/./support" >&2;} + { { $as_echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in ./support \"$srcdir\"/./support" >&5 +$as_echo "$as_me: error: cannot find install-sh or install.sh in ./support \"$srcdir\"/./support" >&2;} { (exit 1); exit 1; }; } fi -ac_config_guess="$SHELL $ac_aux_dir/config.guess" -ac_config_sub="$SHELL $ac_aux_dir/config.sub" -ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure. - ac_config_headers="$ac_config_headers config.h" +# These three variables are undocumented and unsupported, +# and are intended to be withdrawn in a future Autoconf release. +# They can cause serious problems if a builder's source tree is in a directory +# whose full name contains unusual characters. +ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. +ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. +ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. + +ac_config_headers="$ac_config_headers config.h" -BASHVERS=3.2 -RELSTATUS=release + +BASHVERS=4.0 +RELSTATUS=rc1 case "$RELSTATUS" in -alp*|bet*|dev*|rc*) DEBUG='-DDEBUG' MALLOC_DEBUG='-DMALLOC_DEBUG' ;; +alp*|bet*|dev*|rc*|maint*) DEBUG='-DDEBUG' MALLOC_DEBUG='-DMALLOC_DEBUG' ;; *) DEBUG= MALLOC_DEBUG= ;; esac # Make sure we can run config.sub. -$ac_config_sub sun4 >/dev/null 2>&1 || - { { echo "$as_me:$LINENO: error: cannot run $ac_config_sub" >&5 -echo "$as_me: error: cannot run $ac_config_sub" >&2;} +$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || + { { $as_echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5 +$as_echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;} { (exit 1); exit 1; }; } -echo "$as_me:$LINENO: checking build system type" >&5 -echo $ECHO_N "checking build system type... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking build system type" >&5 +$as_echo_n "checking build system type... " >&6; } if test "${ac_cv_build+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_cv_build_alias=$build_alias -test -z "$ac_cv_build_alias" && - ac_cv_build_alias=`$ac_config_guess` -test -z "$ac_cv_build_alias" && - { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5 -echo "$as_me: error: cannot guess build type; you must specify one" >&2;} + $as_echo_n "(cached) " >&6 +else + ac_build_alias=$build_alias +test "x$ac_build_alias" = x && + ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` +test "x$ac_build_alias" = x && + { { $as_echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5 +$as_echo "$as_me: error: cannot guess build type; you must specify one" >&2;} { (exit 1); exit 1; }; } -ac_cv_build=`$ac_config_sub $ac_cv_build_alias` || - { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_build_alias failed" >&5 -echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed" >&2;} +ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || + { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5 +$as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;} { (exit 1); exit 1; }; } fi -echo "$as_me:$LINENO: result: $ac_cv_build" >&5 -echo "${ECHO_T}$ac_cv_build" >&6 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_build" >&5 +$as_echo "$ac_cv_build" >&6; } +case $ac_cv_build in +*-*-*) ;; +*) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical build" >&5 +$as_echo "$as_me: error: invalid value of canonical build" >&2;} + { (exit 1); exit 1; }; };; +esac build=$ac_cv_build -build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` - - -echo "$as_me:$LINENO: checking host system type" >&5 -echo $ECHO_N "checking host system type... $ECHO_C" >&6 +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_build +shift +build_cpu=$1 +build_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +build_os=$* +IFS=$ac_save_IFS +case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac + + +{ $as_echo "$as_me:$LINENO: checking host system type" >&5 +$as_echo_n "checking host system type... " >&6; } if test "${ac_cv_host+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_cv_host_alias=$host_alias -test -z "$ac_cv_host_alias" && - ac_cv_host_alias=$ac_cv_build_alias -ac_cv_host=`$ac_config_sub $ac_cv_host_alias` || - { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_host_alias failed" >&5 -echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;} + $as_echo_n "(cached) " >&6 +else + if test "x$host_alias" = x; then + ac_cv_host=$ac_cv_build +else + ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || + { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5 +$as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;} { (exit 1); exit 1; }; } +fi fi -echo "$as_me:$LINENO: result: $ac_cv_host" >&5 -echo "${ECHO_T}$ac_cv_host" >&6 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_host" >&5 +$as_echo "$ac_cv_host" >&6; } +case $ac_cv_host in +*-*-*) ;; +*) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical host" >&5 +$as_echo "$as_me: error: invalid value of canonical host" >&2;} + { (exit 1); exit 1; }; };; +esac host=$ac_cv_host -host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -host_vendor=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_host +shift +host_cpu=$1 +host_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +host_os=$* +IFS=$ac_save_IFS +case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac @@ -1526,14 +2207,13 @@ sco3.2v5*|sco3.2v4*) opt_memscramble=no ;; esac -# Check whether --with-lispdir or --without-lispdir was given. +# Check whether --with-lispdir was given. if test "${with_lispdir+set}" = set; then - withval="$with_lispdir" - lispdir="$withval" - echo "$as_me:$LINENO: checking where .elc files should go" >&5 -echo $ECHO_N "checking where .elc files should go... $ECHO_C" >&6 - echo "$as_me:$LINENO: result: $lispdir" >&5 -echo "${ECHO_T}$lispdir" >&6 + withval=$with_lispdir; lispdir="$withval" + { $as_echo "$as_me:$LINENO: checking where .elc files should go" >&5 +$as_echo_n "checking where .elc files should go... " >&6; } + { $as_echo "$as_me:$LINENO: result: $lispdir" >&5 +$as_echo "$lispdir" >&6; } else # If set to t, that means we are running in a shell under Emacs. @@ -1543,10 +2223,10 @@ else do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_EMACS+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -n "$EMACS"; then ac_cv_prog_EMACS="$EMACS" # Let the user override the test. @@ -1557,35 +2237,37 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_EMACS="$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done +IFS=$as_save_IFS fi fi EMACS=$ac_cv_prog_EMACS if test -n "$EMACS"; then - echo "$as_me:$LINENO: result: $EMACS" >&5 -echo "${ECHO_T}$EMACS" >&6 + { $as_echo "$as_me:$LINENO: result: $EMACS" >&5 +$as_echo "$EMACS" >&6; } else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi + test -n "$EMACS" && break done test -n "$EMACS" || EMACS="no" if test $EMACS != "no"; then if test x${lispdir+set} != xset; then - echo "$as_me:$LINENO: checking where .elc files should go" >&5 -echo $ECHO_N "checking where .elc files should go... $ECHO_C" >&6 + { $as_echo "$as_me:$LINENO: checking where .elc files should go" >&5 +$as_echo_n "checking where .elc files should go... " >&6; } if test "${am_cv_lispdir+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else am_cv_lispdir=`$EMACS -batch -q -eval '(while load-path (princ (concat (car load-path) "\n")) (setq load-path (cdr load-path)))' | sed -n -e 's,/$,,' -e '/.*\/lib\/\(x\?emacs\/site-lisp\)$/{s,,${libdir}/\1,;p;q;}' -e '/.*\/share\/\(x\?emacs\/site-lisp\)$/{s,,${datadir}/\1,;p;q;}'` if test -z "$am_cv_lispdir"; then @@ -1593,59 +2275,60 @@ else fi fi -echo "$as_me:$LINENO: result: $am_cv_lispdir" >&5 -echo "${ECHO_T}$am_cv_lispdir" >&6 +{ $as_echo "$as_me:$LINENO: result: $am_cv_lispdir" >&5 +$as_echo "$am_cv_lispdir" >&6; } lispdir="$am_cv_lispdir" fi fi -fi; +fi + -# Check whether --with-afs or --without-afs was given. +# Check whether --with-afs was given. if test "${with_afs+set}" = set; then - withval="$with_afs" - opt_afs=$withval -fi; + withval=$with_afs; opt_afs=$withval +fi -# Check whether --with-bash-malloc or --without-bash-malloc was given. + +# Check whether --with-bash-malloc was given. if test "${with_bash_malloc+set}" = set; then - withval="$with_bash_malloc" - opt_bash_malloc=$withval -fi; + withval=$with_bash_malloc; opt_bash_malloc=$withval +fi -# Check whether --with-curses or --without-curses was given. + +# Check whether --with-curses was given. if test "${with_curses+set}" = set; then - withval="$with_curses" - opt_curses=$withval -fi; + withval=$with_curses; opt_curses=$withval +fi -# Check whether --with-gnu-malloc or --without-gnu-malloc was given. + +# Check whether --with-gnu-malloc was given. if test "${with_gnu_malloc+set}" = set; then - withval="$with_gnu_malloc" - opt_bash_malloc=$withval -fi; + withval=$with_gnu_malloc; opt_bash_malloc=$withval +fi -# Check whether --with-installed-readline or --without-installed-readline was given. + +# Check whether --with-installed-readline was given. if test "${with_installed_readline+set}" = set; then - withval="$with_installed_readline" - opt_with_installed_readline=$withval -fi; + withval=$with_installed_readline; opt_with_installed_readline=$withval +fi -# Check whether --with-purecov or --without-purecov was given. + +# Check whether --with-purecov was given. if test "${with_purecov+set}" = set; then - withval="$with_purecov" - opt_purecov=$withval -fi; + withval=$with_purecov; opt_purecov=$withval +fi -# Check whether --with-purify or --without-purify was given. + +# Check whether --with-purify was given. if test "${with_purify+set}" = set; then - withval="$with_purify" - opt_purify=$withval -fi; + withval=$with_purify; opt_purify=$withval +fi + if test "$opt_bash_malloc" = yes; then MALLOC_TARGET=malloc @@ -1693,7 +2376,7 @@ if test "$opt_curses" = yes; then fi if test -z "${DEBUGGER_START_FILE}"; then - DEBUGGER_START_FILE=${ac_default_prefix}/share/bashdb/bashdb-main.inc + DEBUGGER_START_FILE='${datadir}/bashdb/bashdb-main.inc' fi opt_minimal_config=no @@ -1719,6 +2402,7 @@ opt_xpg_echo=no opt_strict_posix=no opt_cond_command=yes opt_cond_regexp=yes +opt_coproc=yes opt_arith_for_command=yes opt_net_redirs=yes opt_progcomp=yes @@ -1726,15 +2410,17 @@ opt_separate_help=no opt_multibyte=yes opt_debugger=yes opt_single_longdoc_strings=yes +opt_casemod_attrs=yes +opt_casemod_expansions=yes opt_static_link=no opt_profiling=no -# Check whether --enable-minimal-config or --disable-minimal-config was given. +# Check whether --enable-minimal-config was given. if test "${enable_minimal_config+set}" = set; then - enableval="$enable_minimal_config" - opt_minimal_config=$enableval -fi; + enableval=$enable_minimal_config; opt_minimal_config=$enableval +fi + if test $opt_minimal_config = yes; then opt_job_control=no opt_alias=no opt_readline=no @@ -1744,170 +2430,186 @@ if test $opt_minimal_config = yes; then opt_brace_expansion=no opt_disabled_builtins=no opt_command_timing=no opt_extended_glob=no opt_cond_command=no opt_arith_for_command=no opt_net_redirs=no opt_progcomp=no opt_separate_help=no - opt_multibyte=yes opt_cond_regexp=no + opt_multibyte=yes opt_cond_regexp=no opt_coproc=no + opt_casemod_attrs=no opt_casemod_expansions=no fi -# Check whether --enable-alias or --disable-alias was given. +# Check whether --enable-alias was given. if test "${enable_alias+set}" = set; then - enableval="$enable_alias" - opt_alias=$enableval -fi; -# Check whether --enable-arith-for-command or --disable-arith-for-command was given. + enableval=$enable_alias; opt_alias=$enableval +fi + +# Check whether --enable-arith-for-command was given. if test "${enable_arith_for_command+set}" = set; then - enableval="$enable_arith_for_command" - opt_arith_for_command=$enableval -fi; -# Check whether --enable-array-variables or --disable-array-variables was given. + enableval=$enable_arith_for_command; opt_arith_for_command=$enableval +fi + +# Check whether --enable-array-variables was given. if test "${enable_array_variables+set}" = set; then - enableval="$enable_array_variables" - opt_array_variables=$enableval -fi; -# Check whether --enable-bang-history or --disable-bang-history was given. + enableval=$enable_array_variables; opt_array_variables=$enableval +fi + +# Check whether --enable-bang-history was given. if test "${enable_bang_history+set}" = set; then - enableval="$enable_bang_history" - opt_bang_history=$enableval -fi; -# Check whether --enable-brace-expansion or --disable-brace-expansion was given. + enableval=$enable_bang_history; opt_bang_history=$enableval +fi + +# Check whether --enable-brace-expansion was given. if test "${enable_brace_expansion+set}" = set; then - enableval="$enable_brace_expansion" - opt_brace_expansion=$enableval -fi; -# Check whether --enable-command-timing or --disable-command-timing was given. + enableval=$enable_brace_expansion; opt_brace_expansion=$enableval +fi + +# Check whether --enable-casemod-attributes was given. +if test "${enable_casemod_attributes+set}" = set; then + enableval=$enable_casemod_attributes; opt_casemod_attrs=$enableval +fi + +# Check whether --enable-casemod-expansions was given. +if test "${enable_casemod_expansions+set}" = set; then + enableval=$enable_casemod_expansions; opt_casemod_expansions=$enableval +fi + +# Check whether --enable-command-timing was given. if test "${enable_command_timing+set}" = set; then - enableval="$enable_command_timing" - opt_command_timing=$enableval -fi; -# Check whether --enable-cond-command or --disable-cond-command was given. + enableval=$enable_command_timing; opt_command_timing=$enableval +fi + +# Check whether --enable-cond-command was given. if test "${enable_cond_command+set}" = set; then - enableval="$enable_cond_command" - opt_cond_command=$enableval -fi; -# Check whether --enable-cond-regexp or --disable-cond-regexp was given. + enableval=$enable_cond_command; opt_cond_command=$enableval +fi + +# Check whether --enable-cond-regexp was given. if test "${enable_cond_regexp+set}" = set; then - enableval="$enable_cond_regexp" - opt_cond_regexp=$enableval -fi; -# Check whether --enable-debugger or --disable-debugger was given. + enableval=$enable_cond_regexp; opt_cond_regexp=$enableval +fi + +# Check whether --enable-coprocesses was given. +if test "${enable_coprocesses+set}" = set; then + enableval=$enable_coprocesses; opt_coproc=$enableval +fi + +# Check whether --enable-debugger was given. if test "${enable_debugger+set}" = set; then - enableval="$enable_debugger" - opt_debugger=$enableval -fi; -# Check whether --enable-directory-stack or --disable-directory-stack was given. + enableval=$enable_debugger; opt_debugger=$enableval +fi + +# Check whether --enable-directory-stack was given. if test "${enable_directory_stack+set}" = set; then - enableval="$enable_directory_stack" - opt_dirstack=$enableval -fi; -# Check whether --enable-disabled-builtins or --disable-disabled-builtins was given. + enableval=$enable_directory_stack; opt_dirstack=$enableval +fi + +# Check whether --enable-disabled-builtins was given. if test "${enable_disabled_builtins+set}" = set; then - enableval="$enable_disabled_builtins" - opt_disabled_builtins=$enableval -fi; -# Check whether --enable-dparen-arithmetic or --disable-dparen-arithmetic was given. + enableval=$enable_disabled_builtins; opt_disabled_builtins=$enableval +fi + +# Check whether --enable-dparen-arithmetic was given. if test "${enable_dparen_arithmetic+set}" = set; then - enableval="$enable_dparen_arithmetic" - opt_dparen_arith=$enableval -fi; -# Check whether --enable-extended-glob or --disable-extended-glob was given. + enableval=$enable_dparen_arithmetic; opt_dparen_arith=$enableval +fi + +# Check whether --enable-extended-glob was given. if test "${enable_extended_glob+set}" = set; then - enableval="$enable_extended_glob" - opt_extended_glob=$enableval -fi; -# Check whether --enable-help-builtin or --disable-help-builtin was given. + enableval=$enable_extended_glob; opt_extended_glob=$enableval +fi + +# Check whether --enable-help-builtin was given. if test "${enable_help_builtin+set}" = set; then - enableval="$enable_help_builtin" - opt_help=$enableval -fi; -# Check whether --enable-history or --disable-history was given. + enableval=$enable_help_builtin; opt_help=$enableval +fi + +# Check whether --enable-history was given. if test "${enable_history+set}" = set; then - enableval="$enable_history" - opt_history=$enableval -fi; -# Check whether --enable-job-control or --disable-job-control was given. + enableval=$enable_history; opt_history=$enableval +fi + +# Check whether --enable-job-control was given. if test "${enable_job_control+set}" = set; then - enableval="$enable_job_control" - opt_job_control=$enableval -fi; -# Check whether --enable-multibyte or --disable-multibyte was given. + enableval=$enable_job_control; opt_job_control=$enableval +fi + +# Check whether --enable-multibyte was given. if test "${enable_multibyte+set}" = set; then - enableval="$enable_multibyte" - opt_multibyte=$enableval -fi; -# Check whether --enable-net-redirections or --disable-net-redirections was given. + enableval=$enable_multibyte; opt_multibyte=$enableval +fi + +# Check whether --enable-net-redirections was given. if test "${enable_net_redirections+set}" = set; then - enableval="$enable_net_redirections" - opt_net_redirs=$enableval -fi; -# Check whether --enable-process-substitution or --disable-process-substitution was given. + enableval=$enable_net_redirections; opt_net_redirs=$enableval +fi + +# Check whether --enable-process-substitution was given. if test "${enable_process_substitution+set}" = set; then - enableval="$enable_process_substitution" - opt_process_subst=$enableval -fi; -# Check whether --enable-progcomp or --disable-progcomp was given. + enableval=$enable_process_substitution; opt_process_subst=$enableval +fi + +# Check whether --enable-progcomp was given. if test "${enable_progcomp+set}" = set; then - enableval="$enable_progcomp" - opt_progcomp=$enableval -fi; -# Check whether --enable-prompt-string-decoding or --disable-prompt-string-decoding was given. + enableval=$enable_progcomp; opt_progcomp=$enableval +fi + +# Check whether --enable-prompt-string-decoding was given. if test "${enable_prompt_string_decoding+set}" = set; then - enableval="$enable_prompt_string_decoding" - opt_prompt_decoding=$enableval -fi; -# Check whether --enable-readline or --disable-readline was given. + enableval=$enable_prompt_string_decoding; opt_prompt_decoding=$enableval +fi + +# Check whether --enable-readline was given. if test "${enable_readline+set}" = set; then - enableval="$enable_readline" - opt_readline=$enableval -fi; -# Check whether --enable-restricted or --disable-restricted was given. + enableval=$enable_readline; opt_readline=$enableval +fi + +# Check whether --enable-restricted was given. if test "${enable_restricted+set}" = set; then - enableval="$enable_restricted" - opt_restricted=$enableval -fi; -# Check whether --enable-select or --disable-select was given. + enableval=$enable_restricted; opt_restricted=$enableval +fi + +# Check whether --enable-select was given. if test "${enable_select+set}" = set; then - enableval="$enable_select" - opt_select=$enableval -fi; -# Check whether --enable-separate-helpfiles or --disable-separate-helpfiles was given. + enableval=$enable_select; opt_select=$enableval +fi + +# Check whether --enable-separate-helpfiles was given. if test "${enable_separate_helpfiles+set}" = set; then - enableval="$enable_separate_helpfiles" - opt_separate_help=$enableval -fi; -# Check whether --enable-single-help-strings or --disable-single-help-strings was given. + enableval=$enable_separate_helpfiles; opt_separate_help=$enableval +fi + +# Check whether --enable-single-help-strings was given. if test "${enable_single_help_strings+set}" = set; then - enableval="$enable_single_help_strings" - opt_single_longdoc_strings=$enableval -fi; -# Check whether --enable-strict-posix-default or --disable-strict-posix-default was given. + enableval=$enable_single_help_strings; opt_single_longdoc_strings=$enableval +fi + +# Check whether --enable-strict-posix-default was given. if test "${enable_strict_posix_default+set}" = set; then - enableval="$enable_strict_posix_default" - opt_strict_posix=$enableval -fi; -# Check whether --enable-usg-echo-default or --disable-usg-echo-default was given. + enableval=$enable_strict_posix_default; opt_strict_posix=$enableval +fi + +# Check whether --enable-usg-echo-default was given. if test "${enable_usg_echo_default+set}" = set; then - enableval="$enable_usg_echo_default" - opt_xpg_echo=$enableval -fi; -# Check whether --enable-xpg-echo-default or --disable-xpg-echo-default was given. + enableval=$enable_usg_echo_default; opt_xpg_echo=$enableval +fi + +# Check whether --enable-xpg-echo-default was given. if test "${enable_xpg_echo_default+set}" = set; then - enableval="$enable_xpg_echo_default" - opt_xpg_echo=$enableval -fi; + enableval=$enable_xpg_echo_default; opt_xpg_echo=$enableval +fi -# Check whether --enable-mem-scramble or --disable-mem-scramble was given. + +# Check whether --enable-mem-scramble was given. if test "${enable_mem_scramble+set}" = set; then - enableval="$enable_mem_scramble" - opt_memscramble=$enableval -fi; -# Check whether --enable-profiling or --disable-profiling was given. + enableval=$enable_mem_scramble; opt_memscramble=$enableval +fi + +# Check whether --enable-profiling was given. if test "${enable_profiling+set}" = set; then - enableval="$enable_profiling" - opt_profiling=$enableval -fi; -# Check whether --enable-static-link or --disable-static-link was given. + enableval=$enable_profiling; opt_profiling=$enableval +fi + +# Check whether --enable-static-link was given. if test "${enable_static_link+set}" = set; then - enableval="$enable_static_link" - opt_static_link=$enableval -fi; + enableval=$enable_static_link; opt_static_link=$enableval +fi + @@ -2012,6 +2714,12 @@ cat >>confdefs.h <<\_ACEOF #define COND_REGEXP 1 _ACEOF +fi +if test $opt_coproc = yes; then +cat >>confdefs.h <<\_ACEOF +#define COPROCESS_SUPPORT 1 +_ACEOF + fi if test $opt_arith_for_command = yes; then cat >>confdefs.h <<\_ACEOF @@ -2042,6 +2750,18 @@ cat >>confdefs.h <<\_ACEOF #define DEBUGGER 1 _ACEOF +fi +if test $opt_casemod_attrs = yes; then +cat >>confdefs.h <<\_ACEOF +#define CASEMOD_ATTRS 1 +_ACEOF + +fi +if test $opt_casemod_expansions = yes; then +cat >>confdefs.h <<\_ACEOF +#define CASEMOD_EXPANSIONS 1 +_ACEOF + fi if test $opt_memscramble = yes; then @@ -2101,10 +2821,10 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -2115,34 +2835,36 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}gcc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done +IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then - echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6 + { $as_echo "$as_me:$LINENO: result: $CC" >&5 +$as_echo "$CC" >&6; } else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi + fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. @@ -2153,38 +2875,49 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="gcc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done +IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then - echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -echo "${ECHO_T}$ac_ct_CC" >&6 + { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi - CC=$ac_ct_CC + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -2195,76 +2928,36 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}cc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done +IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then - echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -fi -if test -z "$ac_cv_prog_CC"; then - ac_ct_CC=$CC - # Extract the first word of "cc", so it can be a program name with args. -set dummy cc; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="cc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -echo "${ECHO_T}$ac_ct_CC" >&6 + { $as_echo "$as_me:$LINENO: result: $CC" >&5 +$as_echo "$CC" >&6; } else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi - CC=$ac_ct_CC -else - CC="$ac_cv_prog_CC" -fi + fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -2276,17 +2969,18 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done +IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. @@ -2304,24 +2998,25 @@ fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then - echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6 + { $as_echo "$as_me:$LINENO: result: $CC" >&5 +$as_echo "$CC" >&6; } else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi + fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then - for ac_prog in cl + for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -2332,38 +3027,40 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done +IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then - echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6 + { $as_echo "$as_me:$LINENO: result: $CC" >&5 +$as_echo "$CC" >&6; } else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi + test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC - for ac_prog in cl + for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. @@ -2374,58 +3071,90 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done +IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then - echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -echo "${ECHO_T}$ac_ct_CC" >&6 + { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi + test -n "$ac_ct_CC" && break done - CC=$ac_ct_CC + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi fi fi -test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH +test -z "$CC" && { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ { $as_echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&5 -echo "$as_me: error: no acceptable C compiler found in \$PATH +$as_echo "$as_me: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } + { (exit 1); exit 1; }; }; } # Provide some information about the compiler. -echo "$as_me:$LINENO:" \ - "checking for C compiler version" >&5 -ac_compiler=`set X $ac_compile; echo $2` -{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 - (eval $ac_compiler --version &5) 2>&5 +$as_echo "$as_me:$LINENO: checking for C compiler version" >&5 +set X $ac_compile +ac_compiler=$2 +{ (ac_try="$ac_compiler --version >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compiler --version >&5") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } -{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 - (eval $ac_compiler -v &5) 2>&5 +{ (ac_try="$ac_compiler -v >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compiler -v >&5") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } -{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 - (eval $ac_compiler -V &5) 2>&5 +{ (ac_try="$ac_compiler -V >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compiler -V >&5") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } cat >conftest.$ac_ext <<_ACEOF @@ -2444,111 +3173,150 @@ main () } _ACEOF ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files a.out a.exe b.out" +ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. -echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 -echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6 -ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` -if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5 - (eval $ac_link_default) 2>&5 +{ $as_echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 +$as_echo_n "checking for C compiler default output file name... " >&6; } +ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` + +# The possible output files: +ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" + +ac_rmfiles= +for ac_file in $ac_files +do + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; + * ) ac_rmfiles="$ac_rmfiles $ac_file";; + esac +done +rm -f $ac_rmfiles + +if { (ac_try="$ac_link_default" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link_default") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then - # Find the output, starting from the most likely. This scheme is -# not robust to junk in `.', hence go to wildcards (a.*) only as a last -# resort. - -# Be careful to initialize this variable, since it used to be cached. -# Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile. -ac_cv_exeext= -# b.out is created by i960 compilers. -for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out + # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. +# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' +# in a Makefile. We should not override ac_cv_exeext if it was cached, +# so that the user can short-circuit this test for compilers unknown to +# Autoconf. +for ac_file in $ac_files '' do test -f "$ac_file" || continue case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) - ;; - conftest.$ac_ext ) - # This is the source file. + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) - ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - # FIXME: I believe we export ac_cv_exeext for Libtool, - # but it would be cool to find out if it's true. Does anybody - # maintain Libtool? --akim. - export ac_cv_exeext + if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; + then :; else + ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + fi + # We set ac_cv_exeext here because the later test for it is not + # safe: cross compilers may not add the suffix if given an `-o' + # argument, so we may need to know it at that point already. + # Even if this section looks crufty: it has the advantage of + # actually working. break;; * ) break;; esac done +test "$ac_cv_exeext" = no && ac_cv_exeext= + else - echo "$as_me: failed program was:" >&5 + ac_file='' +fi + +{ $as_echo "$as_me:$LINENO: result: $ac_file" >&5 +$as_echo "$ac_file" >&6; } +if test -z "$ac_file"; then + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -{ { echo "$as_me:$LINENO: error: C compiler cannot create executables +{ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ { $as_echo "$as_me:$LINENO: error: C compiler cannot create executables See \`config.log' for more details." >&5 -echo "$as_me: error: C compiler cannot create executables +$as_echo "$as_me: error: C compiler cannot create executables See \`config.log' for more details." >&2;} - { (exit 77); exit 77; }; } + { (exit 77); exit 77; }; }; } fi ac_exeext=$ac_cv_exeext -echo "$as_me:$LINENO: result: $ac_file" >&5 -echo "${ECHO_T}$ac_file" >&6 -# Check the compiler produces executables we can run. If not, either +# Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. -echo "$as_me:$LINENO: checking whether the C compiler works" >&5 -echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking whether the C compiler works" >&5 +$as_echo_n "checking whether the C compiler works... " >&6; } # FIXME: These cross compiler hacks should be removed for Autoconf 3.0 # If not cross compiling, check that we can run a simple program. if test "$cross_compiling" != yes; then if { ac_try='./$ac_file' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else - { { echo "$as_me:$LINENO: error: cannot run C compiled programs. + { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ { $as_echo "$as_me:$LINENO: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&5 -echo "$as_me: error: cannot run C compiled programs. +$as_echo "$as_me: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } + { (exit 1); exit 1; }; }; } fi fi fi -echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 +{ $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } -rm -f a.out a.exe conftest$ac_cv_exeext b.out +rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save -# Check the compiler produces executables we can run. If not, either +# Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. -echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 -echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6 -echo "$as_me:$LINENO: result: $cross_compiling" >&5 -echo "${ECHO_T}$cross_compiling" >&6 - -echo "$as_me:$LINENO: checking for suffix of executables" >&5 -echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6 -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 +{ $as_echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 +$as_echo_n "checking whether we are cross compiling... " >&6; } +{ $as_echo "$as_me:$LINENO: result: $cross_compiling" >&5 +$as_echo "$cross_compiling" >&6; } + +{ $as_echo "$as_me:$LINENO: checking for suffix of executables" >&5 +$as_echo_n "checking for suffix of executables... " >&6; } +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will @@ -2557,32 +3325,33 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;; + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - export ac_cv_exeext break;; * ) break;; esac done else - { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link + { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ { $as_echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute suffix of executables: cannot compile and link +$as_echo "$as_me: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } + { (exit 1); exit 1; }; }; } fi rm -f conftest$ac_cv_exeext -echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 -echo "${ECHO_T}$ac_cv_exeext" >&6 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 +$as_echo "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT -echo "$as_me:$LINENO: checking for suffix of object files" >&5 -echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for suffix of object files" >&5 +$as_echo_n "checking for suffix of object files... " >&6; } if test "${ac_cv_objext+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -2600,39 +3369,48 @@ main () } _ACEOF rm -f conftest.o conftest.obj -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then - for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do + for ac_file in conftest.o conftest.obj conftest.*; do + test -f "$ac_file" || continue; case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;; + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile +{ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ { $as_echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute suffix of object files: cannot compile +$as_echo "$as_me: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } + { (exit 1); exit 1; }; }; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 -echo "${ECHO_T}$ac_cv_objext" >&6 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 +$as_echo "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT -echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 -echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 +$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if test "${ac_cv_c_compiler_gnu+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -2653,50 +3431,54 @@ main () } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_compiler_gnu=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_compiler_gnu=no + ac_compiler_gnu=no fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi -echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 -echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6 -GCC=`test $ac_compiler_gnu = yes && echo yes` +{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 +$as_echo "$ac_cv_c_compiler_gnu" >&6; } +if test $ac_compiler_gnu = yes; then + GCC=yes +else + GCC= +fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS -CFLAGS="-g" -echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 -echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 +$as_echo_n "checking whether $CC accepts -g... " >&6; } if test "${ac_cv_prog_cc_g+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else - cat >conftest.$ac_ext <<_ACEOF + ac_save_c_werror_flag=$ac_c_werror_flag + ac_c_werror_flag=yes + ac_cv_prog_cc_g=no + CFLAGS="-g" + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -2712,38 +3494,121 @@ main () } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_prog_cc_g=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + CFLAGS="" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + : +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_c_werror_flag=$ac_save_c_werror_flag + CFLAGS="-g" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_cv_prog_cc_g=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_prog_cc_g=no + +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_c_werror_flag=$ac_save_c_werror_flag fi -echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 -echo "${ECHO_T}$ac_cv_prog_cc_g" >&6 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 +$as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then @@ -2759,12 +3624,12 @@ else CFLAGS= fi fi -echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5 -echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6 -if test "${ac_cv_prog_cc_stdc+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5 +$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } +if test "${ac_cv_prog_cc_c89+set}" = set; then + $as_echo_n "(cached) " >&6 else - ac_cv_prog_cc_stdc=no + ac_cv_prog_cc_c89=no ac_save_CC=$CC cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -2798,12 +3663,17 @@ static char *f (char * (*g) (char **, int), char **p, ...) /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated - as 'x'. The following induces an error, until -std1 is added to get + as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something - that's true only with -std1. */ + that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; +/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters + inside strings and character constants. */ +#define FOO(x) 'x' +int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; + int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; @@ -2818,205 +3688,58 @@ return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; return 0; } _ACEOF -# Don't try gcc -ansi; that turns off useful extensions and -# breaks some systems' header files. -# AIX -qlanglvl=ansi -# Ultrix and OSF/1 -std1 -# HP-UX 10.20 and later -Ae -# HP-UX older versions -Aa -D_HPUX_SOURCE -# SVR4 -Xc -D__EXTENSIONS__ -for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ + -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_prog_cc_stdc=$ac_arg -break + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_prog_cc_c89=$ac_arg else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 + fi -rm -f conftest.err conftest.$ac_objext + +rm -f core conftest.err conftest.$ac_objext + test "x$ac_cv_prog_cc_c89" != "xno" && break done -rm -f conftest.$ac_ext conftest.$ac_objext +rm -f conftest.$ac_ext CC=$ac_save_CC fi - -case "x$ac_cv_prog_cc_stdc" in - x|xno) - echo "$as_me:$LINENO: result: none needed" >&5 -echo "${ECHO_T}none needed" >&6 ;; +# AC_CACHE_VAL +case "x$ac_cv_prog_cc_c89" in + x) + { $as_echo "$as_me:$LINENO: result: none needed" >&5 +$as_echo "none needed" >&6; } ;; + xno) + { $as_echo "$as_me:$LINENO: result: unsupported" >&5 +$as_echo "unsupported" >&6; } ;; *) - echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5 -echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6 - CC="$CC $ac_cv_prog_cc_stdc" ;; + CC="$CC $ac_cv_prog_cc_c89" + { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 +$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac -# Some people use a C++ compiler to compile C. Since we use `exit', -# in C++ we need to declare it. In case someone uses the same compiler -# for both compiling C and C++ we need to have the C++ compiler decide -# the declaration of exit, since it's the most demanding environment. -cat >conftest.$ac_ext <<_ACEOF -#ifndef __cplusplus - choke me -#endif -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - for ac_declaration in \ - '' \ - 'extern "C" void std::exit (int) throw (); using std::exit;' \ - 'extern "C" void std::exit (int); using std::exit;' \ - 'extern "C" void exit (int) throw ();' \ - 'extern "C" void exit (int);' \ - 'void exit (int);' -do - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_declaration -#include -int -main () -{ -exit (42); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - : -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -continue -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_declaration -int -main () -{ -exit (42); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - break -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -done -rm -f conftest* -if test -n "$ac_declaration"; then - echo '#ifdef __cplusplus' >>confdefs.h - echo $ac_declaration >>confdefs.h - echo '#endif' >>confdefs.h -fi - -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' @@ -3026,10 +3749,10 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu - echo "$as_me:$LINENO: checking for strerror in -lcposix" >&5 -echo $ECHO_N "checking for strerror in -lcposix... $ECHO_C" >&6 + { $as_echo "$as_me:$LINENO: checking for strerror in -lcposix" >&5 +$as_echo_n "checking for strerror in -lcposix... " >&6; } if test "${ac_cv_lib_cposix_strerror+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lcposix $LIBS" @@ -3040,57 +3763,58 @@ cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -/* Override any gcc2 internal prototype to avoid an error. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ char strerror (); int main () { -strerror (); +return strerror (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then ac_cv_lib_cposix_strerror=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_lib_cposix_strerror=no + ac_cv_lib_cposix_strerror=no fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -echo "$as_me:$LINENO: result: $ac_cv_lib_cposix_strerror" >&5 -echo "${ECHO_T}$ac_cv_lib_cposix_strerror" >&6 -if test $ac_cv_lib_cposix_strerror = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_cposix_strerror" >&5 +$as_echo "$ac_cv_lib_cposix_strerror" >&6; } +if test "x$ac_cv_lib_cposix_strerror" = x""yes; then LIBS="$LIBS -lcposix" fi @@ -3101,15 +3825,15 @@ ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu -echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 -echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 +$as_echo_n "checking how to run the C preprocessor... " >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if test "${ac_cv_prog_CPP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" @@ -3136,35 +3860,35 @@ cat >>conftest.$ac_ext <<_ACEOF #endif Syntax error _ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then : else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi + rm -f conftest.err conftest.$ac_ext - # OK, works on sane cases. Now check whether non-existent headers + # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -3174,34 +3898,34 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then # Broken: success on invalid input. continue else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi + rm -f conftest.err conftest.$ac_ext done @@ -3219,8 +3943,8 @@ fi else ac_cv_prog_CPP=$CPP fi -echo "$as_me:$LINENO: result: $CPP" >&5 -echo "${ECHO_T}$CPP" >&6 +{ $as_echo "$as_me:$LINENO: result: $CPP" >&5 +$as_echo "$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do @@ -3243,35 +3967,35 @@ cat >>conftest.$ac_ext <<_ACEOF #endif Syntax error _ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then : else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi + rm -f conftest.err conftest.$ac_ext - # OK, works on sane cases. Now check whether non-existent headers + # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -3281,34 +4005,34 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then # Broken: success on invalid input. continue else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi + rm -f conftest.err conftest.$ac_ext done @@ -3317,11 +4041,13 @@ rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else - { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check + { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ { $as_echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&5 -echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check +$as_echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } + { (exit 1); exit 1; }; }; } fi ac_ext=c @@ -3331,25 +4057,144 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $ ac_compiler_gnu=$ac_cv_c_compiler_gnu -echo "$as_me:$LINENO: checking for egrep" >&5 -echo $ECHO_N "checking for egrep... $ECHO_C" >&6 -if test "${ac_cv_prog_egrep+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5 +$as_echo_n "checking for grep that handles long lines and -e... " >&6; } +if test "${ac_cv_path_GREP+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -z "$GREP"; then + ac_path_GREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in grep ggrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue +# Check for GNU ac_path_GREP and select it if it is found. + # Check for GNU $ac_path_GREP +case `"$ac_path_GREP" --version 2>&1` in +*GNU*) + ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'GREP' >> "conftest.nl" + "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + ac_count=`expr $ac_count + 1` + if test $ac_count -gt ${ac_path_GREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_GREP="$ac_path_GREP" + ac_path_GREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_GREP_found && break 3 + done + done +done +IFS=$as_save_IFS + if test -z "$ac_cv_path_GREP"; then + { { $as_echo "$as_me:$LINENO: error: no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 +$as_echo "$as_me: error: no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} + { (exit 1); exit 1; }; } + fi +else + ac_cv_path_GREP=$GREP +fi + +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5 +$as_echo "$ac_cv_path_GREP" >&6; } + GREP="$ac_cv_path_GREP" + + +{ $as_echo "$as_me:$LINENO: checking for egrep" >&5 +$as_echo_n "checking for egrep... " >&6; } +if test "${ac_cv_path_EGREP+set}" = set; then + $as_echo_n "(cached) " >&6 else - if echo a | (grep -E '(a|b)') >/dev/null 2>&1 - then ac_cv_prog_egrep='grep -E' - else ac_cv_prog_egrep='egrep' + if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 + then ac_cv_path_EGREP="$GREP -E" + else + if test -z "$EGREP"; then + ac_path_EGREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in egrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue +# Check for GNU ac_path_EGREP and select it if it is found. + # Check for GNU $ac_path_EGREP +case `"$ac_path_EGREP" --version 2>&1` in +*GNU*) + ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'EGREP' >> "conftest.nl" + "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + ac_count=`expr $ac_count + 1` + if test $ac_count -gt ${ac_path_EGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_EGREP="$ac_path_EGREP" + ac_path_EGREP_max=$ac_count fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_EGREP_found && break 3 + done + done +done +IFS=$as_save_IFS + if test -z "$ac_cv_path_EGREP"; then + { { $as_echo "$as_me:$LINENO: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 +$as_echo "$as_me: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} + { (exit 1); exit 1; }; } + fi +else + ac_cv_path_EGREP=$EGREP fi -echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5 -echo "${ECHO_T}$ac_cv_prog_egrep" >&6 - EGREP=$ac_cv_prog_egrep + fi +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5 +$as_echo "$ac_cv_path_EGREP" >&6; } + EGREP="$ac_cv_path_EGREP" -echo "$as_me:$LINENO: checking for ANSI C header files" >&5 -echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6 + +{ $as_echo "$as_me:$LINENO: checking for ANSI C header files" >&5 +$as_echo_n "checking for ANSI C header files... " >&6; } if test "${ac_cv_header_stdc+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -3371,35 +4216,32 @@ main () } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_cv_header_stdc=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_header_stdc=no + ac_cv_header_stdc=no fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. @@ -3455,6 +4297,7 @@ cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include +#include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) @@ -3474,36 +4317,50 @@ main () for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) - exit(2); - exit (0); + return 2; + return 0; } _ACEOF rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_header_stdc=no fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +rm -rf conftest.dSYM +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi + + fi fi -echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 -echo "${ECHO_T}$ac_cv_header_stdc" >&6 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 +$as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then cat >>confdefs.h <<\_ACEOF @@ -3525,11 +4382,11 @@ fi for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -3542,41 +4399,42 @@ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then eval "$as_ac_Header=yes" else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -eval "$as_ac_Header=no" + eval "$as_ac_Header=no" fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 -if test `eval echo '${'$as_ac_Header'}'` = yes; then +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +as_val=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi @@ -3584,18 +4442,19 @@ fi done + + if test "${ac_cv_header_minix_config_h+set}" = set; then + { $as_echo "$as_me:$LINENO: checking for minix/config.h" >&5 +$as_echo_n "checking for minix/config.h... " >&6; } if test "${ac_cv_header_minix_config_h+set}" = set; then - echo "$as_me:$LINENO: checking for minix/config.h" >&5 -echo $ECHO_N "checking for minix/config.h... $ECHO_C" >&6 -if test "${ac_cv_header_minix_config_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 fi -echo "$as_me:$LINENO: result: $ac_cv_header_minix_config_h" >&5 -echo "${ECHO_T}$ac_cv_header_minix_config_h" >&6 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_minix_config_h" >&5 +$as_echo "$ac_cv_header_minix_config_h" >&6; } else # Is the header compilable? -echo "$as_me:$LINENO: checking minix/config.h usability" >&5 -echo $ECHO_N "checking minix/config.h usability... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking minix/config.h usability" >&5 +$as_echo_n "checking minix/config.h usability... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -3606,41 +4465,38 @@ $ac_includes_default #include _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_header_compiler=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_header_compiler=no + ac_header_compiler=no fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6 + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +$as_echo "$ac_header_compiler" >&6; } # Is the header present? -echo "$as_me:$LINENO: checking minix/config.h presence" >&5 -echo $ECHO_N "checking minix/config.h presence... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking minix/config.h presence" >&5 +$as_echo_n "checking minix/config.h presence... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -3649,86 +4505,84 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then ac_header_preproc=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi + rm -f conftest.err conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6 +{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +$as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) - { echo "$as_me:$LINENO: WARNING: minix/config.h: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: minix/config.h: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: minix/config.h: proceeding with the compiler's result" >&5 -echo "$as_me: WARNING: minix/config.h: proceeding with the compiler's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: minix/config.h: accepted by the compiler, rejected by the preprocessor!" >&5 +$as_echo "$as_me: WARNING: minix/config.h: accepted by the compiler, rejected by the preprocessor!" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: minix/config.h: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: minix/config.h: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) - { echo "$as_me:$LINENO: WARNING: minix/config.h: present but cannot be compiled" >&5 -echo "$as_me: WARNING: minix/config.h: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: minix/config.h: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: minix/config.h: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: minix/config.h: see the Autoconf documentation" >&5 -echo "$as_me: WARNING: minix/config.h: see the Autoconf documentation" >&2;} - { echo "$as_me:$LINENO: WARNING: minix/config.h: section \"Present But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: minix/config.h: section \"Present But Cannot Be Compiled\"" >&2;} - { echo "$as_me:$LINENO: WARNING: minix/config.h: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: minix/config.h: proceeding with the preprocessor's result" >&2;} - { echo "$as_me:$LINENO: WARNING: minix/config.h: in the future, the compiler will take precedence" >&5 -echo "$as_me: WARNING: minix/config.h: in the future, the compiler will take precedence" >&2;} - ( - cat <<\_ASBOX + { $as_echo "$as_me:$LINENO: WARNING: minix/config.h: present but cannot be compiled" >&5 +$as_echo "$as_me: WARNING: minix/config.h: present but cannot be compiled" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: minix/config.h: check for missing prerequisite headers?" >&5 +$as_echo "$as_me: WARNING: minix/config.h: check for missing prerequisite headers?" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: minix/config.h: see the Autoconf documentation" >&5 +$as_echo "$as_me: WARNING: minix/config.h: see the Autoconf documentation" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: minix/config.h: section \"Present But Cannot Be Compiled\"" >&5 +$as_echo "$as_me: WARNING: minix/config.h: section \"Present But Cannot Be Compiled\"" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: minix/config.h: proceeding with the preprocessor's result" >&5 +$as_echo "$as_me: WARNING: minix/config.h: proceeding with the preprocessor's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: minix/config.h: in the future, the compiler will take precedence" >&5 +$as_echo "$as_me: WARNING: minix/config.h: in the future, the compiler will take precedence" >&2;} + ( cat <<\_ASBOX ## ------------------------------- ## ## Report this to bug-bash@gnu.org ## ## ------------------------------- ## _ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 + ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac -echo "$as_me:$LINENO: checking for minix/config.h" >&5 -echo $ECHO_N "checking for minix/config.h... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for minix/config.h" >&5 +$as_echo_n "checking for minix/config.h... " >&6; } if test "${ac_cv_header_minix_config_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else ac_cv_header_minix_config_h=$ac_header_preproc fi -echo "$as_me:$LINENO: result: $ac_cv_header_minix_config_h" >&5 -echo "${ECHO_T}$ac_cv_header_minix_config_h" >&6 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_minix_config_h" >&5 +$as_echo "$ac_cv_header_minix_config_h" >&6; } fi -if test $ac_cv_header_minix_config_h = yes; then +if test "x$ac_cv_header_minix_config_h" = x""yes; then MINIX=yes else MINIX= fi -if test "$MINIX" = yes; then + if test "$MINIX" = yes; then cat >>confdefs.h <<\_ACEOF #define _POSIX_SOURCE 1 @@ -3744,27 +4598,103 @@ cat >>confdefs.h <<\_ACEOF #define _MINIX 1 _ACEOF -fi + fi -# Check whether --enable-largefile or --disable-largefile was given. + + { $as_echo "$as_me:$LINENO: checking whether it is safe to define __EXTENSIONS__" >&5 +$as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; } +if test "${ac_cv_safe_to_define___extensions__+set}" = set; then + $as_echo_n "(cached) " >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +# define __EXTENSIONS__ 1 + $ac_includes_default +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_safe_to_define___extensions__=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_safe_to_define___extensions__=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_safe_to_define___extensions__" >&5 +$as_echo "$ac_cv_safe_to_define___extensions__" >&6; } + test $ac_cv_safe_to_define___extensions__ = yes && + cat >>confdefs.h <<\_ACEOF +#define __EXTENSIONS__ 1 +_ACEOF + + cat >>confdefs.h <<\_ACEOF +#define _ALL_SOURCE 1 +_ACEOF + + cat >>confdefs.h <<\_ACEOF +#define _GNU_SOURCE 1 +_ACEOF + + cat >>confdefs.h <<\_ACEOF +#define _POSIX_PTHREAD_SEMANTICS 1 +_ACEOF + + cat >>confdefs.h <<\_ACEOF +#define _TANDEM_SOURCE 1 +_ACEOF + + + +# Check whether --enable-largefile was given. if test "${enable_largefile+set}" = set; then - enableval="$enable_largefile" + enableval=$enable_largefile; +fi -fi; if test "$enable_largefile" != no; then - echo "$as_me:$LINENO: checking for special C compiler options needed for large files" >&5 -echo $ECHO_N "checking for special C compiler options needed for large files... $ECHO_C" >&6 + { $as_echo "$as_me:$LINENO: checking for special C compiler options needed for large files" >&5 +$as_echo_n "checking for special C compiler options needed for large files... " >&6; } if test "${ac_cv_sys_largefile_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else ac_cv_sys_largefile_CC=no if test "$GCC" != yes; then ac_save_CC=$CC while :; do - # IRIX 6.2 and later do not support large files by default, - # so use the C compiler's -n32 option if that helps. + # IRIX 6.2 and later do not support large files by default, + # so use the C compiler's -n32 option if that helps. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -3788,84 +4718,79 @@ main () return 0; } _ACEOF - rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 + rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then break else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 + fi -rm -f conftest.err conftest.$ac_objext - CC="$CC -n32" - rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 + +rm -f core conftest.err conftest.$ac_objext + CC="$CC -n32" + rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_cv_sys_largefile_CC=' -n32'; break else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 + fi -rm -f conftest.err conftest.$ac_objext + +rm -f core conftest.err conftest.$ac_objext break done CC=$ac_save_CC rm -f conftest.$ac_ext fi fi -echo "$as_me:$LINENO: result: $ac_cv_sys_largefile_CC" >&5 -echo "${ECHO_T}$ac_cv_sys_largefile_CC" >&6 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_sys_largefile_CC" >&5 +$as_echo "$ac_cv_sys_largefile_CC" >&6; } if test "$ac_cv_sys_largefile_CC" != no; then CC=$CC$ac_cv_sys_largefile_CC fi - echo "$as_me:$LINENO: checking for _FILE_OFFSET_BITS value needed for large files" >&5 -echo $ECHO_N "checking for _FILE_OFFSET_BITS value needed for large files... $ECHO_C" >&6 + { $as_echo "$as_me:$LINENO: checking for _FILE_OFFSET_BITS value needed for large files" >&5 +$as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; } if test "${ac_cv_sys_file_offset_bits+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else while :; do - ac_cv_sys_file_offset_bits=no cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -3890,34 +4815,32 @@ main () } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - break + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_sys_file_offset_bits=no; break else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 + fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -3943,54 +4866,54 @@ main () } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_cv_sys_file_offset_bits=64; break else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 + fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_cv_sys_file_offset_bits=unknown break done fi -echo "$as_me:$LINENO: result: $ac_cv_sys_file_offset_bits" >&5 -echo "${ECHO_T}$ac_cv_sys_file_offset_bits" >&6 -if test "$ac_cv_sys_file_offset_bits" != no; then - +{ $as_echo "$as_me:$LINENO: result: $ac_cv_sys_file_offset_bits" >&5 +$as_echo "$ac_cv_sys_file_offset_bits" >&6; } +case $ac_cv_sys_file_offset_bits in #( + no | unknown) ;; + *) cat >>confdefs.h <<_ACEOF #define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits _ACEOF - -fi -rm -f conftest* - echo "$as_me:$LINENO: checking for _LARGE_FILES value needed for large files" >&5 -echo $ECHO_N "checking for _LARGE_FILES value needed for large files... $ECHO_C" >&6 +;; +esac +rm -rf conftest* + if test $ac_cv_sys_file_offset_bits = unknown; then + { $as_echo "$as_me:$LINENO: checking for _LARGE_FILES value needed for large files" >&5 +$as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; } if test "${ac_cv_sys_large_files+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else while :; do - ac_cv_sys_large_files=no cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -4015,34 +4938,32 @@ main () } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - break + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_sys_large_files=no; break else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 + fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -4068,47 +4989,48 @@ main () } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_cv_sys_large_files=1; break else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 + fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_cv_sys_large_files=unknown break done fi -echo "$as_me:$LINENO: result: $ac_cv_sys_large_files" >&5 -echo "${ECHO_T}$ac_cv_sys_large_files" >&6 -if test "$ac_cv_sys_large_files" != no; then - +{ $as_echo "$as_me:$LINENO: result: $ac_cv_sys_large_files" >&5 +$as_echo "$ac_cv_sys_large_files" >&6; } +case $ac_cv_sys_large_files in #( + no | unknown) ;; + *) cat >>confdefs.h <<_ACEOF #define _LARGE_FILES $ac_cv_sys_large_files _ACEOF - -fi -rm -f conftest* +;; +esac +rm -rf conftest* + fi fi @@ -4199,10 +5121,10 @@ test -z "$CFLAGS_FOR_BUILD" && CFLAGS_FOR_BUILD="-g" if test $ac_cv_c_compiler_gnu = yes; then - echo "$as_me:$LINENO: checking whether $CC needs -traditional" >&5 -echo $ECHO_N "checking whether $CC needs -traditional... $ECHO_C" >&6 + { $as_echo "$as_me:$LINENO: checking whether $CC needs -traditional" >&5 +$as_echo_n "checking whether $CC needs -traditional... " >&6; } if test "${ac_cv_prog_gcc_traditional+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else ac_pattern="Autoconf.*'x'" cat >conftest.$ac_ext <<_ACEOF @@ -4241,8 +5163,8 @@ rm -f conftest* fi fi -echo "$as_me:$LINENO: result: $ac_cv_prog_gcc_traditional" >&5 -echo "${ECHO_T}$ac_cv_prog_gcc_traditional" >&6 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_prog_gcc_traditional" >&5 +$as_echo "$ac_cv_prog_gcc_traditional" >&6; } if test $ac_cv_prog_gcc_traditional = yes; then CC="$CC -traditional" fi @@ -4260,17 +5182,17 @@ then if test "X$bash_cv_termcap_lib" = "X"; then _bash_needmsg=yes else -echo "$as_me:$LINENO: checking which library has the termcap functions" >&5 -echo $ECHO_N "checking which library has the termcap functions... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking which library has the termcap functions" >&5 +$as_echo_n "checking which library has the termcap functions... " >&6; } _bash_needmsg= fi if test "${bash_cv_termcap_lib+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else - echo "$as_me:$LINENO: checking for tgetent" >&5 -echo $ECHO_N "checking for tgetent... $ECHO_C" >&6 + { $as_echo "$as_me:$LINENO: checking for tgetent" >&5 +$as_echo_n "checking for tgetent... " >&6; } if test "${ac_cv_func_tgetent+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -4295,75 +5217,70 @@ cat >>conftest.$ac_ext <<_ACEOF #undef tgetent -/* Override any gcc2 internal prototype to avoid an error. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" -{ #endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ char tgetent (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ -#if defined (__stub_tgetent) || defined (__stub___tgetent) +#if defined __stub_tgetent || defined __stub___tgetent choke me -#else -char (*f) () = tgetent; -#endif -#ifdef __cplusplus -} #endif int main () { -return f != tgetent; +return tgetent (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then ac_cv_func_tgetent=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_func_tgetent=no + ac_cv_func_tgetent=no fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_func_tgetent" >&5 -echo "${ECHO_T}$ac_cv_func_tgetent" >&6 -if test $ac_cv_func_tgetent = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_tgetent" >&5 +$as_echo "$ac_cv_func_tgetent" >&6; } +if test "x$ac_cv_func_tgetent" = x""yes; then bash_cv_termcap_lib=libc else - echo "$as_me:$LINENO: checking for tgetent in -ltermcap" >&5 -echo $ECHO_N "checking for tgetent in -ltermcap... $ECHO_C" >&6 + { $as_echo "$as_me:$LINENO: checking for tgetent in -ltermcap" >&5 +$as_echo_n "checking for tgetent in -ltermcap... " >&6; } if test "${ac_cv_lib_termcap_tgetent+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ltermcap $LIBS" @@ -4374,63 +5291,64 @@ cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -/* Override any gcc2 internal prototype to avoid an error. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ char tgetent (); int main () { -tgetent (); +return tgetent (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then ac_cv_lib_termcap_tgetent=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_lib_termcap_tgetent=no + ac_cv_lib_termcap_tgetent=no fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -echo "$as_me:$LINENO: result: $ac_cv_lib_termcap_tgetent" >&5 -echo "${ECHO_T}$ac_cv_lib_termcap_tgetent" >&6 -if test $ac_cv_lib_termcap_tgetent = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_termcap_tgetent" >&5 +$as_echo "$ac_cv_lib_termcap_tgetent" >&6; } +if test "x$ac_cv_lib_termcap_tgetent" = x""yes; then bash_cv_termcap_lib=libtermcap else - echo "$as_me:$LINENO: checking for tgetent in -ltinfo" >&5 -echo $ECHO_N "checking for tgetent in -ltinfo... $ECHO_C" >&6 + { $as_echo "$as_me:$LINENO: checking for tgetent in -ltinfo" >&5 +$as_echo_n "checking for tgetent in -ltinfo... " >&6; } if test "${ac_cv_lib_tinfo_tgetent+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ltinfo $LIBS" @@ -4441,63 +5359,64 @@ cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -/* Override any gcc2 internal prototype to avoid an error. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ char tgetent (); int main () { -tgetent (); +return tgetent (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then ac_cv_lib_tinfo_tgetent=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_lib_tinfo_tgetent=no + ac_cv_lib_tinfo_tgetent=no fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -echo "$as_me:$LINENO: result: $ac_cv_lib_tinfo_tgetent" >&5 -echo "${ECHO_T}$ac_cv_lib_tinfo_tgetent" >&6 -if test $ac_cv_lib_tinfo_tgetent = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_tinfo_tgetent" >&5 +$as_echo "$ac_cv_lib_tinfo_tgetent" >&6; } +if test "x$ac_cv_lib_tinfo_tgetent" = x""yes; then bash_cv_termcap_lib=libtinfo else - echo "$as_me:$LINENO: checking for tgetent in -lcurses" >&5 -echo $ECHO_N "checking for tgetent in -lcurses... $ECHO_C" >&6 + { $as_echo "$as_me:$LINENO: checking for tgetent in -lcurses" >&5 +$as_echo_n "checking for tgetent in -lcurses... " >&6; } if test "${ac_cv_lib_curses_tgetent+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lcurses $LIBS" @@ -4508,63 +5427,64 @@ cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -/* Override any gcc2 internal prototype to avoid an error. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ char tgetent (); int main () { -tgetent (); +return tgetent (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then ac_cv_lib_curses_tgetent=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_lib_curses_tgetent=no + ac_cv_lib_curses_tgetent=no fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -echo "$as_me:$LINENO: result: $ac_cv_lib_curses_tgetent" >&5 -echo "${ECHO_T}$ac_cv_lib_curses_tgetent" >&6 -if test $ac_cv_lib_curses_tgetent = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_curses_tgetent" >&5 +$as_echo "$ac_cv_lib_curses_tgetent" >&6; } +if test "x$ac_cv_lib_curses_tgetent" = x""yes; then bash_cv_termcap_lib=libcurses else - echo "$as_me:$LINENO: checking for tgetent in -lncurses" >&5 -echo $ECHO_N "checking for tgetent in -lncurses... $ECHO_C" >&6 + { $as_echo "$as_me:$LINENO: checking for tgetent in -lncurses" >&5 +$as_echo_n "checking for tgetent in -lncurses... " >&6; } if test "${ac_cv_lib_ncurses_tgetent+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lncurses $LIBS" @@ -4575,57 +5495,58 @@ cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -/* Override any gcc2 internal prototype to avoid an error. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ char tgetent (); int main () { -tgetent (); +return tgetent (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then ac_cv_lib_ncurses_tgetent=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_lib_ncurses_tgetent=no + ac_cv_lib_ncurses_tgetent=no fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -echo "$as_me:$LINENO: result: $ac_cv_lib_ncurses_tgetent" >&5 -echo "${ECHO_T}$ac_cv_lib_ncurses_tgetent" >&6 -if test $ac_cv_lib_ncurses_tgetent = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_ncurses_tgetent" >&5 +$as_echo "$ac_cv_lib_ncurses_tgetent" >&6; } +if test "x$ac_cv_lib_ncurses_tgetent" = x""yes; then bash_cv_termcap_lib=libncurses else bash_cv_termcap_lib=gnutermcap @@ -4642,11 +5563,11 @@ fi fi if test "X$_bash_needmsg" = "Xyes"; then -echo "$as_me:$LINENO: checking which library has the termcap functions" >&5 -echo $ECHO_N "checking which library has the termcap functions... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking which library has the termcap functions" >&5 +$as_echo_n "checking which library has the termcap functions... " >&6; } fi -echo "$as_me:$LINENO: result: using $bash_cv_termcap_lib" >&5 -echo "${ECHO_T}using $bash_cv_termcap_lib" >&6 +{ $as_echo "$as_me:$LINENO: result: using $bash_cv_termcap_lib" >&5 +$as_echo "using $bash_cv_termcap_lib" >&6; } if test $bash_cv_termcap_lib = gnutermcap && test -z "$prefer_curses"; then LDFLAGS="$LDFLAGS -L./lib/termcap" TERMCAP_LIB="./lib/termcap/libtermcap.a" @@ -4671,8 +5592,8 @@ fi -echo "$as_me:$LINENO: checking version of installed readline library" >&5 -echo $ECHO_N "checking version of installed readline library... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking version of installed readline library" >&5 +$as_echo_n "checking version of installed readline library... " >&6; } # What a pain in the ass this is. @@ -4697,7 +5618,7 @@ CFLAGS="$CFLAGS -I${ac_cv_rl_includedir}" LDFLAGS="$LDFLAGS -L${ac_cv_rl_libdir}" if test "${ac_cv_rl_version+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then ac_cv_rl_version='4.2' @@ -4730,27 +5651,41 @@ main() _ACEOF rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_rl_version=`cat conftest.rlv` else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_rl_version='0.0' fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +rm -rf conftest.dSYM +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi + + fi @@ -4788,15 +5723,15 @@ RL_VERSION="0x${_RL_MAJOR}${_RL_MINOR}" # Readline versions greater than 4.2 have these defines in readline.h if test $ac_cv_rl_version = '0.0' ; then - { echo "$as_me:$LINENO: WARNING: Could not test version of installed readline library." >&5 -echo "$as_me: WARNING: Could not test version of installed readline library." >&2;} + { $as_echo "$as_me:$LINENO: WARNING: Could not test version of installed readline library." >&5 +$as_echo "$as_me: WARNING: Could not test version of installed readline library." >&2;} elif test $RL_MAJOR -gt 4 || { test $RL_MAJOR = 4 && test $RL_MINOR -gt 2 ; } ; then # set these for use by the caller RL_PREFIX=$ac_cv_rl_prefix RL_LIBDIR=$ac_cv_rl_libdir RL_INCLUDEDIR=$ac_cv_rl_includedir - echo "$as_me:$LINENO: result: $ac_cv_rl_version" >&5 -echo "${ECHO_T}$ac_cv_rl_version" >&6 + { $as_echo "$as_me:$LINENO: result: $ac_cv_rl_version" >&5 +$as_echo "$ac_cv_rl_version" >&6; } else @@ -4824,8 +5759,8 @@ RL_PREFIX=$ac_cv_rl_prefix RL_LIBDIR=$ac_cv_rl_libdir RL_INCLUDEDIR=$ac_cv_rl_includedir -echo "$as_me:$LINENO: result: $ac_cv_rl_version" >&5 -echo "${ECHO_T}$ac_cv_rl_version" >&6 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_rl_version" >&5 +$as_echo "$ac_cv_rl_version" >&6; } fi @@ -4833,10 +5768,10 @@ fi case "$ac_cv_rl_version" in 5*|6*|7*|8*|9*) ;; *) opt_with_installed_readline=no - { echo "$as_me:$LINENO: WARNING: installed readline library is too old to be linked with bash" >&5 -echo "$as_me: WARNING: installed readline library is too old to be linked with bash" >&2;} - { echo "$as_me:$LINENO: WARNING: using private bash version" >&5 -echo "$as_me: WARNING: using private bash version" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: installed readline library is too old to be linked with bash" >&5 +$as_echo "$as_me: WARNING: installed readline library is too old to be linked with bash" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: using private bash version" >&5 +$as_echo "$as_me: WARNING: using private bash version" >&2;} ;; esac fi @@ -4912,7 +5847,7 @@ _ACEOF # static version specified as -llibname to override the # dynamic version case "${host_os}" in - darwin8*) HISTORY_LIB='${HISTORY_LIBRARY}' ;; + darwin[89]*) HISTORY_LIB='${HISTORY_LIBRARY}' ;; *) HISTORY_LIB=-lhistory ;; esac fi @@ -4944,11 +5879,12 @@ fi # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. -echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 -echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6 +# Reject install programs that cannot install multiple files. +{ $as_echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 +$as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH @@ -4967,7 +5903,7 @@ case $as_dir/ in # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then + if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. @@ -4977,30 +5913,43 @@ case $as_dir/ in # program-specific install script used by HP pwplus--don't use. : else - ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" - break 3 + rm -rf conftest.one conftest.two conftest.dir + echo one > conftest.one + echo two > conftest.two + mkdir conftest.dir + if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && + test -s conftest.one && test -s conftest.two && + test -s conftest.dir/conftest.one && + test -s conftest.dir/conftest.two + then + ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" + break 3 + fi fi fi done done ;; esac + done +IFS=$as_save_IFS +rm -rf conftest.one conftest.two conftest.dir fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else - # As a last resort, use the slow shell script. We don't cache a - # path for INSTALL within a source directory, because that will + # As a last resort, use the slow shell script. Don't cache a + # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is - # removed, or if the path is relative. + # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi -echo "$as_me:$LINENO: result: $INSTALL" >&5 -echo "${ECHO_T}$INSTALL" >&6 +{ $as_echo "$as_me:$LINENO: result: $INSTALL" >&5 +$as_echo "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. @@ -5012,10 +5961,10 @@ test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' # Extract the first word of "ar", so it can be a program name with args. set dummy ar; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_AR+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -n "$AR"; then ac_cv_prog_AR="$AR" # Let the user override the test. @@ -5026,34 +5975,36 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AR="" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done +IFS=$as_save_IFS test -z "$ac_cv_prog_AR" && ac_cv_prog_AR="ar" fi fi AR=$ac_cv_prog_AR if test -n "$AR"; then - echo "$as_me:$LINENO: result: $AR" >&5 -echo "${ECHO_T}$AR" >&6 + { $as_echo "$as_me:$LINENO: result: $AR" >&5 +$as_echo "$AR" >&6; } else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi + test -n "$ARFLAGS" || ARFLAGS="cr" if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_RANLIB+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. @@ -5064,34 +6015,36 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done +IFS=$as_save_IFS fi fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then - echo "$as_me:$LINENO: result: $RANLIB" >&5 -echo "${ECHO_T}$RANLIB" >&6 + { $as_echo "$as_me:$LINENO: result: $RANLIB" >&5 +$as_echo "$RANLIB" >&6; } else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi + fi if test -z "$ac_cv_prog_RANLIB"; then ac_ct_RANLIB=$RANLIB # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_RANLIB"; then ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. @@ -5102,27 +6055,37 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_RANLIB="ranlib" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done +IFS=$as_save_IFS - test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":" fi fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then - echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 -echo "${ECHO_T}$ac_ct_RANLIB" >&6 + { $as_echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 +$as_echo "$ac_ct_RANLIB" >&6; } else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi - RANLIB=$ac_ct_RANLIB + if test "x$ac_ct_RANLIB" = x; then + RANLIB=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + RANLIB=$ac_ct_RANLIB + fi else RANLIB="$ac_cv_prog_RANLIB" fi @@ -5131,10 +6094,10 @@ for ac_prog in 'bison -y' byacc do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_YACC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -n "$YACC"; then ac_cv_prog_YACC="$YACC" # Let the user override the test. @@ -5145,55 +6108,59 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_YACC="$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done +IFS=$as_save_IFS fi fi YACC=$ac_cv_prog_YACC if test -n "$YACC"; then - echo "$as_me:$LINENO: result: $YACC" >&5 -echo "${ECHO_T}$YACC" >&6 + { $as_echo "$as_me:$LINENO: result: $YACC" >&5 +$as_echo "$YACC" >&6; } else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi + test -n "$YACC" && break done test -n "$YACC" || YACC="yacc" -echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 -echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6 -set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,:./+-,___p_,'` -if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 +$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } +set x ${MAKE-make} +ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` +if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF +SHELL = /bin/sh all: - @echo 'ac_maketemp="$(MAKE)"' + @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering...", which would confuse us. -eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=` -if test -n "$ac_maketemp"; then - eval ac_cv_prog_make_${ac_make}_set=yes -else - eval ac_cv_prog_make_${ac_make}_set=no -fi +case `${MAKE-make} -f conftest.make 2>/dev/null` in + *@@@%%%=?*=@@@%%%*) + eval ac_cv_prog_make_${ac_make}_set=yes;; + *) + eval ac_cv_prog_make_${ac_make}_set=no;; +esac rm -f conftest.make fi -if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 +if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } SET_MAKE= else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi @@ -5230,10 +6197,10 @@ cat >>confdefs.h <<\_ACEOF _ACEOF -echo "$as_me:$LINENO: checking for an ANSI C-conforming const" >&5 -echo $ECHO_N "checking for an ANSI C-conforming const... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for an ANSI C-conforming const" >&5 +$as_echo_n "checking for an ANSI C-conforming const... " >&6; } if test "${ac_cv_c_const+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -5249,10 +6216,10 @@ main () #ifndef __cplusplus /* Ultrix mips cc rejects this. */ typedef int charset[2]; - const charset x; + const charset cs; /* SunOS 4.1.1 cc rejects this. */ - char const *const *ccp; - char **p; + char const *const *pcpcc; + char **ppc; /* NEC SVR4.0.2 mips cc rejects this. */ struct point {int x, y;}; static struct point const zero = {0,0}; @@ -5261,16 +6228,17 @@ main () an arm of an if-expression whose if-part is not a constant expression */ const char *g = "string"; - ccp = &g + (g ? g-g : 0); + pcpcc = &g + (g ? g-g : 0); /* HPUX 7.0 cc rejects these. */ - ++ccp; - p = (char**) ccp; - ccp = (char const *const *) p; + ++pcpcc; + ppc = (char**) pcpcc; + pcpcc = (char const *const *) ppc; { /* SCO 3.2v4 cc rejects this. */ char *t; char const *s = 0 ? (char *) 0 : (char const *) 0; *t++ = 0; + if (s) return 0; } { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ int x[] = {25, 17}; @@ -5289,7 +6257,9 @@ main () } { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ const int foo = 10; + if (!foo) return 0; } + return !cs[0] && !zero.x; #endif ; @@ -5297,50 +6267,47 @@ main () } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_cv_c_const=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_c_const=no + ac_cv_c_const=no fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_c_const" >&5 -echo "${ECHO_T}$ac_cv_c_const" >&6 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_const" >&5 +$as_echo "$ac_cv_c_const" >&6; } if test $ac_cv_c_const = no; then cat >>confdefs.h <<\_ACEOF -#define const +#define const /**/ _ACEOF fi -echo "$as_me:$LINENO: checking for inline" >&5 -echo $ECHO_N "checking for inline... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for inline" >&5 +$as_echo_n "checking for inline... " >&6; } if test "${ac_cv_c_inline+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else ac_cv_c_inline=no for ac_kw in inline __inline__ __inline; do @@ -5358,39 +6325,38 @@ $ac_kw foo_t foo () {return 0; } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_c_inline=$ac_kw; break + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_c_inline=$ac_kw else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 + fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + test "$ac_cv_c_inline" != no && break done fi -echo "$as_me:$LINENO: result: $ac_cv_c_inline" >&5 -echo "${ECHO_T}$ac_cv_c_inline" >&6 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_inline" >&5 +$as_echo "$ac_cv_c_inline" >&6; } case $ac_cv_c_inline in @@ -5408,240 +6374,416 @@ _ACEOF ;; esac -echo "$as_me:$LINENO: checking whether byte ordering is bigendian" >&5 -echo $ECHO_N "checking whether byte ordering is bigendian... $ECHO_C" >&6 + + { $as_echo "$as_me:$LINENO: checking whether byte ordering is bigendian" >&5 +$as_echo_n "checking whether byte ordering is bigendian... " >&6; } if test "${ac_cv_c_bigendian+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else - # See if sys/param.h defines the BYTE_ORDER macro. -cat >conftest.$ac_ext <<_ACEOF + ac_cv_c_bigendian=unknown + # See if we're dealing with a universal compiler. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#ifndef __APPLE_CC__ + not a universal capable compiler + #endif + typedef int dummy; + +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + + # Check for potential -arch flags. It is not universal unless + # there are some -arch flags. Note that *ppc* also matches + # ppc64. This check is also rather less than ideal. + case "${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}" in #( + *-arch*ppc*|*-arch*i386*|*-arch*x86_64*) ac_cv_c_bigendian=universal;; + esac +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + if test $ac_cv_c_bigendian = unknown; then + # See if sys/param.h defines the BYTE_ORDER macro. + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include -#include + #include int main () { -#if !BYTE_ORDER || !BIG_ENDIAN || !LITTLE_ENDIAN - bogus endian macros -#endif +#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \ + && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \ + && LITTLE_ENDIAN) + bogus endian macros + #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then # It does; now see whether it defined to BIG_ENDIAN or not. -cat >conftest.$ac_ext <<_ACEOF + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include -#include + #include int main () { #if BYTE_ORDER != BIG_ENDIAN - not big endian -#endif + not big endian + #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_cv_c_bigendian=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_c_bigendian=no + ac_cv_c_bigendian=no fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -# It does not; compile a test program. -if test "$cross_compiling" = yes; then - # try to guess the endianness by grepping values into an object file - ac_cv_c_bigendian=unknown - cat >conftest.$ac_ext <<_ACEOF + +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi + if test $ac_cv_c_bigendian = unknown; then + # See if defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris). + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -short ascii_mm[] = { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; -short ascii_ii[] = { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; -void _ascii () { char *s = (char *) ascii_mm; s = (char *) ascii_ii; } -short ebcdic_ii[] = { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; -short ebcdic_mm[] = { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; -void _ebcdic () { char *s = (char *) ebcdic_mm; s = (char *) ebcdic_ii; } +#include + int main () { - _ascii (); _ebcdic (); +#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN) + bogus endian macros + #endif + ; return 0; } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - if grep BIGenDianSyS conftest.$ac_objext >/dev/null ; then - ac_cv_c_bigendian=yes -fi -if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then - if test "$ac_cv_c_bigendian" = unknown; then - ac_cv_c_bigendian=no - else - # finding both strings is unlikely to happen, but who knows? - ac_cv_c_bigendian=unknown - fi -fi -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -else - cat >conftest.$ac_ext <<_ACEOF + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + # It does; now see whether it defined to _BIG_ENDIAN or not. + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ +#include + int main () { - /* Are we little or big endian? From Harbison&Steele. */ - union - { - long l; - char c[sizeof (long)]; - } u; - u.l = 1; - exit (u.c[sizeof (long) - 1] == 1); +#ifndef _BIG_ENDIAN + not big endian + #endif + + ; + return 0; } _ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_c_bigendian=no + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_c_bigendian=yes else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -( exit $ac_status ) -ac_cv_c_bigendian=yes + ac_cv_c_bigendian=no fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + fi -echo "$as_me:$LINENO: result: $ac_cv_c_bigendian" >&5 -echo "${ECHO_T}$ac_cv_c_bigendian" >&6 -case $ac_cv_c_bigendian in - yes) -cat >>confdefs.h <<\_ACEOF +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi + if test $ac_cv_c_bigendian = unknown; then + # Compile a test program. + if test "$cross_compiling" = yes; then + # Try to guess by grepping values from an object file. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +short int ascii_mm[] = + { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; + short int ascii_ii[] = + { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; + int use_ascii (int i) { + return ascii_mm[i] + ascii_ii[i]; + } + short int ebcdic_ii[] = + { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; + short int ebcdic_mm[] = + { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; + int use_ebcdic (int i) { + return ebcdic_mm[i] + ebcdic_ii[i]; + } + extern int foo; + +int +main () +{ +return use_ascii (foo) == use_ebcdic (foo); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then + ac_cv_c_bigendian=yes + fi + if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then + if test "$ac_cv_c_bigendian" = unknown; then + ac_cv_c_bigendian=no + else + # finding both strings is unlikely to happen, but who knows? + ac_cv_c_bigendian=unknown + fi + fi +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ + + /* Are we little or big endian? From Harbison&Steele. */ + union + { + long int l; + char c[sizeof (long int)]; + } u; + u.l = 1; + return u.c[sizeof (long int) - 1] == 1; + + ; + return 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_c_bigendian=no +else + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +ac_cv_c_bigendian=yes +fi +rm -rf conftest.dSYM +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi + + + fi +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_bigendian" >&5 +$as_echo "$ac_cv_c_bigendian" >&6; } + case $ac_cv_c_bigendian in #( + yes) + cat >>confdefs.h <<\_ACEOF #define WORDS_BIGENDIAN 1 _ACEOF - ;; - no) - ;; - *) - { { echo "$as_me:$LINENO: error: unknown endianness -presetting ac_cv_c_bigendian=no (or yes) will help" >&5 -echo "$as_me: error: unknown endianness -presetting ac_cv_c_bigendian=no (or yes) will help" >&2;} +;; #( + no) + ;; #( + universal) + +cat >>confdefs.h <<\_ACEOF +#define AC_APPLE_UNIVERSAL_BUILD 1 +_ACEOF + + ;; #( + *) + { { $as_echo "$as_me:$LINENO: error: unknown endianness + presetting ac_cv_c_bigendian=no (or yes) will help" >&5 +$as_echo "$as_me: error: unknown endianness + presetting ac_cv_c_bigendian=no (or yes) will help" >&2;} { (exit 1); exit 1; }; } ;; -esac + esac -echo "$as_me:$LINENO: checking for preprocessor stringizing operator" >&5 -echo $ECHO_N "checking for preprocessor stringizing operator... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for preprocessor stringizing operator" >&5 +$as_echo_n "checking for preprocessor stringizing operator... " >&6; } if test "${ac_cv_c_stringize+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -5662,8 +6804,8 @@ fi rm -f conftest* fi -echo "$as_me:$LINENO: result: $ac_cv_c_stringize" >&5 -echo "${ECHO_T}$ac_cv_c_stringize" >&6 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_stringize" >&5 +$as_echo "$ac_cv_c_stringize" >&6; } if test $ac_cv_c_stringize = yes; then cat >>confdefs.h <<\_ACEOF @@ -5672,10 +6814,12 @@ _ACEOF fi -echo "$as_me:$LINENO: checking for working long double with more range or precision than double" >&5 -echo $ECHO_N "checking for working long double with more range or precision than double... $ECHO_C" >&6 -if test "${ac_cv_c_long_double+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + + + { $as_echo "$as_me:$LINENO: checking for long double with more range or precision than double" >&5 +$as_echo_n "checking for long double with more range or precision than double... " >&6; } +if test "${ac_cv_type_long_double_wider+set}" = set; then + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -5684,13 +6828,27 @@ cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include - long double foo = 0.0; + long double const a[] = + { + 0.0L, DBL_MIN, DBL_MAX, DBL_EPSILON, + LDBL_MIN, LDBL_MAX, LDBL_EPSILON + }; + long double + f (long double x) + { + return ((x + (unsigned long int) 10) * (-1 / x) + a[0] + + (x ? f (x) : 'c')); + } + int main () { -static int test_array [1 - 2 * !(/* Using '|' rather than '||' catches a GCC 2.95.2 x86 bug. */ - (DBL_MAX < LDBL_MAX) | (LDBL_EPSILON < DBL_EPSILON) - | (DBL_MAX_EXP < LDBL_MAX_EXP) | (DBL_MANT_DIG < LDBL_MANT_DIG))]; +static int test_array [1 - 2 * !((0 < ((DBL_MAX_EXP < LDBL_MAX_EXP) + + (DBL_MANT_DIG < LDBL_MANT_DIG) + - (LDBL_MAX_EXP < DBL_MAX_EXP) + - (LDBL_MANT_DIG < DBL_MANT_DIG))) + && (int) LDBL_EPSILON == 0 + )]; test_array [0] = 0 ; @@ -5698,51 +6856,57 @@ test_array [0] = 0 } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_c_long_double=yes + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_type_long_double_wider=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_c_long_double=no + ac_cv_type_long_double_wider=no fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_c_long_double" >&5 -echo "${ECHO_T}$ac_cv_c_long_double" >&6 -if test $ac_cv_c_long_double = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_long_double_wider" >&5 +$as_echo "$ac_cv_type_long_double_wider" >&6; } + if test $ac_cv_type_long_double_wider = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_LONG_DOUBLE_WIDER 1 +_ACEOF + + fi + + ac_cv_c_long_double=$ac_cv_type_long_double_wider + if test $ac_cv_c_long_double = yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_LONG_DOUBLE 1 _ACEOF -fi + fi -echo "$as_me:$LINENO: checking for function prototypes" >&5 -echo $ECHO_N "checking for function prototypes... $ECHO_C" >&6 -if test "$ac_cv_prog_cc_stdc" != no; then - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 +{ $as_echo "$as_me:$LINENO: checking for function prototypes" >&5 +$as_echo_n "checking for function prototypes... " >&6; } +if test "$ac_cv_prog_cc_c89" != no; then + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } cat >>confdefs.h <<\_ACEOF #define PROTOTYPES 1 @@ -5754,15 +6918,15 @@ cat >>confdefs.h <<\_ACEOF _ACEOF else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi -echo "$as_me:$LINENO: checking whether char is unsigned" >&5 -echo $ECHO_N "checking whether char is unsigned... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking whether char is unsigned" >&5 +$as_echo_n "checking whether char is unsigned... " >&6; } if test "${ac_cv_c_char_unsigned+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -5782,38 +6946,35 @@ test_array [0] = 0 } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_cv_c_char_unsigned=no else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_c_char_unsigned=yes + ac_cv_c_char_unsigned=yes fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_c_char_unsigned" >&5 -echo "${ECHO_T}$ac_cv_c_char_unsigned" >&6 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_char_unsigned" >&5 +$as_echo "$ac_cv_c_char_unsigned" >&6; } if test $ac_cv_c_char_unsigned = yes && test "$GCC" != yes; then cat >>confdefs.h <<\_ACEOF #define __CHAR_UNSIGNED__ 1 @@ -5836,17 +6997,17 @@ fi - echo "$as_me:$LINENO: checking whether NLS is requested" >&5 -echo $ECHO_N "checking whether NLS is requested... $ECHO_C" >&6 - # Check whether --enable-nls or --disable-nls was given. + { $as_echo "$as_me:$LINENO: checking whether NLS is requested" >&5 +$as_echo_n "checking whether NLS is requested... " >&6; } + # Check whether --enable-nls was given. if test "${enable_nls+set}" = set; then - enableval="$enable_nls" - USE_NLS=$enableval + enableval=$enable_nls; USE_NLS=$enableval else USE_NLS=yes -fi; - echo "$as_me:$LINENO: result: $USE_NLS" >&5 -echo "${ECHO_T}$USE_NLS" >&6 +fi + + { $as_echo "$as_me:$LINENO: result: $USE_NLS" >&5 +$as_echo "$USE_NLS" >&6; } @@ -5883,10 +7044,10 @@ rm -f conf$$.file # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_MSGFMT+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else case "$MSGFMT" in [\\/]* | ?:[\\/]*) @@ -5914,19 +7075,19 @@ esac fi MSGFMT="$ac_cv_path_MSGFMT" if test "$MSGFMT" != ":"; then - echo "$as_me:$LINENO: result: $MSGFMT" >&5 -echo "${ECHO_T}$MSGFMT" >&6 + { $as_echo "$as_me:$LINENO: result: $MSGFMT" >&5 +$as_echo "$MSGFMT" >&6; } else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_GMSGFMT+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else case $GMSGFMT in [\\/]* | ?:[\\/]*) @@ -5939,30 +7100,31 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done +IFS=$as_save_IFS test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" ;; esac fi GMSGFMT=$ac_cv_path_GMSGFMT - if test -n "$GMSGFMT"; then - echo "$as_me:$LINENO: result: $GMSGFMT" >&5 -echo "${ECHO_T}$GMSGFMT" >&6 + { $as_echo "$as_me:$LINENO: result: $GMSGFMT" >&5 +$as_echo "$GMSGFMT" >&6; } else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi + # Prepare PATH_SEPARATOR. # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then @@ -5993,10 +7155,10 @@ rm -f conf$$.file # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_XGETTEXT+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else case "$XGETTEXT" in [\\/]* | ?:[\\/]*) @@ -6024,11 +7186,11 @@ esac fi XGETTEXT="$ac_cv_path_XGETTEXT" if test "$XGETTEXT" != ":"; then - echo "$as_me:$LINENO: result: $XGETTEXT" >&5 -echo "${ECHO_T}$XGETTEXT" >&6 + { $as_echo "$as_me:$LINENO: result: $XGETTEXT" >&5 +$as_echo "$XGETTEXT" >&6; } else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi rm -f messages.po @@ -6064,10 +7226,10 @@ rm -f conf$$.file # Extract the first word of "msgmerge", so it can be a program name with args. set dummy msgmerge; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_MSGMERGE+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else case "$MSGMERGE" in [\\/]* | ?:[\\/]*) @@ -6094,11 +7256,11 @@ esac fi MSGMERGE="$ac_cv_path_MSGMERGE" if test "$MSGMERGE" != ":"; then - echo "$as_me:$LINENO: result: $MSGMERGE" >&5 -echo "${ECHO_T}$MSGMERGE" >&6 + { $as_echo "$as_me:$LINENO: result: $MSGMERGE" >&5 +$as_echo "$MSGMERGE" >&6; } else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi @@ -6108,8 +7270,8 @@ fi : ; else GMSGFMT=`echo "$GMSGFMT" | sed -e 's,^.*/,,'` - echo "$as_me:$LINENO: result: found $GMSGFMT program is not GNU msgfmt; ignore it" >&5 -echo "${ECHO_T}found $GMSGFMT program is not GNU msgfmt; ignore it" >&6 + { $as_echo "$as_me:$LINENO: result: found $GMSGFMT program is not GNU msgfmt; ignore it" >&5 +$as_echo "found $GMSGFMT program is not GNU msgfmt; ignore it" >&6; } GMSGFMT=":" fi fi @@ -6119,22 +7281,23 @@ echo "${ECHO_T}found $GMSGFMT program is not GNU msgfmt; ignore it" >&6 (if $XGETTEXT --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then : ; else - echo "$as_me:$LINENO: result: found xgettext program is not GNU xgettext; ignore it" >&5 -echo "${ECHO_T}found xgettext program is not GNU xgettext; ignore it" >&6 + { $as_echo "$as_me:$LINENO: result: found xgettext program is not GNU xgettext; ignore it" >&5 +$as_echo "found xgettext program is not GNU xgettext; ignore it" >&6; } XGETTEXT=":" fi rm -f messages.po fi - ac_config_commands="$ac_config_commands default-1" + ac_config_commands="$ac_config_commands default-1" -echo "$as_me:$LINENO: checking for off_t" >&5 -echo $ECHO_N "checking for off_t... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for off_t" >&5 +$as_echo_n "checking for off_t... " >&6; } if test "${ac_cv_type_off_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else - cat >conftest.$ac_ext <<_ACEOF + ac_cv_type_off_t=no +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -6144,63 +7307,101 @@ $ac_includes_default int main () { -if ((off_t *) 0) - return 0; if (sizeof (off_t)) - return 0; + return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +if (sizeof ((off_t))) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_off_t=yes + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + : +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_type_off_t=yes +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_type_off_t=no + fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_type_off_t" >&5 -echo "${ECHO_T}$ac_cv_type_off_t" >&6 -if test $ac_cv_type_off_t = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_off_t" >&5 +$as_echo "$ac_cv_type_off_t" >&6; } +if test "x$ac_cv_type_off_t" = x""yes; then : else cat >>confdefs.h <<_ACEOF -#define off_t long +#define off_t long int _ACEOF fi -echo "$as_me:$LINENO: checking for size_t" >&5 -echo $ECHO_N "checking for size_t... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for size_t" >&5 +$as_echo_n "checking for size_t... " >&6; } if test "${ac_cv_type_size_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else - cat >conftest.$ac_ext <<_ACEOF + ac_cv_type_size_t=no +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -6210,63 +7411,100 @@ $ac_includes_default int main () { -if ((size_t *) 0) - return 0; if (sizeof (size_t)) - return 0; + return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +if (sizeof ((size_t))) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_size_t=yes + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + : +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_type_size_t=yes +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_type_size_t=no + fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_type_size_t" >&5 -echo "${ECHO_T}$ac_cv_type_size_t" >&6 -if test $ac_cv_type_size_t = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_size_t" >&5 +$as_echo "$ac_cv_type_size_t" >&6; } +if test "x$ac_cv_type_size_t" = x""yes; then : else cat >>confdefs.h <<_ACEOF -#define size_t unsigned +#define size_t unsigned int _ACEOF fi # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works # for constant arguments. Useless! -echo "$as_me:$LINENO: checking for working alloca.h" >&5 -echo $ECHO_N "checking for working alloca.h... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for working alloca.h" >&5 +$as_echo_n "checking for working alloca.h... " >&6; } if test "${ac_cv_working_alloca_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -6279,44 +7517,46 @@ int main () { char *p = (char *) alloca (2 * sizeof (int)); + if (p) return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then ac_cv_working_alloca_h=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_working_alloca_h=no + ac_cv_working_alloca_h=no fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_working_alloca_h" >&5 -echo "${ECHO_T}$ac_cv_working_alloca_h" >&6 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_working_alloca_h" >&5 +$as_echo "$ac_cv_working_alloca_h" >&6; } if test $ac_cv_working_alloca_h = yes; then cat >>confdefs.h <<\_ACEOF @@ -6325,10 +7565,10 @@ _ACEOF fi -echo "$as_me:$LINENO: checking for alloca" >&5 -echo $ECHO_N "checking for alloca... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for alloca" >&5 +$as_echo_n "checking for alloca... " >&6; } if test "${ac_cv_func_alloca_works+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -6343,7 +7583,7 @@ cat >>conftest.$ac_ext <<_ACEOF # include # define alloca _alloca # else -# if HAVE_ALLOCA_H +# ifdef HAVE_ALLOCA_H # include # else # ifdef _AIX @@ -6361,44 +7601,46 @@ int main () { char *p = (char *) alloca (1); + if (p) return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then ac_cv_func_alloca_works=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_func_alloca_works=no + ac_cv_func_alloca_works=no fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_func_alloca_works" >&5 -echo "${ECHO_T}$ac_cv_func_alloca_works" >&6 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_alloca_works" >&5 +$as_echo "$ac_cv_func_alloca_works" >&6; } if test $ac_cv_func_alloca_works = yes; then @@ -6412,17 +7654,17 @@ else # contain a buggy version. If you still want to use their alloca, # use ar to extract alloca.o from them instead of compiling alloca.c. -ALLOCA=alloca.$ac_objext +ALLOCA=\${LIBOBJDIR}alloca.$ac_objext cat >>confdefs.h <<\_ACEOF #define C_ALLOCA 1 _ACEOF -echo "$as_me:$LINENO: checking whether \`alloca.c' needs Cray hooks" >&5 -echo $ECHO_N "checking whether \`alloca.c' needs Cray hooks... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking whether \`alloca.c' needs Cray hooks" >&5 +$as_echo_n "checking whether \`alloca.c' needs Cray hooks... " >&6; } if test "${ac_cv_os_cray+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -6430,7 +7672,7 @@ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#if defined(CRAY) && ! defined(CRAY2) +#if defined CRAY && ! defined CRAY2 webecray #else wenotbecray @@ -6446,15 +7688,15 @@ fi rm -f conftest* fi -echo "$as_me:$LINENO: result: $ac_cv_os_cray" >&5 -echo "${ECHO_T}$ac_cv_os_cray" >&6 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_os_cray" >&5 +$as_echo "$ac_cv_os_cray" >&6; } if test $ac_cv_os_cray = yes; then for ac_func in _getb67 GETB67 getb67; do - as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 -if eval "test \"\${$as_ac_var+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +$as_echo_n "checking for $ac_func... " >&6; } +if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -6479,69 +7721,68 @@ cat >>conftest.$ac_ext <<_ACEOF #undef $ac_func -/* Override any gcc2 internal prototype to avoid an error. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" -{ #endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ char $ac_func (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ -#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +#if defined __stub_$ac_func || defined __stub___$ac_func choke me -#else -char (*f) () = $ac_func; -#endif -#ifdef __cplusplus -} #endif int main () { -return f != $ac_func; +return $ac_func (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then eval "$as_ac_var=yes" else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -eval "$as_ac_var=no" + eval "$as_ac_var=no" fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 -if test `eval echo '${'$as_ac_var'}'` = yes; then +ac_res=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +as_val=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF #define CRAY_STACKSEG_END $ac_func @@ -6553,10 +7794,10 @@ fi done fi -echo "$as_me:$LINENO: checking stack direction for C alloca" >&5 -echo $ECHO_N "checking stack direction for C alloca... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking stack direction for C alloca" >&5 +$as_echo_n "checking stack direction for C alloca... " >&6; } if test "${ac_cv_c_stack_direction+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then ac_cv_c_stack_direction=0 @@ -6567,6 +7808,7 @@ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ +$ac_includes_default int find_stack_direction () { @@ -6584,34 +7826,48 @@ find_stack_direction () int main () { - exit (find_stack_direction () < 0); + return find_stack_direction () < 0; } _ACEOF rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_c_stack_direction=1 else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_c_stack_direction=-1 fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +rm -rf conftest.dSYM +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi + + fi -echo "$as_me:$LINENO: result: $ac_cv_c_stack_direction" >&5 -echo "${ECHO_T}$ac_cv_c_stack_direction" >&6 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_stack_direction" >&5 +$as_echo "$ac_cv_c_stack_direction" >&6; } cat >>confdefs.h <<_ACEOF #define STACK_DIRECTION $ac_cv_c_stack_direction @@ -6624,19 +7880,21 @@ fi for ac_header in stdlib.h unistd.h do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 +fi +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } else # Is the header compilable? -echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 +$as_echo_n "checking $ac_header usability... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -6647,41 +7905,38 @@ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_header_compiler=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_header_compiler=no + ac_header_compiler=no fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6 + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +$as_echo "$ac_header_compiler" >&6; } # Is the header present? -echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 +$as_echo_n "checking $ac_header presence... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -6690,81 +7945,83 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then ac_header_preproc=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi + rm -f conftest.err conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6 +{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +$as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 -echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 -echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} - ( - cat <<\_ASBOX + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +$as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +$as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( cat <<\_ASBOX ## ------------------------------- ## ## Report this to bug-bash@gnu.org ## ## ------------------------------- ## _ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 + ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac -echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then +as_val=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi @@ -6774,11 +8031,11 @@ done for ac_func in getpagesize do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 -if eval "test \"\${$as_ac_var+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +$as_echo_n "checking for $ac_func... " >&6; } +if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -6803,80 +8060,79 @@ cat >>conftest.$ac_ext <<_ACEOF #undef $ac_func -/* Override any gcc2 internal prototype to avoid an error. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" -{ #endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ char $ac_func (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ -#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +#if defined __stub_$ac_func || defined __stub___$ac_func choke me -#else -char (*f) () = $ac_func; -#endif -#ifdef __cplusplus -} #endif int main () { -return f != $ac_func; +return $ac_func (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then eval "$as_ac_var=yes" else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -eval "$as_ac_var=no" + eval "$as_ac_var=no" fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 -if test `eval echo '${'$as_ac_var'}'` = yes; then +ac_res=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +as_val=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done -echo "$as_me:$LINENO: checking for working mmap" >&5 -echo $ECHO_N "checking for working mmap... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for working mmap" >&5 +$as_echo_n "checking for working mmap... " >&6; } if test "${ac_cv_func_mmap_fixed_mapped+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then ac_cv_func_mmap_fixed_mapped=no @@ -6916,21 +8172,21 @@ $ac_includes_default #include #include -#if !STDC_HEADERS && !HAVE_STDLIB_H +#if !defined STDC_HEADERS && !defined HAVE_STDLIB_H char *malloc (); #endif /* This mess was copied from the GNU getpagesize.h. */ -#if !HAVE_GETPAGESIZE +#ifndef HAVE_GETPAGESIZE /* Assume that all systems that can run configure have sys/param.h. */ -# if !HAVE_SYS_PARAM_H +# ifndef HAVE_SYS_PARAM_H # define HAVE_SYS_PARAM_H 1 # endif # ifdef _SC_PAGESIZE # define getpagesize() sysconf(_SC_PAGESIZE) # else /* no _SC_PAGESIZE */ -# if HAVE_SYS_PARAM_H +# ifdef HAVE_SYS_PARAM_H # include # ifdef EXEC_PAGESIZE # define getpagesize() EXEC_PAGESIZE @@ -6969,15 +8225,15 @@ main () /* First, make a file with some known garbage in it. */ data = (char *) malloc (pagesize); if (!data) - exit (1); + return 1; for (i = 0; i < pagesize; ++i) *(data + i) = rand (); umask (0); fd = creat ("conftest.mmap", 0600); if (fd < 0) - exit (1); + return 1; if (write (fd, data, pagesize) != pagesize) - exit (1); + return 1; close (fd); /* Next, try to mmap the file at a fixed address which already has @@ -6985,17 +8241,17 @@ main () we see the same garbage. */ fd = open ("conftest.mmap", O_RDWR); if (fd < 0) - exit (1); + return 1; data2 = (char *) malloc (2 * pagesize); if (!data2) - exit (1); - data2 += (pagesize - ((long) data2 & (pagesize - 1))) & (pagesize - 1); + return 1; + data2 += (pagesize - ((long int) data2 & (pagesize - 1))) & (pagesize - 1); if (data2 != mmap (data2, pagesize, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_FIXED, fd, 0L)) - exit (1); + return 1; for (i = 0; i < pagesize; ++i) if (*(data + i) != *(data2 + i)) - exit (1); + return 1; /* Finally, make sure that changes to the mapped area do not percolate back to the file as seen by read(). (This is a bug on @@ -7004,41 +8260,55 @@ main () *(data2 + i) = *(data2 + i) + 1; data3 = (char *) malloc (pagesize); if (!data3) - exit (1); + return 1; if (read (fd, data3, pagesize) != pagesize) - exit (1); + return 1; for (i = 0; i < pagesize; ++i) if (*(data + i) != *(data3 + i)) - exit (1); + return 1; close (fd); - exit (0); + return 0; } _ACEOF rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_mmap_fixed_mapped=yes else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_func_mmap_fixed_mapped=no fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +rm -rf conftest.dSYM +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi + + fi -echo "$as_me:$LINENO: result: $ac_cv_func_mmap_fixed_mapped" >&5 -echo "${ECHO_T}$ac_cv_func_mmap_fixed_mapped" >&6 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_mmap_fixed_mapped" >&5 +$as_echo "$ac_cv_func_mmap_fixed_mapped" >&6; } if test $ac_cv_func_mmap_fixed_mapped = yes; then cat >>confdefs.h <<\_ACEOF @@ -7049,10 +8319,10 @@ fi rm -f conftest.mmap - echo "$as_me:$LINENO: checking whether we are using the GNU C Library 2.1 or newer" >&5 -echo $ECHO_N "checking whether we are using the GNU C Library 2.1 or newer... $ECHO_C" >&6 + { $as_echo "$as_me:$LINENO: checking whether we are using the GNU C Library 2.1 or newer" >&5 +$as_echo_n "checking whether we are using the GNU C Library 2.1 or newer... " >&6; } if test "${ac_cv_gnu_library_2_1+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -7080,18 +8350,18 @@ rm -f conftest* fi -echo "$as_me:$LINENO: result: $ac_cv_gnu_library_2_1" >&5 -echo "${ECHO_T}$ac_cv_gnu_library_2_1" >&6 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_gnu_library_2_1" >&5 +$as_echo "$ac_cv_gnu_library_2_1" >&6; } GLIBC21="$ac_cv_gnu_library_2_1" - echo "$as_me:$LINENO: checking whether integer division by zero raises SIGFPE" >&5 -echo $ECHO_N "checking whether integer division by zero raises SIGFPE... $ECHO_C" >&6 + { $as_echo "$as_me:$LINENO: checking whether integer division by zero raises SIGFPE" >&5 +$as_echo_n "checking whether integer division by zero raises SIGFPE... " >&6; } if test "${gt_cv_int_divbyzero_sigfpe+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then @@ -7150,31 +8420,45 @@ int main () _ACEOF rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then gt_cv_int_divbyzero_sigfpe=yes else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) gt_cv_int_divbyzero_sigfpe=no fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +rm -rf conftest.dSYM +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi + + fi -echo "$as_me:$LINENO: result: $gt_cv_int_divbyzero_sigfpe" >&5 -echo "${ECHO_T}$gt_cv_int_divbyzero_sigfpe" >&6 +{ $as_echo "$as_me:$LINENO: result: $gt_cv_int_divbyzero_sigfpe" >&5 +$as_echo "$gt_cv_int_divbyzero_sigfpe" >&6; } case "$gt_cv_int_divbyzero_sigfpe" in *yes) value=1;; *) value=0;; @@ -7186,10 +8470,10 @@ _ACEOF - echo "$as_me:$LINENO: checking for inttypes.h" >&5 -echo $ECHO_N "checking for inttypes.h... $ECHO_C" >&6 + { $as_echo "$as_me:$LINENO: checking for inttypes.h" >&5 +$as_echo_n "checking for inttypes.h... " >&6; } if test "${jm_ac_cv_header_inttypes_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -7208,38 +8492,35 @@ uintmax_t i = (uintmax_t) -1; } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then jm_ac_cv_header_inttypes_h=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -jm_ac_cv_header_inttypes_h=no + jm_ac_cv_header_inttypes_h=no fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $jm_ac_cv_header_inttypes_h" >&5 -echo "${ECHO_T}$jm_ac_cv_header_inttypes_h" >&6 +{ $as_echo "$as_me:$LINENO: result: $jm_ac_cv_header_inttypes_h" >&5 +$as_echo "$jm_ac_cv_header_inttypes_h" >&6; } if test $jm_ac_cv_header_inttypes_h = yes; then cat >>confdefs.h <<_ACEOF @@ -7249,10 +8530,10 @@ _ACEOF fi - echo "$as_me:$LINENO: checking for stdint.h" >&5 -echo $ECHO_N "checking for stdint.h... $ECHO_C" >&6 + { $as_echo "$as_me:$LINENO: checking for stdint.h" >&5 +$as_echo_n "checking for stdint.h... " >&6; } if test "${jm_ac_cv_header_stdint_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -7271,38 +8552,35 @@ uintmax_t i = (uintmax_t) -1; } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then jm_ac_cv_header_stdint_h=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -jm_ac_cv_header_stdint_h=no + jm_ac_cv_header_stdint_h=no fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $jm_ac_cv_header_stdint_h" >&5 -echo "${ECHO_T}$jm_ac_cv_header_stdint_h" >&6 +{ $as_echo "$as_me:$LINENO: result: $jm_ac_cv_header_stdint_h" >&5 +$as_echo "$jm_ac_cv_header_stdint_h" >&6; } if test $jm_ac_cv_header_stdint_h = yes; then cat >>confdefs.h <<_ACEOF @@ -7312,10 +8590,10 @@ _ACEOF fi - echo "$as_me:$LINENO: checking for unsigned long long" >&5 -echo $ECHO_N "checking for unsigned long long... $ECHO_C" >&6 + { $as_echo "$as_me:$LINENO: checking for unsigned long long" >&5 +$as_echo_n "checking for unsigned long long... " >&6; } if test "${ac_cv_type_unsigned_long_long+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -7334,39 +8612,40 @@ unsigned long long ullmax = (unsigned long long) -1; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then ac_cv_type_unsigned_long_long=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_type_unsigned_long_long=no + ac_cv_type_unsigned_long_long=no fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_type_unsigned_long_long" >&5 -echo "${ECHO_T}$ac_cv_type_unsigned_long_long" >&6 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_unsigned_long_long" >&5 +$as_echo "$ac_cv_type_unsigned_long_long" >&6; } if test $ac_cv_type_unsigned_long_long = yes; then cat >>confdefs.h <<\_ACEOF @@ -7397,10 +8676,10 @@ _ACEOF fi - echo "$as_me:$LINENO: checking for inttypes.h" >&5 -echo $ECHO_N "checking for inttypes.h... $ECHO_C" >&6 + { $as_echo "$as_me:$LINENO: checking for inttypes.h" >&5 +$as_echo_n "checking for inttypes.h... " >&6; } if test "${gt_cv_header_inttypes_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF @@ -7420,39 +8699,36 @@ main () } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then gt_cv_header_inttypes_h=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -gt_cv_header_inttypes_h=no + gt_cv_header_inttypes_h=no fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $gt_cv_header_inttypes_h" >&5 -echo "${ECHO_T}$gt_cv_header_inttypes_h" >&6 +{ $as_echo "$as_me:$LINENO: result: $gt_cv_header_inttypes_h" >&5 +$as_echo "$gt_cv_header_inttypes_h" >&6; } if test $gt_cv_header_inttypes_h = yes; then cat >>confdefs.h <<_ACEOF @@ -7464,10 +8740,10 @@ _ACEOF if test $gt_cv_header_inttypes_h = yes; then - echo "$as_me:$LINENO: checking whether the inttypes.h PRIxNN macros are broken" >&5 -echo $ECHO_N "checking whether the inttypes.h PRIxNN macros are broken... $ECHO_C" >&6 + { $as_echo "$as_me:$LINENO: checking whether the inttypes.h PRIxNN macros are broken" >&5 +$as_echo_n "checking whether the inttypes.h PRIxNN macros are broken... " >&6; } if test "${gt_cv_inttypes_pri_broken+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF @@ -7490,39 +8766,36 @@ main () } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then gt_cv_inttypes_pri_broken=no else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -gt_cv_inttypes_pri_broken=yes + gt_cv_inttypes_pri_broken=yes fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $gt_cv_inttypes_pri_broken" >&5 -echo "${ECHO_T}$gt_cv_inttypes_pri_broken" >&6 +{ $as_echo "$as_me:$LINENO: result: $gt_cv_inttypes_pri_broken" >&5 +$as_echo "$gt_cv_inttypes_pri_broken" >&6; } fi if test "$gt_cv_inttypes_pri_broken" = yes; then @@ -7549,13 +8822,13 @@ _ACEOF prefix="$acl_save_prefix" -# Check whether --with-gnu-ld or --without-gnu-ld was given. +# Check whether --with-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then - withval="$with_gnu_ld" - test "$withval" = no || with_gnu_ld=yes + withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no -fi; +fi + # Prepare PATH_SEPARATOR. # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then @@ -7572,8 +8845,8 @@ fi ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. - echo "$as_me:$LINENO: checking for ld used by GCC" >&5 -echo $ECHO_N "checking for ld used by GCC... $ECHO_C" >&6 + { $as_echo "$as_me:$LINENO: checking for ld used by GCC" >&5 +$as_echo_n "checking for ld used by GCC... " >&6; } case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw @@ -7602,14 +8875,14 @@ echo $ECHO_N "checking for ld used by GCC... $ECHO_C" >&6 ;; esac elif test "$with_gnu_ld" = yes; then - echo "$as_me:$LINENO: checking for GNU ld" >&5 -echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6 + { $as_echo "$as_me:$LINENO: checking for GNU ld" >&5 +$as_echo_n "checking for GNU ld... " >&6; } else - echo "$as_me:$LINENO: checking for non-GNU ld" >&5 -echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6 + { $as_echo "$as_me:$LINENO: checking for non-GNU ld" >&5 +$as_echo_n "checking for non-GNU ld... " >&6; } fi if test "${acl_cv_path_LD+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -z "$LD"; then IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}" @@ -7635,19 +8908,19 @@ fi LD="$acl_cv_path_LD" if test -n "$LD"; then - echo "$as_me:$LINENO: result: $LD" >&5 -echo "${ECHO_T}$LD" >&6 + { $as_echo "$as_me:$LINENO: result: $LD" >&5 +$as_echo "$LD" >&6; } else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi -test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 -echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} +test -z "$LD" && { { $as_echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 +$as_echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} { (exit 1); exit 1; }; } -echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 -echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 +$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } if test "${acl_cv_prog_gnu_ld+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU ld's only accept -v. if $LD -v 2>&1 &5; then @@ -7656,16 +8929,16 @@ else acl_cv_prog_gnu_ld=no fi fi -echo "$as_me:$LINENO: result: $acl_cv_prog_gnu_ld" >&5 -echo "${ECHO_T}$acl_cv_prog_gnu_ld" >&6 +{ $as_echo "$as_me:$LINENO: result: $acl_cv_prog_gnu_ld" >&5 +$as_echo "$acl_cv_prog_gnu_ld" >&6; } with_gnu_ld=$acl_cv_prog_gnu_ld - echo "$as_me:$LINENO: checking for shared library run path origin" >&5 -echo $ECHO_N "checking for shared library run path origin... $ECHO_C" >&6 + { $as_echo "$as_me:$LINENO: checking for shared library run path origin" >&5 +$as_echo_n "checking for shared library run path origin... " >&6; } if test "${acl_cv_rpath+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \ @@ -7675,8 +8948,8 @@ else acl_cv_rpath=done fi -echo "$as_me:$LINENO: result: $acl_cv_rpath" >&5 -echo "${ECHO_T}$acl_cv_rpath" >&6 +{ $as_echo "$as_me:$LINENO: result: $acl_cv_rpath" >&5 +$as_echo "$acl_cv_rpath" >&6; } wl="$acl_cv_wl" libext="$acl_cv_libext" shlibext="$acl_cv_shlibext" @@ -7684,13 +8957,13 @@ echo "${ECHO_T}$acl_cv_rpath" >&6 hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" hardcode_direct="$acl_cv_hardcode_direct" hardcode_minus_L="$acl_cv_hardcode_minus_L" - # Check whether --enable-rpath or --disable-rpath was given. + # Check whether --enable-rpath was given. if test "${enable_rpath+set}" = set; then - enableval="$enable_rpath" - : + enableval=$enable_rpath; : else enable_rpath=yes -fi; +fi + @@ -7712,10 +8985,9 @@ fi; prefix="$acl_save_prefix" -# Check whether --with-libiconv-prefix or --without-libiconv-prefix was given. +# Check whether --with-libiconv-prefix was given. if test "${with_libiconv_prefix+set}" = set; then - withval="$with_libiconv_prefix" - + withval=$with_libiconv_prefix; if test "X$withval" = "Xno"; then use_additional=no else @@ -7738,7 +9010,8 @@ if test "${with_libiconv_prefix+set}" = set; then fi fi -fi; +fi + LIBICONV= LTLIBICONV= INCICONV= @@ -8090,19 +9363,21 @@ fi; for ac_header in argz.h limits.h locale.h nl_types.h malloc.h stddef.h \ stdlib.h string.h unistd.h sys/param.h do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 +fi +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } else # Is the header compilable? -echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 +$as_echo_n "checking $ac_header usability... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -8113,41 +9388,38 @@ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_header_compiler=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_header_compiler=no + ac_header_compiler=no fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6 + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +$as_echo "$ac_header_compiler" >&6; } # Is the header present? -echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 +$as_echo_n "checking $ac_header presence... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -8156,81 +9428,83 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then ac_header_preproc=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi + rm -f conftest.err conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6 +{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +$as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 -echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 -echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} - ( - cat <<\_ASBOX + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +$as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +$as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( cat <<\_ASBOX ## ------------------------------- ## ## Report this to bug-bash@gnu.org ## ## ------------------------------- ## _ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 + ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac -echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then +as_val=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi @@ -8257,18 +9531,19 @@ done + for ac_func in feof_unlocked fgets_unlocked getc_unlocked getcwd getegid \ -geteuid getgid getuid mempcpy munmap putenv setenv setlocale stpcpy \ +geteuid getgid getuid mempcpy munmap putenv setenv setlocale localeconv stpcpy \ strcasecmp strdup strtoul tsearch __argz_count __argz_stringify __argz_next \ __fsetlocking do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 -if eval "test \"\${$as_ac_var+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +$as_echo_n "checking for $ac_func... " >&6; } +if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -8293,71 +9568,70 @@ cat >>conftest.$ac_ext <<_ACEOF #undef $ac_func -/* Override any gcc2 internal prototype to avoid an error. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" -{ #endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ char $ac_func (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ -#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +#if defined __stub_$ac_func || defined __stub___$ac_func choke me -#else -char (*f) () = $ac_func; -#endif -#ifdef __cplusplus -} #endif int main () { -return f != $ac_func; +return $ac_func (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then eval "$as_ac_var=yes" else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -eval "$as_ac_var=no" + eval "$as_ac_var=no" fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 -if test `eval echo '${'$as_ac_var'}'` = yes; then +ac_res=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +as_val=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi @@ -8394,10 +9668,10 @@ done done - echo "$as_me:$LINENO: checking for iconv" >&5 -echo $ECHO_N "checking for iconv... $ECHO_C" >&6 + { $as_echo "$as_me:$LINENO: checking for iconv" >&5 +$as_echo_n "checking for iconv... " >&6; } if test "${am_cv_func_iconv+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else am_cv_func_iconv="no, consider installing GNU libiconv" @@ -8421,34 +9695,36 @@ iconv_t cd = iconv_open("",""); } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then am_cv_func_iconv=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 + fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext if test "$am_cv_func_iconv" != yes; then am_save_LIBS="$LIBS" @@ -8472,42 +9748,44 @@ iconv_t cd = iconv_open("",""); } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then am_cv_lib_iconv=yes am_cv_func_iconv=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 + fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS="$am_save_LIBS" fi fi -echo "$as_me:$LINENO: result: $am_cv_func_iconv" >&5 -echo "${ECHO_T}$am_cv_func_iconv" >&6 +{ $as_echo "$as_me:$LINENO: result: $am_cv_func_iconv" >&5 +$as_echo "$am_cv_func_iconv" >&6; } if test "$am_cv_func_iconv" = yes; then cat >>confdefs.h <<\_ACEOF @@ -8516,10 +9794,10 @@ _ACEOF fi if test "$am_cv_lib_iconv" = yes; then - echo "$as_me:$LINENO: checking how to link with libiconv" >&5 -echo $ECHO_N "checking how to link with libiconv... $ECHO_C" >&6 - echo "$as_me:$LINENO: result: $LIBICONV" >&5 -echo "${ECHO_T}$LIBICONV" >&6 + { $as_echo "$as_me:$LINENO: checking how to link with libiconv" >&5 +$as_echo_n "checking how to link with libiconv... " >&6; } + { $as_echo "$as_me:$LINENO: result: $LIBICONV" >&5 +$as_echo "$LIBICONV" >&6; } else CPPFLAGS="$am_save_CPPFLAGS" LIBICONV= @@ -8529,10 +9807,10 @@ echo "${ECHO_T}$LIBICONV" >&6 if test "$am_cv_func_iconv" = yes; then - echo "$as_me:$LINENO: checking for iconv declaration" >&5 -echo $ECHO_N "checking for iconv declaration... $ECHO_C" >&6 + { $as_echo "$as_me:$LINENO: checking for iconv declaration" >&5 +$as_echo_n "checking for iconv declaration... " >&6; } if test "${am_cv_proto_iconv+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF @@ -8563,43 +9841,40 @@ main () } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then am_cv_proto_iconv_arg1="" else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -am_cv_proto_iconv_arg1="const" + am_cv_proto_iconv_arg1="const" fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);" fi am_cv_proto_iconv=`echo "$am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'` - echo "$as_me:$LINENO: result: ${ac_t:- + { $as_echo "$as_me:$LINENO: result: ${ac_t:- }$am_cv_proto_iconv" >&5 -echo "${ECHO_T}${ac_t:- - }$am_cv_proto_iconv" >&6 +$as_echo "${ac_t:- + }$am_cv_proto_iconv" >&6; } cat >>confdefs.h <<_ACEOF #define ICONV_CONST $am_cv_proto_iconv_arg1 @@ -8608,10 +9883,10 @@ _ACEOF fi - echo "$as_me:$LINENO: checking for nl_langinfo and CODESET" >&5 -echo $ECHO_N "checking for nl_langinfo and CODESET... $ECHO_C" >&6 + { $as_echo "$as_me:$LINENO: checking for nl_langinfo and CODESET" >&5 +$as_echo_n "checking for nl_langinfo and CODESET... " >&6; } if test "${am_cv_langinfo_codeset+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -8629,40 +9904,41 @@ char* cs = nl_langinfo(CODESET); } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then am_cv_langinfo_codeset=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -am_cv_langinfo_codeset=no + am_cv_langinfo_codeset=no fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $am_cv_langinfo_codeset" >&5 -echo "${ECHO_T}$am_cv_langinfo_codeset" >&6 +{ $as_echo "$as_me:$LINENO: result: $am_cv_langinfo_codeset" >&5 +$as_echo "$am_cv_langinfo_codeset" >&6; } if test $am_cv_langinfo_codeset = yes; then cat >>confdefs.h <<\_ACEOF @@ -8673,10 +9949,10 @@ _ACEOF if test $ac_cv_header_locale_h = yes; then - echo "$as_me:$LINENO: checking for LC_MESSAGES" >&5 -echo $ECHO_N "checking for LC_MESSAGES... $ECHO_C" >&6 + { $as_echo "$as_me:$LINENO: checking for LC_MESSAGES" >&5 +$as_echo_n "checking for LC_MESSAGES... " >&6; } if test "${am_cv_val_LC_MESSAGES+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -8694,39 +9970,40 @@ return LC_MESSAGES } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then am_cv_val_LC_MESSAGES=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -am_cv_val_LC_MESSAGES=no + am_cv_val_LC_MESSAGES=no fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $am_cv_val_LC_MESSAGES" >&5 -echo "${ECHO_T}$am_cv_val_LC_MESSAGES" >&6 +{ $as_echo "$as_me:$LINENO: result: $am_cv_val_LC_MESSAGES" >&5 +$as_echo "$am_cv_val_LC_MESSAGES" >&6; } if test $am_cv_val_LC_MESSAGES = yes; then cat >>confdefs.h <<\_ACEOF @@ -8741,10 +10018,10 @@ _ACEOF do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_INTLBISON+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -n "$INTLBISON"; then ac_cv_prog_INTLBISON="$INTLBISON" # Let the user override the test. @@ -8755,33 +10032,35 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_INTLBISON="$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done +IFS=$as_save_IFS fi fi INTLBISON=$ac_cv_prog_INTLBISON if test -n "$INTLBISON"; then - echo "$as_me:$LINENO: result: $INTLBISON" >&5 -echo "${ECHO_T}$INTLBISON" >&6 + { $as_echo "$as_me:$LINENO: result: $INTLBISON" >&5 +$as_echo "$INTLBISON" >&6; } else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi + test -n "$INTLBISON" && break done if test -z "$INTLBISON"; then ac_verc_fail=yes else - echo "$as_me:$LINENO: checking version of bison" >&5 -echo $ECHO_N "checking version of bison... $ECHO_C" >&6 + { $as_echo "$as_me:$LINENO: checking version of bison" >&5 +$as_echo_n "checking version of bison... " >&6; } ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'` case $ac_prog_version in '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;; @@ -8789,8 +10068,8 @@ echo $ECHO_N "checking version of bison... $ECHO_C" >&6 ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;; *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;; esac - echo "$as_me:$LINENO: result: $ac_prog_version" >&5 -echo "${ECHO_T}$ac_prog_version" >&6 + { $as_echo "$as_me:$LINENO: result: $ac_prog_version" >&5 +$as_echo "$ac_prog_version" >&6; } fi if test $ac_verc_fail = yes; then INTLBISON=: @@ -8811,17 +10090,17 @@ echo "${ECHO_T}$ac_prog_version" >&6 - echo "$as_me:$LINENO: checking whether NLS is requested" >&5 -echo $ECHO_N "checking whether NLS is requested... $ECHO_C" >&6 - # Check whether --enable-nls or --disable-nls was given. + { $as_echo "$as_me:$LINENO: checking whether NLS is requested" >&5 +$as_echo_n "checking whether NLS is requested... " >&6; } + # Check whether --enable-nls was given. if test "${enable_nls+set}" = set; then - enableval="$enable_nls" - USE_NLS=$enableval + enableval=$enable_nls; USE_NLS=$enableval else USE_NLS=yes -fi; - echo "$as_me:$LINENO: result: $USE_NLS" >&5 -echo "${ECHO_T}$USE_NLS" >&6 +fi + + { $as_echo "$as_me:$LINENO: result: $USE_NLS" >&5 +$as_echo "$USE_NLS" >&6; } @@ -8836,18 +10115,18 @@ echo "${ECHO_T}$USE_NLS" >&6 if test "$USE_NLS" = "yes"; then gt_use_preinstalled_gnugettext=no - echo "$as_me:$LINENO: checking whether included gettext is requested" >&5 -echo $ECHO_N "checking whether included gettext is requested... $ECHO_C" >&6 + { $as_echo "$as_me:$LINENO: checking whether included gettext is requested" >&5 +$as_echo_n "checking whether included gettext is requested... " >&6; } -# Check whether --with-included-gettext or --without-included-gettext was given. +# Check whether --with-included-gettext was given. if test "${with_included_gettext+set}" = set; then - withval="$with_included_gettext" - nls_cv_force_use_gnu_gettext=$withval + withval=$with_included_gettext; nls_cv_force_use_gnu_gettext=$withval else nls_cv_force_use_gnu_gettext=no -fi; - echo "$as_me:$LINENO: result: $nls_cv_force_use_gnu_gettext" >&5 -echo "${ECHO_T}$nls_cv_force_use_gnu_gettext" >&6 +fi + + { $as_echo "$as_me:$LINENO: result: $nls_cv_force_use_gnu_gettext" >&5 +$as_echo "$nls_cv_force_use_gnu_gettext" >&6; } nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext" if test "$nls_cv_force_use_gnu_gettext" != "yes"; then @@ -8857,10 +10136,10 @@ echo "${ECHO_T}$nls_cv_force_use_gnu_gettext" >&6 - echo "$as_me:$LINENO: checking for GNU gettext in libc" >&5 -echo $ECHO_N "checking for GNU gettext in libc... $ECHO_C" >&6 + { $as_echo "$as_me:$LINENO: checking for GNU gettext in libc" >&5 +$as_echo_n "checking for GNU gettext in libc... " >&6; } if test "${gt_cv_func_gnugettext2_libc+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -8881,39 +10160,40 @@ return (int) gettext ("") + (int) ngettext ("", "", 0) + _nl_msg_cat_cntr + *_nl } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then gt_cv_func_gnugettext2_libc=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -gt_cv_func_gnugettext2_libc=no + gt_cv_func_gnugettext2_libc=no fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $gt_cv_func_gnugettext2_libc" >&5 -echo "${ECHO_T}$gt_cv_func_gnugettext2_libc" >&6 +{ $as_echo "$as_me:$LINENO: result: $gt_cv_func_gnugettext2_libc" >&5 +$as_echo "$gt_cv_func_gnugettext2_libc" >&6; } if test "$gt_cv_func_gnugettext2_libc" != "yes"; then @@ -8933,10 +10213,9 @@ echo "${ECHO_T}$gt_cv_func_gnugettext2_libc" >&6 prefix="$acl_save_prefix" -# Check whether --with-libintl-prefix or --without-libintl-prefix was given. +# Check whether --with-libintl-prefix was given. if test "${with_libintl_prefix+set}" = set; then - withval="$with_libintl_prefix" - + withval=$with_libintl_prefix; if test "X$withval" = "Xno"; then use_additional=no else @@ -8959,7 +10238,8 @@ if test "${with_libintl_prefix+set}" = set; then fi fi -fi; +fi + LIBINTL= LTLIBINTL= INCINTL= @@ -9295,10 +10575,10 @@ fi; done fi - echo "$as_me:$LINENO: checking for GNU gettext in libintl" >&5 -echo $ECHO_N "checking for GNU gettext in libintl... $ECHO_C" >&6 + { $as_echo "$as_me:$LINENO: checking for GNU gettext in libintl" >&5 +$as_echo_n "checking for GNU gettext in libintl... " >&6; } if test "${gt_cv_func_gnugettext2_libintl+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else gt_save_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $INCINTL" @@ -9327,35 +10607,36 @@ return (int) gettext ("") + (int) ngettext ("", "", 0) + _nl_msg_cat_cntr + *_nl } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then gt_cv_func_gnugettext2_libintl=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -gt_cv_func_gnugettext2_libintl=no + gt_cv_func_gnugettext2_libintl=no fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext if test "$gt_cv_func_gnugettext2_libintl" != yes && test -n "$LIBICONV"; then LIBS="$LIBS $LIBICONV" @@ -9382,44 +10663,46 @@ return (int) gettext ("") + (int) ngettext ("", "", 0) + _nl_msg_cat_cntr + *_nl } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then LIBINTL="$LIBINTL $LIBICONV" LTLIBINTL="$LTLIBINTL $LTLIBICONV" gt_cv_func_gnugettext2_libintl=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 + fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi CPPFLAGS="$gt_save_CPPFLAGS" LIBS="$gt_save_LIBS" fi -echo "$as_me:$LINENO: result: $gt_cv_func_gnugettext2_libintl" >&5 -echo "${ECHO_T}$gt_cv_func_gnugettext2_libintl" >&6 +{ $as_echo "$as_me:$LINENO: result: $gt_cv_func_gnugettext2_libintl" >&5 +$as_echo "$gt_cv_func_gnugettext2_libintl" >&6; } fi if test "$gt_cv_func_gnugettext2_libc" = "yes" \ @@ -9465,13 +10748,13 @@ _ACEOF fi fi - echo "$as_me:$LINENO: checking whether to use NLS" >&5 -echo $ECHO_N "checking whether to use NLS... $ECHO_C" >&6 - echo "$as_me:$LINENO: result: $USE_NLS" >&5 -echo "${ECHO_T}$USE_NLS" >&6 + { $as_echo "$as_me:$LINENO: checking whether to use NLS" >&5 +$as_echo_n "checking whether to use NLS... " >&6; } + { $as_echo "$as_me:$LINENO: result: $USE_NLS" >&5 +$as_echo "$USE_NLS" >&6; } if test "$USE_NLS" = "yes"; then - echo "$as_me:$LINENO: checking where the gettext function comes from" >&5 -echo $ECHO_N "checking where the gettext function comes from... $ECHO_C" >&6 + { $as_echo "$as_me:$LINENO: checking where the gettext function comes from" >&5 +$as_echo_n "checking where the gettext function comes from... " >&6; } if test "$gt_use_preinstalled_gnugettext" = "yes"; then if test "$gt_cv_func_gnugettext2_libintl" = "yes"; then gt_source="external libintl" @@ -9481,18 +10764,18 @@ echo $ECHO_N "checking where the gettext function comes from... $ECHO_C" >&6 else gt_source="included intl directory" fi - echo "$as_me:$LINENO: result: $gt_source" >&5 -echo "${ECHO_T}$gt_source" >&6 + { $as_echo "$as_me:$LINENO: result: $gt_source" >&5 +$as_echo "$gt_source" >&6; } fi if test "$USE_NLS" = "yes"; then if test "$gt_use_preinstalled_gnugettext" = "yes"; then if test "$gt_cv_func_gnugettext2_libintl" = "yes"; then - echo "$as_me:$LINENO: checking how to link with libintl" >&5 -echo $ECHO_N "checking how to link with libintl... $ECHO_C" >&6 - echo "$as_me:$LINENO: result: $LIBINTL" >&5 -echo "${ECHO_T}$LIBINTL" >&6 + { $as_echo "$as_me:$LINENO: checking how to link with libintl" >&5 +$as_echo_n "checking how to link with libintl... " >&6; } + { $as_echo "$as_me:$LINENO: result: $LIBINTL" >&5 +$as_echo "$LIBINTL" >&6; } for element in $INCINTL; do haveit= @@ -9578,11 +10861,11 @@ _ACEOF ac_header_dirent=no for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do - as_ac_Header=`echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_hdr that defines DIR" >&5 -echo $ECHO_N "checking for $ac_hdr that defines DIR... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + as_ac_Header=`$as_echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for $ac_hdr that defines DIR" >&5 +$as_echo_n "checking for $ac_hdr that defines DIR... " >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -9603,41 +10886,42 @@ return 0; } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then eval "$as_ac_Header=yes" else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -eval "$as_ac_Header=no" + eval "$as_ac_Header=no" fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 -if test `eval echo '${'$as_ac_Header'}'` = yes; then +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +as_val=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_hdr" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_hdr" | $as_tr_cpp` 1 _ACEOF ac_header_dirent=$ac_hdr; break @@ -9646,13 +10930,12 @@ fi done # Two versions of opendir et al. are in -ldir and -lx on SCO Xenix. if test $ac_header_dirent = dirent.h; then - echo "$as_me:$LINENO: checking for library containing opendir" >&5 -echo $ECHO_N "checking for library containing opendir... $ECHO_C" >&6 + { $as_echo "$as_me:$LINENO: checking for library containing opendir" >&5 +$as_echo_n "checking for library containing opendir... " >&6; } if test "${ac_cv_search_opendir+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS -ac_cv_search_opendir=no cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -9660,126 +10943,87 @@ cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -/* Override any gcc2 internal prototype to avoid an error. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ char opendir (); int main () { -opendir (); +return opendir (); ; return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +for ac_lib in '' dir; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_search_opendir="none required" + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then + ac_cv_search_opendir=$ac_res else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -if test "$ac_cv_search_opendir" = no; then - for ac_lib in dir; do - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char opendir (); -int -main () -{ -opendir (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_search_opendir="-l$ac_lib" -break -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 +fi +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext + if test "${ac_cv_search_opendir+set}" = set; then + break fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - done +done +if test "${ac_cv_search_opendir+set}" = set; then + : +else + ac_cv_search_opendir=no fi +rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -echo "$as_me:$LINENO: result: $ac_cv_search_opendir" >&5 -echo "${ECHO_T}$ac_cv_search_opendir" >&6 -if test "$ac_cv_search_opendir" != no; then - test "$ac_cv_search_opendir" = "none required" || LIBS="$ac_cv_search_opendir $LIBS" +{ $as_echo "$as_me:$LINENO: result: $ac_cv_search_opendir" >&5 +$as_echo "$ac_cv_search_opendir" >&6; } +ac_res=$ac_cv_search_opendir +if test "$ac_res" != no; then + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi else - echo "$as_me:$LINENO: checking for library containing opendir" >&5 -echo $ECHO_N "checking for library containing opendir... $ECHO_C" >&6 + { $as_echo "$as_me:$LINENO: checking for library containing opendir" >&5 +$as_echo_n "checking for library containing opendir... " >&6; } if test "${ac_cv_search_opendir+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS -ac_cv_search_opendir=no cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -9787,124 +11031,86 @@ cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -/* Override any gcc2 internal prototype to avoid an error. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ char opendir (); int main () { -opendir (); +return opendir (); ; return 0; } _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +for ac_lib in '' x; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_search_opendir="none required" + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then + ac_cv_search_opendir=$ac_res else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -if test "$ac_cv_search_opendir" = no; then - for ac_lib in x; do - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char opendir (); -int -main () -{ -opendir (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_search_opendir="-l$ac_lib" -break -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 +fi +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext + if test "${ac_cv_search_opendir+set}" = set; then + break fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - done +done +if test "${ac_cv_search_opendir+set}" = set; then + : +else + ac_cv_search_opendir=no fi +rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -echo "$as_me:$LINENO: result: $ac_cv_search_opendir" >&5 -echo "${ECHO_T}$ac_cv_search_opendir" >&6 -if test "$ac_cv_search_opendir" != no; then - test "$ac_cv_search_opendir" = "none required" || LIBS="$ac_cv_search_opendir $LIBS" +{ $as_echo "$as_me:$LINENO: result: $ac_cv_search_opendir" >&5 +$as_echo "$ac_cv_search_opendir" >&6; } +ac_res=$ac_cv_search_opendir +if test "$ac_res" != no; then + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi fi -echo "$as_me:$LINENO: checking whether time.h and sys/time.h may both be included" >&5 -echo $ECHO_N "checking whether time.h and sys/time.h may both be included... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking whether time.h and sys/time.h may both be included" >&5 +$as_echo_n "checking whether time.h and sys/time.h may both be included... " >&6; } if test "${ac_cv_header_time+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -9926,38 +11132,35 @@ return 0; } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_cv_header_time=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_header_time=no + ac_cv_header_time=no fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_header_time" >&5 -echo "${ECHO_T}$ac_cv_header_time" >&6 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_time" >&5 +$as_echo "$ac_cv_header_time" >&6; } if test $ac_cv_header_time = yes; then cat >>confdefs.h <<\_ACEOF @@ -9971,19 +11174,21 @@ fi for ac_header in inttypes.h do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 +fi +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } else # Is the header compilable? -echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 +$as_echo_n "checking $ac_header usability... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -9994,41 +11199,38 @@ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_header_compiler=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_header_compiler=no + ac_header_compiler=no fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6 + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +$as_echo "$ac_header_compiler" >&6; } # Is the header present? -echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 +$as_echo_n "checking $ac_header presence... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -10037,81 +11239,83 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then ac_header_preproc=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi + rm -f conftest.err conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6 +{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +$as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 -echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 -echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} - ( - cat <<\_ASBOX + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +$as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +$as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( cat <<\_ASBOX ## ------------------------------- ## ## Report this to bug-bash@gnu.org ## ## ------------------------------- ## _ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 + ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac -echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then +as_val=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi @@ -10143,19 +11347,21 @@ for ac_header in 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 pwd.h grp.h strings.h regex.h do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 +fi +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } else # Is the header compilable? -echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 +$as_echo_n "checking $ac_header usability... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -10166,41 +11372,38 @@ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_header_compiler=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_header_compiler=no + ac_header_compiler=no fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6 + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +$as_echo "$ac_header_compiler" >&6; } # Is the header present? -echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 +$as_echo_n "checking $ac_header presence... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -10209,81 +11412,83 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then ac_header_preproc=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi + rm -f conftest.err conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6 +{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +$as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 -echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 -echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} - ( - cat <<\_ASBOX + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +$as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +$as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( cat <<\_ASBOX ## ------------------------------- ## ## Report this to bug-bash@gnu.org ## ## ------------------------------- ## _ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 + ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac -echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then +as_val=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi @@ -10306,19 +11511,21 @@ for ac_header in 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 do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 +fi +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } else # Is the header compilable? -echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 +$as_echo_n "checking $ac_header usability... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -10329,41 +11536,38 @@ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_header_compiler=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_header_compiler=no + ac_header_compiler=no fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6 + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +$as_echo "$ac_header_compiler" >&6; } # Is the header present? -echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 +$as_echo_n "checking $ac_header presence... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -10372,81 +11576,83 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then ac_header_preproc=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi + rm -f conftest.err conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6 +{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +$as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 -echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 -echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} - ( - cat <<\_ASBOX + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +$as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +$as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( cat <<\_ASBOX ## ------------------------------- ## ## Report this to bug-bash@gnu.org ## ## ------------------------------- ## _ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 + ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac -echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then +as_val=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi @@ -10457,19 +11663,21 @@ done for ac_header in netinet/in.h arpa/inet.h do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 +fi +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } else # Is the header compilable? -echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 +$as_echo_n "checking $ac_header usability... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -10480,41 +11688,38 @@ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_header_compiler=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_header_compiler=no + ac_header_compiler=no fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6 + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +$as_echo "$ac_header_compiler" >&6; } # Is the header present? -echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 +$as_echo_n "checking $ac_header presence... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -10523,81 +11728,83 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then ac_header_preproc=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi + rm -f conftest.err conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6 +{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +$as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 -echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 -echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} - ( - cat <<\_ASBOX + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +$as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +$as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( cat <<\_ASBOX ## ------------------------------- ## ## Report this to bug-bash@gnu.org ## ## ------------------------------- ## _ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 + ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac -echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then +as_val=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi @@ -10605,10 +11812,10 @@ fi done -echo "$as_me:$LINENO: checking for sys/ptem.h" >&5 -echo $ECHO_N "checking for sys/ptem.h... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for sys/ptem.h" >&5 +$as_echo_n "checking for sys/ptem.h... " >&6; } if test "${ac_cv_header_sys_ptem_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -10625,47 +11832,44 @@ cat >>conftest.$ac_ext <<_ACEOF #include _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_cv_header_sys_ptem_h=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_header_sys_ptem_h=no + ac_cv_header_sys_ptem_h=no fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_header_sys_ptem_h" >&5 -echo "${ECHO_T}$ac_cv_header_sys_ptem_h" >&6 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_sys_ptem_h" >&5 +$as_echo "$ac_cv_header_sys_ptem_h" >&6; } # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works # for constant arguments. Useless! -echo "$as_me:$LINENO: checking for working alloca.h" >&5 -echo $ECHO_N "checking for working alloca.h... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for working alloca.h" >&5 +$as_echo_n "checking for working alloca.h... " >&6; } if test "${ac_cv_working_alloca_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -10678,44 +11882,46 @@ int main () { char *p = (char *) alloca (2 * sizeof (int)); + if (p) return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then ac_cv_working_alloca_h=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_working_alloca_h=no + ac_cv_working_alloca_h=no fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_working_alloca_h" >&5 -echo "${ECHO_T}$ac_cv_working_alloca_h" >&6 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_working_alloca_h" >&5 +$as_echo "$ac_cv_working_alloca_h" >&6; } if test $ac_cv_working_alloca_h = yes; then cat >>confdefs.h <<\_ACEOF @@ -10724,10 +11930,10 @@ _ACEOF fi -echo "$as_me:$LINENO: checking for alloca" >&5 -echo $ECHO_N "checking for alloca... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for alloca" >&5 +$as_echo_n "checking for alloca... " >&6; } if test "${ac_cv_func_alloca_works+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -10742,7 +11948,7 @@ cat >>conftest.$ac_ext <<_ACEOF # include # define alloca _alloca # else -# if HAVE_ALLOCA_H +# ifdef HAVE_ALLOCA_H # include # else # ifdef _AIX @@ -10760,44 +11966,46 @@ int main () { char *p = (char *) alloca (1); + if (p) return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then ac_cv_func_alloca_works=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_func_alloca_works=no + ac_cv_func_alloca_works=no fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_func_alloca_works" >&5 -echo "${ECHO_T}$ac_cv_func_alloca_works" >&6 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_alloca_works" >&5 +$as_echo "$ac_cv_func_alloca_works" >&6; } if test $ac_cv_func_alloca_works = yes; then @@ -10811,17 +12019,17 @@ else # contain a buggy version. If you still want to use their alloca, # use ar to extract alloca.o from them instead of compiling alloca.c. -ALLOCA=alloca.$ac_objext +ALLOCA=\${LIBOBJDIR}alloca.$ac_objext cat >>confdefs.h <<\_ACEOF #define C_ALLOCA 1 _ACEOF -echo "$as_me:$LINENO: checking whether \`alloca.c' needs Cray hooks" >&5 -echo $ECHO_N "checking whether \`alloca.c' needs Cray hooks... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking whether \`alloca.c' needs Cray hooks" >&5 +$as_echo_n "checking whether \`alloca.c' needs Cray hooks... " >&6; } if test "${ac_cv_os_cray+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -10829,7 +12037,7 @@ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#if defined(CRAY) && ! defined(CRAY2) +#if defined CRAY && ! defined CRAY2 webecray #else wenotbecray @@ -10845,15 +12053,15 @@ fi rm -f conftest* fi -echo "$as_me:$LINENO: result: $ac_cv_os_cray" >&5 -echo "${ECHO_T}$ac_cv_os_cray" >&6 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_os_cray" >&5 +$as_echo "$ac_cv_os_cray" >&6; } if test $ac_cv_os_cray = yes; then for ac_func in _getb67 GETB67 getb67; do - as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 -if eval "test \"\${$as_ac_var+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +$as_echo_n "checking for $ac_func... " >&6; } +if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -10878,69 +12086,68 @@ cat >>conftest.$ac_ext <<_ACEOF #undef $ac_func -/* Override any gcc2 internal prototype to avoid an error. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" -{ #endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ char $ac_func (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ -#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +#if defined __stub_$ac_func || defined __stub___$ac_func choke me -#else -char (*f) () = $ac_func; -#endif -#ifdef __cplusplus -} #endif int main () { -return f != $ac_func; +return $ac_func (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then eval "$as_ac_var=yes" else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -eval "$as_ac_var=no" + eval "$as_ac_var=no" fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 -if test `eval echo '${'$as_ac_var'}'` = yes; then +ac_res=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +as_val=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF #define CRAY_STACKSEG_END $ac_func @@ -10952,10 +12159,10 @@ fi done fi -echo "$as_me:$LINENO: checking stack direction for C alloca" >&5 -echo $ECHO_N "checking stack direction for C alloca... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking stack direction for C alloca" >&5 +$as_echo_n "checking stack direction for C alloca... " >&6; } if test "${ac_cv_c_stack_direction+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then ac_cv_c_stack_direction=0 @@ -10966,6 +12173,7 @@ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ +$ac_includes_default int find_stack_direction () { @@ -10983,34 +12191,48 @@ find_stack_direction () int main () { - exit (find_stack_direction () < 0); + return find_stack_direction () < 0; } _ACEOF rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_c_stack_direction=1 else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_c_stack_direction=-1 fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +rm -rf conftest.dSYM +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi + + fi -echo "$as_me:$LINENO: result: $ac_cv_c_stack_direction" >&5 -echo "${ECHO_T}$ac_cv_c_stack_direction" >&6 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_stack_direction" >&5 +$as_echo "$ac_cv_c_stack_direction" >&6; } cat >>confdefs.h <<_ACEOF #define STACK_DIRECTION $ac_cv_c_stack_direction @@ -11019,10 +12241,10 @@ _ACEOF fi -echo "$as_me:$LINENO: checking whether getpgrp requires zero arguments" >&5 -echo $ECHO_N "checking whether getpgrp requires zero arguments... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking whether getpgrp requires zero arguments" >&5 +$as_echo_n "checking whether getpgrp requires zero arguments... " >&6; } if test "${ac_cv_func_getpgrp_void+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else # Use it with a single arg. cat >conftest.$ac_ext <<_ACEOF @@ -11041,39 +12263,36 @@ getpgrp (0); } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_cv_func_getpgrp_void=no else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_func_getpgrp_void=yes + ac_cv_func_getpgrp_void=yes fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_func_getpgrp_void" >&5 -echo "${ECHO_T}$ac_cv_func_getpgrp_void" >&6 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_getpgrp_void" >&5 +$as_echo "$ac_cv_func_getpgrp_void" >&6; } if test $ac_cv_func_getpgrp_void = yes; then cat >>confdefs.h <<\_ACEOF @@ -11082,176 +12301,21 @@ _ACEOF fi -echo "$as_me:$LINENO: checking whether setvbuf arguments are reversed" >&5 -echo $ECHO_N "checking whether setvbuf arguments are reversed... $ECHO_C" >&6 if test "${ac_cv_func_setvbuf_reversed+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else ac_cv_func_setvbuf_reversed=no - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -# if PROTOTYPES - int (setvbuf) (FILE *, int, char *, size_t); -# endif -int -main () -{ -char buf; return setvbuf (stdout, _IOLBF, &buf, 1); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -# if PROTOTYPES - int (setvbuf) (FILE *, int, char *, size_t); -# endif -int -main () -{ -char buf; return setvbuf (stdout, &buf, _IOLBF, 1); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - # It compiles and links either way, so it must not be declared - # with a prototype and most likely this is a K&R C compiler. - # Try running it. - if test "$cross_compiling" = yes; then - : # Assume setvbuf is not reversed when cross-compiling. -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -int -main () -{ -/* This call has the arguments reversed. - A reversed system may check and see that the address of buf - is not _IOLBF, _IONBF, or _IOFBF, and return nonzero. */ - char buf; - if (setvbuf (stdout, _IOLBF, &buf, 1) != 0) - exit (1); - putchar ('\r'); - exit (0); /* Non-reversed systems SEGV here. */ - ; - return 0; -} -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_setvbuf_reversed=yes -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -rm -f core *.core -fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi - ac_cv_func_setvbuf_reversed=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_setvbuf_reversed" >&5 -echo "${ECHO_T}$ac_cv_func_setvbuf_reversed" >&6 -if test $ac_cv_func_setvbuf_reversed = yes; then - -cat >>confdefs.h <<\_ACEOF -#define SETVBUF_REVERSED 1 -_ACEOF -fi for ac_func in vprintf do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 -if eval "test \"\${$as_ac_var+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +$as_echo_n "checking for $ac_func... " >&6; } +if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -11276,77 +12340,76 @@ cat >>conftest.$ac_ext <<_ACEOF #undef $ac_func -/* Override any gcc2 internal prototype to avoid an error. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" -{ #endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ char $ac_func (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ -#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +#if defined __stub_$ac_func || defined __stub___$ac_func choke me -#else -char (*f) () = $ac_func; -#endif -#ifdef __cplusplus -} #endif int main () { -return f != $ac_func; +return $ac_func (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then eval "$as_ac_var=yes" else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -eval "$as_ac_var=no" + eval "$as_ac_var=no" fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 -if test `eval echo '${'$as_ac_var'}'` = yes; then +ac_res=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +as_val=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF -echo "$as_me:$LINENO: checking for _doprnt" >&5 -echo $ECHO_N "checking for _doprnt... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for _doprnt" >&5 +$as_echo_n "checking for _doprnt... " >&6; } if test "${ac_cv_func__doprnt+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -11371,69 +12434,64 @@ cat >>conftest.$ac_ext <<_ACEOF #undef _doprnt -/* Override any gcc2 internal prototype to avoid an error. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" -{ #endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ char _doprnt (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ -#if defined (__stub__doprnt) || defined (__stub____doprnt) +#if defined __stub__doprnt || defined __stub____doprnt choke me -#else -char (*f) () = _doprnt; -#endif -#ifdef __cplusplus -} #endif int main () { -return f != _doprnt; +return _doprnt (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then ac_cv_func__doprnt=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_func__doprnt=no + ac_cv_func__doprnt=no fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_func__doprnt" >&5 -echo "${ECHO_T}$ac_cv_func__doprnt" >&6 -if test $ac_cv_func__doprnt = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_func__doprnt" >&5 +$as_echo "$ac_cv_func__doprnt" >&6; } +if test "x$ac_cv_func__doprnt" = x""yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_DOPRNT 1 @@ -11445,10 +12503,10 @@ fi done -echo "$as_me:$LINENO: checking for working strcoll" >&5 -echo $ECHO_N "checking for working strcoll... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for working strcoll" >&5 +$as_echo_n "checking for working strcoll... " >&6; } if test "${ac_cv_func_strcoll_works+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then ac_cv_func_strcoll_works=no @@ -11463,7 +12521,7 @@ $ac_includes_default int main () { -exit (strcoll ("abc", "def") >= 0 || +return (strcoll ("abc", "def") >= 0 || strcoll ("ABC", "DEF") >= 0 || strcoll ("123", "456") >= 0) ; @@ -11471,30 +12529,44 @@ exit (strcoll ("abc", "def") >= 0 || } _ACEOF rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_strcoll_works=yes else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_func_strcoll_works=no fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +rm -rf conftest.dSYM +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi + + fi -echo "$as_me:$LINENO: result: $ac_cv_func_strcoll_works" >&5 -echo "${ECHO_T}$ac_cv_func_strcoll_works" >&6 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_strcoll_works" >&5 +$as_echo "$ac_cv_func_strcoll_works" >&6; } if test $ac_cv_func_strcoll_works = yes; then cat >>confdefs.h <<\_ACEOF @@ -11516,8 +12588,8 @@ if test "$ac_cv_func_alloca_works" = "no" && test "$opt_bash_malloc" = "no"; the fi if test "$ac_cv_func_vprintf" = no; then - echo "$as_me:$LINENO: checking for declaration of vprintf in stdio.h" >&5 -echo $ECHO_N "checking for declaration of vprintf in stdio.h... $ECHO_C" >&6 + { $as_echo "$as_me:$LINENO: checking for declaration of vprintf in stdio.h" >&5 +$as_echo_n "checking for declaration of vprintf in stdio.h... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -11533,8 +12605,8 @@ if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | fi rm -f conftest* - echo "$as_me:$LINENO: result: $ac_cv_func_vprintf" >&5 -echo "${ECHO_T}$ac_cv_func_vprintf" >&6 + { $as_echo "$as_me:$LINENO: result: $ac_cv_func_vprintf" >&5 +$as_echo "$ac_cv_func_vprintf" >&6; } if test $ac_cv_func_vprintf = yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_VPRINTF 1 @@ -11544,20 +12616,18 @@ _ACEOF fi if test "$ac_cv_func_vprintf" = no && test "$ac_cv_func__doprnt" = "yes"; then - case $LIBOBJS in - "vprint.$ac_objext" | \ - *" vprint.$ac_objext" | \ - "vprint.$ac_objext "* | \ + case " $LIBOBJS " in *" vprint.$ac_objext "* ) ;; - *) LIBOBJS="$LIBOBJS vprint.$ac_objext" ;; + *) LIBOBJS="$LIBOBJS vprint.$ac_objext" + ;; esac fi -echo "$as_me:$LINENO: checking return type of signal handlers" >&5 -echo $ECHO_N "checking return type of signal handlers... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking return type of signal handlers" >&5 +$as_echo_n "checking return type of signal handlers... " >&6; } if test "${ac_cv_type_signal+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -11567,56 +12637,45 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include -#ifdef signal -# undef signal -#endif -#ifdef __cplusplus -extern "C" void (*signal (int, void (*)(int)))(int); -#else -void (*signal ()) (); -#endif int main () { -int i; +return *(signal (0, 0)) (0) == 1; ; return 0; } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_signal=void + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_type_signal=int else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_type_signal=int + ac_cv_type_signal=void fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_type_signal" >&5 -echo "${ECHO_T}$ac_cv_type_signal" >&6 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_signal" >&5 +$as_echo "$ac_cv_type_signal" >&6; } cat >>confdefs.h <<_ACEOF #define RETSIGTYPE $ac_cv_type_signal @@ -11624,10 +12683,10 @@ _ACEOF -echo "$as_me:$LINENO: checking for __setostype" >&5 -echo $ECHO_N "checking for __setostype... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for __setostype" >&5 +$as_echo_n "checking for __setostype... " >&6; } if test "${ac_cv_func___setostype+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -11652,79 +12711,74 @@ cat >>conftest.$ac_ext <<_ACEOF #undef __setostype -/* Override any gcc2 internal prototype to avoid an error. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" -{ #endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ char __setostype (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ -#if defined (__stub___setostype) || defined (__stub_____setostype) +#if defined __stub___setostype || defined __stub_____setostype choke me -#else -char (*f) () = __setostype; -#endif -#ifdef __cplusplus -} #endif int main () { -return f != __setostype; +return __setostype (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then ac_cv_func___setostype=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_func___setostype=no + ac_cv_func___setostype=no fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_func___setostype" >&5 -echo "${ECHO_T}$ac_cv_func___setostype" >&6 -if test $ac_cv_func___setostype = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_func___setostype" >&5 +$as_echo "$ac_cv_func___setostype" >&6; } +if test "x$ac_cv_func___setostype" = x""yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_SETOSTYPE 1 _ACEOF fi -echo "$as_me:$LINENO: checking for wait3" >&5 -echo $ECHO_N "checking for wait3... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for wait3" >&5 +$as_echo_n "checking for wait3... " >&6; } if test "${ac_cv_func_wait3+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -11749,79 +12803,74 @@ cat >>conftest.$ac_ext <<_ACEOF #undef wait3 -/* Override any gcc2 internal prototype to avoid an error. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" -{ #endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ char wait3 (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ -#if defined (__stub_wait3) || defined (__stub___wait3) +#if defined __stub_wait3 || defined __stub___wait3 choke me -#else -char (*f) () = wait3; -#endif -#ifdef __cplusplus -} #endif int main () { -return f != wait3; +return wait3 (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then ac_cv_func_wait3=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_func_wait3=no + ac_cv_func_wait3=no fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_func_wait3" >&5 -echo "${ECHO_T}$ac_cv_func_wait3" >&6 -if test $ac_cv_func_wait3 = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_wait3" >&5 +$as_echo "$ac_cv_func_wait3" >&6; } +if test "x$ac_cv_func_wait3" = x""yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_WAIT3 1 _ACEOF fi -echo "$as_me:$LINENO: checking for isinf" >&5 -echo $ECHO_N "checking for isinf... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for isinf" >&5 +$as_echo_n "checking for isinf... " >&6; } if test "${ac_cv_func_isinf+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -11846,79 +12895,74 @@ cat >>conftest.$ac_ext <<_ACEOF #undef isinf -/* Override any gcc2 internal prototype to avoid an error. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" -{ #endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ char isinf (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ -#if defined (__stub_isinf) || defined (__stub___isinf) +#if defined __stub_isinf || defined __stub___isinf choke me -#else -char (*f) () = isinf; -#endif -#ifdef __cplusplus -} #endif int main () { -return f != isinf; +return isinf (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then ac_cv_func_isinf=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_func_isinf=no + ac_cv_func_isinf=no fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_func_isinf" >&5 -echo "${ECHO_T}$ac_cv_func_isinf" >&6 -if test $ac_cv_func_isinf = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_isinf" >&5 +$as_echo "$ac_cv_func_isinf" >&6; } +if test "x$ac_cv_func_isinf" = x""yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_ISINF_IN_LIBC 1 _ACEOF fi -echo "$as_me:$LINENO: checking for isnan" >&5 -echo $ECHO_N "checking for isnan... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for isnan" >&5 +$as_echo_n "checking for isnan... " >&6; } if test "${ac_cv_func_isnan+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -11943,69 +12987,64 @@ cat >>conftest.$ac_ext <<_ACEOF #undef isnan -/* Override any gcc2 internal prototype to avoid an error. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" -{ #endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ char isnan (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ -#if defined (__stub_isnan) || defined (__stub___isnan) +#if defined __stub_isnan || defined __stub___isnan choke me -#else -char (*f) () = isnan; -#endif -#ifdef __cplusplus -} #endif int main () { -return f != isnan; +return isnan (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then ac_cv_func_isnan=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_func_isnan=no + ac_cv_func_isnan=no fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_func_isnan" >&5 -echo "${ECHO_T}$ac_cv_func_isnan" >&6 -if test $ac_cv_func_isnan = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_isnan" >&5 +$as_echo "$ac_cv_func_isnan" >&6; } +if test "x$ac_cv_func_isnan" = x""yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_ISNAN_IN_LIBC 1 _ACEOF @@ -12013,10 +13052,10 @@ _ACEOF fi -echo "$as_me:$LINENO: checking for mkfifo" >&5 -echo $ECHO_N "checking for mkfifo... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for mkfifo" >&5 +$as_echo_n "checking for mkfifo... " >&6; } if test "${ac_cv_func_mkfifo+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -12041,69 +13080,64 @@ cat >>conftest.$ac_ext <<_ACEOF #undef mkfifo -/* Override any gcc2 internal prototype to avoid an error. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" -{ #endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ char mkfifo (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ -#if defined (__stub_mkfifo) || defined (__stub___mkfifo) +#if defined __stub_mkfifo || defined __stub___mkfifo choke me -#else -char (*f) () = mkfifo; -#endif -#ifdef __cplusplus -} #endif int main () { -return f != mkfifo; +return mkfifo (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then ac_cv_func_mkfifo=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_func_mkfifo=no + ac_cv_func_mkfifo=no fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_func_mkfifo" >&5 -echo "${ECHO_T}$ac_cv_func_mkfifo" >&6 -if test $ac_cv_func_mkfifo = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_mkfifo" >&5 +$as_echo "$ac_cv_func_mkfifo" >&6; } +if test "x$ac_cv_func_mkfifo" = x""yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_MKFIFO 1 _ACEOF @@ -12136,18 +13170,19 @@ fi + for ac_func in dup2 eaccess fcntl getdtablesize getgroups gethostname \ getpagesize getpeername getrlimit getrusage gettimeofday \ kill killpg lstat readlink sbrk select setdtablesize \ - tcgetpgrp uname ulimit waitpid + setitimer tcgetpgrp uname ulimit waitpid do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 -if eval "test \"\${$as_ac_var+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +$as_echo_n "checking for $ac_func... " >&6; } +if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -12172,71 +13207,70 @@ cat >>conftest.$ac_ext <<_ACEOF #undef $ac_func -/* Override any gcc2 internal prototype to avoid an error. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" -{ #endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ char $ac_func (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ -#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +#if defined __stub_$ac_func || defined __stub___$ac_func choke me -#else -char (*f) () = $ac_func; -#endif -#ifdef __cplusplus -} #endif int main () { -return f != $ac_func; +return $ac_func (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then eval "$as_ac_var=yes" else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -eval "$as_ac_var=no" + eval "$as_ac_var=no" fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 -if test `eval echo '${'$as_ac_var'}'` = yes; then +ac_res=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +as_val=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi @@ -12245,11 +13279,11 @@ done for ac_func in rename do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 -if eval "test \"\${$as_ac_var+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +$as_echo_n "checking for $ac_func... " >&6; } +if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -12274,80 +13308,77 @@ cat >>conftest.$ac_ext <<_ACEOF #undef $ac_func -/* Override any gcc2 internal prototype to avoid an error. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" -{ #endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ char $ac_func (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ -#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +#if defined __stub_$ac_func || defined __stub___$ac_func choke me -#else -char (*f) () = $ac_func; -#endif -#ifdef __cplusplus -} #endif int main () { -return f != $ac_func; +return $ac_func (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then eval "$as_ac_var=yes" else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -eval "$as_ac_var=no" + eval "$as_ac_var=no" fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 -if test `eval echo '${'$as_ac_var'}'` = yes; then +ac_res=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +as_val=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF else - case $LIBOBJS in - "$ac_func.$ac_objext" | \ - *" $ac_func.$ac_objext" | \ - "$ac_func.$ac_objext "* | \ + case " $LIBOBJS " in *" $ac_func.$ac_objext "* ) ;; - *) LIBOBJS="$LIBOBJS $ac_func.$ac_objext" ;; + *) LIBOBJS="$LIBOBJS $ac_func.$ac_objext" + ;; esac fi @@ -12388,11 +13419,11 @@ for ac_func in bcopy bzero confstr fnmatch \ setenv setlinebuf setlocale setvbuf siginterrupt strchr \ sysconf tcgetattr times ttyname tzset unsetenv do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 -if eval "test \"\${$as_ac_var+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +$as_echo_n "checking for $ac_func... " >&6; } +if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -12417,71 +13448,70 @@ cat >>conftest.$ac_ext <<_ACEOF #undef $ac_func -/* Override any gcc2 internal prototype to avoid an error. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" -{ #endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ char $ac_func (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ -#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +#if defined __stub_$ac_func || defined __stub___$ac_func choke me -#else -char (*f) () = $ac_func; -#endif -#ifdef __cplusplus -} #endif int main () { -return f != $ac_func; +return $ac_func (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then eval "$as_ac_var=yes" else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -eval "$as_ac_var=no" + eval "$as_ac_var=no" fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 -if test `eval echo '${'$as_ac_var'}'` = yes; then +ac_res=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +as_val=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi @@ -12494,11 +13524,11 @@ done for ac_func in vsnprintf snprintf vasprintf asprintf do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 -if eval "test \"\${$as_ac_var+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +$as_echo_n "checking for $ac_func... " >&6; } +if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -12523,71 +13553,70 @@ cat >>conftest.$ac_ext <<_ACEOF #undef $ac_func -/* Override any gcc2 internal prototype to avoid an error. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" -{ #endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ char $ac_func (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ -#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +#if defined __stub_$ac_func || defined __stub___$ac_func choke me -#else -char (*f) () = $ac_func; -#endif -#ifdef __cplusplus -} #endif int main () { -return f != $ac_func; +return $ac_func (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then eval "$as_ac_var=yes" else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -eval "$as_ac_var=no" + eval "$as_ac_var=no" fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 -if test `eval echo '${'$as_ac_var'}'` = yes; then +ac_res=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +as_val=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi @@ -12601,11 +13630,11 @@ done for ac_func in isascii isblank isgraph isprint isspace isxdigit do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 -if eval "test \"\${$as_ac_var+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +$as_echo_n "checking for $ac_func... " >&6; } +if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -12630,71 +13659,70 @@ cat >>conftest.$ac_ext <<_ACEOF #undef $ac_func -/* Override any gcc2 internal prototype to avoid an error. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" -{ #endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ char $ac_func (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ -#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +#if defined __stub_$ac_func || defined __stub___$ac_func choke me -#else -char (*f) () = $ac_func; -#endif -#ifdef __cplusplus -} #endif int main () { -return f != $ac_func; +return $ac_func (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then eval "$as_ac_var=yes" else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -eval "$as_ac_var=no" + eval "$as_ac_var=no" fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 -if test `eval echo '${'$as_ac_var'}'` = yes; then +ac_res=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +as_val=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi @@ -12705,11 +13733,11 @@ done for ac_func in getpwent getpwnam getpwuid do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 -if eval "test \"\${$as_ac_var+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +$as_echo_n "checking for $ac_func... " >&6; } +if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -12734,71 +13762,70 @@ cat >>conftest.$ac_ext <<_ACEOF #undef $ac_func -/* Override any gcc2 internal prototype to avoid an error. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" -{ #endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ char $ac_func (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ -#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +#if defined __stub_$ac_func || defined __stub___$ac_func choke me -#else -char (*f) () = $ac_func; -#endif -#ifdef __cplusplus -} #endif int main () { -return f != $ac_func; +return $ac_func (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then eval "$as_ac_var=yes" else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -eval "$as_ac_var=no" + eval "$as_ac_var=no" fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 -if test `eval echo '${'$as_ac_var'}'` = yes; then +ac_res=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +as_val=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi @@ -12814,11 +13841,11 @@ done for ac_func in getcwd memset strcasecmp strerror strftime strnlen strpbrk strstr do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 -if eval "test \"\${$as_ac_var+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +$as_echo_n "checking for $ac_func... " >&6; } +if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -12843,80 +13870,77 @@ cat >>conftest.$ac_ext <<_ACEOF #undef $ac_func -/* Override any gcc2 internal prototype to avoid an error. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" -{ #endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ char $ac_func (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ -#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +#if defined __stub_$ac_func || defined __stub___$ac_func choke me -#else -char (*f) () = $ac_func; -#endif -#ifdef __cplusplus -} #endif int main () { -return f != $ac_func; +return $ac_func (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then eval "$as_ac_var=yes" else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -eval "$as_ac_var=no" + eval "$as_ac_var=no" fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 -if test `eval echo '${'$as_ac_var'}'` = yes; then +ac_res=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +as_val=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF else - case $LIBOBJS in - "$ac_func.$ac_objext" | \ - *" $ac_func.$ac_objext" | \ - "$ac_func.$ac_objext "* | \ + case " $LIBOBJS " in *" $ac_func.$ac_objext "* ) ;; - *) LIBOBJS="$LIBOBJS $ac_func.$ac_objext" ;; + *) LIBOBJS="$LIBOBJS $ac_func.$ac_objext" + ;; esac fi @@ -12932,11 +13956,11 @@ done for ac_func in strtod strtol strtoul strtoll strtoull strtoimax strtoumax do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 -if eval "test \"\${$as_ac_var+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +$as_echo_n "checking for $ac_func... " >&6; } +if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -12961,80 +13985,186 @@ cat >>conftest.$ac_ext <<_ACEOF #undef $ac_func -/* Override any gcc2 internal prototype to avoid an error. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" -{ #endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ char $ac_func (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ -#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +#if defined __stub_$ac_func || defined __stub___$ac_func choke me +#endif + +int +main () +{ +return $ac_func (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then + eval "$as_ac_var=yes" +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + eval "$as_ac_var=no" +fi + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +fi +ac_res=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +as_val=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +else + case " $LIBOBJS " in + *" $ac_func.$ac_objext "* ) ;; + *) LIBOBJS="$LIBOBJS $ac_func.$ac_objext" + ;; +esac + +fi +done + + + +for ac_func in fdprintf +do +as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +$as_echo_n "checking for $ac_func... " >&6; } +if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include #else -char (*f) () = $ac_func; +# include #endif + +#undef $ac_func + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ #ifdef __cplusplus -} +extern "C" +#endif +char $ac_func (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_$ac_func || defined __stub___$ac_func +choke me #endif int main () { -return f != $ac_func; +return $ac_func (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then eval "$as_ac_var=yes" else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -eval "$as_ac_var=no" + eval "$as_ac_var=no" fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 -if test `eval echo '${'$as_ac_var'}'` = yes; then +ac_res=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +as_val=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF else - case $LIBOBJS in - "$ac_func.$ac_objext" | \ - *" $ac_func.$ac_objext" | \ - "$ac_func.$ac_objext "* | \ + case " $LIBOBJS " in *" $ac_func.$ac_objext "* ) ;; - *) LIBOBJS="$LIBOBJS $ac_func.$ac_objext" ;; + *) LIBOBJS="$LIBOBJS $ac_func.$ac_objext" + ;; esac fi @@ -13042,10 +14172,10 @@ done -echo "$as_me:$LINENO: checking whether confstr is declared" >&5 -echo $ECHO_N "checking whether confstr is declared... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking whether confstr is declared" >&5 +$as_echo_n "checking whether confstr is declared... " >&6; } if test "${ac_cv_have_decl_confstr+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -13058,7 +14188,7 @@ int main () { #ifndef confstr - char *p = (char *) confstr; + (void) confstr; #endif ; @@ -13066,39 +14196,36 @@ main () } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_cv_have_decl_confstr=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_have_decl_confstr=no + ac_cv_have_decl_confstr=no fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_have_decl_confstr" >&5 -echo "${ECHO_T}$ac_cv_have_decl_confstr" >&6 -if test $ac_cv_have_decl_confstr = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_confstr" >&5 +$as_echo "$ac_cv_have_decl_confstr" >&6; } +if test "x$ac_cv_have_decl_confstr" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_DECL_CONFSTR 1 @@ -13114,10 +14241,10 @@ _ACEOF fi -echo "$as_me:$LINENO: checking whether printf is declared" >&5 -echo $ECHO_N "checking whether printf is declared... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking whether printf is declared" >&5 +$as_echo_n "checking whether printf is declared... " >&6; } if test "${ac_cv_have_decl_printf+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -13130,7 +14257,7 @@ int main () { #ifndef printf - char *p = (char *) printf; + (void) printf; #endif ; @@ -13138,39 +14265,36 @@ main () } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_cv_have_decl_printf=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_have_decl_printf=no + ac_cv_have_decl_printf=no fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_have_decl_printf" >&5 -echo "${ECHO_T}$ac_cv_have_decl_printf" >&6 -if test $ac_cv_have_decl_printf = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_printf" >&5 +$as_echo "$ac_cv_have_decl_printf" >&6; } +if test "x$ac_cv_have_decl_printf" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_DECL_PRINTF 1 @@ -13186,10 +14310,10 @@ _ACEOF fi -echo "$as_me:$LINENO: checking whether sbrk is declared" >&5 -echo $ECHO_N "checking whether sbrk is declared... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking whether sbrk is declared" >&5 +$as_echo_n "checking whether sbrk is declared... " >&6; } if test "${ac_cv_have_decl_sbrk+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -13202,7 +14326,7 @@ int main () { #ifndef sbrk - char *p = (char *) sbrk; + (void) sbrk; #endif ; @@ -13210,39 +14334,36 @@ main () } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_cv_have_decl_sbrk=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_have_decl_sbrk=no + ac_cv_have_decl_sbrk=no fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_have_decl_sbrk" >&5 -echo "${ECHO_T}$ac_cv_have_decl_sbrk" >&6 -if test $ac_cv_have_decl_sbrk = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_sbrk" >&5 +$as_echo "$ac_cv_have_decl_sbrk" >&6; } +if test "x$ac_cv_have_decl_sbrk" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_DECL_SBRK 1 @@ -13258,10 +14379,10 @@ _ACEOF fi -echo "$as_me:$LINENO: checking whether setregid is declared" >&5 -echo $ECHO_N "checking whether setregid is declared... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking whether setregid is declared" >&5 +$as_echo_n "checking whether setregid is declared... " >&6; } if test "${ac_cv_have_decl_setregid+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -13274,7 +14395,7 @@ int main () { #ifndef setregid - char *p = (char *) setregid; + (void) setregid; #endif ; @@ -13282,39 +14403,36 @@ main () } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_cv_have_decl_setregid=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_have_decl_setregid=no + ac_cv_have_decl_setregid=no fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_have_decl_setregid" >&5 -echo "${ECHO_T}$ac_cv_have_decl_setregid" >&6 -if test $ac_cv_have_decl_setregid = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_setregid" >&5 +$as_echo "$ac_cv_have_decl_setregid" >&6; } +if test "x$ac_cv_have_decl_setregid" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_DECL_SETREGID 1 @@ -13330,10 +14448,10 @@ _ACEOF fi -echo "$as_me:$LINENO: checking whether strcpy is declared" >&5 -echo $ECHO_N "checking whether strcpy is declared... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking whether strcpy is declared" >&5 +$as_echo_n "checking whether strcpy is declared... " >&6; } if test "${ac_cv_have_decl_strcpy+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -13346,7 +14464,7 @@ int main () { #ifndef strcpy - char *p = (char *) strcpy; + (void) strcpy; #endif ; @@ -13354,39 +14472,36 @@ main () } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_cv_have_decl_strcpy=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_have_decl_strcpy=no + ac_cv_have_decl_strcpy=no fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_have_decl_strcpy" >&5 -echo "${ECHO_T}$ac_cv_have_decl_strcpy" >&6 -if test $ac_cv_have_decl_strcpy = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_strcpy" >&5 +$as_echo "$ac_cv_have_decl_strcpy" >&6; } +if test "x$ac_cv_have_decl_strcpy" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_DECL_STRCPY 1 @@ -13402,10 +14517,10 @@ _ACEOF fi -echo "$as_me:$LINENO: checking whether strsignal is declared" >&5 -echo $ECHO_N "checking whether strsignal is declared... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking whether strsignal is declared" >&5 +$as_echo_n "checking whether strsignal is declared... " >&6; } if test "${ac_cv_have_decl_strsignal+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -13418,7 +14533,7 @@ int main () { #ifndef strsignal - char *p = (char *) strsignal; + (void) strsignal; #endif ; @@ -13426,39 +14541,36 @@ main () } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_cv_have_decl_strsignal=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_have_decl_strsignal=no + ac_cv_have_decl_strsignal=no fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_have_decl_strsignal" >&5 -echo "${ECHO_T}$ac_cv_have_decl_strsignal" >&6 -if test $ac_cv_have_decl_strsignal = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_strsignal" >&5 +$as_echo "$ac_cv_have_decl_strsignal" >&6; } +if test "x$ac_cv_have_decl_strsignal" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_DECL_STRSIGNAL 1 @@ -13475,10 +14587,10 @@ fi -echo "$as_me:$LINENO: checking whether strtold is declared" >&5 -echo $ECHO_N "checking whether strtold is declared... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking whether strtold is declared" >&5 +$as_echo_n "checking whether strtold is declared... " >&6; } if test "${ac_cv_have_decl_strtold+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -13491,7 +14603,7 @@ int main () { #ifndef strtold - char *p = (char *) strtold; + (void) strtold; #endif ; @@ -13499,49 +14611,46 @@ main () } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_cv_have_decl_strtold=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_have_decl_strtold=no + ac_cv_have_decl_strtold=no fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_have_decl_strtold" >&5 -echo "${ECHO_T}$ac_cv_have_decl_strtold" >&6 -if test $ac_cv_have_decl_strtold = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_strtold" >&5 +$as_echo "$ac_cv_have_decl_strtold" >&6; } +if test "x$ac_cv_have_decl_strtold" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_DECL_STRTOLD 1 _ACEOF - echo "$as_me:$LINENO: checking for broken strtold" >&5 -echo $ECHO_N "checking for broken strtold... $ECHO_C" >&6 + { $as_echo "$as_me:$LINENO: checking for broken strtold" >&5 +$as_echo_n "checking for broken strtold... " >&6; } if test "${bash_cv_strtold_broken+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -13559,41 +14668,38 @@ int main() { long double r; char *foo, bar; r = strtold(foo, &bar);} } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then bash_cv_strtold_broken=no else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -bash_cv_strtold_broken=yes + bash_cv_strtold_broken=yes fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi - echo "$as_me:$LINENO: result: $bash_cv_strtold_broken" >&5 -echo "${ECHO_T}$bash_cv_strtold_broken" >&6 + { $as_echo "$as_me:$LINENO: result: $bash_cv_strtold_broken" >&5 +$as_echo "$bash_cv_strtold_broken" >&6; } if test "$bash_cv_strtold_broken" = "yes" ; then cat >>confdefs.h <<\_ACEOF #define STRTOLD_BROKEN 1 @@ -13615,10 +14721,10 @@ fi -echo "$as_me:$LINENO: checking for declaration of strtoimax" >&5 -echo $ECHO_N "checking for declaration of strtoimax... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for declaration of strtoimax" >&5 +$as_echo_n "checking for declaration of strtoimax... " >&6; } if test "${bash_cv_decl_strtoimax+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -13643,39 +14749,40 @@ return !strtoimax; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then bash_cv_decl_strtoimax=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -bash_cv_decl_strtoimax=no + bash_cv_decl_strtoimax=no fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $bash_cv_decl_strtoimax" >&5 -echo "${ECHO_T}$bash_cv_decl_strtoimax" >&6 +{ $as_echo "$as_me:$LINENO: result: $bash_cv_decl_strtoimax" >&5 +$as_echo "$bash_cv_decl_strtoimax" >&6; } bash_tr_func=HAVE_DECL_`echo strtoimax | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` if test $bash_cv_decl_strtoimax = yes; then cat >>confdefs.h <<_ACEOF @@ -13692,10 +14799,10 @@ fi -echo "$as_me:$LINENO: checking for declaration of strtol" >&5 -echo $ECHO_N "checking for declaration of strtol... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for declaration of strtol" >&5 +$as_echo_n "checking for declaration of strtol... " >&6; } if test "${bash_cv_decl_strtol+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -13720,39 +14827,40 @@ return !strtol; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then bash_cv_decl_strtol=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -bash_cv_decl_strtol=no + bash_cv_decl_strtol=no fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $bash_cv_decl_strtol" >&5 -echo "${ECHO_T}$bash_cv_decl_strtol" >&6 +{ $as_echo "$as_me:$LINENO: result: $bash_cv_decl_strtol" >&5 +$as_echo "$bash_cv_decl_strtol" >&6; } bash_tr_func=HAVE_DECL_`echo strtol | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` if test $bash_cv_decl_strtol = yes; then cat >>confdefs.h <<_ACEOF @@ -13769,10 +14877,10 @@ fi -echo "$as_me:$LINENO: checking for declaration of strtoll" >&5 -echo $ECHO_N "checking for declaration of strtoll... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for declaration of strtoll" >&5 +$as_echo_n "checking for declaration of strtoll... " >&6; } if test "${bash_cv_decl_strtoll+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -13797,39 +14905,40 @@ return !strtoll; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then bash_cv_decl_strtoll=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -bash_cv_decl_strtoll=no + bash_cv_decl_strtoll=no fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $bash_cv_decl_strtoll" >&5 -echo "${ECHO_T}$bash_cv_decl_strtoll" >&6 +{ $as_echo "$as_me:$LINENO: result: $bash_cv_decl_strtoll" >&5 +$as_echo "$bash_cv_decl_strtoll" >&6; } bash_tr_func=HAVE_DECL_`echo strtoll | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` if test $bash_cv_decl_strtoll = yes; then cat >>confdefs.h <<_ACEOF @@ -13846,10 +14955,10 @@ fi -echo "$as_me:$LINENO: checking for declaration of strtoul" >&5 -echo $ECHO_N "checking for declaration of strtoul... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for declaration of strtoul" >&5 +$as_echo_n "checking for declaration of strtoul... " >&6; } if test "${bash_cv_decl_strtoul+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -13874,39 +14983,40 @@ return !strtoul; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then bash_cv_decl_strtoul=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -bash_cv_decl_strtoul=no + bash_cv_decl_strtoul=no fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $bash_cv_decl_strtoul" >&5 -echo "${ECHO_T}$bash_cv_decl_strtoul" >&6 +{ $as_echo "$as_me:$LINENO: result: $bash_cv_decl_strtoul" >&5 +$as_echo "$bash_cv_decl_strtoul" >&6; } bash_tr_func=HAVE_DECL_`echo strtoul | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` if test $bash_cv_decl_strtoul = yes; then cat >>confdefs.h <<_ACEOF @@ -13923,10 +15033,10 @@ fi -echo "$as_me:$LINENO: checking for declaration of strtoull" >&5 -echo $ECHO_N "checking for declaration of strtoull... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for declaration of strtoull" >&5 +$as_echo_n "checking for declaration of strtoull... " >&6; } if test "${bash_cv_decl_strtoull+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -13951,39 +15061,40 @@ return !strtoull; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then bash_cv_decl_strtoull=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -bash_cv_decl_strtoull=no + bash_cv_decl_strtoull=no fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $bash_cv_decl_strtoull" >&5 -echo "${ECHO_T}$bash_cv_decl_strtoull" >&6 +{ $as_echo "$as_me:$LINENO: result: $bash_cv_decl_strtoull" >&5 +$as_echo "$bash_cv_decl_strtoull" >&6; } bash_tr_func=HAVE_DECL_`echo strtoull | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` if test $bash_cv_decl_strtoull = yes; then cat >>confdefs.h <<_ACEOF @@ -14000,10 +15111,10 @@ fi -echo "$as_me:$LINENO: checking for declaration of strtoumax" >&5 -echo $ECHO_N "checking for declaration of strtoumax... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for declaration of strtoumax" >&5 +$as_echo_n "checking for declaration of strtoumax... " >&6; } if test "${bash_cv_decl_strtoumax+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -14028,39 +15139,40 @@ return !strtoumax; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then bash_cv_decl_strtoumax=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -bash_cv_decl_strtoumax=no + bash_cv_decl_strtoumax=no fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $bash_cv_decl_strtoumax" >&5 -echo "${ECHO_T}$bash_cv_decl_strtoumax" >&6 +{ $as_echo "$as_me:$LINENO: result: $bash_cv_decl_strtoumax" >&5 +$as_echo "$bash_cv_decl_strtoumax" >&6; } bash_tr_func=HAVE_DECL_`echo strtoumax | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` if test $bash_cv_decl_strtoumax = yes; then cat >>confdefs.h <<_ACEOF @@ -14078,21 +15190,24 @@ fi -for ac_header in stdlib.h sys/time.h unistd.h + +for ac_header in $ac_header_list do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 +fi +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } else # Is the header compilable? -echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 +$as_echo_n "checking $ac_header usability... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -14103,41 +15218,38 @@ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_header_compiler=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_header_compiler=no + ac_header_compiler=no fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6 + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +$as_echo "$ac_header_compiler" >&6; } # Is the header present? -echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 +$as_echo_n "checking $ac_header presence... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -14146,81 +15258,83 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then ac_header_preproc=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi + rm -f conftest.err conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6 +{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +$as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 -echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 -echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} - ( - cat <<\_ASBOX + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +$as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +$as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( cat <<\_ASBOX ## ------------------------------- ## ## Report this to bug-bash@gnu.org ## ## ------------------------------- ## _ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 + ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac -echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then +as_val=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi @@ -14228,13 +15342,20 @@ fi done -for ac_func in alarm + + + + + + + +for ac_func in $ac_func_list do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 -if eval "test \"\${$as_ac_var+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +$as_echo_n "checking for $ac_func... " >&6; } +if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -14259,80 +15380,95 @@ cat >>conftest.$ac_ext <<_ACEOF #undef $ac_func -/* Override any gcc2 internal prototype to avoid an error. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" -{ #endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ char $ac_func (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ -#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +#if defined __stub_$ac_func || defined __stub___$ac_func choke me -#else -char (*f) () = $ac_func; -#endif -#ifdef __cplusplus -} #endif int main () { -return f != $ac_func; +return $ac_func (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then eval "$as_ac_var=yes" else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -eval "$as_ac_var=no" + eval "$as_ac_var=no" fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 -if test `eval echo '${'$as_ac_var'}'` = yes; then +ac_res=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +as_val=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done -echo "$as_me:$LINENO: checking for working mktime" >&5 -echo $ECHO_N "checking for working mktime... $ECHO_C" >&6 + + + + + + + + + + + + + + + + +{ $as_echo "$as_me:$LINENO: checking for working mktime" >&5 +$as_echo_n "checking for working mktime... " >&6; } if test "${ac_cv_func_working_mktime+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then ac_cv_func_working_mktime=no @@ -14344,26 +15480,25 @@ cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Test program from Paul Eggert and Tony Leneis. */ -#if TIME_WITH_SYS_TIME +#ifdef TIME_WITH_SYS_TIME # include # include #else -# if HAVE_SYS_TIME_H +# ifdef HAVE_SYS_TIME_H # include # else # include # endif #endif -#if HAVE_STDLIB_H -# include -#endif +#include +#include -#if HAVE_UNISTD_H +#ifdef HAVE_UNISTD_H # include #endif -#if !HAVE_ALARM +#ifndef HAVE_ALARM # define alarm(X) /* empty */ #endif @@ -14380,9 +15515,9 @@ static char *tz_strings[] = { }; #define N_STRINGS (sizeof (tz_strings) / sizeof (tz_strings[0])) -/* Fail if mktime fails to convert a date in the spring-forward gap. +/* Return 0 if mktime fails to convert a date in the spring-forward gap. Based on a problem report from Andreas Jaeger. */ -static void +static int spring_forward_gap () { /* glibc (up to about 1998-10-07) failed this test. */ @@ -14401,29 +15536,27 @@ spring_forward_gap () tm.tm_min = 0; tm.tm_sec = 0; tm.tm_isdst = -1; - if (mktime (&tm) == (time_t)-1) - exit (1); + return mktime (&tm) != (time_t) -1; } -static void +static int mktime_test1 (now) time_t now; { struct tm *lt; - if ((lt = localtime (&now)) && mktime (lt) != now) - exit (1); + return ! (lt = localtime (&now)) || mktime (lt) == now; } -static void +static int mktime_test (now) time_t now; { - mktime_test1 (now); - mktime_test1 ((time_t) (time_t_max - now)); - mktime_test1 ((time_t) (time_t_min + now)); + return (mktime_test1 (now) + && mktime_test1 ((time_t) (time_t_max - now)) + && mktime_test1 ((time_t) (time_t_min + now))); } -static void +static int irix_6_4_bug () { /* Based on code from Ariel Faigon. */ @@ -14436,11 +15569,10 @@ irix_6_4_bug () tm.tm_sec = 0; tm.tm_isdst = -1; mktime (&tm); - if (tm.tm_mon != 2 || tm.tm_mday != 31) - exit (1); + return tm.tm_mon == 2 && tm.tm_mday == 31; } -static void +static int bigtime_test (j) int j; { @@ -14462,80 +15594,130 @@ bigtime_test (j) && lt->tm_wday == tm.tm_wday && ((lt->tm_isdst < 0 ? -1 : 0 < lt->tm_isdst) == (tm.tm_isdst < 0 ? -1 : 0 < tm.tm_isdst)))) - exit (1); + return 0; } + return 1; } -int -main () +static int +year_2050_test () { - time_t t, delta; - int i, j; + /* The correct answer for 2050-02-01 00:00:00 in Pacific time, + ignoring leap seconds. */ + unsigned long int answer = 2527315200UL; - /* This test makes some buggy mktime implementations loop. - Give up after 60 seconds; a mktime slower than that - isn't worth using anyway. */ - alarm (60); + struct tm tm; + time_t t; + tm.tm_year = 2050 - 1900; + tm.tm_mon = 2 - 1; + tm.tm_mday = 1; + tm.tm_hour = tm.tm_min = tm.tm_sec = 0; + tm.tm_isdst = -1; - for (time_t_max = 1; 0 < time_t_max; time_t_max *= 2) - continue; - time_t_max--; - if ((time_t) -1 < 0) - for (time_t_min = -1; (time_t) (time_t_min * 2) < 0; time_t_min *= 2) - continue; - delta = time_t_max / 997; /* a suitable prime number */ - for (i = 0; i < N_STRINGS; i++) + /* Use the portable POSIX.1 specification "TZ=PST8PDT,M4.1.0,M10.5.0" + instead of "TZ=America/Vancouver" in order to detect the bug even + on systems that don't support the Olson extension, or don't have the + full zoneinfo tables installed. */ + putenv ("TZ=PST8PDT,M4.1.0,M10.5.0"); + + t = mktime (&tm); + + /* Check that the result is either a failure, or close enough + to the correct answer that we can assume the discrepancy is + due to leap seconds. */ + return (t == (time_t) -1 + || (0 < t && answer - 120 <= t && t <= answer + 120)); +} + +int +main () +{ + time_t t, delta; + int i, j; + + /* This test makes some buggy mktime implementations loop. + Give up after 60 seconds; a mktime slower than that + isn't worth using anyway. */ + alarm (60); + + for (;;) + { + t = (time_t_max << 1) + 1; + if (t <= time_t_max) + break; + time_t_max = t; + } + time_t_min = - ((time_t) ~ (time_t) 0 == (time_t) -1) - time_t_max; + + delta = time_t_max / 997; /* a suitable prime number */ + for (i = 0; i < N_STRINGS; i++) { if (tz_strings[i]) putenv (tz_strings[i]); for (t = 0; t <= time_t_max - delta; t += delta) - mktime_test (t); - mktime_test ((time_t) 1); - mktime_test ((time_t) (60 * 60)); - mktime_test ((time_t) (60 * 60 * 24)); - - for (j = 1; 0 < j; j *= 2) - bigtime_test (j); - bigtime_test (j - 1); + if (! mktime_test (t)) + return 1; + if (! (mktime_test ((time_t) 1) + && mktime_test ((time_t) (60 * 60)) + && mktime_test ((time_t) (60 * 60 * 24)))) + return 1; + + for (j = 1; ; j <<= 1) + if (! bigtime_test (j)) + return 1; + else if (INT_MAX / 2 < j) + break; + if (! bigtime_test (INT_MAX)) + return 1; } - irix_6_4_bug (); - spring_forward_gap (); - exit (0); + return ! (irix_6_4_bug () && spring_forward_gap () && year_2050_test ()); } _ACEOF rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_working_mktime=yes else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_func_working_mktime=no fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +rm -rf conftest.dSYM +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi + + fi -echo "$as_me:$LINENO: result: $ac_cv_func_working_mktime" >&5 -echo "${ECHO_T}$ac_cv_func_working_mktime" >&6 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_working_mktime" >&5 +$as_echo "$ac_cv_func_working_mktime" >&6; } if test $ac_cv_func_working_mktime = no; then - case $LIBOBJS in - "mktime.$ac_objext" | \ - *" mktime.$ac_objext" | \ - "mktime.$ac_objext "* | \ + case " $LIBOBJS " in *" mktime.$ac_objext "* ) ;; - *) LIBOBJS="$LIBOBJS mktime.$ac_objext" ;; + *) LIBOBJS="$LIBOBJS mktime.$ac_objext" + ;; esac fi @@ -14549,19 +15731,21 @@ fi for ac_header in argz.h errno.h fcntl.h malloc.h stdio_ext.h do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 +fi +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } else # Is the header compilable? -echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 +$as_echo_n "checking $ac_header usability... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -14572,41 +15756,38 @@ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_header_compiler=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_header_compiler=no + ac_header_compiler=no fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6 + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +$as_echo "$ac_header_compiler" >&6; } # Is the header present? -echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 +$as_echo_n "checking $ac_header presence... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -14615,81 +15796,83 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then ac_header_preproc=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi + rm -f conftest.err conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6 +{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +$as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 -echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 -echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} - ( - cat <<\_ASBOX + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +$as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +$as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( cat <<\_ASBOX ## ------------------------------- ## ## Report this to bug-bash@gnu.org ## ## ------------------------------- ## _ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 + ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac -echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then +as_val=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi @@ -14701,19 +15884,21 @@ done for ac_header in stdlib.h unistd.h do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 +fi +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } else # Is the header compilable? -echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 +$as_echo_n "checking $ac_header usability... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -14724,41 +15909,38 @@ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_header_compiler=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_header_compiler=no + ac_header_compiler=no fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6 + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +$as_echo "$ac_header_compiler" >&6; } # Is the header present? -echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 +$as_echo_n "checking $ac_header presence... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -14767,81 +15949,83 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then ac_header_preproc=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi + rm -f conftest.err conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6 +{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +$as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 -echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 -echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} - ( - cat <<\_ASBOX + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +$as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +$as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( cat <<\_ASBOX ## ------------------------------- ## ## Report this to bug-bash@gnu.org ## ## ------------------------------- ## _ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 + ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac -echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then +as_val=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi @@ -14851,11 +16035,11 @@ done for ac_func in getpagesize do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 -if eval "test \"\${$as_ac_var+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +$as_echo_n "checking for $ac_func... " >&6; } +if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -14880,80 +16064,79 @@ cat >>conftest.$ac_ext <<_ACEOF #undef $ac_func -/* Override any gcc2 internal prototype to avoid an error. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" -{ #endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ char $ac_func (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ -#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +#if defined __stub_$ac_func || defined __stub___$ac_func choke me -#else -char (*f) () = $ac_func; -#endif -#ifdef __cplusplus -} #endif int main () { -return f != $ac_func; +return $ac_func (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then eval "$as_ac_var=yes" else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -eval "$as_ac_var=no" + eval "$as_ac_var=no" fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 -if test `eval echo '${'$as_ac_var'}'` = yes; then +ac_res=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +as_val=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done -echo "$as_me:$LINENO: checking for working mmap" >&5 -echo $ECHO_N "checking for working mmap... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for working mmap" >&5 +$as_echo_n "checking for working mmap... " >&6; } if test "${ac_cv_func_mmap_fixed_mapped+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then ac_cv_func_mmap_fixed_mapped=no @@ -14993,21 +16176,21 @@ $ac_includes_default #include #include -#if !STDC_HEADERS && !HAVE_STDLIB_H +#if !defined STDC_HEADERS && !defined HAVE_STDLIB_H char *malloc (); #endif /* This mess was copied from the GNU getpagesize.h. */ -#if !HAVE_GETPAGESIZE +#ifndef HAVE_GETPAGESIZE /* Assume that all systems that can run configure have sys/param.h. */ -# if !HAVE_SYS_PARAM_H +# ifndef HAVE_SYS_PARAM_H # define HAVE_SYS_PARAM_H 1 # endif # ifdef _SC_PAGESIZE # define getpagesize() sysconf(_SC_PAGESIZE) # else /* no _SC_PAGESIZE */ -# if HAVE_SYS_PARAM_H +# ifdef HAVE_SYS_PARAM_H # include # ifdef EXEC_PAGESIZE # define getpagesize() EXEC_PAGESIZE @@ -15046,15 +16229,15 @@ main () /* First, make a file with some known garbage in it. */ data = (char *) malloc (pagesize); if (!data) - exit (1); + return 1; for (i = 0; i < pagesize; ++i) *(data + i) = rand (); umask (0); fd = creat ("conftest.mmap", 0600); if (fd < 0) - exit (1); + return 1; if (write (fd, data, pagesize) != pagesize) - exit (1); + return 1; close (fd); /* Next, try to mmap the file at a fixed address which already has @@ -15062,17 +16245,17 @@ main () we see the same garbage. */ fd = open ("conftest.mmap", O_RDWR); if (fd < 0) - exit (1); + return 1; data2 = (char *) malloc (2 * pagesize); if (!data2) - exit (1); - data2 += (pagesize - ((long) data2 & (pagesize - 1))) & (pagesize - 1); + return 1; + data2 += (pagesize - ((long int) data2 & (pagesize - 1))) & (pagesize - 1); if (data2 != mmap (data2, pagesize, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_FIXED, fd, 0L)) - exit (1); + return 1; for (i = 0; i < pagesize; ++i) if (*(data + i) != *(data2 + i)) - exit (1); + return 1; /* Finally, make sure that changes to the mapped area do not percolate back to the file as seen by read(). (This is a bug on @@ -15081,41 +16264,55 @@ main () *(data2 + i) = *(data2 + i) + 1; data3 = (char *) malloc (pagesize); if (!data3) - exit (1); + return 1; if (read (fd, data3, pagesize) != pagesize) - exit (1); + return 1; for (i = 0; i < pagesize; ++i) if (*(data + i) != *(data3 + i)) - exit (1); + return 1; close (fd); - exit (0); + return 0; } _ACEOF rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_mmap_fixed_mapped=yes else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_func_mmap_fixed_mapped=no fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +rm -rf conftest.dSYM +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi + + fi -echo "$as_me:$LINENO: result: $ac_cv_func_mmap_fixed_mapped" >&5 -echo "${ECHO_T}$ac_cv_func_mmap_fixed_mapped" >&6 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_mmap_fixed_mapped" >&5 +$as_echo "$ac_cv_func_mmap_fixed_mapped" >&6; } if test $ac_cv_func_mmap_fixed_mapped = yes; then cat >>confdefs.h <<\_ACEOF @@ -15137,11 +16334,11 @@ rm -f conftest.mmap for ac_func in __argz_count __argz_next __argz_stringify dcgettext mempcpy \ munmap stpcpy strcspn strdup do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 -if eval "test \"\${$as_ac_var+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +$as_echo_n "checking for $ac_func... " >&6; } +if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -15166,71 +16363,70 @@ cat >>conftest.$ac_ext <<_ACEOF #undef $ac_func -/* Override any gcc2 internal prototype to avoid an error. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" -{ #endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ char $ac_func (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ -#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +#if defined __stub_$ac_func || defined __stub___$ac_func choke me -#else -char (*f) () = $ac_func; -#endif -#ifdef __cplusplus -} #endif int main () { -return f != $ac_func; +return $ac_func (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then eval "$as_ac_var=yes" else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -eval "$as_ac_var=no" + eval "$as_ac_var=no" fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 -if test `eval echo '${'$as_ac_var'}'` = yes; then +ac_res=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +as_val=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi @@ -15252,19 +16448,21 @@ fi for ac_header in wctype.h do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 +fi +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } else # Is the header compilable? -echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 +$as_echo_n "checking $ac_header usability... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -15275,41 +16473,38 @@ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_header_compiler=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_header_compiler=no + ac_header_compiler=no fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6 + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +$as_echo "$ac_header_compiler" >&6; } # Is the header present? -echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 +$as_echo_n "checking $ac_header presence... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -15318,81 +16513,83 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then ac_header_preproc=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi + rm -f conftest.err conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6 +{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +$as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 -echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 -echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} - ( - cat <<\_ASBOX + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +$as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +$as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( cat <<\_ASBOX ## ------------------------------- ## ## Report this to bug-bash@gnu.org ## ## ------------------------------- ## _ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 + ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac -echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then +as_val=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi @@ -15402,19 +16599,21 @@ done for ac_header in wchar.h do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 +fi +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } else # Is the header compilable? -echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 +$as_echo_n "checking $ac_header usability... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -15425,41 +16624,38 @@ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_header_compiler=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_header_compiler=no + ac_header_compiler=no fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6 + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +$as_echo "$ac_header_compiler" >&6; } # Is the header present? -echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 +$as_echo_n "checking $ac_header presence... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -15468,81 +16664,83 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then ac_header_preproc=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi + rm -f conftest.err conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6 +{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +$as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 -echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 -echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} - ( - cat <<\_ASBOX + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +$as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +$as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( cat <<\_ASBOX ## ------------------------------- ## ## Report this to bug-bash@gnu.org ## ## ------------------------------- ## _ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 + ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac -echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then +as_val=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi @@ -15552,19 +16750,21 @@ done for ac_header in langinfo.h do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 +fi +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } else # Is the header compilable? -echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 +$as_echo_n "checking $ac_header usability... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -15575,41 +16775,38 @@ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_header_compiler=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_header_compiler=no + ac_header_compiler=no fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6 + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +$as_echo "$ac_header_compiler" >&6; } # Is the header present? -echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 +$as_echo_n "checking $ac_header presence... " >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -15618,81 +16815,83 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then ac_header_preproc=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi + rm -f conftest.err conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6 +{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +$as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 -echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 -echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} - ( - cat <<\_ASBOX + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +$as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +$as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( cat <<\_ASBOX ## ------------------------------- ## ## Report this to bug-bash@gnu.org ## ## ------------------------------- ## _ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 + ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac -echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then +as_val=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi @@ -15700,10 +16899,10 @@ fi done -echo "$as_me:$LINENO: checking for mbsrtowcs" >&5 -echo $ECHO_N "checking for mbsrtowcs... $ECHO_C" >&6 -if test "${ac_cv_func_mbsrtowcs+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for mbrlen" >&5 +$as_echo_n "checking for mbrlen... " >&6; } +if test "${ac_cv_func_mbrlen+set}" = set; then + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -15711,12 +16910,12 @@ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -/* Define mbsrtowcs to an innocuous variant, in case declares mbsrtowcs. +/* Define mbrlen to an innocuous variant, in case declares mbrlen. For example, HP-UX 11i declares gettimeofday. */ -#define mbsrtowcs innocuous_mbsrtowcs +#define mbrlen innocuous_mbrlen /* System header to define __stub macros and hopefully few prototypes, - which can conflict with char mbsrtowcs (); below. + which can conflict with char mbrlen (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ @@ -15726,81 +16925,76 @@ cat >>conftest.$ac_ext <<_ACEOF # include #endif -#undef mbsrtowcs +#undef mbrlen -/* Override any gcc2 internal prototype to avoid an error. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" -{ #endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char mbsrtowcs (); +char mbrlen (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ -#if defined (__stub_mbsrtowcs) || defined (__stub___mbsrtowcs) +#if defined __stub_mbrlen || defined __stub___mbrlen choke me -#else -char (*f) () = mbsrtowcs; -#endif -#ifdef __cplusplus -} #endif int main () { -return f != mbsrtowcs; +return mbrlen (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_mbsrtowcs=yes + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then + ac_cv_func_mbrlen=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_func_mbsrtowcs=no + ac_cv_func_mbrlen=no fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_func_mbsrtowcs" >&5 -echo "${ECHO_T}$ac_cv_func_mbsrtowcs" >&6 -if test $ac_cv_func_mbsrtowcs = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_mbrlen" >&5 +$as_echo "$ac_cv_func_mbrlen" >&6; } +if test "x$ac_cv_func_mbrlen" = x""yes; then cat >>confdefs.h <<\_ACEOF -#define HAVE_MBSRTOWCS 1 +#define HAVE_MBRLEN 1 _ACEOF fi -echo "$as_me:$LINENO: checking for mbrlen" >&5 -echo $ECHO_N "checking for mbrlen... $ECHO_C" >&6 -if test "${ac_cv_func_mbrlen+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for mbscmp" >&5 +$as_echo_n "checking for mbscmp... " >&6; } +if test "${ac_cv_func_mbscmp+set}" = set; then + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -15808,12 +17002,12 @@ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -/* Define mbrlen to an innocuous variant, in case declares mbrlen. +/* Define mbscmp to an innocuous variant, in case declares mbscmp. For example, HP-UX 11i declares gettimeofday. */ -#define mbrlen innocuous_mbrlen +#define mbscmp innocuous_mbscmp /* System header to define __stub macros and hopefully few prototypes, - which can conflict with char mbrlen (); below. + which can conflict with char mbscmp (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ @@ -15823,82 +17017,169 @@ cat >>conftest.$ac_ext <<_ACEOF # include #endif -#undef mbrlen +#undef mbscmp -/* Override any gcc2 internal prototype to avoid an error. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" -{ #endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char mbrlen (); +char mbscmp (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ -#if defined (__stub_mbrlen) || defined (__stub___mbrlen) +#if defined __stub_mbscmp || defined __stub___mbscmp choke me +#endif + +int +main () +{ +return mbscmp (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then + ac_cv_func_mbscmp=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_func_mbscmp=no +fi + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_mbscmp" >&5 +$as_echo "$ac_cv_func_mbscmp" >&6; } +if test "x$ac_cv_func_mbscmp" = x""yes; then + cat >>confdefs.h <<\_ACEOF +#define HAVE_MBSCMP 1 +_ACEOF + +fi + +{ $as_echo "$as_me:$LINENO: checking for mbsrtowcs" >&5 +$as_echo_n "checking for mbsrtowcs... " >&6; } +if test "${ac_cv_func_mbsrtowcs+set}" = set; then + $as_echo_n "(cached) " >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define mbsrtowcs to an innocuous variant, in case declares mbsrtowcs. + For example, HP-UX 11i declares gettimeofday. */ +#define mbsrtowcs innocuous_mbsrtowcs + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char mbsrtowcs (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include #else -char (*f) () = mbrlen; +# include #endif + +#undef mbsrtowcs + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ #ifdef __cplusplus -} +extern "C" +#endif +char mbsrtowcs (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_mbsrtowcs || defined __stub___mbsrtowcs +choke me #endif int main () { -return f != mbrlen; +return mbsrtowcs (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_mbrlen=yes + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then + ac_cv_func_mbsrtowcs=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_func_mbrlen=no + ac_cv_func_mbsrtowcs=no fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_func_mbrlen" >&5 -echo "${ECHO_T}$ac_cv_func_mbrlen" >&6 -if test $ac_cv_func_mbrlen = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_mbsrtowcs" >&5 +$as_echo "$ac_cv_func_mbsrtowcs" >&6; } +if test "x$ac_cv_func_mbsrtowcs" = x""yes; then cat >>confdefs.h <<\_ACEOF -#define HAVE_MBRLEN 1 +#define HAVE_MBSRTOWCS 1 _ACEOF fi -echo "$as_me:$LINENO: checking for wcrtomb" >&5 -echo $ECHO_N "checking for wcrtomb... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for wcrtomb" >&5 +$as_echo_n "checking for wcrtomb... " >&6; } if test "${ac_cv_func_wcrtomb+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -15923,79 +17204,74 @@ cat >>conftest.$ac_ext <<_ACEOF #undef wcrtomb -/* Override any gcc2 internal prototype to avoid an error. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" -{ #endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ char wcrtomb (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ -#if defined (__stub_wcrtomb) || defined (__stub___wcrtomb) +#if defined __stub_wcrtomb || defined __stub___wcrtomb choke me -#else -char (*f) () = wcrtomb; -#endif -#ifdef __cplusplus -} #endif int main () { -return f != wcrtomb; +return wcrtomb (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then ac_cv_func_wcrtomb=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_func_wcrtomb=no + ac_cv_func_wcrtomb=no fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_func_wcrtomb" >&5 -echo "${ECHO_T}$ac_cv_func_wcrtomb" >&6 -if test $ac_cv_func_wcrtomb = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_wcrtomb" >&5 +$as_echo "$ac_cv_func_wcrtomb" >&6; } +if test "x$ac_cv_func_wcrtomb" = x""yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_WCRTOMB 1 _ACEOF fi -echo "$as_me:$LINENO: checking for wcscoll" >&5 -echo $ECHO_N "checking for wcscoll... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for wcscoll" >&5 +$as_echo_n "checking for wcscoll... " >&6; } if test "${ac_cv_func_wcscoll+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -16020,79 +17296,74 @@ cat >>conftest.$ac_ext <<_ACEOF #undef wcscoll -/* Override any gcc2 internal prototype to avoid an error. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" -{ #endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ char wcscoll (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ -#if defined (__stub_wcscoll) || defined (__stub___wcscoll) +#if defined __stub_wcscoll || defined __stub___wcscoll choke me -#else -char (*f) () = wcscoll; -#endif -#ifdef __cplusplus -} #endif int main () { -return f != wcscoll; +return wcscoll (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then ac_cv_func_wcscoll=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_func_wcscoll=no + ac_cv_func_wcscoll=no fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_func_wcscoll" >&5 -echo "${ECHO_T}$ac_cv_func_wcscoll" >&6 -if test $ac_cv_func_wcscoll = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_wcscoll" >&5 +$as_echo "$ac_cv_func_wcscoll" >&6; } +if test "x$ac_cv_func_wcscoll" = x""yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_WCSCOLL 1 _ACEOF fi -echo "$as_me:$LINENO: checking for wcsdup" >&5 -echo $ECHO_N "checking for wcsdup... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for wcsdup" >&5 +$as_echo_n "checking for wcsdup... " >&6; } if test "${ac_cv_func_wcsdup+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -16117,79 +17388,74 @@ cat >>conftest.$ac_ext <<_ACEOF #undef wcsdup -/* Override any gcc2 internal prototype to avoid an error. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" -{ #endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ char wcsdup (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ -#if defined (__stub_wcsdup) || defined (__stub___wcsdup) +#if defined __stub_wcsdup || defined __stub___wcsdup choke me -#else -char (*f) () = wcsdup; -#endif -#ifdef __cplusplus -} #endif int main () { -return f != wcsdup; +return wcsdup (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then ac_cv_func_wcsdup=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_func_wcsdup=no + ac_cv_func_wcsdup=no fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_func_wcsdup" >&5 -echo "${ECHO_T}$ac_cv_func_wcsdup" >&6 -if test $ac_cv_func_wcsdup = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_wcsdup" >&5 +$as_echo "$ac_cv_func_wcsdup" >&6; } +if test "x$ac_cv_func_wcsdup" = x""yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_WCSDUP 1 _ACEOF fi -echo "$as_me:$LINENO: checking for wcwidth" >&5 -echo $ECHO_N "checking for wcwidth... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for wcwidth" >&5 +$as_echo_n "checking for wcwidth... " >&6; } if test "${ac_cv_func_wcwidth+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -16214,79 +17480,74 @@ cat >>conftest.$ac_ext <<_ACEOF #undef wcwidth -/* Override any gcc2 internal prototype to avoid an error. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" -{ #endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ char wcwidth (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ -#if defined (__stub_wcwidth) || defined (__stub___wcwidth) +#if defined __stub_wcwidth || defined __stub___wcwidth choke me -#else -char (*f) () = wcwidth; -#endif -#ifdef __cplusplus -} #endif int main () { -return f != wcwidth; +return wcwidth (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then ac_cv_func_wcwidth=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_func_wcwidth=no + ac_cv_func_wcwidth=no fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_func_wcwidth" >&5 -echo "${ECHO_T}$ac_cv_func_wcwidth" >&6 -if test $ac_cv_func_wcwidth = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_wcwidth" >&5 +$as_echo "$ac_cv_func_wcwidth" >&6; } +if test "x$ac_cv_func_wcwidth" = x""yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_WCWIDTH 1 _ACEOF fi -echo "$as_me:$LINENO: checking for wctype" >&5 -echo $ECHO_N "checking for wctype... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for wctype" >&5 +$as_echo_n "checking for wctype... " >&6; } if test "${ac_cv_func_wctype+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -16311,69 +17572,64 @@ cat >>conftest.$ac_ext <<_ACEOF #undef wctype -/* Override any gcc2 internal prototype to avoid an error. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" -{ #endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ char wctype (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ -#if defined (__stub_wctype) || defined (__stub___wctype) +#if defined __stub_wctype || defined __stub___wctype choke me -#else -char (*f) () = wctype; -#endif -#ifdef __cplusplus -} #endif int main () { -return f != wctype; +return wctype (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then ac_cv_func_wctype=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_func_wctype=no + ac_cv_func_wctype=no fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_func_wctype" >&5 -echo "${ECHO_T}$ac_cv_func_wctype" >&6 -if test $ac_cv_func_wctype = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_wctype" >&5 +$as_echo "$ac_cv_func_wctype" >&6; } +if test "x$ac_cv_func_wctype" = x""yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_WCTYPE 1 _ACEOF @@ -16382,10 +17638,10 @@ fi - echo "$as_me:$LINENO: checking whether mbrtowc and mbstate_t are properly declared" >&5 -echo $ECHO_N "checking whether mbrtowc and mbstate_t are properly declared... $ECHO_C" >&6 + { $as_echo "$as_me:$LINENO: checking whether mbrtowc and mbstate_t are properly declared" >&5 +$as_echo_n "checking whether mbrtowc and mbstate_t are properly declared... " >&6; } if test "${ac_cv_func_mbrtowc+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -16397,45 +17653,50 @@ cat >>conftest.$ac_ext <<_ACEOF int main () { -mbstate_t state; return ! (sizeof state && mbrtowc); +wchar_t wc; + char const s[] = ""; + size_t n = 1; + mbstate_t state; + return ! (sizeof state && (mbrtowc) (&wc, s, n, &state)); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then ac_cv_func_mbrtowc=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_func_mbrtowc=no + ac_cv_func_mbrtowc=no fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_func_mbrtowc" >&5 -echo "${ECHO_T}$ac_cv_func_mbrtowc" >&6 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_mbrtowc" >&5 +$as_echo "$ac_cv_func_mbrtowc" >&6; } if test $ac_cv_func_mbrtowc = yes; then cat >>confdefs.h <<\_ACEOF @@ -16458,11 +17719,11 @@ fi for ac_func in iswlower iswupper towlower towupper iswctype do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 -if eval "test \"\${$as_ac_var+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +$as_echo_n "checking for $ac_func... " >&6; } +if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -16487,81 +17748,80 @@ cat >>conftest.$ac_ext <<_ACEOF #undef $ac_func -/* Override any gcc2 internal prototype to avoid an error. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" -{ #endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ char $ac_func (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ -#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +#if defined __stub_$ac_func || defined __stub___$ac_func choke me -#else -char (*f) () = $ac_func; -#endif -#ifdef __cplusplus -} #endif int main () { -return f != $ac_func; +return $ac_func (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then eval "$as_ac_var=yes" else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -eval "$as_ac_var=no" + eval "$as_ac_var=no" fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 -if test `eval echo '${'$as_ac_var'}'` = yes; then +ac_res=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +as_val=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done -echo "$as_me:$LINENO: checking for nl_langinfo and CODESET" >&5 -echo $ECHO_N "checking for nl_langinfo and CODESET... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for nl_langinfo and CODESET" >&5 +$as_echo_n "checking for nl_langinfo and CODESET... " >&6; } if test "${bash_cv_langinfo_codeset+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -16579,39 +17839,40 @@ char* cs = nl_langinfo(CODESET); } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then bash_cv_langinfo_codeset=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -bash_cv_langinfo_codeset=no + bash_cv_langinfo_codeset=no fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $bash_cv_langinfo_codeset" >&5 -echo "${ECHO_T}$bash_cv_langinfo_codeset" >&6 +{ $as_echo "$as_me:$LINENO: result: $bash_cv_langinfo_codeset" >&5 +$as_echo "$bash_cv_langinfo_codeset" >&6; } if test $bash_cv_langinfo_codeset = yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_LANGINFO_CODESET 1 @@ -16619,10 +17880,10 @@ _ACEOF fi -echo "$as_me:$LINENO: checking for wchar_t in wchar.h" >&5 -echo $ECHO_N "checking for wchar_t in wchar.h... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for wchar_t in wchar.h" >&5 +$as_echo_n "checking for wchar_t in wchar.h... " >&6; } if test "${bash_cv_type_wchar_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -16644,38 +17905,35 @@ main () } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then bash_cv_type_wchar_t=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -bash_cv_type_wchar_t=no + bash_cv_type_wchar_t=no fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $bash_cv_type_wchar_t" >&5 -echo "${ECHO_T}$bash_cv_type_wchar_t" >&6 +{ $as_echo "$as_me:$LINENO: result: $bash_cv_type_wchar_t" >&5 +$as_echo "$bash_cv_type_wchar_t" >&6; } if test $bash_cv_type_wchar_t = yes; then cat >>confdefs.h <<\_ACEOF @@ -16684,10 +17942,10 @@ _ACEOF fi -echo "$as_me:$LINENO: checking for wctype_t in wctype.h" >&5 -echo $ECHO_N "checking for wctype_t in wctype.h... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for wctype_t in wctype.h" >&5 +$as_echo_n "checking for wctype_t in wctype.h... " >&6; } if test "${bash_cv_type_wctype_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -16708,38 +17966,35 @@ main () } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then bash_cv_type_wctype_t=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -bash_cv_type_wctype_t=no + bash_cv_type_wctype_t=no fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $bash_cv_type_wctype_t" >&5 -echo "${ECHO_T}$bash_cv_type_wctype_t" >&6 +{ $as_echo "$as_me:$LINENO: result: $bash_cv_type_wctype_t" >&5 +$as_echo "$bash_cv_type_wctype_t" >&6; } if test $bash_cv_type_wctype_t = yes; then cat >>confdefs.h <<\_ACEOF @@ -16748,10 +18003,10 @@ _ACEOF fi -echo "$as_me:$LINENO: checking for wint_t in wctype.h" >&5 -echo $ECHO_N "checking for wint_t in wctype.h... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for wint_t in wctype.h" >&5 +$as_echo_n "checking for wint_t in wctype.h... " >&6; } if test "${bash_cv_type_wint_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -16772,38 +18027,35 @@ main () } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then bash_cv_type_wint_t=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -bash_cv_type_wint_t=no + bash_cv_type_wint_t=no fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $bash_cv_type_wint_t" >&5 -echo "${ECHO_T}$bash_cv_type_wint_t" >&6 +{ $as_echo "$as_me:$LINENO: result: $bash_cv_type_wint_t" >&5 +$as_echo "$bash_cv_type_wint_t" >&6; } if test $bash_cv_type_wint_t = yes; then cat >>confdefs.h <<\_ACEOF @@ -16816,10 +18068,10 @@ fi if test "$opt_static_link" != yes; then -echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 -echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 +$as_echo_n "checking for dlopen in -ldl... " >&6; } if test "${ac_cv_lib_dl_dlopen+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" @@ -16830,57 +18082,58 @@ cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -/* Override any gcc2 internal prototype to avoid an error. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ char dlopen (); int main () { -dlopen (); +return dlopen (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then ac_cv_lib_dl_dlopen=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_lib_dl_dlopen=no + ac_cv_lib_dl_dlopen=no fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 -echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6 -if test $ac_cv_lib_dl_dlopen = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 +$as_echo "$ac_cv_lib_dl_dlopen" >&6; } +if test "x$ac_cv_lib_dl_dlopen" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_LIBDL 1 _ACEOF @@ -16894,11 +18147,11 @@ fi for ac_func in dlopen dlclose dlsym do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 -if eval "test \"\${$as_ac_var+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +$as_echo_n "checking for $ac_func... " >&6; } +if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -16923,71 +18176,70 @@ cat >>conftest.$ac_ext <<_ACEOF #undef $ac_func -/* Override any gcc2 internal prototype to avoid an error. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" -{ #endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ char $ac_func (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ -#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +#if defined __stub_$ac_func || defined __stub___$ac_func choke me -#else -char (*f) () = $ac_func; -#endif -#ifdef __cplusplus -} #endif int main () { -return f != $ac_func; +return $ac_func (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then eval "$as_ac_var=yes" else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -eval "$as_ac_var=no" + eval "$as_ac_var=no" fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 -if test `eval echo '${'$as_ac_var'}'` = yes; then +ac_res=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +as_val=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi @@ -16995,10 +18247,10 @@ done fi -echo "$as_me:$LINENO: checking whether sys_siglist is declared" >&5 -echo $ECHO_N "checking whether sys_siglist is declared... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking whether sys_siglist is declared" >&5 +$as_echo_n "checking whether sys_siglist is declared... " >&6; } if test "${ac_cv_have_decl_sys_siglist+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -17008,7 +18260,7 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include /* NetBSD declares sys_siglist in unistd.h. */ -#if HAVE_UNISTD_H +#ifdef HAVE_UNISTD_H # include #endif @@ -17017,7 +18269,7 @@ int main () { #ifndef sys_siglist - char *p = (char *) sys_siglist; + (void) sys_siglist; #endif ; @@ -17025,39 +18277,36 @@ main () } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_cv_have_decl_sys_siglist=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_have_decl_sys_siglist=no + ac_cv_have_decl_sys_siglist=no fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_have_decl_sys_siglist" >&5 -echo "${ECHO_T}$ac_cv_have_decl_sys_siglist" >&6 -if test $ac_cv_have_decl_sys_siglist = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_sys_siglist" >&5 +$as_echo "$ac_cv_have_decl_sys_siglist" >&6; } +if test "x$ac_cv_have_decl_sys_siglist" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_DECL_SYS_SIGLIST 1 @@ -17077,10 +18326,10 @@ fi if test "$ac_cv_func_inet_aton" != 'yes'; then -echo "$as_me:$LINENO: checking for inet_aton" >&5 -echo $ECHO_N "checking for inet_aton... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for inet_aton" >&5 +$as_echo_n "checking for inet_aton... " >&6; } if test "${bash_cv_func_inet_aton+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -17102,51 +18351,50 @@ main () } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then bash_cv_func_inet_aton=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -bash_cv_func_inet_aton=no + bash_cv_func_inet_aton=no fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $bash_cv_func_inet_aton" >&5 -echo "${ECHO_T}$bash_cv_func_inet_aton" >&6 +{ $as_echo "$as_me:$LINENO: result: $bash_cv_func_inet_aton" >&5 +$as_echo "$bash_cv_func_inet_aton" >&6; } if test $bash_cv_func_inet_aton = yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_INET_ATON 1 _ACEOF else - case $LIBOBJS in - "inet_aton.$ac_objext" | \ - *" inet_aton.$ac_objext" | \ - "inet_aton.$ac_objext "* | \ + case " $LIBOBJS " in *" inet_aton.$ac_objext "* ) ;; - *) LIBOBJS="$LIBOBJS inet_aton.$ac_objext" ;; + *) LIBOBJS="$LIBOBJS inet_aton.$ac_objext" + ;; esac fi @@ -17155,10 +18403,10 @@ fi case "$host_os" in irix4*) -echo "$as_me:$LINENO: checking for getpwent in -lsun" >&5 -echo $ECHO_N "checking for getpwent in -lsun... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for getpwent in -lsun" >&5 +$as_echo_n "checking for getpwent in -lsun... " >&6; } if test "${ac_cv_lib_sun_getpwent+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsun $LIBS" @@ -17169,57 +18417,58 @@ cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -/* Override any gcc2 internal prototype to avoid an error. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ char getpwent (); int main () { -getpwent (); +return getpwent (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then ac_cv_lib_sun_getpwent=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_lib_sun_getpwent=no + ac_cv_lib_sun_getpwent=no fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -echo "$as_me:$LINENO: result: $ac_cv_lib_sun_getpwent" >&5 -echo "${ECHO_T}$ac_cv_lib_sun_getpwent" >&6 -if test $ac_cv_lib_sun_getpwent = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_sun_getpwent" >&5 +$as_echo "$ac_cv_lib_sun_getpwent" >&6; } +if test "x$ac_cv_lib_sun_getpwent" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_LIBSUN 1 _ACEOF @@ -17235,17 +18484,17 @@ if test "$ac_cv_func_getpeername" = no; then if test "X$bash_cv_have_socklib" = "X"; then _bash_needmsg= else -echo "$as_me:$LINENO: checking for socket library" >&5 -echo $ECHO_N "checking for socket library... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for socket library" >&5 +$as_echo_n "checking for socket library... " >&6; } _bash_needmsg=yes fi if test "${bash_cv_have_socklib+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else - echo "$as_me:$LINENO: checking for getpeername in -lsocket" >&5 -echo $ECHO_N "checking for getpeername in -lsocket... $ECHO_C" >&6 + { $as_echo "$as_me:$LINENO: checking for getpeername in -lsocket" >&5 +$as_echo_n "checking for getpeername in -lsocket... " >&6; } if test "${ac_cv_lib_socket_getpeername+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsocket -lnsl $LIBS" @@ -17256,57 +18505,58 @@ cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -/* Override any gcc2 internal prototype to avoid an error. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ char getpeername (); int main () { -getpeername (); +return getpeername (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then ac_cv_lib_socket_getpeername=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_lib_socket_getpeername=no + ac_cv_lib_socket_getpeername=no fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -echo "$as_me:$LINENO: result: $ac_cv_lib_socket_getpeername" >&5 -echo "${ECHO_T}$ac_cv_lib_socket_getpeername" >&6 -if test $ac_cv_lib_socket_getpeername = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_socket_getpeername" >&5 +$as_echo "$ac_cv_lib_socket_getpeername" >&6; } +if test "x$ac_cv_lib_socket_getpeername" = x""yes; then bash_cv_have_socklib=yes else bash_cv_have_socklib=no @@ -17315,8 +18565,8 @@ fi fi if test "X$_bash_needmsg" = Xyes; then - echo "$as_me:$LINENO: result: $bash_cv_have_socklib" >&5 -echo "${ECHO_T}$bash_cv_have_socklib" >&6 + { $as_echo "$as_me:$LINENO: result: $bash_cv_have_socklib" >&5 +$as_echo "$bash_cv_have_socklib" >&6; } _bash_needmsg= fi if test $bash_cv_have_socklib = yes; then @@ -17324,17 +18574,17 @@ if test $bash_cv_have_socklib = yes; then if test "X$bash_cv_have_libnsl" = "X"; then _bash_needmsg= else - echo "$as_me:$LINENO: checking for libnsl" >&5 -echo $ECHO_N "checking for libnsl... $ECHO_C" >&6 + { $as_echo "$as_me:$LINENO: checking for libnsl" >&5 +$as_echo_n "checking for libnsl... " >&6; } _bash_needmsg=yes fi if test "${bash_cv_have_libnsl+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else - echo "$as_me:$LINENO: checking for t_open in -lnsl" >&5 -echo $ECHO_N "checking for t_open in -lnsl... $ECHO_C" >&6 + { $as_echo "$as_me:$LINENO: checking for t_open in -lnsl" >&5 +$as_echo_n "checking for t_open in -lnsl... " >&6; } if test "${ac_cv_lib_nsl_t_open+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lnsl $LIBS" @@ -17345,57 +18595,58 @@ cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -/* Override any gcc2 internal prototype to avoid an error. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ char t_open (); int main () { -t_open (); +return t_open (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then ac_cv_lib_nsl_t_open=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_lib_nsl_t_open=no + ac_cv_lib_nsl_t_open=no fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -echo "$as_me:$LINENO: result: $ac_cv_lib_nsl_t_open" >&5 -echo "${ECHO_T}$ac_cv_lib_nsl_t_open" >&6 -if test $ac_cv_lib_nsl_t_open = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_nsl_t_open" >&5 +$as_echo "$ac_cv_lib_nsl_t_open" >&6; } +if test "x$ac_cv_lib_nsl_t_open" = x""yes; then bash_cv_have_libnsl=yes else bash_cv_have_libnsl=no @@ -17404,8 +18655,8 @@ fi fi if test "X$_bash_needmsg" = Xyes; then - echo "$as_me:$LINENO: result: $bash_cv_have_libnsl" >&5 -echo "${ECHO_T}$bash_cv_have_libnsl" >&6 + { $as_echo "$as_me:$LINENO: result: $bash_cv_have_libnsl" >&5 +$as_echo "$bash_cv_have_libnsl" >&6; } _bash_needmsg= fi if test $bash_cv_have_libnsl = yes; then @@ -17428,12 +18679,12 @@ if test "$ac_cv_func_gethostbyname" = no; then if test "X$bash_cv_have_gethostbyname" = "X"; then _bash_needmsg=yes else -echo "$as_me:$LINENO: checking for gethostbyname in socket library" >&5 -echo $ECHO_N "checking for gethostbyname in socket library... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for gethostbyname in socket library" >&5 +$as_echo_n "checking for gethostbyname in socket library... " >&6; } _bash_needmsg= fi if test "${bash_cv_have_gethostbyname+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -17453,45 +18704,46 @@ main () } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then bash_cv_have_gethostbyname=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -bash_cv_have_gethostbyname=no + bash_cv_have_gethostbyname=no fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi if test "X$_bash_needmsg" = Xyes; then - echo "$as_me:$LINENO: checking for gethostbyname in socket library" >&5 -echo $ECHO_N "checking for gethostbyname in socket library... $ECHO_C" >&6 + { $as_echo "$as_me:$LINENO: checking for gethostbyname in socket library" >&5 +$as_echo_n "checking for gethostbyname in socket library... " >&6; } fi -echo "$as_me:$LINENO: result: $bash_cv_have_gethostbyname" >&5 -echo "${ECHO_T}$bash_cv_have_gethostbyname" >&6 +{ $as_echo "$as_me:$LINENO: result: $bash_cv_have_gethostbyname" >&5 +$as_echo "$bash_cv_have_gethostbyname" >&6; } if test "$bash_cv_have_gethostbyname" = yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_GETHOSTBYNAME 1 @@ -17501,10 +18753,10 @@ fi fi -echo "$as_me:$LINENO: checking for uid_t in sys/types.h" >&5 -echo $ECHO_N "checking for uid_t in sys/types.h... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for uid_t in sys/types.h" >&5 +$as_echo_n "checking for uid_t in sys/types.h... " >&6; } if test "${ac_cv_type_uid_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -17524,8 +18776,8 @@ fi rm -f conftest* fi -echo "$as_me:$LINENO: result: $ac_cv_type_uid_t" >&5 -echo "${ECHO_T}$ac_cv_type_uid_t" >&6 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_uid_t" >&5 +$as_echo "$ac_cv_type_uid_t" >&6; } if test $ac_cv_type_uid_t = no; then cat >>confdefs.h <<\_ACEOF @@ -17539,10 +18791,10 @@ _ACEOF fi -echo "$as_me:$LINENO: checking type of array argument to getgroups" >&5 -echo $ECHO_N "checking type of array argument to getgroups... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking type of array argument to getgroups" >&5 +$as_echo_n "checking type of array argument to getgroups... " >&6; } if test "${ac_cv_type_getgroups+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then ac_cv_type_getgroups=cross @@ -17554,7 +18806,7 @@ cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Thanks to Mike Rendell for this test. */ -#include +$ac_includes_default #define NGID 256 #undef MAX #define MAX(x, y) ((x) > (y) ? (x) : (y)) @@ -17564,7 +18816,7 @@ main () { gid_t gidset[NGID]; int i, n; - union { gid_t gval; long lval; } val; + union { gid_t gval; long int lval; } val; val.lval = -1; for (i = 0; i < NGID; i++) @@ -17572,32 +18824,47 @@ main () n = getgroups (sizeof (gidset) / MAX (sizeof (int), sizeof (gid_t)) - 1, gidset); /* Exit non-zero if getgroups seems to require an array of ints. This - happens when gid_t is short but getgroups modifies an array of ints. */ - exit ((n > 0 && gidset[n] != val.gval) ? 1 : 0); + happens when gid_t is short int but getgroups modifies an array + of ints. */ + return n > 0 && gidset[n] != val.gval; } _ACEOF rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_type_getgroups=gid_t else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_type_getgroups=int fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +rm -rf conftest.dSYM +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi + + if test $ac_cv_type_getgroups = cross; then cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -17618,20 +18885,21 @@ rm -f conftest* fi fi -echo "$as_me:$LINENO: result: $ac_cv_type_getgroups" >&5 -echo "${ECHO_T}$ac_cv_type_getgroups" >&6 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_getgroups" >&5 +$as_echo "$ac_cv_type_getgroups" >&6; } cat >>confdefs.h <<_ACEOF #define GETGROUPS_T $ac_cv_type_getgroups _ACEOF -echo "$as_me:$LINENO: checking for off_t" >&5 -echo $ECHO_N "checking for off_t... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for off_t" >&5 +$as_echo_n "checking for off_t... " >&6; } if test "${ac_cv_type_off_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else - cat >conftest.$ac_ext <<_ACEOF + ac_cv_type_off_t=no +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -17641,63 +18909,101 @@ $ac_includes_default int main () { -if ((off_t *) 0) - return 0; if (sizeof (off_t)) - return 0; + return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +if (sizeof ((off_t))) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_off_t=yes + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + : else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_type_off_t=no + ac_cv_type_off_t=yes fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_type_off_t" >&5 -echo "${ECHO_T}$ac_cv_type_off_t" >&6 -if test $ac_cv_type_off_t = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_off_t" >&5 +$as_echo "$ac_cv_type_off_t" >&6; } +if test "x$ac_cv_type_off_t" = x""yes; then : else cat >>confdefs.h <<_ACEOF -#define off_t long +#define off_t long int _ACEOF fi -echo "$as_me:$LINENO: checking for mode_t" >&5 -echo $ECHO_N "checking for mode_t... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for mode_t" >&5 +$as_echo_n "checking for mode_t... " >&6; } if test "${ac_cv_type_mode_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else - cat >conftest.$ac_ext <<_ACEOF + ac_cv_type_mode_t=no +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -17707,48 +19013,85 @@ $ac_includes_default int main () { -if ((mode_t *) 0) - return 0; if (sizeof (mode_t)) - return 0; + return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +if (sizeof ((mode_t))) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_mode_t=yes + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + : +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_type_mode_t=yes +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_type_mode_t=no + fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_type_mode_t" >&5 -echo "${ECHO_T}$ac_cv_type_mode_t" >&6 -if test $ac_cv_type_mode_t = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_mode_t" >&5 +$as_echo "$ac_cv_type_mode_t" >&6; } +if test "x$ac_cv_type_mode_t" = x""yes; then : else @@ -17758,10 +19101,10 @@ _ACEOF fi -echo "$as_me:$LINENO: checking for uid_t in sys/types.h" >&5 -echo $ECHO_N "checking for uid_t in sys/types.h... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for uid_t in sys/types.h" >&5 +$as_echo_n "checking for uid_t in sys/types.h... " >&6; } if test "${ac_cv_type_uid_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -17781,8 +19124,8 @@ fi rm -f conftest* fi -echo "$as_me:$LINENO: result: $ac_cv_type_uid_t" >&5 -echo "${ECHO_T}$ac_cv_type_uid_t" >&6 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_uid_t" >&5 +$as_echo "$ac_cv_type_uid_t" >&6; } if test $ac_cv_type_uid_t = no; then cat >>confdefs.h <<\_ACEOF @@ -17796,12 +19139,13 @@ _ACEOF fi -echo "$as_me:$LINENO: checking for pid_t" >&5 -echo $ECHO_N "checking for pid_t... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for pid_t" >&5 +$as_echo_n "checking for pid_t... " >&6; } if test "${ac_cv_type_pid_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else - cat >conftest.$ac_ext <<_ACEOF + ac_cv_type_pid_t=no +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -17811,62 +19155,30 @@ $ac_includes_default int main () { -if ((pid_t *) 0) - return 0; if (sizeof (pid_t)) - return 0; + return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_pid_t=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_type_pid_t=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_pid_t" >&5 -echo "${ECHO_T}$ac_cv_type_pid_t" >&6 -if test $ac_cv_type_pid_t = yes; then - : -else - -cat >>confdefs.h <<_ACEOF -#define pid_t int -_ACEOF - -fi - -echo "$as_me:$LINENO: checking for size_t" >&5 -echo $ECHO_N "checking for size_t... $ECHO_C" >&6 -if test "${ac_cv_type_size_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -17877,63 +19189,67 @@ $ac_includes_default int main () { -if ((size_t *) 0) - return 0; -if (sizeof (size_t)) - return 0; +if (sizeof ((pid_t))) + return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_size_t=yes + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + : +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_type_pid_t=yes +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_type_size_t=no + fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_type_size_t" >&5 -echo "${ECHO_T}$ac_cv_type_size_t" >&6 -if test $ac_cv_type_size_t = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_pid_t" >&5 +$as_echo "$ac_cv_type_pid_t" >&6; } +if test "x$ac_cv_type_pid_t" = x""yes; then : else cat >>confdefs.h <<_ACEOF -#define size_t unsigned +#define pid_t int _ACEOF fi -echo "$as_me:$LINENO: checking for ssize_t" >&5 -echo $ECHO_N "checking for ssize_t... $ECHO_C" >&6 -if test "${ac_cv_type_ssize_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for size_t" >&5 +$as_echo_n "checking for size_t... " >&6; } +if test "${ac_cv_type_size_t+set}" = set; then + $as_echo_n "(cached) " >&6 else - cat >conftest.$ac_ext <<_ACEOF + ac_cv_type_size_t=no +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -17943,62 +19259,134 @@ $ac_includes_default int main () { -if ((ssize_t *) 0) - return 0; -if (sizeof (ssize_t)) - return 0; +if (sizeof (size_t)) + return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_ssize_t=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_type_ssize_t=no + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +if (sizeof ((size_t))) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + : +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_type_size_t=yes fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_type_ssize_t" >&5 -echo "${ECHO_T}$ac_cv_type_ssize_t" >&6 -if test $ac_cv_type_ssize_t = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_size_t" >&5 +$as_echo "$ac_cv_type_size_t" >&6; } +if test "x$ac_cv_type_size_t" = x""yes; then : else cat >>confdefs.h <<_ACEOF -#define ssize_t int +#define size_t unsigned int _ACEOF fi -echo "$as_me:$LINENO: checking for time_t" >&5 -echo $ECHO_N "checking for time_t... $ECHO_C" >&6 -if test "${ac_cv_type_time_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for ssize_t" >&5 +$as_echo_n "checking for ssize_t... " >&6; } +if test "${ac_cv_type_ssize_t+set}" = set; then + $as_echo_n "(cached) " >&6 else + ac_cv_type_ssize_t=no +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +if (sizeof (ssize_t)) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -18009,48 +19397,155 @@ $ac_includes_default int main () { -if ((time_t *) 0) +if (sizeof ((ssize_t))) + return 0; + ; return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + : +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_type_ssize_t=yes +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_ssize_t" >&5 +$as_echo "$ac_cv_type_ssize_t" >&6; } +if test "x$ac_cv_type_ssize_t" = x""yes; then + : +else + +cat >>confdefs.h <<_ACEOF +#define ssize_t int +_ACEOF + +fi + +{ $as_echo "$as_me:$LINENO: checking for time_t" >&5 +$as_echo_n "checking for time_t... " >&6; } +if test "${ac_cv_type_time_t+set}" = set; then + $as_echo_n "(cached) " >&6 +else + ac_cv_type_time_t=no +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ if (sizeof (time_t)) - return 0; + return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +if (sizeof ((time_t))) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_time_t=yes + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + : +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_type_time_t=yes +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_type_time_t=no + fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_type_time_t" >&5 -echo "${ECHO_T}$ac_cv_type_time_t" >&6 -if test $ac_cv_type_time_t = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_time_t" >&5 +$as_echo "$ac_cv_type_time_t" >&6; } +if test "x$ac_cv_type_time_t" = x""yes; then : else @@ -18062,10 +19557,10 @@ fi -echo "$as_me:$LINENO: checking for long long" >&5 -echo $ECHO_N "checking for long long... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for long long" >&5 +$as_echo_n "checking for long long... " >&6; } if test "${bash_cv_type_long_long+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -18087,39 +19582,40 @@ return ll << i | ll >> i | llm / ll | llm % ll; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then bash_cv_type_long_long='long long' else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -bash_cv_type_long_long='long' + bash_cv_type_long_long='long' fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $bash_cv_type_long_long" >&5 -echo "${ECHO_T}$bash_cv_type_long_long" >&6 +{ $as_echo "$as_me:$LINENO: result: $bash_cv_type_long_long" >&5 +$as_echo "$bash_cv_type_long_long" >&6; } if test "$bash_cv_type_long_long" = 'long long'; then cat >>confdefs.h <<\_ACEOF #define HAVE_LONG_LONG 1 @@ -18128,10 +19624,10 @@ _ACEOF fi -echo "$as_me:$LINENO: checking for unsigned long long" >&5 -echo $ECHO_N "checking for unsigned long long... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for unsigned long long" >&5 +$as_echo_n "checking for unsigned long long... " >&6; } if test "${bash_cv_type_unsigned_long_long+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -18153,39 +19649,40 @@ return ull << i | ull >> i | ullmax / ull | ullmax % ull; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then bash_cv_type_unsigned_long_long='unsigned long long' else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -bash_cv_type_unsigned_long_long='unsigned long' + bash_cv_type_unsigned_long_long='unsigned long' fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $bash_cv_type_unsigned_long_long" >&5 -echo "${ECHO_T}$bash_cv_type_unsigned_long_long" >&6 +{ $as_echo "$as_me:$LINENO: result: $bash_cv_type_unsigned_long_long" >&5 +$as_echo "$bash_cv_type_unsigned_long_long" >&6; } if test "$bash_cv_type_unsigned_long_long" = 'unsigned long long'; then cat >>confdefs.h <<\_ACEOF #define HAVE_UNSIGNED_LONG_LONG 1 @@ -18194,10 +19691,10 @@ _ACEOF fi -echo "$as_me:$LINENO: checking return type of signal handlers" >&5 -echo $ECHO_N "checking return type of signal handlers... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking return type of signal handlers" >&5 +$as_echo_n "checking return type of signal handlers... " >&6; } if test "${ac_cv_type_signal+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -18207,56 +19704,45 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include -#ifdef signal -# undef signal -#endif -#ifdef __cplusplus -extern "C" void (*signal (int, void (*)(int)))(int); -#else -void (*signal ()) (); -#endif int main () { -int i; +return *(signal (0, 0)) (0) == 1; ; return 0; } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_signal=void + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_type_signal=int else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_type_signal=int + ac_cv_type_signal=void fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_type_signal" >&5 -echo "${ECHO_T}$ac_cv_type_signal" >&6 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_signal" >&5 +$as_echo "$ac_cv_type_signal" >&6; } cat >>confdefs.h <<_ACEOF #define RETSIGTYPE $ac_cv_type_signal @@ -18264,73 +19750,15 @@ _ACEOF -echo "$as_me:$LINENO: checking for char" >&5 -echo $ECHO_N "checking for char... $ECHO_C" >&6 -if test "${ac_cv_type_char+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -if ((char *) 0) - return 0; -if (sizeof (char)) - return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_char=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_type_char=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_char" >&5 -echo "${ECHO_T}$ac_cv_type_char" >&6 - -echo "$as_me:$LINENO: checking size of char" >&5 -echo $ECHO_N "checking size of char... $ECHO_C" >&6 +# The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ $as_echo "$as_me:$LINENO: checking size of char" >&5 +$as_echo_n "checking size of char... " >&6; } if test "${ac_cv_sizeof_char+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else - if test "$ac_cv_type_char" = yes; then - # The cast to unsigned long works around a bug in the HP C Compiler - # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects - # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. - # This bug is HP SR number 8606223364. if test "$cross_compiling" = yes; then # Depending upon the size, compute the lo and hi bounds. cat >conftest.$ac_ext <<_ACEOF @@ -18343,7 +19771,7 @@ $ac_includes_default int main () { -static int test_array [1 - 2 * !(((long) (sizeof (char))) >= 0)]; +static int test_array [1 - 2 * !(((long int) (sizeof (char))) >= 0)]; test_array [0] = 0 ; @@ -18351,27 +19779,23 @@ test_array [0] = 0 } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_lo=0 ac_mid=0 while :; do cat >conftest.$ac_ext <<_ACEOF @@ -18384,7 +19808,7 @@ $ac_includes_default int main () { -static int test_array [1 - 2 * !(((long) (sizeof (char))) <= $ac_mid)]; +static int test_array [1 - 2 * !(((long int) (sizeof (char))) <= $ac_mid)]; test_array [0] = 0 ; @@ -18392,46 +19816,43 @@ test_array [0] = 0 } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_hi=$ac_mid; break else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_lo=`expr $ac_mid + 1` - if test $ac_lo -le $ac_mid; then - ac_lo= ac_hi= - break - fi - ac_mid=`expr 2 '*' $ac_mid + 1` + ac_lo=`expr $ac_mid + 1` + if test $ac_lo -le $ac_mid; then + ac_lo= ac_hi= + break + fi + ac_mid=`expr 2 '*' $ac_mid + 1` fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -cat >conftest.$ac_ext <<_ACEOF + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -18441,7 +19862,7 @@ $ac_includes_default int main () { -static int test_array [1 - 2 * !(((long) (sizeof (char))) < 0)]; +static int test_array [1 - 2 * !(((long int) (sizeof (char))) < 0)]; test_array [0] = 0 ; @@ -18449,27 +19870,23 @@ test_array [0] = 0 } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_hi=-1 ac_mid=-1 while :; do cat >conftest.$ac_ext <<_ACEOF @@ -18482,7 +19899,7 @@ $ac_includes_default int main () { -static int test_array [1 - 2 * !(((long) (sizeof (char))) >= $ac_mid)]; +static int test_array [1 - 2 * !(((long int) (sizeof (char))) >= $ac_mid)]; test_array [0] = 0 ; @@ -18490,50 +19907,49 @@ test_array [0] = 0 } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_lo=$ac_mid; break else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_hi=`expr '(' $ac_mid ')' - 1` - if test $ac_mid -le $ac_hi; then - ac_lo= ac_hi= - break - fi - ac_mid=`expr 2 '*' $ac_mid` + ac_hi=`expr '(' $ac_mid ')' - 1` + if test $ac_mid -le $ac_hi; then + ac_lo= ac_hi= + break + fi + ac_mid=`expr 2 '*' $ac_mid` fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_lo= ac_hi= + ac_lo= ac_hi= fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext # Binary search between lo and hi bounds. while test "x$ac_lo" != "x$ac_hi"; do ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` @@ -18547,7 +19963,7 @@ $ac_includes_default int main () { -static int test_array [1 - 2 * !(((long) (sizeof (char))) <= $ac_mid)]; +static int test_array [1 - 2 * !(((long int) (sizeof (char))) <= $ac_mid)]; test_array [0] = 0 ; @@ -18555,51 +19971,47 @@ test_array [0] = 0 } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_hi=$ac_mid else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_lo=`expr '(' $ac_mid ')' + 1` + ac_lo=`expr '(' $ac_mid ')' + 1` fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done case $ac_lo in ?*) ac_cv_sizeof_char=$ac_lo;; -'') { { echo "$as_me:$LINENO: error: cannot compute sizeof (char), 77 +'') if test "$ac_cv_type_char" = yes; then + { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (char) See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute sizeof (char), 77 +$as_echo "$as_me: error: cannot compute sizeof (char) See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } ;; + { (exit 77); exit 77; }; }; } + else + ac_cv_sizeof_char=0 + fi ;; esac -else - if test "$cross_compiling" = yes; then - { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot run test program while cross compiling -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -18608,8 +20020,8 @@ cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default -long longval () { return (long) (sizeof (char)); } -unsigned long ulongval () { return (long) (sizeof (char)); } +static long int longval () { return (long int) (sizeof (char)); } +static unsigned long int ulongval () { return (long int) (sizeof (char)); } #include #include int @@ -18618,72 +20030,97 @@ main () FILE *f = fopen ("conftest.val", "w"); if (! f) - exit (1); - if (((long) (sizeof (char))) < 0) + return 1; + if (((long int) (sizeof (char))) < 0) { - long i = longval (); - if (i != ((long) (sizeof (char)))) - exit (1); - fprintf (f, "%ld\n", i); + long int i = longval (); + if (i != ((long int) (sizeof (char)))) + return 1; + fprintf (f, "%ld", i); } else { - unsigned long i = ulongval (); - if (i != ((long) (sizeof (char)))) - exit (1); - fprintf (f, "%lu\n", i); + unsigned long int i = ulongval (); + if (i != ((long int) (sizeof (char)))) + return 1; + fprintf (f, "%lu", i); } - exit (ferror (f) || fclose (f) != 0); + /* Do not output a trailing newline, as this causes \r\n confusion + on some platforms. */ + return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_sizeof_char=`cat conftest.val` else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) -{ { echo "$as_me:$LINENO: error: cannot compute sizeof (char), 77 +if test "$ac_cv_type_char" = yes; then + { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (char) See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute sizeof (char), 77 +$as_echo "$as_me: error: cannot compute sizeof (char) See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } -fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext + { (exit 77); exit 77; }; }; } + else + ac_cv_sizeof_char=0 + fi fi +rm -rf conftest.dSYM +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi rm -f conftest.val -else - ac_cv_sizeof_char=0 fi -fi -echo "$as_me:$LINENO: result: $ac_cv_sizeof_char" >&5 -echo "${ECHO_T}$ac_cv_sizeof_char" >&6 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_sizeof_char" >&5 +$as_echo "$ac_cv_sizeof_char" >&6; } + + + cat >>confdefs.h <<_ACEOF #define SIZEOF_CHAR $ac_cv_sizeof_char _ACEOF -echo "$as_me:$LINENO: checking for short" >&5 -echo $ECHO_N "checking for short... $ECHO_C" >&6 -if test "${ac_cv_type_short+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +# The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ $as_echo "$as_me:$LINENO: checking size of short" >&5 +$as_echo_n "checking size of short... " >&6; } +if test "${ac_cv_sizeof_short+set}" = set; then + $as_echo_n "(cached) " >&6 else - cat >conftest.$ac_ext <<_ACEOF + if test "$cross_compiling" = yes; then + # Depending upon the size, compute the lo and hi bounds. +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -18693,61 +20130,34 @@ $ac_includes_default int main () { -if ((short *) 0) - return 0; -if (sizeof (short)) - return 0; +static int test_array [1 - 2 * !(((long int) (sizeof (short))) >= 0)]; +test_array [0] = 0 + ; return 0; } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_short=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_type_short=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_short" >&5 -echo "${ECHO_T}$ac_cv_type_short" >&6 - -echo "$as_me:$LINENO: checking size of short" >&5 -echo $ECHO_N "checking size of short... $ECHO_C" >&6 -if test "${ac_cv_sizeof_short+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$ac_cv_type_short" = yes; then - # The cast to unsigned long works around a bug in the HP C Compiler - # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects - # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. - # This bug is HP SR number 8606223364. - if test "$cross_compiling" = yes; then - # Depending upon the size, compute the lo and hi bounds. -cat >conftest.$ac_ext <<_ACEOF + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_lo=0 ac_mid=0 + while :; do + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -18757,7 +20167,7 @@ $ac_includes_default int main () { -static int test_array [1 - 2 * !(((long) (sizeof (short))) >= 0)]; +static int test_array [1 - 2 * !(((long int) (sizeof (short))) <= $ac_mid)]; test_array [0] = 0 ; @@ -18765,87 +20175,43 @@ test_array [0] = 0 } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_lo=0 ac_mid=0 - while :; do - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -static int test_array [1 - 2 * !(((long) (sizeof (short))) <= $ac_mid)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_hi=$ac_mid; break else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_lo=`expr $ac_mid + 1` - if test $ac_lo -le $ac_mid; then - ac_lo= ac_hi= - break - fi - ac_mid=`expr 2 '*' $ac_mid + 1` + ac_lo=`expr $ac_mid + 1` + if test $ac_lo -le $ac_mid; then + ac_lo= ac_hi= + break + fi + ac_mid=`expr 2 '*' $ac_mid + 1` fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -cat >conftest.$ac_ext <<_ACEOF + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -18855,7 +20221,7 @@ $ac_includes_default int main () { -static int test_array [1 - 2 * !(((long) (sizeof (short))) < 0)]; +static int test_array [1 - 2 * !(((long int) (sizeof (short))) < 0)]; test_array [0] = 0 ; @@ -18863,27 +20229,23 @@ test_array [0] = 0 } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_hi=-1 ac_mid=-1 while :; do cat >conftest.$ac_ext <<_ACEOF @@ -18896,7 +20258,7 @@ $ac_includes_default int main () { -static int test_array [1 - 2 * !(((long) (sizeof (short))) >= $ac_mid)]; +static int test_array [1 - 2 * !(((long int) (sizeof (short))) >= $ac_mid)]; test_array [0] = 0 ; @@ -18904,50 +20266,49 @@ test_array [0] = 0 } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_lo=$ac_mid; break else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_hi=`expr '(' $ac_mid ')' - 1` - if test $ac_mid -le $ac_hi; then - ac_lo= ac_hi= - break - fi - ac_mid=`expr 2 '*' $ac_mid` + ac_hi=`expr '(' $ac_mid ')' - 1` + if test $ac_mid -le $ac_hi; then + ac_lo= ac_hi= + break + fi + ac_mid=`expr 2 '*' $ac_mid` fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_lo= ac_hi= + ac_lo= ac_hi= fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext # Binary search between lo and hi bounds. while test "x$ac_lo" != "x$ac_hi"; do ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` @@ -18961,7 +20322,7 @@ $ac_includes_default int main () { -static int test_array [1 - 2 * !(((long) (sizeof (short))) <= $ac_mid)]; +static int test_array [1 - 2 * !(((long int) (sizeof (short))) <= $ac_mid)]; test_array [0] = 0 ; @@ -18969,51 +20330,47 @@ test_array [0] = 0 } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_hi=$ac_mid else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_lo=`expr '(' $ac_mid ')' + 1` + ac_lo=`expr '(' $ac_mid ')' + 1` fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done case $ac_lo in ?*) ac_cv_sizeof_short=$ac_lo;; -'') { { echo "$as_me:$LINENO: error: cannot compute sizeof (short), 77 +'') if test "$ac_cv_type_short" = yes; then + { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (short) See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute sizeof (short), 77 +$as_echo "$as_me: error: cannot compute sizeof (short) See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } ;; + { (exit 77); exit 77; }; }; } + else + ac_cv_sizeof_short=0 + fi ;; esac -else - if test "$cross_compiling" = yes; then - { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot run test program while cross compiling -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -19022,8 +20379,8 @@ cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default -long longval () { return (long) (sizeof (short)); } -unsigned long ulongval () { return (long) (sizeof (short)); } +static long int longval () { return (long int) (sizeof (short)); } +static unsigned long int ulongval () { return (long int) (sizeof (short)); } #include #include int @@ -19032,133 +20389,94 @@ main () FILE *f = fopen ("conftest.val", "w"); if (! f) - exit (1); - if (((long) (sizeof (short))) < 0) + return 1; + if (((long int) (sizeof (short))) < 0) { - long i = longval (); - if (i != ((long) (sizeof (short)))) - exit (1); - fprintf (f, "%ld\n", i); + long int i = longval (); + if (i != ((long int) (sizeof (short)))) + return 1; + fprintf (f, "%ld", i); } else { - unsigned long i = ulongval (); - if (i != ((long) (sizeof (short)))) - exit (1); - fprintf (f, "%lu\n", i); + unsigned long int i = ulongval (); + if (i != ((long int) (sizeof (short)))) + return 1; + fprintf (f, "%lu", i); } - exit (ferror (f) || fclose (f) != 0); + /* Do not output a trailing newline, as this causes \r\n confusion + on some platforms. */ + return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_sizeof_short=`cat conftest.val` else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) -{ { echo "$as_me:$LINENO: error: cannot compute sizeof (short), 77 +if test "$ac_cv_type_short" = yes; then + { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (short) See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute sizeof (short), 77 +$as_echo "$as_me: error: cannot compute sizeof (short) See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } -fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext + { (exit 77); exit 77; }; }; } + else + ac_cv_sizeof_short=0 + fi fi +rm -rf conftest.dSYM +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi rm -f conftest.val -else - ac_cv_sizeof_short=0 -fi fi -echo "$as_me:$LINENO: result: $ac_cv_sizeof_short" >&5 -echo "${ECHO_T}$ac_cv_sizeof_short" >&6 -cat >>confdefs.h <<_ACEOF -#define SIZEOF_SHORT $ac_cv_sizeof_short -_ACEOF +{ $as_echo "$as_me:$LINENO: result: $ac_cv_sizeof_short" >&5 +$as_echo "$ac_cv_sizeof_short" >&6; } -echo "$as_me:$LINENO: checking for int" >&5 -echo $ECHO_N "checking for int... $ECHO_C" >&6 -if test "${ac_cv_type_int+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -if ((int *) 0) - return 0; -if (sizeof (int)) - return 0; - ; - return 0; -} + +cat >>confdefs.h <<_ACEOF +#define SIZEOF_SHORT $ac_cv_sizeof_short _ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_int=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_type_int=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_int" >&5 -echo "${ECHO_T}$ac_cv_type_int" >&6 -echo "$as_me:$LINENO: checking size of int" >&5 -echo $ECHO_N "checking size of int... $ECHO_C" >&6 +# The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ $as_echo "$as_me:$LINENO: checking size of int" >&5 +$as_echo_n "checking size of int... " >&6; } if test "${ac_cv_sizeof_int+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else - if test "$ac_cv_type_int" = yes; then - # The cast to unsigned long works around a bug in the HP C Compiler - # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects - # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. - # This bug is HP SR number 8606223364. if test "$cross_compiling" = yes; then # Depending upon the size, compute the lo and hi bounds. cat >conftest.$ac_ext <<_ACEOF @@ -19171,7 +20489,7 @@ $ac_includes_default int main () { -static int test_array [1 - 2 * !(((long) (sizeof (int))) >= 0)]; +static int test_array [1 - 2 * !(((long int) (sizeof (int))) >= 0)]; test_array [0] = 0 ; @@ -19179,27 +20497,23 @@ test_array [0] = 0 } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_lo=0 ac_mid=0 while :; do cat >conftest.$ac_ext <<_ACEOF @@ -19212,7 +20526,7 @@ $ac_includes_default int main () { -static int test_array [1 - 2 * !(((long) (sizeof (int))) <= $ac_mid)]; +static int test_array [1 - 2 * !(((long int) (sizeof (int))) <= $ac_mid)]; test_array [0] = 0 ; @@ -19220,46 +20534,43 @@ test_array [0] = 0 } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_hi=$ac_mid; break else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_lo=`expr $ac_mid + 1` - if test $ac_lo -le $ac_mid; then - ac_lo= ac_hi= - break - fi - ac_mid=`expr 2 '*' $ac_mid + 1` + ac_lo=`expr $ac_mid + 1` + if test $ac_lo -le $ac_mid; then + ac_lo= ac_hi= + break + fi + ac_mid=`expr 2 '*' $ac_mid + 1` fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -cat >conftest.$ac_ext <<_ACEOF + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -19269,7 +20580,7 @@ $ac_includes_default int main () { -static int test_array [1 - 2 * !(((long) (sizeof (int))) < 0)]; +static int test_array [1 - 2 * !(((long int) (sizeof (int))) < 0)]; test_array [0] = 0 ; @@ -19277,27 +20588,23 @@ test_array [0] = 0 } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_hi=-1 ac_mid=-1 while :; do cat >conftest.$ac_ext <<_ACEOF @@ -19310,7 +20617,7 @@ $ac_includes_default int main () { -static int test_array [1 - 2 * !(((long) (sizeof (int))) >= $ac_mid)]; +static int test_array [1 - 2 * !(((long int) (sizeof (int))) >= $ac_mid)]; test_array [0] = 0 ; @@ -19318,50 +20625,49 @@ test_array [0] = 0 } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_lo=$ac_mid; break else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_hi=`expr '(' $ac_mid ')' - 1` - if test $ac_mid -le $ac_hi; then - ac_lo= ac_hi= - break - fi - ac_mid=`expr 2 '*' $ac_mid` + ac_hi=`expr '(' $ac_mid ')' - 1` + if test $ac_mid -le $ac_hi; then + ac_lo= ac_hi= + break + fi + ac_mid=`expr 2 '*' $ac_mid` fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_lo= ac_hi= + ac_lo= ac_hi= fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext # Binary search between lo and hi bounds. while test "x$ac_lo" != "x$ac_hi"; do ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` @@ -19375,7 +20681,7 @@ $ac_includes_default int main () { -static int test_array [1 - 2 * !(((long) (sizeof (int))) <= $ac_mid)]; +static int test_array [1 - 2 * !(((long int) (sizeof (int))) <= $ac_mid)]; test_array [0] = 0 ; @@ -19383,51 +20689,47 @@ test_array [0] = 0 } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_hi=$ac_mid else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_lo=`expr '(' $ac_mid ')' + 1` + ac_lo=`expr '(' $ac_mid ')' + 1` fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done case $ac_lo in ?*) ac_cv_sizeof_int=$ac_lo;; -'') { { echo "$as_me:$LINENO: error: cannot compute sizeof (int), 77 +'') if test "$ac_cv_type_int" = yes; then + { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (int) See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute sizeof (int), 77 +$as_echo "$as_me: error: cannot compute sizeof (int) See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } ;; + { (exit 77); exit 77; }; }; } + else + ac_cv_sizeof_int=0 + fi ;; esac -else - if test "$cross_compiling" = yes; then - { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot run test program while cross compiling -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -19436,8 +20738,8 @@ cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default -long longval () { return (long) (sizeof (int)); } -unsigned long ulongval () { return (long) (sizeof (int)); } +static long int longval () { return (long int) (sizeof (int)); } +static unsigned long int ulongval () { return (long int) (sizeof (int)); } #include #include int @@ -19446,133 +20748,94 @@ main () FILE *f = fopen ("conftest.val", "w"); if (! f) - exit (1); - if (((long) (sizeof (int))) < 0) + return 1; + if (((long int) (sizeof (int))) < 0) { - long i = longval (); - if (i != ((long) (sizeof (int)))) - exit (1); - fprintf (f, "%ld\n", i); + long int i = longval (); + if (i != ((long int) (sizeof (int)))) + return 1; + fprintf (f, "%ld", i); } else { - unsigned long i = ulongval (); - if (i != ((long) (sizeof (int)))) - exit (1); - fprintf (f, "%lu\n", i); + unsigned long int i = ulongval (); + if (i != ((long int) (sizeof (int)))) + return 1; + fprintf (f, "%lu", i); } - exit (ferror (f) || fclose (f) != 0); + /* Do not output a trailing newline, as this causes \r\n confusion + on some platforms. */ + return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_sizeof_int=`cat conftest.val` else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) -{ { echo "$as_me:$LINENO: error: cannot compute sizeof (int), 77 +if test "$ac_cv_type_int" = yes; then + { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (int) See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute sizeof (int), 77 +$as_echo "$as_me: error: cannot compute sizeof (int) See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } -fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext + { (exit 77); exit 77; }; }; } + else + ac_cv_sizeof_int=0 + fi fi +rm -rf conftest.dSYM +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi rm -f conftest.val -else - ac_cv_sizeof_int=0 fi -fi -echo "$as_me:$LINENO: result: $ac_cv_sizeof_int" >&5 -echo "${ECHO_T}$ac_cv_sizeof_int" >&6 -cat >>confdefs.h <<_ACEOF -#define SIZEOF_INT $ac_cv_sizeof_int -_ACEOF +{ $as_echo "$as_me:$LINENO: result: $ac_cv_sizeof_int" >&5 +$as_echo "$ac_cv_sizeof_int" >&6; } -echo "$as_me:$LINENO: checking for long" >&5 -echo $ECHO_N "checking for long... $ECHO_C" >&6 -if test "${ac_cv_type_long+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -if ((long *) 0) - return 0; -if (sizeof (long)) - return 0; - ; - return 0; -} + +cat >>confdefs.h <<_ACEOF +#define SIZEOF_INT $ac_cv_sizeof_int _ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_long=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_type_long=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_long" >&5 -echo "${ECHO_T}$ac_cv_type_long" >&6 -echo "$as_me:$LINENO: checking size of long" >&5 -echo $ECHO_N "checking size of long... $ECHO_C" >&6 +# The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ $as_echo "$as_me:$LINENO: checking size of long" >&5 +$as_echo_n "checking size of long... " >&6; } if test "${ac_cv_sizeof_long+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else - if test "$ac_cv_type_long" = yes; then - # The cast to unsigned long works around a bug in the HP C Compiler - # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects - # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. - # This bug is HP SR number 8606223364. if test "$cross_compiling" = yes; then # Depending upon the size, compute the lo and hi bounds. cat >conftest.$ac_ext <<_ACEOF @@ -19585,7 +20848,7 @@ $ac_includes_default int main () { -static int test_array [1 - 2 * !(((long) (sizeof (long))) >= 0)]; +static int test_array [1 - 2 * !(((long int) (sizeof (long))) >= 0)]; test_array [0] = 0 ; @@ -19593,27 +20856,23 @@ test_array [0] = 0 } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_lo=0 ac_mid=0 while :; do cat >conftest.$ac_ext <<_ACEOF @@ -19626,7 +20885,7 @@ $ac_includes_default int main () { -static int test_array [1 - 2 * !(((long) (sizeof (long))) <= $ac_mid)]; +static int test_array [1 - 2 * !(((long int) (sizeof (long))) <= $ac_mid)]; test_array [0] = 0 ; @@ -19634,46 +20893,43 @@ test_array [0] = 0 } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_hi=$ac_mid; break else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_lo=`expr $ac_mid + 1` - if test $ac_lo -le $ac_mid; then - ac_lo= ac_hi= - break - fi - ac_mid=`expr 2 '*' $ac_mid + 1` + ac_lo=`expr $ac_mid + 1` + if test $ac_lo -le $ac_mid; then + ac_lo= ac_hi= + break + fi + ac_mid=`expr 2 '*' $ac_mid + 1` fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -cat >conftest.$ac_ext <<_ACEOF + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -19683,7 +20939,7 @@ $ac_includes_default int main () { -static int test_array [1 - 2 * !(((long) (sizeof (long))) < 0)]; +static int test_array [1 - 2 * !(((long int) (sizeof (long))) < 0)]; test_array [0] = 0 ; @@ -19691,27 +20947,23 @@ test_array [0] = 0 } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_hi=-1 ac_mid=-1 while :; do cat >conftest.$ac_ext <<_ACEOF @@ -19724,7 +20976,7 @@ $ac_includes_default int main () { -static int test_array [1 - 2 * !(((long) (sizeof (long))) >= $ac_mid)]; +static int test_array [1 - 2 * !(((long int) (sizeof (long))) >= $ac_mid)]; test_array [0] = 0 ; @@ -19732,50 +20984,49 @@ test_array [0] = 0 } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_lo=$ac_mid; break else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_hi=`expr '(' $ac_mid ')' - 1` - if test $ac_mid -le $ac_hi; then - ac_lo= ac_hi= - break - fi - ac_mid=`expr 2 '*' $ac_mid` + ac_hi=`expr '(' $ac_mid ')' - 1` + if test $ac_mid -le $ac_hi; then + ac_lo= ac_hi= + break + fi + ac_mid=`expr 2 '*' $ac_mid` fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_lo= ac_hi= + ac_lo= ac_hi= fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext # Binary search between lo and hi bounds. while test "x$ac_lo" != "x$ac_hi"; do ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` @@ -19789,7 +21040,7 @@ $ac_includes_default int main () { -static int test_array [1 - 2 * !(((long) (sizeof (long))) <= $ac_mid)]; +static int test_array [1 - 2 * !(((long int) (sizeof (long))) <= $ac_mid)]; test_array [0] = 0 ; @@ -19797,51 +21048,47 @@ test_array [0] = 0 } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_hi=$ac_mid else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_lo=`expr '(' $ac_mid ')' + 1` + ac_lo=`expr '(' $ac_mid ')' + 1` fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done case $ac_lo in ?*) ac_cv_sizeof_long=$ac_lo;; -'') { { echo "$as_me:$LINENO: error: cannot compute sizeof (long), 77 +'') if test "$ac_cv_type_long" = yes; then + { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (long) See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute sizeof (long), 77 +$as_echo "$as_me: error: cannot compute sizeof (long) See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } ;; + { (exit 77); exit 77; }; }; } + else + ac_cv_sizeof_long=0 + fi ;; esac -else - if test "$cross_compiling" = yes; then - { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot run test program while cross compiling -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -19850,8 +21097,8 @@ cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default -long longval () { return (long) (sizeof (long)); } -unsigned long ulongval () { return (long) (sizeof (long)); } +static long int longval () { return (long int) (sizeof (long)); } +static unsigned long int ulongval () { return (long int) (sizeof (long)); } #include #include int @@ -19860,133 +21107,94 @@ main () FILE *f = fopen ("conftest.val", "w"); if (! f) - exit (1); - if (((long) (sizeof (long))) < 0) + return 1; + if (((long int) (sizeof (long))) < 0) { - long i = longval (); - if (i != ((long) (sizeof (long)))) - exit (1); - fprintf (f, "%ld\n", i); + long int i = longval (); + if (i != ((long int) (sizeof (long)))) + return 1; + fprintf (f, "%ld", i); } else { - unsigned long i = ulongval (); - if (i != ((long) (sizeof (long)))) - exit (1); - fprintf (f, "%lu\n", i); + unsigned long int i = ulongval (); + if (i != ((long int) (sizeof (long)))) + return 1; + fprintf (f, "%lu", i); } - exit (ferror (f) || fclose (f) != 0); + /* Do not output a trailing newline, as this causes \r\n confusion + on some platforms. */ + return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_sizeof_long=`cat conftest.val` else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) -{ { echo "$as_me:$LINENO: error: cannot compute sizeof (long), 77 +if test "$ac_cv_type_long" = yes; then + { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (long) See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute sizeof (long), 77 +$as_echo "$as_me: error: cannot compute sizeof (long) See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } -fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext + { (exit 77); exit 77; }; }; } + else + ac_cv_sizeof_long=0 + fi fi +rm -rf conftest.dSYM +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi rm -f conftest.val -else - ac_cv_sizeof_long=0 -fi fi -echo "$as_me:$LINENO: result: $ac_cv_sizeof_long" >&5 -echo "${ECHO_T}$ac_cv_sizeof_long" >&6 -cat >>confdefs.h <<_ACEOF -#define SIZEOF_LONG $ac_cv_sizeof_long -_ACEOF +{ $as_echo "$as_me:$LINENO: result: $ac_cv_sizeof_long" >&5 +$as_echo "$ac_cv_sizeof_long" >&6; } -echo "$as_me:$LINENO: checking for char *" >&5 -echo $ECHO_N "checking for char *... $ECHO_C" >&6 -if test "${ac_cv_type_char_p+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -if ((char * *) 0) - return 0; -if (sizeof (char *)) - return 0; - ; - return 0; -} + +cat >>confdefs.h <<_ACEOF +#define SIZEOF_LONG $ac_cv_sizeof_long _ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_char_p=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_type_char_p=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_char_p" >&5 -echo "${ECHO_T}$ac_cv_type_char_p" >&6 -echo "$as_me:$LINENO: checking size of char *" >&5 -echo $ECHO_N "checking size of char *... $ECHO_C" >&6 +# The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ $as_echo "$as_me:$LINENO: checking size of char *" >&5 +$as_echo_n "checking size of char *... " >&6; } if test "${ac_cv_sizeof_char_p+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else - if test "$ac_cv_type_char_p" = yes; then - # The cast to unsigned long works around a bug in the HP C Compiler - # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects - # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. - # This bug is HP SR number 8606223364. if test "$cross_compiling" = yes; then # Depending upon the size, compute the lo and hi bounds. cat >conftest.$ac_ext <<_ACEOF @@ -19999,7 +21207,7 @@ $ac_includes_default int main () { -static int test_array [1 - 2 * !(((long) (sizeof (char *))) >= 0)]; +static int test_array [1 - 2 * !(((long int) (sizeof (char *))) >= 0)]; test_array [0] = 0 ; @@ -20007,27 +21215,23 @@ test_array [0] = 0 } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_lo=0 ac_mid=0 while :; do cat >conftest.$ac_ext <<_ACEOF @@ -20040,7 +21244,7 @@ $ac_includes_default int main () { -static int test_array [1 - 2 * !(((long) (sizeof (char *))) <= $ac_mid)]; +static int test_array [1 - 2 * !(((long int) (sizeof (char *))) <= $ac_mid)]; test_array [0] = 0 ; @@ -20048,46 +21252,43 @@ test_array [0] = 0 } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_hi=$ac_mid; break else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_lo=`expr $ac_mid + 1` - if test $ac_lo -le $ac_mid; then - ac_lo= ac_hi= - break - fi - ac_mid=`expr 2 '*' $ac_mid + 1` + ac_lo=`expr $ac_mid + 1` + if test $ac_lo -le $ac_mid; then + ac_lo= ac_hi= + break + fi + ac_mid=`expr 2 '*' $ac_mid + 1` fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -cat >conftest.$ac_ext <<_ACEOF + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -20097,7 +21298,7 @@ $ac_includes_default int main () { -static int test_array [1 - 2 * !(((long) (sizeof (char *))) < 0)]; +static int test_array [1 - 2 * !(((long int) (sizeof (char *))) < 0)]; test_array [0] = 0 ; @@ -20105,27 +21306,23 @@ test_array [0] = 0 } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_hi=-1 ac_mid=-1 while :; do cat >conftest.$ac_ext <<_ACEOF @@ -20138,7 +21335,7 @@ $ac_includes_default int main () { -static int test_array [1 - 2 * !(((long) (sizeof (char *))) >= $ac_mid)]; +static int test_array [1 - 2 * !(((long int) (sizeof (char *))) >= $ac_mid)]; test_array [0] = 0 ; @@ -20146,50 +21343,49 @@ test_array [0] = 0 } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_lo=$ac_mid; break else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_hi=`expr '(' $ac_mid ')' - 1` - if test $ac_mid -le $ac_hi; then - ac_lo= ac_hi= - break - fi - ac_mid=`expr 2 '*' $ac_mid` + ac_hi=`expr '(' $ac_mid ')' - 1` + if test $ac_mid -le $ac_hi; then + ac_lo= ac_hi= + break + fi + ac_mid=`expr 2 '*' $ac_mid` fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_lo= ac_hi= + ac_lo= ac_hi= fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext # Binary search between lo and hi bounds. while test "x$ac_lo" != "x$ac_hi"; do ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` @@ -20203,7 +21399,7 @@ $ac_includes_default int main () { -static int test_array [1 - 2 * !(((long) (sizeof (char *))) <= $ac_mid)]; +static int test_array [1 - 2 * !(((long int) (sizeof (char *))) <= $ac_mid)]; test_array [0] = 0 ; @@ -20211,51 +21407,47 @@ test_array [0] = 0 } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_hi=$ac_mid else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_lo=`expr '(' $ac_mid ')' + 1` + ac_lo=`expr '(' $ac_mid ')' + 1` fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done case $ac_lo in ?*) ac_cv_sizeof_char_p=$ac_lo;; -'') { { echo "$as_me:$LINENO: error: cannot compute sizeof (char *), 77 +'') if test "$ac_cv_type_char_p" = yes; then + { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (char *) See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute sizeof (char *), 77 +$as_echo "$as_me: error: cannot compute sizeof (char *) See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } ;; + { (exit 77); exit 77; }; }; } + else + ac_cv_sizeof_char_p=0 + fi ;; esac -else - if test "$cross_compiling" = yes; then - { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot run test program while cross compiling -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -20264,8 +21456,8 @@ cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default -long longval () { return (long) (sizeof (char *)); } -unsigned long ulongval () { return (long) (sizeof (char *)); } +static long int longval () { return (long int) (sizeof (char *)); } +static unsigned long int ulongval () { return (long int) (sizeof (char *)); } #include #include int @@ -20274,133 +21466,94 @@ main () FILE *f = fopen ("conftest.val", "w"); if (! f) - exit (1); - if (((long) (sizeof (char *))) < 0) + return 1; + if (((long int) (sizeof (char *))) < 0) { - long i = longval (); - if (i != ((long) (sizeof (char *)))) - exit (1); - fprintf (f, "%ld\n", i); + long int i = longval (); + if (i != ((long int) (sizeof (char *)))) + return 1; + fprintf (f, "%ld", i); } else { - unsigned long i = ulongval (); - if (i != ((long) (sizeof (char *)))) - exit (1); - fprintf (f, "%lu\n", i); + unsigned long int i = ulongval (); + if (i != ((long int) (sizeof (char *)))) + return 1; + fprintf (f, "%lu", i); } - exit (ferror (f) || fclose (f) != 0); + /* Do not output a trailing newline, as this causes \r\n confusion + on some platforms. */ + return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_sizeof_char_p=`cat conftest.val` else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) -{ { echo "$as_me:$LINENO: error: cannot compute sizeof (char *), 77 +if test "$ac_cv_type_char_p" = yes; then + { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (char *) See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute sizeof (char *), 77 +$as_echo "$as_me: error: cannot compute sizeof (char *) See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } -fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext + { (exit 77); exit 77; }; }; } + else + ac_cv_sizeof_char_p=0 + fi fi +rm -rf conftest.dSYM +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi rm -f conftest.val -else - ac_cv_sizeof_char_p=0 fi -fi -echo "$as_me:$LINENO: result: $ac_cv_sizeof_char_p" >&5 -echo "${ECHO_T}$ac_cv_sizeof_char_p" >&6 -cat >>confdefs.h <<_ACEOF -#define SIZEOF_CHAR_P $ac_cv_sizeof_char_p -_ACEOF +{ $as_echo "$as_me:$LINENO: result: $ac_cv_sizeof_char_p" >&5 +$as_echo "$ac_cv_sizeof_char_p" >&6; } -echo "$as_me:$LINENO: checking for double" >&5 -echo $ECHO_N "checking for double... $ECHO_C" >&6 -if test "${ac_cv_type_double+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -if ((double *) 0) - return 0; -if (sizeof (double)) - return 0; - ; - return 0; -} + +cat >>confdefs.h <<_ACEOF +#define SIZEOF_CHAR_P $ac_cv_sizeof_char_p _ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_double=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_type_double=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_double" >&5 -echo "${ECHO_T}$ac_cv_type_double" >&6 -echo "$as_me:$LINENO: checking size of double" >&5 -echo $ECHO_N "checking size of double... $ECHO_C" >&6 +# The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ $as_echo "$as_me:$LINENO: checking size of double" >&5 +$as_echo_n "checking size of double... " >&6; } if test "${ac_cv_sizeof_double+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else - if test "$ac_cv_type_double" = yes; then - # The cast to unsigned long works around a bug in the HP C Compiler - # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects - # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. - # This bug is HP SR number 8606223364. if test "$cross_compiling" = yes; then # Depending upon the size, compute the lo and hi bounds. cat >conftest.$ac_ext <<_ACEOF @@ -20413,7 +21566,7 @@ $ac_includes_default int main () { -static int test_array [1 - 2 * !(((long) (sizeof (double))) >= 0)]; +static int test_array [1 - 2 * !(((long int) (sizeof (double))) >= 0)]; test_array [0] = 0 ; @@ -20421,27 +21574,23 @@ test_array [0] = 0 } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_lo=0 ac_mid=0 while :; do cat >conftest.$ac_ext <<_ACEOF @@ -20454,7 +21603,7 @@ $ac_includes_default int main () { -static int test_array [1 - 2 * !(((long) (sizeof (double))) <= $ac_mid)]; +static int test_array [1 - 2 * !(((long int) (sizeof (double))) <= $ac_mid)]; test_array [0] = 0 ; @@ -20462,46 +21611,43 @@ test_array [0] = 0 } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_hi=$ac_mid; break else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_lo=`expr $ac_mid + 1` - if test $ac_lo -le $ac_mid; then - ac_lo= ac_hi= - break - fi - ac_mid=`expr 2 '*' $ac_mid + 1` + ac_lo=`expr $ac_mid + 1` + if test $ac_lo -le $ac_mid; then + ac_lo= ac_hi= + break + fi + ac_mid=`expr 2 '*' $ac_mid + 1` fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -cat >conftest.$ac_ext <<_ACEOF + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -20511,7 +21657,7 @@ $ac_includes_default int main () { -static int test_array [1 - 2 * !(((long) (sizeof (double))) < 0)]; +static int test_array [1 - 2 * !(((long int) (sizeof (double))) < 0)]; test_array [0] = 0 ; @@ -20519,27 +21665,23 @@ test_array [0] = 0 } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_hi=-1 ac_mid=-1 while :; do cat >conftest.$ac_ext <<_ACEOF @@ -20552,7 +21694,7 @@ $ac_includes_default int main () { -static int test_array [1 - 2 * !(((long) (sizeof (double))) >= $ac_mid)]; +static int test_array [1 - 2 * !(((long int) (sizeof (double))) >= $ac_mid)]; test_array [0] = 0 ; @@ -20560,50 +21702,49 @@ test_array [0] = 0 } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_lo=$ac_mid; break else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_hi=`expr '(' $ac_mid ')' - 1` - if test $ac_mid -le $ac_hi; then - ac_lo= ac_hi= - break - fi - ac_mid=`expr 2 '*' $ac_mid` + ac_hi=`expr '(' $ac_mid ')' - 1` + if test $ac_mid -le $ac_hi; then + ac_lo= ac_hi= + break + fi + ac_mid=`expr 2 '*' $ac_mid` fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_lo= ac_hi= + ac_lo= ac_hi= fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext # Binary search between lo and hi bounds. while test "x$ac_lo" != "x$ac_hi"; do ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` @@ -20617,7 +21758,7 @@ $ac_includes_default int main () { -static int test_array [1 - 2 * !(((long) (sizeof (double))) <= $ac_mid)]; +static int test_array [1 - 2 * !(((long int) (sizeof (double))) <= $ac_mid)]; test_array [0] = 0 ; @@ -20625,51 +21766,47 @@ test_array [0] = 0 } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_hi=$ac_mid else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_lo=`expr '(' $ac_mid ')' + 1` + ac_lo=`expr '(' $ac_mid ')' + 1` fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done case $ac_lo in ?*) ac_cv_sizeof_double=$ac_lo;; -'') { { echo "$as_me:$LINENO: error: cannot compute sizeof (double), 77 +'') if test "$ac_cv_type_double" = yes; then + { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (double) See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute sizeof (double), 77 +$as_echo "$as_me: error: cannot compute sizeof (double) See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } ;; + { (exit 77); exit 77; }; }; } + else + ac_cv_sizeof_double=0 + fi ;; esac -else - if test "$cross_compiling" = yes; then - { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot run test program while cross compiling -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -20678,8 +21815,8 @@ cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default -long longval () { return (long) (sizeof (double)); } -unsigned long ulongval () { return (long) (sizeof (double)); } +static long int longval () { return (long int) (sizeof (double)); } +static unsigned long int ulongval () { return (long int) (sizeof (double)); } #include #include int @@ -20688,133 +21825,94 @@ main () FILE *f = fopen ("conftest.val", "w"); if (! f) - exit (1); - if (((long) (sizeof (double))) < 0) + return 1; + if (((long int) (sizeof (double))) < 0) { - long i = longval (); - if (i != ((long) (sizeof (double)))) - exit (1); - fprintf (f, "%ld\n", i); + long int i = longval (); + if (i != ((long int) (sizeof (double)))) + return 1; + fprintf (f, "%ld", i); } else { - unsigned long i = ulongval (); - if (i != ((long) (sizeof (double)))) - exit (1); - fprintf (f, "%lu\n", i); + unsigned long int i = ulongval (); + if (i != ((long int) (sizeof (double)))) + return 1; + fprintf (f, "%lu", i); } - exit (ferror (f) || fclose (f) != 0); + /* Do not output a trailing newline, as this causes \r\n confusion + on some platforms. */ + return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_sizeof_double=`cat conftest.val` else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) -{ { echo "$as_me:$LINENO: error: cannot compute sizeof (double), 77 +if test "$ac_cv_type_double" = yes; then + { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (double) See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute sizeof (double), 77 +$as_echo "$as_me: error: cannot compute sizeof (double) See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } -fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext + { (exit 77); exit 77; }; }; } + else + ac_cv_sizeof_double=0 + fi fi +rm -rf conftest.dSYM +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi rm -f conftest.val -else - ac_cv_sizeof_double=0 -fi fi -echo "$as_me:$LINENO: result: $ac_cv_sizeof_double" >&5 -echo "${ECHO_T}$ac_cv_sizeof_double" >&6 -cat >>confdefs.h <<_ACEOF -#define SIZEOF_DOUBLE $ac_cv_sizeof_double -_ACEOF +{ $as_echo "$as_me:$LINENO: result: $ac_cv_sizeof_double" >&5 +$as_echo "$ac_cv_sizeof_double" >&6; } -echo "$as_me:$LINENO: checking for long long" >&5 -echo $ECHO_N "checking for long long... $ECHO_C" >&6 -if test "${ac_cv_type_long_long+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -if ((long long *) 0) - return 0; -if (sizeof (long long)) - return 0; - ; - return 0; -} + +cat >>confdefs.h <<_ACEOF +#define SIZEOF_DOUBLE $ac_cv_sizeof_double _ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_long_long=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_type_long_long=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_long_long" >&5 -echo "${ECHO_T}$ac_cv_type_long_long" >&6 -echo "$as_me:$LINENO: checking size of long long" >&5 -echo $ECHO_N "checking size of long long... $ECHO_C" >&6 +# The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ $as_echo "$as_me:$LINENO: checking size of long long" >&5 +$as_echo_n "checking size of long long... " >&6; } if test "${ac_cv_sizeof_long_long+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else - if test "$ac_cv_type_long_long" = yes; then - # The cast to unsigned long works around a bug in the HP C Compiler - # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects - # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. - # This bug is HP SR number 8606223364. if test "$cross_compiling" = yes; then # Depending upon the size, compute the lo and hi bounds. cat >conftest.$ac_ext <<_ACEOF @@ -20827,7 +21925,7 @@ $ac_includes_default int main () { -static int test_array [1 - 2 * !(((long) (sizeof (long long))) >= 0)]; +static int test_array [1 - 2 * !(((long int) (sizeof (long long))) >= 0)]; test_array [0] = 0 ; @@ -20835,27 +21933,23 @@ test_array [0] = 0 } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_lo=0 ac_mid=0 while :; do cat >conftest.$ac_ext <<_ACEOF @@ -20868,7 +21962,7 @@ $ac_includes_default int main () { -static int test_array [1 - 2 * !(((long) (sizeof (long long))) <= $ac_mid)]; +static int test_array [1 - 2 * !(((long int) (sizeof (long long))) <= $ac_mid)]; test_array [0] = 0 ; @@ -20876,46 +21970,43 @@ test_array [0] = 0 } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_hi=$ac_mid; break else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_lo=`expr $ac_mid + 1` - if test $ac_lo -le $ac_mid; then - ac_lo= ac_hi= - break - fi - ac_mid=`expr 2 '*' $ac_mid + 1` + ac_lo=`expr $ac_mid + 1` + if test $ac_lo -le $ac_mid; then + ac_lo= ac_hi= + break + fi + ac_mid=`expr 2 '*' $ac_mid + 1` fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -cat >conftest.$ac_ext <<_ACEOF + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -20925,7 +22016,7 @@ $ac_includes_default int main () { -static int test_array [1 - 2 * !(((long) (sizeof (long long))) < 0)]; +static int test_array [1 - 2 * !(((long int) (sizeof (long long))) < 0)]; test_array [0] = 0 ; @@ -20933,27 +22024,23 @@ test_array [0] = 0 } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_hi=-1 ac_mid=-1 while :; do cat >conftest.$ac_ext <<_ACEOF @@ -20966,7 +22053,7 @@ $ac_includes_default int main () { -static int test_array [1 - 2 * !(((long) (sizeof (long long))) >= $ac_mid)]; +static int test_array [1 - 2 * !(((long int) (sizeof (long long))) >= $ac_mid)]; test_array [0] = 0 ; @@ -20974,50 +22061,49 @@ test_array [0] = 0 } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_lo=$ac_mid; break else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_hi=`expr '(' $ac_mid ')' - 1` - if test $ac_mid -le $ac_hi; then - ac_lo= ac_hi= - break - fi - ac_mid=`expr 2 '*' $ac_mid` + ac_hi=`expr '(' $ac_mid ')' - 1` + if test $ac_mid -le $ac_hi; then + ac_lo= ac_hi= + break + fi + ac_mid=`expr 2 '*' $ac_mid` fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_lo= ac_hi= + ac_lo= ac_hi= fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext # Binary search between lo and hi bounds. while test "x$ac_lo" != "x$ac_hi"; do ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` @@ -21031,7 +22117,7 @@ $ac_includes_default int main () { -static int test_array [1 - 2 * !(((long) (sizeof (long long))) <= $ac_mid)]; +static int test_array [1 - 2 * !(((long int) (sizeof (long long))) <= $ac_mid)]; test_array [0] = 0 ; @@ -21039,51 +22125,47 @@ test_array [0] = 0 } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_hi=$ac_mid else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_lo=`expr '(' $ac_mid ')' + 1` + ac_lo=`expr '(' $ac_mid ')' + 1` fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done case $ac_lo in ?*) ac_cv_sizeof_long_long=$ac_lo;; -'') { { echo "$as_me:$LINENO: error: cannot compute sizeof (long long), 77 +'') if test "$ac_cv_type_long_long" = yes; then + { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (long long) See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute sizeof (long long), 77 +$as_echo "$as_me: error: cannot compute sizeof (long long) See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } ;; + { (exit 77); exit 77; }; }; } + else + ac_cv_sizeof_long_long=0 + fi ;; esac -else - if test "$cross_compiling" = yes; then - { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot run test program while cross compiling -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -21092,8 +22174,8 @@ cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default -long longval () { return (long) (sizeof (long long)); } -unsigned long ulongval () { return (long) (sizeof (long long)); } +static long int longval () { return (long int) (sizeof (long long)); } +static unsigned long int ulongval () { return (long int) (sizeof (long long)); } #include #include int @@ -21102,73 +22184,93 @@ main () FILE *f = fopen ("conftest.val", "w"); if (! f) - exit (1); - if (((long) (sizeof (long long))) < 0) + return 1; + if (((long int) (sizeof (long long))) < 0) { - long i = longval (); - if (i != ((long) (sizeof (long long)))) - exit (1); - fprintf (f, "%ld\n", i); + long int i = longval (); + if (i != ((long int) (sizeof (long long)))) + return 1; + fprintf (f, "%ld", i); } else { - unsigned long i = ulongval (); - if (i != ((long) (sizeof (long long)))) - exit (1); - fprintf (f, "%lu\n", i); + unsigned long int i = ulongval (); + if (i != ((long int) (sizeof (long long)))) + return 1; + fprintf (f, "%lu", i); } - exit (ferror (f) || fclose (f) != 0); + /* Do not output a trailing newline, as this causes \r\n confusion + on some platforms. */ + return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_sizeof_long_long=`cat conftest.val` else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) -{ { echo "$as_me:$LINENO: error: cannot compute sizeof (long long), 77 +if test "$ac_cv_type_long_long" = yes; then + { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (long long) See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute sizeof (long long), 77 +$as_echo "$as_me: error: cannot compute sizeof (long long) See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } -fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext + { (exit 77); exit 77; }; }; } + else + ac_cv_sizeof_long_long=0 + fi fi +rm -rf conftest.dSYM +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi rm -f conftest.val -else - ac_cv_sizeof_long_long=0 fi -fi -echo "$as_me:$LINENO: result: $ac_cv_sizeof_long_long" >&5 -echo "${ECHO_T}$ac_cv_sizeof_long_long" >&6 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_sizeof_long_long" >&5 +$as_echo "$ac_cv_sizeof_long_long" >&6; } + + + cat >>confdefs.h <<_ACEOF #define SIZEOF_LONG_LONG $ac_cv_sizeof_long_long _ACEOF -echo "$as_me:$LINENO: checking for u_int" >&5 -echo $ECHO_N "checking for u_int... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for u_int" >&5 +$as_echo_n "checking for u_int... " >&6; } if test "${ac_cv_type_u_int+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else - cat >conftest.$ac_ext <<_ACEOF + ac_cv_type_u_int=no +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -21178,62 +22280,30 @@ $ac_includes_default int main () { -if ((u_int *) 0) - return 0; if (sizeof (u_int)) - return 0; + return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_u_int=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_type_u_int=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_u_int" >&5 -echo "${ECHO_T}$ac_cv_type_u_int" >&6 -if test $ac_cv_type_u_int = yes; then - : -else - -cat >>confdefs.h <<_ACEOF -#define u_int unsigned int -_ACEOF - -fi - -echo "$as_me:$LINENO: checking for u_long" >&5 -echo $ECHO_N "checking for u_long... $ECHO_C" >&6 -if test "${ac_cv_type_u_long+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -21244,66 +22314,67 @@ $ac_includes_default int main () { -if ((u_long *) 0) - return 0; -if (sizeof (u_long)) - return 0; +if (sizeof ((u_int))) + return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_u_long=yes + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + : +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_type_u_int=yes +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_type_u_long=no + fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_type_u_long" >&5 -echo "${ECHO_T}$ac_cv_type_u_long" >&6 -if test $ac_cv_type_u_long = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_u_int" >&5 +$as_echo "$ac_cv_type_u_int" >&6; } +if test "x$ac_cv_type_u_int" = x""yes; then : else cat >>confdefs.h <<_ACEOF -#define u_long unsigned long +#define u_int unsigned int _ACEOF fi - - -if test "$ac_cv_sizeof_short" = 2; then - echo "$as_me:$LINENO: checking for bits16_t" >&5 -echo $ECHO_N "checking for bits16_t... $ECHO_C" >&6 -if test "${ac_cv_type_bits16_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for u_long" >&5 +$as_echo_n "checking for u_long... " >&6; } +if test "${ac_cv_type_u_long+set}" = set; then + $as_echo_n "(cached) " >&6 else - cat >conftest.$ac_ext <<_ACEOF + ac_cv_type_u_long=no +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -21313,63 +22384,30 @@ $ac_includes_default int main () { -if ((bits16_t *) 0) - return 0; -if (sizeof (bits16_t)) - return 0; +if (sizeof (u_long)) + return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_bits16_t=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_type_bits16_t=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_bits16_t" >&5 -echo "${ECHO_T}$ac_cv_type_bits16_t" >&6 -if test $ac_cv_type_bits16_t = yes; then - : -else - -cat >>confdefs.h <<_ACEOF -#define bits16_t short -_ACEOF - -fi - -elif test "$ac_cv_sizeof_char" = 2; then - echo "$as_me:$LINENO: checking for bits16_t" >&5 -echo $ECHO_N "checking for bits16_t... $ECHO_C" >&6 -if test "${ac_cv_type_bits16_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -21380,64 +22418,70 @@ $ac_includes_default int main () { -if ((bits16_t *) 0) - return 0; -if (sizeof (bits16_t)) - return 0; +if (sizeof ((u_long))) + return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_bits16_t=yes + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + : +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_type_u_long=yes +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_type_bits16_t=no + fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_type_bits16_t" >&5 -echo "${ECHO_T}$ac_cv_type_bits16_t" >&6 -if test $ac_cv_type_bits16_t = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_u_long" >&5 +$as_echo "$ac_cv_type_u_long" >&6; } +if test "x$ac_cv_type_u_long" = x""yes; then : else cat >>confdefs.h <<_ACEOF -#define bits16_t char +#define u_long unsigned long _ACEOF fi -else - echo "$as_me:$LINENO: checking for bits16_t" >&5 -echo $ECHO_N "checking for bits16_t... $ECHO_C" >&6 + + +if test "$ac_cv_sizeof_short" = 2; then + { $as_echo "$as_me:$LINENO: checking for bits16_t" >&5 +$as_echo_n "checking for bits16_t... " >&6; } if test "${ac_cv_type_bits16_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else - cat >conftest.$ac_ext <<_ACEOF + ac_cv_type_bits16_t=no +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -21447,66 +22491,30 @@ $ac_includes_default int main () { -if ((bits16_t *) 0) - return 0; if (sizeof (bits16_t)) - return 0; + return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_bits16_t=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_type_bits16_t=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_bits16_t" >&5 -echo "${ECHO_T}$ac_cv_type_bits16_t" >&6 -if test $ac_cv_type_bits16_t = yes; then - : -else - -cat >>confdefs.h <<_ACEOF -#define bits16_t short -_ACEOF - -fi - -fi - - -if test "$ac_cv_sizeof_short" = 2; then - echo "$as_me:$LINENO: checking for u_bits16_t" >&5 -echo $ECHO_N "checking for u_bits16_t... $ECHO_C" >&6 -if test "${ac_cv_type_u_bits16_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -21517,64 +22525,68 @@ $ac_includes_default int main () { -if ((u_bits16_t *) 0) - return 0; -if (sizeof (u_bits16_t)) - return 0; +if (sizeof ((bits16_t))) + return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_u_bits16_t=yes + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + : +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_type_bits16_t=yes +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_type_u_bits16_t=no + fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_type_u_bits16_t" >&5 -echo "${ECHO_T}$ac_cv_type_u_bits16_t" >&6 -if test $ac_cv_type_u_bits16_t = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_bits16_t" >&5 +$as_echo "$ac_cv_type_bits16_t" >&6; } +if test "x$ac_cv_type_bits16_t" = x""yes; then : else cat >>confdefs.h <<_ACEOF -#define u_bits16_t unsigned short +#define bits16_t short _ACEOF fi elif test "$ac_cv_sizeof_char" = 2; then - echo "$as_me:$LINENO: checking for u_bits16_t" >&5 -echo $ECHO_N "checking for u_bits16_t... $ECHO_C" >&6 -if test "${ac_cv_type_u_bits16_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + { $as_echo "$as_me:$LINENO: checking for bits16_t" >&5 +$as_echo_n "checking for bits16_t... " >&6; } +if test "${ac_cv_type_bits16_t+set}" = set; then + $as_echo_n "(cached) " >&6 else - cat >conftest.$ac_ext <<_ACEOF + ac_cv_type_bits16_t=no +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -21584,63 +22596,30 @@ $ac_includes_default int main () { -if ((u_bits16_t *) 0) - return 0; -if (sizeof (u_bits16_t)) - return 0; +if (sizeof (bits16_t)) + return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_u_bits16_t=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_type_u_bits16_t=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_u_bits16_t" >&5 -echo "${ECHO_T}$ac_cv_type_u_bits16_t" >&6 -if test $ac_cv_type_u_bits16_t = yes; then - : -else - -cat >>confdefs.h <<_ACEOF -#define u_bits16_t unsigned char -_ACEOF - -fi - -else - echo "$as_me:$LINENO: checking for u_bits16_t" >&5 -echo $ECHO_N "checking for u_bits16_t... $ECHO_C" >&6 -if test "${ac_cv_type_u_bits16_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -21651,67 +22630,68 @@ $ac_includes_default int main () { -if ((u_bits16_t *) 0) - return 0; -if (sizeof (u_bits16_t)) - return 0; +if (sizeof ((bits16_t))) + return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_u_bits16_t=yes + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + : +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_type_bits16_t=yes +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_type_u_bits16_t=no + fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_type_u_bits16_t" >&5 -echo "${ECHO_T}$ac_cv_type_u_bits16_t" >&6 -if test $ac_cv_type_u_bits16_t = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_bits16_t" >&5 +$as_echo "$ac_cv_type_bits16_t" >&6; } +if test "x$ac_cv_type_bits16_t" = x""yes; then : else cat >>confdefs.h <<_ACEOF -#define u_bits16_t unsigned short +#define bits16_t char _ACEOF fi -fi - - -if test "$ac_cv_sizeof_int" = 4; then - echo "$as_me:$LINENO: checking for bits32_t" >&5 -echo $ECHO_N "checking for bits32_t... $ECHO_C" >&6 -if test "${ac_cv_type_bits32_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 else - cat >conftest.$ac_ext <<_ACEOF + { $as_echo "$as_me:$LINENO: checking for bits16_t" >&5 +$as_echo_n "checking for bits16_t... " >&6; } +if test "${ac_cv_type_bits16_t+set}" = set; then + $as_echo_n "(cached) " >&6 +else + ac_cv_type_bits16_t=no +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -21721,63 +22701,30 @@ $ac_includes_default int main () { -if ((bits32_t *) 0) - return 0; -if (sizeof (bits32_t)) - return 0; +if (sizeof (bits16_t)) + return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_bits32_t=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_type_bits32_t=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_bits32_t" >&5 -echo "${ECHO_T}$ac_cv_type_bits32_t" >&6 -if test $ac_cv_type_bits32_t = yes; then - : -else - -cat >>confdefs.h <<_ACEOF -#define bits32_t int -_ACEOF - -fi - -elif test "$ac_cv_sizeof_long" = 4; then - echo "$as_me:$LINENO: checking for bits32_t" >&5 -echo $ECHO_N "checking for bits32_t... $ECHO_C" >&6 -if test "${ac_cv_type_bits32_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -21788,64 +22735,71 @@ $ac_includes_default int main () { -if ((bits32_t *) 0) - return 0; -if (sizeof (bits32_t)) - return 0; +if (sizeof ((bits16_t))) + return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_bits32_t=yes + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + : +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_type_bits16_t=yes +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_type_bits32_t=no + fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_type_bits32_t" >&5 -echo "${ECHO_T}$ac_cv_type_bits32_t" >&6 -if test $ac_cv_type_bits32_t = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_bits16_t" >&5 +$as_echo "$ac_cv_type_bits16_t" >&6; } +if test "x$ac_cv_type_bits16_t" = x""yes; then : else cat >>confdefs.h <<_ACEOF -#define bits32_t long +#define bits16_t short _ACEOF fi +fi + + +if test "$ac_cv_sizeof_short" = 2; then + { $as_echo "$as_me:$LINENO: checking for u_bits16_t" >&5 +$as_echo_n "checking for u_bits16_t... " >&6; } +if test "${ac_cv_type_u_bits16_t+set}" = set; then + $as_echo_n "(cached) " >&6 else - echo "$as_me:$LINENO: checking for bits32_t" >&5 -echo $ECHO_N "checking for bits32_t... $ECHO_C" >&6 -if test "${ac_cv_type_bits32_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF + ac_cv_type_u_bits16_t=no +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -21855,66 +22809,30 @@ $ac_includes_default int main () { -if ((bits32_t *) 0) - return 0; -if (sizeof (bits32_t)) - return 0; +if (sizeof (u_bits16_t)) + return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_bits32_t=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_type_bits32_t=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_bits32_t" >&5 -echo "${ECHO_T}$ac_cv_type_bits32_t" >&6 -if test $ac_cv_type_bits32_t = yes; then - : -else - -cat >>confdefs.h <<_ACEOF -#define bits32_t int -_ACEOF - -fi - -fi - - -if test "$ac_cv_sizeof_int" = 4; then - echo "$as_me:$LINENO: checking for u_bits32_t" >&5 -echo $ECHO_N "checking for u_bits32_t... $ECHO_C" >&6 -if test "${ac_cv_type_u_bits32_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -21925,64 +22843,68 @@ $ac_includes_default int main () { -if ((u_bits32_t *) 0) - return 0; -if (sizeof (u_bits32_t)) - return 0; +if (sizeof ((u_bits16_t))) + return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_u_bits32_t=yes + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + : +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_type_u_bits16_t=yes +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_type_u_bits32_t=no + fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_type_u_bits32_t" >&5 -echo "${ECHO_T}$ac_cv_type_u_bits32_t" >&6 -if test $ac_cv_type_u_bits32_t = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_u_bits16_t" >&5 +$as_echo "$ac_cv_type_u_bits16_t" >&6; } +if test "x$ac_cv_type_u_bits16_t" = x""yes; then : else cat >>confdefs.h <<_ACEOF -#define u_bits32_t unsigned int +#define u_bits16_t unsigned short _ACEOF fi -elif test "$ac_cv_sizeof_long" = 4; then - echo "$as_me:$LINENO: checking for u_bits32_t" >&5 -echo $ECHO_N "checking for u_bits32_t... $ECHO_C" >&6 -if test "${ac_cv_type_u_bits32_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 +elif test "$ac_cv_sizeof_char" = 2; then + { $as_echo "$as_me:$LINENO: checking for u_bits16_t" >&5 +$as_echo_n "checking for u_bits16_t... " >&6; } +if test "${ac_cv_type_u_bits16_t+set}" = set; then + $as_echo_n "(cached) " >&6 else - cat >conftest.$ac_ext <<_ACEOF + ac_cv_type_u_bits16_t=no +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -21992,64 +22914,633 @@ $ac_includes_default int main () { -if ((u_bits32_t *) 0) - return 0; -if (sizeof (u_bits32_t)) - return 0; +if (sizeof (u_bits16_t)) + return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_u_bits32_t=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_type_u_bits32_t=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_u_bits32_t" >&5 -echo "${ECHO_T}$ac_cv_type_u_bits32_t" >&6 -if test $ac_cv_type_u_bits32_t = yes; then - : -else - -cat >>confdefs.h <<_ACEOF -#define u_bits32_t unsigned long + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +if (sizeof ((u_bits16_t))) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + : +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_type_u_bits16_t=yes +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_u_bits16_t" >&5 +$as_echo "$ac_cv_type_u_bits16_t" >&6; } +if test "x$ac_cv_type_u_bits16_t" = x""yes; then + : +else + +cat >>confdefs.h <<_ACEOF +#define u_bits16_t unsigned char +_ACEOF + +fi + +else + { $as_echo "$as_me:$LINENO: checking for u_bits16_t" >&5 +$as_echo_n "checking for u_bits16_t... " >&6; } +if test "${ac_cv_type_u_bits16_t+set}" = set; then + $as_echo_n "(cached) " >&6 +else + ac_cv_type_u_bits16_t=no +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +if (sizeof (u_bits16_t)) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +if (sizeof ((u_bits16_t))) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + : +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_type_u_bits16_t=yes +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_u_bits16_t" >&5 +$as_echo "$ac_cv_type_u_bits16_t" >&6; } +if test "x$ac_cv_type_u_bits16_t" = x""yes; then + : +else + +cat >>confdefs.h <<_ACEOF +#define u_bits16_t unsigned short +_ACEOF + +fi + +fi + + +if test "$ac_cv_sizeof_int" = 4; then + { $as_echo "$as_me:$LINENO: checking for bits32_t" >&5 +$as_echo_n "checking for bits32_t... " >&6; } +if test "${ac_cv_type_bits32_t+set}" = set; then + $as_echo_n "(cached) " >&6 +else + ac_cv_type_bits32_t=no +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +if (sizeof (bits32_t)) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +if (sizeof ((bits32_t))) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + : +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_type_bits32_t=yes +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_bits32_t" >&5 +$as_echo "$ac_cv_type_bits32_t" >&6; } +if test "x$ac_cv_type_bits32_t" = x""yes; then + : +else + +cat >>confdefs.h <<_ACEOF +#define bits32_t int +_ACEOF + +fi + +elif test "$ac_cv_sizeof_long" = 4; then + { $as_echo "$as_me:$LINENO: checking for bits32_t" >&5 +$as_echo_n "checking for bits32_t... " >&6; } +if test "${ac_cv_type_bits32_t+set}" = set; then + $as_echo_n "(cached) " >&6 +else + ac_cv_type_bits32_t=no +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +if (sizeof (bits32_t)) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +if (sizeof ((bits32_t))) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + : +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_type_bits32_t=yes +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_bits32_t" >&5 +$as_echo "$ac_cv_type_bits32_t" >&6; } +if test "x$ac_cv_type_bits32_t" = x""yes; then + : +else + +cat >>confdefs.h <<_ACEOF +#define bits32_t long +_ACEOF + +fi + +else + { $as_echo "$as_me:$LINENO: checking for bits32_t" >&5 +$as_echo_n "checking for bits32_t... " >&6; } +if test "${ac_cv_type_bits32_t+set}" = set; then + $as_echo_n "(cached) " >&6 +else + ac_cv_type_bits32_t=no +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +if (sizeof (bits32_t)) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +if (sizeof ((bits32_t))) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + : +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_type_bits32_t=yes +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_bits32_t" >&5 +$as_echo "$ac_cv_type_bits32_t" >&6; } +if test "x$ac_cv_type_bits32_t" = x""yes; then + : +else + +cat >>confdefs.h <<_ACEOF +#define bits32_t int +_ACEOF + +fi + +fi + + +if test "$ac_cv_sizeof_int" = 4; then + { $as_echo "$as_me:$LINENO: checking for u_bits32_t" >&5 +$as_echo_n "checking for u_bits32_t... " >&6; } +if test "${ac_cv_type_u_bits32_t+set}" = set; then + $as_echo_n "(cached) " >&6 +else + ac_cv_type_u_bits32_t=no +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +if (sizeof (u_bits32_t)) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +if (sizeof ((u_bits32_t))) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + : +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_type_u_bits32_t=yes +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_u_bits32_t" >&5 +$as_echo "$ac_cv_type_u_bits32_t" >&6; } +if test "x$ac_cv_type_u_bits32_t" = x""yes; then + : +else + +cat >>confdefs.h <<_ACEOF +#define u_bits32_t unsigned int _ACEOF fi -else - echo "$as_me:$LINENO: checking for u_bits32_t" >&5 -echo $ECHO_N "checking for u_bits32_t... $ECHO_C" >&6 +elif test "$ac_cv_sizeof_long" = 4; then + { $as_echo "$as_me:$LINENO: checking for u_bits32_t" >&5 +$as_echo_n "checking for u_bits32_t... " >&6; } if test "${ac_cv_type_u_bits32_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else - cat >conftest.$ac_ext <<_ACEOF + ac_cv_type_u_bits32_t=no +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -22059,48 +23550,190 @@ $ac_includes_default int main () { -if ((u_bits32_t *) 0) - return 0; if (sizeof (u_bits32_t)) + return 0; + ; return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +if (sizeof ((u_bits32_t))) + return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + : +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_type_u_bits32_t=yes +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_u_bits32_t" >&5 +$as_echo "$ac_cv_type_u_bits32_t" >&6; } +if test "x$ac_cv_type_u_bits32_t" = x""yes; then + : +else + +cat >>confdefs.h <<_ACEOF +#define u_bits32_t unsigned long +_ACEOF + +fi + +else + { $as_echo "$as_me:$LINENO: checking for u_bits32_t" >&5 +$as_echo_n "checking for u_bits32_t... " >&6; } +if test "${ac_cv_type_u_bits32_t+set}" = set; then + $as_echo_n "(cached) " >&6 +else + ac_cv_type_u_bits32_t=no +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +if (sizeof (u_bits32_t)) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +if (sizeof ((u_bits32_t))) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_u_bits32_t=yes + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + : +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_type_u_bits32_t=yes +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_type_u_bits32_t=no + fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_type_u_bits32_t" >&5 -echo "${ECHO_T}$ac_cv_type_u_bits32_t" >&6 -if test $ac_cv_type_u_bits32_t = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_u_bits32_t" >&5 +$as_echo "$ac_cv_type_u_bits32_t" >&6; } +if test "x$ac_cv_type_u_bits32_t" = x""yes; then : else @@ -22114,11 +23747,256 @@ fi if test "$ac_cv_sizeof_char_p" = 8; then - echo "$as_me:$LINENO: checking for bits64_t" >&5 -echo $ECHO_N "checking for bits64_t... $ECHO_C" >&6 + { $as_echo "$as_me:$LINENO: checking for bits64_t" >&5 +$as_echo_n "checking for bits64_t... " >&6; } +if test "${ac_cv_type_bits64_t+set}" = set; then + $as_echo_n "(cached) " >&6 +else + ac_cv_type_bits64_t=no +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +if (sizeof (bits64_t)) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +if (sizeof ((bits64_t))) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + : +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_type_bits64_t=yes +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_bits64_t" >&5 +$as_echo "$ac_cv_type_bits64_t" >&6; } +if test "x$ac_cv_type_bits64_t" = x""yes; then + : +else + +cat >>confdefs.h <<_ACEOF +#define bits64_t char * +_ACEOF + +fi + +elif test "$ac_cv_sizeof_double" = 8; then + { $as_echo "$as_me:$LINENO: checking for bits64_t" >&5 +$as_echo_n "checking for bits64_t... " >&6; } +if test "${ac_cv_type_bits64_t+set}" = set; then + $as_echo_n "(cached) " >&6 +else + ac_cv_type_bits64_t=no +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +if (sizeof (bits64_t)) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +if (sizeof ((bits64_t))) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + : +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_type_bits64_t=yes +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_bits64_t" >&5 +$as_echo "$ac_cv_type_bits64_t" >&6; } +if test "x$ac_cv_type_bits64_t" = x""yes; then + : +else + +cat >>confdefs.h <<_ACEOF +#define bits64_t double +_ACEOF + +fi + +elif test -n "$ac_cv_type_long_long" && test "$ac_cv_sizeof_long_long" = 8; then + { $as_echo "$as_me:$LINENO: checking for bits64_t" >&5 +$as_echo_n "checking for bits64_t... " >&6; } if test "${ac_cv_type_bits64_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else + ac_cv_type_bits64_t=no +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +if (sizeof (bits64_t)) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -22129,64 +24007,68 @@ $ac_includes_default int main () { -if ((bits64_t *) 0) - return 0; -if (sizeof (bits64_t)) - return 0; +if (sizeof ((bits64_t))) + return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_bits64_t=yes + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + : +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_type_bits64_t=yes +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_type_bits64_t=no + fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_type_bits64_t" >&5 -echo "${ECHO_T}$ac_cv_type_bits64_t" >&6 -if test $ac_cv_type_bits64_t = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_bits64_t" >&5 +$as_echo "$ac_cv_type_bits64_t" >&6; } +if test "x$ac_cv_type_bits64_t" = x""yes; then : else cat >>confdefs.h <<_ACEOF -#define bits64_t char * +#define bits64_t long long _ACEOF fi -elif test "$ac_cv_sizeof_double" = 8; then - echo "$as_me:$LINENO: checking for bits64_t" >&5 -echo $ECHO_N "checking for bits64_t... $ECHO_C" >&6 +elif test "$ac_cv_sizeof_long" = 8; then + { $as_echo "$as_me:$LINENO: checking for bits64_t" >&5 +$as_echo_n "checking for bits64_t... " >&6; } if test "${ac_cv_type_bits64_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else - cat >conftest.$ac_ext <<_ACEOF + ac_cv_type_bits64_t=no +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -22196,63 +24078,30 @@ $ac_includes_default int main () { -if ((bits64_t *) 0) - return 0; if (sizeof (bits64_t)) - return 0; + return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_bits64_t=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_type_bits64_t=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_bits64_t" >&5 -echo "${ECHO_T}$ac_cv_type_bits64_t" >&6 -if test $ac_cv_type_bits64_t = yes; then - : -else - -cat >>confdefs.h <<_ACEOF -#define bits64_t double -_ACEOF - -fi - -elif test -n "$ac_cv_type_long_long" && test "$ac_cv_sizeof_long_long" = 8; then - echo "$as_me:$LINENO: checking for bits64_t" >&5 -echo $ECHO_N "checking for bits64_t... $ECHO_C" >&6 -if test "${ac_cv_type_bits64_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -22263,64 +24112,68 @@ $ac_includes_default int main () { -if ((bits64_t *) 0) - return 0; -if (sizeof (bits64_t)) - return 0; +if (sizeof ((bits64_t))) + return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_bits64_t=yes + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + : +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_type_bits64_t=yes +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_type_bits64_t=no + fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_type_bits64_t" >&5 -echo "${ECHO_T}$ac_cv_type_bits64_t" >&6 -if test $ac_cv_type_bits64_t = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_bits64_t" >&5 +$as_echo "$ac_cv_type_bits64_t" >&6; } +if test "x$ac_cv_type_bits64_t" = x""yes; then : else cat >>confdefs.h <<_ACEOF -#define bits64_t long long +#define bits64_t long _ACEOF fi -elif test "$ac_cv_sizeof_long" = 8; then - echo "$as_me:$LINENO: checking for bits64_t" >&5 -echo $ECHO_N "checking for bits64_t... $ECHO_C" >&6 +else + { $as_echo "$as_me:$LINENO: checking for bits64_t" >&5 +$as_echo_n "checking for bits64_t... " >&6; } if test "${ac_cv_type_bits64_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else - cat >conftest.$ac_ext <<_ACEOF + ac_cv_type_bits64_t=no +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -22330,63 +24183,30 @@ $ac_includes_default int main () { -if ((bits64_t *) 0) - return 0; if (sizeof (bits64_t)) - return 0; + return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_bits64_t=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_type_bits64_t=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_bits64_t" >&5 -echo "${ECHO_T}$ac_cv_type_bits64_t" >&6 -if test $ac_cv_type_bits64_t = yes; then - : -else - -cat >>confdefs.h <<_ACEOF -#define bits64_t long -_ACEOF - -fi - -else - echo "$as_me:$LINENO: checking for bits64_t" >&5 -echo $ECHO_N "checking for bits64_t... $ECHO_C" >&6 -if test "${ac_cv_type_bits64_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -22397,48 +24217,51 @@ $ac_includes_default int main () { -if ((bits64_t *) 0) - return 0; -if (sizeof (bits64_t)) - return 0; +if (sizeof ((bits64_t))) + return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_bits64_t=yes + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + : +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_type_bits64_t=yes +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_type_bits64_t=no + fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_type_bits64_t" >&5 -echo "${ECHO_T}$ac_cv_type_bits64_t" >&6 -if test $ac_cv_type_bits64_t = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_bits64_t" >&5 +$as_echo "$ac_cv_type_bits64_t" >&6; } +if test "x$ac_cv_type_bits64_t" = x""yes; then : else @@ -22453,12 +24276,13 @@ fi if test "$ac_cv_sizeof_int" = "$ac_cv_sizeof_char_p"; then - echo "$as_me:$LINENO: checking for ptrdiff_t" >&5 -echo $ECHO_N "checking for ptrdiff_t... $ECHO_C" >&6 + { $as_echo "$as_me:$LINENO: checking for ptrdiff_t" >&5 +$as_echo_n "checking for ptrdiff_t... " >&6; } if test "${ac_cv_type_ptrdiff_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else - cat >conftest.$ac_ext <<_ACEOF + ac_cv_type_ptrdiff_t=no +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -22468,48 +24292,85 @@ $ac_includes_default int main () { -if ((ptrdiff_t *) 0) - return 0; if (sizeof (ptrdiff_t)) - return 0; + return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +if (sizeof ((ptrdiff_t))) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_ptrdiff_t=yes + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + : +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_type_ptrdiff_t=yes +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_type_ptrdiff_t=no + fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_type_ptrdiff_t" >&5 -echo "${ECHO_T}$ac_cv_type_ptrdiff_t" >&6 -if test $ac_cv_type_ptrdiff_t = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_ptrdiff_t" >&5 +$as_echo "$ac_cv_type_ptrdiff_t" >&6; } +if test "x$ac_cv_type_ptrdiff_t" = x""yes; then : else @@ -22520,12 +24381,13 @@ _ACEOF fi elif test "$ac_cv_sizeof_long" = "$ac_cv_sizeof_char_p"; then - echo "$as_me:$LINENO: checking for ptrdiff_t" >&5 -echo $ECHO_N "checking for ptrdiff_t... $ECHO_C" >&6 + { $as_echo "$as_me:$LINENO: checking for ptrdiff_t" >&5 +$as_echo_n "checking for ptrdiff_t... " >&6; } if test "${ac_cv_type_ptrdiff_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else - cat >conftest.$ac_ext <<_ACEOF + ac_cv_type_ptrdiff_t=no +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -22535,48 +24397,85 @@ $ac_includes_default int main () { -if ((ptrdiff_t *) 0) - return 0; if (sizeof (ptrdiff_t)) - return 0; + return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +if (sizeof ((ptrdiff_t))) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_ptrdiff_t=yes + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + : +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_type_ptrdiff_t=yes +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_type_ptrdiff_t=no + fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_type_ptrdiff_t" >&5 -echo "${ECHO_T}$ac_cv_type_ptrdiff_t" >&6 -if test $ac_cv_type_ptrdiff_t = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_ptrdiff_t" >&5 +$as_echo "$ac_cv_type_ptrdiff_t" >&6; } +if test "x$ac_cv_type_ptrdiff_t" = x""yes; then : else @@ -22587,12 +24486,13 @@ _ACEOF fi elif test "$ac_cv_type_long_long" = yes && test "$ac_cv_sizeof_long_long" = "$ac_cv_sizeof_char_p"; then - echo "$as_me:$LINENO: checking for ptrdiff_t" >&5 -echo $ECHO_N "checking for ptrdiff_t... $ECHO_C" >&6 + { $as_echo "$as_me:$LINENO: checking for ptrdiff_t" >&5 +$as_echo_n "checking for ptrdiff_t... " >&6; } if test "${ac_cv_type_ptrdiff_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else - cat >conftest.$ac_ext <<_ACEOF + ac_cv_type_ptrdiff_t=no +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -22602,48 +24502,85 @@ $ac_includes_default int main () { -if ((ptrdiff_t *) 0) - return 0; if (sizeof (ptrdiff_t)) - return 0; + return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +if (sizeof ((ptrdiff_t))) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_ptrdiff_t=yes + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + : +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_type_ptrdiff_t=yes +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_type_ptrdiff_t=no + fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_type_ptrdiff_t" >&5 -echo "${ECHO_T}$ac_cv_type_ptrdiff_t" >&6 -if test $ac_cv_type_ptrdiff_t = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_ptrdiff_t" >&5 +$as_echo "$ac_cv_type_ptrdiff_t" >&6; } +if test "x$ac_cv_type_ptrdiff_t" = x""yes; then : else @@ -22654,12 +24591,13 @@ _ACEOF fi else - echo "$as_me:$LINENO: checking for ptrdiff_t" >&5 -echo $ECHO_N "checking for ptrdiff_t... $ECHO_C" >&6 + { $as_echo "$as_me:$LINENO: checking for ptrdiff_t" >&5 +$as_echo_n "checking for ptrdiff_t... " >&6; } if test "${ac_cv_type_ptrdiff_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else - cat >conftest.$ac_ext <<_ACEOF + ac_cv_type_ptrdiff_t=no +cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -22669,48 +24607,85 @@ $ac_includes_default int main () { -if ((ptrdiff_t *) 0) - return 0; if (sizeof (ptrdiff_t)) - return 0; + return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +if (sizeof ((ptrdiff_t))) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_ptrdiff_t=yes + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + : +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_type_ptrdiff_t=yes +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_type_ptrdiff_t=no + fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_type_ptrdiff_t" >&5 -echo "${ECHO_T}$ac_cv_type_ptrdiff_t" >&6 -if test $ac_cv_type_ptrdiff_t = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_ptrdiff_t" >&5 +$as_echo "$ac_cv_type_ptrdiff_t" >&6; } +if test "x$ac_cv_type_ptrdiff_t" = x""yes; then : else @@ -22723,10 +24698,10 @@ fi fi -echo "$as_me:$LINENO: checking whether stat file-mode macros are broken" >&5 -echo $ECHO_N "checking whether stat file-mode macros are broken... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking whether stat file-mode macros are broken" >&5 +$as_echo_n "checking whether stat file-mode macros are broken... " >&6; } if test "${ac_cv_header_stat_broken+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -22737,42 +24712,53 @@ cat >>conftest.$ac_ext <<_ACEOF #include #include -#if defined(S_ISBLK) && defined(S_IFDIR) -# if S_ISBLK (S_IFDIR) -You lose. -# endif +#if defined S_ISBLK && defined S_IFDIR +extern char c1[S_ISBLK (S_IFDIR) ? -1 : 1]; #endif -#if defined(S_ISBLK) && defined(S_IFCHR) -# if S_ISBLK (S_IFCHR) -You lose. -# endif +#if defined S_ISBLK && defined S_IFCHR +extern char c2[S_ISBLK (S_IFCHR) ? -1 : 1]; #endif -#if defined(S_ISLNK) && defined(S_IFREG) -# if S_ISLNK (S_IFREG) -You lose. -# endif +#if defined S_ISLNK && defined S_IFREG +extern char c3[S_ISLNK (S_IFREG) ? -1 : 1]; #endif -#if defined(S_ISSOCK) && defined(S_IFREG) -# if S_ISSOCK (S_IFREG) -You lose. -# endif +#if defined S_ISSOCK && defined S_IFREG +extern char c4[S_ISSOCK (S_IFREG) ? -1 : 1]; #endif _ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "You lose" >/dev/null 2>&1; then - ac_cv_header_stat_broken=yes -else +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_cv_header_stat_broken=no +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_header_stat_broken=yes fi -rm -f conftest* +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_header_stat_broken" >&5 -echo "${ECHO_T}$ac_cv_header_stat_broken" >&6 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_stat_broken" >&5 +$as_echo "$ac_cv_header_stat_broken" >&6; } if test $ac_cv_header_stat_broken = yes; then cat >>confdefs.h <<\_ACEOF @@ -22782,16 +24768,16 @@ _ACEOF fi -echo "$as_me:$LINENO: checking whether #! works in shell scripts" >&5 -echo $ECHO_N "checking whether #! works in shell scripts... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking whether #! works in shell scripts" >&5 +$as_echo_n "checking whether #! works in shell scripts... " >&6; } if test "${ac_cv_sys_interpreter+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else echo '#! /bin/cat exit 69 ' >conftest chmod u+x conftest -(SHELL=/bin/sh; export SHELL; ./conftest >/dev/null) +(SHELL=/bin/sh; export SHELL; ./conftest >/dev/null 2>&1) if test $? -ne 69; then ac_cv_sys_interpreter=yes else @@ -22799,8 +24785,8 @@ else fi rm -f conftest fi -echo "$as_me:$LINENO: result: $ac_cv_sys_interpreter" >&5 -echo "${ECHO_T}$ac_cv_sys_interpreter" >&6 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_sys_interpreter" >&5 +$as_echo "$ac_cv_sys_interpreter" >&6; } interpval=$ac_cv_sys_interpreter if test $ac_cv_sys_interpreter = yes; then @@ -22811,10 +24797,10 @@ _ACEOF fi if test "$ac_cv_func_lstat" = "no"; then -echo "$as_me:$LINENO: checking for lstat" >&5 -echo $ECHO_N "checking for lstat... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for lstat" >&5 +$as_echo_n "checking for lstat... " >&6; } if test "${bash_cv_func_lstat+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -22835,39 +24821,40 @@ main () } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then bash_cv_func_lstat=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -bash_cv_func_lstat=no + bash_cv_func_lstat=no fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $bash_cv_func_lstat" >&5 -echo "${ECHO_T}$bash_cv_func_lstat" >&6 +{ $as_echo "$as_me:$LINENO: result: $bash_cv_func_lstat" >&5 +$as_echo "$bash_cv_func_lstat" >&6; } if test $bash_cv_func_lstat = yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_LSTAT 1 @@ -22878,14 +24865,14 @@ fi fi -echo "$as_me:$LINENO: checking whether the ctype macros accept non-ascii characters" >&5 -echo $ECHO_N "checking whether the ctype macros accept non-ascii characters... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking whether the ctype macros accept non-ascii characters" >&5 +$as_echo_n "checking whether the ctype macros accept non-ascii characters... " >&6; } if test "${bash_cv_func_ctype_nonascii+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then - { echo "$as_me:$LINENO: WARNING: cannot check ctype macros if cross compiling -- defaulting to no" >&5 -echo "$as_me: WARNING: cannot check ctype macros if cross compiling -- defaulting to no" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: cannot check ctype macros if cross compiling -- defaulting to no" >&5 +$as_echo "$as_me: WARNING: cannot check ctype macros if cross compiling -- defaulting to no" >&2;} bash_cv_func_ctype_nonascii=no else @@ -22928,31 +24915,45 @@ char *v[]; _ACEOF rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then bash_cv_func_ctype_nonascii=yes else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) bash_cv_func_ctype_nonascii=no fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +rm -rf conftest.dSYM +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi + + fi -echo "$as_me:$LINENO: result: $bash_cv_func_ctype_nonascii" >&5 -echo "${ECHO_T}$bash_cv_func_ctype_nonascii" >&6 +{ $as_echo "$as_me:$LINENO: result: $bash_cv_func_ctype_nonascii" >&5 +$as_echo "$bash_cv_func_ctype_nonascii" >&6; } if test $bash_cv_func_ctype_nonascii = yes; then cat >>confdefs.h <<\_ACEOF #define CTYPE_NON_ASCII 1 @@ -22960,14 +24961,14 @@ _ACEOF fi -echo "$as_me:$LINENO: checking if dup2 fails to clear the close-on-exec flag" >&5 -echo $ECHO_N "checking if dup2 fails to clear the close-on-exec flag... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking if dup2 fails to clear the close-on-exec flag" >&5 +$as_echo_n "checking if dup2 fails to clear the close-on-exec flag... " >&6; } if test "${bash_cv_dup2_broken+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then - { echo "$as_me:$LINENO: WARNING: cannot check dup2 if cross compiling -- defaulting to no" >&5 -echo "$as_me: WARNING: cannot check dup2 if cross compiling -- defaulting to no" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: cannot check dup2 if cross compiling -- defaulting to no" >&5 +$as_echo "$as_me: WARNING: cannot check dup2 if cross compiling -- defaulting to no" >&2;} bash_cv_dup2_broken=no else cat >conftest.$ac_ext <<_ACEOF @@ -22995,32 +24996,46 @@ main() _ACEOF rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then bash_cv_dup2_broken=yes else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) bash_cv_dup2_broken=no fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +rm -rf conftest.dSYM +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi + + fi -echo "$as_me:$LINENO: result: $bash_cv_dup2_broken" >&5 -echo "${ECHO_T}$bash_cv_dup2_broken" >&6 +{ $as_echo "$as_me:$LINENO: result: $bash_cv_dup2_broken" >&5 +$as_echo "$bash_cv_dup2_broken" >&6; } if test $bash_cv_dup2_broken = yes; then cat >>confdefs.h <<\_ACEOF #define DUP2_BROKEN 1 @@ -23029,14 +25044,14 @@ _ACEOF fi -echo "$as_me:$LINENO: checking whether pgrps need synchronization" >&5 -echo $ECHO_N "checking whether pgrps need synchronization... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking whether pgrps need synchronization" >&5 +$as_echo_n "checking whether pgrps need synchronization... " >&6; } if test "${bash_cv_pgrp_pipe+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then - { echo "$as_me:$LINENO: WARNING: cannot check pgrp synchronization if cross compiling -- defaulting to no" >&5 -echo "$as_me: WARNING: cannot check pgrp synchronization if cross compiling -- defaulting to no" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: cannot check pgrp synchronization if cross compiling -- defaulting to no" >&5 +$as_echo "$as_me: WARNING: cannot check pgrp synchronization if cross compiling -- defaulting to no" >&2;} bash_cv_pgrp_pipe=no else cat >conftest.$ac_ext <<_ACEOF @@ -23096,32 +25111,46 @@ main() _ACEOF rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then bash_cv_pgrp_pipe=no else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) bash_cv_pgrp_pipe=yes fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +rm -rf conftest.dSYM +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi + + fi -echo "$as_me:$LINENO: result: $bash_cv_pgrp_pipe" >&5 -echo "${ECHO_T}$bash_cv_pgrp_pipe" >&6 +{ $as_echo "$as_me:$LINENO: result: $bash_cv_pgrp_pipe" >&5 +$as_echo "$bash_cv_pgrp_pipe" >&6; } if test $bash_cv_pgrp_pipe = yes; then cat >>confdefs.h <<\_ACEOF #define PGRP_PIPE 1 @@ -23130,10 +25159,10 @@ _ACEOF fi -echo "$as_me:$LINENO: checking for type of signal functions" >&5 -echo $ECHO_N "checking for type of signal functions... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for type of signal functions" >&5 +$as_echo_n "checking for type of signal functions... " >&6; } if test "${bash_cv_signal_vintage+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF @@ -23158,30 +25187,29 @@ main () } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then bash_cv_signal_vintage=posix else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 @@ -23204,30 +25232,29 @@ main () } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then bash_cv_signal_vintage=4.2bsd else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 @@ -23253,50 +25280,55 @@ main () } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then bash_cv_signal_vintage=svr3 else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -bash_cv_signal_vintage=v7 + bash_cv_signal_vintage=v7 fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $bash_cv_signal_vintage" >&5 -echo "${ECHO_T}$bash_cv_signal_vintage" >&6 +{ $as_echo "$as_me:$LINENO: result: $bash_cv_signal_vintage" >&5 +$as_echo "$bash_cv_signal_vintage" >&6; } if test "$bash_cv_signal_vintage" = posix; then cat >>confdefs.h <<\_ACEOF #define HAVE_POSIX_SIGNALS 1 @@ -23315,10 +25347,10 @@ _ACEOF fi -echo "$as_me:$LINENO: checking for sys_errlist and sys_nerr" >&5 -echo $ECHO_N "checking for sys_errlist and sys_nerr... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for sys_errlist and sys_nerr" >&5 +$as_echo_n "checking for sys_errlist and sys_nerr... " >&6; } if test "${bash_cv_sys_errlist+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -23338,39 +25370,40 @@ extern char *sys_errlist[]; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then bash_cv_sys_errlist=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -bash_cv_sys_errlist=no + bash_cv_sys_errlist=no fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $bash_cv_sys_errlist" >&5 -echo "${ECHO_T}$bash_cv_sys_errlist" >&6 +{ $as_echo "$as_me:$LINENO: result: $bash_cv_sys_errlist" >&5 +$as_echo "$bash_cv_sys_errlist" >&6; } if test $bash_cv_sys_errlist = yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_SYS_ERRLIST 1 @@ -23379,14 +25412,14 @@ _ACEOF fi -echo "$as_me:$LINENO: checking for sys_siglist in system C library" >&5 -echo $ECHO_N "checking for sys_siglist in system C library... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for sys_siglist in system C library" >&5 +$as_echo_n "checking for sys_siglist in system C library... " >&6; } if test "${bash_cv_sys_siglist+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then - { echo "$as_me:$LINENO: WARNING: cannot check for sys_siglist if cross compiling -- defaulting to no" >&5 -echo "$as_me: WARNING: cannot check for sys_siglist if cross compiling -- defaulting to no" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: cannot check for sys_siglist if cross compiling -- defaulting to no" >&5 +$as_echo "$as_me: WARNING: cannot check for sys_siglist if cross compiling -- defaulting to no" >&2;} bash_cv_sys_siglist=no else cat >conftest.$ac_ext <<_ACEOF @@ -23401,7 +25434,7 @@ cat >>conftest.$ac_ext <<_ACEOF #ifdef HAVE_UNISTD_H #include #endif -#ifndef SYS_SIGLIST_DECLARED +#if !HAVE_DECL_SYS_SIGLIST extern char *sys_siglist[]; #endif main() @@ -23411,31 +25444,45 @@ exit(msg == 0); } _ACEOF rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then bash_cv_sys_siglist=yes else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) bash_cv_sys_siglist=no fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +rm -rf conftest.dSYM +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi + + fi -echo "$as_me:$LINENO: result: $bash_cv_sys_siglist" >&5 -echo "${ECHO_T}$bash_cv_sys_siglist" >&6 +{ $as_echo "$as_me:$LINENO: result: $bash_cv_sys_siglist" >&5 +$as_echo "$bash_cv_sys_siglist" >&6; } if test $bash_cv_sys_siglist = yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_SYS_SIGLIST 1 @@ -23443,10 +25490,10 @@ _ACEOF fi -echo "$as_me:$LINENO: checking for _sys_siglist in signal.h or unistd.h" >&5 -echo $ECHO_N "checking for _sys_siglist in signal.h or unistd.h... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for _sys_siglist in signal.h or unistd.h" >&5 +$as_echo_n "checking for _sys_siglist in signal.h or unistd.h... " >&6; } if test "${bash_cv_decl_under_sys_siglist+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -23469,38 +25516,35 @@ main () } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then bash_cv_decl_under_sys_siglist=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -bash_cv_decl_under_sys_siglist=no + bash_cv_decl_under_sys_siglist=no fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $bash_cv_decl_under_sys_siglist" >&5 -echo "${ECHO_T}$bash_cv_decl_under_sys_siglist" >&6 +{ $as_echo "$as_me:$LINENO: result: $bash_cv_decl_under_sys_siglist" >&5 +$as_echo "$bash_cv_decl_under_sys_siglist" >&6; } if test $bash_cv_decl_under_sys_siglist = yes; then cat >>confdefs.h <<\_ACEOF #define UNDER_SYS_SIGLIST_DECLARED 1 @@ -23509,14 +25553,14 @@ _ACEOF fi -echo "$as_me:$LINENO: checking for _sys_siglist in system C library" >&5 -echo $ECHO_N "checking for _sys_siglist in system C library... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for _sys_siglist in system C library" >&5 +$as_echo_n "checking for _sys_siglist in system C library... " >&6; } if test "${bash_cv_under_sys_siglist+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then - { echo "$as_me:$LINENO: WARNING: cannot check for _sys_siglist if cross compiling -- defaulting to no" >&5 -echo "$as_me: WARNING: cannot check for _sys_siglist if cross compiling -- defaulting to no" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: cannot check for _sys_siglist if cross compiling -- defaulting to no" >&5 +$as_echo "$as_me: WARNING: cannot check for _sys_siglist if cross compiling -- defaulting to no" >&2;} bash_cv_under_sys_siglist=no else cat >conftest.$ac_ext <<_ACEOF @@ -23541,31 +25585,45 @@ exit(msg == 0); } _ACEOF rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then bash_cv_under_sys_siglist=yes else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) bash_cv_under_sys_siglist=no fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +rm -rf conftest.dSYM +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi + + fi -echo "$as_me:$LINENO: result: $bash_cv_under_sys_siglist" >&5 -echo "${ECHO_T}$bash_cv_under_sys_siglist" >&6 +{ $as_echo "$as_me:$LINENO: result: $bash_cv_under_sys_siglist" >&5 +$as_echo "$bash_cv_under_sys_siglist" >&6; } if test $bash_cv_under_sys_siglist = yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_UNDER_SYS_SIGLIST 1 @@ -23574,10 +25632,10 @@ _ACEOF fi -echo "$as_me:$LINENO: checking whether signal handlers are of type void" >&5 -echo $ECHO_N "checking whether signal handlers are of type void... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking whether signal handlers are of type void" >&5 +$as_echo_n "checking whether signal handlers are of type void... " >&6; } if test "${bash_cv_void_sighandler+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -23603,38 +25661,35 @@ int i; } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then bash_cv_void_sighandler=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -bash_cv_void_sighandler=no + bash_cv_void_sighandler=no fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $bash_cv_void_sighandler" >&5 -echo "${ECHO_T}$bash_cv_void_sighandler" >&6 +{ $as_echo "$as_me:$LINENO: result: $bash_cv_void_sighandler" >&5 +$as_echo "$bash_cv_void_sighandler" >&6; } if test $bash_cv_void_sighandler = yes; then cat >>confdefs.h <<\_ACEOF #define VOID_SIGHANDLER 1 @@ -23644,10 +25699,10 @@ fi -echo "$as_me:$LINENO: checking for clock_t" >&5 -echo $ECHO_N "checking for clock_t... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for clock_t" >&5 +$as_echo_n "checking for clock_t... " >&6; } if test "${bash_cv_type_clock_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -23676,8 +25731,8 @@ rm -f conftest* fi -echo "$as_me:$LINENO: result: $bash_cv_type_clock_t" >&5 -echo "${ECHO_T}$bash_cv_type_clock_t" >&6 +{ $as_echo "$as_me:$LINENO: result: $bash_cv_type_clock_t" >&5 +$as_echo "$bash_cv_type_clock_t" >&6; } if test $bash_cv_type_clock_t = no; then cat >>confdefs.h <<_ACEOF @@ -23688,10 +25743,10 @@ fi -echo "$as_me:$LINENO: checking for sigset_t" >&5 -echo $ECHO_N "checking for sigset_t... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for sigset_t" >&5 +$as_echo_n "checking for sigset_t... " >&6; } if test "${bash_cv_type_sigset_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -23720,8 +25775,8 @@ rm -f conftest* fi -echo "$as_me:$LINENO: result: $bash_cv_type_sigset_t" >&5 -echo "${ECHO_T}$bash_cv_type_sigset_t" >&6 +{ $as_echo "$as_me:$LINENO: result: $bash_cv_type_sigset_t" >&5 +$as_echo "$bash_cv_type_sigset_t" >&6; } if test $bash_cv_type_sigset_t = no; then cat >>confdefs.h <<_ACEOF @@ -23732,10 +25787,10 @@ fi -echo "$as_me:$LINENO: checking for quad_t" >&5 -echo $ECHO_N "checking for quad_t... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for quad_t" >&5 +$as_echo_n "checking for quad_t... " >&6; } if test "${bash_cv_type_quad_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -23764,8 +25819,8 @@ rm -f conftest* fi -echo "$as_me:$LINENO: result: $bash_cv_type_quad_t" >&5 -echo "${ECHO_T}$bash_cv_type_quad_t" >&6 +{ $as_echo "$as_me:$LINENO: result: $bash_cv_type_quad_t" >&5 +$as_echo "$bash_cv_type_quad_t" >&6; } if test $bash_cv_type_quad_t = yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_QUAD_T 1 @@ -23781,10 +25836,10 @@ fi -echo "$as_me:$LINENO: checking for intmax_t" >&5 -echo $ECHO_N "checking for intmax_t... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for intmax_t" >&5 +$as_echo_n "checking for intmax_t... " >&6; } if test "${bash_cv_type_intmax_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -23813,8 +25868,8 @@ rm -f conftest* fi -echo "$as_me:$LINENO: result: $bash_cv_type_intmax_t" >&5 -echo "${ECHO_T}$bash_cv_type_intmax_t" >&6 +{ $as_echo "$as_me:$LINENO: result: $bash_cv_type_intmax_t" >&5 +$as_echo "$bash_cv_type_intmax_t" >&6; } if test $bash_cv_type_intmax_t = no; then cat >>confdefs.h <<_ACEOF @@ -23825,10 +25880,10 @@ fi -echo "$as_me:$LINENO: checking for uintmax_t" >&5 -echo $ECHO_N "checking for uintmax_t... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for uintmax_t" >&5 +$as_echo_n "checking for uintmax_t... " >&6; } if test "${bash_cv_type_uintmax_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -23857,8 +25912,8 @@ rm -f conftest* fi -echo "$as_me:$LINENO: result: $bash_cv_type_uintmax_t" >&5 -echo "${ECHO_T}$bash_cv_type_uintmax_t" >&6 +{ $as_echo "$as_me:$LINENO: result: $bash_cv_type_uintmax_t" >&5 +$as_echo "$bash_cv_type_uintmax_t" >&6; } if test $bash_cv_type_uintmax_t = no; then cat >>confdefs.h <<_ACEOF @@ -23870,10 +25925,10 @@ fi if test "$ac_cv_header_sys_socket_h" = "yes"; then -echo "$as_me:$LINENO: checking for socklen_t" >&5 -echo $ECHO_N "checking for socklen_t... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for socklen_t" >&5 +$as_echo_n "checking for socklen_t... " >&6; } if test "${bash_cv_type_socklen_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -23902,8 +25957,8 @@ rm -f conftest* fi -echo "$as_me:$LINENO: result: $bash_cv_type_socklen_t" >&5 -echo "${ECHO_T}$bash_cv_type_socklen_t" >&6 +{ $as_echo "$as_me:$LINENO: result: $bash_cv_type_socklen_t" >&5 +$as_echo "$bash_cv_type_socklen_t" >&6; } if test $bash_cv_type_socklen_t = yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_SOCKLEN_T 1 @@ -23918,10 +25973,10 @@ _ACEOF fi fi -echo "$as_me:$LINENO: checking for size and type of struct rlimit fields" >&5 -echo $ECHO_N "checking for size and type of struct rlimit fields... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for size and type of struct rlimit fields" >&5 +$as_echo_n "checking for size and type of struct rlimit fields... " >&6; } if test "${bash_cv_type_rlimit+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -23940,36 +25995,32 @@ rlim_t xxx; } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then bash_cv_type_rlimit=rlim_t else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 if test "$cross_compiling" = yes; then - { echo "$as_me:$LINENO: WARNING: cannot check quad_t if cross compiling -- defaulting to long" >&5 -echo "$as_me: WARNING: cannot check quad_t if cross compiling -- defaulting to long" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: cannot check quad_t if cross compiling -- defaulting to long" >&5 +$as_echo "$as_me: WARNING: cannot check quad_t if cross compiling -- defaulting to long" >&2;} bash_cv_type_rlimit=long else cat >conftest.$ac_ext <<_ACEOF @@ -23993,34 +26044,49 @@ main() } _ACEOF rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then bash_cv_type_rlimit=quad_t else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) bash_cv_type_rlimit=long fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +rm -rf conftest.dSYM +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi + + fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $bash_cv_type_rlimit" >&5 -echo "${ECHO_T}$bash_cv_type_rlimit" >&6 +{ $as_echo "$as_me:$LINENO: result: $bash_cv_type_rlimit" >&5 +$as_echo "$bash_cv_type_rlimit" >&6; } if test $bash_cv_type_rlimit = quad_t; then cat >>confdefs.h <<\_ACEOF #define RLIMTYPE quad_t @@ -24035,10 +26101,10 @@ fi -echo "$as_me:$LINENO: checking for struct termios.c_line" >&5 -echo $ECHO_N "checking for struct termios.c_line... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for struct termios.c_line" >&5 +$as_echo_n "checking for struct termios.c_line... " >&6; } if test "${ac_cv_member_struct_termios_c_line+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -24062,33 +26128,29 @@ return 0; } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_cv_member_struct_termios_c_line=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -cat >conftest.$ac_ext <<_ACEOF + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -24110,41 +26172,39 @@ return 0; } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_cv_member_struct_termios_c_line=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_member_struct_termios_c_line=no + ac_cv_member_struct_termios_c_line=no fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_member_struct_termios_c_line" >&5 -echo "${ECHO_T}$ac_cv_member_struct_termios_c_line" >&6 -if test $ac_cv_member_struct_termios_c_line = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_termios_c_line" >&5 +$as_echo "$ac_cv_member_struct_termios_c_line" >&6; } +if test "x$ac_cv_member_struct_termios_c_line" = x""yes; then cat >>confdefs.h <<\_ACEOF #define TERMIOS_LDISC 1 _ACEOF @@ -24153,10 +26213,10 @@ fi -echo "$as_me:$LINENO: checking for struct termio.c_line" >&5 -echo $ECHO_N "checking for struct termio.c_line... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for struct termio.c_line" >&5 +$as_echo_n "checking for struct termio.c_line... " >&6; } if test "${ac_cv_member_struct_termio_c_line+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -24180,33 +26240,29 @@ return 0; } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_cv_member_struct_termio_c_line=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -cat >conftest.$ac_ext <<_ACEOF + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -24228,41 +26284,39 @@ return 0; } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_cv_member_struct_termio_c_line=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_member_struct_termio_c_line=no + ac_cv_member_struct_termio_c_line=no fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_member_struct_termio_c_line" >&5 -echo "${ECHO_T}$ac_cv_member_struct_termio_c_line" >&6 -if test $ac_cv_member_struct_termio_c_line = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_termio_c_line" >&5 +$as_echo "$ac_cv_member_struct_termio_c_line" >&6; } +if test "x$ac_cv_member_struct_termio_c_line" = x""yes; then cat >>confdefs.h <<\_ACEOF #define TERMIO_LDISC 1 _ACEOF @@ -24271,10 +26325,10 @@ fi -echo "$as_me:$LINENO: checking for struct dirent.d_ino" >&5 -echo $ECHO_N "checking for struct dirent.d_ino... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for struct dirent.d_ino" >&5 +$as_echo_n "checking for struct dirent.d_ino... " >&6; } if test "${bash_cv_dirent_has_dino+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -24314,39 +26368,36 @@ struct dirent d; int z; z = d.d_ino; } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then bash_cv_dirent_has_dino=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -bash_cv_dirent_has_dino=no + bash_cv_dirent_has_dino=no fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $bash_cv_dirent_has_dino" >&5 -echo "${ECHO_T}$bash_cv_dirent_has_dino" >&6 +{ $as_echo "$as_me:$LINENO: result: $bash_cv_dirent_has_dino" >&5 +$as_echo "$bash_cv_dirent_has_dino" >&6; } if test $bash_cv_dirent_has_dino = yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_STRUCT_DIRENT_D_INO 1 @@ -24355,10 +26406,10 @@ _ACEOF fi -echo "$as_me:$LINENO: checking for struct dirent.d_fileno" >&5 -echo $ECHO_N "checking for struct dirent.d_fileno... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for struct dirent.d_fileno" >&5 +$as_echo_n "checking for struct dirent.d_fileno... " >&6; } if test "${bash_cv_dirent_has_d_fileno+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -24398,39 +26449,36 @@ struct dirent d; int z; z = d.d_fileno; } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then bash_cv_dirent_has_d_fileno=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -bash_cv_dirent_has_d_fileno=no + bash_cv_dirent_has_d_fileno=no fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $bash_cv_dirent_has_d_fileno" >&5 -echo "${ECHO_T}$bash_cv_dirent_has_d_fileno" >&6 +{ $as_echo "$as_me:$LINENO: result: $bash_cv_dirent_has_d_fileno" >&5 +$as_echo "$bash_cv_dirent_has_d_fileno" >&6; } if test $bash_cv_dirent_has_d_fileno = yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_STRUCT_DIRENT_D_FILENO 1 @@ -24439,10 +26487,10 @@ _ACEOF fi -echo "$as_me:$LINENO: checking for struct dirent.d_namlen" >&5 -echo $ECHO_N "checking for struct dirent.d_namlen... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for struct dirent.d_namlen" >&5 +$as_echo_n "checking for struct dirent.d_namlen... " >&6; } if test "${bash_cv_dirent_has_d_namlen+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -24482,39 +26530,36 @@ struct dirent d; int z; z = d.d_namlen; } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then bash_cv_dirent_has_d_namlen=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -bash_cv_dirent_has_d_namlen=no + bash_cv_dirent_has_d_namlen=no fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $bash_cv_dirent_has_d_namlen" >&5 -echo "${ECHO_T}$bash_cv_dirent_has_d_namlen" >&6 +{ $as_echo "$as_me:$LINENO: result: $bash_cv_dirent_has_d_namlen" >&5 +$as_echo "$bash_cv_dirent_has_d_namlen" >&6; } if test $bash_cv_dirent_has_d_namlen = yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_STRUCT_DIRENT_D_NAMLEN 1 @@ -24522,10 +26567,10 @@ _ACEOF fi -echo "$as_me:$LINENO: checking for struct winsize in sys/ioctl.h and termios.h" >&5 -echo $ECHO_N "checking for struct winsize in sys/ioctl.h and termios.h... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for struct winsize in sys/ioctl.h and termios.h" >&5 +$as_echo_n "checking for struct winsize in sys/ioctl.h and termios.h... " >&6; } if test "${bash_cv_struct_winsize_header+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -24544,33 +26589,29 @@ struct winsize x; } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then bash_cv_struct_winsize_header=ioctl_h else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -cat >conftest.$ac_ext <<_ACEOF + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -24587,63 +26628,61 @@ struct winsize x; } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then bash_cv_struct_winsize_header=termios_h else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -bash_cv_struct_winsize_header=other + bash_cv_struct_winsize_header=other fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi if test $bash_cv_struct_winsize_header = ioctl_h; then - echo "$as_me:$LINENO: result: sys/ioctl.h" >&5 -echo "${ECHO_T}sys/ioctl.h" >&6 + { $as_echo "$as_me:$LINENO: result: sys/ioctl.h" >&5 +$as_echo "sys/ioctl.h" >&6; } cat >>confdefs.h <<\_ACEOF #define STRUCT_WINSIZE_IN_SYS_IOCTL 1 _ACEOF elif test $bash_cv_struct_winsize_header = termios_h; then - echo "$as_me:$LINENO: result: termios.h" >&5 -echo "${ECHO_T}termios.h" >&6 + { $as_echo "$as_me:$LINENO: result: termios.h" >&5 +$as_echo "termios.h" >&6; } cat >>confdefs.h <<\_ACEOF #define STRUCT_WINSIZE_IN_TERMIOS 1 _ACEOF else - echo "$as_me:$LINENO: result: not found" >&5 -echo "${ECHO_T}not found" >&6 + { $as_echo "$as_me:$LINENO: result: not found" >&5 +$as_echo "not found" >&6; } fi -echo "$as_me:$LINENO: checking for struct timeval in sys/time.h and time.h" >&5 -echo $ECHO_N "checking for struct timeval in sys/time.h and time.h... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for struct timeval in sys/time.h and time.h" >&5 +$as_echo_n "checking for struct timeval in sys/time.h and time.h... " >&6; } if test "${bash_cv_struct_timeval+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF @@ -24682,8 +26721,8 @@ rm -f conftest* fi -echo "$as_me:$LINENO: result: $bash_cv_struct_timeval" >&5 -echo "${ECHO_T}$bash_cv_struct_timeval" >&6 +{ $as_echo "$as_me:$LINENO: result: $bash_cv_struct_timeval" >&5 +$as_echo "$bash_cv_struct_timeval" >&6; } if test $bash_cv_struct_timeval = yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_TIMEVAL 1 @@ -24691,10 +26730,10 @@ _ACEOF fi -echo "$as_me:$LINENO: checking for struct stat.st_blocks" >&5 -echo $ECHO_N "checking for struct stat.st_blocks... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for struct stat.st_blocks" >&5 +$as_echo_n "checking for struct stat.st_blocks... " >&6; } if test "${ac_cv_member_struct_stat_st_blocks+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -24714,33 +26753,29 @@ return 0; } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_cv_member_struct_stat_st_blocks=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -cat >conftest.$ac_ext <<_ACEOF + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -24758,41 +26793,39 @@ return 0; } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_cv_member_struct_stat_st_blocks=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_member_struct_stat_st_blocks=no + ac_cv_member_struct_stat_st_blocks=no fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_blocks" >&5 -echo "${ECHO_T}$ac_cv_member_struct_stat_st_blocks" >&6 -if test $ac_cv_member_struct_stat_st_blocks = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_blocks" >&5 +$as_echo "$ac_cv_member_struct_stat_st_blocks" >&6; } +if test "x$ac_cv_member_struct_stat_st_blocks" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_STAT_ST_BLOCKS 1 @@ -24801,10 +26834,10 @@ _ACEOF fi -echo "$as_me:$LINENO: checking whether struct tm is in sys/time.h or time.h" >&5 -echo $ECHO_N "checking whether struct tm is in sys/time.h or time.h... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking whether struct tm is in sys/time.h or time.h" >&5 +$as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; } if test "${ac_cv_struct_tm+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -24818,44 +26851,43 @@ cat >>conftest.$ac_ext <<_ACEOF int main () { -struct tm *tp; tp->tm_sec; +struct tm tm; + int *p = &tm.tm_sec; + return !p; ; return 0; } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_cv_struct_tm=time.h else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_struct_tm=sys/time.h + ac_cv_struct_tm=sys/time.h fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_struct_tm" >&5 -echo "${ECHO_T}$ac_cv_struct_tm" >&6 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_struct_tm" >&5 +$as_echo "$ac_cv_struct_tm" >&6; } if test $ac_cv_struct_tm = sys/time.h; then cat >>confdefs.h <<\_ACEOF @@ -24864,10 +26896,10 @@ _ACEOF fi -echo "$as_me:$LINENO: checking for struct tm.tm_zone" >&5 -echo $ECHO_N "checking for struct tm.tm_zone... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for struct tm.tm_zone" >&5 +$as_echo_n "checking for struct tm.tm_zone... " >&6; } if test "${ac_cv_member_struct_tm_tm_zone+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -24890,33 +26922,29 @@ return 0; } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_cv_member_struct_tm_tm_zone=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -cat >conftest.$ac_ext <<_ACEOF + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -24937,41 +26965,39 @@ return 0; } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then ac_cv_member_struct_tm_tm_zone=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_member_struct_tm_tm_zone=no + ac_cv_member_struct_tm_tm_zone=no fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_member_struct_tm_tm_zone" >&5 -echo "${ECHO_T}$ac_cv_member_struct_tm_tm_zone" >&6 -if test $ac_cv_member_struct_tm_tm_zone = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_tm_tm_zone" >&5 +$as_echo "$ac_cv_member_struct_tm_tm_zone" >&6; } +if test "x$ac_cv_member_struct_tm_tm_zone" = x""yes; then cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_TM_TM_ZONE 1 @@ -24987,10 +27013,80 @@ cat >>confdefs.h <<\_ACEOF _ACEOF else - echo "$as_me:$LINENO: checking for tzname" >&5 -echo $ECHO_N "checking for tzname... $ECHO_C" >&6 + { $as_echo "$as_me:$LINENO: checking whether tzname is declared" >&5 +$as_echo_n "checking whether tzname is declared... " >&6; } +if test "${ac_cv_have_decl_tzname+set}" = set; then + $as_echo_n "(cached) " >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + +int +main () +{ +#ifndef tzname + (void) tzname; +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_have_decl_tzname=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_have_decl_tzname=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_tzname" >&5 +$as_echo "$ac_cv_have_decl_tzname" >&6; } +if test "x$ac_cv_have_decl_tzname" = x""yes; then + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_TZNAME 1 +_ACEOF + + +else + cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_TZNAME 0 +_ACEOF + + +fi + + + { $as_echo "$as_me:$LINENO: checking for tzname" >&5 +$as_echo_n "checking for tzname... " >&6; } if test "${ac_cv_var_tzname+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -24999,52 +27095,53 @@ cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include -#ifndef tzname /* For SGI. */ -extern char *tzname[]; /* RS6000 and others reject char **tzname. */ +#if !HAVE_DECL_TZNAME +extern char *tzname[]; #endif int main () { -atoi(*tzname); +return tzname[0][0]; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then ac_cv_var_tzname=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_var_tzname=no + ac_cv_var_tzname=no fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_var_tzname" >&5 -echo "${ECHO_T}$ac_cv_var_tzname" >&6 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_var_tzname" >&5 +$as_echo "$ac_cv_var_tzname" >&6; } if test $ac_cv_var_tzname = yes; then cat >>confdefs.h <<\_ACEOF @@ -25054,10 +27151,10 @@ _ACEOF fi fi -echo "$as_me:$LINENO: checking for struct timezone in sys/time.h and time.h" >&5 -echo $ECHO_N "checking for struct timezone in sys/time.h and time.h... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for struct timezone in sys/time.h and time.h" >&5 +$as_echo_n "checking for struct timezone in sys/time.h and time.h... " >&6; } if test "${bash_cv_struct_timezone+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF @@ -25096,8 +27193,8 @@ rm -f conftest* fi -echo "$as_me:$LINENO: result: $bash_cv_struct_timezone" >&5 -echo "${ECHO_T}$bash_cv_struct_timezone" >&6 +{ $as_echo "$as_me:$LINENO: result: $bash_cv_struct_timezone" >&5 +$as_echo "$bash_cv_struct_timezone" >&6; } if test $bash_cv_struct_timezone = yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_STRUCT_TIMEZONE 1 @@ -25106,10 +27203,10 @@ _ACEOF fi -echo "$as_me:$LINENO: checking for the existence of strsignal" >&5 -echo $ECHO_N "checking for the existence of strsignal... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for the existence of strsignal" >&5 +$as_echo_n "checking for the existence of strsignal... " >&6; } if test "${bash_cv_have_strsignal+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -25128,40 +27225,41 @@ char *s = (char *)strsignal(2); } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then bash_cv_have_strsignal=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -bash_cv_have_strsignal=no + bash_cv_have_strsignal=no fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $bash_cv_have_strsignal" >&5 -echo "${ECHO_T}$bash_cv_have_strsignal" >&6 +{ $as_echo "$as_me:$LINENO: result: $bash_cv_have_strsignal" >&5 +$as_echo "$bash_cv_have_strsignal" >&6; } if test $bash_cv_have_strsignal = yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_STRSIGNAL 1 @@ -25169,14 +27267,14 @@ _ACEOF fi -echo "$as_me:$LINENO: checking if opendir() opens non-directories" >&5 -echo $ECHO_N "checking if opendir() opens non-directories... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking if opendir() opens non-directories" >&5 +$as_echo_n "checking if opendir() opens non-directories... " >&6; } if test "${bash_cv_opendir_not_robust+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then - { echo "$as_me:$LINENO: WARNING: cannot check opendir if cross compiling -- defaulting to no" >&5 -echo "$as_me: WARNING: cannot check opendir if cross compiling -- defaulting to no" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: cannot check opendir if cross compiling -- defaulting to no" >&5 +$as_echo "$as_me: WARNING: cannot check opendir if cross compiling -- defaulting to no" >&2;} bash_cv_opendir_not_robust=no else @@ -25211,47 +27309,61 @@ main() { DIR *dir; int fd, err; -err = mkdir("/tmp/bash-aclocal", 0700); +err = mkdir("bash-aclocal", 0700); if (err < 0) { perror("mkdir"); exit(1); } -unlink("/tmp/bash-aclocal/not_a_directory"); -fd = open("/tmp/bash-aclocal/not_a_directory", O_WRONLY|O_CREAT|O_EXCL, 0666); +unlink("bash-aclocal/not_a_directory"); +fd = open("bash-aclocal/not_a_directory", O_WRONLY|O_CREAT|O_EXCL, 0666); write(fd, "\n", 1); close(fd); -dir = opendir("/tmp/bash-aclocal/not_a_directory"); -unlink("/tmp/bash-aclocal/not_a_directory"); -rmdir("/tmp/bash-aclocal"); +dir = opendir("bash-aclocal/not_a_directory"); +unlink("bash-aclocal/not_a_directory"); +rmdir("bash-aclocal"); exit (dir == 0); } _ACEOF rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then bash_cv_opendir_not_robust=yes else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) bash_cv_opendir_not_robust=no fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +rm -rf conftest.dSYM +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi + + fi -echo "$as_me:$LINENO: result: $bash_cv_opendir_not_robust" >&5 -echo "${ECHO_T}$bash_cv_opendir_not_robust" >&6 +{ $as_echo "$as_me:$LINENO: result: $bash_cv_opendir_not_robust" >&5 +$as_echo "$bash_cv_opendir_not_robust" >&6; } if test $bash_cv_opendir_not_robust = yes; then cat >>confdefs.h <<\_ACEOF #define OPENDIR_NOT_ROBUST 1 @@ -25259,14 +27371,14 @@ _ACEOF fi -echo "$as_me:$LINENO: checking whether ulimit can substitute for getdtablesize" >&5 -echo $ECHO_N "checking whether ulimit can substitute for getdtablesize... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking whether ulimit can substitute for getdtablesize" >&5 +$as_echo_n "checking whether ulimit can substitute for getdtablesize... " >&6; } if test "${bash_cv_ulimit_maxfds+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then - { echo "$as_me:$LINENO: WARNING: cannot check ulimit if cross compiling -- defaulting to no" >&5 -echo "$as_me: WARNING: cannot check ulimit if cross compiling -- defaulting to no" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: cannot check ulimit if cross compiling -- defaulting to no" >&5 +$as_echo "$as_me: WARNING: cannot check ulimit if cross compiling -- defaulting to no" >&2;} bash_cv_ulimit_maxfds=no else @@ -25285,46 +27397,148 @@ exit (maxfds == -1L); _ACEOF rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then bash_cv_ulimit_maxfds=yes else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +bash_cv_ulimit_maxfds=no +fi +rm -rf conftest.dSYM +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi + + +fi + +{ $as_echo "$as_me:$LINENO: result: $bash_cv_ulimit_maxfds" >&5 +$as_echo "$bash_cv_ulimit_maxfds" >&6; } +if test $bash_cv_ulimit_maxfds = yes; then +cat >>confdefs.h <<\_ACEOF +#define ULIMIT_MAXFDS 1 +_ACEOF + +fi + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:$LINENO: checking whether fpurge is declared" >&5 +$as_echo_n "checking whether fpurge is declared... " >&6; } +if test "${ac_cv_have_decl_fpurge+set}" = set; then + $as_echo_n "(cached) " >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + +int +main () +{ +#ifndef fpurge + (void) fpurge; +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_have_decl_fpurge=yes +else + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -( exit $ac_status ) -bash_cv_ulimit_maxfds=no -fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext + ac_cv_have_decl_fpurge=no fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_fpurge" >&5 +$as_echo "$ac_cv_have_decl_fpurge" >&6; } +if test "x$ac_cv_have_decl_fpurge" = x""yes; then -echo "$as_me:$LINENO: result: $bash_cv_ulimit_maxfds" >&5 -echo "${ECHO_T}$bash_cv_ulimit_maxfds" >&6 -if test $bash_cv_ulimit_maxfds = yes; then -cat >>confdefs.h <<\_ACEOF -#define ULIMIT_MAXFDS 1 +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_FPURGE 1 +_ACEOF + + +else + cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_FPURGE 0 _ACEOF + fi -echo "$as_me:$LINENO: checking to see if getenv can be redefined" >&5 -echo $ECHO_N "checking to see if getenv can be redefined... $ECHO_C" >&6 + + +{ $as_echo "$as_me:$LINENO: checking to see if getenv can be redefined" >&5 +$as_echo_n "checking to see if getenv can be redefined... " >&6; } if test "${bash_cv_getenv_redef+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then - { echo "$as_me:$LINENO: WARNING: cannot check getenv redefinition if cross compiling -- defaulting to yes" >&5 -echo "$as_me: WARNING: cannot check getenv redefinition if cross compiling -- defaulting to yes" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: cannot check getenv redefinition if cross compiling -- defaulting to yes" >&5 +$as_echo "$as_me: WARNING: cannot check getenv redefinition if cross compiling -- defaulting to yes" >&2;} bash_cv_getenv_redef=yes else @@ -25368,31 +27582,45 @@ exit(s == 0); /* force optimizer to leave getenv in */ _ACEOF rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then bash_cv_getenv_redef=yes else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) bash_cv_getenv_redef=no fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +rm -rf conftest.dSYM +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi + + fi -echo "$as_me:$LINENO: result: $bash_cv_getenv_redef" >&5 -echo "${ECHO_T}$bash_cv_getenv_redef" >&6 +{ $as_echo "$as_me:$LINENO: result: $bash_cv_getenv_redef" >&5 +$as_echo "$bash_cv_getenv_redef" >&6; } if test $bash_cv_getenv_redef = yes; then cat >>confdefs.h <<\_ACEOF #define CAN_REDEFINE_GETENV 1 @@ -25401,14 +27629,14 @@ _ACEOF fi if test "$ac_cv_func_getcwd" = "yes"; then -echo "$as_me:$LINENO: checking if getcwd() will dynamically allocate memory" >&5 -echo $ECHO_N "checking if getcwd() will dynamically allocate memory... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking if getcwd() will dynamically allocate memory with 0 size" >&5 +$as_echo_n "checking if getcwd() will dynamically allocate memory with 0 size... " >&6; } if test "${bash_cv_getcwd_malloc+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then - { echo "$as_me:$LINENO: WARNING: cannot check whether getcwd allocates memory when cross-compiling -- defaulting to no" >&5 -echo "$as_me: WARNING: cannot check whether getcwd allocates memory when cross-compiling -- defaulting to no" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: cannot check whether getcwd allocates memory when cross-compiling -- defaulting to no" >&5 +$as_echo "$as_me: WARNING: cannot check whether getcwd allocates memory when cross-compiling -- defaulting to no" >&2;} bash_cv_getcwd_malloc=no else @@ -25433,56 +27661,68 @@ main() _ACEOF rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then bash_cv_getcwd_malloc=yes else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) bash_cv_getcwd_malloc=no fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +rm -rf conftest.dSYM +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi + + fi -echo "$as_me:$LINENO: result: $bash_cv_getcwd_malloc" >&5 -echo "${ECHO_T}$bash_cv_getcwd_malloc" >&6 +{ $as_echo "$as_me:$LINENO: result: $bash_cv_getcwd_malloc" >&5 +$as_echo "$bash_cv_getcwd_malloc" >&6; } if test $bash_cv_getcwd_malloc = no; then cat >>confdefs.h <<\_ACEOF #define GETCWD_BROKEN 1 _ACEOF -case $LIBOBJS in - "getcwd.$ac_objext" | \ - *" getcwd.$ac_objext" | \ - "getcwd.$ac_objext "* | \ +case " $LIBOBJS " in *" getcwd.$ac_objext "* ) ;; - *) LIBOBJS="$LIBOBJS getcwd.$ac_objext" ;; + *) LIBOBJS="$LIBOBJS getcwd.$ac_objext" + ;; esac fi fi -echo "$as_me:$LINENO: checking for presence of POSIX-style sigsetjmp/siglongjmp" >&5 -echo $ECHO_N "checking for presence of POSIX-style sigsetjmp/siglongjmp... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for presence of POSIX-style sigsetjmp/siglongjmp" >&5 +$as_echo_n "checking for presence of POSIX-style sigsetjmp/siglongjmp... " >&6; } if test "${bash_cv_func_sigsetjmp+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then - { echo "$as_me:$LINENO: WARNING: cannot check for sigsetjmp/siglongjmp if cross-compiling -- defaulting to missing" >&5 -echo "$as_me: WARNING: cannot check for sigsetjmp/siglongjmp if cross-compiling -- defaulting to missing" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: cannot check for sigsetjmp/siglongjmp if cross-compiling -- defaulting to missing" >&5 +$as_echo "$as_me: WARNING: cannot check for sigsetjmp/siglongjmp if cross-compiling -- defaulting to missing" >&2;} bash_cv_func_sigsetjmp=missing else @@ -25532,31 +27772,45 @@ exit(1); } _ACEOF rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then bash_cv_func_sigsetjmp=present else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) bash_cv_func_sigsetjmp=missing fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +rm -rf conftest.dSYM +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi + + fi -echo "$as_me:$LINENO: result: $bash_cv_func_sigsetjmp" >&5 -echo "${ECHO_T}$bash_cv_func_sigsetjmp" >&6 +{ $as_echo "$as_me:$LINENO: result: $bash_cv_func_sigsetjmp" >&5 +$as_echo "$bash_cv_func_sigsetjmp" >&6; } if test $bash_cv_func_sigsetjmp = present; then cat >>confdefs.h <<\_ACEOF #define HAVE_POSIX_SIGSETJMP 1 @@ -25565,14 +27819,14 @@ _ACEOF fi -echo "$as_me:$LINENO: checking whether or not strcoll and strcmp differ" >&5 -echo $ECHO_N "checking whether or not strcoll and strcmp differ... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking whether or not strcoll and strcmp differ" >&5 +$as_echo_n "checking whether or not strcoll and strcmp differ... " >&6; } if test "${bash_cv_func_strcoll_broken+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then - { echo "$as_me:$LINENO: WARNING: cannot check strcoll if cross compiling -- defaulting to no" >&5 -echo "$as_me: WARNING: cannot check strcoll if cross compiling -- defaulting to no" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: cannot check strcoll if cross compiling -- defaulting to no" >&5 +$as_echo "$as_me: WARNING: cannot check strcoll if cross compiling -- defaulting to no" >&2;} bash_cv_func_strcoll_broken=no else @@ -25620,31 +27874,45 @@ char *v[]; _ACEOF rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then bash_cv_func_strcoll_broken=yes else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) bash_cv_func_strcoll_broken=no fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +rm -rf conftest.dSYM +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi + + fi -echo "$as_me:$LINENO: result: $bash_cv_func_strcoll_broken" >&5 -echo "${ECHO_T}$bash_cv_func_strcoll_broken" >&6 +{ $as_echo "$as_me:$LINENO: result: $bash_cv_func_strcoll_broken" >&5 +$as_echo "$bash_cv_func_strcoll_broken" >&6; } if test $bash_cv_func_strcoll_broken = yes; then cat >>confdefs.h <<\_ACEOF #define STRCOLL_BROKEN 1 @@ -25658,10 +27926,10 @@ if test "$ac_cv_func_putenv" = "yes"; then -echo "$as_me:$LINENO: checking for standard-conformant putenv declaration" >&5 -echo $ECHO_N "checking for standard-conformant putenv declaration... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for standard-conformant putenv declaration" >&5 +$as_echo_n "checking for standard-conformant putenv declaration... " >&6; } if test "${bash_cv_std_putenv+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -25694,40 +27962,41 @@ return (putenv == 0); } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then bash_cv_std_putenv=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -bash_cv_std_putenv=no + bash_cv_std_putenv=no fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $bash_cv_std_putenv" >&5 -echo "${ECHO_T}$bash_cv_std_putenv" >&6 +{ $as_echo "$as_me:$LINENO: result: $bash_cv_std_putenv" >&5 +$as_echo "$bash_cv_std_putenv" >&6; } if test $bash_cv_std_putenv = yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_STD_PUTENV 1 @@ -25745,10 +28014,10 @@ if test "$ac_cv_func_unsetenv" = "yes"; then -echo "$as_me:$LINENO: checking for standard-conformant unsetenv declaration" >&5 -echo $ECHO_N "checking for standard-conformant unsetenv declaration... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for standard-conformant unsetenv declaration" >&5 +$as_echo_n "checking for standard-conformant unsetenv declaration... " >&6; } if test "${bash_cv_std_unsetenv+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -25781,40 +28050,41 @@ return (unsetenv == 0); } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then bash_cv_std_unsetenv=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -bash_cv_std_unsetenv=no + bash_cv_std_unsetenv=no fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $bash_cv_std_unsetenv" >&5 -echo "${ECHO_T}$bash_cv_std_unsetenv" >&6 +{ $as_echo "$as_me:$LINENO: result: $bash_cv_std_unsetenv" >&5 +$as_echo "$bash_cv_std_unsetenv" >&6; } if test $bash_cv_std_unsetenv = yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_STD_UNSETENV 1 @@ -25829,14 +28099,14 @@ _ACEOF fi -echo "$as_me:$LINENO: checking for printf floating point output in hex notation" >&5 -echo $ECHO_N "checking for printf floating point output in hex notation... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for printf floating point output in hex notation" >&5 +$as_echo_n "checking for printf floating point output in hex notation... " >&6; } if test "${bash_cv_printf_a_format+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then - { echo "$as_me:$LINENO: WARNING: cannot check printf if cross compiling -- defaulting to no" >&5 -echo "$as_me: WARNING: cannot check printf if cross compiling -- defaulting to no" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: cannot check printf if cross compiling -- defaulting to no" >&5 +$as_echo "$as_me: WARNING: cannot check printf if cross compiling -- defaulting to no" >&2;} bash_cv_printf_a_format=no else @@ -25862,31 +28132,45 @@ main() _ACEOF rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then bash_cv_printf_a_format=yes else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) bash_cv_printf_a_format=no fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +rm -rf conftest.dSYM +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi + + fi -echo "$as_me:$LINENO: result: $bash_cv_printf_a_format" >&5 -echo "${ECHO_T}$bash_cv_printf_a_format" >&6 +{ $as_echo "$as_me:$LINENO: result: $bash_cv_printf_a_format" >&5 +$as_echo "$bash_cv_printf_a_format" >&6; } if test $bash_cv_printf_a_format = yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_PRINTF_A_FORMAT 1 @@ -25897,14 +28181,14 @@ fi -echo "$as_me:$LINENO: checking if signal handlers must be reinstalled when invoked" >&5 -echo $ECHO_N "checking if signal handlers must be reinstalled when invoked... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking if signal handlers must be reinstalled when invoked" >&5 +$as_echo_n "checking if signal handlers must be reinstalled when invoked... " >&6; } if test "${bash_cv_must_reinstall_sighandlers+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then - { echo "$as_me:$LINENO: WARNING: cannot check signal handling if cross compiling -- defaulting to no" >&5 -echo "$as_me: WARNING: cannot check signal handling if cross compiling -- defaulting to no" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: cannot check signal handling if cross compiling -- defaulting to no" >&5 +$as_echo "$as_me: WARNING: cannot check signal handling if cross compiling -- defaulting to no" >&2;} bash_cv_must_reinstall_sighandlers=no else @@ -25960,31 +28244,45 @@ main() _ACEOF rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then bash_cv_must_reinstall_sighandlers=no else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) bash_cv_must_reinstall_sighandlers=yes fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +rm -rf conftest.dSYM +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi + + fi -echo "$as_me:$LINENO: result: $bash_cv_must_reinstall_sighandlers" >&5 -echo "${ECHO_T}$bash_cv_must_reinstall_sighandlers" >&6 +{ $as_echo "$as_me:$LINENO: result: $bash_cv_must_reinstall_sighandlers" >&5 +$as_echo "$bash_cv_must_reinstall_sighandlers" >&6; } if test $bash_cv_must_reinstall_sighandlers = yes; then cat >>confdefs.h <<\_ACEOF #define MUST_REINSTALL_SIGHANDLERS 1 @@ -25993,14 +28291,14 @@ _ACEOF fi -echo "$as_me:$LINENO: checking for presence of necessary job control definitions" >&5 -echo $ECHO_N "checking for presence of necessary job control definitions... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for presence of necessary job control definitions" >&5 +$as_echo_n "checking for presence of necessary job control definitions... " >&6; } if test "${bash_cv_job_control_missing+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then - { echo "$as_me:$LINENO: WARNING: cannot check job control if cross-compiling -- defaulting to missing" >&5 -echo "$as_me: WARNING: cannot check job control if cross-compiling -- defaulting to missing" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: cannot check job control if cross-compiling -- defaulting to missing" >&5 +$as_echo "$as_me: WARNING: cannot check job control if cross-compiling -- defaulting to missing" >&2;} bash_cv_job_control_missing=missing else @@ -26056,31 +28354,45 @@ exit(0); } _ACEOF rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then bash_cv_job_control_missing=present else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) bash_cv_job_control_missing=missing fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +rm -rf conftest.dSYM +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi + + fi -echo "$as_me:$LINENO: result: $bash_cv_job_control_missing" >&5 -echo "${ECHO_T}$bash_cv_job_control_missing" >&6 +{ $as_echo "$as_me:$LINENO: result: $bash_cv_job_control_missing" >&5 +$as_echo "$bash_cv_job_control_missing" >&6; } if test $bash_cv_job_control_missing = missing; then cat >>confdefs.h <<\_ACEOF #define JOB_CONTROL_MISSING 1 @@ -26088,14 +28400,14 @@ _ACEOF fi -echo "$as_me:$LINENO: checking for presence of named pipes" >&5 -echo $ECHO_N "checking for presence of named pipes... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for presence of named pipes" >&5 +$as_echo_n "checking for presence of named pipes... " >&6; } if test "${bash_cv_sys_named_pipes+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then - { echo "$as_me:$LINENO: WARNING: cannot check for named pipes if cross-compiling -- defaulting to missing" >&5 -echo "$as_me: WARNING: cannot check for named pipes if cross-compiling -- defaulting to missing" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: cannot check for named pipes if cross-compiling -- defaulting to missing" >&5 +$as_echo "$as_me: WARNING: cannot check for named pipes if cross-compiling -- defaulting to missing" >&2;} bash_cv_sys_named_pipes=missing else @@ -26128,48 +28440,62 @@ exit (1); #if defined (NeXT) exit (1); #endif -err = mkdir("/tmp/bash-aclocal", 0700); +err = mkdir("bash-aclocal", 0700); if (err < 0) { perror ("mkdir"); exit(1); } -fd = mknod ("/tmp/bash-aclocal/sh-np-autoconf", 0666 | S_IFIFO, 0); +fd = mknod ("bash-aclocal/sh-np-autoconf", 0666 | S_IFIFO, 0); if (fd == -1) { - rmdir ("/tmp/bash-aclocal"); + rmdir ("bash-aclocal"); exit (1); } close(fd); -unlink ("/tmp/bash-aclocal/sh-np-autoconf"); -rmdir ("/tmp/bash-aclocal"); +unlink ("bash-aclocal/sh-np-autoconf"); +rmdir ("bash-aclocal"); exit(0); } _ACEOF rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then bash_cv_sys_named_pipes=present else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) bash_cv_sys_named_pipes=missing fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +rm -rf conftest.dSYM +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi + + fi -echo "$as_me:$LINENO: result: $bash_cv_sys_named_pipes" >&5 -echo "${ECHO_T}$bash_cv_sys_named_pipes" >&6 +{ $as_echo "$as_me:$LINENO: result: $bash_cv_sys_named_pipes" >&5 +$as_echo "$bash_cv_sys_named_pipes" >&6; } if test $bash_cv_sys_named_pipes = missing; then cat >>confdefs.h <<\_ACEOF #define NAMED_PIPES_MISSING 1 @@ -26178,10 +28504,10 @@ _ACEOF fi -echo "$as_me:$LINENO: checking whether termios.h defines TIOCGWINSZ" >&5 -echo $ECHO_N "checking whether termios.h defines TIOCGWINSZ... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking whether termios.h defines TIOCGWINSZ" >&5 +$as_echo_n "checking whether termios.h defines TIOCGWINSZ... " >&6; } if test "${ac_cv_sys_tiocgwinsz_in_termios_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -26205,14 +28531,14 @@ fi rm -f conftest* fi -echo "$as_me:$LINENO: result: $ac_cv_sys_tiocgwinsz_in_termios_h" >&5 -echo "${ECHO_T}$ac_cv_sys_tiocgwinsz_in_termios_h" >&6 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_sys_tiocgwinsz_in_termios_h" >&5 +$as_echo "$ac_cv_sys_tiocgwinsz_in_termios_h" >&6; } if test $ac_cv_sys_tiocgwinsz_in_termios_h != yes; then - echo "$as_me:$LINENO: checking whether sys/ioctl.h defines TIOCGWINSZ" >&5 -echo $ECHO_N "checking whether sys/ioctl.h defines TIOCGWINSZ... $ECHO_C" >&6 + { $as_echo "$as_me:$LINENO: checking whether sys/ioctl.h defines TIOCGWINSZ" >&5 +$as_echo_n "checking whether sys/ioctl.h defines TIOCGWINSZ... " >&6; } if test "${ac_cv_sys_tiocgwinsz_in_sys_ioctl_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -26236,8 +28562,8 @@ fi rm -f conftest* fi -echo "$as_me:$LINENO: result: $ac_cv_sys_tiocgwinsz_in_sys_ioctl_h" >&5 -echo "${ECHO_T}$ac_cv_sys_tiocgwinsz_in_sys_ioctl_h" >&6 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_sys_tiocgwinsz_in_sys_ioctl_h" >&5 +$as_echo "$ac_cv_sys_tiocgwinsz_in_sys_ioctl_h" >&6; } if test $ac_cv_sys_tiocgwinsz_in_sys_ioctl_h = yes; then @@ -26248,10 +28574,10 @@ _ACEOF fi fi -echo "$as_me:$LINENO: checking for TIOCSTAT in sys/ioctl.h" >&5 -echo $ECHO_N "checking for TIOCSTAT in sys/ioctl.h... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for TIOCSTAT in sys/ioctl.h" >&5 +$as_echo_n "checking for TIOCSTAT in sys/ioctl.h... " >&6; } if test "${bash_cv_tiocstat_in_ioctl+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -26270,39 +28596,36 @@ int x = TIOCSTAT; } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then bash_cv_tiocstat_in_ioctl=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -bash_cv_tiocstat_in_ioctl=no + bash_cv_tiocstat_in_ioctl=no fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $bash_cv_tiocstat_in_ioctl" >&5 -echo "${ECHO_T}$bash_cv_tiocstat_in_ioctl" >&6 +{ $as_echo "$as_me:$LINENO: result: $bash_cv_tiocstat_in_ioctl" >&5 +$as_echo "$bash_cv_tiocstat_in_ioctl" >&6; } if test $bash_cv_tiocstat_in_ioctl = yes; then cat >>confdefs.h <<\_ACEOF #define TIOCSTAT_IN_SYS_IOCTL 1 @@ -26310,10 +28633,10 @@ _ACEOF fi -echo "$as_me:$LINENO: checking for FIONREAD in sys/ioctl.h" >&5 -echo $ECHO_N "checking for FIONREAD in sys/ioctl.h... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for FIONREAD in sys/ioctl.h" >&5 +$as_echo_n "checking for FIONREAD in sys/ioctl.h... " >&6; } if test "${bash_cv_fionread_in_ioctl+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -26332,39 +28655,36 @@ int x = FIONREAD; } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then bash_cv_fionread_in_ioctl=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -bash_cv_fionread_in_ioctl=no + bash_cv_fionread_in_ioctl=no fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $bash_cv_fionread_in_ioctl" >&5 -echo "${ECHO_T}$bash_cv_fionread_in_ioctl" >&6 +{ $as_echo "$as_me:$LINENO: result: $bash_cv_fionread_in_ioctl" >&5 +$as_echo "$bash_cv_fionread_in_ioctl" >&6; } if test $bash_cv_fionread_in_ioctl = yes; then cat >>confdefs.h <<\_ACEOF #define FIONREAD_IN_SYS_IOCTL 1 @@ -26374,14 +28694,14 @@ fi -echo "$as_me:$LINENO: checking whether WCONTINUED flag to waitpid is unavailable or available but broken" >&5 -echo $ECHO_N "checking whether WCONTINUED flag to waitpid is unavailable or available but broken... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking whether WCONTINUED flag to waitpid is unavailable or available but broken" >&5 +$as_echo_n "checking whether WCONTINUED flag to waitpid is unavailable or available but broken... " >&6; } if test "${bash_cv_wcontinued_broken+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then - { echo "$as_me:$LINENO: WARNING: cannot check WCONTINUED if cross compiling -- defaulting to no" >&5 -echo "$as_me: WARNING: cannot check WCONTINUED if cross compiling -- defaulting to no" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: cannot check WCONTINUED if cross compiling -- defaulting to no" >&5 +$as_echo "$as_me: WARNING: cannot check WCONTINUED if cross compiling -- defaulting to no" >&2;} bash_cv_wcontinued_broken=no else @@ -26413,31 +28733,45 @@ main() _ACEOF rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then bash_cv_wcontinued_broken=no else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) bash_cv_wcontinued_broken=yes fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +rm -rf conftest.dSYM +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi + + fi -echo "$as_me:$LINENO: result: $bash_cv_wcontinued_broken" >&5 -echo "${ECHO_T}$bash_cv_wcontinued_broken" >&6 +{ $as_echo "$as_me:$LINENO: result: $bash_cv_wcontinued_broken" >&5 +$as_echo "$bash_cv_wcontinued_broken" >&6; } if test $bash_cv_wcontinued_broken = yes; then cat >>confdefs.h <<\_ACEOF #define WCONTINUED_BROKEN 1 @@ -26446,10 +28780,10 @@ _ACEOF fi -echo "$as_me:$LINENO: checking for speed_t in sys/types.h" >&5 -echo $ECHO_N "checking for speed_t in sys/types.h... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for speed_t in sys/types.h" >&5 +$as_echo_n "checking for speed_t in sys/types.h... " >&6; } if test "${bash_cv_speed_t_in_sys_types+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -26467,39 +28801,36 @@ speed_t x; } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then bash_cv_speed_t_in_sys_types=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -bash_cv_speed_t_in_sys_types=no + bash_cv_speed_t_in_sys_types=no fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $bash_cv_speed_t_in_sys_types" >&5 -echo "${ECHO_T}$bash_cv_speed_t_in_sys_types" >&6 +{ $as_echo "$as_me:$LINENO: result: $bash_cv_speed_t_in_sys_types" >&5 +$as_echo "$bash_cv_speed_t_in_sys_types" >&6; } if test $bash_cv_speed_t_in_sys_types = yes; then cat >>confdefs.h <<\_ACEOF #define SPEED_T_IN_SYS_TYPES 1 @@ -26507,10 +28838,10 @@ _ACEOF fi -echo "$as_me:$LINENO: checking whether getpw functions are declared in pwd.h" >&5 -echo $ECHO_N "checking whether getpw functions are declared in pwd.h... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking whether getpw functions are declared in pwd.h" >&5 +$as_echo_n "checking whether getpw functions are declared in pwd.h... " >&6; } if test "${bash_cv_getpw_declared+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -26536,8 +28867,8 @@ rm -f conftest* fi -echo "$as_me:$LINENO: result: $bash_cv_getpw_declared" >&5 -echo "${ECHO_T}$bash_cv_getpw_declared" >&6 +{ $as_echo "$as_me:$LINENO: result: $bash_cv_getpw_declared" >&5 +$as_echo "$bash_cv_getpw_declared" >&6; } if test $bash_cv_getpw_declared = yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_GETPW_DECLS 1 @@ -26545,14 +28876,14 @@ _ACEOF fi -echo "$as_me:$LINENO: checking for unusable real-time signals due to large values" >&5 -echo $ECHO_N "checking for unusable real-time signals due to large values... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for unusable real-time signals due to large values" >&5 +$as_echo_n "checking for unusable real-time signals due to large values... " >&6; } if test "${bash_cv_unusable_rtsigs+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then - { echo "$as_me:$LINENO: WARNING: cannot check real-time signals if cross compiling -- defaulting to yes" >&5 -echo "$as_me: WARNING: cannot check real-time signals if cross compiling -- defaulting to yes" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: cannot check real-time signals if cross compiling -- defaulting to yes" >&5 +$as_echo "$as_me: WARNING: cannot check real-time signals if cross compiling -- defaulting to yes" >&2;} bash_cv_unusable_rtsigs=yes else @@ -26583,31 +28914,45 @@ main () } _ACEOF rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then bash_cv_unusable_rtsigs=yes else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) bash_cv_unusable_rtsigs=no fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +rm -rf conftest.dSYM +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi + + fi -echo "$as_me:$LINENO: result: $bash_cv_unusable_rtsigs" >&5 -echo "${ECHO_T}$bash_cv_unusable_rtsigs" >&6 +{ $as_echo "$as_me:$LINENO: result: $bash_cv_unusable_rtsigs" >&5 +$as_echo "$bash_cv_unusable_rtsigs" >&6; } if test $bash_cv_unusable_rtsigs = yes; then cat >>confdefs.h <<\_ACEOF #define UNUSABLE_RT_SIGNALS 1 @@ -26628,10 +28973,10 @@ fi case "$host_os" in -hpux*) echo "$as_me:$LINENO: checking whether $host_os needs _KERNEL for RLIMIT defines" >&5 -echo $ECHO_N "checking whether $host_os needs _KERNEL for RLIMIT defines... $ECHO_C" >&6 +hpux*) { $as_echo "$as_me:$LINENO: checking whether $host_os needs _KERNEL for RLIMIT defines" >&5 +$as_echo_n "checking whether $host_os needs _KERNEL for RLIMIT defines... " >&6; } if test "${bash_cv_kernel_rlimit+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -26655,33 +29000,29 @@ main () } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then bash_cv_kernel_rlimit=no else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -cat >conftest.$ac_ext <<_ACEOF + cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext @@ -26705,42 +29046,40 @@ main () } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then bash_cv_kernel_rlimit=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -bash_cv_kernel_rlimit=no + bash_cv_kernel_rlimit=no fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $bash_cv_kernel_rlimit" >&5 -echo "${ECHO_T}$bash_cv_kernel_rlimit" >&6 +{ $as_echo "$as_me:$LINENO: result: $bash_cv_kernel_rlimit" >&5 +$as_echo "$bash_cv_kernel_rlimit" >&6; } if test $bash_cv_kernel_rlimit = yes; then cat >>confdefs.h <<\_ACEOF #define RLIMIT_NEEDS_KERNEL 1 @@ -26758,17 +29097,17 @@ esac if test "X$bash_cv_termcap_lib" = "X"; then _bash_needmsg=yes else -echo "$as_me:$LINENO: checking which library has the termcap functions" >&5 -echo $ECHO_N "checking which library has the termcap functions... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking which library has the termcap functions" >&5 +$as_echo_n "checking which library has the termcap functions... " >&6; } _bash_needmsg= fi if test "${bash_cv_termcap_lib+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else - echo "$as_me:$LINENO: checking for tgetent" >&5 -echo $ECHO_N "checking for tgetent... $ECHO_C" >&6 + { $as_echo "$as_me:$LINENO: checking for tgetent" >&5 +$as_echo_n "checking for tgetent... " >&6; } if test "${ac_cv_func_tgetent+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -26793,75 +29132,70 @@ cat >>conftest.$ac_ext <<_ACEOF #undef tgetent -/* Override any gcc2 internal prototype to avoid an error. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" -{ #endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ char tgetent (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ -#if defined (__stub_tgetent) || defined (__stub___tgetent) +#if defined __stub_tgetent || defined __stub___tgetent choke me -#else -char (*f) () = tgetent; -#endif -#ifdef __cplusplus -} #endif int main () { -return f != tgetent; +return tgetent (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then ac_cv_func_tgetent=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_func_tgetent=no + ac_cv_func_tgetent=no fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -echo "$as_me:$LINENO: result: $ac_cv_func_tgetent" >&5 -echo "${ECHO_T}$ac_cv_func_tgetent" >&6 -if test $ac_cv_func_tgetent = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_tgetent" >&5 +$as_echo "$ac_cv_func_tgetent" >&6; } +if test "x$ac_cv_func_tgetent" = x""yes; then bash_cv_termcap_lib=libc else - echo "$as_me:$LINENO: checking for tgetent in -ltermcap" >&5 -echo $ECHO_N "checking for tgetent in -ltermcap... $ECHO_C" >&6 + { $as_echo "$as_me:$LINENO: checking for tgetent in -ltermcap" >&5 +$as_echo_n "checking for tgetent in -ltermcap... " >&6; } if test "${ac_cv_lib_termcap_tgetent+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ltermcap $LIBS" @@ -26872,63 +29206,64 @@ cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -/* Override any gcc2 internal prototype to avoid an error. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ char tgetent (); int main () { -tgetent (); +return tgetent (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then ac_cv_lib_termcap_tgetent=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_lib_termcap_tgetent=no + ac_cv_lib_termcap_tgetent=no fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -echo "$as_me:$LINENO: result: $ac_cv_lib_termcap_tgetent" >&5 -echo "${ECHO_T}$ac_cv_lib_termcap_tgetent" >&6 -if test $ac_cv_lib_termcap_tgetent = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_termcap_tgetent" >&5 +$as_echo "$ac_cv_lib_termcap_tgetent" >&6; } +if test "x$ac_cv_lib_termcap_tgetent" = x""yes; then bash_cv_termcap_lib=libtermcap else - echo "$as_me:$LINENO: checking for tgetent in -ltinfo" >&5 -echo $ECHO_N "checking for tgetent in -ltinfo... $ECHO_C" >&6 + { $as_echo "$as_me:$LINENO: checking for tgetent in -ltinfo" >&5 +$as_echo_n "checking for tgetent in -ltinfo... " >&6; } if test "${ac_cv_lib_tinfo_tgetent+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ltinfo $LIBS" @@ -26939,63 +29274,64 @@ cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -/* Override any gcc2 internal prototype to avoid an error. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ char tgetent (); int main () { -tgetent (); +return tgetent (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then ac_cv_lib_tinfo_tgetent=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_lib_tinfo_tgetent=no + ac_cv_lib_tinfo_tgetent=no fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -echo "$as_me:$LINENO: result: $ac_cv_lib_tinfo_tgetent" >&5 -echo "${ECHO_T}$ac_cv_lib_tinfo_tgetent" >&6 -if test $ac_cv_lib_tinfo_tgetent = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_tinfo_tgetent" >&5 +$as_echo "$ac_cv_lib_tinfo_tgetent" >&6; } +if test "x$ac_cv_lib_tinfo_tgetent" = x""yes; then bash_cv_termcap_lib=libtinfo else - echo "$as_me:$LINENO: checking for tgetent in -lcurses" >&5 -echo $ECHO_N "checking for tgetent in -lcurses... $ECHO_C" >&6 + { $as_echo "$as_me:$LINENO: checking for tgetent in -lcurses" >&5 +$as_echo_n "checking for tgetent in -lcurses... " >&6; } if test "${ac_cv_lib_curses_tgetent+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lcurses $LIBS" @@ -27006,63 +29342,64 @@ cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -/* Override any gcc2 internal prototype to avoid an error. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ char tgetent (); int main () { -tgetent (); +return tgetent (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then ac_cv_lib_curses_tgetent=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_lib_curses_tgetent=no + ac_cv_lib_curses_tgetent=no fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -echo "$as_me:$LINENO: result: $ac_cv_lib_curses_tgetent" >&5 -echo "${ECHO_T}$ac_cv_lib_curses_tgetent" >&6 -if test $ac_cv_lib_curses_tgetent = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_curses_tgetent" >&5 +$as_echo "$ac_cv_lib_curses_tgetent" >&6; } +if test "x$ac_cv_lib_curses_tgetent" = x""yes; then bash_cv_termcap_lib=libcurses else - echo "$as_me:$LINENO: checking for tgetent in -lncurses" >&5 -echo $ECHO_N "checking for tgetent in -lncurses... $ECHO_C" >&6 + { $as_echo "$as_me:$LINENO: checking for tgetent in -lncurses" >&5 +$as_echo_n "checking for tgetent in -lncurses... " >&6; } if test "${ac_cv_lib_ncurses_tgetent+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lncurses $LIBS" @@ -27073,57 +29410,58 @@ cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -/* Override any gcc2 internal prototype to avoid an error. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ char tgetent (); int main () { -tgetent (); +return tgetent (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then ac_cv_lib_ncurses_tgetent=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -ac_cv_lib_ncurses_tgetent=no + ac_cv_lib_ncurses_tgetent=no fi -rm -f conftest.err conftest.$ac_objext \ + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -echo "$as_me:$LINENO: result: $ac_cv_lib_ncurses_tgetent" >&5 -echo "${ECHO_T}$ac_cv_lib_ncurses_tgetent" >&6 -if test $ac_cv_lib_ncurses_tgetent = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_ncurses_tgetent" >&5 +$as_echo "$ac_cv_lib_ncurses_tgetent" >&6; } +if test "x$ac_cv_lib_ncurses_tgetent" = x""yes; then bash_cv_termcap_lib=libncurses else bash_cv_termcap_lib=gnutermcap @@ -27140,11 +29478,11 @@ fi fi if test "X$_bash_needmsg" = "Xyes"; then -echo "$as_me:$LINENO: checking which library has the termcap functions" >&5 -echo $ECHO_N "checking which library has the termcap functions... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking which library has the termcap functions" >&5 +$as_echo_n "checking which library has the termcap functions... " >&6; } fi -echo "$as_me:$LINENO: result: using $bash_cv_termcap_lib" >&5 -echo "${ECHO_T}using $bash_cv_termcap_lib" >&6 +{ $as_echo "$as_me:$LINENO: result: using $bash_cv_termcap_lib" >&5 +$as_echo "using $bash_cv_termcap_lib" >&6; } if test $bash_cv_termcap_lib = gnutermcap && test -z "$prefer_curses"; then LDFLAGS="$LDFLAGS -L./lib/termcap" TERMCAP_LIB="./lib/termcap/libtermcap.a" @@ -27170,24 +29508,22 @@ fi -echo "$as_me:$LINENO: checking whether /dev/fd is available" >&5 -echo $ECHO_N "checking whether /dev/fd is available... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking whether /dev/fd is available" >&5 +$as_echo_n "checking whether /dev/fd is available... " >&6; } if test "${bash_cv_dev_fd+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else bash_cv_dev_fd="" -if test -d /dev/fd && test -r /dev/fd/0 < /dev/null; then +if test -d /dev/fd && (exec test -r /dev/fd/0 < /dev/null) ; then # check for systems like FreeBSD 5 that only provide /dev/fd/[012] - exec 3&5 -echo "${ECHO_T}$bash_cv_dev_fd" >&6 +{ $as_echo "$as_me:$LINENO: result: $bash_cv_dev_fd" >&5 +$as_echo "$bash_cv_dev_fd" >&6; } if test $bash_cv_dev_fd = "standard"; then cat >>confdefs.h <<\_ACEOF #define HAVE_DEV_FD 1 @@ -27218,14 +29554,14 @@ _ACEOF fi -echo "$as_me:$LINENO: checking whether /dev/stdin stdout stderr are available" >&5 -echo $ECHO_N "checking whether /dev/stdin stdout stderr are available... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking whether /dev/stdin stdout stderr are available" >&5 +$as_echo_n "checking whether /dev/stdin stdout stderr are available... " >&6; } if test "${bash_cv_dev_stdin+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else - if test -d /dev/fd && test -r /dev/stdin < /dev/null; then + if test -d /dev/fd && (exec test -r /dev/stdin < /dev/null) ; then bash_cv_dev_stdin=present - elif test -d /proc/self/fd && test -r /dev/stdin < /dev/null; then + elif test -d /proc/self/fd && (exec test -r /dev/stdin < /dev/null) ; then bash_cv_dev_stdin=present else bash_cv_dev_stdin=absent @@ -27233,8 +29569,8 @@ else fi -echo "$as_me:$LINENO: result: $bash_cv_dev_stdin" >&5 -echo "${ECHO_T}$bash_cv_dev_stdin" >&6 +{ $as_echo "$as_me:$LINENO: result: $bash_cv_dev_stdin" >&5 +$as_echo "$bash_cv_dev_stdin" >&6; } if test $bash_cv_dev_stdin = "present"; then cat >>confdefs.h <<\_ACEOF #define HAVE_DEV_STDIN 1 @@ -27242,10 +29578,10 @@ _ACEOF fi -echo "$as_me:$LINENO: checking for default mail directory" >&5 -echo $ECHO_N "checking for default mail directory... $ECHO_C" >&6 +{ $as_echo "$as_me:$LINENO: checking for default mail directory" >&5 +$as_echo_n "checking for default mail directory... " >&6; } if test "${bash_cv_mail_dir+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -d /var/mail; then bash_cv_mail_dir=/var/mail @@ -27261,8 +29597,8 @@ else fi -echo "$as_me:$LINENO: result: $bash_cv_mail_dir" >&5 -echo "${ECHO_T}$bash_cv_mail_dir" >&6 +{ $as_echo "$as_me:$LINENO: result: $bash_cv_mail_dir" >&5 +$as_echo "$bash_cv_mail_dir" >&6; } cat >>confdefs.h <<_ACEOF #define DEFAULT_MAIL_DIRECTORY "$bash_cv_mail_dir" _ACEOF @@ -27317,6 +29653,9 @@ sco3.2v4*) LOCAL_CFLAGS="-DMUST_UNBLOCK_CHLD -DPATH_MAX=1024" ;; sco3.2*) LOCAL_CFLAGS=-DMUST_UNBLOCK_CHLD ;; sunos4*) LOCAL_CFLAGS=-DSunOS4 ;; solaris2.5*) LOCAL_CFLAGS="-DSunOS5 -DSOLARIS" ;; +solaris2.8*) LOCAL_CFLAGS=-DSOLARIS LOCAL_LDFLAGS='-z interpose' ;; +solaris2.9*) LOCAL_CFLAGS=-DSOLARIS LOCAL_LDFLAGS='-z interpose' ;; +solaris2.10*) LOCAL_CFLAGS=-DSOLARIS LOCAL_LDFLAGS='-z interpose' ;; solaris2*) LOCAL_CFLAGS=-DSOLARIS ;; lynxos*) LOCAL_CFLAGS=-DRECYCLES_PIDS ;; linux*) LOCAL_LDFLAGS=-rdynamic # allow dynamic loading @@ -27367,8 +29706,8 @@ esac # if test "$ac_cv_func_dlopen" = "yes" && test -f ${srcdir}/support/shobj-conf then - echo "$as_me:$LINENO: checking shared object configuration for loadable builtins" >&5 -echo $ECHO_N "checking shared object configuration for loadable builtins... $ECHO_C" >&6 + { $as_echo "$as_me:$LINENO: checking shared object configuration for loadable builtins" >&5 +$as_echo_n "checking shared object configuration for loadable builtins... " >&6; } eval `${CONFIG_SHELL-/bin/sh} ${srcdir}/support/shobj-conf -C "${CC}" -c "${host_cpu}" -o "${host_os}" -v "${host_vendor}"` @@ -27377,8 +29716,8 @@ echo $ECHO_N "checking shared object configuration for loadable builtins... $ECH - echo "$as_me:$LINENO: result: $SHOBJ_STATUS" >&5 -echo "${ECHO_T}$SHOBJ_STATUS" >&6 + { $as_echo "$as_me:$LINENO: result: $SHOBJ_STATUS" >&5 +$as_echo "$SHOBJ_STATUS" >&6; } fi # try to create a directory tree if the source is elsewhere @@ -27402,8 +29741,19 @@ case "$BUILD_DIR" in *) ;; esac +if test -z "$localedir"; then + localedir='${datarootdir}/locale' +fi +if test -z "$datarootdir"; then + datarootdir='${prefix}/share' +fi + + + + +# Some versions of autoconf don't substitute these automatically @@ -27428,8 +29778,10 @@ esac #AC_SUBST(ALLOCA_SOURCE) #AC_SUBST(ALLOCA_OBJECT) - ac_config_files="$ac_config_files Makefile builtins/Makefile lib/readline/Makefile lib/glob/Makefile lib/intl/Makefile lib/malloc/Makefile lib/sh/Makefile lib/termcap/Makefile lib/tilde/Makefile doc/Makefile support/Makefile po/Makefile.in examples/loadables/Makefile examples/loadables/perl/Makefile pathnames.h" - ac_config_commands="$ac_config_commands default" +ac_config_files="$ac_config_files Makefile builtins/Makefile lib/readline/Makefile lib/glob/Makefile lib/intl/Makefile lib/malloc/Makefile lib/sh/Makefile lib/termcap/Makefile lib/tilde/Makefile doc/Makefile support/Makefile po/Makefile.in examples/loadables/Makefile examples/loadables/perl/Makefile" + +ac_config_commands="$ac_config_commands default" + cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure @@ -27448,39 +29800,59 @@ _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. -# So, don't put newlines in cache variables' values. +# So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. -{ +( + for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5 +$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) $as_unset $ac_var ;; + esac ;; + esac + done + (set) 2>&1 | - case `(ac_space=' '; set | grep ac_space) 2>&1` in - *ac_space=\ *) + case $as_nl`(ac_space=' '; set) 2>&1` in #( + *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes (double-quote # substitution turns \\\\ into \\, and sed turns \\ into \). sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" - ;; + ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. - sed -n \ - "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; - esac; -} | + esac | + sort +) | sed ' + /^ac_cv_env_/b end t clear - : clear + :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end - /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ - : end' >>confcache -if diff $cache_file confcache >/dev/null 2>&1; then :; else - if test -w $cache_file; then - test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file" + s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ + :end' >>confcache +if diff "$cache_file" confcache >/dev/null 2>&1; then :; else + if test -w "$cache_file"; then + test "x$cache_file" != "x/dev/null" && + { $as_echo "$as_me:$LINENO: updating cache $cache_file" >&5 +$as_echo "$as_me: updating cache $cache_file" >&6;} cat confcache >$cache_file else - echo "not updating unwritable cache $cache_file" + { $as_echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5 +$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache @@ -27489,32 +29861,18 @@ test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' -# VPATH may cause trouble with some makes, so we remove $(srcdir), -# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and -# trailing colons and then remove the whole line if VPATH becomes empty -# (actually we leave an empty line to preserve line numbers). -if test "x$srcdir" = x.; then - ac_vpsub='/^[ ]*VPATH[ ]*=/{ -s/:*\$(srcdir):*/:/; -s/:*\${srcdir}:*/:/; -s/:*@srcdir@:*/:/; -s/^\([^=]*=[ ]*\):*/\1/; -s/:*$//; -s/^[^=]*=[ ]*$//; -}' -fi - DEFS=-DHAVE_CONFIG_H ac_libobjs= ac_ltlibobjs= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. - ac_i=`echo "$ac_i" | - sed 's/\$U\././;s/\.o$//;s/\.obj$//'` - # 2. Add them. - ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext" - ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo' + ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' + ac_i=`$as_echo "$ac_i" | sed "$ac_script"` + # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR + # will be set to the directory where LIBOBJS objects are built. + ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext" + ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs @@ -27522,12 +29880,14 @@ LTLIBOBJS=$ac_ltlibobjs + : ${CONFIG_STATUS=./config.status} +ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" -{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 -echo "$as_me: creating $CONFIG_STATUS" >&6;} -cat >$CONFIG_STATUS <<_ACEOF +{ $as_echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 +$as_echo "$as_me: creating $CONFIG_STATUS" >&6;} +cat >$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. @@ -27540,22 +29900,78 @@ ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} _ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## -# Be Bourne compatible +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' -elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then - set -o posix + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in + *posix*) set -o posix ;; +esac + +fi + + + + +# PATH needs CR +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + +as_nl=' +' +export as_nl +# Printing a long string crashes Solaris 7 /usr/bin/printf. +as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo +if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='printf %s\n' + as_echo_n='printf %s' +else + if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then + as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' + as_echo_n='/usr/ucb/echo -n' + else + as_echo_body='eval expr "X$1" : "X\\(.*\\)"' + as_echo_n_body='eval + arg=$1; + case $arg in + *"$as_nl"*) + expr "X$arg" : "X\\(.*\\)$as_nl"; + arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; + esac; + expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" + ' + export as_echo_n_body + as_echo_n='sh -c $as_echo_n_body as_echo' + fi + export as_echo_body + as_echo='sh -c $as_echo_body as_echo' +fi + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } fi -DUALCASE=1; export DUALCASE # for MKS sh # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then @@ -27565,33 +29981,60 @@ else fi +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +case $0 in + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break +done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + { (exit 1); exit 1; } +fi + # Work around bugs in pre-3.0 UWIN ksh. -$as_unset ENV MAIL MAILPATH +for as_var in ENV MAIL MAILPATH +do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var +done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. -for as_var in \ - LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ - LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ - LC_TELEPHONE LC_TIME -do - if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then - eval $as_var=C; export $as_var - else - $as_unset $as_var - fi -done +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE # Required to use basename. -if expr a : '\(a\)' >/dev/null 2>&1; then +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi -if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false @@ -27599,159 +30042,122 @@ fi # Name of the executable. -as_me=`$as_basename "$0" || +as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)$' \| \ - . : '\(.\)' 2>/dev/null || -echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } - /^X\/\(\/\/\)$/{ s//\1/; q; } - /^X\/\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - - -# PATH needs CR, and LINENO needs CR and PATH. -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits + X"$0" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi - rm -f conf$$.sh -fi +# CDPATH. +$as_unset CDPATH - as_lineno_1=$LINENO - as_lineno_2=$LINENO - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x$as_lineno_3" = "x$as_lineno_2" || { - # Find who we are. Look in the path if we contain no path at all - # relative or not. - case $0 in - *[\\/]* ) as_myself=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break -done - ;; - esac - # We did not find ourselves, most probably we were run as `sh COMMAND' - # in which case we are not to be found in the path. - if test "x$as_myself" = x; then - as_myself=$0 - fi - if test ! -f "$as_myself"; then - { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5 -echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;} - { (exit 1); exit 1; }; } - fi - case $CONFIG_SHELL in - '') - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for as_base in sh bash ksh sh5; do - case $as_dir in - /*) - if ("$as_dir/$as_base" -c ' as_lineno_1=$LINENO as_lineno_2=$LINENO - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` test "x$as_lineno_1" != "x$as_lineno_2" && - test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then - $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } - $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } - CONFIG_SHELL=$as_dir/$as_base - export CONFIG_SHELL - exec "$CONFIG_SHELL" "$0" ${1+"$@"} - fi;; - esac - done -done -;; - esac + test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a - # line-number line before each line; the second 'sed' does the real - # work. The second script uses 'N' to pair each line-number line - # with the numbered line, and appends trailing '-' during - # substitution so that $LINENO is not a special case at line end. + # line-number line after each line using $LINENO; the second 'sed' + # does the real work. The second script uses 'N' to pair each + # line-number line with the line containing $LINENO, and appends + # trailing '-' during substitution so that $LINENO is not a special + # case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the - # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) - sed '=' <$as_myself | + # scripts with optimization help from Paolo Bonzini. Blame Lee + # E. McMahon (1931-1989) for sed's syntax. :-) + sed -n ' + p + /[$]LINENO/= + ' <$as_myself | sed ' + s/[$]LINENO.*/&-/ + t lineno + b + :lineno N - s,$,-, - : loop - s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, + :loop + s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop - s,-$,, - s,^['$as_cr_digits']*\n,, + s/-\n.*// ' >$as_me.lineno && - chmod +x $as_me.lineno || - { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5 -echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;} + chmod +x "$as_me.lineno" || + { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the - # original and so on. Autoconf is especially sensible to this). - . ./$as_me.lineno + # original and so on. Autoconf is especially sensitive to this). + . "./$as_me.lineno" # Exit status is that of the last command. exit } -case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in - *c*,-n*) ECHO_N= ECHO_C=' -' ECHO_T=' ' ;; - *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; - *) ECHO_N= ECHO_C='\c' ECHO_T= ;; -esac +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi -if expr a : '\(a\)' >/dev/null 2>&1; then +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in +-n*) + case `echo 'x\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + *) ECHO_C='\c';; + esac;; +*) + ECHO_N='-n';; +esac +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file -echo >conf$$.file -if ln -s conf$$.file conf$$ 2>/dev/null; then - # We could just check for DJGPP; but this test a) works b) is more generic - # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). - if test -f conf$$.exe; then - # Don't use ln at all; we don't have any links - as_ln_s='cp -p' - else +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -p'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -p' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -p' fi -elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln else as_ln_s='cp -p' fi -rm -f conf$$ conf$$.exe conf$$.file +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p=: @@ -27760,7 +30166,28 @@ else as_mkdir_p=false fi -as_executable_p="test -f" +if test -x / >/dev/null 2>&1; then + as_test_x='test -x' +else + if ls -dL / >/dev/null 2>&1; then + as_ls_L_option=L + else + as_ls_L_option= + fi + as_test_x=' + eval sh -c '\'' + if test -d "$1"; then + test -d "$1/."; + else + case $1 in + -*)set "./$1";; + esac; + case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in + ???[sx]*):;;*)false;;esac;fi + '\'' sh + ' +fi +as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" @@ -27769,31 +30196,14 @@ as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" -# IFS -# We need space, tab and new line, in precisely that order. -as_nl=' -' -IFS=" $as_nl" - -# CDPATH. -$as_unset CDPATH - exec 6>&1 -# Open the log real soon, to keep \$[0] and so on meaningful, and to +# Save the log message, to keep $[0] and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their -# values after options handling. Logging --version etc. is OK. -exec 5>>config.log -{ - echo - sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX -## Running $as_me. ## -_ASBOX -} >&5 -cat >&5 <<_CSEOF - -This file was extended by bash $as_me 3.2-release, which was -generated by GNU Autoconf 2.59. Invocation command line was +# values after options handling. +ac_log=" +This file was extended by bash $as_me 4.0-rc1, which was +generated by GNU Autoconf 2.63. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS @@ -27801,45 +30211,45 @@ generated by GNU Autoconf 2.59. Invocation command line was CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ -_CSEOF -echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5 -echo >&5 +on `(hostname || uname -n) 2>/dev/null | sed 1q` +" + _ACEOF -# Files that config.status was made for. -if test -n "$ac_config_files"; then - echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS -fi +case $ac_config_files in *" +"*) set x $ac_config_files; shift; ac_config_files=$*;; +esac -if test -n "$ac_config_headers"; then - echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS -fi +case $ac_config_headers in *" +"*) set x $ac_config_headers; shift; ac_config_headers=$*;; +esac -if test -n "$ac_config_links"; then - echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS -fi -if test -n "$ac_config_commands"; then - echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS -fi +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +# Files that config.status was made for. +config_files="$ac_config_files" +config_headers="$ac_config_headers" +config_commands="$ac_config_commands" -cat >>$CONFIG_STATUS <<\_ACEOF +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files from templates according to the current configuration. -Usage: $0 [OPTIONS] [FILE]... +Usage: $0 [OPTION]... [FILE]... -h, --help print this help, then exit - -V, --version print version number, then exit - -q, --quiet do not print progress messages + -V, --version print version number and configuration settings, then exit + -q, --quiet, --silent + do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions - --file=FILE[:TEMPLATE] - instantiate the configuration file FILE - --header=FILE[:TEMPLATE] - instantiate the configuration header FILE + --file=FILE[:TEMPLATE] + instantiate the configuration file FILE + --header=FILE[:TEMPLATE] + instantiate the configuration header FILE Configuration files: $config_files @@ -27851,83 +30261,82 @@ Configuration commands: $config_commands Report bugs to ." -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_version="\\ -bash config.status 3.2-release -configured by $0, generated by GNU Autoconf 2.59, - with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" +bash config.status 4.0-rc1 +configured by $0, generated by GNU Autoconf 2.63, + with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" -Copyright (C) 2003 Free Software Foundation, Inc. +Copyright (C) 2008 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." -srcdir=$srcdir -INSTALL="$INSTALL" + +ac_pwd='$ac_pwd' +srcdir='$srcdir' +INSTALL='$INSTALL' +test -n "\$AWK" || AWK=awk _ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF -# If no file are specified by the user, then we need to provide default -# value. By we need to know if files were specified by the user. +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=*) - ac_option=`expr "x$1" : 'x\([^=]*\)='` - ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'` + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; - -*) + *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; - *) # This is not an option, so the user has probably given explicit - # arguments. - ac_option=$1 - ac_need_defaults=false;; esac case $ac_option in # Handling of the options. -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; - --version | --vers* | -V ) - echo "$ac_cs_version"; exit 0 ;; - --he | --h) - # Conflict between --help and --header - { { echo "$as_me:$LINENO: error: ambiguous option: $1 -Try \`$0 --help' for more information." >&5 -echo "$as_me: error: ambiguous option: $1 -Try \`$0 --help' for more information." >&2;} - { (exit 1); exit 1; }; };; - --help | --hel | -h ) - echo "$ac_cs_usage"; exit 0 ;; - --debug | --d* | -d ) + --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) + $as_echo "$ac_cs_version"; exit ;; + --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift - CONFIG_FILES="$CONFIG_FILES $ac_optarg" + case $ac_optarg in + *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + CONFIG_FILES="$CONFIG_FILES '$ac_optarg'" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift - CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg" + case $ac_optarg in + *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + CONFIG_HEADERS="$CONFIG_HEADERS '$ac_optarg'" ac_need_defaults=false;; + --he | --h) + # Conflict between --help and --header + { $as_echo "$as_me: error: ambiguous option: $1 +Try \`$0 --help' for more information." >&2 + { (exit 1); exit 1; }; };; + --help | --hel | -h ) + $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. - -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1 -Try \`$0 --help' for more information." >&5 -echo "$as_me: error: unrecognized option: $1 -Try \`$0 --help' for more information." >&2;} + -*) { $as_echo "$as_me: error: unrecognized option: $1 +Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; } ;; - *) ac_config_targets="$ac_config_targets $1" ;; + *) ac_config_targets="$ac_config_targets $1" + ac_need_defaults=false ;; esac shift @@ -27941,19 +30350,32 @@ if $ac_cs_silent; then fi _ACEOF -cat >>$CONFIG_STATUS <<_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then - echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6 - exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion + set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion + shift + \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 + CONFIG_SHELL='$SHELL' + export CONFIG_SHELL + exec "\$@" fi _ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +exec 5>>config.log +{ + echo + sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX +## Running $as_me. ## +_ASBOX + $as_echo "$ac_log" +} >&5 -cat >>$CONFIG_STATUS <<_ACEOF +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # -# INIT-COMMANDS section. +# INIT-COMMANDS # - # Capture the value of obsolete ALL_LINGUAS because we need it to compute # POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES, CATALOGS. But hide it # from automake. @@ -27964,37 +30386,37 @@ cat >>$CONFIG_STATUS <<_ACEOF _ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 - -cat >>$CONFIG_STATUS <<\_ACEOF +# Handling of arguments. for ac_config_target in $ac_config_targets do - case "$ac_config_target" in - # Handling of arguments. - "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;; - "builtins/Makefile" ) CONFIG_FILES="$CONFIG_FILES builtins/Makefile" ;; - "lib/readline/Makefile" ) CONFIG_FILES="$CONFIG_FILES lib/readline/Makefile" ;; - "lib/glob/Makefile" ) CONFIG_FILES="$CONFIG_FILES lib/glob/Makefile" ;; - "lib/intl/Makefile" ) CONFIG_FILES="$CONFIG_FILES lib/intl/Makefile" ;; - "lib/malloc/Makefile" ) CONFIG_FILES="$CONFIG_FILES lib/malloc/Makefile" ;; - "lib/sh/Makefile" ) CONFIG_FILES="$CONFIG_FILES lib/sh/Makefile" ;; - "lib/termcap/Makefile" ) CONFIG_FILES="$CONFIG_FILES lib/termcap/Makefile" ;; - "lib/tilde/Makefile" ) CONFIG_FILES="$CONFIG_FILES lib/tilde/Makefile" ;; - "doc/Makefile" ) CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;; - "support/Makefile" ) CONFIG_FILES="$CONFIG_FILES support/Makefile" ;; - "po/Makefile.in" ) CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;; - "examples/loadables/Makefile" ) CONFIG_FILES="$CONFIG_FILES examples/loadables/Makefile" ;; - "examples/loadables/perl/Makefile" ) CONFIG_FILES="$CONFIG_FILES examples/loadables/perl/Makefile" ;; - "pathnames.h" ) CONFIG_FILES="$CONFIG_FILES pathnames.h" ;; - "default-1" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;; - "default" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;; - "config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; - *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 -echo "$as_me: error: invalid argument: $ac_config_target" >&2;} + case $ac_config_target in + "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; + "default-1") CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;; + "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; + "builtins/Makefile") CONFIG_FILES="$CONFIG_FILES builtins/Makefile" ;; + "lib/readline/Makefile") CONFIG_FILES="$CONFIG_FILES lib/readline/Makefile" ;; + "lib/glob/Makefile") CONFIG_FILES="$CONFIG_FILES lib/glob/Makefile" ;; + "lib/intl/Makefile") CONFIG_FILES="$CONFIG_FILES lib/intl/Makefile" ;; + "lib/malloc/Makefile") CONFIG_FILES="$CONFIG_FILES lib/malloc/Makefile" ;; + "lib/sh/Makefile") CONFIG_FILES="$CONFIG_FILES lib/sh/Makefile" ;; + "lib/termcap/Makefile") CONFIG_FILES="$CONFIG_FILES lib/termcap/Makefile" ;; + "lib/tilde/Makefile") CONFIG_FILES="$CONFIG_FILES lib/tilde/Makefile" ;; + "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;; + "support/Makefile") CONFIG_FILES="$CONFIG_FILES support/Makefile" ;; + "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;; + "examples/loadables/Makefile") CONFIG_FILES="$CONFIG_FILES examples/loadables/Makefile" ;; + "examples/loadables/perl/Makefile") CONFIG_FILES="$CONFIG_FILES examples/loadables/perl/Makefile" ;; + "default") CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;; + + *) { { $as_echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 +$as_echo "$as_me: error: invalid argument: $ac_config_target" >&2;} { (exit 1); exit 1; }; };; esac done + # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely @@ -28006,764 +30428,602 @@ if $ac_need_defaults; then fi # Have a temporary directory for convenience. Make it in the build tree -# simply because there is no reason to put it here, and in addition, +# simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. -# Create a temporary directory, and hook for its removal unless debugging. +# Hook for its removal unless debugging. +# Note that there is a small window in which the directory will not be cleaned: +# after its creation but before its name has been assigned to `$tmp'. $debug || { - trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 + tmp= + trap 'exit_status=$? + { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status +' 0 trap '{ (exit 1); exit 1; }' 1 2 13 15 } - # Create a (secure) tmp directory for tmp files. { - tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` && + tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" } || { - tmp=./confstat$$-$RANDOM - (umask 077 && mkdir $tmp) + tmp=./conf$$-$RANDOM + (umask 077 && mkdir "$tmp") } || { - echo "$me: cannot create a temporary directory in ." >&2 + $as_echo "$as_me: cannot create a temporary directory in ." >&2 { (exit 1); exit 1; } } +# Set up the scripts for CONFIG_FILES section. +# No need to generate them if there are no CONFIG_FILES. +# This happens for instance with `./config.status config.h'. +if test -n "$CONFIG_FILES"; then + + +ac_cr=' ' +ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` +if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then + ac_cs_awk_cr='\\r' +else + ac_cs_awk_cr=$ac_cr +fi + +echo 'BEGIN {' >"$tmp/subs1.awk" && _ACEOF -cat >>$CONFIG_STATUS <<_ACEOF -# -# CONFIG_FILES section. -# +{ + echo "cat >conf$$subs.awk <<_ACEOF" && + echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && + echo "_ACEOF" +} >conf$$subs.sh || + { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 +$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} + { (exit 1); exit 1; }; } +ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'` +ac_delim='%!_!# ' +for ac_last_try in false false false false false :; do + . ./conf$$subs.sh || + { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 +$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} + { (exit 1); exit 1; }; } -# No need to generate the scripts if there are no CONFIG_FILES. -# This happens for instance when ./config.status config.h -if test -n "\$CONFIG_FILES"; then - # Protect against being on the right side of a sed subst in config.status. - sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g; - s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF -s,@SHELL@,$SHELL,;t t -s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t -s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t -s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t -s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t -s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t -s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t -s,@exec_prefix@,$exec_prefix,;t t -s,@prefix@,$prefix,;t t -s,@program_transform_name@,$program_transform_name,;t t -s,@bindir@,$bindir,;t t -s,@sbindir@,$sbindir,;t t -s,@libexecdir@,$libexecdir,;t t -s,@datadir@,$datadir,;t t -s,@sysconfdir@,$sysconfdir,;t t -s,@sharedstatedir@,$sharedstatedir,;t t -s,@localstatedir@,$localstatedir,;t t -s,@libdir@,$libdir,;t t -s,@includedir@,$includedir,;t t -s,@oldincludedir@,$oldincludedir,;t t -s,@infodir@,$infodir,;t t -s,@mandir@,$mandir,;t t -s,@build_alias@,$build_alias,;t t -s,@host_alias@,$host_alias,;t t -s,@target_alias@,$target_alias,;t t -s,@DEFS@,$DEFS,;t t -s,@ECHO_C@,$ECHO_C,;t t -s,@ECHO_N@,$ECHO_N,;t t -s,@ECHO_T@,$ECHO_T,;t t -s,@LIBS@,$LIBS,;t t -s,@build@,$build,;t t -s,@build_cpu@,$build_cpu,;t t -s,@build_vendor@,$build_vendor,;t t -s,@build_os@,$build_os,;t t -s,@host@,$host,;t t -s,@host_cpu@,$host_cpu,;t t -s,@host_vendor@,$host_vendor,;t t -s,@host_os@,$host_os,;t t -s,@EMACS@,$EMACS,;t t -s,@lispdir@,$lispdir,;t t -s,@DEBUGGER_START_FILE@,$DEBUGGER_START_FILE,;t t -s,@TESTSCRIPT@,$TESTSCRIPT,;t t -s,@PURIFY@,$PURIFY,;t t -s,@MALLOC_TARGET@,$MALLOC_TARGET,;t t -s,@MALLOC_SRC@,$MALLOC_SRC,;t t -s,@MALLOC_LIB@,$MALLOC_LIB,;t t -s,@MALLOC_LIBRARY@,$MALLOC_LIBRARY,;t t -s,@MALLOC_LDFLAGS@,$MALLOC_LDFLAGS,;t t -s,@MALLOC_DEP@,$MALLOC_DEP,;t t -s,@htmldir@,$htmldir,;t t -s,@HELPDIR@,$HELPDIR,;t t -s,@HELPDIRDEFINE@,$HELPDIRDEFINE,;t t -s,@HELPINSTALL@,$HELPINSTALL,;t t -s,@HELPSTRINGS@,$HELPSTRINGS,;t t -s,@CC@,$CC,;t t -s,@CFLAGS@,$CFLAGS,;t t -s,@LDFLAGS@,$LDFLAGS,;t t -s,@CPPFLAGS@,$CPPFLAGS,;t t -s,@ac_ct_CC@,$ac_ct_CC,;t t -s,@EXEEXT@,$EXEEXT,;t t -s,@OBJEXT@,$OBJEXT,;t t -s,@CPP@,$CPP,;t t -s,@EGREP@,$EGREP,;t t -s,@CROSS_COMPILE@,$CROSS_COMPILE,;t t -s,@SIGNAMES_H@,$SIGNAMES_H,;t t -s,@SIGNAMES_O@,$SIGNAMES_O,;t t -s,@CC_FOR_BUILD@,$CC_FOR_BUILD,;t t -s,@STATIC_LD@,$STATIC_LD,;t t -s,@CFLAGS_FOR_BUILD@,$CFLAGS_FOR_BUILD,;t t -s,@CPPFLAGS_FOR_BUILD@,$CPPFLAGS_FOR_BUILD,;t t -s,@LDFLAGS_FOR_BUILD@,$LDFLAGS_FOR_BUILD,;t t -s,@RL_VERSION@,$RL_VERSION,;t t -s,@RL_MAJOR@,$RL_MAJOR,;t t -s,@RL_MINOR@,$RL_MINOR,;t t -s,@READLINE_LIB@,$READLINE_LIB,;t t -s,@READLINE_DEP@,$READLINE_DEP,;t t -s,@RL_LIBDIR@,$RL_LIBDIR,;t t -s,@RL_INCLUDEDIR@,$RL_INCLUDEDIR,;t t -s,@RL_INCLUDE@,$RL_INCLUDE,;t t -s,@HISTORY_LIB@,$HISTORY_LIB,;t t -s,@HISTORY_DEP@,$HISTORY_DEP,;t t -s,@HIST_LIBDIR@,$HIST_LIBDIR,;t t -s,@TILDE_LIB@,$TILDE_LIB,;t t -s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t -s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t -s,@INSTALL_DATA@,$INSTALL_DATA,;t t -s,@AR@,$AR,;t t -s,@RANLIB@,$RANLIB,;t t -s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t -s,@YACC@,$YACC,;t t -s,@SET_MAKE@,$SET_MAKE,;t t -s,@MAKE_SHELL@,$MAKE_SHELL,;t t -s,@SIZE@,$SIZE,;t t -s,@MKINSTALLDIRS@,$MKINSTALLDIRS,;t t -s,@USE_NLS@,$USE_NLS,;t t -s,@MSGFMT@,$MSGFMT,;t t -s,@GMSGFMT@,$GMSGFMT,;t t -s,@XGETTEXT@,$XGETTEXT,;t t -s,@MSGMERGE@,$MSGMERGE,;t t -s,@ALLOCA@,$ALLOCA,;t t -s,@GLIBC21@,$GLIBC21,;t t -s,@LIBICONV@,$LIBICONV,;t t -s,@LTLIBICONV@,$LTLIBICONV,;t t -s,@INTLBISON@,$INTLBISON,;t t -s,@BUILD_INCLUDED_LIBINTL@,$BUILD_INCLUDED_LIBINTL,;t t -s,@USE_INCLUDED_LIBINTL@,$USE_INCLUDED_LIBINTL,;t t -s,@CATOBJEXT@,$CATOBJEXT,;t t -s,@DATADIRNAME@,$DATADIRNAME,;t t -s,@INSTOBJEXT@,$INSTOBJEXT,;t t -s,@GENCAT@,$GENCAT,;t t -s,@INTLOBJS@,$INTLOBJS,;t t -s,@INTL_LIBTOOL_SUFFIX_PREFIX@,$INTL_LIBTOOL_SUFFIX_PREFIX,;t t -s,@INTLLIBS@,$INTLLIBS,;t t -s,@LIBINTL@,$LIBINTL,;t t -s,@LTLIBINTL@,$LTLIBINTL,;t t -s,@POSUB@,$POSUB,;t t -s,@LIBOBJS@,$LIBOBJS,;t t -s,@INTL_DEP@,$INTL_DEP,;t t -s,@INTL_INC@,$INTL_INC,;t t -s,@LIBINTL_H@,$LIBINTL_H,;t t -s,@SIGLIST_O@,$SIGLIST_O,;t t -s,@TERMCAP_LIB@,$TERMCAP_LIB,;t t -s,@TERMCAP_DEP@,$TERMCAP_DEP,;t t -s,@JOBS_O@,$JOBS_O,;t t -s,@SHOBJ_CC@,$SHOBJ_CC,;t t -s,@SHOBJ_CFLAGS@,$SHOBJ_CFLAGS,;t t -s,@SHOBJ_LD@,$SHOBJ_LD,;t t -s,@SHOBJ_LDFLAGS@,$SHOBJ_LDFLAGS,;t t -s,@SHOBJ_XLDFLAGS@,$SHOBJ_XLDFLAGS,;t t -s,@SHOBJ_LIBS@,$SHOBJ_LIBS,;t t -s,@SHOBJ_STATUS@,$SHOBJ_STATUS,;t t -s,@PROFILE_FLAGS@,$PROFILE_FLAGS,;t t -s,@incdir@,$incdir,;t t -s,@BUILD_DIR@,$BUILD_DIR,;t t -s,@ARFLAGS@,$ARFLAGS,;t t -s,@BASHVERS@,$BASHVERS,;t t -s,@RELSTATUS@,$RELSTATUS,;t t -s,@DEBUG@,$DEBUG,;t t -s,@MALLOC_DEBUG@,$MALLOC_DEBUG,;t t -s,@LOCAL_LIBS@,$LOCAL_LIBS,;t t -s,@LOCAL_CFLAGS@,$LOCAL_CFLAGS,;t t -s,@LOCAL_LDFLAGS@,$LOCAL_LDFLAGS,;t t -s,@LOCAL_DEFS@,$LOCAL_DEFS,;t t -s,@LTLIBOBJS@,$LTLIBOBJS,;t t -CEOF - -_ACEOF - - cat >>$CONFIG_STATUS <<\_ACEOF - # Split the substitutions into bite-sized pieces for seds with - # small command number limits, like on Digital OSF/1 and HP-UX. - ac_max_sed_lines=48 - ac_sed_frag=1 # Number of current file. - ac_beg=1 # First line for current file. - ac_end=$ac_max_sed_lines # Line after last line for current file. - ac_more_lines=: - ac_sed_cmds= - while $ac_more_lines; do - if test $ac_beg -gt 1; then - sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag - else - sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag - fi - if test ! -s $tmp/subs.frag; then - ac_more_lines=false - else - # The purpose of the label and of the branching condition is to - # speed up the sed processing (if there are no `@' at all, there - # is no need to browse any of the substitutions). - # These are the two extra sed commands mentioned above. - (echo ':t - /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed - if test -z "$ac_sed_cmds"; then - ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed" - else - ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed" - fi - ac_sed_frag=`expr $ac_sed_frag + 1` - ac_beg=$ac_end - ac_end=`expr $ac_end + $ac_max_sed_lines` - fi - done - if test -z "$ac_sed_cmds"; then - ac_sed_cmds=cat + ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` + if test $ac_delim_n = $ac_delim_num; then + break + elif $ac_last_try; then + { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 +$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} + { (exit 1); exit 1; }; } + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi +done +rm -f conf$$subs.sh + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +cat >>"\$tmp/subs1.awk" <<\\_ACAWK && +_ACEOF +sed -n ' +h +s/^/S["/; s/!.*/"]=/ +p +g +s/^[^!]*!// +:repl +t repl +s/'"$ac_delim"'$// +t delim +:nl +h +s/\(.\{148\}\).*/\1/ +t more1 +s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ +p +n +b repl +:more1 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t nl +:delim +h +s/\(.\{148\}\).*/\1/ +t more2 +s/["\\]/\\&/g; s/^/"/; s/$/"/ +p +b +:more2 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t delim +' >$CONFIG_STATUS || ac_write_fail=1 +rm -f conf$$subs.awk +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +_ACAWK +cat >>"\$tmp/subs1.awk" <<_ACAWK && + for (key in S) S_is_set[key] = 1 + FS = "" + +} +{ + line = $ 0 + nfields = split(line, field, "@") + substed = 0 + len = length(field[1]) + for (i = 2; i < nfields; i++) { + key = field[i] + keylen = length(key) + if (S_is_set[key]) { + value = S[key] + line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) + len += length(value) + length(field[++i]) + substed = 1 + } else + len += 1 + keylen + } + + print line +} + +_ACAWK +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then + sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" +else + cat +fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ + || { { $as_echo "$as_me:$LINENO: error: could not setup config files machinery" >&5 +$as_echo "$as_me: error: could not setup config files machinery" >&2;} + { (exit 1); exit 1; }; } +_ACEOF + +# VPATH may cause trouble with some makes, so we remove $(srcdir), +# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and +# trailing colons and then remove the whole line if VPATH becomes empty +# (actually we leave an empty line to preserve line numbers). +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=/{ +s/:*\$(srcdir):*/:/ +s/:*\${srcdir}:*/:/ +s/:*@srcdir@:*/:/ +s/^\([^=]*=[ ]*\):*/\1/ +s/:*$// +s/^[^=]*=[ ]*$// +}' +fi + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" +# Set up the scripts for CONFIG_HEADERS section. +# No need to generate them if there are no CONFIG_HEADERS. +# This happens for instance with `./config.status Makefile'. +if test -n "$CONFIG_HEADERS"; then +cat >"$tmp/defines.awk" <<\_ACAWK || +BEGIN { _ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF -for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue - # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". - case $ac_file in - - | *:- | *:-:* ) # input from stdin - cat >$tmp/stdin - ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; - *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; - * ) ac_file_in=$ac_file.in ;; + +# Transform confdefs.h into an awk script `defines.awk', embedded as +# here-document in config.status, that substitutes the proper values into +# config.h.in to produce config.h. + +# Create a delimiter string that does not exist in confdefs.h, to ease +# handling of long lines. +ac_delim='%!_!# ' +for ac_last_try in false false :; do + ac_t=`sed -n "/$ac_delim/p" confdefs.h` + if test -z "$ac_t"; then + break + elif $ac_last_try; then + { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_HEADERS" >&5 +$as_echo "$as_me: error: could not make $CONFIG_HEADERS" >&2;} + { (exit 1); exit 1; }; } + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done + +# For the awk script, D is an array of macro values keyed by name, +# likewise P contains macro parameters if any. Preserve backslash +# newline sequences. + +ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* +sed -n ' +s/.\{148\}/&'"$ac_delim"'/g +t rset +:rset +s/^[ ]*#[ ]*define[ ][ ]*/ / +t def +d +:def +s/\\$// +t bsnl +s/["\\]/\\&/g +s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ +D["\1"]=" \3"/p +s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p +d +:bsnl +s/["\\]/\\&/g +s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ +D["\1"]=" \3\\\\\\n"\\/p +t cont +s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p +t cont +d +:cont +n +s/.\{148\}/&'"$ac_delim"'/g +t clear +:clear +s/\\$// +t bsnlc +s/["\\]/\\&/g; s/^/"/; s/$/"/p +d +:bsnlc +s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p +b cont +' >$CONFIG_STATUS || ac_write_fail=1 + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + for (key in D) D_is_set[key] = 1 + FS = "" +} +/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { + line = \$ 0 + split(line, arg, " ") + if (arg[1] == "#") { + defundef = arg[2] + mac1 = arg[3] + } else { + defundef = substr(arg[1], 2) + mac1 = arg[2] + } + split(mac1, mac2, "(") #) + macro = mac2[1] + prefix = substr(line, 1, index(line, defundef) - 1) + if (D_is_set[macro]) { + # Preserve the white space surrounding the "#". + print prefix "define", macro P[macro] D[macro] + next + } else { + # Replace #undef with comments. This is necessary, for example, + # in the case of _POSIX_SOURCE, which is predefined and required + # on some systems where configure will not decide to define it. + if (defundef == "undef") { + print "/*", prefix defundef, macro, "*/" + next + } + } +} +{ print } +_ACAWK +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + { { $as_echo "$as_me:$LINENO: error: could not setup config headers machinery" >&5 +$as_echo "$as_me: error: could not setup config headers machinery" >&2;} + { (exit 1); exit 1; }; } +fi # test -n "$CONFIG_HEADERS" + + +eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" +shift +for ac_tag +do + case $ac_tag in + :[FHLC]) ac_mode=$ac_tag; continue;; + esac + case $ac_mode$ac_tag in + :[FHL]*:*);; + :L* | :C*:*) { { $as_echo "$as_me:$LINENO: error: invalid tag $ac_tag" >&5 +$as_echo "$as_me: error: invalid tag $ac_tag" >&2;} + { (exit 1); exit 1; }; };; + :[FH]-) ac_tag=-:-;; + :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; + esac + ac_save_IFS=$IFS + IFS=: + set x $ac_tag + IFS=$ac_save_IFS + shift + ac_file=$1 + shift + + case $ac_mode in + :L) ac_source=$1;; + :[FH]) + ac_file_inputs= + for ac_f + do + case $ac_f in + -) ac_f="$tmp/stdin";; + *) # Look for the file first in the build tree, then in the source tree + # (if the path is not absolute). The absolute path cannot be DOS-style, + # because $ac_f cannot contain `:'. + test -f "$ac_f" || + case $ac_f in + [\\/$]*) false;; + *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; + esac || + { { $as_echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5 +$as_echo "$as_me: error: cannot find input file: $ac_f" >&2;} + { (exit 1); exit 1; }; };; + esac + case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac + ac_file_inputs="$ac_file_inputs '$ac_f'" + done + + # Let's still pretend it is `configure' which instantiates (i.e., don't + # use $as_me), people would be surprised to read: + # /* config.h. Generated by config.status. */ + configure_input='Generated from '` + $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' + `' by configure.' + if test x"$ac_file" != x-; then + configure_input="$ac_file. $configure_input" + { $as_echo "$as_me:$LINENO: creating $ac_file" >&5 +$as_echo "$as_me: creating $ac_file" >&6;} + fi + # Neutralize special characters interpreted by sed in replacement strings. + case $configure_input in #( + *\&* | *\|* | *\\* ) + ac_sed_conf_input=`$as_echo "$configure_input" | + sed 's/[\\\\&|]/\\\\&/g'`;; #( + *) ac_sed_conf_input=$configure_input;; + esac + + case $ac_tag in + *:-:* | *:-) cat >"$tmp/stdin" \ + || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 +$as_echo "$as_me: error: could not create $ac_file" >&2;} + { (exit 1); exit 1; }; } ;; + esac + ;; esac - # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories. - ac_dir=`(dirname "$ac_file") 2>/dev/null || + ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ - X"$ac_file" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$ac_file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - { if $as_mkdir_p; then - mkdir -p "$ac_dir" - else - as_dir="$ac_dir" + X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$ac_file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + { as_dir="$ac_dir" + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { as_dirs= - while test ! -d "$as_dir"; do - as_dirs="$as_dir $as_dirs" - as_dir=`(dirname "$as_dir") 2>/dev/null || + while :; do + case $as_dir in #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break done - test ! -n "$as_dirs" || mkdir $as_dirs - fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 -echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || { { $as_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 +$as_echo "$as_me: error: cannot create directory $as_dir" >&2;} { (exit 1); exit 1; }; }; } - ac_builddir=. -if test "$ac_dir" != .; then - ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` - # A "../" for each directory in $ac_dir_suffix. - ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` -else - ac_dir_suffix= ac_top_builddir= -fi +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix case $srcdir in - .) # No --srcdir option. We are building in place. + .) # We are building in place. ac_srcdir=. - if test -z "$ac_top_builddir"; then - ac_top_srcdir=. - else - ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` - fi ;; - [\\/]* | ?:[\\/]* ) # Absolute path. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir ;; - *) # Relative path. - ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_builddir$srcdir ;; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix -# Do not use `cd foo && pwd` to compute absolute paths, because -# the directories may not exist. -case `pwd` in -.) ac_abs_builddir="$ac_dir";; -*) - case "$ac_dir" in - .) ac_abs_builddir=`pwd`;; - [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; - *) ac_abs_builddir=`pwd`/"$ac_dir";; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_top_builddir=${ac_top_builddir}.;; -*) - case ${ac_top_builddir}. in - .) ac_abs_top_builddir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; - *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_srcdir=$ac_srcdir;; -*) - case $ac_srcdir in - .) ac_abs_srcdir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; - *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_top_srcdir=$ac_top_srcdir;; -*) - case $ac_top_srcdir in - .) ac_abs_top_srcdir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; - *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; - esac;; -esac + case $ac_mode in + :F) + # + # CONFIG_FILE + # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; - *) ac_INSTALL=$ac_top_builddir$INSTALL ;; + *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac +_ACEOF - if test x"$ac_file" != x-; then - { echo "$as_me:$LINENO: creating $ac_file" >&5 -echo "$as_me: creating $ac_file" >&6;} - rm -f "$ac_file" - fi - # Let's still pretend it is `configure' which instantiates (i.e., don't - # use $as_me), people would be surprised to read: - # /* config.h. Generated by config.status. */ - if test x"$ac_file" = x-; then - configure_input= - else - configure_input="$ac_file. " - fi - configure_input=$configure_input"Generated from `echo $ac_file_in | - sed 's,.*/,,'` by configure." - - # First look for the input files in the build tree, otherwise in the - # src tree. - ac_file_inputs=`IFS=: - for f in $ac_file_in; do - case $f in - -) echo $tmp/stdin ;; - [\\/$]*) - # Absolute (can't be DOS-style, as IFS=:) - test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 -echo "$as_me: error: cannot find input file: $f" >&2;} - { (exit 1); exit 1; }; } - echo "$f";; - *) # Relative - if test -f "$f"; then - # Build tree - echo "$f" - elif test -f "$srcdir/$f"; then - # Source tree - echo "$srcdir/$f" - else - # /dev/null tree - { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 -echo "$as_me: error: cannot find input file: $f" >&2;} - { (exit 1); exit 1; }; } - fi;; - esac - done` || { (exit 1); exit 1; } +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# If the template does not know about datarootdir, expand it. +# FIXME: This hack should be removed a few years after 2.60. +ac_datarootdir_hack=; ac_datarootdir_seen= + +ac_sed_dataroot=' +/datarootdir/ { + p + q +} +/@datadir@/p +/@docdir@/p +/@infodir@/p +/@localedir@/p +/@mandir@/p +' +case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in +*datarootdir*) ac_datarootdir_seen=yes;; +*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) + { $as_echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 +$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + ac_datarootdir_hack=' + s&@datadir@&$datadir&g + s&@docdir@&$docdir&g + s&@infodir@&$infodir&g + s&@localedir@&$localedir&g + s&@mandir@&$mandir&g + s&\\\${datarootdir}&$datarootdir&g' ;; +esac _ACEOF -cat >>$CONFIG_STATUS <<_ACEOF - sed "$ac_vpsub + +# Neutralize VPATH when `$srcdir' = `.'. +# Shell code in configure.ac might set extrasub. +# FIXME: do we really want to maintain this feature? +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_sed_extra="$ac_vpsub $extrasub _ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b -s,@configure_input@,$configure_input,;t t -s,@srcdir@,$ac_srcdir,;t t -s,@abs_srcdir@,$ac_abs_srcdir,;t t -s,@top_srcdir@,$ac_top_srcdir,;t t -s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t -s,@builddir@,$ac_builddir,;t t -s,@abs_builddir@,$ac_abs_builddir,;t t -s,@top_builddir@,$ac_top_builddir,;t t -s,@abs_top_builddir@,$ac_abs_top_builddir,;t t -s,@INSTALL@,$ac_INSTALL,;t t -" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out - rm -f $tmp/stdin - if test x"$ac_file" != x-; then - mv $tmp/out $ac_file - else - cat $tmp/out - rm -f $tmp/out - fi - -done -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF +s|@configure_input@|$ac_sed_conf_input|;t t +s&@top_builddir@&$ac_top_builddir_sub&;t t +s&@top_build_prefix@&$ac_top_build_prefix&;t t +s&@srcdir@&$ac_srcdir&;t t +s&@abs_srcdir@&$ac_abs_srcdir&;t t +s&@top_srcdir@&$ac_top_srcdir&;t t +s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t +s&@builddir@&$ac_builddir&;t t +s&@abs_builddir@&$ac_abs_builddir&;t t +s&@abs_top_builddir@&$ac_abs_top_builddir&;t t +s&@INSTALL@&$ac_INSTALL&;t t +$ac_datarootdir_hack +" +eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \ + || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 +$as_echo "$as_me: error: could not create $ac_file" >&2;} + { (exit 1); exit 1; }; } -# -# CONFIG_HEADER section. -# +test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && + { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && + { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && + { $as_echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined." >&5 +$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined." >&2;} -# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where -# NAME is the cpp macro being defined and VALUE is the value it is being given. -# -# ac_d sets the value in "#define NAME VALUE" lines. -ac_dA='s,^\([ ]*\)#\([ ]*define[ ][ ]*\)' -ac_dB='[ ].*$,\1#\2' -ac_dC=' ' -ac_dD=',;t' -# ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE". -ac_uA='s,^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' -ac_uB='$,\1#\2define\3' -ac_uC=' ' -ac_uD=',;t' - -for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue - # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + rm -f "$tmp/stdin" case $ac_file in - - | *:- | *:-:* ) # input from stdin - cat >$tmp/stdin - ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; - *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; - * ) ac_file_in=$ac_file.in ;; - esac - - test x"$ac_file" != x- && { echo "$as_me:$LINENO: creating $ac_file" >&5 -echo "$as_me: creating $ac_file" >&6;} - - # First look for the input files in the build tree, otherwise in the - # src tree. - ac_file_inputs=`IFS=: - for f in $ac_file_in; do - case $f in - -) echo $tmp/stdin ;; - [\\/$]*) - # Absolute (can't be DOS-style, as IFS=:) - test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 -echo "$as_me: error: cannot find input file: $f" >&2;} + -) cat "$tmp/out" && rm -f "$tmp/out";; + *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; + esac \ + || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 +$as_echo "$as_me: error: could not create $ac_file" >&2;} { (exit 1); exit 1; }; } - # Do quote $f, to prevent DOS paths from being IFS'd. - echo "$f";; - *) # Relative - if test -f "$f"; then - # Build tree - echo "$f" - elif test -f "$srcdir/$f"; then - # Source tree - echo "$srcdir/$f" - else - # /dev/null tree - { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 -echo "$as_me: error: cannot find input file: $f" >&2;} - { (exit 1); exit 1; }; } - fi;; - esac - done` || { (exit 1); exit 1; } - # Remove the trailing spaces. - sed 's/[ ]*$//' $ac_file_inputs >$tmp/in - -_ACEOF - -# Transform confdefs.h into two sed scripts, `conftest.defines' and -# `conftest.undefs', that substitutes the proper values into -# config.h.in to produce config.h. The first handles `#define' -# templates, and the second `#undef' templates. -# And first: Protect against being on the right side of a sed subst in -# config.status. Protect against being in an unquoted here document -# in config.status. -rm -f conftest.defines conftest.undefs -# Using a here document instead of a string reduces the quoting nightmare. -# Putting comments in sed scripts is not portable. -# -# `end' is used to avoid that the second main sed command (meant for -# 0-ary CPP macros) applies to n-ary macro definitions. -# See the Autoconf documentation for `clear'. -cat >confdef2sed.sed <<\_ACEOF -s/[\\&,]/\\&/g -s,[\\$`],\\&,g -t clear -: clear -s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*\)\(([^)]*)\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp -t end -s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp -: end -_ACEOF -# If some macros were called several times there might be several times -# the same #defines, which is useless. Nevertheless, we may not want to -# sort them, since we want the *last* AC-DEFINE to be honored. -uniq confdefs.h | sed -n -f confdef2sed.sed >conftest.defines -sed 's/ac_d/ac_u/g' conftest.defines >conftest.undefs -rm -f confdef2sed.sed - -# This sed command replaces #undef with comments. This is necessary, for -# example, in the case of _POSIX_SOURCE, which is predefined and required -# on some systems where configure will not decide to define it. -cat >>conftest.undefs <<\_ACEOF -s,^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */, -_ACEOF - -# Break up conftest.defines because some shells have a limit on the size -# of here documents, and old seds have small limits too (100 cmds). -echo ' # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS -echo ' if grep "^[ ]*#[ ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS -echo ' # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS -echo ' :' >>$CONFIG_STATUS -rm -f conftest.tail -while grep . conftest.defines >/dev/null -do - # Write a limited-size here document to $tmp/defines.sed. - echo ' cat >$tmp/defines.sed <>$CONFIG_STATUS - # Speed up: don't consider the non `#define' lines. - echo '/^[ ]*#[ ]*define/!b' >>$CONFIG_STATUS - # Work around the forget-to-reset-the-flag bug. - echo 't clr' >>$CONFIG_STATUS - echo ': clr' >>$CONFIG_STATUS - sed ${ac_max_here_lines}q conftest.defines >>$CONFIG_STATUS - echo 'CEOF - sed -f $tmp/defines.sed $tmp/in >$tmp/out - rm -f $tmp/in - mv $tmp/out $tmp/in -' >>$CONFIG_STATUS - sed 1,${ac_max_here_lines}d conftest.defines >conftest.tail - rm -f conftest.defines - mv conftest.tail conftest.defines -done -rm -f conftest.defines -echo ' fi # grep' >>$CONFIG_STATUS -echo >>$CONFIG_STATUS - -# Break up conftest.undefs because some shells have a limit on the size -# of here documents, and old seds have small limits too (100 cmds). -echo ' # Handle all the #undef templates' >>$CONFIG_STATUS -rm -f conftest.tail -while grep . conftest.undefs >/dev/null -do - # Write a limited-size here document to $tmp/undefs.sed. - echo ' cat >$tmp/undefs.sed <>$CONFIG_STATUS - # Speed up: don't consider the non `#undef' - echo '/^[ ]*#[ ]*undef/!b' >>$CONFIG_STATUS - # Work around the forget-to-reset-the-flag bug. - echo 't clr' >>$CONFIG_STATUS - echo ': clr' >>$CONFIG_STATUS - sed ${ac_max_here_lines}q conftest.undefs >>$CONFIG_STATUS - echo 'CEOF - sed -f $tmp/undefs.sed $tmp/in >$tmp/out - rm -f $tmp/in - mv $tmp/out $tmp/in -' >>$CONFIG_STATUS - sed 1,${ac_max_here_lines}d conftest.undefs >conftest.tail - rm -f conftest.undefs - mv conftest.tail conftest.undefs -done -rm -f conftest.undefs - -cat >>$CONFIG_STATUS <<\_ACEOF - # Let's still pretend it is `configure' which instantiates (i.e., don't - # use $as_me), people would be surprised to read: - # /* config.h. Generated by config.status. */ - if test x"$ac_file" = x-; then - echo "/* Generated by configure. */" >$tmp/config.h - else - echo "/* $ac_file. Generated by configure. */" >$tmp/config.h - fi - cat $tmp/in >>$tmp/config.h - rm -f $tmp/in + ;; + :H) + # + # CONFIG_HEADER + # if test x"$ac_file" != x-; then - if diff $ac_file $tmp/config.h >/dev/null 2>&1; then - { echo "$as_me:$LINENO: $ac_file is unchanged" >&5 -echo "$as_me: $ac_file is unchanged" >&6;} + { + $as_echo "/* $configure_input */" \ + && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" + } >"$tmp/config.h" \ + || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 +$as_echo "$as_me: error: could not create $ac_file" >&2;} + { (exit 1); exit 1; }; } + if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then + { $as_echo "$as_me:$LINENO: $ac_file is unchanged" >&5 +$as_echo "$as_me: $ac_file is unchanged" >&6;} else - ac_dir=`(dirname "$ac_file") 2>/dev/null || -$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_file" : 'X\(//\)[^/]' \| \ - X"$ac_file" : 'X\(//\)$' \| \ - X"$ac_file" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$ac_file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - { if $as_mkdir_p; then - mkdir -p "$ac_dir" - else - as_dir="$ac_dir" - as_dirs= - while test ! -d "$as_dir"; do - as_dirs="$as_dir $as_dirs" - as_dir=`(dirname "$as_dir") 2>/dev/null || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - done - test ! -n "$as_dirs" || mkdir $as_dirs - fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 -echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} - { (exit 1); exit 1; }; }; } - - rm -f $ac_file - mv $tmp/config.h $ac_file + rm -f "$ac_file" + mv "$tmp/config.h" "$ac_file" \ + || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 +$as_echo "$as_me: error: could not create $ac_file" >&2;} + { (exit 1); exit 1; }; } fi else - cat $tmp/config.h - rm -f $tmp/config.h + $as_echo "/* $configure_input */" \ + && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \ + || { { $as_echo "$as_me:$LINENO: error: could not create -" >&5 +$as_echo "$as_me: error: could not create -" >&2;} + { (exit 1); exit 1; }; } fi -done -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF - -# -# CONFIG_COMMANDS section. -# -for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue - ac_dest=`echo "$ac_file" | sed 's,:.*,,'` - ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_dir=`(dirname "$ac_dest") 2>/dev/null || -$as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_dest" : 'X\(//\)[^/]' \| \ - X"$ac_dest" : 'X\(//\)$' \| \ - X"$ac_dest" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$ac_dest" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - { if $as_mkdir_p; then - mkdir -p "$ac_dir" - else - as_dir="$ac_dir" - as_dirs= - while test ! -d "$as_dir"; do - as_dirs="$as_dir $as_dirs" - as_dir=`(dirname "$as_dir") 2>/dev/null || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - done - test ! -n "$as_dirs" || mkdir $as_dirs - fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 -echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} - { (exit 1); exit 1; }; }; } - - ac_builddir=. - -if test "$ac_dir" != .; then - ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` - # A "../" for each directory in $ac_dir_suffix. - ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` -else - ac_dir_suffix= ac_top_builddir= -fi - -case $srcdir in - .) # No --srcdir option. We are building in place. - ac_srcdir=. - if test -z "$ac_top_builddir"; then - ac_top_srcdir=. - else - ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` - fi ;; - [\\/]* | ?:[\\/]* ) # Absolute path. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir ;; - *) # Relative path. - ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_builddir$srcdir ;; -esac + ;; -# Do not use `cd foo && pwd` to compute absolute paths, because -# the directories may not exist. -case `pwd` in -.) ac_abs_builddir="$ac_dir";; -*) - case "$ac_dir" in - .) ac_abs_builddir=`pwd`;; - [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; - *) ac_abs_builddir=`pwd`/"$ac_dir";; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_top_builddir=${ac_top_builddir}.;; -*) - case ${ac_top_builddir}. in - .) ac_abs_top_builddir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; - *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_srcdir=$ac_srcdir;; -*) - case $ac_srcdir in - .) ac_abs_srcdir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; - *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_top_srcdir=$ac_top_srcdir;; -*) - case $ac_top_srcdir in - .) ac_abs_top_srcdir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; - *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; - esac;; -esac + :C) { $as_echo "$as_me:$LINENO: executing $ac_file commands" >&5 +$as_echo "$as_me: executing $ac_file commands" >&6;} + ;; + esac - { echo "$as_me:$LINENO: executing $ac_dest commands" >&5 -echo "$as_me: executing $ac_dest commands" >&6;} - case $ac_dest in - default-1 ) + case $ac_file$ac_mode in + "default-1":C) for ac_file in $CONFIG_FILES; do # Support "outfile[:infile[:infile...]]" case "$ac_file" in @@ -28864,21 +31124,25 @@ echo "$as_me: executing $ac_dest commands" >&6;} ;; esac done ;; - default ) + "default":C) # Makefile uses this timestamp file to record whether config.h is up to date. echo timestamp > stamp-h ;; + esac -done -_ACEOF +done # for ac_tag -cat >>$CONFIG_STATUS <<\_ACEOF { (exit 0); exit 0; } _ACEOF chmod +x $CONFIG_STATUS ac_clean_files=$ac_clean_files_save +test $ac_write_fail = 0 || + { { $as_echo "$as_me:$LINENO: error: write failure creating $CONFIG_STATUS" >&5 +$as_echo "$as_me: error: write failure creating $CONFIG_STATUS" >&2;} + { (exit 1); exit 1; }; } + # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. @@ -28900,4 +31164,8 @@ if test "$no_create" != yes; then # would make configure fail if this is the last instruction. $ac_cs_success || { (exit 1); exit 1; } fi +if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then + { $as_echo "$as_me:$LINENO: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 +$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} +fi diff --git a/configure.in b/configure.in index a688b2d19..13107d51a 100644 --- a/configure.in +++ b/configure.in @@ -1,31 +1,30 @@ dnl -dnl Configure script for bash-3.2 +dnl Configure script for bash-4.0 dnl dnl report bugs to chet@po.cwru.edu dnl dnl Process this file with autoconf to produce a configure script. -# Copyright (C) 1987-2007 Free Software Foundation, Inc. +# Copyright (C) 1987-2009 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. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . -AC_REVISION([for Bash 3.2, version 3.190])dnl +AC_REVISION([for Bash 4.0, version 4.009])dnl -define(bashvers, 3.2) -define(relstatus, release) +define(bashvers, 4.0) +define(relstatus, rc1) AC_INIT([bash], bashvers-relstatus, [bug-bash@gnu.org]) @@ -43,7 +42,7 @@ RELSTATUS=relstatus dnl defaults for debug settings case "$RELSTATUS" in -alp*|bet*|dev*|rc*) DEBUG='-DDEBUG' MALLOC_DEBUG='-DMALLOC_DEBUG' ;; +alp*|bet*|dev*|rc*|maint*) DEBUG='-DDEBUG' MALLOC_DEBUG='-DMALLOC_DEBUG' ;; *) DEBUG= MALLOC_DEBUG= ;; esac @@ -149,7 +148,7 @@ if test "$opt_curses" = yes; then fi if test -z "${DEBUGGER_START_FILE}"; then - DEBUGGER_START_FILE=${ac_default_prefix}/share/bashdb/bashdb-main.inc + DEBUGGER_START_FILE='${datadir}/bashdb/bashdb-main.inc' fi dnl optional shell features in config.h.in @@ -176,6 +175,7 @@ opt_xpg_echo=no opt_strict_posix=no opt_cond_command=yes opt_cond_regexp=yes +opt_coproc=yes opt_arith_for_command=yes opt_net_redirs=yes opt_progcomp=yes @@ -183,6 +183,8 @@ opt_separate_help=no opt_multibyte=yes opt_debugger=yes opt_single_longdoc_strings=yes +opt_casemod_attrs=yes +opt_casemod_expansions=yes dnl options that affect how bash is compiled and linked opt_static_link=no @@ -201,7 +203,8 @@ if test $opt_minimal_config = yes; then opt_brace_expansion=no opt_disabled_builtins=no opt_command_timing=no opt_extended_glob=no opt_cond_command=no opt_arith_for_command=no opt_net_redirs=no opt_progcomp=no opt_separate_help=no - opt_multibyte=yes opt_cond_regexp=no + opt_multibyte=yes opt_cond_regexp=no opt_coproc=no + opt_casemod_attrs=no opt_casemod_expansions=no fi AC_ARG_ENABLE(alias, AC_HELP_STRING([--enable-alias], [enable shell aliases]), opt_alias=$enableval) @@ -209,9 +212,12 @@ AC_ARG_ENABLE(arith-for-command, AC_HELP_STRING([--enable-arith-for-command], [e AC_ARG_ENABLE(array-variables, AC_HELP_STRING([--enable-array-variables], [include shell array variables]), opt_array_variables=$enableval) AC_ARG_ENABLE(bang-history, AC_HELP_STRING([--enable-bang-history], [turn on csh-style history substitution]), opt_bang_history=$enableval) AC_ARG_ENABLE(brace-expansion, AC_HELP_STRING([--enable-brace-expansion], [include brace expansion]), opt_brace_expansion=$enableval) +AC_ARG_ENABLE(casemod-attributes, AC_HELP_STRING([--enable-casemod-attributes], [include case-modifying variable attributes]), opt_casemod_attrs=$enableval) +AC_ARG_ENABLE(casemod-expansions, AC_HELP_STRING([--enable-casemod-expansions], [include case-modifying word expansions]), opt_casemod_expansions=$enableval) AC_ARG_ENABLE(command-timing, AC_HELP_STRING([--enable-command-timing], [enable the time reserved word and command timing]), opt_command_timing=$enableval) AC_ARG_ENABLE(cond-command, AC_HELP_STRING([--enable-cond-command], [enable the conditional command]), opt_cond_command=$enableval) -AC_ARG_ENABLE(cond-regexp, AC_HELP_STRING([--enable-cond-regexp], [enable extgended regular expression matching in conditional commands]), opt_cond_regexp=$enableval) +AC_ARG_ENABLE(cond-regexp, AC_HELP_STRING([--enable-cond-regexp], [enable extended regular expression matching in conditional commands]), opt_cond_regexp=$enableval) +AC_ARG_ENABLE(coprocesses, AC_HELP_STRING([--enable-coprocesses], [enable coprocess support and the coproc reserved word]), opt_coproc=$enableval) AC_ARG_ENABLE(debugger, AC_HELP_STRING([--enable-debugger], [enable support for bash debugger]), opt_debugger=$enableval) AC_ARG_ENABLE(directory-stack, AC_HELP_STRING([--enable-directory-stack], [enable builtins pushd/popd/dirs]), opt_dirstack=$enableval) AC_ARG_ENABLE(disabled-builtins, AC_HELP_STRING([--enable-disabled-builtins], [allow disabled builtins to still be invoked]), opt_disabled_builtins=$enableval) @@ -296,6 +302,9 @@ fi if test $opt_cond_regexp = yes ; then AC_DEFINE(COND_REGEXP) fi +if test $opt_coproc = yes; then +AC_DEFINE(COPROCESS_SUPPORT) +fi if test $opt_arith_for_command = yes; then AC_DEFINE(ARITH_FOR_COMMAND) fi @@ -311,6 +320,12 @@ fi if test $opt_debugger = yes; then AC_DEFINE(DEBUGGER) fi +if test $opt_casemod_attrs = yes; then +AC_DEFINE(CASEMOD_ATTRS) +fi +if test $opt_casemod_expansions = yes; then +AC_DEFINE(CASEMOD_EXPANSIONS) +fi if test $opt_memscramble = yes; then AC_DEFINE(MEMSCRAMBLE) @@ -553,7 +568,7 @@ if test $opt_history = yes || test $opt_bang_history = yes; then # static version specified as -llibname to override the # dynamic version case "${host_os}" in - darwin8*) HISTORY_LIB='${HISTORY_LIBRARY}' ;; + darwin[[89]]*) HISTORY_LIB='${HISTORY_LIBRARY}' ;; *) HISTORY_LIB=-lhistory ;; esac fi @@ -698,7 +713,7 @@ dnl checks for system calls AC_CHECK_FUNCS(dup2 eaccess fcntl getdtablesize getgroups gethostname \ getpagesize getpeername getrlimit getrusage gettimeofday \ kill killpg lstat readlink sbrk select setdtablesize \ - tcgetpgrp uname ulimit waitpid) + setitimer tcgetpgrp uname ulimit waitpid) AC_REPLACE_FUNCS(rename) dnl checks for c library functions @@ -713,6 +728,7 @@ AC_CHECK_FUNCS(isascii isblank isgraph isprint isspace isxdigit) AC_CHECK_FUNCS(getpwent getpwnam getpwuid) AC_REPLACE_FUNCS(getcwd memset strcasecmp strerror strftime strnlen strpbrk strstr) AC_REPLACE_FUNCS(strtod strtol strtoul strtoll strtoull strtoimax strtoumax) +AC_REPLACE_FUNCS(fdprintf) AC_CHECK_DECLS([confstr]) AC_CHECK_DECLS([printf]) @@ -782,7 +798,7 @@ AC_CHECK_LIB(dl, dlopen) AC_CHECK_FUNCS(dlopen dlclose dlsym) fi -dnl this defines SYS_SIGLIST_DECLARED +dnl this defines HAVE_DECL_SYS_SIGLIST AC_DECL_SYS_SIGLIST dnl network functions -- check for inet_aton again @@ -893,6 +909,7 @@ dnl presence and behavior of C library functions BASH_FUNC_STRSIGNAL BASH_FUNC_OPENDIR_CHECK BASH_FUNC_ULIMIT_MAXFDS +BASH_FUNC_FPURGE BASH_FUNC_GETENV if test "$ac_cv_func_getcwd" = "yes"; then BASH_FUNC_GETCWD @@ -972,7 +989,7 @@ dnl like glob and readline LOCAL_DEFS=-DSHELL dnl use this section to possibly define more cpp variables, specify local -dnl libraries, and specify any additional local cc flags +dnl libraries, and specify any additional local cc or ld flags dnl dnl this should really go away someday @@ -992,6 +1009,9 @@ sco3.2v4*) LOCAL_CFLAGS="-DMUST_UNBLOCK_CHLD -DPATH_MAX=1024" ;; sco3.2*) LOCAL_CFLAGS=-DMUST_UNBLOCK_CHLD ;; sunos4*) LOCAL_CFLAGS=-DSunOS4 ;; solaris2.5*) LOCAL_CFLAGS="-DSunOS5 -DSOLARIS" ;; +solaris2.8*) LOCAL_CFLAGS=-DSOLARIS LOCAL_LDFLAGS='-z interpose' ;; +solaris2.9*) LOCAL_CFLAGS=-DSOLARIS LOCAL_LDFLAGS='-z interpose' ;; +solaris2.10*) LOCAL_CFLAGS=-DSOLARIS LOCAL_LDFLAGS='-z interpose' ;; solaris2*) LOCAL_CFLAGS=-DSOLARIS ;; lynxos*) LOCAL_CFLAGS=-DRECYCLES_PIDS ;; linux*) LOCAL_LDFLAGS=-rdynamic # allow dynamic loading @@ -1074,11 +1094,22 @@ case "$BUILD_DIR" in *) ;; esac +if test -z "$localedir"; then + localedir='${datarootdir}/locale' +fi +if test -z "$datarootdir"; then + datarootdir='${prefix}/share' +fi + AC_SUBST(PROFILE_FLAGS) AC_SUBST(incdir) AC_SUBST(BUILD_DIR) +# Some versions of autoconf don't substitute these automatically +AC_SUBST(datarootdir) +AC_SUBST(localedir) + AC_SUBST(YACC) AC_SUBST(AR) AC_SUBST(ARFLAGS) @@ -1104,8 +1135,7 @@ AC_OUTPUT([Makefile builtins/Makefile lib/readline/Makefile lib/glob/Makefile \ lib/intl/Makefile \ lib/malloc/Makefile lib/sh/Makefile lib/termcap/Makefile \ lib/tilde/Makefile doc/Makefile support/Makefile po/Makefile.in \ - examples/loadables/Makefile examples/loadables/perl/Makefile \ - pathnames.h], + examples/loadables/Makefile examples/loadables/perl/Makefile], [ # Makefile uses this timestamp file to record whether config.h is up to date. echo timestamp > stamp-h diff --git a/conftypes.h b/conftypes.h index 280542dcd..1c8c5480a 100644 --- a/conftypes.h +++ b/conftypes.h @@ -1,22 +1,22 @@ /* conftypes.h -- defines for build and host system. */ -/* Copyright (C) 2001 Free Software Foundation, Inc. +/* Copyright (C) 2001, 2005, 2008,2009 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public - License for more details. + 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. */ + along with Bash. If not, see . +*/ #if !defined (_CONFTYPES_H_) #define _CONFTYPES_H_ diff --git a/copy_cmd.c b/copy_cmd.c index d36436c9c..7020c60dc 100644 --- a/copy_cmd.c +++ b/copy_cmd.c @@ -2,23 +2,23 @@ primarily for making function definitions, but I'm not sure that anyone else will need it. */ -/* Copyright (C) 1987,1991 Free Software Foundation, Inc. +/* Copyright (C) 1987-2009 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public - License for more details. + 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. */ + along with Bash. If not, see . +*/ #include "config.h" @@ -40,6 +40,7 @@ static ARITH_FOR_COM *copy_arith_for_command __P((ARITH_FOR_COM *)); #endif static GROUP_COM *copy_group_command __P((GROUP_COM *)); static SUBSHELL_COM *copy_subshell_command __P((SUBSHELL_COM *)); +static COPROC_COM *copy_coproc_command __P((COPROC_COM *)); static CASE_COM *copy_case_command __P((CASE_COM *)); static WHILE_COM *copy_while_command __P((WHILE_COM *)); static IF_COM *copy_if_command __P((IF_COM *)); @@ -85,6 +86,7 @@ copy_case_clause (clause) new_clause = (PATTERN_LIST *)xmalloc (sizeof (PATTERN_LIST)); new_clause->patterns = copy_word_list (clause->patterns); new_clause->action = copy_command (clause->action); + new_clause->flags = clause->flags; return (new_clause); } @@ -124,6 +126,7 @@ copy_redirect (redirect) case r_input_direction: case r_inputa_direction: case r_err_and_out: + case r_append_err_and_out: case r_input_output: case r_output_force: case r_duplicating_input_word: @@ -213,6 +216,19 @@ copy_subshell_command (com) return (new_subshell); } +static COPROC_COM * +copy_coproc_command (com) + COPROC_COM *com; +{ + COPROC_COM *new_coproc; + + new_coproc = (COPROC_COM *)xmalloc (sizeof (COPROC_COM)); + new_coproc->name = savestring (com->name); + new_coproc->command = copy_command (com->command); + new_coproc->flags = com->flags; + return (new_coproc); +} + static CASE_COM * copy_case_command (com) CASE_COM *com; @@ -373,6 +389,10 @@ copy_command (command) new_command->value.Subshell = copy_subshell_command (command->value.Subshell); break; + case cm_coproc: + new_command->value.Coproc = copy_coproc_command (command->value.Coproc); + break; + case cm_case: new_command->value.Case = copy_case_command (command->value.Case); break; diff --git a/dispose_cmd.c b/dispose_cmd.c index ee2e68cdf..4c25ae539 100644 --- a/dispose_cmd.c +++ b/dispose_cmd.c @@ -1,22 +1,22 @@ /* dispose_command.c -- dispose of a COMMAND structure. */ -/* Copyright (C) 1987-2005 Free Software Foundation, Inc. +/* Copyright (C) 1987-2009 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public - License for more details. + 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. */ + along with Bash. If not, see . +*/ #include "config.h" @@ -92,6 +92,14 @@ dispose_command (command) break; } + case cm_coproc: + { + free (command->value.Coproc->name); + dispose_command (command->value.Coproc->command); + free (command->value.Coproc); + break; + } + case cm_case: { register CASE_COM *c; @@ -313,6 +321,7 @@ dispose_redirects (list) case r_inputa_direction: case r_appending_to: case r_err_and_out: + case r_append_err_and_out: case r_input_output: case r_output_force: case r_duplicating_input_word: diff --git a/dispose_cmd.h b/dispose_cmd.h index 55723d4ea..0a3889c10 100644 --- a/dispose_cmd.h +++ b/dispose_cmd.h @@ -1,22 +1,22 @@ /* dispose_cmd.h -- Functions appearing in dispose_cmd.c. */ -/* Copyright (C) 1993-2005 Free Software Foundation, Inc. +/* Copyright (C) 1993-2009 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. + 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #if !defined (_DISPOSE_CMD_H_) #define _DISPOSE_CMD_H_ diff --git a/doc/FAQ b/doc/FAQ index f2a6f57a1..4cebba094 100644 --- a/doc/FAQ +++ b/doc/FAQ @@ -1,4 +1,4 @@ -This is the Bash FAQ, version 3.34, for Bash version 3.2. +This is the Bash FAQ, version 3.36, for Bash version 3.2. This document contains a set of frequently-asked questions concerning Bash, the GNU Bourne-Again Shell. Bash is a freely-available command @@ -79,6 +79,8 @@ 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? E13) Why does filename completion misbehave if a colon appears in the filename? +E14) Why does quoting the pattern argument to the regular expression matching + conditional operator (=~) cause matching to stop working? Section F: Things to watch out for on certain Unix versions @@ -908,7 +910,9 @@ D1) Why does bash run a different version of `command' than 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. +that uses the PATH environment variable. Many Linux distributions +use GNU `which', which is a C program that can understand shell +aliases. The csh script version reads the csh startup files from your home directory and uses those to determine which `command' will @@ -1425,6 +1429,34 @@ COMP_WORDBREAKS=${COMP_WORDBREAKS//:} You can also quote the colon with a backslash to achieve the same result temporarily. +E14) Why does quoting the pattern argument to the regular expression matching + conditional operator (=~) cause regexp matching to stop working? + +In versions of bash prior to bash-3.2, the effect of quoting the regular +expression argument to the [[ command's =~ operator was not specified. +The practical effect was that double-quoting the pattern argument required +backslashes to quote special pattern characters, which interfered with the +backslash processing performed by double-quoted word expansion and was +inconsistent with how the == shell pattern matching operator treated +quoted characters. + +In bash-3.2, the shell was changed to internally quote characters in single- +and double-quoted string arguments to the =~ operator, which suppresses the +special meaning of the characters special to regular expression processing +(`.', `[', `\', `(', `), `*', `+', `?', `{', `|', `^', and `$') and forces +them to be matched literally. This is consistent with how the `==' pattern +matching operator treats quoted portions of its pattern argument. + +Since the treatment of quoted string arguments was changed, several issues +have arisen, chief among them the problem of white space in pattern arguments +and the differing treatment of quoted strings between bash-3.1 and bash-3.2. +Both problems may be solved by using a shell variable to hold the pattern. +Since word splitting is not performed when expanding shell variables in all +operands of the [[ command, this allows users to quote patterns as they wish +when assigning the variable, then expand the values to a single string that +may contain whitespace. The first problem may be solved by using backslashes +or any other quoting mechanism to escape the white space in the patterns. + Section F: Things to watch out for on certain Unix versions F1) Why can't I use command line editing in my `cmdtool'? @@ -1742,7 +1774,12 @@ this: echo .!(.|) * A solution that works without extended globbing is given in the Unix Shell -FAQ, posted periodically to comp.unix.shell. +FAQ, posted periodically to comp.unix.shell. It's a variant of + + echo .[!.]* ..?* * + +(The ..?* catches files with names of three or more characters beginning +with `..') Section H: Where do I go from here? @@ -1791,8 +1828,8 @@ it in fine bookstores near you. This edition of the book has been updated to cover bash-3.0. 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 +Network Theory Ltd (Paperback, ISBN: 0-9541617-7-7, Nov. 2006). It covers +bash-3.2 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. diff --git a/doc/Makefile.in b/doc/Makefile.in index 270ddfd79..2bbfc3cee 100644 --- a/doc/Makefile.in +++ b/doc/Makefile.in @@ -1,20 +1,19 @@ # This Makefile is for the Bash/documentation directory -*- text -*-. # -# Copyright (C) 2003 Free Software Foundation, Inc. +# Copyright (C) 2003-2009 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 free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# 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. +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . PACKAGE = @PACKAGE_NAME@ VERSION = @PACKAGE_VERSION@ @@ -35,6 +34,8 @@ VPATH = .:@srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ +datarootdir = @datarootdir@ + infodir = @infodir@ # set this to a directory name to have the HTML files installed @@ -143,6 +144,7 @@ BASHREF_FILES = $(srcdir)/bashref.texi $(srcdir)/version.texi all: ps info dvi text html nodvi: ps info text html +everything: all pdf PSFILES = bash.ps bashbug.ps article.ps builtins.ps rbash.ps DVIFILES = bashref.dvi bashref.ps @@ -223,9 +225,12 @@ installdirs: install: info installdirs bash.info -$(INSTALL_DATA) $(srcdir)/bash.1 $(DESTDIR)$(man1dir)/bash${man1ext} -$(INSTALL_DATA) $(srcdir)/bashbug.1 $(DESTDIR)$(man1dir)/bashbug${man1ext} -# uncomment the next line to install the builtins man page -# -$(INSTALL_DATA) $(srcdir)/builtins.1 $(DESTDIR)$(man1dir)/bash_builtins${man1ext} - -$(INSTALL_DATA) $(srcdir)/bash.info $(DESTDIR)$(infodir)/bash.info +# uncomment the next lines to install the builtins man page +# sed 's:bash\.1:man1/&:' $(srcdir)/builtins.1 > $${TMPDIR:-/var/tmp}/builtins.1 +# -$(INSTALL_DATA) $${TMPDIR:-/var/tmp}/builtins.1 $(DESTDIR)$(man1dir)/bash_builtins${man1ext} +# -$(RM) $${TMPDIR:-/var/tmp}/builtins.1 + -if test -f bash.info; then d=.; else d=$(srcdir); fi; \ + $(INSTALL_DATA) $$d/bash.info $(DESTDIR)$(infodir)/bash.info # run install-info if it is present to update the info directory if $(SHELL) -c 'install-info --version' >/dev/null 2>&1; then \ install-info --dir-file=$(DESTDIR)$(infodir)/dir $(DESTDIR)$(infodir)/bash.info; \ @@ -236,8 +241,16 @@ install: info installdirs bash.info $(INSTALL_DATA) $(srcdir)/bashref.html $(DESTDIR)$(htmldir) ; \ fi +install_builtins: installdirs + sed 's:bash\.1:man1/&:' $(srcdir)/builtins.1 > $${TMPDIR:-/var/tmp}/builtins.1 + -$(INSTALL_DATA) $${TMPDIR:-/var/tmp}/builtins.1 $(DESTDIR)$(man1dir)/bash_builtins${man1ext} + -$(RM) $${TMPDIR:-/var/tmp}/builtins.1 + +install_everything: install install_builtins + uninstall: -$(RM) $(DESTDIR)$(man1dir)/bash${man1ext} $(DESTDIR)$(man1dir)/bashbug${man1ext} + -$(RM) $(DESTDIR)$(man1dir)/bash_builtins${man1ext} $(RM) $(DESTDIR)$(infodir)/bash.info -if test -n "$(htmldir)" ; then \ $(RM) $(DESTDIR)$(htmldir)/bash.html ; \ diff --git a/doc/bash.1 b/doc/bash.1 index 4d977f9a1..016abba6b 100644 --- a/doc/bash.1 +++ b/doc/bash.1 @@ -2,16 +2,15 @@ .\" MAN PAGE COMMENTS to .\" .\" Chet Ramey -.\" Information Network Services .\" Case Western Reserve University .\" chet@po.cwru.edu .\" -.\" Last Change: Thu Sep 28 10:25:59 EDT 2006 +.\" Last Change: Mon Dec 29 16:49:01 EST 2008 .\" .\" bash_builtins, strip all but Built-Ins section .if \n(zZ=1 .ig zZ .if \n(zY=1 .ig zY -.TH BASH 1 "2006 September 28" "GNU Bash-3.2" +.TH BASH 1 "2008 December 29" "GNU Bash-4.0" .\" .\" There's some problem with having a `@' .\" in a tagged paragraph with the BSD man macros. @@ -51,8 +50,8 @@ bash \- GNU Bourne-Again SHell [options] [file] .SH COPYRIGHT -.if n Bash is Copyright (C) 1989-2005 by the Free Software Foundation, Inc. -.if t Bash is Copyright \(co 1989-2005 by the Free Software Foundation, Inc. +.if n Bash is Copyright (C) 1989-2009 by the Free Software Foundation, Inc. +.if t Bash is Copyright \(co 1989-2009 by the Free Software Foundation, Inc. .SH DESCRIPTION .B Bash is an \fBsh\fR-compatible command language interpreter that @@ -410,11 +409,12 @@ whose name is the expanded value. No other startup files are read. .PP .B Bash -attempts to determine when it is being run by the remote shell -daemon, usually \fIrshd\fP. +attempts to determine when it is being run with its standard input +connected to a a network connection, as if by the remote shell +daemon, usually \fIrshd\fP, or the secure shell daemon \fIsshd\fP. If .B bash -determines it is being run by \fIrshd\fP, it reads and executes +determines it is being run in this fashion, it reads and executes commands from \fI~/.bashrc\fP, if that file exists and is readable. It will not do this if invoked as \fBsh\fP. The @@ -471,8 +471,8 @@ A \fItoken\fP that performs a control function. It is one of the following symbols: .RS .PP -.if t \fB\(bv\(bv & && ; ;; ( ) | \fP -.if n \fB|| & && ; ;; ( ) | \fP +.if t \fB\(bv\(bv & && ; ;; ( ) | |& \fP +.if n \fB|| & && ; ;; ( ) | |& \fP .RE .PD .SH "RESERVED WORDS" @@ -507,12 +507,13 @@ The return value of a \fIsimple command\fP is its exit status, or .SS Pipelines .PP A \fIpipeline\fP is a sequence of one or more commands separated by -the character -.BR | . +one of the control operators +.B | +or \fB|&\fP. The format for a pipeline is: .RS .PP -[\fBtime\fP [\fB\-p\fP]] [ ! ] \fIcommand\fP [ \fB|\fP \fIcommand2\fP ... ] +[\fBtime\fP [\fB\-p\fP]] [ ! ] \fIcommand\fP [ [\fB|\fP\(bv\fB|&\fP] \fIcommand2\fP ... ] .RE .PP The standard output of @@ -524,6 +525,11 @@ command (see .SM .B REDIRECTION below). +If \fB|&\fP is used, the standard error of \fIcommand\fP is connected to +\fIcommand2\fP's standard input through the pipe; it is shorthand for +\fB2>&1 |\fP. +This implicit redirection of the standard error is performed after any +redirections specified by the command. .PP The return status of a pipeline is the exit status of the last command, unless the \fBpipefail\fP option is enabled. @@ -578,7 +584,7 @@ and have equal precedence, followed by .B ; and -.BR &, +.BR & , which have equal precedence. .PP A sequence of one or more newlines may appear in a \fIlist\fP instead @@ -594,11 +600,9 @@ are executed sequentially; the shell waits for each command to terminate in turn. The return status is the exit status of the last command executed. .PP -The control operators -.B && -and -.B \(bv\(bv -denote AND lists and OR lists, respectively. +AND and OR lists are sequences of one of more pipelines separated by the +\fB&&\fP and \fB\(bv\(bv\fP control operators, respectively. +AND and OR lists are executed with left associativity. An AND list has the form .RS .PP @@ -620,7 +624,8 @@ An OR list has the form .I command2 is executed if and only if .I command1 -returns a non-zero exit status. The return status of +returns a non-zero exit status. +The return status of AND and OR lists is the exit status of the last command executed in the list. .SS Compound Commands @@ -646,7 +651,8 @@ The return status is the exit status of Note that unlike the metacharacters \fB(\fP and \fB)\fP, \fB{\fP and \fB}\fP are \fIreserved words\fP and must occur where a reserved word is permitted to be recognized. Since they do not cause a word -break, they must be separated from \fIlist\fP by whitespace. +break, they must be separated from \fIlist\fP by whitespace or another +shell metacharacter. .TP ((\fIexpression\fP)) The \fIexpression\fP is evaluated according to the rules described @@ -696,6 +702,8 @@ If the shell option .B nocasematch is enabled, the match is performed without regard to the case of alphabetic characters. +Any part of the pattern may be quoted to force it to be matched as a +string. Substrings matched by parenthesized subexpressions within the regular expression are saved in the array variable \fBBASH_REMATCH\fP. The element of \fBBASH_REMATCH\fP with index 0 is the portion of the string @@ -818,9 +826,15 @@ If the shell option .B nocasematch is enabled, the match is performed without regard to the case of alphabetic characters. -When a match is found, the -corresponding \fIlist\fP is executed. After the first match, no -subsequent matches are attempted. The exit status is zero if no +When a match is found, the corresponding \fIlist\fP is executed. +If the \fB;;\fP operator is used, no subsequent matches are attempted after +the first pattern match. +Using \fB;&\fP in place of \fB;;\fP causes execution to continue with +the \fIlist\fP associated with the next set of patterns. +Using \fB;;&\fP in place of \fB;;\fP causes the shell to test the next +pattern list in the statement, if any, and execute any associated \fIlist\fP +on a successful match. +The exit status is zero if no pattern matches. Otherwise, it is the exit status of the last command executed in \fIlist\fP. .TP @@ -857,6 +871,46 @@ The exit status of the \fBwhile\fP and \fBuntil\fP commands is the exit status of the last \fBdo\fP \fIlist\fP command executed, or zero if none was executed. +.SS Coprocesses +.PP +A \fIcoprocess\fP is a shell command preceded by the \fBcoproc\fP reserved +word. +A coprocess is executed asynchronously in a subshell, as if the command +had been terminated with the \fB&\fP control operator, with a two-way pipe +established between the executing shell and the coprocess. +.PP +The format for a coprocess is: +.RS +.PP +\fBcoproc\fP [\fINAME\fP] \fIcommand\fP [\fIredirections\fP] +.RE +.PP +This creates a coprocess named \fINAME\fP. +If \fINAME\fP is not supplied, the default name is \fICOPROC\fP. +When the coproc is executed, the shell creates an array variable (see +.B Arrays +below) named \fINAME\fP in the context of the executing shell. +The standard output of +.I command +is connected via a pipe to a file descriptor in the executing shell, +and that file descriptor is assigned to \fINAME\fP[0]. +The standard input of +.I command +is connected via a pipe to a file descriptor in the executing shell, +and that file descriptor is assigned to \fINAME\fP[1]. +This pipe is established before any redirections specified by the +command (see +.SM +.B REDIRECTION +below). +The file descriptors can be utilized as arguments to shell commands +and redirections using standard word expansions. +The process id of the shell spawned to execute the coprocess is +available as the value of the variable \fINAME\fP_PID. +The \fBwait\fP +builtin command may be used to wait for the coprocess to terminate. +.PP +The return status of a coprocess is the exit status of \fIcommand\fP. .SS Shell Function Definitions .PP A shell function is an object that is called like a simple command and @@ -942,19 +996,19 @@ between single quotes, even when preceded by a backslash. Enclosing characters in double quotes preserves the literal value of all characters within the quotes, with the exception of .BR $ , -.BR ` , +.BR \` , .BR \e , and, when history expansion is enabled, .BR ! . The characters .B $ and -.B ` +.B \` retain their special meaning within double quotes. The backslash retains its special meaning only when followed by one of the following characters: .BR $ , -.BR ` , +.BR \` , \^\fB"\fP\^, .BR \e , or @@ -1116,7 +1170,9 @@ When += is applied to an array variable using compound assignment (see .B Arrays below), the variable's value is not unset (as it is when using =), and new values are -appended to the array beginning at one greater than the array's maximum index. +appended to the array beginning at one greater than the array's maximum index +(for indexed arrays) or added as additional key\-value pairs in an +associative array. When applied to a string-valued variable, \fIvalue\fP is expanded and appended to the variable's value. .SS Positional Parameters @@ -1185,7 +1241,7 @@ expand to nothing (i.e., they are removed). Expands to the number of positional parameters in decimal. .TP .B ? -Expands to the status of the most recently executed foreground +Expands to the exit status of the most recently executed foreground pipeline. .TP .B \- @@ -1245,9 +1301,20 @@ The following variables are set by the shell: Expands to the full file name used to invoke this instance of .BR bash . .TP +.B BASHPID +Expands to the process id of the current \fBbash\fP process. +This differs from \fB$$\fP under certain circumstances, such as subshells +that do not require \fBbash\fP to be re-initialized. +.TP +.B BASH_ALIASES +An associative array variable whose members correspond to the internal +list of aliases as maintained by the \fBalias\fP builtin +Elements added to this array appear in the alias list; unsetting array +elements cause aliases to be removed from the alias list. +.TP .B BASH_ARGC An array variable whose values are the number of parameters in each -frame of the current bash execution call stack. +frame of the current \fBbash\fP execution call stack. The number of parameters to the current subroutine (shell function or script executed with \fB.\fP or \fBsource\fP) is at the top of the stack. @@ -1261,7 +1328,7 @@ option to the builtin below) .TP .B BASH_ARGV -An array variable containing all of the parameters in the current bash +An array variable containing all of the parameters in the current \fBbash\fP execution call stack. The final parameter of the last subroutine call is at the top of the stack; the first parameter of the initial call is at the bottom. When a subroutine is executed, the parameters supplied @@ -1273,6 +1340,12 @@ option to the .B shopt builtin below) .TP +.B BASH_CMDS +An associative array variable whose members correspond to the internal +hash table of commands as maintained by the \fBhash\fP builtin. +Elements added to this array appear in the hash table; unsetting array +elements cause commands to be removed from the hash table. +.TP .B BASH_COMMAND The command currently being executed or about to be executed, unless the shell is executing a command as the result of a trap, @@ -1285,7 +1358,9 @@ The command argument to the \fB\-c\fP invocation option. An array variable whose members are the line numbers in source files 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$ifP\fB]}\fP was called. +file where \fB${FUNCNAME[\fP\fI$i\fP\fB]}\fP was called +(or \fB${BASH_LINENO[\fP\fI$i-1\fP\fB]}\fP if referenced within another +shell function). The corresponding source file name is \fB${BASH_SOURCE[\fP\fI$i\fP\fB]}\fB. Use \fBLINENO\fP to obtain the current line number. .TP @@ -1346,6 +1421,10 @@ This variable is available only in shell functions invoked by the programmable completion facilities (see \fBProgrammable Completion\fP below). .TP +.B COMP_KEY +The key (or final key of a key sequence) used to invoke the current +completion function. +.TP .B COMP_LINE The current command line. This variable is available only in shell functions and external @@ -1363,6 +1442,20 @@ commands invoked by the programmable completion facilities (see \fBProgrammable Completion\fP below). .TP +.B COMP_TYPE +Set to an integer value corresponding to the type of completion attempted +that caused a completion function to be called: +\fITAB\fP, for normal completion, +\fI?\fP, for listing completions after successive tabs, +\fI!\fP, for listing alternatives on partial word completion, +\fI@\fP, to list completions if the word is not unmodified, +or +\fI%\fP, for menu completion. +This variable is available only in shell functions and external +commands invoked by the +programmable completion facilities (see \fBProgrammable Completion\fP +below). +.TP .B COMP_WORDBREAKS The set of characters that the Readline library treats as word separators when performing word completion. @@ -1410,7 +1503,9 @@ An array variable containing the names of all shell functions currently in the execution call stack. The element with index 0 is the name of any currently-executing shell function. -The bottom-most element is "main". +The bottom-most element is +.if t \f(CW"main"\fP. +.if n "main". This variable exists only when a shell function is executing. Assignments to .SM @@ -1727,6 +1822,8 @@ for \fIstrftime\fP(3) to print the time stamp associated with each history entry displayed by the \fBhistory\fP builtin. If this variable is set, time stamps are written to the history file so they may be preserved across shell sessions. +This uses the history comment character to distinguish timestamps from +other history lines. .TP .B HOME The home directory of the current user; the default argument for the @@ -1902,6 +1999,14 @@ had been executed. If set, the value is executed as a command prior to issuing each primary prompt. .TP +.B PROMPT_DIRTRIM +If set to a number greater than zero, the value is used as the number of +trailing directory components to retain when expanding the \fB\ew\fB and +\fB\eW\fP prompt string escapes (see +.SM +.B PROMPTING +below). Characters removed are replaced with an ellipsis. +.TP .B PS1 The value of this parameter is expanded (see .SM @@ -2050,26 +2155,35 @@ parser to treat the rest of the line as a comment. .PD .SS Arrays .B Bash -provides one-dimensional array variables. Any variable may be used as -an array; the +provides one-dimensional indexed and associative array variables. +Any variable may be used as an indexed array; the .B declare -builtin will explicitly declare an array. There is no maximum +builtin will explicitly declare an array. +There is no maximum limit on the size of an array, nor any requirement that members -be indexed or assigned contiguously. Arrays are indexed using -integers and are zero-based. +be indexed or assigned contiguously. +Indexed arrays are referenced using integers (including arithmetic +expressions) and are zero-based; associative arrays are referenced +using arbitrary strings. .PP -An array is created automatically if any variable is assigned to using -the syntax \fIname\fP[\fIsubscript\fP]=\fIvalue\fP. The +An indexed array is created automatically if any variable is assigned to +using the syntax \fIname\fP[\fIsubscript\fP]=\fIvalue\fP. The .I subscript is treated as an arithmetic expression that must evaluate to a number -greater than or equal to zero. To explicitly declare an array, use +greater than or equal to zero. To explicitly declare an indexed array, +use .B declare \-a \fIname\fP (see .SM .B SHELL BUILTIN COMMANDS below). .B declare \-a \fIname\fP[\fIsubscript\fP] -is also accepted; the \fIsubscript\fP is ignored. Attributes may be +is also accepted; the \fIsubscript\fP is ignored. +.PP +Associative arrays are created using +.BR "declare \-A \fIname\fP" . +.PP +Attributes may be specified for an array variable using the .B declare and @@ -2078,11 +2192,15 @@ builtins. Each attribute applies to all members of an array. .PP Arrays are assigned to using compound assignments of the form \fIname\fP=\fB(\fPvalue\fI1\fP ... value\fIn\fP\fB)\fP, where each -\fIvalue\fP is of the form [\fIsubscript\fP]=\fIstring\fP. Only -\fIstring\fP is required. If -the optional brackets and subscript are supplied, that index is assigned to; +\fIvalue\fP is of the form [\fIsubscript\fP]=\fIstring\fP. +Indexed array assignments do not require the bracket and subscript. +When assigning to indexed arrays, if the optional brackets and subscript +are supplied, that index is assigned to; otherwise the index of the element assigned is the last index assigned to by the statement plus one. Indexing starts at zero. +.PP +When assigning to an associative array, the subscript is required. +.PP This syntax is also accepted by the .B declare builtin. Individual array elements may be assigned to using the @@ -2113,7 +2231,7 @@ above). ${#\fIname\fP[\fIsubscript\fP]} expands to the length of ${\fIname\fP[\fIsubscript\fP]}. If \fIsubscript\fP is \fB*\fP or \fB@\fP, the expansion is the number of elements in the array. Referencing an array variable without a subscript is equivalent to -referencing element zero. +referencing the array with a subscript of 0. .PP The .B unset @@ -2132,7 +2250,10 @@ and .B readonly builtins each accept a .B \-a -option to specify an array. The +option to specify an indexed array and a +.B \-A +option to specify an associative array. +The .B read builtin accepts a .B \-a @@ -2193,13 +2314,21 @@ Brace expansions may be nested. The results of each expanded string are not sorted; left to right order is preserved. For example, a\fB{\fPd,c,b\fB}\fPe expands into `ade ace abe'. .PP -A sequence expression takes the form \fB{\fP\fIx\fP\fB..\fP\fIy\fP\fB}\fP, -where \fIx\fP and \fIy\fP are either integers or single characters. +A sequence expression takes the form +\fB{\fP\fIx\fP\fB..\fP\fIy\fP\fB[..\fP\fIincr\fP\fB]}\fP, +where \fIx\fP and \fIy\fP are either integers or single characters, +and \fIincr\fP, an optional increment, is an integer. When integers are supplied, the expression expands to each number between \fIx\fP and \fIy\fP, inclusive. +Supplied integers may be prefixed with \fI0\fP to force each term to have the +same width. When either \fIx\fP or \fPy\fP begins with a zero, the shell +attempts to force all generated terms to contain the same number of digits, +zero-padding where necessary. When characters are supplied, the expression expands to each character lexicographically between \fIx\fP and \fIy\fP, inclusive. Note that both \fIx\fP and \fIy\fP must be of the same type. +When the increment is supplied, it is used as the difference between +each term. The default increment is 1 or -1 as appropriate. .PP Brace expansion is performed before any other expansions, and any characters special to other expansions are preserved @@ -2422,32 +2551,40 @@ If \fIoffset\fP evaluates to a number less than zero, the value is used as an offset from the end of the value of \fIparameter\fP. If \fIparameter\fP is \fB@\fP, the result is \fIlength\fP positional parameters beginning at \fIoffset\fP. -If \fIparameter\fP is an array name indexed by @ or *, +If \fIparameter\fP is an indexed array name subscripted by @ or *, the result is the \fIlength\fP members of the array beginning with ${\fIparameter\fP[\fIoffset\fP]}. A negative \fIoffset\fP is taken relative to one greater than the maximum index of the specified array. +Substring expansion applied to an associative array produces undefined +results. Note that a negative offset must be separated from the colon by at least one space to avoid being confused with the :- expansion. Substring indexing is zero-based unless the positional parameters -are used, in which case the indexing starts at 1. +are used, in which case the indexing starts at 1 by default. +If \fIoffset\fP is 0, and the positional parameters are used, \fB$0\fP is +prefixed to the list. .TP ${\fB!\fP\fIprefix\fP\fB*\fP} .PD 0 .TP ${\fB!\fP\fIprefix\fP\fB@\fP} .PD +\fBNames matching prefix.\fP Expands to the names of variables whose names begin with \fIprefix\fP, separated by the first character of the .SM .B IFS special variable. +When \fI@\fP is used and the expansion appears within double quotes, each +variable name expands to a separate word. .TP ${\fB!\fP\fIname\fP[\fI@\fP]} .PD 0 .TP ${\fB!\fP\fIname\fP[\fI*\fP]} .PD +\fBList of array keys.\fP If \fIname\fP is an array variable, expands to the list of array indices (keys) assigned in \fIname\fP. If \fIname\fP is not an array, expands to 0 if \fIname\fP is set and null @@ -2456,6 +2593,7 @@ When \fI@\fP is used and the expansion appears within double quotes, each key expands to a separate word. .TP ${\fB#\fP\fIparameter\fP} +\fBParameter length.\fP The length in characters of the value of \fIparameter\fP is substituted. If .I parameter @@ -2477,6 +2615,7 @@ ${\fIparameter\fP\fB#\fP\fIword\fP} .TP ${\fIparameter\fP\fB##\fP\fIword\fP} .PD +\fBRemove matching prefix pattern.\fP The .I word is expanded to produce a pattern just as in pathname @@ -2509,6 +2648,7 @@ ${\fIparameter\fP\fB%\fP\fIword\fP} .TP ${\fIparameter\fP\fB%%\fP\fIword\fP} .PD +\fBRemove matching suffix pattern.\fP The \fIword\fP is expanded to produce a pattern just as in pathname expansion. If the pattern matches a trailing portion of the expanded value of @@ -2535,11 +2675,12 @@ the pattern removal operation is applied to each member of the array in turn, and the expansion is the resultant list. .TP ${\fIparameter\fP\fB/\fP\fIpattern\fP\fB/\fP\fIstring\fP} +\fBPattern substitution.\fP The \fIpattern\fP is expanded to produce a pattern just as in pathname expansion. \fIParameter\fP is expanded and the longest match of \fIpattern\fP against its value is replaced with \fIstring\fP. -If \Ipattern\fP begins with \fB/\fP, all matches of \fIpattern\fP are +If \fIpattern\fP begins with \fB/\fP, all matches of \fIpattern\fP are replaced with \fIstring\fP. Normally only the first match is replaced. If \fIpattern\fP begins with \fB#\fP, it must match at the beginning of the expanded value of \fIparameter\fP. @@ -2563,6 +2704,44 @@ or .BR * , the substitution operation is applied to each member of the array in turn, and the expansion is the resultant list. +.TP +${\fIparameter\fP\fB^\fP\fIpattern\fP} +.PD 0 +.TP +${\fIparameter\fP\fB^^\fP\fIpattern\fP} +.TP +${\fIparameter\fP\fB,\fP\fIpattern\fP} +.TP +${\fIparameter\fP\fB,,\fP\fIpattern\fP} +.PD +\fBCase modification.\fP +This expansion modifies the case of alphabetic characters in \fIparameter\fP. +The \fIpattern\fP is expanded to produce a pattern just as in +pathname expansion. +The \fB^\fP operator converts lowercase letters matching \fIpattern\fP +to uppercase; the \fB,\fP operator converts matching uppercase letters +to lowercase. +The \fB^^\fP and \fB,,\fP expansions convert each matched character in the +expanded value; the \fB^\fP and \fB,\fP expansions match and convert only +the first character. +If \fIpattern\fP is omitted, it is treated like a \fB?\fP, which matches +every character. +If +.I parameter +is +.B @ +or +.BR * , +the case modification operation is applied to each positional +parameter in turn, and the expansion is the resultant list. +If +.I parameter +is an array variable subscripted with +.B @ +or +.BR * , +the case modification operation is applied to each member of the +array in turn, and the expansion is the resultant list. .SS Command Substitution .PP \fICommand substitution\fP allows the output of a command to replace @@ -2574,7 +2753,7 @@ the command name. There are two forms: .RE or .RS -\fB`\fP\fIcommand\fP\fB`\fP +\fB\`\fP\fIcommand\fP\fB\`\fP .RE .PP .B Bash @@ -2589,7 +2768,7 @@ the equivalent but faster \fB$(< \fIfile\fP)\fR. When the old-style backquote form of substitution is used, backslash retains its literal meaning except when followed by .BR $ , -.BR ` , +.BR \` , or .BR \e . The first backquote not preceded by a backslash terminates the @@ -2668,10 +2847,18 @@ is unset, or its value is exactly .BR , the default, then +sequences of +.BR , +.BR , +and +.B +at the beginning and end of the results of the previous +expansions are ignored, and any sequence of .SM .B IFS -characters serves to delimit words. If +characters not at the beginning or end serves to delimit words. +If .SM .B IFS has a value other than the default, then sequences of @@ -2735,7 +2922,7 @@ file names matching the pattern. If no matching file names are found, and the shell option .B nullglob -is disabled, the word is left unchanged. +is not enabled, the word is left unchanged. If the .B nullglob option is set, and no matches are found, @@ -2829,6 +3016,12 @@ The special pattern characters have the following meanings: .TP .B * Matches any string, including the null string. +When the \fBglobstar\fP shell option is enabled, and \fB*\fP is used in +a filename expansion context, two adjacent \fB*\fPs used as a single +pattern will match all files and zero or more directories and +subdirectories. +If followed by a \fB/\fP, two adjacent \fB*\fPs will match only directories +and subdirectories. .TP .B ? Matches any single character. @@ -3092,14 +3285,12 @@ The general format for appending output is: .PP .SS Redirecting Standard Output and Standard Error .PP -.B Bash -allows both the +This construct allows both the standard output (file descriptor 1) and the standard error output (file descriptor 2) to be redirected to the file whose name is the expansion of -.I word -with this construct. +.IR word . .PP There are two formats for redirecting standard output and standard error: @@ -3118,11 +3309,32 @@ This is semantically equivalent to .PP \fB>\fP\fIword\fP 2\fB>&\fP1 .RE +.PP +.SS Appending Standard Output and Standard Error +.PP +This construct allows both the +standard output (file descriptor 1) and +the standard error output (file descriptor 2) +to be appended to the file whose name is the +expansion of +.IR word . +.PP +The format for appending standard output and standard error is: +.RS +.PP +\fB&>>\fP\fIword\fP +.RE +.PP +This is semantically equivalent to +.RS +.PP +\fB>>\fP\fIword\fP 2\fB>&\fP1 +.RE .SS Here Documents .PP This type of redirection instructs the shell to read input from the current source until a line containing only -.I word +.I delimiter (with no trailing blanks) is seen. All of the lines read up to that point are then used as the standard @@ -3159,7 +3371,7 @@ must be used to quote the characters .BR \e , .BR $ , and -.BR ` . +.BR \` . .PP If the redirection operator is .BR <<\- , @@ -3273,7 +3485,7 @@ below). The first word of each simple command, if unquoted, is checked to see if it has an alias. If so, that word is replaced by the text of the alias. -The characters \fB/\fP, \fB$\fP, \fB`\fP, and \fB=\fP and +The characters \fB/\fP, \fB$\fP, \fB\`\fP, and \fB=\fP and any of the shell \fImetacharacters\fP or quoting characters listed above may not appear in an alias name. The replacement text may contain any valid shell input, @@ -3748,7 +3960,12 @@ A full search of the directories in .SM .B PATH is performed only if the command is not found in the hash table. -If the search is unsuccessful, the shell prints an error +If the search is unsuccessful, the shell searches for a defined shell +function named \fBcommand_not_found_handle\fP. +If that function exists, it is invoked with the original command and +the original command's arguments as its arguments, and the function's +exit status becomes the exit status of the shell. +If that function is not defined, the shell prints an error message and returns an exit status of 127. .PP If the search is successful, or if the command name contains @@ -3845,6 +4062,10 @@ commands that are invoked as part of a pipeline are also executed in a subshell environment. Changes made to the subshell environment cannot affect the shell's execution environment. .PP +Subshells spawned to execute command substitutions inherit the value of +the \fB\-e\fP option from the parent shell. When not in posix mode, +Bash clears the \fB\-e\fP option in such subshells. +.PP If a command is followed by a \fB&\fP and job control is not active, the default standard input for the command is the empty file \fI/dev/null\fP. Otherwise, the invoked command inherits the file descriptors of the calling @@ -3906,6 +4127,15 @@ invokes an external command, the variable is set to the full file name of the command and passed to that command in its environment. .SH "EXIT STATUS" +.PP +The exit status of an executed command is the value returned by the +\fIwaitpid\fP system call or equivalent function. Exit statuses +fall between 0 and 255, though, as explained below, the shell may +use values above 125 specially. Exit statuses from shell builtins and +compound commands are also limited to this range. Under certain +circumstances, the shell will use special values to indicate specific +failure modes. +.PP For the shell's purposes, a command which exits with a zero exit status has succeeded. An exit status of zero indicates success. A non-zero exit status indicates failure. @@ -4102,7 +4332,7 @@ and typeahead to be discarded. There are a number of ways to refer to a job in the shell. The character .B % -introduces a job name. Job number +introduces a job specification (\fIjobspec\fP). Job number .I n may be referred to as .BR %n . @@ -4132,6 +4362,8 @@ The .I "previous job" may be referenced using .BR %\- . +If there is only a single job, \fB%+\fP and \fB%\-\fP can both be used +to refer to that job. In output pertaining to jobs (e.g., the output of the .B jobs command), the current job is always flagged with a @@ -4172,11 +4404,15 @@ is executed for each child that exits. .PP If an attempt to exit .B bash -is made while jobs are stopped, the shell prints a warning message. The +is made while jobs are stopped (or, if the \fBcheckjobs\fP shell option has +been enabled using the \fBshopt\fP builtin, running), the shell prints a +warning message, and, if the \fBcheckjobs\fP option is enabled, lists the +jobs and their statuses. +The .B jobs -command may then be used to inspect their status. +command may then be used to inspect their status. If a second attempt to exit is made without an intervening command, -the shell does not print another warning, and the stopped +the shell does not print another warning, and any stopped jobs are terminated. .SH PROMPTING When executing interactively, @@ -4254,6 +4490,7 @@ the release of \fBbash\fP, version + patch level (e.g., 2.00.0) .TP .B \ew the current working directory, with \fB$HOME\fP abbreviated with a tilde +(uses the \fB$PROMPT_DIRTRIM\fP variable) .TP .B \eW the basename of the current working directory, with \fB$HOME\fP @@ -4309,18 +4546,27 @@ This is the library that handles reading input when using an interactive shell, unless the .B \-\-noediting option is given at shell invocation. +Line editing is also used when using the \fB\-e\fP option to the +\fBread\fP builtin. By default, the line editing commands are similar to those of emacs. A vi-style line editing interface is also available. -To turn off line editing after the shell is running, use the -.B +o emacs +Line editing can be enabled at any time using the +.B \-o emacs or -.B +o vi +.B \-o vi options to the .B set builtin (see .SM .B SHELL BUILTIN COMMANDS below). +To turn off line editing after the shell is running, use the +.B +o emacs +or +.B +o vi +options to the +.B set +builtin. .SS "Readline Notation" .PP In this section, the emacs-style notation is used to denote @@ -4611,6 +4857,12 @@ in vi command mode. If set to \fBOn\fP, readline performs filename matching and completion in a case\-insensitive fashion. .TP +.B completion\-prefix\-display\-length (0) +The length in characters of the common prefix of a list of possible +completions that is displayed without modification. When set to a +value greater than zero, common prefixes longer than this value are +replaced with an ellipsis when displaying possible completions. +.TP .B completion\-query\-items (100) This determines when the user is queried about viewing the number of possible completions @@ -4655,6 +4907,10 @@ If set to \fBon\fP, the history code attempts to place point at the same location on each history line retrieved with \fBprevious-history\fP or \fBnext-history\fP. .TP +.B history\-size (0) +Set the maximum number of history entries saved in the history list. If +set to zero, the number of entries in the history list is not limited. +.TP .B horizontal\-scroll\-mode (Off) When set to \fBOn\fP, makes readline use a single line for display, scrolling the input horizontally on a single screen line when it @@ -4716,6 +4972,12 @@ to display a screenful of possible completions at a time. .B print\-completions\-horizontally (Off) If set to \fBOn\fP, readline will display completions with matches sorted horizontally in alphabetical order, rather than down the screen. +.TP +.B revert\-all\-at\-newline (Off) +If set to \fBon\fP, readline will undo all changes to history lines +before returning when \fBaccept\-line\fP is executed. By default, +history lines may be modified and retain individual undo lists across +calls to \fBreadline\fP. .TP .B show\-all\-if\-ambiguous (Off) This alters the default behavior of the completion functions. If @@ -4880,8 +5142,16 @@ Move forward to the end of the next word. Words are composed of alphanumeric characters (letters and digits). .TP .B backward\-word (M\-b) -Move back to the start of the current or previous word. Words are -composed of alphanumeric characters (letters and digits). +Move back to the start of the current or previous word. +Words are composed of alphanumeric characters (letters and digits). +.TP +.B shell\-forward\-word +Move forward to the end of the next word. +Words are delimited by non-quoted shell metacharacters. +.TP +.B shell\-backward\-word +Move back to the start of the current or previous word. +Words are delimited by non-quoted shell metacharacters. .TP .B clear\-screen (C\-l) Clear the screen leaving the current line at the top of the screen. @@ -5010,7 +5280,7 @@ Invoke an editor on the current command line, and execute the result as shell commands. \fBBash\fP attempts to invoke .SM -.BR $FCEDIT , +.BR $VISUAL , .SM .BR $EDITOR , and \fIemacs\fP as the editor, in that order. @@ -5109,6 +5379,15 @@ Word boundaries are the same as those used by \fBforward\-word\fP. Kill the word behind point. Word boundaries are the same as those used by \fBbackward\-word\fP. .TP +.B shell\-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 those used by \fBshell\-forward\-word\fP. +.TP +.B shell\-backward\-kill\-word (M\-Rubout) +Kill the word behind point. +Word boundaries are the same as those used by \fBshell\-backward\-word\fP. +.TP .B 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. @@ -5255,6 +5534,11 @@ Attempt completion on the text before point, comparing the text against lines from the history list for possible completion matches. .TP +.B dabbrev\-expand +Attempt menu completion on the text before point, comparing +the text against lines from the history list for possible +completion matches. +.TP .B 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 (see @@ -5453,10 +5737,14 @@ After these matches have been generated, any shell function or command specified with the \fB\-F\fP and \fB\-C\fP options is invoked. When the command or function is invoked, the .SM -.B COMP_LINE +.BR COMP_LINE , +.SM +.BR COMP_POINT , +.SM +.BR COMP_KEY , and .SM -.B COMP_POINT +.B COMP_TYPE variables are assigned values as described above under \fBShell Variables\fP. If a shell function is being invoked, the @@ -5566,6 +5854,13 @@ is truncated, if necessary, to contain no more than the number of lines specified by the value of .SM .BR HISTFILESIZE . +When the history file is read, +lines beginning with the history comment character followed immediately +by a digit are interpreted as timestamps for the preceding history line. +These timestamps are optionally displayed depending on the value of the +.SM +.B HISTTIMEFORMAT +variable. When an interactive shell exits, the last .SM .B $HISTSIZE @@ -5586,7 +5881,16 @@ If .SM .B HISTFILE is unset, or if the history file is unwritable, the history is -not saved. After saving the history, the history file is truncated +not saved. +If the +.SM +.HISTTIMEFORMAT +variable is set, time stamps are written to the history file, marked +with the history comment character, so +they may be preserved across shell sessions. +This uses the history comment character to distinguish timestamps from +other history lines. +After saving the history, the history file is truncated to contain no more than .SM .B HISTFILESIZE @@ -5720,6 +6024,9 @@ history expansion mechanism (see the description of .B histchars above under .BR "Shell Variables" ). +The shell uses +the history comment character to mark history timestamps when +writing the history file. .SS Event Designators .PP An event designator is a reference to a command line entry in the @@ -5979,8 +6286,9 @@ no alias has been defined. Resume each suspended job \fIjobspec\fP in the background, as if it had been started with .BR & . -If \fIjobspec\fP is not present, the shell's notion of the -\fIcurrent job\fP is used. +If +.I jobspec +is not present, the shell's notion of the \fIcurrent job\fP is used. .B bg .I jobspec returns 0 unless run when job control is disabled or, when run with @@ -6038,13 +6346,6 @@ that they can be re-read. .B \-P List current \fBreadline\fP function names and bindings. .TP -.B \-v -Display \fBreadline\fP variable names and values in such a way that they -can be re-read. -.TP -.B \-V -List current \fBreadline\fP variable names and values. -.TP .B \-s Display \fBreadline\fP key sequences bound to macros and the strings they output in such a way that they can be re-read. @@ -6053,6 +6354,13 @@ they output in such a way that they can be re-read. Display \fBreadline\fP key sequences bound to macros and the strings they output. .TP +.B \-v +Display \fBreadline\fP variable names and values in such a way that they +can be re-read. +.TP +.B \-V +List current \fBreadline\fP variable names and values. +.TP .B \-f \fIfilename\fP Read key bindings from \fIfilename\fP. .TP @@ -6068,6 +6376,16 @@ Remove any current binding for \fIkeyseq\fP. .B \-x \fIkeyseq\fP:\fIshell\-command\fP Cause \fIshell\-command\fP to be executed whenever \fIkeyseq\fP is entered. +When \fIshell\-command\fP is executed, the shell sets the +.B READLINE_LINE +variable to the contents of the \fBreadline\fP line buffer and the +.B READLINE_POINT +variable to the current location of the insertion point. +If the executed command changes the value of +.B READLINE_LINE +or +.BR READLINE_POINT , +those new values will be reflected in the editing state. .PD .PP The return value is 0 unless an unrecognized option is given or an @@ -6086,10 +6404,8 @@ loop. If \fIn\fP is specified, break \fIn\fP levels. must be \(>= 1. If .I n is greater than the number of enclosing loops, all enclosing loops -are exited. The return value is 0 unless the shell is not executing -a loop when -.B break -is executed. +are exited. +The return value is 0 unless \fIn\fP is not greater than or equal to 1. .TP \fBbuiltin\fP \fIshell\-builtin\fP [\fIarguments\fP] Execute the specified shell builtin, passing it @@ -6103,6 +6419,20 @@ The return status is false if .I shell\-builtin is not a shell builtin command. .TP +\fBcaller\fP [\fIexpr\fP] +Returns the context of any active subroutine call (a shell function or +a script executed with the \fB.\fP or \fBsource\fP builtins. +Without \fIexpr\fP, \fBcaller\fP displays the line number and source +filename of the current subroutine call. +If a non-negative integer is supplied as \fIexpr\fP, \fBcaller\fP +displays the line number, subroutine name, and source file corresponding +to that position in the current execution call stack. This extra +information may be used, for example, to print a stack trace. The +current frame is frame 0. +The return value is 0 unless the shell is not executing a subroutine +call or \fIexpr\fP does not correspond to a valid position in the +call stack. +.TP \fBcd\fP [\fB\-L|-P\fP] [\fIdir\fP] Change the current directory to \fIdir\fP. The variable .SM @@ -6148,20 +6478,6 @@ written to the standard output. The return value is true if the directory was successfully changed; false otherwise. .TP -\fBcaller\fP [\fIexpr\fP] -Returns the context of any active subroutine call (a shell function or -a script executed with the \fB.\fP or \fBsource\fP builtins. -Without \fIexpr\fP, \fBcaller\fP displays the line number and source -filename of the current subroutine call. -If a non-negative integer is supplied as \fIexpr\fP, \fBcaller\fP -displays the line number, subroutine name, and source file corresponding -to that position in the current execution call stack. This extra -information may be used, for example, to print a stack trace. The -current frame is frame 0. -The return value is 0 unless the shell is not executing a subroutine -call or \fIexpr\fP does not correspond to a valid position in the -call stack. -.TP \fBcommand\fP [\fB\-pVv\fP] \fIcommand\fP [\fIarg\fP ...] Run .I command @@ -6225,12 +6541,12 @@ will be displayed. The return value is true unless an invalid option is supplied, or no matches were generated. .TP -\fBcomplete\fP [\fB\-abcdefgjksuv\fP] [\fB\-o\fP \fIcomp-option\fP] [\fB\-A\fP \fIaction\fP] [\fB\-G\fP \fIglobpat\fP] [\fB\-W\fP \fIwordlist\fP] [\fB\-P\fP \fIprefix\fP] [\fB\-S\fP \fIsuffix\fP] +\fBcomplete\fP [\fB\-abcdefgjksuv\fP] [\fB\-o\fP \fIcomp-option\fP] [\fB\-E\fP] [\fB\-A\fP \fIaction\fP] [\fB\-G\fP \fIglobpat\fP] [\fB\-W\fP \fIwordlist\fP] [\fB\-F\fP \fIfunction\fP] [\fB\-C\fP \fIcommand\fP] .br -[\fB\-X\fP \fIfilterpat\fP] [\fB\-F\fP \fIfunction\fP] [\fB\-C\fP \fIcommand\fP] \fIname\fP [\fIname ...\fP] +[\fB\-X\fP \fIfilterpat\fP] [\fB\-P\fP \fIprefix\fP] [\fB\-S\fP \fIsuffix\fP] \fIname\fP [\fIname ...\fP] .PD 0 .TP -\fBcomplete\fP \fB\-pr\fP [\fIname\fP ...] +\fBcomplete\fP \fB\-pr\fP [\fB\-E\fP] [\fIname\fP ...] .PD Specify how arguments to each \fIname\fP should be completed. If the \fB\-p\fP option is supplied, or if no options are supplied, @@ -6239,6 +6555,9 @@ them to be reused as input. The \fB\-r\fP option removes a completion specification for each \fIname\fP, or, if no \fIname\fPs are supplied, all completion specifications. +The \fB\-E\fP option indicates that the remaining options and actions should +apply to ``empty'' command completion; that is, completion attempted on a +blank line. .sp 1 The process of applying these completion specifications when word completion is attempted is described above under \fBProgrammable Completion\fP. @@ -6271,8 +6590,9 @@ Perform directory name completion if the compspec generates no matches. .TP 8 .B 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). Intended to be used with shell functions. +filename\-specific processing (like adding a slash to directory names, +quoting special characters, or suppressing trailing spaces). +Intended to be used with shell functions. .TP 8 .B nospace Tell readline not to append a space (the default) to words completed at @@ -6414,6 +6734,19 @@ a \fIname\fP for which no specification exists, or an error occurs adding a completion specification. .RE .TP +\fBcompopt\fP [\fB\-o\fP \fIoption\fP] [\fB+o\fP \fIoption\fP] [\fIname\fP] +Modify completion options for each \fIname\fP according to the +\fIoption\fPs, or for the +currently-execution completion if no \fIname\fPs are supplied. +If no \fIoption\fPs are given, display the completion options for each +\fIname\fP or the current completion. +The possible values of \fIoption\fP are those valid for the \fBcomplete\fP +builtin described above. +.PP +The return value is true unless an invalid option is supplied, an attempt +is made to modify the options for a \fIname\fP for which no completion +specification exists, or an output error occurs. +.TP \fBcontinue\fP [\fIn\fP] Resume the next iteration of the enclosing .BR for , @@ -6429,15 +6762,13 @@ is specified, resume at the \fIn\fPth enclosing loop. must be \(>= 1. If .I n is greater than the number of enclosing loops, the last enclosing loop -(the ``top-level'' loop) is resumed. The return value is 0 unless the -shell is not executing a loop when -.B continue -is executed. +(the ``top-level'' loop) is resumed. +The return value is 0 unless \fIn\fP is not greater than or equal to 1. .TP -\fBdeclare\fP [\fB\-afFirtx\fP] [\fB\-p\fP] [\fIname\fP[=\fIvalue\fP] ...] +\fBdeclare\fP [\fB\-aAfFilrtux\fP] [\fB\-p\fP] [\fIname\fP[=\fIvalue\fP] ...] .PD 0 .TP -\fBtypeset\fP [\fB\-afFirtx\fP] [\fB\-p\fP] [\fIname\fP[=\fIvalue\fP] ...] +\fBtypeset\fP [\fB\-aAfFilrtux\fP] [\fB\-p\fP] [\fIname\fP[=\fIvalue\fP] ...] .PD Declare variables and/or give them attributes. If no \fIname\fPs are given then display the values of variables. @@ -6447,7 +6778,15 @@ option will display the attributes and values of each .IR name . When .B \-p -is used, additional options are ignored. +is used with \fIname\fP arguments, additional options are ignored. +When +.B \-p +is supplied without \fIname\fP arguments, it will display the attributes +and values of all variables having the attributes specified by the +additional options. +If no other options are supplied with \fB\-p\fP, \fBdeclare\fP will display +the attributes and values of all shell variables. The \fB\-f\fP option +will restrict the display to shell functions. The .B \-F option inhibits the display of function definitions; only the @@ -6465,7 +6804,12 @@ to give variables attributes: .PD 0 .TP .B \-a -Each \fIname\fP is an array variable (see +Each \fIname\fP is an indexed array variable (see +.B Arrays +above). +.TP +.B \-A +Each \fIname\fP is an associative array variable (see .B Arrays above). .TP @@ -6478,6 +6822,11 @@ The variable is treated as an integer; arithmetic evaluation (see .B "ARITHMETIC EVALUATION" ") " is performed when the variable is assigned a value. .TP +.B \-l +When the variable is assigned a value, all upper-case characters are +converted to lower-case. +The upper-case attribute is disabled. +.TP .B \-r Make \fIname\fPs readonly. These names cannot then be assigned values by subsequent assignment statements or unset. @@ -6488,13 +6837,21 @@ Traced functions inherit the \fBDEBUG\fP and \fBRETURN\fP traps from the calling shell. The trace attribute has no special meaning for variables. .TP +.B \-u +When the variable is assigned a value, all lower-case characters are +converted to upper-case. +The lower-case attribute is disabled. +.TP .B \-x Mark \fIname\fPs for export to subsequent commands via the environment. .PD .PP Using `+' instead of `\-' -turns off the attribute instead, with the exception that \fB+a\fP -may not be used to destroy an array variable. When used in a function, +turns off the attribute instead, +with the exceptions that \fB+a\fP +may not be used to destroy an array variable and \fB+r\fB will not +remove the readonly attribute. +When used in a function, makes each \fIname\fP local, as with the .B local @@ -6515,7 +6872,7 @@ an attempt is made to turn off array status for an array variable, or an attempt is made to display a non-existent function with \fB\-f\fP. .RE .TP -.B dirs [\fB\-clpv\fP] [+\fIn\fP] [\-\fIn\fP] +.B dirs [+\fIn\fP] [\-\fIn\fP] [\fB\-cplv\fP] Without options, displays the list of currently remembered directories. The default display is on a single line with directory names separated by spaces. @@ -6563,6 +6920,10 @@ of the directory stack. Without options, each .I jobspec is removed from the table of active jobs. +If +.I jobspec +is not present, and neither \fB\-a\fB nor \fB\-r\fP is supplied, +the shell's notion of the \fIcurrent job\fP is used. If the \fB\-h\fP option is given, each .I jobspec is not removed from the table, but is marked so that @@ -6617,7 +6978,7 @@ alert (bell) backspace .TP .B \ec -suppress trailing newline +suppress further output .TP .B \ee an escape character @@ -6650,7 +7011,7 @@ the eight-bit character whose value is the hexadecimal value \fIHH\fP .PD .RE .TP -\fBenable\fP [\fB\-adnps\fP] [\fB\-f\fP \fIfilename\fP] [\fIname\fP ...] +\fBenable\fP [\fB\-a\fP] [\fB\-dnps\fP] [\fB\-f\fP \fIfilename\fP] [\fIname\fP ...] Enable and disable builtin shell commands. Disabling a builtin allows a disk command which has the same name as a shell builtin to be executed without specifying a full pathname, @@ -6711,7 +7072,7 @@ become the arguments to \fIcommand\fP. If the .B \-l option is supplied, -the shell places a dash at the beginning of the zeroth arg passed to +the shell places a dash at the beginning of the zeroth argument passed to .IR command . This is what .IR login (1) @@ -6782,7 +7143,7 @@ is supplied with a .I name that is not a function. .TP -\fBfc\fP [\fB\-e\fP \fIename\fP] [\fB\-nlr\fP] [\fIfirst\fP] [\fIlast\fP] +\fBfc\fP [\fB\-e\fP \fIename\fP] [\fB\-lnr\fP] [\fIfirst\fP] [\fIlast\fP] .PD 0 .TP \fBfc\fP \fB\-s\fP [\fIpat\fP=\fIrep\fP] [\fIcmd\fP] @@ -7027,7 +7388,7 @@ The return status is true unless a .I name is not found or an invalid option is supplied. .TP -\fBhelp\fP [\fB\-s\fP] [\fIpattern\fP] +\fBhelp\fP [\fB\-dms\fP] [\fIpattern\fP] Display helpful information about builtin commands. If .I pattern is specified, @@ -7036,8 +7397,19 @@ gives detailed help on all commands matching .IR pattern ; otherwise help for all the builtins and shell control structures is printed. -The \fB\-s\fP option restricts the information displayed to a short -usage synopsis. +.RS +.PD 0 +.TP +.B \-d +Display a short description of each \fIpattern\fP +.TP +.B \ -m +Display the description of each \fIpattern\fP in a manpage-like format +.TP +.B \-s +Display only a short usage synopsis for each \fIpattern\fP +.PD +.RE The return status is 0 unless no command matches .IR pattern . .TP @@ -7116,7 +7488,11 @@ are added. .PD .PP If the \fBHISTTIMEFORMAT\fP is set, the time stamp information -associated with each history entry is written to the history file. +associated with each history entry is written to the history file, +marked with the history comment character. +When the history file is read, lines beginning with the history +comment character followed immediately by a digit are interpreted +as timestamps for the previous history line. The return value is 0 unless an invalid option is encountered, an error occurs while reading or writing the history file, an invalid \fIoffset\fP is supplied as an argument to \fB\-d\fP, or the @@ -7259,6 +7635,64 @@ is supplied, or .B logout Exit a login shell. .TP +\fBmapfile\fP [\fB\-n\fP \fIcount\fP] [\fB\-O\fP \fIorigin\fP] [\fB\-s\fP \fIcount\fP] [\fB\-t\fP] [\fB\-u\fP \fIfd\fP] [\fB\-C\fP \fIcallback\fP] [\fB\-c\fP \fIquantum\fP] [\fIarray\fP] +Read lines from the standard input into array variable +.IR array , +or from file descriptor +.IR fd +if the +.B \-u +option is supplied. +The variable \fBMAPFILE\fP is the default \fIarray\fP. +Options, if supplied, have the following meanings: +.RS +.PD 0 +.TP +.B \-n +Copy at most +.I count +lines. If \fIcount\fP is 0, all lines are copied. +.TP +.B \-O +Begin assigning to +.I array +at index +.IR origin . +The default index is 0. +.TP +.B \-s +Discard the first \fIcount\fP lines read. +.TP +.B \-t +Remove a trailing line from each line read. +.TP +.B \-u +Read lines from file descriptor \fIfd\fP instead of the standard input. +.TP +.B \-C +Evaluate +.I callback +each time \fIquantum\fP lines are read. The \fB\-c\fP option specifies +.IR quantum . +.TP +.B \-c +Specify the number of lines read between each call to +.IR callback . +.PD +.PP +If +.B \-C +is specified without +.BR \-c , +the default quantum is 5000. +.PP +If not supplied with an explicit origin, \fBmapfile\fP will clear \fIarray\fP +before assigning to it. +.PP +\fBmapfile\fP returns successfully unless an invalid option or option +argument is supplied, or \fIarray\fP is invalid or unassignable. +.RE +.TP \fBpopd\fP [\-\fBn\fP] [+\fIn\fP] [\-\fIn\fP] Removes entries from the directory stack. With no arguments, removes the top directory from the stack, and performs a @@ -7268,6 +7702,10 @@ Arguments, if supplied, have the following meanings: .RS .PD 0 .TP +.B \-n +Suppresses the normal change of directory when removing directories +from the stack, so that only the stack is manipulated. +.TP \fB+\fP\fIn\fP Removes the \fIn\fPth entry counting from the left of the list shown by @@ -7291,10 +7729,6 @@ removes the last directory, .if n ``popd -1'' .if t \f(CWpopd -1\fP the next to last. -.TP -.B \-n -Suppresses the normal change of directory when removing directories -from the stack, so that only the stack is manipulated. .PD .PP If the @@ -7333,10 +7767,10 @@ extra format specifications behave as if a zero value or null string, as appropriate, had been supplied. The return value is zero on success, non-zero on failure. .TP -\fBpushd\fP [\fB\-n\fP] [\fIdir\fP] +\fBpushd\fP [\fB\-n\fP] [+\fIn\fP] [\-\fIn\fP] .PD 0 .TP -\fBpushd\fP [\fB\-n\fP] [+\fIn\fP] [\-\fIn\fP] +\fBpushd\fP [\fB\-n\fP] [\fIdir\fP] .PD Adds a directory to the top of the directory stack, or rotates the stack, making the new top of the stack the current working @@ -7346,6 +7780,10 @@ Arguments, if supplied, have the following meanings: .RS .PD 0 .TP +.B \-n +Suppresses the normal change of directory when adding directories +to the stack, so that only the stack is manipulated. +.TP \fB+\fP\fIn\fP Rotates the stack so that the \fIn\fPth directory (counting from the left of the list shown by @@ -7359,10 +7797,6 @@ Rotates the stack so that the \fIn\fPth directory .BR dirs , starting with zero) is at the top. .TP -.B \-n -Suppresses the normal change of directory when adding directories -to the stack, so that only the stack is manipulated. -.TP .I dir Adds .I dir @@ -7403,7 +7837,7 @@ The return status is 0 unless an error occurs while reading the name of the current directory or an invalid option is supplied. .TP -\fBread\fP [\fB\-ers\fP] [\fB\-u\fP \fIfd\fP] [\fB\-t\fP \fItimeout\fP] [\fB\-a\fP \fIaname\fP] [\fB\-p\fP \fIprompt\fP] [\fB\-n\fP \fInchars\fP] [\fB\-d\fP \fIdelim\fP] [\fIname\fP ...] +\fBread\fP [\fB\-ers\fP] [\fB\-a\fP \fIaname\fP] [\fB\-d\fP \fIdelim\fP] [\fB\-\fP \fItext\fP] [\fB\-n\fP \fInchars\fP] [\fB\-p\fP \fIprompt\fP] [\fB\-t\fP \fItimeout\fP] [\fB\-u\fP \fIfd\fP] [\fIname\fP ...] One line is read from the standard input, or from the file descriptor \fIfd\fP supplied as an argument to the \fB\-u\fP option, and the first word is assigned to the first @@ -7446,6 +7880,14 @@ is coming from a terminal, .SM .B READLINE above) is used to obtain the line. +Readline uses the current (or default, if line editing was not previously +active) editing settings. +.TP +.B \-i \fItext\fP +If +.B readline +is being used to read the line, \fItext\fP is placed into the editing +buffer before editing begins. .TP .B \-n \fInchars\fP \fBread\fP returns after reading \fInchars\fP characters rather than @@ -7469,8 +7911,14 @@ not echoed. .B \-t \fItimeout\fP Cause \fBread\fP to time out and return failure if a complete line of input is not read within \fItimeout\fP seconds. -This option has no effect if \fBread\fP is not reading input from the -terminal or a pipe. +\fItimeout\fP may be a decimal number with a fractional portion following +the decimal point. +This option is only effective if \fBread\fP is reading input from a +terminal, pipe, or other special file; it has no effect when reading +from regular files. +If \fItimeout\fP is 0, \fBread\fP returns success if input is available on +the specified file descriptor, failure otherwise. +The exit status is greater than 128 if the timeout is exceeded. .TP .B \-u \fIfd\fP Read input from file descriptor \fIfd\fP. @@ -7482,11 +7930,11 @@ are supplied, the line read is assigned to the variable .SM .BR REPLY . The return code is zero, unless end-of-file is encountered, \fBread\fP -times out, or an invalid file descriptor is supplied as the argument to -\fB\-u\fP. +times out (in which case the return code is greater than 128), or an +invalid file descriptor is supplied as the argument to \fB\-u\fP. .RE .TP -\fBreadonly\fP [\fB\-apf\fP] [\fIname\fP[=\fIword\fP] ...] +\fBreadonly\fP [\fB\-aApf\fP] [\fIname\fP[=\fIword\fP] ...] .PD The given \fInames\fP are marked readonly; the values of these @@ -7499,7 +7947,9 @@ option is supplied, the functions corresponding to the marked. The .B \-a -option restricts the variables to arrays. +option restricts the variables to indexed arrays; the +.B \-A +option restricts the variables to associative arrays. If no .I name arguments are given, or if the @@ -7539,7 +7989,11 @@ the return status is false. Any command associated with the \fBRETURN\fP trap is executed before execution resumes after the function or script. .TP -\fBset\fP [\fB\-\-abefhkmnptuvxBCHP\fP] [\fB\-o\fP \fIoption\fP] [\fIarg\fP ...] +\fBset\fP [\fB\-\-abefhkmnptuvxBCEHPT\fP] [\fB\-o\fP \fIoption\fP] [\fIarg\fP ...] +.PD 0 +.TP +\fBset\fP [\fB+abefhkmnptuvxBCEHPT\fP] [\fB+o\fP \fIoption\fP] [\fIarg\fP ...] +.PD Without options, the name and value of each shell variable are displayed in a format that can be reused as input for setting or resetting the currently-set variables. @@ -7547,7 +8001,7 @@ Read-only variables cannot be reset. In \fIposix mode\fP, only shell variables are listed. The output is sorted according to the current locale. When options are specified, they set or unset shell attributes. -Any arguments remaining after the options are processed are treated +Any arguments remaining after option processing are treated as values for the positional parameters and are assigned, in order, to .BR $1 , .BR $2 , @@ -7578,14 +8032,19 @@ or .B until keyword, part of the test in an -.I if -statement, part of a +.B if +statement, part of a command executed in a .B && or .B \(bv\(bv -list, or if the command's return value is +list, +any command in a pipeline but the last, +or if the command's return value is being inverted via .BR ! . +Failing simple commands that are part of shell functions or command lists +enclosed in braces or parentheses satisfying the above conditions do not +cause the shell to exit. A trap on \fBERR\fP, if set, is executed before the shell exits. .TP 8 .B \-f @@ -7633,6 +8092,7 @@ by default when the shell is interactive, unless the shell is started with the .B \-\-noediting option. +This also affects the editing interface used for \fBread \-e\fP. .TP 8 .B errtrace Same as @@ -7688,6 +8148,7 @@ Same as .B noglob Same as .BR \-f . +.TP 8 .B nolog Currently ignored. .TP 8 @@ -7729,6 +8190,7 @@ Same as .TP 8 .B vi Use a vi-style command line editing interface. +This also affects the editing interface used for \fBread \-e\fP. .TP 8 .B xtrace Same as @@ -7759,8 +8221,11 @@ and files are not processed, shell functions are not inherited from the environment, and the .SM -.B SHELLOPTS -variable, if it appears in the environment, is ignored. +.BR SHELLOPTS , +.BR CDPATH , +and +.B GLOBIGNORE +variables, if they appear in the environment, are ignored. If the shell is started with the effective user (group) id not equal to the real user (group) id, and the \fB\-p\fP option is not supplied, these actions are taken and the effective user id is set to the real user id. @@ -7939,6 +8404,11 @@ The list of \fBshopt\fP options is: .if n .sp 1v .PD 0 .TP 8 +.B autocd +If set, a command name that is the name of a directory is executed as if +it were the argument to the \fBcd\fP command. +This option is only used by interactive shells. +.TP 8 .B cdable_vars If set, an argument to the .B cd @@ -7961,6 +8431,13 @@ If set, \fBbash\fP checks that a command found in the hash table exists before trying to execute it. If a hashed command no longer exists, a normal path search is performed. .TP 8 +.B checkjobs +If set, \fBbash\fP lists the status of any stopped and running jobs before +exiting an interactive shell. If any jobs are running, this causes +the exit to be deferred until a second exit is attempted without an +intervening command (see \fBJOB CONTROL\fP above). The shell always +postpones exiting if any jobs are stopped. +.TP 8 .B checkwinsize If set, \fBbash\fP checks the window size after each command and, if necessary, updates the values of @@ -7983,6 +8460,12 @@ If set, changes its behavior to that of version 3.1 with respect to quoted arguments to the conditional command's =~ operator. .TP 8 +.B dirspell +If set, +.B bash +attempts spelling correction on directory names during word completion +if the directory name initially supplied does not exist. +.TP 8 .B dotglob If set, .B bash @@ -8060,6 +8543,12 @@ See above for a description of \fBFIGNORE\fP. This option is enabled by default. .TP 8 +.B globstar +If set, the pattern \fB**\fP used in a filename expansion context will +match a files and zero or more directories and subdirectories. +If the pattern is followed by a \fB/\fP, only directories and +subdirectories match. +.TP 8 .B gnu_errfmt If set, shell error messages are written in the standard GNU error message format. @@ -8204,11 +8693,10 @@ by default. Suspend the execution of this shell until it receives a .SM .B SIGCONT -signal. The +signal. A login shell cannot be suspended; the .B \-f -option says not to complain if this is -a login shell; just suspend anyway. The return status is 0 unless -the shell is a login shell and +option can be used to override this and force the suspension. +The return status is 0 unless the shell is a login shell and .B \-f is not supplied, or if job control is not enabled. .TP @@ -8229,6 +8717,7 @@ an argument of \fB\-\-\fP as signifying the end of options. .if n .sp 1 Expressions may be combined using the following operators, listed in decreasing order of precedence. +The evaluation depends on the number of arguments; see below. .RS .PD 0 .TP @@ -8286,14 +8775,14 @@ under .BR "CONDITIONAL EXPRESSIONS" , the result of the expression is the result of the binary test using the first and third arguments as operands. +The \fB\-a\fP and \fB\-o\fP operators are considered binary operators +when there are three arguments. If the first argument is \fB!\fP, the value is the negation of the two-argument test using the second and third arguments. If the first argument is exactly \fB(\fP and the third argument is exactly \fB)\fP, the result is the one-argument test of the second argument. Otherwise, the expression is false. -The \fB\-a\fP and \fB\-o\fP operators are considered binary operators -in this case. .TP 4 arguments If the first argument is \fB!\fP, the result is the negation of @@ -8393,7 +8882,7 @@ or keyword, part of the test in an .I if -statement, part of a +statement, part of a command executed in a .B && or .B \(bv\(bv @@ -8492,15 +8981,16 @@ The .B \-f option suppresses shell function lookup, as with the \fBcommand\fP builtin. .B type -returns true if any of the arguments are found, false if -none are found. +returns true if all of the arguments are found, false if +any are not found. .TP -\fBulimit\fP [\fB\-SHacdefilmnpqrstuvx\fP [\fIlimit\fP]] +\fBulimit\fP [\fB\-HSTabcdefilmnpqrstuvx\fP [\fIlimit\fP]] Provides control over the resources available to the shell and to processes started by it, on systems that allow such control. The \fB\-H\fP and \fB\-S\fP options specify that the hard or soft limit is -set for the given resource. A hard limit cannot be increased once it -is set; a soft limit may be increased up to the value of the hard limit. +set for the given resource. +A hard limit cannot be increased by a non-root user once it is set; +a soft limit may be increased up to the value of the hard limit. If neither \fB\-H\fP nor \fB\-S\fP is specified, both the soft and hard limits are set. The value of @@ -8525,6 +9015,9 @@ Other options are interpreted as follows: .B \-a All current limits are reported .TP +.B \-b +The maximum socket buffer size +.TP .B \-c The maximum size of core files created .TP @@ -8573,6 +9066,9 @@ The maximum amount of virtual memory available to the shell .TP .B \-x The maximum number of file locks +.TP +.B \-T +The maximum number of threads .PD .PP If @@ -8588,7 +9084,9 @@ which is in seconds, .BR \-p , which is in units of 512-byte blocks, and -.B \-n +.BR \-T , +.BR \-b , +.BR \-n , and .BR \-u , which are unscaled values. @@ -8881,12 +9379,8 @@ It suffices to place the sequence of commands between parentheses to force it into a subshell, which may be stopped as a unit. .PP -Commands inside of \fB$(\fP...\fB)\fP command substitution are not -parsed until substitution is attempted. This will delay error -reporting until some time after the command is entered. For example, -unmatched parentheses, even inside shell comments, will result in -error messages while the construct is being read. -.PP Array variables may not (yet) be exported. +.PP +There may be only one active coprocess at a time. .zZ .zY diff --git a/doc/bashbug.1 b/doc/bashbug.1 index 971e4c4c0..962cb9cba 100644 --- a/doc/bashbug.1 +++ b/doc/bashbug.1 @@ -1,8 +1,17 @@ -.TH BASHBUG 1 "1998 July 30" GNU +.\" +.\" MAN PAGE COMMENTS to +.\" +.\" Chet Ramey +.\" Case Western Reserve University +.\" chet@po.cwru.edu +.\" +.\" Last Change: Tue Apr 3 15:46:30 EDT 2007 +.\" +.TH BASHBUG 1 "1998 July 30" "GNU Bash-4.0" .SH NAME bashbug \- report a bug in bash .SH SYNOPSIS -\fBbashbug\fP [\fIaddress\fP] +\fBbashbug\fP [\fI--version\fP] [\fI--help\fP] [\fIemail-address\fP] .SH DESCRIPTION .B bashbug is a shell script to help the user compose and mail bug reports @@ -15,7 +24,7 @@ on a temporary copy of the bug report format outline. The user must fill in the appropriate fields and exit the editor. .B bashbug then mails the completed report to \fIbug-bash@gnu.org\fP, or -\fIaddress\fP. If the report cannot be mailed, it is saved in the +\fIemail-address\fP. If the report cannot be mailed, it is saved in the file \fIdead.bashbug\fP in the invoking user's home directory. .PP The bug report format outline consists of several sections. The first @@ -39,3 +48,17 @@ defaults to .TP .B HOME Directory in which the failed bug report is saved if the mail fails. +.TP +.B TMPDIR +Directory in which to create temporary files and directories. +.SH "SEE ALSO" +.TP +\fIbash\fP(1) +.SH AUTHORS +Brian Fox, Free Software Foundation +.br +bfox@gnu.org +.PP +Chet Ramey, Case Western Reserve University +.br +chet@po.cwru.edu diff --git a/doc/bashref.info b/doc/bashref.info index 3b74eb63d..58fd31024 100644 --- a/doc/bashref.info +++ b/doc/bashref.info @@ -1,13 +1,13 @@ -This is bashref.info, produced by makeinfo version 4.7 from +This is bashref.info, produced by makeinfo version 4.11 from /Users/chet/src/bash/src/doc/bashref.texi. - This text is a brief description of the features that are present in -the Bash shell (version 3.2, 28 September 2006). +This text is a brief description of the features that are present in +the Bash shell (version 4.0, 28 October 2008). - This is Edition 3.2, last updated 28 September 2006, of `The GNU -Bash Reference Manual', for `Bash', Version 3.2. + This is Edition 4.0, last updated 28 October 2008, of `The GNU Bash +Reference Manual', for `Bash', Version 4.0. - Copyright (C) 1988-2005 Free Software Foundation, Inc. + Copyright (C) 1988-2008 Free Software Foundation, Inc. Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are @@ -17,13 +17,14 @@ preserved on all copies. document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, with the Front-Cover texts - being "A GNU Manual," and with the Back-Cover Texts as in (a) + being "A GNU Manual", and with the Back-Cover Texts as in (a) below. A copy of the license is included in the section entitled - "GNU Free Documentation License." + "GNU Free Documentation License". + + (a) The FSF's Back-Cover Text is: You are free to copy and modify + this GNU manual. Buying copies from GNU Press supports the FSF in + developing GNU and promoting software freedom." - (a) The FSF's Back-Cover Text is: "You have freedom to copy and - modify this GNU Manual, like GNU software. Copies published by - the Free Software Foundation raise funds for GNU development." INFO-DIR-SECTION Basics START-INFO-DIR-ENTRY @@ -37,10 +38,10 @@ Bash Features ************* This text is a brief description of the features that are present in -the Bash shell (version 3.2, 28 September 2006). +the Bash shell (version 4.0, 28 October 2008). - This is Edition 3.2, last updated 28 September 2006, of `The GNU -Bash Reference Manual', for `Bash', Version 3.2. + This is Edition 4.0, last updated 28 October 2008, of `The GNU Bash +Reference Manual', for `Bash', Version 4.0. Bash contains features that appear in other popular shells, and some features that only appear in Bash. Some of the shells that Bash has @@ -64,22 +65,16 @@ on shell behavior. * Bash Features:: Features found only in Bash. * Job Control:: What job control is and how Bash allows you to use it. -* Using History Interactively:: Command History Expansion * Command Line Editing:: Chapter describing the command line editing features. +* Using History Interactively:: Command History Expansion * Installing Bash:: How to build and install Bash on your system. * Reporting Bugs:: How to report bugs in Bash. * Major Differences From The Bourne Shell:: A terse list of the differences between Bash and historical versions of /bin/sh. -* Copying This Manual:: Copying this manual. -* Builtin Index:: Index of Bash builtin commands. -* Reserved Word Index:: Index of Bash reserved words. -* Variable Index:: Quick reference helps you find the - variable you want. -* Function Index:: Index of bindable Readline functions. -* Concept Index:: General index for concepts described in - this manual. +* GNU Free Documentation License:: Copying and sharing this documentation. +* Indexes:: Various indexes for this manual.  File: bashref.info, Node: Introduction, Next: Definitions, Prev: Top, Up: Top @@ -130,7 +125,7 @@ symbols are expanded to create larger expressions. A Unix shell is both a command interpreter and a programming language. As a command interpreter, the shell provides the user interface to the rich set of GNU utilities. The programming language -features allow these utilitites to be combined. Files containing +features allow these utilities to be combined. Files containing commands can be created, and become commands themselves. These new commands have the same status as system commands in directories such as `/bin', allowing users or groups to establish custom environments to @@ -189,8 +184,9 @@ These definitions are used throughout the remainder of this manual. rather than by an executable program somewhere in the file system. `control operator' - A `word' that performs a control function. It is a `newline' or - one of the following: `||', `&&', `&', `;', `;;', `|', `(', or `)'. + A `token' that performs a control function. It is a `newline' or + one of the following: `||', `&&', `&', `;', `;;', `|', `|&', `(', + or `)'. `exit status' The value returned by a command to its caller. The value is @@ -225,14 +221,15 @@ These definitions are used throughout the remainder of this manual. `operator' A `control operator' or a `redirection operator'. *Note - Redirections::, for a list of redirection operators. + Redirections::, for a list of redirection operators. Operators + contain at least one unquoted `metacharacter'. `process group' A collection of related processes each having the same process group ID. `process group ID' - A unique identifer that represents a `process group' during its + A unique identifier that represents a `process group' during its lifetime. `reserved word' @@ -256,7 +253,8 @@ These definitions are used throughout the remainder of this manual. It is either a `word' or an `operator'. `word' - A `token' that is not an `operator'. + A sequence of characters treated as a unit by the shell. Words + may not include unquoted `metacharacters'.  File: bashref.info, Node: Basic Shell Features, Next: Shell Builtin Commands, Prev: Definitions, Up: Top @@ -327,7 +325,7 @@ reads and executes a command. Basically, the shell does the following: Invoking Bash::), or from the user's terminal. 2. Breaks the input into words and operators, obeying the quoting - rules described in *Note Quoting::. These tokens are separated by + rules described in *note Quoting::. These tokens are separated by `metacharacters'. Alias expansion is performed by this step (*note Aliases::). @@ -508,9 +506,9 @@ File: bashref.info, Node: Comments, Prev: Quoting, Up: Shell Syntax In a non-interactive shell, or an interactive shell in which the `interactive_comments' option to the `shopt' builtin is enabled (*note -Bash Builtins::), a word beginning with `#' causes that word and all -remaining characters on that line to be ignored. An interactive shell -without the `interactive_comments' option enabled does not allow +The Shopt Builtin::), a word beginning with `#' causes that word and +all remaining characters on that line to be ignored. An interactive +shell without the `interactive_comments' option enabled does not allow comments. The `interactive_comments' option is on by default in interactive shells. *Note Interactive Shells::, for a description of what makes a shell interactive. @@ -536,6 +534,7 @@ construct, or in some other grouping. commands. * Lists:: How to execute commands sequentially. * Compound Commands:: Shell commands for control flow. +* Coprocesses:: Two-way communication between commands.  File: bashref.info, Node: Simple Commands, Next: Pipelines, Up: Shell Commands @@ -559,14 +558,21 @@ File: bashref.info, Node: Pipelines, Next: Lists, Prev: Simple Commands, Up: 3.2.2 Pipelines --------------- -A `pipeline' is a sequence of simple commands separated by `|'. +A `pipeline' is a sequence of simple commands separated by one of the +control operators `|' or `|&'. The format for a pipeline is - [`time' [`-p']] [`!'] COMMAND1 [`|' COMMAND2 ...] + [`time' [`-p']] [`!'] COMMAND1 [ [`|' or `|&'] COMMAND2 ...] The output of each command in the pipeline is connected via a pipe to the input of the next command. That is, each command reads the -previous command's output. +previous command's output. This connection is performed before any +redirections specified by the command. + + If `|&' is used, the standard error of COMMAND1 is connected to +COMMAND2's standard input through the pipe; it is shorthand for `2>&1 +|'. This implicit redirection of the standard error is performed after +any redirections specified by the command. The reserved word `time' causes timing statistics to be printed for the pipeline once it finishes. The statistics currently consist of @@ -621,8 +627,11 @@ redirected from `/dev/null'. waits for each command to terminate in turn. The return status is the exit status of the last command executed. - The control operators `&&' and `||' denote AND lists and OR lists, -respectively. An AND list has the form + AND and OR lists are sequences of one or more pipelines separated by +the control operators `&&' and `||', respectively. AND and OR lists +are executed with left associativity. + + An AND list has the form COMMAND1 && COMMAND2 COMMAND2 is executed if, and only if, COMMAND1 returns an exit status @@ -638,7 +647,7 @@ status. command executed in the list.  -File: bashref.info, Node: Compound Commands, Prev: Lists, Up: Shell Commands +File: bashref.info, Node: Compound Commands, Next: Coprocesses, Prev: Lists, Up: Shell Commands 3.2.4 Compound Commands ----------------------- @@ -751,21 +760,23 @@ File: bashref.info, Node: Conditional Constructs, Next: Command Grouping, Pre `case' will selectively execute the COMMAND-LIST corresponding to the first PATTERN that matches WORD. If the shell option - `nocasematch' (see the description of `shopt' in *Note Bash - Builtins::) is enabled, the match is performed without regard to + `nocasematch' (see the description of `shopt' in *note The Shopt + Builtin::) is enabled, the match is performed without regard to the case of alphabetic characters. The `|' is used to separate multiple patterns, and the `)' operator terminates a pattern list. A list of patterns and an associated command-list is known as a - CLAUSE. Each clause must be terminated with `;;'. The WORD - undergoes tilde expansion, parameter expansion, command + CLAUSE. + + Each clause must be terminated with `;;', `,&', or `;;&'. The + WORD undergoes tilde expansion, parameter expansion, command substitution, arithmetic expansion, and quote removal before matching is attempted. Each PATTERN undergoes tilde expansion, parameter expansion, command substitution, and arithmetic expansion. There may be an arbitrary number of `case' clauses, each terminated - by a `;;'. The first pattern that matches determines the - command-list that is executed. + by a `;;', `;&', or `;;&'. The first pattern that matches + determines the command-list that is executed. Here is an example using `case' in a script that could be used to describe one interesting feature of an animal: @@ -780,6 +791,13 @@ File: bashref.info, Node: Conditional Constructs, Next: Command Grouping, Pre esac echo " legs." + If the `;;' operator is used, no subsequent matches are attempted + after the first pattern match. Using `;&' in place of `;;' + causes execution to continue with the COMMAND-LIST associated with + the next clause, if any. Using `;;&' in place of `;;' causes the + shell to test the patterns in the next clause, if any, and execute + any associated COMMAND-LIST on a successful match. + The return status is zero if no PATTERN is matched. Otherwise, the return status is the exit status of the COMMAND-LIST executed. @@ -793,7 +811,7 @@ File: bashref.info, Node: Conditional Constructs, Next: Command Grouping, Pre items. The set of expanded words is printed on the standard error output stream, each preceded by a number. If the `in WORDS' is omitted, the positional parameters are printed, as if `in "$@"' - had been specifed. The `PS3' prompt is then displayed and a line + had been specified. The `PS3' prompt is then displayed and a line is read from the standard input. If the line consists of a number corresponding to one of the displayed words, then the value of NAME is set to that word. If the line is empty, the words and @@ -829,7 +847,7 @@ File: bashref.info, Node: Conditional Constructs, Next: Command Grouping, Pre Return a status of 0 or 1 depending on the evaluation of the conditional expression EXPRESSION. Expressions are composed of - the primaries described below in *Note Bash Conditional + the primaries described below in *note Bash Conditional Expressions::. Word splitting and filename expansion are not performed on the words between the `[[' and `]]'; tilde expansion, parameter and variable expansion, arithmetic expansion, command @@ -839,13 +857,13 @@ File: bashref.info, Node: Conditional Constructs, Next: Command Grouping, Pre When the `==' and `!=' operators are used, the string to the right of the operator is considered a pattern and matched according to - the rules described below in *Note Pattern Matching::. If the + the rules described below in *note Pattern Matching::. If the shell option `nocasematch' (see the description of `shopt' in - *Note Bash Builtins::) is enabled, the match is performed without - regard to the case of alphabetic characters. The return value is - 0 if the string matches (`==') or does not match (`!=')the - pattern, and 1 otherwise. Any part of the pattern may be quoted - to force it to be matched as a string. + *note The Shopt Builtin::) is enabled, the match is performed + without regard to the case of alphabetic characters. The return + value is 0 if the string matches (`==') or does not match + (`!=')the pattern, and 1 otherwise. Any part of the pattern may + be quoted to force it to be matched as a string. An additional binary operator, `=~', is available, with the same precedence as `==' and `!='. When it is used, the string to the @@ -854,14 +872,16 @@ File: bashref.info, Node: Conditional Constructs, Next: Command Grouping, Pre the string matches the pattern, and 1 otherwise. If the regular expression is syntactically incorrect, the conditional expression's return value is 2. If the shell option `nocasematch' - (see the description of `shopt' in *Note Bash Builtins::) is + (see the description of `shopt' in *note The Shopt Builtin::) is enabled, the match is performed without regard to the case of - alphabetic characters. Substrings matched by parenthesized - subexpressions within the regular expression are saved in the - array variable `BASH_REMATCH'. The element of `BASH_REMATCH' with - index 0 is the portion of the string matching the entire regular - expression. The element of `BASH_REMATCH' with index N is the - portion of the string matching the Nth parenthesized subexpression. + alphabetic characters. Any part of the pattern may be quoted to + force it to be matched as a string. Substrings matched by + parenthesized subexpressions within the regular expression are + saved in the array variable `BASH_REMATCH'. The element of + `BASH_REMATCH' with index 0 is the portion of the string matching + the entire regular expression. The element of `BASH_REMATCH' with + index N is the portion of the string matching the Nth + parenthesized subexpression. Expressions may be combined using the following operators, listed in decreasing order of precedence: @@ -913,13 +933,47 @@ the list may be redirected to a single stream. In addition to the creation of a subshell, there is a subtle difference between these two constructs due to historical reasons. The braces are `reserved words', so they must be separated from the LIST by -`blank's. The parentheses are `operators', and are recognized as -separate tokens by the shell even if they are not separated from the -LIST by whitespace. +`blank's or other shell metacharacters. The parentheses are +`operators', and are recognized as separate tokens by the shell even if +they are not separated from the LIST by whitespace. The exit status of both of these constructs is the exit status of LIST. + +File: bashref.info, Node: Coprocesses, Prev: Compound Commands, Up: Shell Commands + +3.2.5 Coprocesses +----------------- + +A `coprocess' is a shell command preceded by the `coproc' reserved word. +A coprocess is executed asynchronously in a subshell, as if the command +had been terminated with the `&' control operator, with a two-way pipe +established between the executing shell and the coprocess. + + The format for a coprocess is: + `coproc' [NAME] COMMAND [REDIRECTIONS] + +This creates a coprocess named NAME. If NAME is not supplied, the +default name is COPROC. + + When the coproc is executed, the shell creates an array variable +(*note Arrays::) named NAME in the context of the executing shell. The +standard output of COMMAND is connected via a pipe to a file descriptor +in the executing shell, and that file descriptor is assigned to NAME[0]. +The standard input of COMMAND is connected via a pipe to a file +descriptor in the executing shell, and that file descriptor is assigned +to NAME[1]. This pipe is established before any redirections specified +by the command (*note Redirections::). The file descriptors can be +utilized as arguments to shell commands and redirections using standard +word expansions. + + The process id of the shell spawned to execute the coprocess is +available as the value of the variable NAME_PID. The `wait' builtin +command may be used to wait for the coprocess to terminate. + + The return status of a coprocess is the exit status of COMMAND. +  File: bashref.info, Node: Shell Functions, Next: Shell Parameters, Prev: Shell Commands, Up: Basic Shell Features @@ -958,8 +1012,9 @@ last command executed in the body. braces that surround the body of the function must be separated from the body by `blank's or newlines. This is because the braces are reserved words and are only recognized as such when they are separated -by whitespace. Also, when using the braces, the LIST must be -terminated by a semicolon, a `&', or a newline. +from the command list by whitespace or another shell metacharacter. +Also, when using the braces, the LIST must be terminated by a semicolon, +a `&', or a newline. When a function is executed, the arguments to the function become the positional parameters during its execution (*note Positional @@ -1018,7 +1073,7 @@ File: bashref.info, Node: Shell Parameters, Next: Shell Expansions, Prev: She number, or one of the special characters listed below. A VARIABLE is a parameter denoted by a `name'. A variable has a VALUE and zero or more ATTRIBUTES. Attributes are assigned using the `declare' builtin command -(see the description of the `declare' builtin in *Note Bash Builtins::). +(see the description of the `declare' builtin in *note Bash Builtins::). A parameter is set if it has been assigned a value. The null string is a valid value. Once a variable is set, it may be unset only by using @@ -1046,8 +1101,10 @@ variable's current value, which is also evaluated. When `+=' is applied to an array variable using compound assignment (*note Arrays::), the variable's value is not unset (as it is when using `='), and new values are appended to the array beginning at one greater than -the array's maximum index. When applied to a string-valued variable, -VALUE is expanded and appended to the variable's value. +the array's maximum index (for indexed arrays), or added as additional +key-value pairs in an associative array. When applied to a +string-valued variable, VALUE is expanded and appended to the +variable's value.  File: bashref.info, Node: Positional Parameters, Next: Special Parameters, Up: Shell Parameters @@ -1201,7 +1258,7 @@ Brace expansion is a mechanism by which arbitrary strings may be generated. This mechanism is similar to FILENAME EXPANSION (*note Filename Expansion::), but the file names generated need not exist. Patterns to be brace expanded take the form of an optional PREAMBLE, -followed by either a series of comma-separated strings or a sequnce +followed by either a series of comma-separated strings or a seqeunce expression between a pair of braces, followed by an optional POSTSCRIPT. The preamble is prefixed to each string contained within the braces, and the postscript is then appended to each resulting string, expanding left @@ -1212,12 +1269,18 @@ are not sorted; left to right order is preserved. For example, bash$ echo a{d,c,b}e ade ace abe - A sequence expression takes the form `{X..Y}', where X and Y are -either integers or single characters. When integers are supplied, the -expression expands to each number between X and Y, inclusive. When -characters are supplied, the expression expands to each character -lexicographically between X and Y, inclusive. Note that both X and Y -must be of the same type. + A sequence expression takes the form `{X..Y[INCR]}', where X and Y +are either integers or single characters, and INCR, an optional +increment, is an integer. When integers are supplied, the expression +expands to each number between X and Y, inclusive. Supplied integers +may be prefixed with `0' to force each term to have the same width. +When either X or Y begins with a zero, the shell attempts to force all +generated terms to contain the same number of digits, zero-padding +where necessary. When characters are supplied, the expression expands +to each character lexicographically between X and Y, inclusive. Note +that both X and Y must be of the same type. When the increment is +supplied, it is used as the difference between each term. The default +increment is 1 or -1 as appropriate. Brace expansion is performed before any other expansions, and any characters special to other expansions are preserved in the result. It @@ -1380,19 +1443,26 @@ if the colon is omitted, the operator tests only for existence. If OFFSET evaluates to a number less than zero, the value is used as an offset from the end of the value of PARAMETER. If PARAMETER is `@', the result is LENGTH positional parameters beginning at - OFFSET. If PARAMETER is an array name indexed by `@' or `*', the - result is the LENGTH members of the array beginning with - `${PARAMETER[OFFSET]}'. A negative OFFSET is taken relative to - one greater than the maximum index of the specified array. Note - that a negative offset must be separated from the colon by at least - one space to avoid being confused with the `:-' expansion. + OFFSET. If PARAMETER is an indexed array name subscripted by `@' + or `*', the result is the LENGTH members of the array beginning + with `${PARAMETER[OFFSET]}'. A negative OFFSET is taken relative + to one greater than the maximum index of the specified array. + Substring expansion applied to an associative array produces + undefined results. + + Note that a negative offset must be separated from the colon by at + least one space to avoid being confused with the `:-' expansion. Substring indexing is zero-based unless the positional parameters - are used, in which case the indexing starts at 1. + are used, in which case the indexing starts at 1 by default. If + OFFSET is 0, and the positional parameters are used, `$@' is + prefixed to the list. `${!PREFIX*}' `${!PREFIX@}' Expands to the names of variables whose names begin with PREFIX, separated by the first character of the `IFS' special variable. + When `@' is used and the expansion appears within double quotes, + each variable name expands to a separate word. `${!NAME[@]}' `${!NAME[*]}' @@ -1454,6 +1524,25 @@ if the colon is omitted, the operator tests only for existence. member of the array in turn, and the expansion is the resultant list. +`${PARAMETER^PATTERN}' +`${PARAMETER^^PATTERN}' +`${PARAMETER,PATTERN}' +`${PARAMETER,,PATTERN}' + This expansion modifies the case of alphabetic characters in + PARAMETER. The PATTERN is expanded to produce a pattern just as in + pathname expansion. The `^' operator converts lowercase letters + matching PATTERN to uppercase; the `,' operator converts matching + uppercase letters to lowercase. The `^^' and `,,' expansions + convert each matched character in the expanded value; the `^' and + `,' expansions match and convert only the first character. If + PATTERN is omitted, it is treated like a `?', which matches every + character. If PARAMETER is `@' or `*', the case modification + operation is applied to each positional parameter in turn, and the + expansion is the resultant list. If PARAMETER is an array + variable subscripted with `@' or `*', the case modification + operation is applied to each member of the array in turn, and the + expansion is the resultant list. +  File: bashref.info, Node: Command Substitution, Next: Arithmetic Expansion, Prev: Shell Parameter Expansion, Up: Shell Expansions @@ -1546,15 +1635,17 @@ quotes for word splitting. The shell treats each character of `$IFS' as a delimiter, and splits the results of the other expansions into words on these characters. If `IFS' is unset, or its value is exactly `', the -default, then any sequence of `IFS' characters serves to delimit words. -If `IFS' has a value other than the default, then sequences of the -whitespace characters `space' and `tab' are ignored at the beginning -and end of the word, as long as the whitespace character is in the -value of `IFS' (an `IFS' whitespace character). Any character in `IFS' -that is not `IFS' whitespace, along with any adjacent `IFS' whitespace -characters, delimits a field. A sequence of `IFS' whitespace -characters is also treated as a delimiter. If the value of `IFS' is -null, no word splitting occurs. +default, then sequences of ` ', `', and `' at the +beginning and end of the results of the previous expansions are +ignored, and any sequence of `IFS' characters not at the beginning or +end serves to delimit words. If `IFS' has a value other than the +default, then sequences of the whitespace characters `space' and `tab' +are ignored at the beginning and end of the word, as long as the +whitespace character is in the value of `IFS' (an `IFS' whitespace +character). Any character in `IFS' that is not `IFS' whitespace, along +with any adjacent `IFS' whitespace characters, delimits a field. A +sequence of `IFS' whitespace characters is also treated as a delimiter. +If the value of `IFS' is null, no word splitting occurs. Explicit null arguments (`""' or `''') are retained. Unquoted implicit null arguments, resulting from the expansion of parameters @@ -1591,7 +1682,7 @@ matched explicitly, unless the shell option `dotglob' is set. When matching a file name, the slash character must always be matched explicitly. In other cases, the `.' character is not treated specially. - See the description of `shopt' in *Note Bash Builtins::, for a + See the description of `shopt' in *note The Shopt Builtin::, for a description of the `nocaseglob', `nullglob', `failglob', and `dotglob' options. @@ -1620,7 +1711,12 @@ characters must be quoted if they are to be matched literally. The special pattern characters have the following meanings: `*' - Matches any string, including the null string. + Matches any string, including the null string. When the + `globstar' shell option is enabled, and `*' is used in a filename + expansion context, two adjacent `*'s used as a single pattern will + match all files and zero or more directories and subdirectories. + If followed by a `/', two adjacent `*'s will match only + directories and subdirectories. `?' Matches any single character. @@ -1805,9 +1901,9 @@ specified. If the file does not exist it is created. 3.6.4 Redirecting Standard Output and Standard Error ---------------------------------------------------- -Bash allows both the standard output (file descriptor 1) and the -standard error output (file descriptor 2) to be redirected to the file -whose name is the expansion of WORD with this construct. +This construct allows both the standard output (file descriptor 1) and +the standard error output (file descriptor 2) to be redirected to the +file whose name is the expansion of WORD. There are two formats for redirecting standard output and standard error: @@ -1818,7 +1914,19 @@ error: equivalent to >WORD 2>&1 -3.6.5 Here Documents +3.6.5 Appending Standard Output and Standard Error +-------------------------------------------------- + +This construct allows both the standard output (file descriptor 1) and +the standard error output (file descriptor 2) to be appended to the +file whose name is the expansion of WORD. + + The format for appending standard output and standard error is: + &>>WORD + This is semantically equivalent to + >>WORD 2>&1 + +3.6.6 Here Documents -------------------- This type of redirection instructs the shell to read input from the @@ -1845,7 +1953,7 @@ characters are stripped from input lines and the line containing DELIMITER. This allows here-documents within shell scripts to be indented in a natural fashion. -3.6.6 Here Strings +3.6.7 Here Strings ------------------ A variant of here documents, the format is: @@ -1854,7 +1962,7 @@ A variant of here documents, the format is: The WORD is expanded and supplied to the command on its standard input. -3.6.7 Duplicating File Descriptors +3.6.8 Duplicating File Descriptors ---------------------------------- The redirection operator @@ -1875,7 +1983,7 @@ redirection error occurs. As a special case, if N is omitted, and WORD does not expand to one or more digits, the standard output and standard error are redirected as described previously. -3.6.8 Moving File Descriptors +3.6.9 Moving File Descriptors ----------------------------- The redirection operator @@ -1889,8 +1997,8 @@ closed after being duplicated to N. moves the file descriptor DIGIT to file descriptor N, or the standard output (file descriptor 1) if N is not specified. -3.6.9 Opening File Descriptors for Reading and Writing ------------------------------------------------------- +3.6.10 Opening File Descriptors for Reading and Writing +------------------------------------------------------- The redirection operator [N]<>WORD @@ -1973,7 +2081,7 @@ taken. 1. If the command name contains no slashes, the shell attempts to locate it. If there exists a shell function by that name, that - function is invoked as described in *Note Shell Functions::. + function is invoked as described in *note Shell Functions::. 2. If the name does not match a function, the shell searches for it in the list of shell builtins. If a match is found, that builtin @@ -1984,10 +2092,15 @@ taken. directory containing an executable file by that name. Bash uses a hash table to remember the full pathnames of executable files to avoid multiple `PATH' searches (see the description of `hash' in - *Note Bourne Shell Builtins::). A full search of the directories + *note Bourne Shell Builtins::). A full search of the directories in `$PATH' is performed only if the command is not found in the - hash table. If the search is unsuccessful, the shell prints an - error message and returns an exit status of 127. + hash table. If the search is unsuccessful, the shell searches for + a defined shell function named `command_not_found_handle'. If + that function exists, it is invoked with the original command and + the original command's arguments as its arguments, and the + function's exit status becomes the exit status of the shell. If + that function is not defined, the shell prints an error message + and returns an exit status of 127. 4. If the search is successful, or if the command name contains one or more slashes, the shell executes the named program in a @@ -1997,7 +2110,7 @@ taken. 5. If this execution fails because the file is not in executable format, and the file is not a directory, it is assumed to be a - SHELL SCRIPT and the shell executes it as described in *Note Shell + SHELL SCRIPT and the shell executes it as described in *note Shell Scripts::. 6. If the command was not begun asynchronously, the shell waits for @@ -2032,7 +2145,7 @@ The shell has an EXECUTION ENVIRONMENT, which consists of the following: * options enabled at invocation (either by default or with command-line arguments) or by `set' - * options enabled by `shopt' + * options enabled by `shopt' (*note The Shopt Builtin::) * shell aliases defined with `alias' (*note Aliases::) @@ -2101,7 +2214,7 @@ modified in the shell, less any pairs removed by the `unset' and The environment for any simple command or function may be augmented temporarily by prefixing it with parameter assignments, as described in -*Note Shell Parameters::. These assignment statements affect only the +*note Shell Parameters::. These assignment statements affect only the environment seen by that command. If the `-k' option is set (*note The Set Builtin::), then all @@ -2118,8 +2231,15 @@ File: bashref.info, Node: Exit Status, Next: Signals, Prev: Environment, Up: 3.7.5 Exit Status ----------------- -For the shell's purposes, a command which exits with a zero exit status -has succeeded. A non-zero exit status indicates failure. This +The exit status of an executed command is the value returned by the +WAITPID system call or equivalent function. Exit statuses fall between +0 and 255, though, as explained below, the shell may use values above +125 specially. Exit statuses from shell builtins and compound commands +are also limited to this range. Under certain circumstances, the shell +will use special values to indicate specific failure modes. + + For the shell's purposes, a command which exits with a zero exit +status has succeeded. A non-zero exit status indicates failure. This seemingly counter-intuitive scheme is used so there is one well-defined way to indicate success and a variety of ways to indicate various failure modes. When a command terminates on a fatal signal whose @@ -2171,8 +2291,8 @@ a particular job, it should be removed from the jobs table with the receive `SIGHUP' using `disown -h'. If the `huponexit' shell option has been set with `shopt' (*note -Bash Builtins::), Bash sends a `SIGHUP' to all jobs when an interactive -login shell exits. +The Shopt Builtin::), Bash sends a `SIGHUP' to all jobs when an +interactive login shell exits. If Bash is waiting for a command to complete and receives a signal for which a trap has been set, the trap will not be executed until the @@ -2214,7 +2334,7 @@ if `filename' is an executable shell script. This subshell reinitializes itself, so that the effect is as if a new shell had been invoked to interpret the script, with the exception that the locations of commands remembered by the parent (see the description of `hash' in -*Note Bourne Shell Builtins::) are retained by the child. +*note Bourne Shell Builtins::) are retained by the child. Most versions of Unix make this a part of the operating system's command execution mechanism. If the first line of a script begins with @@ -2245,8 +2365,8 @@ File: bashref.info, Node: Shell Builtin Commands, Next: Shell Variables, Prev * Bourne Shell Builtins:: Builtin commands inherited from the Bourne Shell. * Bash Builtins:: Table of builtins specific to Bash. -* The Set Builtin:: This builtin is so overloaded it - deserves its own section. +* Modifying Shell Behavior:: Builtins to modify shell attributes and + optional behavior. * Special Builtins:: Builtin commands classified specially by POSIX. @@ -2348,11 +2468,11 @@ standard. exec [-cl] [-a NAME] [COMMAND [ARGUMENTS]] If COMMAND is supplied, it replaces the shell without creating a new process. If the `-l' option is supplied, the shell places a - dash at the beginning of the zeroth arg passed to COMMAND. This - is what the `login' program does. The `-c' option causes COMMAND - to be executed with an empty environment. If `-a' is supplied, - the shell passes NAME as the zeroth argument to COMMAND. If no - COMMAND is specified, redirections may be used to affect the + dash at the beginning of the zeroth argument passed to COMMAND. + This is what the `login' program does. The `-c' option causes + COMMAND to be executed with an empty environment. If `-a' is + supplied, the shell passes NAME as the zeroth argument to COMMAND. + If no COMMAND is specified, redirections may be used to affect the current shell environment. If there are no redirection errors, the return status is zero; otherwise the return status is non-zero. @@ -2447,19 +2567,20 @@ standard. current directory or an invalid option is supplied. `readonly' - readonly [-apf] [NAME[=VALUE]] ... + readonly [-aApf] [NAME[=VALUE]] ... Mark each NAME as readonly. The values of these names may not be changed by subsequent assignment. If the `-f' option is supplied, each NAME refers to a shell function. The `-a' option means each - NAME refers to an array variable. If no NAME arguments are given, - or if the `-p' option is supplied, a list of all readonly names is - printed. The `-p' option causes output to be displayed in a - format that may be reused as input. If a variable name is - followed by =VALUE, the value of the variable is set to VALUE. - The return status is zero unless an invalid option is supplied, - one of the NAME arguments is not a valid shell variable or - function name, or the `-f' option is supplied with a name that is - not a shell function. + NAME refers to an indexed array variable; the `-A' option means + each NAME refers to an associative array variable. If no NAME + arguments are given, or if the `-p' option is supplied, a list of + all readonly names is printed. The `-p' option causes output to + be displayed in a format that may be reused as input. If a + variable name is followed by =VALUE, the value of the variable is + set to VALUE. The return status is zero unless an invalid option + is supplied, one of the NAME arguments is not a valid shell + variable or function name, or the `-f' option is supplied with a + name that is not a shell function. `return' return [N] @@ -2477,10 +2598,10 @@ standard. `shift' shift [N] Shift the positional parameters to the left by N. The positional - parameters from N+1 ... `$#' are renamed to `$1' ... `$#'-N+1. - Parameters represented by the numbers `$#' to N+1 are unset. N - must be a non-negative number less than or equal to `$#'. If N is - zero or greater than `$#', the positional parameters are not + parameters from N+1 ... `$#' are renamed to `$1' ... `$#'-N. + Parameters represented by the numbers `$#' to `$#'-N+1 are unset. + N must be a non-negative number less than or equal to `$#'. If N + is zero or greater than `$#', the positional parameters are not changed. If N is not supplied, it is assumed to be 1. The return status is zero unless N is greater than `$#' or less than zero, non-zero otherwise. @@ -2489,7 +2610,7 @@ standard. `[' Evaluate a conditional expression EXPR. Each operator and operand must be a separate argument. Expressions are composed of the - primaries described below in *Note Bash Conditional Expressions::. + primaries described below in *note Bash Conditional Expressions::. `test' does not accept any options, nor does it accept and ignore an argument of `--' as signifying the end of options. @@ -2497,7 +2618,8 @@ standard. be a `]'. Expressions may be combined using the following operators, listed - in decreasing order of precedence. + in decreasing order of precedence. The evaluation depends on the + number of arguments; see below. `! EXPR' True if EXPR is false. @@ -2534,13 +2656,14 @@ standard. If the second argument is one of the binary conditional operators (*note Bash Conditional Expressions::), the result of the expression is the result of the binary test using the - first and third arguments as operands. If the first argument - is `!', the value is the negation of the two-argument test - using the second and third arguments. If the first argument - is exactly `(' and the third argument is exactly `)', the - result is the one-argument test of the second argument. - Otherwise, the expression is false. The `-a' and `-o' - operators are considered binary operators in this case. + first and third arguments as operands. The `-a' and `-o' + operators are considered binary operators when there are + three arguments. If the first argument is `!', the value is + the negation of the two-argument test using the second and + third arguments. If the first argument is exactly `(' and + the third argument is exactly `)', the result is the + one-argument test of the second argument. Otherwise, the + expression is false. 4 arguments If the first argument is `!', the result is the negation of @@ -2578,18 +2701,18 @@ standard. `for' command, `case' command, `select' command, every arithmetic `for' command, and before the first command executes in a shell function. Refer to the description of the `extglob' option to the - `shopt' builtin (*note Bash Builtins::) for details of its effect - on the `DEBUG' trap. If a SIGSPEC is `ERR', the command ARG is - executed whenever a simple command has a non-zero exit status, + `shopt' builtin (*note The Shopt Builtin::) for details of its + effect on the `DEBUG' trap. If a SIGSPEC is `ERR', the command ARG + is executed whenever a simple command has a non-zero exit status, subject to the following conditions. The `ERR' trap is not executed if the failed command is part of the command list immediately following an `until' or `while' keyword, part of the - test in an `if' statement, part of a `&&' or `||' list, or if the - command's return status is being inverted using `!'. These are - the same conditions obeyed by the `errexit' option. If a SIGSPEC - is `RETURN', the command ARG is executed each time a shell - function or a script executed with the `.' or `source' builtins - finishes executing. + test in an `if' statement, part of a command executed in a `&&' or + `||' list, or if the command's return status is being inverted + using `!'. These are the same conditions obeyed by the `errexit' + option. If a SIGSPEC is `RETURN', the command ARG is executed + each time a shell function or a script executed with the `.' or + `source' builtins finishes executing. Signals ignored upon entry to the shell cannot be trapped or reset. Trapped signals that are not being ignored are reset to their @@ -2625,7 +2748,7 @@ standard. zero unless a NAME is readonly.  -File: bashref.info, Node: Bash Builtins, Next: The Set Builtin, Prev: Bourne Shell Builtins, Up: Shell Builtin Commands +File: bashref.info, Node: Bash Builtins, Next: Modifying Shell Behavior, Prev: Bourne Shell Builtins, Up: Shell Builtin Commands 4.2 Bash Builtin Commands ========================= @@ -2641,7 +2764,7 @@ POSIX standard. of aliases on the standard output in a form that allows them to be reused as input. If arguments are supplied, an alias is defined for each NAME whose VALUE is given. If no VALUE is given, the name - and value of the alias is printed. Aliases are described in *Note + and value of the alias is printed. Aliases are described in *note Aliases::. `bind' @@ -2655,11 +2778,12 @@ POSIX standard. Display current Readline (*note Command Line Editing::) key and function bindings, bind a key sequence to a Readline function or macro, or set a Readline variable. Each non-option argument is a - command as it would appear in a a Readline initialization file + command as it would appear in a Readline initialization file (*note Readline Init File::), but each binding or command must be passed as a separate argument; e.g., - `"\C-x\C-r":re-read-init-file'. Options, if supplied, have the - following meanings: + `"\C-x\C-r":re-read-init-file'. + + Options, if supplied, have the following meanings: `-m KEYMAP' Use KEYMAP as the keymap to be affected by the subsequent @@ -2710,7 +2834,12 @@ POSIX standard. `-x KEYSEQ:SHELL-COMMAND' Cause SHELL-COMMAND to be executed whenever KEYSEQ is entered. - + When SHELL-COMMAND is executed, the shell sets the + `READLINE_LINE' variable to the contents of the Readline line + buffer and the `READLINE_POINT' variable to the current + location of the insertion point. If the executed command + changes the value of `READLINE_LINE' or `READLINE_POINT', + those new values will be reflected in the editing state. The return status is zero unless an invalid option is supplied or an error occurs. @@ -2760,23 +2889,35 @@ POSIX standard. non-zero if not. `declare' - declare [-afFirtx] [-p] [NAME[=VALUE] ...] + declare [-aAfFilrtux] [-p] [NAME[=VALUE] ...] Declare variables and give them attributes. If no NAMEs are given, then display the values of variables instead. The `-p' option will display the attributes and values of each - NAME. When `-p' is used, additional options are ignored. The - `-F' option inhibits the display of function definitions; only the - function name and attributes are printed. If the `extdebug' shell - option is enabled using `shopt' (*note Bash Builtins::), the - source file name and line number where the function is defined are - displayed as well. `-F' implies `-f'. The following options can - be used to restrict output to variables with the specified + NAME. When `-p' is used with NAME arguments, additional options + are ignored. + + When `-p' is supplied without NAME arguments, `declare' will + display the attributes and values of all variables having the + attributes specified by the additional options. If no other + options are supplied with `-p', `declare' will display the + attributes and values of all shell variables. The `-f' option + will restrict the display to shell functions. + + The `-F' option inhibits the display of function definitions; only + the function name and attributes are printed. If the `extdebug' + shell option is enabled using `shopt' (*note The Shopt Builtin::), + the source file name and line number where the function is defined + are displayed as well. `-F' implies `-f'. The following options + can be used to restrict output to variables with the specified attributes or to give variables attributes: `-a' - Each NAME is an array variable (*note Arrays::). + Each NAME is an indexed array variable (*note Arrays::). + + `-A' + Each NAME is an associative array variable (*note Arrays::). `-f' Use function names only. @@ -2786,6 +2927,11 @@ POSIX standard. evaluation (*note Shell Arithmetic::) is performed when the variable is assigned a value. + `-l' + When the variable is assigned a value, all upper-case + characters are converted to lower-case. The upper-case + attribute is disabled. + `-r' Make NAMEs readonly. These names cannot then be assigned values by subsequent assignment statements or unset. @@ -2795,14 +2941,21 @@ POSIX standard. inherit the `DEBUG' and `RETURN' traps from the calling shell. The trace attribute has no special meaning for variables. + `-u' + When the variable is assigned a value, all lower-case + characters are converted to upper-case. The lower-case + attribute is disabled. + `-x' Mark each NAME for export to subsequent commands via the environment. - Using `+' instead of `-' turns off the attribute instead. When - used in a function, `declare' makes each NAME local, as with the - `local' command. If a variable name is followed by =VALUE, the - value of the variable is set to VALUE. + Using `+' instead of `-' turns off the attribute instead, with the + exceptions that `+a' may not be used to destroy an array variable + and `+r' will not remove the readonly attribute. When used in a + function, `declare' makes each NAME local, as with the `local' + command. If a variable name is followed by =VALUE, the value of + the variable is set to VALUE. The return status is zero unless an invalid option is encountered, an attempt is made to define a function using `-f foo=bar', an @@ -2835,7 +2988,7 @@ POSIX standard. backspace `\c' - suppress trailing newline + suppress further output `\e' escape @@ -2867,7 +3020,7 @@ POSIX standard. HH (one or two hex digits) `enable' - enable [-n] [-p] [-f FILENAME] [-ads] [NAME ...] + enable [-a] [-dnps] [-f FILENAME] [NAME ...] Enable and disable builtin shell commands. Disabling a builtin allows a disk command which has the same name as a shell builtin to be executed without specifying a full pathname, even though the @@ -2895,19 +3048,30 @@ POSIX standard. there is an error loading a new builtin from a shared object. `help' - help [-s] [PATTERN] + help [-dms] [PATTERN] Display helpful information about builtin commands. If PATTERN is specified, `help' gives detailed help on all commands matching - PATTERN, otherwise a list of the builtins is printed. The `-s' - option restricts the information displayed to a short usage - synopsis. The return status is zero unless no command matches - PATTERN. + PATTERN, otherwise a list of the builtins is printed. + + Options, if supplied, have the following meanings: + + `-d' + Display a short description of each PATTERN + + `-m' + Display the description of each PATTERN in a manpage-like + format + + `-s' + Display only a short usage synopsis for each PATTERN + + The return status is zero unless no command matches PATTERN. `let' let EXPRESSION [EXPRESSION] The `let' builtin allows arithmetic to be performed on shell variables. Each EXPRESSION is evaluated according to the rules - given below in *Note Shell Arithmetic::. If the last EXPRESSION + given below in *note Shell Arithmetic::. If the last EXPRESSION evaluates to 0, `let' returns 1; otherwise 0 is returned. `local' @@ -2924,8 +3088,49 @@ POSIX standard. logout [N] Exit a login shell, returning a status of N to the shell's parent. +`mapfile' + mapfile [-n COUNT] [-O ORIGIN] [-s COUNT] [-t] [-u FD] [ + -C CALLBACK] [-c QUANTUM] [ARRAY] + Read lines from the standard input into array variable ARRAY, or + from file descriptor FD if the `-u' option is supplied. The + variable `MAPFILE' is the default ARRAY. Options, if supplied, + have the following meanings: + `-n' + Copy at most COUNT lines. If COUNT is 0, all lines are + copied. + + `-O' + Begin assigning to ARRAY at index ORIGIN. The default index + is 0. + + `-s' + Discard the first COUNT lines read. + + `-t' + Remove a trailing line from each line read. + + `-u' + Read lines from file descriptor FD instead of the standard + input. + + `-C' + Evaluate CALLBACK each time QUANTUMP lines are read. The + `-c' option specifies QUANTUM. + + `-c' + Specify the number of lines read between each call to + CALLBACK. + + If `-C' is specified without `-c', the default quantum is 5000. + + If not supplied with an explicit origin, `mapfile' will clear ARRAY + before assigning to it. + + `mapfile' returns successfully unless an invalid option or option + argument is supplied, or ARRAY is invalid or unassignable. + `printf' - `printf' [-v VAR] FORMAT [ARGUMENTS] + printf [-v VAR] FORMAT [ARGUMENTS] Write the formatted ARGUMENTS to the standard output under the control of the FORMAT. The FORMAT is a character string which contains three types of objects: plain characters, which are @@ -2950,7 +3155,7 @@ POSIX standard. success, non-zero on failure. `read' - read [-ers] [-a ANAME] [-d DELIM] [-n NCHARS] [-p PROMPT] [-t TIMEOUT] [-u FD] [NAME ...] + read [-ers] [-a ANAME] [-d DELIM] [-i TEXT] [-n NCHARS] [-p PROMPT] [-t TIMEOUT] [-u FD] [NAME ...] One line is read from the standard input, or from the file descriptor FD supplied as an argument to the `-u' option, and the first word is assigned to the first NAME, the second word to the @@ -2963,9 +3168,10 @@ POSIX standard. next character read and for line continuation. If no names are supplied, the line read is assigned to the variable `REPLY'. The return code is zero, unless end-of-file is encountered, `read' - times out, or an invalid file descriptor is supplied as the - argument to `-u'. Options, if supplied, have the following - meanings: + times out (in which case the return code is greater than 128), or + an invalid file descriptor is supplied as the argument to `-u'. + + Options, if supplied, have the following meanings: `-a ANAME' The words are assigned to sequential indices of the array @@ -2979,7 +3185,12 @@ POSIX standard. `-e' Readline (*note Command Line Editing::) is used to obtain the - line. + line. Readline uses the current (or default, if line editing + was not previously active) editing settings. + + `-i TEXT' + If Readline is being used to read the line, TEXT is placed + into the editing buffer before editing begins. `-n NCHARS' `read' returns after reading NCHARS characters rather than @@ -3002,355 +3213,137 @@ POSIX standard. `-t TIMEOUT' Cause `read' to time out and return failure if a complete - line of input is not read within TIMEOUT seconds. This - option has no effect if `read' is not reading input from the - terminal or a pipe. + line of input is not read within TIMEOUT seconds. TIMEOUT + may be a decimal number with a fractional portion following + the decimal point. This option is only effective if `read' + is reading input from a terminal, pipe, or other special + file; it has no effect when reading from regular files. If + TIMEOUT is 0, `read' returns success if input is available on + the specified file descriptor, failure otherwise. The exit + status is greater than 128 if the timeout is exceeded. `-u FD' Read input from file descriptor FD. -`shopt' - shopt [-pqsu] [-o] [OPTNAME ...] - Toggle the values of variables controlling optional shell behavior. - With no options, or with the `-p' option, a list of all settable - options is displayed, with an indication of whether or not each is - set. The `-p' option causes output to be displayed in a form that - may be reused as input. Other options have the following meanings: +`source' + source FILENAME + A synonym for `.' (*note Bourne Shell Builtins::). - `-s' - Enable (set) each OPTNAME. +`type' + type [-afptP] [NAME ...] + For each NAME, indicate how it would be interpreted if used as a + command name. - `-u' - Disable (unset) each OPTNAME. + If the `-t' option is used, `type' prints a single word which is + one of `alias', `function', `builtin', `file' or `keyword', if + NAME is an alias, shell function, shell builtin, disk file, or + shell reserved word, respectively. If the NAME is not found, then + nothing is printed, and `type' returns a failure status. - `-q' - Suppresses normal output; the return status indicates whether - the OPTNAME is set or unset. If multiple OPTNAME arguments - are given with `-q', the return status is zero if all - OPTNAMES are enabled; non-zero otherwise. + If the `-p' option is used, `type' either returns the name of the + disk file that would be executed, or nothing if `-t' would not + return `file'. - `-o' - Restricts the values of OPTNAME to be those defined for the - `-o' option to the `set' builtin (*note The Set Builtin::). + The `-P' option forces a path search for each NAME, even if `-t' + would not return `file'. - If either `-s' or `-u' is used with no OPTNAME arguments, the - display is limited to those options which are set or unset, - respectively. + If a command is hashed, `-p' and `-P' print the hashed value, not + necessarily the file that appears first in `$PATH'. - Unless otherwise noted, the `shopt' options are disabled (off) by - default. + If the `-a' option is used, `type' returns all of the places that + contain an executable named FILE. This includes aliases and + functions, if and only if the `-p' option is not also used. - The return status when listing options is zero if all OPTNAMES are - enabled, non-zero otherwise. When setting or unsetting options, - the return status is zero unless an OPTNAME is not a valid shell - option. + If the `-f' option is used, `type' does not attempt to find shell + functions, as with the `command' builtin. - The list of `shopt' options is: - `cdable_vars' - If this is set, an argument to the `cd' builtin command that - is not a directory is assumed to be the name of a variable - whose value is the directory to change to. + The return status is zero if all of the NAMES are found, non-zero + if any are not found. - `cdspell' - If set, minor errors in the spelling of a directory component - in a `cd' command will be corrected. The errors checked for - are transposed characters, a missing character, and a - character too many. If a correction is found, the corrected - path is printed, and the command proceeds. This option is - only used by interactive shells. +`typeset' + typeset [-afFrxi] [-p] [NAME[=VALUE] ...] + The `typeset' command is supplied for compatibility with the Korn + shell; however, it has been deprecated in favor of the `declare' + builtin command. - `checkhash' - If this is set, Bash checks that a command found in the hash - table exists before trying to execute it. If a hashed - command no longer exists, a normal path search is performed. +`ulimit' + ulimit [-abcdefilmnpqrstuvxHST] [LIMIT] + `ulimit' provides control over the resources available to processes + started by the shell, on systems that allow such control. If an + option is given, it is interpreted as follows: + `-S' + Change and report the soft limit associated with a resource. - `checkwinsize' - If set, Bash checks the window size after each command and, - if necessary, updates the values of `LINES' and `COLUMNS'. + `-H' + Change and report the hard limit associated with a resource. - `cmdhist' - If set, Bash attempts to save all lines of a multiple-line - command in the same history entry. This allows easy - re-editing of multi-line commands. + `-a' + All current limits are reported. - `dotglob' - If set, Bash includes filenames beginning with a `.' in the - results of filename expansion. + `-b' + The maximum socket buffer size. - `execfail' - If this is set, a non-interactive shell will not exit if it - cannot execute the file specified as an argument to the `exec' - builtin command. An interactive shell does not exit if `exec' - fails. + `-c' + The maximum size of core files created. - `expand_aliases' - If set, aliases are expanded as described below under Aliases, - *Note Aliases::. This option is enabled by default for - interactive shells. + `-d' + The maximum size of a process's data segment. - `extdebug' - If set, behavior intended for use by debuggers is enabled: + `-e' + The maximum scheduling priority ("nice"). - 1. The `-F' option to the `declare' builtin (*note Bash - Builtins::) displays the source file name and line - number corresponding to each function name supplied as - an argument. + `-f' + The maximum size of files written by the shell and its + children. - 2. If the command run by the `DEBUG' trap returns a - non-zero value, the next command is skipped and not - executed. + `-i' + The maximum number of pending signals. - 3. If the command run by the `DEBUG' trap returns a value - of 2, and the shell is executing in a subroutine (a - shell function or a shell script executed by the `.' or - `source' builtins), a call to `return' is simulated. + `-l' + The maximum size that may be locked into memory. - 4. `BASH_ARGC' and `BASH_ARGV' are updated as described in - their descriptions (*note Bash Variables::). + `-m' + The maximum resident set size. - 5. Function tracing is enabled: command substitution, - shell functions, and subshells invoked with `( COMMAND - )' inherit the `DEBUG' and `RETURN' traps. + `-n' + The maximum number of open file descriptors. - 6. Error tracing is enabled: command substitution, shell - functions, and subshells invoked with `( COMMAND )' - inherit the `ERROR' trap. + `-p' + The pipe buffer size. - `extglob' - If set, the extended pattern matching features described above - (*note Pattern Matching::) are enabled. + `-q' + The maximum number of bytes in POSIX message queues. - `extquote' - If set, `$'STRING'' and `$"STRING"' quoting is performed - within `${PARAMETER}' expansions enclosed in double quotes. - This option is enabled by default. + `-r' + The maximum real-time scheduling priority. - `failglob' - If set, patterns which fail to match filenames during - pathname expansion result in an expansion error. + `-s' + The maximum stack size. - `force_fignore' - If set, the suffixes specified by the `FIGNORE' shell variable - cause words to be ignored when performing word completion - even if the ignored words are the only possible completions. - *Note Bash Variables::, for a description of `FIGNORE'. This - option is enabled by default. + `-t' + The maximum amount of cpu time in seconds. - `gnu_errfmt' - If set, shell error messages are written in the standard GNU - error message format. + `-u' + The maximum number of processes available to a single user. - `histappend' - If set, the history list is appended to the file named by the - value of the `HISTFILE' variable when the shell exits, rather - than overwriting the file. + `-v' + The maximum amount of virtual memory available to the process. - `histreedit' - If set, and Readline is being used, a user is given the - opportunity to re-edit a failed history substitution. + `-x' + The maximum number of file locks. - `histverify' - If set, and Readline is being used, the results of history - substitution are not immediately passed to the shell parser. - Instead, the resulting line is loaded into the Readline - editing buffer, allowing further modification. - - `hostcomplete' - If set, and Readline is being used, Bash will attempt to - perform hostname completion when a word containing a `@' is - being completed (*note Commands For Completion::). This - option is enabled by default. - - `huponexit' - If set, Bash will send `SIGHUP' to all jobs when an - interactive login shell exits (*note Signals::). - - `interactive_comments' - Allow a word beginning with `#' to cause that word and all - remaining characters on that line to be ignored in an - interactive shell. This option is enabled by default. - - `lithist' - If enabled, and the `cmdhist' option is enabled, multi-line - commands are saved to the history with embedded newlines - rather than using semicolon separators where possible. - - `login_shell' - The shell sets this option if it is started as a login shell - (*note Invoking Bash::). The value may not be changed. - - `mailwarn' - If set, and a file that Bash is checking for mail has been - accessed since the last time it was checked, the message - `"The mail in MAILFILE has been read"' is displayed. - - `no_empty_cmd_completion' - If set, and Readline is being used, Bash will not attempt to - search the `PATH' for possible completions when completion is - attempted on an empty line. - - `nocaseglob' - If set, Bash matches filenames in a case-insensitive fashion - when performing filename expansion. - - `nocasematch' - If set, Bash matches patterns in a case-insensitive fashion - when performing matching while executing `case' or `[[' - conditional commands. - - `nullglob' - If set, Bash allows filename patterns which match no files to - expand to a null string, rather than themselves. - - `progcomp' - If set, the programmable completion facilities (*note - Programmable Completion::) are enabled. This option is - enabled by default. - - `promptvars' - If set, prompt strings undergo parameter expansion, command - substitution, arithmetic expansion, and quote removal after - being expanded as described below (*note Printing a Prompt::). - This option is enabled by default. - - `restricted_shell' - The shell sets this option if it is started in restricted mode - (*note The Restricted Shell::). The value may not be changed. - This is not reset when the startup files are executed, - allowing the startup files to discover whether or not a shell - is restricted. - - `shift_verbose' - If this is set, the `shift' builtin prints an error message - when the shift count exceeds the number of positional - parameters. - - `sourcepath' - If set, the `source' builtin uses the value of `PATH' to find - the directory containing the file supplied as an argument. - This option is enabled by default. - - `xpg_echo' - If set, the `echo' builtin expands backslash-escape sequences - by default. - - - The return status when listing options is zero if all OPTNAMES are - enabled, non-zero otherwise. When setting or unsetting options, - the return status is zero unless an OPTNAME is not a valid shell - option. - -`source' - source FILENAME - A synonym for `.' (*note Bourne Shell Builtins::). - -`type' - type [-afptP] [NAME ...] - For each NAME, indicate how it would be interpreted if used as a - command name. - - If the `-t' option is used, `type' prints a single word which is - one of `alias', `function', `builtin', `file' or `keyword', if - NAME is an alias, shell function, shell builtin, disk file, or - shell reserved word, respectively. If the NAME is not found, then - nothing is printed, and `type' returns a failure status. - - If the `-p' option is used, `type' either returns the name of the - disk file that would be executed, or nothing if `-t' would not - return `file'. - - The `-P' option forces a path search for each NAME, even if `-t' - would not return `file'. - - If a command is hashed, `-p' and `-P' print the hashed value, not - necessarily the file that appears first in `$PATH'. - - If the `-a' option is used, `type' returns all of the places that - contain an executable named FILE. This includes aliases and - functions, if and only if the `-p' option is not also used. - - If the `-f' option is used, `type' does not attempt to find shell - functions, as with the `command' builtin. - - The return status is zero if any of the NAMES are found, non-zero - if none are found. - -`typeset' - typeset [-afFrxi] [-p] [NAME[=VALUE] ...] - The `typeset' command is supplied for compatibility with the Korn - shell; however, it has been deprecated in favor of the `declare' - builtin command. - -`ulimit' - ulimit [-acdefilmnpqrstuvxSH] [LIMIT] - `ulimit' provides control over the resources available to processes - started by the shell, on systems that allow such control. If an - option is given, it is interpreted as follows: - `-S' - Change and report the soft limit associated with a resource. - - `-H' - Change and report the hard limit associated with a resource. - - `-a' - All current limits are reported. - - `-c' - The maximum size of core files created. - - `-d' - The maximum size of a process's data segment. - - `-e' - The maximum scheduling priority ("nice"). - - `-f' - The maximum size of files written by the shell and its - children. - - `-i' - The maximum number of pending signals. - - `-l' - The maximum size that may be locked into memory. - - `-m' - The maximum resident set size. - - `-n' - The maximum number of open file descriptors. - - `-p' - The pipe buffer size. - - `-q' - The maximum number of bytes in POSIX message queues. - - `-r' - The maximum real-time scheduling priority. - - `-s' - The maximum stack size. - - `-t' - The maximum amount of cpu time in seconds. - - `-u' - The maximum number of processes available to a single user. - - `-v' - The maximum amount of virtual memory available to the process. - - `-x' - The maximum number of file locks. + `-T' + The maximum number of threads. If LIMIT is given, it is the new value of the specified resource; the special LIMIT values `hard', `soft', and `unlimited' stand for the current hard limit, the current soft limit, and no limit, - respectively. Otherwise, the current value of the soft limit for - the specified resource is printed, unless the `-H' option is + respectively. A hard limit cannot be increased by a non-root user + once it is set; a soft limit may be increased up to the value of + the hard limit. Otherwise, the current value of the soft limit + for the specified resource is printed, unless the `-H' option is supplied. When setting new limits, if neither `-H' nor `-S' is supplied, both the hard and soft limits are set. If no option is given, then `-f' is assumed. Values are in 1024-byte increments, @@ -3364,19 +3357,34 @@ POSIX standard. unalias [-a] [NAME ... ] Remove each NAME from the list of aliases. If `-a' is supplied, - all aliases are removed. Aliases are described in *Note Aliases::. + all aliases are removed. Aliases are described in *note Aliases::.  -File: bashref.info, Node: The Set Builtin, Next: Special Builtins, Prev: Bash Builtins, Up: Shell Builtin Commands +File: bashref.info, Node: Modifying Shell Behavior, Next: Special Builtins, Prev: Bash Builtins, Up: Shell Builtin Commands -4.3 The Set Builtin -=================== +4.3 Modifying Shell Behavior +============================ + +* Menu: -This builtin is so complicated that it deserves its own section. +* The Set Builtin:: Change the values of shell attributes and + positional parameters. +* The Shopt Builtin:: Modify shell optional behavior. + + +File: bashref.info, Node: The Set Builtin, Next: The Shopt Builtin, Up: Modifying Shell Behavior + +4.3.1 The Set Builtin +--------------------- + +This builtin is so complicated that it deserves its own section. `set' +allows you to change the values of shell options and set the positional +parameters, or to display the names and values of shell variables. `set' - set [--abefhkmnptuvxBCHP] [-o OPTION] [ARGUMENT ...] + set [--abefhkmnptuvxBCEHPT] [-o OPTION] [ARGUMENT ...] + set [+abefhkmnptuvxBCEHPT] [+o OPTION] [ARGUMENT ...] If no options or arguments are supplied, `set' displays the names and values of all shell variables and functions, sorted according @@ -3402,8 +3410,12 @@ This builtin is so complicated that it deserves its own section. Commands::) exits with a non-zero status, unless the command that fails is part of the command list immediately following a `while' or `until' keyword, part of the test in an `if' - statement, part of a `&&' or `||' list, or if the command's - return status is being inverted using `!'. A trap on `ERR', + statement, part of a command executed in a `&&' or `||b' list, + any command in a pipeline but the last, or if the command's + return status is being inverted using `!'. Failing simple + commands that are part of shell functions or command lists + enclosed in braces or parentheses satisfying the above + conditions do not cause the shell to exit. A trap on `ERR', if set, is executed before the shell exits. `-f' @@ -3437,7 +3449,8 @@ This builtin is so complicated that it deserves its own section. `emacs' Use an `emacs'-style line editing interface (*note - Command Line Editing::). + Command Line Editing::). This also affects the editing + interface used for `read -e'. `errexit' Same as `-e'. @@ -3455,7 +3468,7 @@ This builtin is so complicated that it deserves its own section. Same as `-H'. `history' - Enable command history, as described in *Note Bash + Enable command history, as described in *note Bash History Facilities::. This option is on by default in interactive shells. @@ -3498,126 +3511,397 @@ This builtin is so complicated that it deserves its own section. status, or zero if all commands in the pipeline exit successfully. This option is disabled by default. - `posix' - Change the behavior of Bash where the default operation - differs from the POSIX standard to match the standard - (*note Bash POSIX Mode::). This is intended to make - Bash behave as a strict superset of that standard. + `posix' + Change the behavior of Bash where the default operation + differs from the POSIX standard to match the standard + (*note Bash POSIX Mode::). This is intended to make + Bash behave as a strict superset of that standard. + + `privileged' + Same as `-p'. + + `verbose' + Same as `-v'. + + `vi' + Use a `vi'-style line editing interface. This also + affects the editing interface used for `read -e'. + + `xtrace' + Same as `-x'. + + `-p' + Turn on privileged mode. In this mode, the `$BASH_ENV' and + `$ENV' files are not processed, shell functions are not + inherited from the environment, and the `SHELLOPTS', `CDPATH' + and `GLOBIGNORE' variables, if they appear in the + environment, are ignored. If the shell is started with the + effective user (group) id not equal to the real user (group) + id, and the `-p' option is not supplied, these actions are + taken and the effective user id is set to the real user id. + If the `-p' option is supplied at startup, the effective user + id is not reset. Turning this option off causes the + effective user and group ids to be set to the real user and + group ids. + + `-t' + Exit after reading and executing one command. + + `-u' + Treat unset variables as an error when performing parameter + expansion. An error message will be written to the standard + error, and a non-interactive shell will exit. + + `-v' + Print shell input lines as they are read. + + `-x' + Print a trace of simple commands, `for' commands, `case' + commands, `select' commands, and arithmetic `for' commands + and their arguments or associated word lists after they are + expanded and before they are executed. The value of the `PS4' + variable is expanded and the resultant value is printed before + the command and its expanded arguments. + + `-B' + The shell will perform brace expansion (*note Brace + Expansion::). This option is on by default. + + `-C' + Prevent output redirection using `>', `>&', and `<>' from + overwriting existing files. + + `-E' + If set, any trap on `ERR' is inherited by shell functions, + command substitutions, and commands executed in a subshell + environment. The `ERR' trap is normally not inherited in + such cases. + + `-H' + Enable `!' style history substitution (*note History + Interaction::). This option is on by default for interactive + shells. + + `-P' + If set, do not follow symbolic links when performing commands + such as `cd' which change the current directory. The + physical directory is used instead. By default, Bash follows + the logical chain of directories when performing commands + which change the current directory. + + For example, if `/usr/sys' is a symbolic link to + `/usr/local/sys' then: + $ cd /usr/sys; echo $PWD + /usr/sys + $ cd ..; pwd + /usr + + If `set -P' is on, then: + $ cd /usr/sys; echo $PWD + /usr/local/sys + $ cd ..; pwd + /usr/local + + `-T' + If set, any trap on `DEBUG' and `RETURN' are inherited by + shell functions, command substitutions, and commands executed + in a subshell environment. The `DEBUG' and `RETURN' traps + are normally not inherited in such cases. + + `--' + If no arguments follow this option, then the positional + parameters are unset. Otherwise, the positional parameters + are set to the ARGUMENTS, even if some of them begin with a + `-'. + + `-' + Signal the end of options, cause all remaining ARGUMENTS to + be assigned to the positional parameters. The `-x' and `-v' + options are turned off. If there are no arguments, the + positional parameters remain unchanged. + + Using `+' rather than `-' causes these options to be turned off. + The options can also be used upon invocation of the shell. The + current set of options may be found in `$-'. + + The remaining N ARGUMENTS are positional parameters and are + assigned, in order, to `$1', `$2', ... `$N'. The special + parameter `#' is set to N. + + The return status is always zero unless an invalid option is + supplied. + + +File: bashref.info, Node: The Shopt Builtin, Prev: The Set Builtin, Up: Modifying Shell Behavior + +4.3.2 The Shopt Builtin +----------------------- + +This builtin allows you to change additional shell optional behavior. + +`shopt' + shopt [-pqsu] [-o] [OPTNAME ...] + Toggle the values of variables controlling optional shell behavior. + With no options, or with the `-p' option, a list of all settable + options is displayed, with an indication of whether or not each is + set. The `-p' option causes output to be displayed in a form that + may be reused as input. Other options have the following meanings: + + `-s' + Enable (set) each OPTNAME. + + `-u' + Disable (unset) each OPTNAME. + + `-q' + Suppresses normal output; the return status indicates whether + the OPTNAME is set or unset. If multiple OPTNAME arguments + are given with `-q', the return status is zero if all + OPTNAMES are enabled; non-zero otherwise. + + `-o' + Restricts the values of OPTNAME to be those defined for the + `-o' option to the `set' builtin (*note The Set Builtin::). + + If either `-s' or `-u' is used with no OPTNAME arguments, the + display is limited to those options which are set or unset, + respectively. + + Unless otherwise noted, the `shopt' options are disabled (off) by + default. + + The return status when listing options is zero if all OPTNAMES are + enabled, non-zero otherwise. When setting or unsetting options, + the return status is zero unless an OPTNAME is not a valid shell + option. + + The list of `shopt' options is: + `autocd' + If set, a command name that is the name of a directory is + executed as if it were the argument to the `cd' command. + This option is only used by interactive shells. + + `cdable_vars' + If this is set, an argument to the `cd' builtin command that + is not a directory is assumed to be the name of a variable + whose value is the directory to change to. + + `cdspell' + If set, minor errors in the spelling of a directory component + in a `cd' command will be corrected. The errors checked for + are transposed characters, a missing character, and a + character too many. If a correction is found, the corrected + path is printed, and the command proceeds. This option is + only used by interactive shells. + + `checkhash' + If this is set, Bash checks that a command found in the hash + table exists before trying to execute it. If a hashed + command no longer exists, a normal path search is performed. + + `checkjobs' + If set, Bash lists the status of any stopped and running jobs + before exiting an interactive shell. If any jobs are + running, this causes the exit to be deferred until a second + exit is attempted without an intervening command (*note Job + Control::). The shell always postpones exiting if any jobs + are stopped. + + `checkwinsize' + If set, Bash checks the window size after each command and, + if necessary, updates the values of `LINES' and `COLUMNS'. + + `cmdhist' + If set, Bash attempts to save all lines of a multiple-line + command in the same history entry. This allows easy + re-editing of multi-line commands. + + `compat31' + If set, Bash changes its behavior to that of version 3.1 with + respect to quoted arguments to the conditional command's =~ + operator. + + `dirspell' + If set, Bash attempts spelling correction on directory names + during word completion if the directory name initially + supplied does not exist. + + `dotglob' + If set, Bash includes filenames beginning with a `.' in the + results of filename expansion. + + `execfail' + If this is set, a non-interactive shell will not exit if it + cannot execute the file specified as an argument to the `exec' + builtin command. An interactive shell does not exit if `exec' + fails. + + `expand_aliases' + If set, aliases are expanded as described below under Aliases, + *note Aliases::. This option is enabled by default for + interactive shells. + + `extdebug' + If set, behavior intended for use by debuggers is enabled: + + 1. The `-F' option to the `declare' builtin (*note Bash + Builtins::) displays the source file name and line + number corresponding to each function name supplied as + an argument. + + 2. If the command run by the `DEBUG' trap returns a + non-zero value, the next command is skipped and not + executed. + + 3. If the command run by the `DEBUG' trap returns a value + of 2, and the shell is executing in a subroutine (a + shell function or a shell script executed by the `.' or + `source' builtins), a call to `return' is simulated. + + 4. `BASH_ARGC' and `BASH_ARGV' are updated as described in + their descriptions (*note Bash Variables::). + + 5. Function tracing is enabled: command substitution, + shell functions, and subshells invoked with `( COMMAND + )' inherit the `DEBUG' and `RETURN' traps. + + 6. Error tracing is enabled: command substitution, shell + functions, and subshells invoked with `( COMMAND )' + inherit the `ERROR' trap. + + `extglob' + If set, the extended pattern matching features described above + (*note Pattern Matching::) are enabled. + + `extquote' + If set, `$'STRING'' and `$"STRING"' quoting is performed + within `${PARAMETER}' expansions enclosed in double quotes. + This option is enabled by default. + + `failglob' + If set, patterns which fail to match filenames during + pathname expansion result in an expansion error. + + `force_fignore' + If set, the suffixes specified by the `FIGNORE' shell variable + cause words to be ignored when performing word completion + even if the ignored words are the only possible completions. + *Note Bash Variables::, for a description of `FIGNORE'. This + option is enabled by default. + + `globstar' + If set, the pattern `**' used in a filename expansion context + will match a files and zero or more directories and + subdirectories. If the pattern is followed by a `/', only + directories and subdirectories match. - `privileged' - Same as `-p'. + `gnu_errfmt' + If set, shell error messages are written in the standard GNU + error message format. - `verbose' - Same as `-v'. + `histappend' + If set, the history list is appended to the file named by the + value of the `HISTFILE' variable when the shell exits, rather + than overwriting the file. - `vi' - Use a `vi'-style line editing interface. + `histreedit' + If set, and Readline is being used, a user is given the + opportunity to re-edit a failed history substitution. - `xtrace' - Same as `-x'. + `histverify' + If set, and Readline is being used, the results of history + substitution are not immediately passed to the shell parser. + Instead, the resulting line is loaded into the Readline + editing buffer, allowing further modification. - `-p' - Turn on privileged mode. In this mode, the `$BASH_ENV' and - `$ENV' files are not processed, shell functions are not - inherited from the environment, and the `SHELLOPTS' variable, - if it appears in the environment, is ignored. If the shell - is started with the effective user (group) id not equal to the - real user (group) id, and the `-p' option is not supplied, - these actions are taken and the effective user id is set to - the real user id. If the `-p' option is supplied at startup, - the effective user id is not reset. Turning this option off - causes the effective user and group ids to be set to the real - user and group ids. + `hostcomplete' + If set, and Readline is being used, Bash will attempt to + perform hostname completion when a word containing a `@' is + being completed (*note Commands For Completion::). This + option is enabled by default. - `-t' - Exit after reading and executing one command. + `huponexit' + If set, Bash will send `SIGHUP' to all jobs when an + interactive login shell exits (*note Signals::). - `-u' - Treat unset variables as an error when performing parameter - expansion. An error message will be written to the standard - error, and a non-interactive shell will exit. + `interactive_comments' + Allow a word beginning with `#' to cause that word and all + remaining characters on that line to be ignored in an + interactive shell. This option is enabled by default. - `-v' - Print shell input lines as they are read. + `lithist' + If enabled, and the `cmdhist' option is enabled, multi-line + commands are saved to the history with embedded newlines + rather than using semicolon separators where possible. - `-x' - Print a trace of simple commands, `for' commands, `case' - commands, `select' commands, and arithmetic `for' commands - and their arguments or associated word lists after they are - expanded and before they are executed. The value of the `PS4' - variable is expanded and the resultant value is printed before - the command and its expanded arguments. + `login_shell' + The shell sets this option if it is started as a login shell + (*note Invoking Bash::). The value may not be changed. - `-B' - The shell will perform brace expansion (*note Brace - Expansion::). This option is on by default. + `mailwarn' + If set, and a file that Bash is checking for mail has been + accessed since the last time it was checked, the message + `"The mail in MAILFILE has been read"' is displayed. - `-C' - Prevent output redirection using `>', `>&', and `<>' from - overwriting existing files. + `no_empty_cmd_completion' + If set, and Readline is being used, Bash will not attempt to + search the `PATH' for possible completions when completion is + attempted on an empty line. - `-E' - If set, any trap on `ERR' is inherited by shell functions, - command substitutions, and commands executed in a subshell - environment. The `ERR' trap is normally not inherited in - such cases. + `nocaseglob' + If set, Bash matches filenames in a case-insensitive fashion + when performing filename expansion. - `-H' - Enable `!' style history substitution (*note History - Interaction::). This option is on by default for interactive - shells. + `nocasematch' + If set, Bash matches patterns in a case-insensitive fashion + when performing matching while executing `case' or `[[' + conditional commands. - `-P' - If set, do not follow symbolic links when performing commands - such as `cd' which change the current directory. The - physical directory is used instead. By default, Bash follows - the logical chain of directories when performing commands - which change the current directory. + `nullglob' + If set, Bash allows filename patterns which match no files to + expand to a null string, rather than themselves. - For example, if `/usr/sys' is a symbolic link to - `/usr/local/sys' then: - $ cd /usr/sys; echo $PWD - /usr/sys - $ cd ..; pwd - /usr + `progcomp' + If set, the programmable completion facilities (*note + Programmable Completion::) are enabled. This option is + enabled by default. - If `set -P' is on, then: - $ cd /usr/sys; echo $PWD - /usr/local/sys - $ cd ..; pwd - /usr/local + `promptvars' + If set, prompt strings undergo parameter expansion, command + substitution, arithmetic expansion, and quote removal after + being expanded as described below (*note Printing a Prompt::). + This option is enabled by default. - `-T' - If set, any trap on `DEBUG' and `RETURN' are inherited by - shell functions, command substitutions, and commands executed - in a subshell environment. The `DEBUG' and `RETURN' traps - are normally not inherited in such cases. + `restricted_shell' + The shell sets this option if it is started in restricted mode + (*note The Restricted Shell::). The value may not be changed. + This is not reset when the startup files are executed, + allowing the startup files to discover whether or not a shell + is restricted. - `--' - If no arguments follow this option, then the positional - parameters are unset. Otherwise, the positional parameters - are set to the ARGUMENTS, even if some of them begin with a - `-'. + `shift_verbose' + If this is set, the `shift' builtin prints an error message + when the shift count exceeds the number of positional + parameters. - `-' - Signal the end of options, cause all remaining ARGUMENTS to - be assigned to the positional parameters. The `-x' and `-v' - options are turned off. If there are no arguments, the - positional parameters remain unchanged. + `sourcepath' + If set, the `source' builtin uses the value of `PATH' to find + the directory containing the file supplied as an argument. + This option is enabled by default. - Using `+' rather than `-' causes these options to be turned off. - The options can also be used upon invocation of the shell. The - current set of options may be found in `$-'. + `xpg_echo' + If set, the `echo' builtin expands backslash-escape sequences + by default. - The remaining N ARGUMENTS are positional parameters and are - assigned, in order, to `$1', `$2', ... `$N'. The special - parameter `#' is set to N. - The return status is always zero unless an invalid option is - supplied. + The return status when listing options is zero if all OPTNAMES are + enabled, non-zero otherwise. When setting or unsetting options, + the return status is zero unless an OPTNAME is not a valid shell + option. +  -File: bashref.info, Node: Special Builtins, Prev: The Set Builtin, Up: Shell Builtin Commands +File: bashref.info, Node: Special Builtins, Prev: Modifying Shell Behavior, Up: Shell Builtin Commands 4.4 Special Builtins ==================== @@ -3638,7 +3922,7 @@ respects: When Bash is not executing in POSIX mode, these builtins behave no differently than the rest of the Bash builtin commands. The Bash POSIX -mode is described in *Note Bash POSIX Mode::. +mode is described in *note Bash POSIX Mode::. These are the POSIX special builtins: break : . continue eval exec exit export readonly return set @@ -3732,6 +4016,18 @@ Variables::). `BASH' The full pathname used to execute the current instance of Bash. +`BASHPID' + Expands to the process id of the current Bash process. This + differs from `$$' under certain circumstances, such as subshells + that do not require Bash to be re-initialized. + +`BASH_ALIASES' + An associative array variable whose members correspond to the + internal list of aliases as maintained by the `alias' builtin + (*note Bourne Shell Builtins::). Elements added to this array + appear in the alias list; unsetting array elements cause aliases + to be removed from the alias list. + `BASH_ARGC' An array variable whose values are the number of parameters in each frame of the current bash execution call stack. The number of @@ -3739,7 +4035,7 @@ Variables::). executed with `.' or `source') is at the top of the stack. When a subroutine is executed, the number of parameters passed is pushed onto `BASH_ARGC'. The shell sets `BASH_ARGC' only when in - extended debugging mode (see *Note Bash Builtins:: for a + extended debugging mode (see *note The Shopt Builtin:: for a description of the `extdebug' option to the `shopt' builtin). `BASH_ARGV' @@ -3748,9 +4044,16 @@ Variables::). subroutine call is at the top of the stack; the first parameter of the initial call is at the bottom. When a subroutine is executed, the parameters supplied are pushed onto `BASH_ARGV'. The shell - sets `BASH_ARGV' only when in extended debugging mode (see *Note - Bash Builtins:: for a description of the `extdebug' option to the - `shopt' builtin). + sets `BASH_ARGV' only when in extended debugging mode (see *note + The Shopt Builtin:: for a description of the `extdebug' option to + the `shopt' builtin). + +`BASH_CMDS' + An associative array variable whose members correspond to the + internal hash table of commands as maintained by the `hash' builtin + (*note Bourne Shell Builtins::). Elements added to this array + appear in the hash table; unsetting array elements cause commands + to be removed from the hash table. `BASH_COMMAND' The command currently being executed or about to be executed, @@ -3770,9 +4073,10 @@ Variables::). An array variable whose members are the line numbers in source files corresponding to each member of FUNCNAME. `${BASH_LINENO[$i]}' is the line number in the source file where - `${FUNCNAME[$i]}' was called. The corresponding source file name - is `${BASH_SOURCE[$i]}'. Use `LINENO' to obtain the current line - number. + `${FUNCNAME[$i]}' was called (or `${BASH_LINENO[$i-1]}' if + referenced within another shell function). The corresponding + source file name is `${BASH_SOURCE[$i]}'. Use `LINENO' to obtain + the current line number. `BASH_REMATCH' An array variable whose members are assigned by the `=~' binary @@ -3841,6 +4145,20 @@ Variables::). functions and external commands invoked by the programmable completion facilities (*note Programmable Completion::). +`COMP_TYPE' + Set to an integer value corresponding to the type of completion + attempted that caused a completion function to be called: TAB, for + normal completion, `?', for listing completions after successive + tabs, `!', for listing alternatives on partial word completion, + `@', to list completions if the word is not unmodified, or `%', + for menu completion. This variable is available only in shell + functions and external commands invoked by the programmable + completion facilities (*note Programmable Completion::). + +`COMP_KEY' + The key (or final key of a key sequence) used to invoke the current + completion function. + `COMP_WORDBREAKS' The set of characters that the Readline library treats as word separators when performing word completion. If `COMP_WORDBREAKS' @@ -3892,7 +4210,7 @@ Variables::). An array variable containing the names of all shell functions currently in the execution call stack. The element with index 0 is the name of any currently-executing shell function. The - bottom-most element is "main". This variable exists only when a + bottom-most element is `"main"'. This variable exists only when a shell function is executing. Assignments to `FUNCNAME' have no effect and return an error status. If `FUNCNAME' is unset, it loses its special properties, even if it is subsequently reset. @@ -3985,7 +4303,9 @@ Variables::). format string for STRFTIME to print the time stamp associated with each history entry displayed by the `history' builtin. If this variable is set, time stamps are written to the history file so - they may be preserved across shell sessions. + they may be preserved across shell sessions. This uses the + history comment character to distinguish timestamps from other + history lines. `HOSTFILE' Contains the name of a file in the same format as `/etc/hosts' that @@ -4099,6 +4419,12 @@ Variables::). If set, the value is interpreted as a command to execute before the printing of each primary prompt (`$PS1'). +`PROMPT_DIRTRIM' + If set to a number greater than zero, the value is used as the + number of trailing directory components to retain when expanding + the `\w' and `\W' prompt string escapes (*note Printing a + Prompt::). Characters removed are replaced with an ellipsis. + `PS3' The value of this variable is used as the prompt for the `select' command. If this variable is not set, the `select' command @@ -4191,7 +4517,7 @@ Variables::). if input does not arrive after `TMOUT' seconds when input is coming from a terminal. - In an interative shell, the value is interpreted as the number of + In an interactive shell, the value is interpreted as the number of seconds to wait for input after issuing the primary prompt when the shell is interactive. Bash terminates after that number of seconds if input does not arrive. @@ -4247,10 +4573,10 @@ the single-character options to be recognized. `--debugger' Arrange for the debugger profile to be executed before the shell - starts. Turns on extended debugging mode (see *Note Bash - Builtins:: for a description of the `extdebug' option to the - `shopt' builtin) and shell function tracing (see *Note The Set - Builtin:: for a description of the `-o functrace' option). + starts. Turns on extended debugging mode (see *note The Shopt + Builtin:: for a description of the `extdebug' option to the `shopt' + builtin) and shell function tracing (see *note The Set Builtin:: + for a description of the `-o functrace' option). `--dump-po-strings' A list of all double-quoted strings preceded by `$' is printed on @@ -4261,7 +4587,7 @@ the single-character options to be recognized. Equivalent to `-D'. `--help' - Display a usage message on standard output and exit sucessfully. + Display a usage message on standard output and exit successfully. `--init-file FILENAME' `--rcfile FILENAME' @@ -4312,7 +4638,7 @@ invocation which are not available with the `set' builtin. `-i' Force the shell to run interactively. Interactive shells are - described in *Note Interactive Shells::. + described in *note Interactive Shells::. `-l' Make this shell act as if it had been directly invoked by login. @@ -4341,8 +4667,8 @@ invocation which are not available with the `set' builtin. `[-+]O [SHOPT_OPTION]' SHOPT_OPTION is one of the shell options accepted by the `shopt' - builtin (*note Shell Builtin Commands::). If SHOPT_OPTION is - present, `-O' sets the value of that option; `+O' unsets it. If + builtin (*note The Shopt Builtin::). If SHOPT_OPTION is present, + `-O' sets the value of that option; `+O' unsets it. If SHOPT_OPTION is not supplied, the names and values of the shell options accepted by `shopt' are printed on the standard output. If the invocation option is `+O', the output is displayed in a @@ -4378,12 +4704,12 @@ File: bashref.info, Node: Bash Startup Files, Next: Interactive Shells, Prev: 6.2 Bash Startup Files ====================== -This section describs how Bash executes its startup files. If any of +This section describes how Bash executes its startup files. If any of the files exist but cannot be read, Bash reports an error. Tildes are expanded in file names as described above under Tilde Expansion (*note Tilde Expansion::). - Interactive shells are described in *Note Interactive Shells::. + Interactive shells are described in *note Interactive Shells::. Invoked as an interactive login shell, or with `--login' ........................................................ @@ -4463,14 +4789,15 @@ startup files are read. Invoked by remote shell daemon .............................. -Bash attempts to determine when it is being run by the remote shell -daemon, usually `rshd'. If Bash determines it is being run by rshd, it -reads and executes commands from `~/.bashrc', if that file exists and -is readable. It will not do this if invoked as `sh'. The `--norc' -option may be used to inhibit this behavior, and the `--rcfile' option -may be used to force another file to be read, but `rshd' does not -generally invoke the shell with those options or allow them to be -specified. +Bash attempts to determine when it is being run with its standard input +connected to a a network connection, as if by the remote shell daemon, +usually `rshd', or the secure shell daemon `sshd'. If Bash determines +it is being run in this fashion, it reads and executes commands from +`~/.bashrc', if that file exists and is readable. It will not do this +if invoked as `sh'. The `--norc' option may be used to inhibit this +behavior, and the `--rcfile' option may be used to force another file +to be read, but `rshd' does not generally invoke the shell with those +options or allow them to be specified. Invoked with unequal effective and real UID/GIDs ................................................ @@ -4502,9 +4829,9 @@ File: bashref.info, Node: What is an Interactive Shell?, Next: Is this Shell I ----------------------------------- An interactive shell is one started without non-option arguments, -unless `-s' is specified, without specifiying the `-c' option, and -whose input and error output are both connected to terminals (as -determined by `isatty(3)'), or one started with the `-i' option. +unless `-s' is specified, without specifying the `-c' option, and whose +input and error output are both connected to terminals (as determined +by `isatty(3)'), or one started with the `-i' option. An interactive shell generally reads from and writes to a user's terminal. @@ -4545,7 +4872,7 @@ File: bashref.info, Node: Interactive Shell Behavior, Prev: Is this Shell Inte When the shell is running interactively, it changes its behavior in several ways. - 1. Startup files are read and executed as described in *Note Bash + 1. Startup files are read and executed as described in *note Bash Startup Files::. 2. Job Control (*note Job Control::) is enabled by default. When job @@ -4581,7 +4908,7 @@ several ways. ((*note Signals::). `SIGINT' will interrupt some shell builtins. 11. An interactive login shell sends a `SIGHUP' to all jobs on exit if - the `hupoxexit' shell option has been enabled (*note Signals::). + the `huponexit' shell option has been enabled (*note Signals::). 12. The `-n' invocation option is ignored, and `set -n' has no effect (*note The Set Builtin::). @@ -4611,7 +4938,7 @@ several ways. 20. Simple spelling correction for directory arguments to the `cd' builtin is enabled by default (see the description of the `cdspell' - option to the `shopt' builtin in *Note Bash Builtins::). + option to the `shopt' builtin in *note The Shopt Builtin::). 21. The shell will check the value of the `TMOUT' variable and exit if a command is not read within the specified number of seconds after @@ -4876,8 +5203,8 @@ as in `csh'. If arguments are needed, a shell function should be used (*note Shell Functions::). Aliases are not expanded when the shell is not interactive, unless -the `expand_aliases' shell option is set using `shopt' (*note Bash -Builtins::). +the `expand_aliases' shell option is set using `shopt' (*note The Shopt +Builtin::). The rules concerning the definition and use of aliases are somewhat confusing. Bash always reads at least one complete line of input @@ -4902,14 +5229,16 @@ File: bashref.info, Node: Arrays, Next: The Directory Stack, Prev: Aliases, 6.7 Arrays ========== -Bash provides one-dimensional array variables. Any variable may be -used as an array; the `declare' builtin will explicitly declare an -array. There is no maximum limit on the size of an array, nor any -requirement that members be indexed or assigned contiguously. Arrays -are zero-based. +Bash provides one-dimensional indexed and associative array variables. +Any variable may be used as an indexed array; the `declare' builtin +will explicitly declare an array. There is no maximum limit on the +size of an array, nor any requirement that members be indexed or +assigned contiguously. Indexed arrays are referenced using integers +(including arithmetic expressions (*note Shell Arithmetic::) and are +zero-based; associative arrays use arbitrary strings. - An array is created automatically if any variable is assigned to -using the syntax + An indexed array is created automatically if any variable is +assigned to using the syntax name[SUBSCRIPT]=VALUE The SUBSCRIPT is treated as an arithmetic expression that must evaluate @@ -4918,18 +5247,28 @@ array, use declare -a NAME The syntax declare -a NAME[SUBSCRIPT] - is also accepted; the SUBSCRIPT is ignored. Attributes may be -specified for an array variable using the `declare' and `readonly' -builtins. Each attribute applies to all members of an array. + is also accepted; the SUBSCRIPT is ignored. + + Associative arrays are created using + declare -A NAME. + + Attributes may be specified for an array variable using the +`declare' and `readonly' builtins. Each attribute applies to all +members of an array. Arrays are assigned to using compound assignments of the form name=(value1 ... valueN) - where each VALUE is of the form `[[SUBSCRIPT]=]'STRING. If the -optional subscript is supplied, that index is assigned to; otherwise -the index of the element assigned is the last index assigned to by the -statement plus one. Indexing starts at zero. This syntax is also -accepted by the `declare' builtin. Individual array elements may be -assigned to using the `name['SUBSCRIPT`]='VALUE syntax introduced above. + where each VALUE is of the form `[SUBSCRIPT]='STRING. Indexed array +assignments do not require the bracket and subscript. When assigning +to indexed arrays, if the optional subscript is supplied, that index is +assigned to; otherwise the index of the element assigned is the last +index assigned to by the statement plus one. Indexing starts at zero. + + When assigning to an associative array, the subscript is required. + + This syntax is also accepted by the `declare' builtin. Individual +array elements may be assigned to using the `name['SUBSCRIPT`]='VALUE +syntax introduced above. Any element of an array may be referenced using `${name['SUBSCRIPT`]}'. The braces are required to avoid conflicts @@ -4948,7 +5287,7 @@ expansion of the special parameters `@' and `*'. `${#name['SUBSCRIPT`]}' expands to the length of `${name['SUBSCRIPT`]}'. If SUBSCRIPT is `@' or `*', the expansion is the number of elements in the array. Referencing an array variable without a subscript is -equivalent to referencing element zero. +equivalent to referencing with a subscript of 0. The `unset' builtin is used to destroy arrays. `unset' NAME[SUBSCRIPT] destroys the array element at index SUBSCRIPT. Care @@ -4957,11 +5296,12 @@ generation. `unset' NAME, where NAME is an array, removes the entire array. A subscript of `*' or `@' also removes the entire array. The `declare', `local', and `readonly' builtins each accept a `-a' -option to specify an array. The `read' builtin accepts a `-a' option -to assign a list of words read from the standard input to an array, and -can read values from the standard input into individual array elements. -The `set' and `declare' builtins display array values in a way that -allows them to be reused as input. +option to specify an indexed array and a `-A' option to specify an +associative array. The `read' builtin accepts a `-a' option to assign +a list of words read from the standard input to an array, and can read +values from the standard input into individual array elements. The +`set' and `declare' builtins display array values in a way that allows +them to be reused as input.  File: bashref.info, Node: The Directory Stack, Next: Printing a Prompt, Prev: Arrays, Up: Bash Features @@ -5042,12 +5382,17 @@ File: bashref.info, Node: Directory Stack Builtins, Up: The Directory Stack manipulated. `pushd' - pushd [DIR | +N | -N] [-n] + pushd [-n] [+N | -N | DIR ] Save the current directory on the top of the directory stack and then `cd' to DIR. With no arguments, `pushd' exchanges the top two directories. + `-n' + Suppresses the normal change of directory when adding + directories to the stack, so that only the stack is + manipulated. + `+N' Brings the Nth directory (counting from the left of the list printed by `dirs', starting with zero) to the top of the list @@ -5058,11 +5403,6 @@ File: bashref.info, Node: Directory Stack Builtins, Up: The Directory Stack printed by `dirs', starting with zero) to the top of the list by rotating the stack. - `-n' - Suppresses the normal change of directory when adding - directories to the stack, so that only the stack is - manipulated. - `DIR' Makes the current working directory be the top of the stack, and then executes the equivalent of ``cd' DIR'. `cd's to DIR. @@ -5141,7 +5481,7 @@ which can appear in the prompt variables: `\w' The current working directory, with `$HOME' abbreviated with a - tilde. + tilde (uses the `$PROMPT_DIRTRIM' variable). `\W' The basename of `$PWD', with `$HOME' abbreviated with a tilde. @@ -5389,13 +5729,16 @@ startup files. `$PATH'. 40. The `vi' editing mode will invoke the `vi' editor directly when - the `v' command is run, instead of checking `$FCEDIT' and + the `v' command is run, instead of checking `$VISUAL' and `$EDITOR'. 41. When the `xpg_echo' option is enabled, Bash does not attempt to interpret any arguments to `echo' as options. Each argument is displayed, after escape characters are converted. + 42. The `ulimit' builtin uses a block size of 512 bytes for the `-c' + and `-f' options. + There is other POSIX behavior that Bash does not implement by default even when in POSIX mode. Specifically: @@ -5413,7 +5756,7 @@ specifying the `--enable-strict-posix-default' to `configure' when building (*note Optional Features::).  -File: bashref.info, Node: Job Control, Next: Using History Interactively, Prev: Bash Features, Up: Top +File: bashref.info, Node: Job Control, Next: Command Line Editing, Prev: Bash Features, Up: Top 7 Job Control ************* @@ -5476,16 +5819,17 @@ the additional side effect of causing pending output and typeahead to be discarded. There are a number of ways to refer to a job in the shell. The -character `%' introduces a job name. +character `%' introduces a job specification (JOBSPEC). Job number `n' may be referred to as `%n'. The symbols `%%' and `%+' refer to the shell's notion of the current job, which is the last job stopped while it was in the foreground or started in the background. A single `%' (with no accompanying job specification) also refers to -the current job. The previous job may be referenced using `%-'. In -output pertaining to jobs (e.g., the output of the `jobs' command), the -current job is always flagged with a `+', and the previous job with a -`-'. +the current job. The previous job may be referenced using `%-'. If +there is only a single job, `%+' and `%-' can both be used to refer to +that job. In output pertaining to jobs (e.g., the output of the `jobs' +command), the current job is always flagged with a `+', and the +previous job with a `-'. A job may also be referred to using a prefix of the name used to start it, or using a substring that appears in its command line. For @@ -5506,11 +5850,13 @@ output. If the `-b' option to the `set' builtin is enabled, Bash reports such changes immediately (*note The Set Builtin::). Any trap on `SIGCHLD' is executed for each child process that exits. - If an attempt to exit Bash is made while jobs are stopped, the shell -prints a message warning that there are stopped jobs. The `jobs' + If an attempt to exit Bash is made while jobs are stopped, (or +running, if the `checkjobs' option is enabled - see *note The Shopt +Builtin::), the shell prints a warning message, and if the `checkjobs' +option is enabled, lists the jobs and their statuses. The `jobs' command may then be used to inspect their status. If a second attempt to exit is made without an intervening command, Bash does not print -another warning, and the stopped jobs are terminated. +another warning, and any stopped jobs are terminated.  File: bashref.info, Node: Job Control Builtins, Next: Job Control Variables, Prev: Job Control Basics, Up: Job Control @@ -5608,8 +5954,8 @@ File: bashref.info, Node: Job Control Builtins, Next: Job Control Variables, `suspend' suspend [-f] Suspend the execution of this shell until it receives a `SIGCONT' - signal. The `-f' option means to suspend even if the shell is a - login shell. + signal. A login shell cannot be suspended; the `-f' option can be + used to override this and force the suspension. When job control is not active, the `kill' and `wait' builtins do @@ -5640,7 +5986,7 @@ File: bashref.info, Node: Job Control Variables, Prev: Job Control Builtins,  -File: bashref.info, Node: Command Line Editing, Next: Installing Bash, Prev: Using History Interactively, Up: Top +File: bashref.info, Node: Command Line Editing, Next: Using History Interactively, Prev: Job Control, Up: Top 8 Command Line Editing ********************** @@ -5648,6 +5994,15 @@ File: bashref.info, Node: Command Line Editing, Next: Installing Bash, Prev: This chapter describes the basic features of the GNU command line editing interface. Command line editing is provided by the Readline library, which is used by several different programs, including Bash. +Command line editing is enabled by default when using an interactive +shell, unless the `--noediting' option is supplied at shell invocation. +Line editing is also used when using the `-e' option to the `read' +builtin command (*note Bash Builtins::). By default, the line editing +commands are similar to those of emacs. A vi-style line editing +interface is also available. Line editing can be enabled at any time +using the `-o emacs' or `-o vi' options to the `set' builtin command +(*note The Set Builtin::), or disabled using the `+o emacs' or `+o vi' +options to `set'. * Menu: @@ -6008,6 +6363,13 @@ Variable Settings completion in a case-insensitive fashion. The default value is `off'. + `completion-prefix-display-length' + The length in characters of the common prefix of a list of + possible completions that is displayed without modification. + When set to a value greater than zero, common prefixes longer + than this value are replaced with an ellipsis when displaying + possible completions. + `completion-query-items' The number of possible completions that determines when the user is asked whether the list of possibilities should be @@ -6045,9 +6407,15 @@ Variable Settings attempts word completion. The default is `off'. `history-preserve-point' - If set to `on', the history code attempts to place point at - the same location on each history line retrieved with - `previous-history' or `next-history'. The default is `off'. + If set to `on', the history code attempts to place the point + (the current cursor position) at the same location on each + history line retrieved with `previous-history' or + `next-history'. The default is `off'. + + `history-size' + Set the maximum number of history entries saved in the + history list. If set to zero, the number of entries in the + history list is not limited. `horizontal-scroll-mode' This variable can be set to either `on' or `off'. Setting it @@ -6115,6 +6483,12 @@ Variable Settings sorted horizontally in alphabetical order, rather than down the screen. The default is `off'. + `revert-all-at-newline' + If set to `on', Readline will undo all changes to history + lines before returning when `accept-line' is executed. By + default, history lines may be modified and retain individual + undo lists across calls to `readline'. The default is `off'. + `show-all-if-ambiguous' This alters the default behavior of the completion functions. If set to `on', words which have more than one possible @@ -6482,6 +6856,14 @@ File: bashref.info, Node: Commands For Moving, Next: Commands For History, Up Move back to the start of the current or previous word. Words are composed of letters and digits. +`shell-forward-word ()' + Move forward to the end of the next word. Words are delimited by + non-quoted shell metacharacters. + +`shell-backward-word ()' + Move back to the start of the current or previous word. Words are + delimited by non-quoted shell metacharacters. + `clear-screen (C-l)' Clear the screen and redraw the current line, leaving the current line at the top of the screen. @@ -6657,6 +7039,15 @@ File: bashref.info, Node: Commands For Killing, Next: Numeric Arguments, Prev Kill the word behind point. Word boundaries are the same as `backward-word'. +`shell-kill-word ()' + 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 `shell-forward-word'. + +`backward-kill-word ()' + Kill the word behind point. Word boundaries are the same as + `shell-backward-word'. + `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. @@ -6804,6 +7195,11 @@ File: bashref.info, Node: Commands For Completion, Next: Keyboard Macros, Pre against lines from the history list for possible completion matches. +`dabbrev-expand ()' + Attempt menu completion on the text before point, comparing the + text against lines from the history list for possible completion + matches. + `complete-into-braces (M-{)' Perform filename completion and insert the list of possible completions enclosed within braces so the list is available to the @@ -7030,22 +7426,22 @@ and the matching words become the possible completions. After these matches have been generated, any shell function or command specified with the `-F' and `-C' options is invoked. When the -command or function is invoked, the `COMP_LINE' and `COMP_POINT' -variables are assigned values as described above (*note Bash -Variables::). If a shell function is being invoked, the `COMP_WORDS' -and `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. +command or function is invoked, the `COMP_LINE', `COMP_POINT', +`COMP_KEY', and `COMP_TYPE' variables are assigned values as described +above (*note Bash Variables::). If a shell function is being invoked, +the `COMP_WORDS' and `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 `-F' is invoked first. The function may -use any of the shell facilities, including the `compgen' builtin -described below (*note Programmable Completion Builtins::), to generate -the matches. It must put the possible completions in the `COMPREPLY' -array variable. +use any of the shell facilities, including the `compgen' and `compopt' +builtins described below (*note Programmable Completion Builtins::), to +generate the matches. It must put the possible completions in the +`COMPREPLY' array variable. Next, any command specified with the `-C' option is invoked in an environment equivalent to command substitution. It should print a list @@ -7119,17 +7515,19 @@ completion facilities. no matches were generated. `complete' - `complete [-abcdefgjksuv] [-o COMP-OPTION] [-A ACTION] [-G GLOBPAT] [-W WORDLIST] - [-P PREFIX] [-S SUFFIX] [-X FILTERPAT] [-F FUNCTION] - [-C COMMAND] NAME [NAME ...]' - `complete -pr [NAME ...]' + `complete [-abcdefgjksuv] [-o COMP-OPTION] [-E] [-A ACTION] [-G GLOBPAT] [-W WORDLIST] + [-F FUNCTION] [-C COMMAND] [-X FILTERPAT] + [-P PREFIX] [-S SUFFIX] NAME [NAME ...]' + `complete -pr [-E] [NAME ...]' Specify how arguments to each NAME should be completed. If the `-p' option is supplied, or if no options are supplied, existing completion specifications are printed in a way that allows them to be reused as input. The `-r' option removes a completion specification for each NAME, or, if no NAMEs are supplied, all - completion specifications. + completion specifications. The `-E' option indicates that the + remaining options and actions should apply to "empty" command + completion; that is, completion attempted on a blank line. The process of applying these completion specifications when word completion is attempted is described above (*note Programmable @@ -7160,9 +7558,10 @@ completion facilities. `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 `-F'. + adding a slash to directory names quoting special + characters, or suppressing trailing spaces). This + option is intended to be used with shell functions + specified with `-F'. `nospace' Tell Readline not to append a space (the default) to @@ -7300,9 +7699,21 @@ completion facilities. for a NAME for which no specification exists, or an error occurs adding a completion specification. - +`compopt' + `compopt' [-o OPTION] [+o OPTION] [NAME] + Modify completion options for each NAME according to the OPTIONs, + or for the currently-execution completion if no NAMEs are supplied. + If no OPTIONs are given, display the completion options for each + NAME or the current completion. The possible values of OPTION are + those valid for the `complete' builtin described above. + + The return value is true unless an invalid option is supplied, an + attempt is made to modify the options for a NAME for which no + completion specification exists, or an output error occurs. + +  -File: bashref.info, Node: Using History Interactively, Next: Command Line Editing, Prev: Job Control, Up: Top +File: bashref.info, Node: Using History Interactively, Next: Installing Bash, Prev: Command Line Editing, Up: Top 9 Using History Interactively ***************************** @@ -7350,7 +7761,11 @@ history, the history file is truncated to contain no more than performed. If the `HISTTIMEFORMAT' is set, the time stamp information -associated with each history entry is written to the history file. +associated with each history entry is written to the history file, +marked with the history comment character. When the history file is +read, lines beginning with the history comment character followed +immediately by a digit are interpreted as timestamps for the previous +history line. The builtin command `fc' may be used to list or edit and re-execute a portion of the history list. The `history' builtin may be used to @@ -7379,7 +7794,7 @@ Bash provides two builtin commands which manipulate the history list and history file. `fc' - `fc [-e ENAME] [-nlr] [FIRST] [LAST]' + `fc [-e ENAME] [-lnr] [FIRST] [LAST]' `fc -s [PAT=REP] [COMMAND]' Fix Command. In the first form, a range of commands from FIRST to @@ -7507,7 +7922,9 @@ available for subsequent recall. This is most useful in conjunction with Readline. The shell allows control of the various characters used by the -history expansion mechanism with the `histchars' variable. +history expansion mechanism with the `histchars' variable, as explained +above (*note Bash Variables::). The shell uses the history comment +character to mark history timestamps when writing the history file. * Menu: @@ -7629,7 +8046,7 @@ more of the following modifiers, each preceded by a `:'. Remove a trailing pathname component, leaving only the head. `t' - Remove all leading pathname components, leaving the tail. + Remove all leading pathname components, leaving the tail. `r' Remove a trailing suffix of the form `.SUFFIX', leaving the @@ -7669,7 +8086,7 @@ more of the following modifiers, each preceded by a `:'.  -File: bashref.info, Node: Installing Bash, Next: Reporting Bugs, Prev: Command Line Editing, Up: Top +File: bashref.info, Node: Installing Bash, Next: Reporting Bugs, Prev: Using History Interactively, Up: Top 10 Installing Bash ****************** @@ -7999,7 +8416,16 @@ does not provide the necessary support. `--enable-brace-expansion' Include `csh'-like brace expansion ( `b{a,b}c' ==> `bac bbc' ). - See *Note Brace Expansion::, for a complete description. + See *note Brace Expansion::, for a complete description. + +`--enable-casemod-attributes' + Include support for case-modifying attributes in the `declare' + builtin and assignment statements. Variables with the UPPERCASE + attribute, for example, will have their values converted to + uppercase upon assignment. + +`--enable-casemod-expansion' + Include support for case-modifying word expansions. `--enable-command-timing' Include support for recognizing `time' as a reserved word and for @@ -8016,6 +8442,10 @@ does not provide the necessary support. `=~' binary operator in the `[[' conditional command. (*note Conditional Constructs::). +`--enable-coprocesses' + Include support for coprocesses and the `coproc' reserved word + (*note Pipelines::). + `--enable-debugger' Include support for the bash debugger (distributed separately). @@ -8025,7 +8455,7 @@ does not provide the necessary support. `--enable-disabled-builtins' Allow builtin commands to be invoked via `builtin xxx' even after - `xxx' has been disabled using `enable -n xxx'. See *Note Bash + `xxx' has been disabled using `enable -n xxx'. See *note Bash Builtins::, for details of the `builtin' and `enable' builtin commands. @@ -8035,7 +8465,7 @@ does not provide the necessary support. `--enable-extended-glob' Include support for the extended pattern matching features - described above under *Note Pattern Matching::. + described above under *note Pattern Matching::. `--enable-help-builtin' Include the `help' builtin, which displays help on shell builtins @@ -8070,7 +8500,7 @@ does not provide the necessary support. `--enable-prompt-string-decoding' Turn on the interpretation of a number of backslash-escaped characters in the `$PS1', `$PS2', `$PS3', and `$PS4' prompt - strings. See *Note Printing a Prompt::, for a complete list of + strings. See *note Printing a Prompt::, for a complete list of prompt string escape sequences. `--enable-readline' @@ -8079,7 +8509,7 @@ does not provide the necessary support. `--enable-restricted' Include support for a "restricted shell". If this is enabled, - Bash, when called as `rbash', enters a restricted mode. See *Note + Bash, when called as `rbash', enters a restricted mode. See *note The Restricted Shell::, for a description of restricted mode. `--enable-select' @@ -8152,7 +8582,7 @@ it provides for filing a bug report. Please send all reports concerning this manual to .  -File: bashref.info, Node: Major Differences From The Bourne Shell, Next: Copying This Manual, Prev: Reporting Bugs, Up: Top +File: bashref.info, Node: Major Differences From The Bourne Shell, Next: GNU Free Documentation License, Prev: Reporting Bugs, Up: Top Appendix B Major Differences From The Bourne Shell ************************************************** @@ -8177,8 +8607,8 @@ the baseline reference. the `bind' builtin. * Bash provides a programmable word completion mechanism (*note - Programmable Completion::), and two builtin commands, `complete' - and `compgen', to manipulate it. + Programmable Completion::), and builtin commands `complete', + `compgen', and `compopt', to manipulate it. * Bash has command history (*note Bash History Facilities::) and the `history' and `fc' builtins to manipulate it. The Bash history @@ -8387,9 +8817,9 @@ the baseline reference. Builtins::). * Bash includes the `shopt' builtin, for finer control of shell - optional capabilities (*note Bash Builtins::), and allows these - options to be set and unset at shell invocation (*note Invoking - Bash::). + optional capabilities (*note The Shopt Builtin::), and allows + these options to be set and unset at shell invocation (*note + Invoking Bash::). * Bash has much more optional behavior controllable with the `set' builtin (*note The Set Builtin::). @@ -8470,7 +8900,7 @@ the baseline reference. * The SVR4.2 `sh' uses a `TIMEOUT' variable like Bash uses `TMOUT'. -More features unique to Bash may be found in *Note Bash Features::. +More features unique to Bash may be found in *note Bash Features::. B.1 Implementation Differences From The SVR4.2 Shell ==================================================== @@ -8516,25 +8946,15 @@ many of the limitations of the SVR4.2 shell. For instance: turns on job control).  -File: bashref.info, Node: Copying This Manual, Next: Builtin Index, Prev: Major Differences From The Bourne Shell, Up: Top - -Appendix C Copying This Manual -****************************** - -* Menu: - -* GNU Free Documentation License:: License for copying this manual. - - -File: bashref.info, Node: GNU Free Documentation License, Up: Copying This Manual +File: bashref.info, Node: GNU Free Documentation License, Next: Indexes, Prev: Major Differences From The Bourne Shell, Up: Top -C.1 GNU Free Documentation License -================================== +Appendix C GNU Free Documentation License +***************************************** Version 1.2, November 2002 Copyright (C) 2000,2001,2002 Free Software Foundation, Inc. - 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA + 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. @@ -8865,7 +9285,7 @@ C.1 GNU Free Documentation License a storage or distribution medium, is called an "aggregate" if the copyright resulting from the compilation is not used to limit the legal rights of the compilation's users beyond what the individual - works permit. When the Document is included an aggregate, this + works permit. When the Document is included in an aggregate, this License does not apply to the other works in the aggregate which are not themselves derivative works of the Document. @@ -8926,8 +9346,8 @@ C.1 GNU Free Documentation License you may choose any version ever published (not as a draft) by the Free Software Foundation. -C.1.1 ADDENDUM: How to use this License for your documents ----------------------------------------------------------- +ADDENDUM: How to use this License for your documents +==================================================== To use this License in a document you have written, include a copy of the License in the document and put the following copyright and license @@ -8937,8 +9357,8 @@ notices just after the title page: Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; - with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. - A copy of the license is included in the section entitled ``GNU + with no Invariant Sections, no Front-Cover Texts, and no Back-Cover + Texts. A copy of the license is included in the section entitled ``GNU Free Documentation License''. If you have Invariant Sections, Front-Cover Texts and Back-Cover @@ -8958,10 +9378,26 @@ free software license, such as the GNU General Public License, to permit their use in free software.  -File: bashref.info, Node: Builtin Index, Next: Reserved Word Index, Prev: Copying This Manual, Up: Top +File: bashref.info, Node: Indexes, Prev: GNU Free Documentation License, Up: Top + +Appendix D Indexes +****************** + +* Menu: + +* Builtin Index:: Index of Bash builtin commands. +* Reserved Word Index:: Index of Bash reserved words. +* Variable Index:: Quick reference helps you find the + variable you want. +* Function Index:: Index of bindable Readline functions. +* Concept Index:: General index for concepts described in + this manual. + + +File: bashref.info, Node: Builtin Index, Next: Reserved Word Index, Up: Indexes -Index of Shell Builtin Commands -******************************* +D.1 Index of Shell Builtin Commands +=================================== [index] * Menu: @@ -8971,31 +9407,33 @@ Index of Shell Builtin Commands * :: Bourne Shell Builtins. (line 11) * [: Bourne Shell Builtins. - (line 212) + (line 213) * alias: Bash Builtins. (line 11) * bg: Job Control Builtins. (line 7) * bind: Bash Builtins. (line 21) * break: Bourne Shell Builtins. (line 29) -* builtin: Bash Builtins. (line 92) -* caller: Bash Builtins. (line 100) +* builtin: Bash Builtins. (line 98) +* caller: Bash Builtins. (line 106) * cd: Bourne Shell Builtins. (line 36) -* command: Bash Builtins. (line 117) +* command: Bash Builtins. (line 123) * compgen: Programmable Completion Builtins. (line 10) * complete: Programmable Completion Builtins. (line 28) +* compopt: Programmable Completion Builtins. + (line 213) * continue: Bourne Shell Builtins. (line 55) -* declare: Bash Builtins. (line 136) +* declare: Bash Builtins. (line 142) * dirs: Directory Stack Builtins. (line 7) * disown: Job Control Builtins. (line 83) -* echo: Bash Builtins. (line 191) -* enable: Bash Builtins. (line 243) +* echo: Bash Builtins. (line 221) +* enable: Bash Builtins. (line 273) * eval: Bourne Shell Builtins. (line 63) * exec: Bourne Shell Builtins. @@ -9012,66 +9450,67 @@ Index of Shell Builtin Commands (line 103) * hash: Bourne Shell Builtins. (line 145) -* help: Bash Builtins. (line 271) +* help: Bash Builtins. (line 301) * history: Bash History Builtins. (line 39) * jobs: Job Control Builtins. (line 25) * kill: Job Control Builtins. (line 57) -* let: Bash Builtins. (line 280) -* local: Bash Builtins. (line 287) -* logout: Bash Builtins. (line 297) +* let: Bash Builtins. (line 321) +* local: Bash Builtins. (line 328) +* logout: Bash Builtins. (line 338) +* mapfile: Bash Builtins. (line 342) * popd: Directory Stack Builtins. (line 37) -* printf: Bash Builtins. (line 301) +* printf: Bash Builtins. (line 383) * pushd: Directory Stack Builtins. (line 58) * pwd: Bourne Shell Builtins. (line 163) -* read: Bash Builtins. (line 326) +* read: Bash Builtins. (line 408) * readonly: Bourne Shell Builtins. (line 172) * return: Bourne Shell Builtins. - (line 187) -* set: The Set Builtin. (line 9) + (line 188) +* set: The Set Builtin. (line 11) * shift: Bourne Shell Builtins. - (line 200) -* shopt: Bash Builtins. (line 387) -* source: Bash Builtins. (line 618) + (line 201) +* shopt: The Shopt Builtin. (line 9) +* source: Bash Builtins. (line 480) * suspend: Job Control Builtins. (line 94) * test: Bourne Shell Builtins. - (line 212) + (line 213) * times: Bourne Shell Builtins. - (line 278) + (line 281) * trap: Bourne Shell Builtins. - (line 283) -* type: Bash Builtins. (line 622) -* typeset: Bash Builtins. (line 653) -* ulimit: Bash Builtins. (line 659) + (line 286) +* type: Bash Builtins. (line 484) +* typeset: Bash Builtins. (line 515) +* ulimit: Bash Builtins. (line 521) * umask: Bourne Shell Builtins. - (line 324) -* unalias: Bash Builtins. (line 737) + (line 327) +* unalias: Bash Builtins. (line 607) * unset: Bourne Shell Builtins. - (line 341) + (line 344) * wait: Job Control Builtins. (line 73)  -File: bashref.info, Node: Reserved Word Index, Next: Variable Index, Prev: Builtin Index, Up: Top +File: bashref.info, Node: Reserved Word Index, Next: Variable Index, Prev: Builtin Index, Up: Indexes -Index of Shell Reserved Words -***************************** +D.2 Index of Shell Reserved Words +================================= [index] * Menu: -* !: Pipelines. (line 8) +* !: Pipelines. (line 9) * [[: Conditional Constructs. - (line 108) + (line 117) * ]]: Conditional Constructs. - (line 108) + (line 117) * case: Conditional Constructs. (line 28) * do: Looping Constructs. (line 12) @@ -9091,20 +9530,20 @@ Index of Shell Reserved Words * in: Conditional Constructs. (line 28) * select: Conditional Constructs. - (line 67) + (line 76) * then: Conditional Constructs. (line 7) -* time: Pipelines. (line 8) +* time: Pipelines. (line 9) * until: Looping Constructs. (line 12) * while: Looping Constructs. (line 20) * {: Command Grouping. (line 21) * }: Command Grouping. (line 21)  -File: bashref.info, Node: Variable Index, Next: Function Index, Prev: Reserved Word Index, Up: Top +File: bashref.info, Node: Variable Index, Next: Function Index, Prev: Reserved Word Index, Up: Indexes -Parameter and Variable Index -**************************** +D.3 Parameter and Variable Index +================================ [index] * Menu: @@ -9121,150 +9560,162 @@ Parameter and Variable Index * auto_resume: Job Control Variables. (line 6) * BASH: Bash Variables. (line 13) -* BASH_ARGC: Bash Variables. (line 16) -* BASH_ARGV: Bash Variables. (line 26) -* BASH_COMMAND: Bash Variables. (line 36) -* BASH_ENV: Bash Variables. (line 41) -* BASH_EXECUTION_STRING: Bash Variables. (line 47) -* BASH_LINENO: Bash Variables. (line 50) -* BASH_REMATCH: Bash Variables. (line 58) -* BASH_SOURCE: Bash Variables. (line 66) -* BASH_SUBSHELL: Bash Variables. (line 70) -* BASH_VERSINFO: Bash Variables. (line 74) -* BASH_VERSION: Bash Variables. (line 98) +* BASH_ALIASES: Bash Variables. (line 21) +* BASH_ARGC: Bash Variables. (line 28) +* BASH_ARGV: Bash Variables. (line 38) +* BASH_CMDS: Bash Variables. (line 48) +* BASH_COMMAND: Bash Variables. (line 55) +* BASH_ENV: Bash Variables. (line 60) +* BASH_EXECUTION_STRING: Bash Variables. (line 66) +* BASH_LINENO: Bash Variables. (line 69) +* BASH_REMATCH: Bash Variables. (line 78) +* BASH_SOURCE: Bash Variables. (line 86) +* BASH_SUBSHELL: Bash Variables. (line 90) +* BASH_VERSINFO: Bash Variables. (line 94) +* BASH_VERSION: Bash Variables. (line 118) +* BASHPID: Bash Variables. (line 16) * bell-style: Readline Init File Syntax. (line 38) * bind-tty-special-chars: Readline Init File Syntax. (line 45) * CDPATH: Bourne Shell Variables. (line 9) -* COLUMNS: Bash Variables. (line 101) +* COLUMNS: Bash Variables. (line 121) * comment-begin: Readline Init File Syntax. (line 50) -* COMP_CWORD: Bash Variables. (line 106) -* COMP_LINE: Bash Variables. (line 112) -* COMP_POINT: Bash Variables. (line 117) -* COMP_WORDBREAKS: Bash Variables. (line 125) -* COMP_WORDS: Bash Variables. (line 131) -* completion-query-items: Readline Init File Syntax. +* COMP_CWORD: Bash Variables. (line 126) +* COMP_KEY: Bash Variables. (line 155) +* COMP_LINE: Bash Variables. (line 132) +* COMP_POINT: Bash Variables. (line 137) +* COMP_TYPE: Bash Variables. (line 145) +* COMP_WORDBREAKS: Bash Variables. (line 159) +* COMP_WORDS: Bash Variables. (line 165) +* completion-prefix-display-length: Readline Init File Syntax. (line 60) -* COMPREPLY: Bash Variables. (line 138) +* completion-query-items: Readline Init File Syntax. + (line 67) +* COMPREPLY: Bash Variables. (line 172) * convert-meta: Readline Init File Syntax. - (line 70) -* DIRSTACK: Bash Variables. (line 143) + (line 77) +* DIRSTACK: Bash Variables. (line 177) * disable-completion: Readline Init File Syntax. - (line 76) + (line 83) * editing-mode: Readline Init File Syntax. - (line 81) -* EMACS: Bash Variables. (line 153) + (line 88) +* EMACS: Bash Variables. (line 187) * enable-keypad: Readline Init File Syntax. - (line 87) -* EUID: Bash Variables. (line 158) + (line 94) +* EUID: Bash Variables. (line 192) * expand-tilde: Readline Init File Syntax. - (line 92) -* FCEDIT: Bash Variables. (line 162) -* FIGNORE: Bash Variables. (line 166) -* FUNCNAME: Bash Variables. (line 172) -* GLOBIGNORE: Bash Variables. (line 181) -* GROUPS: Bash Variables. (line 187) -* histchars: Bash Variables. (line 193) -* HISTCMD: Bash Variables. (line 208) -* HISTCONTROL: Bash Variables. (line 213) -* HISTFILE: Bash Variables. (line 229) -* HISTFILESIZE: Bash Variables. (line 233) -* HISTIGNORE: Bash Variables. (line 241) + (line 99) +* FCEDIT: Bash Variables. (line 196) +* FIGNORE: Bash Variables. (line 200) +* FUNCNAME: Bash Variables. (line 206) +* GLOBIGNORE: Bash Variables. (line 215) +* GROUPS: Bash Variables. (line 221) +* histchars: Bash Variables. (line 227) +* HISTCMD: Bash Variables. (line 242) +* HISTCONTROL: Bash Variables. (line 247) +* HISTFILE: Bash Variables. (line 263) +* HISTFILESIZE: Bash Variables. (line 267) +* HISTIGNORE: Bash Variables. (line 275) * history-preserve-point: Readline Init File Syntax. - (line 96) -* HISTSIZE: Bash Variables. (line 260) -* HISTTIMEFORMAT: Bash Variables. (line 264) + (line 103) +* history-size: Readline Init File Syntax. + (line 109) +* HISTSIZE: Bash Variables. (line 294) +* HISTTIMEFORMAT: Bash Variables. (line 298) * HOME: Bourne Shell Variables. (line 13) * horizontal-scroll-mode: Readline Init File Syntax. - (line 101) -* HOSTFILE: Bash Variables. (line 271) -* HOSTNAME: Bash Variables. (line 282) -* HOSTTYPE: Bash Variables. (line 285) + (line 114) +* HOSTFILE: Bash Variables. (line 307) +* HOSTNAME: Bash Variables. (line 318) +* HOSTTYPE: Bash Variables. (line 321) * IFS: Bourne Shell Variables. (line 18) -* IGNOREEOF: Bash Variables. (line 288) +* IGNOREEOF: Bash Variables. (line 324) * input-meta: Readline Init File Syntax. - (line 108) -* INPUTRC: Bash Variables. (line 298) + (line 121) +* INPUTRC: Bash Variables. (line 334) * isearch-terminators: Readline Init File Syntax. - (line 115) + (line 128) * keymap: Readline Init File Syntax. - (line 122) -* LANG: Bash Variables. (line 302) -* LC_ALL: Bash Variables. (line 306) -* LC_COLLATE: Bash Variables. (line 310) -* LC_CTYPE: Bash Variables. (line 317) + (line 135) +* LANG: Bash Variables. (line 338) +* LC_ALL: Bash Variables. (line 342) +* LC_COLLATE: Bash Variables. (line 346) +* LC_CTYPE: Bash Variables. (line 353) * LC_MESSAGES <1>: Locale Translation. (line 11) -* LC_MESSAGES: Bash Variables. (line 322) -* LC_NUMERIC: Bash Variables. (line 326) -* LINENO: Bash Variables. (line 330) -* LINES: Bash Variables. (line 334) -* MACHTYPE: Bash Variables. (line 339) +* LC_MESSAGES: Bash Variables. (line 358) +* LC_NUMERIC: Bash Variables. (line 362) +* LINENO: Bash Variables. (line 366) +* LINES: Bash Variables. (line 370) +* MACHTYPE: Bash Variables. (line 375) * MAIL: Bourne Shell Variables. (line 22) -* MAILCHECK: Bash Variables. (line 343) +* MAILCHECK: Bash Variables. (line 379) * MAILPATH: Bourne Shell Variables. (line 27) * mark-modified-lines: Readline Init File Syntax. - (line 135) + (line 148) * mark-symlinked-directories: Readline Init File Syntax. - (line 140) + (line 153) * match-hidden-files: Readline Init File Syntax. - (line 145) + (line 158) * meta-flag: Readline Init File Syntax. - (line 108) -* OLDPWD: Bash Variables. (line 351) + (line 121) +* OLDPWD: Bash Variables. (line 387) * OPTARG: Bourne Shell Variables. (line 34) -* OPTERR: Bash Variables. (line 354) +* OPTERR: Bash Variables. (line 390) * OPTIND: Bourne Shell Variables. (line 38) -* OSTYPE: Bash Variables. (line 358) +* OSTYPE: Bash Variables. (line 394) * output-meta: Readline Init File Syntax. - (line 152) + (line 165) * page-completions: Readline Init File Syntax. - (line 157) + (line 170) * PATH: Bourne Shell Variables. (line 42) -* PIPESTATUS: Bash Variables. (line 361) -* POSIXLY_CORRECT: Bash Variables. (line 366) -* PPID: Bash Variables. (line 375) -* PROMPT_COMMAND: Bash Variables. (line 379) +* PIPESTATUS: Bash Variables. (line 397) +* POSIXLY_CORRECT: Bash Variables. (line 402) +* PPID: Bash Variables. (line 411) +* PROMPT_COMMAND: Bash Variables. (line 415) +* PROMPT_DIRTRIM: Bash Variables. (line 419) * PS1: Bourne Shell Variables. (line 48) * PS2: Bourne Shell Variables. (line 53) -* PS3: Bash Variables. (line 383) -* PS4: Bash Variables. (line 388) -* PWD: Bash Variables. (line 394) -* RANDOM: Bash Variables. (line 397) -* REPLY: Bash Variables. (line 402) -* SECONDS: Bash Variables. (line 405) -* SHELL: Bash Variables. (line 411) -* SHELLOPTS: Bash Variables. (line 416) -* SHLVL: Bash Variables. (line 425) +* PS3: Bash Variables. (line 425) +* PS4: Bash Variables. (line 430) +* PWD: Bash Variables. (line 436) +* RANDOM: Bash Variables. (line 439) +* REPLY: Bash Variables. (line 444) +* revert-all-at-newline: Readline Init File Syntax. + (line 180) +* SECONDS: Bash Variables. (line 447) +* SHELL: Bash Variables. (line 453) +* SHELLOPTS: Bash Variables. (line 458) +* SHLVL: Bash Variables. (line 467) * show-all-if-ambiguous: Readline Init File Syntax. - (line 167) + (line 186) * show-all-if-unmodified: Readline Init File Syntax. - (line 173) + (line 192) * TEXTDOMAIN: Locale Translation. (line 11) * TEXTDOMAINDIR: Locale Translation. (line 11) -* TIMEFORMAT: Bash Variables. (line 430) -* TMOUT: Bash Variables. (line 468) -* TMPDIR: Bash Variables. (line 480) -* UID: Bash Variables. (line 484) +* TIMEFORMAT: Bash Variables. (line 472) +* TMOUT: Bash Variables. (line 510) +* TMPDIR: Bash Variables. (line 522) +* UID: Bash Variables. (line 526) * visible-stats: Readline Init File Syntax. - (line 182) + (line 201)  -File: bashref.info, Node: Function Index, Next: Concept Index, Prev: Variable Index, Up: Top +File: bashref.info, Node: Function Index, Next: Concept Index, Prev: Variable Index, Up: Indexes -Function Index -************** +D.4 Function Index +================== [index] * Menu: @@ -9285,16 +9736,16 @@ Function Index (line 41) * character-search-backward (M-C-]): Miscellaneous Commands. (line 46) -* clear-screen (C-l): Commands For Moving. (line 26) +* clear-screen (C-l): Commands For Moving. (line 34) * complete (): Commands For Completion. (line 6) -* copy-backward-word (): Commands For Killing. (line 49) -* copy-forward-word (): Commands For Killing. (line 54) -* copy-region-as-kill (): Commands For Killing. (line 45) +* copy-backward-word (): Commands For Killing. (line 58) +* copy-forward-word (): Commands For Killing. (line 63) +* copy-region-as-kill (): Commands For Killing. (line 54) * delete-char (C-d): Commands For Text. (line 6) * delete-char-or-list (): Commands For Completion. (line 34) -* delete-horizontal-space (): Commands For Killing. (line 37) +* delete-horizontal-space (): Commands For Killing. (line 46) * digit-argument (M-0, M-1, ... M--): Numeric Arguments. (line 6) * do-uppercase-version (M-a, M-b, M-X, ...): Miscellaneous Commands. (line 14) @@ -9321,7 +9772,7 @@ Function Index * insert-completions (M-*): Commands For Completion. (line 18) * kill-line (C-k): Commands For Killing. (line 6) -* kill-region (): Commands For Killing. (line 41) +* kill-region (): Commands For Killing. (line 50) * kill-whole-line (): Commands For Killing. (line 15) * kill-word (M-d): Commands For Killing. (line 19) * menu-complete (): Commands For Completion. @@ -9340,7 +9791,7 @@ Function Index * quoted-insert (C-q or C-v): Commands For Text. (line 20) * re-read-init-file (C-x C-r): Miscellaneous Commands. (line 6) -* redraw-current-line (): Commands For Moving. (line 30) +* redraw-current-line (): Commands For Moving. (line 38) * reverse-search-history (C-r): Commands For History. (line 27) * revert-line (M-r): Miscellaneous Commands. (line 25) @@ -9353,20 +9804,20 @@ Function Index * undo (C-_ or C-x C-u): Miscellaneous Commands. (line 22) * universal-argument (): Numeric Arguments. (line 10) -* unix-filename-rubout (): Commands For Killing. (line 32) +* unix-filename-rubout (): Commands For Killing. (line 41) * unix-line-discard (C-u): Commands For Killing. (line 12) -* unix-word-rubout (C-w): Commands For Killing. (line 28) +* unix-word-rubout (C-w): Commands For Killing. (line 37) * upcase-word (M-u): Commands For Text. (line 38) -* yank (C-y): Commands For Killing. (line 59) +* yank (C-y): Commands For Killing. (line 68) * yank-last-arg (M-. or M-_): Commands For History. (line 65) * yank-nth-arg (M-C-y): Commands For History. (line 56) -* yank-pop (M-y): Commands For Killing. (line 62) +* yank-pop (M-y): Commands For Killing. (line 71)  -File: bashref.info, Node: Concept Index, Prev: Function Index, Up: Top +File: bashref.info, Node: Concept Index, Prev: Function Index, Up: Indexes -Concept Index -************* +D.5 Concept Index +================= [index] * Menu: @@ -9396,7 +9847,7 @@ Concept Index (line 6) * command substitution: Command Substitution. (line 6) -* command timing: Pipelines. (line 8) +* command timing: Pipelines. (line 9) * commands, compound: Compound Commands. (line 6) * commands, conditional: Conditional Constructs. (line 6) @@ -9411,6 +9862,7 @@ Concept Index (line 6) * configuration: Basic Installation. (line 6) * control operator: Definitions. (line 21) +* coprocess: Coprocesses. (line 6) * directory stack: The Directory Stack. (line 6) * editing command lines: Readline Bare Essentials. (line 6) @@ -9420,7 +9872,7 @@ Concept Index * execution environment: Command Execution Environment. (line 6) * exit status <1>: Exit Status. (line 6) -* exit status: Definitions. (line 25) +* exit status: Definitions. (line 26) * expansion: Shell Expansions. (line 6) * expansion, arithmetic: Arithmetic Expansion. (line 6) @@ -9433,10 +9885,8 @@ Concept Index * expressions, arithmetic: Shell Arithmetic. (line 6) * expressions, conditional: Bash Conditional Expressions. (line 6) -* FDL, GNU Free Documentation License: GNU Free Documentation License. - (line 6) -* field: Definitions. (line 29) -* filename: Definitions. (line 34) +* field: Definitions. (line 30) +* filename: Definitions. (line 35) * filename expansion: Filename Expansion. (line 9) * foreground: Job Control Basics. (line 6) * functions, shell: Shell Functions. (line 6) @@ -9447,8 +9897,8 @@ Concept Index * history list: Bash History Facilities. (line 6) * History, how to use: Programmable Completion Builtins. - (line 209) -* identifier: Definitions. (line 50) + (line 225) +* identifier: Definitions. (line 51) * initialization file, readline: Readline Init File. (line 6) * installation: Basic Installation. (line 6) * interaction, readline: Readline Interaction. @@ -9456,9 +9906,9 @@ Concept Index * interactive shell <1>: Interactive Shells. (line 6) * interactive shell: Invoking Bash. (line 127) * internationalization: Locale Translation. (line 6) -* job: Definitions. (line 37) -* job control <1>: Definitions. (line 41) -* job control: Job Control Basics. (line 6) +* job: Definitions. (line 38) +* job control <1>: Job Control Basics. (line 6) +* job control: Definitions. (line 42) * kill ring: Readline Killing Commands. (line 19) * killing text: Readline Killing Commands. @@ -9466,12 +9916,12 @@ Concept Index * localization: Locale Translation. (line 6) * login shell: Invoking Bash. (line 124) * matching, pattern: Pattern Matching. (line 6) -* metacharacter: Definitions. (line 45) -* name: Definitions. (line 50) +* metacharacter: Definitions. (line 46) +* name: Definitions. (line 51) * native languages: Locale Translation. (line 6) * notation, readline: Readline Bare Essentials. (line 6) -* operator, shell: Definitions. (line 56) +* operator, shell: Definitions. (line 57) * parameter expansion: Shell Parameter Expansion. (line 6) * parameters: Shell Parameters. (line 6) @@ -9483,8 +9933,8 @@ Concept Index * pipeline: Pipelines. (line 6) * POSIX: Definitions. (line 9) * POSIX Mode: Bash POSIX Mode. (line 6) -* process group: Definitions. (line 60) -* process group ID: Definitions. (line 64) +* process group: Definitions. (line 62) +* process group ID: Definitions. (line 66) * process substitution: Process Substitution. (line 6) * programmable completion: Programmable Completion. @@ -9495,28 +9945,28 @@ Concept Index * Readline, how to use: Job Control Variables. (line 24) * redirection: Redirections. (line 6) -* reserved word: Definitions. (line 68) +* reserved word: Definitions. (line 70) * restricted shell: The Restricted Shell. (line 6) -* return status: Definitions. (line 73) +* return status: Definitions. (line 75) * shell arithmetic: Shell Arithmetic. (line 6) * shell function: Shell Functions. (line 6) * shell script: Shell Scripts. (line 6) * shell variable: Shell Parameters. (line 6) * shell, interactive: Interactive Shells. (line 6) -* signal: Definitions. (line 76) +* signal: Definitions. (line 78) * signal handling: Signals. (line 6) -* special builtin <1>: Definitions. (line 80) -* special builtin: Special Builtins. (line 6) +* special builtin <1>: Special Builtins. (line 6) +* special builtin: Definitions. (line 82) * startup files: Bash Startup Files. (line 6) * suspending jobs: Job Control Basics. (line 6) * tilde expansion: Tilde Expansion. (line 6) -* token: Definitions. (line 84) +* token: Definitions. (line 86) * translation, native languages: Locale Translation. (line 6) * variable, shell: Shell Parameters. (line 6) * variables, readline: Readline Init File Syntax. (line 37) -* word: Definitions. (line 88) +* word: Definitions. (line 90) * word splitting: Word Splitting. (line 6) * yanking text: Readline Killing Commands. (line 6) @@ -9524,129 +9974,132 @@ Concept Index  Tag Table: -Node: Top1359 -Node: Introduction3442 -Node: What is Bash?3670 -Node: What is a shell?4783 -Node: Definitions7324 -Node: Basic Shell Features10091 -Node: Shell Syntax11310 -Node: Shell Operation12340 -Node: Quoting13634 -Node: Escape Character14937 -Node: Single Quotes15422 -Node: Double Quotes15770 -Node: ANSI-C Quoting16895 -Node: Locale Translation17851 -Node: Comments18747 -Node: Shell Commands19361 -Node: Simple Commands20127 -Node: Pipelines20758 -Node: Lists22633 -Node: Compound Commands24264 -Node: Looping Constructs25048 -Node: Conditional Constructs27495 -Node: Command Grouping34954 -Node: Shell Functions36403 -Node: Shell Parameters40812 -Node: Positional Parameters43142 -Node: Special Parameters44042 -Node: Shell Expansions47006 -Node: Brace Expansion48931 -Node: Tilde Expansion51256 -Node: Shell Parameter Expansion53607 -Node: Command Substitution61077 -Node: Arithmetic Expansion62410 -Node: Process Substitution63260 -Node: Word Splitting64310 -Node: Filename Expansion65771 -Node: Pattern Matching67907 -Node: Quote Removal71225 -Node: Redirections71520 -Node: Executing Commands79250 -Node: Simple Command Expansion79920 -Node: Command Search and Execution81850 -Node: Command Execution Environment83856 -Node: Environment86627 -Node: Exit Status88287 -Node: Signals89491 -Node: Shell Scripts91455 -Node: Shell Builtin Commands93973 -Node: Bourne Shell Builtins95642 -Node: Bash Builtins112744 -Node: The Set Builtin142004 -Node: Special Builtins150379 -Node: Shell Variables151349 -Node: Bourne Shell Variables151789 -Node: Bash Variables153770 -Node: Bash Features174084 -Node: Invoking Bash174967 -Node: Bash Startup Files180776 -Node: Interactive Shells185634 -Node: What is an Interactive Shell?186044 -Node: Is this Shell Interactive?186694 -Node: Interactive Shell Behavior187509 -Node: Bash Conditional Expressions190785 -Node: Shell Arithmetic194364 -Node: Aliases197110 -Node: Arrays199678 -Node: The Directory Stack203027 -Node: Directory Stack Builtins203741 -Node: Printing a Prompt206632 -Node: The Restricted Shell209346 -Node: Bash POSIX Mode211178 -Node: Job Control218937 -Node: Job Control Basics219404 -Node: Job Control Builtins223780 -Node: Job Control Variables228107 -Node: Command Line Editing229265 -Node: Introduction and Notation230264 -Node: Readline Interaction231886 -Node: Readline Bare Essentials233077 -Node: Readline Movement Commands234866 -Node: Readline Killing Commands235831 -Node: Readline Arguments237751 -Node: Searching238795 -Node: Readline Init File240981 -Node: Readline Init File Syntax242128 -Node: Conditional Init Constructs254459 -Node: Sample Init File256992 -Node: Bindable Readline Commands260109 -Node: Commands For Moving261316 -Node: Commands For History262177 -Node: Commands For Text265332 -Node: Commands For Killing268005 -Node: Numeric Arguments270147 -Node: Commands For Completion271286 -Node: Keyboard Macros274879 -Node: Miscellaneous Commands275450 -Node: Readline vi Mode280761 -Node: Programmable Completion281675 -Node: Programmable Completion Builtins287467 -Node: Using History Interactively295063 -Node: Bash History Facilities295743 -Node: Bash History Builtins298438 -Node: History Interaction302295 -Node: Event Designators304851 -Node: Word Designators305866 -Node: Modifiers307505 -Node: Installing Bash308911 -Node: Basic Installation310041 -Node: Compilers and Options312733 -Node: Compiling For Multiple Architectures313474 -Node: Installation Names315138 -Node: Specifying the System Type315956 -Node: Sharing Defaults316672 -Node: Operation Controls317345 -Node: Optional Features318303 -Node: Reporting Bugs327234 -Node: Major Differences From The Bourne Shell328428 -Node: Copying This Manual345093 -Node: GNU Free Documentation License345369 -Node: Builtin Index367775 -Node: Reserved Word Index374324 -Node: Variable Index376760 -Node: Function Index387693 -Node: Concept Index394413 +Node: Top1344 +Node: Introduction3181 +Node: What is Bash?3409 +Node: What is a shell?4522 +Node: Definitions7062 +Node: Basic Shell Features9980 +Node: Shell Syntax11199 +Node: Shell Operation12229 +Node: Quoting13523 +Node: Escape Character14826 +Node: Single Quotes15311 +Node: Double Quotes15659 +Node: ANSI-C Quoting16784 +Node: Locale Translation17740 +Node: Comments18636 +Node: Shell Commands19254 +Node: Simple Commands20078 +Node: Pipelines20709 +Node: Lists22965 +Node: Compound Commands24694 +Node: Looping Constructs25498 +Node: Conditional Constructs27945 +Node: Command Grouping35951 +Node: Coprocesses37430 +Node: Shell Functions38919 +Node: Shell Parameters43380 +Node: Positional Parameters45796 +Node: Special Parameters46696 +Node: Shell Expansions49660 +Node: Brace Expansion51585 +Node: Tilde Expansion54338 +Node: Shell Parameter Expansion56689 +Node: Command Substitution65520 +Node: Arithmetic Expansion66853 +Node: Process Substitution67703 +Node: Word Splitting68753 +Node: Filename Expansion70376 +Node: Pattern Matching72516 +Node: Quote Removal76155 +Node: Redirections76450 +Node: Executing Commands84593 +Node: Simple Command Expansion85263 +Node: Command Search and Execution87193 +Node: Command Execution Environment89530 +Node: Environment92329 +Node: Exit Status93989 +Node: Signals95610 +Node: Shell Scripts97578 +Node: Shell Builtin Commands100096 +Node: Bourne Shell Builtins101773 +Node: Bash Builtins119091 +Node: Modifying Shell Behavior142764 +Node: The Set Builtin143109 +Node: The Shopt Builtin152149 +Node: Special Builtins163011 +Node: Shell Variables163990 +Node: Bourne Shell Variables164430 +Node: Bash Variables166411 +Node: Bash Features188729 +Node: Invoking Bash189612 +Node: Bash Startup Files195421 +Node: Interactive Shells200390 +Node: What is an Interactive Shell?200800 +Node: Is this Shell Interactive?201449 +Node: Interactive Shell Behavior202264 +Node: Bash Conditional Expressions205544 +Node: Shell Arithmetic209123 +Node: Aliases211869 +Node: Arrays214441 +Node: The Directory Stack218283 +Node: Directory Stack Builtins218997 +Node: Printing a Prompt221889 +Node: The Restricted Shell224641 +Node: Bash POSIX Mode226473 +Node: Job Control234326 +Node: Job Control Basics234786 +Node: Job Control Builtins239399 +Node: Job Control Variables243763 +Node: Command Line Editing244921 +Node: Introduction and Notation246488 +Node: Readline Interaction248110 +Node: Readline Bare Essentials249301 +Node: Readline Movement Commands251090 +Node: Readline Killing Commands252055 +Node: Readline Arguments253975 +Node: Searching255019 +Node: Readline Init File257205 +Node: Readline Init File Syntax258352 +Node: Conditional Init Constructs271586 +Node: Sample Init File274119 +Node: Bindable Readline Commands277236 +Node: Commands For Moving278443 +Node: Commands For History279587 +Node: Commands For Text282742 +Node: Commands For Killing285415 +Node: Numeric Arguments287866 +Node: Commands For Completion289005 +Node: Keyboard Macros292772 +Node: Miscellaneous Commands293343 +Node: Readline vi Mode298654 +Node: Programmable Completion299568 +Node: Programmable Completion Builtins305401 +Node: Using History Interactively313827 +Node: Bash History Facilities314511 +Node: Bash History Builtins317425 +Node: History Interaction321282 +Node: Event Designators323987 +Node: Word Designators325002 +Node: Modifiers326641 +Node: Installing Bash328045 +Node: Basic Installation329182 +Node: Compilers and Options331874 +Node: Compiling For Multiple Architectures332615 +Node: Installation Names334279 +Node: Specifying the System Type335097 +Node: Sharing Defaults335813 +Node: Operation Controls336486 +Node: Optional Features337444 +Node: Reporting Bugs346846 +Node: Major Differences From The Bourne Shell348040 +Node: GNU Free Documentation License364727 +Node: Indexes387188 +Node: Builtin Index387642 +Node: Reserved Word Index394396 +Node: Variable Index396844 +Node: Function Index408650 +Node: Concept Index415382  End Tag Table diff --git a/doc/bashref.texi b/doc/bashref.texi index c2892d63b..3f60390b0 100644 --- a/doc/bashref.texi +++ b/doc/bashref.texi @@ -16,7 +16,7 @@ This is Edition @value{EDITION}, last updated @value{UPDATED}, of @cite{The GNU Bash Reference Manual}, for @code{Bash}, Version @value{VERSION}. -Copyright @copyright{} 1988-2005 Free Software Foundation, Inc. +Copyright @copyright{} 1988--2009 Free Software Foundation, Inc. Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice @@ -26,13 +26,14 @@ are preserved on all copies. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no -Invariant Sections, with the Front-Cover texts being ``A GNU Manual,'' +Invariant Sections, with the Front-Cover texts being ``A GNU Manual'', and with the Back-Cover Texts as in (a) below. A copy of the license is -included in the section entitled ``GNU Free Documentation License.'' +included in the section entitled ``GNU Free Documentation License''. + +(a) The FSF's Back-Cover Text is: You are free to copy and modify +this GNU manual. Buying copies from GNU Press supports the FSF in +developing GNU and promoting software freedom.'' -(a) The FSF's Back-Cover Text is: ``You have freedom to copy and modify -this GNU Manual, like GNU software. Copies published by the Free -Software Foundation raise funds for GNU development.'' @end quotation @end copying @@ -102,22 +103,16 @@ reference on shell behavior. * Bash Features:: Features found only in Bash. * Job Control:: What job control is and how Bash allows you to use it. -* Using History Interactively:: Command History Expansion * Command Line Editing:: Chapter describing the command line editing features. +* Using History Interactively:: Command History Expansion * Installing Bash:: How to build and install Bash on your system. * Reporting Bugs:: How to report bugs in Bash. * Major Differences From The Bourne Shell:: A terse list of the differences between Bash and historical versions of /bin/sh. -* Copying This Manual:: Copying this manual. -* Builtin Index:: Index of Bash builtin commands. -* Reserved Word Index:: Index of Bash reserved words. -* Variable Index:: Quick reference helps you find the - variable you want. -* Function Index:: Index of bindable Readline functions. -* Concept Index:: General index for concepts described in - this manual. +* GNU Free Documentation License:: Copying and sharing this documentation. +* Indexes:: Various indexes for this manual. @end menu @end ifnottex @@ -164,7 +159,7 @@ and symbols are expanded to create larger expressions. A Unix shell is both a command interpreter and a programming language. As a command interpreter, the shell provides the user interface to the rich set of @sc{gnu} utilities. The programming -language features allow these utilitites to be combined. +language features allow these utilities to be combined. Files containing commands can be created, and become commands themselves. These new commands have the same status as system commands in directories such as @file{/bin}, allowing users @@ -231,10 +226,10 @@ than by an executable program somewhere in the file system. @item control operator @cindex control operator -A @code{word} that performs a control function. It is a @code{newline} +A @code{token} that performs a control function. It is a @code{newline} or one of the following: @samp{||}, @samp{&&}, @samp{&}, @samp{;}, @samp{;;}, -@samp{|}, @samp{(}, or @samp{)}. +@samp{|}, @samp{|&}, @samp{(}, or @samp{)}. @item exit status @cindex exit status @@ -280,6 +275,7 @@ Also referred to as an @code{identifier}. @cindex operator, shell A @code{control operator} or a @code{redirection operator}. @xref{Redirections}, for a list of redirection operators. +Operators contain at least one unquoted @code{metacharacter}. @item process group @cindex process group @@ -288,7 +284,7 @@ group @sc{id}. @item process group ID @cindex process group ID -A unique identifer that represents a @code{process group} +A unique identifier that represents a @code{process group} during its lifetime. @item reserved word @@ -313,12 +309,13 @@ A shell builtin command that has been classified as special by the @item token @cindex token -A sequence of characters considered a single unit by the shell. It is -either a @code{word} or an @code{operator}. +A sequence of characters considered a single unit by the shell. +It is either a @code{word} or an @code{operator}. @item word @cindex word -A @code{token} that is not an @code{operator}. +A sequence of characters treated as a unit by the shell. +Words may not include unquoted @code{metacharacters}. @end table @node Basic Shell Features @@ -562,7 +559,7 @@ fashion: In a non-interactive shell, or an interactive shell in which the @code{interactive_comments} option to the @code{shopt} -builtin is enabled (@pxref{Bash Builtins}), +builtin is enabled (@pxref{The Shopt Builtin}), a word beginning with @samp{#} causes that word and all remaining characters on that line to be ignored. An interactive shell without the @code{interactive_comments} @@ -589,6 +586,7 @@ some other grouping. commands. * Lists:: How to execute commands sequentially. * Compound Commands:: Shell commands for control flow. +* Coprocesses:: Two-way communication between commands. @end menu @node Simple Commands @@ -611,21 +609,28 @@ the command was terminated by signal @var{n}. @cindex pipeline @cindex commands, pipelines -A @code{pipeline} is a sequence of simple commands separated by -@samp{|}. +A @code{pipeline} is a sequence of simple commands separated by one of +the control operators @samp{|} or @samp{|&}. @rwindex time @rwindex ! @cindex command timing The format for a pipeline is @example -[@code{time} [@code{-p}]] [@code{!}] @var{command1} [@code{|} @var{command2} @dots{}] +[@code{time} [@code{-p}]] [@code{!}] @var{command1} [ [@code{|} or @code{|&}] @var{command2} @dots{}] @end example @noindent The output of each command in the pipeline is connected via a pipe to the input of the next command. -That is, each command reads the previous command's output. +That is, each command reads the previous command's output. This +connection is performed before any redirections specified by the +command. + +If @samp{|&} is used, the standard error of @var{command1} is connected to +@var{command2}'s standard input through the pipe; it is shorthand for +@code{2>&1 |}. This implicit redirection of the standard error is +performed after any redirections specified by the command. The reserved word @code{time} causes timing statistics to be printed for the pipeline once it finishes. @@ -686,8 +691,11 @@ Commands separated by a @samp{;} are executed sequentially; the shell waits for each command to terminate in turn. The return status is the exit status of the last command executed. -The control operators @samp{&&} and @samp{||} -denote @sc{and} lists and @sc{or} lists, respectively. +@sc{and} and @sc{or} lists are sequences of one or more pipelines +separated by the control operators @samp{&&} and @samp{||}, +respectively. @sc{and} and @sc{or} lists are executed with left +associativity. + An @sc{and} list has the form @example @var{command1} && @var{command2} @@ -848,20 +856,23 @@ The syntax of the @code{case} command is: @code{case} will selectively execute the @var{command-list} corresponding to the first @var{pattern} that matches @var{word}. If the shell option @code{nocasematch} -(see the description of @code{shopt} in @ref{Bash Builtins}) +(see the description of @code{shopt} in @ref{The Shopt Builtin}) is enabled, the match is performed without regard to the case of alphabetic characters. The @samp{|} is used to separate multiple patterns, and the @samp{)} operator terminates a pattern list. A list of patterns and an associated command-list is known -as a @var{clause}. Each clause must be terminated with @samp{;;}. +as a @var{clause}. + +Each clause must be terminated with @samp{;;}, @samp{,&}, or @samp{;;&}. The @var{word} undergoes tilde expansion, parameter expansion, command substitution, arithmetic expansion, and quote removal before matching is attempted. Each @var{pattern} undergoes tilde expansion, parameter expansion, command substitution, and arithmetic expansion. There may be an arbitrary number of @code{case} clauses, each terminated -by a @samp{;;}. The first pattern that matches determines the +by a @samp{;;}, @samp{;&}, or @samp{;;&}. +The first pattern that matches determines the command-list that is executed. Here is an example using @code{case} in a script that could be used to @@ -880,6 +891,15 @@ echo " legs." @end example @noindent + +If the @samp{;;} operator is used, no subsequent matches are attempted after +the first pattern match. +Using @samp{;&} in place of @samp{;;} causes execution to continue with +the @var{command-list} associated with the next clause, if any. +Using @samp{;;&} in place of @samp{;;} causes the shell to test the patterns +in the next clause, if any, and execute any associated @var{command-list} +on a successful match. + The return status is zero if no @var{pattern} is matched. Otherwise, the return status is the exit status of the @var{command-list} executed. @@ -897,7 +917,7 @@ The list of words following @code{in} is expanded, generating a list of items. The set of expanded words is printed on the standard error output stream, each preceded by a number. If the @samp{in @var{words}} is omitted, the positional parameters are printed, -as if @samp{in "$@@"} had been specifed. +as if @samp{in "$@@"} had been specified. The @env{PS3} prompt is then displayed and a line is read from the standard input. If the line consists of a number corresponding to one of the displayed @@ -960,7 +980,7 @@ When the @samp{==} and @samp{!=} operators are used, the string to the right of the operator is considered a pattern and matched according to the rules described below in @ref{Pattern Matching}. If the shell option @code{nocasematch} -(see the description of @code{shopt} in @ref{Bash Builtins}) +(see the description of @code{shopt} in @ref{The Shopt Builtin}) is enabled, the match is performed without regard to the case of alphabetic characters. The return value is 0 if the string matches (@samp{==}) or does not @@ -977,9 +997,11 @@ the pattern, and 1 otherwise. If the regular expression is syntactically incorrect, the conditional expression's return value is 2. If the shell option @code{nocasematch} -(see the description of @code{shopt} in @ref{Bash Builtins}) +(see the description of @code{shopt} in @ref{The Shopt Builtin}) is enabled, the match is performed without regard to the case of alphabetic characters. +Any part of the pattern may be quoted to force it to be matched as a +string. Substrings matched by parenthesized subexpressions within the regular expression are saved in the array variable @code{BASH_REMATCH}. The element of @code{BASH_REMATCH} with index 0 is the portion of the string @@ -1047,13 +1069,54 @@ The semicolon (or newline) following @var{list} is required. In addition to the creation of a subshell, there is a subtle difference between these two constructs due to historical reasons. The braces are @code{reserved words}, so they must be separated from the @var{list} -by @code{blank}s. The parentheses are @code{operators}, and are +by @code{blank}s or other shell metacharacters. +The parentheses are @code{operators}, and are recognized as separate tokens by the shell even if they are not separated from the @var{list} by whitespace. The exit status of both of these constructs is the exit status of @var{list}. +@node Coprocesses +@subsection Coprocesses +@cindex coprocess + +A @code{coprocess} is a shell command preceded by the @code{coproc} +reserved word. +A coprocess is executed asynchronously in a subshell, as if the command +had been terminated with the @samp{&} control operator, with a two-way pipe +established between the executing shell and the coprocess. + +The format for a coprocess is: +@example +@code{coproc} [@var{NAME}] @var{command} [@var{redirections}] +@end example + +@noindent +This creates a coprocess named @var{NAME}. +If @var{NAME} is not supplied, the default name is @var{COPROC}. + +When the coproc is executed, the shell creates an array variable +(@pxref{Arrays}) +named @var{NAME} in the context of the executing shell. +The standard output of @var{command} +is connected via a pipe to a file descriptor in the executing shell, +and that file descriptor is assigned to @var{NAME}[0]. +The standard input of @var{command} +is connected via a pipe to a file descriptor in the executing shell, +and that file descriptor is assigned to @var{NAME}[1]. +This pipe is established before any redirections specified by the +command (@pxref{Redirections}). +The file descriptors can be utilized as arguments to shell commands +and redirections using standard word expansions. + +The process id of the shell spawned to execute the coprocess is +available as the value of the variable @var{NAME}_PID. +The @code{wait} +builtin command may be used to wait for the coprocess to terminate. + +The return status of a coprocess is the exit status of @var{command}. + @node Shell Functions @section Shell Functions @cindex shell function @@ -1098,7 +1161,8 @@ Note that for historical reasons, in the most common usage the curly braces that surround the body of the function must be separated from the body by @code{blank}s or newlines. This is because the braces are reserved words and are only recognized -as such when they are separated by whitespace. +as such when they are separated from the command list +by whitespace or another shell metacharacter. Also, when using the braces, the @var{list} must be terminated by a semicolon, a @samp{&}, or a newline. @@ -1213,7 +1277,8 @@ When @samp{+=} is applied to an array variable using compound assignment (@pxref{Arrays}), the variable's value is not unset (as it is when using @samp{=}), and new values are appended to the array beginning at one greater than the array's -maximum index. +maximum index (for indexed arrays), or added as additional key-value pairs +in an associative array. When applied to a string-valued variable, @var{value} is expanded and appended to the variable's value. @@ -1377,7 +1442,7 @@ This mechanism is similar to @var{filename expansion} (@pxref{Filename Expansion}), but the file names generated need not exist. Patterns to be brace expanded take the form of an optional @var{preamble}, -followed by either a series of comma-separated strings or a sequnce expression +followed by either a series of comma-separated strings or a seqeunce expression between a pair of braces, followed by an optional @var{postscript}. The preamble is prefixed to each string contained within the braces, and @@ -1393,13 +1458,20 @@ bash$ echo a@{d,c,b@}e ade ace abe @end example -A sequence expression takes the form @code{@{@var{x}..@var{y}@}}, -where @var{x} and @var{y} are either integers or single characters. +A sequence expression takes the form @code{@{@var{x}..@var{y}[@var{incr}]@}}, +where @var{x} and @var{y} are either integers or single characters, +and @var{incr}, an optional increment, is an integer. When integers are supplied, the expression expands to each number between @var{x} and @var{y}, inclusive. +Supplied integers may be prefixed with @samp{0} to force each term to have the +same width. When either @var{x} or @var{y} begins with a zero, the shell +attempts to force all generated terms to contain the same number of digits, +zero-padding where necessary. When characters are supplied, the expression expands to each character lexicographically between @var{x} and @var{y}, inclusive. Note that both @var{x} and @var{y} must be of the same type. +When the increment is supplied, it is used as the difference between +each term. The default increment is 1 or -1 as appropriate. Brace expansion is performed before any other expansions, and any characters special to other expansions are preserved @@ -1591,20 +1663,27 @@ If @var{offset} evaluates to a number less than zero, the value is used as an offset from the end of the value of @var{parameter}. If @var{parameter} is @samp{@@}, the result is @var{length} positional parameters beginning at @var{offset}. -If @var{parameter} is an array name indexed by @samp{@@} or @samp{*}, -the result is the @var{length} +If @var{parameter} is an indexed array name subscripted +by @samp{@@} or @samp{*}, the result is the @var{length} members of the array beginning with @code{$@{@var{parameter}[@var{offset}]@}}. A negative @var{offset} is taken relative to one greater than the maximum index of the specified array. +Substring expansion applied to an associative array produces undefined +results. + Note that a negative offset must be separated from the colon by at least one space to avoid being confused with the @samp{:-} expansion. Substring indexing is zero-based unless the positional parameters -are used, in which case the indexing starts at 1. +are used, in which case the indexing starts at 1 by default. +If @var{offset} is 0, and the positional parameters are used, @code{$@@} is +prefixed to the list. @item $@{!@var{prefix}*@} @itemx $@{!@var{prefix}@@@} Expands to the names of variables whose names begin with @var{prefix}, separated by the first character of the @env{IFS} special variable. +When @samp{@@} is used and the expansion appears within double quotes, each +variable name expands to a separate word. @item $@{!@var{name}[@@]@} @itemx $@{!@var{name}[*]@} @@ -1678,6 +1757,29 @@ is an array variable subscripted with @samp{@@} or @samp{*}, the substitution operation is applied to each member of the array in turn, and the expansion is the resultant list. +@item $@{@var{parameter}^@var{pattern}@} +@itemx $@{@var{parameter}^^@var{pattern}@} +@itemx $@{@var{parameter},@var{pattern}@} +@itemx $@{@var{parameter},,@var{pattern}@} +This expansion modifies the case of alphabetic characters in @var{parameter}. +The @var{pattern} is expanded to produce a pattern just as in +pathname expansion. +The @samp{^} operator converts lowercase letters matching @var{pattern} +to uppercase; the @samp{,} operator converts matching uppercase letters +to lowercase. +The @samp{^^} and @samp{,,} expansions convert each matched character in the +expanded value; the @samp{^} and @samp{,} expansions match and convert only +the first character. +If @var{pattern} is omitted, it is treated like a @samp{?}, which matches +every character. +If @var{parameter} is @samp{@@} or @samp{*}, +the case modification operation is applied to each positional +parameter in turn, and the expansion is the resultant list. +If @var{parameter} +is an array variable subscripted with @samp{@@} or @samp{*}, +the case modification operation is applied to each member of the +array in turn, and the expansion is the resultant list. + @end table @node Command Substitution @@ -1781,13 +1883,15 @@ The shell scans the results of parameter expansion, command substitution, and arithmetic expansion that did not occur within double quotes for word splitting. -The shell treats each character of @env{$IFS} -as a delimiter, and splits the results of the other -expansions into words on these characters. If -@env{IFS} is unset, or its value is exactly @code{}, -the default, then any sequence of @env{IFS} -characters serves to delimit words. If @env{IFS} -has a value other than the default, then sequences of +The shell treats each character of @env{$IFS} as a delimiter, and splits +the results of the other expansions into words on these characters. +If @env{IFS} is unset, or its value is exactly @code{}, +the default, then sequences of +@code{ }, @code{}, and @code{} +at the beginning and end of the results of the previous +expansions are ignored, and any sequence of @env{IFS} +characters not at the beginning or end serves to delimit words. +If @env{IFS} has a value other than the default, then sequences of the whitespace characters @code{space} and @code{tab} are ignored at the beginning and end of the word, as long as the whitespace character is in the @@ -1840,7 +1944,7 @@ When matching a file name, the slash character must always be matched explicitly. In other cases, the @samp{.} character is not treated specially. -See the description of @code{shopt} in @ref{Bash Builtins}, +See the description of @code{shopt} in @ref{The Shopt Builtin}, for a description of the @code{nocaseglob}, @code{nullglob}, @code{failglob}, and @code{dotglob} options. @@ -1878,6 +1982,12 @@ The special pattern characters have the following meanings: @table @code @item * Matches any string, including the null string. +When the @code{globstar} shell option is enabled, and @samp{*} is used in +a filename expansion context, two adjacent @samp{*}s used as a single +pattern will match all files and zero or more directories and +subdirectories. +If followed by a @samp{/}, two adjacent @samp{*}s will match only +directories and subdirectories. @item ? Matches any single character. @item [@dots{}] @@ -2080,11 +2190,11 @@ The general format for appending output is: @end example @subsection Redirecting Standard Output and Standard Error -Bash allows both the +This construct allows both the standard output (file descriptor 1) and the standard error output (file descriptor 2) to be redirected to the file whose name is the -expansion of @var{word} with this construct. +expansion of @var{word}. There are two formats for redirecting standard output and standard error: @@ -2103,6 +2213,23 @@ This is semantically equivalent to >@var{word} 2>&1 @end example +@subsection Appending Standard Output and Standard Error +This construct allows both the +standard output (file descriptor 1) and +the standard error output (file descriptor 2) +to be appended to the file whose name is the +expansion of @var{word}. + +The format for appending standard output and standard error is: +@example +&>>@var{word} +@end example +@noindent +This is semantically equivalent to +@example +>>@var{word} 2>&1 +@end example + @subsection Here Documents This type of redirection instructs the shell to read input from the current source until a line containing only @var{word} @@ -2293,7 +2420,12 @@ pathnames of executable files to avoid multiple @env{PATH} searches (see the description of @code{hash} in @ref{Bourne Shell Builtins}). A full search of the directories in @env{$PATH} is performed only if the command is not found in the hash table. -If the search is unsuccessful, the shell prints an error +If the search is unsuccessful, the shell searches for a defined shell +function named @code{command_not_found_handle}. +If that function exists, it is invoked with the original command and +the original command's arguments as its arguments, and the function's +exit status becomes the exit status of the shell. +If that function is not defined, the shell prints an error message and returns an exit status of 127. @item @@ -2351,7 +2483,7 @@ options enabled at invocation (either by default or with command-line arguments) or by @code{set} @item -options enabled by @code{shopt} +options enabled by @code{shopt} (@pxref{The Shopt Builtin}) @item shell aliases defined with @code{alias} (@pxref{Aliases}) @@ -2402,6 +2534,10 @@ commands that are invoked as part of a pipeline are also executed in a subshell environment. Changes made to the subshell environment cannot affect the shell's execution environment. +Subshells spawned to execute command substitutions inherit the value of +the @option{-e} option from the parent shell. When not in @sc{posix} mode, +Bash clears the @option{-e} option in such subshells. + If a command is followed by a @samp{&} and job control is not active, the default standard input for the command is the empty file @file{/dev/null}. Otherwise, the invoked command inherits the file descriptors of the calling @@ -2449,6 +2585,14 @@ command in its environment. @subsection Exit Status @cindex exit status +The exit status of an executed command is the value returned by the +@var{waitpid} system call or equivalent function. Exit statuses +fall between 0 and 255, though, as explained below, the shell may +use values above 125 specially. Exit statuses from shell builtins and +compound commands are also limited to this range. Under certain +circumstances, the shell will use special values to indicate specific +failure modes. + For the shell's purposes, a command which exits with a zero exit status has succeeded. A non-zero exit status indicates failure. @@ -2508,7 +2652,7 @@ builtin (@pxref{Job Control Builtins}) or marked to not receive @code{SIGHUP} using @code{disown -h}. If the @code{huponexit} shell option has been set with @code{shopt} -(@pxref{Bash Builtins}), Bash sends a @code{SIGHUP} to all jobs when +(@pxref{The Shopt Builtin}), Bash sends a @code{SIGHUP} to all jobs when an interactive login shell exits. If Bash is waiting for a command to complete and receives a signal @@ -2588,8 +2732,8 @@ under another shell. * Bourne Shell Builtins:: Builtin commands inherited from the Bourne Shell. * Bash Builtins:: Table of builtins specific to Bash. -* The Set Builtin:: This builtin is so overloaded it - deserves its own section. +* Modifying Shell Behavior:: Builtins to modify shell attributes and + optional behavior. * Special Builtins:: Builtin commands classified specially by POSIX. @end menu @@ -2717,7 +2861,7 @@ exec [-cl] [-a @var{name}] [@var{command} [@var{arguments}]] If @var{command} is supplied, it replaces the shell without creating a new process. If the @option{-l} option is supplied, the shell places a dash at the -beginning of the zeroth arg passed to @var{command}. +beginning of the zeroth argument passed to @var{command}. This is what the @code{login} program does. The @option{-c} option causes @var{command} to be executed with an empty environment. @@ -2851,13 +2995,15 @@ is supplied. @item readonly @btindex readonly @example -readonly [-apf] [@var{name}[=@var{value}]] @dots{} +readonly [-aApf] [@var{name}[=@var{value}]] @dots{} @end example Mark each @var{name} as readonly. The values of these names may not be changed by subsequent assignment. If the @option{-f} option is supplied, each @var{name} refers to a shell function. -The @option{-a} option means each @var{name} refers to an array variable. +The @option{-a} option means each @var{name} refers to an indexed +array variable; the @option{-A} option means each @var{name} refers +to an associative array variable. If no @var{name} arguments are given, or if the @option{-p} option is supplied, a list of all readonly names is printed. The @option{-p} option causes output to be displayed in a format that @@ -2892,8 +3038,9 @@ shift [@var{n}] @end example Shift the positional parameters to the left by @var{n}. The positional parameters from @var{n}+1 @dots{} @code{$#} are -renamed to @code{$1} @dots{} @code{$#}-@var{n}+1. -Parameters represented by the numbers @code{$#} to @var{n}+1 are unset. +renamed to @code{$1} @dots{} @code{$#}-@var{n}. +Parameters represented by the numbers @code{$#} to @code{$#}-@var{n}+1 +are unset. @var{n} must be a non-negative number less than or equal to @code{$#}. If @var{n} is zero or greater than @code{$#}, the positional parameters are not changed. @@ -2917,6 +3064,7 @@ be a @code{]}. Expressions may be combined using the following operators, listed in decreasing order of precedence. +The evaluation depends on the number of arguments; see below. @table @code @item ! @var{expr} @@ -2957,14 +3105,14 @@ If the second argument is one of the binary conditional operators (@pxref{Bash Conditional Expressions}), the result of the expression is the result of the binary test using the first and third arguments as operands. +The @samp{-a} and @samp{-o} operators are considered binary operators +when there are three arguments. If the first argument is @samp{!}, the value is the negation of the two-argument test using the second and third arguments. If the first argument is exactly @samp{(} and the third argument is exactly @samp{)}, the result is the one-argument test of the second argument. Otherwise, the expression is false. -The @samp{-a} and @samp{-o} operators are considered binary operators -in this case. @item 4 arguments If the first argument is @samp{!}, the result is the negation of @@ -3014,7 +3162,7 @@ before every simple command, @code{for} command, @code{case} command, @code{select} command, every arithmetic @code{for} command, and before the first command executes in a shell function. Refer to the description of the @code{extglob} option to the -@code{shopt} builtin (@pxref{Bash Builtins}) for details of its +@code{shopt} builtin (@pxref{The Shopt Builtin}) for details of its effect on the @code{DEBUG} trap. If a @var{sigspec} is @code{ERR}, the command @var{arg} is executed whenever a simple command has a non-zero exit status, @@ -3022,7 +3170,8 @@ subject to the following conditions. The @code{ERR} trap is not executed if the failed command is part of the command list immediately following an @code{until} or @code{while} keyword, part of the test in an @code{if} statement, -part of a @code{&&} or @code{||} list, or if the command's return +part of a command executed in a @code{&&} or @code{||} list, +or if the command's return status is being inverted using @code{!}. These are the same conditions obeyed by the @code{errexit} option. If a @var{sigspec} is @code{RETURN}, the command @var{arg} is executed @@ -3110,9 +3259,10 @@ key and function bindings, bind a key sequence to a Readline function or macro, or set a Readline variable. Each non-option argument is a command as it would appear in a -a Readline initialization file (@pxref{Readline Init File}), +Readline initialization file (@pxref{Readline Init File}), but each binding or command must be passed as a separate argument; e.g., @samp{"\C-x\C-r":re-read-init-file}. + Options, if supplied, have the following meanings: @table @code @@ -3171,7 +3321,13 @@ Remove any current binding for @var{keyseq}. @item -x @var{keyseq:shell-command} Cause @var{shell-command} to be executed whenever @var{keyseq} is entered. - +When @var{shell-command} is executed, the shell sets the +@code{READLINE_LINE} variable to the contents of the Readline line +buffer and the @code{READLINE_POINT} variable to the current location +of the insertion point. +If the executed command changes the value of @code{READLINE_LINE} or +@code{READLINE_POINT}, those new values will be reflected in the +editing state. @end table @noindent @@ -3238,7 +3394,7 @@ zero if @var{command} is found, and non-zero if not. @item declare @btindex declare @example -declare [-afFirtx] [-p] [@var{name}[=@var{value}] @dots{}] +declare [-aAfFilrtux] [-p] [@var{name}[=@var{value}] @dots{}] @end example Declare variables and give them attributes. If no @var{name}s @@ -3246,11 +3402,20 @@ are given, then display the values of variables instead. The @option{-p} option will display the attributes and values of each @var{name}. -When @option{-p} is used, additional options are ignored. +When @option{-p} is used with @var{name} arguments, additional options +are ignored. + +When @option{-p} is supplied without @var{name} arguments, @code{declare} +will display the attributes and values of all variables having the +attributes specified by the additional options. +If no other options are supplied with @option{-p}, @code{declare} will +display the attributes and values of all shell variables. The @option{-f} +option will restrict the display to shell functions. + The @option{-F} option inhibits the display of function definitions; only the function name and attributes are printed. If the @code{extdebug} shell option is enabled using @code{shopt} -(@pxref{Bash Builtins}), the source file name and line number where +(@pxref{The Shopt Builtin}), the source file name and line number where the function is defined are displayed as well. @option{-F} implies @option{-f}. The following options can be used to restrict output to variables with @@ -3258,7 +3423,10 @@ the specified attributes or to give variables attributes: @table @code @item -a -Each @var{name} is an array variable (@pxref{Arrays}). +Each @var{name} is an indexed array variable (@pxref{Arrays}). + +@item -A +Each @var{name} is an associative array variable (@pxref{Arrays}). @item -f Use function names only. @@ -3268,6 +3436,11 @@ The variable is to be treated as an integer; arithmetic evaluation (@pxref{Shell Arithmetic}) is performed when the variable is assigned a value. +@item -l +When the variable is assigned a value, all upper-case characters are +converted to lower-case. +The upper-case attribute is disabled. + @item -r Make @var{name}s readonly. These names cannot then be assigned values by subsequent assignment statements or unset. @@ -3278,12 +3451,20 @@ Traced functions inherit the @code{DEBUG} and @code{RETURN} traps from the calling shell. The trace attribute has no special meaning for variables. +@item -u +When the variable is assigned a value, all lower-case characters are +converted to upper-case. +The lower-case attribute is disabled. + @item -x Mark each @var{name} for export to subsequent commands via the environment. @end table -Using @samp{+} instead of @samp{-} turns off the attribute instead. +Using @samp{+} instead of @samp{-} turns off the attribute instead, +with the exceptions that @samp{+a} +may not be used to destroy an array variable and @samp{+r} will not +remove the readonly attribute. When used in a function, @code{declare} makes each @var{name} local, as with the @code{local} command. If a variable name is followed by =@var{value}, the value of the variable is set to @var{value}. @@ -3323,7 +3504,7 @@ alert (bell) @item \b backspace @item \c -suppress trailing newline +suppress further output @item \e escape @item \f @@ -3349,7 +3530,7 @@ the eight-bit character whose value is the hexadecimal value @var{HH} @item enable @btindex enable @example -enable [-n] [-p] [-f @var{filename}] [-ads] [@var{name} @dots{}] +enable [-a] [-dnps] [-f @var{filename}] [@var{name} @dots{}] @end example Enable and disable builtin shell commands. Disabling a builtin allows a disk command which has the same name @@ -3381,14 +3562,24 @@ or there is an error loading a new builtin from a shared object. @item help @btindex help @example -help [-s] [@var{pattern}] +help [-dms] [@var{pattern}] @end example Display helpful information about builtin commands. If @var{pattern} is specified, @code{help} gives detailed help on all commands matching @var{pattern}, otherwise a list of the builtins is printed. -The @option{-s} option restricts the information displayed to a short -usage synopsis. + +Options, if supplied, have the following meanings: + +@table @code +@item -d +Display a short description of each @var{pattern} +@item -m +Display the description of each @var{pattern} in a manpage-like format +@item -s +Display only a short usage synopsis for each @var{pattern} +@end table + The return status is zero unless no command matches @var{pattern}. @item let @@ -3424,10 +3615,50 @@ logout [@var{n}] Exit a login shell, returning a status of @var{n} to the shell's parent. +@item mapfile +@btindex mapfile +@example +mapfile [-n @var{count}] [-O @var{origin}] [-s @var{count}] [-t] [-u @var{fd}] [ +-C @var{callback}] [-c @var{quantum}] [@var{array}] +@end example +Read lines from the standard input into array variable @var{array}, +or from file descriptor @var{fd} +if the @option{-u} option is supplied. +The variable @code{MAPFILE} is the default @var{array}. +Options, if supplied, have the following meanings: +@table @code + +@item -n +Copy at most @var{count} lines. If @var{count} is 0, all lines are copied. +@item -O +Begin assigning to @var{array} at index @var{origin}. +The default index is 0. +@item -s +Discard the first @var{count} lines read. +@item -t +Remove a trailing line from each line read. +@item -u +Read lines from file descriptor @var{fd} instead of the standard input. +@item -C +Evaluate @var{callback} each time @var{quantum}P lines are read. +The @option{-c} option specifies @var{quantum}. +@item -c +Specify the number of lines read between each call to @var{callback}. +@end table + +If @option{-C} is specified without @option{-c}, +the default quantum is 5000. + +If not supplied with an explicit origin, @code{mapfile} will clear @var{array} +before assigning to it. + +@code{mapfile} returns successfully unless an invalid option or option +argument is supplied, or @var{array} is invalid or unassignable. + @item printf @btindex printf @example -@code{printf} [-v @var{var}] @var{format} [@var{arguments}] +printf [-v @var{var}] @var{format} [@var{arguments}] @end example Write the formatted @var{arguments} to the standard output under the control of the @var{format}. @@ -3457,7 +3688,7 @@ non-zero on failure. @item read @btindex read @example -read [-ers] [-a @var{aname}] [-d @var{delim}] [-n @var{nchars}] [-p @var{prompt}] [-t @var{timeout}] [-u @var{fd}] [@var{name} @dots{}] +read [-ers] [-a @var{aname}] [-d @var{delim}] [-i @var{text}] [-n @var{nchars}] [-p @var{prompt}] [-t @var{timeout}] [-u @var{fd}] [@var{name} @dots{}] @end example One line is read from the standard input, or from the file descriptor @var{fd} supplied as an argument to the @option{-u} option, and the first word @@ -3473,8 +3704,9 @@ meaning for the next character read and for line continuation. If no names are supplied, the line read is assigned to the variable @env{REPLY}. The return code is zero, unless end-of-file is encountered, @code{read} -times out, or an invalid file descriptor is supplied as the argument to -@option{-u}. +times out (in which case the return code is greater than 128), or an +invalid file descriptor is supplied as the argument to @option{-u}. + Options, if supplied, have the following meanings: @table @code @@ -3490,6 +3722,12 @@ rather than newline. @item -e Readline (@pxref{Command Line Editing}) is used to obtain the line. +Readline uses the current (or default, if line editing was not previously +active) editing settings. + +@item -i @var{text} +If Readline is being used to read the line, @var{text} is placed into +the editing buffer before editing begins. @item -n @var{nchars} @code{read} returns after reading @var{nchars} characters rather than @@ -3513,369 +3751,117 @@ not echoed. @item -t @var{timeout} Cause @code{read} to time out and return failure if a complete line of input is not read within @var{timeout} seconds. -This option has no effect if @code{read} is not reading input from the -terminal or a pipe. +@var{timeout} may be a decimal number with a fractional portion following +the decimal point. +This option is only effective if @code{read} is reading input from a +terminal, pipe, or other special file; it has no effect when reading +from regular files. +If @var{timeout} is 0, @code{read} returns success if input is available on +the specified file descriptor, failure otherwise. +The exit status is greater than 128 if the timeout is exceeded. @item -u @var{fd} Read input from file descriptor @var{fd}. @end table -@item shopt -@btindex shopt +@item source +@btindex source @example -shopt [-pqsu] [-o] [@var{optname} @dots{}] +source @var{filename} @end example -Toggle the values of variables controlling optional shell behavior. -With no options, or with the @option{-p} option, a list of all settable -options is displayed, with an indication of whether or not each is set. -The @option{-p} option causes output to be displayed in a form that -may be reused as input. -Other options have the following meanings: +A synonym for @code{.} (@pxref{Bourne Shell Builtins}). -@table @code -@item -s -Enable (set) each @var{optname}. +@item type +@btindex type +@example +type [-afptP] [@var{name} @dots{}] +@end example +For each @var{name}, indicate how it would be interpreted if used as a +command name. -@item -u -Disable (unset) each @var{optname}. +If the @option{-t} option is used, @code{type} prints a single word +which is one of @samp{alias}, @samp{function}, @samp{builtin}, +@samp{file} or @samp{keyword}, +if @var{name} is an alias, shell function, shell builtin, +disk file, or shell reserved word, respectively. +If the @var{name} is not found, then nothing is printed, and +@code{type} returns a failure status. -@item -q -Suppresses normal output; the return status -indicates whether the @var{optname} is set or unset. -If multiple @var{optname} arguments are given with @option{-q}, -the return status is zero if all @var{optnames} are enabled; -non-zero otherwise. +If the @option{-p} option is used, @code{type} either returns the name +of the disk file that would be executed, or nothing if @option{-t} +would not return @samp{file}. -@item -o -Restricts the values of -@var{optname} to be those defined for the @option{-o} option to the -@code{set} builtin (@pxref{The Set Builtin}). -@end table +The @option{-P} option forces a path search for each @var{name}, even if +@option{-t} would not return @samp{file}. -If either @option{-s} or @option{-u} -is used with no @var{optname} arguments, the display is limited to -those options which are set or unset, respectively. +If a command is hashed, @option{-p} and @option{-P} print the hashed value, +not necessarily the file that appears first in @code{$PATH}. -Unless otherwise noted, the @code{shopt} options are disabled (off) -by default. +If the @option{-a} option is used, @code{type} returns all of the places +that contain an executable named @var{file}. +This includes aliases and functions, if and only if the @option{-p} option +is not also used. -The return status when listing options is zero if all @var{optnames} -are enabled, non-zero otherwise. When setting or unsetting options, -the return status is zero unless an @var{optname} is not a valid shell -option. +If the @option{-f} option is used, @code{type} does not attempt to find +shell functions, as with the @code{command} builtin. -The list of @code{shopt} options is: -@table @code -@item cdable_vars -If this is set, an argument to the @code{cd} -builtin command that -is not a directory is assumed to be the name of a variable whose -value is the directory to change to. +The return status is zero if all of the @var{names} are found, non-zero +if any are not found. -@item cdspell -If set, minor errors in the spelling of a directory component in a -@code{cd} command will be corrected. -The errors checked for are transposed characters, -a missing character, and a character too many. -If a correction is found, the corrected path is printed, -and the command proceeds. -This option is only used by interactive shells. +@item typeset +@btindex typeset +@example +typeset [-afFrxi] [-p] [@var{name}[=@var{value}] @dots{}] +@end example +The @code{typeset} command is supplied for compatibility with the Korn +shell; however, it has been deprecated in favor of the @code{declare} +builtin command. -@item checkhash -If this is set, Bash checks that a command found in the hash -table exists before trying to execute it. If a hashed command no -longer exists, a normal path search is performed. +@item ulimit +@btindex ulimit +@example +ulimit [-abcdefilmnpqrstuvxHST] [@var{limit}] +@end example +@code{ulimit} provides control over the resources available to processes +started by the shell, on systems that allow such control. If an +option is given, it is interpreted as follows: +@table @code +@item -S +Change and report the soft limit associated with a resource. -@item checkwinsize -If set, Bash checks the window size after each command -and, if necessary, updates the values of -@env{LINES} and @env{COLUMNS}. +@item -H +Change and report the hard limit associated with a resource. -@item cmdhist -If set, Bash -attempts to save all lines of a multiple-line -command in the same history entry. This allows -easy re-editing of multi-line commands. +@item -a +All current limits are reported. -@item compat31 -If set, Bash -changes its behavior to that of version 3.1 with respect to quoted -arguments to the conditional command's =~ operator. +@item -b +The maximum socket buffer size. -@item dotglob -If set, Bash includes filenames beginning with a `.' in -the results of filename expansion. +@item -c +The maximum size of core files created. -@item execfail -If this is set, a non-interactive shell will not exit if -it cannot execute the file specified as an argument to the @code{exec} -builtin command. An interactive shell does not exit if @code{exec} -fails. +@item -d +The maximum size of a process's data segment. -@item expand_aliases -If set, aliases are expanded as described below under Aliases, -@ref{Aliases}. -This option is enabled by default for interactive shells. +@item -e +The maximum scheduling priority ("nice"). -@item extdebug -If set, behavior intended for use by debuggers is enabled: +@item -f +The maximum size of files written by the shell and its children. -@enumerate -@item -The @option{-F} option to the @code{declare} builtin (@pxref{Bash Builtins}) -displays the source file name and line number corresponding to each function -name supplied as an argument. +@item -i +The maximum number of pending signals. -@item -If the command run by the @code{DEBUG} trap returns a non-zero value, the -next command is skipped and not executed. +@item -l +The maximum size that may be locked into memory. -@item -If the command run by the @code{DEBUG} trap returns a value of 2, and the -shell is executing in a subroutine (a shell function or a shell script -executed by the @code{.} or @code{source} builtins), a call to -@code{return} is simulated. +@item -m +The maximum resident set size. -@item -@code{BASH_ARGC} and @code{BASH_ARGV} are updated as described in their -descriptions (@pxref{Bash Variables}). - -@item -Function tracing is enabled: command substitution, shell functions, and -subshells invoked with @code{( @var{command} )} inherit the -@code{DEBUG} and @code{RETURN} traps. - -@item -Error tracing is enabled: command substitution, shell functions, and -subshells invoked with @code{( @var{command} )} inherit the -@code{ERROR} trap. -@end enumerate - -@item extglob -If set, the extended pattern matching features described above -(@pxref{Pattern Matching}) are enabled. - -@item extquote -If set, @code{$'@var{string}'} and @code{$"@var{string}"} quoting is -performed within @code{$@{@var{parameter}@}} expansions -enclosed in double quotes. This option is enabled by default. - -@item failglob -If set, patterns which fail to match filenames during pathname expansion -result in an expansion error. - -@item force_fignore -If set, the suffixes specified by the @env{FIGNORE} shell variable -cause words to be ignored when performing word completion even if -the ignored words are the only possible completions. -@xref{Bash Variables}, for a description of @env{FIGNORE}. -This option is enabled by default. - -@item gnu_errfmt -If set, shell error messages are written in the standard @sc{gnu} error -message format. - -@item histappend -If set, the history list is appended to the file named by the value -of the @env{HISTFILE} -variable when the shell exits, rather than overwriting the file. - -@item histreedit -If set, and Readline -is being used, a user is given the opportunity to re-edit a -failed history substitution. - -@item histverify -If set, and Readline -is being used, the results of history substitution are not immediately -passed to the shell parser. Instead, the resulting line is loaded into -the Readline editing buffer, allowing further modification. - -@item hostcomplete -If set, and Readline is being used, Bash will attempt to perform -hostname completion when a word containing a @samp{@@} is being -completed (@pxref{Commands For Completion}). This option is enabled -by default. - -@item huponexit -If set, Bash will send @code{SIGHUP} to all jobs when an interactive -login shell exits (@pxref{Signals}). - -@item interactive_comments -Allow a word beginning with @samp{#} -to cause that word and all remaining characters on that -line to be ignored in an interactive shell. -This option is enabled by default. - -@item lithist -If enabled, and the @code{cmdhist} -option is enabled, multi-line commands are saved to the history with -embedded newlines rather than using semicolon separators where possible. - -@item login_shell -The shell sets this option if it is started as a login shell -(@pxref{Invoking Bash}). -The value may not be changed. - -@item mailwarn -If set, and a file that Bash is checking for mail has been -accessed since the last time it was checked, the message -@code{"The mail in @var{mailfile} has been read"} is displayed. - -@item no_empty_cmd_completion -If set, and Readline is being used, Bash will not attempt to search -the @env{PATH} for possible completions when completion is attempted -on an empty line. - -@item nocaseglob -If set, Bash matches filenames in a case-insensitive fashion when -performing filename expansion. - -@item nocasematch -If set, Bash matches patterns in a case-insensitive fashion when -performing matching while executing @code{case} or @code{[[} -conditional commands. - -@item nullglob -If set, Bash allows filename patterns which match no -files to expand to a null string, rather than themselves. - -@item progcomp -If set, the programmable completion facilities -(@pxref{Programmable Completion}) are enabled. -This option is enabled by default. - -@item promptvars -If set, prompt strings undergo -parameter expansion, command substitution, arithmetic -expansion, and quote removal after being expanded -as described below (@pxref{Printing a Prompt}). -This option is enabled by default. - -@item restricted_shell -The shell sets this option if it is started in restricted mode -(@pxref{The Restricted Shell}). -The value may not be changed. -This is not reset when the startup files are executed, allowing -the startup files to discover whether or not a shell is restricted. - -@item shift_verbose -If this is set, the @code{shift} -builtin prints an error message when the shift count exceeds the -number of positional parameters. - -@item sourcepath -If set, the @code{source} builtin uses the value of @env{PATH} -to find the directory containing the file supplied as an argument. -This option is enabled by default. - -@item xpg_echo -If set, the @code{echo} builtin expands backslash-escape sequences -by default. - -@end table - -@noindent -The return status when listing options is zero if all @var{optnames} -are enabled, non-zero otherwise. -When setting or unsetting options, the return status is zero unless an -@var{optname} is not a valid shell option. - -@item source -@btindex source -@example -source @var{filename} -@end example -A synonym for @code{.} (@pxref{Bourne Shell Builtins}). - -@item type -@btindex type -@example -type [-afptP] [@var{name} @dots{}] -@end example -For each @var{name}, indicate how it would be interpreted if used as a -command name. - -If the @option{-t} option is used, @code{type} prints a single word -which is one of @samp{alias}, @samp{function}, @samp{builtin}, -@samp{file} or @samp{keyword}, -if @var{name} is an alias, shell function, shell builtin, -disk file, or shell reserved word, respectively. -If the @var{name} is not found, then nothing is printed, and -@code{type} returns a failure status. - -If the @option{-p} option is used, @code{type} either returns the name -of the disk file that would be executed, or nothing if @option{-t} -would not return @samp{file}. - -The @option{-P} option forces a path search for each @var{name}, even if -@option{-t} would not return @samp{file}. - -If a command is hashed, @option{-p} and @option{-P} print the hashed value, -not necessarily the file that appears first in @code{$PATH}. - -If the @option{-a} option is used, @code{type} returns all of the places -that contain an executable named @var{file}. -This includes aliases and functions, if and only if the @option{-p} option -is not also used. - -If the @option{-f} option is used, @code{type} does not attempt to find -shell functions, as with the @code{command} builtin. - -The return status is zero if any of the @var{names} are found, non-zero -if none are found. - -@item typeset -@btindex typeset -@example -typeset [-afFrxi] [-p] [@var{name}[=@var{value}] @dots{}] -@end example -The @code{typeset} command is supplied for compatibility with the Korn -shell; however, it has been deprecated in favor of the @code{declare} -builtin command. - -@item ulimit -@btindex ulimit -@example -ulimit [-acdefilmnpqrstuvxSH] [@var{limit}] -@end example -@code{ulimit} provides control over the resources available to processes -started by the shell, on systems that allow such control. If an -option is given, it is interpreted as follows: -@table @code -@item -S -Change and report the soft limit associated with a resource. - -@item -H -Change and report the hard limit associated with a resource. - -@item -a -All current limits are reported. - -@item -c -The maximum size of core files created. - -@item -d -The maximum size of a process's data segment. - -@item -e -The maximum scheduling priority ("nice"). - -@item -f -The maximum size of files written by the shell and its children. - -@item -i -The maximum number of pending signals. - -@item -l -The maximum size that may be locked into memory. - -@item -m -The maximum resident set size. - -@item -n -The maximum number of open file descriptors. +@item -n +The maximum number of open file descriptors. @item -p The pipe buffer size. @@ -3901,12 +3887,17 @@ The maximum amount of virtual memory available to the process. @item -x The maximum number of file locks. +@item -T +The maximum number of threads. + @end table If @var{limit} is given, it is the new value of the specified resource; the special @var{limit} values @code{hard}, @code{soft}, and @code{unlimited} stand for the current hard limit, the current soft limit, and no limit, respectively. +A hard limit cannot be increased by a non-root user once it is set; +a soft limit may be increased up to the value of the hard limit. Otherwise, the current value of the soft limit for the specified resource is printed, unless the @option{-H} option is supplied. When setting new limits, if neither @option{-H} nor @option{-S} is supplied, @@ -3931,16 +3922,28 @@ Aliases are described in @ref{Aliases}. @end table +@node Modifying Shell Behavior +@section Modifying Shell Behavior + +@menu +* The Set Builtin:: Change the values of shell attributes and + positional parameters. +* The Shopt Builtin:: Modify shell optional behavior. +@end menu + @node The Set Builtin -@section The Set Builtin +@subsection The Set Builtin -This builtin is so complicated that it deserves its own section. +This builtin is so complicated that it deserves its own section. @code{set} +allows you to change the values of shell options and set the positional +parameters, or to display the names and values of shell variables. @table @code @item set @btindex set @example -set [--abefhkmnptuvxBCHP] [-o @var{option}] [@var{argument} @dots{}] +set [--abefhkmnptuvxBCEHPT] [-o @var{option}] [@var{argument} @dots{}] +set [+abefhkmnptuvxBCEHPT] [+o @var{option}] [@var{argument} @dots{}] @end example If no options or arguments are supplied, @code{set} displays the names @@ -3965,10 +3968,14 @@ immediately, rather than before printing the next primary prompt. @item -e Exit immediately if a simple command (@pxref{Simple Commands}) exits with a non-zero status, unless the command that fails is part of the -command list immediately following a @code{while} or @code{until} -keyword, part of the test in an @code{if} statement, -part of a @code{&&} or @code{||} list, or if the command's return -status is being inverted using @code{!}. +command list immediately following a @code{while} or @code{until} keyword, +part of the test in an @code{if} statement, +part of a command executed in a @code{&&} or @code{||b} list, +any command in a pipeline but the last, +or if the command's return status is being inverted using @code{!}. +Failing simple commands that are part of shell functions or command lists +enclosed in braces or parentheses satisfying the above conditions do not +cause the shell to exit. A trap on @code{ERR}, if set, is executed before the shell exits. @item -f @@ -4004,6 +4011,7 @@ Same as @code{-B}. @item emacs Use an @code{emacs}-style line editing interface (@pxref{Command Line Editing}). +This also affects the editing interface used for @code{read -e}. @item errexit Same as @code{-e}. @@ -4045,147 +4053,441 @@ Same as @code{-f}. @item nolog Currently ignored. -@item notify -Same as @code{-b}. +@item notify +Same as @code{-b}. + +@item nounset +Same as @code{-u}. + +@item onecmd +Same as @code{-t}. + +@item physical +Same as @code{-P}. + +@item pipefail +If set, the return value of a pipeline is the value of the last +(rightmost) command to exit with a non-zero status, or zero if all +commands in the pipeline exit successfully. +This option is disabled by default. + +@item posix +Change the behavior of Bash where the default operation differs +from the @sc{posix} standard to match the standard +(@pxref{Bash POSIX Mode}). +This is intended to make Bash behave as a strict superset of that +standard. + +@item privileged +Same as @code{-p}. + +@item verbose +Same as @code{-v}. + +@item vi +Use a @code{vi}-style line editing interface. +This also affects the editing interface used for @code{read -e}. + +@item xtrace +Same as @code{-x}. +@end table + +@item -p +Turn on privileged mode. +In this mode, the @env{$BASH_ENV} and @env{$ENV} files are not +processed, shell functions are not inherited from the environment, +and the @env{SHELLOPTS}, @env{CDPATH} and @env{GLOBIGNORE} variables, +if they appear in the environment, are ignored. +If the shell is started with the effective user (group) id not equal to the +real user (group) id, and the @code{-p} option is not supplied, these actions +are taken and the effective user id is set to the real user id. +If the @code{-p} option is supplied at startup, the effective user id is +not reset. +Turning this option off causes the effective user +and group ids to be set to the real user and group ids. + +@item -t +Exit after reading and executing one command. + +@item -u +Treat unset variables as an error when performing parameter expansion. +An error message will be written to the standard error, and a non-interactive +shell will exit. + +@item -v +Print shell input lines as they are read. + +@item -x +Print a trace of simple commands, @code{for} commands, @code{case} +commands, @code{select} commands, and arithmetic @code{for} commands +and their arguments or associated word lists after they are +expanded and before they are executed. The value of the @env{PS4} +variable is expanded and the resultant value is printed before +the command and its expanded arguments. + +@item -B +The shell will perform brace expansion (@pxref{Brace Expansion}). +This option is on by default. + +@item -C +Prevent output redirection using @samp{>}, @samp{>&}, and @samp{<>} +from overwriting existing files. + +@item -E +If set, any trap on @code{ERR} is inherited by shell functions, command +substitutions, and commands executed in a subshell environment. +The @code{ERR} trap is normally not inherited in such cases. + +@item -H +Enable @samp{!} style history substitution (@pxref{History Interaction}). +This option is on by default for interactive shells. + +@item -P +If set, do not follow symbolic links when performing commands such as +@code{cd} which change the current directory. The physical directory +is used instead. By default, Bash follows +the logical chain of directories when performing commands +which change the current directory. + +For example, if @file{/usr/sys} is a symbolic link to @file{/usr/local/sys} +then: +@example +$ cd /usr/sys; echo $PWD +/usr/sys +$ cd ..; pwd +/usr +@end example + +@noindent +If @code{set -P} is on, then: +@example +$ cd /usr/sys; echo $PWD +/usr/local/sys +$ cd ..; pwd +/usr/local +@end example + +@item -T +If set, any trap on @code{DEBUG} and @code{RETURN} are inherited by +shell functions, command substitutions, and commands executed +in a subshell environment. +The @code{DEBUG} and @code{RETURN} traps are normally not inherited +in such cases. + +@item -- +If no arguments follow this option, then the positional parameters are +unset. Otherwise, the positional parameters are set to the +@var{arguments}, even if some of them begin with a @samp{-}. + +@item - +Signal the end of options, cause all remaining @var{arguments} +to be assigned to the positional parameters. The @option{-x} +and @option{-v} options are turned off. +If there are no arguments, the positional parameters remain unchanged. +@end table + +Using @samp{+} rather than @samp{-} causes these options to be +turned off. The options can also be used upon invocation of the +shell. The current set of options may be found in @code{$-}. + +The remaining N @var{arguments} are positional parameters and are +assigned, in order, to @code{$1}, @code{$2}, @dots{} @code{$N}. +The special parameter @code{#} is set to N. + +The return status is always zero unless an invalid option is supplied. +@end table + +@node The Shopt Builtin +@subsection The Shopt Builtin + +This builtin allows you to change additional shell optional behavior. + +@table @code + +@item shopt +@btindex shopt +@example +shopt [-pqsu] [-o] [@var{optname} @dots{}] +@end example +Toggle the values of variables controlling optional shell behavior. +With no options, or with the @option{-p} option, a list of all settable +options is displayed, with an indication of whether or not each is set. +The @option{-p} option causes output to be displayed in a form that +may be reused as input. +Other options have the following meanings: + +@table @code +@item -s +Enable (set) each @var{optname}. + +@item -u +Disable (unset) each @var{optname}. + +@item -q +Suppresses normal output; the return status +indicates whether the @var{optname} is set or unset. +If multiple @var{optname} arguments are given with @option{-q}, +the return status is zero if all @var{optnames} are enabled; +non-zero otherwise. + +@item -o +Restricts the values of +@var{optname} to be those defined for the @option{-o} option to the +@code{set} builtin (@pxref{The Set Builtin}). +@end table + +If either @option{-s} or @option{-u} +is used with no @var{optname} arguments, the display is limited to +those options which are set or unset, respectively. + +Unless otherwise noted, the @code{shopt} options are disabled (off) +by default. + +The return status when listing options is zero if all @var{optnames} +are enabled, non-zero otherwise. When setting or unsetting options, +the return status is zero unless an @var{optname} is not a valid shell +option. + +The list of @code{shopt} options is: +@table @code + +@item autocd +If set, a command name that is the name of a directory is executed as if +it were the argument to the @code{cd} command. +This option is only used by interactive shells. + +@item cdable_vars +If this is set, an argument to the @code{cd} builtin command that +is not a directory is assumed to be the name of a variable whose +value is the directory to change to. + +@item cdspell +If set, minor errors in the spelling of a directory component in a +@code{cd} command will be corrected. +The errors checked for are transposed characters, +a missing character, and a character too many. +If a correction is found, the corrected path is printed, +and the command proceeds. +This option is only used by interactive shells. + +@item checkhash +If this is set, Bash checks that a command found in the hash +table exists before trying to execute it. If a hashed command no +longer exists, a normal path search is performed. + +@item checkjobs +If set, Bash lists the status of any stopped and running jobs before +exiting an interactive shell. If any jobs are running, this causes +the exit to be deferred until a second exit is attempted without an +intervening command (@pxref{Job Control}). +The shell always postpones exiting if any jobs are stopped. + +@item checkwinsize +If set, Bash checks the window size after each command +and, if necessary, updates the values of +@env{LINES} and @env{COLUMNS}. + +@item cmdhist +If set, Bash +attempts to save all lines of a multiple-line +command in the same history entry. This allows +easy re-editing of multi-line commands. + +@item compat31 +If set, Bash +changes its behavior to that of version 3.1 with respect to quoted +arguments to the conditional command's =~ operator. + +@item dirspell +If set, Bash +attempts spelling correction on directory names during word completion +if the directory name initially supplied does not exist. + +@item dotglob +If set, Bash includes filenames beginning with a `.' in +the results of filename expansion. + +@item execfail +If this is set, a non-interactive shell will not exit if +it cannot execute the file specified as an argument to the @code{exec} +builtin command. An interactive shell does not exit if @code{exec} +fails. + +@item expand_aliases +If set, aliases are expanded as described below under Aliases, +@ref{Aliases}. +This option is enabled by default for interactive shells. + +@item extdebug +If set, behavior intended for use by debuggers is enabled: + +@enumerate +@item +The @option{-F} option to the @code{declare} builtin (@pxref{Bash Builtins}) +displays the source file name and line number corresponding to each function +name supplied as an argument. + +@item +If the command run by the @code{DEBUG} trap returns a non-zero value, the +next command is skipped and not executed. + +@item +If the command run by the @code{DEBUG} trap returns a value of 2, and the +shell is executing in a subroutine (a shell function or a shell script +executed by the @code{.} or @code{source} builtins), a call to +@code{return} is simulated. + +@item +@code{BASH_ARGC} and @code{BASH_ARGV} are updated as described in their +descriptions (@pxref{Bash Variables}). + +@item +Function tracing is enabled: command substitution, shell functions, and +subshells invoked with @code{( @var{command} )} inherit the +@code{DEBUG} and @code{RETURN} traps. + +@item +Error tracing is enabled: command substitution, shell functions, and +subshells invoked with @code{( @var{command} )} inherit the +@code{ERROR} trap. +@end enumerate + +@item extglob +If set, the extended pattern matching features described above +(@pxref{Pattern Matching}) are enabled. + +@item extquote +If set, @code{$'@var{string}'} and @code{$"@var{string}"} quoting is +performed within @code{$@{@var{parameter}@}} expansions +enclosed in double quotes. This option is enabled by default. -@item nounset -Same as @code{-u}. +@item failglob +If set, patterns which fail to match filenames during pathname expansion +result in an expansion error. -@item onecmd -Same as @code{-t}. +@item force_fignore +If set, the suffixes specified by the @env{FIGNORE} shell variable +cause words to be ignored when performing word completion even if +the ignored words are the only possible completions. +@xref{Bash Variables}, for a description of @env{FIGNORE}. +This option is enabled by default. -@item physical -Same as @code{-P}. +@item globstar +If set, the pattern @samp{**} used in a filename expansion context will +match a files and zero or more directories and subdirectories. +If the pattern is followed by a @samp{/}, only directories and +subdirectories match. -@item pipefail -If set, the return value of a pipeline is the value of the last -(rightmost) command to exit with a non-zero status, or zero if all -commands in the pipeline exit successfully. -This option is disabled by default. +@item gnu_errfmt +If set, shell error messages are written in the standard @sc{gnu} error +message format. -@item posix -Change the behavior of Bash where the default operation differs -from the @sc{posix} standard to match the standard -(@pxref{Bash POSIX Mode}). -This is intended to make Bash behave as a strict superset of that -standard. +@item histappend +If set, the history list is appended to the file named by the value +of the @env{HISTFILE} +variable when the shell exits, rather than overwriting the file. -@item privileged -Same as @code{-p}. +@item histreedit +If set, and Readline +is being used, a user is given the opportunity to re-edit a +failed history substitution. -@item verbose -Same as @code{-v}. +@item histverify +If set, and Readline +is being used, the results of history substitution are not immediately +passed to the shell parser. Instead, the resulting line is loaded into +the Readline editing buffer, allowing further modification. -@item vi -Use a @code{vi}-style line editing interface. +@item hostcomplete +If set, and Readline is being used, Bash will attempt to perform +hostname completion when a word containing a @samp{@@} is being +completed (@pxref{Commands For Completion}). This option is enabled +by default. -@item xtrace -Same as @code{-x}. -@end table +@item huponexit +If set, Bash will send @code{SIGHUP} to all jobs when an interactive +login shell exits (@pxref{Signals}). -@item -p -Turn on privileged mode. -In this mode, the @env{$BASH_ENV} and @env{$ENV} files are not -processed, shell functions are not inherited from the environment, -and the @env{SHELLOPTS} variable, if it appears in the environment, -is ignored. -If the shell is started with the effective user (group) id not equal to the -real user (group) id, and the @code{-p} option is not supplied, these actions -are taken and the effective user id is set to the real user id. -If the @code{-p} option is supplied at startup, the effective user id is -not reset. -Turning this option off causes the effective user -and group ids to be set to the real user and group ids. +@item interactive_comments +Allow a word beginning with @samp{#} +to cause that word and all remaining characters on that +line to be ignored in an interactive shell. +This option is enabled by default. -@item -t -Exit after reading and executing one command. +@item lithist +If enabled, and the @code{cmdhist} +option is enabled, multi-line commands are saved to the history with +embedded newlines rather than using semicolon separators where possible. -@item -u -Treat unset variables as an error when performing parameter expansion. -An error message will be written to the standard error, and a non-interactive -shell will exit. +@item login_shell +The shell sets this option if it is started as a login shell +(@pxref{Invoking Bash}). +The value may not be changed. -@item -v -Print shell input lines as they are read. +@item mailwarn +If set, and a file that Bash is checking for mail has been +accessed since the last time it was checked, the message +@code{"The mail in @var{mailfile} has been read"} is displayed. -@item -x -Print a trace of simple commands, @code{for} commands, @code{case} -commands, @code{select} commands, and arithmetic @code{for} commands -and their arguments or associated word lists after they are -expanded and before they are executed. The value of the @env{PS4} -variable is expanded and the resultant value is printed before -the command and its expanded arguments. +@item no_empty_cmd_completion +If set, and Readline is being used, Bash will not attempt to search +the @env{PATH} for possible completions when completion is attempted +on an empty line. -@item -B -The shell will perform brace expansion (@pxref{Brace Expansion}). -This option is on by default. +@item nocaseglob +If set, Bash matches filenames in a case-insensitive fashion when +performing filename expansion. -@item -C -Prevent output redirection using @samp{>}, @samp{>&}, and @samp{<>} -from overwriting existing files. +@item nocasematch +If set, Bash matches patterns in a case-insensitive fashion when +performing matching while executing @code{case} or @code{[[} +conditional commands. -@item -E -If set, any trap on @code{ERR} is inherited by shell functions, command -substitutions, and commands executed in a subshell environment. -The @code{ERR} trap is normally not inherited in such cases. +@item nullglob +If set, Bash allows filename patterns which match no +files to expand to a null string, rather than themselves. -@item -H -Enable @samp{!} style history substitution (@pxref{History Interaction}). -This option is on by default for interactive shells. +@item progcomp +If set, the programmable completion facilities +(@pxref{Programmable Completion}) are enabled. +This option is enabled by default. -@item -P -If set, do not follow symbolic links when performing commands such as -@code{cd} which change the current directory. The physical directory -is used instead. By default, Bash follows -the logical chain of directories when performing commands -which change the current directory. +@item promptvars +If set, prompt strings undergo +parameter expansion, command substitution, arithmetic +expansion, and quote removal after being expanded +as described below (@pxref{Printing a Prompt}). +This option is enabled by default. -For example, if @file{/usr/sys} is a symbolic link to @file{/usr/local/sys} -then: -@example -$ cd /usr/sys; echo $PWD -/usr/sys -$ cd ..; pwd -/usr -@end example +@item restricted_shell +The shell sets this option if it is started in restricted mode +(@pxref{The Restricted Shell}). +The value may not be changed. +This is not reset when the startup files are executed, allowing +the startup files to discover whether or not a shell is restricted. -@noindent -If @code{set -P} is on, then: -@example -$ cd /usr/sys; echo $PWD -/usr/local/sys -$ cd ..; pwd -/usr/local -@end example +@item shift_verbose +If this is set, the @code{shift} +builtin prints an error message when the shift count exceeds the +number of positional parameters. -@item -T -If set, any trap on @code{DEBUG} and @code{RETURN} are inherited by -shell functions, command substitutions, and commands executed -in a subshell environment. -The @code{DEBUG} and @code{RETURN} traps are normally not inherited -in such cases. +@item sourcepath +If set, the @code{source} builtin uses the value of @env{PATH} +to find the directory containing the file supplied as an argument. +This option is enabled by default. -@item -- -If no arguments follow this option, then the positional parameters are -unset. Otherwise, the positional parameters are set to the -@var{arguments}, even if some of them begin with a @samp{-}. +@item xpg_echo +If set, the @code{echo} builtin expands backslash-escape sequences +by default. -@item - -Signal the end of options, cause all remaining @var{arguments} -to be assigned to the positional parameters. The @option{-x} -and @option{-v} options are turned off. -If there are no arguments, the positional parameters remain unchanged. @end table -Using @samp{+} rather than @samp{-} causes these options to be -turned off. The options can also be used upon invocation of the -shell. The current set of options may be found in @code{$-}. - -The remaining N @var{arguments} are positional parameters and are -assigned, in order, to @code{$1}, @code{$2}, @dots{} @code{$N}. -The special parameter @code{#} is set to N. +@noindent +The return status when listing options is zero if all @var{optnames} +are enabled, non-zero otherwise. +When setting or unsetting options, the return status is zero unless an +@var{optname} is not a valid shell option. -The return status is always zero unless an invalid option is supplied. @end table @node Special Builtins @@ -4307,6 +4609,18 @@ variables for controlling the job control facilities @item BASH The full pathname used to execute the current instance of Bash. +@item BASHPID +Expands to the process id of the current Bash process. +This differs from @code{$$} under certain circumstances, such as subshells +that do not require Bash to be re-initialized. + +@item BASH_ALIASES +An associative array variable whose members correspond to the internal +list of aliases as maintained by the @code{alias} builtin +(@pxref{Bourne Shell Builtins}). +Elements added to this array appear in the alias list; unsetting array +elements cause aliases to be removed from the alias list. + @item BASH_ARGC An array variable whose values are the number of parameters in each frame of the current bash execution call stack. The number of @@ -4315,7 +4629,7 @@ with @code{.} or @code{source}) is at the top of the stack. When a subroutine is executed, the number of parameters passed is pushed onto @code{BASH_ARGC}. The shell sets @code{BASH_ARGC} only when in extended debugging mode -(see @ref{Bash Builtins} +(see @ref{The Shopt Builtin} for a description of the @code{extdebug} option to the @code{shopt} builtin). @@ -4326,10 +4640,17 @@ is at the top of the stack; the first parameter of the initial call is at the bottom. When a subroutine is executed, the parameters supplied are pushed onto @code{BASH_ARGV}. The shell sets @code{BASH_ARGV} only when in extended debugging mode -(see @ref{Bash Builtins} +(see @ref{The Shopt Builtin} for a description of the @code{extdebug} option to the @code{shopt} builtin). +@item BASH_CMDS +An associative array variable whose members correspond to the internal +hash table of commands as maintained by the @code{hash} builtin +(@pxref{Bourne Shell Builtins}). +Elements added to this array appear in the hash table; unsetting array +elements cause commands to be removed from the hash table. + @item BASH_COMMAND The command currently being executed or about to be executed, unless the shell is executing a command as the result of a trap, @@ -4347,7 +4668,8 @@ The command argument to the @option{-c} invocation option. An array variable whose members are the line numbers in source files corresponding to each member of @var{FUNCNAME}. @code{$@{BASH_LINENO[$i]@}} is the line number in the source file where -@code{$@{FUNCNAME[$i]@}} was called. +@code{$@{FUNCNAME[$i]@}} was called (or @code{$@{BASH_LINENO[$i-1]@}} if +referenced within another shell function). The corresponding source file name is @code{$@{BASH_SOURCE[$i]@}}. Use @code{LINENO} to obtain the current line number. @@ -4425,6 +4747,23 @@ This variable is available only in shell functions and external commands invoked by the programmable completion facilities (@pxref{Programmable Completion}). +@item COMP_TYPE +Set to an integer value corresponding to the type of completion attempted +that caused a completion function to be called: +@var{TAB}, for normal completion, +@samp{?}, for listing completions after successive tabs, +@samp{!}, for listing alternatives on partial word completion, +@samp{@@}, to list completions if the word is not unmodified, +or +@samp{%}, for menu completion. +This variable is available only in shell functions and external +commands invoked by the +programmable completion facilities (@pxref{Programmable Completion}). + +@item COMP_KEY +The key (or final key of a key sequence) used to invoke the current +completion function. + @item COMP_WORDBREAKS The set of characters that the Readline library treats as word separators when performing word completion. @@ -4481,7 +4820,7 @@ An array variable containing the names of all shell functions currently in the execution call stack. The element with index 0 is the name of any currently-executing shell function. -The bottom-most element is "main". +The bottom-most element is @code{"main"}. This variable exists only when a shell function is executing. Assignments to @env{FUNCNAME} have no effect and return an error status. If @env{FUNCNAME} is unset, it loses its special properties, even if @@ -4583,6 +4922,8 @@ for @var{strftime} to print the time stamp associated with each history entry displayed by the @code{history} builtin. If this variable is set, time stamps are written to the history file so they may be preserved across shell sessions. +This uses the history comment character to distinguish timestamps from +other history lines. @item HOSTFILE Contains the name of a file in the same format as @file{/etc/hosts} that @@ -4699,6 +5040,12 @@ is readonly. If set, the value is interpreted as a command to execute before the printing of each primary prompt (@env{$PS1}). +@item PROMPT_DIRTRIM +If set to a number greater than zero, the value is used as the number of +trailing directory components to retain when expanding the @code{\w} and +@code{\W} prompt string escapes (@pxref{Printing a Prompt}). +Characters removed are replaced with an ellipsis. + @item PS3 The value of this variable is used as the prompt for the @code{select} command. If this variable is not set, the @@ -4801,7 +5148,7 @@ The @code{select} command (@pxref{Conditional Constructs}) terminates if input does not arrive after @code{TMOUT} seconds when input is coming from a terminal. -In an interative shell, the value is interpreted as +In an interactive shell, the value is interpreted as the number of seconds to wait for input after issuing the primary prompt when the shell is interactive. Bash terminates after that number of seconds if input does @@ -4855,7 +5202,7 @@ line before the single-character options to be recognized. @table @code @item --debugger Arrange for the debugger profile to be executed before the shell -starts. Turns on extended debugging mode (see @ref{Bash Builtins} +starts. Turns on extended debugging mode (see @ref{The Shopt Builtin} for a description of the @code{extdebug} option to the @code{shopt} builtin) and shell function tracing (see @ref{The Set Builtin} for a description of the @code{-o functrace} @@ -4871,7 +5218,7 @@ Equivalent to @option{-D} except for the output format. Equivalent to @option{-D}. @item --help -Display a usage message on standard output and exit sucessfully. +Display a usage message on standard output and exit successfully. @item --init-file @var{filename} @itemx --rcfile @var{filename} @@ -4958,7 +5305,7 @@ This implies the @option{-n} option; no commands will be executed. @item [-+]O [@var{shopt_option}] @var{shopt_option} is one of the shell options accepted by the -@code{shopt} builtin (@pxref{Shell Builtin Commands}). +@code{shopt} builtin (@pxref{The Shopt Builtin}). If @var{shopt_option} is present, @option{-O} sets the value of that option; @option{+O} unsets it. If @var{shopt_option} is not supplied, the names and values of the shell @@ -5000,7 +5347,7 @@ in the script. If no commands are executed, the exit status is 0. @section Bash Startup Files @cindex startup files -This section describs how Bash executes its startup files. +This section describes how Bash executes its startup files. If any of the files exist but cannot be read, Bash reports an error. Tildes are expanded in file names as described above under Tilde Expansion (@pxref{Tilde Expansion}). @@ -5089,9 +5436,11 @@ No other startup files are read. @subsubheading Invoked by remote shell daemon -Bash attempts to determine when it is being run by the remote shell -daemon, usually @code{rshd}. If Bash determines it is being run by -rshd, it reads and executes commands from @file{~/.bashrc}, if that +Bash attempts to determine when it is being run with its standard input +connected to a a network connection, as if by the remote shell +daemon, usually @code{rshd}, or the secure shell daemon @code{sshd}. +If Bash determines it is being run in +this fashion, it reads and executes commands from @file{~/.bashrc}, if that file exists and is readable. It will not do this if invoked as @code{sh}. The @option{--norc} option may be used to inhibit this behavior, and the @@ -5125,7 +5474,7 @@ the same, but the effective user id is not reset. An interactive shell is one started without non-option arguments, unless @option{-s} is -specified, without specifiying the @option{-c} option, and +specified, without specifying the @option{-c} option, and whose input and error output are both connected to terminals (as determined by @code{isatty(3)}), or one started with the @option{-i} option. @@ -5218,7 +5567,7 @@ In the absence of any traps, @code{SIGINT} is caught and handled @item An interactive login shell sends a @code{SIGHUP} to all jobs on exit -if the @code{hupoxexit} shell option has been enabled (@pxref{Signals}). +if the @code{huponexit} shell option has been enabled (@pxref{Signals}). @item The @option{-n} invocation option is ignored, and @samp{set -n} has @@ -5257,7 +5606,7 @@ Parser syntax errors will not cause the shell to exit. @item Simple spelling correction for directory arguments to the @code{cd} builtin is enabled by default (see the description of the @code{cdspell} -option to the @code{shopt} builtin in @ref{Bash Builtins}). +option to the @code{shopt} builtin in @ref{The Shopt Builtin}). @item The shell will check the value of the @env{TMOUT} variable and exit @@ -5541,7 +5890,7 @@ If arguments are needed, a shell function should be used Aliases are not expanded when the shell is not interactive, unless the @code{expand_aliases} shell option is set using -@code{shopt} (@pxref{Bash Builtins}). +@code{shopt} (@pxref{The Shopt Builtin}). The rules concerning the definition and use of aliases are somewhat confusing. Bash @@ -5568,14 +5917,18 @@ For almost every purpose, shell functions are preferred over aliases. @section Arrays @cindex arrays -Bash provides one-dimensional array variables. Any variable may be used as -an array; the @code{declare} builtin will explicitly declare an array. +Bash provides one-dimensional indexed and associative array variables. +Any variable may be used as an indexed array; +the @code{declare} builtin will explicitly declare an array. There is no maximum limit on the size of an array, nor any requirement that members -be indexed or assigned contiguously. Arrays are zero-based. +be indexed or assigned contiguously. +Indexed arrays are referenced using integers (including arithmetic +expressions (@pxref{Shell Arithmetic}) and are zero-based; +associative arrays use arbitrary strings. -An array is created automatically if any variable is assigned to using -the syntax +An indexed array is created automatically if any variable is assigned to +using the syntax @example name[@var{subscript}]=@var{value} @end example @@ -5593,7 +5946,14 @@ The syntax declare -a @var{name}[@var{subscript}] @end example @noindent -is also accepted; the @var{subscript} is ignored. Attributes may be +is also accepted; the @var{subscript} is ignored. + +Associative arrays are created using +@example +declare -A @var{name}. +@end example + +Attributes may be specified for an array variable using the @code{declare} and @code{readonly} builtins. Each attribute applies to all members of an array. @@ -5604,10 +5964,15 @@ name=(value@var{1} @dots{} value@var{n}) @end example @noindent where each -@var{value} is of the form @code{[[@var{subscript}]=]}@var{string}. If +@var{value} is of the form @code{[@var{subscript}]=}@var{string}. +Indexed array assignments do not require the bracket and subscript. +When assigning to indexed arrays, if the optional subscript is supplied, that index is assigned to; otherwise the index of the element assigned is the last index assigned to by the statement plus one. Indexing starts at zero. + +When assigning to an associative array, the subscript is required. + This syntax is also accepted by the @code{declare} builtin. Individual array elements may be assigned to using the @code{name[}@var{subscript}@code{]=}@var{value} syntax introduced above. @@ -5636,7 +6001,7 @@ expansion of the special parameters @samp{@@} and @samp{*}. If @var{subscript} is @samp{@@} or @samp{*}, the expansion is the number of elements in the array. Referencing an array variable without a subscript is equivalent to -referencing element zero. +referencing with a subscript of 0. The @code{unset} builtin is used to destroy arrays. @code{unset} @var{name}[@var{subscript}] @@ -5648,9 +6013,9 @@ entire array. A subscript of @samp{*} or @samp{@@} also removes the entire array. The @code{declare}, @code{local}, and @code{readonly} -builtins each accept a @option{-a} -option to specify an array. The @code{read} -builtin accepts a @option{-a} +builtins each accept a @option{-a} option to specify an indexed +array and a @option{-A} option to specify an associative array. +The @code{read} builtin accepts a @option{-a} option to assign a list of words read from the standard input to an array, and can read values from the standard input into individual array elements. The @code{set} and @code{declare} @@ -5739,7 +6104,7 @@ from the stack, so that only the stack is manipulated. @btindex pushd @item pushd @example -pushd [@var{dir} | @var{+N} | @var{-N}] [-n] +pushd [-n] [@var{+N} | @var{-N} | @var{dir} ] @end example Save the current directory on the top of the directory stack @@ -5747,6 +6112,9 @@ and then @code{cd} to @var{dir}. With no arguments, @code{pushd} exchanges the top two directories. @table @code +@item -n +Suppresses the normal change of directory when adding directories +to the stack, so that only the stack is manipulated. @item +@var{N} Brings the @var{N}th directory (counting from the left of the list printed by @code{dirs}, starting with zero) to the top of @@ -5755,9 +6123,6 @@ the list by rotating the stack. Brings the @var{N}th directory (counting from the right of the list printed by @code{dirs}, starting with zero) to the top of the list by rotating the stack. -@item -n -Suppresses the normal change of directory when adding directories -to the stack, so that only the stack is manipulated. @item @var{dir} Makes the current working directory be the top of the stack, and then executes the equivalent of `@code{cd} @var{dir}'. @@ -5819,7 +6184,8 @@ The version of Bash (e.g., 2.00) @item \V The release of Bash, version + patchlevel (e.g., 2.00.0) @item \w -The current working directory, with @env{$HOME} abbreviated with a tilde. +The current working directory, with @env{$HOME} abbreviated with a tilde +(uses the @env{$PROMPT_DIRTRIM} variable). @item \W The basename of @env{$PWD}, with @env{$HOME} abbreviated with a tilde. @item \! @@ -6105,7 +6471,7 @@ file if it is the only so-named file found in @code{$PATH}. @item The @code{vi} editing mode will invoke the @code{vi} editor directly when -the @samp{v} command is run, instead of checking @code{$FCEDIT} and +the @samp{v} command is run, instead of checking @code{$VISUAL} and @code{$EDITOR}. @item @@ -6113,6 +6479,10 @@ When the @code{xpg_echo} option is enabled, Bash does not attempt to interpret any arguments to @code{echo} as options. Each argument is displayed, after escape characters are converted. +@item +The @code{ulimit} builtin uses a block size of 512 bytes for the @option{-c} +and @option{-f} options. + @end enumerate There is other @sc{posix} behavior that Bash does not implement by @@ -6208,7 +6578,7 @@ takes effect immediately, and has the additional side effect of causing pending output and typeahead to be discarded. There are a number of ways to refer to a job in the shell. The -character @samp{%} introduces a job name. +character @samp{%} introduces a job specification (@var{jobspec}). Job number @code{n} may be referred to as @samp{%n}. The symbols @samp{%%} and @samp{%+} refer to the shell's notion of the @@ -6216,9 +6586,11 @@ current job, which is the last job stopped while it was in the foreground or started in the background. A single @samp{%} (with no accompanying job specification) also refers to the current job. -The previous job may be referenced using @samp{%-}. In output -pertaining to jobs (e.g., the output of the @code{jobs} command), -the current job is always flagged with a @samp{+}, and the +The previous job may be referenced using @samp{%-}. +If there is only a single job, @samp{%+} and @samp{%-} can both be used +to refer to that job. +In output pertaining to jobs (e.g., the output of the @code{jobs} +command), the current job is always flagged with a @samp{+}, and the previous job with a @samp{-}. A job may also be referred to @@ -6243,11 +6615,13 @@ Bash reports such changes immediately (@pxref{The Set Builtin}). Any trap on @code{SIGCHLD} is executed for each child process that exits. -If an attempt to exit Bash is made while jobs are stopped, the -shell prints a message warning that there are stopped jobs. +If an attempt to exit Bash is made while jobs are stopped, (or running, if +the @code{checkjobs} option is enabled -- see @ref{The Shopt Builtin}), the +shell prints a warning message, and if the @code{checkjobs} option is +enabled, lists the jobs and their statuses. The @code{jobs} command may then be used to inspect their status. If a second attempt to exit is made without an intervening command, -Bash does not print another warning, and the stopped jobs are terminated. +Bash does not print another warning, and any stopped jobs are terminated. @node Job Control Builtins @section Job Control Builtins @@ -6374,8 +6748,9 @@ argument restricts operation to running jobs. suspend [-f] @end example Suspend the execution of this shell until it receives a -@code{SIGCONT} signal. The @option{-f} option means to suspend -even if the shell is a login shell. +@code{SIGCONT} signal. +A login shell cannot be suspended; the @option{-f} +option can be used to override this and force the suspension. @end table @@ -6772,6 +7147,14 @@ Include @code{csh}-like brace expansion ( @code{b@{a,b@}c} @expansion{} @code{bac bbc} ). See @ref{Brace Expansion}, for a complete description. +@item --enable-casemod-attributes +Include support for case-modifying attributes in the @code{declare} builtin +and assignment statements. Variables with the @var{uppercase} attribute, +for example, will have their values converted to uppercase upon assignment. + +@item --enable-casemod-expansion +Include support for case-modifying word expansions. + @item --enable-command-timing Include support for recognizing @code{time} as a reserved word and for displaying timing statistics for the pipeline following @code{time} @@ -6787,6 +7170,10 @@ Include support for matching POSIX regular expressions using the @samp{=~} binary operator in the @code{[[} conditional command. (@pxref{Conditional Constructs}). +@item --enable-coprocesses +Include support for coprocesses and the @code{coproc} reserved word +(@pxref{Pipelines}). + @item --enable-debugger Include support for the bash debugger (distributed separately). @@ -6962,8 +7349,9 @@ the @code{bind} builtin. @item Bash provides a programmable word completion mechanism -(@pxref{Programmable Completion}), and two builtin commands, -@code{complete} and @code{compgen}, to manipulate it. +(@pxref{Programmable Completion}), and builtin commands +@code{complete}, @code{compgen}, and @code{compopt}, to +manipulate it. @item Bash has command history (@pxref{Bash History Facilities}) and the @@ -7230,7 +7618,7 @@ executed with the @code{.} or @code{source} builtins @item Bash includes the @code{shopt} builtin, for finer control of shell -optional capabilities (@pxref{Bash Builtins}), and allows these options +optional capabilities (@pxref{The Shopt Builtin}), and allows these options to be set and unset at shell invocation (@pxref{Invoking Bash}). @item @@ -7395,33 +7783,42 @@ The SVR4.2 shell behaves differently when invoked as @code{jsh} (it turns on job control). @end itemize -@node Copying This Manual -@appendix Copying This Manual +@node GNU Free Documentation License +@appendix GNU Free Documentation License + +@include fdl.texi + +@node Indexes +@appendix Indexes @menu -* GNU Free Documentation License:: License for copying this manual. +* Builtin Index:: Index of Bash builtin commands. +* Reserved Word Index:: Index of Bash reserved words. +* Variable Index:: Quick reference helps you find the + variable you want. +* Function Index:: Index of bindable Readline functions. +* Concept Index:: General index for concepts described in + this manual. @end menu -@include fdl.texi - @node Builtin Index -@unnumbered Index of Shell Builtin Commands +@appendixsec Index of Shell Builtin Commands @printindex bt @node Reserved Word Index -@unnumbered Index of Shell Reserved Words +@appendixsec Index of Shell Reserved Words @printindex rw @node Variable Index -@unnumbered Parameter and Variable Index +@appendixsec Parameter and Variable Index @printindex vr @node Function Index -@unnumbered Function Index +@appendixsec Function Index @printindex fn @node Concept Index -@unnumbered Concept Index +@appendixsec Concept Index @printindex cp @bye diff --git a/doc/builtins.1 b/doc/builtins.1 index 6a0b24830..bf8bfec25 100644 --- a/doc/builtins.1 +++ b/doc/builtins.1 @@ -1,12 +1,14 @@ .\" This is a hack to force bash builtins into the whatis database .\" and to get the list of builtins to come up with the man command. -.TH BASH_BUILTINS 1 "2004 Apr 20" "GNU Bash-3.0" +.TH BASH_BUILTINS 1 "2004 Apr 20" "GNU Bash-4.0" .SH NAME -bash, :, ., [, alias, bg, bind, break, builtin, cd, command, compgen, complete, -continue, declare, dirs, disown, echo, enable, eval, exec, exit, -export, fc, fg, getopts, hash, help, history, jobs, kill, -let, local, logout, popd, printf, pushd, pwd, read, readonly, return, set, -shift, shopt, source, suspend, test, times, trap, type, typeset, +bash, :, ., [, alias, bg, bind, break, builtin, caller, +cd, command, compgen, complete, +compopt, continue, declare, dirs, disown, echo, enable, eval, exec, exit, +export, false, fc, fg, getopts, hash, help, history, jobs, kill, +let, local, logout, mapfile, popd, printf, pushd, pwd, read, +readonly, return, set, +shift, shopt, source, suspend, test, times, trap, true, type, typeset, ulimit, umask, unalias, unset, wait \- bash built-in commands, see \fBbash\fR(1) .SH BASH BUILTIN COMMANDS .nr zZ 1 diff --git a/doc/fdl.texi b/doc/fdl.texi index 47ead9f09..96ce74ea1 100644 --- a/doc/fdl.texi +++ b/doc/fdl.texi @@ -1,13 +1,12 @@ - -@node GNU Free Documentation License -@appendixsec GNU Free Documentation License - -@cindex FDL, GNU Free Documentation License +@c The GNU Free Documentation License. @center Version 1.2, November 2002 +@c This file is intended to be included within another document, +@c hence no sectioning command or @node. + @display Copyright @copyright{} 2000,2001,2002 Free Software Foundation, Inc. -59 Temple Place, Suite 330, Boston, MA 02111-1307, USA +51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. @@ -344,7 +343,7 @@ and independent documents or works, in or on a volume of a storage or distribution medium, is called an ``aggregate'' if the copyright resulting from the compilation is not used to limit the legal rights of the compilation's users beyond what the individual works permit. -When the Document is included an aggregate, this License does not +When the Document is included in an aggregate, this License does not apply to the other works in the aggregate which are not themselves derivative works of the Document. @@ -408,7 +407,7 @@ as a draft) by the Free Software Foundation. @end enumerate @page -@appendixsubsec ADDENDUM: How to use this License for your documents +@heading ADDENDUM: How to use this License for your documents To use this License in a document you have written, include a copy of the License in the document and put the following copyright and @@ -420,14 +419,14 @@ license notices just after the title page: Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; - with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. - A copy of the license is included in the section entitled ``GNU + with no Invariant Sections, no Front-Cover Texts, and no Back-Cover + Texts. A copy of the license is included in the section entitled ``GNU Free Documentation License''. @end group @end smallexample If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, -replace the ``with...Texts.'' line with this: +replace the ``with@dots{}Texts.'' line with this: @smallexample @group diff --git a/doc/rbash.1 b/doc/rbash.1 index c148abfab..56e38fd03 100644 --- a/doc/rbash.1 +++ b/doc/rbash.1 @@ -1,4 +1,4 @@ -.TH RBASH 1 "2004 Apr 20" "GNU Bash-3.0" +.TH RBASH 1 "2004 Apr 20" "GNU Bash-4.0" .SH NAME rbash \- restricted bash, see \fBbash\fR(1) .SH RESTRICTED SHELL diff --git a/doc/version.texi b/doc/version.texi index ca1a17ba4..9993262d0 100644 --- a/doc/version.texi +++ b/doc/version.texi @@ -1,10 +1,10 @@ @ignore -Copyright (C) 1988-2006 Free Software Foundation, Inc. +Copyright (C) 1988-2009 Free Software Foundation, Inc. @end ignore -@set LASTCHANGE Thu Sep 28 10:25:45 EDT 2006 +@set LASTCHANGE Mon Dec 29 16:48:40 EST 2008 -@set EDITION 3.2 -@set VERSION 3.2 -@set UPDATED 28 September 2006 -@set UPDATED-MONTH September 2006 +@set EDITION 4.0 +@set VERSION 4.0 +@set UPDATED 29 December 2008 +@set UPDATED-MONTH December 2008 diff --git a/error.c b/error.c index 83f6a7a9f..2ae485430 100644 --- a/error.c +++ b/error.c @@ -1,21 +1,22 @@ /* error.c -- Functions for handling errors. */ -/* Copyright (C) 1993-2003 Free Software Foundation, Inc. + +/* Copyright (C) 1993-2009 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. + 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #include "config.h" @@ -59,7 +60,7 @@ extern int give_terminal_to __P((pid_t, int)); #endif /* JOB_CONTROL */ #if defined (ARRAY_VARS) -extern char *bash_badsub_errmsg; +extern const char * const bash_badsub_errmsg; #endif static void error_prolog __P((int)); @@ -70,7 +71,7 @@ static void error_prolog __P((int)); #define MAINTAINER "bash-maintainers@gnu.org" #endif -char *the_current_maintainer = MAINTAINER; +const char * const the_current_maintainer = MAINTAINER; int gnu_error_format = 0; @@ -85,7 +86,7 @@ error_prolog (print_lineno) line = (print_lineno && interactive_shell == 0) ? executing_line_number () : -1; if (line > 0) - fprintf (stderr, "%s:%s%d: ", ename, gnu_error_format ? "" : " line ", line); + fprintf (stderr, "%s:%s%d: ", ename, gnu_error_format ? "" : _(" line "), line); else fprintf (stderr, "%s: ", ename); } @@ -108,7 +109,7 @@ get_name_for_error () if (bash_source_v && array_p (bash_source_v) && (bash_source_a = array_cell (bash_source_v))) name = array_reference (bash_source_a, 0); - if (name == 0) + if (name == 0 || *name == '\0') /* XXX - was just name == 0 */ #endif name = dollar_vars[0]; } @@ -255,7 +256,8 @@ internal_warning (format, va_alist) { va_list args; - fprintf (stderr, _("%s: warning: "), get_name_for_error ()); + error_prolog (1); + fprintf (stderr, _("warning: ")); SH_VA_START (args, format); @@ -315,11 +317,11 @@ parser_error (lineno, format, va_alist) if (interactive) fprintf (stderr, "%s: ", ename); else if (interactive_shell) - fprintf (stderr, "%s: %s:%s%d: ", ename, iname, gnu_error_format ? "" : " line ", lineno); + fprintf (stderr, "%s: %s:%s%d: ", ename, iname, gnu_error_format ? "" : _(" line "), lineno); else if (STREQ (ename, iname)) - fprintf (stderr, "%s:%s%d: ", ename, gnu_error_format ? "" : " line ", lineno); + fprintf (stderr, "%s:%s%d: ", ename, gnu_error_format ? "" : _(" line "), lineno); else - fprintf (stderr, "%s: %s:%s%d: ", ename, iname, gnu_error_format ? "" : " line ", lineno); + fprintf (stderr, "%s: %s:%s%d: ", ename, iname, gnu_error_format ? "" : _(" line "), lineno); SH_VA_START (args, format); @@ -399,7 +401,7 @@ trace (format, va_alist) /* **************************************************************** */ -static char *cmd_error_table[] = { +static const char * const cmd_error_table[] = { N_("unknown command error"), /* CMDERR_DEFAULT */ N_("bad command type"), /* CMDERR_BADTYPE */ N_("bad connector"), /* CMDERR_BADCONN */ diff --git a/error.h b/error.h index 64dc27e15..e79ba3ee7 100644 --- a/error.h +++ b/error.h @@ -1,22 +1,22 @@ /* error.h -- External declarations of functions appearing in error.c. */ -/* Copyright (C) 1993 Free Software Foundation, Inc. +/* Copyright (C) 1993-2009 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. + 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #if !defined (_ERROR_H_) #define _ERROR_H_ @@ -50,8 +50,9 @@ extern void internal_error __P((const char *, ...)) __attribute__((__format__ ( /* Report an internal warning. */ extern void internal_warning __P((const char *, ...)) __attribute__((__format__ (printf, 1, 2))); -/* Debugging function, not enabled in released version. */ +/* Debugging functions, not enabled in released version. */ extern void itrace __P((const char *, ...)) __attribute__ ((__format__ (printf, 1, 2))); +extern void trace __P((const char *, ...)) __attribute__ ((__format__ (printf, 1, 2))); /* Report an error having to do with command parsing or execution. */ extern void command_error __P((const char *, int, int, int)); diff --git a/eval.c b/eval.c index bae6c5b6c..9011e0bf4 100644 --- a/eval.c +++ b/eval.c @@ -1,22 +1,22 @@ /* eval.c -- reading and evaluating commands. */ -/* Copyright (C) 1996 Free Software Foundation, Inc. +/* Copyright (C) 1996-2009 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public - License for more details. + 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. */ + along with Bash. If not, see . +*/ #include "config.h" @@ -65,9 +65,10 @@ reader_loop () int our_indirection_level; COMMAND * volatile current_command; - current_command = (COMMAND *)NULL; USE_VAR(current_command); + current_command = (COMMAND *)NULL; + our_indirection_level = ++indirection_level; while (EOF_Reached == 0) @@ -100,7 +101,11 @@ reader_loop () goto exec_done; case DISCARD: - last_command_exit_value = 1; + /* Make sure the exit status is reset to a non-zero value, but + leave existing non-zero values (e.g., > 128 on signal) + alone. */ + if (last_command_exit_value == 0) + last_command_exit_value = EXECUTION_FAILURE; if (subshell_environment) { current_command = (COMMAND *)NULL; @@ -174,6 +179,7 @@ alrm_catcher(i) int i; { printf (_("\007timed out waiting for input: auto-logout\n")); + fflush (stdout); bash_logout (); /* run ~/.bash_logout if this is a login shell */ jump_to_top_level (EXITPROG); SIGRETURN (0); diff --git a/examples/INDEX.html b/examples/INDEX.html index c3ba24d79..5e8cdc692 100644 --- a/examples/INDEX.html +++ b/examples/INDEX.html @@ -5,7 +5,7 @@ X-Ref - ./bashdb + ./obashdb Deprecated sample implementation of a bash debugger @@ -436,12 +436,6 @@ - - ./obashdb - Modified version of the Korn Shell debugger from Bill Rosenblatt's 'Learning the Korn Shell'. - - - ./scripts.noah Noah Friedman's collection of scripts (updated to bash v2 syntax by Chet Ramey) @@ -728,6 +722,14 @@ ./scripts/timeout Give rsh(1) a shorter timeout. + + ./scripts/timeout2 + Execute a given command with a timeout. + + + ./scripts/timeout3 + Execute a given command with a timeout. + ./scripts/vtree2 Display a tree printout of dir in 1k blocks. diff --git a/examples/INDEX.txt b/examples/INDEX.txt index 1be1cc631..db2858fd2 100644 --- a/examples/INDEX.txt +++ b/examples/INDEX.txt @@ -1,5 +1,5 @@ Path Description X-Ref -./bashdb Deprecated sample implementation of a bash debugger +./obashdb Deprecated sample implementation of a bash debugger ./complete Shell completion code @@ -103,8 +103,6 @@ Path Description X-Ref ./misc/README README ./misc/suncmd.termcap SunView TERMCAP string. -./obashdb Modified version of the Korn Shell debugger from Bill Rosenblatt's 'Learning the Korn Shell'. - ./scripts.noah Noah Friedman's collection of scripts (updated to bash v2 syntax by Chet Ramey) ./scripts.noah/aref.bash Pseudo-arrays and substring indexing examples. ./scripts.noah/bash.sub.bash Library functions used by require.bash. @@ -173,6 +171,8 @@ Path Description X-Ref ./scripts/shprompt Display a prompt and get an answer satisfying certain criteria. ask ./scripts/spin.bash Display a 'spinning wheel' to show progress. ./scripts/timeout Give rsh(1) a shorter timeout. +./scripts/timeout2 Execute a given command with a timeout. +./scripts/timeout3 Execute a given command with a timeout. ./scripts/vtree2 Display a tree printout of dir in 1k blocks. tree ./scripts/vtree3 Display a graphical tree printout of dir. tree ./scripts/vtree3a Display a graphical tree printout of dir. tree diff --git a/examples/bashdb/PERMISSION b/examples/bashdb/PERMISSION deleted file mode 100644 index 4e9460c0c..000000000 --- a/examples/bashdb/PERMISSION +++ /dev/null @@ -1,27 +0,0 @@ -From mikel@ora.com Tue Aug 1 12:13:20 1995 -Flags: 10 -Return-Path: mikel@ora.com -Received: from ruby.ora.com (ruby.ora.com [198.112.208.25]) by odin.INS.CWRU.Edu with ESMTP (8.6.12+cwru/CWRU-2.1-ins) - id MAA01565; Tue, 1 Aug 1995 12:13:18 -0400 (from mikel@ora.com for ) -Received: (from fax@localhost) by ruby.ora.com (8.6.12/8.6.11) with UUCP id MAA23251; Tue, 1 Aug 1995 12:07:51 -0400 -Received: by los.ora.com (4.1/Spike-2.1) - id AA00672; Tue, 1 Aug 95 08:57:32 EDT -Date: Tue, 1 Aug 95 08:57:32 EDT -From: mikel@ora.com (Michael Loukides) -Message-Id: <9508011257.AA00672@los.ora.com> -Subject: Re: Ksh debugger from Rosenblatt's book [for bash] -To: Chet Ramey -Cc: cmarie@ora.com, cam@iinet.com.au, brosenblatt@tm.com -In-Reply-To: Chet Ramey , Mon, 31 Jul 1995 16:22:48 -0400 - - I've modified a (modified) version of Bill Rosenblatt's ksh debugger - to work with bash-2.0. Does ORA have any problem with me distributing - it with bash-2.0? - -That's great! - -Go ahead and circulate it; in fact, we should probably grab it and -stick it in our ftp archive, and put a reference to it in the book. -(Too late to actually discuss the thing, at least for this edition). -------- - diff --git a/examples/bashdb/README b/examples/bashdb/README deleted file mode 100644 index 2f643d196..000000000 --- a/examples/bashdb/README +++ /dev/null @@ -1,3 +0,0 @@ -This is a sample implementation of a bash debugger. It is not the same -as the project available from http://bashdb.sourceforge.net, and has been -deprecated in favor of that implementation. diff --git a/examples/bashdb/bashdb b/examples/bashdb/bashdb deleted file mode 100755 index 560cb7cc7..000000000 --- a/examples/bashdb/bashdb +++ /dev/null @@ -1,581 +0,0 @@ -#! /bin/bash -# bashdb - Bash shell debugger -# -# Adapted from an idea in O'Reilly's `Learning the Korn Shell' -# Copyright (C) 1993-1994 O'Reilly and Associates, Inc. -# Copyright (C) 1998, 1999, 2001 Gary V. Vaughan > -# -# 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 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -# NOTE: -# -# This program requires bash 2.x. -# If bash 2.x is installed as "bash2", you can invoke bashdb like this: -# -# DEBUG_SHELL=/bin/bash2 /bin/bash2 bashdb script.sh - -# TODO: -# -# break [regexp] -# cond [break] [condition] -# tbreak [regexp|+lines] -# restart -# Variable watchpoints -# Instrument `source' and `.' files in $_potbelliedpig -# be cleverer about lines we allow breakpoints to be set on -# break [function_name] - -echo 'Bash Debugger version 1.2.4' - -export _dbname=${0##*/} - -if test $# -lt 1; then - echo "$_dbname: Usage: $_dbname filename" >&2 - exit 1 -fi - -_guineapig=$1 - -if test ! -r $1; then - echo "$_dbname: Cannot read file '$_guineapig'." >&2 - exit 1 -fi - -shift - -__debug=${TMPDIR-/tmp}/bashdb.$$ -sed -e '/^# bashdb - Bash shell debugger/,/^# -- DO NOT DELETE THIS LINE -- /d' "$0" > $__debug -cat $_guineapig >> $__debug -exec ${DEBUG_SHELL-bash} $__debug $_guineapig "$@" - -exit 1 - -# -- DO NOT DELETE THIS LINE -- The program depends on it - -#bashdb preamble -# $1 name of the original guinea pig script - -__debug=$0 -_guineapig=$1 -__steptrap_calls=0 - -shift - -shopt -s extglob # turn on extglob so we can parse the debugger funcs - -function _steptrap -{ - local i=0 - - _curline=$1 - - if (( ++__steptrap_calls > 1 && $_curline == 1 )); then - return - fi - - if [ -n "$_disps" ]; then - while (( $i < ${#_disps[@]} )) - do - if [ -n "${_disps[$i]}" ]; then - _msg "${_disps[$i]}: \c" - eval _msg ${_disps[$i]} - fi - let i=$i+1 - done - fi - - if (( $_trace )); then - _showline $_curline - fi - - if (( $_steps >= 0 )); then - let _steps="$_steps - 1" - fi - - if _at_linenumbp ; then - _msg "Reached breakpoint at line $_curline" - _showline $_curline - _cmdloop - elif [ -n "$_brcond" ] && eval $_brcond; then - _msg "Break condition $_brcond true at line $_curline" - _showline $_curline - _cmdloop - elif (( $_steps == 0 )); then - # Assuming a real script will have the "#! /bin/sh" at line 1, - # assume that when $_curline == 1 we are inside backticks. - if (( ! $_trace )); then - _msg "Stopped at line $_curline" - _showline $_curline - fi - _cmdloop - fi -} - -function _setbp -{ - local i f line _x - - if [ -z "$1" ]; then - _listbp - return - fi - - eval "$_seteglob" - - if [[ $1 == *(\+)[1-9]*([0-9]) ]]; then - case $1 in - +*) - # normalize argument, then double it (+2 -> +2 + 2 = 4) - _x=${1##*([!1-9])} # cut off non-numeric prefix - _x=${x%%*([!0-9])} # cut off non-numeric suffix - f=$(( $1 + $_x )) - ;; - *) - f=$(( $1 )) - ;; - esac - - # find the next valid line - line="${_lines[$f]}" - while _invalidbreakp $f - do - (( f++ )) - line="${_lines[$f]}" - done - - if (( $f != $1 )) - then - _msg "Line $1 is not a valid breakpoint" - fi - - if [ -n "${_lines[$f]}" ]; then - _linebp[$1]=$1; - _msg "Breakpoint set at line $f" - else - _msg "Breakpoints can only be set on executable lines" - fi - else - _msg "Please specify a numeric line number" - fi - - eval "$_resteglob" -} - -function _listbp -{ - local i - - if [ -n "$_linebp" ]; then - _msg "Breakpoints:" - for i in ${_linebp[*]}; do - _showline $i - done - else - _msg "No breakpoints have been set" - fi -} - -function _clearbp -{ - local i - - if [ -z "$1" ]; then - read -e -p "Delete all breakpoints? " - case $REPLY in - [yY]*) - unset _linebp[*] - _msg "All breakpoints have been cleared" - ;; - esac - return 0 - fi - - eval "$_seteglob" - - if [[ $1 == [1-9]*([0-9]) ]]; then - unset _linebp[$1] - _msg "Breakpoint cleared at line $1" - else - _msg "Please specify a numeric line number" - fi - - eval "$_resteglob" -} - -function _setbc -{ - if (( $# > 0 )); then - _brcond=$@ - _msg "Break when true: $_brcond" - else - _brcond= - _msg "Break condition cleared" - fi -} - -function _setdisp -{ - if [ -z "$1" ]; then - _listdisp - else - _disps[${#_disps[@]}]="$1" - if (( ${#_disps[@]} < 10 )) - then - _msg " ${#_disps[@]}: $1" - else - _msg "${#_disps[@]}: $1" - fi - fi -} - -function _listdisp -{ - local i=0 j - - if [ -n "$_disps" ]; then - while (( $i < ${#_disps[@]} )) - do - let j=$i+1 - if (( ${#_disps[@]} < 10 )) - then - _msg " $j: ${_disps[$i]}" - else - _msg "$j: ${_disps[$i]}" - fi - let i=$j - done - else - _msg "No displays have been set" - fi -} - -function _cleardisp -{ - if (( $# < 1 )) ; then - read -e -p "Delete all display expressions? " - case $REPLY in - [Yy]*) - unset _disps[*] - _msg "All breakpoints have been cleared" - ;; - esac - return 0 - fi - - eval "$_seteglob" - - if [[ $1 == [1-9]*([0-9]) ]]; then - unset _disps[$1] - _msg "Display $i has been cleared" - else - _listdisp - _msg "Please specify a numeric display number" - fi - - eval "$_resteglob" -} - -# usage _ftrace -u funcname [funcname...] -function _ftrace -{ - local _opt=-t _tmsg="enabled" _func - if [[ $1 == -u ]]; then - _opt=+t - _tmsg="disabled" - shift - fi - for _func; do - declare -f $_opt $_func - _msg "Tracing $_tmsg for function $_func" - done -} - -function _cmdloop -{ - local cmd args - - while read -e -p "bashdb> " cmd args; do - test -n "$cmd" && history -s "$cmd $args" # save on history list - test -n "$cmd" || { set $_lastcmd; cmd=$1; shift; args=$*; } - if [ -n "$cmd" ] - then - case $cmd in - b|br|bre|brea|break) - _setbp $args - _lastcmd="break $args" - ;; - co|con) - _msg "ambiguous command: '$cmd', condition, continue?" - ;; - cond|condi|condit|conditi|conditio|condition) - _setbc $args - _lastcmd="condition $args" - ;; - c|cont|conti|contin|continu|continue) - _lastcmd="continue" - return - ;; - d) - _msg "ambiguous command: '$cmd', delete, display?" - ;; - de|del|dele|delet|delete) - _clearbp $args - _lastcmd="delete $args" - ;; - di|dis|disp|displ|displa|display) - _setdisp $args - _lastcmd="display $args" - ;; - f|ft|ftr|ftra|ftrace) - _ftrace $args - _lastcmd="ftrace $args" - ;; - \?|h|he|hel|help) - _menu - _lastcmd="help" - ;; - l|li|lis|list) - _displayscript $args - # _lastcmd is set in the _displayscript function - ;; - p|pr|pri|prin|print) - _examine $args - _lastcmd="print $args" - ;; - q|qu|qui|quit) - exit - ;; - s|st|ste|step|n|ne|nex|next) - let _steps=${args:-1} - _lastcmd="next $args" - return - ;; - t|tr|tra|trac|trace) - _xtrace - ;; - u|un|und|undi|undis|undisp|undispl|undispla|undisplay) - _cleardisp $args - _lastcmd="undisplay $args" - ;; - !*) - eval ${cmd#!} $args - _lastcmd="$cmd $args" - ;; - *) - _msg "Invalid command: '$cmd'" - ;; - esac - fi - done -} - -function _at_linenumbp -{ - [[ -n ${_linebp[$_curline]} ]] -} - -function _invalidbreakp -{ - local line=${_lines[$1]} - - # XXX - should use shell patterns - if test -z "$line" \ - || expr "$line" : '[ \t]*#.*' > /dev/null \ - || expr "$line" : '[ \t]*;;[ \t]*$' > /dev/null \ - || expr "$line" : '[ \t]*[^)]*)[ \t]*$' > /dev/null \ - || expr "$line" : '[ \t]*;;[ \t]*#.**$' > /dev/null \ - || expr "$line" : '[ \t]*[^)]*)[ \t]*;;[ \t]*$' > /dev/null \ - || expr "$line" : '[ \t]*[^)]*)[ \t]*;;*[ \t]*#.*$' > /dev/null - then - return 0 - fi - - return 1 -} - -function _examine -{ - if [ -n "$*" ]; then - _msg "$args: \c" - eval _msg $args - else - _msg "Nothing to print" - fi -} - -function _displayscript -{ - local i j start end bp cl - - if (( $# == 1 )); then # list 5 lines on either side of $1 - if [ $1 = "%" ]; then - let start=1 - let end=${#_lines[@]} - else - let start=$1-5 - let end=$1+5 - fi - elif (( $# > 1 )); then # list between start and end - if [ $1 = "^" ]; then - let start=1 - else - let start=$1 - fi - - if [ $2 = "\$" ]; then - let end=${#_lines[@]} - else - let end=$2 - fi - else # list 5 lines on either side of current line - let start=$_curline-5 - let end=$_curline+5 - fi - - # normalize start and end - if (( $start < 1 )); then - start=1 - fi - if (( $end > ${#_lines[@]} )); then - end=${#_lines[@]} - fi - - cl=$(( $end - $start )) - if (( $cl > ${LINES-24} )); then - pager=${PAGER-more} - else - pager=cat - fi - - i=$start - ( while (( $i <= $end )); do - _showline $i - let i=$i+1 - done ) 2>&1 | $pager - - # calculate the next block of lines - start=$(( $end + 1 )) - end=$(( $start + 11 )) - if (( $end > ${#_lines[@]} )) - then - end=${#_lines[@]} - fi - - _lastcmd="list $start $end" -} - -function _xtrace -{ - let _trace="! $_trace" - if (( $_trace )); then - _msg "Execution trace on" - else - _msg "Execution trace off" - fi -} - -function _msg -{ - echo -e "$@" >&2 -} - -function _showline -{ - local i=0 bp=' ' line=$1 cl=' ' - - if [[ -n ${_linebp[$line]} ]]; then - bp='*' - fi - - if (( $_curline == $line )); then - cl=">" - fi - - if (( $line < 100 )); then - _msg "${_guineapig/*\//}:$line $bp $cl${_lines[$line]}" - elif (( $line < 10 )); then - _msg "${_guineapig/*\//}:$line $bp $cl${_lines[$line]}" - elif (( $line > 0 )); then - _msg "${_guineapig/*\//}:$line $bp $cl${_lines[$line]}" - fi -} - -function _cleanup -{ - rm -f $__debug $_potbelliedpig 2> /dev/null -} - -function _menu -{ - _msg 'bashdb commands: - break N set breakpoint at line N - break list breakpoints & break condition - condition foo set break condition to foo - condition clear break condition - delete N clear breakpoint at line N - delete clear all breakpoints - display EXP evaluate and display EXP for each debug step - display show a list of display expressions - undisplay N remove display expression N - list N M display all lines of script between N and M - list N display 5 lines of script either side of line N - list display 5 lines if script either side of current line - continue continue execution upto next breakpoint - next [N] execute [N] statements (default 1) - print expr prints the value of an expression - trace toggle execution trace on/off - ftrace [-u] func make the debugger step into function FUNC - (-u turns off tracing FUNC) - help print this menu - ! string passes string to a shell - quit quit' -} - -shopt -u extglob - -HISTFILE=~/.bashdb_history -set -o history -set +H - -# strings to save and restore the setting of `extglob' in debugger functions -# that need it -_seteglob='local __eopt=-u ; shopt -q extglob && __eopt=-s ; shopt -s extglob' -_resteglob='shopt $__eopt extglob' - -_linebp=() -let _trace=0 -let _i=1 - -# Be careful about quoted newlines -_potbelliedpig=${TMPDIR-/tmp}/${_guineapig/*\//}.$$ -sed 's,\\$,\\\\,' $_guineapig > $_potbelliedpig - -_msg "Reading source from file: $_guineapig" -while read; do - _lines[$_i]=$REPLY - let _i=$_i+1 -done < $_potbelliedpig - -trap _cleanup EXIT -# Assuming a real script will have the "#! /bin/sh" at line 1, -# don't stop at line 1 on the first run -let _steps=1 -LINENO=-1 -trap '_steptrap $LINENO' DEBUG diff --git a/examples/complete/bash_completion b/examples/complete/bash_completion new file mode 100644 index 000000000..b0cf4a85d --- /dev/null +++ b/examples/complete/bash_completion @@ -0,0 +1,9401 @@ +# bash_completion - programmable completion functions for bash 3.x +# (backwards compatible with bash 2.05b) +# +# $Id: bash_completion,v 1.872 2006/03/01 16:20:18 ianmacd Exp $ +# +# Copyright (C) Ian Macdonald +# +# 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. +# +# The latest version of this software can be obtained here: +# +# http://www.caliban.org/bash/index.shtml#completion +# +# RELEASE: 20060301 + +if [[ $- == *v* ]]; then + BASH_COMPLETION_ORIGINAL_V_VALUE="-v" +else + BASH_COMPLETION_ORIGINAL_V_VALUE="+v" +fi + +if [[ -n $BASH_COMPLETION_DEBUG ]]; then + set -v +else + set +v +fi + +# Alter the following to reflect the location of this file. +# +[ -n "$BASH_COMPLETION" ] || BASH_COMPLETION=/etc/bash_completion +[ -n "$BASH_COMPLETION_DIR" ] || BASH_COMPLETION_DIR=/etc/bash_completion.d +readonly BASH_COMPLETION BASH_COMPLETION_DIR + +# Set a couple of useful vars +# +UNAME=$( uname -s ) +# strip OS type and version under Cygwin (e.g. CYGWIN_NT-5.1 => Cygwin) +UNAME=${UNAME/CYGWIN_*/Cygwin} +RELEASE=$( uname -r ) + +# features supported by bash 2.05 and higher +if [ ${BASH_VERSINFO[0]} -eq 2 ] && [[ ${BASH_VERSINFO[1]} > 04 ]] || + [ ${BASH_VERSINFO[0]} -gt 2 ]; then + declare -r bash205=$BASH_VERSION 2>/dev/null || : + default="-o default" + dirnames="-o dirnames" + filenames="-o filenames" +fi +# features supported by bash 2.05b and higher +if [ ${BASH_VERSINFO[0]} -eq 2 ] && [[ ${BASH_VERSINFO[1]} = "05b" ]] || + [ ${BASH_VERSINFO[0]} -gt 2 ]; then + declare -r bash205b=$BASH_VERSION 2>/dev/null || : + nospace="-o nospace" +fi +# features supported by bash 3.0 and higher +if [ ${BASH_VERSINFO[0]} -gt 2 ]; then + declare -r bash3=$BASH_VERSION 2>/dev/null || : + bashdefault="-o bashdefault" + plusdirs="-o plusdirs" +fi + +# Turn on extended globbing and programmable completion +shopt -s extglob progcomp + +# A lot of the following one-liners were taken directly from the +# completion examples provided with the bash 2.04 source distribution + +# Make directory commands see only directories +complete -d pushd + +# The following section lists completions that are redefined later +# Do NOT break these over multiple lines. +# +# START exclude -- do NOT remove this line +complete -f -X '!*.?(t)bz?(2)' bunzip2 bzcat bzcmp bzdiff bzegrep bzfgrep bzgrep +complete -f -X '!*.@(zip|ZIP|jar|JAR|exe|EXE|pk3|war|wsz|ear|zargo|xpi|sxw|ott)' unzip zipinfo +complete -f -X '*.Z' compress znew +complete -f -X '!*.@(Z|gz|tgz|Gz|dz)' gunzip zcmp zdiff zcat zegrep zfgrep zgrep zless zmore +complete -f -X '!*.Z' uncompress +complete -f -X '!*.@(gif|jp?(e)g|miff|tif?(f)|pn[gm]|p[bgp]m|bmp|xpm|ico|xwd|tga|pcx|GIF|JP?(E)G|MIFF|TIF?(F)|PN[GM]|P[BGP]M|BMP|XPM|ICO|XWD|TGA|PCX)' ee display +complete -f -X '!*.@(gif|jp?(e)g|tif?(f)|png|p[bgp]m|bmp|x[bp]m|rle|rgb|pcx|fits|pm|GIF|JPG|JP?(E)G|TIF?(F)|PNG|P[BGP]M|BMP|X[BP]M|RLE|RGB|PCX|FITS|PM)' xv qiv +complete -f -X '!*.@(@(?(e)ps|?(E)PS|pdf|PDF)?(.gz|.GZ|.bz2|.BZ2|.Z))' gv ggv kghostview +complete -f -X '!*.@(dvi|DVI)?(.@(gz|Z|bz2))' xdvi +complete -f -X '!*.@(dvi|DVI)?(.@(gz|bz2))' kdvi +complete -f -X '!*.@(dvi|DVI)' dvips dviselect dvitype dvipdf advi dvipdfm dvipdfmx +complete -f -X '!*.@(pdf|PDF)' acroread gpdf xpdf +complete -f -X '!*.@(?(e)ps|?(E)PS|pdf|PDF)' kpdf +complete -f -X '!*.@(@(?(e)ps|?(E)PS|pdf|PDF)?(.gz|.GZ)|cb(r|z)|CB(R|Z)|djv?(u)|DJV?(U)||dvi|DVI|gif|jp?(e)g|miff|tif?(f)|pn[gm]|p[bgp]m|bmp|xpm|ico|xwd|tga|pcx|GIF|JP?(E)G|MIFF|TIF?(F)|PN[GM]|P[BGP]M|BMP|XPM|ICO|XWD|TGA|PCX)' evince +complete -f -X '!*.@(?(e)ps|?(E)PS)' ps2pdf +complete -f -X '!*.texi*' makeinfo texi2html +complete -f -X '!*.@(?(la)tex|?(LA)TEX|texi|TEXI|dtx|DTX|ins|INS)' tex latex slitex jadetex pdfjadetex pdftex pdflatex texi2dvi +complete -f -X '!*.@(mp3|MP3)' mpg123 mpg321 madplay +complete -f -X '!*.@(mp?(e)g|MP?(E)G|wma|avi|AVI|asf|vob|VOB|bin|dat|divx|DIVX|vcd|ps|pes|fli|flv|FLV|viv|rm|ram|yuv|mov|MOV|qt|QT|wmv|mp3|MP3|m4v|M4V|ogg|OGG|ogm|OGM|mp4|MP4|wav|WAV|asx|ASX|mng|MNG|srt)' xine aaxine fbxine kaffeine +complete -f -X '!*.@(avi|asf|wmv)' aviplay +complete -f -X '!*.@(rm?(j)|ra?(m)|smi?(l))' realplay +complete -f -X '!*.@(mpg|mpeg|avi|mov|qt)' xanim +complete -f -X '!*.@(ogg|OGG|m3u|flac|spx)' ogg123 +complete -f -X '!*.@(mp3|MP3|ogg|OGG|pls|m3u)' gqmpeg freeamp +complete -f -X '!*.fig' xfig +complete -f -X '!*.@(mid?(i)|MID?(I))' playmidi +complete -f -X '!*.@(mid?(i)|MID?(I)|rmi|RMI|rcp|RCP|[gr]36|[GR]36|g18|G18|mod|MOD|xm|XM|it|IT|x3m|X3M)' timidity +complete -f -X '*.@(o|so|so.!(conf)|a|rpm|gif|GIF|jp?(e)g|JP?(E)G|mp3|MP3|mp?(e)g|MPG|avi|AVI|asf|ASF|ogg|OGG|class|CLASS)' vi vim gvim rvim view rview rgvim rgview gview +complete -f -X '*.@(o|so|so.!(conf)|a|rpm|gif|GIF|jp?(e)g|JP?(E)G|mp3|MP3|mp?(e)g|MPG|avi|AVI|asf|ASF|ogg|OGG|class|CLASS)' emacs +complete -f -X '!*.@(exe|EXE|com|COM|scr|SCR|exe.so)' wine +complete -f -X '!*.@(zip|ZIP|z|Z|gz|GZ|tgz|TGZ)' bzme +complete -f -X '!*.@(?([xX]|[sS])[hH][tT][mM]?([lL]))' netscape mozilla lynx opera galeon curl dillo elinks amaya +complete -f -X '!*.@(sxw|stw|sxg|sgl|doc|dot|rtf|txt|htm|html|odt|ott|odm)' oowriter +complete -f -X '!*.@(sxi|sti|pps|ppt|pot|odp|otp)' ooimpress +complete -f -X '!*.@(sxc|stc|xls|xlw|xlt|csv|ods|ots)' oocalc +complete -f -X '!*.@(sxd|std|sda|sdd|odg|otg)' oodraw +complete -f -X '!*.@(sxm|smf|mml|odf)' oomath +complete -f -X '!*.odb' oobase +complete -f -X '!*.rpm' rpm2cpio +# FINISH exclude -- do not remove this line + +# start of section containing compspecs that can be handled within bash + +# user commands see only users +complete -u su usermod userdel passwd chage write chfn groups slay w sux + +# group commands see only groups +[ -n "$bash205" ] && complete -g groupmod groupdel newgrp 2>/dev/null + +# bg completes with stopped jobs +complete -A stopped -P '%' bg + +# other job commands +complete -j -P '%' fg jobs disown + +# readonly and unset complete with shell variables +complete -v readonly unset + +# set completes with set options +complete -A setopt set + +# shopt completes with shopt options +complete -A shopt shopt + +# helptopics +complete -A helptopic help + +# unalias completes with aliases +complete -a unalias + +# bind completes with readline bindings (make this more intelligent) +complete -A binding bind + +# type and which complete on commands +complete -c command type which + +# builtin completes on builtins +complete -b builtin + +# start of section containing completion functions called by other functions + +# This function checks whether we have a given program on the system. +# No need for bulky functions in memory if we don't. +# +have() +{ + unset -v have + PATH=$PATH:/sbin:/usr/sbin:/usr/local/sbin type $1 &>/dev/null && + have="yes" +} + +# use GNU sed if we have it, since its extensions are still used in our code +# +[ $UNAME != Linux ] && have gsed && alias sed=gsed + +# This function checks whether a given readline variable +# is `on'. +# +_rl_enabled() +{ + [[ "$( bind -v )" = *$1+([[:space:]])on* ]] +} + +# This function shell-quotes the argument +quote() +{ + echo \'${1//\'/\'\\\'\'}\' #'# Help vim syntax highlighting +} + +# This function quotes the argument in a way so that readline dequoting +# results in the original argument +quote_readline() +{ + local t="${1//\\/\\\\}" + echo \'${t//\'/\'\\\'\'}\' #'# Help vim syntax highlighting +} + +# This function shell-dequotes the argument +dequote() +{ + eval echo "$1" +} + + +# Get the word to complete +# This is nicer than ${COMP_WORDS[$COMP_CWORD]}, since it handles cases +# where the user is completing in the middle of a word. +# (For example, if the line is "ls foobar", +# and the cursor is here --------> ^ +# it will complete just "foo", not "foobar", which is what the user wants.) +_get_cword() +{ + if [[ "${#COMP_WORDS[COMP_CWORD]}" -eq 0 ]] || [[ "$COMP_POINT" == "${#COMP_LINE}" ]]; then + echo "${COMP_WORDS[COMP_CWORD]}" + else + local i + local cur="$COMP_LINE" + local index="$COMP_POINT" + for (( i = 0; i <= COMP_CWORD; ++i )); do + while [[ "${#cur}" -ge ${#COMP_WORDS[i]} ]] && [[ "${cur:0:${#COMP_WORDS[i]}}" != "${COMP_WORDS[i]}" ]]; do + cur="${cur:1}" + index="$(( index - 1 ))" + done + if [[ "$i" -lt "$COMP_CWORD" ]]; then + local old_size="${#cur}" + cur="${cur#${COMP_WORDS[i]}}" + local new_size="${#cur}" + index="$(( index - old_size + new_size ))" + fi + done + + if [[ "${COMP_WORDS[COMP_CWORD]:0:${#cur}}" != "$cur" ]]; then + # We messed up! At least return the whole word so things keep working + echo "${COMP_WORDS[COMP_CWORD]}" + else + echo "${cur:0:$index}" + fi + fi +} + + +# This function performs file and directory completion. It's better than +# simply using 'compgen -f', because it honours spaces in filenames. +# If passed -d, it completes only on directories. If passed anything else, +# it's assumed to be a file glob to complete on. +# +_filedir() +{ + local IFS=$'\t\n' xspec + + _expand || return 0 + + local toks=( ) tmp + while read -r tmp; do + [[ -n $tmp ]] && toks[${#toks[@]}]=$tmp + done < <( compgen -d -- "$(quote_readline "$cur")" ) + + if [[ "$1" != -d ]]; then + xspec=${1:+"!*.$1"} + while read -r tmp; do + [[ -n $tmp ]] && toks[${#toks[@]}]=$tmp + done < <( compgen -f -X "$xspec" -- "$(quote_readline "$cur")" ) + fi + + COMPREPLY=( "${COMPREPLY[@]}" "${toks[@]}" ) +} + +# This function completes on signal names +# +_signals() +{ + local i + + # standard signal completion is rather braindead, so we need + # to hack around to get what we want here, which is to + # complete on a dash, followed by the signal name minus + # the SIG prefix + COMPREPLY=( $( compgen -A signal SIG${cur#-} )) + for (( i=0; i < ${#COMPREPLY[@]}; i++ )); do + COMPREPLY[i]=-${COMPREPLY[i]#SIG} + done +} + +# This function completes on configured network interfaces +# +_configured_interfaces() +{ + if [ -f /etc/debian_version ]; then + # Debian system + COMPREPLY=( $( sed -ne 's|^iface \([^ ]\+\).*$|\1|p' \ + /etc/network/interfaces ) ) + elif [ -f /etc/SuSE-release ]; then + # SuSE system + COMPREPLY=( $( command ls \ + /etc/sysconfig/network/ifcfg-* | \ + sed -ne 's|.*ifcfg-\('$cur'.*\)|\1|p' ) ) + elif [ -f /etc/pld-release ]; then + # PLD Linux + COMPREPLY=( $( command ls -B \ + /etc/sysconfig/interfaces | \ + sed -ne 's|.*ifcfg-\('$cur'.*\)|\1|p' ) ) + else + # Assume Red Hat + COMPREPLY=( $( command ls \ + /etc/sysconfig/network-scripts/ifcfg-* | \ + sed -ne 's|.*ifcfg-\('$cur'.*\)|\1|p' ) ) + fi +} + +# This function completes on all available network interfaces +# -a: restrict to active interfaces only +# -w: restrict to wireless interfaces only +# +_available_interfaces() +{ + local cmd + + if [ "${1:-}" = -w ]; then + cmd="iwconfig" + elif [ "${1:-}" = -a ]; then + cmd="ifconfig" + else + cmd="ifconfig -a" + fi + + COMPREPLY=( $( eval $cmd 2>/dev/null | \ + sed -ne 's|^\('$cur'[^[:space:][:punct:]]\{1,\}\).*$|\1|p') ) +} + +# This function expands tildes in pathnames +# +_expand() +{ + # FIXME: Why was this here? + # [ "$cur" != "${cur%\\}" ] && cur="$cur\\" + + # expand ~username type directory specifications + if [[ "$cur" == \~*/* ]]; then + eval cur=$cur + elif [[ "$cur" == \~* ]]; then + cur=${cur#\~} + COMPREPLY=( $( compgen -P '~' -u $cur ) ) + return ${#COMPREPLY[@]} + fi +} + +# This function completes on process IDs. +# AIX and Solaris ps prefers X/Open syntax. +[ $UNAME = SunOS -o $UNAME = AIX ] && +_pids() +{ + COMPREPLY=( $( compgen -W '$( command ps -efo pid | sed 1d )' -- $cur )) +} || +_pids() +{ + COMPREPLY=( $( compgen -W '$( command ps axo pid | sed 1d )' -- $cur ) ) +} + +# This function completes on process group IDs. +# AIX and SunOS prefer X/Open, all else should be BSD. +[ $UNAME = SunOS -o $UNAME = AIX ] && +_pgids() +{ + COMPREPLY=( $( compgen -W '$( command ps -efo pgid | sed 1d )' -- $cur )) +} || +_pgids() +{ + COMPREPLY=( $( compgen -W '$( command ps axo pgid | sed 1d )' -- $cur )) +} + +# This function completes on user IDs +# +_uids() +{ + if type getent &>/dev/null; then + COMPREPLY=( $( getent passwd | \ + awk -F: '{if ($3 ~ /^'$cur'/) print $3}' ) ) + elif type perl &>/dev/null; then + COMPREPLY=( $( compgen -W '$( perl -e '"'"'while (($uid) = (getpwent)[2]) { print $uid . "\n" }'"'"' )' -- $cur ) ) + else + # make do with /etc/passwd + COMPREPLY=( $( awk 'BEGIN {FS=":"} {if ($3 ~ /^'$cur'/) print $3}'\ + /etc/passwd ) ) + fi +} + +# This function completes on group IDs +# +_gids() +{ + if type getent &>/dev/null; then + COMPREPLY=( $( getent group | \ + awk -F: '{if ($3 ~ /^'$cur'/) print $3}' ) ) + elif type perl &>/dev/null; then + COMPREPLY=( $( compgen -W '$( perl -e '"'"'while (($gid) = (getgrent)[2]) { print $gid . "\n" }'"'"' )' -- $cur ) ) + else + # make do with /etc/group + COMPREPLY=( $( awk 'BEGIN {FS=":"} {if ($3 ~ /^'$cur'/) print $3}'\ + /etc/group ) ) + fi +} + +# This function completes on services +# +_services() +{ + local sysvdir famdir + [ -d /etc/rc.d/init.d ] && sysvdir=/etc/rc.d/init.d || sysvdir=/etc/init.d + famdir=/etc/xinetd.d + COMPREPLY=( $( builtin echo $sysvdir/!(*.rpmsave|*.rpmorig|*~|functions)) ) + + if [ -d $famdir ]; then + COMPREPLY=( "${COMPREPLY[@]}" $( builtin echo $famdir/!(*.rpmsave|*.rpmorig|*~)) ) + fi + + COMPREPLY=( $( compgen -W '${COMPREPLY[@]#@($sysvdir|$famdir)/}' -- $cur ) ) +} + +# This function complete on modules +# +_modules() +{ + local modpath + modpath=/lib/modules/$1 + COMPREPLY=( $( command ls -R $modpath | \ + sed -ne 's/^\('$cur'.*\)\.k\?o\(\|.gz\)$/\1/p') ) +} + +# this function complete on user:group format +# +_usergroup() +{ + local IFS=$'\n' + cur=${cur//\\\\ / } + if [[ $cur = *@(\\:|.)* ]] && [ -n "$bash205" ]; then + user=${cur%%*([^:.])} + COMPREPLY=( $(compgen -P ${user/\\\\} -g -- ${cur##*[.:]}) ) + elif [[ $cur = *:* ]] && [ -n "$bash205" ]; then + COMPREPLY=( $( compgen -g -- ${cur##*[.:]} ) ) + else + COMPREPLY=( $( compgen -S : -u -- $cur ) ) + fi +} + +# this function count the number of mandatory args +# +_count_args() +{ + args=1 + for (( i=1; i < COMP_CWORD; i++ )); do + if [[ "${COMP_WORDS[i]}" != -* ]]; then + args=$(($args+1)) + fi + done +} + +# start of section containing completion functions for bash built-ins + +# bash alias completion +# +_alias() +{ + local cur + + COMPREPLY=() + cur=${COMP_WORDS[$COMP_CWORD]} + + case "$COMP_LINE" in + *[^=]) + COMPREPLY=( $( compgen -A alias -S '=' -- $cur ) ) + ;; + *=) + COMPREPLY=( "$( alias ${cur%=} 2>/dev/null | \ + sed -e 's|^alias '$cur'\(.*\)$|\1|' )" ) + ;; + esac +} +complete -F _alias $nospace alias + +# bash export completion +# +_export() +{ + local cur + + COMPREPLY=() + cur=${COMP_WORDS[$COMP_CWORD]} + + case "$COMP_LINE" in + *=\$*) + COMPREPLY=( $( compgen -v -P '$' -- ${cur#*=\$} ) ) + ;; + *[^=]) + COMPREPLY=( $( compgen -v -S '=' -- $cur ) ) + ;; + *=) + COMPREPLY=( "$( eval echo -n \"$`echo ${cur%=}`\" | + ( echo -n \' + sed -e 's/'\''/'\''\\\'\'''\''/g' + echo -n \' ) )" ) + ;; + esac +} +complete -F _export $default $nospace export + +# bash shell function completion +# +_function() +{ + local cur prev + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + if [[ $1 == @(declare|typeset) ]]; then + if [ "$prev" = -f ]; then + COMPREPLY=( $( compgen -A function -- $cur ) ) + elif [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-a -f -F -i -r -x -p' -- \ + $cur ) ) + fi + elif [ $COMP_CWORD -eq 1 ]; then + COMPREPLY=( $( compgen -A function -- $cur ) ) + else + COMPREPLY=( "() $( type -- ${COMP_WORDS[1]} | sed -e 1,2d )" ) + fi +} +complete -F _function function declare typeset + +# bash complete completion +# +_complete() +{ + local cur prev options + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + case $prev in + -o) + options="default dirnames filenames" + [ -n "$bash205b" ] && options="$options nospace" + [ -n "$bash3" ] && options="$options bashdefault plusdirs" + COMPREPLY=( $( compgen -W "$options" -- $cur ) ) + return 0 + ;; + + -A) + COMPREPLY=( $( compgen -W 'alias arrayvar binding \ + builtin command directory disabled enabled \ + export file function group helptopic hostname \ + job keyword running service setopt shopt \ + signal stopped user variable' -- $cur ) ) + return 0 + ;; + + -C) + COMPREPLY=( $( compgen -A command -- $cur ) ) + return 0 + ;; + -F) + COMPREPLY=( $( compgen -A function -- $cur ) ) + return 0 + ;; + -@(p|r)) + COMPREPLY=( $( complete -p | sed -e 's|.* ||' | \ + grep "^$cur" ) ) + return 0 + ;; + + esac + + if [[ "$cur" == -* ]]; then + # relevant options completion + options="-a -b -c -d -e -f -g -j -k -s -v -u -A -G -W -P -S -X -F -C" + [ -n "$bash205" ] && options="$options -o" + COMPREPLY=( $( compgen -W "$options" -- $cur ) ) + else + COMPREPLY=( $( compgen -A command -- $cur ) ) + fi +} +complete -F _complete complete + +# start of section containing completion functions for external programs + +# a little help for FreeBSD ports users +[ $UNAME = FreeBSD ] && complete -W 'index search fetch fetch-list \ + extract patch configure build install reinstall \ + deinstall clean clean-depends kernel buildworld' make + +# This completes on a list of all available service scripts for the +# 'service' command and/or the SysV init.d directory, followed by +# that script's available commands +# +{ have service || [ -d /etc/init.d/ ]; } && +_service() +{ + local cur sysvdir + + COMPREPLY=() + prev=${COMP_WORDS[COMP_CWORD-1]} + cur=`_get_cword` + + # don't complete for things like killall, ssh and mysql if it's + # the standalone command, rather than the init script + [[ ${COMP_WORDS[0]} != @(*init.d/!(functions|~)|service) ]] && return 0 + + # don't complete past 2nd token + [ $COMP_CWORD -gt 2 ] && return 0 + + [ -d /etc/rc.d/init.d ] && sysvdir=/etc/rc.d/init.d \ + || sysvdir=/etc/init.d + + if [[ $COMP_CWORD -eq 1 ]] && [[ $prev == "service" ]]; then + _services + else + COMPREPLY=( $( compgen -W '`sed -ne "y/|/ /; \ + s/^.*Usage.*{\(.*\)}.*$/\1/p" \ + $sysvdir/${prev##*/} 2>/dev/null`' -- $cur ) ) + fi + + return 0 +} && +complete -F _service service +[ -d /etc/init.d/ ] && complete -F _service $default \ + $(for i in /etc/init.d/*; do echo ${i##*/}; done) + +# chown(1) completion +# +_chown() +{ + local cur + cur=`_get_cword` + + # options completion + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-c -h -f -R -v --changes \ + --dereference --no-dereference --from= --silent --quiet \ + --reference= --recursive --verbose --help --version' -- $cur ) ) + else + _count_args + + case $args in + 1) + _usergroup + ;; + *) + _filedir + ;; + esac + fi +} +complete -F _chown $filenames chown + +# chgrp(1) completion +# +_chgrp() +{ + local cur prev + + COMPREPLY=() + cur=`_get_cword` + cur=${cur//\\\\/} + prev=${COMP_WORDS[COMP_CWORD-1]} + + # options completion + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-c -h -f -R -v --changes \ + --dereference --no-dereference --silent --quiet \ + --reference= --recursive --verbose --help --version' -- $cur ) ) + return 0 + fi + + # first parameter on line or first since an option? + if [ $COMP_CWORD -eq 1 ] && [[ "$cur" != -* ]] || \ + [[ "$prev" == -* ]] && [ -n "$bash205" ]; then + local IFS=$'\n' + COMPREPLY=( $( compgen -g $cur 2>/dev/null ) ) + else + _filedir || return 0 + fi + + return 0 +} +complete -F _chgrp $filenames chgrp + +# umount(8) completion. This relies on the mount point being the third +# space-delimited field in the output of mount(8) +# +_umount() +{ + local cur + + COMPREPLY=() + cur=`_get_cword` + + OLDIFS="$IFS" + IFS="\n" + COMPREPLY=( $( compgen -W '$( mount | cut -d" " -f 3 )' -- $cur ) ) + IFS="$OLDIFS" + + return 0 +} +complete -F _umount $dirnames umount + +# mount(8) completion. This will pull a list of possible mounts out of +# /etc/{,v}fstab, unless the word being completed contains a ':', which +# would indicate the specification of an NFS server. In that case, we +# query the server for a list of all available exports and complete on +# that instead. +# +_mount() +{ local cur i sm host + + COMPREPLY=() + cur=`_get_cword` + [[ "$cur" == \\ ]] && cur="/" + + for i in {,/usr}/{,s}bin/showmount; do [ -x $i ] && sm=$i && break; done + + if [ -n "$sm" ] && [[ "$cur" == *:* ]]; then + COMPREPLY=( $( $sm -e ${cur%%:*} | sed 1d | \ + grep ^${cur#*:} | awk '{print $1}' ) ) + elif [[ "$cur" == //* ]]; then + host=${cur#//} + host=${host%%/*} + if [ -n "$host" ]; then + COMPREPLY=( $( compgen -W "$( echo $( smbclient -d 0 -NL $host 2>/dev/null| + sed -ne '/^['"$'\t '"']*Sharename/,/^$/p' | + sed -ne '3,$s|^[^A-Za-z]*\([^'"$'\t '"']*\).*$|//'$host'/\1|p' ) )" -- "$cur" ) ) + fi + elif [ -r /etc/vfstab ]; then + # Solaris + COMPREPLY=( $( awk '! /^[ \t]*#/ {if ($3 ~ /\//) print $3}' \ + /etc/vfstab | grep "^$cur" ) ) + elif [ ! -e /etc/fstab ]; then + # probably Cygwin + COMPREPLY=( $( mount | awk '! /^[ \t]*#/ {if ($3 ~ /\//) print $3}' \ + | grep "^$cur" ) ) + else + # probably Linux + COMPREPLY=( $( awk '! /^[ \t]*#/ {if ($2 ~ /\//) print $2}' \ + /etc/fstab | grep "^$cur" ) ) + fi + + return 0 +} +complete -F _mount $default $filenames mount + +# Linux rmmod(8) completion. This completes on a list of all currently +# installed kernel modules. +# +have rmmod && { +_rmmod() +{ + local cur + + COMPREPLY=() + cur=`_get_cword` + + COMPREPLY=( $( /sbin/lsmod | \ + awk '{if (NR != 1 && $1 ~ /^'$cur'/) print $1}' 2>/dev/null )) + return 0 +} +complete -F _rmmod rmmod + +# Linux insmod(8), modprobe(8) and modinfo(8) completion. This completes on a +# list of all available modules for the version of the kernel currently +# running. +# +_insmod() +{ + local cur prev modpath + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + # behave like lsmod for modprobe -r + if [ $1 = "modprobe" ] && + [ "${COMP_WORDS[1]}" = "-r" ]; then + COMPREPLY=( $( /sbin/lsmod | \ + awk '{if (NR != 1 && $1 ~ /^'$cur'/) print $1}' ) ) + return 0 + fi + + # do filename completion if we're giving a path to a module + if [[ "$cur" == */* ]]; then + _filedir '@(?(k)o?(.gz))' + return 0 + fi + + if [ $COMP_CWORD -gt 1 ] && + [[ "${COMP_WORDS[COMP_CWORD-1]}" != -* ]]; then + # do module parameter completion + COMPREPLY=( $( /sbin/modinfo -p ${COMP_WORDS[1]} 2>/dev/null | \ + awk '{if ($1 ~ /^parm:/ && $2 ~ /^'$cur'/) { print $2 } \ + else if ($1 !~ /:/ && $1 ~ /^'$cur'/) { print $1 }}' ) ) + else + _modules $(uname -r) + fi + + return 0 +} +complete -F _insmod $filenames insmod modprobe modinfo +} + +# man(1) completion +# +[ $UNAME = GNU -o $UNAME = Linux -o $UNAME = Darwin \ + -o $UNAME = FreeBSD -o $UNAME = SunOS -o $UNAME = Cygwin \ + -o $UNAME = OpenBSD ] && +_man() +{ + local cur prev sect manpath UNAME + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + _expand || return 0 + + # default completion if parameter contains / + if [[ "$cur" == */* ]]; then + _filedir + return 0 + fi + + UNAME=$( uname -s ) + # strip OS type and version under Cygwin + UNAME=${UNAME/CYGWIN_*/Cygwin} + if [ $UNAME = GNU -o $UNAME = Linux -o $UNAME = FreeBSD \ + -o $UNAME = Cygwin ]; then + manpath=$( manpath 2>/dev/null || command man --path ) + else + manpath=$MANPATH + fi + + if [ -z "$manpath" ]; then + COMPREPLY=( $( compgen -c -- $cur ) ) + return 0 + fi + + # determine manual section to search + [[ "$prev" == [0-9ln] ]] && sect=$prev || sect='*' + + manpath=$manpath: + if [ -n "$cur" ]; then + manpath="${manpath//://*man$sect/$cur* } ${manpath//://*cat$sect/$cur* }" + else + manpath="${manpath//://*man$sect/ } ${manpath//://*cat$sect/ }" + fi + + # redirect stderr for when path doesn't exist + COMPREPLY=( $( eval command ls "$manpath" 2>/dev/null ) ) + # weed out directory path names and paths to man pages + COMPREPLY=( ${COMPREPLY[@]##*/?(:)} ) + # strip suffix from man pages + COMPREPLY=( ${COMPREPLY[@]%.@(gz|bz2)} ) + COMPREPLY=( $( compgen -W '${COMPREPLY[@]%.*}' -- "${cur//\\\\/}" ) ) + + [[ "$prev" != [0-9ln] ]] && _filedir '[0-9ln]' + + return 0 +} +[ $UNAME = GNU -o $UNAME = Linux -o $UNAME = Darwin \ + -o $UNAME = FreeBSD -o $UNAME = SunOS -o $UNAME = Cygwin \ + -o $UNAME = OpenBSD ] && \ +complete -F _man $filenames man apropos whatis + +# renice(8) completion +# +_renice() +{ + local command cur curopt i + + COMPREPLY=() + cur=`_get_cword` + command=$1 + + i=0 + # walk back through command line and find last option + while [ $i -le $COMP_CWORD -a ${#COMPREPLY[@]} -eq 0 ]; do + curopt=${COMP_WORDS[COMP_CWORD-$i]} + case "$curopt" in + -u) + COMPREPLY=( $( compgen -u -- $cur ) ) + ;; + -g) + _pgids + ;; + -p|$command) + _pids + ;; + esac + i=$(( ++i )) + done +} +complete -F _renice renice + +# kill(1) completion +# +_kill() +{ + local cur + + COMPREPLY=() + cur=`_get_cword` + + if [ $COMP_CWORD -eq 1 ] && [[ "$cur" == -* ]]; then + # return list of available signals + _signals + else + # return list of available PIDs + _pids + fi +} +complete -F _kill kill + +# Linux and FreeBSD killall(1) completion. +# +[ $UNAME = Linux -o $UNAME = FreeBSD ] && +_killall() +{ + local cur + + COMPREPLY=() + cur=`_get_cword` + + if [ $COMP_CWORD -eq 1 ] && [[ "$cur" == -* ]]; then + _signals + else + COMPREPLY=( $( compgen -W '$( command ps axo command | \ + sed -ne "1d; s/^\[\?\([^-][^] ]*\).*$/\1/p" | \ + sed -e "s/.*\///" )' -- $cur ) ) + fi + + return 0 +} +[ $UNAME = Linux -o $UNAME = FreeBSD ] && complete -F _killall killall pkill + +# Linux and FreeBSD pgrep(1) completion. +# +[ $UNAME = Linux -o $UNAME = FreeBSD ] && +_pgrep() +{ + local cur + + COMPREPLY=() + cur=`_get_cword` + + COMPREPLY=( $( compgen -W '$( command ps axo command | \ + sed -ne "1d; s/^\[\?\([^-][^] ]*\).*$/\1/p" | \ + sed -e "s/.*\///" )' -- $cur ) ) + + return 0 +} +[ $UNAME = Linux -o $UNAME = FreeBSD ] && complete -F _pgrep pgrep +# Linux pidof(8) completion. +[ $UNAME = Linux ] && complete -F _pgrep pidof + +# GNU find(1) completion. This makes heavy use of ksh style extended +# globs and contains Linux specific code for completing the parameter +# to the -fstype option. +# +_find() +{ + local cur prev i exprfound onlyonce + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + case "$prev" in + -@(max|min)depth) + COMPREPLY=( $( compgen -W '0 1 2 3 4 5 6 7 8 9' -- $cur ) ) + return 0 + ;; + -?(a|c)newer|-fls|-fprint?(0|f)|-?(i)?(l)name|-?(i)wholename) + _filedir + return 0 + ;; + -fstype) + # this is highly non-portable + [ -e /proc/filesystems ] && + COMPREPLY=( $( cut -d$'\t' -f 2 /proc/filesystems | \ + grep "^$cur" ) ) + return 0 + ;; + -gid) + _gids + return 0 + ;; + -group) + if [ -n "$bash205" ]; then + COMPREPLY=( $( compgen -g -- $cur 2>/dev/null) ) + fi + return 0 + ;; + -?(x)type) + COMPREPLY=( $( compgen -W 'b c d p f l s' -- $cur ) ) + return 0 + ;; + -uid) + _uids + return 0 + ;; + -user) + COMPREPLY=( $( compgen -u -- $cur ) ) + return 0 + ;; + -exec|-ok) + COMP_WORDS=(COMP_WORDS[0] $cur) + COMP_CWORD=1 + _command + return 0 + ;; + -[acm]min|-[acm]time|-?(i)?(l)name|-inum|-?(i)path|-?(i)regex| \ + -links|-perm|-size|-used|-printf) + # do nothing, just wait for a parameter to be given + return 0 + ;; + esac + + _expand || return 0 + + # set exprfound to 1 if there is already an expression present + for i in ${COMP_WORDS[@]}; do + [[ "$i" = [-\(\),\!]* ]] && exprfound=1 && break + done + + # handle case where first parameter is not a dash option + if [ "$exprfound" != 1 ] && [[ "$cur" != [-\(\),\!]* ]]; then + _filedir -d + return 0 + fi + + # complete using basic options + COMPREPLY=( $( compgen -W '-daystart -depth -follow -help -maxdepth \ + -mindepth -mount -noleaf -version -xdev -amin -anewer \ + -atime -cmin -cnewer -ctime -empty -false -fstype \ + -gid -group -ilname -iname -inum -ipath -iregex \ + -wholename \ + -links -lname -mmin -mtime -name -newer -nouser \ + -nogroup -perm -regex -size -true -type -uid -used \ + -user -xtype -exec -fls -fprint -fprint0 -fprintf -ok \ + -print -print0 -printf -prune -ls' -- $cur ) ) + + # this removes any options from the list of completions that have + # already been specified somewhere on the command line, as long as + # these options can only be used once (in a word, "options", in + # opposition to "tests" and "actions", as in the find(1) manpage). + onlyonce=' -daystart -depth -follow -help -maxdepth -mindepth -mount \ + -noleaf -version -xdev ' + COMPREPLY=( $( echo "${COMP_WORDS[@]}" | \ + (while read -d ' ' i; do + [ "$i" == "" ] || + [ "${onlyonce/ ${i%% *} / }" == "$onlyonce" ] && + continue + # flatten array with spaces on either side, + # otherwise we cannot grep on word boundaries of + # first and last word + COMPREPLY=" ${COMPREPLY[@]} " + # remove word from list of completions + COMPREPLY=( ${COMPREPLY/ ${i%% *} / } ) + done + echo "${COMPREPLY[@]}") + ) ) + + _filedir + + return 0 +} +complete -F _find $filenames find + +# Linux iwconfig(8) completion +# +[ $UNAME = Linux ] && have iwconfig && +_iwconfig() +{ + local cur prev + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + case $prev in + mode) + COMPREPLY=( $( compgen -W 'managed ad-hoc master \ + repeater secondary monitor' -- $cur ) ) + return 0 + ;; + essid) + COMPREPLY=( $( compgen -W 'on off any' -- $cur ) ) + if [ -n "${COMP_IWLIST_SCAN:-}" ]; then + COMPREPLY=( "${COMPREPLY[@]}" \ + $( iwlist ${COMP_WORDS[1]} scan | \ + awk -F '"' '/ESSID/ {print $2}' | \ + grep "^$cur" )) + fi + return 0 + ;; + nwid) + COMPREPLY=( $( compgen -W 'on off' -- $cur ) ) + return 0 + ;; + channel) + COMPREPLY=( $( iwlist ${COMP_WORDS[1]} channel | \ + awk '/^[[:space:]]*Channel/ {print $2}' | \ + grep "^$cur" ) ) + return 0 + ;; + + freq) + COMPREPLY=( $( iwlist ${COMP_WORDS[1]} channel | \ + awk '/^[[:space:]]*Channel/ {print $4"G"}' | \ + grep "^$cur" ) ) + return 0 + ;; + ap) + COMPREPLY=( $( compgen -W 'on off any' -- $cur ) ) + if [ -n "${COMP_IWLIST_SCAN:-}" ]; then + COMPREPLY=( "${COMPREPLY[@]}" \ + $( iwlist ${COMP_WORDS[1]} scan | \ + awk -F ': ' '/Address/ {print $2}' | \ + grep "^$cur" ) ) + fi + return 0 + ;; + rate) + COMPREPLY=( $( compgen -W 'auto fixed' -- $cur ) ) + COMPREPLY=( "${COMPREPLY[@]}" \ + $( iwlist ${COMP_WORDS[1]} rate | \ + awk '/^[[:space:]]*[0-9]/ {print $1"M"}' | \ + grep "^$cur" ) ) + return 0 + ;; + rts) + COMPREPLY=( $( compgen -W 'auto fixed off' -- $cur ) ) + return 0 + ;; + frag) + COMPREPLY=( $( compgen -W 'auto fixed off' -- $cur ) ) + return 0 + ;; + key) + COMPREPLY=( $( compgen -W 'off on open restricted' -- $cur ) ) + return 0 + ;; + enc) + COMPREPLY=( $( compgen -W 'off on open restricted' -- $cur ) ) + return 0 + ;; + power) + COMPREPLY=( $( compgen -W 'period timeout off on' -- $cur ) ) + return 0 + ;; + txpower) + COMPREPLY=( $( compgen -W 'off on auto' -- $cur ) ) + return 0 + ;; + retry) + COMPREPLY=( $( compgen -W 'limit lifetime' -- $cur ) ) + return 0 + ;; + esac + + if [ $COMP_CWORD -eq 1 ]; then + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '--help --version' -- $cur ) ) + else + _available_interfaces -w + fi + else + COMPREPLY=( $( compgen -W 'essid nwid mode freq channel sens mode \ + ap nick rate rts frag enc key power txpower commit' -- $cur ) ) + fi + +} && +complete -F _iwconfig iwconfig + +# Linux iwlist(8) completion +# +[ $UNAME = Linux ] && have iwlist && +_iwlist() +{ + local cur prev + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + if [ $COMP_CWORD -eq 1 ]; then + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '--help --version' -- $cur ) ) + else + _available_interfaces -w + fi + else + COMPREPLY=( $( compgen -W 'scan scanning freq frequency \ + channel rate bit bitrate key enc encryption power \ + txpower retry ap accesspoint peers event' -- $cur ) ) + fi +} && +complete -F _iwlist iwlist + +# Linux iwspy(8) completion +# +[ $UNAME = Linux ] && have iwspy && +_iwspy() +{ + local cur + + COMPREPLY=() + cur=`_get_cword` + + if [ $COMP_CWORD -eq 1 ]; then + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '--help --version' -- $cur ) ) + else + _available_interfaces -w + fi + else + COMPREPLY=( $( compgen -W 'setthr getthr off' -- $cur ) ) + fi +} && +complete -F _iwspy iwspy + +# Linux iwpriv(8) completion +# +[ $UNAME = Linux ] && have iwpriv && +_iwpriv() +{ + local cur prev + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + case "$prev" in + roam) + COMPREPLY=( $( compgen -W 'on off' -- $cur ) ) + return 0 + ;; + port) + COMPREPLY=( $( compgen -W 'ad-hoc managed' -- $cur ) ) + return 0 + ;; + esac + + if [ $COMP_CWORD -eq 1 ]; then + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '--help --version' -- $cur ) ) + else + _available_interfaces -w + fi + else + COMPREPLY=( $( compgen -W '--all roam port' -- $cur ) ) + fi +} && +complete -F _iwpriv iwpriv + +# RedHat & Debian GNU/Linux if{up,down} completion +# +[ $UNAME = Linux ] && { have ifup || have ifdown; } && +_ifupdown() +{ + local cur + + COMPREPLY=() + cur=`_get_cword` + + if [ $COMP_CWORD -eq 1 ]; then + _configured_interfaces + COMPREPLY=( $(compgen -W '${COMPREPLY[@]}' -- "$cur") ) + fi + + return 0 +} && +complete -F _ifupdown ifup ifdown +[ $UNAME = Linux ] && have ifstatus && complete -F _ifupdown ifstatus + +# Linux ipsec(8) completion (for FreeS/WAN) +# +[ $UNAME = Linux ] && have ipsec && +_ipsec() +{ + local cur + + COMPREPLY=() + cur=`_get_cword` + + + if [ $COMP_CWORD -eq 1 ]; then + COMPREPLY=( $( compgen -W 'auto barf eroute klipsdebug look \ + manual pluto ranbits rsasigkey \ + setup showdefaults showhostkey spi \ + spigrp tncfg whack' -- $cur ) ) + return 0 + fi + + case ${COMP_WORDS[1]} in + auto) + COMPREPLY=( $( compgen -W '--asynchronous --up --add --delete \ + --replace --down --route --unroute \ + --ready --status --rereadsecrets' \ + -- $cur ) ) + ;; + manual) + COMPREPLY=( $( compgen -W '--up --down --route --unroute \ + --union' -- $cur ) ) + ;; + ranbits) + COMPREPLY=( $( compgen -W '--quick --continuous --bytes' \ + -- $cur ) ) + ;; + setup) + COMPREPLY=( $( compgen -W '--start --stop --restart' -- $cur ) ) + ;; + + *) + ;; + esac + + return 0 +} && +complete -F _ipsec ipsec + +# Postfix completion. +# +have postfix && { +# postfix(1) +# +_postfix() +{ + local cur prev + + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + if [[ $cur == '-' ]]; then + COMPREPLY=(-c -D -v) + return 0 + fi + if [[ $prev == '-c' ]]; then + _filedir -d + return 0 + fi + if [[ $prev == '-D' ]]; then + COMPREPLY=( $( compgen -W 'start' -- "`get_cword`" ) ) + return 0 + fi + COMPREPLY=( $( compgen -W 'start stop reload abort flush check' -- \ + "`get_cword`" ) ) +} +complete -F _postfix postfix + +# postalias(1) and postmap(1) +# +_postmap() +{ + local cur prev len idx + + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + if [[ $cur == '-' ]]; then + COMPREPLY=(-N -f -i -n -o -p -r -v -w -c -d -q) + return 0 + fi + if [[ $prev == '-c' ]]; then + _filedir -d + return 0 + fi + if [[ $prev == -[dq] ]]; then + return 0 + fi + + if [[ "$cur" == *:* ]]; then + COMPREPLY=( $( compgen -f -- ${cur#*:} ) ) + else + len=${#cur} + idx=0 + for pval in $( /usr/sbin/postconf -m ); do + if [[ "$cur" == "${pval:0:$len}" ]]; then + COMPREPLY[$idx]="$pval:" + idx=$(($idx+1)) + fi + done + if [[ $idx -eq 0 ]]; then + COMPREPLY=( $( compgen -f -- "$cur" ) ) + fi + fi + return 0 +} +complete -F _postmap postmap postalias + +# postcat(1) +# +_postcat() +{ + local cur prev pval len idx qfile + + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + if [[ $cur == '-' ]]; then + COMPREPLY=(-c -q -v) + return 0 + fi + if [[ $prev == '-c' ]]; then + _filedir -d + return 0 + fi + + qfile=0 + for idx in "${COMP_WORDS[@]}"; do + [[ "$idx" = -q ]] && qfile=1 && break + done + if [[ $qfile == 1 ]]; then + len=${#cur} + idx=0 + for pval in $( mailq | \ + sed -e '1d; $d; /^[^0-9A-Z]\|^$/d; s/[* !].*$//' ); do + if [[ "$cur" == "${pval:0:$len}" ]]; then + COMPREPLY[$idx]=$pval + idx=$(($idx+1)) + fi + done + return 0 + else + _filedir + return 0 + fi +} +complete -F _postcat postcat + +# postconf(1) +# +_postconf() +{ + local cur prev pval len idx eqext + + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + if [[ $cur == '-' ]]; then + COMPREPLY=(-c -d -e -h -m -l -n -v) + return 0 + fi + if [[ $prev == '-c' ]]; then + _filedir -d + return 0 + fi + if [[ $prev == '-e' ]]; then + cur=${cur#[\"\']} + eqext='=' + fi + len=${#cur} + idx=0 + for pval in $( /usr/sbin/postconf | cut -d ' ' -f 1 ); do + if [[ "$cur" == "${pval:0:$len}" ]]; then + COMPREPLY[$idx]="$pval$eqext" + idx=$(($idx+1)) + fi + done + return 0 +} +complete -F _postconf postconf + +# postsuper(1) +# +_postsuper() +{ + local cur prev pval len idx + + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + if [[ $cur == '-' ]]; then + COMPREPLY=(-c -d -h -H -p -r -s -v) + return 0 + fi + case $prev in + -[dr]) + len=${#cur} + idx=0 + for pval in $( echo ALL; mailq | \ + sed -e '1d; $d; /^[^0-9A-Z]\|^$/d; s/[* !].*$//' ); do + if [[ "$cur" == "${pval:0:$len}" ]]; then + COMPREPLY[$idx]=$pval + idx=$(($idx+1)) + fi + done + return 0 + ;; + -h) + len=${#cur} + idx=0 + for pval in $( echo ALL; mailq | \ + sed -e '1d; $d; /^[^0-9A-Z]\|^$/d; s/[* ].*$//; /!$/d' ); do + if [[ "$cur" == "${pval:0:$len}" ]]; then + COMPREPLY[$idx]=$pval + idx=$(($idx+1)) + fi + done + return 0 + ;; + -H) + len=${#cur} + idx=0 + for pval in $( echo ALL; mailq | \ + sed -e '1d; $d; /^[^0-9A-Z]\|^$/d; /^[0-9A-Z]*[* ]/d; s/!.*$//' ); do + if [[ "$cur" == "${pval:0:$len}" ]]; then + COMPREPLY[$idx]=$pval + idx=$(($idx+1)) + fi + done + return 0 + ;; + esac + COMPREPLY=( $( compgen -W 'hold incoming active deferred' -- $cur ) ) + return 0 +} +complete -F _postsuper postsuper +} + +# cvs(1) completion +# +have cvs && { +set_prefix() +{ + [ -z ${prefix:-} ] || prefix=${cur%/*}/ + [ -r ${prefix:-}CVS/Entries ] || prefix="" +} + +get_entries() +{ + local IFS=$'\n' + [ -r ${prefix:-}CVS/Entries ] && \ + entries=$(cut -d/ -f2 -s ${prefix:-}CVS/Entries) +} + +get_modules() +{ + if [ -n "$prefix" ]; then + COMPREPLY=( $( command ls -d ${cvsroot}/${prefix}/!(CVSROOT) ) ) + else + COMPREPLY=( $( command ls -d ${cvsroot}/!(CVSROOT) ) ) + fi +} + +_cvs() +{ + local cur count mode i cvsroot cvsroots pwd + local -a flags miss files entries changed newremoved + + COMPREPLY=() + cur=`_get_cword` + + count=0 + for i in "${COMP_WORDS[@]}"; do + [ $count -eq $COMP_CWORD ] && break + # Last parameter was the CVSROOT, now go back to mode selection + if [ "${COMP_WORDS[((count))]}" == "$cvsroot" -a "$mode" == "cvsroot" ]; then + mode="" + fi + if [ -z "$mode" ]; then + case $i in + -d) + mode=cvsroot + cvsroot=${COMP_WORDS[((count+1))]} + ;; + @(ad?(d)|new)) + mode=add + ;; + @(adm?(in)|rcs)) + mode=admin + ;; + ann?(notate)) + mode=annotate + ;; + @(checkout|co|get)) + mode=checkout + ;; + @(com?(mit)|ci)) + mode=commit + ;; + di?(f?(f))) + mode=diff + ;; + ex?(p?(ort))) + mode=export + ;; + ?(un)edit) + mode=$i + ;; + hi?(s?(tory))) + mode=history + ;; + im?(p?(ort))) + mode=import + ;; + re?(l?(ease))) + mode=release + ;; + ?(r)log) + mode=log + ;; + @(rdiff|patch)) + mode=rdiff + ;; + @(remove|rm|delete)) + mode=remove + ;; + @(rtag|rfreeze)) + mode=rtag + ;; + st?(at?(us))) + mode=status + ;; + @(tag|freeze)) + mode=tag + ;; + up?(d?(ate))) + mode=update + ;; + *) + ;; + esac + elif [[ "$i" = -* ]]; then + flags=( "${flags[@]}" $i ) + fi + count=$((++count)) + done + + case "$mode" in + add) + if [[ "$cur" != -* ]]; then + set_prefix + if [ $COMP_CWORD -gt 1 -a -r ${prefix:-}CVS/Entries ]; then + get_entries + [ -z "$cur" ] && \ + files=$( command ls -Ad !(CVS) ) || \ + files=$( command ls -d ${cur}* 2>/dev/null ) + for i in "${entries[@]}"; do + files=( ${files[@]/#$i//} ) + done + COMPREPLY=( $( compgen -W '${files[@]}' -- \ + $cur ) ) + fi + else + COMPREPLY=( $( compgen -W '-k -m' -- $cur ) ) + fi + ;; + admin) + if [[ "$cur" = -* ]]; then + COMPREPLY=( $( compgen -W '-i -a -A -e -b -c -k -l -u \ + -L -U -m -M -n -N -o -q -I \ + -s -t -t- -T -V -x -z' -- \ + $cur ) ) + fi + ;; + annotate) + if [[ "$cur" = -* ]]; then + COMPREPLY=( $( compgen -W '-D -F -f -l -R -r' -- $cur ) ) + else + get_entries + COMPREPLY=( $( compgen -W '${entries[@]}' -- $cur ) ) + fi + ;; + checkout) + if [[ "$cur" != -* ]]; then + [ -z "$cvsroot" ] && cvsroot=$CVSROOT + COMPREPLY=( $( cvs -d "$cvsroot" co -c 2> /dev/null | \ + awk '{print $1}' ) ) + COMPREPLY=( $( compgen -W '${COMPREPLY[@]}' -- $cur ) ) + else + COMPREPLY=( $( compgen -W '-A -N -P -R -c -f -l -n -p \ + -s -r -D -d -k -j' -- $cur ) ) + fi + ;; + commit) + set_prefix + + if [[ "$cur" != -* ]] && [ -r ${prefix:-}CVS/Entries ]; then + # if $COMP_CVS_REMOTE is not null, 'cvs commit' will + # complete on remotely checked-out files (requires + # passwordless access to the remote repository + if [ -n "${COMP_CVS_REMOTE:-}" ]; then + # this is the least computationally intensive + # way found so far, but other changes + # (something other than changed/removed/new) + # may be missing + changed=( $( cvs -q diff --brief 2>&1 | \ + sed -ne 's/^Files [^ ]* and \([^ ]*\) differ$/\1/p' ) ) + newremoved=( $( cvs -q diff --brief 2>&1 | \ + sed -ne 's/^cvs diff: \([^ ]*\) .*, no comparison available$/\1/p' ) ) + COMPREPLY=( $( compgen -W '${changed[@]:-} \ + ${newremoved[@]:-}' -- $cur ) ) + else + _filedir + fi + else + COMPREPLY=( $( compgen -W '-n -R -l -f -F -m -r' -- \ + $cur ) ) + fi + ;; + cvsroot) + if [ -r ~/.cvspass ]; then + # Ugly escaping because of bash treating ':' specially + cvsroots=$( sed 's/^[^ ]* //; s/:/\\:/g' ~/.cvspass ) + COMPREPLY=( $( compgen -W '$cvsroots' -- $cur ) ) + fi + ;; + export) + if [[ "$cur" != -* ]]; then + [ -z "$cvsroot" ] && cvsroot=$CVSROOT + COMPREPLY=( $( cvs -d "$cvsroot" co -c | awk '{print $1}' ) ) + COMPREPLY=( $( compgen -W '${COMPREPLY[@]}' -- $cur ) ) + else + COMPREPLY=( $( compgen -W '-N -f -l -R -n \ + -r -D -d -k' -- $cur ) ) + fi + ;; + diff) + if [[ "$cur" == -* ]]; then + _longopt diff + else + get_entries + COMPREPLY=( $( compgen -W '${entries[@]:-}' -- $cur ) ) + fi + ;; + remove) + if [[ "$cur" != -* ]]; then + set_prefix + if [ $COMP_CWORD -gt 1 -a -r ${prefix:-}CVS/Entries ]; then + get_entries + # find out what files are missing + for i in "${entries[@]}"; do + [ ! -r "$i" ] && miss=( "${miss[@]}" $i ) + done + COMPREPLY=( $(compgen -W '${miss[@]:-}' -- $cur) ) + fi + else + COMPREPLY=( $( compgen -W '-f -l -R' -- $cur ) ) + fi + ;; + import) + if [[ "$cur" != -* ]]; then + # starts with same algorithm as checkout + [ -z "$cvsroot" ] && cvsroot=$CVSROOT + prefix=${cur%/*} + if [ -r ${cvsroot}/${prefix} ]; then + get_modules + COMPREPLY=( ${COMPREPLY[@]#$cvsroot} ) + COMPREPLY=( ${COMPREPLY[@]#\/} ) + fi + pwd=$( pwd ) + pwd=${pwd##*/} + COMPREPLY=( $( compgen -W '${COMPREPLY[@]} $pwd' -- \ + $cur ) ) + else + COMPREPLY=( $( compgen -W '-d -k -I -b -m -W' -- $cur )) + fi + ;; + update) + if [[ "$cur" = -* ]]; then + COMPREPLY=( $( compgen -W '-A -P -C -d -f -l -R -p \ + -k -r -D -j -I -W' -- \ + $cur ) ) + fi + ;; + "") + COMPREPLY=( $( compgen -W 'add admin annotate checkout ci co \ + commit diff delete edit export \ + freeze get history import log new \ + patch rcs rdiff release remove \ + rfreeze rlog rm rtag stat status \ + tag unedit up update -H -Q -q -b \ + -d -e -f -l -n -t -r -v -w -x -z \ + --help --version' -- $cur ) ) + ;; + *) + ;; + esac + + return 0 +} +complete -F _cvs $default cvs +} + +have rpm && { +# helper functions for rpm completion +# +_rpm_installed_packages() +{ + local ver nodig nosig + + if [ -r /var/log/rpmpkgs -a \ + /var/log/rpmpkgs -nt /var/lib/rpm/Packages ]; then + # using RHL 7.2 or later - this is quicker than querying the DB + COMPREPLY=( $( sed -ne \ + 's|^\('$cur'.*\)-[0-9a-zA-Z._]\+-[0-9a-z.@]\+.*\.rpm$|\1|p' \ + /var/log/rpmpkgs ) ) + else + nodig="" + nosig="" + ver=$(rpm --version) + ver=${ver##* } + + if [[ "$ver" > "4.0.4" ]]; then + nodig="--nodigest" + fi + if [[ "$ver" > "4.0.99" ]]; then + nosig="--nosignature" + fi + + COMPREPLY=( $( rpm -qa $nodig $nosig | sed -ne \ + 's|^\('$cur'.*\)-[0-9a-zA-Z._]\+-[0-9a-z.@]\+$|\1|p' ) ) + fi +} + +_rpm_groups() +{ + local IFS=$'\t' + # remove trailing backslash, or grep will complain + cur=${cur%"\\"} + COMPREPLY=( $( rpm -qa $nodig $nosig --queryformat '%{group}\n' | \ + grep "^$cur" ) ) + # backslash escape spaces and translate newlines to tabs + COMPREPLY=( $( echo "${COMPREPLY[@]}" | sed 's/ /\\ /g' | tr '\n' '\t' ) ) +} + +# rpm(8) completion +# +_rpm() +{ + local cur prev ver nodig nosig + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + nodig="" + nosig="" + ver=$(rpm --version); ver=${ver##* } + + if [[ "$ver" > "4.0.4" ]]; then + nodig="--nodigest" + fi + if [[ "$ver" > "4.0.99" ]]; then + nosig="--nosignature" + fi + + if [ $COMP_CWORD -eq 1 ]; then + # first parameter on line + case "$cur" in + -b*) + COMPREPLY=( $( compgen -W '-ba -bb -bc -bi -bl -bp -bs'\ + -- $cur ) ) + ;; + -t*) + COMPREPLY=( $( compgen -W '-ta -tb -tc -ti -tl -tp -ts'\ + -- $cur ) ) + ;; + --*) + COMPREPLY=( $( compgen -W '--help --version --initdb \ + --checksig --recompile --rebuild --resign --addsign \ + --rebuilddb --showrc --setperms --setugids --tarbuild \ + --eval --install --upgrade --query --freshen --erase \ + --verify --querytags --rmsource --rmspec --clean \ + --import' -- $cur ) ) + ;; + *) + COMPREPLY=( $( compgen -W '-b -e -F -i -q -t -U -V' \ + -- $cur ) ) + ;; + esac + + return 0 + fi + + case "$prev" in + --@(@(db|exclude)path|prefix|relocate|root)) + _filedir -d + return 0 + ;; + --eval) + # get a list of macros + COMPREPLY=( $( sed -ne 's|^\(%'${cur#\%}'[^ '$'\t'']*\).*$|\1|p' \ + /usr/lib/rpm/macros ) ) + return 0 + ;; + --pipe) + COMPREPLY=( $( compgen -c -- $cur ) ) + return 0 + ;; + --rcfile) + _filedir + return 0 + ;; + --specfile) + # complete on .spec files + _filedir spec + return 0 + ;; + --whatprovides) + if [[ "$cur" == */* ]]; then + _filedir + else + # complete on capabilities + COMPREPLY=( $( rpm -qa $nodig $nosig --queryformat \ + '%{providename}\n' | grep "^$cur" ) ) + fi + return 0 + ;; + --whatrequires) + # complete on capabilities + COMPREPLY=( $( rpm -qa $nodig $nosig --queryformat \ + '%{requirename}\n' | grep "^$cur" ) ) + return 0 + ;; + esac + + case "${COMP_WORDS[1]}" in + -@([iFU]*|-install|-freshen|-upgrade)) + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '--percent --force --test \ + --replacepkgs --replacefiles --root --excludedocs \ + --includedocs --noscripts --rcfile --ignorearch \ + --dbpath --prefix --ignoreos --nodeps --allfiles \ + --ftpproxy --ftpport --justdb --httpproxy --httpport \ + --noorder --relocate --badreloc --notriggers \ + --excludepath --ignoresize --oldpackage --define \ + --eval --pipe --queryformat --repackage --nosuggests \ + --nodigest --nosignature' -- $cur ) ) + else + _filedir 'rpm' + fi + ;; + -@(e|-erase)) + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '--allmatches --noscripts \ + --notriggers --nodeps --test --repackage' -- $cur ) ) + else + _rpm_installed_packages + fi + ;; + -@(q*|-query)) + # check whether we're doing file completion + if [ "${COMP_LINE#* -*([^ -])f}" != "$COMP_LINE" ]; then + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '--scripts --root \ + --rcfile --requires --ftpport --ftpproxy \ + --httpproxy --httpport --provides --triggers \ + --dump --changelog --dbpath \ + --last --filesbypkg \ + --info --list --state \ + --docfiles --configfiles --queryformat \ + --conflicts --obsoletes \ + --nodigest --nosignature \ + --triggerscripts' -- $cur ) ) + else + _filedir + fi + elif [ "${COMP_LINE#* -*([^ -])g}" != "$COMP_LINE" ]; then + _rpm_groups + elif [ "${COMP_LINE#* -*([^ -])p}" != "$COMP_LINE" ]; then + # uninstalled package completion + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '--scripts --root \ + --rcfile --whatprovides --whatrequires \ + --requires --triggeredby --ftpport --ftpproxy \ + --httpproxy --httpport --provides --triggers \ + --dump --changelog --dbpath --filesbypkg \ + --define --eval --pipe --showrc --info --list \ + --state --docfiles --configfiles --queryformat\ + --conflicts --obsoletes --nodigest \ + --nosignature' -- $cur ) ) + else + _filedir 'rpm' + fi + else + # installed package completion + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '--scripts --root \ + --rcfile --whatprovides --whatrequires \ + --requires --triggeredby --ftpport --ftpproxy \ + --httpproxy --httpport --provides --triggers \ + --dump --changelog --dbpath --specfile \ + --querybynumber --last --filesbypkg --define \ + --eval --pipe --showrc --info --list --state \ + --docfiles --configfiles --queryformat \ + --conflicts --obsoletes --pkgid --hdrid \ + --fileid --tid --nodigest --nosignature \ + --triggerscripts' -- $cur ) ) + elif [ "${COMP_LINE#* -*([^ -])a}" == "$COMP_LINE" ]; then + _rpm_installed_packages + fi + fi + ;; + -@(K*|-checksig)) + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '--nopgp --nogpg --nomd5 \ + --nodigest --nosignature' -- $cur ) ) + else + _filedir 'rpm' + fi + ;; + -@([Vy]*|-verify)) + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '--root --rcfile --dbpath \ + --nodeps --nogroup --nolinkto --nomode --nomtime \ + --nordev --nouser --nofiles --noscripts --nomd5 \ + --querytags --specfile --whatrequires --whatprovides \ + --nodigest --nosignature' -- $cur ) ) + # check whether we're doing file completion + elif [ "${COMP_LINE#* -*([^ -])f}" != "$COMP_LINE" ]; then + _filedir + elif [ "${COMP_LINE#* -*([^ -])g}" != "$COMP_LINE" ]; then + _rpm_groups + elif [ "${COMP_LINE#* -*([^ -])p}" != "$COMP_LINE" ]; then + _filedir 'rpm' + else + _rpm_installed_packages + fi + ;; + -[bt]*) + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '--short-circuit --timecheck \ + --clean --rmsource --rmspec --test --sign --buildroot \ + --target -- buildarch --buildos --nobuild --nodeps \ + --nodirtokens' -- $cur ) ) + elif [[ ${COMP_WORDS[1]} == -b* ]]; then + _filedir 'spec' + else + _filedir '@(tgz|tar.@(gz|bz2))' + fi + ;; + --re@(build|compile)) + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '--nodeps --rmsource \ + --rmspec --sign --nodirtokens --target' -- $cur ) ) + else + _filedir '?(no)src.rpm' + fi + ;; + --tarbuild) + _filedir '@(tgz|tar.@(gz|bz2))' + ;; + --@(re|add)sign) + _filedir 'rpm' + ;; + --set@(perms|gids)) + _rpm_installed_packages + ;; + --@(clean|rms@(ource|pec))) + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '--clean --rmsource \ + --rmspec' -- $cur ) ) + else + _filedir 'spec' + fi + ;; + --@(import|dbpath|root)) + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '--import --dbpath --root' \ + -- $cur ) ) + else + _filedir + fi + ;; + esac + + return 0 +} +complete -F _rpm $filenames rpm rpmbuild +} + +# Debian apt-get(8) completion. +# +have apt-get && +_apt_get() +{ + local cur prev special i + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + for (( i=0; i < ${#COMP_WORDS[@]}-1; i++ )); do + if [[ ${COMP_WORDS[i]} == @(install|remove|purge|source|build-dep) ]]; then + special=${COMP_WORDS[i]} + fi + done + + if [ -n "$special" ]; then + case $special in + remove|purge) + if [ -f /etc/debian_version ]; then + # Debian system + COMPREPLY=( $( _comp_dpkg_installed_packages \ + $cur ) ) + else + # assume RPM based + _rpm_installed_packages + fi + return 0 + ;; + *) + COMPREPLY=( $( apt-cache pkgnames $cur 2> /dev/null ) ) + return 0 + ;; + + esac + fi + + case "$prev" in + -@(c|-config-file)) + _filedir + return 0 + ;; + + -@(t|-target-release|-default-release)) + COMPREPLY=( $( apt-cache policy | \ + grep "release.o=Debian,a=$cur" | \ + sed -e "s/.*a=\(\w*\).*/\1/" | uniq 2> /dev/null) ) + return 0 + ;; + + esac + + if [[ "$cur" == -* ]]; then + + COMPREPLY=( $( compgen -W '-d -f -h -v -m -q -s -y \ + -u -t -b -c -o --download-only --fix-broken \ + --help --version --ignore-missing \ + --fix-missing --no-download --quiet --simulate \ + --just-print --dry-run --recon --no-act --yes \ + --assume-yes --show-upgraded --only-source \ + --compile --build --ignore-hold \ + --target-release --no-upgrade --force-yes \ + --print-uris --purge --reinstall \ + --list-cleanup --default-release \ + --trivial-only --no-remove --diff-only \ + --tar-only --config-file --option --auto-remove' -- $cur ) ) + else + + COMPREPLY=( $( compgen -W 'update upgrade dselect-upgrade \ + dist-upgrade install remove purge source \ + build-dep check clean autoclean autoremove' \ + -- $cur ) ) + + fi + + + return 0 +} && +complete -F _apt_get $filenames apt-get + +# Debian apt-cache(8) completion. +# +have apt-cache && +_apt_cache() +{ + local cur prev special i + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + + if [ "$cur" != show ]; then + for (( i=0; i < ${#COMP_WORDS[@]}-1; i++ )); do + if [[ ${COMP_WORDS[i]} == @(add|depends|dotty|policy|rdepends|madison|show?(pkg|src|)) ]]; then + special=${COMP_WORDS[i]} + fi + done + fi + + + if [ -n "$special" ]; then + case $special in + add) + _filedir + return 0 + ;; + + *) + COMPREPLY=( $( apt-cache pkgnames $cur 2> /dev/null ) ) + return 0 + ;; + + esac + fi + + + case "$prev" in + -@(c|p|s|-config-file|-@(pkg|src)-cache)) + _filedir + return 0 + ;; + search) + if [[ "$cur" != -* ]]; then + return 0 + fi + ;; + esac + + if [[ "$cur" == -* ]]; then + + COMPREPLY=( $( compgen -W '-h -v -p -s -q -i -f -a -g -c \ + -o --help --version --pkg-cache --src-cache \ + --quiet --important --full --all-versions \ + --no-all-versions --generate --no-generate \ + --names-only --all-names --recurse \ + --config-file --option' -- $cur ) ) + else + + COMPREPLY=( $( compgen -W 'add gencaches show showpkg showsrc \ + stats dump dumpavail unmet search search \ + depends rdepends pkgnames dotty xvcg \ + policy madison' -- $cur ) ) + + fi + + + return 0 +} && +complete -F _apt_cache $filenames apt-cache + + +# Debian aptitude(1) completion +# +have aptitude && { +have grep-status && { +_comp_dpkg_hold_packages() +{ + grep-status -P -e "^$1" -a -FStatus 'hold' -n -s Package +} +} || { +_comp_dpkg_hold_packages() +{ + grep -B 2 'hold' /var/lib/dpkg/status | grep "Package: $1" \ + | cut -d\ -f2 +} +} + +_aptitude() +{ + local cur dashoptions prev special i + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + + dashoptions='-S -u -i -h --help --version -s --simulate -d \ + --download-only -P --prompt -y --assume-yes -F \ + --display-format -O --sort -w --width -f -r -g \ + --with-recommends --with-suggests -R -G \ + --without-recommends --without-suggests -t \ + --target-release -V --show-versions -D --show-deps\ + -Z -v --verbose --purge-unused' + + for (( i=0; i < ${#COMP_WORDS[@]}-1; i++ )); do + if [[ ${COMP_WORDS[i]} == @(install|reinstall|hold|unhold|markauto|unmarkauto|dist-upgrade|full-upgrade|download|show|forbid-version|purge|remove|changelog|why|why-not|keep|keep-all) ]]; then + special=${COMP_WORDS[i]} + fi + #exclude some mutually exclusive options + [[ ${COMP_WORDS[i]} == '-u' ]] && dashoptions=${dashoptions/-i} + [[ ${COMP_WORDS[i]} == '-i' ]] && dashoptions=${dashoptions/-u} + done + + if [[ -n "$special" ]]; then + case $special in + @(install|hold|markauto|unmarkauto|dist-upgrade|full-upgrade|download|show|changelog|why|why-not)) + COMPREPLY=( $( apt-cache pkgnames $cur 2> /dev/null ) ) + return 0 + ;; + @(purge|remove|reinstall|forbid-version)) + COMPREPLY=( $( _comp_dpkg_installed_packages $cur ) ) + return 0 + ;; + unhold) + COMPREPLY=( $( _comp_dpkg_hold_packages $cur ) ) + return 0 + ;; + + esac + fi + + case $prev in + # don't complete anything if these options are found + @(autoclean|clean|forget-new|search|upgrade|safe-upgrade|update|keep-all)) + return 0 + ;; + + -S) + _filedir + return 0 + ;; + + -@(t|-target-release|-default-release)) + COMPREPLY=( $( apt-cache policy | \ + grep "release.o=Debian,a=$cur" | \ + sed -e "s/.*a=\(\w*\).*/\1/" | uniq 2> /dev/null ) ) + return 0 + ;; + + esac + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W "$dashoptions" -- $cur ) ) + else + COMPREPLY=( $( compgen -W 'update upgrade safe-upgrade forget-new clean \ + autoclean install reinstall remove \ + hold unhold purge markauto unmarkauto why why-not \ + dist-upgrade full-upgrade download search show \ + forbid-version changelog keep-all' -- $cur ) ) + fi + + + return 0 +} +complete -F _aptitude $default aptitude +} + +# Debian apt-build(1) completion. +# +have apt-build && +_apt_build() +{ + local cur prev special i + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + for (( i=0; i < ${#COMP_WORDS[@]}-1; i++ )); do + if [[ ${COMP_WORDS[i]} == @(install|remove|source|info|clean) ]]; then + special=${COMP_WORDS[i]} + fi + done + + if [ -n "$special" ]; then + case $special in + @(install|source|info)) + COMPREPLY=( $( apt-cache pkgnames $cur 2> /dev/null ) ) + return 0 + ;; + remove) + COMPREPLY=( $( _comp_dpkg_installed_packages \ + $cur ) ) + return 0 + ;; + *) + return 0 + ;; + esac + fi + + case "$prev" in + + --@(patch|build-dir|repository-dir)) + _filedir + return 0 + ;; + + -@(h|-help)) + return 0 + ;; + + esac + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '--help --show-upgraded -u --build-dir \ + --repository-dir --build-only \ + --build-command --reinstall --rebuild \ + --remove-builddep --no-wrapper --purge \ + --patch --patch-strip -p --yes -y \ + --version -v --no-source' -- $cur ) ) + + else + COMPREPLY=( $( compgen -W 'update upgrade install remove \ + source dist-upgrade world clean info \ + clean-build update-repository ' -- $cur ) ) + fi + + + return 0 +} && +complete -F _apt_build $filenames apt-build + +# chsh(1) completion +# +_chsh() +{ + local cur prev + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + if [ "$prev" = "-s" ]; then + if [ -f /etc/debian_version ]; then + COMPREPLY=( $( /dev/null ) ) + fi + if [ ${#khd[@]} -gt 0 ]; then + # Needs to look for files called + # .../.ssh2/key_22_.pub + # dont fork any processes, because in a cluster environment, + # there can be hundreds of hostkeys + for i in "${khd[@]}" ; do + if [[ "$i" == *key_22_$curd*.pub ]] && [ -r "$i" ] ; then + host=${i/#*key_22_/} + host=${host/%.pub/} + COMPREPLY=( "${COMPREPLY[@]}" $host ) + fi + done + fi + + # append any available aliases from config files + if [ ${#config[@]} -gt 0 ] && [ -n "$aliases" ]; then + local host_aliases=$( sed -ne 's/^[Hh][Oo][Ss][Tt]\([Nn][Aa][Mm][Ee]\)\?['"$'\t '"']\+\([^*?]*\)$/\2/p' "${config[@]}" ) + hosts=$( compgen -W "$host_aliases" -- $ocur ) + COMPREPLY=( "${COMPREPLY[@]}" $hosts ) + fi + + # Now add results of normal hostname completion + COMPREPLY=( "${COMPREPLY[@]}" $( compgen -A hostname -- $ocur ) ) + + # apply suffix + for (( i=0; i < ${#COMPREPLY[@]}; i++ )); do + COMPREPLY[i]=$user${COMPREPLY[i]}$suffix + done + else + # Just do normal hostname completion + COMPREPLY=( $( compgen -A hostname -S "$suffix" -- $cur ) ) + fi + + return 0 +} +complete -F _known_hosts traceroute traceroute6 tracepath tracepath6 \ + ping ping6 fping fping6 telnet host nslookup rsh rlogin ftp dig ssh-installkeys mtr + +# ssh(1) completion +# +have ssh && { +_ssh() +{ + local cur prev + local -a config + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + case "$prev" in + -*c) + COMPREPLY=( $( compgen -W 'blowfish 3des 3des-cbc blowfish-cbc \ + arcfour cast128-cbc' -- $cur ) ) + ;; + -*i) + _filedir + ;; + -*l) + COMPREPLY=( $( compgen -u -- $cur ) ) + ;; + *) + _known_hosts -a + + [ $COMP_CWORD -eq 1 ] || \ + COMPREPLY=( "${COMPREPLY[@]}" $( compgen -c -- $cur ) ) + esac + + return 0 +} +shopt -u hostcomplete && complete -F _ssh ssh slogin sftp xhost autossh + +# scp(1) completion +# +_scp() +{ + local cur userhost path + + COMPREPLY=() + cur=`_get_cword` + + _expand || return 0 + + if [[ "$cur" == *:* ]]; then + local IFS=$'\t\n' + # remove backslash escape from : + cur=${cur/\\:/:} + userhost=${cur%%?(\\):*} + path=${cur#*:} + # unescape spaces + path=${path//\\\\\\\\ / } + if [ -z "$path" ]; then + # default to home dir of specified user on remote host + path=$(ssh -o 'Batchmode yes' $userhost pwd 2>/dev/null) + fi + # escape spaces; remove executables, aliases, pipes and sockets; + # add space at end of file names + COMPREPLY=( $( ssh -o 'Batchmode yes' $userhost \ + command ls -aF1d "$path*" 2>/dev/null | \ + sed -e "s/[][(){}<>\",:;^&!$&=?\`|\\ ']/\\\\\\\\\\\\&/g" \ + -e 's/[*@|=]$//g' -e 's/[^\/]$/& /g' ) ) + return 0 + fi + + [[ "$cur" == */* ]] || _known_hosts -c -a + local IFS=$'\t\n' + COMPREPLY=( "${COMPREPLY[@]}" $( command ls -aF1d $cur* \ + 2>/dev/null | sed \ + -e "s/[][(){}<>\",:;^&!$&=?\`|\\ ']/\\\\&/g" \ + -e 's/[*@|=]$//g' -e 's/[^\/]$/& /g' ) ) + return 0 +} +complete -F _scp $nospace scp +} + +# rsync(1) completion +# +have rsync && +_rsync() +{ + local cur prev shell i userhost path + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + _expand || return 0 + + case "$prev" in + --@(config|password-file|include-from|exclude-from)) + _filedir + return 0 + ;; + -@(T|-temp-dir|-compare-dest)) + _filedir -d + return 0 + ;; + -@(e|-rsh)) + COMPREPLY=( $( compgen -W 'rsh ssh' -- $cur ) ) + return 0 + ;; + esac + + case "$cur" in + -*) + COMPREPLY=( $( compgen -W '-v -q -c -a -r -R -b -u -l -L -H \ + -p -o -g -D -t -S -n -W -x -B -e -C -I -T -P \ + -z -h -4 -6 --verbose --quiet --checksum \ + --archive --recursive --relative --backup \ + --backup-dir --suffix= --update --links \ + --copy-links --copy-unsafe-links --safe-links \ + --hard-links --perms --owner --group --devices\ + --times --sparse --dry-run --whole-file \ + --no-whole-file --one-file-system \ + --block-size= --rsh= --rsync-path= \ + --cvs-exclude --existing --ignore-existing \ + --delete --delete-excluded --delete-after \ + --ignore-errors --max-delete= --partial \ + --force --numeric-ids --timeout= \ + --ignore-times --size-only --modify-window= \ + --temp-dir= --compare-dest= --compress \ + --exclude= --exclude-from= --include= \ + --include-from= --version --daemon --no-detach\ + --address= --config= --port= --blocking-io \ + --no-blocking-io --stats --progress \ + --log-format= --password-file= --bwlimit= \ + --write-batch= --read-batch= --help' -- $cur )) + ;; + *:*) + # find which remote shell is used + shell=rsh + for (( i=1; i < COMP_CWORD; i++ )); do + if [[ "${COMP_WORDS[i]}" == -@(e|-rsh) ]]; then + shell=${COMP_WORDS[i+1]} + break + fi + done + if [[ "$shell" == ssh ]]; then + # remove backslash escape from : + cur=${cur/\\:/:} + userhost=${cur%%?(\\):*} + path=${cur#*:} + # unescape spaces + path=${path//\\\\\\\\ / } + if [ -z "$path" ]; then + # default to home dir of specified + # user on remote host + path=$(ssh -o 'Batchmode yes' \ + $userhost pwd 2>/dev/null) + fi + # escape spaces; remove executables, aliases, pipes + # and sockets; add space at end of file names + COMPREPLY=( $( ssh -o 'Batchmode yes' $userhost \ + command ls -aF1d "$path*" 2>/dev/null | \ + sed -e 's/ /\\\\\\\ /g' -e 's/[*@|=]$//g' \ + -e 's/[^\/]$/& /g' ) ) + fi + ;; + *) + _known_hosts -c -a + _filedir + ;; + esac + + return 0 +} && +complete -F _rsync $nospace $filenames rsync + +# Linux route(8) completion +# +[ $UNAME = Linux ] && +_route() +{ + local cur prev + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + if [ "$prev" = dev ]; then + COMPREPLY=( $( ifconfig -a | sed -ne 's|^\('$cur'[^ ]*\).*$|\1|p' )) + return 0 + fi + + COMPREPLY=( $( compgen -W 'add del -host -net netmask metric mss \ + window irtt reject mod dyn reinstate dev \ + default gw' -- $cur ) ) + + COMPREPLY=( $( echo " ${COMP_WORDS[@]}" | \ + (while read -d ' ' i; do + [ "$i" == "" ] && continue + # flatten array with spaces on either side, + # otherwise we cannot grep on word + # boundaries of first and last word + COMPREPLY=" ${COMPREPLY[@]} " + # remove word from list of completions + COMPREPLY=( ${COMPREPLY/ $i / } ) + done + echo "${COMPREPLY[@]}") + ) ) + return 0 +} +[ $UNAME = Linux ] && complete -F _route route + +# GNU make(1) completion +# +have make || have gmake || have gnumake || have pmake && +_make() +{ + local file makef makef_dir="." makef_inc cur prev i + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + # --name value style option + case $prev in + -@(f|o|W)) + _filedir + return 0 + ;; + -@(I|C)) + _filedir -d + return 0 + ;; + esac + + # --name=value style option + if [[ "$cur" == *=* ]]; then + prev=${cur/=*/} + cur=${cur/*=/} + case "$prev" in + --@(file|makefile)) + _filedir + return 0 + ;; + --@(directory|include-dir)) + _filedir -d + return 0 + ;; + esac + fi + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-b -m -B -C -d -e -f -h -i -I\ + -j -l -k -n -o -p -q -r -R - s -S -t -v -w -W \ + --always-make --directory= --debug \ + --environment-overrides --file= --makefile= --help \ + --ignore-errors --include-dir= --jobs --load-average \ + --max-load --keep-going --just-print --dry-run \ + --recon --old-file= --assume-old= --print-data-base \ + --question --no-builtin-rules --no-builtin-variables \ + --silent --quiet --no-keep-goind --stop --touch \ + --version --print-directory --no-print-directory \ + --what-if= --new-file= --assume-new= \ + --warn-undefined-variables' -- $cur ) ) + else + # before we check for makefiles, see if a path was specified + # with -C + for (( i=0; i < ${#COMP_WORDS[@]}; i++ )); do + if [[ ${COMP_WORDS[i]} == -C ]]; then + # eval for tilde expansion + eval makef_dir=${COMP_WORDS[i+1]} + break + fi + done + + # make reads `GNUmakefile', then `makefile', then `Makefile' + if [ -f ${makef_dir}/GNUmakefile ]; then + makef=${makef_dir}/GNUmakefile + elif [ -f ${makef_dir}/makefile ]; then + makef=${makef_dir}/makefile + elif [ -f ${makef_dir}/Makefile ]; then + makef=${makef_dir}/Makefile + else + makef=${makef_dir}/*.mk # local convention + fi + + # before we scan for targets, see if a Makefile name was + # specified with -f + for (( i=0; i < ${#COMP_WORDS[@]}; i++ )); do + if [[ ${COMP_WORDS[i]} == -f ]]; then + # eval for tilde expansion + eval makef=${COMP_WORDS[i+1]} + break + fi + done + + [ ! -f $makef ] && return 0 + + # deal with included Makefiles + makef_inc=$( grep -E '^-?include' $makef | sed -e "s,^.* ,"$makef_dir"/," ) + + for file in $makef_inc; do + [ -f $file ] && makef="$makef $file" + done + + COMPREPLY=( $( awk -F':' '/^[a-zA-Z0-9][^$#\/\t=]*:([^=]|$)/ \ + {split($1,A,/ /);for(i in A)print A[i]}' \ + $makef 2>/dev/null | command grep "^$cur" )) + fi +} && +complete -f -F _make $filenames make gmake gnumake pmake + +# GNU tar(1) completion +# +_tar() +{ + local cur ext regex tar untar + + COMPREPLY=() + cur=`_get_cword` + + if [ $COMP_CWORD -eq 1 ]; then + COMPREPLY=( $( compgen -W 'c t x u r d A' -- $cur ) ) + return 0 + fi + + case "${COMP_WORDS[1]}" in + ?(-)[cr]*f) + _filedir + return 0 + ;; + +([^IZzjy])f) + ext='t@(ar?(.@(Z|gz|bz?(2)))|gz|bz?(2))' + regex='t\(ar\(\.\(Z\|gz\|bz2\?\)\)\?\|gz\|bz2\?\)' + ;; + *[Zz]*f) + ext='t?(ar.)@(gz|Z)' + regex='t\(ar\.\)\?\(gz\|Z\)' + ;; + *[Ijy]*f) + ext='t?(ar.)bz?(2)' + regex='t\(ar\.\)\?bz2\?' + ;; + *) + _filedir + return 0 + ;; + + esac + + if [[ "$COMP_LINE" == *$ext' ' ]]; then + # complete on files in tar file + # + # get name of tar file from command line + tar=$( echo "$COMP_LINE" | \ + sed -e 's/^.* \([^ ]*'$regex'\) .*$/\1/' ) + # devise how to untar and list it + untar=t${COMP_WORDS[1]//[^Izjyf]/} + + COMPREPLY=( $( compgen -W "$( echo $( tar $untar $tar \ + 2>/dev/null ) )" -- "$cur" ) ) + return 0 + fi + + # file completion on relevant files + _filedir "$ext" + + return 0 +} +[ -n "${COMP_TAR_INTERNAL_PATHS:-}" ] && complete -F _tar $dirnames tar || + complete -F _tar $filenames tar + +# jar(1) completion +# +have jar && +_jar() +{ + local cur + + COMPREPLY=() + cur=`_get_cword` + + if [ $COMP_CWORD = 1 ]; then + COMPREPLY=( $( compgen -W 'c t x u' -- $cur ) ) + return 0 + fi + + case "${COMP_WORDS[1]}" in + *c*f) + _filedir + ;; + *f) + _filedir '?(e|j|w)ar' + ;; + *) + _filedir + ;; + esac +} && +complete -F _jar $filenames jar + +# Linux iptables(8) completion +# +have iptables && +_iptables() +{ + local cur prev table chain + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + chain='s/^Chain \([^ ]\+\).*$/\1/p' + + if [[ $COMP_LINE == *-t\ *filter* ]]; then + table="-t filter" + elif [[ $COMP_LINE == *-t\ *nat* ]]; then + table="-t nat" + elif [[ $COMP_LINE == *-t\ *mangle* ]]; then + table="-t mangle" + fi + + case "$prev" in + -*[AIDRPFXLZ]) + COMPREPLY=( $( compgen -W '`iptables $table -nL | \ + sed -ne "s/^Chain \([^ ]\+\).*$/\1/p"`' -- $cur ) ) + ;; + -*t) + COMPREPLY=( $( compgen -W 'nat filter mangle' -- $cur ) ) + ;; + -j) + if [ "$table" = "-t filter" -o "$table" = "" ]; then + COMPREPLY=( $( compgen -W 'ACCEPT DROP LOG ULOG REJECT \ + `iptables $table -nL | sed -ne "$chain" \ + -e "s/INPUT|OUTPUT|FORWARD|PREROUTING|POSTROUTING//"`' -- \ + $cur ) ) + elif [ "$table" = "-t nat" ]; then + COMPREPLY=( $( compgen -W 'ACCEPT DROP LOG ULOG REJECT \ + MIRROR SNAT DNAT MASQUERADE `iptables $table -nL | \ + sed -ne "$chain" -e "s/OUTPUT|PREROUTING|POSTROUTING//"`' \ + -- $cur ) ) + elif [ "$table" = "-t mangle" ]; then + COMPREPLY=( $( compgen -W 'ACCEPT DROP LOG ULOG REJECT \ + MARK TOS `iptables $table -nL | sed -ne "$chain" \ + -e "s/INPUT|OUTPUT|FORWARD|PREROUTING|POSTROUTING//"`' -- \ + $cur ) ) + fi + ;; + *) + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-i -o -s -d -p -f -m --append \ + --delete --insert --replace --list --flush --zero --new \ + --delete-chain --policy --rename-chain --proto --source \ + --destination --in-interface --jump --match --numeric \ + --out-interface --table --verbose --line-numbers --exact \ + --fragment --modprobe= --set-counters --version' -- "$cur") ) + fi + ;; + esac + +} && +complete -F _iptables iptables + +# tcpdump(8) completion +# +have tcpdump && +_tcpdump() +{ + local cur + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + case "$prev" in + -@(r|w|F)) + _filedir + return 0 + ;; + -i) + _available_interfaces -a + return 0 + ;; + esac + + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-a -d -e -f -l -n -N -O -p \ + -q -R -S -t -u -v -x -C -F -i -m -r -s -T -w \ + -E' -- $cur ) ) + fi + +} && +complete -F _tcpdump tcpdump + +# autorpm(8) completion +# +have autorpm && +_autorpm() +{ + local cur + + COMPREPLY=() + cur=`_get_cword` + + COMPREPLY=( $( compgen -W '--notty --debug --help --version \ + auto add fullinfo info help install list \ + remove set' -- $cur ) ) + +} && +complete -F _autorpm autorpm + +# This meta-cd function observes the CDPATH variable, so that cd additionally +# completes on directories under those specified in CDPATH. +# +_cd() +{ + local IFS=$'\t\n' cur=`_get_cword` i j k + + # try to allow variable completion + if [[ "$cur" == ?(\\)\$* ]]; then + COMPREPLY=( $( compgen -v -P '$' -- "${cur#?(\\)$}" ) ) + return 0 + fi + + # Use standard dir completion if no CDPATH or parameter starts with /, + # ./ or ../ + if [ -z "${CDPATH:-}" ] || [[ "$cur" == ?(.)?(.)/* ]]; then + _filedir -d + return 0 + fi + + local -r mark_dirs=$(_rl_enabled mark-directories && echo y) + local -r mark_symdirs=$(_rl_enabled mark-symlinked-directories && echo y) + + # we have a CDPATH, so loop on its contents + for i in ${CDPATH//:/$'\t'}; do + # create an array of matched subdirs + k="${#COMPREPLY[@]}" + for j in $( compgen -d $i/$cur ); do + if [[ ( $mark_symdirs && -h $j || $mark_dirs && ! -h $j ) && ! -d ${j#$i/} ]]; then + j="${j}/" + fi + COMPREPLY[k++]=${j#$i/} + done + done + + _filedir -d + + if [[ ${#COMPREPLY[@]} -eq 1 ]]; then + i=${COMPREPLY[0]} + if [ "$i" == "$cur" ] && [[ $i != "*/" ]]; then + COMPREPLY[0]="${i}/" + fi + fi + + return 0 +} +if shopt -q cdable_vars; then + complete -v -F _cd $nospace $filenames cd +else + complete -F _cd $nospace $filenames cd +fi + +_remove_comp_word() +{ + if [[ COMP_CWORD -eq 0 ]]; then + return + elif [[ ${#COMP_WORDS[@]} -ge 2 ]]; then + local old_cw0="${COMP_WORDS[0]}" + local new_cw0="${COMP_WORDS[1]}" + local old_length="${#COMP_LINE}" + COMP_LINE=${COMP_LINE#${old_cw0}} + local head=${COMP_LINE:0:${#new_cw0}} + local i=1 + while [[ $head != $new_cw0 ]]; do + COMP_LINE=${COMP_LINE:1} + head=${COMP_LINE:0:${#new_cw0}} + if (( ++i > 10 )); then + break + fi + done + local new_length="${#COMP_LINE}" + COMP_POINT=$(( COMP_POINT + new_length - old_length)) + + COMP_CWORD=$(( COMP_CWORD - 1 )) + for (( i=0; i < ${#COMP_WORDS[@]} - 1; ++i )); do + COMP_WORDS[i]="${COMP_WORDS[i+1]}" + done + unset COMP_WORDS[${#COMP_WORDS[@]}-1] + else + return + fi +} + +# A meta-command completion function for commands like sudo(8), which need to +# first complete on a command, then complete according to that command's own +# completion definition - currently not quite foolproof (e.g. mount and umount +# don't work properly), but still quite useful. +# +_command() +{ + local cur func cline cspec noglob cmd done i \ + _COMMAND_FUNC _COMMAND_FUNC_ARGS + + _remove_comp_word + COMPREPLY=() + cur=`_get_cword` + # If the the first arguments following our meta-command-invoker are + # switches, get rid of them. Most definitely not foolproof. + done= + while [ -z $done ] ; do + cmd=${COMP_WORDS[0]} + if [[ "$cmd" == -* ]] && [ $COMP_CWORD -ge 1 ]; then + _remove_comp_word + elif [[ "$cmd" == -* ]] && [[ $COMP_CWORD -eq 0 ]]; then + return + else + done=1 + fi + done + + if [ $COMP_CWORD -eq 0 ]; then + COMPREPLY=( $( compgen -c -- $cur ) ) + elif complete -p $cmd &>/dev/null; then + cspec=$( complete -p $cmd ) + if [ "${cspec#* -F }" != "$cspec" ]; then + # COMP_CWORD and COMP_WORDS() are not read-only, + # so we can set them before handing off to regular + # completion routine + + # get function name + func=${cspec#*-F } + func=${func%% *} + + if [[ ${#COMP_WORDS[@]} -ge 2 ]]; then + $func $cmd "${COMP_WORDS[${#COMP_WORDS[@]}-1]}" "${COMP_WORDS[${#COMP_WORDS[@]}-2]}" + else + $func $cmd "${COMP_WORDS[${#COMP_WORDS[@]}-1]}" + fi + + # remove any \: generated by a command that doesn't + # default to filenames or dirnames (e.g. sudo chown) + # FIXME: I'm pretty sure this does not work! + if [ "${cspec#*-o }" != "$cspec" ]; then + cspec=${cspec#*-o } + cspec=${cspec%% *} + if [[ "$cspec" != @(dir|file)names ]]; then + COMPREPLY=("${COMPREPLY[@]//\\\\:/:}") + fi + fi + elif [ -n "$cspec" ]; then + cspec=${cspec#complete}; + cspec=${cspec%%$cmd}; + COMPREPLY=( $( eval compgen "$cspec" -- "$cur" ) ); + fi + fi + + [ ${#COMPREPLY[@]} -eq 0 ] && _filedir +} +complete -F _command $filenames nohup exec nice eval strace time ltrace then \ + else do vsound command xargs + +_root_command() +{ + PATH=$PATH:/sbin:/usr/sbin:/usr/local/sbin _command $1 $2 $3 +} +complete -F _root_command $filenames sudo fakeroot really + +# ant(1) completion +# +have ant && { +_ant() +{ + local cur prev buildfile i + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + case "$prev" in + -buildfile|-f) + _filedir 'xml' + return 0 + ;; + -logfile) + _filedir + return 0 + ;; + esac + + if [[ "$cur" == -* ]]; then + # relevant options completion + COMPREPLY=( $( compgen -W '-help -projecthelp -version -quiet \ + -verbose -debug -emacs -logfile -logger \ + -listener -buildfile -f -D -find' -- $cur ) ) + else + # available targets completion + # find which buildfile to use + buildfile=build.xml + for (( i=1; i < COMP_CWORD; i++ )); do + if [[ "${COMP_WORDS[i]}" == -buildfile ]]; then + buildfile=${COMP_WORDS[i+1]} + break + fi + done + [ ! -f $buildfile ] && return 0 + + # parse buildfile for targets + COMPREPLY=( $( awk -F'"' '//dev/null | \ + sed -e '1,/^-/d' -e '/^(/,$d' | \ + awk '{print $1}' | grep "^$cur" ) ) +} + +_pg_users() +{ + #COMPREPLY=( $( psql -qtc 'select usename from pg_user' template1 2>/dev/null | \ + # grep "^ $cur" ) ) + #[ ${#COMPREPLY[@]} -eq 0 ] && + COMPREPLY=( $( compgen -u -- $cur ) ) +} + +# createdb(1) completion +# +_createdb() +{ + local cur prev + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + case "$prev" in + -@(h|-host=)) + _known_hosts + return 0 + ;; + -@(U|-username=)) + _pg_users + return 0 + ;; + esac + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-D -T -E -h -p -U -W -e -q \ + --location= --template= --encoding= --host= --port= \ + --username= --password --echo --quiet --help' -- $cur )) + else + _pg_databases + fi +} +complete -F _createdb $default createdb + +# dropdb(1) completion +# +_dropdb() +{ + local cur prev + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + case "$prev" in + -@(h|-host=)) + _known_hosts + return 0 + ;; + -@(U|-username=)) + _pg_users + return 0 + ;; + esac + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-h -p -U -W -e -q \ + --host= --port= --username= --password \ + --interactive --echo --quiet --help' -- $cur ) ) + else + _pg_databases + fi +} +complete -F _dropdb $default dropdb + +# psql(1) completion +# +_psql() +{ + local cur prev + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + case "$prev" in + -h|--host) + _known_hosts + return 0 + ;; + -U|--username) + _pg_users + return 0 + ;; + -d|--dbname) + _pg_databases + return 0 + ;; + -@(o|f)|--output|--file) + _filedir + return 0 + ;; + esac + + if [[ "$cur" == -* ]]; then + # return list of available options + COMPREPLY=( $( compgen -W '-a --echo-all -A --no-align \ + -c --command -d --dbname -e --echo-queries \ + -E --echo-hidden -f --file -F --filed-separator \ + -h --host -H --html -l --list -n -o --output \ + -p --port -P --pset -q -R --record-separator \ + -s --single-step -S --single-line -t --tuples-only \ + -T --table-attr -U --username -v --variable \ + -V --version -W --password -x --expanded -X --nopsqlrc \ + -? --help ' -- $cur ) ) + else + # return list of available databases + _pg_databases + fi +} +complete -F _psql $default psql +} + +_longopt() +{ + local cur opt + + cur=`_get_cword` + + if [[ "$cur" == --*=* ]]; then + opt=${cur%%=*} + # cut backslash that gets inserted before '=' sign + opt=${opt%\\*} + cur=${cur#*=} + _filedir + COMPREPLY=( $( compgen -P "$opt=" -W '${COMPREPLY[@]}' -- $cur)) + return 0 + fi + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( $1 --help 2>&1 | sed -e '/--/!d' \ + -e 's/.*\(--[-A-Za-z0-9]\+=\?\).*/\1/' | \ + command grep "^$cur" | sort -u ) ) + elif [[ "$1" == @(mk|rm)dir ]]; then + _filedir -d + else + _filedir + fi +} +# makeinfo and texi2dvi are defined elsewhere. +for i in a2ps autoconf automake bc gprof ld nm objcopy objdump readelf strip \ + bison cpio diff patch enscript cp df dir du ln ls mkfifo mknod mv rm \ + touch vdir awk gperf grep grub indent less m4 sed shar date \ + tee who texindex cat csplit cut expand fmt fold head \ + md5sum nl od paste pr ptx sha1sum sort split tac tail tr unexpand \ + uniq wc ldd bash id irb mkdir rmdir; do + have $i && complete -F _longopt $filenames $i +done + +# These commands use filenames, so '-o filenames' is not needed. +for i in env netstat seq uname units wget; do + have $i && complete -F _longopt $default $i +done +unset i + +# gcc(1) completion +# +# The only unusual feature is that we don't parse "gcc --help -v" output +# directly, because that would include the options of all the other backend +# tools (linker, assembler, preprocessor, etc) without any indication that +# you cannot feed such options to the gcc driver directly. (For example, the +# linker takes a -z option, but you must type -Wl,-z for gcc.) Instead, we +# ask the driver ("g++") for the name of the compiler ("cc1"), and parse the +# --help output of the compiler. +# +have gcc && +_gcc() +{ + local cur cc backend + + COMPREPLY=() + cur=`_get_cword` + + _expand || return 0 + + case "$1" in + gcj) + backend=jc1 + ;; + gpc) + backend=gpc1 + ;; + *77) + backend=f771 + ;; + *) + backend=cc1 # (near-)universal backend + ;; + esac + + if [[ "$cur" == -* ]]; then + cc=$( $1 -print-prog-name=$backend ) + # sink stderr: + # for C/C++/ObjectiveC it's useless + # for FORTRAN/Java it's an error + COMPREPLY=( $( $cc --help 2>/dev/null | tr '\t' ' ' | \ + sed -e '/^ *-/!d' -e 's/ *-\([^ ]*\).*/-\1/' | \ + command grep "^$cur" | sort -u ) ) + else + _filedir + fi +} && +complete $filenames -F _gcc gcc g++ c++ g77 gcj gpc +[ $UNAME = GNU -o $UNAME = Linux -o $UNAME = Cygwin ] && \ +[ -n "${have:-}" ] && complete $filenames -F _gcc cc + +# Linux cardctl(8) completion +# +have cardctl && +_cardctl() +{ + local cur + + COMPREPLY=() + cur=`_get_cword` + + if [ $COMP_CWORD -eq 1 ]; then + COMPREPLY=( $( compgen -W 'status config ident suspend \ + resume reset eject insert scheme' \ + -- $cur ) ) + fi +} && +complete -F _cardctl cardctl + +# This function is required by _dpkg() and _dpkg-reconfigure() +# +have dpkg && { +_comp_dpkg_installed_packages() +{ + grep -A 1 "Package: $1" /var/lib/dpkg/status | \ + grep -B 1 -E "ok installed|half-installed|unpacked| \ + half-configured|config-files" | \ + grep "Package: $1" | cut -d\ -f2 +} + +# Debian dpkg(8) completion +# +_dpkg() +{ + local cur prev i + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + i=$COMP_CWORD + + _expand || return 0 + + # find the last option flag + if [[ $cur != -* ]]; then + while [[ $prev != -* && $i != 1 ]]; do + i=$((i-1)) + prev=${COMP_WORDS[i-1]} + done + fi + + case "$prev" in + -@(c|i|A|I|f|e|x|X|-@(install|unpack|record-avail|contents|info|fsys-tarfile|field|control|extract))) + _filedir '?(u)deb' + return 0 + ;; + -@(b|-build)) + _filedir -d + return 0 + ;; + -@(s|p|l|-@(status|print-avail|list))) + COMPREPLY=( $( apt-cache pkgnames $cur 2>/dev/null ) ) + return 0 + ;; + -@(S|-search)) + _filedir + return 0 + ;; + -@(r|L|P|-@(remove|purge|listfiles))) + COMPREPLY=( $( _comp_dpkg_installed_packages $cur ) ) + return 0 + ;; + *) + + COMPREPLY=( $( compgen -W '-i --install --unpack -A --record-avail \ + --configure -r --remove -P --purge --get-selections \ + --set-selections --update-avail --merge-avail \ + --clear-avail --command-fd --forget-old-unavail -s \ + --status -p --print-avail -L --listfiles -l --list \ + -S --search -C --audit --print-architecture \ + --print-gnu-build-architecture \ + --print-installation-architecture \ + --compare-versions --help --version --force-help \ + --force-all --force-auto-select --force-downgrade \ + --force-configure-any --force-hold --force-bad-path \ + --force-not-root --force-overwrite \ + --force-overwrite-diverted --force-bad-verify \ + --force-depends-version --force-depends \ + --force-confnew --force-confold --force-confdef \ + --force-confmiss --force-conflicts --force-architecture\ + --force-overwrite-dir --force-remove-reinstreq \ + --force-remove-essential -Dh \ + --debug=help --licence --admindir= --root= --instdir= \ + -O --selected-only -E --skip-same-version \ + -G --refuse-downgrade -B --auto-deconfigure \ + --no-debsig --no-act -D --debug= --status-fd \ + -b --build -I --info -f --field -c --contents \ + -x --extract -X --vextract --fsys-tarfile -e --control \ + --ignore-depends= --abort-after' -- $cur ) ) + ;; + esac + + +} +complete -F _dpkg $filenames dpkg dpkg-deb +} + +# Debian GNU dpkg-reconfigure(8) completion +# +have dpkg-reconfigure && +_dpkg_reconfigure() +{ + local cur prev opt + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + + case "$prev" in + -@(f|-frontend)) + opt=( $( echo /usr/share/perl5/Debconf/FrontEnd/* ) ) + opt=( ${opt[@]##*/} ) + opt=( ${opt[@]%.pm} ) + COMPREPLY=( $( compgen -W '${opt[@]}' -- $cur ) ) + return 0 + ;; + -@(p|-priority)) + COMPREPLY=( $( compgen -W 'low medium high critical' -- $cur ) ) + return 0 + ;; + esac + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-f --frontend -p --priority -a --all \ + -u --unseen-only -h --help -s --showold \ + --force --terse' -- $cur ) ) + else + COMPREPLY=( $( _comp_dpkg_installed_packages $cur ) ) + fi +} && +complete -F _dpkg_reconfigure $default dpkg-reconfigure + +# Debian dpkg-source completion +# +have dpkg-source && +_dpkg_source() +{ + local cur prev options work i action packopts unpackopts + + packopts="-c -l -F -V -T -D -U -W -E -sa -i -I -sk -sp -su -sr -ss -sn -sA -sK -sP -sU -sR" + unpackopts="-sp -sn -su" + options=`echo "-x -b $packopts $unpackopts" | xargs echo | sort -u | xargs echo` + + COMPREPLY=() + if [ "$1" != "dpkg-source" ]; then + exit 1 + fi + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + action="options" + for (( i=0; i < ${#COMP_WORDS[@]}-1; i++ )); do + if [[ ${COMP_WORDS[$i]} == "-x" ]]; then + action=unpack + elif [[ ${COMP_WORDS[$i]} == "-b" ]]; then + action=pack + elif [[ ${COMP_WORDS[$i]} == "-h" ]]; then + action=help + fi + done + # if currently seeing a complete option, return just itself. + for i in $options; do + if [ "$cur" = "$i" ]; then + COMPREPLY=( "$cur" ) + return 0 + fi + done + case "$action" in + "unpack") + if [ "$cur" = "-" -o "$cur" = "-s" ]; then + COMPREPLY=( $unpackots ) + return 0 + fi + case "$prev" in + "-x") + COMPREPLY=( $( compgen -d -- "$cur" ) \ + $( compgen -f -X '!*.dsc' -- "$cur" ) ) + return 0 + ;; + *) + COMPREPLY=( $unpackopts $(compgen -d -f -- "$cur" ) ) + return 0 + ;; + esac + return 0 + ;; + "pack") + if [ "$cur" = "-" ]; then + COMPREPLY=( $packopts ) + return 0 + fi + if [ "$cur" = "-s" ]; then + COMPREPLY=( "-sa" "-sk" "-sp" "-su" "-sr" "-ss" "-sn" \ + "-sA" "-sK" "-sP" "-sU" "-sR" ) + return 0 + fi + case "$prev" in + "-b") + COMPREPLY=( $( compgen -d -- "$cur" ) ) + return 0 + ;; + "-c"|"-l"|"-T"|"-i"|"-I") + # -c: get controlfile + # -l: get per-version info from this file + # -T: read variables here, not debian/substvars + # -i: filter out files to ignore diffs of. + # -I: filter out files when building tarballs. + # return directory names and file names + COMPREPLY=( $( compgen -d -f ) ) + return 0 + ;; + "-F") + # -F: force change log format + COMPREPLY=( $( ( cd /usr/lib/dpkg/parsechangelog; compgen -f "$cur" ) ) ) + return 0 + ;; + "-V"|"-D") + # -V: set a substitution variable + # we don't know anything about possible variables or values + # so we don't try to suggest any completion. + COMPREPLY=() + return 0 + ;; + "-D") + # -D: override or add a .dsc field and value + # if $cur doesn't contain a = yet, suggest variable names + if echo -- "$cur" | grep -q "="; then + # $cur contains a "=" + COMPREPLY=() + return 0 + else + COMPREPLY=( Format Source Version Binary Maintainer Uploader Architecture Standards-Version Build-Depends Files ) + return 0 + fi + ;; + "-U") + # -U: remove a field + # Suggest possible fieldnames + COMPREPLY=( Format Source Version Binary Maintainer Uploader Architecture Standards-Version Build-Depends Files ) + return 0 + ;; + *) + COMPREPLY=( $packopts ) + return 0 + ;; + esac + return 0 + ;; + *) + # if seeing a partial option, return possible completions. + if [ "$cur" = "-s" ]; then + COMPREPLY=( "-sa" "-sk" "-sp" "-su" "-sr" "-ss" "-sn" \ + "-sA" "-sK" "-sP" "-sU" "-sR" ) + return 0 + fi + # else return all possible options. + COMPREPLY=( $options ) + return 0 + ;; + esac +} && +complete -F _dpkg_source dpkg-source + +# Debian Linux dselect(8) completion. +# +have dselect && +_dselect() +{ + local cur prev + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + case "$prev" in + --admindir) + _filedir -d + return 0 + ;; + + -@(D|debug)) + _filedir + return 0 + ;; + esac + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '--admindir --help --version --licence \ + --license --expert --debug' -- $cur ) ) + else + COMPREPLY=( $( compgen -W 'access update select install config \ + remove quit' -- $cur ) ) + fi + + + return 0 +} && +complete -F _dselect $filenames dselect + +# Java completion +# + +# available path elements completion +have java && { +_java_path() +{ + cur=${cur##*:} + _filedir '@(jar|zip)' +} + +# exact classpath determination +_java_find_classpath() +{ + local i + + # search first in current options + for (( i=1; i < COMP_CWORD; i++ )); do + if [[ "${COMP_WORDS[i]}" == -@(cp|classpath) ]]; then + classpath=${COMP_WORDS[i+1]} + break + fi + done + + # default to environment + [ -z "$classpath" ] && classpath=$CLASSPATH + + # default to current directory + [ -z "$classpath" ] && classpath=. +} + +# exact sourcepath determination +_java_find_sourcepath() +{ + local i + + # search first in current options + for (( i=1; i < COMP_CWORD; i++ )); do + if [[ "${COMP_WORDS[i]}" == -sourcepath ]]; then + sourcepath=${COMP_WORDS[i+1]} + break + fi + done + + # default to classpath + [ -z "$sourcepath" ] && _java_find_classpath + sourcepath=$classpath +} + +# available classes completion +_java_classes() +{ + local classpath i + + # find which classpath to use + _java_find_classpath + + # convert package syntax to path syntax + cur=${cur//.//} + # parse each classpath element for classes + for i in ${classpath//:/ }; do + if [ -r $i ] && [[ "$i" == *.@(jar|zip) ]]; then + if type zipinfo &> /dev/null; then + COMPREPLY=( "${COMPREPLY[@]}" $( zipinfo -1 \ + "$i" | grep "^$cur" | grep '\.class$' | \ + grep -v "\\$" ) ) + else + COMPREPLY=( "${COMPREPLY[@]}" $( jar tf "$i" \ + "$cur" | grep "\.class$" | grep -v "\\$" ) ) + fi + + elif [ -d $i ]; then + i=${i%/} + COMPREPLY=( "${COMPREPLY[@]}" $( find "$i" -type f \ + -path "$i/$cur*.class" 2>/dev/null | \ + grep -v "\\$" | sed -e "s|^$i/||" ) ) + fi + done + + # remove class extension + COMPREPLY=( ${COMPREPLY[@]%.class} ) + # convert path syntax to package syntax + COMPREPLY=( ${COMPREPLY[@]//\//.} ) +} + +# available packages completion +_java_packages() +{ + local sourcepath i + + # find wich sourcepath to use + _java_find_sourcepath + + # convert package syntax to path syntax + cur=${cur//.//} + # parse each sourcepath element for packages + for i in ${sourcepath//:/ }; do + if [ -d $i ]; then + COMPREPLY=( "${COMPREPLY[@]}" $( command ls -F -d \ + $i/$cur* 2>/dev/null | sed -e 's|^'$i'/||' ) ) + fi + done + # keep only packages + COMPREPLY=( $( echo "${COMPREPLY[@]}" | tr " " "\n" | grep "/$" ) ) + # remove packages extension + COMPREPLY=( ${COMPREPLY[@]%/} ) + # convert path syntax to package syntax + cur=${COMPREPLY[@]//\//.} +} + +# java completion +# +_java() +{ + local cur prev i + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + for ((i=1; i < $COMP_CWORD; i++)); do + case ${COMP_WORDS[$i]} in + -cp|-classpath) + ((i++)) # skip the classpath string. + ;; + -*) + # this is an option, not a class/jarfile name. + ;; + *) + # once we've seen a class, just do filename completion + _filedir + return 0 + ;; + esac + done + + case $prev in + -@(cp|classpath)) + _java_path + return 0 + ;; + esac + + if [[ "$cur" == -* ]]; then + # relevant options completion + COMPREPLY=( $( compgen -W '-client -hotspot -server -classic \ + -cp -classpath -D -verbose -verbose:class \ + -verbose:gc -version:jni -version \ + -showversion -? -help -X -jar \ + -ea -enableassertions -da -disableassertions \ + -esa -enablesystemassertions \ + -dsa -disablesystemassertions ' -- $cur ) ) + else + if [[ "$prev" == -jar ]]; then + # jar file completion + _filedir jar + else + # classes completion + _java_classes + fi + fi +} +complete -F _java $filenames java +} + +# javadoc completion +# +have javadoc && +_javadoc() +{ + COMPREPLY=() + local cur prev + + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + case $prev in + -@(overview|helpfile|stylesheetfile)) + _filedir + return 0 + ;; + -d) + _filedir -d + return 0 + ;; + -@(classpath|bootclasspath|docletpath|sourcepath|extdirs)) + _java_path + return 0 + ;; + esac + + if [[ "$cur" == -* ]]; then + # relevant options completion + COMPREPLY=( $( compgen -W '-overview -public -protected \ + -package -private -help -doclet -docletpath \ + -sourcepath -classpath -exclude -subpackages \ + -breakiterator -bootclasspath -source -extdirs \ + -verbose -locale -encoding -J -d -use -version \ + -author -docfilessubdirs -splitindex \ + -windowtitle -doctitle -header -footer -bottom \ + -link -linkoffline -excludedocfilessubdir \ + -group -nocomment -nodeprecated -noqualifier \ + -nosince -nodeprecatedlist -notree -noindex \ + -nohelp -nonavbar -quiet -serialwarn -tag \ + -taglet -tagletpath -charset -helpfile \ + -linksource -stylesheetfile -docencoding' -- \ + $cur ) ) + else + # source files completion + _filedir java + # packages completion + _java_packages + fi +} && +complete -F _javadoc $filenames javadoc + +# javac completion +# +have javac && +_javac() +{ + COMPREPLY=() + local cur prev + + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + case $prev in + -d) + _filedir -d + return 0 + ;; + -@(classpath|bootclasspath|sourcepath|extdirs)) + _java_path + return 0 + ;; + esac + + if [[ "$cur" == -* ]]; then + # relevant options completion + COMPREPLY=( $( compgen -W '-g -g:none -g:lines -g:vars\ + -g:source -O -nowarn -verbose -deprecation -classpath\ + -sourcepath -bootclasspath -extdirs -d -encoding -source\ + -target -help' -- $cur ) ) + else + # source files completion + _filedir java + fi +} && +complete -F _javac $filenames javac + +# PINE address-book completion +# +have pine && +_pineaddr() +{ + local cur + + COMPREPLY=() + cur=`_get_cword` + + COMPREPLY=( $( compgen -W '$( awk "{print \$1}" ~/.addressbook 2>/dev/null)' \ + -- $cur ) ) +} && +complete -F _pineaddr $default pine + +# mutt completion +# +# Mutt doesn't have an "addressbook" like Pine, but it has aliases and +# a "query" function to retrieve addresses, so that's what we use here. +have mutt || have muttng && { +_muttaddr() +{ + _muttaliases + _muttquery + return 0 +} + +_muttconffiles() +{ + local file sofar + local -a newconffiles + + sofar=" $1 " + shift + while [[ "$1" ]]; do + newconffiles=( $(sed -rn 's|^source[[:space:]]+([^[:space:]]+).*$|\1|p' $(eval echo $1) ) ) + for file in "${newconffiles[@]}"; do + [[ ! "$file" ]] || [[ "${sofar/ ${file} / }" != "$sofar" ]] && + continue + sofar="$sofar $file" + sofar=" $(eval _muttconffiles \"$sofar\" $file) " + done + shift + done + echo $sofar +} + +_muttaliases() +{ + local cur muttrc + local -a conffiles aliases + cur=`_get_cword` + + [ -f ~/.${muttcmd}/${muttcmd}rc ] && muttrc="~/.${muttcmd}/${muttcmd}rc" + [ -f ~/.${muttcmd}rc ] && muttrc="~/.${muttcmd}rc" + [ -z "$muttrc" ] && return 0 + + conffiles=( $(eval _muttconffiles $muttrc $muttrc) ) + aliases=( $( sed -rn 's|^alias[[:space:]]+([^[:space:]]+).*$|\1|p' \ + $(eval echo "${conffiles[@]}") ) ) + COMPREPLY=( "${COMPREPLY[@]}" $( compgen -W "${aliases[*]}" -- $cur ) ) + + return 0 +} + +_muttquery() +{ + local cur querycmd + local -a queryresults + cur=`_get_cword` + + querycmd="$( $muttcmd -Q query_command | sed -r 's|^query_command=\"(.*)\"$|\1|; s|%s|'$cur'|' )" + if [ -z "$cur" -o -z "$querycmd" ]; then + queryresults=() + else + queryresults=( $( $querycmd | \ + sed -nr '2,$s|^([^[:space:]]+).*|\1|p' ) ) + fi + + COMPREPLY=( "${COMPREPLY[@]}" $( compgen -W "${queryresults[*]}" \ + -- $cur ) ) + + return 0 +} + +_muttfiledir() +{ + local cur folder spoolfile + cur=`_get_cword` + + # This is currently not working so well. Perhaps this function should + # just call _filedir() for the moment. + if [[ $cur == [=+]* ]]; then + folder="$( $muttcmd -Q folder | sed -r 's|^folder=\"(.*)\"$|\1|' )" + : folder:=~/Mail + + # Match any file in $folder beginning with $cur + # (minus the leading '=' sign). + COMPREPLY=( $( compgen -f -- "$folder/${cur:1}" ) ) + COMPREPLY=( ${COMPREPLY[@]#$folder/} ) + return 0 + elif [ "$cur" == !* ]; then + spoolfile="$( $muttcmd -Q spoolfile | sed -r 's|^spoolfile=\"(.*)\"$|\1|' )" + [ ! -z "$spoolfile" ] && eval cur="${cur/^!/$spoolfile}"; + fi + _filedir + + return 0 +} + +_mutt() +{ + local cur prev + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + COMPREPLY=() + + [ ${COMP_WORDS[0]} == muttng ] && muttcmd="muttng" || muttcmd="mutt" + + case "$cur" in + -*) + COMPREPLY=( $( compgen -W '-A -a -b -c -e -f -F -H -i -m -n \ + -p -Q -R -s -v -x -y -z -Z -h' \ + -- $cur ) ) + return 0 + ;; + *) + case "$prev" in + -@(a|f|F|H|i)) + _muttfiledir + return 0 + ;; + -A) + _muttaliases + return 0 + ;; + -@(e|m|Q|s|h|p|R|v|y|z|Z)) + return 0 + ;; + *) + _muttaddr + return 0 + ;; + esac + ;; + esac + +} +complete -F _mutt $default $filenames mutt muttng +} + +_configure_func() +{ + local cur + + COMPREPLY=() + cur=`_get_cword` + + # if $COMP_CONFIGURE_HINTS is not null, then completions of the form + # --option=SETTING will include 'SETTING' as a contextual hint + [[ "$cur" != -* ]] && return 0 + + if [ -n "$COMP_CONFIGURE_HINTS" ]; then + COMPREPLY=( $( $1 --help | awk '/^ --[A-Za-z]/ { print $1; if ($2 ~ /--[A-Za-z]/) print $2 }' | sed -e 's/[[,].*//g' | grep ^$cur ) ) + + else + COMPREPLY=( $( $1 --help | awk '/^ --[A-Za-z]/ { print $1; if ($2 ~ /--[A-Za-z]/) print $2 }' | sed -e 's/[[,=].*//g' | grep ^$cur ) ) + fi +} +complete -F _configure_func $default configure + +# Debian reportbug(1) completion +# +have reportbug && +_reportbug() +{ + local cur prev + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + case "$prev" in + -f|--filename|-i|--include|--mta|-o|--output) + _filedir + return 0 + ;; + -B|--bts) + COMPREPLY=( $( compgen -W "debian guug kde mandrake help" -- \ + $cur )) + return 0 + ;; + -e|--editor|--mua) + COMP_WORDS=(COMP_WORDS[0] $cur) + COMP_CWORD=1 + _command + return 0 + ;; + --mode) + COMPREPLY=( $( compgen -W "novice standard expert" -- $cur ) ) + return 0 + ;; + -S|--severity) + COMPREPLY=( $( compgen -W "grave serious important normal \ + minor wishlist" -- $cur ) ) + return 0 + ;; + -u|--ui|--interface) + COMPREPLY=( $( compgen -W "newt text gnome" -- $cur ) ) + return 0 + ;; + -t|--type) + COMPREPLY=( $( compgen -W "gnats debbugs" -- $cur ) ) + return 0 + ;; + -T|--tags) + COMPREPLY=( $( compgen -W "none patch security upstream sid \ + woody potato sarge fixed" -- $cur )) + return 0 + ;; + *) + ;; + esac + + COMPREPLY=($( compgen -W '-h --help -v --version -a --af -b \ + --no-query-bts --query-bts -B --bts -c --configure \ + --no-config-files --check-available -d --debug \ + --no-check-available -e --editor --email -f \ + --filename -g --gnupg -H --header -i --include -j \ + --justification -l --ldap --no-ldap -L --list-cc -m \ + --maintonly --mode --mua --mta --mutt -n --mh --nmh \ + -o --output -p --print -P --pgp --proxy --http_proxy\ + -q --quiet -Q --query-only --realname --report-quiet \ + --reply-to --replyto -s --subject -S --severity \ + --smtphost -t --type -T --tags --template -V -x \ + --no-cc --package-version -z --no-compress \ + --ui --interface -u \ + wnpp boot-floppies kernel-image' -- $cur ) \ + $( apt-cache pkgnames -- $cur 2> /dev/null ) ) + _filedir + return 0 +} && +complete -F _reportbug $filenames reportbug + +# Debian querybts(1) completion +# +have querybts && +_querybts() +{ + local cur prev + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + case "$prev" in + -B|--bts) + COMPREPLY=( $( compgen -W "debian guug kde mandrake help" -- \ + $cur )) + return 0 + ;; + -u|--ui|--interface) + COMPREPLY=($( compgen -W "newt text gnome" -- $cur )) + return 0 + ;; + *) + ;; + esac + + COMPREPLY=($( compgen -W '-h --help -v --version -A --archive \ + -B --bts -l --ldap --no-ldap --proxy= --http_proxy= \ + -s --source -w --web -u --ui --interface \ + wnpp boot-floppies' -- $cur ) \ + $( apt-cache pkgnames -- $cur 2> /dev/null ) ) +} && +complete -F _querybts $filenames querybts + +# update-alternatives completion +# +have update-alternatives && { +installed_alternatives() +{ + local admindir + # find the admin dir + for i in alternatives dpkg/alternatives rpm/alternatives; do + [ -d /var/lib/$i ] && admindir=/var/lib/$i && break + done + for (( i=1; i < COMP_CWORD; i++ )); do + if [[ "${COMP_WORDS[i]}" == --admindir ]]; then + admindir=${COMP_WORDS[i+1]} + break + fi + done + COMPREPLY=( $( command ls $admindir | grep "^$cur" ) ) +} + +_update_alternatives() +{ + local cur prev mode args i + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + case "$prev" in + --@(altdir|admindir)) + _filedir -d + return 0 + ;; + --@(help|version)) + return 0 + ;; + esac + + # find wich mode to use and how many real args used so far + for (( i=1; i < COMP_CWORD; i++ )); do + if [[ "${COMP_WORDS[i]}" == --@(install|remove|auto|display|config|remove-all) ]]; then + mode=${COMP_WORDS[i]} + args=$(($COMP_CWORD - i)) + break + fi + done + + case $mode in + --install) + case $args in + 1) + _filedir + ;; + 2) + installed_alternatives + ;; + 3) + _filedir + ;; + esac + ;; + --remove) + case $args in + 1) + installed_alternatives + ;; + 2) + _filedir + ;; + esac + ;; + --auto) + installed_alternatives + ;; + --remove-all) + installed_alternatives + ;; + --display) + installed_alternatives + ;; + --config) + installed_alternatives + ;; + *) + COMPREPLY=( $( compgen -W '--verbose --quiet --help --version \ + --altdir --admindir' -- $cur ) \ + $( compgen -W '--install --remove --auto --display \ + --config' -- $cur ) ) + esac +} +complete -F _update_alternatives update-alternatives +} + +# Python completion +# +have python && +_python() +{ + local prev cur + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]##*/} + + case "$prev" in + -Q) + COMPREPLY=( $( compgen -W "old new warn warnall" -- $cur ) ) + return 0 + ;; + -W) + COMPREPLY=( $( compgen -W "ignore default all module once error" -- $cur ) ) + return 0 + ;; + -c) + _filedir '@(py|pyc|pyo)' + return 0 + ;; + !(python|-?)) + [[ ${COMP_WORDS[COMP_CWORD-2]} != -@(Q|W) ]] && _filedir + ;; + esac + + + # if '-c' is already given, complete all kind of files. + for (( i=0; i < ${#COMP_WORDS[@]}-1; i++ )); do + if [[ ${COMP_WORDS[i]} == -c ]]; then + _filedir + fi + done + + + if [[ "$cur" != -* ]]; then + _filedir '@(py|pyc|pyo)' + else + COMPREPLY=( $( compgen -W "- -d -E -h -i -O -Q -S -t -u \ + -U -v -V -W -x -c" -- $cur ) ) + fi + + + + return 0 +} && +complete -F _python $filenames python + +# Perl completion +# +have perl && +{ +_perlmodules() +{ + COMPREPLY=( $( compgen -P "$prefix" -W "$( perl -e 'sub mods { my ($base,$dir)=@_; return if $base !~ /^\Q$ENV{cur}/; chdir($dir) or return; for (glob(q[*.pm])) {s/\.pm$//; print qq[$base$_\n]}; mods(/^(?:[.\d]+|$Config{archname}-$Config{osname}|auto)$/ ? undef : qq[${base}${_}\\\\:\\\\:],qq[$dir/$_]) for grep {-d} glob(q[*]); } mods(undef,$_) for @INC;' )" -- $cur ) ) +} + +_perl() +{ + local cur prev prefix temp + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + prefix="" + + # completing an option (may or may not be separated by a space) + if [[ "$cur" == -?* ]]; then + temp=$cur + prev=${temp:0:2} + cur=${temp:2} + prefix=$prev + fi + + # only handle module completion for now + case "$prev" in + -I|-x) + COMPREPLY=( $( compgen -d -P "$prev" -- "$cur" ) ) + return 0 + ;; + -m|-M) + _perlmodules + return 0 + ;; + esac + + # handle case where first parameter is not a dash option + if [[ "${COMP_WORDS[COMP_CWORD]}" != -* ]]; then + _filedir + return 0 + fi + + # complete using basic options + COMPREPLY=( $( compgen -W '-C -s -T -u -U -W -X -h -v -V -c -w -d -D -p \ + -n -a -F -l -0 -I -m -M -P -S -x -i -e ' -- $cur ) ) + return 0 +} +complete -F _perl $filenames perl + +_perldoc() +{ + local cur prev prefix temp + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + prefix="" + + # completing an option (may or may not be separated by a space) + if [[ "$cur" == -?* ]]; then + temp=$cur + prev=${temp:0:2} + cur=${temp:2} + prefix=$prev + fi + + # complete builtin perl functions + case $prev in + -f) + COMPREPLY=( $( compgen -W 'chomp chop chr crypt hex index lc \ + lcfirst length oct ord pack q qq reverse rindex sprintf \ + substr tr uc ucfirst y m pos quotemeta s split study qr abs \ + atan2 cos exp hex int log oct rand sin sqrt srand pop push \ + shift splice unshift grep join map qw reverse sort unpack \ + delete each exists keys values binmode close closedir \ + dbmclose dbmopen die eof fileno flock format getc print \ + printf read readdir rewinddir seek seekdir select syscall \ + sysread sysseek syswrite tell telldir truncate warn write \ + pack read syscall sysread syswrite unpack vec -X chdir chmod \ + chown chroot fcntl glob ioctl link lstat mkdir open opendir \ + readlink rename rmdir stat symlink umask unlink utime caller \ + continue do dump eval exit goto last next redo return \ + sub wantarray caller import local my our package use defined \ + formline reset scalar undef \ + alarm exec fork getpgrp getppid getpriority kill pipe qx \ + setpgrp setpriority sleep system times wait waitpid \ + import no package require use bless dbmclose dbmopen package \ + ref tie tied untie use accept bind connect getpeername \ + getsockname getsockopt listen recv send setsockopt shutdown \ + socket socketpair msgctl msgget msgrcv msgsnd semctl semget \ + semop shmctl shmget shmread shmwrite endgrent endhostent \ + endnetent endpwent getgrent getgrgid getgrnam getlogin \ + getpwent getpwnam getpwuid setgrent setpwent endprotoent \ + endservent gethostbyaddr gethostbyname gethostent \ + getnetbyaddr getnetbyname getnetent getprotobyname \ + getprotobynumber getprotoent getservbyname getservbyport \ + getservent sethostent setnetent setprotoent setservent \ + gmtime localtime time times' -- $cur ) ) + return 0 + ;; + esac + + case $cur in + -*) + COMPREPLY=( $( compgen -W '-h -v -t -u -m -l -F -X -f -q' -- $cur )) + return 0 + ;; + */*) + return 0 + ;; + *) + _perlmodules + COMPREPLY=( "${COMPREPLY[@]}" $( compgen -W '$( PAGER=cat man perl 2>/dev/null | sed -ne "/perl.*Perl overview/,/perlwin32/s/^[^a-z0-9]*\([a-z0-9]*\).*$/\1/p")' -- $cur ) ) + + return 0 + ;; + esac +} +complete -F _perldoc $default perldoc +} + +# rcs(1) completion +# +have rcs && +_rcs() +{ + local cur prev file dir i + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + file=${cur##*/} + dir=${cur%/*} + + # deal with relative directory + [ "$file" = "$dir" ] && dir=. + + COMPREPLY=( $( compgen -f "$dir/RCS/$file" ) ) + + for (( i=0; i < ${#COMPREPLY[@]}; i++ )); do + file=${COMPREPLY[$i]##*/} + dir=${COMPREPLY[$i]%RCS/*} + COMPREPLY[$i]=$dir$file + done + + COMPREPLY=( "${COMPREPLY[@]}" $( compgen -G "$dir/$file*,v" ) ) + + for (( i=0; i < ${#COMPREPLY[@]}; i++ )); do + COMPREPLY[$i]=${COMPREPLY[$i]%,v} + done + + # default to files if nothing returned and we're checking in. + # otherwise, default to directories + [ ${#COMPREPLY[@]} -eq 0 -a $1 = ci ] && _filedir || _filedir -d +} && +complete -F _rcs $filenames ci co rlog rcs rcsdiff + +# lilo(8) completion +# +have lilo && { +_lilo_labels() +{ + COMPREPLY=( $( awk -F'=' '/label/ {print $2}' \ + /etc/lilo.conf | sed -e 's/"//g' | grep "^$cur" ) ) +} + +_lilo() +{ + local cur prev + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + case $prev in + -@(C|i|m|s|S)) + _filedir + return 0 + ;; + -r) + _filedir -d + return 0 + ;; + -@(I|D|R)) + # label completion + _lilo_labels + return 0 + ;; + -@(A|b|M|u|U)) + # device completion + cur=${cur:=/dev/} + _filedir + return 0 + ;; + -T) + # topic completion + COMPREPLY=( $( compgen -W 'help ChRul EBDA geom geom= \ + table= video' -- $cur ) ) + return 0 + ;; + esac + + if [[ "$cur" == -* ]]; then + # relevant options completion + COMPREPLY=( $( compgen -W '-A -b -c -C -d -f -g -i -I -l -L -m \ + -M -p -P -q -r -R -s -S -t -T -u -U -v -V -w -x -z' -- \ + $cur ) ) + fi +} +complete -F _lilo lilo +} + +# links completion +# +have links && +_links() +{ + local cur + + COMPREPLY=() + cur=`_get_cword` + + case "$cur" in + --*) + COMPREPLY=( $( compgen -W '--help' -- $cur ) ) + ;; + -*) + COMPREPLY=( $( compgen -W '-async-dns -max-connections \ + -max-connections-to-host -retries \ + -receive-timeout -unrestartable-receive-timeout\ + -format-cache-size -memory-cache-size \ + -http-proxy -ftp-proxy -download-dir \ + -assume-codepage -anonymous -dump -no-connect \ + -source -version -help' -- $cur ) ) + ;; + *) + if [ -r ~/.links/links.his ]; then + COMPREPLY=( $( compgen -W '$( < ~/.links/links.his )' \ + -- $cur ) ) + fi + _filedir '@(htm|html)' + return 0 + ;; + esac + + return 0 +} && +complete -F _links $filenames links + +[ $UNAME = FreeBSD ] && { +# FreeBSD package management tool completion +# +_pkg_delete() +{ + local cur pkgdir prev + + pkgdir=${PKG_DBDIR:-/var/db/pkg}/ + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + [ "$prev" = "-o" -o "$prev" = "-p" -o "$prev" = "-W" ] && return 0 + + COMPREPLY=( $( compgen -d $pkgdir$cur ) ) + COMPREPLY=( ${COMPREPLY[@]#$pkgdir} ) + + return 0 +} +complete -F _pkg_delete $dirnames pkg_delete pkg_info +have pkg_deinstall && complete -F _pkg_delete $dirnames pkg_deinstall + +# FreeBSD kernel module commands +# +_kldload() +{ + local cur moddir + + moddir=/modules/ + [ -d $moddir ] || moddir=/boot/kernel/ + cur=`_get_cword` + + COMPREPLY=( $( compgen -f $moddir$cur ) ) + COMPREPLY=( ${COMPREPLY[@]#$moddir} ) + COMPREPLY=( ${COMPREPLY[@]%.ko} ) + + return 0 +} +complete -F _kldload $filenames kldload + +_kldunload() +{ + local cur + cur=`_get_cword` + COMPREPLY=( $(kldstat | sed -ne "s/^.*[ \t]\+\($cur[a-z_]\+\).ko$/\1/p") ) +} +complete -F _kldunload $filenames kldunload +} + +# FreeBSD portupgrade completion +# +have portupgrade && +_portupgrade() +{ + local cur pkgdir prev + + pkgdir=${PKG_DBDIR:-/var/db/pkg}/ + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + [ "$prev" = "-l" -o "$prev" = "-L" -o "$prev" = "-o" ] && return 0 + + COMPREPLY=( $( compgen -d $pkgdir$cur ) ) + COMPREPLY=( ${COMPREPLY[@]#$pkgdir} ) + COMPREPLY=( ${COMPREPLY[@]%-*} ) + + return 0 +} && +complete -F _portupgrade $dirnames portupgrade + +# FreeBSD portinstall completion +# +have portinstall && +_portinstall() +{ + local cur portsdir prev indexfile + local -a COMPREPLY2 + + portsdir=${PORTSDIR:-/usr/ports}/ + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + # First try INDEX-5 + indexfile=$portsdir/INDEX-5 + # Then INDEX if INDEX-5 does not exist or system is not FreeBSD 5.x + [ "${OSTYPE%.*}" = "freebsd5" -a -f $indexfile ] || + indexfile=$portsdir/INDEX + + [ "$prev" = "-l" -o "$prev" = "-L" -o "$prev" = "-o" ] && return 0 + + COMPREPLY=( $( egrep "^$cur" < $indexfile | cut -d'|' -f1 ) ) + COMPREPLY2=( $( egrep "^[^\|]+\|$portsdir$cur" < $indexfile | \ + cut -d'|' -f2 ) ) + COMPREPLY2=( ${COMPREPLY2[@]#$portsdir} ) + COMPREPLY=( "${COMPREPLY[@]}" "${COMPREPLY2[@]}" ) + + return 0 +} && +complete -F _portinstall $dirnames portinstall + +# Slackware Linux removepkg completion +# +have removepkg && [ -f /etc/slackware-version ] && +_removepkg() +{ + local packages cur + + COMPREPLY=() + cur=`_get_cword` + + COMPREPLY=( $( (cd /var/log/packages; compgen -f -- "$cur") ) ) +} && +complete -F _removepkg $filenames removepkg && + complete $dirnames -f -X '!*.tgz' installpkg upgradepkg explodepkg + +# look(1) completion +# +have look && +_look() +{ + local cur + + COMPREPLY=() + cur=`_get_cword` + + if [ $COMP_CWORD = 1 ]; then + COMPREPLY=( $( compgen -W '$(look $cur)' ) ) + fi +} && +complete -F _look $default look + +# ypcat(1) and ypmatch(1) completion +# +have ypmatch && +_ypmatch() +{ + local cur map + + COMPREPLY=() + cur=`_get_cword` + + [ $1 = ypcat ] && [ $COMP_CWORD -gt 1 ] && return 0 + [ $1 = ypmatch ] && [ $COMP_CWORD -gt 2 ] && return 0 + + if [ $1 = ypmatch ] && [ $COMP_CWORD -eq 1 ] && \ + [ ${#COMP_WORDS[@]} -eq 3 ]; then + map=${COMP_WORDS[2]} + COMPREPLY=( $( compgen -W '$( ypcat $map | \ + cut -d':' -f 1 )' -- $cur) ) + else + [ $1 = ypmatch ] && [ $COMP_CWORD -ne 2 ] && return 0 + COMPREPLY=( $( compgen -W \ + '$( echo $(ypcat -x | cut -d"\"" -f 2))' -- $cur)) + fi + + return 0 +} && +complete -F _ypmatch ypmatch ypcat + +# mplayer(1) completion +# +have mplayer && { +_mplayer_options_list() +{ + cur=${cur%\\} + COMPREPLY=( $( $1 $2 help 2> /dev/null | \ + sed -e '1,/^Available/d' | awk '{print $1}' | \ + sed -e 's/:$//' -e 's/^'${2#-}'$//' -e 's/<.*//' | \ + grep "^$cur" ) ) +} + +_mplayer() +{ + local cmd cur prev skinsdir IFS=$' \t\n' i j k=0 + + COMPREPLY=() + cmd=${COMP_WORDS[0]} + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + case "$prev" in + -@(ac|afm|vc|vfm|ao|vo|vop|fstype)) + _mplayer_options_list mplayer $prev + return 0 + ;; + -@(oac|ovc|of)) + _mplayer_options_list mencoder $prev + return 0 + ;; + -audiofile) + _filedir '@(mp3|MP3|mpg|MPG|ogg|OGG|wav|WAV|mid|MID|flac|FLAC|mka|MKA)' + return 0 + ;; + -font) + _filedir '@(desc|ttf)' + return 0 + ;; + -sub) + _filedir '@(srt|SRT|sub|SUB|txt|TXT|utf|UTF|rar|RAR|mpsub|smi|js|ssa|SSA|aas|AAS)' + return 0 + ;; + -vobsub) + _filedir '@(idx|IDX|ifo|IFO|sub|SUB)' + IFS=$'\t\n' + COMPREPLY=( $( for i in "${COMPREPLY[@]}"; do + if [ -f $i -a -r $i ]; then + echo ${i%.*} + else + echo $i + fi + done ) ) + IFS=$' \t\n' + return 0 + ;; + -ifo) + _filedir '@(ifo|IFO)' + return 0 + ;; + -cuefile) + _filedir '@(bin|BIN|cue|CUE)' + return 0 + ;; + -skin) + # if you don't have installed mplayer in /usr/local you + # may want to set the MPLAYER_SKINS_DIR global variable + if [ -n "$MPLAYER_SKINS_DIR" ]; then + skinsdir=$MPLAYER_SKINS_DIR + else + skinsdir=/usr/local/share/mplayer/Skin + fi + + IFS=$'\t\n' + for i in ~/.mplayer/Skin $skinsdir; do + if [ -d $i -a -r $i ]; then + for j in $( compgen -d $i/$cur ); do + COMPREPLY[$k]=${j#$i/} + k=$((++k)) + done + fi + done + IFS=$' \t\n' + return 0 + ;; + -@(mixer|@(cdrom|dvd)-device|dvdauth|fb|zrdev)) + cur=${cur:=/dev/} + _filedir + return 0 + ;; + -@(edl?(out)|lircconf|menu-cfg|playlist|csslib|dumpfile)| \ + -@(subfile|vobsub|aofile|fbmodeconfig|include|o|dvdkey)| \ + -passlogfile) + _filedir + return 0 + ;; + -@(auto@(q|sync)|loop|menu-root|speed|sstep|aid|alang)| \ + -@(?(@(audio|sub)-)demuxer|bandwidth|cache|chapter)| \ + -@(dvd?(angle)|fps|frames|mc|passwd|user|sb|srate|ss|vcd)| \ + -@(vi?(d|vo)|ffactor|sid|slang|spu@(align|aa|gauss))| \ + -@(vobsubid|delay|bpp|brightness|contrast|dfbopts|display)| \ + -@(fbmode|geometry|guiwid|hue|icelayer|screen[wh]|wid)| \ + -@(monitor@(aspect|-@(dotclock|[hv]freq))|panscan|saturation)| \ + -@(xineramascreen|zr@(crop|norm|quality|[xy]doff|[vh]dec))| \ + -@(aspect|pp|x|y|xy|z|stereo|audio-@(density|delay|preload))| \ + -@(endpos|osdlevel|ffourcc|sws|channels|skiplimit|format)| \ + -@(ofps|aa@(driver|@(osd|sub)color)|vobsubout?(i@(ndex|d)))| \ + -sub@(-bg-@(alpha|color)|cp|delay|fps|pos|align|width)| \ + -sub@(font-@(blur|outline|autoscale|encoding|@(osd|text)-scale))) + return 0 + ;; + -lavdopts) + COMPREPLY=( $( compgen -W 'ec er= bug= idct= gray' \ + -- $cur ) ) + return 0 + ;; + -lavcopts) + COMPREPLY=( $( compgen -W 'vcodec= vqmin= vqscale= \ + vqmax= mbqmin= mbqmax= vqdiff= \ + vmax_b_frames= vme= vhq v4mv \ + keyint= vb_strategy= vpass= \ + aspect= vbitrate= vratetol= \ + vrc_maxrate= vrc_minrate= \ + vrc_buf_size= vb_qfactor= vi_qfactor= \ + vb_qoffset= vi_qoffset= vqblur= \ + vqcomp= vrc_eq= vrc_override= \ + vrc_init_cplx= vqsquish= vlelim= \ + vcelim= vstrict= vdpart vpsize= gray \ + vfdct= idct= lumi_mask= dark_mask= \ + tcplx_mask= scplx_mask= naq ildct \ + format= pred qpel precmp= cmp= \ + subcmp= predia= dia= trell last_pred= \ + preme= subq= psnr mpeg_quant aic umv' \ + -- $cur ) ) + return 0 + ;; + -ssf) + COMPREPLY=( $( compgen -W 'lgb= cgb= ls= cs= chs= \ + cvs=' -- $cur ) ) + return 0 + ;; + -jpeg) + COMPREPLY=( $( compgen -W 'noprogressive progressive \ + nobaseline baseline optimize= \ + smooth= quality= outdir=' -- $cur ) ) + return 0 + ;; + -xvidopts) + COMPREPLY=( $( compgen -W 'dr2 nodr2' -- $cur ) ) + return 0 + ;; + -xvidencopts) + COMPREPLY=( $( compgen -W 'pass= bitrate= \ + fixed_quant= me_quality= 4mv \ + rc_reaction_delay_factor= \ + rc_averaging_period= rc_buffer= \ + quant_range= min_key_interval= \ + max_key_interval= mpeg_quant \ + mod_quant lumi_mask hintedme \ + hintfile debug keyframe_boost= \ + kfthreshold= kfreduction=' -- $cur ) ) + return 0 + ;; + -divx4opts) + COMPREPLY=( $( compgen -W 'br= key= deinterlace q= \ + min_quant= max_quant= rc_period= \ + rc_reaction_period= crispness= \ + rc_reaction_ratio= pass= vbrpass= \ + help' -- $cur ) ) + return 0 + ;; + -info) + COMPREPLY=( $( compgen -W 'name= artist= genre= \ + subject= copyright= srcform= \ + comment= help' -- $cur ) ) + return 0 + ;; + -lameopts) + COMPREPLY=( $( compgen -W 'vbr= abr cbr br= q= aq= \ + ratio= vol= mode= padding= fast \ + preset= help' -- $cur ) ) + return 0 + ;; + -rawaudio) + COMPREPLY=( $( compgen -W 'on channels= rate= \ + samplesize= format=' -- $cur ) ) + return 0 + ;; + -rawvideo) + COMPREPLY=( $( compgen -W 'on fps= sqcif qcif cif \ + 4cif pal ntsc w= h= y420 yv12 yuy2 \ + y8 format= size=' -- $cur ) ) + return 0 + ;; + -aop) + COMPREPLY=( $( compgen -W 'list= delay= format= fout= \ + volume= mul= softclip' -- $cur ) ) + return 0 + ;; + -dxr2) + COMPREPLY=( $( compgen -W 'ar-mode= iec958-encoded \ + iec958-decoded mute ucode= 75ire bw \ + color interlaced macrovision= norm= \ + square-pixel ccir601-pixel cr-left= \ + cr-right= cr-top= cr-bot= ck-rmin= \ + ck-gmin= ck-bmin= ck-rmax= ck-gmax= \ + ck-bmax= ck-r= ck-g= ck-b= \ + ignore-cache= ol-osd= olh-cor= \ + olw-cor= olx-cor= oly-cor= overlay \ + overlay-ratio= update-cache' -- $cur )) + return 0 + ;; + -tv) + COMPREPLY=( $( compgen -W 'on noaudio driver= device= \ + input= freq= outfmt= width= height= \ + buffersize= norm= channel= chanlist= \ + audiorate= forceaudio alsa amode= \ + forcechan= adevice= audioid= volume= \ + bass= treble= balance= fps= \ + channels= immediatemode=' -- $cur ) ) + return 0 + ;; + -mf) + COMPREPLY=( $( compgen -W 'on w= h= fps= type=' \ + -- $cur ) ) + return 0 + ;; + -cdda) + COMPREPLY=( $( compgen -W 'speed= paranoia= \ + generic-dev= sector-size= overlap= \ + toc-bias toc-offset= skip noskip' \ + -- $cur ) ) + return 0 + ;; + -input) + COMPREPLY=( $( compgen -W 'conf= ar-delay ar-rate \ + keylist cmdlist js-dev file' -- $cur ) ) + return 0 + ;; + -af) + COMPREPLY=( $( compgen -W 'resample resample= \ + channels channels= format format= \ + volume volume= delay delay= pan \ + pan= sub sub= surround surround=' \ + -- $cur ) ) + return 0 + ;; + -af-adv) + COMPREPLY=( $( compgen -W 'force= list=' -- $cur ) ) + return 0 + ;; + esac + + case "$cur" in + -*) + COMPREPLY=( $( compgen -W '-aid -alang -audio-demuxer \ + -audiofile -cdrom-device -cache -cdda \ + -channels -chapter -csslib -demuxer \ + -dvd -dvd-device -dvdangle -dvdauth \ + -dvdkey -dvdnav -forceidx -fps -frames \ + -hr-mp3-seek -idx -mc -mf -ni -nobps \ + -passwd -rawaudio -rtsp-stream-over-tcp\ + -skipopening -sb -srate -ss -tv -user \ + -vcd -vid -vivo -ifo -ffactor -font \ + -noautosub -nooverlapsub -sid -slang \ + -sub -subcc -subcp -sub-demuxer \ + -subdelay -subfont-autoscale \ + -subfont-blur -subfont-encoding \ + -subfont-osd-scale -subfont-outline \ + -subfont-text-scale -subfps -subfile \ + -subpos -unicode -utf8 -vobsub \ + -vobsubid -ac -afm -aspect -flip \ + -lavdopts -noaspect -nosound -pp -ssf \ + -stereo -sws -vc -vfm -vop -xvidopts\ + -xy -zoom -bandwidth -cuefile \ + -noextbased -rawvideo -overlapsub \ + -sub-bg-alpha -sub-bg-color -subalign \ + -subwidth -sub-no-text-pp -spualign \ + -spuaa -spugauss -pphelp -verbose -v \ + -noni -noidx -nohr-mp3-seek -extbased \ + -bps -oldpp -nozoom -noflip -nounicode \ + -noutf8' -- $cur ) ) + # add mplayer specific options + [[ "$cmd" == @(?(g)mplayer) ]] && COMPREPLY=( "${COMPREPLY[@]}" \ + $(compgen -W '-autoq -autosync -benchmark \ + -framedrop -h -help -hardframedrop \ + -identify -input -lircconf -loop \ + -nojoystick -nolirc -nortc -playlist \ + -quiet -really-quiet -rnd -sdp -skin \ + -slave -softsleep -speed -sstep \ + -use-stdin -dumpaudio -dumpfile \ + -dumpstream -dumpvideo -dumpmicrodvdsub\ + -dumpmpsub -dumpsrtsub -dumpjacosub \ + -dumpsami -dumpsub -osdlevel -af \ + -af-adv -ao -aofile -aop -delay -mixer \ + -nowaveheader -bpp -brightness \ + -contrast -display -double -dr -dxr2 \ + -fb -fbmode -fbmodeconfig -forcexv -fs \ + -geometry -hue -icelayer -jpeg \ + -monitor-dotclock -monitor-hfreq \ + -monitor-vfreq -monitoraspect \ + -nograbpointer -noslices -panscan \ + -rootwin -saturation -screenw -screenh \ + -stop-xscreensaver -vm -vo -vsync -wid \ + -xineramascreen -z -zrbw -zrcrop \ + -zrdev -zrfd -zrhelp -zrnorm -zrquality \ + -zrvdec -zrhdec -zrxdoff -zrydoff -y \ + -edl -edlout -enqueue -fixed-vo \ + -menu -menu-root -menu-cfg -shuffle \ + -format -aahelp -dfbopts -fstype \ + -guiwid -nokeepaspect -x --help \ + -aaosdcolor -aasubcolor -aadriver \ + -aaextended -aaeight' -- $cur) ) + # add mencoder specific options + [[ "$cmd" = mencoder ]] && COMPREPLY=( "${COMPREPLY[@]}" \ + $(compgen -W '-audio-density -audio-delay \ + -audio-preload -divx4opts -endpos \ + -ffourcc -include -info -lameopts \ + -lavcopts -noskip -o -oac -ofps -ovc \ + -passlogfile -skiplimit -vobsubout \ + -vobsuboutindex -vobsuboutid \ + -xvidencopts -of --verbose' -- $cur) ) + ;; + *) + _filedir '@(mp?(e)g|MP?(E)G|wm[av]|WM[AV]|avi|AVI|asf|ASF|vob|VOB|bin|BIN|dat|DAT|vcd|VCD|ps|PS|pes|PES|fli|FLI|flv|FLV|viv|VIV|rm?(j)|RM?(J)|ra?(m)|RA?(M)|yuv|YUV|mov|MOV|qt|QT|mp[34]|MP[34]|m4v|M4V|og[gm]|OG[GM]|wav|WAV|dump|DUMP|mk[av]|MK[AV]|m4a|M4A|aac|AAC|m2v|M2V|dv|DV|rmvb|RMVB|mid|MID|ts|TS|3gp|mpc|MPC|flac|FLAC|flv|FLV|divx|DIVX)' + ;; + esac + + return 0 +} +complete $filenames -F _mplayer mplayer mencoder gmplayer kplayer +} + +# KDE dcop completion +# +have dcop && +_dcop() +{ + local cur compstr + + COMPREPLY=() + cur=`_get_cword` + if [ -z $cur ]; then + compstr=${COMP_WORDS[*]} + else + compstr=$( command echo ${COMP_WORDS[*]} | sed "s/ $cur$//" ) + fi + COMPREPLY=( $( compgen -W '$( command $compstr | sed s/\(.*\)// )' -- $cur ) ) +} && +complete -F _dcop dcop + +# wvdial(1) completion +# +have wvdial && +_wvdial() +{ + local cur prev config i IFS=$'\t\n' + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + case $prev in + --config) + _filedir + return 0 + ;; + esac + + case $cur in + -*) + COMPREPLY=( $( compgen -W '--config --chat \ + --remotename --help --version --no-syslog' \ + -- $cur ) ) + ;; + *) + # start with global and personal config files + config="/etc/wvdial.conf"$'\t'"$HOME/.wvdialrc" + # replace with command line config file if present + for (( i=1; i < COMP_CWORD; i++ )); do + if [[ "${COMP_WORDS[i]}" == "--config" ]]; then + config=${COMP_WORDS[i+1]} + break + fi + done + # parse config files for sections and + # remove default section + COMPREPLY=( $( sed -ne \ + "s|^\[Dialer \($cur.*\)\]$|\1|p" \ + $config 2>/dev/null |grep -v '^Defaults$')) + # escape spaces + COMPREPLY=${COMPREPLY// /\\ } + ;; + esac + +} && +complete -F _wvdial wvdial + +# gpg(1) completion +# +have gpg && +_gpg() +{ + local cur prev + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + case "$prev" in + -@(s|-sign|-clearsign|-decrypt-files|-load-extension)) + _filedir + return 0 + ;; + --@(export|@(?(l|nr|nrl)sign|edit)-key)) + # return list of public keys + COMPREPLY=( $( compgen -W "$( gpg --list-keys 2>/dev/null | sed -ne 's@^pub.*/\([^ ]*\).*\(<\([^>]*\)>\).*$@\1 \3@p')" -- "$cur" )) + return 0 + ;; + -@(r|-recipient)) + COMPREPLY=( $( compgen -W "$( gpg --list-keys 2>/dev/null | sed -ne 's@^pub.*<\([^>]*\)>.*$@\1@p')" -- "$cur" )) + if [ -e ~/.gnupg/gpg.conf ]; then + COMPREPLY=( "${COMPREPLY[@]}" $( compgen -W "$( sed -ne 's@^[ \t]*group[ \t][ \t]*\([^=]*\).*$@\1@p' ~/.gnupg/gpg.conf )" -- "$cur") ) + fi + return 0 + ;; + esac + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-s -b -e -f -c -d -a -r -u -Z -o -v\ + -q -n -N $(gpg --dump-options)' -- $cur ) ) + fi + +} && +complete -F _gpg $default gpg + +# iconv(1) completion +# +have iconv && +_iconv() +{ + local cur prev + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + case "$prev" in + -@(f|t|-@(from|to)-code)) + COMPREPLY=( $( compgen -W \ + '$( iconv --list | sed -e "s@//@@;" )' -- "$cur" ) ) + return 0 + ;; + esac + + + if [[ "$cur" = -* ]]; then + COMPREPLY=( $( compgen -W '--from-code -f --to-code -t --list + --output -o --verbose' -- "$cur" ) ) + return 0 + fi +} && +complete -F _iconv $default iconv + +# dict(1) completion +# +{ have dict || have rdict; } && { +_dictdata() +{ + dict $host $port $1 2>/dev/null | sed -ne \ + 's/^['$'\t '']['$'\t '']*\([^'$'\t '']*\).*$/\1/p' +} + +_dict() +{ + local cur prev host port db dictfile + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + dictfile=/usr/share/dict/words + + for (( i=1; i < COMP_CWORD; i++ )); do + case "${COMP_WORDS[i]}" in + -@(h|--host)) + host=${COMP_WORDS[i+1]} + [ -n "$host" ] && host="-h $host" + i=$((++i)) + ;; + -@(p|-port)) + port=${COMP_WORDS[i+1]} + [ -n "$port" ] && port="-p $port" + i=$((++i)) + ;; + -@(d|-database)) + db=${COMP_WORDS[i+1]} + [ -n "$db" ] && host="-d $db" + i=$((++i)) + ;; + *) + ;; + esac + done + + if [[ "$cur" = -* ]]; then + COMPREPLY=( $( compgen -W '-h --host -p --port -d --database \ + -m --match -s --strategy -c --config -C \ + --nocorrect -D --dbs -S --strats -H \ + --serverhelp -i --info -I --serverinfo \ + -a --noauth -u --user -k --key -V --version \ + -L --license --help -v --verbose -r --raw \ + -P --pager --debug --html --pipesize --client' \ + -- "$cur" ) ) + return 0 + fi + + case "$prev" in + -@(d|-database|i|info)) + COMPREPLY=( $( compgen -W '$( _dictdata -D )' -- "$cur" ) ) + return 0 + ;; + -@(s|-strategy)) + COMPREPLY=( $( compgen -W '$( _dictdata -S )' -- "$cur" ) ) + return 0 + ;; + *) + ;; + esac + + [ -r $dictfile ] && \ + COMPREPLY=( $( compgen -W '$( cat $dictfile )' -- "$cur" ) ) +} +complete -F _dict $default dict rdict +} + +# cdrecord(1) completion +# +have cdrecord && +_cdrecord() +{ + local cur prev i generic_options track_options track_mode + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + # foo=bar style option + if [[ "$cur" == *=* ]]; then + prev=${cur/=*/} + cur=${cur/*=/} + case "$prev" in + @(text|cue)file) + _filedir + return 0 + ;; + blank) + COMPREPLY=( $( compgen -W 'help all fast \ + track unreserve trtail unclose session' \ + -- $cur ) ) + return 0 + ;; + driveropts) + COMPREPLY=( $( compgen -W 'burnfree noburnfree\ + varirec= audiomaster forcespeed noforcespeed\ + speedread nospeedread singlesession \ + nosinglesession hidecdr nohidecdr tattooinfo\ + tattoofile=' -- $cur ) ) + return 0 + ;; + esac + fi + + generic_options=(-version -v -V -d -silent -s -force -immed -dummy \ + -dao -raw -raw96r -raw96p -raw16 -multi -msinfo -toc \ + -atip -fix -nofix -waiti -load -lock -eject -format \ + -setdropts -checkdrive -prcap -inq -scanbus -reset \ + -abort -overburn -ignsize -useinfo -packet -noclose \ + -text debug= kdebug= kd= minbuf= speed= blank= fs= \ + dev= gracetime= timeout= driver= driveropts= \ + defpregap= pktsize= mcn= textfile= cuefile=) + track_options=(-audio -swab -data -mode2 -xa -xa1 -xa2 -xamix -cdi \ + -isosize -pad padsize= -nopad -shorttrack -noshorttrack\ + pregap= -preemp -nopreemp -copy -nocopy -scms tcsize= \ + isrc= index=) + # look if previous was either a file or a track option + track_mode=0 + if [ $COMP_CWORD -gt 1 ]; then + if [ -f "$prev" ]; then + track_mode=1 + else + for (( i=0; i < ${#track_options[@]}; i++ )); do + if [[ "${track_options[i]}" == "$prev" ]]; then + track_mode=1 + break + fi + done + fi + fi + + # files are always eligible completion + _filedir + # track options are always available + COMPREPLY=( "${COMPREPLY[@]}" $( compgen -W '${track_options[@]}' -- $cur ) ) + # general options are no more available after file or track option + if [ $track_mode -eq 0 ]; then + COMPREPLY=( "${COMPREPLY[@]}" \ + $( compgen -W '${generic_options[@]}' -- $cur ) ) + fi + +} && +complete -F _cdrecord $filenames cdrecord + +# mkisofs(8) completion +# +have mkisofs && +_mkisofs() +{ + local cur prev + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + case "$prev" in + -@(o|abstract|biblio|check-session|copyright|log-file|root-info|prep-boot|*-list)) + _filedir + return 0 + ;; + -*-charset) + COMPREPLY=( $( mkisofs -input-charset help 2>&1 | \ + tail +3 | grep "^$cur") ) + return 0 + ;; + -uid) + _uids + return 0 + ;; + -gid) + _gids + return 0 + ;; + esac + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-abstract -A -allow-lowercase \ + -allow-multidot -biblio -cache-inodes \ + -no-cache-inodes -b -eltorito-alt-boot -B -G \ + -hard-disk-boot -no-emul-boot -no-boot \ + -boot-load-seg -boot-load-size \ + -boot-info-table -C -c -check-oldname \ + -check-session -copyright -d -D -dir-mode \ + -dvd-video -f -file-mode -gid -gui \ + -graft-points -hide -hide-list -hidden \ + -hidden-list -hide-joliet -hide-joliet-list \ + -hide-joliet-trans-tbl -hide-rr-moved \ + -input-charset -output-charset -iso-level -J \ + -joliet-long -jcharset -l -L -log-file -m \ + -exclude-list -max-iso9660-filenames -M -N \ + -new-dir-mode -nobak -no-bak -force-rr -no-rr \ + -no-split-symlink-components \ + -no-split-symlink-fields -o -pad -no-pad \ + -path-list -P -p -print-size -quiet -R -r \ + -relaxed-filenames -sort -split-output \ + -stream-media-size -stream-file-name -sysid -T\ + -table-name -ucs-level -udf -uid \ + -use-fileversion -U -no-iso-translate -V \ + -volset -volset-size -volset-seqno -v -x -z \ + -hfs -apple -map -magic -hfs-creator \ + -hfs-type -probe -no-desktop -mac-name \ + -boot-hfs-file -part -auto -cluster-size \ + -hide-hfs -hide-hfs-list -hfs-volid \ + -icon-position -root-info -prep-boot \ + -input-hfs-charset -output-hfs-charset \ + -hfs-unlock -hfs-bless -hfs-parms --cap \ + --netatalk --double --ethershare --ushare \ + --exchange --sgi --xinet --macbin --single \ + --dave --sfm --osx-double --osx-hfs' -- $cur )) + else + _filedir + fi + +} && +complete -F _mkisofs $filenames mkisofs + +# mc(1) completion +# +have mc && +_mc() +{ + local cur prev + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + # -name value style option + case "$prev" in + -@(e|v|l|P)) + _filedir + return 0 + ;; + esac + + # --name=value style option + if [[ "$cur" == *=* ]]; then + prev=${cur/=*/} + cur=${cur/*=/} + case "$prev" in + --@(edit|view|ftplog|printwd)) + _filedir + return 0 + ;; + esac + fi + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-a --stickchars -b --nocolor -c \ + --color -C --colors= -d --nomouse -e --edit= -f \ + --datadir -k --resetsoft -l --ftplog= -P --printwd= \ + -s --slow -t --termcap -u --nosubshell -U --subshell \ + -v --view= -V --version -x --xterm -h --help' -- $cur ) ) + else + _filedir -d + fi +} && +complete -F _mc $filenames mc + +# yum(8) completion +# +have yum && { +_yum() +{ + local cur prev special + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + for (( i=0; i < ${#COMP_WORDS[@]}-1; i++ )); do + if [[ ${COMP_WORDS[i]} == @(install|update|upgrade|remove|erase|deplist) ]]; then + special=${COMP_WORDS[i]} + fi + done + + if [ -n "$special" ]; then + case $special in + install|deplist) + COMPREPLY=( $( compgen -W '$( yum -C list | cut -d" " -f1 )' -- $cur ) ) + return 0 + ;; + *) + _rpm_installed_packages + return 0 + ;; + esac + fi + + case $cur in + --*) + COMPREPLY=( $( compgen -W '--installroot --version --help --enablerepo --disablerepo --exclude --obsoletes --noplugins' -- $cur ) ) + return 0 + ;; + -*) + COMPREPLY=( $( compgen -W '-c -e -d -y -t -R -C -h' -- $cur ) ) + return 0 + ;; + esac + + case $prev in + list) + COMPREPLY=( $( compgen -W 'all available updates installed extras obsoletes recent' -- $cur ) ) + ;; + clean) + COMPREPLY=( $( compgen -W 'packages headers metadata cache dbcache all' -- $cur ) ) + ;; + localinstall) + _filedir rpm + ;; + -c) + _filedir + ;; + --installroot) + _filedir -d + ;; + *) + COMPREPLY=( $( compgen -W 'install update check-update upgrade remove list \ + search info provides clean groupinstall groupupdate \ + grouplist deplist erase groupinfo groupremove \ + localinstall localupdate makecache resolvedep \ + shell whatprovides' -- $cur ) ) + ;; + esac +} +complete -F _yum $filenames yum + +# yum-arch(8) completion +# +_yum_arch() +{ + local cur + COMPREPLY=() + cur=`_get_cword` + + case "$cur" in + -*) + COMPREPLY=( $( compgen -W '-d -v -vv -n -c -z -s -l -q' -- $cur ) ) + ;; + *) + _filedir -d + ;; + esac + + return 0 + +} +complete -F _yum_arch $filenames yum-arch +} + +# ImageMagick completion +# +have convert && { +_ImageMagick() +{ + local prev + prev=${COMP_WORDS[COMP_CWORD-1]} + + case "$prev" in + -channel) + COMPREPLY=( $( compgen -W 'Red Green Blue Opacity \ + Matte Cyan Magenta Yellow Black' -- $cur ) ) + return 0 + ;; + -colormap) + COMPREPLY=( $( compgen -W 'shared private' -- $cur ) ) + return 0 + ;; + -colorspace) + COMPREPLY=( $( compgen -W 'GRAY OHTA RGB Transparent \ + XYZ YCbCr YIQ YPbPr YUV CMYK' -- $cur ) ) + return 0 + ;; + -compose) + COMPREPLY=( $( compgen -W 'Over In Out Atop Xor Plus \ + Minus Add Subtract Difference Multiply Bumpmap\ + Copy CopyRed CopyGreen CopyBlue CopyOpacity' \ + -- $cur ) ) + return 0 + ;; + -compress) + COMPREPLY=( $( compgen -W 'None BZip Fax Group4 JPEG \ + Lossless LZW RLE Zip' -- $cur ) ) + return 0 + ;; + -dispose) + COMPREPLY=( $( compgen -W 'Undefined None Background \ + Previous' -- $cur ) ) + return 0 + ;; + -encoding) + COMPREPLY=( $( compgen -W 'AdobeCustom AdobeExpert \ + AdobeStandard AppleRoman BIG5 GB2312 Latin2 \ + None SJIScode Symbol Unicode Wansung' -- $cur)) + return 0 + ;; + -endian) + COMPREPLY=( $( compgen -W 'MSB LSB' -- $cur ) ) + return 0 + ;; + -filter) + COMPREPLY=( $( compgen -W 'Point Box Triangle Hermite \ + Hanning Hamming Blackman Gaussian Quadratic \ + Cubic Catrom Mitchell Lanczos Bessel Sinc' \ + -- $cur ) ) + return 0 + ;; + -format) + COMPREPLY=( $( convert -list format | \ + awk '/ [r-][w-][+-] / {print $1}' | \ + tr -d '*' | tr [:upper:] [:lower:] | \ + grep "^$cur" ) ) + return 0 + ;; + -gravity) + COMPREPLY=( $( compgen -W 'Northwest North NorthEast \ + West Center East SouthWest South SouthEast' \ + -- $cur ) ) + return 0 + ;; + -intent) + COMPREPLY=( $( compgen -W 'Absolute Perceptual \ + Relative Saturation' -- $cur ) ) + return 0 + ;; + -interlace) + COMPREPLY=( $( compgen -W 'None Line Plane Partition' \ + -- $cur ) ) + return 0 + ;; + -limit) + COMPREPLY=( $( compgen -W 'Disk File Map Memory' \ + -- $cur ) ) + return 0 + ;; + -list) + COMPREPLY=( $( compgen -W 'Delegate Format Magic \ + Module Resource Type' -- $cur ) ) + return 0 + ;; + -map) + COMPREPLY=( $( compgen -W 'best default gray red \ + green blue' -- $cur ) ) + _filedir + return 0 + ;; + -noise) + COMPREPLY=( $( compgen -W 'Uniform Gaussian \ + Multiplicative \ + Impulse Laplacian Poisson' -- $cur ) ) + return 0 + ;; + -preview) + COMPREPLY=( $( compgen -W 'Rotate Shear Roll Hue \ + Saturation Brightness Gamma Spiff \ + Dull Grayscale Quantize Despeckle \ + ReduceNoise AddNoise Sharpen Blur \ + Treshold EdgeDetect Spread Shade \ + Raise Segment Solarize Swirl Implode \ + Wave OilPaint CharcoalDrawing JPEG' \ + -- $cur ) ) + return 0 + ;; + -@(mask|profile|texture|tile|write)) + _filedir + return 0 + ;; + -type) + COMPREPLY=( $( compgen -W 'Bilevel Grayscale Palette \ + PaletteMatte TrueColor TrueColorMatte \ + ColorSeparation ColorSeparationlMatte \ + Optimize' -- $cur ) ) + return 0 + ;; + -units) + COMPREPLY=( $( compgen -W 'Undefined PixelsPerInch \ + PixelsPerCentimeter' -- $cur ) ) + return 0 + ;; + -virtual-pixel) + COMPREPLY=( $( compgen -W 'Constant Edge mirror tile' \ + -- $cur ) ) + return 0 + ;; + -visual) + COMPREPLY=( $( compgen -W 'StaticGray GrayScale \ + StaticColor PseudoColor TrueColor \ + DirectColor defaut visualid' -- $cur )) + return 0 + ;; + esac +} + +_convert() +{ + local cur + + COMPREPLY=() + cur=`_get_cword` + + _ImageMagick + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-adjoin -affine -antialias -append \ + -authenticate -average -background -black-threshold \ + -blue-primary -blur -border -bordercolor -channel \ + -charcoal -chop -clip -coalesce -colorize -colors \ + -colorspace -comment -compress -contrast -convolve \ + -crop -cycle -debug -deconstruct -delay -density \ + -depth -despeckle -display -dispose -dither -draw \ + -edge -emboss -encoding -endian -enhance -equalize \ + -extract -fill -filter -flatten -flip -flop -font \ + -frame -fuzz -gamma -gaussian -geometry \ + -green-primary -gravity -help -implode -intent \ + -interlace -label -lat -level -limit -list -log -loop \ + -map -mask -matte -median -modulate -monochrome \ + -morph -mosaic -negate -noop -noise -normalize \ + -opaque -ordered-dither -page -paint -ping -pointsize \ + -preview -profile -quality -raise -random-threshold \ + -region -raise -red-primary -render -resize -resample \ + -roll -rotate -sample -sampling-factor -scale -scene \ + -seed -segment -shade -sharpen -shave -shear -size \ + -solarize -spread -stroke -strokewidth -swirl \ + -texture -threshold -thumbnail -tile -transform \ + -transparent -treedepth -trim -type -undercolor \ + -units -unsharp -verbose -version -view \ + -virtual-pixel -wave -white-point -white-threshold \ + -write' -- $cur ) ) + elif [[ "$cur" == +* ]]; then + COMPREPLY=( $( compgen -W '+adjoin +append +compress \ + +contrast +debug +dither +endian +gamma +label +map \ + +mask +matte +negate +noise +page +raise +render \ + +write' -- $cur ) ) + else + _filedir + fi +} +complete -F _convert $filenames convert + +_mogrify() +{ + local cur + + COMPREPLY=() + cur=`_get_cword` + + _ImageMagick + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-affine -antialias -authenticate \ + -background -black-threshold -blue-primary -blur \ + -border -bordercolor -channel -charcoal -chop \ + -colorize -colors -colorspace -comment -compress \ + -contrast -convolve -crop -cycle -debug -delay \ + -density -depth -despeckle -display -dispose -dither \ + -draw -edge -emboss -encoding -endian -enhance \ + -equalize -extract -fill -filter -flip -flop -font \ + -format -frame -fuzz -gamma -gaussian -geometry \ + -green-primary -implode -interlace -help -label -lat \ + -level -limit -list -log -loop -map -mask -matte \ + -median -modulate -monochrome -negate -noop \ + -normalize -opaque -page -paint -fill -ordered-dither \ + -pointsize -profile -quality -raise -random-threshold \ + -red-primary -region -resample -resize -roll -rotate \ + -sample -sampling-factor -scale -scene -seed -segment \ + -shade -sharpen -shear -size -solarize -spread \ + -stroke -strokewidth -swirl -texture -threshold \ + -thumbnail -tile -transform -transparent -treedepth \ + -trim -type -undercolor -units -unsharp -verbose \ + -version -view -virtual-pixel -wave -white-point \ + -white-threshold' -- $cur ) ) + elif [[ "$cur" == +* ]]; then + COMPREPLY=( $( compgen -W '+compress +contrast +debug +dither \ + +endian +gamma +label +map +mask +matte +negate +page \ + +raise' -- $cur ) ) + else + _filedir + fi +} +complete -F _mogrify $filenames mogrify + +_display() +{ + local cur + + COMPREPLY=() + cur=`_get_cword` + + _ImageMagick + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-authenticate -backdrop -border \ + -colormap -colors -colorspace -comment -compress \ + -contrast -crop -debug -delay -density -depth \ + -despeckle -display -dispose -dither -edge -endian \ + -enhance -extract -filter -flip -flop -frame -gamma \ + -geometry -help -immutable -interlace -label -limit \ + -log -map -matte -monochrome -negate -noop -page \ + -quality -raise -remote -roll -rotate -sample \ + -sampling-factor -scene -segment -sharpen -size \ + -texture -treedepth -trim -update -verbose -version \ + -virtual-pixel -window -window_group -write' -- $cur)) + elif [[ "$cur" == +* ]]; then + COMPREPLY=( $( compgen -W '+compress +contrast +debug +dither \ + +endian +gamma +label +map +matte +negate +page \ + +raise +write' -- $cur ) ) + else + _filedir + fi +} +complete -F _display $filenames display + +_animate() +{ + local cur + + COMPREPLY=() + cur=`_get_cword` + + _ImageMagick + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-authenticate -backdrop -colormap \ + -colors -colorspace -crop -debug -delay -density \ + -depth -display -dither -extract -gamma -geometry \ + -help -interlace -limit -log -matte -map -monochrome \ + -noop -pause -remote -rotate -sampling-factor -scene \ + -size -treedepth -trim -verbose -version -visual \ + -virtual-pixel -window' -- $cur ) ) + elif [[ "$cur" == +* ]]; then + COMPREPLY=( $( compgen -W '+debug +dither +gamma +map +matte' -- $cur ) ) + else + _filedir + fi +} +complete -F _animate $filenames animate + +_identify() +{ + local cur + + COMPREPLY=() + cur=`_get_cword` + + _ImageMagick + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-authenticate -debug -density \ + -depth -extract -format -help -interlace -limit -list \ + -log -size -sampling-factor -verbose -version \ + -virtual-pixel' -- $cur ) ) + elif [[ "$cur" == +* ]]; then + COMPREPLY=( $( compgen -W '+debug ' -- $cur ) ) + else + _filedir + fi +} +complete -F _identify $filenames identify + +_montage() +{ + local cur + + COMPREPLY=() + cur=`_get_cword` + + _ImageMagick + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-adjoin -affine -authenticate \ + -blue-primary -blur -colors -colorspace -comment \ + -compose -compress -crop -debug -density -depth \ + -display -dispose -dither -draw -encoding -endian \ + -extract -fill -filter -flip -flop -frame -gamma \ + -geometry -gravity -green-primary -interlace -help \ + -label -limit -log -matte -mode -monochrome -noop \ + -page -pointsize -quality -red-primary -resize \ + -rotate -sampling-factor -scene -shadow -size \ + -stroke -texture -thumbnail -tile -transform \ + -transparent -treedepth -trim -type -verbose \ + -version -virtual-pixel -white-point' -- $cur ) ) + elif [[ "$cur" == +* ]]; then + COMPREPLY=( $( compgen -W '+adjoin +compress +debug +dither \ + +endian +gamma +label +matte +page' -- $cur ) ) + else + _filedir + fi +} +complete -F _montage $filenames montage + +_composite() +{ + local cur + + COMPREPLY=() + cur=`_get_cword` + + _ImageMagick + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-affine -authenticate \ + -blue-primary -colors -colorspace -comment -compose \ + -compress -debug -density -depth -displace -display \ + -dispose -dissolve -dither -encoding -endian -extract \ + -filter -font -geometry -gravity -green-primary -help \ + -interlace -label -limit -log -matte -monochrome \ + -negate -page -profile -quality -red-primary -rotate \ + -resize -sampling-factor -scene -sharpen -size \ + -stegano -stereo -thumbnail -tile -transform \ + -treedepth -type -units -unsharp -verbose -version \ + -virtual-pixel -watermark -white-point -write' \ + -- $cur ) ) + elif [[ "$cur" == +* ]]; then + COMPREPLY=( $( compgen -W '+compress +debug +dither +endian +label \ + +matte +negate +page +write' -- $cur ) ) + else + _filedir + fi +} +complete -F _composite $filenames composite +} + +# dd(1) completion +# +have dd && +_dd() +{ + local cur + + COMPREPLY=() + cur=`_get_cword` + + case "$cur" in + if=*|of=*) + cur=${cur#*=} + _filedir + return 0 + ;; + conv=*) + cur=${cur#*=} + COMPREPLY=( $( compgen -W 'ascii ebcdic ibm block unblock \ + lcase notrunc ucase swab noerror sync' \ + -- $cur ) ) + return 0 + ;; + esac + + _expand || return 0 + + COMPREPLY=( $( compgen -W '--help --version' -- $cur ) \ + $( compgen -W 'bs cbs conv count ibs if obs of seek skip'\ + -S '=' -- $cur ) ) +} && +complete -F _dd $nospace $filenames dd + +# CUPS cancel(1) completion +# +have cancel && +_cancel() +{ + local cur + + COMPREPLY=() + cur=`_get_cword` + + COMPREPLY=( $( lpstat | cut -d' ' -f1 | grep "^$cur" ) ) +} && +complete -F _cancel $filenames cancel + +# aspell(1) completion +# +have aspell && { +_aspell_dictionary() +{ + local datadir + datadir=/usr/lib/aspell + COMPREPLY=( $( command ls $datadir/*.@(multi|alias) ) ) + COMPREPLY=( ${COMPREPLY[@]%.@(multi|alias)} ) + COMPREPLY=( $( compgen -W '${COMPREPLY[@]#$datadir/}' -- $cur ) ) +} + +_aspell() +{ + local cur prev + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + # --name value style option + case "$prev" in + @(-c|-p|check)) + _filedir + return 0 + ;; + @(dump|create|merge)) + COMPREPLY=( $( compgen -W 'master personal repl' -- $cur ) ) + return 0 + ;; + -d) + _aspell_dictionary + return 0 + ;; + esac + + # --name=value style option + if [[ "$cur" == *=* ]]; then + prev=${cur/=*/} + cur=${cur/*=/} + case "$prev" in + --@(conf|personal|repl|per-conf)) + _filedir + return 0 + ;; + --@(conf-dir|data-dir|dict-dir|home-dir|local-data-dir|prefix)) + _filedir -d + return 0 + ;; + --master) + _aspell_dictionary + return 0 + ;; + --mode) + COMPREPLY=( $( compgen -W 'none url email sgml tex' -- $cur ) ) + return 0 + ;; + --sug-mode) + COMPREPLY=( $( compgen -W 'ultra fast normal bad-speller' -- $cur ) ) + return 0 + ;; + --keymapping) + COMPREPLY=( $( compgen -W 'aspell ispell' -- $cur ) ) + return 0 + ;; + esac + fi + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '--conf= --conf-dir= --data-dir= --dict-dir= \ + --encoding= --add-filter= --rem-filter= --mode= -e \ + -H -t --add-extra-dicts= --rem-extra-dicts= \ + --home-dir= -W --ignore= --ignore-accents \ + --dont-ignore-accents --ignore-case --dont-ignore-case \ + --ignore-repl --dont-ignore-repl --jargon= --keyboard= \ + --lang= --language-tag= --local-data-dir= -d --master= \ + --module= --add-module-search-order= \ + --rem-module-search-order= --per-conf= -p --personal= \ + --prefix= --repl= -C -B --run-together --dont-run-together \ + --run-together-limit= --run-together-min= --save-repl \ + --dont-save-repl --set-prefix --dont-set-prefix --size= \ + --spelling= --strip-accents --dont-strip-accents \ + --sug-mode= --add-word-list-path= --rem-word-list-path= \ + -b -x --backup -b|-x --dont-backup --reverse --dont-reverse \ + --time --dont-time --keymapping= --add-email-quote= \ + --rem-email-quote= --email-margin= --add-tex-command= \ + --rem-tex-command= --tex-check-comments \ + --dont-tex-check-comments --add-tex-extension= \ + --rem-tex-extension= --add-sgml-check= --rem-sgml-check= \ + --add-sgml-extension= --rem-sgml-extension=' -- $cur ) ) + else + COMPREPLY=( $( compgen -W '-? help -c check -a pipe -l list \ + config config soundslike filter -v version dump \ + create merge' -- $cur ) ) + fi + +} +complete -F _aspell $filenames aspell +} + +# xmms(1) completion +# +have xmms && +_xmms() +{ + local cur + + COMPREPLY=() + cur=`_get_cword` + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-h --help -r --rew -p --play \ + -u --pause -s --stop -t --play-pause -f --fwd -e \ + --enqueue -m --show-main-window -i --sm-client-id \ + -v --version' -- $cur ) ) + else + _filedir '@(mp[23]|MP[23]|ogg|OGG|wav|WAV|pls|m3u|xm|mod|s[3t]m|it|mtm|ult|flac)' + + fi + +} && +complete -F _xmms $filenames xmms + +# info(1) completion +# +have info && +_info() +{ + local cur infopath UNAME + + COMPREPLY=() + cur=`_get_cword` + + _expand || return 0 + + # default completion if parameter contains / + if [[ "$cur" == */* ]]; then + _filedir + return 0 + fi + + infopath='/usr/share/info' + + if [ "${INFOPATH: -1:1}" == ':' ]; then + infopath=${INFOPATH}${infopath} + elif [ ${INFOPATH:+set} ]; then + infopath=$INFOPATH + fi + + infopath=$infopath: + if [ -n "$cur" ]; then + infopath="${infopath//://$cur* }" + else + infopath="${infopath//:// }" + fi + + # redirect stderr for when path doesn't exist + COMPREPLY=( $( eval command ls "$infopath" 2>/dev/null ) ) + # weed out directory path names and paths to info pages + COMPREPLY=( ${COMPREPLY[@]##*/?(:)} ) + # weed out info dir file + for (( i=0 ; i < ${#COMPREPLY[@]} ; ++i )); do + if [ "${COMPREPLY[$i]}" == 'dir' ]; then + unset COMPREPLY[$i]; + fi; + done + # strip suffix from info pages + COMPREPLY=( ${COMPREPLY[@]%.@(gz|bz2)} ) + COMPREPLY=( $( compgen -W '${COMPREPLY[@]%.*}' -- "${cur//\\\\/}" ) ) + + return 0 +} && +complete -F _info $filenames info + +# dhclient(1) completion +# +have dhclient && _dhclient() +{ + local cur prev + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + case "$prev" in + -@(cf|lf|pf|sf)) + _filedir + return 0 + ;; + -s) + _known_hosts + return 0 + ;; + esac + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-p -d -q -1 -r -lf -pf \ + -cf -sf -s -g -n -nw -w' -- $cur ) ) + else + _available_interfaces + fi +} && +complete -F _dhclient dhclient + +# lvm(8) completion +# +have lvm && { +_volumegroups() +{ + COMPREPLY=( $(compgen -W "$( vgscan 2>/dev/null | \ + sed -n -e 's|.*Found.*"\(.*\)".*$|\1|p' )" -- $cur ) ) +} + +_physicalvolumes() +{ + COMPREPLY=( $(compgen -W "$( pvscan 2>/dev/null | \ + sed -n -e 's|^.*PV \(.*\) VG.*$|\1|p' )" -- $cur ) ) +} + +_logicalvolumes() +{ + COMPREPLY=( $(compgen -W "$( lvscan 2>/dev/null | \ + sed -n -e "s|^.*'\(.*\)'.*$|\1|p" )" -- $cur ) ) +} + +_units() +{ + COMPREPLY=( $( compgen -W 'h s b k m g t H K M G T' -- $cur ) ) +} + +_sizes() +{ + COMPREPLY=( $( compgen -W 'k K m M g G t T' -- $cur ) ) +} + +_args() +{ + args=0 + if [[ "${COMP_WORDS[0]}" == lvm ]]; then + offset=2 + else + offset=1 + fi + for (( i=$offset; i < COMP_CWORD; i++ )); do + if [[ "${COMP_WORDS[i]}" != -* ]]; then + args=$(($args + 1)) + fi + done +} + +_lvmdiskscan() +{ + local cur + + COMPREPLY=() + cur=`_get_cword` + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-d --debug -h -? --help -l \ + --lvmpartition -v --verbose --version' -- $cur ) ) + fi +} +complete -F _lvmdiskscan lvmdiskscan + +_pvscan() +{ + local cur + + COMPREPLY=() + cur=`_get_cword` + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-d --debug -e \ + --exported -n --novolumegroup -h -? \ + --help --ignorelockingfailure -P \ + --partial -s --short -u --uuid -v \ + --verbose --version' -- $cur ) ) + fi +} +complete -F _pvscan pvscan + +_pvs() +{ + local cur prev + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + case "$prev" in + -@(o|O|-options|-sort)) + COMPREPLY=( $( compgen -W 'pv_fmt pv_uuid \ + pv_size pv_free pv_used pv_name \ + pv_attr pv_pe_count \ + pv_pe_alloc_count' -- $cur ) ) + return 0 + ;; + --units) + _units + return 0 + ;; + esac + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '--aligned -a --all -d --debug \ + -h -? --help --ignorelockingfailure --noheadings \ + --nosuffix -o --options -O --sort \ + --separator --unbuffered --units \ + -v --verbose --version' -- $cur ) ) + else + _physicalvolumes + fi +} +complete -F _pvs pvs + +_pvdisplay() +{ + local cur prev + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + case "$prev" in + --units) + _units + return 0 + ;; + esac + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-c --colon -C --columns --units \ + -v --verbose -d --debug -h --help --version' -- $cur ) ) + else + _physicalvolumes + fi +} +complete -F _pvdisplay pvdisplay + +_pvchange() +{ + local cur prev + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + case "$prev" in + -@(A|x|-autobackup|--allocatable)) + COMPREPLY=( $( compgen -W 'y n' -- $cur ) ) + return 0 + ;; + esac + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-a --all -A --autobackup \ + -d --debug -h --help -t --test -u --uuid -x \ + --allocatable -v --verbose --addtag --deltag \ + --version' -- $cur ) ) + else + _physicalvolumes + fi +} +complete -F _pvchange pvchange + +_pvcreate() +{ + local cur prev + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + case "$prev" in + --restorefile) + _filedir + return 0 + ;; + -@(M|-metadatatype)) + COMPREPLY=( $( compgen -W '1 2' -- $cur ) ) + return 0 + ;; + --metadatacopies) + COMPREPLY=( $( compgen -W '0 1 2' -- $cur ) ) + return 0 + ;; + --@(metadatasize|setphysicalvolumesize)) + _sizes + return 0 + ;; + esac + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '--restorefile -d --debug -f \ + --force -h -? --help --labelsector -M --metadatatype \ + --metadatacopies --metadatasize \ + --setphysicalvolumesize -t --test -u --uuid uuid -v \ + --verbose -y --yes --version' -- $cur ) ) + else + _physicalvolumes + fi +} +complete -F _pvcreate pvcreate + +_pvmove() +{ + local cur prev + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + case "$prev" in + -@(A|-autobackup)) + COMPREPLY=( $( compgen -W 'y n' -- $cur ) ) + return 0 + ;; + -@(n|-name)) + _logicalvolumes + return 0 + esac + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '--abort -A --autobackup \ + -b --background -d --debug -f --force -h -? \ + --help -i --interval -t --test -v --verbose \ + --version -n --name' -- $cur ) ) + else + _physicalvolumes + fi +} +complete -F _pvmove pvmove + +_pvremove() +{ + local cur + + COMPREPLY=() + cur=`_get_cword` + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-d --debug -f --force -h -? \ + --help -y --yes -t --test -v --verbose \ + --version' -- $cur ) ) + else + _physicalvolumes + fi +} +complete -F _pvremove pvremove + +_vgscan() +{ + local cur + + COMPREPLY=() + cur=`_get_cword` + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-d --debug -h --help \ + --ignorelockingfailure --mknodes -P \ + --partial -v --verbose --version' -- $cur ) ) + fi +} +complete -F _vgscan vgscan + +_vgs() +{ + local cur prev + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + case "$prev" in + -@(o|O|-options|-sort)) + COMPREPLY=( $( compgen -W 'vg_fmt vg_uuid vg_name \ + vg_attr vg_size vg_free vg_sysid \ + vg_extent_size vg_extent_count vg_free_count \ + max_lv max_pv pv_count lv_count snap_count \ + vg_seqno' -- $cur ) ) + return 0 + ;; + --units) + _units + return 0 + ;; + esac + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '--aligned -d --debug \ + -h --help --ignorelockingfailure --noheadings \ + --nosuffix -o --options -O --sort -P --partial \ + --separator --unbuffered --units \ + -v --verbose --version' -- $cur ) ) + else + _volumegroups + fi +} +complete -F _vgs vgs + +_vgdisplay() +{ + local cur prev + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + case "$prev" in + --units) + _units + return 0 + ;; + esac + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-c --colon -C --columns --units \ + -P --partial -A --activevolumegroups -v --verbose \ + -d --debug -h --help --version' -- $cur ) ) + else + _volumegroups + fi +} +complete -F _vgdisplay vgdisplay + +_vgchange() +{ + local cur prev + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + case "$prev" in + -@(a|A|x|-available|-autobackup|-resizeable)) + COMPREPLY=( $( compgen -W 'y n' -- $cur ) ) + return 0 + ;; + esac + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-A --autobackup --alloc -P \ + --partial -d --debug -h --help --ignorelockingfailure \ + -t --test -u --uuid -v --verbose --version -a \ + --available -x --resizeable -l --logicalvolume \ + --addtag --deltag' -- $cur ) ) + else + _volumegroups + fi +} +complete -F _vgchange vgchange + +_vgcreate() +{ + local cur prev + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + case "$prev" in + -@(A|-autobackup)) + COMPREPLY=( $( compgen -W 'y n' -- $cur ) ) + return 0 + ;; + -@(M|-metadatatype)) + COMPREPLY=( $( compgen -W '1 2' -- $cur ) ) + return 0 + ;; + -@(s|-physicalextentsize)) + _sizes + return 0 + ;; + esac + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-A --autobackup --addtag \ + --alloc -d --debug -h --help -l --maxlogicalvolumes \ + -M --metadatatype -p --maxphysicalvolumes -s \ + --physicalextentsize -t --test -v --verbose \ + --version' -- $cur ) ) + else + _args + if [ $args -eq 0 ]; then + _volumegroups + else + _physicalvolumes + fi + fi +} +complete -F _vgcreate vgcreate + +_vgremove() +{ + local cur + + COMPREPLY=() + cur=`_get_cword` + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-d --debug -h --help -t --test \ + -v --verbose --version' -- $cur ) ) + else + _volumegroups + fi +} +complete -F _vgremove vgremove + +_vgrename() +{ + local cur prev + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + case "$prev" in + -@(A|-autobackup)) + COMPREPLY=( $( compgen -W 'y n' -- $cur ) ) + return 0 + ;; + esac + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-A --autobackup -d --debug -h \ + -? --help -t --test -v --verbose --version' -- $cur ) ) + else + _volumegroups + fi +} +complete -F _vgrename vgrename + +_vgreduce() +{ + local cur prev + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + case "$prev" in + -@(A|-autobackup)) + COMPREPLY=( $( compgen -W 'y n' -- $cur ) ) + return 0 + ;; + esac + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-a --all -A --autobackup -d \ + --debug -h --help --removemissing -t --test -v \ + --verbose --version' -- $cur ) ) + + else + _args + if [ $args -eq 0 ]; then + _volumegroups + else + _physicalvolumes + fi + fi +} +complete -F _vgreduce vgreduce + +_vgextend() +{ + local cur prev + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + case "$prev" in + -@(A|-autobackup)) + COMPREPLY=( $( compgen -W 'y n' -- $cur ) ) + return 0 + ;; + -@(L|-size)) + _sizes + return 0 + ;; + esac + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-A --autobackup -d --debug -h \ + -? --help -t --test -v --verbose --version' -- $cur ) ) + else + _args + if [ $args -eq 0 ]; then + _volumegroups + else + _physicalvolumes + fi + fi +} +complete -F _vgextend vgextend + +_vgport() +{ + local cur prev + + COMPREPLY=() + cur=`_get_cword` + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-a --all -d --debug -h \ + -? --help -v --verbose --version' -- $cur ) ) + else + _volumegroups + fi +} +complete -F _vgport vgimport vgexport + +_vgck() +{ + local cur prev + + COMPREPLY=() + cur=`_get_cword` + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-d --debug -h \ + -? --help -v --verbose --version' -- $cur ) ) + else + _volumegroups + fi +} +complete -F _vgck vgck + +_vgconvert() +{ + local cur prev + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + case "$prev" in + -@(M|-metadatatype)) + COMPREPLY=( $( compgen -W '1 2' -- $cur ) ) + return 0 + ;; + --metadatacopies) + COMPREPLY=( $( compgen -W '0 1 2' -- $cur ) ) + return 0 + ;; + --metadatasize) + _sizes + return 0 + ;; + esac + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-d --debug -h --help --labelsector \ + -M --metadatatype --metadatacopies --metadatasize \ + -t --test -v --verbose --version' -- $cur ) ) + else + _volumegroups + fi +} +complete -F _vgconvert vgconvert + +_vgcfgbackup() +{ + local cur prev + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + case "$prev" in + -@(f|-file)) + _filedir + return 0 + ;; + esac + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-d --debug -f --file -h --help \ + --ignorelockingfailure -P --partial -v --verbose \ + --version' -- $cur ) ) + else + _volumegroups + fi +} +complete -F _vgcfgbackup vgcfgbackup + +_vgcfgrestore() +{ + local cur prev + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + case "$prev" in + -@(f|-file)) + _filedir + return 0 + ;; + -@(M|-metadatatype)) + COMPREPLY=( $( compgen -W '1 2' -- $cur ) ) + return 0 + ;; + -@(n|-name)) + _volumegroups + return 0 + ;; + esac + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-d --debug -f --file -l --list \ + -h --help -M --Metadatatype -n --name -t --test \ + -v --verbose --version' -- $cur ) ) + else + _volumegroups + fi +} +complete -F _vgcfgrestore vgcfgrestore + +_vgmerge() +{ + local cur prev + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + case "$prev" in + -@(A|-autobackup)) + COMPREPLY=( $( compgen -W 'y n' -- $cur ) ) + return 0 + ;; + esac + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-A --autobackup -d --debug \ + -h --help -l --list -t --test -v --verbose \ + --version' -- $cur ) ) + else + _volumegroups + fi +} +complete -F _vgmerge vgmerge + +_vgsplit() +{ + local cur prev + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + case "$prev" in + -@(A|-autobackup)) + COMPREPLY=( $( compgen -W 'y n' -- $cur ) ) + return 0 + ;; + -@(M|-metadatatype)) + COMPREPLY=( $( compgen -W '1 2' -- $cur ) ) + return 0 + ;; + esac + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-A --autobackup -d --debug \ + -h --help -l --list -M --metadatatype -t --test \ + -v --verbose --version' -- $cur ) ) + else + _args + if [ $args -eq 0 -o $args -eq 1 ]; then + _volumegroups + else + _physicalvolumes + fi + fi +} +complete -F _vgsplit vgsplit + +_vgmknodes() +{ + local cur + + COMPREPLY=() + cur=`_get_cword` + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-d --debug -h --help -v --verbose \ + --version' -- $cur ) ) + else + _volumegroups + fi +} +complete -F _vgmknodes vgmknodes + +_lvscan() +{ + local cur + + COMPREPLY=() + cur=`_get_cword` + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-b --blockdevice -d --debug \ + -h -? --help --ignorelockingfailure -P \ + --partial -v --verbose --version' -- $cur ) ) + fi +} +complete -F _lvscan lvscan + +_lvs() +{ + local cur prev + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + case "$prev" in + -@(o|O|-options|-sort)) + COMPREPLY=( $( compgen -W 'lv_uuid lv_name \ + lv_attr lv_minor lv_size seg_count \ + origin snap_percent segtype stripes \ + stripesize chunksize seg_start \ + seg_size' -- $cur ) ) + return 0 + ;; + --units) + _units + return 0 + ;; + esac + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '--aligned -d --debug \ + -h --help --ignorelockingfailure --noheadings \ + --nosuffix -o --options -O --sort -P --partial \ + --segments --separator --unbuffered --units \ + -v --verbose --version' -- $cur ) ) + else + _logicalvolumes + fi +} +complete -F _lvs lvs + +_lvdisplay() +{ + local cur prev + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + case "$prev" in + --units) + _units + return 0 + ;; + esac + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-c --colon -C --columns --units \ + -P --partial -m --maps -v --verbose -d --debug -h \ + --help --version' -- $cur ) ) + else + _logicalvolumes + fi +} +complete -F _lvdisplay lvdisplay + +_lvchange() +{ + local cur prev + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + case "$prev" in + -@(a|A|C|M|-available|-autobackup|-continguous|-persistent)) + COMPREPLY=( $( compgen -W 'y n' -- $cur ) ) + return 0 + ;; + -@(p|-permission)) + COMPREPLY=( $( compgen -W 'r rw' -- $cur ) ) + return 0 + ;; + esac + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-A --autobackup -a --available \ + --addtag --alloc -C --contiguous -d --debug --deltag \ + -f --force -h --help --ignorelockingfailure -M \ + --persistent --major major --minor minor -P --partial \ + -p --permission -r --readahead --refresh -t --test \ + -v --verbose --version' -- $cur ) ) + else + _logicalvolumes + fi +} +complete -F _lvchange lvchange + +_lvcreate() +{ + local cur prev + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + case "$prev" in + -@(A|C|M|Z|-autobackup|-continguous|-persistent|-zero)) + COMPREPLY=( $( compgen -W 'y n' -- $cur ) ) + return 0 + ;; + -@(L|-size)) + _sizes + return 0 + ;; + -@(p|-permission)) + COMPREPLY=( $( compgen -W 'r rw' -- $cur ) ) + return 0 + ;; + -@(n|-name)) + _logicalvolumes + return 0 + ;; + esac + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-A --autobackup --addtag --alloc \ + -C --contiguous -d --debug -h -? --help -i --stripes \ + -I --stripesize -l --extents -L --size -M --persistent \ + --major --minor -n --name -p --permission -r \ + --readahead -t --test --type -v --verbose -Z --zero \ + --version' -- $cur ) ) + else + _args + if [ $args -eq 0 ]; then + _volumegroups + else + _physicalvolumes + fi + fi +} +complete -F _lvcreate lvcreate + +_lvremove() +{ + local cur prev + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + case "$prev" in + -@(A|-autobackup)) + COMPREPLY=( $( compgen -W 'y n' -- $cur ) ) + return 0 + ;; + esac + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-A --autobackup -d --debug -f \ + --force -h -? --help -t --test -v --verbose \ + --version' -- $cur ) ) + else + _logicalvolumes + fi +} +complete -F _lvremove lvremove + +_lvrename() +{ + local cur prev + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + case "$prev" in + -@(A|-autobackup)) + COMPREPLY=( $( compgen -W 'y n' -- $cur ) ) + return 0 + ;; + esac + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-A --autobackup -d --debug -h \ + -? --help -t --test -v --verbose --version' -- $cur ) ) + else + _logicalvolumes + fi +} +complete -F _lvrename lvrename + +_lvreduce() +{ + local cur prev + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + case "$prev" in + -@(A|-autobackup)) + COMPREPLY=( $( compgen -W 'y n' -- $cur ) ) + return 0 + ;; + -@(L|-size)) + _sizes + return 0 + ;; + esac + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-A --autobackup -d \ + --debug -f --force -h --help -l --extents \ + -L --size -n --nofsck -r --resizefs -t --test \ + -v --verbose --version' -- $cur ) ) + else + _logicalvolumes + fi +} +complete -F _lvreduce lvreduce + +_lvresize() +{ + local cur prev + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + case "$prev" in + -@(A|-autobackup)) + COMPREPLY=( $( compgen -W 'y n' -- $cur ) ) + return 0 + ;; + -@(L|-size)) + _sizes + return 0 + ;; + esac + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-A --autobackup --alloc -d \ + --debug -h --help -i --stripes -I --stripesize \ + -l --extents -L --size -n --nofsck -r --resizefs \ + -t --test --type -v --verbose --version' -- $cur ) ) + else + _args + if [ $args -eq 0 ]; then + _logicalvolumes + else + _physicalvolumes + fi + fi +} +complete -F _lvresize lvresize + +_lvextend() +{ + local cur prev + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + case "$prev" in + -@(A|-autobackup)) + COMPREPLY=( $( compgen -W 'y n' -- $cur ) ) + return 0 + ;; + -@(L|-size)) + _sizes + return 0 + ;; + esac + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-A --autobackup --alloc -d \ + --debug -h --help -i --stripes -I --stripesize \ + -l --extents -L --size -n --nofsck -r --resizefs \ + -t --test --type -v --verbose --version' -- $cur ) ) + else + _args + if [ $args -eq 0 ]; then + _logicalvolumes + else + _physicalvolumes + fi + fi +} +complete -F _lvextend lvextend + +_lvm() +{ + local prev + + COMPREPLY=() + cur=`_get_cword` + + if [ $COMP_CWORD -eq 1 ]; then + COMPREPLY=( $( compgen -W 'dumpconfig help lvchange \ + lvcreate lvdisplay lvextend lvmchange \ + lvmdiskscan lvmsadc lvmsar lvreduce \ + lvremove lvrename lvresize lvs lvscan \ + pvchange pvcreate pvdata pvdisplay pvmove \ + pvremove pvresize pvs pvscan vgcfgbackup \ + vgcfgrestore vgchange vgck vgconvert \ + vgcreate vgdisplay vgexport vgextend \ + vgimport vgmerge vgmknodes vgreduce \ + vgremove vgrename vgs vgscan vgsplit \ + version' -- $cur ) ) + else + case ${COMP_WORDS[1]} in + pvchange) + _pvchange + ;; + pvcreate) + _pvcreate + ;; + pvdisplay) + _pvdisplay + ;; + pvmove) + _pvmove + ;; + pvremove) + _pvremove + ;; + pvresize) + _pvresize + ;; + pvs) + _pvs + ;; + pvscan) + _pvscan + ;; + vgcfgbackup) + _vgcfgbackup + ;; + vgcfgrestore) + _vgcfgrestore + ;; + vgchange) + _vgchange + ;; + vgck) + _vgck + ;; + vgconvert) + _vgconvert + ;; + vgcreate) + _vgcreate + ;; + vgdisplay) + _vgdisplay + ;; + vgexport) + _vgexport + ;; + vgextend) + _vgextend + ;; + vgimport) + _vgimport + ;; + vgmerge) + _vgmerge + ;; + vgmknodes) + _vgmknodes + ;; + vgreduce) + _vgreduce + ;; + vgremove) + _vgremove + ;; + vgrename) + _vgrename + ;; + vgs) + _vgs + ;; + vgscan) + _vgscan + ;; + vgsplit) + _vgsplit + ;; + lvchange) + _lvchange + ;; + lvcreate) + _lvcreate + ;; + lvdisplay) + _lvdisplay + ;; + lvextend) + _lvextend + ;; + lvreduce) + _lvreduce + ;; + lvremove) + _lvremove + ;; + lvrename) + _lvrename + ;; + lvresize) + _lvresize + ;; + lvs) + _lvs + ;; + lvscan) + _lvscan + ;; + esac + fi +} +complete -F _lvm lvm +} + +# mkinitrd(8) completion +# +have mkinitrd && +_mkinitrd() +{ + local cur args + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + # --name value style option + case "$prev" in + --preload) + _modules + return 0 + ;; + esac + + # --name=value style option + if [[ "$cur" == *=* ]]; then + prev=${cur/=*/} + cur=${cur/*=/} + case "$prev" in + --@(with|builtin)) + _modules + return 0 + ;; + --@(fstab|dsdt)) + _filedir + return 0 + ;; + --tmpdir) + _filedir -d + return 0 + ;; + esac + fi + + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '--version -v -f --preload \ + --with= --omit-scsi-modules --omit-raid-modules \ + --images-version --fstab= --nocompress --builtin= \ + --nopivot --noudev --allow-missing --tmpdir= \ + --initrdfs= --dsdt= --lvm-version= --froce-usb' \ + -- $cur ) ) + else + _count_args + + case $args in + 1) + _filedir + ;; + 2) + COMPREPLY=( $( command ls /lib/modules | grep "^$cur" ) ) + ;; + esac + fi + +} && +complete -F _mkinitrd mkinitrd + +# pkgconfig(1) completion +# +have pkg-config && +_pkg_config() +{ + local cur + + COMPREPLY=() + cur=`_get_cword` + + if [[ "$cur" == -* ]]; then + # return list of available options + COMPREPLY=( $( compgen -W '-version --modversion \ + --atleast-pkgconfig-version= --libs --libs-only-l \ + --libs-only-other --libs-only-L --cflags \ + --cflags-only-I --cflags-only-other --variable= \ + --define-variable= --exists --uninstalled \ + --atleast-version= --exact-version= --max-version= \ + --list-all --debug --print-errors --silence-errors \ + --errors-to-stdout -? --help --usage' -- $cur)) + else + COMPREPLY=( $( pkg-config --list-all 2>/dev/null | \ + awk '{print $1}' | grep "^$cur" ) ) + fi +} && +complete -F _pkg_config pkg-config + + +# cpio(1) completion +# +have cpio && { +_cpio_format() +{ + COMPREPLY=( $( compgen -W 'bin odc newc crc tar ustar hpbin hpodc' -- $cur ) ) +} + +_cpio() +{ + local cur + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + # --name value style option + case $prev in + -H) + _cpio_format + return 0 + ;; + -@(E|F|I)) + _filedir + return 0 + ;; + -R) + _usergroup + return 0 + ;; + esac + + # --name=value style option + if [[ "$cur" == *=* ]]; then + prev=${cur/=*/} + cur=${cur/*=/} + case $prev in + --format) + _cpio_format + return 0 + ;; + --@(file|pattern-file)) + _filedir + return 0 + ;; + --owner) + _usergroup + return 0 + ;; + --rsh-command) + COMPREPLY=( $( compgen -c -- $cur ) ) + return 0 + ;; + esac + fi + + if [ $COMP_CWORD -eq 1 ]; then + COMPREPLY=( $( compgen -W '-o --create -i --extract -p --pass-through' -- $cur) ) + else + case ${COMP_WORDS[1]} in + -@(o|-create)) + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-0 -a -c -v -A -B\ + -L -V -C -H -M -O -F --file= --format=\ + --message= --null --reset-access-time\ + --verbose --dot --append --block-size=\ + --dereference --io-size= --quiet\ + --force-local --rsh-command= --help\ + --version' -- $cur ) ) + fi + ;; + -@(i|-extract)) + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-b -c -d -f -m -n -r\ + -t -s -u -v -B -S -V -C -E -H -M -R -I\ + -F --file= --make-directories\ + --nonmatching\ + --preserve-modification-time\ + --numeric-uid-gid --rename -t --list\ + --swap-bytes --swap --dot\ + --unconditional --verbose --block-size=\ + --swap-halfwords --io-size=\ + --pattern-file= --format= --owner=\ + --no-preserve-owner --message=\ + --force-local --no-absolute-filenames\ + --sparse --only-verify-crc --quiet\ + --rsh-command= --help\ + --version' -- $cur ) ) + fi + ;; + -@(p|-pass-through)) + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-0 -a -d -l -m -u -v\ + -L -V -R --null --reset-access-time\ + --make-directories --link --quiet\ + --preserve-modification-time\ + --unconditional --verbose --dot\ + --dereference --owner=\ + --no-preserve-owner --sparse --help\ + --version' -- $cur ) ) + else + _filedir -d + fi + ;; + esac + fi +} +complete -F _cpio cpio +} + +# id(1) completion +# +have id && +_id() +{ + local cur + + COMPREPLY=() + cur=`_get_cword` + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-a -g --group -G --groups -n --name\ + -r --real -u --user --help --version' -- $cur ) ) + else + COMPREPLY=( $( compgen -u $cur ) ) + fi +} && +complete -F _id id + +# getent(1) completion +# +have getent && +_getent() +{ + local cur prev + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + case $prev in + passwd) + COMPREPLY=( $( compgen -u $cur ) ) + return 0 + ;; + group) + COMPREPLY=( $( compgen -g $cur ) ) + return 0 + ;; + services) + COMPREPLY=( $( compgen -s $cur ) ) + return 0 + ;; + hosts) + COMPREPLY=( $( compgen -A hostname $cur ) ) + return 0 + ;; + protocols) + COMPREPLY=( $( getent protocols | awk '{print $1}' | grep "^$cur" ) ) + return 0 + ;; + networks) + COMPREPLY=( $( getent networks | awk '{print $1}' | grep "^$cur" ) ) + return 0 + ;; + esac + + + if [ $COMP_CWORD -eq 1 ]; then + COMPREPLY=( $( compgen -W 'passwd group hosts services protocols networks' -- $cur ) ) + fi +} && +complete -F _getent getent + +# ntpdate(1) completion +# +have ntpdate && +_ntpdate() +{ + local cur prev + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + case $prev in + -k) + _filedir + return 0 + ;; + -U) + COMPREPLY=( $( compgen -u $cur ) ) + return 0 + ;; + esac + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-4 -6 -b -B -d -Q -q -s -u -v -a\ + -e -k -p -o -r -t' -- $cur ) ) + else + _known_hosts + fi +} && +complete -F _ntpdate ntpdate + +# smartctl(8) completion +# +have smartctl && { +_smartctl_quietmode() +{ + COMPREPLY=( $( compgen -W 'errorsonly silent' -- $cur ) ) +} +_smartctl_device() +{ + COMPREPLY=( $( compgen -W 'ata scsi 3ware' -- $cur ) ) +} +_smartctl_tolerance() +{ + COMPREPLY=( $( compgen -W 'warn exit ignore' -- $cur ) ) +} +_smartctl_badsum() +{ + COMPREPLY=( $( compgen -W 'normal conservative permissive verypermissive' -- $cur ) ) +} +_smartctl_report() +{ + COMPREPLY=( $( compgen -W 'ioctl ataioctl scsiioctl' -- $cur ) ) +} +_smartctl_feature() +{ + COMPREPLY=( $( compgen -W 'on off' -- $cur ) ) +} +_smartctl_log() +{ + COMPREPLY=( $( compgen -W 'error selftest selective directory' -- $cur ) ) +} +_smartctl_vendorattribute() +{ + COMPREPLY=( $( compgen -W 'help 9,minutes 9,seconds 9,halfminutes \ + 9,temp 192,emergencyretractcyclect 193,loadunload \ + 194,10xCelsius 194,unknown 198,offlinescanuncsectorct \ + 200,writeerrorcount 201,detectedtacount 220,temp' -- $cur ) ) +} +_smartctl_firmwarebug() +{ + COMPREPLY=( $( compgen -W 'none samsung samsung2' -- $cur ) ) +} +_smartctl_presets() +{ + COMPREPLY=( $( compgen -W 'use ignore show showall' -- $cur ) ) +} +_smartctl_test() +{ + COMPREPLY=( $( compgen -W 'offline short long conveyance select afterselect,on afterselect,off pending' -- $cur ) ) +} + +_smartctl() +{ + local cur prev + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + # --name value style option + case "$prev" in + -q) + _smartctl_quietmode + ;; + -d) + _smartctl_device + return 0 + ;; + -t) + _smartctl_tolerance + return 0 + ;; + -b) + _smartctl_badsum + return 0 + ;; + -r) + _smartctl_report + return 0 + ;; + -s) + _smartctl_feature + return 0 + ;; + -o) + _smartctl_feature + return 0 + ;; + -S) + _smartctl_feature + return 0 + ;; + -l) + _smartctl_log + return 0 + ;; + -v) + _smartctl_vendorattribute + return 0 + ;; + -F) + _smartctl_firmwarebug + return 0 + ;; + -P) + _smartctl_presets + return 0 + ;; + -t) + _smartctl_test + return 0 + ;; + esac + + # --name=value style option + if [[ "$cur" == *=* ]]; then + prev=${cur/=*/} + cur=${cur/*=/} + case "$prev" in + --quietmode) + _smartctl_quietmode + return 0 + ;; + --device) + _smartctl_device + return 0 + ;; + --tolerance) + _smartctl_tolerance + return 0 + ;; + --badsum) + _smartctl_badsum + return 0 + ;; + --report) + _smartctl_report + return 0 + ;; + --smart) + _smartctl_feature + return 0 + ;; + --offlineauto) + _smartctl_feature + return 0 + ;; + --saveauto) + _smartctl_feature + return 0 + ;; + --log) + _smartctl_log + return 0 + ;; + --vendorattribute) + _smartctl_vendorattribute + return 0 + ;; + --firmwarebug) + _smartctl_firmwarebug + return 0 + ;; + --presets) + _smartctl_presets + return 0 + ;; + --test) + _smartctl_test + return 0 + ;; + esac + fi + + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-h --help --usage -V --version \ + --copyright --license-i --info -a --all -q \ + --quietmode= -d --device= -T --tolerance= -b --badsum= \ + -r --report= -s --smart= -o --offlineauto= -S \ + --saveauto= -H --health -c --capabilities -A \ + --attributes -l --log= -v --vendorattribute= -F \ + --firmwarebug= -P --presets= -t --test= -C \ + --captive -X --abort' -- $cur ) ) + else + cur=${cur:=/dev/} + _filedir + fi +} +complete -F _smartctl smartctl +} + +# vncviewer(1) completion +# +have vncviewer && +_vncviewer() +{ + local cur prev + local -a config + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + case "$prev" in + -via) + _known_hosts -a + ;; + *) + # ssh into the the server, find and ping the broadcast address, then + # sort and show the results. + COMPREPLY=( $( ssh -o 'Batchmode yes' $prev \ + "ping -bnc 4 255.255.255.255" 2>/dev/null | \ + awk -F ' ' '{print $4}' | \ + sort -n | uniq | egrep '[0-9]+\.[0-9]+\.' 2>/dev/null ) ) + esac + + return 0 +} && +complete -F _vncviewer vncviewer + +# sysctl(8) completion +# +have sysctl && +_sysctl() +{ + local cur + + COMPREPLY=() + cur=`_get_cword` + + COMPREPLY=( $( compgen -W "$(sysctl -N -a 2>/dev/null)" -- $cur ) ) + + return 0 +} && +complete -F _sysctl sysctl + +# update-rc.d(8) completion +# +# Copyright (C) 2004 Servilio Afre Puentes +# +have update-rc.d && +_update_rc_d() +{ + local cur prev sysvdir services options valid_options + + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + [ -d /etc/rc.d/init.d ] && sysvdir=/etc/rc.d/init.d \ + || sysvdir=/etc/init.d + + services=( $(echo $sysvdir/!(README*|*.sh|*.dpkg*|*.rpm*)) ) + services=( ${services[@]#$sysvdir/} ) + options=( -f -n ) + + if [[ $COMP_CWORD -eq 1 || "$prev" == -* ]]; then + valid_options=( $( \ + echo "${COMP_WORDS[@]} ${options[@]}" \ + | tr " " "\n" \ + | sed -ne "/$( echo "${options[@]}" | sed "s/ /\\|/g" )/p" \ + | sort | uniq -u \ + ) ) + COMPREPLY=( $( compgen -W '${options[@]} ${services[@]}' \ + -X '$( echo ${COMP_WORDS[@]} | tr " " "|" )' -- $cur ) ) + elif [[ "$prev" == ?($( echo ${services[@]} | tr " " "|" )) ]]; then + COMPREPLY=( $( compgen -W 'remove defaults start stop' -- $cur ) ) + elif [[ "$prev" == defaults && "$cur" == [0-9] ]]; then + COMPREPLY=( 0 1 2 3 4 5 6 7 8 9 ) + elif [[ "$prev" == defaults && "$cur" == [sk]?([0-9]) ]]; then + COMPREPLY=( 0 1 2 3 4 5 6 7 8 9 ) + elif [[ "$prev" == defaults && -z "$cur" ]]; then + COMPREPLY=( 0 1 2 3 4 5 6 7 8 9 s k ) + elif [[ "$prev" == ?(start|stop) ]]; then + if [[ "$cur" == [0-9] || -z "$cur" ]]; then + COMPREPLY=( 0 1 2 3 4 5 6 7 8 9 ) + elif [[ "$cur" == [0-9][0-9] ]]; then + COMPREPLY=( $cur ) + else + COMPREPLY=() + fi + elif [[ "$prev" == ?([0-9][0-9]|[0-6S]) ]]; then + if [[ -z "$cur" ]]; then + if [[ $prev == [0-9][0-9] ]]; then + COMPREPLY=( 0 1 2 3 4 5 6 S ) + else + COMPREPLY=( 0 1 2 3 4 5 6 S . ) + fi + elif [[ "$cur" == [0-6S.] ]]; then + COMPREPLY=( $cur ) + else + COMPREPLY=() + fi + elif [[ "$prev" == "." ]]; then + COMPREPLY=( $(compgen -W "start stop" -- $cur) ) + else + COMPREPLY=() + fi + + return 0 +} && +complete -F _update_rc_d update-rc.d + +# invoke-rc.d(8) completion +# +# Copyright (C) 2004 Servilio Afre Puentes +# +have invoke-rc.d && +_invoke_rc_d() +{ + local cur prev sysvdir services options valid_options + + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + [ -d /etc/rc.d/init.d ] && sysvdir=/etc/rc.d/init.d \ + || sysvdir=/etc/init.d + + services=( $(echo $sysvdir/!(README*|*.sh|*.dpkg*|*.rpm*)) ) + services=( ${services[@]#$sysvdir/} ) + options=( --help --quiet --force --try-anyway --disclose-deny --query --no-fallback ) + + if [[ ($COMP_CWORD -eq 1) || ("$prev" == --* ) ]]; then + valid_options=( $( \ + echo ${COMP_WORDS[@]} ${options[@]} \ + | tr " " "\n" \ + | sed -ne "/$( echo ${options[@]} | sed "s/ /\\\\|/g" )/p" \ + | sort | uniq -u \ + ) ) + COMPREPLY=( $( compgen -W '${valid_options[@]} ${services[@]}' -- \ + $cur ) ) + elif [ -x $sysvdir/$prev ]; then + COMPREPLY=( $( compgen -W '`sed -ne "y/|/ /; \ + s/^.*Usage:[ ]*[^ ]*[ ]*{*\([^}\"]*\).*$/\1/p" \ + $sysvdir/$prev`' -- \ + $cur ) ) + else + COMPREPLY=() + fi + + return 0 +} && +complete -F _invoke_rc_d invoke-rc.d + +# minicom(1) completion +# +have minicom && +_minicom() +{ + local cur prev + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + case $prev in + -@(a|c)) + COMPREPLY=( $( compgen -W 'on off' -- $cur ) ) + return 0 + ;; + -@(S|C)) + _filedir + return 0 + ;; + -P) + COMPREPLY=( $( command ls /dev/tty* ) ) + COMPREPLY=( $( compgen -W '${COMPREPLY[@]} ${COMPREPLY[@]#/dev/}' -- $cur ) ) + return 0 + ;; + esac + + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-s -o -m -M -z -l -L -w -a -t \ + -c -S -d -p -C -T -8' -- $cur ) ) + else + COMPREPLY=( $( command ls /etc/minicom/minirc.* 2>/dev/null | sed -e 's|/etc/minicom/minirc.||' | grep "^$cur" ) ) + fi +} && +complete -F _minicom minicom + +# svn completion +# +have svn && +{ +_svn() +{ + local cur prev commands options command + + COMPREPLY=() + cur=`_get_cword` + + commands='add blame praise annotate ann cat checkout co cleanup commit \ + ci copy cp delete del remove rm diff di export help ? h import \ + info list ls lock log merge mkdir move mv rename ren \ + propdel pdel pd propedit pedit pe propget pget pg \ + proplist plist pl propset pset ps resolved revert \ + status stat st switch sw unlock update up' + + if [[ $COMP_CWORD -eq 1 ]] ; then + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '--version' -- $cur ) ) + else + COMPREPLY=( $( compgen -W "$commands" -- $cur ) ) + fi + else + + prev=${COMP_WORDS[COMP_CWORD-1]} + case $prev in + --config-dir) + _filedir -d + return 0; + ;; + -@(F|-file|-targets)) + _filedir + return 0; + ;; + --encoding) + COMPREPLY=( $( compgen -W \ + '$( iconv --list | sed -e "s@//@@;" )' \ + -- "$cur" ) ) + return 0; + ;; + --@(editor|diff|diff3)-cmd) + COMP_WORDS=(COMP_WORDS[0] $cur) + COMP_CWORD=1 + _command + return 0; + ;; + esac + + command=${COMP_WORDS[1]} + + if [[ "$cur" == -* ]]; then + # possible options for the command + case $command in + add) + options='--auto-props --no-auto-props \ + --force --targets --no-ignore \ + --non-recursive -N -q --quiet' + ;; + @(blame|annotate|ann|praise)) + options='-r --revisions --username \ + --password --no-auth-cache \ + --non-interactive -v \ + --verbose --incremental --xml' + ;; + cat) + options='-r --revision --username \ + --password --no-auth-cache \ + --non-interactive' + ;; + @(checkout|co)) + options='-r --revision -q --quiet -N \ + --non-recursive --username \ + --password --no-auth-cache \ + --non-interactive \ + --ignore-externals' + ;; + cleanup) + options='--diff3-cmd' + ;; + @(commit|ci)) + options='-m --message -F --file \ + --encoding --force-log -q \ + --quiet --non-recursive -N \ + --targets --editor-cmd \ + --username --password \ + --no-auth-cache \ + --non-interactive --no-unlock' + ;; + @(copy|cp)) + options='-m --message -F --file \ + --encoding --force-log -r \ + --revision -q --quiet \ + --editor-cmd -username \ + --password --no-auth-cache \ + --non-interactive' + ;; + @(delete|del|remove|rm)) + options='--force -m --message -F \ + --file --encoding --force-log \ + -q --quiet --targets \ + --editor-cmd -username \ + --password --no-auth-cache \ + --non-interactive' + ;; + @(diff|di)) + options='-r --revision -x --extensions \ + --diff-cmd --no-diff-deleted \ + -N --non-recursive --username \ + --password --no-auth-cache \ + --non-interactive --force \ + --old --new --notice-ancestry' + ;; + export) + options='-r --revision -q --quiet \ + --username --password \ + --no-auth-cache \ + --non-interactive -N \ + --non-recursive --force \ + --native-eol --ignore-externals' + ;; + import) + options='--auto-props --no-auto-props \ + -m --message -F --file \ + --encoding --force-log -q \ + --quiet --non-recursive \ + --no-ignore --editor-cmd \ + --username --password \ + --no-auth-cache \ + --non-interactive' + ;; + info) + options='--username --password \ + --no-auth-cache \ + --non-interactive -r \ + --revision --xml --targets \ + -R --recursive --incremental' + ;; + @(list|ls)) + options='-r --revision -v --verbose -R \ + --recursive --username \ + --password --no-auth-cache \ + --non-interactive \ + --incremental --xml' + ;; + lock) + options='-m --message -F --file \ + --encoding --force-log \ + --targets --force --username \ + --password --no-auth-cache \ + --non-interactive' + ;; + log) + options='-r --revision -v --verbose \ + --targets --username \ + --password --no-auth-cache \ + --non-interactive \ + --stop-on-copy --incremental \ + --xml -q --quiet --limit' + ;; + merge) + options='-r --revision -N \ + --non-recursive -q --quiet \ + --force --dry-run --diff3-cmd \ + --username --password \ + --no-auth-cache \ + --non-interactive \ + --ignore-ancestry' + ;; + mkdir) + options='-m --message -F --file \ + --encoding --force-log -q \ + --quiet --editor-cmd \ + --username --password \ + --no-auth-cache \ + --non-interactive' + ;; + @(move|mv|rename|ren)) + options='-m --message -F --file \ + --encoding --force-log -r \ + --revision -q --quiet \ + --force --editor-cmd \ + --username --password \ + --no-auth-cache \ + --non-interactive' + ;; + @(propdel|pdel|pd)) + options='-q --quiet -R --recursive -r \ + --revision --revprop \ + --username --password \ + --no-auth-cache \ + --non-interactive' + ;; + @(propedit|pedit|pe)) + options='-r --revision --revprop \ + --encoding --editor-cmd \ + --username --password \ + --no-auth-cache \ + --non-interactive --force' + ;; + @(propget|pget|pg)) + options='-R --recursive -r --revision \ + --revprop --strict --username \ + --password --no-auth-cache \ + --non-interactive' + ;; + @(proplist|plist|pl)) + options='-v --verbose -R --recursive \ + -r --revision --revprop -q \ + --quiet --username --password \ + --no-auth-cache \ + --non-interactive' + ;; + @(propset|pset|ps)) + options='-F --file -q --quiet \ + --targets -R --recursive \ + --revprop --encoding \ + --username --password \ + --no-auth-cache \ + --non-interactive -r \ + --revision --force' + ;; + resolved) + options='--targets -R --recursive -q \ + --quiet' + ;; + revert) + options='--targets -R --recursive -q \ + --quiet' + ;; + @(status|stat|st)) + options='-u --show-updates -v \ + --verbose -N --non-recursive \ + -q --quiet --username \ + --password --no-auth-cache \ + --non-interactive --no-ignore \ + --ignore-externals \ + --incremental --xml' + ;; + @(switch|sw)) + options='--relocate -r --revision -N \ + --non-recursive -q --quiet \ + --username --password \ + --no-auth-cache \ + --non-interactive --diff3-cmd' + ;; + unlock) + options='--targets --force --username \ + --password --no-auth-cache \ + --non-interactive' + ;; + @(update|up)) + options='-r --revision -N \ + --non-recursive -q --quiet \ + --username --password \ + --no-auth-cache \ + --non-interactive \ + --diff3-cmd --ignore-externals' + ;; + esac + options="$options --help -h --config-dir" + + COMPREPLY=( $( compgen -W "$options" -- $cur ) ) + else + if [[ "$command" == @(help|h|\?) ]]; then + COMPREPLY=( $( compgen -W "$commands" -- $cur ) ) + else + _filedir + fi + fi + fi + + return 0 +} +complete -F _svn $default svn + +_svnadmin() +{ + local cur prev commands options mode + + COMPREPLY=() + cur=`_get_cword` + + commands='create deltify dump help ? hotcopy list-dblogs \ + list-unused-dblogs load lslocks lstxns recover rmlocks \ + rmtxns setlog verify' + + if [[ $COMP_CWORD -eq 1 ]] ; then + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '--version' -- $cur ) ) + else + COMPREPLY=( $( compgen -W "$commands" -- $cur ) ) + fi + else + prev=${COMP_WORDS[COMP_CWORD-1]} + case $prev in + --config-dir) + _filedir -d + return 0; + ;; + --fs-type) + COMPREPLY=( $( compgen -W 'fsfs bdb' -- $cur ) ) + return 0; + ;; + esac + + command=${COMP_WORDS[1]} + + if [[ "$cur" == -* ]]; then + # possible options for the command + case $command in + create) + options='--bdb-txn-nosync \ + --bdb-log-keep --config-dir \ + --fs-type' + ;; + deltify) + options='-r --revision -q --quiet' + ;; + dump) + options='-r --revision --incremental \ + -q --quiet --deltas' + ;; + hotcopy) + options='--clean-logs' + ;; + load) + options='--ignore-uuid --force-uuid \ + --parent-dir -q --quiet \ + --use-pre-commit-hook \ + --use-post-commit-hook' + ;; + rmtxns) + options='-q --quiet' + ;; + setlog) + options='-r --revision --bypass-hooks' + ;; + esac + + options="$options --help -h" + COMPREPLY=( $( compgen -W "$options" -- $cur ) ) + else + if [[ "$command" == @(help|h|\?) ]]; then + COMPREPLY=( $( compgen -W "$commands" -- $cur ) ) + else + _filedir + fi + fi + fi + + return 0 +} +complete -F _svnadmin $default svnadmin + +_svnlook() +{ + local cur prev commands options mode + + COMPREPLY=() + cur=`_get_cword` + + commands='author cat changed date diff dirs-changed help ? h history \ + info lock log propget pget pg proplist plist pl tree uuid \ + youngest' + + if [[ $COMP_CWORD -eq 1 ]] ; then + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '--version' -- $cur ) ) + else + COMPREPLY=( $( compgen -W "$commands" -- $cur ) ) + fi + else + command=${COMP_WORDS[1]} + + if [[ "$cur" == -* ]]; then + # possible options for the command + case $command in + @(author|cat|date|dirs-changed|info|log)) + options='-r --revision -t \ + --transaction' + ;; + changed) + options='-r --revision -t \ + --transaction --copy-info' + ;; + diff) + options='-r --revision -t \ + --transaction \ + --no-diff-deleted \ + --no-diff-added \ + --diff-copy-from' + ;; + history) + options='-r --revision --show-ids' + ;; + prop@(get|list)) + options='-r --revision -t \ + --transaction --revprop' + ;; + tree) + options='-r --revision -t \ + --transaction --show-ids \ + --full-paths' + ;; + esac + + options="$options --help -h" + COMPREPLY=( $( compgen -W "$options" -- $cur ) ) + else + if [[ "$command" == @(help|h|\?) ]]; then + COMPREPLY=( $( compgen -W "$commands" -- $cur ) ) + else + _filedir + fi + fi + fi + + return 0 +} +complete -F _svnlook $default svnlook +} + +_filedir_xspec() +{ + local IFS cur xspec + + IFS=$'\t\n' + COMPREPLY=() + cur=`_get_cword` + + _expand || return 0 + + # get first exclusion compspec that matches this command + xspec=$( sed -ne $'/^complete .*[ \t]'${1##*/}$'\([ \t]\|$\)/{p;q;}' \ + $BASH_COMPLETION ) + # prune to leave nothing but the -X spec + xspec=${xspec#*-X } + xspec=${xspec%% *} + + local toks=( ) tmp + + while read -r tmp; do + [[ -n $tmp ]] && toks[${#toks[@]}]=$tmp + done < <( compgen -d -- "$(quote_readline "$cur")" ) + + while read -r tmp; do + [[ -n $tmp ]] && toks[${#toks[@]}]=$tmp + done < <( eval compgen -f -X $xspec -- "\$(quote_readline "\$cur")" ) + + COMPREPLY=( "${toks[@]}" ) +} +list=( $( sed -ne '/^# START exclude/,/^# FINISH exclude/p' \ + $BASH_COMPLETION | \ + # read exclusion compspecs + ( + while read line + do + # ignore compspecs that are commented out + if [ "${line#\#}" != "$line" ]; then continue; fi + line=${line%# START exclude*} + line=${line%# FINISH exclude*} + line=${line##*\'} + list=( "${list[@]}" $line ) + done + echo "${list[@]}" + ) + ) ) +# remove previous compspecs +if [ ${#list[@]} -gt 0 ]; then + eval complete -r ${list[@]} + # install new compspecs + eval complete -F _filedir_xspec $filenames "${list[@]}" +fi +unset list + +# source completion directory definitions +if [ -d $BASH_COMPLETION_DIR -a -r $BASH_COMPLETION_DIR -a \ + -x $BASH_COMPLETION_DIR ]; then + for i in $BASH_COMPLETION_DIR/*; do + [[ ${i##*/} != @(*~|*.bak|*.swp|\#*\#|*.dpkg*|.rpm*) ]] && + [ \( -f $i -o -h $i \) -a -r $i ] && . $i + done +fi +unset i + +# source user completion file +[ $BASH_COMPLETION != ~/.bash_completion -a -r ~/.bash_completion ] \ + && . ~/.bash_completion +unset -f have +unset UNAME RELEASE default dirnames filenames have nospace bashdefault \ + plusdirs + +set $BASH_COMPLETION_ORIGINAL_V_VALUE +unset BASH_COMPLETION_ORIGINAL_V_VALUE + +### Local Variables: +### mode: shell-script +### End: diff --git a/examples/loadables/Makefile.in b/examples/loadables/Makefile.in index f6208f5cc..343beb02e 100644 --- a/examples/loadables/Makefile.in +++ b/examples/loadables/Makefile.in @@ -1,21 +1,21 @@ # # Simple makefile for the sample loadable builtins # -# Copyright (C) 1996 Free Software Foundation, Inc. +# Copyright (C) 1996-2009 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. +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# # Include some boilerplate Gnu makefile definitions. prefix = @prefix@ @@ -26,6 +26,8 @@ libdir = @libdir@ infodir = @infodir@ includedir = @includedir@ +datarootdir = @datarootdir@ + topdir = @top_srcdir@ BUILD_DIR = @BUILD_DIR@ srcdir = @srcdir@ @@ -68,7 +70,7 @@ CCFLAGS = $(DEFS) $(LOCAL_DEFS) $(LOCAL_CFLAGS) $(CFLAGS) SHOBJ_CC = @SHOBJ_CC@ SHOBJ_CFLAGS = @SHOBJ_CFLAGS@ SHOBJ_LD = @SHOBJ_LD@ -SHOBJ_LDFLAGS = @SHOBJ_LDFLAGS@ +SHOBJ_LDFLAGS = @SHOBJ_LDFLAGS@ @LDFLAGS@ SHOBJ_XLDFLAGS = @SHOBJ_XLDFLAGS@ SHOBJ_LIBS = @SHOBJ_LIBS@ SHOBJ_STATUS = @SHOBJ_STATUS@ @@ -83,7 +85,7 @@ INC = -I. -I.. -I$(topdir) -I$(topdir)/lib -I$(topdir)/builtins \ ALLPROG = print truefalse sleep pushd finfo logname basename dirname \ tty pathchk tee head mkdir rmdir printenv id whoami \ - uname sync push ln unlink cut realpath getconf strftime + uname sync push ln unlink cut realpath getconf strftime mypid OTHERPROG = necho hello cat all: $(SHOBJ_STATUS) @@ -186,6 +188,9 @@ realpath: realpath.o strftime: strftime.o $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ strftime.o $(SHOBJ_LIBS) +mypid: mypid.o + $(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ mypid.o $(SHOBJ_LIBS) + # pushd is a special case. We use the same source that the builtin version # uses, with special compilation options. # @@ -236,3 +241,4 @@ push.o: push.c mkdir.o: mkdir.c realpath.o: realpath.c strftime.o: strftime.c +mypid.o: mypid.c diff --git a/examples/loadables/basename.c b/examples/loadables/basename.c index 7f254c767..b5705cb42 100644 --- a/examples/loadables/basename.c +++ b/examples/loadables/basename.c @@ -11,6 +11,7 @@ #include #include "builtins.h" #include "shell.h" +#include "common.h" basename_builtin (list) WORD_LIST *list; @@ -90,6 +91,8 @@ basename_builtin (list) } char *basename_doc[] = { + "Return non-directory portion of pathname.", + "", "The STRING is converted to a filename corresponding to the last", "pathname component in STRING. If the suffix string SUFFIX is", "supplied, it is removed.", diff --git a/examples/loadables/cat.c b/examples/loadables/cat.c index 9dd1d1a74..1ce2e2dc4 100644 --- a/examples/loadables/cat.c +++ b/examples/loadables/cat.c @@ -4,6 +4,24 @@ * no options - the way cat was intended */ +/* + Copyright (C) 1999-2009 Free Software Foundation, Inc. + + This file is part of GNU Bash. + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ + #include #include @@ -84,6 +102,8 @@ WORD_LIST *list; } char *cat_doc[] = { + "Display files.", + "", "Read each FILE and display it on the standard output. If any", "FILE is `-' or if no FILE argument is given, the standard input", "is read.", diff --git a/examples/loadables/cut.c b/examples/loadables/cut.c index d874034a8..47d7d3ef4 100644 --- a/examples/loadables/cut.c +++ b/examples/loadables/cut.c @@ -63,6 +63,7 @@ static const char sccsid[] = "@(#)cut.c 8.3 (Berkeley) 5/4/95"; #include "builtins.h" #include "shell.h" #include "bashgetopt.h" +#include "common.h" #if !defined (errno) extern int errno; @@ -359,6 +360,8 @@ _cut_strsep(stringp, delim) } static char *cut_doc[] = { + "Select portions of lines.", + "", "Select portions of each line (as specified by LIST) from each FILE", "(by default, the standard input), and write them to the standard output.", "Items specified by LIST are either column positions or fields delimited", diff --git a/examples/loadables/dirname.c b/examples/loadables/dirname.c index 6159560e5..0f30286d2 100644 --- a/examples/loadables/dirname.c +++ b/examples/loadables/dirname.c @@ -2,6 +2,24 @@ /* See Makefile for compilation details. */ +/* + Copyright (C) 1999-2009 Free Software Foundation, Inc. + + This file is part of GNU Bash. + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ + #include "config.h" #if defined (HAVE_UNISTD_H) @@ -11,6 +29,7 @@ #include #include "builtins.h" #include "shell.h" +#include "common.h" dirname_builtin (list) WORD_LIST *list; @@ -78,6 +97,8 @@ dirname_builtin (list) } char *dirname_doc[] = { + "Display directory portion of pathname.", + "", "The STRING is converted to the name of the directory containing", "the filename corresponding to the last pathname component in STRING.", (char *)NULL diff --git a/examples/loadables/finfo.c b/examples/loadables/finfo.c index c1682eda4..778b02bd0 100644 --- a/examples/loadables/finfo.c +++ b/examples/loadables/finfo.c @@ -1,5 +1,8 @@ /* * finfo - print file info + * + * Chet Ramey + * chet@po.cwru.edu */ #ifdef HAVE_CONFIG_H @@ -12,6 +15,7 @@ #include #include #include +#include "posixtime.h" #include "bashansi.h" #include "shell.h" @@ -375,6 +379,8 @@ finfo_builtin(list) } static char *finfo_doc[] = { + "Display information about file attributes.", + "", "Display information about each FILE. Only single operators should", "be supplied. If no options are supplied, a summary of the info", "available about each FILE is printed. If FILE is of the form", diff --git a/examples/loadables/getconf.c b/examples/loadables/getconf.c index 0bf20797d..d3dec415a 100644 --- a/examples/loadables/getconf.c +++ b/examples/loadables/getconf.c @@ -1343,6 +1343,8 @@ getconf_one(list) } static char *getconf_doc[] = { + "Display values of system limits and options.", + "", "getconf writes the current value of a configurable system limit or", "option variable to the standard output.", (char *)NULL diff --git a/examples/loadables/head.c b/examples/loadables/head.c index 905268955..22cf6ab57 100644 --- a/examples/loadables/head.c +++ b/examples/loadables/head.c @@ -2,6 +2,24 @@ /* See Makefile for compilation details. */ +/* + Copyright (C) 1999-2009 Free Software Foundation, Inc. + + This file is part of GNU Bash. + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ + #include "config.h" #include "bashtypes.h" @@ -21,6 +39,7 @@ #include "builtins.h" #include "shell.h" #include "bashgetopt.h" +#include "common.h" #if !defined (errno) extern int errno; @@ -127,6 +146,8 @@ head_builtin (list) } char *head_doc[] = { + "Display lines from beginning of file.", + "", "Copy the first N lines from the input files to the standard output.", "N is supplied as an argument to the `-n' option. If N is not given,", "the first ten lines are copied.", diff --git a/examples/loadables/hello.c b/examples/loadables/hello.c index 1d68c6fc8..bff6e76c5 100644 --- a/examples/loadables/hello.c +++ b/examples/loadables/hello.c @@ -41,8 +41,11 @@ hello_builtin (list) } /* An array of strings forming the `long' documentation for a builtin xxx, - which is printed by `help xxx'. It must end with a NULL. */ + which is printed by `help xxx'. It must end with a NULL. By convention, + the first line is a short description. */ char *hello_doc[] = { + "Sample builtin.", + "", "this is the long doc for the sample hello builtin", (char *)NULL }; diff --git a/examples/loadables/id.c b/examples/loadables/id.c index 945190d7c..877334941 100644 --- a/examples/loadables/id.c +++ b/examples/loadables/id.c @@ -9,6 +9,24 @@ * uid=xxx(chet) gid=xx groups=aa(aname), bb(bname), cc(cname) */ +/* + Copyright (C) 1999-2009 Free Software Foundation, Inc. + + This file is part of GNU Bash. + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ + #include #include #include "bashtypes.h" @@ -294,7 +312,9 @@ id_prall (uname) } char *id_doc[] = { - "return information about user identity", + "Display information about user." + "", + "Return information about user identity", (char *)NULL }; diff --git a/examples/loadables/ln.c b/examples/loadables/ln.c index e3234e3c9..ec736368d 100644 --- a/examples/loadables/ln.c +++ b/examples/loadables/ln.c @@ -2,6 +2,24 @@ /* See Makefile for compilation details. */ +/* + Copyright (C) 1999-2009 Free Software Foundation, Inc. + + This file is part of GNU Bash. + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ + #include "config.h" #include "bashtypes.h" @@ -18,6 +36,7 @@ #include "builtins.h" #include "shell.h" #include "bashgetopt.h" +#include "common.h" #if !defined (errno) extern int errno; @@ -186,6 +205,8 @@ dolink (src, dst, flags) } char *ln_doc[] = { + "Link files.", + "", "Create a new directory entry with the same modes as the original", "file. The -f option means to unlink any existing file, permitting", "the link to occur. The -s option means to create a symbolic link.", diff --git a/examples/loadables/logname.c b/examples/loadables/logname.c index 00cfd19a9..95b7e2189 100644 --- a/examples/loadables/logname.c +++ b/examples/loadables/logname.c @@ -1,5 +1,23 @@ /* logname - print login name of current user */ +/* + Copyright (C) 1999-2009 Free Software Foundation, Inc. + + This file is part of GNU Bash. + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ + #include #if defined (HAVE_UNISTD_H) @@ -11,6 +29,7 @@ #include "builtins.h" #include "shell.h" +#include "common.h" #if !defined (errno) extern int errno; @@ -35,7 +54,9 @@ logname_builtin (list) } char *logname_doc[] = { - "write the current user's login name to the standard output", + "Display user login name.", + "", + "Write the current user's login name to the standard output", "and exit. logname ignores the LOGNAME and USER variables.", "logname ignores any non-option arguments.", (char *)NULL diff --git a/examples/loadables/mkdir.c b/examples/loadables/mkdir.c index cd6e5f96d..f41f171bb 100644 --- a/examples/loadables/mkdir.c +++ b/examples/loadables/mkdir.c @@ -2,6 +2,24 @@ /* See Makefile for compilation details. */ +/* + Copyright (C) 1999-2009 Free Software Foundation, Inc. + + This file is part of GNU Bash. + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ + #include #include "bashtypes.h" @@ -16,6 +34,7 @@ #include "builtins.h" #include "shell.h" #include "bashgetopt.h" +#include "common.h" #if !defined (errno) extern int errno; @@ -191,6 +210,8 @@ make_path (path, nmode, parent_mode) } char *mkdir_doc[] = { + "Create directories.", + "", "Make directories. Create the directories named as arguments, in", "the order specified, using mode rwxrwxrwx as modified by the current", "umask (see `help umask'). The -m option causes the file permission", diff --git a/examples/loadables/mypid.c b/examples/loadables/mypid.c new file mode 100644 index 000000000..135cdb30a --- /dev/null +++ b/examples/loadables/mypid.c @@ -0,0 +1,74 @@ +/* This module should be dynamically loaded with enable -f + * which would create a new builtin named mypid. You'll need + * the source code for GNU bash to recompile this module. + * + * Then, from within bash, enable -f ./mypid enable_mypid, where ./mypid + * is the binary obtained from running make. Hereafter, `${MYPID}' + * is a shell builtin variable. + */ + +#include +#include +#include + +#include "builtins.h" +#include "shell.h" + +#define INIT_DYNAMIC_VAR(var, val, gfunc, afunc) \ + do \ + { SHELL_VAR *v = bind_variable (var, (val), 0); \ + v->dynamic_value = gfunc; \ + v->assign_func = afunc; \ + } \ + while (0) + +static SHELL_VAR * +assign_mypid ( + SHELL_VAR *self, + char *value, + arrayind_t unused, + char *key ) +{ + return (self); +} + +static SHELL_VAR * +get_mypid (SHELL_VAR *var) +{ + int rv; + char *p; + + rv = getpid(); + p = itos (rv); + + FREE (value_cell (var)); + + VSETATTR (var, att_integer); + var_setvalue (var, p); + return (var); +} + +int +enable_mypid_builtin(WORD_LIST *list) +{ + INIT_DYNAMIC_VAR ("MYPID", (char *)NULL, get_mypid, assign_mypid); + + return 0; +} + +char const *enable_mypid_doc[] = { + "Enable $MYPID.", + "", + "Enables use of the ${MYPID} dynamic variable. ", + "It will yield the current pid of a subshell.", + (char *)0 +}; + +struct builtin enable_mypid_struct = { + "enable_mypid", + enable_mypid_builtin, + BUILTIN_ENABLED, + (char**)(void*)enable_mypid_doc, + "enable_mypid N", + 0 +}; diff --git a/examples/loadables/necho.c b/examples/loadables/necho.c index 521ee2c6d..b5673894f 100644 --- a/examples/loadables/necho.c +++ b/examples/loadables/necho.c @@ -3,6 +3,24 @@ /* Sample builtin to be dynamically loaded with enable -f and replace an existing builtin. */ +/* + Copyright (C) 1999-2009 Free Software Foundation, Inc. + + This file is part of GNU Bash. + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ + #include #include "builtins.h" #include "shell.h" @@ -17,6 +35,8 @@ WORD_LIST *list; } char *necho_doc[] = { + "Display arguments.", + "", "Print the arguments to the standard ouput separated", "by space characters and terminated with a newline.", (char *)NULL diff --git a/examples/loadables/pathchk.c b/examples/loadables/pathchk.c index 2e36f8f6b..c5fd24a89 100644 --- a/examples/loadables/pathchk.c +++ b/examples/loadables/pathchk.c @@ -22,6 +22,24 @@ /* See Makefile for compilation details. */ +/* + Copyright (C) 1999-2009 Free Software Foundation, Inc. + + This file is part of GNU Bash. + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ + #include #include @@ -45,6 +63,7 @@ #include "stdc.h" #include "bashgetopt.h" #include "maxpath.h" +#include "common.h" #if !defined (errno) extern int errno; @@ -112,6 +131,8 @@ pathchk_builtin (list) } char *pathchk_doc[] = { + "Check pathnames for validity.", + "", "Check each pathname argument for validity (i.e., it may be used to", "create or access a file without casuing syntax errors) and portability", "(i.e., no filename truncation will result). If the `-p' option is", diff --git a/examples/loadables/perl/Makefile.in b/examples/loadables/perl/Makefile.in index 3af9b8543..d8860bd4d 100644 --- a/examples/loadables/perl/Makefile.in +++ b/examples/loadables/perl/Makefile.in @@ -2,31 +2,33 @@ # Makefile for builtin perl interpreter # # -# Copyright (C) 1998 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. +# Copyright (C) 1998 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 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# # Include some boilerplate Gnu makefile definitions. prefix = @prefix@ - exec_prefix = @exec_prefix@ + bindir = @bindir@ libdir = @libdir@ infodir = @infodir@ includedir = @includedir@ +datarootdir = @datarootdir@ + topdir = @top_srcdir@ BUILD_DIR = @BUILD_DIR@ srcdir = @srcdir@ diff --git a/examples/loadables/print.c b/examples/loadables/print.c index ad658a7f8..e17597b3b 100644 --- a/examples/loadables/print.c +++ b/examples/loadables/print.c @@ -2,6 +2,24 @@ * print -- loadable ksh-93 style print builtin */ +/* + Copyright (C) 1999-2009 Free Software Foundation, Inc. + + This file is part of GNU Bash. + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ + #ifdef HAVE_CONFIG_H # include #endif @@ -17,6 +35,8 @@ #include "builtins.h" #include "stdc.h" #include "bashgetopt.h" +#include "builtext.h" +#include "common.h" #if !defined (errno) extern int errno; @@ -30,6 +50,8 @@ static FILE *ofp; extern char *this_command_name; static char *print_doc[] = { + "Display arguments.", + "", "Output the arguments. The -f option means to use the argument as a", "format string as would be supplied to printf(1). The rest of the", "options are as in ksh.", diff --git a/examples/loadables/printenv.c b/examples/loadables/printenv.c index 16f398fc8..17c4c0211 100644 --- a/examples/loadables/printenv.c +++ b/examples/loadables/printenv.c @@ -5,12 +5,31 @@ * */ +/* + Copyright (C) 1999-2009 Free Software Foundation, Inc. + + This file is part of GNU Bash. + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ + #include #include #include "builtins.h" #include "shell.h" #include "bashgetopt.h" +#include "common.h" extern char **export_env; @@ -57,7 +76,9 @@ printenv_builtin (list) } char *printenv_doc[] = { - "print values of environment variables", + "Display environment.", + "", + "Print names and values of environment variables", (char *)NULL }; diff --git a/examples/loadables/push.c b/examples/loadables/push.c index 497ecd0e7..b07607338 100644 --- a/examples/loadables/push.c +++ b/examples/loadables/push.c @@ -3,6 +3,24 @@ * */ +/* + Copyright (C) 1999-2009 Free Software Foundation, Inc. + + This file is part of GNU Bash. + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ + #include #include #include @@ -11,6 +29,7 @@ #include "shell.h" #include "jobs.h" #include "bashgetopt.h" +#include "common.h" #ifndef errno extern int errno; @@ -78,6 +97,8 @@ push_builtin (list) } char *push_doc[] = { + "Create child shell.", + "", "Create a child that is an exact duplicate of the running shell", "and wait for it to exit. The $SHLVL, $!, $$, and $PPID variables", "are adjusted in the child. The return value is the exit status", diff --git a/examples/loadables/realpath.c b/examples/loadables/realpath.c index 16478b79f..ffcbef8bc 100644 --- a/examples/loadables/realpath.c +++ b/examples/loadables/realpath.c @@ -18,6 +18,24 @@ * chet@po.cwru.edu */ +/* + Copyright (C) 1999-2009 Free Software Foundation, Inc. + + This file is part of GNU Bash. + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ + #include "config.h" #include @@ -34,6 +52,7 @@ #include "builtins.h" #include "shell.h" #include "bashgetopt.h" +#include "common.h" #ifndef errno extern int errno; @@ -67,14 +86,14 @@ WORD_LIST *list; vflag = 1; break; default: - usage(); + builtin_usage(); } } list = loptend; if (list == 0) - usage(); + builtin_usage(); for (es = EXECUTION_SUCCESS; list; list = list->next) { p = list->word->word; @@ -101,6 +120,8 @@ WORD_LIST *list; } char *realpath_doc[] = { + "Display pathname in canonical form.", + "", "Display the canonicalized version of each PATHNAME argument, resolving", "symbolic links. The -c option checks whether or not each resolved name", "exists. The -s option produces no output; the exit status determines the", diff --git a/examples/loadables/rmdir.c b/examples/loadables/rmdir.c index 8d0f06ac6..0cfe6c792 100644 --- a/examples/loadables/rmdir.c +++ b/examples/loadables/rmdir.c @@ -2,12 +2,31 @@ /* See Makefile for compilation details. */ +/* + Copyright (C) 1999-2009 Free Software Foundation, Inc. + + This file is part of GNU Bash. + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ + #include "config.h" #include #include #include "builtins.h" #include "shell.h" +#include "common.h" #if !defined (errno) extern int errno; @@ -33,6 +52,8 @@ rmdir_builtin (list) } char *rmdir_doc[] = { + "Remove directory.", + "", "rmdir removes the directory entry specified by each argument,", "provided the directory is empty.", (char *)NULL diff --git a/examples/loadables/sleep.c b/examples/loadables/sleep.c index 10a62cf14..a9bd36f3c 100644 --- a/examples/loadables/sleep.c +++ b/examples/loadables/sleep.c @@ -3,6 +3,25 @@ * * usage: sleep seconds[.fraction] */ + +/* + Copyright (C) 1999-2009 Free Software Foundation, Inc. + + This file is part of GNU Bash. + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ + #include "config.h" #include "bashtypes.h" @@ -27,6 +46,7 @@ #include "shell.h" #include "builtins.h" +#include "common.h" #define RETURN(x) \ do { \ @@ -35,77 +55,6 @@ return (x); \ } while (0) -#if defined (HAVE_TIMEVAL) && defined (HAVE_SELECT) -static int -fsleep(sec, usec) -long sec, usec; -{ - struct timeval tv; - - tv.tv_sec = sec; - tv.tv_usec = usec; - - return select(0, (fd_set *)0, (fd_set *)0, (fd_set *)0, &tv); -} -#else /* !HAVE_TIMEVAL || !HAVE_SELECT */ -static int -fsleep(sec, usec) -long sec, usec; -{ - if (usec >= 500000) /* round */ - sec++; - return (sleep(sec)); -} -#endif /* !HAVE_TIMEVAL || !HAVE_SELECT */ - -/* - * An incredibly simplistic floating point converter. - */ -static int multiplier[7] = { 1, 100000, 10000, 1000, 100, 10, 1 }; - -static int -convert(s, sp, usp) -char *s; -long *sp, *usp; -{ - int n; - long sec, usec; - char *p; - - sec = usec = 0; - -#define DECIMAL '.' - - for (p = s; p && *p; p++) { - if (*p == DECIMAL) /* decimal point */ - break; - if (DIGIT(*p) == 0) - RETURN(0); - sec = (sec * 10) + (*p - '0'); - } - - if (*p == 0) - RETURN(1); - - if (*p == DECIMAL) - p++; - - /* Look for up to six digits past a decimal point. */ - for (n = 0; n < 6 && p[n]; n++) { - if (DIGIT(p[n]) == 0) - RETURN(0); - usec = (usec * 10) + (p[n] - '0'); - } - - /* Now convert to millionths */ - usec *= multiplier[n]; - - if (n == 6 && p[6] >= '5' && p[6] <= '9') - usec++; /* round up 1 */ - - RETURN(1); -} - int sleep_builtin (list) WORD_LIST *list; @@ -122,7 +71,7 @@ WORD_LIST *list; return (EX_USAGE); } - if (convert(list->word->word, &sec, &usec)) { + if (uconvert(list->word->word, &sec, &usec)) { fsleep(sec, usec); return(EXECUTION_SUCCESS); } @@ -132,6 +81,8 @@ WORD_LIST *list; } static char *sleep_doc[] = { + "Suspend execution for specified period.", + "" "sleep suspends execution for a minimum of SECONDS[.FRACTION] seconds.", (char *)NULL }; diff --git a/examples/loadables/strftime.c b/examples/loadables/strftime.c index 92f489e38..2de09e348 100644 --- a/examples/loadables/strftime.c +++ b/examples/loadables/strftime.c @@ -2,6 +2,24 @@ /* See Makefile for compilation details. */ +/* + Copyright (C) 1999-2009 Free Software Foundation, Inc. + + This file is part of GNU Bash. + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ + #include #if defined (HAVE_UNISTD_H) @@ -85,6 +103,8 @@ strftime_builtin (list) /* An array of strings forming the `long' documentation for a builtin xxx, which is printed by `help xxx'. It must end with a NULL. */ char *strftime_doc[] = { + "Display formatted time.", + "", "Converts date and time format to a string and displays it on the", "standard output. If the optional second argument is supplied, it", "is used as the number of seconds since the epoch to use in the", diff --git a/examples/loadables/sync.c b/examples/loadables/sync.c index 44d4e095e..d91852e73 100644 --- a/examples/loadables/sync.c +++ b/examples/loadables/sync.c @@ -1,5 +1,23 @@ /* sync - sync the disks by forcing pending filesystem writes to complete */ +/* + Copyright (C) 1999-2009 Free Software Foundation, Inc. + + This file is part of GNU Bash. + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ + #include #ifdef HAVE_UNISTD_H @@ -18,7 +36,9 @@ sync_builtin (list) } char *sync_doc[] = { - "force completion of pending disk writes", + "Sync disks.", + "" + "Force completion of pending disk writes", (char *)NULL }; diff --git a/examples/loadables/tee.c b/examples/loadables/tee.c index 934abdab1..8b5715f25 100644 --- a/examples/loadables/tee.c +++ b/examples/loadables/tee.c @@ -2,6 +2,24 @@ /* See Makefile for compilation details. */ +/* + Copyright (C) 1999-2009 Free Software Foundation, Inc. + + This file is part of GNU Bash. + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ + #include "config.h" #include "bashtypes.h" @@ -22,6 +40,7 @@ #include "builtins.h" #include "shell.h" #include "bashgetopt.h" +#include "common.h" #if !defined (errno) extern int errno; @@ -140,6 +159,8 @@ tee_builtin (list) } char *tee_doc[] = { + "Duplicate standard output.", + "", "Copy standard input to standard output, making a copy in each", "filename argument. If the `-a' option is gived, the specified", "files are appended to, otherwise they are overwritten. If the", diff --git a/examples/loadables/template.c b/examples/loadables/template.c index 7bb3f9f35..3a5814f33 100644 --- a/examples/loadables/template.c +++ b/examples/loadables/template.c @@ -43,6 +43,9 @@ template_builtin (list) } char *template_doc[] = { + "Short description.", + "" + "Longer description of builtin and usage.", (char *)NULL }; diff --git a/examples/loadables/truefalse.c b/examples/loadables/truefalse.c index e77c74ca0..113e88f7d 100644 --- a/examples/loadables/truefalse.c +++ b/examples/loadables/truefalse.c @@ -1,8 +1,29 @@ /* true and false builtins */ +/* + Copyright (C) 1999-2009 Free Software Foundation, Inc. + + This file is part of GNU Bash. + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ + +#include + #include "bashtypes.h" #include "shell.h" #include "builtins.h" +#include "common.h" true_builtin (list) WORD_LIST *list; @@ -17,11 +38,15 @@ false_builtin (list) } static char *true_doc[] = { + "Exit successfully.", + "", "Return a successful result.", (char *)NULL }; static char *false_doc[] = { + "Exit unsuccessfully.", + "", "Return an unsuccessful result.", (char *)NULL }; diff --git a/examples/loadables/tty.c b/examples/loadables/tty.c index 2183123f2..1d88506ca 100644 --- a/examples/loadables/tty.c +++ b/examples/loadables/tty.c @@ -2,12 +2,31 @@ /* See Makefile for compilation details. */ +/* + Copyright (C) 1999-2009 Free Software Foundation, Inc. + + This file is part of GNU Bash. + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ + #include "config.h" #include #include "builtins.h" #include "shell.h" #include "bashgetopt.h" +#include "common.h" extern char *ttyname (); @@ -40,6 +59,8 @@ tty_builtin (list) } char *tty_doc[] = { + "Display terminal name.", + "", "tty writes the name of the terminal that is opened for standard", "input to standard output. If the `-s' option is supplied, nothing", "is written; the exit status determines whether or not the standard", diff --git a/examples/loadables/uname.c b/examples/loadables/uname.c index 9f450cdad..a1bddd543 100644 --- a/examples/loadables/uname.c +++ b/examples/loadables/uname.c @@ -5,6 +5,24 @@ * */ +/* + Copyright (C) 1999-2009 Free Software Foundation, Inc. + + This file is part of GNU Bash. + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ + #include #include @@ -27,6 +45,7 @@ struct utsname { #include "builtins.h" #include "shell.h" #include "bashgetopt.h" +#include "common.h" #define FLAG_SYSNAME 0x01 /* -s */ #define FLAG_NODENAME 0x02 /* -n */ @@ -125,7 +144,9 @@ uprint (flag, info) } char *uname_doc[] = { - "display information about the system", + "Display system information.", + "", + "Display information about the system hardware and OS.", (char *)NULL }; diff --git a/examples/loadables/unlink.c b/examples/loadables/unlink.c index 8c81ad02d..07e3f3d45 100644 --- a/examples/loadables/unlink.c +++ b/examples/loadables/unlink.c @@ -3,6 +3,24 @@ /* Should only be used to remove directories by a superuser prepared to let fsck clean up the file system. */ +/* + Copyright (C) 1999-2009 Free Software Foundation, Inc. + + This file is part of GNU Bash. + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ + #include #ifdef HAVE_UNISTD_H @@ -14,6 +32,7 @@ #include "builtins.h" #include "shell.h" +#include "common.h" #ifndef errno extern int errno; @@ -39,6 +58,8 @@ unlink_builtin (list) char *unlink_doc[] = { "Remove a directory entry.", + "", + "Forcibly remove a directory entry, even if it's a directory.", (char *)NULL }; diff --git a/examples/loadables/whoami.c b/examples/loadables/whoami.c index 41fd5c487..6f8471ac3 100644 --- a/examples/loadables/whoami.c +++ b/examples/loadables/whoami.c @@ -2,12 +2,31 @@ * whoami - print out username of current user */ +/* + Copyright (C) 1999-2009 Free Software Foundation, Inc. + + This file is part of GNU Bash. + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ + #include #include #include "builtins.h" #include "shell.h" #include "bashgetopt.h" +#include "common.h" whoami_builtin (list) WORD_LIST *list; @@ -38,7 +57,9 @@ whoami_builtin (list) } char *whoami_doc[] = { - "display name of current user", + "Print user name", + "", + "Display name of current user.", (char *)NULL }; diff --git a/examples/obashdb/README b/examples/obashdb/README index 3373f5f80..2f643d196 100644 --- a/examples/obashdb/README +++ b/examples/obashdb/README @@ -1,12 +1,3 @@ -This is a modified version of the Korn Shell debugger from Bill -Rosenblatt's `Learning the Korn Shell', published by O'Reilly -and Associates (ISBN 1-56592-054-6). - -The original `kshdb' is available for anonymous FTP with the URL - -http://examples.oreilly.com/korn/ksh.tar.Z - -A revised edition is available at: - -http://examples.oreilly.com/korn2/korn2_examples.tar.gz - +This is a sample implementation of a bash debugger. It is not the same +as the project available from http://bashdb.sourceforge.net, and has been +deprecated in favor of that implementation. diff --git a/examples/obashdb/bashdb b/examples/obashdb/bashdb old mode 100644 new mode 100755 index 97d287ddf..560cb7cc7 --- a/examples/obashdb/bashdb +++ b/examples/obashdb/bashdb @@ -1,33 +1,581 @@ -# kshdb - Korn Shell Debugger main file -# adapted from 'Learning the Korn Shell' by Bill Rosenblatt (O'Reilly) -# by Cigy Cyriac (cigy@felix.tulblr.unisys.com) -# Main driver: constructs full script (with preamble) and runs it +#! /bin/bash +# bashdb - Bash shell debugger +# +# Adapted from an idea in O'Reilly's `Learning the Korn Shell' +# Copyright (C) 1993-1994 O'Reilly and Associates, Inc. +# Copyright (C) 1998, 1999, 2001 Gary V. Vaughan > +# +# 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 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. -echo 'Bourne-Again Shell Debugger version 0.1' +# NOTE: +# +# This program requires bash 2.x. +# If bash 2.x is installed as "bash2", you can invoke bashdb like this: +# +# DEBUG_SHELL=/bin/bash2 /bin/bash2 bashdb script.sh -_pname=${0##*/} +# TODO: +# +# break [regexp] +# cond [break] [condition] +# tbreak [regexp|+lines] +# restart +# Variable watchpoints +# Instrument `source' and `.' files in $_potbelliedpig +# be cleverer about lines we allow breakpoints to be set on +# break [function_name] -[ $# -eq 0 ] && { - echo "${_pname}: usage: ${_pname} " - exit 1 -} +echo 'Bash Debugger version 1.2.4' + +export _dbname=${0##*/} + +if test $# -lt 1; then + echo "$_dbname: Usage: $_dbname filename" >&2 + exit 1 +fi _guineapig=$1 -[ -r $_guineapig ] || { - echo "${_pname}: cannot read $_guineapig." >&2 - exit 1 -} +if test ! -r $1; then + echo "$_dbname: Cannot read file '$_guineapig'." >&2 + exit 1 +fi + shift -_tmpdir=/tmp -_libdir=. -_dbgfile=$_tmpdir/bashdb$$ #temp file for script being debugged +__debug=${TMPDIR-/tmp}/bashdb.$$ +sed -e '/^# bashdb - Bash shell debugger/,/^# -- DO NOT DELETE THIS LINE -- /d' "$0" > $__debug +cat $_guineapig >> $__debug +exec ${DEBUG_SHELL-bash} $__debug $_guineapig "$@" -cat $_libdir/bashdb.pre $_guineapig > $_dbgfile -if [ -f "$BASH" ]; then - exec $BASH $_dbgfile $_guineapig $_tmpdir $_libdir "$@" -else - exec bash $_dbgfile $_guineapig $_tmpdir $_libdir "$@" -fi -# end of bashdb +exit 1 + +# -- DO NOT DELETE THIS LINE -- The program depends on it + +#bashdb preamble +# $1 name of the original guinea pig script + +__debug=$0 +_guineapig=$1 +__steptrap_calls=0 + +shift + +shopt -s extglob # turn on extglob so we can parse the debugger funcs + +function _steptrap +{ + local i=0 + + _curline=$1 + + if (( ++__steptrap_calls > 1 && $_curline == 1 )); then + return + fi + + if [ -n "$_disps" ]; then + while (( $i < ${#_disps[@]} )) + do + if [ -n "${_disps[$i]}" ]; then + _msg "${_disps[$i]}: \c" + eval _msg ${_disps[$i]} + fi + let i=$i+1 + done + fi + + if (( $_trace )); then + _showline $_curline + fi + + if (( $_steps >= 0 )); then + let _steps="$_steps - 1" + fi + + if _at_linenumbp ; then + _msg "Reached breakpoint at line $_curline" + _showline $_curline + _cmdloop + elif [ -n "$_brcond" ] && eval $_brcond; then + _msg "Break condition $_brcond true at line $_curline" + _showline $_curline + _cmdloop + elif (( $_steps == 0 )); then + # Assuming a real script will have the "#! /bin/sh" at line 1, + # assume that when $_curline == 1 we are inside backticks. + if (( ! $_trace )); then + _msg "Stopped at line $_curline" + _showline $_curline + fi + _cmdloop + fi +} + +function _setbp +{ + local i f line _x + + if [ -z "$1" ]; then + _listbp + return + fi + + eval "$_seteglob" + + if [[ $1 == *(\+)[1-9]*([0-9]) ]]; then + case $1 in + +*) + # normalize argument, then double it (+2 -> +2 + 2 = 4) + _x=${1##*([!1-9])} # cut off non-numeric prefix + _x=${x%%*([!0-9])} # cut off non-numeric suffix + f=$(( $1 + $_x )) + ;; + *) + f=$(( $1 )) + ;; + esac + + # find the next valid line + line="${_lines[$f]}" + while _invalidbreakp $f + do + (( f++ )) + line="${_lines[$f]}" + done + + if (( $f != $1 )) + then + _msg "Line $1 is not a valid breakpoint" + fi + + if [ -n "${_lines[$f]}" ]; then + _linebp[$1]=$1; + _msg "Breakpoint set at line $f" + else + _msg "Breakpoints can only be set on executable lines" + fi + else + _msg "Please specify a numeric line number" + fi + + eval "$_resteglob" +} + +function _listbp +{ + local i + + if [ -n "$_linebp" ]; then + _msg "Breakpoints:" + for i in ${_linebp[*]}; do + _showline $i + done + else + _msg "No breakpoints have been set" + fi +} + +function _clearbp +{ + local i + + if [ -z "$1" ]; then + read -e -p "Delete all breakpoints? " + case $REPLY in + [yY]*) + unset _linebp[*] + _msg "All breakpoints have been cleared" + ;; + esac + return 0 + fi + + eval "$_seteglob" + + if [[ $1 == [1-9]*([0-9]) ]]; then + unset _linebp[$1] + _msg "Breakpoint cleared at line $1" + else + _msg "Please specify a numeric line number" + fi + + eval "$_resteglob" +} + +function _setbc +{ + if (( $# > 0 )); then + _brcond=$@ + _msg "Break when true: $_brcond" + else + _brcond= + _msg "Break condition cleared" + fi +} + +function _setdisp +{ + if [ -z "$1" ]; then + _listdisp + else + _disps[${#_disps[@]}]="$1" + if (( ${#_disps[@]} < 10 )) + then + _msg " ${#_disps[@]}: $1" + else + _msg "${#_disps[@]}: $1" + fi + fi +} + +function _listdisp +{ + local i=0 j + + if [ -n "$_disps" ]; then + while (( $i < ${#_disps[@]} )) + do + let j=$i+1 + if (( ${#_disps[@]} < 10 )) + then + _msg " $j: ${_disps[$i]}" + else + _msg "$j: ${_disps[$i]}" + fi + let i=$j + done + else + _msg "No displays have been set" + fi +} + +function _cleardisp +{ + if (( $# < 1 )) ; then + read -e -p "Delete all display expressions? " + case $REPLY in + [Yy]*) + unset _disps[*] + _msg "All breakpoints have been cleared" + ;; + esac + return 0 + fi + + eval "$_seteglob" + + if [[ $1 == [1-9]*([0-9]) ]]; then + unset _disps[$1] + _msg "Display $i has been cleared" + else + _listdisp + _msg "Please specify a numeric display number" + fi + + eval "$_resteglob" +} + +# usage _ftrace -u funcname [funcname...] +function _ftrace +{ + local _opt=-t _tmsg="enabled" _func + if [[ $1 == -u ]]; then + _opt=+t + _tmsg="disabled" + shift + fi + for _func; do + declare -f $_opt $_func + _msg "Tracing $_tmsg for function $_func" + done +} + +function _cmdloop +{ + local cmd args + + while read -e -p "bashdb> " cmd args; do + test -n "$cmd" && history -s "$cmd $args" # save on history list + test -n "$cmd" || { set $_lastcmd; cmd=$1; shift; args=$*; } + if [ -n "$cmd" ] + then + case $cmd in + b|br|bre|brea|break) + _setbp $args + _lastcmd="break $args" + ;; + co|con) + _msg "ambiguous command: '$cmd', condition, continue?" + ;; + cond|condi|condit|conditi|conditio|condition) + _setbc $args + _lastcmd="condition $args" + ;; + c|cont|conti|contin|continu|continue) + _lastcmd="continue" + return + ;; + d) + _msg "ambiguous command: '$cmd', delete, display?" + ;; + de|del|dele|delet|delete) + _clearbp $args + _lastcmd="delete $args" + ;; + di|dis|disp|displ|displa|display) + _setdisp $args + _lastcmd="display $args" + ;; + f|ft|ftr|ftra|ftrace) + _ftrace $args + _lastcmd="ftrace $args" + ;; + \?|h|he|hel|help) + _menu + _lastcmd="help" + ;; + l|li|lis|list) + _displayscript $args + # _lastcmd is set in the _displayscript function + ;; + p|pr|pri|prin|print) + _examine $args + _lastcmd="print $args" + ;; + q|qu|qui|quit) + exit + ;; + s|st|ste|step|n|ne|nex|next) + let _steps=${args:-1} + _lastcmd="next $args" + return + ;; + t|tr|tra|trac|trace) + _xtrace + ;; + u|un|und|undi|undis|undisp|undispl|undispla|undisplay) + _cleardisp $args + _lastcmd="undisplay $args" + ;; + !*) + eval ${cmd#!} $args + _lastcmd="$cmd $args" + ;; + *) + _msg "Invalid command: '$cmd'" + ;; + esac + fi + done +} + +function _at_linenumbp +{ + [[ -n ${_linebp[$_curline]} ]] +} + +function _invalidbreakp +{ + local line=${_lines[$1]} + + # XXX - should use shell patterns + if test -z "$line" \ + || expr "$line" : '[ \t]*#.*' > /dev/null \ + || expr "$line" : '[ \t]*;;[ \t]*$' > /dev/null \ + || expr "$line" : '[ \t]*[^)]*)[ \t]*$' > /dev/null \ + || expr "$line" : '[ \t]*;;[ \t]*#.**$' > /dev/null \ + || expr "$line" : '[ \t]*[^)]*)[ \t]*;;[ \t]*$' > /dev/null \ + || expr "$line" : '[ \t]*[^)]*)[ \t]*;;*[ \t]*#.*$' > /dev/null + then + return 0 + fi + + return 1 +} + +function _examine +{ + if [ -n "$*" ]; then + _msg "$args: \c" + eval _msg $args + else + _msg "Nothing to print" + fi +} + +function _displayscript +{ + local i j start end bp cl + + if (( $# == 1 )); then # list 5 lines on either side of $1 + if [ $1 = "%" ]; then + let start=1 + let end=${#_lines[@]} + else + let start=$1-5 + let end=$1+5 + fi + elif (( $# > 1 )); then # list between start and end + if [ $1 = "^" ]; then + let start=1 + else + let start=$1 + fi + + if [ $2 = "\$" ]; then + let end=${#_lines[@]} + else + let end=$2 + fi + else # list 5 lines on either side of current line + let start=$_curline-5 + let end=$_curline+5 + fi + + # normalize start and end + if (( $start < 1 )); then + start=1 + fi + if (( $end > ${#_lines[@]} )); then + end=${#_lines[@]} + fi + + cl=$(( $end - $start )) + if (( $cl > ${LINES-24} )); then + pager=${PAGER-more} + else + pager=cat + fi + + i=$start + ( while (( $i <= $end )); do + _showline $i + let i=$i+1 + done ) 2>&1 | $pager + + # calculate the next block of lines + start=$(( $end + 1 )) + end=$(( $start + 11 )) + if (( $end > ${#_lines[@]} )) + then + end=${#_lines[@]} + fi + + _lastcmd="list $start $end" +} + +function _xtrace +{ + let _trace="! $_trace" + if (( $_trace )); then + _msg "Execution trace on" + else + _msg "Execution trace off" + fi +} + +function _msg +{ + echo -e "$@" >&2 +} + +function _showline +{ + local i=0 bp=' ' line=$1 cl=' ' + + if [[ -n ${_linebp[$line]} ]]; then + bp='*' + fi + + if (( $_curline == $line )); then + cl=">" + fi + + if (( $line < 100 )); then + _msg "${_guineapig/*\//}:$line $bp $cl${_lines[$line]}" + elif (( $line < 10 )); then + _msg "${_guineapig/*\//}:$line $bp $cl${_lines[$line]}" + elif (( $line > 0 )); then + _msg "${_guineapig/*\//}:$line $bp $cl${_lines[$line]}" + fi +} + +function _cleanup +{ + rm -f $__debug $_potbelliedpig 2> /dev/null +} + +function _menu +{ + _msg 'bashdb commands: + break N set breakpoint at line N + break list breakpoints & break condition + condition foo set break condition to foo + condition clear break condition + delete N clear breakpoint at line N + delete clear all breakpoints + display EXP evaluate and display EXP for each debug step + display show a list of display expressions + undisplay N remove display expression N + list N M display all lines of script between N and M + list N display 5 lines of script either side of line N + list display 5 lines if script either side of current line + continue continue execution upto next breakpoint + next [N] execute [N] statements (default 1) + print expr prints the value of an expression + trace toggle execution trace on/off + ftrace [-u] func make the debugger step into function FUNC + (-u turns off tracing FUNC) + help print this menu + ! string passes string to a shell + quit quit' +} + +shopt -u extglob + +HISTFILE=~/.bashdb_history +set -o history +set +H + +# strings to save and restore the setting of `extglob' in debugger functions +# that need it +_seteglob='local __eopt=-u ; shopt -q extglob && __eopt=-s ; shopt -s extglob' +_resteglob='shopt $__eopt extglob' + +_linebp=() +let _trace=0 +let _i=1 + +# Be careful about quoted newlines +_potbelliedpig=${TMPDIR-/tmp}/${_guineapig/*\//}.$$ +sed 's,\\$,\\\\,' $_guineapig > $_potbelliedpig + +_msg "Reading source from file: $_guineapig" +while read; do + _lines[$_i]=$REPLY + let _i=$_i+1 +done < $_potbelliedpig + +trap _cleanup EXIT +# Assuming a real script will have the "#! /bin/sh" at line 1, +# don't stop at line 1 on the first run +let _steps=1 +LINENO=-1 +trap '_steptrap $LINENO' DEBUG diff --git a/examples/bashdb/bashdb.el b/examples/obashdb/bashdb.el similarity index 100% rename from examples/bashdb/bashdb.el rename to examples/obashdb/bashdb.el diff --git a/examples/obashdb/bashdb.fns b/examples/obashdb/bashdb.fns deleted file mode 100644 index ac0612c05..000000000 --- a/examples/obashdb/bashdb.fns +++ /dev/null @@ -1,237 +0,0 @@ -# bashdb.fns - Bourne-Again Shell Debugger functions - -_BUFSIZ=100 - -# Here after each statement in script being debugged. -# Handle single-step and breakpoints. -_steptrap() { - let _curline=$1-1 # no. of line that just ran - let "$_curline < 1" && let _curline=1 - - let "$_curline > $_firstline+$_BUFSIZ" && _readin $_curline - - let " $_trace" && - _msg "$PS4, line $_curline: ${_lines[$(($_curline-$_firstline+1))]}" - - - # if in step mode, decrement counter - let " $_steps >= 0" && let _steps="$_steps - 1" - - # first check if line num or string brkpt. reached - if _at_linenumbp || _at_stringbp; then - _msg "Reached breakpoint at line $_curline" - _cmdloop # enter debugger - - # if not, check whether break condition exists and is true - elif [ -n "$_brcond" ] && eval $_brcond; then - _msg "Break condition $_brcond true at line $_curline" - _cmdloop # enter debugger - - # next, check if step mode and no. of steps is up - elif let "$_steps == 0"; then - _msg "Stopped at line $_curline" - _cmdloop # enter debugger - fi -} - - -# Debugger command loop. -# Here at start of debugger session, when brkpt. reached, or after single-step. -_cmdloop() { - local cmd args - -# added support for default command (last one entered) - - while read -e -p "bashdb> [$lastcmd $lastargs] " cmd args; do - if [ -z "$cmd" ]; then - cmd=$lastcmd - args=$lastargs - fi - - lastcmd="$cmd" - lastargs=$args - -# made commands to be debugger commands by default, no need for '*' prefix - - case $cmd in - bp ) _setbp $args ;; #set brkpt at line num or string - - bc ) _setbc $args ;; # set break condition - - cb ) _clearbp ;; # clear all brkpts. - - g ) return ;; # start/resume execution - - s ) let _steps=${args:-1} - return ;; # single-step N times(default 1) - - x ) _xtrace ;; # toggle execution trace - - pr ) _print $args ;; # print lines in file - - \? | h | help ) _menu ;; # print command menu - - hi ) history ;; # show command history - - q ) _cleanup; exit ;; # quit - - \! ) eval $args ;; # run shell command - - * ) _msg "Invalid command: $cmd" ; _menu ;; - esac - done -} - - -# see if next line no. is a brkpt. -_at_linenumbp() { - if [ -z "${_linebp}" ]; then - return 1 - fi - echo "${_curline}" | grep -E "(${_linebp%\|})" >/dev/null 2>&1 - return $? -} - - -# search string brkpts to see if next line in script matches. -_at_stringbp() { - local l; - - if [ -z "$_stringbp" ]; then - return 1; - fi - l=${_lines[$_curline-$_firstline+1]} - echo "${l}" | grep -E "\\*(${_stringbp%\|})\\*" >/dev/null 2>&1 - return $? -} - - -# print message to stderr -_msg() { - echo -e "$@" >&2 -} - - -# set brkpt(s) at given line numbers and/or strings -# by appending lines to brkpt file -_setbp() { - declare -i n - case "$1" in - "") _listbp ;; - [0-9]*) #number, set brkpt at that line - n=$1 - _linebp="${_linebp}$n|" - _msg "Breakpoint at line " $1 - ;; - *) #string, set brkpt at next line w/string - _stringbp="${_stringbp}$@|" - _msg "Breakpoint at next line containing $@." - ;; - esac -} - - -# list brkpts and break condition. -_listbp() { - _msg "Breakpoints at lines:" - _msg "${_linebp//\|/ }" - _msg "Breakpoints at strings:" - _msg "${_stringbp//\|/ }" - _msg "Break on condition:" - _msg "$_brcond" -} - - -# set or clear break condition -_setbc() { - if [ -n "$@" ] ; then - _brcond=$args - _msg "Break when true: $_brcond" - else - _brcond= - _msg "Break condition cleared" - fi -} - - -# clear all brkpts -_clearbp() { - _linebp= - _stringbp= - _msg "All breakpoints cleared" -} - - -# toggle execution trace feature -_xtrace() { - let _trace="! $_trace" - - _msg "Execution trace \c" - let " $_trace" && _msg "on." || _msg "off." -} - - -# print command menu -_menu() { - -# made commands to be debugger commands by default, no need for '*' prefix - - _msg 'bashdb commands: - bp N set breakpoint at line N - bp string set breakpoint at next line containing "string" - bp list breakpoints and break condition - bc string set break condition to "string" - bc clear break condition - cb clear all breakpoints - g start/resume execution - s [N] execute N statements (default 1) - x toggle execution trace on/off (default on) - pr [start|.] [cnt] print "cnt" lines from line no. "start" - ?, h, help print this menu - hi show command history - q quit - - ! cmd [args] execute command "cmd" with "args" - - default: last command (in "[ ]" at the prompt) - - Readline command line editing (emacs/vi mode) is available' -} - - -# erase temp files before exiting -_cleanup() { - rm $_dbgfile 2>/dev/null -} - - -# read $_BUFSIZ lines from $_guineapig into _lines array, starting from line $1 -# save number of first line read in _firstline -_readin() { - declare -i _i=1 - let _firstline=$1 - - SEDCMD="$_firstline,$(($_firstline+$_BUFSIZ))p" - - sed -n "$SEDCMD" $_guineapig > /tmp/_script.$$ - while read -r _lines[$_i]; do - _i=_i+1 - done < /tmp/_script.$$ - rm -f /tmp/_script.$$ 2>/dev/null -} - -_print() { - typeset _start _cnt - - if [ -z "$1" ] || [ "$1" = . ]; then - _start=$_curline - else - _start=$1 - fi - - _cnt=${2:-9} - - SEDCMD="$_start,$(($_start+$_cnt))p" - - pr -tn $_guineapig | sed -n "$SEDCMD" -} diff --git a/examples/obashdb/bashdb.pre b/examples/obashdb/bashdb.pre deleted file mode 100644 index c9cdb7220..000000000 --- a/examples/obashdb/bashdb.pre +++ /dev/null @@ -1,37 +0,0 @@ -# bashdb.pre - Bourne-Again Shell Debugger preamble file -# prepended to script being ddebugged -#arguments: -# $1 = name of original guineapig script -# $2 = dir where temp files are stored -# $3 = dir where bashdb.pre and bashdb.fns are stored - -# separate history file for bashdb -HISTFILE=~/.bashdb_history -set -o history -set +H - -# prompt for trace line -PS4="${1}" - -_dbgfile=$0 -_guineapig=$1 -_tmpdir=$2 -_libdir=$3 -shift 3 #move user's args into place - -. $_libdir/bashdb.fns #read in the debugger functions - -_linebp= -_stringbp= -let _trace=1 #init execution trace flag to on - -#read guineapig file into _lines array -_readin 1 - -trap _cleanup EXIT #erase files before exiting - -let _steps=1 #no. of statements to run after setting trap -#set LINENO, gets incremented to 1 -LINENO=0 -trap '_steptrap $LINENO' DEBUG -: diff --git a/examples/scripts/timeout2 b/examples/scripts/timeout2 new file mode 100755 index 000000000..2c6fb7796 --- /dev/null +++ b/examples/scripts/timeout2 @@ -0,0 +1,29 @@ +#!/bin/sh + +# Author: P@draigBrady.com +# V1.0 : Nov 3 2006 +# +# Execute a command with a timeout. +# If the timeout occurs the exit status is 128 +# +# Note there is an asynchronous equivalent of this +# script packaged with bash (under /usr/share/doc/ in my distro), +# which I only noticed after writing this. + +if [ "$#" -lt "2" ]; then + echo "Usage: `basename $0` timeout_in_seconds command" >&2 + echo "Example: `basename $0` 2 sleep 3 || echo timeout" >&2 + exit 1 +fi + +cleanup() +{ + kill %1 2>/dev/null #kill sleep $timeout if running + kill %2 2>/dev/null && exit 128 #kill monitored job if running +} + +set -m #enable job control +trap "cleanup" 17 #cleanup after timeout or command +timeout=$1 && shift #first param is timeout in seconds +sleep $timeout& #start the timeout +"$@" #start the job diff --git a/examples/scripts/timeout3 b/examples/scripts/timeout3 new file mode 100644 index 000000000..5c19d2ec9 --- /dev/null +++ b/examples/scripts/timeout3 @@ -0,0 +1,91 @@ +#!/bin/bash +# +# The Bash shell script executes a command with a time-out. +# Upon time-out expiration SIGTERM (15) is sent to the process. If the signal +# is blocked, then the subsequent SIGKILL (9) terminates it. +# +# Based on the Bash documentation example. + +# Hello Chet, +# please find attached a "little easier" :-) to comprehend +# time-out example. If you find it suitable, feel free to include +# anywhere: the very same logic as in the original examples/scripts, a +# little more transparent implementation to my taste. +# +# Dmitry V Golovashkin + +scriptName="${0##*/}" + +declare -i DEFAULT_TIMEOUT=9 +declare -i DEFAULT_INTERVAL=1 +declare -i DEFAULT_DELAY=1 + +# Timeout. +declare -i timeout=DEFAULT_TIMEOUT +# Interval between checks if the process is still alive. +declare -i interval=DEFAULT_INTERVAL +# Delay between posting the SIGTERM signal and destroying the process by SIGKILL. +declare -i delay=DEFAULT_DELAY + +function printUsage() { + cat < 0)); do + sleep $interval + kill -0 $$ || exit 0 + ((t -= interval)) + done + + # Be nice, post SIGTERM first. + # The 'exit 0' below will be executed if any preceeding command fails. + kill -s SIGTERM $$ && kill -0 $$ || exit 0 + sleep $delay + kill -s SIGKILL $$ +) 2> /dev/null & + +exec "$@" diff --git a/execute_cmd.c b/execute_cmd.c index 81de1dc00..609dd31fd 100644 --- a/execute_cmd.c +++ b/execute_cmd.c @@ -1,22 +1,23 @@ /* execute_cmd.c -- Execute a COMMAND structure. */ -/* Copyright (C) 1987-2007 Free Software Foundation, Inc. +/* Copyright (C) 1987-2009 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public - License for more details. + 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. */ + along with Bash. If not, see . +*/ + #include "config.h" #if !defined (__GNUC__) && !defined (HAVE_ALLOCA_H) && defined (_AIX) @@ -96,8 +97,9 @@ extern int errno; #endif extern int posixly_correct; -extern int breaking, continuing, loop_level; extern int expand_aliases; +extern int autocd; +extern int breaking, continuing, loop_level; extern int parse_and_execute_level, running_trap; extern int command_string_index, line_number; extern int dot_found_in_search; @@ -180,6 +182,9 @@ static void execute_disk_command __P((WORD_LIST *, REDIRECT *, char *, static char *getinterp __P((char *, int, int *)); static void initialize_subshell __P((void)); static int execute_in_subshell __P((COMMAND *, int, int, int, struct fd_bitmap *)); +#if defined (COPROCESS_SUPPORT) +static int execute_coproc __P((COMMAND *, int, int, struct fd_bitmap *)); +#endif static int execute_pipeline __P((COMMAND *, int, int, int, struct fd_bitmap *)); @@ -187,9 +192,6 @@ static int execute_connection __P((COMMAND *, int, int, int, struct fd_bitmap *) static int execute_intern_function __P((WORD_DESC *, COMMAND *)); -/* The line number that the currently executing function starts on. */ -static int function_line_number; - /* Set to 1 if fd 0 was the subject of redirection to a subshell. Global so that reader_loop can set it to zero before executing a command. */ int stdin_redir; @@ -203,19 +205,6 @@ char *this_command_name; a debugger to know where exactly the program is currently executing. */ char *the_printed_command_except_trap; -static COMMAND *currently_executing_command; - -struct stat SB; /* used for debugging */ - -static int special_builtin_failed; - -/* XXX - set to 1 if we're running the DEBUG trap and we want to show the line - number containing the function name. Used by executing_line_number to - report the correct line number. Kind of a hack. */ -static int showing_function_line; - -static int line_number_for_err_trap; - /* For catching RETURN in a function. */ int return_catch_flag; int return_catch_value; @@ -237,6 +226,18 @@ REDIRECT *redirection_undo_list = (REDIRECT *)NULL; that must be undone even when exec discards redirection_undo_list. */ REDIRECT *exec_redirection_undo_list = (REDIRECT *)NULL; +/* When greater than zero, value is the `level' of builtins we are + currently executing (e.g. `eval echo a' would have it set to 2). */ +int executing_builtin = 0; + +/* Non-zero if we are executing a command list (a;b;c, etc.) */ +int executing_list = 0; + +/* Non-zero if failing commands in a command substitution should not exit the + shell even if -e is set. Used to pass the CMD_IGNORE_RETURN flag down to + commands run in command substitutions by parse_and_execute. */ +int comsub_ignore_return = 0; + /* Non-zero if we have just forked and are currently running in a subshell environment. */ int subshell_environment; @@ -250,6 +251,22 @@ SHELL_VAR *this_shell_function; /* If non-zero, matches in case and [[ ... ]] are case-insensitive */ int match_ignore_case = 0; +struct stat SB; /* used for debugging */ + +static int special_builtin_failed; + +static COMMAND *currently_executing_command; + +/* The line number that the currently executing function starts on. */ +static int function_line_number; + +/* XXX - set to 1 if we're running the DEBUG trap and we want to show the line + number containing the function name. Used by executing_line_number to + report the correct line number. Kind of a hack. */ +static int showing_function_line; + +static int line_number_for_err_trap; + struct fd_bitmap *current_fds_to_close = (struct fd_bitmap *)NULL; #define FD_BITMAP_DEFAULT_SIZE 32 @@ -535,6 +552,11 @@ execute_command_internal (command, asynchronous, pipe_in, pipe_out, if (command->type == cm_subshell && (command->flags & CMD_NO_FORK)) return (execute_in_subshell (command, asynchronous, pipe_in, pipe_out, fds_to_close)); +#if defined (COPROCESS_SUPPORT) + if (command->type == cm_coproc) + return (execute_coproc (command, pipe_in, pipe_out, fds_to_close)); +#endif + if (command->type == cm_subshell || (command->flags & (CMD_WANT_SUBSHELL|CMD_FORCE_SUBSHELL)) || (shell_control_structure (command->type) && @@ -719,7 +741,11 @@ execute_command_internal (command, asynchronous, pipe_in, pipe_out, } } - if (was_error_trap && ignore_return == 0 && invert == 0 && exec_result != EXECUTION_SUCCESS) + /* 10/6/2008 -- added test for pipe_in and pipe_out because they indicate + the presence of a pipeline, and (until Posix changes things), a + pipeline failure should not cause the parent shell to exit on an + unsuccessful return status, even in the presence of errexit.. */ + if (was_error_trap && ignore_return == 0 && invert == 0 && pipe_in == NO_PIPE && pipe_out == NO_PIPE && exec_result != EXECUTION_SUCCESS) { last_command_exit_value = exec_result; run_error_trap (); @@ -727,7 +753,7 @@ execute_command_internal (command, asynchronous, pipe_in, pipe_out, if (ignore_return == 0 && invert == 0 && ((posixly_correct && interactive == 0 && special_builtin_failed) || - (exit_immediately_on_error && (exec_result != EXECUTION_SUCCESS)))) + (exit_immediately_on_error && pipe_in == NO_PIPE && pipe_out == NO_PIPE && exec_result != EXECUTION_SUCCESS))) { last_command_exit_value = exec_result; run_pending_traps (); @@ -914,7 +940,7 @@ extern int timeval_to_cpu __P((struct timeval *, struct timeval *, struct timeva #define POSIX_TIMEFORMAT "real %2R\nuser %2U\nsys %2S" #define BASH_TIMEFORMAT "\nreal\t%3lR\nuser\t%3lU\nsys\t%3lS" -static int precs[] = { 0, 100, 10, 1 }; +static const int precs[] = { 0, 100, 10, 1 }; /* Expand one `%'-prefixed escape sequence from a time format string. */ static int @@ -1194,10 +1220,11 @@ execute_in_subshell (command, asynchronous, pipe_in, pipe_out, fds_to_close) struct fd_bitmap *fds_to_close; { int user_subshell, return_code, function_value, should_redir_stdin, invert; - int ois; + int ois, user_coproc; COMMAND *tcom; USE_VAR(user_subshell); + USE_VAR(user_coproc); USE_VAR(invert); USE_VAR(tcom); USE_VAR(asynchronous); @@ -1209,6 +1236,7 @@ execute_in_subshell (command, asynchronous, pipe_in, pipe_out, fds_to_close) invert = (command->flags & CMD_INVERT_RETURN) != 0; user_subshell = command->type == cm_subshell || ((command->flags & CMD_WANT_SUBSHELL) != 0); + user_coproc = command->type == cm_coproc; command->flags &= ~(CMD_FORCE_SUBSHELL | CMD_WANT_SUBSHELL | CMD_INVERT_RETURN); @@ -1261,6 +1289,8 @@ execute_in_subshell (command, asynchronous, pipe_in, pipe_out, fds_to_close) subshell_environment |= SUBSHELL_ASYNC; if (pipe_in != NO_PIPE || pipe_out != NO_PIPE) subshell_environment |= SUBSHELL_PIPE; + if (user_coproc) + subshell_environment |= SUBSHELL_COPROC; } reset_terminating_signals (); /* in sig.c */ @@ -1294,6 +1324,10 @@ execute_in_subshell (command, asynchronous, pipe_in, pipe_out, fds_to_close) do_piping (pipe_in, pipe_out); +#if defined (COPROCESS_SUPPORT) + coproc_closeall (); +#endif + /* If this is a user subshell, set a flag if stdin was redirected. This is used later to decide whether to redirect fd 0 to /dev/null for async commands in the subshell. This adds more @@ -1320,7 +1354,12 @@ execute_in_subshell (command, asynchronous, pipe_in, pipe_out, fds_to_close) command->redirects = (REDIRECT *)NULL; } - tcom = (command->type == cm_subshell) ? command->value.Subshell->command : command; + if (command->type == cm_subshell) + tcom = command->value.Subshell->command; + else if (user_coproc) + tcom = command->value.Coproc->command; + else + tcom = command; if (command->flags & CMD_TIME_PIPELINE) tcom->flags |= CMD_TIME_PIPELINE; @@ -1336,7 +1375,7 @@ execute_in_subshell (command, asynchronous, pipe_in, pipe_out, fds_to_close) This means things like ( sleep 10 ) will only cause one fork. If we're timing the command or inverting its return value, however, we cannot do this optimization. */ - if (user_subshell && (tcom->type == cm_simple || tcom->type == cm_subshell) && + if ((user_subshell || user_coproc) && (tcom->type == cm_simple || tcom->type == cm_subshell) && ((tcom->flags & CMD_TIME_PIPELINE) == 0) && ((tcom->flags & CMD_INVERT_RETURN) == 0)) { @@ -1377,6 +1416,503 @@ execute_in_subshell (command, asynchronous, pipe_in, pipe_out, fds_to_close) /* NOTREACHED */ } +#if defined (COPROCESS_SUPPORT) +#define COPROC_MAX 16 + +typedef struct cpelement + { + struct cpelement *next; + struct coproc *coproc; + } +cpelement_t; + +typedef struct cplist + { + struct cpelement *head; + struct cpelement *tail; + int ncoproc; + } +cplist_t; + +static struct cpelement *cpe_alloc __P((struct coproc *)); +static void cpe_dispose __P((struct cpelement *)); +static struct cpelement *cpl_add __P((struct coproc *)); +static struct cpelement *cpl_delete __P((pid_t)); +static void cpl_flush __P((void)); +static struct cpelement *cpl_search __P((pid_t)); +static struct cpelement *cpl_searchbyname __P((char *)); +static void cpl_prune __P((void)); + +Coproc sh_coproc = { 0, NO_PID, -1, -1, 0, 0 }; + +cplist_t coproc_list = {0, 0, 0}; + +/* Functions to manage the list of exited background pids whose status has + been saved. */ + +static struct cpelement * +cpe_alloc (cp) + Coproc *cp; +{ + struct cpelement *cpe; + + cpe = (struct cpelement *)xmalloc (sizeof (struct cpelement)); + cpe->coproc = cp; + cpe->next = (struct cpelement *)0; + return cpe; +} + +static void +cpe_dispose (cpe) + struct cpelement *cpe; +{ + free (cpe); +} + +static struct cpelement * +cpl_add (cp) + Coproc *cp; +{ + struct cpelement *cpe; + + cpe = cpe_alloc (cp); + + if (coproc_list.head == 0) + { + coproc_list.head = coproc_list.tail = cpe; + coproc_list.ncoproc = 0; /* just to make sure */ + } + else + { + coproc_list.tail->next = cpe; + coproc_list.tail = cpe; + } + coproc_list.ncoproc++; + + return cpe; +} + +static struct cpelement * +cpl_delete (pid) + pid_t pid; +{ + struct cpelement *prev, *p; + + for (prev = p = coproc_list.head; p; prev = p, p = p->next) + if (p->coproc->c_pid == pid) + { + prev->next = p->next; /* remove from list */ + break; + } + + if (p == 0) + return 0; /* not found */ + +#if defined (DEBUG) + itrace("cpl_delete: deleting %d", pid); +#endif + + /* Housekeeping in the border cases. */ + if (p == coproc_list.head) + coproc_list.head = coproc_list.head->next; + else if (p == coproc_list.tail) + coproc_list.tail = prev; + + coproc_list.ncoproc--; + if (coproc_list.ncoproc == 0) + coproc_list.head = coproc_list.tail = 0; + else if (coproc_list.ncoproc == 1) + coproc_list.tail = coproc_list.head; /* just to make sure */ + + return (p); +} + +/* Clear out the list of saved statuses */ +static void +cpl_flush () +{ + struct cpelement *cpe, *p; + + for (cpe = coproc_list.head; cpe; ) + { + p = cpe; + cpe = cpe->next; + + coproc_dispose (p->coproc); + cpe_dispose (p); + } + + coproc_list.head = coproc_list.tail = 0; + coproc_list.ncoproc = 0; +} + +/* Search for PID in the list of coprocs; return the cpelement struct if + found. If not found, return NULL. */ +static struct cpelement * +cpl_search (pid) + pid_t pid; +{ + struct cpelement *cp; + + for (cp = coproc_list.head ; cp; cp = cp->next) + if (cp->coproc->c_pid == pid) + return cp; + return (struct cpelement *)NULL; +} + +/* Search for the coproc named NAME in the list of coprocs; return the + cpelement struct if found. If not found, return NULL. */ +static struct cpelement * +cpl_searchbyname (name) + char *name; +{ + struct cpelement *cp; + + for (cp = coproc_list.head ; cp; cp = cp->next) + if (STREQ (cp->coproc->c_name, name)) + return cp; + return (struct cpelement *)NULL; +} + +#if 0 +static void +cpl_prune () +{ + struct cpelement *cp; + + while (coproc_list.head && coproc_list.ncoproc > COPROC_MAX) + { + cp = coproc_list.head; + coproc_list.head = coproc_list.head->next; + coproc_dispose (cp->coproc); + cpe_dispose (cp); + coproc_list.ncoproc--; + } +} +#endif + +/* These currently use a single global "shell coproc" but are written in a + way to not preclude additional coprocs later (using the list management + package above). */ + +struct coproc * +getcoprocbypid (pid) + pid_t pid; +{ + return (pid == sh_coproc.c_pid ? &sh_coproc : 0); +} + +struct coproc * +getcoprocbyname (name) + const char *name; +{ + return ((sh_coproc.c_name && STREQ (sh_coproc.c_name, name)) ? &sh_coproc : 0); +} + +void +coproc_init (cp) + struct coproc *cp; +{ + cp->c_name = 0; + cp->c_pid = NO_PID; + cp->c_rfd = cp->c_wfd = -1; + cp->c_rsave = cp->c_wsave = -1; + cp->c_flags = cp->c_status = 0; +} + +struct coproc * +coproc_alloc (name, pid) + char *name; + pid_t pid; +{ + struct coproc *cp; + + cp = &sh_coproc; /* XXX */ + coproc_init (cp); + + cp->c_name = savestring (name); + cp->c_pid = pid; + + return (cp); +} + +void +coproc_dispose (cp) + struct coproc *cp; +{ + if (cp == 0) + return; + + coproc_unsetvars (cp); + FREE (cp->c_name); + coproc_close (cp); + coproc_init (cp); +} + +/* Placeholder for now. */ +void +coproc_flush () +{ + coproc_dispose (&sh_coproc); +} + +void +coproc_close (cp) + struct coproc *cp; +{ + if (cp->c_rfd >= 0) + { + close (cp->c_rfd); + cp->c_rfd = -1; + } + if (cp->c_wfd >= 0) + { + close (cp->c_wfd); + cp->c_wfd = -1; + } + cp->c_rsave = cp->c_wsave = -1; +} + +void +coproc_closeall () +{ + coproc_close (&sh_coproc); +} + +void +coproc_rclose (cp, fd) + struct coproc *cp; + int fd; +{ + if (cp->c_rfd >= 0 && cp->c_rfd == fd) + { + close (cp->c_rfd); + cp->c_rfd = -1; + } +} + +void +coproc_wclose (cp, fd) + struct coproc *cp; + int fd; +{ + if (cp->c_wfd >= 0 && cp->c_wfd == fd) + { + close (cp->c_wfd); + cp->c_wfd = -1; + } +} + +void +coproc_checkfd (cp, fd) + struct coproc *cp; + int fd; +{ + int update; + + update = 0; + if (cp->c_rfd >= 0 && cp->c_rfd == fd) + update = cp->c_rfd = -1; + if (cp->c_wfd >= 0 && cp->c_wfd == fd) + update = cp->c_wfd = -1; + if (update) + coproc_setvars (cp); +} + +void +coproc_fdchk (fd) + int fd; +{ + coproc_checkfd (&sh_coproc, fd); +} + +void +coproc_fdclose (cp, fd) + struct coproc *cp; + int fd; +{ + coproc_rclose (cp, fd); + coproc_wclose (cp, fd); + coproc_setvars (cp); +} + +void +coproc_fdsave (cp) + struct coproc *cp; +{ + cp->c_rsave = cp->c_rfd; + cp->c_wsave = cp->c_wfd; +} + +void +coproc_fdrestore (cp) + struct coproc *cp; +{ + cp->c_rfd = cp->c_rsave; + cp->c_wfd = cp->c_wsave; +} + +void +coproc_pidchk (pid) + pid_t pid; +{ + struct coproc *cp; + + cp = getcoprocbypid (pid); +#if 0 + if (cp) + itrace("coproc_pidchk: pid %d has died", pid); +#endif + if (cp) + coproc_dispose (cp); +} + +void +coproc_setvars (cp) + struct coproc *cp; +{ + SHELL_VAR *v; + char *namevar, *t; + int l; +#if defined (ARRAY_VARS) + arrayind_t ind; +#endif + + if (cp->c_name == 0) + return; + + l = strlen (cp->c_name); + namevar = xmalloc (l + 16); + +#if defined (ARRAY_VARS) + v = find_variable (cp->c_name); + if (v == 0) + v = make_new_array_variable (cp->c_name); + if (array_p (v) == 0) + v = convert_var_to_array (v); + + t = itos (cp->c_rfd); + ind = 0; + v = bind_array_variable (cp->c_name, ind, t, 0); + free (t); + + t = itos (cp->c_wfd); + ind = 1; + bind_array_variable (cp->c_name, ind, t, 0); + free (t); +#else + sprintf (namevar, "%s_READ", cp->c_name); + t = itos (cp->c_rfd); + bind_variable (namevar, t, 0); + free (t); + sprintf (namevar, "%s_WRITE", cp->c_name); + t = itos (cp->c_wfd); + bind_variable (namevar, t, 0); + free (t); +#endif + + sprintf (namevar, "%s_PID", cp->c_name); + t = itos (cp->c_pid); + bind_variable (namevar, t, 0); + free (t); + + free (namevar); +} + +void +coproc_unsetvars (cp) + struct coproc *cp; +{ + int l; + char *namevar; + + if (cp->c_name == 0) + return; + + l = strlen (cp->c_name); + namevar = xmalloc (l + 16); + + sprintf (namevar, "%s_PID", cp->c_name); + unbind_variable (namevar); + +#if defined (ARRAY_VARS) + unbind_variable (cp->c_name); +#else + sprintf (namevar, "%s_READ", cp->c_name); + unbind_variable (namevar); + sprintf (namevar, "%s_WRITE", cp->c_name); + unbind_variable (namevar); +#endif + + free (namevar); +} + +static int +execute_coproc (command, pipe_in, pipe_out, fds_to_close) + COMMAND *command; + int pipe_in, pipe_out; + struct fd_bitmap *fds_to_close; +{ + int rpipe[2], wpipe[2]; + pid_t coproc_pid; + Coproc *cp; + char *tcmd; + + /* XXX -- will require changes to handle multiple coprocs */ + if (sh_coproc.c_pid != NO_PID) + { +#if 0 + internal_error ("execute_coproc: coproc [%d:%s] already exists", sh_coproc.c_pid, sh_coproc.c_name); + return (last_command_exit_value = EXECUTION_FAILURE); +#else + internal_warning ("execute_coproc: coproc [%d:%s] still exists", sh_coproc.c_pid, sh_coproc.c_name); +#endif + } + coproc_init (&sh_coproc); + + command_string_index = 0; + tcmd = make_command_string (command); + + sh_openpipe ((int *)&rpipe); /* 0 = parent read, 1 = child write */ + sh_openpipe ((int *)&wpipe); /* 0 = child read, 1 = parent write */ + + coproc_pid = make_child (savestring (tcmd), 1); + if (coproc_pid == 0) + { + close (rpipe[0]); + close (wpipe[1]); + + exit (execute_in_subshell (command, 1, wpipe[0], rpipe[1], fds_to_close)); + } + + close (rpipe[1]); + close (wpipe[0]); + + cp = coproc_alloc (command->value.Coproc->name, coproc_pid); + cp->c_rfd = rpipe[0]; + cp->c_wfd = wpipe[1]; + + SET_CLOSE_ON_EXEC (cp->c_rfd); + SET_CLOSE_ON_EXEC (cp->c_wfd); + + coproc_setvars (cp); + +#if 0 + itrace ("execute_coproc: [%d] %s", coproc_pid, the_printed_command); +#endif + + close_pipes (pipe_in, pipe_out); +#if defined (PROCESS_SUBSTITUTION) && defined (HAVE_DEV_FD) + unlink_fifo_list (); +#endif + stop_pipeline (1, (COMMAND *)NULL); + DESCRIBE_PID (coproc_pid); + run_pending_traps (); + + return (EXECUTION_SUCCESS); +} +#endif + static int execute_pipeline (command, asynchronous, pipe_in, pipe_out, fds_to_close) COMMAND *command; @@ -1403,7 +1939,7 @@ execute_pipeline (command, asynchronous, pipe_in, pipe_out, fds_to_close) /* Make a pipeline between the two commands. */ if (pipe (fildes) < 0) { - sys_error ("pipe error"); + sys_error (_("pipe error")); #if defined (JOB_CONTROL) terminate_current_pipeline (); kill_current_pipeline (); @@ -1487,6 +2023,7 @@ execute_pipeline (command, asynchronous, pipe_in, pipe_out, fds_to_close) UNBLOCK_CHILD (oset); #endif + QUIT; return (exec_result); } @@ -1528,6 +2065,7 @@ execute_connection (command, asynchronous, pipe_in, pipe_out, fds_to_close) tc->flags |= CMD_STDIN_REDIR; exec_result = execute_command_internal (tc, 1, pipe_in, pipe_out, fds_to_close); + QUIT; if (tc->flags & CMD_STDIN_REDIR) tc->flags &= ~CMD_STDIN_REDIR; @@ -1552,12 +2090,14 @@ execute_connection (command, asynchronous, pipe_in, pipe_out, fds_to_close) if (command->value.Connection->second) command->value.Connection->second->flags |= CMD_IGNORE_RETURN; } + executing_list++; QUIT; execute_command (command->value.Connection->first); QUIT; exec_result = execute_command_internal (command->value.Connection->second, asynchronous, pipe_in, pipe_out, fds_to_close); + executing_list--; break; case '|': @@ -1583,6 +2123,7 @@ execute_connection (command, asynchronous, pipe_in, pipe_out, fds_to_close) and the connector is OR_OR, then execute the second command, otherwise return. */ + executing_list++; if (command->value.Connection->first) command->value.Connection->first->flags |= CMD_IGNORE_RETURN; @@ -1598,6 +2139,7 @@ execute_connection (command, asynchronous, pipe_in, pipe_out, fds_to_close) exec_result = execute_command (command->value.Connection->second); } + executing_list--; break; default: @@ -1636,7 +2178,7 @@ execute_for_command (for_command) { if (posixly_correct && interactive_shell == 0) { - last_command_exit_value = EX_USAGE; + last_command_exit_value = EX_BADUSAGE; jump_to_top_level (ERREXIT); } return (EXECUTION_FAILURE); @@ -2294,10 +2836,17 @@ execute_case_command (case_command) if (match) { - if (clauses->action && ignore_return) - clauses->action->flags |= CMD_IGNORE_RETURN; - retval = execute_command (clauses->action); - EXIT_CASE (); + do + { + if (clauses->action && ignore_return) + clauses->action->flags |= CMD_IGNORE_RETURN; + retval = execute_command (clauses->action); + } + while ((clauses->flags & CASEPAT_FALLTHROUGH) && (clauses = clauses->next)); + if ((clauses->flags & CASEPAT_TESTNEXT) == 0) + EXIT_CASE (); + else + break; } QUIT; @@ -2503,7 +3052,7 @@ execute_arith_command (arith_command) #if defined (COND_COMMAND) -static char *nullstr = ""; +static char * const nullstr = ""; static int execute_cond_node (cond) @@ -2680,6 +3229,11 @@ execute_null_command (redirects, pipe_in, pipe_out, async) do_piping (pipe_in, pipe_out); +#if defined (COPROCESS_SUPPORT) + coproc_closeall (); +#endif + + subshell_environment = 0; if (async) subshell_environment |= SUBSHELL_ASYNC; if (pipe_in != NO_PIPE || pipe_out != NO_PIPE) @@ -2729,11 +3283,13 @@ fix_assignment_words (words) { WORD_LIST *w; struct builtin *b; + int assoc; if (words == 0) return; b = 0; + assoc = 0; for (w = words; w; w = w->next) if (w->word->flags & W_ASSIGNMENT) @@ -2747,7 +3303,39 @@ fix_assignment_words (words) words->word->flags |= W_ASSNBLTIN; } w->word->flags |= (W_NOSPLIT|W_NOGLOB|W_TILDEEXP|W_ASSIGNARG); +#if defined (ARRAY_VARS) + if (assoc) + w->word->flags |= W_ASSIGNASSOC; +#endif } +#if defined (ARRAY_VARS) + /* Note that we saw an associative array option to a builtin that takes + assignment statements. This is a bit of a kludge. */ + else if (w->word->word[0] == '-' && strchr (w->word->word, 'A')) + { + if (b == 0) + { + b = builtin_address_internal (words->word->word, 0); + if (b == 0 || (b->flags & ASSIGNMENT_BUILTIN) == 0) + return; + else if (b && (b->flags & ASSIGNMENT_BUILTIN)) + words->word->flags |= W_ASSNBLTIN; + } + if (words->word->flags & W_ASSNBLTIN) + assoc = 1; + } +#endif +} + +/* Return 1 if the file found by searching $PATH for PATHNAME, defaulting + to PATHNAME, is a directory. Used by the autocd code below. */ +static int +is_dirname (pathname) + char *pathname; +{ + char *temp; + temp = search_for_command (pathname); + return (temp ? file_isdir (temp) : file_isdir (pathname)); } /* The meaty part of all the executions. We have to start hacking the @@ -2799,7 +3387,7 @@ execute_simple_command (simple_command, pipe_in, pipe_out, async, fds_to_close) #endif first_word_quoted = - simple_command->words ? (simple_command->words->word->flags & W_QUOTED): 0; + simple_command->words ? (simple_command->words->word->flags & W_QUOTED) : 0; last_command_subst_pid = NO_PID; old_last_async_pid = last_asynchronous_pid; @@ -2847,6 +3435,9 @@ execute_simple_command (simple_command, pipe_in, pipe_out, async, fds_to_close) do_piping (pipe_in, pipe_out); pipe_in = pipe_out = NO_PIPE; +#if defined (COPROCESS_SUPPORT) + coproc_closeall (); +#endif last_asynchronous_pid = old_last_async_pid; } @@ -2868,7 +3459,12 @@ execute_simple_command (simple_command, pipe_in, pipe_out, async, fds_to_close) { current_fds_to_close = fds_to_close; fix_assignment_words (simple_command->words); + /* Pass the ignore return flag down to command substitutions */ + if (simple_command->flags & CMD_IGNORE_RETURN) /* XXX */ + comsub_ignore_return++; words = expand_words (simple_command->words); + if (simple_command->flags & CMD_IGNORE_RETURN) + comsub_ignore_return--; current_fds_to_close = (struct fd_bitmap *)NULL; } else @@ -2982,6 +3578,7 @@ execute_simple_command (simple_command, pipe_in, pipe_out, async, fds_to_close) } #endif /* JOB_CONTROL */ +run_builtin: /* Remember the name of this command globally. */ this_command_name = words->word->word; @@ -3000,6 +3597,8 @@ execute_simple_command (simple_command, pipe_in, pipe_out, async, fds_to_close) if (builtin || func) { + if (builtin) + unwind_protect_int (executing_builtin); /* modified in execute_builtin */ if (already_forked) { /* reset_terminating_signals (); */ /* XXX */ @@ -3055,6 +3654,13 @@ execute_simple_command (simple_command, pipe_in, pipe_out, async, fds_to_close) } } + if (autocd && interactive && words->word && is_dirname (words->word->word)) + { + words = make_word_list (make_word ("cd"), words); + xtrace_print_word_list (words, 0); + goto run_builtin; + } + if (command_line == 0) command_line = savestring (the_printed_command_except_trap); @@ -3111,14 +3717,21 @@ execute_builtin (builtin, words, flags, subshell) int old_e_flag, result, eval_unwind; int isbltinenv; +#if 0 + /* XXX -- added 12/11 */ + terminate_immediately++; +#endif + old_e_flag = exit_immediately_on_error; /* The eval builtin calls parse_and_execute, which does not know about the setting of flags, and always calls the execution functions with flags that will exit the shell on an error if -e is set. If the eval builtin is being called, and we're supposed to ignore the exit value of the command, we turn the -e flag off ourselves, then - restore it when the command completes. */ - if (subshell == 0 && builtin == eval_builtin && (flags & CMD_IGNORE_RETURN)) + restore it when the command completes. This is also a problem (as + below) for the command and source/. builtins. */ + if (subshell == 0 && (flags & CMD_IGNORE_RETURN) && + (builtin == eval_builtin || builtin == command_builtin || builtin == source_builtin)) { begin_unwind_frame ("eval_builtin"); unwind_protect_int (exit_immediately_on_error); @@ -3158,6 +3771,7 @@ execute_builtin (builtin, words, flags, subshell) add_unwind_protect (merge_temporary_env, (char *)NULL); } + executing_builtin++; result = ((*builtin) (words->next)); /* This shouldn't happen, but in case `return' comes back instead of @@ -3174,6 +3788,11 @@ execute_builtin (builtin, words, flags, subshell) discard_unwind_frame ("eval_builtin"); } +#if 0 + /* XXX -- added 12/11 */ + terminate_immediately--; +#endif + return (result); } @@ -3483,13 +4102,18 @@ execute_subshell_builtin_or_function (words, redirects, builtin, var, else { r = execute_builtin (builtin, words, flags, 1); + fflush (stdout); if (r == EX_USAGE) r = EX_BADUSAGE; exit (r); } } else - exit (execute_function (var, words, flags, fds_to_close, async, 1)); + { + r = execute_function (var, words, flags, fds_to_close, async, 1); + fflush (stdout); + exit (r); + } } /* Execute a builtin or function in the current shell context. If BUILTIN @@ -3549,6 +4173,8 @@ execute_builtin_or_function (words, builtin, var, redirects, result = execute_function (var, words, flags, fds_to_close, 0, 0); /* We do this before undoing the effects of any redirections. */ + fflush (stdout); + fpurge (stdout); if (ferror (stdout)) clearerr (stdout); @@ -3618,6 +4244,12 @@ setup_async_signals () this gnarly hair, for no good reason. NOTE: callers expect this to fork or exit(). */ + +/* Name of a shell function to call when a command name is not found. */ +#ifndef NOTFOUND_HOOK +# define NOTFOUND_HOOK "command_not_found_handle" +#endif + static void execute_disk_command (words, redirects, command_line, pipe_in, pipe_out, async, fds_to_close, cmdflags) @@ -3631,6 +4263,8 @@ execute_disk_command (words, redirects, command_line, pipe_in, pipe_out, char *pathname, *command, **args; int nofork; pid_t pid; + SHELL_VAR *hookf; + WORD_LIST *wl; nofork = (cmdflags & CMD_NO_FORK); /* Don't fork, just exec, if no pipes */ pathname = words->word->word; @@ -3727,8 +4361,15 @@ execute_disk_command (words, redirects, command_line, pipe_in, pipe_out, if (command == 0) { - internal_error (_("%s: command not found"), pathname); - exit (EX_NOTFOUND); /* Posix.2 says the exit status is 127 */ + hookf = find_function (NOTFOUND_HOOK); + if (hookf == 0) + { + internal_error (_("%s: command not found"), pathname); + exit (EX_NOTFOUND); /* Posix.2 says the exit status is 127 */ + } + + wl = make_word_list (make_word (NOTFOUND_HOOK), words); + exit (execute_shell_function (hookf, wl)); } /* Execve expects the command name to be in args[0]. So we @@ -3894,6 +4535,8 @@ initialize_subshell () /* We're no longer inside a shell function. */ variable_context = return_catch_flag = 0; + executing_list = 0; /* XXX */ + /* If we're not interactive, close the file descriptor from which we're reading the current shell script. */ if (interactive_shell == 0) @@ -3927,7 +4570,6 @@ shell_execve (command, args, env) char *command; char **args, **env; { - struct stat finfo; int larray, i, fd; char sample[80]; int sample_len; @@ -3935,13 +4577,14 @@ shell_execve (command, args, env) SETOSTYPE (0); /* Some systems use for USG/POSIX semantics */ execve (command, args, env); i = errno; /* error from execve() */ + CHECK_TERMSIG; SETOSTYPE (1); /* If we get to this point, then start checking out the file. Maybe it is something we can hack ourselves. */ if (i != ENOEXEC) { - if ((stat (command, &finfo) == 0) && (S_ISDIR (finfo.st_mode))) + if (file_isdir (command)) internal_error (_("%s: is a directory"), command); else if (executable_file (command) == 0) { @@ -4075,7 +4718,7 @@ execute_intern_function (name, function) { if (posixly_correct && interactive_shell == 0) { - last_command_exit_value = EX_USAGE; + last_command_exit_value = EX_BADUSAGE; jump_to_top_level (ERREXIT); } return (EXECUTION_FAILURE); diff --git a/execute_cmd.h b/execute_cmd.h index 6de86be9c..5439b4f6c 100644 --- a/execute_cmd.h +++ b/execute_cmd.h @@ -1,22 +1,22 @@ /* execute_cmd.h - functions from execute_cmd.c. */ -/* Copyright (C) 1993 Free Software Foundation, Inc. +/* Copyright (C) 1993-2009 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. + 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #if !defined (_EXECUTE_CMD_H_) #define _EXECUTE_CMD_H_ @@ -35,6 +35,31 @@ extern void dispose_exec_redirects __P ((void)); extern int execute_shell_function __P((SHELL_VAR *, WORD_LIST *)); +extern struct coproc *getcoprocbypid __P((pid_t)); +extern struct coproc *getcoprocbyname __P((const char *)); + +extern void coproc_init __P((struct coproc *)); +extern struct coproc *coproc_alloc __P((char *, pid_t)); +extern void coproc_dispose __P((struct coproc *)); +extern void coproc_flush __P((void)); +extern void coproc_close __P((struct coproc *)); +extern void coproc_closeall __P((void)); + +extern void coproc_rclose __P((struct coproc *, int)); +extern void coproc_wclose __P((struct coproc *, int)); +extern void coproc_fdclose __P((struct coproc *, int)); + +extern void coproc_checkfd __P((struct coproc *, int)); +extern void coproc_fdchk __P((int)); + +extern void coproc_pidchk __P((pid_t)); + +extern void coproc_fdsave __P((struct coproc *)); +extern void coproc_fdrestore __P((struct coproc *)); + +extern void coproc_setvars __P((struct coproc *)); +extern void coproc_unsetvars __P((struct coproc *)); + #if defined (PROCESS_SUBSTITUTION) extern void close_all_files __P((void)); #endif diff --git a/expr.c b/expr.c index a5cb0388e..c25160051 100644 --- a/expr.c +++ b/expr.c @@ -1,22 +1,22 @@ /* expr.c -- arithmetic expression evaluation. */ -/* Copyright (C) 1990-2004 Free Software Foundation, Inc. +/* Copyright (C) 1990-2009 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public - License for more details. + 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. */ + along with Bash. If not, see . +*/ /* All arithmetic is done as intmax_t integers with no checking for overflow @@ -153,7 +153,7 @@ static void readtok __P((void)); /* lexical analyzer */ static intmax_t expr_streval __P((char *, int)); static intmax_t strlong __P((char *)); -static void evalerror __P((char *)); +static void evalerror __P((const char *)); static void pushexp __P((void)); static void popexp __P((void)); @@ -205,7 +205,7 @@ extern char *this_command_name; extern int unbound_vars_is_error; #if defined (ARRAY_VARS) -extern char *bash_badsub_errmsg; +extern const char * const bash_badsub_errmsg; #endif #define SAVETOK(X) \ @@ -1033,8 +1033,6 @@ readtok () if (c) cp++; - lasttp = tp = cp - 1; - if (c == '\0') { lasttok = curtok; @@ -1042,6 +1040,7 @@ readtok () tp = cp; return; } + lasttp = tp = cp - 1; if (legal_variable_starter (c)) { @@ -1192,14 +1191,14 @@ readtok () static void evalerror (msg) - char *msg; + const char *msg; { char *name, *t; name = this_command_name; for (t = expression; whitespace (*t); t++) ; - internal_error ("%s%s%s: %s (error token is \"%s\")", + internal_error (_("%s%s%s: %s (error token is \"%s\")"), name ? name : "", name ? ": " : "", t, msg, (lasttp && *lasttp) ? lasttp : ""); longjmp (evalbuf, 1); @@ -1326,7 +1325,7 @@ main (argc, argv) { v = evalexp (argv[i], &expok); if (expok == 0) - fprintf (stderr, "%s: expression error\n", argv[i]); + fprintf (stderr, _("%s: expression error\n"), argv[i]); else printf ("'%s' -> %ld\n", argv[i], v); } diff --git a/externs.h b/externs.h index bc28eda2f..cc2be680b 100644 --- a/externs.h +++ b/externs.h @@ -1,23 +1,23 @@ /* externs.h -- extern function declarations which do not appear in their own header file. */ -/* Copyright (C) 1993-2005 Free Software Foundation, Inc. +/* Copyright (C) 1993-2009 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. + 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ /* Make sure that this is included *after* config.h! */ @@ -30,6 +30,9 @@ extern intmax_t evalexp __P((char *, int *)); /* Functions from print_cmd.c. */ +#define FUNC_MULTILINE 0x01 +#define FUNC_EXTERNAL 0x02 + extern char *make_command_string __P((COMMAND *)); extern char *named_function_string __P((char *, COMMAND *, int)); @@ -93,6 +96,7 @@ extern char **brace_expand __P((char *)); /* Miscellaneous functions from parse.y */ extern int yyparse __P((void)); extern int return_EOF __P((void)); +extern char *xparse_dolparen __P((char *, char *, int *, int)); extern void reset_parser __P((void)); extern WORD_LIST *parse_string_to_word_list __P((char *, int, const char *)); @@ -145,6 +149,18 @@ extern void show_shell_version __P((int)); /* Functions from the bash library, lib/sh/libsh.a. These should really go into a separate include file. */ +/* declarations for functions defined in lib/sh/casemod.c */ +extern char *sh_modcase __P((const char *, char *, int)); + +/* Defines for flags argument to sh_modcase. These need to agree with what's + in lib/sh/casemode.c */ +#define CASE_LOWER 0x01 +#define CASE_UPPER 0x02 +#define CASE_CAPITALIZE 0x04 +#define CASE_UNCAP 0x08 +#define CASE_TOGGLE 0x10 +#define CASE_TOGGLEALL 0x20 + /* declarations for functions defined in lib/sh/clktck.c */ extern long get_clk_tck __P((void)); @@ -152,6 +168,9 @@ extern long get_clk_tck __P((void)); extern void clock_t_to_secs (); extern void print_clock_t (); +/* Declarations for functions defined in lib/sh/fdprintf.c */ +extern void fdprintf __P((int, const char *, ...)) __attribute__((__format__ (printf, 2, 3))); + /* Declarations for functions defined in lib/sh/fmtulong.c */ #define FL_PREFIX 0x01 /* add 0x, 0X, or 0 prefix as appropriate */ #define FL_ADDBASE 0x02 /* add base# prefix to converted value */ @@ -168,11 +187,25 @@ extern char *fmtullong __P((unsigned long long int, int, char *, size_t, int)); /* Declarations for functions defined in lib/sh/fmtumax.c */ extern char *fmtumax __P((uintmax_t, int, char *, size_t, int)); +/* Declarations for functions defined in lib/sh/fpurge.c */ +#if !HAVE_DECL_FPURGE + +#if HAVE_FPURGE +# define fpurge _bash_fpurge +#endif +extern int fpurge __P((FILE *stream)); + +#endif /* HAVE_DECL_FPURGE */ + + /* Declarations for functions defined in lib/sh/getcwd.c */ #if !defined (HAVE_GETCWD) extern char *getcwd __P((char *, size_t)); #endif +/* Declarations for functions defined in lib/sh/input_avail.c */ +extern int input_avail __P((int)); + /* Declarations for functions defined in lib/sh/itos.c */ extern char *inttostr __P((intmax_t, char *, size_t)); extern char *itos __P((intmax_t)); @@ -183,6 +216,7 @@ extern char *uitos __P((uintmax_t)); #define MP_DOTILDE 0x01 #define MP_DOCWD 0x02 #define MP_RMDOT 0x04 +#define MP_IGNDOT 0x08 extern char *sh_makepath __P((const char *, const char *, int)); @@ -247,6 +281,7 @@ extern int sh_contains_shell_metas __P((char *)); /* declarations for functions defined in lib/sh/spell.c */ extern int spname __P((char *, char *)); +extern char *dirspell __P((char *)); /* declarations for functions defined in lib/sh/strcasecmp.c */ #if !defined (HAVE_STRCASECMP) @@ -373,6 +408,13 @@ extern char *sh_mktmpname __P((char *, int)); extern int sh_mktmpfd __P((char *, int, char **)); /* extern FILE *sh_mktmpfp __P((char *, int, char **)); */ +/* declarations for functions defined in lib/sh/uconvert.c */ +extern int uconvert __P((char *, long *, long *)); + +/* declarations for functions defined in lib/sh/ufuncs.c */ +extern unsigned int falarm __P((unsigned int, unsigned int)); +extern unsigned int fsleep __P((unsigned int, unsigned int)); + /* declarations for functions defined in lib/sh/winsize.c */ extern void get_new_window_size __P((int, int *, int *)); @@ -383,6 +425,12 @@ extern char *xstrchr __P((const char *, int)); /* declarations for functions defined in lib/sh/zcatfd.c */ extern int zcatfd __P((int, int, char *)); +/* declarations for functions defined in lib/sh/zgetline.c */ +extern ssize_t zgetline __P((int, char **, size_t *, int)); + +/* declarations for functions defined in lib/sh/zmapfd.c */ +extern int zmapfd __P((int, char **, char *)); + /* declarations for functions defined in lib/sh/zread.c */ extern ssize_t zread __P((int, char *, size_t)); extern ssize_t zreadintr __P((int, char *, size_t)); diff --git a/findcmd.c b/findcmd.c index 27720f8aa..1f0539414 100644 --- a/findcmd.c +++ b/findcmd.c @@ -1,23 +1,22 @@ /* findcmd.c -- Functions to search for commands by name. */ -/* Copyright (C) 1997 Free Software Foundation, Inc. +/* Copyright (C) 1997-2009 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public - License for more details. + 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 Inc., - 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. */ + along with Bash. If not, see . +*/ #include "config.h" diff --git a/findcmd.h b/findcmd.h index ae8015e9c..db74c1cb4 100644 --- a/findcmd.h +++ b/findcmd.h @@ -1,22 +1,22 @@ /* findcmd.h - functions from findcmd.c. */ -/* Copyright (C) 1997 Free Software Foundation, Inc. +/* Copyright (C) 1997-2009 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. + 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #if !defined (_FINDCMD_H_) #define _FINDCMD_H_ diff --git a/flags.c b/flags.c index 0c0868bcf..d3b38ad37 100644 --- a/flags.c +++ b/flags.c @@ -1,25 +1,24 @@ /* flags.c -- Everything about flags except the `set' command. That is in builtins.c */ -/* Copyright (C) 1987,1989 Free Software Foundation, Inc. +/* Copyright (C) 1987-2009 Free Software Foundation, Inc. -This file is part of GNU Bash, the Bourne Again SHell. + 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. -Bash is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. + 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ -/* Flags hacking. */ #include "config.h" #if defined (HAVE_UNISTD_H) # include @@ -47,7 +46,7 @@ extern int want_pending_command, read_from_stdin; /* **************************************************************** */ /* */ -/* The Standard Sh Flags. */ +/* The Standard sh Flags. */ /* */ /* **************************************************************** */ @@ -170,7 +169,7 @@ int pipefail_opt = 0; /* */ /* **************************************************************** */ -struct flags_alist shell_flags[] = { +const struct flags_alist shell_flags[] = { /* Standard sh flags. */ { 'a', &mark_modified_vars }, #if defined (JOB_CONTROL) diff --git a/flags.h b/flags.h index f16e60483..d8fa75706 100644 --- a/flags.h +++ b/flags.h @@ -1,23 +1,23 @@ /* flags.h -- a list of all the flags that the shell knows about. You add a flag to this program by adding the name here, and in flags.c. */ -/* Copyright (C) 1993 Free Software Foundation, Inc. +/* Copyright (C) 1993-2009 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. + 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #if !defined (_FLAGS_H_) #define _FLAGS_H_ @@ -37,7 +37,7 @@ struct flags_alist { int *value; }; -extern struct flags_alist shell_flags[]; +extern const struct flags_alist shell_flags[]; extern char optflags[]; extern int diff --git a/general.c b/general.c index 4ac4de041..4cf877fde 100644 --- a/general.c +++ b/general.c @@ -1,22 +1,22 @@ /* general.c -- Stuff that is used by all files. */ -/* Copyright (C) 1987-2004 Free Software Foundation, Inc. +/* Copyright (C) 1987-2009 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. + 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #include "config.h" @@ -58,7 +58,7 @@ static int unquoted_tilde_word __P((const char *)); static void initialize_group_array __P((void)); /* A standard error message to use when getcwd() returns NULL. */ -char *bash_getcwd_errstr = N_("getcwd: cannot access parent directories"); +const char * const bash_getcwd_errstr = N_("getcwd: cannot access parent directories"); /* Do whatever is necessary to initialize `Posix mode'. */ void @@ -69,6 +69,7 @@ posix_initialize (on) if (on != 0) { interactive_comments = source_uses_path = expand_aliases = 1; + source_searches_cwd = 0; } /* Things that should be turned on when posix mode is disabled. */ @@ -161,7 +162,7 @@ all_digits (string) not null. */ int legal_number (string, result) - char *string; + const char *string; intmax_t *result; { intmax_t value; @@ -172,7 +173,7 @@ legal_number (string, result) errno = 0; value = strtoimax (string, &ep, 10); - if (errno) + if (errno || ep == string) return 0; /* errno is set on overflow or underflow */ /* Skip any trailing whitespace, since strtoimax does not. */ @@ -475,25 +476,63 @@ check_binary_file (sample, sample_len) c = sample[i]; if (c == '\n') return (0); - -#if 0 - if (ISSPACE (c) == 0 && ISPRINT (c) == 0) -#else if (c == '\0') -#endif return (1); - } return (0); } +/* **************************************************************** */ +/* */ +/* Functions to manipulate pipes */ +/* */ +/* **************************************************************** */ + +int +sh_openpipe (pv) + int *pv; +{ + int r; + + if ((r = pipe (pv)) < 0) + return r; + + pv[0] = move_to_high_fd (pv[0], 1, 64); + pv[1] = move_to_high_fd (pv[1], 1, 64); + + return 0; +} + +int +sh_closepipe (pv) + int *pv; +{ + if (pv[0] >= 0) + close (pv[0]); + + if (pv[1] >= 0) + close (pv[1]); + + pv[0] = pv[1] = -1; + return 0; +} + /* **************************************************************** */ /* */ /* Functions to inspect pathnames */ /* */ /* **************************************************************** */ +int +file_exists (fn) + char *fn; +{ + struct stat sb; + + return (stat (fn, &sb) == 0); +} + int file_isdir (fn) char *fn; @@ -641,6 +680,72 @@ polite_directory_format (name) return (name); } +/* Trim NAME. If NAME begins with `~/', skip over tilde prefix. Trim to + keep any tilde prefix and PROMPT_DIRTRIM trailing directory components + and replace the intervening characters with `...' */ +char * +trim_pathname (name, maxlen) + char *name; + int maxlen; +{ + int nlen, ndirs; + intmax_t nskip; + char *nbeg, *nend, *ntail, *v; + + if (name == 0 || (nlen = strlen (name)) == 0) + return name; + nend = name + nlen; + + v = get_string_value ("PROMPT_DIRTRIM"); + if (v == 0 || *v == 0) + return name; + if (legal_number (v, &nskip) == 0 || nskip <= 0) + return name; + + /* Skip over tilde prefix */ + nbeg = name; + if (name[0] == '~') + for (nbeg = name; *nbeg; nbeg++) + if (*nbeg == '/') + { + nbeg++; + break; + } + if (*nbeg == 0) + return name; + + for (ndirs = 0, ntail = nbeg; *ntail; ntail++) + if (*ntail == '/') + ndirs++; + if (ndirs <= nskip) + return name; + + for (ntail = (*nend == '/') ? nend : nend - 1; ntail > nbeg; ntail--) + { + if (*ntail == '/') + nskip--; + if (nskip == 0) + break; + } + if (ntail == nbeg) + return name; + + /* Now we want to return name[0..nbeg]+"..."+ntail, modifying name in place */ + nlen = ntail - nbeg; + if (nlen <= 3) + return name; + + *nbeg++ = '.'; + *nbeg++ = '.'; + *nbeg++ = '.'; + + nlen = nend - ntail; + memcpy (nbeg, ntail, nlen); + nbeg[nlen] = '\0'; + + return name; +} + /* Given a string containing units of information separated by colons, return the next one pointed to by (P_INDEX), or NULL if there are no more. Advance (P_INDEX) to the character after the colon. */ @@ -844,11 +949,12 @@ bash_tilde_expand (s, assign_p) const char *s; int assign_p; { - int old_immed, r; + int old_immed, old_term, r; char *ret; old_immed = interrupt_immediately; - interrupt_immediately = 1; + old_term = terminate_immediately; + interrupt_immediately = terminate_immediately = 1; tilde_additional_prefixes = assign_p == 0 ? (char **)0 : (assign_p == 2 ? bash_tilde_prefixes2 : bash_tilde_prefixes); @@ -858,6 +964,7 @@ bash_tilde_expand (s, assign_p) r = (*s == '~') ? unquoted_tilde_word (s) : 1; ret = r ? tilde_expand (s) : savestring (s); interrupt_immediately = old_immed; + terminate_immediately = old_term; return (ret); } diff --git a/general.h b/general.h index e1d01f565..5ea0d4559 100644 --- a/general.h +++ b/general.h @@ -1,22 +1,22 @@ /* general.h -- defines that everybody likes to use. */ -/* Copyright (C) 1993-2004 Free Software Foundation, Inc. +/* Copyright (C) 1993-2009 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. + 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #if !defined (_GENERAL_H_) #define _GENERAL_H_ @@ -281,7 +281,7 @@ extern void print_rlimtype __P((RLIMTYPE, int)); #endif extern int all_digits __P((char *)); -extern int legal_number __P((char *, intmax_t *)); +extern int legal_number __P((const char *, intmax_t *)); extern int legal_identifier __P((char *)); extern int check_identifier __P((WORD_DESC *, int)); extern int legal_alias_name __P((char *, int)); @@ -297,6 +297,10 @@ extern int check_binary_file __P((char *, int)); extern int same_file __P((char *, char *, struct stat *, struct stat *)); #endif +extern int sh_openpipe __P((int *)); +extern int sh_closepipe __P((int *)); + +extern int file_exists __P((char *)); extern int file_isdir __P((char *)); extern int file_iswdir __P((char *)); extern int absolute_pathname __P((const char *)); @@ -306,6 +310,7 @@ extern char *make_absolute __P((char *, char *)); extern char *base_pathname __P((char *)); extern char *full_pathname __P((char *)); extern char *polite_directory_format __P((char *)); +extern char *trim_pathname __P((char *, int)); extern char *extract_colon_unit __P((char *, int *)); diff --git a/hashcmd.c b/hashcmd.c index 895b48506..fc0bfbe27 100644 --- a/hashcmd.c +++ b/hashcmd.c @@ -1,23 +1,23 @@ /* hashcmd.c - functions for managing a hash table mapping command names to full pathnames. */ -/* Copyright (C) 1997-2002 Free Software Foundation, Inc. +/* Copyright (C) 1997-2009 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. + 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #include diff --git a/hashcmd.h b/hashcmd.h index 3d47c1c95..758f5b4b9 100644 --- a/hashcmd.h +++ b/hashcmd.h @@ -1,22 +1,22 @@ /* hashcmd.h - Common defines for hashing filenames. */ -/* Copyright (C) 1993 Free Software Foundation, Inc. +/* Copyright (C) 1993-2009 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. + 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #include "stdc.h" #include "hashlib.h" @@ -25,7 +25,7 @@ extern HASH_TABLE *hashed_filenames; -typedef struct { +typedef struct _pathdata { char *path; /* The full pathname of the file. */ int flags; } PATH_DATA; diff --git a/hashlib.c b/hashlib.c index 456272ac1..ccde9b9f5 100644 --- a/hashlib.c +++ b/hashlib.c @@ -1,22 +1,22 @@ /* hashlib.c -- functions to manage and access hash tables for bash. */ -/* Copyright (C) 1987, 1989, 1991 Free Software Foundation, Inc. +/* Copyright (C) 1987,1989,1991,1995,1998,2001,2003,2005,2006,2008,2009 Free Software Foundation, Inc. -This file is part of GNU Bash, the Bourne Again SHell. + 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. -Bash is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. + 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #include diff --git a/hashlib.h b/hashlib.h index bb7120be1..4620e423c 100644 --- a/hashlib.h +++ b/hashlib.h @@ -1,22 +1,22 @@ /* hashlib.h -- the data structures used in hashing in Bash. */ -/* Copyright (C) 1993 Free Software Foundation, Inc. +/* Copyright (C) 1993-2009 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. + 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #if !defined (_HASHLIB_H_) #define _HASHLIB_H_ diff --git a/include/ansi_stdlib.h b/include/ansi_stdlib.h index db13cd234..7dc2ee0cf 100644 --- a/include/ansi_stdlib.h +++ b/include/ansi_stdlib.h @@ -6,19 +6,19 @@ 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. */ + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #if !defined (_STDLIB_H_) #define _STDLIB_H_ 1 diff --git a/include/chartypes.h b/include/chartypes.h index 4f47b994d..05607691c 100644 --- a/include/chartypes.h +++ b/include/chartypes.h @@ -4,19 +4,19 @@ 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. */ + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #ifndef _SH_CHARTYPES_H #define _SH_CHARTYPES_H diff --git a/include/filecntl.h b/include/filecntl.h index 2304d5d05..31667a11a 100644 --- a/include/filecntl.h +++ b/include/filecntl.h @@ -4,19 +4,19 @@ 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. */ + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #if !defined (_FILECNTL_H_) #define _FILECNTL_H_ diff --git a/include/gettext.h b/include/gettext.h index 8b262f4cf..97a1f36d6 100644 --- a/include/gettext.h +++ b/include/gettext.h @@ -1,20 +1,21 @@ /* Convenience header for conditional use of GNU . - Copyright (C) 1995-1998, 2000-2002 Free Software Foundation, Inc. + Copyright (C) 1995-1998, 2000-2002, 2008,2009 Free Software Foundation, Inc. - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU Library General Public License as published - by the Free Software Foundation; either version 2, or (at your option) - any later version. + This file is part of GNU Bash, the Bourne-Again SHell. - This program is distributed in the hope that it will be useful, + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. + 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 Library 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #ifndef _LIBGETTEXT_H #define _LIBGETTEXT_H 1 diff --git a/include/maxpath.h b/include/maxpath.h index 00e43f841..db2e1fb42 100644 --- a/include/maxpath.h +++ b/include/maxpath.h @@ -4,19 +4,19 @@ 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. */ + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #if !defined (_MAXPATH_H_) #define _MAXPATH_H_ diff --git a/include/memalloc.h b/include/memalloc.h index d3ed04139..57318b9d3 100644 --- a/include/memalloc.h +++ b/include/memalloc.h @@ -5,19 +5,19 @@ 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. */ + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #if !defined (_MEMALLOC_H_) # define _MEMALLOC_H_ diff --git a/include/ocache.h b/include/ocache.h index 67448c3b3..c596c2725 100644 --- a/include/ocache.h +++ b/include/ocache.h @@ -4,19 +4,19 @@ 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. */ + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #if !defined (_OCACHE_H_) #define _OCACHE_H_ 1 diff --git a/include/posixdir.h b/include/posixdir.h index 91f6d9611..bd33694db 100644 --- a/include/posixdir.h +++ b/include/posixdir.h @@ -4,19 +4,19 @@ 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public - License for more details. + 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. */ + along with Bash. If not, see . +*/ /* This file should be included instead of or . */ diff --git a/include/posixjmp.h b/include/posixjmp.h index b52aa0033..49bfecf33 100644 --- a/include/posixjmp.h +++ b/include/posixjmp.h @@ -4,19 +4,19 @@ 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public - License for more details. + 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. */ + along with Bash. If not, see . +*/ #ifndef _POSIXJMP_H_ #define _POSIXJMP_H_ diff --git a/include/posixstat.h b/include/posixstat.h index c93b52887..3eb7f2906 100644 --- a/include/posixstat.h +++ b/include/posixstat.h @@ -5,19 +5,19 @@ 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public - License for more details. + 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. */ + along with Bash. If not, see . +*/ /* This file should be included instead of . It relies on the local sys/stat.h to work though. */ diff --git a/include/posixtime.h b/include/posixtime.h index b4c4c68dd..31bdddf86 100644 --- a/include/posixtime.h +++ b/include/posixtime.h @@ -4,19 +4,19 @@ 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public - License for more details. + 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. */ + along with Bash. If not, see . +*/ #ifndef _POSIXTIME_H_ #define _POSIXTIME_H_ diff --git a/include/posixwait.h b/include/posixwait.h index a11d156cc..815ea2299 100644 --- a/include/posixwait.h +++ b/include/posixwait.h @@ -4,19 +4,19 @@ 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. */ + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #if !defined (_POSIXWAIT_H_) # define _POSIXWAIT_H_ diff --git a/include/shmbutil.h b/include/shmbutil.h index f5f8b9886..2b4080418 100644 --- a/include/shmbutil.h +++ b/include/shmbutil.h @@ -4,19 +4,19 @@ 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. */ + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #if !defined (_SH_MBUTIL_H_) #define _SH_MBUTIL_H_ @@ -67,6 +67,10 @@ extern char *xstrchr __P((const char *, int)); #define MBLEN(s, n) 1 #define MBRLEN(s, n, p) 1 +#ifndef wchar_t +# define wchar_t int +#endif + #endif /* !HANDLE_MULTIBYTE */ /* Declare and initialize a multibyte state. Call must be terminated diff --git a/include/shtty.h b/include/shtty.h index e3e52e366..66500d93d 100644 --- a/include/shtty.h +++ b/include/shtty.h @@ -2,19 +2,19 @@ /* 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. + 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ /* * shtty.h -- include the correct system-dependent files to manipulate the @@ -91,6 +91,17 @@ extern int tt_setcbreak __P((TTYSTRUCT *)); course), the right thing will happen, but more system calls will be executed than absolutely necessary. You can do all of this yourself with the other functions; these are only conveniences. */ + +/* These functions work with a given file descriptor and set terminal + attributes */ +extern int ttfd_onechar __P((int, TTYSTRUCT *)); +extern int ttfd_noecho __P((int, TTYSTRUCT *)); +extern int ttfd_eightbit __P((int, TTYSTRUCT *)); +extern int ttfd_nocanon __P((int, TTYSTRUCT *)); + +extern int ttfd_cbreak __P((int, TTYSTRUCT *)); + +/* These functions work with fd 0 and the TTYSTRUCT saved with ttsave () */ extern int ttonechar __P((void)); extern int ttnoecho __P((void)); extern int tteightbit __P((void)); diff --git a/include/stdc.h b/include/stdc.h index efab869e8..df01d813f 100644 --- a/include/stdc.h +++ b/include/stdc.h @@ -5,19 +5,19 @@ 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public - License for more details. + 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. */ + along with Bash. If not, see . +*/ #if !defined (_STDC_H_) #define _STDC_H_ diff --git a/include/systimes.h b/include/systimes.h index fe969f946..9629d255a 100644 --- a/include/systimes.h +++ b/include/systimes.h @@ -1,20 +1,20 @@ -/* Copyright (C) 1991, 1992, 1996 Free Software Foundation, Inc. - This file is part of the GNU C Library. +/* Copyright (C) 1991, 1992, 1996, 2008,2009 Free Software Foundation, Inc. - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + This file is part of GNU Bash, the Bourne Again SHell. - The GNU C Library is distributed in the hope that it will be useful, + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. + 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 Library General Public - License along with the GNU C Library; see the file COPYING.LIB. If not, - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ /* * POSIX Standard: 4.5.2 Process Times diff --git a/include/typemax.h b/include/typemax.h index 42ae517dc..32e7a899b 100644 --- a/include/typemax.h +++ b/include/typemax.h @@ -4,19 +4,19 @@ 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. + 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ /* * NOTE: This should be included after config.h, limits.h, stdint.h, and @@ -77,4 +77,8 @@ static const unsigned long long int maxquad = ULLONG_MAX; # define ULLONG_MAX maxquad #endif +#ifndef SSIZE_MAX +# define SSIZE_MAX 32767 /* POSIX minimum max */ +#endif + #endif /* _SH_TYPEMAX_H */ diff --git a/include/unionwait.h b/include/unionwait.h index ae7c7dfc1..b1b4dfaff 100644 --- a/include/unionwait.h +++ b/include/unionwait.h @@ -5,19 +5,19 @@ 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. */ + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #ifndef _UNIONWAIT_H #define _UNIONWAIT_H diff --git a/input.c b/input.c index 7933da2f2..fe21aef28 100644 --- a/input.c +++ b/input.c @@ -1,22 +1,22 @@ /* input.c -- functions to perform buffered input with synchronization. */ -/* Copyright (C) 1992 Free Software Foundation, Inc. +/* Copyright (C) 1992-2009 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. + 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #include "config.h" @@ -47,6 +47,18 @@ extern int errno; #endif /* !errno */ +#if defined (EAGAIN) +# define X_EAGAIN EAGAIN +#else +# define X_EAGAIN -99 +#endif + +#if defined (EWOULDBLOCK) +# define X_EWOULDBLOCK EWOULDBLOCK +#else +# define X_EWOULDBLOCK -99 +#endif + extern void termsig_handler __P((int)); /* Functions to handle reading input on systems that don't restart read(2) @@ -75,6 +87,15 @@ getc_with_restart (stream) local_bufused = read (fileno (stream), localbuf, sizeof(localbuf)); if (local_bufused > 0) break; + else if (errno == X_EAGAIN || errno == X_EWOULDBLOCK) + { + if (sh_unset_nodelay_mode (fileno (stream)) < 0) + { + sys_error (_("cannot reset nodelay mode for fd %d"), fileno (stream)); + return EOF; + } + continue; + } else if (local_bufused == 0 || errno != EINTR) { local_index = 0; diff --git a/input.h b/input.h index aa841020c..834626ae1 100644 --- a/input.h +++ b/input.h @@ -1,21 +1,22 @@ /* input.h -- Structures and unions used for reading input. */ -/* Copyright (C) 1993 Free Software Foundation, Inc. + +/* Copyright (C) 1993-2009 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. + 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #if !defined (_INPUT_H_) #define _INPUT_H_ diff --git a/jobs.c b/jobs.c index d18339435..3de0f4cf4 100644 --- a/jobs.c +++ b/jobs.c @@ -1,25 +1,25 @@ -/* The thing that makes children, remembers them, and contains wait loops. */ +/* jobs.c - functions that make children, remember them, and handle their termination. */ /* This file works with both POSIX and BSD systems. It implements job control. */ -/* Copyright (C) 1989-2006 Free Software Foundation, Inc. +/* Copyright (C) 1989-2009 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. + 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #include "config.h" @@ -67,6 +67,7 @@ #include "bashintl.h" #include "shell.h" #include "jobs.h" +#include "execute_cmd.h" #include "flags.h" #include "builtins/builtext.h" @@ -144,6 +145,7 @@ extern int subshell_environment, line_number; extern int posixly_correct, shell_level; extern int last_command_exit_value, last_command_exit_signal; extern int loop_level, breaking; +extern int executing_list; extern int sourcelevel; extern int running_trap; extern sh_builtin_func_t *this_shell_builtin; @@ -217,8 +219,6 @@ int check_window_size; /* Functions local to this file. */ -static void run_sigchld_trap __P((int)); - static sighandler wait_sigint_handler __P((int)); static sighandler sigchld_handler __P((int)); static sighandler sigcont_sighandler __P((int)); @@ -267,12 +267,12 @@ static void set_current_job __P((int)); static void reset_current __P((void)); static void set_job_running __P((int)); static void setjstatus __P((int)); +static int maybe_give_terminal_to __P((pid_t, pid_t, int)); static void mark_all_jobs_as_dead __P((void)); static void mark_dead_jobs_as_notified __P((int)); static void restore_sigint_handler __P((void)); #if defined (PGRP_PIPE) static void pipe_read __P((int *)); -static void pipe_close __P((int *)); #endif static struct pidstat *bgp_alloc __P((pid_t, int)); @@ -455,7 +455,7 @@ start_pipeline () cleanup_the_pipeline (); pipeline_pgrp = 0; #if defined (PGRP_PIPE) - pipe_close (pgrp_pipe); + sh_closepipe (pgrp_pipe); #endif } @@ -463,7 +463,7 @@ start_pipeline () if (job_control) { if (pipe (pgrp_pipe) == -1) - sys_error ("start_pipeline: pgrp pipe"); + sys_error (_("start_pipeline: pgrp pipe")); } #endif } @@ -485,7 +485,7 @@ stop_pipeline (async, deferred) #if defined (PGRP_PIPE) /* The parent closes the process group synchronization pipe. */ - pipe_close (pgrp_pipe); + sh_closepipe (pgrp_pipe); #endif cleanup_dead_jobs (); @@ -639,7 +639,7 @@ stop_pipeline (async, deferred) * */ if (job_control && newjob->pgrp && (subshell_environment&SUBSHELL_ASYNC) == 0) - give_terminal_to (newjob->pgrp, 0); + maybe_give_terminal_to (shell_pgrp, newjob->pgrp, 0); } } @@ -771,7 +771,7 @@ bgp_prune () bgpids.npid--; } } - + /* Reset the values of js.j_lastj and js.j_firstj after one or both have been deleted. The caller should check whether js.j_njobs is 0 before calling this. This wraps around, but the rest of the code does not. At @@ -845,6 +845,7 @@ cleanup_dead_jobs () static int processes_in_job (job) + int job; { int nproc; register PROCESS *p; @@ -905,6 +906,7 @@ realloc_jobs_list () BLOCK_CHILD (set, oset); nlist = (js.j_jobslots == nsize) ? jobs : (JOB **) xmalloc (nsize * sizeof (JOB *)); + js.c_reaped = js.j_ndead = 0; for (i = j = 0; i < js.j_jobslots; i++) if (jobs[i]) { @@ -913,12 +915,18 @@ realloc_jobs_list () if (i == js.j_previous) nprev = j; nlist[j++] = jobs[i]; + if (jobs[i]->state == JDEAD) + { + js.j_ndead++; + js.c_reaped += processes_in_job (i); + } } #if defined (DEBUG) itrace ("realloc_jobs_list: resize jobs list from %d to %d", js.j_jobslots, nsize); itrace ("realloc_jobs_list: j_lastj changed from %d to %d", js.j_lastj, (j > 0) ? j - 1 : 0); - itrace ("realloc_jobs_list: j_njobs changed from %d to %d", js.j_njobs, (j > 0) ? j - 1 : 0); + itrace ("realloc_jobs_list: j_njobs changed from %d to %d", js.j_njobs, j); + itrace ("realloc_jobs_list: js.j_ndead %d js.c_reaped %d", js.j_ndead, js.c_reaped); #endif js.j_firstj = 0; @@ -1094,10 +1102,10 @@ add_process (name, pid) { # ifdef DEBUG if (j == NO_JOB) - internal_warning ("add_process: process %5ld (%s) in the_pipeline", (long)p->pid, p->command); + internal_warning (_("add_process: process %5ld (%s) in the_pipeline"), (long)p->pid, p->command); # endif if (PALIVE (p)) - internal_warning ("add_process: pid %5ld (%s) marked as still alive", (long)p->pid, p->command); + internal_warning (_("add_process: pid %5ld (%s) marked as still alive"), (long)p->pid, p->command); p->running = PS_RECYCLED; /* mark as recycled */ } #endif @@ -1400,7 +1408,7 @@ j_strsignal (s) if (x == 0) { x = retcode_name_buffer; - sprintf (x, "Signal %d", s); + sprintf (x, _("Signal %d"), s); } return x; } @@ -1414,20 +1422,20 @@ printable_job_status (j, p, format) static char *temp; int es; - temp = "Done"; + temp = _("Done"); if (STOPPED (j) && format == 0) { if (posixly_correct == 0 || p == 0 || (WIFSTOPPED (p->status) == 0)) - temp = "Stopped"; + temp = _("Stopped"); else { temp = retcode_name_buffer; - sprintf (temp, "Stopped(%s)", signal_name (WSTOPSIG (p->status))); + sprintf (temp, _("Stopped(%s)"), signal_name (WSTOPSIG (p->status))); } } else if (RUNNING (j)) - temp = "Running"; + temp = _("Running"); else { if (WIFSTOPPED (p->status)) @@ -1439,14 +1447,14 @@ printable_job_status (j, p, format) temp = retcode_name_buffer; es = WEXITSTATUS (p->status); if (es == 0) - strcpy (temp, "Done"); + strcpy (temp, _("Done")); else if (posixly_correct) - sprintf (temp, "Done(%d)", es); + sprintf (temp, _("Done(%d)"), es); else - sprintf (temp, "Exit %d", es); + sprintf (temp, _("Exit %d"), es); } else - temp = "Unknown status"; + temp = _("Unknown status"); } return temp; @@ -1533,7 +1541,7 @@ print_pipeline (p, job_index, format, stream) if ((WIFSTOPPED (show->status) == 0) && (WIFCONTINUED (show->status) == 0) && WIFCORED (show->status)) - fprintf (stream, "(core dumped) "); + fprintf (stream, _("(core dumped) ")); } } @@ -1552,7 +1560,7 @@ print_pipeline (p, job_index, format, stream) if (strcmp (temp, jobs[job_index]->wd) != 0) fprintf (stream, - " (wd: %s)", polite_directory_format (jobs[job_index]->wd)); + _(" (wd: %s)"), polite_directory_format (jobs[job_index]->wd)); } if (format || (p == last)) @@ -1668,6 +1676,7 @@ make_child (command, async_p) char *command; int async_p; { + int forksleep; sigset_t set, oset; pid_t pid; @@ -1679,6 +1688,8 @@ make_child (command, async_p) making_children (); + forksleep = 1; + #if defined (BUFFERED_INPUT) /* If default_buffered_input is active, we are reading a script. If the command is asynchronous, we have already duplicated /dev/null @@ -1689,8 +1700,16 @@ make_child (command, async_p) sync_buffered_stream (default_buffered_input); #endif /* BUFFERED_INPUT */ - /* Create the child, handle severe errors. */ - if ((pid = fork ()) < 0) + /* Create the child, handle severe errors. Retry on EAGAIN. */ + while ((pid = fork ()) < 0 && errno == EAGAIN && forksleep < FORKSLEEP_MAX) + { + sys_error ("fork: retry"); + if (sleep (forksleep) != 0) + break; + forksleep <<= 1; + } + + if (pid < 0) { sys_error ("fork"); @@ -1744,7 +1763,7 @@ make_child (command, async_p) B.4.3.3, p. 237 also covers this, in the context of job control shells. */ if (setpgid (mypid, pipeline_pgrp) < 0) - sys_error ("child setpgid (%ld to %ld)", (long)mypid, (long)pipeline_pgrp); + sys_error (_("child setpgid (%ld to %ld)"), (long)mypid, (long)pipeline_pgrp); /* By convention (and assumption above), if pipeline_pgrp == shell_pgrp, we are making a child for @@ -1777,14 +1796,18 @@ make_child (command, async_p) #if defined (PGRP_PIPE) /* Release the process group pipe, since our call to setpgid () - is done. The last call to pipe_close is done in stop_pipeline. */ - pipe_close (pgrp_pipe); + is done. The last call to sh_closepipe is done in stop_pipeline. */ + sh_closepipe (pgrp_pipe); #endif /* PGRP_PIPE */ +#if 0 + /* Don't set last_asynchronous_pid in the child */ if (async_p) - last_asynchronous_pid = mypid; + last_asynchronous_pid = mypid; /* XXX */ + else +#endif #if defined (RECYCLES_PIDS) - else if (last_asynchronous_pid == mypid) + if (last_asynchronous_pid == mypid) /* Avoid pid aliasing. 1 seems like a safe, unusual pid value. */ last_asynchronous_pid = 1; #endif @@ -1959,7 +1982,7 @@ get_tty_state () /* Only print an error message if we're really interactive at this time. */ if (interactive) - sys_error ("[%ld: %d] tcgetattr", (long)getpid (), shell_level); + sys_error ("[%ld: %d (%d)] tcgetattr", (long)getpid (), shell_level, tty); #endif return -1; } @@ -1998,7 +2021,7 @@ set_tty_state () /* Only print an error message if we're really interactive at this time. */ if (interactive) - sys_error ("[%ld: %d] tcsetattr", (long)getpid (), shell_level); + sys_error ("[%ld: %d (%d)] tcsetattr", (long)getpid (), shell_level, tty); return -1; } #endif /* TERMIOS_TTY_DRIVER */ @@ -2248,6 +2271,7 @@ raw_job_exit_status (job) { register PROCESS *p; int fail; + WAIT ret; if (pipefail_opt) { @@ -2255,11 +2279,13 @@ raw_job_exit_status (job) p = jobs[job]->pipe; do { - if (p->status != EXECUTION_SUCCESS) fail = p->status; + if (WSTATUS (p->status) != EXECUTION_SUCCESS) + fail = WSTATUS(p->status); p = p->next; } while (p != jobs[job]->pipe); - return fail; + WSTATUS (ret) = fail; + return ret; } for (p = jobs[job]->pipe; p->next != jobs[job]->pipe; p = p->next) @@ -2400,7 +2426,7 @@ wait_for (pid) if (r == -1 && errno == ECHILD) { child->running = PS_DONE; - child->status = 0; /* XXX -- can't find true status */ + WSTATUS (child->status) = 0; /* XXX -- can't find true status */ js.c_living = 0; /* no living child processes */ if (job != NO_JOB) { @@ -2500,7 +2526,7 @@ if (job == NO_JOB) or until loop, act as if the shell received SIGINT as well, so the loop can be broken. This doesn't call the SIGINT signal handler; maybe it should. */ - if (signal_is_trapped (SIGINT) == 0 && loop_level) + if (signal_is_trapped (SIGINT) == 0 && (loop_level || (shell_compatibility_level > 32 && executing_list))) ADDINTERRUPT; else { @@ -3012,6 +3038,7 @@ waitchld (wpid, block) if (sigchld || block == 0) waitpid_flags |= WNOHANG; CHECK_TERMSIG; + pid = WAITPID (-1, &status, waitpid_flags); /* WCONTINUED may be rejected by waitpid as invalid even when defined */ @@ -3053,12 +3080,20 @@ waitchld (wpid, block) /* Locate our PROCESS for this pid. */ child = find_process (pid, 1, &job); /* want living procs only */ +#if defined (COPROCESS_SUPPORT) + coproc_pidchk (pid); +#endif + /* It is not an error to have a child terminate that we did not have a record of. This child could have been part of a pipeline in backquote substitution. Even so, I'm not sure child is ever non-zero. */ if (child == 0) - continue; + { + if (WIFEXITED (status) || WIFSIGNALED (status)) + js.c_reaped++; + continue; + } /* Remember status, and whether or not the process is running. */ child->status = status; @@ -3096,7 +3131,17 @@ waitchld (wpid, block) /* Call a SIGCHLD trap handler for each child that exits, if one is set. */ if (job_control && signal_is_trapped (SIGCHLD) && children_exited && trap_list[SIGCHLD] != (char *)IGNORE_SIG) - run_sigchld_trap (children_exited); + { + if (this_shell_builtin && this_shell_builtin == wait_builtin) + { + interrupt_immediately = 0; + trap_handler (SIGCHLD); /* set pending_traps[SIGCHLD] */ + wait_signal_received = SIGCHLD; + longjmp (wait_intr_buf, 1); + } + + run_sigchld_trap (children_exited); + } /* We have successfully recorded the useful information about this process that has just changed state. If we notify asynchronously, and the job @@ -3315,7 +3360,7 @@ setjstatus (j) #endif } -static void +void run_sigchld_trap (nchild) int nchild; { @@ -3346,7 +3391,7 @@ run_sigchld_trap (nchild) subst_assign_varlist = (WORD_LIST *)NULL; the_pipeline = (PROCESS *)NULL; - restore_default_signal (SIGCHLD); + set_impossible_sigchld_trap (); jobs_list_frozen = 1; for (i = 0; i < nchild; i++) { @@ -3439,7 +3484,7 @@ notify_of_job_status () signal_is_trapped (termsig) == 0) { /* Don't print `0' for a line number. */ - fprintf (stderr, "%s: line %d: ", get_name_for_error (), (line_number == 0) ? 1 : line_number); + fprintf (stderr, _("%s: line %d: "), get_name_for_error (), (line_number == 0) ? 1 : line_number); pretty_print_job (job, JLIST_NONINTERACTIVE, stderr); } else if (IS_FOREGROUND (job)) @@ -3453,7 +3498,7 @@ notify_of_job_status () fprintf (stderr, "%s", j_strsignal (termsig)); if (WIFCORED (s)) - fprintf (stderr, " (core dumped)"); + fprintf (stderr, _(" (core dumped)")); fprintf (stderr, "\n"); } @@ -3465,7 +3510,7 @@ notify_of_job_status () pretty_print_job (job, JLIST_STANDARD, stderr); if (dir && strcmp (dir, jobs[job]->wd) != 0) fprintf (stderr, - "(wd now: %s)\n", polite_directory_format (dir)); + _("(wd now: %s)\n"), polite_directory_format (dir)); } jobs[job]->flags |= J_NOTIFIED; @@ -3478,7 +3523,7 @@ notify_of_job_status () pretty_print_job (job, JLIST_STANDARD, stderr); if (dir && (strcmp (dir, jobs[job]->wd) != 0)) fprintf (stderr, - "(wd now: %s)\n", polite_directory_format (dir)); + _("(wd now: %s)\n"), polite_directory_format (dir)); jobs[job]->flags |= J_NOTIFIED; break; @@ -3502,11 +3547,15 @@ int initialize_job_control (force) int force; { + pid_t t; + int t_errno; + + t_errno = -1; shell_pgrp = getpgid (0); if (shell_pgrp == -1) { - sys_error ("initialize_job_control: getpgrp failed"); + sys_error (_("initialize_job_control: getpgrp failed")); exit (1); } @@ -3519,10 +3568,21 @@ initialize_job_control (force) } else { + shell_tty = -1; + + /* If forced_interactive is set, we skip the normal check that stderr + is attached to a tty, so we need to check here. If it's not, we + need to see whether we have a controlling tty by opening /dev/tty, + since trying to use job control tty pgrp manipulations on a non-tty + is going to fail. */ + if (forced_interactive && isatty (fileno (stderr)) == 0) + shell_tty = open ("/dev/tty", O_RDWR|O_NONBLOCK); + /* Get our controlling terminal. If job_control is set, or interactive is set, then this is an interactive shell no matter where fd 2 is directed. */ - shell_tty = dup (fileno (stderr)); /* fd 2 */ + if (shell_tty == -1) + shell_tty = dup (fileno (stderr)); /* fd 2 */ shell_tty = move_to_high_fd (shell_tty, 1, -1); @@ -3549,10 +3609,13 @@ initialize_job_control (force) break; } + if (terminal_pgrp == -1) + t_errno = errno; + /* Make sure that we are using the new line discipline. */ if (set_new_line_discipline (shell_tty) < 0) { - sys_error ("initialize_job_control: line discipline"); + sys_error (_("initialize_job_control: line discipline")); job_control = 0; } else @@ -3562,7 +3625,7 @@ initialize_job_control (force) if ((original_pgrp != shell_pgrp) && (setpgid (0, shell_pgrp) < 0)) { - sys_error ("initialize_job_control: setpgid"); + sys_error (_("initialize_job_control: setpgid")); shell_pgrp = original_pgrp; } @@ -3579,11 +3642,20 @@ initialize_job_control (force) { if (give_terminal_to (shell_pgrp, 0) < 0) { + t_errno = errno; setpgid (0, original_pgrp); shell_pgrp = original_pgrp; job_control = 0; } } + + if (job_control && ((t = tcgetpgrp (shell_tty)) == -1 || t != shell_pgrp)) + { + if (t_errno != -1) + errno = t_errno; + sys_error (_("cannot set terminal process group (%d)"), t); + job_control = 0; + } } if (job_control == 0) internal_error (_("no job control in this shell")); @@ -3733,7 +3805,7 @@ give_terminal_to (pgrp, force) int force; { sigset_t set, oset; - int r; + int r, e; r = 0; if (job_control || force) @@ -3754,15 +3826,47 @@ give_terminal_to (pgrp, force) shell_tty, (long)getpid(), (long)pgrp); #endif r = -1; + e = errno; } else terminal_pgrp = pgrp; sigprocmask (SIG_SETMASK, &oset, (sigset_t *)NULL); } + if (r == -1) + errno = e; + return r; } +/* Give terminal to NPGRP iff it's currently owned by OPGRP. FLAGS are the + flags to pass to give_terminal_to(). */ +static int +maybe_give_terminal_to (opgrp, npgrp, flags) + pid_t opgrp, npgrp; + int flags; +{ + int tpgrp; + + tpgrp = tcgetpgrp (shell_tty); + if (tpgrp < 0 && errno == ENOTTY) + return -1; + if (tpgrp == npgrp) + { + terminal_pgrp = npgrp; + return 0; + } + else if (tpgrp != opgrp) + { +#if defined (DEBUG) + internal_warning ("maybe_give_terminal_to: terminal pgrp == %d shell pgrp = %d new pgrp = %d", tpgrp, opgrp, npgrp); +#endif + return -1; + } + else + return (give_terminal_to (npgrp, flags)); +} + /* Clear out any jobs in the job array. This is intended to be used by children of the shell, who should not have any job structures as baggage when they start executing (forking subshells for parenthesized execution @@ -4023,7 +4127,7 @@ without_job_control () stop_making_children (); start_pipeline (); #if defined (PGRP_PIPE) - pipe_close (pgrp_pipe); + sh_closepipe (pgrp_pipe); #endif delete_all_jobs (0); set_job_control (0); @@ -4086,25 +4190,11 @@ pipe_read (pp) } } -/* Close the read and write ends of PP, an array of file descriptors. */ -static void -pipe_close (pp) - int *pp; -{ - if (pp[0] >= 0) - close (pp[0]); - - if (pp[1] >= 0) - close (pp[1]); - - pp[0] = pp[1] = -1; -} - /* Functional interface closes our local-to-job-control pipes. */ void close_pgrp_pipe () { - pipe_close (pgrp_pipe); + sh_closepipe (pgrp_pipe); } #endif /* PGRP_PIPE */ diff --git a/jobs.h b/jobs.h index 93a42fb2a..6e82f762c 100644 --- a/jobs.h +++ b/jobs.h @@ -1,22 +1,22 @@ -/* jobs.h -- structures and stuff used by the jobs.c file. */ +/* jobs.h -- structures and definitions used by the jobs.c file. */ -/* Copyright (C) 1993-2005 Free Software Foundation, Inc. +/* Copyright (C) 1993-2009 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. + 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #if !defined (_JOBS_H_) # define _JOBS_H_ @@ -38,6 +38,9 @@ /* I looked it up. For pretty_print_job (). The real answer is 24. */ #define LONGEST_SIGNAL_DESC 24 +/* The max time to sleep while retrying fork() on EAGAIN failure */ +#define FORKSLEEP_MAX 16 + /* We keep an array of jobs. Each entry in the array is a linked list of processes that are piped together. The first process encountered is the group leader. */ @@ -74,7 +77,7 @@ typedef struct process { #define get_job_by_jid(ind) (jobs[(ind)]) /* A description of a pipeline's state. */ -typedef enum { JRUNNING, JSTOPPED, JDEAD, JMIXED } JOB_STATE; +typedef enum { JNONE = -1, JRUNNING = 1, JSTOPPED = 2, JDEAD = 4, JMIXED = 8 } JOB_STATE; #define JOBSTATE(job) (jobs[(job)]->state) #define J_JOBSTATE(j) ((j)->state) @@ -218,6 +221,8 @@ extern int initialize_job_control __P((int)); extern void initialize_job_signals __P((void)); extern int give_terminal_to __P((pid_t, int)); +extern void run_sigchld_trap __P((int)); + extern void unfreeze_jobs_list __P((void)); extern int set_job_control __P((int)); extern void without_job_control __P((void)); @@ -229,6 +234,8 @@ extern void default_tty_job_signals __P((void)); extern void init_job_stats __P((void)); +extern void close_pgrp_pipe __P((void)); + #if defined (JOB_CONTROL) extern int job_control; #endif diff --git a/lib/glob/Makefile.in b/lib/glob/Makefile.in index 9f53a7b2e..1ccae684b 100644 --- a/lib/glob/Makefile.in +++ b/lib/glob/Makefile.in @@ -4,21 +4,20 @@ # # #################################################################### # -# Copyright (C) 1996-2005 Free Software Foundation, Inc. +# Copyright (C) 1996-2009 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 free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# 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. +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . srcdir = @srcdir@ VPATH = .:@srcdir@ diff --git a/lib/glob/collsyms.h b/lib/glob/collsyms.h index ccd9f43ae..d56df6113 100644 --- a/lib/glob/collsyms.h +++ b/lib/glob/collsyms.h @@ -5,19 +5,19 @@ 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. + 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ /* The upper-case letters, lower-case letters, and digits are omitted from this table. The digits are not included in the table in the POSIX.2 diff --git a/lib/glob/glob.c b/lib/glob/glob.c index 08a7da853..dceb2e570 100644 --- a/lib/glob/glob.c +++ b/lib/glob/glob.c @@ -1,20 +1,22 @@ /* glob.c -- file-name wildcard pattern matching for Bash. - Copyright (C) 1985-2005 Free Software Foundation, Inc. + Copyright (C) 1985-2009 Free Software Foundation, Inc. - This program is free software; you can redistribute it and/or modify + 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. + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - This program is distributed in the hope that it will be useful, + 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 this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ + along with Bash. If not, see . +*/ /* To whomever it may concern: I have never seen the code which most Unix programs use to perform this function. I wrote this from scratch @@ -45,7 +47,8 @@ #include "stdc.h" #include "memalloc.h" -#include "quit.h" + +#include "shell.h" #include "glob.h" #include "strmatch.h" @@ -72,8 +75,15 @@ # define ALLOCA_MAX 100000 #endif +struct globval + { + struct globval *next; + char *name; + }; + extern void throw_to_top_level __P((void)); extern int sh_eaccess __P((char *, int)); +extern char *sh_makepath __P((const char *, const char *, int)); extern int extended_glob; @@ -88,10 +98,12 @@ int glob_ignore_case = 0; /* Global variable to return to signify an error in globbing. */ char *glob_error_return; +static struct globval finddirs_error_return; + /* Some forward declarations. */ -static int skipname __P((char *, char *)); +static int skipname __P((char *, char *, int)); #if HANDLE_MULTIBYTE -static int mbskipname __P((char *, char *)); +static int mbskipname __P((char *, char *, int)); #endif #if HANDLE_MULTIBYTE static void udequote_pathname __P((char *)); @@ -154,9 +166,10 @@ glob_pattern_p (pattern) with matching leading `.'. */ static int -skipname (pat, dname) +skipname (pat, dname, flags) char *pat; char *dname; + int flags; { /* If a leading dot need not be explicitly matched, and the pattern doesn't start with a `.', don't match `.' or `..' */ @@ -179,8 +192,9 @@ skipname (pat, dname) characters in PAT and DNAME. Mostly concerned with matching leading `.'. */ static int -mbskipname (pat, dname) +mbskipname (pat, dname, flags) char *pat, *dname; + int flags; { int ret; wchar_t *pat_wc, *dn_wc; @@ -315,6 +329,75 @@ glob_testdir (dir) return (0); } +/* Recursively scan SDIR for directories matching PAT (PAT is always `**'). + FLAGS is simply passed down to the recursive call to glob_vector. Returns + a list of matching directory names. EP, if non-null, is set to the last + element of the returned list. NP, if non-null, is set to the number of + directories in the returned list. These two variables exist for the + convenience of the caller (always glob_vector). */ +static struct globval * +finddirs (pat, sdir, flags, ep, np) + char *pat; + char *sdir; + int flags; + struct globval **ep; + int *np; +{ + char **r, *n; + int ndirs; + struct globval *ret, *e, *g; + +/*itrace("finddirs: pat = `%s' sdir = `%s' flags = 0x%x", pat, sdir, flags);*/ + e = ret = 0; + r = glob_vector (pat, sdir, flags); + if (r == 0 || r[0] == 0) + { + if (np) + *np = 0; + if (ep) + *ep = 0; + if (r) + free (r); + return (struct globval *)0; + } + for (ndirs = 0; r[ndirs] != 0; ndirs++) + { + g = (struct globval *) malloc (sizeof (struct globval)); + if (g == 0) + { + while (ret) /* free list built so far */ + { + g = ret->next; + free (ret); + ret = g; + } + + free (r); + if (np) + *np = 0; + if (ep) + *ep = 0; + return (&finddirs_error_return); + } + if (e == 0) + e = g; + + g->next = ret; + ret = g; + + g->name = r[ndirs]; + } + + free (r); + if (ep) + *ep = e; + if (np) + *np = ndirs; + + return ret; +} + + /* Return a vector of names of files in directory DIR whose names match glob pattern PAT. The names are not in any particular order. @@ -337,31 +420,27 @@ glob_vector (pat, dir, flags) char *dir; int flags; { - struct globval - { - struct globval *next; - char *name; - }; - DIR *d; register struct dirent *dp; - struct globval *lastlink; + struct globval *lastlink, *e, *dirlist; register struct globval *nextlink; - register char *nextname, *npat; + register char *nextname, *npat, *subdir; unsigned int count; - int lose, skip; + int lose, skip, ndirs, isdir, sdlen, add_current; register char **name_vector; register unsigned int i; int mflags; /* Flags passed to strmatch (). */ + int pflags; /* flags passed to sh_makepath () */ int nalloca; struct globval *firstmalloc, *tmplink; lastlink = 0; - count = lose = skip = 0; + count = lose = skip = add_current = 0; firstmalloc = 0; nalloca = 0; +/*itrace("glob_vector: pat = `%s' dir = `%s' flags = 0x%x", pat, dir, flags);*/ /* If PAT is empty, skip the loop, but return one (empty) filename. */ if (pat == 0 || *pat == '\0') { @@ -463,6 +542,8 @@ glob_vector (pat, dir, flags) if (extended_glob) mflags |= FNM_EXTMATCH; + add_current = ((flags & (GX_ALLDIRS|GX_ADDCURDIR)) == (GX_ALLDIRS|GX_ADDCURDIR)); + /* Scan the directory, finding all names that match. For each name that matches, allocate a struct globval on the stack and store the name in it. @@ -490,13 +571,69 @@ glob_vector (pat, dir, flags) #endif #if HANDLE_MULTIBYTE - if (MB_CUR_MAX > 1 && mbskipname (pat, dp->d_name)) + if (MB_CUR_MAX > 1 && mbskipname (pat, dp->d_name, flags)) continue; else #endif - if (skipname (pat, dp->d_name)) + if (skipname (pat, dp->d_name, flags)) continue; + /* If we're only interested in directories, don't bother with files */ + if (flags & (GX_MATCHDIRS|GX_ALLDIRS)) + { + pflags = (flags & GX_ALLDIRS) ? MP_RMDOT : 0; + if (flags & GX_NULLDIR) + pflags |= MP_IGNDOT; + subdir = sh_makepath (dir, dp->d_name, pflags); + isdir = glob_testdir (subdir); + if (isdir < 0 && (flags & GX_MATCHDIRS)) + { + free (subdir); + continue; + } + } + + if (flags & GX_ALLDIRS) + { + if (isdir == 0) + { + dirlist = finddirs (pat, subdir, (flags & ~GX_ADDCURDIR), &e, &ndirs); + if (dirlist == &finddirs_error_return) + { + free (subdir); + lose = 1; + break; + } + if (ndirs) /* add recursive directories to list */ + { + if (firstmalloc == 0) + firstmalloc = e; + e->next = lastlink; + lastlink = dirlist; + count += ndirs; + } + } + + nextlink = (struct globval *) malloc (sizeof (struct globval)); + if (firstmalloc == 0) + firstmalloc = nextlink; + sdlen = strlen (subdir); + nextname = (char *) malloc (sdlen + 1); + if (nextlink == 0 || nextname == 0) + { + free (subdir); + lose = 1; + break; + } + nextlink->next = lastlink; + lastlink = nextlink; + nextlink->name = nextname; + bcopy (subdir, nextname, sdlen + 1); + free (subdir); + ++count; + continue; + } + if (strmatch (pat, dp->d_name, mflags) != FNM_NOMATCH) { if (nalloca < ALLOCA_MAX) @@ -510,6 +647,7 @@ glob_vector (pat, dir, flags) if (firstmalloc == 0) firstmalloc = nextlink; } + nextname = (char *) malloc (D_NAMLEN (dp) + 1); if (nextlink == 0 || nextname == 0) { @@ -527,6 +665,27 @@ glob_vector (pat, dir, flags) (void) closedir (d); } + /* compat: if GX_ALLDIRS, add the passed directory also */ + if (add_current) + { + sdlen = strlen (dir); + nextname = (char *)malloc (sdlen + 1); + nextlink = (struct globval *) malloc (sizeof (struct globval)); + if (nextlink == 0 || nextname == 0) + lose = 1; + else + { + nextlink->name = nextname; + nextlink->next = lastlink; + lastlink = nextlink; + if (flags & GX_NULLDIR) + nextname[0] = '\0'; + else + bcopy (dir, nextname, sdlen + 1); + ++count; + } + } + if (lose == 0) { name_vector = (char **) malloc ((count + 1) * sizeof (char *)); @@ -585,7 +744,7 @@ glob_vector (pat, dir, flags) free (tmplink); } } - + return (name_vector); } @@ -678,9 +837,10 @@ glob_filename (pathname, flags) { char **result; unsigned int result_size; - char *directory_name, *filename; + char *directory_name, *filename, *dname; unsigned int directory_len; int free_dirname; /* flag */ + int dflags; result = (char **) malloc (sizeof (char *)); result_size = 1; @@ -721,10 +881,14 @@ glob_filename (pathname, flags) char **directories; register unsigned int i; + dflags = flags & ~GX_MARKDIRS; + if ((flags & GX_GLOBSTAR) && directory_name[0] == '*' && directory_name[1] == '*' && (directory_name[2] == '/' || directory_name[2] == '\0')) + dflags |= GX_ALLDIRS|GX_ADDCURDIR; + if (directory_name[directory_len - 1] == '/') directory_name[directory_len - 1] = '\0'; - directories = glob_filename (directory_name, flags & ~GX_MARKDIRS); + directories = glob_filename (directory_name, dflags); if (free_dirname) { @@ -753,10 +917,19 @@ glob_filename (pathname, flags) { char **temp_results; - /* Scan directory even on a NULL pathname. That way, `*h/' + /* Scan directory even on a NULL filename. That way, `*h/' returns only directories ending in `h', instead of all files ending in `h' with a `/' appended. */ - temp_results = glob_vector (filename, directories[i], flags & ~GX_MARKDIRS); + dname = directories[i]; + dflags = flags & ~GX_MARKDIRS; + if ((flags & GX_GLOBSTAR) && filename[0] == '*' && filename[1] == '*' && filename[2] == '\0') + dflags |= GX_ALLDIRS|GX_ADDCURDIR; + if (dname[0] == '\0' && filename[0]) + { + dflags |= GX_NULLDIR; + dname = "."; /* treat null directory name and non-null filename as current directory */ + } + temp_results = glob_vector (filename, dname, dflags); /* Handle error cases. */ if (temp_results == NULL) @@ -830,9 +1003,14 @@ glob_filename (pathname, flags) /* Just return what glob_vector () returns appended to the directory name. */ + dflags = flags & ~GX_MARKDIRS; + if (directory_len == 0) + dflags |= GX_NULLDIR; + if ((flags & GX_GLOBSTAR) && filename[0] == '*' && filename[1] == '*' && filename[2] == '\0') + dflags |= GX_ALLDIRS|GX_ADDCURDIR; temp_results = glob_vector (filename, (directory_len == 0 ? "." : directory_name), - flags & ~GX_MARKDIRS); + dflags); if (temp_results == NULL || temp_results == (char **)&glob_error_return) { @@ -841,7 +1019,7 @@ glob_filename (pathname, flags) return (temp_results); } - result = glob_dir_to_array (directory_name, temp_results, flags); + result = glob_dir_to_array ((dflags & GX_ALLDIRS) ? "" : directory_name, temp_results, flags); if (free_dirname) free (directory_name); return (result); diff --git a/lib/glob/glob.h b/lib/glob/glob.h index 95108a44d..993ed70c8 100644 --- a/lib/glob/glob.h +++ b/lib/glob/glob.h @@ -1,28 +1,35 @@ /* File-name wildcard pattern matching for GNU. - Copyright (C) 1985, 1988, 1989 Free Software Foundation, Inc. + Copyright (C) 1985, 1988, 1989, 2008,2009 Free Software Foundation, Inc. - This program is free software; you can redistribute it and/or modify + 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. + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - This program is distributed in the hope that it will be useful, + 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 this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ + along with Bash. If not, see . +*/ #ifndef _GLOB_H_ #define _GLOB_H_ #include "stdc.h" -#define GX_MARKDIRS 0x01 /* mark directory names with trailing `/' */ -#define GX_NOCASE 0x02 /* ignore case */ -#define GX_MATCHDOT 0x04 /* match `.' literally */ +#define GX_MARKDIRS 0x001 /* mark directory names with trailing `/' */ +#define GX_NOCASE 0x002 /* ignore case */ +#define GX_MATCHDOT 0x004 /* match `.' literally */ +#define GX_MATCHDIRS 0x008 /* match only directory names */ +#define GX_ALLDIRS 0x010 /* match all directory names, no others */ +#define GX_NULLDIR 0x100 /* internal -- no directory preceding pattern */ +#define GX_ADDCURDIR 0x200 /* internal -- add passed directory name */ +#define GX_GLOBSTAR 0x400 /* turn on special handling of ** */ extern int glob_pattern_p __P((const char *)); extern char **glob_vector __P((char *, char *, int)); diff --git a/lib/glob/glob_loop.c b/lib/glob/glob_loop.c index 253cac915..89e86af57 100644 --- a/lib/glob/glob_loop.c +++ b/lib/glob/glob_loop.c @@ -2,19 +2,19 @@ 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. */ + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ static int INTERNAL_GLOB_PATTERN_P __P((const CHAR *)); diff --git a/lib/glob/sm_loop.c b/lib/glob/sm_loop.c index 41b0759af..dfff06cf5 100644 --- a/lib/glob/sm_loop.c +++ b/lib/glob/sm_loop.c @@ -2,19 +2,20 @@ 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. */ + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ + int FCT __P((CHAR *, CHAR *, int)); static int GMATCH __P((CHAR *, CHAR *, CHAR *, CHAR *, int)); diff --git a/lib/glob/smatch.c b/lib/glob/smatch.c index be4f927c7..11d86b080 100644 --- a/lib/glob/smatch.c +++ b/lib/glob/smatch.c @@ -5,19 +5,19 @@ 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. */ + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #include diff --git a/lib/glob/strmatch.c b/lib/glob/strmatch.c index 4d9c68d09..cea9bd862 100644 --- a/lib/glob/strmatch.c +++ b/lib/glob/strmatch.c @@ -5,19 +5,19 @@ 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. */ + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #include @@ -25,7 +25,7 @@ #include "strmatch.h" extern int xstrmatch __P((char *, char *, int)); -#if defined (HAVE_MULTIBYTE) +#if defined (HANDLE_MULTIBYTE) extern int internal_wstrmatch __P((wchar_t *, wchar_t *, int)); #endif diff --git a/lib/glob/strmatch.h b/lib/glob/strmatch.h index 74714446d..5c99e0cae 100644 --- a/lib/glob/strmatch.h +++ b/lib/glob/strmatch.h @@ -1,20 +1,20 @@ /* Copyright (C) 1991-2004 Free Software Foundation, Inc. -This file is part of the GNU C Library. - -The GNU C Library is free software; you can redistribute it and/or -modify it under the terms of the GNU Library General Public License as -published by the Free Software Foundation; either version 2 of the -License, or (at your option) any later version. - -The GNU C Library 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 -Library General Public License for more details. - -You should have received a copy of the GNU Library General Public -License along with the GNU C Library; see the file COPYING.LIB. If -not, write to the Free Software Foundation, Inc., -59 Temple Place, Suite 330, Boston, MA 02111 USA. */ + + This file is part of GNU Bash, the Bourne-Again SHell. + + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #ifndef _STRMATCH_H #define _STRMATCH_H 1 diff --git a/lib/glob/xmbsrtowcs.c b/lib/glob/xmbsrtowcs.c index 83b67b407..23fcd8e71 100644 --- a/lib/glob/xmbsrtowcs.c +++ b/lib/glob/xmbsrtowcs.c @@ -4,19 +4,20 @@ 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. */ + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ + #include #include @@ -27,6 +28,10 @@ #include #if HANDLE_MULTIBYTE + +#ifndef FREE +# define FREE(x) do { if (x) free (x); } while (0) +#endif /* On some locales (ex. ja_JP.sjis), mbsrtowc doesn't convert 0x5c to U<0x5c>. So, this function is made for converting 0x5c to U<0x5c>. */ @@ -160,12 +165,16 @@ xdupmbstowcs (destp, indicesp, src) return (size_t)-1; } - indices = (char **) malloc (wsbuf_size * sizeof(char *)); - if (indices == NULL) + indices = NULL; + if (indicesp) { - free (wsbuf); - *destp = NULL; - return (size_t)-1; + indices = (char **) malloc (wsbuf_size * sizeof(char *)); + if (indices == NULL) + { + free (wsbuf); + *destp = NULL; + return (size_t)-1; + } } p = src; @@ -196,7 +205,7 @@ xdupmbstowcs (destp, indicesp, src) if (MB_INVALIDCH (mblength)) { free (wsbuf); - free (indices); + FREE (indices); *destp = NULL; return (size_t)-1; } @@ -215,25 +224,29 @@ xdupmbstowcs (destp, indicesp, src) if (wstmp == NULL) { free (wsbuf); - free (indices); + FREE (indices); *destp = NULL; return (size_t)-1; } wsbuf = wstmp; - idxtmp = (char **) realloc (indices, wsbuf_size * sizeof (char **)); - if (idxtmp == NULL) + if (indicesp) { - free (wsbuf); - free (indices); - *destp = NULL; - return (size_t)-1; + idxtmp = (char **) realloc (indices, wsbuf_size * sizeof (char **)); + if (idxtmp == NULL) + { + free (wsbuf); + free (indices); + *destp = NULL; + return (size_t)-1; + } + indices = idxtmp; } - indices = idxtmp; } wsbuf[wcnum - 1] = wc; - indices[wcnum - 1] = (char *)p; + if (indices) + indices[wcnum - 1] = (char *)p; p += mblength; } while (MB_NULLWCH (wc) == 0); @@ -242,8 +255,6 @@ xdupmbstowcs (destp, indicesp, src) *destp = wsbuf; if (indicesp != NULL) *indicesp = indices; - else - free (indices); return (wcnum - 1); } diff --git a/lib/intl/Makefile.in b/lib/intl/Makefile.in index 8520ed2e3..c5245d4c8 100644 --- a/lib/intl/Makefile.in +++ b/lib/intl/Makefile.in @@ -1,20 +1,19 @@ # Makefile for directory with message catalog handling library of GNU gettext -# Copyright (C) 1995-1998, 2000-2003 Free Software Foundation, Inc. +# Copyright (C) 1995-1998, 2000-2003, 2008,2009 Free Software Foundation, Inc. # -# This program is free software; you can redistribute it and/or modify it -# under the terms of the GNU Library 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 -# Library General Public License for more details. -# -# You should have received a copy of the GNU Library 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. + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . PACKAGE = @PACKAGE_NAME@ VERSION = @PACKAGE_VERSION@ @@ -29,14 +28,20 @@ VPATH = $(srcdir) prefix = @prefix@ exec_prefix = @exec_prefix@ transform = @program_transform_name@ + +datarootdir = @datarootdir@ + libdir = @libdir@ includedir = @includedir@ datadir = @datadir@ -localedir = $(datadir)/locale +localedir = @localedir@ + gettextsrcdir = $(datadir)/gettext/intl aliaspath = $(localedir) subdir = intl +@SET_MAKE@ + INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ MKINSTALLDIRS = @MKINSTALLDIRS@ @@ -58,7 +63,7 @@ DEFS = -DLOCALEDIR=\"$(localedir)\" -DLOCALE_ALIAS_PATH=\"$(aliaspath)\" \ -DENABLE_RELOCATABLE=1 -DIN_LIBRARY -DINSTALLDIR=\"$(libdir)\" -DNO_XMALLOC \ -Dset_relocation_prefix=libintl_set_relocation_prefix \ -Drelocate=libintl_relocate \ --DDEPENDS_ON_LIBICONV=1 @DEFS@ @LOCAL_DEFS@ +-DDEPENDS_ON_LIBICONV=1 @DEFS@ ${LOCAL_DEFS} CPPFLAGS = @CPPFLAGS@ CFLAGS = @CFLAGS@ LDFLAGS = @LDFLAGS@ @@ -229,7 +234,7 @@ libgnuintl.h: $(srcdir)/libgnuintl.h.in cp $(srcdir)/libgnuintl.h.in libgnuintl.h libintl.h: libgnuintl.h - cp libgnuintl.h libintl.h + cmp libgnuintl.h libintl.h || cp libgnuintl.h libintl.h charset.alias: $(srcdir)/config.charset $(SHELL) $(srcdir)/config.charset '@host@' > t-$@ diff --git a/lib/intl/bindtextdom.c b/lib/intl/bindtextdom.c index 250f5e863..ef5479e32 100644 --- a/lib/intl/bindtextdom.c +++ b/lib/intl/bindtextdom.c @@ -1,20 +1,22 @@ -/* Implementation of the bindtextdomain(3) function - Copyright (C) 1995-1998, 2000, 2001, 2002 Free Software Foundation, Inc. +/* bindtextdom.c - Implementation of the bindtextdomain(3) function */ - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU Library General Public License as published - by the Free Software Foundation; either version 2, or (at your option) - any later version. +/* Copyright (C) 1995-1998, 2000, 2001, 2002, 2005-2009 Free Software Foundation, Inc. - This program is distributed in the hope that it will be useful, + This file is part of GNU Bash. + + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. + 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 Library 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #ifdef HAVE_CONFIG_H # include diff --git a/lib/intl/config.charset b/lib/intl/config.charset old mode 100755 new mode 100644 index 32becece9..10c443970 --- a/lib/intl/config.charset +++ b/lib/intl/config.charset @@ -1,22 +1,20 @@ #! /bin/sh # Output a system dependent table of character encoding aliases. # -# Copyright (C) 2000-2003 Free Software Foundation, Inc. +# Copyright (C) 2000-2009 Free Software Foundation, Inc. # -# This program is free software; you can redistribute it and/or modify it -# under the terms of the GNU Library General Public License as published -# by the Free Software Foundation; either version 2, or (at your option) -# any later version. +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Library General Public License for more details. +# 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 Library 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. +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . # # The table consists of lines of the form # ALIAS CANONICAL diff --git a/lib/intl/dcgettext.c b/lib/intl/dcgettext.c index ca6a1c82d..c156ca24e 100644 --- a/lib/intl/dcgettext.c +++ b/lib/intl/dcgettext.c @@ -1,20 +1,22 @@ -/* Implementation of the dcgettext(3) function. - Copyright (C) 1995-1999, 2000, 2001, 2002 Free Software Foundation, Inc. +/* dcgettext.c - Implementation of the dcgettext(3) function. */ - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU Library General Public License as published - by the Free Software Foundation; either version 2, or (at your option) - any later version. +/* Copyright (C) 1995-1999, 2000, 2001, 2002, 2006-2009 Free Software Foundation, Inc. - This program is distributed in the hope that it will be useful, + This file is part of GNU Bash. + + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. + 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 Library 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #ifdef HAVE_CONFIG_H # include diff --git a/lib/intl/dcigettext.c b/lib/intl/dcigettext.c index c7e696a8a..c0f347e39 100644 --- a/lib/intl/dcigettext.c +++ b/lib/intl/dcigettext.c @@ -1,20 +1,22 @@ -/* Implementation of the internal dcigettext function. - Copyright (C) 1995-1999, 2000-2003 Free Software Foundation, Inc. +/* dcigettext.c - Implementation of the internal dcigettext function. */ - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU Library General Public License as published - by the Free Software Foundation; either version 2, or (at your option) - any later version. +/* Copyright (C) 1995-1999, 2000-2003, 2006-2009 Free Software Foundation, Inc. - This program is distributed in the hope that it will be useful, + This file is part of GNU Bash. + + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. + 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 Library 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ /* Tell glibc's to provide a prototype for mempcpy(). This must come before because may include diff --git a/lib/intl/dcngettext.c b/lib/intl/dcngettext.c index 3a3404e2c..3d70b18fe 100644 --- a/lib/intl/dcngettext.c +++ b/lib/intl/dcngettext.c @@ -1,20 +1,22 @@ -/* Implementation of the dcngettext(3) function. - Copyright (C) 1995-1999, 2000, 2001, 2002 Free Software Foundation, Inc. +/* dcngettext.c - Implementation of the dcngettext(3) function. */ - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU Library General Public License as published - by the Free Software Foundation; either version 2, or (at your option) - any later version. +/* Copyright (C) 1995-1999, 2000, 2001, 2002, 2006-2009 Free Software Foundation, Inc. - This program is distributed in the hope that it will be useful, + This file is part of GNU Bash. + + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. + 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 Library 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #ifdef HAVE_CONFIG_H # include diff --git a/lib/intl/dgettext.c b/lib/intl/dgettext.c index cf5b4037f..53516314f 100644 --- a/lib/intl/dgettext.c +++ b/lib/intl/dgettext.c @@ -1,20 +1,22 @@ -/* Implementation of the dgettext(3) function. - Copyright (C) 1995-1997, 2000, 2001, 2002 Free Software Foundation, Inc. +/* dgettext.c - Implementation of the dgettext(3) function. */ - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU Library General Public License as published - by the Free Software Foundation; either version 2, or (at your option) - any later version. +/* Copyright (C) 1995-1997, 2000, 2001, 2002, 2006-2009 Free Software Foundation, Inc. - This program is distributed in the hope that it will be useful, + This file is part of GNU Bash. + + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. + 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 Library 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #ifdef HAVE_CONFIG_H # include diff --git a/lib/intl/dngettext.c b/lib/intl/dngettext.c index 67fd030f2..4276f3b24 100644 --- a/lib/intl/dngettext.c +++ b/lib/intl/dngettext.c @@ -1,20 +1,22 @@ -/* Implementation of the dngettext(3) function. - Copyright (C) 1995-1997, 2000, 2001, 2002 Free Software Foundation, Inc. +/* dngettext.c - Implementation of the dngettext(3) function. */ - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU Library General Public License as published - by the Free Software Foundation; either version 2, or (at your option) - any later version. +/* Copyright (C) 1995-1997, 2000, 2001, 2002, 2005, 2006, 2008,2009 Free Software Foundation, Inc. - This program is distributed in the hope that it will be useful, + This file is part of GNU Bash. + + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. + 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 Library 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #ifdef HAVE_CONFIG_H # include diff --git a/lib/intl/eval-plural.h b/lib/intl/eval-plural.h index 19c7ca6ae..3441c74e5 100644 --- a/lib/intl/eval-plural.h +++ b/lib/intl/eval-plural.h @@ -1,20 +1,22 @@ -/* Plural expression evaluation. - Copyright (C) 2000-2002 Free Software Foundation, Inc. +/* eval-plural.c - Plural expression evaluation. */ - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU Library General Public License as published - by the Free Software Foundation; either version 2, or (at your option) - any later version. +/* Copyright (C) 2000-2002, 2006-2009 Free Software Foundation, Inc. - This program is distributed in the hope that it will be useful, + This file is part of GNU Bash. + + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. + 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 Library 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #ifndef STATIC #define STATIC static diff --git a/lib/intl/explodename.c b/lib/intl/explodename.c index 2985064c9..adc36402b 100644 --- a/lib/intl/explodename.c +++ b/lib/intl/explodename.c @@ -1,20 +1,23 @@ -/* Copyright (C) 1995-1998, 2000, 2001 Free Software Foundation, Inc. +/* explodename.c */ + +/* Copyright (C) 1995-1998, 2000, 2001, 2005-2009 Free Software Foundation, Inc. Contributed by Ulrich Drepper , 1995. - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU Library General Public License as published - by the Free Software Foundation; either version 2, or (at your option) - any later version. + This file is part of GNU Bash. + + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - This program is distributed in the hope that it will be useful, + 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 - Library General Public License for more details. + 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 Library 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #ifdef HAVE_CONFIG_H # include diff --git a/lib/intl/finddomain.c b/lib/intl/finddomain.c index d24276442..69a3586e0 100644 --- a/lib/intl/finddomain.c +++ b/lib/intl/finddomain.c @@ -1,21 +1,23 @@ -/* Handle list of needed message catalogs - Copyright (C) 1995-1999, 2000, 2001 Free Software Foundation, Inc. +/* finddomain.c - Handle list of needed message catalogs */ + +/* Copyright (C) 1995-1999, 2000, 2001, 2005-2009 Free Software Foundation, Inc. Written by Ulrich Drepper , 1995. - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU Library General Public License as published - by the Free Software Foundation; either version 2, or (at your option) - any later version. + This file is part of GNU Bash. + + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - This program is distributed in the hope that it will be useful, + 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 - Library General Public License for more details. + 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 Library 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #ifdef HAVE_CONFIG_H # include diff --git a/lib/intl/gettext.c b/lib/intl/gettext.c index 43d689f55..fd3fa0fff 100644 --- a/lib/intl/gettext.c +++ b/lib/intl/gettext.c @@ -1,20 +1,22 @@ -/* Implementation of gettext(3) function. - Copyright (C) 1995, 1997, 2000, 2001, 2002 Free Software Foundation, Inc. +/* gettext.c - Implementation of gettext(3) function. */ - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU Library General Public License as published - by the Free Software Foundation; either version 2, or (at your option) - any later version. +/* Copyright (C) 1995, 1997, 2000, 2001, 2002, 2005-2009 Free Software Foundation, Inc. - This program is distributed in the hope that it will be useful, + This file is part of GNU Bash. + + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. + 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 Library 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #ifdef HAVE_CONFIG_H # include diff --git a/lib/intl/gettextP.h b/lib/intl/gettextP.h index f1748a356..5c137e514 100644 --- a/lib/intl/gettextP.h +++ b/lib/intl/gettextP.h @@ -1,21 +1,23 @@ -/* Header describing internals of libintl library. - Copyright (C) 1995-1999, 2000-2003 Free Software Foundation, Inc. +/* gettextP.h - Header describing internals of libintl library. */ + +/* Copyright (C) 1995-1999, 2000-2003, 2005-2009 Free Software Foundation, Inc. Written by Ulrich Drepper , 1995. - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU Library General Public License as published - by the Free Software Foundation; either version 2, or (at your option) - any later version. + This file is part of GNU Bash. + + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - This program is distributed in the hope that it will be useful, + 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 - Library General Public License for more details. + 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 Library 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #ifndef _GETTEXTP_H #define _GETTEXTP_H diff --git a/lib/intl/gmo.h b/lib/intl/gmo.h index d1fe4d6b8..2c5785123 100644 --- a/lib/intl/gmo.h +++ b/lib/intl/gmo.h @@ -1,20 +1,22 @@ -/* Description of GNU message catalog format: general file layout. - Copyright (C) 1995, 1997, 2000-2002 Free Software Foundation, Inc. +/* gmo.h - Description of GNU message catalog format: general file layout. */ - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU Library General Public License as published - by the Free Software Foundation; either version 2, or (at your option) - any later version. +/* Copyright (C) 1995, 1997, 2000-2002, 2005-2009 Free Software Foundation, Inc. - This program is distributed in the hope that it will be useful, + This file is part of GNU Bash. + + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. + 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 Library 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #ifndef _GETTEXT_H #define _GETTEXT_H 1 diff --git a/lib/intl/hash-string.h b/lib/intl/hash-string.h index b267a8778..b5a7d4132 100644 --- a/lib/intl/hash-string.h +++ b/lib/intl/hash-string.h @@ -1,20 +1,22 @@ -/* Description of GNU message catalog format: string hashing function. - Copyright (C) 1995, 1997, 1998, 2000, 2001 Free Software Foundation, Inc. +/* hash-string.h - Description of GNU message catalog format: string hashing function. */ - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU Library General Public License as published - by the Free Software Foundation; either version 2, or (at your option) - any later version. +/* Copyright (C) 1995, 1997, 1998, 2000, 2001, 2005-2009 Free Software Foundation, Inc. - This program is distributed in the hope that it will be useful, + This file is part of GNU Bash. + + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. + 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 Library 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ /* @@ end of prolog @@ */ diff --git a/lib/intl/intl-compat.c b/lib/intl/intl-compat.c index 36b7af0f8..7f3234991 100644 --- a/lib/intl/intl-compat.c +++ b/lib/intl/intl-compat.c @@ -1,21 +1,22 @@ -/* intl-compat.c - Stub functions to call gettext functions from GNU gettext - Library. - Copyright (C) 1995, 2000-2003 Software Foundation, Inc. +/* intl-compat.c - Stub functions to call gettext functions from GNU gettext library. */ - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU Library General Public License as published - by the Free Software Foundation; either version 2, or (at your option) - any later version. +/* Copyright (C) 1995, 2000-2003, 2005-2009 Free Software Foundation, Inc. - This program is distributed in the hope that it will be useful, + This file is part of GNU Bash. + + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. + 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 Library 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #ifdef HAVE_CONFIG_H # include diff --git a/lib/intl/l10nflist.c b/lib/intl/l10nflist.c index ec8713f8e..9f024871a 100644 --- a/lib/intl/l10nflist.c +++ b/lib/intl/l10nflist.c @@ -1,20 +1,23 @@ -/* Copyright (C) 1995-1999, 2000, 2001, 2002 Free Software Foundation, Inc. +/* l10nflist.c - make localization file list. */ + +/* Copyright (C) 1995-1999, 2000, 2001, 2002, 2005-2009 Free Software Foundation, Inc. Contributed by Ulrich Drepper , 1995. - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU Library General Public License as published - by the Free Software Foundation; either version 2, or (at your option) - any later version. + This file is part of GNU Bash. + + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - This program is distributed in the hope that it will be useful, + 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 - Library General Public License for more details. + 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 Library 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ /* Tell glibc's to provide a prototype for stpcpy(). This must come before because may include diff --git a/lib/intl/libgnuintl.h.in b/lib/intl/libgnuintl.h.in index f596cfcb2..14f9cf972 100644 --- a/lib/intl/libgnuintl.h.in +++ b/lib/intl/libgnuintl.h.in @@ -1,20 +1,22 @@ -/* Message catalogs for internationalization. - Copyright (C) 1995-1997, 2000-2003 Free Software Foundation, Inc. +/* libgnuintl.h - Message catalogs for internationalization. */ - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU Library General Public License as published - by the Free Software Foundation; either version 2, or (at your option) - any later version. +/* Copyright (C) 1995-1997, 2000-2003, 2004-2009 Free Software Foundation, Inc. - This program is distributed in the hope that it will be useful, + This file is part of GNU Bash. + + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. + 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 Library 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #ifndef _LIBINTL_H #define _LIBINTL_H 1 diff --git a/lib/intl/loadinfo.h b/lib/intl/loadinfo.h index 1d3ba6162..d06a2773f 100644 --- a/lib/intl/loadinfo.h +++ b/lib/intl/loadinfo.h @@ -1,21 +1,24 @@ -/* Copyright (C) 1996-1999, 2000-2002 Free Software Foundation, Inc. +/* loadinfo.c */ + +/* Copyright (C) 1996-1999, 2000-2002, 2005-2009 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1996. - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU Library General Public License as published - by the Free Software Foundation; either version 2, or (at your option) - any later version. + This file is part of GNU Bash. + + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - This program is distributed in the hope that it will be useful, + 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 - Library General Public License for more details. + 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 Library 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #ifndef _LOADINFO_H #define _LOADINFO_H 1 diff --git a/lib/intl/loadmsgcat.c b/lib/intl/loadmsgcat.c index 8509bd345..83ca63fcd 100644 --- a/lib/intl/loadmsgcat.c +++ b/lib/intl/loadmsgcat.c @@ -1,20 +1,22 @@ -/* Load needed message catalogs. - Copyright (C) 1995-1999, 2000-2003 Free Software Foundation, Inc. +/* loadmsgcat.c - Load needed message catalogs. */ - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU Library General Public License as published - by the Free Software Foundation; either version 2, or (at your option) - any later version. +/* Copyright (C) 1995-1999, 2000-2003, 2005-2009 Free Software Foundation, Inc. - This program is distributed in the hope that it will be useful, + This file is part of GNU Bash. + + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. + 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 Library 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ /* Tell glibc's to provide a prototype for mempcpy(). This must come before because may include diff --git a/lib/intl/localcharset.c b/lib/intl/localcharset.c index d04d05368..6983d0bf0 100644 --- a/lib/intl/localcharset.c +++ b/lib/intl/localcharset.c @@ -1,21 +1,22 @@ -/* Determine a canonical name for the current locale's character encoding. +/* localcharset.c - Determine a canonical name for the current locale's character encoding. */ - Copyright (C) 2000-2003 Free Software Foundation, Inc. +/* Copyright (C) 2000-2003, 2005-2009 Free Software Foundation, Inc. - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU Library General Public License as published - by the Free Software Foundation; either version 2, or (at your option) - any later version. + This file is part of GNU Bash. - This program is distributed in the hope that it will be useful, + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. + 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 Library 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ /* Written by Bruno Haible . */ diff --git a/lib/intl/localcharset.h b/lib/intl/localcharset.h index 3b137e73c..e5299589b 100644 --- a/lib/intl/localcharset.h +++ b/lib/intl/localcharset.h @@ -1,21 +1,22 @@ -/* Determine a canonical name for the current locale's character encoding. - Copyright (C) 2000-2003 Free Software Foundation, Inc. - This file is part of the GNU CHARSET Library. +/* localcharset.h - Determine a canonical name for the current locale's character encoding. */ - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU Library General Public License as published - by the Free Software Foundation; either version 2, or (at your option) - any later version. +/* Copyright (C) 2000-2003, 2005-2009 Free Software Foundation, Inc. - This program is distributed in the hope that it will be useful, + This file is part of GNU Bash. + + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. + 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 Library 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #ifndef _LOCALCHARSET_H #define _LOCALCHARSET_H diff --git a/lib/intl/locale.alias b/lib/intl/locale.alias index bd7b9b31e..51dd21e78 100644 --- a/lib/intl/locale.alias +++ b/lib/intl/locale.alias @@ -1,20 +1,20 @@ -# Locale name alias data base. -# Copyright (C) 1996,1997,1998,1999,2000,2001 Free Software Foundation, Inc. +# locale.alias - Locale name alias data base. # -# This program is free software; you can redistribute it and/or modify it -# under the terms of the GNU Library General Public License as published -# by the Free Software Foundation; either version 2, or (at your option) -# any later version. +# Copyright (C) 1996,1997,1998,1999,2000,2001,2005-2009 Free Software Foundation, Inc. # -# 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 -# Library General Public License for more details. +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . # -# You should have received a copy of the GNU Library 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. # The format of this file is the same as for the corresponding file of # the X Window System, which normally can be found in diff --git a/lib/intl/localealias.c b/lib/intl/localealias.c index 7c4ce58f2..d99a48d9e 100644 --- a/lib/intl/localealias.c +++ b/lib/intl/localealias.c @@ -1,20 +1,22 @@ -/* Handle aliases for locale names. - Copyright (C) 1995-1999, 2000-2001, 2003 Free Software Foundation, Inc. +/* localealias.c - Handle aliases for locale names. */ - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU Library General Public License as published - by the Free Software Foundation; either version 2, or (at your option) - any later version. +/* Copyright (C) 1995-1999, 2000-2001, 2003, 2005-2009 Free Software Foundation, Inc. - This program is distributed in the hope that it will be useful, + This file is part of GNU Bash. + + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. + 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 Library 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ /* Tell glibc's to provide a prototype for mempcpy(). This must come before because may include diff --git a/lib/intl/localename.c b/lib/intl/localename.c index faacecd50..795a34fb9 100644 --- a/lib/intl/localename.c +++ b/lib/intl/localename.c @@ -1,20 +1,22 @@ -/* Determine the current selected locale. - Copyright (C) 1995-1999, 2000-2002 Free Software Foundation, Inc. +/* localename.c - Determine the current selected locale. */ - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU Library General Public License as published - by the Free Software Foundation; either version 2, or (at your option) - any later version. +/* Copyright (C) 1995-1999, 2000-2002, 2005-2009 Free Software Foundation, Inc. - This program is distributed in the hope that it will be useful, + This file is part of GNU Bash. + + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. + 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 Library 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ /* Written by Ulrich Drepper , 1995. */ /* Win32 code written by Tor Lillqvist . */ diff --git a/lib/intl/log.c b/lib/intl/log.c index 9c84791b9..e527e879c 100644 --- a/lib/intl/log.c +++ b/lib/intl/log.c @@ -1,20 +1,22 @@ -/* Log file output. - Copyright (C) 2003 Free Software Foundation, Inc. +/* log.c - Log file output. */ - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU Library General Public License as published - by the Free Software Foundation; either version 2, or (at your option) - any later version. +/* Copyright (C) 2003, 2005-2009 Free Software Foundation, Inc. - This program is distributed in the hope that it will be useful, + This file is part of GNU Bash. + + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. + 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 Library 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ /* Written by Bruno Haible . */ diff --git a/lib/intl/ngettext.c b/lib/intl/ngettext.c index 17a27f4aa..95aafccdd 100644 --- a/lib/intl/ngettext.c +++ b/lib/intl/ngettext.c @@ -1,20 +1,22 @@ -/* Implementation of ngettext(3) function. - Copyright (C) 1995, 1997, 2000, 2001, 2002 Free Software Foundation, Inc. +/* ngettext.c - Implementation of ngettext(3) function. */ - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU Library General Public License as published - by the Free Software Foundation; either version 2, or (at your option) - any later version. +/* Copyright (C) 1995, 1997, 2000, 2001, 2002, 2005-2009 Free Software Foundation, Inc. - This program is distributed in the hope that it will be useful, + This file is part of GNU Bash. + + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. + 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 Library 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #ifdef HAVE_CONFIG_H # include diff --git a/lib/intl/os2compat.c b/lib/intl/os2compat.c index c8dc33e7c..1aa9dff84 100644 --- a/lib/intl/os2compat.c +++ b/lib/intl/os2compat.c @@ -1,20 +1,22 @@ -/* OS/2 compatibility functions. - Copyright (C) 2001-2002 Free Software Foundation, Inc. +/* os2compat.c - OS/2 compatibility functions. */ - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU Library General Public License as published - by the Free Software Foundation; either version 2, or (at your option) - any later version. +/* Copyright (C) 2001-2002, 2005-2009 Free Software Foundation, Inc. - This program is distributed in the hope that it will be useful, + This file is part of GNU Bash. + + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. + 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 Library 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #define OS2_AWARE #ifdef HAVE_CONFIG_H diff --git a/lib/intl/os2compat.h b/lib/intl/os2compat.h index 4f74e8c03..8de318307 100644 --- a/lib/intl/os2compat.h +++ b/lib/intl/os2compat.h @@ -1,21 +1,23 @@ -/* OS/2 compatibility defines. - This file is intended to be included from config.h - Copyright (C) 2001-2002 Free Software Foundation, Inc. +/* os2compat.h - OS/2 compatibility defines. */ - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU Library General Public License as published - by the Free Software Foundation; either version 2, or (at your option) - any later version. +/* This file is intended to be included from config.h + Copyright (C) 2001-2002, 2005-2009 Free Software Foundation, Inc. - This program is distributed in the hope that it will be useful, + This file is part of GNU Bash. + + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. + 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 Library 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ /* When included from os2compat.h we need all the original definitions */ #ifndef OS2_AWARE diff --git a/lib/intl/osdep.c b/lib/intl/osdep.c index b37259838..b0300222d 100644 --- a/lib/intl/osdep.c +++ b/lib/intl/osdep.c @@ -1,20 +1,22 @@ -/* OS dependent parts of libintl. - Copyright (C) 2001-2002 Free Software Foundation, Inc. +/* osdep.c - OS dependent parts of libintl. */ - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU Library General Public License as published - by the Free Software Foundation; either version 2, or (at your option) - any later version. +/* Copyright (C) 2001-2002, 2005-2009 Free Software Foundation, Inc. - This program is distributed in the hope that it will be useful, + This file is part of GNU Bash. + + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. + 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 Library 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #if defined __EMX__ # include "os2compat.c" diff --git a/lib/intl/plural-exp.c b/lib/intl/plural-exp.c index c937c011a..9ed3b16ff 100644 --- a/lib/intl/plural-exp.c +++ b/lib/intl/plural-exp.c @@ -1,21 +1,23 @@ -/* Expression parsing for plural form selection. - Copyright (C) 2000, 2001 Free Software Foundation, Inc. +/* plural-exp.c - Expression parsing for plural form selection. */ + +/* Copyright (C) 2000, 2001, 2005-2009 Free Software Foundation, Inc. Written by Ulrich Drepper , 2000. - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU Library General Public License as published - by the Free Software Foundation; either version 2, or (at your option) - any later version. + This file is part of GNU Bash. + + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - This program is distributed in the hope that it will be useful, + 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 - Library General Public License for more details. + 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 Library 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #ifdef HAVE_CONFIG_H # include diff --git a/lib/intl/plural-exp.h b/lib/intl/plural-exp.h index 9e5d16583..dcb0dae0b 100644 --- a/lib/intl/plural-exp.h +++ b/lib/intl/plural-exp.h @@ -1,21 +1,23 @@ -/* Expression parsing and evaluation for plural form selection. - Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc. +/* plural-exp.h - defines for expression parsing and evaluation for plural form selection. */ + +/* Copyright (C) 2000, 2001, 2002, 2005-2009 Free Software Foundation, Inc. Written by Ulrich Drepper , 2000. - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU Library General Public License as published - by the Free Software Foundation; either version 2, or (at your option) - any later version. + This file is part of GNU Bash. + + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - This program is distributed in the hope that it will be useful, + 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 - Library General Public License for more details. + 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 Library 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #ifndef _PLURAL_EXP_H #define _PLURAL_EXP_H diff --git a/lib/intl/plural.c b/lib/intl/plural.c index 3a4fa20ca..a0031513c 100644 --- a/lib/intl/plural.c +++ b/lib/intl/plural.c @@ -1,41 +1,106 @@ -/* A Bison parser, made from plural.y - by GNU bison 1.35. */ +/* A Bison parser, made by GNU Bison 2.0. */ -#define YYBISON 1 /* Identify Bison output. */ +/* Skeleton parser for Yacc-like parsing with Bison, + Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. + This file is part of GNU Bash. + + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ + +/* As a special exception, when this file is copied by Bison into a + Bison output file, you may use that output file without restriction. + This special exception was added by the Free Software Foundation + in version 1.24 of Bison. */ + +/* Written by Richard Stallman by simplifying the original so called + ``semantic'' parser. */ + +/* All symbols defined below should begin with yy or YY, to avoid + infringing on user name space. This should be done even for local + variables, as they might otherwise be expanded by user macros. + There are some unavoidable exceptions within include files to + define necessary library symbols; they are noted "INFRINGES ON + USER NAME SPACE" below. */ + +/* Identify Bison output. */ +#define YYBISON 1 + +/* Skeleton name. */ +#define YYSKELETON_NAME "yacc.c" + +/* Pure parsers. */ +#define YYPURE 1 + +/* Using locations. */ +#define YYLSP_NEEDED 0 + +/* Substitute the variable and function names. */ #define yyparse __gettextparse -#define yylex __gettextlex +#define yylex __gettextlex #define yyerror __gettexterror -#define yylval __gettextlval -#define yychar __gettextchar +#define yylval __gettextlval +#define yychar __gettextchar #define yydebug __gettextdebug #define yynerrs __gettextnerrs -# define EQUOP2 257 -# define CMPOP2 258 -# define ADDOP2 259 -# define MULOP2 260 -# define NUMBER 261 -#line 1 "plural.y" -/* Expression parsing for plural form selection. - Copyright (C) 2000, 2001 Free Software Foundation, Inc. +/* Tokens. */ +#ifndef YYTOKENTYPE +# define YYTOKENTYPE + /* Put the tokens into the symbol table, so that GDB and other debuggers + know about them. */ + enum yytokentype { + EQUOP2 = 258, + CMPOP2 = 259, + ADDOP2 = 260, + MULOP2 = 261, + NUMBER = 262 + }; +#endif +#define EQUOP2 258 +#define CMPOP2 259 +#define ADDOP2 260 +#define MULOP2 261 +#define NUMBER 262 + + + + +/* Copy the first part of user declarations. */ +#line 1 "/usr/src/local/bash/bash-20080814/lib/intl/plural.y" + +/* plural.y - Expression parsing for plural form selection. */ + +/* Copyright (C) 2000, 2001, 2005-2009 Free Software Foundation, Inc. Written by Ulrich Drepper , 2000. - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU Library General Public License as published - by the Free Software Foundation; either version 2, or (at your option) - any later version. + This file is part of GNU Bash. - This program is distributed in the hope that it will be useful, + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. + 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 Library 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ /* The bison generated parser uses alloca. AIX 3 forces us to put this declaration at the beginning of the file. The declaration in bison's @@ -62,17 +127,38 @@ #define YYLEX_PARAM &((struct parse_args *) arg)->cp #define YYPARSE_PARAM arg -#line 49 "plural.y" -#ifndef YYSTYPE -typedef union { + +/* Enabling traces. */ +#ifndef YYDEBUG +# define YYDEBUG 0 +#endif + +/* Enabling verbose error messages. */ +#ifdef YYERROR_VERBOSE +# undef YYERROR_VERBOSE +# define YYERROR_VERBOSE 1 +#else +# define YYERROR_VERBOSE 0 +#endif + +#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED) +#line 51 "/usr/src/local/bash/bash-20080814/lib/intl/plural.y" +typedef union YYSTYPE { unsigned long int num; enum operator op; struct expression *exp; -} yystype; -# define YYSTYPE yystype +} YYSTYPE; +/* Line 190 of yacc.c. */ +#line 152 "/usr/src/local/bash/bash-20080814/lib/intl/plural.c" +# define yystype YYSTYPE /* obsolescent; will be withdrawn */ +# define YYSTYPE_IS_DECLARED 1 # define YYSTYPE_IS_TRIVIAL 1 #endif -#line 55 "plural.y" + + + +/* Copy the second part of user declarations. */ +#line 57 "/usr/src/local/bash/bash-20080814/lib/intl/plural.y" /* Prototypes for local functions. */ static struct expression *new_exp PARAMS ((int nargs, enum operator op, @@ -170,21 +256,131 @@ new_exp_3 (op, bexp, tbranch, fbranch) return new_exp (3, op, args); } -#ifndef YYDEBUG -# define YYDEBUG 0 -#endif +/* Line 213 of yacc.c. */ +#line 262 "/usr/src/local/bash/bash-20080814/lib/intl/plural.c" + +#if ! defined (yyoverflow) || YYERROR_VERBOSE + +# ifndef YYFREE +# define YYFREE free +# endif +# ifndef YYMALLOC +# define YYMALLOC malloc +# endif + +/* The parser invokes alloca or malloc; define the necessary symbols. */ + +# ifdef YYSTACK_USE_ALLOCA +# if YYSTACK_USE_ALLOCA +# ifdef __GNUC__ +# define YYSTACK_ALLOC __builtin_alloca +# else +# define YYSTACK_ALLOC alloca +# endif +# endif +# endif + +# ifdef YYSTACK_ALLOC + /* Pacify GCC's `empty if-body' warning. */ +# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) +# else +# if defined (__STDC__) || defined (__cplusplus) +# include /* INFRINGES ON USER NAME SPACE */ +# define YYSIZE_T size_t +# endif +# define YYSTACK_ALLOC YYMALLOC +# define YYSTACK_FREE YYFREE +# endif +#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */ -#define YYFINAL 27 -#define YYFLAG -32768 -#define YYNTBASE 16 -/* YYTRANSLATE(YYLEX) -- Bison token number corresponding to YYLEX. */ -#define YYTRANSLATE(x) ((unsigned)(x) <= 261 ? yytranslate[x] : 18) +#if (! defined (yyoverflow) \ + && (! defined (__cplusplus) \ + || (defined (YYSTYPE_IS_TRIVIAL) && YYSTYPE_IS_TRIVIAL))) -/* YYTRANSLATE[YYLEX] -- Bison token number corresponding to YYLEX. */ -static const char yytranslate[] = +/* A type that is properly aligned for any stack member. */ +union yyalloc +{ + short int yyss; + YYSTYPE yyvs; + }; + +/* The size of the maximum gap between one aligned stack and the next. */ +# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) + +/* The size of an array large to enough to hold all stacks, each with + N elements. */ +# define YYSTACK_BYTES(N) \ + ((N) * (sizeof (short int) + sizeof (YYSTYPE)) \ + + YYSTACK_GAP_MAXIMUM) + +/* Copy COUNT objects from FROM to TO. The source and destination do + not overlap. */ +# ifndef YYCOPY +# if defined (__GNUC__) && 1 < __GNUC__ +# define YYCOPY(To, From, Count) \ + __builtin_memcpy (To, From, (Count) * sizeof (*(From))) +# else +# define YYCOPY(To, From, Count) \ + do \ + { \ + register YYSIZE_T yyi; \ + for (yyi = 0; yyi < (Count); yyi++) \ + (To)[yyi] = (From)[yyi]; \ + } \ + while (0) +# endif +# endif + +/* Relocate STACK from its old location to the new one. The + local variables YYSIZE and YYSTACKSIZE give the old and new number of + elements in the stack, and YYPTR gives the new location of the + stack. Advance YYPTR to a properly aligned location for the next + stack. */ +# define YYSTACK_RELOCATE(Stack) \ + do \ + { \ + YYSIZE_T yynewbytes; \ + YYCOPY (&yyptr->Stack, Stack, yysize); \ + Stack = &yyptr->Stack; \ + yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ + yyptr += yynewbytes / sizeof (*yyptr); \ + } \ + while (0) + +#endif + +#if defined (__STDC__) || defined (__cplusplus) + typedef signed char yysigned_char; +#else + typedef short int yysigned_char; +#endif + +/* YYFINAL -- State number of the termination state. */ +#define YYFINAL 9 +/* YYLAST -- Last index in YYTABLE. */ +#define YYLAST 54 + +/* YYNTOKENS -- Number of terminals. */ +#define YYNTOKENS 16 +/* YYNNTS -- Number of nonterminals. */ +#define YYNNTS 3 +/* YYNRULES -- Number of rules. */ +#define YYNRULES 13 +/* YYNRULES -- Number of states. */ +#define YYNSTATES 27 + +/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ +#define YYUNDEFTOK 2 +#define YYMAXUTOK 262 + +#define YYTRANSLATE(YYX) \ + ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) + +/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ +static const unsigned char yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -211,251 +407,137 @@ static const char yytranslate[] = 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 1, 6, 7, 8, - 9, 11 + 2, 2, 2, 2, 2, 2, 1, 2, 6, 7, + 8, 9, 11 }; #if YYDEBUG -static const short yyprhs[] = +/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in + YYRHS. */ +static const unsigned char yyprhs[] = { - 0, 0, 2, 8, 12, 16, 20, 24, 28, 32, - 35, 37, 39 + 0, 0, 3, 5, 11, 15, 19, 23, 27, 31, + 35, 38, 40, 42 }; -static const short yyrhs[] = + +/* YYRHS -- A `-1'-separated list of the rules' RHS. */ +static const yysigned_char yyrhs[] = { - 17, 0, 17, 3, 17, 12, 17, 0, 17, 4, - 17, 0, 17, 5, 17, 0, 17, 6, 17, 0, - 17, 7, 17, 0, 17, 8, 17, 0, 17, 9, - 17, 0, 10, 17, 0, 13, 0, 11, 0, 14, - 17, 15, 0 + 17, 0, -1, 18, -1, 18, 3, 18, 12, 18, + -1, 18, 4, 18, -1, 18, 5, 18, -1, 18, + 6, 18, -1, 18, 7, 18, -1, 18, 8, 18, + -1, 18, 9, 18, -1, 10, 18, -1, 13, -1, + 11, -1, 14, 18, 15, -1 }; -#endif - -#if YYDEBUG -/* YYRLINE[YYN] -- source line where rule number YYN was defined. */ -static const short yyrline[] = +/* YYRLINE[YYN] -- source line where rule number YYN was defined. */ +static const unsigned char yyrline[] = { - 0, 174, 182, 186, 190, 194, 198, 202, 206, 210, - 214, 218, 223 + 0, 176, 176, 184, 188, 192, 196, 200, 204, 208, + 212, 216, 220, 225 }; #endif - -#if (YYDEBUG) || defined YYERROR_VERBOSE - -/* YYTNAME[TOKEN_NUM] -- String name of the token TOKEN_NUM. */ +#if YYDEBUG || YYERROR_VERBOSE +/* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. + First, the terminals, then, starting at YYNTOKENS, nonterminals. */ static const char *const yytname[] = { - "$", "error", "$undefined.", "'?'", "'|'", "'&'", "EQUOP2", "CMPOP2", - "ADDOP2", "MULOP2", "'!'", "NUMBER", "':'", "'n'", "'('", "')'", - "start", "exp", 0 + "$end", "error", "$undefined", "'?'", "'|'", "'&'", "EQUOP2", "CMPOP2", + "ADDOP2", "MULOP2", "'!'", "NUMBER", "':'", "'n'", "'('", "')'", + "$accept", "start", "exp", 0 }; #endif -/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ -static const short yyr1[] = +# ifdef YYPRINT +/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to + token YYLEX-NUM. */ +static const unsigned short int yytoknum[] = { - 0, 16, 17, 17, 17, 17, 17, 17, 17, 17, - 17, 17, 17 + 0, 256, 257, 63, 124, 38, 258, 259, 260, 261, + 33, 262, 58, 110, 40, 41 }; +# endif -/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ -static const short yyr2[] = +/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ +static const unsigned char yyr1[] = { - 0, 1, 5, 3, 3, 3, 3, 3, 3, 2, - 1, 1, 3 + 0, 16, 17, 18, 18, 18, 18, 18, 18, 18, + 18, 18, 18, 18 }; -/* YYDEFACT[S] -- default rule to reduce with in state S when YYTABLE - doesn't specify something else to do. Zero means the default is an - error. */ -static const short yydefact[] = +/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ +static const unsigned char yyr2[] = { - 0, 0, 11, 10, 0, 1, 9, 0, 0, 0, - 0, 0, 0, 0, 0, 12, 0, 3, 4, 5, - 6, 7, 8, 0, 2, 0, 0, 0 + 0, 2, 1, 5, 3, 3, 3, 3, 3, 3, + 2, 1, 1, 3 }; -static const short yydefgoto[] = +/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state + STATE-NUM when YYTABLE doesn't specify something else to do. Zero + means the default is an error. */ +static const unsigned char yydefact[] = { - 25, 5 + 0, 0, 12, 11, 0, 0, 2, 10, 0, 1, + 0, 0, 0, 0, 0, 0, 0, 13, 0, 4, + 5, 6, 7, 8, 9, 0, 3 }; -static const short yypact[] = +/* YYDEFGOTO[NTERM-NUM]. */ +static const yysigned_char yydefgoto[] = { - -9, -9,-32768,-32768, -9, 34,-32768, 11, -9, -9, - -9, -9, -9, -9, -9,-32768, 24, 39, 43, 16, - 26, -3,-32768, -9, 34, 21, 53,-32768 + -1, 5, 6 }; -static const short yypgoto[] = +/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing + STATE-NUM. */ +#define YYPACT_NINF -10 +static const yysigned_char yypact[] = { - -32768, -1 + -9, -9, -10, -10, -9, 8, 36, -10, 13, -10, + -9, -9, -9, -9, -9, -9, -9, -10, 26, 41, + 45, 18, -2, 14, -10, -9, 36 }; - -#define YYLAST 53 - - -static const short yytable[] = +/* YYPGOTO[NTERM-NUM]. */ +static const yysigned_char yypgoto[] = { - 6, 1, 2, 7, 3, 4, 14, 16, 17, 18, - 19, 20, 21, 22, 8, 9, 10, 11, 12, 13, - 14, 26, 24, 12, 13, 14, 15, 8, 9, 10, - 11, 12, 13, 14, 13, 14, 23, 8, 9, 10, - 11, 12, 13, 14, 10, 11, 12, 13, 14, 11, - 12, 13, 14, 27 + -10, -10, -1 }; -static const short yycheck[] = +/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If + positive, shift that token. If negative, reduce the rule which + number is the opposite. If zero, do what YYDEFACT says. + If YYTABLE_NINF, syntax error. */ +#define YYTABLE_NINF -1 +static const unsigned char yytable[] = { - 1, 10, 11, 4, 13, 14, 9, 8, 9, 10, - 11, 12, 13, 14, 3, 4, 5, 6, 7, 8, - 9, 0, 23, 7, 8, 9, 15, 3, 4, 5, - 6, 7, 8, 9, 8, 9, 12, 3, 4, 5, - 6, 7, 8, 9, 5, 6, 7, 8, 9, 6, - 7, 8, 9, 0 + 7, 1, 2, 8, 3, 4, 15, 16, 9, 18, + 19, 20, 21, 22, 23, 24, 10, 11, 12, 13, + 14, 15, 16, 16, 26, 14, 15, 16, 17, 10, + 11, 12, 13, 14, 15, 16, 0, 0, 25, 10, + 11, 12, 13, 14, 15, 16, 12, 13, 14, 15, + 16, 13, 14, 15, 16 }; -#define YYPURE 1 - -/* -*-C-*- Note some compilers choke on comments on `#line' lines. */ -#line 3 "/usr/local/share/bison/bison.simple" - -/* Skeleton output parser for bison, - - Copyright (C) 1984, 1989, 1990, 2000, 2001, 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-1307, USA. */ - -/* As a special exception, when this file is copied by Bison into a - Bison output file, you may use that output file without restriction. - This special exception was added by the Free Software Foundation - in version 1.24 of Bison. */ - -/* This is the parser code that is written into each bison parser when - the %semantic_parser declaration is not specified in the grammar. - It was written by Richard Stallman by simplifying the hairy parser - used when %semantic_parser is specified. */ - -/* All symbols defined below should begin with yy or YY, to avoid - infringing on user name space. This should be done even for local - variables, as they might otherwise be expanded by user macros. - There are some unavoidable exceptions within include files to - define necessary library symbols; they are noted "INFRINGES ON - USER NAME SPACE" below. */ - -#if ! defined (yyoverflow) || defined (YYERROR_VERBOSE) - -/* The parser invokes alloca or malloc; define the necessary symbols. */ - -# if YYSTACK_USE_ALLOCA -# define YYSTACK_ALLOC alloca -# else -# ifndef YYSTACK_USE_ALLOCA -# if defined (alloca) || defined (_ALLOCA_H) -# define YYSTACK_ALLOC alloca -# else -# ifdef __GNUC__ -# define YYSTACK_ALLOC __builtin_alloca -# endif -# endif -# endif -# endif -# ifdef YYSTACK_ALLOC - /* Pacify GCC's `empty if-body' warning. */ -# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) -# else -# if defined (__STDC__) || defined (__cplusplus) -# include /* INFRINGES ON USER NAME SPACE */ -# define YYSIZE_T size_t -# endif -# define YYSTACK_ALLOC malloc -# define YYSTACK_FREE free -# endif -#endif /* ! defined (yyoverflow) || defined (YYERROR_VERBOSE) */ - - -#if (! defined (yyoverflow) \ - && (! defined (__cplusplus) \ - || (YYLTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) - -/* A type that is properly aligned for any stack member. */ -union yyalloc +static const yysigned_char yycheck[] = { - short yyss; - YYSTYPE yyvs; -# if YYLSP_NEEDED - YYLTYPE yyls; -# endif + 1, 10, 11, 4, 13, 14, 8, 9, 0, 10, + 11, 12, 13, 14, 15, 16, 3, 4, 5, 6, + 7, 8, 9, 9, 25, 7, 8, 9, 15, 3, + 4, 5, 6, 7, 8, 9, -1, -1, 12, 3, + 4, 5, 6, 7, 8, 9, 5, 6, 7, 8, + 9, 6, 7, 8, 9 }; -/* The size of the maximum gap between one aligned stack and the next. */ -# define YYSTACK_GAP_MAX (sizeof (union yyalloc) - 1) - -/* The size of an array large to enough to hold all stacks, each with - N elements. */ -# if YYLSP_NEEDED -# define YYSTACK_BYTES(N) \ - ((N) * (sizeof (short) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \ - + 2 * YYSTACK_GAP_MAX) -# else -# define YYSTACK_BYTES(N) \ - ((N) * (sizeof (short) + sizeof (YYSTYPE)) \ - + YYSTACK_GAP_MAX) -# endif - -/* Copy COUNT objects from FROM to TO. The source and destination do - not overlap. */ -# ifndef YYCOPY -# if 1 < __GNUC__ -# define YYCOPY(To, From, Count) \ - __builtin_memcpy (To, From, (Count) * sizeof (*(From))) -# else -# define YYCOPY(To, From, Count) \ - do \ - { \ - register YYSIZE_T yyi; \ - for (yyi = 0; yyi < (Count); yyi++) \ - (To)[yyi] = (From)[yyi]; \ - } \ - while (0) -# endif -# endif - -/* Relocate STACK from its old location to the new one. The - local variables YYSIZE and YYSTACKSIZE give the old and new number of - elements in the stack, and YYPTR gives the new location of the - stack. Advance YYPTR to a properly aligned location for the next - stack. */ -# define YYSTACK_RELOCATE(Stack) \ - do \ - { \ - YYSIZE_T yynewbytes; \ - YYCOPY (&yyptr->Stack, Stack, yysize); \ - Stack = &yyptr->Stack; \ - yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAX; \ - yyptr += yynewbytes / sizeof (*yyptr); \ - } \ - while (0) - -#endif - +/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing + symbol of state STATE-NUM. */ +static const unsigned char yystos[] = +{ + 0, 10, 11, 13, 14, 17, 18, 18, 18, 0, + 3, 4, 5, 6, 7, 8, 9, 15, 18, 18, + 18, 18, 18, 18, 18, 12, 18 +}; #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__) # define YYSIZE_T __SIZE_TYPE__ @@ -475,71 +557,93 @@ union yyalloc #define yyerrok (yyerrstatus = 0) #define yyclearin (yychar = YYEMPTY) -#define YYEMPTY -2 +#define YYEMPTY (-2) #define YYEOF 0 + #define YYACCEPT goto yyacceptlab -#define YYABORT goto yyabortlab -#define YYERROR goto yyerrlab1 +#define YYABORT goto yyabortlab +#define YYERROR goto yyerrorlab + + /* Like YYERROR except do call yyerror. This remains here temporarily to ease the transition to the new meaning of YYERROR, for GCC. Once GCC version 2 has supplanted version 1, this can go. */ + #define YYFAIL goto yyerrlab + #define YYRECOVERING() (!!yyerrstatus) + #define YYBACKUP(Token, Value) \ do \ if (yychar == YYEMPTY && yylen == 1) \ { \ yychar = (Token); \ yylval = (Value); \ - yychar1 = YYTRANSLATE (yychar); \ + yytoken = YYTRANSLATE (yychar); \ YYPOPSTACK; \ goto yybackup; \ } \ else \ { \ - yyerror ("syntax error: cannot back up"); \ + yyerror ("syntax error: cannot back up");\ YYERROR; \ } \ while (0) + #define YYTERROR 1 #define YYERRCODE 256 -/* YYLLOC_DEFAULT -- Compute the default location (before the actions - are run). - - When YYLLOC_DEFAULT is run, CURRENT is set the location of the - first token. By default, to implement support for ranges, extend - its range to the last symbol. */ +/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N]. + If N is 0, then set CURRENT to the empty location which ends + the previous symbol: RHS[0] (always defined). */ +#define YYRHSLOC(Rhs, K) ((Rhs)[K]) #ifndef YYLLOC_DEFAULT -# define YYLLOC_DEFAULT(Current, Rhs, N) \ - Current.last_line = Rhs[N].last_line; \ - Current.last_column = Rhs[N].last_column; +# define YYLLOC_DEFAULT(Current, Rhs, N) \ + do \ + if (N) \ + { \ + (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \ + (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \ + (Current).last_line = YYRHSLOC (Rhs, N).last_line; \ + (Current).last_column = YYRHSLOC (Rhs, N).last_column; \ + } \ + else \ + { \ + (Current).first_line = (Current).last_line = \ + YYRHSLOC (Rhs, 0).last_line; \ + (Current).first_column = (Current).last_column = \ + YYRHSLOC (Rhs, 0).last_column; \ + } \ + while (0) #endif -/* YYLEX -- calling `yylex' with the right arguments. */ +/* YY_LOCATION_PRINT -- Print the location on the stream. + This macro was not mandated originally: define only if we know + we won't break user code: when these are the locations we know. */ + +#ifndef YY_LOCATION_PRINT +# if YYLTYPE_IS_TRIVIAL +# define YY_LOCATION_PRINT(File, Loc) \ + fprintf (File, "%d.%d-%d.%d", \ + (Loc).first_line, (Loc).first_column, \ + (Loc).last_line, (Loc).last_column) +# else +# define YY_LOCATION_PRINT(File, Loc) ((void) 0) +# endif +#endif -#if YYPURE -# if YYLSP_NEEDED -# ifdef YYLEX_PARAM -# define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM) -# else -# define YYLEX yylex (&yylval, &yylloc) -# endif -# else /* !YYLSP_NEEDED */ -# ifdef YYLEX_PARAM -# define YYLEX yylex (&yylval, YYLEX_PARAM) -# else -# define YYLEX yylex (&yylval) -# endif -# endif /* !YYLSP_NEEDED */ -#else /* !YYPURE */ -# define YYLEX yylex () -#endif /* !YYPURE */ +/* YYLEX -- calling `yylex' with the right arguments. */ + +#ifdef YYLEX_PARAM +# define YYLEX yylex (&yylval, YYLEX_PARAM) +#else +# define YYLEX yylex (&yylval) +#endif /* Enable debugging if requested. */ #if YYDEBUG @@ -554,13 +658,86 @@ do { \ if (yydebug) \ YYFPRINTF Args; \ } while (0) + +# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ +do { \ + if (yydebug) \ + { \ + YYFPRINTF (stderr, "%s ", Title); \ + yysymprint (stderr, \ + Type, Value); \ + YYFPRINTF (stderr, "\n"); \ + } \ +} while (0) + +/*------------------------------------------------------------------. +| yy_stack_print -- Print the state stack from its BOTTOM up to its | +| TOP (included). | +`------------------------------------------------------------------*/ + +#if defined (__STDC__) || defined (__cplusplus) +static void +yy_stack_print (short int *bottom, short int *top) +#else +static void +yy_stack_print (bottom, top) + short int *bottom; + short int *top; +#endif +{ + YYFPRINTF (stderr, "Stack now"); + for (/* Nothing. */; bottom <= top; ++bottom) + YYFPRINTF (stderr, " %d", *bottom); + YYFPRINTF (stderr, "\n"); +} + +# define YY_STACK_PRINT(Bottom, Top) \ +do { \ + if (yydebug) \ + yy_stack_print ((Bottom), (Top)); \ +} while (0) + + +/*------------------------------------------------. +| Report that the YYRULE is going to be reduced. | +`------------------------------------------------*/ + +#if defined (__STDC__) || defined (__cplusplus) +static void +yy_reduce_print (int yyrule) +#else +static void +yy_reduce_print (yyrule) + int yyrule; +#endif +{ + int yyi; + unsigned int yylno = yyrline[yyrule]; + YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ", + yyrule - 1, yylno); + /* Print the symbols being reduced, and their result. */ + for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++) + YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]); + YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]); +} + +# define YY_REDUCE_PRINT(Rule) \ +do { \ + if (yydebug) \ + yy_reduce_print (Rule); \ +} while (0) + /* Nonzero means print parse trace. It is left uninitialized so that multiple parsers can coexist. */ int yydebug; #else /* !YYDEBUG */ # define YYDPRINTF(Args) +# define YY_SYMBOL_PRINT(Title, Type, Value, Location) +# define YY_STACK_PRINT(Bottom, Top) +# define YY_REDUCE_PRINT(Rule) #endif /* !YYDEBUG */ + /* YYINITDEPTH -- initial size of the parser's stacks. */ #ifndef YYINITDEPTH # define YYINITDEPTH 200 @@ -573,15 +750,13 @@ int yydebug; SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH) evaluated with infinite-precision integer arithmetic. */ -#if YYMAXDEPTH == 0 -# undef YYMAXDEPTH -#endif - #ifndef YYMAXDEPTH # define YYMAXDEPTH 10000 #endif + -#ifdef YYERROR_VERBOSE + +#if YYERROR_VERBOSE # ifndef yystrlen # if defined (__GLIBC__) && defined (_STRING_H) @@ -631,86 +806,139 @@ yystpcpy (yydest, yysrc) } # endif # endif -#endif + +#endif /* !YYERROR_VERBOSE */ + -#line 315 "/usr/local/share/bison/bison.simple" +#if YYDEBUG +/*--------------------------------. +| Print this symbol on YYOUTPUT. | +`--------------------------------*/ + +#if defined (__STDC__) || defined (__cplusplus) +static void +yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep) +#else +static void +yysymprint (yyoutput, yytype, yyvaluep) + FILE *yyoutput; + int yytype; + YYSTYPE *yyvaluep; +#endif +{ + /* Pacify ``unused variable'' warnings. */ + (void) yyvaluep; + + if (yytype < YYNTOKENS) + YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); + else + YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); + + +# ifdef YYPRINT + if (yytype < YYNTOKENS) + YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); +# endif + switch (yytype) + { + default: + break; + } + YYFPRINTF (yyoutput, ")"); +} + +#endif /* ! YYDEBUG */ +/*-----------------------------------------------. +| Release the memory associated to this symbol. | +`-----------------------------------------------*/ + +#if defined (__STDC__) || defined (__cplusplus) +static void +yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep) +#else +static void +yydestruct (yymsg, yytype, yyvaluep) + const char *yymsg; + int yytype; + YYSTYPE *yyvaluep; +#endif +{ + /* Pacify ``unused variable'' warnings. */ + (void) yyvaluep; + + if (!yymsg) + yymsg = "Deleting"; + YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); -/* The user can define YYPARSE_PARAM as the name of an argument to be passed - into yyparse. The argument should have type void *. - It should actually point to an object. - Grammar actions can access the variable by casting it - to the proper pointer type. */ + switch (yytype) + { + + default: + break; + } +} + + +/* Prevent warnings from -Wmissing-prototypes. */ #ifdef YYPARSE_PARAM # if defined (__STDC__) || defined (__cplusplus) -# define YYPARSE_PARAM_ARG void *YYPARSE_PARAM -# define YYPARSE_PARAM_DECL +int yyparse (void *YYPARSE_PARAM); # else -# define YYPARSE_PARAM_ARG YYPARSE_PARAM -# define YYPARSE_PARAM_DECL void *YYPARSE_PARAM; +int yyparse (); # endif -#else /* !YYPARSE_PARAM */ -# define YYPARSE_PARAM_ARG -# define YYPARSE_PARAM_DECL -#endif /* !YYPARSE_PARAM */ - -/* Prevent warning if -Wstrict-prototypes. */ -#ifdef __GNUC__ -# ifdef YYPARSE_PARAM -int yyparse (void *); -# else +#else /* ! YYPARSE_PARAM */ +#if defined (__STDC__) || defined (__cplusplus) int yyparse (void); -# endif +#else +int yyparse (); #endif +#endif /* ! YYPARSE_PARAM */ + -/* YY_DECL_VARIABLES -- depending whether we use a pure parser, - variables are global, or local to YYPARSE. */ - -#define YY_DECL_NON_LSP_VARIABLES \ -/* The lookahead symbol. */ \ -int yychar; \ - \ -/* The semantic value of the lookahead symbol. */ \ -YYSTYPE yylval; \ - \ -/* Number of parse errors so far. */ \ -int yynerrs; -#if YYLSP_NEEDED -# define YY_DECL_VARIABLES \ -YY_DECL_NON_LSP_VARIABLES \ - \ -/* Location data for the lookahead symbol. */ \ -YYLTYPE yylloc; -#else -# define YY_DECL_VARIABLES \ -YY_DECL_NON_LSP_VARIABLES -#endif -/* If nonreentrant, generate the variables here. */ -#if !YYPURE -YY_DECL_VARIABLES -#endif /* !YYPURE */ +/*----------. +| yyparse. | +`----------*/ +#ifdef YYPARSE_PARAM +# if defined (__STDC__) || defined (__cplusplus) +int yyparse (void *YYPARSE_PARAM) +# else +int yyparse (YYPARSE_PARAM) + void *YYPARSE_PARAM; +# endif +#else /* ! YYPARSE_PARAM */ +#if defined (__STDC__) || defined (__cplusplus) int -yyparse (YYPARSE_PARAM_ARG) - YYPARSE_PARAM_DECL +yyparse (void) +#else +int +yyparse () + +#endif +#endif { - /* If reentrant, generate the variables here. */ -#if YYPURE - YY_DECL_VARIABLES -#endif /* !YYPURE */ + /* The look-ahead symbol. */ +int yychar; + +/* The semantic value of the look-ahead symbol. */ +YYSTYPE yylval; + +/* Number of syntax errors so far. */ +int yynerrs; register int yystate; register int yyn; int yyresult; /* Number of tokens to shift before error messages enabled. */ int yyerrstatus; - /* Lookahead token as an internal (translated) token number. */ - int yychar1 = 0; + /* Look-ahead token as an internal (translated) token number. */ + int yytoken = 0; /* Three stacks and their tools: `yyss': related to states, @@ -720,41 +948,29 @@ yyparse (YYPARSE_PARAM_ARG) Refer to the stacks thru separate pointers, to allow yyoverflow to reallocate them elsewhere. */ - /* The state stack. */ - short yyssa[YYINITDEPTH]; - short *yyss = yyssa; - register short *yyssp; + /* The state stack. */ + short int yyssa[YYINITDEPTH]; + short int *yyss = yyssa; + register short int *yyssp; /* The semantic value stack. */ YYSTYPE yyvsa[YYINITDEPTH]; YYSTYPE *yyvs = yyvsa; register YYSTYPE *yyvsp; -#if YYLSP_NEEDED - /* The location stack. */ - YYLTYPE yylsa[YYINITDEPTH]; - YYLTYPE *yyls = yylsa; - YYLTYPE *yylsp; -#endif -#if YYLSP_NEEDED -# define YYPOPSTACK (yyvsp--, yyssp--, yylsp--) -#else -# define YYPOPSTACK (yyvsp--, yyssp--) -#endif - YYSIZE_T yystacksize = YYINITDEPTH; +#define YYPOPSTACK (yyvsp--, yyssp--) + YYSIZE_T yystacksize = YYINITDEPTH; /* The variables used to return semantic value and location from the action routines. */ YYSTYPE yyval; -#if YYLSP_NEEDED - YYLTYPE yyloc; -#endif + /* When reducing, the number of symbols on the RHS of the reduced - rule. */ + rule. */ int yylen; YYDPRINTF ((stderr, "Starting parse\n")); @@ -771,9 +987,10 @@ yyparse (YYPARSE_PARAM_ARG) yyssp = yyss; yyvsp = yyvs; -#if YYLSP_NEEDED - yylsp = yyls; -#endif + + + yyvsp[0] = yylval; + goto yysetstate; /*------------------------------------------------------------. @@ -788,7 +1005,7 @@ yyparse (YYPARSE_PARAM_ARG) yysetstate: *yyssp = yystate; - if (yyssp >= yyss + yystacksize - 1) + if (yyss + yystacksize - 1 <= yyssp) { /* Get the current used size of the three stacks, in elements. */ YYSIZE_T yysize = yyssp - yyss + 1; @@ -799,26 +1016,19 @@ yyparse (YYPARSE_PARAM_ARG) these so that the &'s don't force the real ones into memory. */ YYSTYPE *yyvs1 = yyvs; - short *yyss1 = yyss; + short int *yyss1 = yyss; + /* Each stack pointer address is followed by the size of the - data in use in that stack, in bytes. */ -# if YYLSP_NEEDED - YYLTYPE *yyls1 = yyls; - /* This used to be a conditional around just the two extra args, - but that might be undefined if yyoverflow is a macro. */ - yyoverflow ("parser stack overflow", - &yyss1, yysize * sizeof (*yyssp), - &yyvs1, yysize * sizeof (*yyvsp), - &yyls1, yysize * sizeof (*yylsp), - &yystacksize); - yyls = yyls1; -# else + data in use in that stack, in bytes. This used to be a + conditional around just the two extra args, but that might + be undefined if yyoverflow is a macro. */ yyoverflow ("parser stack overflow", &yyss1, yysize * sizeof (*yyssp), &yyvs1, yysize * sizeof (*yyvsp), + &yystacksize); -# endif + yyss = yyss1; yyvs = yyvs1; } @@ -827,24 +1037,22 @@ yyparse (YYPARSE_PARAM_ARG) goto yyoverflowlab; # else /* Extend the stack our own way. */ - if (yystacksize >= YYMAXDEPTH) + if (YYMAXDEPTH <= yystacksize) goto yyoverflowlab; yystacksize *= 2; - if (yystacksize > YYMAXDEPTH) + if (YYMAXDEPTH < yystacksize) yystacksize = YYMAXDEPTH; { - short *yyss1 = yyss; + short int *yyss1 = yyss; union yyalloc *yyptr = (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); if (! yyptr) goto yyoverflowlab; YYSTACK_RELOCATE (yyss); YYSTACK_RELOCATE (yyvs); -# if YYLSP_NEEDED - YYSTACK_RELOCATE (yyls); -# endif -# undef YYSTACK_RELOCATE + +# undef YYSTACK_RELOCATE if (yyss1 != yyssa) YYSTACK_FREE (yyss1); } @@ -853,14 +1061,12 @@ yyparse (YYPARSE_PARAM_ARG) yyssp = yyss + yysize - 1; yyvsp = yyvs + yysize - 1; -#if YYLSP_NEEDED - yylsp = yyls + yysize - 1; -#endif + YYDPRINTF ((stderr, "Stack size increased to %lu\n", (unsigned long int) yystacksize)); - if (yyssp >= yyss + yystacksize - 1) + if (yyss + yystacksize - 1 <= yyssp) YYABORT; } @@ -868,101 +1074,67 @@ yyparse (YYPARSE_PARAM_ARG) goto yybackup; - /*-----------. | yybackup. | `-----------*/ yybackup: /* Do appropriate processing given the current state. */ -/* Read a lookahead token if we need one and don't already have one. */ +/* Read a look-ahead token if we need one and don't already have one. */ /* yyresume: */ - /* First try to decide what to do without reference to lookahead token. */ + /* First try to decide what to do without reference to look-ahead token. */ yyn = yypact[yystate]; - if (yyn == YYFLAG) + if (yyn == YYPACT_NINF) goto yydefault; - /* Not known => get a lookahead token if don't already have one. */ - - /* yychar is either YYEMPTY or YYEOF - or a valid token in external form. */ + /* Not known => get a look-ahead token if don't already have one. */ + /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */ if (yychar == YYEMPTY) { YYDPRINTF ((stderr, "Reading a token: ")); yychar = YYLEX; } - /* Convert token to internal form (in yychar1) for indexing tables with */ - - if (yychar <= 0) /* This means end of input. */ + if (yychar <= YYEOF) { - yychar1 = 0; - yychar = YYEOF; /* Don't call YYLEX any more */ - + yychar = yytoken = YYEOF; YYDPRINTF ((stderr, "Now at end of input.\n")); } else { - yychar1 = YYTRANSLATE (yychar); - -#if YYDEBUG - /* We have to keep this `#if YYDEBUG', since we use variables - which are defined only if `YYDEBUG' is set. */ - if (yydebug) - { - YYFPRINTF (stderr, "Next token is %d (%s", - yychar, yytname[yychar1]); - /* Give the individual parser a way to print the precise - meaning of a token, for further debugging info. */ -# ifdef YYPRINT - YYPRINT (stderr, yychar, yylval); -# endif - YYFPRINTF (stderr, ")\n"); - } -#endif + yytoken = YYTRANSLATE (yychar); + YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc); } - yyn += yychar1; - if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1) + /* If the proper action on seeing token YYTOKEN is to reduce or to + detect an error, take that action. */ + yyn += yytoken; + if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) goto yydefault; - yyn = yytable[yyn]; - - /* yyn is what to do for this token type in this state. - Negative => reduce, -yyn is rule number. - Positive => shift, yyn is new state. - New state is final state => don't bother to shift, - just return success. - 0, or most negative number => error. */ - - if (yyn < 0) + if (yyn <= 0) { - if (yyn == YYFLAG) + if (yyn == 0 || yyn == YYTABLE_NINF) goto yyerrlab; yyn = -yyn; goto yyreduce; } - else if (yyn == 0) - goto yyerrlab; if (yyn == YYFINAL) YYACCEPT; - /* Shift the lookahead token. */ - YYDPRINTF ((stderr, "Shifting token %d (%s), ", - yychar, yytname[yychar1])); + /* Shift the look-ahead token. */ + YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); /* Discard the token being shifted unless it is eof. */ if (yychar != YYEOF) yychar = YYEMPTY; *++yyvsp = yylval; -#if YYLSP_NEEDED - *++yylsp = yylloc; -#endif + /* Count tokens shifted since error; after three, turn off error status. */ @@ -993,140 +1165,118 @@ yyreduce: /* If YYLEN is nonzero, implement the default value of the action: `$$ = $1'. - Otherwise, the following line sets YYVAL to the semantic value of - the lookahead token. This behavior is undocumented and Bison + Otherwise, the following line sets YYVAL to garbage. + This behavior is undocumented and Bison users should not rely upon it. Assigning to YYVAL unconditionally makes the parser a bit smaller, and it avoids a GCC warning that YYVAL may be used uninitialized. */ yyval = yyvsp[1-yylen]; -#if YYLSP_NEEDED - /* Similarly for the default location. Let the user run additional - commands if for instance locations are ranges. */ - yyloc = yylsp[1-yylen]; - YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen); -#endif -#if YYDEBUG - /* We have to keep this `#if YYDEBUG', since we use variables which - are defined only if `YYDEBUG' is set. */ - if (yydebug) + YY_REDUCE_PRINT (yyn); + switch (yyn) { - int yyi; - - YYFPRINTF (stderr, "Reducing via rule %d (line %d), ", - yyn, yyrline[yyn]); - - /* Print the symbols being reduced, and their result. */ - for (yyi = yyprhs[yyn]; yyrhs[yyi] > 0; yyi++) - YYFPRINTF (stderr, "%s ", yytname[yyrhs[yyi]]); - YYFPRINTF (stderr, " -> %s\n", yytname[yyr1[yyn]]); - } -#endif - - switch (yyn) { - -case 1: -#line 175 "plural.y" -{ - if (yyvsp[0].exp == NULL) + case 2: +#line 177 "/usr/src/local/bash/bash-20080814/lib/intl/plural.y" + { + if ((yyvsp[0].exp) == NULL) YYABORT; - ((struct parse_args *) arg)->res = yyvsp[0].exp; + ((struct parse_args *) arg)->res = (yyvsp[0].exp); } break; -case 2: -#line 183 "plural.y" -{ - yyval.exp = new_exp_3 (qmop, yyvsp[-4].exp, yyvsp[-2].exp, yyvsp[0].exp); + + case 3: +#line 185 "/usr/src/local/bash/bash-20080814/lib/intl/plural.y" + { + (yyval.exp) = new_exp_3 (qmop, (yyvsp[-4].exp), (yyvsp[-2].exp), (yyvsp[0].exp)); } break; -case 3: -#line 187 "plural.y" -{ - yyval.exp = new_exp_2 (lor, yyvsp[-2].exp, yyvsp[0].exp); + + case 4: +#line 189 "/usr/src/local/bash/bash-20080814/lib/intl/plural.y" + { + (yyval.exp) = new_exp_2 (lor, (yyvsp[-2].exp), (yyvsp[0].exp)); } break; -case 4: -#line 191 "plural.y" -{ - yyval.exp = new_exp_2 (land, yyvsp[-2].exp, yyvsp[0].exp); + + case 5: +#line 193 "/usr/src/local/bash/bash-20080814/lib/intl/plural.y" + { + (yyval.exp) = new_exp_2 (land, (yyvsp[-2].exp), (yyvsp[0].exp)); } break; -case 5: -#line 195 "plural.y" -{ - yyval.exp = new_exp_2 (yyvsp[-1].op, yyvsp[-2].exp, yyvsp[0].exp); + + case 6: +#line 197 "/usr/src/local/bash/bash-20080814/lib/intl/plural.y" + { + (yyval.exp) = new_exp_2 ((yyvsp[-1].op), (yyvsp[-2].exp), (yyvsp[0].exp)); } break; -case 6: -#line 199 "plural.y" -{ - yyval.exp = new_exp_2 (yyvsp[-1].op, yyvsp[-2].exp, yyvsp[0].exp); + + case 7: +#line 201 "/usr/src/local/bash/bash-20080814/lib/intl/plural.y" + { + (yyval.exp) = new_exp_2 ((yyvsp[-1].op), (yyvsp[-2].exp), (yyvsp[0].exp)); } break; -case 7: -#line 203 "plural.y" -{ - yyval.exp = new_exp_2 (yyvsp[-1].op, yyvsp[-2].exp, yyvsp[0].exp); + + case 8: +#line 205 "/usr/src/local/bash/bash-20080814/lib/intl/plural.y" + { + (yyval.exp) = new_exp_2 ((yyvsp[-1].op), (yyvsp[-2].exp), (yyvsp[0].exp)); } break; -case 8: -#line 207 "plural.y" -{ - yyval.exp = new_exp_2 (yyvsp[-1].op, yyvsp[-2].exp, yyvsp[0].exp); + + case 9: +#line 209 "/usr/src/local/bash/bash-20080814/lib/intl/plural.y" + { + (yyval.exp) = new_exp_2 ((yyvsp[-1].op), (yyvsp[-2].exp), (yyvsp[0].exp)); } break; -case 9: -#line 211 "plural.y" -{ - yyval.exp = new_exp_1 (lnot, yyvsp[0].exp); + + case 10: +#line 213 "/usr/src/local/bash/bash-20080814/lib/intl/plural.y" + { + (yyval.exp) = new_exp_1 (lnot, (yyvsp[0].exp)); } break; -case 10: -#line 215 "plural.y" -{ - yyval.exp = new_exp_0 (var); + + case 11: +#line 217 "/usr/src/local/bash/bash-20080814/lib/intl/plural.y" + { + (yyval.exp) = new_exp_0 (var); } break; -case 11: -#line 219 "plural.y" -{ - if ((yyval.exp = new_exp_0 (num)) != NULL) - yyval.exp->val.num = yyvsp[0].num; + + case 12: +#line 221 "/usr/src/local/bash/bash-20080814/lib/intl/plural.y" + { + if (((yyval.exp) = new_exp_0 (num)) != NULL) + (yyval.exp)->val.num = (yyvsp[0].num); } break; -case 12: -#line 224 "plural.y" -{ - yyval.exp = yyvsp[-1].exp; + + case 13: +#line 226 "/usr/src/local/bash/bash-20080814/lib/intl/plural.y" + { + (yyval.exp) = (yyvsp[-1].exp); } break; -} -#line 705 "/usr/local/share/bison/bison.simple" + } + +/* Line 1037 of yacc.c. */ +#line 1270 "/usr/src/local/bash/bash-20080814/lib/intl/plural.c" yyvsp -= yylen; yyssp -= yylen; -#if YYLSP_NEEDED - yylsp -= yylen; -#endif -#if YYDEBUG - if (yydebug) - { - short *yyssp1 = yyss - 1; - YYFPRINTF (stderr, "state stack now"); - while (yyssp1 != yyssp) - YYFPRINTF (stderr, " %d", *++yyssp1); - YYFPRINTF (stderr, "\n"); - } -#endif + + YY_STACK_PRINT (yyss, yyssp); *++yyvsp = yyval; -#if YYLSP_NEEDED - *++yylsp = yyloc; -#endif + /* Now `shift' the result of the reduction. Determine what state that goes to, based on the state we popped back to and the rule @@ -1134,11 +1284,11 @@ case 12: yyn = yyr1[yyn]; - yystate = yypgoto[yyn - YYNTBASE] + *yyssp; - if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp) + yystate = yypgoto[yyn - YYNTOKENS] + *yyssp; + if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp) yystate = yytable[yystate]; else - yystate = yydefgoto[yyn - YYNTBASE]; + yystate = yydefgoto[yyn - YYNTOKENS]; goto yynewstate; @@ -1151,155 +1301,159 @@ yyerrlab: if (!yyerrstatus) { ++yynerrs; - -#ifdef YYERROR_VERBOSE +#if YYERROR_VERBOSE yyn = yypact[yystate]; - if (yyn > YYFLAG && yyn < YYLAST) + if (YYPACT_NINF < yyn && yyn < YYLAST) { YYSIZE_T yysize = 0; + int yytype = YYTRANSLATE (yychar); + const char* yyprefix; char *yymsg; - int yyx, yycount; + int yyx; - yycount = 0; /* Start YYX at -YYN if negative to avoid negative indexes in YYCHECK. */ - for (yyx = yyn < 0 ? -yyn : 0; - yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++) - if (yycheck[yyx + yyn] == yyx) - yysize += yystrlen (yytname[yyx]) + 15, yycount++; - yysize += yystrlen ("parse error, unexpected ") + 1; - yysize += yystrlen (yytname[YYTRANSLATE (yychar)]); + int yyxbegin = yyn < 0 ? -yyn : 0; + + /* Stay within bounds of both yycheck and yytname. */ + int yychecklim = YYLAST - yyn; + int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; + int yycount = 0; + + yyprefix = ", expecting "; + for (yyx = yyxbegin; yyx < yyxend; ++yyx) + if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) + { + yysize += yystrlen (yyprefix) + yystrlen (yytname [yyx]); + yycount += 1; + if (yycount == 5) + { + yysize = 0; + break; + } + } + yysize += (sizeof ("syntax error, unexpected ") + + yystrlen (yytname[yytype])); yymsg = (char *) YYSTACK_ALLOC (yysize); if (yymsg != 0) { - char *yyp = yystpcpy (yymsg, "parse error, unexpected "); - yyp = yystpcpy (yyp, yytname[YYTRANSLATE (yychar)]); + char *yyp = yystpcpy (yymsg, "syntax error, unexpected "); + yyp = yystpcpy (yyp, yytname[yytype]); if (yycount < 5) { - yycount = 0; - for (yyx = yyn < 0 ? -yyn : 0; - yyx < (int) (sizeof (yytname) / sizeof (char *)); - yyx++) - if (yycheck[yyx + yyn] == yyx) + yyprefix = ", expecting "; + for (yyx = yyxbegin; yyx < yyxend; ++yyx) + if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) { - const char *yyq = ! yycount ? ", expecting " : " or "; - yyp = yystpcpy (yyp, yyq); + yyp = yystpcpy (yyp, yyprefix); yyp = yystpcpy (yyp, yytname[yyx]); - yycount++; + yyprefix = " or "; } } yyerror (yymsg); YYSTACK_FREE (yymsg); } else - yyerror ("parse error; also virtual memory exhausted"); + yyerror ("syntax error; also virtual memory exhausted"); } else -#endif /* defined (YYERROR_VERBOSE) */ - yyerror ("parse error"); +#endif /* YYERROR_VERBOSE */ + yyerror ("syntax error"); } - goto yyerrlab1; -/*--------------------------------------------------. -| yyerrlab1 -- error raised explicitly by an action | -`--------------------------------------------------*/ -yyerrlab1: + if (yyerrstatus == 3) { - /* If just tried and failed to reuse lookahead token after an + /* If just tried and failed to reuse look-ahead token after an error, discard it. */ - /* return failure if at end of input */ - if (yychar == YYEOF) - YYABORT; - YYDPRINTF ((stderr, "Discarding token %d (%s).\n", - yychar, yytname[yychar1])); - yychar = YYEMPTY; + if (yychar <= YYEOF) + { + /* If at end of input, pop the error token, + then the rest of the stack, then return failure. */ + if (yychar == YYEOF) + for (;;) + { + + YYPOPSTACK; + if (yyssp == yyss) + YYABORT; + yydestruct ("Error: popping", + yystos[*yyssp], yyvsp); + } + } + else + { + yydestruct ("Error: discarding", yytoken, &yylval); + yychar = YYEMPTY; + } } - /* Else will try to reuse lookahead token after shifting the error + /* Else will try to reuse look-ahead token after shifting the error token. */ - - yyerrstatus = 3; /* Each real token shifted decrements this */ - - goto yyerrhandle; + goto yyerrlab1; -/*-------------------------------------------------------------------. -| yyerrdefault -- current state does not do anything special for the | -| error token. | -`-------------------------------------------------------------------*/ -yyerrdefault: -#if 0 - /* This is wrong; only states that explicitly want error tokens - should shift them. */ +/*---------------------------------------------------. +| yyerrorlab -- error raised explicitly by YYERROR. | +`---------------------------------------------------*/ +yyerrorlab: - /* If its default is to accept any token, ok. Otherwise pop it. */ - yyn = yydefact[yystate]; - if (yyn) - goto yydefault; +#ifdef __GNUC__ + /* Pacify GCC when the user code never invokes YYERROR and the label + yyerrorlab therefore never appears in user code. */ + if (0) + goto yyerrorlab; #endif +yyvsp -= yylen; + yyssp -= yylen; + yystate = *yyssp; + goto yyerrlab1; + -/*---------------------------------------------------------------. -| yyerrpop -- pop the current state because it cannot handle the | -| error token | -`---------------------------------------------------------------*/ -yyerrpop: - if (yyssp == yyss) - YYABORT; - yyvsp--; - yystate = *--yyssp; -#if YYLSP_NEEDED - yylsp--; -#endif +/*-------------------------------------------------------------. +| yyerrlab1 -- common code for both syntax error and YYERROR. | +`-------------------------------------------------------------*/ +yyerrlab1: + yyerrstatus = 3; /* Each real token shifted decrements this. */ -#if YYDEBUG - if (yydebug) + for (;;) { - short *yyssp1 = yyss - 1; - YYFPRINTF (stderr, "Error: state stack now"); - while (yyssp1 != yyssp) - YYFPRINTF (stderr, " %d", *++yyssp1); - YYFPRINTF (stderr, "\n"); - } -#endif + yyn = yypact[yystate]; + if (yyn != YYPACT_NINF) + { + yyn += YYTERROR; + if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) + { + yyn = yytable[yyn]; + if (0 < yyn) + break; + } + } -/*--------------. -| yyerrhandle. | -`--------------*/ -yyerrhandle: - yyn = yypact[yystate]; - if (yyn == YYFLAG) - goto yyerrdefault; + /* Pop the current state because it cannot handle the error token. */ + if (yyssp == yyss) + YYABORT; - yyn += YYTERROR; - if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR) - goto yyerrdefault; - yyn = yytable[yyn]; - if (yyn < 0) - { - if (yyn == YYFLAG) - goto yyerrpop; - yyn = -yyn; - goto yyreduce; + yydestruct ("Error: popping", yystos[yystate], yyvsp); + YYPOPSTACK; + yystate = *yyssp; + YY_STACK_PRINT (yyss, yyssp); } - else if (yyn == 0) - goto yyerrpop; if (yyn == YYFINAL) YYACCEPT; - YYDPRINTF ((stderr, "Shifting error token, ")); - *++yyvsp = yylval; -#if YYLSP_NEEDED - *++yylsp = yylloc; -#endif + + + /* Shift the error token. */ + YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); yystate = yyn; goto yynewstate; @@ -1316,16 +1470,21 @@ yyacceptlab: | yyabortlab -- YYABORT comes here. | `-----------------------------------*/ yyabortlab: + yydestruct ("Error: discarding lookahead", + yytoken, &yylval); + yychar = YYEMPTY; yyresult = 1; goto yyreturn; -/*---------------------------------------------. -| yyoverflowab -- parser overflow comes here. | -`---------------------------------------------*/ +#ifndef yyoverflow +/*----------------------------------------------. +| yyoverflowlab -- parser overflow comes here. | +`----------------------------------------------*/ yyoverflowlab: yyerror ("parser stack overflow"); yyresult = 2; /* Fall through. */ +#endif yyreturn: #ifndef yyoverflow @@ -1334,7 +1493,9 @@ yyreturn: #endif return yyresult; } -#line 229 "plural.y" + + +#line 231 "/usr/src/local/bash/bash-20080814/lib/intl/plural.y" void diff --git a/lib/intl/plural.y b/lib/intl/plural.y index 616b7c11a..8b8cec7e8 100644 --- a/lib/intl/plural.y +++ b/lib/intl/plural.y @@ -1,22 +1,24 @@ %{ -/* Expression parsing for plural form selection. - Copyright (C) 2000, 2001 Free Software Foundation, Inc. +/* plural.y - Expression parsing for plural form selection. */ + +/* Copyright (C) 2000, 2001, 2005-2009 Free Software Foundation, Inc. Written by Ulrich Drepper , 2000. - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU Library General Public License as published - by the Free Software Foundation; either version 2, or (at your option) - any later version. + This file is part of GNU Bash. + + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - This program is distributed in the hope that it will be useful, + 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 - Library General Public License for more details. + 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 Library 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ /* The bison generated parser uses alloca. AIX 3 forces us to put this declaration at the beginning of the file. The declaration in bison's diff --git a/lib/intl/ref-add.sin b/lib/intl/ref-add.sin old mode 100644 new mode 100755 index 167374e3c..6fd32ed9b --- a/lib/intl/ref-add.sin +++ b/lib/intl/ref-add.sin @@ -2,20 +2,18 @@ # # Copyright (C) 2000 Free Software Foundation, Inc. # -# This program is free software; you can redistribute it and/or modify it -# under the terms of the GNU Library General Public License as published -# by the Free Software Foundation; either version 2, or (at your option) -# any later version. +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Library General Public License for more details. +# 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 Library 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. +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . # # Written by Bruno Haible . # diff --git a/lib/intl/ref-del.sin b/lib/intl/ref-del.sin old mode 100644 new mode 100755 index 613cf37f3..65ce9afa1 --- a/lib/intl/ref-del.sin +++ b/lib/intl/ref-del.sin @@ -2,20 +2,18 @@ # # Copyright (C) 2000 Free Software Foundation, Inc. # -# This program is free software; you can redistribute it and/or modify it -# under the terms of the GNU Library General Public License as published -# by the Free Software Foundation; either version 2, or (at your option) -# any later version. +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Library General Public License for more details. +# 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 Library 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. +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . # # Written by Bruno Haible . # diff --git a/lib/intl/relocatable.c b/lib/intl/relocatable.c index 16f79a528..34b2b183b 100644 --- a/lib/intl/relocatable.c +++ b/lib/intl/relocatable.c @@ -1,22 +1,23 @@ -/* Provide relocatable packages. - Copyright (C) 2003 Free Software Foundation, Inc. +/* relocatable.c - Provide relocatable packages. */ + +/* Copyright (C) 2003, 2005-2009 Free Software Foundation, Inc. Written by Bruno Haible , 2003. - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU Library General Public License as published - by the Free Software Foundation; either version 2, or (at your option) - any later version. + This file is part of GNU Bash. - 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 - Library General Public License for more details. + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - You should have received a copy of the GNU Library 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. */ + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ /* Tell glibc's to provide a prototype for getline(). This must come before because may include diff --git a/lib/intl/relocatable.h b/lib/intl/relocatable.h index d141200a6..de57f446d 100644 --- a/lib/intl/relocatable.h +++ b/lib/intl/relocatable.h @@ -1,21 +1,23 @@ -/* Provide relocatable packages. - Copyright (C) 2003 Free Software Foundation, Inc. +/* relocatable.h - Provide relocatable packages. */ + +/* Copyright (C) 2003, 2005-2009 Free Software Foundation, Inc. Written by Bruno Haible , 2003. - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU Library General Public License as published - by the Free Software Foundation; either version 2, or (at your option) - any later version. + This file is part of GNU Bash. + + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - This program is distributed in the hope that it will be useful, + 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 - Library General Public License for more details. + 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 Library 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #ifndef _RELOCATABLE_H #define _RELOCATABLE_H diff --git a/lib/intl/textdomain.c b/lib/intl/textdomain.c index f259c696d..4bb0e800a 100644 --- a/lib/intl/textdomain.c +++ b/lib/intl/textdomain.c @@ -1,20 +1,22 @@ -/* Implementation of the textdomain(3) function. - Copyright (C) 1995-1998, 2000, 2001, 2002 Free Software Foundation, Inc. +/* textdomain.c - Implementation of the textdomain(3) function. */ - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU Library General Public License as published - by the Free Software Foundation; either version 2, or (at your option) - any later version. +/* Copyright (C) 1995-1998, 2000, 2001, 2002, 2005-2009 Free Software Foundation, Inc. - This program is distributed in the hope that it will be useful, + This file is part of GNU Bash. + + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. + 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 Library 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #ifdef HAVE_CONFIG_H # include diff --git a/lib/malloc/Makefile.in b/lib/malloc/Makefile.in index b2c785bea..e40f00afe 100644 --- a/lib/malloc/Makefile.in +++ b/lib/malloc/Makefile.in @@ -1,21 +1,19 @@ # Skeleton Makefile for the GNU malloc code # -# -# Copyright (C) 1996-2005 Free Software Foundation, Inc. +# Copyright (C) 1996-2009 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 free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# 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. +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . srcdir = @srcdir@ VPATH = .:@srcdir@ diff --git a/lib/malloc/getpagesize.h b/lib/malloc/getpagesize.h index 835f5da71..7f3234006 100644 --- a/lib/malloc/getpagesize.h +++ b/lib/malloc/getpagesize.h @@ -1,19 +1,21 @@ /* Emulation of getpagesize() for systems that need it. Copyright (C) 1991-2003 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 of the License, or -(at your option) any later version. + This file is part of GNU Bash, the Bourne-Again SHell. -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. + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. -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. */ + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #if defined (HAVE_UNISTD_H) # ifdef _MINIX diff --git a/lib/malloc/imalloc.h b/lib/malloc/imalloc.h index 72ba65a9a..34df10af9 100644 --- a/lib/malloc/imalloc.h +++ b/lib/malloc/imalloc.h @@ -4,19 +4,19 @@ 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. */ + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ /* Must be included *after* config.h */ diff --git a/lib/malloc/malloc.c b/lib/malloc/malloc.c index f9a08da11..bca68e8ab 100644 --- a/lib/malloc/malloc.c +++ b/lib/malloc/malloc.c @@ -2,23 +2,21 @@ /* Copyright (C) 1985-2005 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. + This file is part of GNU Bash, the Bourne-Again SHell. + + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - 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. + 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. -In other words, you are welcome to use, share and improve this program. -You are forbidden to forbid anyone else to use, share and improve -what you give them. Help stamp out software-hoarding! */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ /* * @(#)nmalloc.c 1 (Caltech) 2/21/82 @@ -231,7 +229,7 @@ static int maxbuck; /* highest bucket receiving allocation request. */ static char *memtop; /* top of heap */ -static unsigned long binsizes[NBUCKETS] = { +static const unsigned long binsizes[NBUCKETS] = { 8UL, 16UL, 32UL, 64UL, 128UL, 256UL, 512UL, 1024UL, 2048UL, 4096UL, 8192UL, 16384UL, 32768UL, 65536UL, 131072UL, 262144UL, 524288UL, 1048576UL, 2097152UL, 4194304UL, 8388608UL, 16777216UL, 33554432UL, @@ -312,7 +310,7 @@ xbotch (mem, e, s, file, line) int line; { fprintf (stderr, _("\r\nmalloc: %s:%d: assertion botched\r\n"), - file ? file : "unknown", line); + file ? file : _("unknown"), line); #ifdef MALLOC_REGISTER if (mem != NULL && malloc_register) mregister_describe_mem (mem, stderr); diff --git a/lib/malloc/mstats.h b/lib/malloc/mstats.h index 315374449..11389ffc0 100644 --- a/lib/malloc/mstats.h +++ b/lib/malloc/mstats.h @@ -2,19 +2,21 @@ /* Copyright (C) 2001-2003 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 file is part of GNU Bash, the Bourne-Again SHell. - 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. + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - 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. */ + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #ifndef _MSTATS_H #define _MSTATS_H diff --git a/lib/malloc/shmalloc.h b/lib/malloc/shmalloc.h index e51e92bed..2dac61547 100644 --- a/lib/malloc/shmalloc.h +++ b/lib/malloc/shmalloc.h @@ -2,19 +2,21 @@ tracking. */ /* Copyright (C) 2001-2003 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 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ + This file is part of GNU Bash, the Bourne-Again SHell. + + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #ifndef _SH_MALLOC_H #define _SH_MALLOC_H diff --git a/lib/malloc/stats.c b/lib/malloc/stats.c index 0d119fab5..8665918d6 100644 --- a/lib/malloc/stats.c +++ b/lib/malloc/stats.c @@ -2,19 +2,21 @@ /* Copyright (C) 2001-2003 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 file is part of GNU Bash, the Bourne-Again SHell. - 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. + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - 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. */ + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #ifdef HAVE_CONFIG_H # include @@ -181,7 +183,7 @@ _imalloc_fopen (s, fn, def, defbuf, defsiz) sprintf (pidbuf, "%ld", l); if ((strlen (pidbuf) + strlen (fn) + 2) >= sizeof (fname)) - return; + return ((FILE *)0); for (sp = 0, p = fname, q = fn; *q; ) { if (sp == 0 && *q == '%' && q[1] == 'p') diff --git a/lib/malloc/stub.c b/lib/malloc/stub.c index 770e3f939..a60a624aa 100644 --- a/lib/malloc/stub.c +++ b/lib/malloc/stub.c @@ -2,19 +2,19 @@ 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. + 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ void bash_malloc_stub() diff --git a/lib/malloc/table.c b/lib/malloc/table.c index b9310a6a0..cf89b3c0e 100644 --- a/lib/malloc/table.c +++ b/lib/malloc/table.c @@ -4,19 +4,20 @@ 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. */ + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ + #ifdef HAVE_CONFIG_H # include #endif diff --git a/lib/malloc/table.h b/lib/malloc/table.h index 0d22376b3..41ce9f72d 100644 --- a/lib/malloc/table.h +++ b/lib/malloc/table.h @@ -2,19 +2,21 @@ /* Copyright (C) 2001-2003 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. */ + This file is part of GNU Bash, the Bourne-Again SHell. + + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #ifndef _MTABLE_H #define _MTABLE_H diff --git a/lib/malloc/trace.c b/lib/malloc/trace.c index 79f466865..6d93f99c9 100644 --- a/lib/malloc/trace.c +++ b/lib/malloc/trace.c @@ -4,19 +4,20 @@ 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. */ + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ + #ifdef HAVE_CONFIG_H # include #endif diff --git a/lib/malloc/watch.c b/lib/malloc/watch.c index 11ab744d4..00c8a8248 100644 --- a/lib/malloc/watch.c +++ b/lib/malloc/watch.c @@ -4,19 +4,20 @@ 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. */ + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ + #ifdef HAVE_CONFIG_H # include #endif @@ -43,17 +44,17 @@ watch_warn (addr, file, line, type, data) char *tag; if (type == W_ALLOC) - tag = _("allocated"); + tag = "allocated"; else if (type == W_FREE) - tag = _("freed"); + tag = "freed"; else if (type == W_REALLOC) - tag = _("requesting resize"); + tag = "requesting resize"; else if (type == W_RESIZED) - tag = _("just resized"); + tag = "just resized"; else - tag = _("bug: unknown operation"); + tag = "bug: unknown operation"; - fprintf (stderr, _("malloc: watch alert: %p %s "), addr, tag); + fprintf (stderr, "malloc: watch alert: %p %s ", addr, tag); if (data != (unsigned long)-1) fprintf (stderr, "(size %lu) ", data); fprintf (stderr, "from '%s:%d'\n", file ? file : "unknown", line); diff --git a/lib/malloc/watch.h b/lib/malloc/watch.h index 757bbd2f2..6782acc4a 100644 --- a/lib/malloc/watch.h +++ b/lib/malloc/watch.h @@ -2,19 +2,21 @@ /* Copyright (C) 2001-2003 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. */ + This file is part of GNU Bash, the Bourne-Again SHell. + + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #ifndef _MWATCH_H #define _MWATCH_H diff --git a/lib/malloc/xmalloc.c b/lib/malloc/xmalloc.c index ab7c91ad9..f6dec67a8 100644 --- a/lib/malloc/xmalloc.c +++ b/lib/malloc/xmalloc.c @@ -5,19 +5,19 @@ This file is part of GNU Readline, a library for reading lines of text with interactive input and history editing. - Readline 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. + Readline is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Readline 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. + Readline 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 Readline; see the file COPYING. If not, write to the Free - Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ + along with Readline. If not, see . +*/ #if defined (HAVE_CONFIG_H) #include diff --git a/lib/readline/COPYING b/lib/readline/COPYING index 1bf152638..94a9ed024 100644 --- a/lib/readline/COPYING +++ b/lib/readline/COPYING @@ -1,285 +1,626 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 - Copyright (C) 1989, 1991 Free Software Foundation, Inc. - 59 Temple Place, Suite 330, Boston, MA 02111 USA + Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. - Preamble + Preamble - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Library General Public License instead.) You can apply it to + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. The precise terms and conditions for copying, distribution and modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of this License. - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - Appendix: How to Apply These Terms to Your New Programs + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it @@ -287,15 +628,15 @@ free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least +state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. - Copyright (C) 19yy + Copyright (C) - This program is free software; you can redistribute it and/or modify + 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 of the License, or + the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, @@ -304,36 +645,30 @@ the "copyright" line and a pointer to where the full notice is found. 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 + along with this program. If not, see . Also add information on how to contact you by electronic and paper mail. -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: - Gnomovision version 69, Copyright (C) 19yy name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Library General -Public License instead of this License. +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/lib/readline/Makefile.in b/lib/readline/Makefile.in index 98169e411..2204628a7 100644 --- a/lib/readline/Makefile.in +++ b/lib/readline/Makefile.in @@ -4,21 +4,20 @@ # # ############################################################################# -# Copyright (C) 1994-2005 Free Software Foundation, Inc. +# Copyright (C) 1994-2009 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 free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# 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. +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . PACKAGE = @PACKAGE_NAME@ VERSION = @PACKAGE_VERSION@ @@ -33,6 +32,8 @@ VPATH = .:@srcdir@ topdir = @top_srcdir@ BUILD_DIR = @BUILD_DIR@ +datarootdir = @datarootdir@ + INSTALL = @INSTALL@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_DATA = @INSTALL_DATA@ diff --git a/lib/readline/ansi_stdlib.h b/lib/readline/ansi_stdlib.h index db13cd234..7dc2ee0cf 100644 --- a/lib/readline/ansi_stdlib.h +++ b/lib/readline/ansi_stdlib.h @@ -6,19 +6,19 @@ 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. */ + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #if !defined (_STDLIB_H_) #define _STDLIB_H_ 1 diff --git a/lib/readline/bind.c b/lib/readline/bind.c index 08c906bfc..f68b5fa85 100644 --- a/lib/readline/bind.c +++ b/lib/readline/bind.c @@ -1,24 +1,23 @@ /* bind.c -- key binding and startup file support for the readline library. */ -/* Copyright (C) 1987-2006 Free Software Foundation, Inc. +/* Copyright (C) 1987-2009 Free Software Foundation, Inc. - This file is part of the GNU Readline Library, a library for - reading lines of text with interactive input and history editing. + This file is part of the GNU Readline Library (Readline), a library + for reading lines of text with interactive input and history editing. - The GNU Readline Library 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 + Readline is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - The GNU Readline Library 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 + Readline 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. - The GNU General Public License is often shipped with GNU software, and - is generally kept in a file called COPYING or LICENSE. If you do not - have a copy of the license, write to the Free Software Foundation, - 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ + You should have received a copy of the GNU General Public License + along with Readline. If not, see . +*/ #define READLINE_LIBRARY @@ -80,7 +79,7 @@ static int glean_key_from_name PARAMS((char *)); static int find_boolean_var PARAMS((const char *)); static char *_rl_get_string_variable_value PARAMS((const char *)); -static int substring_member_of_array PARAMS((char *, const char **)); +static int substring_member_of_array PARAMS((const char *, const char * const *)); static int currently_reading_init_file; @@ -317,7 +316,7 @@ rl_macro_bind (keyseq, macro, map) if (rl_translate_keyseq (macro, macro_keys, ¯o_keys_len)) { - free (macro_keys); + xfree (macro_keys); return -1; } rl_generic_bind (ISMACR, keyseq, macro_keys, map); @@ -347,7 +346,7 @@ rl_generic_bind (type, keyseq, data, map) if (keyseq == 0 || *keyseq == 0) { if (type == ISMACR) - free (data); + xfree (data); return -1; } @@ -358,7 +357,7 @@ rl_generic_bind (type, keyseq, data, map) KEYS into KEYS_LEN. */ if (rl_translate_keyseq (keyseq, keys, &keys_len)) { - free (keys); + xfree (keys); return -1; } @@ -371,7 +370,7 @@ rl_generic_bind (type, keyseq, data, map) ic = uc; if (ic < 0 || ic >= KEYMAP_SIZE) { - free (keys); + xfree (keys); return -1; } @@ -414,7 +413,7 @@ rl_generic_bind (type, keyseq, data, map) else { if (map[ic].type == ISMACR) - free ((char *)map[ic].function); + xfree ((char *)map[ic].function); else if (map[ic].type == ISKMAP) { map = FUNCTION_TO_KEYMAP (map, ic); @@ -427,7 +426,7 @@ rl_generic_bind (type, keyseq, data, map) rl_binding_keymap = map; } - free (keys); + xfree (keys); return 0; } @@ -793,7 +792,7 @@ _rl_read_file (filename, sizep) if (i < 0) { - free (buffer); + xfree (buffer); return ((char *)NULL); } @@ -863,7 +862,7 @@ _rl_read_init_file (filename, include_level) openname = tilde_expand (filename); buffer = _rl_read_file (openname, &file_size); - free (openname); + xfree (openname); if (buffer == 0) return (errno); @@ -911,7 +910,7 @@ _rl_read_init_file (filename, include_level) current_readline_init_lineno++; } - free (buffer); + xfree (buffer); currently_reading_init_file = 0; return (0); } @@ -921,10 +920,10 @@ _rl_init_file_error (msg) const char *msg; { if (currently_reading_init_file) - fprintf (stderr, "readline: %s: line %d: %s\n", current_readline_init_file, + _rl_errmsg ("%s: line %d: %s\n", current_readline_init_file, current_readline_init_lineno, msg); else - fprintf (stderr, "readline: %s\n", msg); + _rl_errmsg ("%s", msg); } /* **************************************************************** */ @@ -936,11 +935,11 @@ _rl_init_file_error (msg) typedef int _rl_parser_func_t PARAMS((char *)); /* Things that mean `Control'. */ -const char *_rl_possible_control_prefixes[] = { +const char * const _rl_possible_control_prefixes[] = { "Control-", "C-", "CTRL-", (const char *)NULL }; -const char *_rl_possible_meta_prefixes[] = { +const char * const _rl_possible_meta_prefixes[] = { "Meta", "M-", (const char *)NULL }; @@ -1002,7 +1001,7 @@ parser_if (args) `$if term=sun-cmd' into their .inputrc. */ _rl_parsing_conditionalized_out = _rl_stricmp (args + 5, tname) && _rl_stricmp (args + 5, rl_terminal_name); - free (tname); + xfree (tname); } #if defined (VI_MODE) else if (_rl_strnicmp (args, "mode=", 5) == 0) @@ -1099,8 +1098,8 @@ parser_include (args) } /* Associate textual names with actual functions. */ -static struct { - const char *name; +static const struct { + const char * const name; _rl_parser_func_t *function; } parser_directives [] = { { "if", parser_if }, @@ -1352,7 +1351,7 @@ rl_parse_and_bind (string) else rl_bind_keyseq (seq, rl_named_function (funname)); - free (seq); + xfree (seq); return 0; } @@ -1406,8 +1405,8 @@ rl_parse_and_bind (string) #define V_SPECIAL 0x1 -static struct { - const char *name; +static const struct { + const char * const name; int *value; int flags; } boolean_varlist [] = { @@ -1431,6 +1430,7 @@ static struct { { "page-completions", &_rl_page_completions, 0 }, { "prefer-visible-bell", &_rl_prefer_visible_bell, V_SPECIAL }, { "print-completions-horizontally", &_rl_print_completions_horizontally, 0 }, + { "revert-all-at-newline", &_rl_revert_all_at_newline, 0 }, { "show-all-if-ambiguous", &_rl_complete_show_all, 0 }, { "show-all-if-unmodified", &_rl_complete_show_unmodified, 0 }, #if defined (VISIBLE_STATS) @@ -1489,20 +1489,24 @@ typedef int _rl_sv_func_t PARAMS((const char *)); /* Forward declarations */ static int sv_bell_style PARAMS((const char *)); static int sv_combegin PARAMS((const char *)); +static int sv_dispprefix PARAMS((const char *)); static int sv_compquery PARAMS((const char *)); static int sv_editmode PARAMS((const char *)); +static int sv_histsize PARAMS((const char *)); static int sv_isrchterm PARAMS((const char *)); static int sv_keymap PARAMS((const char *)); -static struct { - const char *name; +static const struct { + const char * const name; int flags; _rl_sv_func_t *set_func; } string_varlist[] = { { "bell-style", V_STRING, sv_bell_style }, { "comment-begin", V_STRING, sv_combegin }, + { "completion-prefix-display-length", V_INT, sv_dispprefix }, { "completion-query-items", V_INT, sv_compquery }, { "editing-mode", V_STRING, sv_editmode }, + { "history-size", V_INT, sv_histsize }, { "isearch-terminators", V_STRING, sv_isrchterm }, { "keymap", V_STRING, sv_keymap }, { (char *)NULL, 0 } @@ -1613,6 +1617,22 @@ sv_combegin (value) return 1; } +static int +sv_dispprefix (value) + const char *value; +{ + int nval = 0; + + if (value && *value) + { + nval = atoi (value); + if (nval < 0) + nval = 0; + } + _rl_completion_prefix_display_length = nval; + return 0; +} + static int sv_compquery (value) const char *value; @@ -1629,6 +1649,22 @@ sv_compquery (value) return 0; } +static int +sv_histsize (value) + const char *value; +{ + int nval = 500; + + if (value && *value) + { + nval = atoi (value); + if (nval < 0) + return 1; + } + stifle_history (nval); + return 0; +} + static int sv_keymap (value) const char *value; @@ -1693,7 +1729,7 @@ sv_isrchterm (value) rl_translate_keyseq (v + beg, _rl_isearch_terminators, &end); _rl_isearch_terminators[end] = '\0'; - free (v); + xfree (v); return 0; } @@ -1701,11 +1737,11 @@ sv_isrchterm (value) For example, `Space' returns ' '. */ typedef struct { - const char *name; + const char * const name; int value; } assoc_list; -static assoc_list name_key_alist[] = { +static const assoc_list name_key_alist[] = { { "DEL", 0x7f }, { "ESC", '\033' }, { "Escape", '\033' }, @@ -1734,8 +1770,8 @@ glean_key_from_name (name) } /* Auxiliary functions to manage keymaps. */ -static struct { - const char *name; +static const struct { + const char * const name; Keymap map; } keymap_names[] = { { "emacs", emacs_standard_keymap }, @@ -1838,7 +1874,7 @@ rl_list_funmap_names () for (i = 0; funmap_names[i]; i++) fprintf (rl_outstream, "%s\n", funmap_names[i]); - free (funmap_names); + xfree (funmap_names); } static char * @@ -2004,7 +2040,7 @@ rl_invoking_keyseqs_in_map (function, map) } strcat (keyname, seqs[i]); - free (seqs[i]); + xfree (seqs[i]); if (result_index + 2 > result_size) { @@ -2016,7 +2052,7 @@ rl_invoking_keyseqs_in_map (function, map) result[result_index] = (char *)NULL; } - free (seqs); + xfree (seqs); } break; } @@ -2068,10 +2104,10 @@ rl_function_dumper (print_readably) { fprintf (rl_outstream, "\"%s\": %s\n", invokers[j], name); - free (invokers[j]); + xfree (invokers[j]); } - free (invokers); + xfree (invokers); } } else @@ -2095,9 +2131,9 @@ rl_function_dumper (print_readably) fprintf (rl_outstream, "...\n"); for (j = 0; invokers[j]; j++) - free (invokers[j]); + xfree (invokers[j]); - free (invokers); + xfree (invokers); } } } @@ -2143,8 +2179,8 @@ _rl_macro_dumper_internal (print_readably, map, prefix) fprintf (rl_outstream, "%s%s outputs %s\n", prefix ? prefix : "", keyname, out ? out : ""); - free (keyname); - free (out); + xfree (keyname); + xfree (out); break; case ISFUNC: break; @@ -2167,13 +2203,13 @@ _rl_macro_dumper_internal (print_readably, map, prefix) out = (char *)xmalloc (strlen (keyname) + prefix_len + 1); strcpy (out, prefix); strcpy (out + prefix_len, keyname); - free (keyname); + xfree (keyname); keyname = out; } } _rl_macro_dumper_internal (print_readably, FUNCTION_TO_KEYMAP (map, key), keyname); - free (keyname); + xfree (keyname); break; } } @@ -2219,6 +2255,11 @@ _rl_get_string_variable_value (name) } else if (_rl_stricmp (name, "comment-begin") == 0) return (_rl_comment_begin ? _rl_comment_begin : RL_COMMENT_BEGIN_DEFAULT); + else if (_rl_stricmp (name, "completion-prefix-display-length") == 0) + { + sprintf (numbuf, "%d", _rl_completion_prefix_display_length); + return (numbuf); + } else if (_rl_stricmp (name, "completion-query-items") == 0) { sprintf (numbuf, "%d", rl_completion_query_items); @@ -2226,6 +2267,11 @@ _rl_get_string_variable_value (name) } else if (_rl_stricmp (name, "editing-mode") == 0) return (rl_get_keymap_name_from_edit_mode ()); + else if (_rl_stricmp (name, "history-size") == 0) + { + sprintf (numbuf, "%d", history_is_stifled() ? history_max_entries : 0); + return (numbuf); + } else if (_rl_stricmp (name, "isearch-terminators") == 0) { if (_rl_isearch_terminators == 0) @@ -2234,7 +2280,7 @@ _rl_get_string_variable_value (name) if (ret) { strncpy (numbuf, ret, sizeof (numbuf) - 1); - free (ret); + xfree (ret); numbuf[sizeof(numbuf) - 1] = '\0'; } else @@ -2298,8 +2344,8 @@ rl_dump_variables (count, key) /* Return non-zero if any members of ARRAY are a substring in STRING. */ static int substring_member_of_array (string, array) - char *string; - const char **array; + const char *string; + const char * const *array; { while (*array) { diff --git a/lib/readline/callback.c b/lib/readline/callback.c index ada04d859..8c9b6d3a5 100644 --- a/lib/readline/callback.c +++ b/lib/readline/callback.c @@ -1,24 +1,24 @@ /* callback.c -- functions to use readline as an X `callback' mechanism. */ -/* Copyright (C) 1987-2005 Free Software Foundation, Inc. +/* Copyright (C) 1987-2009 Free Software Foundation, Inc. - This file is part of the GNU Readline Library, a library for - reading lines of text with interactive input and history editing. + This file is part of the GNU Readline Library (Readline), a library + for reading lines of text with interactive input and history editing. - The GNU Readline Library 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 + Readline is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - The GNU Readline Library 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 + Readline 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. - The GNU General Public License is often shipped with GNU software, and - is generally kept in a file called COPYING or LICENSE. If you do not - have a copy of the license, write to the Free Software Foundation, - 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ + You should have received a copy of the GNU General Public License + along with Readline. If not, see . +*/ + #define READLINE_LIBRARY #if defined (HAVE_CONFIG_H) @@ -111,17 +111,17 @@ rl_callback_read_char () if (rl_linefunc == NULL) { - fprintf (stderr, "readline: readline_callback_read_char() called with no handler!\r\n"); + _rl_errmsg ("readline_callback_read_char() called with no handler!"); abort (); } - memcpy ((void *)olevel, (void *)readline_top_level, sizeof (procenv_t)); - jcode = setjmp (readline_top_level); + memcpy ((void *)olevel, (void *)_rl_top_level, sizeof (procenv_t)); + jcode = setjmp (_rl_top_level); if (jcode) { (*rl_redisplay_function) (); _rl_want_redisplay = 0; - memcpy ((void *)readline_top_level, (void *)olevel, sizeof (procenv_t)); + memcpy ((void *)_rl_top_level, (void *)olevel, sizeof (procenv_t)); return; } @@ -251,8 +251,7 @@ _rl_callback_data_alloc (count) void _rl_callback_data_dispose (arg) _rl_callback_generic_arg *arg; { - if (arg) - free (arg); + xfree (arg); } #endif diff --git a/lib/readline/chardefs.h b/lib/readline/chardefs.h index def3a111b..e76c34b0c 100644 --- a/lib/readline/chardefs.h +++ b/lib/readline/chardefs.h @@ -1,24 +1,23 @@ /* chardefs.h -- Character definitions for readline. */ -/* Copyright (C) 1994 Free Software Foundation, Inc. +/* Copyright (C) 1994-2009 Free Software Foundation, Inc. - This file is part of the GNU Readline Library, a library for - reading lines of text with interactive input and history editing. + This file is part of the GNU Readline Library (Readline), a library + for reading lines of text with interactive input and history editing. - The GNU Readline Library 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 + Readline is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - The GNU Readline Library 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 + Readline 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. - The GNU General Public License is often shipped with GNU software, and - is generally kept in a file called COPYING or LICENSE. If you do not - have a copy of the license, write to the Free Software Foundation, - 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ + You should have received a copy of the GNU General Public License + along with Readline. If not, see . +*/ #ifndef _CHARDEFS_H_ #define _CHARDEFS_H_ diff --git a/lib/readline/compat.c b/lib/readline/compat.c index a66d210fd..2af51207a 100644 --- a/lib/readline/compat.c +++ b/lib/readline/compat.c @@ -1,24 +1,24 @@ /* compat.c -- backwards compatibility functions. */ -/* Copyright (C) 2000 Free Software Foundation, Inc. +/* Copyright (C) 2000-2009 Free Software Foundation, Inc. - This file is part of the GNU Readline Library, a library for - reading lines of text with interactive input and history editing. + This file is part of the GNU Readline Library (Readline), a library + for reading lines of text with interactive input and history editing. - The GNU Readline Library 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 + Readline is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - The GNU Readline Library 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 + Readline 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. - The GNU General Public License is often shipped with GNU software, and - is generally kept in a file called COPYING or LICENSE. If you do not - have a copy of the license, write to the Free Software Foundation, - 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ + You should have received a copy of the GNU General Public License + along with Readline. If not, see . +*/ + #define READLINE_LIBRARY #if defined (HAVE_CONFIG_H) diff --git a/lib/readline/complete.c b/lib/readline/complete.c index 5ff198d34..186f6e87d 100644 --- a/lib/readline/complete.c +++ b/lib/readline/complete.c @@ -1,24 +1,24 @@ /* complete.c -- filename completion for readline. */ -/* Copyright (C) 1987-2005 Free Software Foundation, Inc. +/* Copyright (C) 1987-2009 Free Software Foundation, Inc. - This file is part of the GNU Readline Library, a library for - reading lines of text with interactive input and history editing. + This file is part of the GNU Readline Library (Readline), a library + for reading lines of text with interactive input and history editing. - The GNU Readline Library 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 + Readline is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - The GNU Readline Library 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 + Readline 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. - The GNU General Public License is often shipped with GNU software, and - is generally kept in a file called COPYING or LICENSE. If you do not - have a copy of the license, write to the Free Software Foundation, - 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ + You should have received a copy of the GNU General Public License + along with Readline. If not, see . +*/ + #define READLINE_LIBRARY #if defined (HAVE_CONFIG_H) @@ -110,8 +110,8 @@ static int get_y_or_n PARAMS((int)); static int _rl_internal_pager PARAMS((int)); static char *printable_part PARAMS((char *)); static int fnwidth PARAMS((const char *)); -static int fnprint PARAMS((const char *)); -static int print_filename PARAMS((char *, char *)); +static int fnprint PARAMS((const char *, int)); +static int print_filename PARAMS((char *, char *, int)); static char **gen_completion_matches PARAMS((char *, int, int, rl_compentry_func_t *, int, int)); @@ -164,6 +164,12 @@ int _rl_completion_case_fold; Unix) when doing filename completion. */ int _rl_match_hidden_files = 1; +/* Length in characters of a common prefix replaced with an ellipsis (`...') + when displaying completion matches. Matches whose printable portion has + more than this number of displaying characters in common will have the common + display prefix replaced with an ellipsis. */ +int _rl_completion_prefix_display_length = 0; + /* Global variables available to applications using readline. */ #if defined (VISIBLE_STATS) @@ -188,6 +194,10 @@ int rl_complete_with_tilde_expansion = 0; completer. */ rl_compentry_func_t *rl_completion_entry_function = (rl_compentry_func_t *)NULL; +/* Pointer to generator function for rl_menu_complete (). NULL means to use + *rl_completion_entry_function (see above). */ +rl_compentry_func_t *rl_menu_completion_entry_function = (rl_compentry_func_t *)NULL; + /* Pointer to alternative function to create matches. Function is called with TEXT, START, and END. START and END are indices in RL_LINE_BUFFER saying what the boundaries @@ -325,11 +335,20 @@ int rl_completion_mark_symlink_dirs; /* If non-zero, inhibit completion (temporarily). */ int rl_inhibit_completion; +/* Set to the last key used to invoke one of the completion functions */ +int rl_completion_invoking_key; + +/* If non-zero, sort the completion matches. On by default. */ +int rl_sort_completion_matches = 1; + /* Variables local to this file. */ /* Local variable states what happened during the last completion attempt. */ static int completion_changed_buffer; +/* The result of the query to the user about displaying completion matches */ +static int completion_y_or_n; + /*************************************/ /* */ /* Bindable completion functions */ @@ -343,6 +362,8 @@ int rl_complete (ignore, invoking_key) int ignore, invoking_key; { + rl_completion_invoking_key = invoking_key; + if (rl_inhibit_completion) return (_rl_insert_char (ignore, invoking_key)); else if (rl_last_func == rl_complete && !completion_changed_buffer) @@ -360,6 +381,7 @@ int rl_possible_completions (ignore, invoking_key) int ignore, invoking_key; { + rl_completion_invoking_key = invoking_key; return (rl_complete_internal ('?')); } @@ -367,6 +389,7 @@ int rl_insert_completions (ignore, invoking_key) int ignore, invoking_key; { + rl_completion_invoking_key = invoking_key; return (rl_complete_internal ('*')); } @@ -395,6 +418,14 @@ rl_completion_mode (cfunc) /* */ /************************************/ +/* Reset readline state on a signal or other event. */ +void +_rl_reset_completion_state () +{ + rl_completion_found_quote = 0; + rl_completion_quote_character = 0; +} + /* Set default values for readline word completion. These are the variables that application completion functions can change or inspect. */ static void @@ -406,6 +437,7 @@ set_completion_defaults (what_to_do) rl_filename_quoting_desired = 1; rl_completion_type = what_to_do; rl_completion_suppress_append = rl_completion_suppress_quote = 0; + rl_completion_append_character = ' '; /* The completion entry function may optionally change this. */ rl_completion_mark_symlink_dirs = _rl_complete_mark_symlink_dirs; @@ -481,6 +513,13 @@ stat_char (filename) struct stat finfo; int character, r; + /* Short-circuit a //server on cygwin, since that will always behave as + a directory. */ +#if __CYGWIN__ + if (filename[0] == '/' && filename[1] == '/' && strchr (filename+2, '/') == 0) + return '/'; +#endif + #if defined (HAVE_LSTAT) && defined (S_ISLNK) r = lstat (filename, &finfo); #else @@ -581,7 +620,7 @@ fnwidth (string) width = pos = 0; while (string[pos]) { - if (CTRL_CHAR (*string) || *string == RUBOUT) + if (CTRL_CHAR (string[pos]) || string[pos] == RUBOUT) { width += 2; pos++; @@ -614,17 +653,20 @@ fnwidth (string) return width; } +#define ELLIPSIS_LEN 3 + static int -fnprint (to_print) +fnprint (to_print, prefix_bytes) const char *to_print; + int prefix_bytes; { - int printed_len; + int printed_len, w; const char *s; #if defined (HANDLE_MULTIBYTE) mbstate_t ps; const char *end; size_t tlen; - int width, w; + int width; wchar_t wc; end = to_print + strlen (to_print) + 1; @@ -632,7 +674,23 @@ fnprint (to_print) #endif printed_len = 0; - s = to_print; + + /* Don't print only the ellipsis if the common prefix is one of the + possible completions */ + if (to_print[prefix_bytes] == '\0') + prefix_bytes = 0; + + if (prefix_bytes) + { + char ellipsis; + + ellipsis = (to_print[prefix_bytes] == '.') ? '_' : '.'; + for (w = 0; w < ELLIPSIS_LEN; w++) + putc (ellipsis, rl_outstream); + printed_len = ELLIPSIS_LEN; + } + + s = to_print + prefix_bytes; while (*s) { if (CTRL_CHAR (*s)) @@ -691,14 +749,15 @@ fnprint (to_print) filenames. Return the number of characters we output. */ static int -print_filename (to_print, full_pathname) +print_filename (to_print, full_pathname, prefix_bytes) char *to_print, *full_pathname; + int prefix_bytes; { int printed_len, extension_char, slen, tlen; char *s, c, *new_full_pathname, *dn; extension_char = 0; - printed_len = fnprint (to_print); + printed_len = fnprint (to_print, prefix_bytes); #if defined (VISIBLE_STATS) if (rl_filename_completion_desired && (rl_visible_stats || _rl_complete_mark_directories)) @@ -992,7 +1051,7 @@ remove_duplicate_matches (matches) /* Sort the array without matches[0], since we need it to stay in place no matter what. */ - if (i) + if (i && rl_sort_completion_matches) qsort (matches+1, i-1, sizeof (char *), (QSFUNC *)_rl_qsort_string_compare); /* Remember the lowest common denominator for it may be unique. */ @@ -1256,8 +1315,24 @@ rl_display_match_list (matches, len, max) int len, max; { int count, limit, printed_len, lines; - int i, j, k, l; - char *temp; + int i, j, k, l, common_length, sind; + char *temp, *t; + + /* Find the length of the prefix common to all items: length as displayed + characters (common_length) and as a byte index into the matches (sind) */ + common_length = sind = 0; + if (_rl_completion_prefix_display_length > 0) + { + t = printable_part (matches[0]); + temp = strrchr (t, '/'); + common_length = temp ? fnwidth (temp) : fnwidth (t); + sind = temp ? strlen (temp) : strlen (t); + + if (common_length > _rl_completion_prefix_display_length && common_length > ELLIPSIS_LEN) + max -= common_length - ELLIPSIS_LEN; + else + common_length = sind = 0; + } /* How many items of MAX length can we fit in the screen window? */ max += 2; @@ -1278,7 +1353,7 @@ rl_display_match_list (matches, len, max) 0 < len <= limit implies count = 1. */ /* Sort the items if they are not already sorted. */ - if (rl_ignore_completion_duplicates == 0) + if (rl_ignore_completion_duplicates == 0 && rl_sort_completion_matches) qsort (matches + 1, len, sizeof (char *), (QSFUNC *)_rl_qsort_string_compare); rl_crlf (); @@ -1296,7 +1371,7 @@ rl_display_match_list (matches, len, max) else { temp = printable_part (matches[l]); - printed_len = print_filename (temp, matches[l]); + printed_len = print_filename (temp, matches[l], sind); if (j + 1 < limit) for (k = 0; k < max - printed_len; k++) @@ -1320,7 +1395,7 @@ rl_display_match_list (matches, len, max) for (i = 1; matches[i]; i++) { temp = printable_part (matches[i]); - printed_len = print_filename (temp, matches[i]); + printed_len = print_filename (temp, matches[i], sind); /* Have we reached the end of this line? */ if (matches[i+1]) { @@ -1370,7 +1445,7 @@ display_matches (matches) { temp = printable_part (matches[0]); rl_crlf (); - print_filename (temp, matches[0]); + print_filename (temp, matches[0], 0); rl_crlf (); rl_forced_update_display (); @@ -1406,7 +1481,7 @@ display_matches (matches) rl_crlf (); fprintf (rl_outstream, "Display all %d possibilities? (y or n)", len); fflush (rl_outstream); - if (get_y_or_n (0) == 0) + if ((completion_y_or_n = get_y_or_n (0)) == 0) { rl_crlf (); @@ -1678,6 +1753,7 @@ rl_complete_internal (what_to_do) FREE (saved_line_buffer); completion_changed_buffer = 0; RL_UNSETSTATE(RL_STATE_COMPLETING); + _rl_reset_completion_state (); return (0); } @@ -1692,6 +1768,7 @@ rl_complete_internal (what_to_do) FREE (saved_line_buffer); completion_changed_buffer = 0; RL_UNSETSTATE(RL_STATE_COMPLETING); + _rl_reset_completion_state (); return (0); } @@ -1742,10 +1819,11 @@ rl_complete_internal (what_to_do) break; default: - fprintf (stderr, "\r\nreadline: bad value %d for what_to_do in rl_complete\n", what_to_do); + _rl_ttymsg ("bad value %d for what_to_do in rl_complete", what_to_do); rl_ding (); FREE (saved_line_buffer); RL_UNSETSTATE(RL_STATE_COMPLETING); + _rl_reset_completion_state (); return 1; } @@ -1759,6 +1837,7 @@ rl_complete_internal (what_to_do) } RL_UNSETSTATE(RL_STATE_COMPLETING); + _rl_reset_completion_state (); return 0; } @@ -2109,8 +2188,8 @@ rl_filename_completion_function (text, state) hit the end of the match list, we restore the original unmatched text, ring the bell, and reset the counter to zero. */ int -rl_menu_complete (count, ignore) - int count, ignore; +rl_old_menu_complete (count, invoking_key) + int count, invoking_key; { rl_compentry_func_t *our_func; int matching_filenames, found_quote; @@ -2135,10 +2214,14 @@ rl_menu_complete (count, ignore) match_list_index = match_list_size = 0; matches = (char **)NULL; + rl_completion_invoking_key = invoking_key; + /* Only the completion entry function can change these. */ set_completion_defaults ('%'); - our_func = rl_completion_entry_function + our_func = rl_menu_completion_entry_function; + if (our_func == 0) + our_func = rl_completion_entry_function ? rl_completion_entry_function : rl_filename_completion_function; @@ -2179,6 +2262,9 @@ rl_menu_complete (count, ignore) ; /* matches[0] is lcd if match_list_size > 1, but the circular buffer code below should take care of it. */ + + if (match_list_size > 1 && _rl_complete_show_all) + display_matches (matches); } /* Now we have the list of matches. Replace the text between @@ -2215,3 +2301,158 @@ rl_menu_complete (count, ignore) completion_changed_buffer = 1; return (0); } + +int +rl_menu_complete (count, ignore) + int count, ignore; +{ + rl_compentry_func_t *our_func; + int matching_filenames, found_quote; + + static char *orig_text; + static char **matches = (char **)0; + static int match_list_index = 0; + static int match_list_size = 0; + static int nontrivial_lcd = 0; + static int full_completion = 0; /* set to 1 if menu completion should reinitialize on next call */ + static int orig_start, orig_end; + static char quote_char; + static int delimiter; + + /* The first time through, we generate the list of matches and set things + up to insert them. */ + if (rl_last_func != rl_menu_complete || full_completion) + { + /* Clean up from previous call, if any. */ + FREE (orig_text); + if (matches) + _rl_free_match_list (matches); + + match_list_index = match_list_size = 0; + matches = (char **)NULL; + + full_completion = 0; + + /* Only the completion entry function can change these. */ + set_completion_defaults ('%'); + + our_func = rl_menu_completion_entry_function; + if (our_func == 0) + our_func = rl_completion_entry_function + ? rl_completion_entry_function + : rl_filename_completion_function; + + /* We now look backwards for the start of a filename/variable word. */ + orig_end = rl_point; + found_quote = delimiter = 0; + quote_char = '\0'; + + if (rl_point) + /* This (possibly) changes rl_point. If it returns a non-zero char, + we know we have an open quote. */ + quote_char = _rl_find_completion_word (&found_quote, &delimiter); + + orig_start = rl_point; + rl_point = orig_end; + + orig_text = rl_copy_text (orig_start, orig_end); + matches = gen_completion_matches (orig_text, orig_start, orig_end, + our_func, found_quote, quote_char); + + nontrivial_lcd = matches && strcmp (orig_text, matches[0]) != 0; + + /* If we are matching filenames, the attempted completion function will + have set rl_filename_completion_desired to a non-zero value. The basic + rl_filename_completion_function does this. */ + matching_filenames = rl_filename_completion_desired; + + if (matches == 0 || postprocess_matches (&matches, matching_filenames) == 0) + { + rl_ding (); + FREE (matches); + matches = (char **)0; + FREE (orig_text); + orig_text = (char *)0; + completion_changed_buffer = 0; + return (0); + } + + for (match_list_size = 0; matches[match_list_size]; match_list_size++) + ; + + if (match_list_size == 0) + { + rl_ding (); + FREE (matches); + matches = (char **)0; + match_list_index = 0; + completion_changed_buffer = 0; + return (0); + } + + /* matches[0] is lcd if match_list_size > 1, but the circular buffer + code below should take care of it. */ + if (*matches[0]) + { + insert_match (matches[0], orig_start, matches[1] ? MULT_MATCH : SINGLE_MATCH, "e_char); + orig_end = orig_start + strlen (matches[0]); + completion_changed_buffer = STREQ (orig_text, matches[0]) == 0; + } + + if (match_list_size > 1 && _rl_complete_show_all) + { + display_matches (matches); + /* If there are so many matches that the user has to be asked + whether or not he wants to see the matches, menu completion + is unwieldy. */ + if (rl_completion_query_items > 0 && match_list_size >= rl_completion_query_items) + { + rl_ding (); + FREE (matches); + matches = (char **)0; + full_completion = 1; + return (0); + } + } + else if (match_list_size <= 1) + { + append_to_match (matches[0], delimiter, quote_char, nontrivial_lcd); + full_completion = 1; + return (0); + } + } + + /* Now we have the list of matches. Replace the text between + rl_line_buffer[orig_start] and rl_line_buffer[rl_point] with + matches[match_list_index], and add any necessary closing char. */ + + if (matches == 0 || match_list_size == 0) + { + rl_ding (); + FREE (matches); + matches = (char **)0; + completion_changed_buffer = 0; + return (0); + } + + match_list_index += count; + if (match_list_index < 0) + match_list_index += match_list_size; + else + match_list_index %= match_list_size; + + if (match_list_index == 0 && match_list_size > 1) + { + rl_ding (); + insert_match (matches[0], orig_start, MULT_MATCH, "e_char); + } + else + { + insert_match (matches[match_list_index], orig_start, SINGLE_MATCH, "e_char); + append_to_match (matches[match_list_index], delimiter, quote_char, + strcmp (orig_text, matches[match_list_index])); + } + + completion_changed_buffer = 1; + return (0); +} diff --git a/lib/readline/display.c b/lib/readline/display.c index 2a482ef5d..e941c78ac 100644 --- a/lib/readline/display.c +++ b/lib/readline/display.c @@ -1,24 +1,24 @@ /* display.c -- readline redisplay facility. */ -/* Copyright (C) 1987-2006 Free Software Foundation, Inc. +/* Copyright (C) 1987-2009 Free Software Foundation, Inc. - This file is part of the GNU Readline Library, a library for - reading lines of text with interactive input and history editing. + This file is part of the GNU Readline Library (Readline), a library + for reading lines of text with interactive input and history editing. - The GNU Readline Library 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 + Readline is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - The GNU Readline Library 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 + Readline 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. - The GNU General Public License is often shipped with GNU software, and - is generally kept in a file called COPYING or LICENSE. If you do not - have a copy of the license, write to the Free Software Foundation, - 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ + You should have received a copy of the GNU General Public License + along with Readline. If not, see . +*/ + #define READLINE_LIBRARY #if defined (HAVE_CONFIG_H) @@ -65,16 +65,40 @@ static void delete_chars PARAMS((int)); static void insert_some_chars PARAMS((char *, int, int)); static void cr PARAMS((void)); +/* State of visible and invisible lines. */ +struct line_state + { + char *line; + int *lbreaks; + int lbsize; +#if defined (HANDLE_MULTIBYTE) + int *wrapped_line; + int wbsize; +#endif + }; + +/* The line display buffers. One is the line currently displayed on + the screen. The other is the line about to be displayed. */ +static struct line_state line_state_array[2]; +static struct line_state *line_state_visible = &line_state_array[0]; +static struct line_state *line_state_invisible = &line_state_array[1]; +static int line_structures_initialized = 0; + +/* Backwards-compatible names. */ +#define inv_lbreaks (line_state_invisible->lbreaks) +#define inv_lbsize (line_state_invisible->lbsize) +#define vis_lbreaks (line_state_visible->lbreaks) +#define vis_lbsize (line_state_visible->lbsize) + +#define visible_line (line_state_visible->line) +#define invisible_line (line_state_invisible->line) + #if defined (HANDLE_MULTIBYTE) static int _rl_col_width PARAMS((const char *, int, int)); -static int *_rl_wrapped_line; #else # define _rl_col_width(l, s, e) (((e) <= (s)) ? 0 : (e) - (s)) #endif -static int *inv_lbreaks, *vis_lbreaks; -static int inv_lbsize, vis_lbsize; - /* Heuristic used to decide whether it is faster to move from CUR to NEW by backing up or outputting a carriage return and moving forward. CUR and NEW are either both buffer positions or absolute screen positions. */ @@ -83,7 +107,7 @@ static int inv_lbsize, vis_lbsize; /* _rl_last_c_pos is an absolute cursor position in multibyte locales and a buffer index in others. This macro is used when deciding whether the current cursor position is in the middle of a prompt string containing - invisible characters. */ + invisible characters. XXX - might need to take `modmark' into account. */ #define PROMPT_ENDING_INDEX \ ((MB_CUR_MAX > 1 && rl_byte_oriented == 0) ? prompt_physical_chars : prompt_last_invisible+1) @@ -141,6 +165,7 @@ int _rl_last_v_pos = 0; static int cpos_adjusted; static int cpos_buffer_position; +static int prompt_multibyte_chars; /* Number of lines currently on screen minus 1. */ int _rl_vis_botlin = 0; @@ -150,11 +175,6 @@ int _rl_vis_botlin = 0; doing horizontal scrolling. It shifts in thirds of a screenwidth. */ static int last_lmargin; -/* The line display buffers. One is the line currently displayed on - the screen. The other is the line about to be displayed. */ -static char *visible_line = (char *)NULL; -static char *invisible_line = (char *)NULL; - /* A buffer for `modeline' messages. */ static char msg_buf[128]; @@ -195,6 +215,10 @@ static int prompt_last_screen_line; static int prompt_physical_chars; +/* set to a non-zero value by rl_redisplay if we are marking modified history + lines and the current line is so marked. */ +static int modmark; + /* Variables to save and restore prompt and display information. */ /* These are getting numerous enough that it's time to create a struct. */ @@ -282,6 +306,11 @@ expand_prompt (pmt, lp, lip, niflp, vlp) *r++ = *p++; if (!ignoring) { + /* rl ends up being assigned to prompt_visible_length, + which is the number of characters in the buffer that + contribute to characters on the screen, which might + not be the same as the number of physical characters + on the screen in the presence of multibyte characters */ rl += ind - pind; physchars += _rl_col_width (pmt, pind, ind); } @@ -443,13 +472,21 @@ init_line_structures (minsize) { /* should be enough. */ inv_lbsize = vis_lbsize = 256; - inv_lbreaks = (int *)xmalloc (inv_lbsize * sizeof (int)); - vis_lbreaks = (int *)xmalloc (vis_lbsize * sizeof (int)); + #if defined (HANDLE_MULTIBYTE) - _rl_wrapped_line = (int *)xmalloc (vis_lbsize * sizeof (int)); + line_state_visible->wbsize = vis_lbsize; + line_state_visible->wrapped_line = (int *)xmalloc (line_state_visible->wbsize * sizeof (int)); + + line_state_invisible->wbsize = inv_lbsize; + line_state_invisible->wrapped_line = (int *)xmalloc (line_state_invisible->wbsize * sizeof (int)); #endif + + inv_lbreaks = (int *)xmalloc (inv_lbsize * sizeof (int)); + vis_lbreaks = (int *)xmalloc (vis_lbsize * sizeof (int)); inv_lbreaks[0] = vis_lbreaks[0] = 0; } + + line_structures_initialized = 1; } /* Basic redisplay algorithm. */ @@ -459,7 +496,7 @@ rl_redisplay () register int in, out, c, linenum, cursor_linenum; register char *line; int inv_botlin, lb_botlin, lb_linenum, o_cpos; - int newlines, lpos, temp, modmark, n0, num; + int newlines, lpos, temp, n0, num, prompt_lines_estimate; char *prompt_this_line; #if defined (HANDLE_MULTIBYTE) wchar_t wc; @@ -469,13 +506,17 @@ rl_redisplay () int _rl_wrapped_multicolumn = 0; #endif - if (!readline_echoing_p) + if (_rl_echoing_p == 0) return; + /* Block keyboard interrupts because this function manipulates global + data structures. */ + _rl_block_sigint (); + if (!rl_display_prompt) rl_display_prompt = ""; - if (invisible_line == 0 || vis_lbreaks == 0) + if (line_structures_initialized == 0) { init_line_structures (0); rl_on_new_line (); @@ -484,6 +525,8 @@ rl_redisplay () /* Draw the line into the buffer. */ cpos_buffer_position = -1; + prompt_multibyte_chars = prompt_visible_length - prompt_physical_chars; + line = invisible_line; out = inv_botlin = 0; @@ -561,17 +604,6 @@ rl_redisplay () wrap_offset = prompt_invis_chars_first_line = 0; } -#if defined (HANDLE_MULTIBYTE) -#define CHECK_INV_LBREAKS() \ - do { \ - if (newlines >= (inv_lbsize - 2)) \ - { \ - inv_lbsize *= 2; \ - inv_lbreaks = (int *)xrealloc (inv_lbreaks, inv_lbsize * sizeof (int)); \ - _rl_wrapped_line = (int *)xrealloc (_rl_wrapped_line, inv_lbsize * sizeof (int)); \ - } \ - } while (0) -#else #define CHECK_INV_LBREAKS() \ do { \ if (newlines >= (inv_lbsize - 2)) \ @@ -580,7 +612,6 @@ rl_redisplay () inv_lbreaks = (int *)xrealloc (inv_lbreaks, inv_lbsize * sizeof (int)); \ } \ } while (0) -#endif /* HANDLE_MULTIBYTE */ #if defined (HANDLE_MULTIBYTE) #define CHECK_LPOS() \ @@ -592,10 +623,14 @@ rl_redisplay () { \ inv_lbsize *= 2; \ inv_lbreaks = (int *)xrealloc (inv_lbreaks, inv_lbsize * sizeof (int)); \ - _rl_wrapped_line = (int *)xrealloc (_rl_wrapped_line, inv_lbsize * sizeof (int)); \ } \ inv_lbreaks[++newlines] = out; \ - _rl_wrapped_line[newlines] = _rl_wrapped_multicolumn; \ + if (newlines >= (line_state_invisible->wbsize - 1)) \ + { \ + line_state_invisible->wbsize *= 2; \ + line_state_invisible->wrapped_line = (int *)xrealloc (line_state_invisible->wrapped_line, line_state_invisible->wbsize * sizeof(int)); \ + } \ + line_state_invisible->wrapped_line[newlines] = _rl_wrapped_multicolumn; \ lpos = 0; \ } \ } while (0) @@ -618,21 +653,20 @@ rl_redisplay () /* inv_lbreaks[i] is where line i starts in the buffer. */ inv_lbreaks[newlines = 0] = 0; -#if 0 - lpos = out - wrap_offset; -#else lpos = prompt_physical_chars + modmark; -#endif #if defined (HANDLE_MULTIBYTE) - memset (_rl_wrapped_line, 0, vis_lbsize); + memset (line_state_invisible->wrapped_line, 0, line_state_invisible->wbsize * sizeof (int)); num = 0; #endif /* prompt_invis_chars_first_line is the number of invisible characters in the first physical line of the prompt. wrap_offset - prompt_invis_chars_first_line is the number of invis - chars on the second line. */ + chars on the second (or, more generally, last) line. */ + + /* This is zero-based, used to set the newlines */ + prompt_lines_estimate = lpos / _rl_screenwidth; /* what if lpos is already >= _rl_screenwidth before we start drawing the contents of the command line? */ @@ -647,7 +681,7 @@ rl_redisplay () prompts that exceed two physical lines? Additional logic fix from Edward Catmur */ #if defined (HANDLE_MULTIBYTE) - if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) + if (MB_CUR_MAX > 1 && rl_byte_oriented == 0 && prompt_multibyte_chars > 0) { n0 = num; temp = local_prompt_len; @@ -670,13 +704,15 @@ rl_redisplay () temp = ((newlines + 1) * _rl_screenwidth); /* Now account for invisible characters in the current line. */ + /* XXX - this assumes that the invisible characters may be split, but only + between the first and the last lines. */ temp += ((local_prompt_prefix == 0) ? ((newlines == 0) ? prompt_invis_chars_first_line - : ((newlines == 1) ? wrap_offset : 0)) - : ((newlines == 0) ? wrap_offset :0)); + : ((newlines == prompt_lines_estimate) ? wrap_offset : prompt_invis_chars_first_line)) + : ((newlines == 0) ? wrap_offset : 0)); inv_lbreaks[++newlines] = temp; #if defined (HANDLE_MULTIBYTE) - if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) + if (MB_CUR_MAX > 1 && rl_byte_oriented == 0 && prompt_multibyte_chars > 0) lpos -= _rl_col_width (local_prompt, n0, num); else #endif @@ -935,7 +971,7 @@ rl_redisplay () take invisible characters into account, since _rl_last_c_pos is an absolute cursor position in a multibyte locale. See if compensating here is the right thing, or if we have to - change update_line itself. There is one case in which + change update_line itself. There are several cases in which update_line adjusts _rl_last_c_pos itself (so it can pass _rl_move_cursor_relative accurate values); it communicates this back by setting cpos_adjusted. If we assume that @@ -974,6 +1010,19 @@ rl_redisplay () if (nleft) _rl_clear_to_eol (nleft); } +#if 0 + /* This segment is intended to handle the case where the prompt + has invisible characters on the second line and the new line + to be displayed needs to clear the rest of the old characters + out (e.g., when printing the i-search prompt). In general, + the case of the new line being shorter than the old. + Incomplete */ + else if (linenum == prompt_last_screen_line && + prompt_physical_chars > _rl_screenwidth && + wrap_offset != prompt_invis_chars_first_line && + _rl_last_c_pos == out && +#endif + /* Since the new first line is now visible, save its length. */ if (linenum == 0) @@ -1029,11 +1078,14 @@ rl_redisplay () if (_rl_term_cr) tputs (_rl_term_cr, 1, _rl_output_character_function); #endif + if (modmark) + _rl_output_some_chars ("*", 1); + _rl_output_some_chars (local_prompt, nleft); if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) - _rl_last_c_pos = _rl_col_width (local_prompt, 0, nleft) - wrap_offset; + _rl_last_c_pos = _rl_col_width (local_prompt, 0, nleft) - wrap_offset + modmark; else - _rl_last_c_pos = nleft; + _rl_last_c_pos = nleft + modmark; } /* Where on that line? And where does that line start @@ -1169,17 +1221,10 @@ rl_redisplay () /* Swap visible and non-visible lines. */ { - char *vtemp = visible_line; - int *itemp = vis_lbreaks, ntemp = vis_lbsize; - - visible_line = invisible_line; - invisible_line = vtemp; - - vis_lbreaks = inv_lbreaks; - inv_lbreaks = itemp; + struct line_state *vtemp = line_state_visible; - vis_lbsize = inv_lbsize; - inv_lbsize = ntemp; + line_state_visible = line_state_invisible; + line_state_invisible = vtemp; rl_display_fixed = 0; /* If we are displaying on a single line, and last_lmargin is > 0, we @@ -1190,6 +1235,8 @@ rl_redisplay () else visible_wrap_offset = wrap_offset; } + + _rl_release_sigint (); } /* PWP: update_line() is based on finding the middle difference of each @@ -1245,8 +1292,8 @@ update_line (old, new, current_line, omax, nmax, inv_botlin) /* This fixes only double-column characters, but if the wrapped character comsumes more than three columns, spaces will be inserted in the string buffer. */ - if (_rl_wrapped_line[current_line] > 0) - _rl_clear_to_eol (_rl_wrapped_line[current_line]); + if (current_line < line_state_visible->wbsize && line_state_visible->wrapped_line[current_line] > 0) + _rl_clear_to_eol (line_state_visible->wrapped_line[current_line]); memset (&ps, 0, sizeof (mbstate_t)); ret = mbrtowc (&wc, new, MB_CUR_MAX, &ps); @@ -1310,7 +1357,7 @@ update_line (old, new, current_line, omax, nmax, inv_botlin) /* See if the old line is a subset of the new line, so that the only change is adding characters. */ temp = (omax < nmax) ? omax : nmax; - if (memcmp (old, new, temp) == 0) + if (memcmp (old, new, temp) == 0) /* adding at the end */ { ofd = old + temp; nfd = new + temp; @@ -1463,16 +1510,18 @@ update_line (old, new, current_line, omax, nmax, inv_botlin) #else tputs (_rl_term_cr, 1, _rl_output_character_function); #endif + if (modmark) + _rl_output_some_chars ("*", 1); _rl_output_some_chars (local_prompt, lendiff); if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) { /* We take wrap_offset into account here so we can pass correct information to _rl_move_cursor_relative. */ - _rl_last_c_pos = _rl_col_width (local_prompt, 0, lendiff) - wrap_offset; + _rl_last_c_pos = _rl_col_width (local_prompt, 0, lendiff) - wrap_offset + modmark; cpos_adjusted = 1; } else - _rl_last_c_pos = lendiff; + _rl_last_c_pos = lendiff + modmark; } o_cpos = _rl_last_c_pos; @@ -1486,7 +1535,7 @@ update_line (old, new, current_line, omax, nmax, inv_botlin) /* We need to indicate that the cursor position is correct in the presence of invisible characters in the prompt string. Let's see if setting this when we make sure we're at the end of the drawn prompt string works. */ - if (current_line == 0 && MB_CUR_MAX > 1 && rl_byte_oriented == 0 && + if (current_line == 0 && MB_CUR_MAX > 1 && rl_byte_oriented == 0 && (_rl_last_c_pos > 0 || o_cpos > 0) && _rl_last_c_pos == prompt_physical_chars) cpos_adjusted = 1; @@ -1562,12 +1611,30 @@ update_line (old, new, current_line, omax, nmax, inv_botlin) _rl_horizontal_scroll_mode == 1, inserting the characters with _rl_term_IC or _rl_term_ic will screw up the screen because of the invisible characters. We need to just draw them. */ - if (*ols && (!_rl_horizontal_scroll_mode || _rl_last_c_pos > 0 || - lendiff <= prompt_visible_length || !current_invis_chars)) + /* The same thing happens if we're trying to draw before the last + invisible character in the prompt string or we're increasing the + number of invisible characters in the line and we're not drawing + the entire prompt string. */ + if (*ols && ((_rl_horizontal_scroll_mode && + _rl_last_c_pos == 0 && + lendiff > prompt_visible_length && + current_invis_chars > 0) == 0) && + (((MB_CUR_MAX > 1 && rl_byte_oriented == 0) && + current_line == 0 && wrap_offset && + ((nfd - new) <= prompt_last_invisible) && + (col_lendiff < prompt_visible_length)) == 0) && + (visible_wrap_offset >= current_invis_chars)) { insert_some_chars (nfd, lendiff, col_lendiff); _rl_last_c_pos += col_lendiff; } +#if 0 /* XXX - for now */ + else if ((MB_CUR_MAX > 1 && rl_byte_oriented == 0) && _rl_last_c_pos == 0 && wrap_offset && (nfd-new) <= prompt_last_invisible && col_lendiff < prompt_visible_length && visible_wrap_offset >= current_invis_chars) + { + _rl_output_some_chars (nfd, lendiff); + _rl_last_c_pos += col_lendiff; + } +#endif else if ((MB_CUR_MAX == 1 || rl_byte_oriented != 0) && *ols == 0 && lendiff > 0) { /* At the end of a line the characters do not have to @@ -1581,10 +1648,10 @@ update_line (old, new, current_line, omax, nmax, inv_botlin) { _rl_output_some_chars (nfd, temp); _rl_last_c_pos += col_temp; - /* If nfd begins before any invisible characters in the prompt, - adjust _rl_last_c_pos to account for wrap_offset and set - cpos_adjusted to let the caller know. */ - if (current_line == 0 && wrap_offset && ((nfd - new) <= prompt_last_invisible)) + /* If nfd begins before the last invisible character in the + prompt, adjust _rl_last_c_pos to account for wrap_offset + and set cpos_adjusted to let the caller know. */ + if ((MB_CUR_MAX > 1 && rl_byte_oriented == 0) && current_line == 0 && wrap_offset && ((nfd - new) <= prompt_last_invisible)) { _rl_last_c_pos -= wrap_offset; cpos_adjusted = 1; @@ -1605,6 +1672,14 @@ update_line (old, new, current_line, omax, nmax, inv_botlin) else twidth = temp - lendiff; _rl_last_c_pos += twidth; + /* If nfd begins before the last invisible character in the + prompt, adjust _rl_last_c_pos to account for wrap_offset + and set cpos_adjusted to let the caller know. */ + if ((MB_CUR_MAX > 1 && rl_byte_oriented == 0) && current_line == 0 && wrap_offset && ((nfd - new) <= prompt_last_invisible)) + { + _rl_last_c_pos -= wrap_offset; + cpos_adjusted = 1; + } } } else @@ -1616,6 +1691,14 @@ update_line (old, new, current_line, omax, nmax, inv_botlin) char in the current line (which implies we just output some invisible characters) we need to adjust _rl_last_c_pos, since it represents a physical character position. */ + if ((MB_CUR_MAX > 1 && rl_byte_oriented == 0) && + current_line == prompt_last_screen_line && wrap_offset && + wrap_offset != prompt_invis_chars_first_line && + ((nfd-new) < (prompt_last_invisible-(current_line*_rl_screenwidth)))) + { + _rl_last_c_pos -= wrap_offset - prompt_invis_chars_first_line; + cpos_adjusted = 1; + } } } else /* Delete characters from line. */ @@ -1644,15 +1727,15 @@ update_line (old, new, current_line, omax, nmax, inv_botlin) _rl_output_some_chars (nfd, temp); if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) { - _rl_last_c_pos += _rl_col_width (nfd, 0, temp); - if (current_line == 0 && wrap_offset && ((nfd - new) <= prompt_last_invisible)) + _rl_last_c_pos += _rl_col_width (nfd, 0, temp); + if (current_line == 0 && wrap_offset && ((nfd - new) <= prompt_last_invisible)) { _rl_last_c_pos -= wrap_offset; cpos_adjusted = 1; } } - else - _rl_last_c_pos += temp; + else + _rl_last_c_pos += temp; } } /* Otherwise, print over the existing material. */ @@ -1681,7 +1764,16 @@ update_line (old, new, current_line, omax, nmax, inv_botlin) else col_lendiff = lendiff; +#if 0 if (col_lendiff) +#else + /* If we've already printed over the entire width of the screen, + including the old material, then col_lendiff doesn't matter and + space_to_eol will insert too many spaces. XXX - maybe we should + adjust col_lendiff based on the difference between _rl_last_c_pos + and _rl_screenwidth */ + if (col_lendiff && (_rl_last_c_pos < _rl_screenwidth)) +#endif { if (_rl_term_autowrap && current_line < inv_botlin) space_to_eol (col_lendiff); @@ -1815,8 +1907,9 @@ _rl_move_cursor_relative (new, data) if ((new > prompt_last_invisible) || /* XXX - don't use woff here */ (prompt_physical_chars > _rl_screenwidth && _rl_last_v_pos == prompt_last_screen_line && - wrap_offset != woff && - new > (prompt_last_invisible-_rl_screenwidth-wrap_offset))) + wrap_offset >= woff && + new > (prompt_last_invisible-(_rl_screenwidth*_rl_last_v_pos)-wrap_offset))) + /* XXX last comparison might need to be >= */ { dpos -= woff; /* Since this will be assigned to _rl_last_c_pos at the end (more @@ -2229,7 +2322,7 @@ insert_some_chars (string, count, col) /* DEBUGGING */ if (MB_CUR_MAX == 1 || rl_byte_oriented) if (count != col) - fprintf(stderr, "readline: debug: insert_some_chars: count (%d) != col (%d)\n", count, col); + _rl_ttymsg ("debug: insert_some_chars: count (%d) != col (%d)", count, col); /* If IC is defined, then we do not have to "enter" insert mode. */ if (_rl_term_IC) @@ -2370,10 +2463,14 @@ _rl_redisplay_after_sigwinch () { char *t; - /* Clear the current line and put the cursor at column 0. Make sure - the right thing happens if we have wrapped to a new screen line. */ + /* Clear the last line (assuming that the screen size change will result in + either more or fewer characters on that line only) and put the cursor at + column 0. Make sure the right thing happens if we have wrapped to a new + screen line. */ if (_rl_term_cr) { + _rl_move_vert (_rl_vis_botlin); + #if defined (__MSDOS__) putc ('\r', rl_outstream); #else @@ -2409,7 +2506,7 @@ _rl_redisplay_after_sigwinch () void _rl_clean_up_for_exit () { - if (readline_echoing_p) + if (_rl_echoing_p) { _rl_move_vert (_rl_vis_botlin); _rl_vis_botlin = 0; @@ -2465,7 +2562,10 @@ _rl_col_width (str, start, end) if (end <= start) return 0; if (MB_CUR_MAX == 1 || rl_byte_oriented) +{ +_rl_ttymsg ("_rl_col_width: called with MB_CUR_MAX == 1"); return (end - start); +} memset (&ps, 0, sizeof (mbstate_t)); diff --git a/lib/readline/doc/Makefile b/lib/readline/doc/Makefile index 817c2af65..af5ee3e57 100644 --- a/lib/readline/doc/Makefile +++ b/lib/readline/doc/Makefile @@ -2,21 +2,22 @@ # This makefile for Readline library documentation is in -*- text -*- mode. # Emacs likes it that way. -# Copyright (C) 1996-2002 Free Software Foundation, Inc. +# 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 free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. # -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# 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. +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + topdir = . srcdir = . diff --git a/lib/readline/doc/fdl.texi b/lib/readline/doc/fdl.texi index 47ead9f09..96ce74ea1 100644 --- a/lib/readline/doc/fdl.texi +++ b/lib/readline/doc/fdl.texi @@ -1,13 +1,12 @@ - -@node GNU Free Documentation License -@appendixsec GNU Free Documentation License - -@cindex FDL, GNU Free Documentation License +@c The GNU Free Documentation License. @center Version 1.2, November 2002 +@c This file is intended to be included within another document, +@c hence no sectioning command or @node. + @display Copyright @copyright{} 2000,2001,2002 Free Software Foundation, Inc. -59 Temple Place, Suite 330, Boston, MA 02111-1307, USA +51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. @@ -344,7 +343,7 @@ and independent documents or works, in or on a volume of a storage or distribution medium, is called an ``aggregate'' if the copyright resulting from the compilation is not used to limit the legal rights of the compilation's users beyond what the individual works permit. -When the Document is included an aggregate, this License does not +When the Document is included in an aggregate, this License does not apply to the other works in the aggregate which are not themselves derivative works of the Document. @@ -408,7 +407,7 @@ as a draft) by the Free Software Foundation. @end enumerate @page -@appendixsubsec ADDENDUM: How to use this License for your documents +@heading ADDENDUM: How to use this License for your documents To use this License in a document you have written, include a copy of the License in the document and put the following copyright and @@ -420,14 +419,14 @@ license notices just after the title page: Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; - with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. - A copy of the license is included in the section entitled ``GNU + with no Invariant Sections, no Front-Cover Texts, and no Back-Cover + Texts. A copy of the license is included in the section entitled ``GNU Free Documentation License''. @end group @end smallexample If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, -replace the ``with...Texts.'' line with this: +replace the ``with@dots{}Texts.'' line with this: @smallexample @group diff --git a/lib/readline/doc/history.texi b/lib/readline/doc/history.texi index 1af40c73d..81ee8b1fb 100644 --- a/lib/readline/doc/history.texi +++ b/lib/readline/doc/history.texi @@ -4,8 +4,6 @@ @settitle GNU History Library @c %**end of header (This is for running Texinfo on a region.) -@setchapternewpage odd - @include version.texi @copying @@ -14,7 +12,7 @@ This document describes the GNU History library a programming tool that provides a consistent user interface for recalling lines of previously typed input. -Copyright @copyright{} 1988-2006 Free Software Foundation, Inc. +Copyright @copyright{} 1988--2009 Free Software Foundation, Inc. Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice @@ -24,13 +22,14 @@ are preserved on all copies. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no -Invariant Sections, with the Front-Cover texts being ``A GNU Manual,'' +Invariant Sections, with the Front-Cover texts being ``A GNU Manual'', and with the Back-Cover Texts as in (a) below. A copy of the license is -included in the section entitled ``GNU Free Documentation License.'' +included in the section entitled ``GNU Free Documentation License''. + +(a) The FSF's Back-Cover Text is: You are free to copy and modify +this GNU manual. Buying copies from GNU Press supports the FSF in +developing GNU and promoting software freedom.'' -(a) The FSF's Back-Cover Text is: ``You have freedom to copy and modify -this GNU Manual, like GNU software. Copies published by the Free -Software Foundation raise funds for GNU development.'' @end quotation @end copying @@ -72,7 +71,7 @@ typed input. @menu * Using History Interactively:: GNU History User's Manual. * Programming with GNU History:: GNU History Programmer's Manual. -* Copying This Manual:: Copying This Manual. +* GNU Free Documentation License:: License for copying this manual. * Concept Index:: Index of concepts described in this manual. * Function and Variable Index:: Index of externally visible functions and variables. @@ -84,12 +83,8 @@ typed input. @include hsuser.texi @include hstech.texi -@node Copying This Manual -@appendix Copying This Manual - -@menu -* GNU Free Documentation License:: License for copying this manual. -@end menu +@node GNU Free Documentation License +@appendix GNU Free Documentation License @include fdl.texi diff --git a/lib/readline/doc/hstech.texi b/lib/readline/doc/hstech.texi index 47ba8a550..c4e5a7527 100644 --- a/lib/readline/doc/hstech.texi +++ b/lib/readline/doc/hstech.texi @@ -1,7 +1,7 @@ @ignore This file documents the user interface to the GNU History library. -Copyright (C) 1988-2006 Free Software Foundation, Inc. +Copyright (C) 1988-2007 Free Software Foundation, Inc. Authored by Brian Fox and Chet Ramey. Permission is granted to make and distribute verbatim copies of this manual diff --git a/lib/readline/doc/hsuser.texi b/lib/readline/doc/hsuser.texi index f98983b69..87b354171 100644 --- a/lib/readline/doc/hsuser.texi +++ b/lib/readline/doc/hsuser.texi @@ -1,7 +1,7 @@ @ignore This file documents the user interface to the GNU History library. -Copyright (C) 1988-2006 Free Software Foundation, Inc. +Copyright (C) 1988-2007 Free Software Foundation, Inc. Authored by Brian Fox and Chet Ramey. Permission is granted to make and distribute verbatim copies of this manual @@ -97,7 +97,11 @@ to contain no more than @env{$HISTFILESIZE} lines. If @env{HISTFILESIZE} is not set, no truncation is performed. If the @env{HISTTIMEFORMAT} is set, the time stamp information -associated with each history entry is written to the history file. +associated with each history entry is written to the history file, +marked with the history comment character. +When the history file is read, lines beginning with the history +comment character followed immediately by a digit are interpreted +as timestamps for the previous history line. The builtin command @code{fc} may be used to list or edit and re-execute a portion of the history list. @@ -133,7 +137,7 @@ history list and history file. @item fc @btindex fc @example -@code{fc [-e @var{ename}] [-nlr] [@var{first}] [@var{last}]} +@code{fc [-e @var{ename}] [-lnr] [@var{first}] [@var{last}]} @code{fc -s [@var{pat}=@var{rep}] [@var{command}]} @end example @@ -277,7 +281,10 @@ them, so that they are available for subsequent recall. This is most useful in conjunction with Readline. The shell allows control of the various characters used by the -history expansion mechanism with the @code{histchars} variable. +history expansion mechanism with the @code{histchars} variable, +as explained above (@pxref{Bash Variables}). The shell uses +the history comment character to mark history timestamps when +writing the history file. @end ifset @menu @@ -412,7 +419,7 @@ of the following modifiers, each preceded by a @samp{:}. Remove a trailing pathname component, leaving only the head. @item t -Remove all leading pathname components, leaving the tail. +Remove all leading pathname components, leaving the tail. @item r Remove a trailing suffix of the form @samp{.@var{suffix}}, leaving diff --git a/lib/readline/doc/rlman.texi b/lib/readline/doc/rlman.texi index e14c655f7..fa3dd7727 100644 --- a/lib/readline/doc/rlman.texi +++ b/lib/readline/doc/rlman.texi @@ -4,7 +4,6 @@ @settitle GNU Readline Library @comment %**end of header (This is for running Texinfo on a region.) @synindex vr fn -@setchapternewpage odd @include version.texi @@ -14,7 +13,7 @@ This manual describes the GNU Readline Library consistency of user interface across discrete programs which provide a command line interface. -Copyright @copyright{} 1988-2006 Free Software Foundation, Inc. +Copyright @copyright{} 1988--2009 Free Software Foundation, Inc. Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice @@ -24,13 +23,14 @@ are preserved on all copies. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no -Invariant Sections, with the Front-Cover texts being ``A GNU Manual,'' +Invariant Sections, with the Front-Cover texts being ``A GNU Manual'', and with the Back-Cover Texts as in (a) below. A copy of the license is -included in the section entitled ``GNU Free Documentation License.'' +included in the section entitled ``GNU Free Documentation License''. + +(a) The FSF's Back-Cover Text is: You are free to copy and modify +this GNU manual. Buying copies from GNU Press supports the FSF in +developing GNU and promoting software freedom.'' -(a) The FSF's Back-Cover Text is: ``You have freedom to copy and modify -this GNU Manual, like GNU software. Copies published by the Free -Software Foundation raise funds for GNU development.'' @end quotation @end copying @@ -71,7 +71,7 @@ provide a command line interface. @menu * Command Line Editing:: GNU Readline User's Manual. * Programming with GNU Readline:: GNU Readline Programmer's Manual. -* Copying This Manual:: Copying this manual. +* GNU Free Documentation License:: License for copying this manual. * Concept Index:: Index of concepts described in this manual. * Function and Variable Index:: Index of externally visible functions and variables. @@ -81,12 +81,8 @@ provide a command line interface. @include rluser.texi @include rltech.texi -@node Copying This Manual -@appendix Copying This Manual - -@menu -* GNU Free Documentation License:: License for copying this manual. -@end menu +@node GNU Free Documentation License +@appendix GNU Free Documentation License @include fdl.texi diff --git a/lib/readline/doc/rltech.texi b/lib/readline/doc/rltech.texi index ecff10608..c98d3b9b5 100644 --- a/lib/readline/doc/rltech.texi +++ b/lib/readline/doc/rltech.texi @@ -1,14 +1,13 @@ @comment %**start of header (This is for running Texinfo on a region.) @setfilename rltech.info @comment %**end of header (This is for running Texinfo on a region.) -@setchapternewpage odd @ifinfo This document describes the GNU Readline Library, a utility for aiding in the consistency of user interface across discrete programs that need to provide a command line interface. -Copyright (C) 1988-2006 Free Software Foundation, Inc. +Copyright (C) 1988-2007 Free Software Foundation, Inc. Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice @@ -351,6 +350,12 @@ The @code{rl_set_prompt()} function (@pxref{Redisplay}) may be used to modify the prompt string after calling @code{readline()}. @end deftypevar +@deftypevar {char *} rl_display_prompt +The string displayed as the prompt. This is usually identical to +@var{rl_prompt}, but may be changed temporarily by functions that +use the prompt string as a message area, such as incremental search. +@end deftypevar + @deftypevar int rl_already_prompted If an application wishes to display the prompt itself, rather than have Readline do it the first time @code{readline()} is called, it should set @@ -518,6 +523,20 @@ Readline is performing word completion. Readline is currently executing the readline signal handler. @item RL_STATE_UNDOING Readline is performing an undo. +@item RL_STATE_INPUTPENDING +Readline has input pending due to a call to @code{rl_execute_next()}. +@item RL_STATE_TTYCSAVED +Readline has saved the values of the terminal's special characters. +@item RL_STATE_CALLBACK +Readline is currently using the alternate (callback) interface +(@pxref{Alternate Interface}). +@item RL_STATE_VIMOTION +Readline is reading the argument to a vi-mode "motion" command. +@item RL_STATE_MULTIKEY +Readline is reading a multiple-keystroke command. +@item RL_STATE_VICMDONCE +Readline has entered vi command (movement) mode at least one time during +the current call to @code{readline()}. @item RL_STATE_DONE Readline has read a key sequence bound to @code{accept-line} and is about to return the line to the caller. @@ -793,7 +812,8 @@ Print the names of all bindable Readline functions to @code{rl_outstream}. @deftypefun {const char **} rl_funmap_names (void) Return a NULL terminated array of known function names. The array is sorted. The array itself is allocated, but not the strings inside. You -should @code{free()} the array when you are done, but not the pointers. +should free the array, but not the pointers, using @code{free} or +@code{rl_free} when you are done. @end deftypefun @deftypefun int rl_add_funmap_entry (const char *name, rl_command_func_t *function) @@ -1077,6 +1097,26 @@ environment variable is used. @node Utility Functions @subsection Utility Functions +@deftypefun int rl_save_state (struct readline_state *sp) +Save a snapshot of Readline's internal state to @var{sp}. +The contents of the @var{readline_state} structure are documented +in @file{readline.h}. +The caller is responsible for allocating the structure. +@end deftypefun + +@deftypefun int rl_restore_state (struct readline_state *sp) +Restore Readline's internal state to that stored in @var{sp}, which must +have been saved by a call to @code{rl_save_state}. +The contents of the @var{readline_state} structure are documented +in @file{readline.h}. +The caller is responsible for freeing the structure. +@end deftypefun + +@deftypefun void rl_free (void *mem) +Deallocate the memory pointed to by @var{mem}. @var{mem} must have been +allocated by @code{malloc}. +@end deftypefun + @deftypefun void rl_replace_line (const char *text, int clear_undo) Replace the contents of @code{rl_line_buffer} with @var{text}. The point and mark are preserved, if possible. @@ -1084,7 +1124,7 @@ If @var{clear_undo} is non-zero, the undo list associated with the current line is cleared. @end deftypefun -@deftypefun int rl_extend_line_buffer (int len) +@deftypefun void rl_extend_line_buffer (int len) Ensure that @code{rl_line_buffer} has enough space to hold @var{len} characters, possibly reallocating it if necessary. @end deftypefun @@ -1394,6 +1434,13 @@ call @code{rl_resize_terminal()} or @code{rl_set_screen_size()} to force Readline to update its idea of the terminal size when a @code{SIGWINCH} is received. +@deftypefun void rl_echo_signal_char (int sig) +If an application wishes to install its own signal handlers, but still +have readline display characters that generate signals, calling this +function with @var{sig} set to @code{SIGINT}, @code{SIGQUIT}, or +@code{SIGTSTP} will display the character generating that signal. +@end deftypefun + @deftypefun void rl_resize_terminal (void) Update Readline's internal screen size by reading values from the kernel. @end deftypefun @@ -1827,6 +1874,15 @@ if the application's completion function returns no matches. It should be set only by an application's completion function. @end deftypevar +@deftypevar int rl_sort_completion_matches +If an application sets this variable to 0, Readline will not sort the +list of completions (which implies that it cannot remove any duplicate +completions). The default value is 1, which means that Readline will +sort the completions and, depending on the value of +@code{rl_ignore_completion_duplicates}, will attempt to remove duplicate +matches. +@end deftypevar + @deftypevar int rl_completion_type Set to a character describing the type of completion Readline is currently attempting; see the description of @code{rl_complete_internal()} @@ -1836,6 +1892,13 @@ completion function is called, allowing such functions to present the same interface as @code{rl_complete()}. @end deftypevar +@deftypevar int rl_completion_invoking_key +Set to the final character in the key sequence that invoked one of the +completion functions that call @code{rl_complete_internal()}. This is +set to the appropriate value before any application-specific completion +function is called. +@end deftypevar + @deftypevar int rl_inhibit_completion If this variable is non-zero, completion is inhibited. The completion character will be inserted as any other bound to @code{self-insert}. @@ -1856,27 +1919,51 @@ history list. GNU Readline library. This application interactively allows users to manipulate files and their modes. */ -#include +#ifdef HAVE_CONFIG_H +# include +#endif + #include -#include +#ifdef HAVE_SYS_FILE_H +# include +#endif #include -#include + +#ifdef HAVE_UNISTD_H +# include +#endif + +#include +#include +#include + +#if defined (HAVE_STRING_H) +# include +#else /* !HAVE_STRING_H */ +# include +#endif /* !HAVE_STRING_H */ + +#ifdef HAVE_STDLIB_H +# include +#endif + +#include #include #include -extern char *xmalloc (); +extern char *xmalloc PARAMS((size_t)); /* The names of functions that actually do the manipulation. */ -int com_list __P((char *)); -int com_view __P((char *)); -int com_rename __P((char *)); -int com_stat __P((char *)); -int com_pwd __P((char *)); -int com_delete __P((char *)); -int com_help __P((char *)); -int com_cd __P((char *)); -int com_quit __P((char *)); +int com_list PARAMS((char *)); +int com_view PARAMS((char *)); +int com_rename PARAMS((char *)); +int com_stat PARAMS((char *)); +int com_pwd PARAMS((char *)); +int com_delete PARAMS((char *)); +int com_help PARAMS((char *)); +int com_cd PARAMS((char *)); +int com_quit PARAMS((char *)); /* A structure which contains information on the commands this program can understand. */ @@ -1909,12 +1996,12 @@ COMMAND *find_command (); /* The name of this program, as taken from argv[0]. */ char *progname; -/* When non-zero, this means the user is done using this program. */ +/* When non-zero, this global means the user is done using this program. */ int done; char * dupstr (s) - int s; + char *s; @{ char *r; @@ -2039,12 +2126,12 @@ stripwhite (string) /* */ /* **************************************************************** */ -char *command_generator __P((const char *, int)); -char **fileman_completion __P((const char *, int, int)); +char *command_generator PARAMS((const char *, int)); +char **fileman_completion PARAMS((const char *, int, int)); -/* Tell the GNU Readline library how to complete. We want to try to - complete on command names if this is the first word in the line, or - on filenames if not. */ +/* Tell the GNU Readline library how to complete. We want to try to complete + on command names if this is the first word in the line, or on filenames + if not. */ initialize_readline () @{ /* Allow conditional parsing of the ~/.inputrc file. */ @@ -2054,11 +2141,11 @@ initialize_readline () rl_attempted_completion_function = fileman_completion; @} -/* Attempt to complete on the contents of TEXT. START and END - bound the region of rl_line_buffer that contains the word to - complete. TEXT is the word to complete. We can use the entire - contents of rl_line_buffer in case we want to do some simple - parsing. Returnthe array of matches, or NULL if there aren't any. */ +/* Attempt to complete on the contents of TEXT. START and END bound the + region of rl_line_buffer that contains the word to complete. TEXT is + the word to complete. We can use the entire contents of rl_line_buffer + in case we want to do some simple parsing. Return the array of matches, + or NULL if there aren't any. */ char ** fileman_completion (text, start, end) const char *text; @@ -2077,9 +2164,9 @@ fileman_completion (text, start, end) return (matches); @} -/* Generator function for command completion. STATE lets us - know whether to start from scratch; without any state - (i.e. STATE == 0), then we start at the top of the list. */ +/* Generator function for command completion. STATE lets us know whether + to start from scratch; without any state (i.e. STATE == 0), then we + start at the top of the list. */ char * command_generator (text, state) const char *text; @@ -2088,17 +2175,16 @@ command_generator (text, state) static int list_index, len; char *name; - /* If this is a new word to complete, initialize now. This - includes saving the length of TEXT for efficiency, and - initializing the index variable to 0. */ + /* If this is a new word to complete, initialize now. This includes + saving the length of TEXT for efficiency, and initializing the index + variable to 0. */ if (!state) @{ list_index = 0; len = strlen (text); @} - /* Return the next name which partially matches from the - command list. */ + /* Return the next name which partially matches from the command list. */ while (name = commands[list_index].name) @{ list_index++; @@ -2138,7 +2224,12 @@ com_view (arg) if (!valid_argument ("view", arg)) return 1; +#if defined (__MSDOS__) + /* more.com doesn't grok slashes in pathnames */ + sprintf (syscom, "less %s", arg); +#else sprintf (syscom, "more %s", arg); +#endif return (system (syscom)); @} @@ -2165,7 +2256,8 @@ com_stat (arg) printf ("Statistics for `%s':\n", arg); - printf ("%s has %d link%s, and is %d byte%s in length.\n", arg, + printf ("%s has %d link%s, and is %d byte%s in length.\n", + arg, finfo.st_nlink, (finfo.st_nlink == 1) ? "" : "s", finfo.st_size, @@ -2254,8 +2346,7 @@ com_pwd (ignore) return 0; @} -/* The user wishes to quit using this program. Just set DONE - non-zero. */ +/* The user wishes to quit using this program. Just set DONE non-zero. */ com_quit (arg) char *arg; @{ @@ -2268,13 +2359,12 @@ too_dangerous (caller) char *caller; @{ fprintf (stderr, - "%s: Too dangerous for me to distribute.\n", + "%s: Too dangerous for me to distribute. Write it yourself.\n", caller); - fprintf (stderr, "Write it yourself.\n"); @} -/* Return non-zero if ARG is a valid argument for CALLER, - else print an error message and return zero. */ +/* Return non-zero if ARG is a valid argument for CALLER, else print + an error message and return zero. */ int valid_argument (caller, arg) char *caller, *arg; diff --git a/lib/readline/doc/rluser.texi b/lib/readline/doc/rluser.texi index 5c6467a9a..4a367ed32 100644 --- a/lib/readline/doc/rluser.texi +++ b/lib/readline/doc/rluser.texi @@ -1,7 +1,6 @@ @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 @@ -10,7 +9,7 @@ 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-2006 Free Software Foundation, Inc. +Copyright (C) 1988--2009 Free Software Foundation, Inc. Authored by Brian Fox and Chet Ramey. @@ -48,6 +47,16 @@ command line editing interface. @ifset BashFeatures Command line editing is provided by the Readline library, which is used by several different programs, including Bash. +Command line editing is enabled by default when using an interactive shell, +unless the @option{--noediting} option is supplied at shell invocation. +Line editing is also used when using the @option{-e} option to the +@code{read} builtin command (@pxref{Bash Builtins}). +By default, the line editing commands are similar to those of emacs. +A vi-style line editing interface is also available. +Line editing can be enabled at any time using the @option{-o emacs} or +@option{-o vi} options to the @code{set} builtin command +(@pxref{The Set Builtin}), or disabled using the @option{+o emacs} or +@option{+o vi} options to @code{set}. @end ifset @menu @@ -427,6 +436,13 @@ If set to @samp{on}, Readline performs filename matching and completion in a case-insensitive fashion. The default value is @samp{off}. +@item completion-prefix-display-length +@vindex completion-prefix-display-length +The length in characters of the common prefix of a list of possible +completions that is displayed without modification. When set to a +value greater than zero, common prefixes longer than this value are +replaced with an ellipsis when displaying possible completions. + @item completion-query-items @vindex completion-query-items The number of possible completions that determines when the user is @@ -471,10 +487,16 @@ attempts word completion. The default is @samp{off}. @item history-preserve-point @vindex history-preserve-point -If set to @samp{on}, the history code attempts to place point at the +If set to @samp{on}, the history code attempts to place the point (the +current cursor position) at the same location on each history line retrieved with @code{previous-history} or @code{next-history}. The default is @samp{off}. +@item history-size +@vindex history-size +Set the maximum number of history entries saved in the history list. If +set to zero, the number of entries in the history list is not limited. + @item horizontal-scroll-mode @vindex horizontal-scroll-mode This variable can be set to either @samp{on} or @samp{off}. Setting it @@ -558,6 +580,13 @@ 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 revert-all-at-newline +@vindex revert-all-at-newline +If set to @samp{on}, Readline will undo all changes to history lines +before returning when @code{accept-line} is executed. By default, +history lines may be modified and retain individual undo lists across +calls to @code{readline}. 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 @@ -941,12 +970,22 @@ Move forward a character. 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. +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. +Move back to the start of the current or previous word. +Words are composed of letters and digits. + +@ifset BashFeatures +@item shell-forward-word () +Move forward to the end of the next word. +Words are delimited by non-quoted shell metacharacters. + +@item shell-backward-word () +Move back to the start of the current or previous word. +Words are delimited by non-quoted shell metacharacters. +@end ifset @item clear-screen (C-l) Clear the screen and redraw the current line, @@ -1142,6 +1181,17 @@ Word boundaries are the same as @code{forward-word}. Kill the word behind point. Word boundaries are the same as @code{backward-word}. +@ifset BashFeatures +@item shell-kill-word () +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{shell-forward-word}. + +@item backward-kill-word () +Kill the word behind point. +Word boundaries are the same as @code{shell-backward-word}. +@end ifset + @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. @@ -1297,6 +1347,11 @@ Attempt completion on the text before point, comparing the text against lines from the history list for possible completion matches. +@item dabbrev-expand () +Attempt menu 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 @@ -1559,9 +1614,9 @@ 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}). +When the command or function is invoked, the @env{COMP_LINE}, +@env{COMP_POINT}, @env{COMP_KEY}, and @env{COMP_TYPE} 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 @@ -1574,7 +1629,7 @@ 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 +@code{compgen} and @code{compopt} builtins described below (@pxref{Programmable Completion Builtins}), to generate the matches. It must put the possible completions in the @env{COMPREPLY} array variable. @@ -1661,10 +1716,10 @@ 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{}]} +@code{complete [-abcdefgjksuv] [-o @var{comp-option}] [-E] [-A @var{action}] [-G @var{globpat}] [-W @var{wordlist}] +[-F @var{function}] [-C @var{command}] [-X @var{filterpat}] +[-P @var{prefix}] [-S @var{suffix}] @var{name} [@var{name} @dots{}]} +@code{complete -pr [-E] [@var{name} @dots{}]} @end example Specify how arguments to each @var{name} should be completed. @@ -1674,6 +1729,9 @@ reused as input. The @option{-r} option removes a completion specification for each @var{name}, or, if no @var{name}s are supplied, all completion specifications. +The @option{-E} option indicates that the remaining options and actions should +apply to ``empty'' command completion; that is, completion attempted on a +blank line. The process of applying these completion specifications when word completion is attempted is described above (@pxref{Programmable Completion}). @@ -1706,9 +1764,10 @@ 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}. +filename-specific processing (like adding a slash to directory names +quoting special characters, or suppressing trailing spaces). +This option is intended to be used with shell functions specified +with @option{-F}. @item nospace Tell Readline not to append a space (the default) to words completed at @@ -1846,5 +1905,23 @@ 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. +@item compopt +@btindex compopt +@example +@code{compopt} [-o @var{option}] [+o @var{option}] [@var{name}] +@end example +Modify completion options for each @var{name} according to the +@var{option}s, or for the currently-execution completion if no @var{name}s +are supplied. +If no @var{option}s are given, display the completion options for each +@var{name} or the current completion. +The possible values of @var{option} are those valid for the @code{complete} +builtin described above. + +The return value is true unless an invalid option is supplied, an attempt +is made to modify the options for a @var{name} for which no completion +specification exists, or an output error occurs. + @end table + @end ifset diff --git a/lib/readline/doc/rluserman.texi b/lib/readline/doc/rluserman.texi index 086aa8385..a473aa276 100644 --- a/lib/readline/doc/rluserman.texi +++ b/lib/readline/doc/rluserman.texi @@ -4,8 +4,6 @@ @settitle GNU Readline Library @comment %**end of header (This is for running Texinfo on a region.) -@setchapternewpage odd - @include version.texi @copying @@ -14,7 +12,7 @@ This manual describes the end user interface of the GNU Readline Library consistency of user interface across discrete programs which provide a command line interface. -Copyright @copyright{} 1988-2006 Free Software Foundation, Inc. +Copyright @copyright{} 1988--2009 Free Software Foundation, Inc. Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice @@ -24,13 +22,14 @@ are preserved on all copies. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no -Invariant Sections, with the Front-Cover texts being ``A GNU Manual,'' +Invariant Sections, with the Front-Cover texts being ``A GNU Manual'', and with the Back-Cover Texts as in (a) below. A copy of the license is -included in the section entitled ``GNU Free Documentation License.'' +included in the section entitled ``GNU Free Documentation License''. + +(a) The FSF's Back-Cover Text is: You are free to copy and modify +this GNU manual. Buying copies from GNU Press supports the FSF in +developing GNU and promoting software freedom.'' -(a) The FSF's Back-Cover Text is: ``You have freedom to copy and modify -this GNU Manual, like GNU software. Copies published by the Free -Software Foundation raise funds for GNU development.'' @end quotation @end copying @@ -70,18 +69,14 @@ programs which provide a command line interface. @menu * Command Line Editing:: GNU Readline User's Manual. -* Copying This Manual:: Copying This Manual. +* GNU Free Documentation License:: License for copying this manual. @end menu @end ifnottex @include rluser.texi -@node Copying This Manual -@appendix Copying This Manual - -@menu -* GNU Free Documentation License:: License for copying this manual. -@end menu +@node GNU Free Documentation License +@appendix GNU Free Documentation License @include fdl.texi diff --git a/lib/readline/doc/version.texi b/lib/readline/doc/version.texi index 654e83777..913a62e0b 100644 --- a/lib/readline/doc/version.texi +++ b/lib/readline/doc/version.texi @@ -1,10 +1,10 @@ @ignore -Copyright (C) 1988-2006 Free Software Foundation, Inc. +Copyright (C) 1988-2009 Free Software Foundation, Inc. @end ignore -@set EDITION 5.2 -@set VERSION 5.2 -@set UPDATED 26 April 2006 -@set UPDATED-MONTH April 2006 +@set EDITION 6.0 +@set VERSION 6.0 +@set UPDATED 28 October 2008 +@set UPDATED-MONTH October 2008 -@set LASTCHANGE Wed Apr 26 09:22:57 EDT 2006 +@set LASTCHANGE Tue Oct 28 11:25:24 EDT 2008 diff --git a/lib/readline/emacs_keymap.c b/lib/readline/emacs_keymap.c index ca9d1343b..cb6e140a2 100644 --- a/lib/readline/emacs_keymap.c +++ b/lib/readline/emacs_keymap.c @@ -1,24 +1,23 @@ /* emacs_keymap.c -- the keymap for emacs_mode in readline (). */ -/* Copyright (C) 1987, 1989, 1992 Free Software Foundation, Inc. +/* Copyright (C) 1987-2009 Free Software Foundation, Inc. - This file is part of the GNU Readline Library, a library for - reading lines of text with interactive input and history editing. + This file is part of the GNU Readline Library (Readline), a library + for reading lines of text with interactive input and history editing. - The GNU Readline Library 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 + Readline is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - The GNU Readline Library 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 + Readline 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. - The GNU General Public License is often shipped with GNU software, and - is generally kept in a file called COPYING or LICENSE. If you do not - have a copy of the license, write to the Free Software Foundation, - 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ + You should have received a copy of the GNU General Public License + along with Readline. If not, see . +*/ #if !defined (BUFSIZ) #include diff --git a/lib/readline/examples/Inputrc b/lib/readline/examples/Inputrc index d7fdb42ef..a358bc476 100644 --- a/lib/readline/examples/Inputrc +++ b/lib/readline/examples/Inputrc @@ -4,21 +4,21 @@ # on which program is running, or what terminal is active. # -# Copyright (C) 1989-2002 Free Software Foundation, Inc. +# Copyright (C) 1989-2009 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 free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. # -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . # -# 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. # In all programs, all terminals, make sure this is bound. "\C-x\C-r": re-read-init-file diff --git a/lib/readline/examples/Makefile b/lib/readline/examples/Makefile index 636a1dc33..2df224071 100644 --- a/lib/readline/examples/Makefile +++ b/lib/readline/examples/Makefile @@ -2,19 +2,19 @@ # # Copyright (C) 1994 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. +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# EXECUTABLES = fileman rltest rl CFLAGS = -g -I../.. -I.. -DREADLINE_LIBRARY diff --git a/lib/readline/examples/fileman.c b/lib/readline/examples/fileman.c index 340eee739..f7eed8a98 100644 --- a/lib/readline/examples/fileman.c +++ b/lib/readline/examples/fileman.c @@ -1,22 +1,23 @@ -/* Copyright (C) 1987-2002 Free Software Foundation, Inc. +/* fileman.c - file manager example for readline library. */ - This file is part of the GNU Readline Library, a library for +/* Copyright (C) 1987-2009 Free Software Foundation, Inc. + + This file is part of the GNU Readline Library (Readline), a library for reading lines of text with interactive input and history editing. - The GNU Readline Library 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 + Readline is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - The GNU Readline Library 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 + Readline 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. - The GNU General Public License is often shipped with GNU software, and - is generally kept in a file called COPYING or LICENSE. If you do not - have a copy of the license, write to the Free Software Foundation, - 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ + You should have received a copy of the GNU General Public License + along with Readline. If not, see . +*/ /* fileman.c -- A tiny application which demonstrates how to use the GNU Readline library. This application interactively allows users @@ -50,6 +51,8 @@ # include #endif +#include + #ifdef READLINE_LIBRARY # include "readline.h" # include "history.h" @@ -58,7 +61,7 @@ # include #endif -extern char *xmalloc (); +extern char *xmalloc PARAMS((size_t)); /* The names of functions that actually do the manipulation. */ int com_list PARAMS((char *)); diff --git a/lib/readline/examples/histexamp.c b/lib/readline/examples/histexamp.c index 4f059c17c..3b43674f7 100644 --- a/lib/readline/examples/histexamp.c +++ b/lib/readline/examples/histexamp.c @@ -1,22 +1,23 @@ -/* Copyright (C) 1987-2002 Free Software Foundation, Inc. +/* histexamp.c - history library example program. */ - This file is part of the GNU Readline Library, a library for +/* Copyright (C) 1987-2009 Free Software Foundation, Inc. + + This file is part of the GNU Readline Library (Readline), a library for reading lines of text with interactive input and history editing. - The GNU Readline Library 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 + Readline is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - The GNU Readline Library 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 + Readline 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. - The GNU General Public License is often shipped with GNU software, and - is generally kept in a file called COPYING or LICENSE. If you do not - have a copy of the license, write to the Free Software Foundation, - 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ + You should have received a copy of the GNU General Public License + along with Readline. If not, see . +*/ #include diff --git a/lib/readline/examples/manexamp.c b/lib/readline/examples/manexamp.c index 9c6cf2c76..351c6285e 100644 --- a/lib/readline/examples/manexamp.c +++ b/lib/readline/examples/manexamp.c @@ -1,24 +1,23 @@ /* manexamp.c -- The examples which appear in the documentation are here. */ -/* Copyright (C) 1987-2002 Free Software Foundation, Inc. +/* Copyright (C) 1987-2009 Free Software Foundation, Inc. - This file is part of the GNU Readline Library, a library for + This file is part of the GNU Readline Library (Readline), a library for reading lines of text with interactive input and history editing. - The GNU Readline Library 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 + Readline is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - The GNU Readline Library 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 + Readline 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. - The GNU General Public License is often shipped with GNU software, and - is generally kept in a file called COPYING or LICENSE. If you do not - have a copy of the license, write to the Free Software Foundation, - 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ + You should have received a copy of the GNU General Public License + along with Readline. If not, see . +*/ #include #include diff --git a/lib/readline/examples/rl.c b/lib/readline/examples/rl.c index c608c15f3..845a4b176 100644 --- a/lib/readline/examples/rl.c +++ b/lib/readline/examples/rl.c @@ -5,25 +5,24 @@ * usage: rl [-p prompt] [-u unit] [-d default] [-n nchars] */ -/* Copyright (C) 1987-2002 Free Software Foundation, Inc. +/* Copyright (C) 1987-2009 Free Software Foundation, Inc. - This file is part of the GNU Readline Library, a library for + This file is part of the GNU Readline Library (Readline), a library for reading lines of text with interactive input and history editing. - The GNU Readline Library 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 + Readline is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - The GNU Readline Library 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 + Readline 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. - The GNU General Public License is often shipped with GNU software, and - is generally kept in a file called COPYING or LICENSE. If you do not - have a copy of the license, write to the Free Software Foundation, - 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ + You should have received a copy of the GNU General Public License + along with Readline. If not, see . +*/ #if defined (HAVE_CONFIG_H) # include diff --git a/lib/readline/examples/rlcat.c b/lib/readline/examples/rlcat.c index 33aea4a30..fa9e06ff7 100644 --- a/lib/readline/examples/rlcat.c +++ b/lib/readline/examples/rlcat.c @@ -4,25 +4,24 @@ * usage: rlcat */ -/* Copyright (C) 1987-2002 Free Software Foundation, Inc. +/* Copyright (C) 1987-2009 Free Software Foundation, Inc. - This file is part of the GNU Readline Library, a library for + This file is part of the GNU Readline Library (Readline), a library for reading lines of text with interactive input and history editing. - The GNU Readline Library 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 + Readline is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - The GNU Readline Library 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 + Readline 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. - The GNU General Public License is often shipped with GNU software, and - is generally kept in a file called COPYING or LICENSE. If you do not - have a copy of the license, write to the Free Software Foundation, - 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ + You should have received a copy of the GNU General Public License + along with Readline. If not, see . +*/ #if defined (HAVE_CONFIG_H) # include diff --git a/lib/readline/examples/rltest.c b/lib/readline/examples/rltest.c index cb67bab80..78e260868 100644 --- a/lib/readline/examples/rltest.c +++ b/lib/readline/examples/rltest.c @@ -4,25 +4,24 @@ /* */ /* **************************************************************** */ -/* Copyright (C) 1987-2002 Free Software Foundation, Inc. +/* Copyright (C) 1987-2009 Free Software Foundation, Inc. - This file is part of the GNU Readline Library, a library for + This file is part of the GNU Readline Library (Readline), a library for reading lines of text with interactive input and history editing. - The GNU Readline Library 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 + Readline is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - The GNU Readline Library 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 + Readline 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. - The GNU General Public License is often shipped with GNU software, and - is generally kept in a file called COPYING or LICENSE. If you do not - have a copy of the license, write to the Free Software Foundation, - 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ + You should have received a copy of the GNU General Public License + along with Readline. If not, see . +*/ #if defined (HAVE_CONFIG_H) #include diff --git a/lib/readline/funmap.c b/lib/readline/funmap.c index 9c760cc34..06d2b9243 100644 --- a/lib/readline/funmap.c +++ b/lib/readline/funmap.c @@ -1,24 +1,24 @@ /* funmap.c -- attach names to functions. */ -/* Copyright (C) 1987, 1989, 1992 Free Software Foundation, Inc. +/* Copyright (C) 1987-2009 Free Software Foundation, Inc. - This file is part of the GNU Readline Library, a library for - reading lines of text with interactive input and history editing. + This file is part of the GNU Readline Library (Readline), a library + for reading lines of text with interactive input and history editing. - The GNU Readline Library 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 + Readline is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - The GNU Readline Library 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 + Readline 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. - The GNU General Public License is often shipped with GNU software, and - is generally kept in a file called COPYING or LICENSE. If you do not - have a copy of the license, write to the Free Software Foundation, - 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ + You should have received a copy of the GNU General Public License + along with Readline. If not, see . +*/ + #define READLINE_LIBRARY #if defined (HAVE_CONFIG_H) @@ -56,7 +56,7 @@ static int funmap_entry; program specific function. */ int funmap_program_specific_entry_start; -static FUNMAP default_funmap[] = { +static const FUNMAP default_funmap[] = { { "abort", rl_abort }, { "accept-line", rl_newline }, { "arrow-key-prefix", rl_arrow_keys }, diff --git a/lib/readline/histexpand.c b/lib/readline/histexpand.c index f46c0b2a4..4de8c0a11 100644 --- a/lib/readline/histexpand.c +++ b/lib/readline/histexpand.c @@ -1,24 +1,23 @@ /* histexpand.c -- history expansion. */ -/* Copyright (C) 1989-2004 Free Software Foundation, Inc. +/* Copyright (C) 1989-2009 Free Software Foundation, Inc. - This file contains the GNU History Library (the Library), a set of + This file contains the GNU History Library (History), a set of routines for managing the text of previously typed lines. - The Library is free software; you can redistribute it and/or modify + History 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. + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - The Library 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. + History 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. - The GNU General Public License is often shipped with GNU software, and - is generally kept in a file called COPYING or LICENSE. If you do not - have a copy of the license, write to the Free Software Foundation, - 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ + You should have received a copy of the GNU General Public License + along with History. If not, see . +*/ #define READLINE_LIBRARY @@ -64,9 +63,11 @@ static int subst_lhs_len; static int subst_rhs_len; static char *get_history_word_specifier PARAMS((char *, char *, int *)); -static char *history_find_word PARAMS((char *, int)); static int history_tokenize_word PARAMS((const char *, int)); +static char **history_tokenize_internal PARAMS((const char *, int, int *)); static char *history_substring PARAMS((const char *, int, int)); +static void freewords PARAMS((char **, int)); +static char *history_find_word PARAMS((char *, int)); static char *quote_breaks PARAMS((char *)); @@ -1569,6 +1570,18 @@ history_tokenize (string) return (history_tokenize_internal (string, -1, (int *)NULL)); } +/* Free members of WORDS from START to an empty string */ +static void +freewords (words, start) + char **words; + int start; +{ + register int i; + + for (i = start; words[i]; i++) + free (words[i]); +} + /* Find and return the word which contains the character at index IND in the history line LINE. Used to save the word matched by the last history !?string? search. */ @@ -1582,12 +1595,16 @@ history_find_word (line, ind) words = history_tokenize_internal (line, ind, &wind); if (wind == -1 || words == 0) - return ((char *)NULL); + { + if (words) + freewords (words, 0); + FREE (words); + return ((char *)NULL); + } s = words[wind]; for (i = 0; i < wind; i++) free (words[i]); - for (i = wind + 1; words[i]; i++) - free (words[i]); + freewords (words, wind + 1); free (words); return s; } diff --git a/lib/readline/histfile.c b/lib/readline/histfile.c index 2f051a325..a75fc16bf 100644 --- a/lib/readline/histfile.c +++ b/lib/readline/histfile.c @@ -1,24 +1,23 @@ /* histfile.c - functions to manipulate the history file. */ -/* Copyright (C) 1989-2003 Free Software Foundation, Inc. +/* Copyright (C) 1989-2009 Free Software Foundation, Inc. - This file contains the GNU History Library (the Library), a set of + This file contains the GNU History Library (History), a set of routines for managing the text of previously typed lines. - The Library is free software; you can redistribute it and/or modify + History 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. + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - The Library 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. + History 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. - The GNU General Public License is often shipped with GNU software, and - is generally kept in a file called COPYING or LICENSE. If you do not - have a copy of the license, write to the Free Software Foundation, - 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ + You should have received a copy of the GNU General Public License + along with History. If not, see . +*/ /* The goal is to make the implementation transparent, so that you don't have to know what data types are used, just what functions @@ -53,7 +52,9 @@ # include #endif -#if defined (__EMX__) || defined (__CYGWIN__) +#include + +#if defined (__EMX__) # undef HAVE_MMAP #endif @@ -103,7 +104,7 @@ int history_write_timestamps = 0; /* Does S look like the beginning of a history timestamp entry? Placeholder for more extensive tests. */ -#define HIST_TIMESTAMP_START(s) (*(s) == history_comment_char) +#define HIST_TIMESTAMP_START(s) (*(s) == history_comment_char && isdigit ((s)[1]) ) /* Return the string that should be used in the place of this filename. This only matters when you don't specify the diff --git a/lib/readline/histlib.h b/lib/readline/histlib.h index c39af7181..c938a109c 100644 --- a/lib/readline/histlib.h +++ b/lib/readline/histlib.h @@ -1,23 +1,23 @@ /* histlib.h -- internal definitions for the history library. */ -/* Copyright (C) 1989, 1992 Free Software Foundation, Inc. - This file contains the GNU History Library (the Library), a set of +/* Copyright (C) 1989-2009 Free Software Foundation, Inc. + + This file contains the GNU History Library (History), a set of routines for managing the text of previously typed lines. - The Library is free software; you can redistribute it and/or modify + History 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. - - The Library 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. - - The GNU General Public License is often shipped with GNU software, and - is generally kept in a file called COPYING or LICENSE. If you do not - have a copy of the license, write to the Free Software Foundation, - 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + History 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 History. If not, see . +*/ #if !defined (_HISTLIB_H_) #define _HISTLIB_H_ diff --git a/lib/readline/history.c b/lib/readline/history.c index 1ccf4db78..8e613bbdd 100644 --- a/lib/readline/history.c +++ b/lib/readline/history.c @@ -1,24 +1,23 @@ /* history.c -- standalone history library */ -/* Copyright (C) 1989-2005 Free Software Foundation, Inc. +/* Copyright (C) 1989-2009 Free Software Foundation, Inc. - This file contains the GNU History Library (the Library), a set of + This file contains the GNU History Library (History), a set of routines for managing the text of previously typed lines. - The Library is free software; you can redistribute it and/or modify + History 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. + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - The Library 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. + History 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. - The GNU General Public License is often shipped with GNU software, and - is generally kept in a file called COPYING or LICENSE. If you do not - have a copy of the license, write to the Free Software Foundation, - 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ + You should have received a copy of the GNU General Public License + along with History. If not, see . +*/ /* The goal is to make the implementation transparent, so that you don't have to know what data types are used, just what functions @@ -158,7 +157,7 @@ history_set_pos (pos) return (1); } -/* Return the current history array. The caller has to be carefull, since this +/* Return the current history array. The caller has to be careful, since this is the actual array of data, and could be bashed or made corrupt easily. The array is terminated with a NULL pointer. */ HIST_ENTRY ** @@ -319,6 +318,8 @@ add_history_time (string) { HIST_ENTRY *hs; + if (string == 0) + return; hs = the_history[history_length - 1]; FREE (hs->timestamp); hs->timestamp = savestring (string); @@ -483,7 +484,7 @@ stifle_history (max) /* Stop stifling the history. This returns the previous maximum number of history entries. The value is positive if the history - was stifled, negative if it wasn't. */ + was stifled, negative if it wasn't. */ int unstifle_history () { diff --git a/lib/readline/history.h b/lib/readline/history.h index 14ca2a996..1257e66c3 100644 --- a/lib/readline/history.h +++ b/lib/readline/history.h @@ -1,23 +1,23 @@ /* history.h -- the names of functions that you can call in history. */ -/* Copyright (C) 1989-2003 Free Software Foundation, Inc. - This file contains the GNU History Library (the Library), a set of +/* Copyright (C) 1989-2009 Free Software Foundation, Inc. + + This file contains the GNU History Library (History), a set of routines for managing the text of previously typed lines. - The Library is free software; you can redistribute it and/or modify + History 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. - - The Library 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. - - The GNU General Public License is often shipped with GNU software, and - is generally kept in a file called COPYING or LICENSE. If you do not - have a copy of the license, write to the Free Software Foundation, - 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + History 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 History. If not, see . +*/ #ifndef _HISTORY_H_ #define _HISTORY_H_ diff --git a/lib/readline/histsearch.c b/lib/readline/histsearch.c index 1cc5875a4..1ad55d22d 100644 --- a/lib/readline/histsearch.c +++ b/lib/readline/histsearch.c @@ -1,24 +1,23 @@ /* histsearch.c -- searching the history list. */ -/* Copyright (C) 1989, 1992 Free Software Foundation, Inc. +/* Copyright (C) 1989, 1992-2009 Free Software Foundation, Inc. - This file contains the GNU History Library (the Library), a set of + This file contains the GNU History Library (History), a set of routines for managing the text of previously typed lines. - The Library is free software; you can redistribute it and/or modify + History 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. - - The Library 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. - - The GNU General Public License is often shipped with GNU software, and - is generally kept in a file called COPYING or LICENSE. If you do not - have a copy of the license, write to the Free Software Foundation, - 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + History 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 History. If not, see . +*/ #define READLINE_LIBRARY diff --git a/lib/readline/input.c b/lib/readline/input.c index 4206a3e52..93fbdc0ee 100644 --- a/lib/readline/input.c +++ b/lib/readline/input.c @@ -1,24 +1,24 @@ /* input.c -- character input functions for readline. */ -/* Copyright (C) 1994-2005 Free Software Foundation, Inc. +/* Copyright (C) 1994-2009 Free Software Foundation, Inc. - This file is part of the GNU Readline Library, a library for - reading lines of text with interactive input and history editing. + This file is part of the GNU Readline Library (Readline), a library + for reading lines of text with interactive input and history editing. - The GNU Readline Library 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 + Readline is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - The GNU Readline Library 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 + Readline 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. - The GNU General Public License is often shipped with GNU software, and - is generally kept in a file called COPYING or LICENSE. If you do not - have a copy of the license, write to the Free Software Foundation, - 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ + You should have received a copy of the GNU General Public License + along with Readline. If not, see . +*/ + #define READLINE_LIBRARY #if defined (__TANDEM) @@ -358,7 +358,7 @@ _rl_insert_typein (c) string[i] = '\0'; rl_insert_text (string); - free (string); + xfree (string); } /* Add KEY to the buffer of characters to be read. Returns 1 if the diff --git a/lib/readline/isearch.c b/lib/readline/isearch.c index 2ed459f1c..b359dc05c 100644 --- a/lib/readline/isearch.c +++ b/lib/readline/isearch.c @@ -1,29 +1,30 @@ +/* isearch.c - incremental searching */ + /* **************************************************************** */ /* */ /* I-Search and Searching */ /* */ /* **************************************************************** */ -/* Copyright (C) 1987-2005 Free Software Foundation, Inc. +/* Copyright (C) 1987-2009 Free Software Foundation, Inc. - This file contains the Readline Library (the Library), a set of - routines for providing Emacs style line input to programs that ask - for it. + This file is part of the GNU Readline Library (Readline), a library + for reading lines of text with interactive input and history editing. - The Library is free software; you can redistribute it and/or modify + Readline 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. - - The Library 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. - - The GNU General Public License is often shipped with GNU software, and - is generally kept in a file called COPYING or LICENSE. If you do not - have a copy of the license, write to the Free Software Foundation, - 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Readline 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 Readline. If not, see . +*/ + #define READLINE_LIBRARY #if defined (HAVE_CONFIG_H) @@ -75,7 +76,7 @@ static int _rl_isearch_cleanup PARAMS((_rl_search_cxt *, int)); static char *last_isearch_string; static int last_isearch_string_len; -static char *default_isearch_terminators = "\033\012"; +static char * const default_isearch_terminators = "\033\012"; _rl_search_cxt * _rl_scxt_alloc (type, flags) @@ -125,7 +126,7 @@ _rl_scxt_dispose (cxt, flags) FREE (cxt->allocated_line); FREE (cxt->lines); - free (cxt); + xfree (cxt); } /* Search backwards through the history looking for a string which is typed @@ -192,7 +193,7 @@ rl_display_search (search_string, reverse_p, where) strcpy (message + msglen, "': "); rl_message ("%s", message); - free (message); + xfree (message); (*rl_redisplay_function) (); } diff --git a/lib/readline/keymaps.c b/lib/readline/keymaps.c index 70d0cc08d..a033d5ecd 100644 --- a/lib/readline/keymaps.c +++ b/lib/readline/keymaps.c @@ -1,23 +1,24 @@ /* keymaps.c -- Functions and keymaps for the GNU Readline library. */ -/* Copyright (C) 1988,1989 Free Software Foundation, Inc. +/* Copyright (C) 1988,1989-2009 Free Software Foundation, Inc. - This file is part of GNU Readline, a library for reading lines - of text with interactive input and history editing. + This file is part of the GNU Readline Library (Readline), a library + for reading lines of text with interactive input and history editing. - Readline 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. + Readline is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Readline 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. + Readline 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 Readline; see the file COPYING. If not, write to the Free - Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ + along with Readline. If not, see . +*/ + #define READLINE_LIBRARY #if defined (HAVE_CONFIG_H) diff --git a/lib/readline/keymaps.h b/lib/readline/keymaps.h index 66fa2a5ec..6c4611d3e 100644 --- a/lib/readline/keymaps.h +++ b/lib/readline/keymaps.h @@ -2,23 +2,22 @@ /* Copyright (C) 1987, 1989, 1992 Free Software Foundation, Inc. - This file is part of the GNU Readline Library, a library for - reading lines of text with interactive input and history editing. + This file is part of the GNU Readline Library (Readline), a library + for reading lines of text with interactive input and history editing. - The GNU Readline Library 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 + Readline is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - The GNU Readline Library 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 + Readline 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. - The GNU General Public License is often shipped with GNU software, and - is generally kept in a file called COPYING or LICENSE. If you do not - have a copy of the license, write to the Free Software Foundation, - 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ + You should have received a copy of the GNU General Public License + along with Readline. If not, see . +*/ #ifndef _KEYMAPS_H_ #define _KEYMAPS_H_ diff --git a/lib/readline/kill.c b/lib/readline/kill.c index 031ddf47c..a4d6d1482 100644 --- a/lib/readline/kill.c +++ b/lib/readline/kill.c @@ -2,23 +2,23 @@ /* Copyright (C) 1994 Free Software Foundation, Inc. - This file is part of the GNU Readline Library, a library for - reading lines of text with interactive input and history editing. + This file is part of the GNU Readline Library (Readline), a library + for reading lines of text with interactive input and history editing. - The GNU Readline Library 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 + Readline is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - The GNU Readline Library 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 + Readline 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. - The GNU General Public License is often shipped with GNU software, and - is generally kept in a file called COPYING or LICENSE. If you do not - have a copy of the license, write to the Free Software Foundation, - 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ + You should have received a copy of the GNU General Public License + along with Readline. If not, see . +*/ + #define READLINE_LIBRARY #if defined (HAVE_CONFIG_H) @@ -115,7 +115,7 @@ _rl_copy_to_kill_ring (text, append) if (slot == rl_max_kills) { register int i; - free (rl_kill_ring[0]); + xfree (rl_kill_ring[0]); for (i = 0; i < slot; i++) rl_kill_ring[i] = rl_kill_ring[i + 1]; } @@ -146,7 +146,7 @@ _rl_copy_to_kill_ring (text, append) strcpy (new, text); strcat (new, old); } - free (old); + xfree (old); free (text); rl_kill_ring[slot] = new; } @@ -686,7 +686,7 @@ rl_paste_from_clipboard (count, key) _rl_set_mark_at_pos (rl_point); rl_insert_text (ptr); if (ptr != data) - free (ptr); + xfree (ptr); CloseClipboard (); } return (0); diff --git a/lib/readline/macro.c b/lib/readline/macro.c index 00cd58d62..c2fac8add 100644 --- a/lib/readline/macro.c +++ b/lib/readline/macro.c @@ -1,24 +1,24 @@ /* macro.c -- keyboard macros for readline. */ -/* Copyright (C) 1994 Free Software Foundation, Inc. +/* Copyright (C) 1994-2009 Free Software Foundation, Inc. - This file is part of the GNU Readline Library, a library for - reading lines of text with interactive input and history editing. + This file is part of the GNU Readline Library (Readline), a library + for reading lines of text with interactive input and history editing. - The GNU Readline Library 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 + Readline is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - The GNU Readline Library 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 + Readline 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. - The GNU General Public License is often shipped with GNU software, and - is generally kept in a file called COPYING or LICENSE. If you do not - have a copy of the license, write to the Free Software Foundation, - 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ + You should have received a copy of the GNU General Public License + along with Readline. If not, see . +*/ + #define READLINE_LIBRARY #if defined (HAVE_CONFIG_H) @@ -152,7 +152,7 @@ _rl_pop_executing_macro () rl_executing_macro = macro_list->string; executing_macro_index = macro_list->sindex; macro_list = macro_list->next; - free (macro); + xfree (macro); } if (rl_executing_macro == 0) @@ -181,7 +181,7 @@ _rl_kill_kbd_macro () { if (current_macro) { - free (current_macro); + xfree (current_macro); current_macro = (char *) NULL; } current_macro_size = current_macro_index = 0; diff --git a/lib/readline/mbutil.c b/lib/readline/mbutil.c index 17dde53ed..858842e62 100644 --- a/lib/readline/mbutil.c +++ b/lib/readline/mbutil.c @@ -1,24 +1,24 @@ /* mbutil.c -- readline multibyte character utility functions */ -/* Copyright (C) 2001-2005 Free Software Foundation, Inc. +/* Copyright (C) 2001-2009 Free Software Foundation, Inc. - This file is part of the GNU Readline Library, a library for - reading lines of text with interactive input and history editing. + This file is part of the GNU Readline Library (Readline), a library + for reading lines of text with interactive input and history editing. - The GNU Readline Library 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 + Readline is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - The GNU Readline Library 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 + Readline 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. - The GNU General Public License is often shipped with GNU software, and - is generally kept in a file called COPYING or LICENSE. If you do not - have a copy of the license, write to the Free Software Foundation, - 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ + You should have received a copy of the GNU General Public License + along with Readline. If not, see . +*/ + #define READLINE_LIBRARY #if defined (HAVE_CONFIG_H) @@ -91,8 +91,9 @@ _rl_find_next_mbchar_internal (string, seed, count, find_non_zero) return seed; point = seed + _rl_adjust_point (string, seed, &ps); - /* if this is true, means that seed was not pointed character - started byte. So correct the point and consume count */ + /* if this is true, means that seed was not pointing to a byte indicating + the beginning of a multibyte character. Correct the point and consume + one char. */ if (seed < point) count--; @@ -101,7 +102,7 @@ _rl_find_next_mbchar_internal (string, seed, count, find_non_zero) tmp = mbrtowc (&wc, string+point, strlen(string + point), &ps); if (MB_INVALIDCH ((size_t)tmp)) { - /* invalid bytes. asume a byte represents a character */ + /* invalid bytes. assume a byte represents a character */ point++; count--; /* reset states. */ @@ -128,12 +129,10 @@ _rl_find_next_mbchar_internal (string, seed, count, find_non_zero) if (find_non_zero) { tmp = mbrtowc (&wc, string + point, strlen (string + point), &ps); - while (tmp > 0 && wcwidth (wc) == 0) + while (MB_NULLWCH (tmp) == 0 && MB_INVALIDCH (tmp) == 0 && wcwidth (wc) == 0) { point += tmp; tmp = mbrtowc (&wc, string + point, strlen (string + point), &ps); - if (MB_NULLWCH (tmp) || MB_INVALIDCH (tmp)) - break; } } diff --git a/lib/readline/misc.c b/lib/readline/misc.c index e9c72c50c..12ae4a536 100644 --- a/lib/readline/misc.c +++ b/lib/readline/misc.c @@ -1,24 +1,24 @@ /* misc.c -- miscellaneous bindable readline functions. */ -/* Copyright (C) 1987-2005 Free Software Foundation, Inc. +/* Copyright (C) 1987-2009 Free Software Foundation, Inc. - This file is part of the GNU Readline Library, a library for - reading lines of text with interactive input and history editing. + This file is part of the GNU Readline Library (Readline), a library + for reading lines of text with interactive input and history editing. - The GNU Readline Library 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 + Readline is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - The GNU Readline Library 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 + Readline 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. - The GNU General Public License is often shipped with GNU software, and - is generally kept in a file called COPYING or LICENSE. If you do not - have a copy of the license, write to the Free Software Foundation, - 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ + You should have received a copy of the GNU General Public License + along with Readline. If not, see . +*/ + #define READLINE_LIBRARY #if defined (HAVE_CONFIG_H) @@ -431,6 +431,56 @@ rl_replace_from_history (entry, flags) rl_mark = rl_end; } #endif +} + +/* Process and free undo lists attached to each history entry prior to the + current entry, inclusive, reverting each line to its saved state. This + is destructive, and state about the current line is lost. This is not + intended to be called while actively editing, and the current line is + not assumed to have been added to the history list. */ +void +_rl_revert_all_lines () +{ + int hpos; + HIST_ENTRY *entry; + UNDO_LIST *ul, *saved_undo_list; + char *lbuf; + + lbuf = savestring (rl_line_buffer); + saved_undo_list = rl_undo_list; + hpos = where_history (); + + entry = (hpos == history_length) ? previous_history () : current_history (); + while (entry) + { + if (ul = (UNDO_LIST *)entry->data) + { + if (ul == saved_undo_list) + saved_undo_list = 0; + /* Set up rl_line_buffer and other variables from history entry */ + rl_replace_from_history (entry, 0); /* entry->line is now current */ + /* Undo all changes to this history entry */ + while (rl_undo_list) + rl_do_undo (); + /* And copy the reverted line back to the history entry, preserving + the timestamp. */ + FREE (entry->line); + entry->line = savestring (rl_line_buffer); + entry->data = 0; + } + entry = previous_history (); + } + + /* Restore history state */ + rl_undo_list = saved_undo_list; /* may have been set to null */ + history_set_pos (hpos); + + /* reset the line buffer */ + rl_replace_line (lbuf, 0); + _rl_set_the_line (); + + /* and clean up */ + free (lbuf); } /* **************************************************************** */ @@ -560,7 +610,7 @@ rl_vi_editing_mode (count, key) #if defined (VI_MODE) _rl_set_insert_mode (RL_IM_INSERT, 1); /* vi mode ignores insert mode */ rl_editing_mode = vi_mode; - rl_vi_insertion_mode (1, key); + rl_vi_insert_mode (1, key); #endif /* VI_MODE */ return 0; diff --git a/lib/readline/nls.c b/lib/readline/nls.c index bcee87561..7f10f0151 100644 --- a/lib/readline/nls.c +++ b/lib/readline/nls.c @@ -1,24 +1,24 @@ /* nls.c -- skeletal internationalization code. */ -/* Copyright (C) 1996 Free Software Foundation, Inc. +/* Copyright (C) 1996-2009 Free Software Foundation, Inc. - This file is part of the GNU Readline Library, a library for - reading lines of text with interactive input and history editing. + This file is part of the GNU Readline Library (Readline), a library + for reading lines of text with interactive input and history editing. - The GNU Readline Library 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 + Readline is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - The GNU Readline Library 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 + Readline 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. - The GNU General Public License is often shipped with GNU software, and - is generally kept in a file called COPYING or LICENSE. If you do not - have a copy of the license, write to the Free Software Foundation, - 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ + You should have received a copy of the GNU General Public License + along with Readline. If not, see . +*/ + #define READLINE_LIBRARY #if defined (HAVE_CONFIG_H) diff --git a/lib/readline/parens.c b/lib/readline/parens.c index 737f7675e..f15d26f16 100644 --- a/lib/readline/parens.c +++ b/lib/readline/parens.c @@ -1,24 +1,24 @@ -/* parens.c -- Implementation of matching parentheses feature. */ +/* parens.c -- implementation of matching parentheses feature. */ -/* Copyright (C) 1987, 1989, 1992 Free Software Foundation, Inc. +/* Copyright (C) 1987, 1989, 1992-2009 Free Software Foundation, Inc. - This file is part of the GNU Readline Library, a library for - reading lines of text with interactive input and history editing. + This file is part of the GNU Readline Library (Readline), a library + for reading lines of text with interactive input and history editing. - The GNU Readline Library 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 + Readline is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - The GNU Readline Library 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 + Readline 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. - The GNU General Public License is often shipped with GNU software, and - is generally kept in a file called COPYING or LICENSE. If you do not - have a copy of the license, write to the Free Software Foundation, - 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ + You should have received a copy of the GNU General Public License + along with Readline. If not, see . +*/ + #define READLINE_LIBRARY #if defined (__TANDEM) diff --git a/lib/readline/posixdir.h b/lib/readline/posixdir.h index 91f6d9611..bd33694db 100644 --- a/lib/readline/posixdir.h +++ b/lib/readline/posixdir.h @@ -4,19 +4,19 @@ 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public - License for more details. + 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. */ + along with Bash. If not, see . +*/ /* This file should be included instead of or . */ diff --git a/lib/readline/posixjmp.h b/lib/readline/posixjmp.h index b52aa0033..49bfecf33 100644 --- a/lib/readline/posixjmp.h +++ b/lib/readline/posixjmp.h @@ -4,19 +4,19 @@ 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public - License for more details. + 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. */ + along with Bash. If not, see . +*/ #ifndef _POSIXJMP_H_ #define _POSIXJMP_H_ diff --git a/lib/readline/posixstat.h b/lib/readline/posixstat.h index c93b52887..3eb7f2906 100644 --- a/lib/readline/posixstat.h +++ b/lib/readline/posixstat.h @@ -5,19 +5,19 @@ 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public - License for more details. + 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. */ + along with Bash. If not, see . +*/ /* This file should be included instead of . It relies on the local sys/stat.h to work though. */ diff --git a/lib/readline/readline.c b/lib/readline/readline.c index bd4d26376..a7179ccf1 100644 --- a/lib/readline/readline.c +++ b/lib/readline/readline.c @@ -1,25 +1,25 @@ /* readline.c -- a general facility for reading lines of input with emacs style editing and completion. */ -/* Copyright (C) 1987-2005 Free Software Foundation, Inc. +/* Copyright (C) 1987-2009 Free Software Foundation, Inc. - This file is part of the GNU Readline Library, a library for - reading lines of text with interactive input and history editing. + This file is part of the GNU Readline Library (Readline), a library + for reading lines of text with interactive input and history editing. - The GNU Readline Library 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 + Readline is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - The GNU Readline Library 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 + Readline 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. - The GNU General Public License is often shipped with GNU software, and - is generally kept in a file called COPYING or LICENSE. If you do not - have a copy of the license, write to the Free Software Foundation, - 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ + You should have received a copy of the GNU General Public License + along with Readline. If not, see . +*/ + #define READLINE_LIBRARY #if defined (HAVE_CONFIG_H) @@ -163,7 +163,7 @@ int rl_done; rl_command_func_t *rl_last_func = (rl_command_func_t *)NULL; /* Top level environment for readline_internal (). */ -procenv_t readline_top_level; +procenv_t _rl_top_level; /* The streams we interact with. */ FILE *_rl_in_stream, *_rl_out_stream; @@ -176,7 +176,7 @@ FILE *rl_outstream = (FILE *)NULL; set to 1 if there is a controlling terminal, we can get its attributes, and the attributes include `echo'. Look at rltty.c:prepare_terminal_settings for the code that sets it. */ -int readline_echoing_p = 0; +int _rl_echoing_p = 0; /* Current prompt. */ char *rl_prompt = (char *)NULL; @@ -270,6 +270,11 @@ int _rl_output_meta_chars = 0; them to equivalent readline functions at startup. */ int _rl_bind_stty_chars = 1; +/* Non-zero means to go through the history list at every newline (or + whenever rl_done is set and readline returns) and revert each line to + its initial state. */ +int _rl_revert_all_at_newline = 0; + /* **************************************************************** */ /* */ /* Top Level Functions */ @@ -300,6 +305,9 @@ readline (prompt) const char *prompt; { char *value; +#if 0 + int in_callback; +#endif /* If we are at EOF return a NULL string. */ if (rl_pending_input == EOF) @@ -308,6 +316,15 @@ readline (prompt) return ((char *)NULL); } +#if 0 + /* If readline() is called after installing a callback handler, temporarily + turn off the callback state to avoid ensuing messiness. Patch supplied + by the gdb folks. XXX -- disabled. This can be fooled and readline + left in a strange state by a poorly-timed longjmp. */ + if (in_callback = RL_ISSTATE (RL_STATE_CALLBACK)) + RL_UNSETSTATE (RL_STATE_CALLBACK); +#endif + rl_set_prompt (prompt); rl_initialize (); @@ -326,6 +343,11 @@ readline (prompt) rl_clear_signals (); #endif +#if 0 + if (in_callback) + RL_SETSTATE (RL_STATE_CALLBACK); +#endif + return (value); } @@ -349,7 +371,7 @@ readline_internal_setup () /* If we're not echoing, we still want to at least print a prompt, because rl_redisplay will not do it for us. If the calling application has a custom redisplay function, though, let that function handle it. */ - if (readline_echoing_p == 0 && rl_redisplay_function == rl_redisplay) + if (_rl_echoing_p == 0 && rl_redisplay_function == rl_redisplay) { if (rl_prompt && rl_already_prompted == 0) { @@ -370,7 +392,7 @@ readline_internal_setup () #if defined (VI_MODE) if (rl_editing_mode == vi_mode) - rl_vi_insertion_mode (1, 'i'); + rl_vi_insert_mode (1, 'i'); #endif /* VI_MODE */ if (rl_pre_input_hook) @@ -399,6 +421,9 @@ readline_internal_teardown (eof) free (temp); } + if (_rl_revert_all_at_newline) + _rl_revert_all_lines (); + /* At any rate, it is highly likely that this line has an undo list. Get rid of it now. */ if (rl_undo_list) @@ -459,7 +484,7 @@ readline_internal_charloop () #endif lk = _rl_last_command_was_kill; - code = setjmp (readline_top_level); + code = setjmp (_rl_top_level); if (code) { @@ -467,7 +492,7 @@ readline_internal_charloop () _rl_want_redisplay = 0; /* If we get here, we're not being called from something dispatched from _rl_callback_read_char(), which sets up its own value of - readline_top_level (saving and restoring the old, of course), so + _rl_top_level (saving and restoring the old, of course), so we can just return here. */ if (RL_ISSTATE (RL_STATE_CALLBACK)) return (0); diff --git a/lib/readline/readline.h b/lib/readline/readline.h index b71bf98d2..ba0d5d624 100644 --- a/lib/readline/readline.h +++ b/lib/readline/readline.h @@ -1,24 +1,23 @@ /* Readline.h -- the names of functions callable from within readline. */ -/* Copyright (C) 1987-2005 Free Software Foundation, Inc. +/* Copyright (C) 1987-2009 Free Software Foundation, Inc. - This file is part of the GNU Readline Library, a library for - reading lines of text with interactive input and history editing. + This file is part of the GNU Readline Library (Readline), a library + for reading lines of text with interactive input and history editing. - The GNU Readline Library 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 + Readline is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - The GNU Readline Library 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 + Readline 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. - The GNU General Public License is often shipped with GNU software, and - is generally kept in a file called COPYING or LICENSE. If you do not - have a copy of the license, write to the Free Software Foundation, - 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ + You should have received a copy of the GNU General Public License + along with Readline. If not, see . +*/ #if !defined (_READLINE_H_) #define _READLINE_H_ @@ -40,9 +39,9 @@ extern "C" { #endif /* Hex-encoded Readline version number. */ -#define RL_READLINE_VERSION 0x0502 /* Readline 5.2 */ -#define RL_VERSION_MAJOR 5 -#define RL_VERSION_MINOR 2 +#define RL_READLINE_VERSION 0x0600 /* Readline 6.0 */ +#define RL_VERSION_MAJOR 6 +#define RL_VERSION_MINOR 0 /* Readline data structures. */ @@ -233,6 +232,7 @@ extern int rl_vi_append_mode PARAMS((int, int)); extern int rl_vi_append_eol PARAMS((int, int)); extern int rl_vi_eof_maybe PARAMS((int, int)); extern int rl_vi_insertion_mode PARAMS((int, int)); +extern int rl_vi_insert_mode PARAMS((int, int)); extern int rl_vi_movement_mode PARAMS((int, int)); extern int rl_vi_arg_digit PARAMS((int, int)); extern int rl_vi_change_case PARAMS((int, int)); @@ -420,6 +420,7 @@ extern int rl_set_keyboard_input_timeout PARAMS((int)); extern void rl_extend_line_buffer PARAMS((int)); extern int rl_ding PARAMS((void)); extern int rl_alphabetic PARAMS((int)); +extern void rl_free PARAMS((void *)); /* Readline signal handling, from signals.c */ extern int rl_set_signals PARAMS((void)); @@ -427,7 +428,9 @@ extern int rl_clear_signals PARAMS((void)); extern void rl_cleanup_after_signal PARAMS((void)); extern void rl_reset_after_signal PARAMS((void)); extern void rl_free_line_state PARAMS((void)); - + +extern void rl_echo_signal_char PARAMS((int)); + extern int rl_set_paren_blink_timeout PARAMS((int)); /* Undocumented. */ @@ -493,6 +496,10 @@ extern const char *rl_readline_name; readline (), and should not be assigned to directly. */ extern char *rl_prompt; +/* The prompt string that is actually displayed by rl_redisplay. Public so + applications can more easily supply their own redisplay functions. */ +extern char *rl_display_prompt; + /* The line buffer that is in use. */ extern char *rl_line_buffer; @@ -599,6 +606,10 @@ extern int rl_catch_sigwinch; filename completer. */ extern rl_compentry_func_t *rl_completion_entry_function; +/* Optional generator for menu completion. Default is + rl_completion_entry_function (rl_filename_completion_function). */ + extern rl_compentry_func_t *rl_menu_completion_entry_function; + /* If rl_ignore_some_completions_function is non-NULL it is the address of a function to call after all of the possible matches have been generated, but before the actual completion is done to the input line. @@ -713,6 +724,9 @@ extern int rl_attempted_completion_over; functions. */ extern int rl_completion_type; +/* Set to the last key used to invoke one of the completion functions */ +extern int rl_completion_invoking_key; + /* Up to this many items will be displayed in response to a possible-completions call. After that, we ask the user if she is sure she wants to see them all. The default value is 100. */ @@ -739,6 +753,9 @@ extern int rl_completion_found_quote; application-specific completion function. */ extern int rl_completion_suppress_quote; +/* If non-zero, readline will sort the completion matches. On by default. */ +extern int rl_sort_completion_matches; + /* If non-zero, a slash will be appended to completed filenames that are symbolic links to directory names, subject to the value of the mark-directories variable (which is user-settable). This exists so diff --git a/lib/readline/rlconf.h b/lib/readline/rlconf.h index ff3929e0b..39f94dbc0 100644 --- a/lib/readline/rlconf.h +++ b/lib/readline/rlconf.h @@ -1,25 +1,23 @@ /* rlconf.h -- readline configuration definitions */ -/* Copyright (C) 1994 Free Software Foundation, Inc. +/* Copyright (C) 1992-2009 Free Software Foundation, Inc. - This file contains the Readline Library (the Library), a set of - routines for providing Emacs style line input to programs that ask - for it. + This file is part of the GNU Readline Library (Readline), a library + for reading lines of text with interactive input and history editing. - The Library is free software; you can redistribute it and/or modify + Readline 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. - - The Library 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. - - The GNU General Public License is often shipped with GNU software, and - is generally kept in a file called COPYING or LICENSE. If you do not - have a copy of the license, write to the Free Software Foundation, - 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Readline 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 Readline. If not, see . +*/ #if !defined (_RLCONF_H_) #define _RLCONF_H_ diff --git a/lib/readline/rldefs.h b/lib/readline/rldefs.h index 0f6c87446..025775466 100644 --- a/lib/readline/rldefs.h +++ b/lib/readline/rldefs.h @@ -2,26 +2,24 @@ for readline. This should be included after any files that define system-specific constants like _POSIX_VERSION or USG. */ -/* Copyright (C) 1987-2005 Free Software Foundation, Inc. +/* Copyright (C) 1987-2009 Free Software Foundation, Inc. - This file contains the Readline Library (the Library), a set of - routines for providing Emacs style line input to programs that ask - for it. + This file is part of the GNU Readline Library (Readline), a library + for reading lines of text with interactive input and history editing. - The Library is free software; you can redistribute it and/or modify + Readline 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. + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - The Library 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. + Readline 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. - The GNU General Public License is often shipped with GNU software, and - is generally kept in a file called COPYING or LICENSE. If you do not - have a copy of the license, write to the Free Software Foundation, - 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ + You should have received a copy of the GNU General Public License + along with Readline. If not, see . +*/ #if !defined (_RLDEFS_H_) #define _RLDEFS_H_ @@ -32,6 +30,10 @@ #include "rlstdc.h" +#if defined (STRCOLL_BROKEN) +# undef HAVE_STRCOLL +#endif + #if defined (_POSIX_VERSION) && !defined (TERMIOS_MISSING) # define TERMIOS_TTY_DRIVER #else diff --git a/lib/readline/rlmbutil.h b/lib/readline/rlmbutil.h index dd317e2a0..7716a70cc 100644 --- a/lib/readline/rlmbutil.h +++ b/lib/readline/rlmbutil.h @@ -1,24 +1,23 @@ /* rlmbutil.h -- utility functions for multibyte characters. */ -/* Copyright (C) 2001 Free Software Foundation, Inc. +/* Copyright (C) 2001-2009 Free Software Foundation, Inc. - This file is part of the GNU Readline Library, a library for - reading lines of text with interactive input and history editing. + This file is part of the GNU Readline Library (Readline), a library + for reading lines of text with interactive input and history editing. - The GNU Readline Library 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 + Readline is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - The GNU Readline Library 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 + Readline 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. - The GNU General Public License is often shipped with GNU software, and - is generally kept in a file called COPYING or LICENSE. If you do not - have a copy of the license, write to the Free Software Foundation, - 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ + You should have received a copy of the GNU General Public License + along with Readline. If not, see . +*/ #if !defined (_RL_MBUTIL_H_) #define _RL_MBUTIL_H_ diff --git a/lib/readline/rlprivate.h b/lib/readline/rlprivate.h index 64aa7bdd3..2a0abf97f 100644 --- a/lib/readline/rlprivate.h +++ b/lib/readline/rlprivate.h @@ -1,25 +1,24 @@ /* rlprivate.h -- functions and variables global to the readline library, but not intended for use by applications. */ -/* Copyright (C) 1999-2005 Free Software Foundation, Inc. +/* Copyright (C) 1999-2009 Free Software Foundation, Inc. - This file is part of the GNU Readline Library, a library for - reading lines of text with interactive input and history editing. + This file is part of the GNU Readline Library (Readline), a library + for reading lines of text with interactive input and history editing. - The GNU Readline Library 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 + Readline is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - The GNU Readline Library 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 + Readline 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. - The GNU General Public License is often shipped with GNU software, and - is generally kept in a file called COPYING or LICENSE. If you do not - have a copy of the license, write to the Free Software Foundation, - 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ + You should have received a copy of the GNU General Public License + along with Readline. If not, see . +*/ #if !defined (_RL_PRIVATE_H_) #define _RL_PRIVATE_H_ @@ -28,6 +27,16 @@ #include "rlstdc.h" #include "posixjmp.h" /* defines procenv_t */ +/************************************************************************* + * * + * Convenience definitions * + * * + *************************************************************************/ + +#define EMACS_MODE() (rl_editing_mode == emacs_mode) +#define VI_COMMAND_MODE() (rl_editing_mode == vi_mode && _rl_keymap == vi_movement_keymap) +#define VI_INSERT_MODE() (rl_editing_mode == vi_mode && _rl_keymap == vi_insertion_keymap) + /************************************************************************* * * * Global structs undocumented in texinfo manual and not in readline.h * @@ -139,12 +148,9 @@ extern int rl_visible_stats; extern int rl_line_buffer_len; extern int rl_arg_sign; extern int rl_visible_prompt_length; -extern int readline_echoing_p; extern int rl_key_sequence_length; extern int rl_byte_oriented; -extern _rl_keyseq_cxt *_rl_kscxt; - /* display.c */ extern int rl_display_fixed; @@ -206,6 +212,7 @@ extern void _rl_callback_data_dispose PARAMS((_rl_callback_generic_arg *)); /* bind.c */ /* complete.c */ +extern void _rl_reset_completion_state PARAMS((void)); extern char _rl_find_completion_word PARAMS((int *, int *)); extern void _rl_free_match_list PARAMS((char **)); @@ -261,6 +268,8 @@ extern void _rl_start_using_history PARAMS((void)); extern int _rl_free_saved_history_line PARAMS((void)); extern void _rl_set_insert_mode PARAMS((int, int)); +extern void _rl_revert_all_lines PARAMS((void)); + /* nls.c */ extern int _rl_init_eightbit PARAMS((void)); @@ -281,6 +290,10 @@ extern int _rl_restore_tty_signals PARAMS((void)); /* search.c */ extern int _rl_nsearch_callback PARAMS((_rl_search_cxt *)); +/* signals.c */ +extern void _rl_block_sigint PARAMS((void)); +extern void _rl_release_sigint PARAMS((void)); + /* terminal.c */ extern void _rl_get_screen_size PARAMS((int, int)); extern int _rl_init_terminal_io PARAMS((const char *)); @@ -314,6 +327,18 @@ extern UNDO_LIST *_rl_copy_undo_entry PARAMS((UNDO_LIST *)); extern UNDO_LIST *_rl_copy_undo_list PARAMS((UNDO_LIST *)); /* util.c */ +#if defined (USE_VARARGS) && defined (PREFER_STDARG) +extern void _rl_ttymsg (const char *, ...) __attribute__((__format__ (printf, 1, 2))); +extern void _rl_errmsg (const char *, ...) __attribute__((__format__ (printf, 1, 2))); +extern void _rl_trace (const char *, ...) __attribute__((__format__ (printf, 1, 2))); +#else +extern void _rl_ttymsg (); +extern void _rl_errmsg (); +extern void _rl_trace (); +#endif + +extern int _rl_tropen PARAMS((void)); + extern int _rl_abort_internal PARAMS((void)); extern char *_rl_strindex PARAMS((const char *, const char *)); extern int _rl_qsort_string_compare PARAMS((char **, char **)); @@ -337,8 +362,8 @@ extern void _rl_vi_done_inserting PARAMS((void)); *************************************************************************/ /* bind.c */ -extern const char *_rl_possible_control_prefixes[]; -extern const char *_rl_possible_meta_prefixes[]; +extern const char * const _rl_possible_control_prefixes[]; +extern const char * const _rl_possible_meta_prefixes[]; /* callback.c */ extern _rl_callback_func_t *_rl_callback_func; @@ -349,6 +374,7 @@ extern int _rl_complete_show_all; extern int _rl_complete_show_unmodified; extern int _rl_complete_mark_directories; extern int _rl_complete_mark_symlink_dirs; +extern int _rl_completion_prefix_display_length; extern int _rl_print_completions_horizontally; extern int _rl_completion_case_fold; extern int _rl_match_hidden_files; @@ -359,7 +385,6 @@ extern int _rl_vis_botlin; extern int _rl_last_c_pos; extern int _rl_suppress_redisplay; extern int _rl_want_redisplay; -extern char *rl_display_prompt; /* isearch.c */ extern char *_rl_isearch_terminators; @@ -376,6 +401,7 @@ extern int _rl_history_saved_point; extern _rl_arg_cxt _rl_argcxt; /* readline.c */ +extern int _rl_echoing_p; extern int _rl_horizontal_scroll_mode; extern int _rl_mark_modified_lines; extern int _rl_bell_preference; @@ -383,6 +409,7 @@ extern int _rl_meta_flag; extern int _rl_convert_meta_chars_to_ascii; extern int _rl_output_meta_chars; extern int _rl_bind_stty_chars; +extern int _rl_revert_all_at_newline; extern char *_rl_comment_begin; extern unsigned char _rl_parsing_conditionalized_out; extern Keymap _rl_keymap; @@ -390,11 +417,19 @@ extern FILE *_rl_in_stream; extern FILE *_rl_out_stream; extern int _rl_last_command_was_kill; extern int _rl_eof_char; -extern procenv_t readline_top_level; +extern procenv_t _rl_top_level; +extern _rl_keyseq_cxt *_rl_kscxt; /* search.c */ extern _rl_search_cxt *_rl_nscxt; +/* signals.c */ +extern int _rl_echoctl; + +extern int _rl_intr_char; +extern int _rl_quit_char; +extern int _rl_susp_char; + /* terminal.c */ extern int _rl_enable_keypad; extern int _rl_enable_meta; diff --git a/lib/readline/rlshell.h b/lib/readline/rlshell.h index 3c03fbad5..3e17d8bc7 100644 --- a/lib/readline/rlshell.h +++ b/lib/readline/rlshell.h @@ -1,24 +1,23 @@ /* rlshell.h -- utility functions normally provided by bash. */ -/* Copyright (C) 1999 Free Software Foundation, Inc. +/* Copyright (C) 1999-2009 Free Software Foundation, Inc. - This file is part of the GNU Readline Library, a library for - reading lines of text with interactive input and history editing. + This file is part of the GNU Readline Library (Readline), a library + for reading lines of text with interactive input and history editing. - The GNU Readline Library 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 + Readline is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - The GNU Readline Library 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 + Readline 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. - The GNU General Public License is often shipped with GNU software, and - is generally kept in a file called COPYING or LICENSE. If you do not - have a copy of the license, write to the Free Software Foundation, - 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ + You should have received a copy of the GNU General Public License + along with Readline. If not, see . +*/ #if !defined (_RL_SHELL_H_) #define _RL_SHELL_H_ diff --git a/lib/readline/rlstdc.h b/lib/readline/rlstdc.h index 847fa9c26..a6d23942a 100644 --- a/lib/readline/rlstdc.h +++ b/lib/readline/rlstdc.h @@ -1,23 +1,23 @@ -/* stdc.h -- macros to make source compile on both ANSI C and K&R C - compilers. */ +/* stdc.h -- macros to make source compile on both ANSI C and K&R C compilers. */ -/* Copyright (C) 1993 Free Software Foundation, Inc. +/* Copyright (C) 1993-2009 Free Software Foundation, Inc. - This file is part of GNU Bash, the Bourne Again SHell. + This file is part of the GNU Readline Library (Readline), a library + for reading lines of text with interactive input and history editing. - 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. + Readline is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public - License for more details. + Readline 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. */ + along with Readline. If not, see . +*/ #if !defined (_RL_STDC_H_) #define _RL_STDC_H_ diff --git a/lib/readline/rltty.c b/lib/readline/rltty.c index 0a570f858..61f910358 100644 --- a/lib/readline/rltty.c +++ b/lib/readline/rltty.c @@ -3,23 +3,23 @@ /* Copyright (C) 1992-2005 Free Software Foundation, Inc. - This file is part of the GNU Readline Library, a library for - reading lines of text with interactive input and history editing. + This file is part of the GNU Readline Library (Readline), a library + for reading lines of text with interactive input and history editing. - The GNU Readline Library 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 + Readline is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - The GNU Readline Library 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 + Readline 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. - The GNU General Public License is often shipped with GNU software, and - is generally kept in a file called COPYING or LICENSE. If you do not - have a copy of the license, write to the Free Software Foundation, - 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ + You should have received a copy of the GNU General Public License + along with Readline. If not, see . +*/ + #define READLINE_LIBRARY #if defined (HAVE_CONFIG_H) @@ -52,75 +52,8 @@ extern int errno; rl_vintfunc_t *rl_prep_term_function = rl_prep_terminal; rl_voidfunc_t *rl_deprep_term_function = rl_deprep_terminal; -static void block_sigint PARAMS((void)); -static void release_sigint PARAMS((void)); - static void set_winsize PARAMS((int)); -/* **************************************************************** */ -/* */ -/* Signal Management */ -/* */ -/* **************************************************************** */ - -#if defined (HAVE_POSIX_SIGNALS) -static sigset_t sigint_set, sigint_oset; -#else /* !HAVE_POSIX_SIGNALS */ -# if defined (HAVE_BSD_SIGNALS) -static int sigint_oldmask; -# endif /* HAVE_BSD_SIGNALS */ -#endif /* !HAVE_POSIX_SIGNALS */ - -static int sigint_blocked; - -/* Cause SIGINT to not be delivered until the corresponding call to - release_sigint(). */ -static void -block_sigint () -{ - if (sigint_blocked) - return; - -#if defined (HAVE_POSIX_SIGNALS) - sigemptyset (&sigint_set); - sigemptyset (&sigint_oset); - sigaddset (&sigint_set, SIGINT); - sigprocmask (SIG_BLOCK, &sigint_set, &sigint_oset); -#else /* !HAVE_POSIX_SIGNALS */ -# if defined (HAVE_BSD_SIGNALS) - sigint_oldmask = sigblock (sigmask (SIGINT)); -# else /* !HAVE_BSD_SIGNALS */ -# if defined (HAVE_USG_SIGHOLD) - sighold (SIGINT); -# endif /* HAVE_USG_SIGHOLD */ -# endif /* !HAVE_BSD_SIGNALS */ -#endif /* !HAVE_POSIX_SIGNALS */ - - sigint_blocked = 1; -} - -/* Allow SIGINT to be delivered. */ -static void -release_sigint () -{ - if (sigint_blocked == 0) - return; - -#if defined (HAVE_POSIX_SIGNALS) - sigprocmask (SIG_SETMASK, &sigint_oset, (sigset_t *)NULL); -#else -# if defined (HAVE_BSD_SIGNALS) - sigsetmask (sigint_oldmask); -# else /* !HAVE_BSD_SIGNALS */ -# if defined (HAVE_USG_SIGHOLD) - sigrelse (SIGINT); -# endif /* HAVE_USG_SIGHOLD */ -# endif /* !HAVE_BSD_SIGNALS */ -#endif /* !HAVE_POSIX_SIGNALS */ - - sigint_blocked = 0; -} - /* **************************************************************** */ /* */ /* Saving and Restoring the TTY */ @@ -204,8 +137,9 @@ save_tty_chars (tiop) if (tiop->flags & TCHARS_SET) { - _rl_tty_chars.t_intr = tiop->tchars.t_intrc; - _rl_tty_chars.t_quit = tiop->tchars.t_quitc; + _rl_intr_char = _rl_tty_chars.t_intr = tiop->tchars.t_intrc; + _rl_quit_char = _rl_tty_chars.t_quit = tiop->tchars.t_quitc; + _rl_tty_chars.t_start = tiop->tchars.t_startc; _rl_tty_chars.t_stop = tiop->tchars.t_stopc; _rl_tty_chars.t_eof = tiop->tchars.t_eofc; @@ -215,7 +149,8 @@ save_tty_chars (tiop) if (tiop->flags & LTCHARS_SET) { - _rl_tty_chars.t_susp = tiop->ltchars.t_suspc; + _rl_susp_char = _rl_tty_chars.t_susp = tiop->ltchars.t_suspc; + _rl_tty_chars.t_dsusp = tiop->ltchars.t_dsuspc; _rl_tty_chars.t_reprint = tiop->ltchars.t_rprntc; _rl_tty_chars.t_flush = tiop->ltchars.t_flushc; @@ -268,7 +203,7 @@ set_tty_settings (tty, tiop) ioctl (tty, TIOCSETN, &(tiop->sgttyb)); tiop->flags &= ~SGTTY_SET; } - readline_echoing_p = 1; + _rl_echoing_p = 1; #if defined (TIOCLSET) if (tiop->flags & LFLAG_SET) @@ -302,7 +237,8 @@ prepare_terminal_settings (meta_flag, oldtio, tiop) int meta_flag; TIOTYPE oldtio, *tiop; { - readline_echoing_p = (oldtio.sgttyb.sg_flags & ECHO); + _rl_echoing_p = (oldtio.sgttyb.sg_flags & ECHO); + _rl_echoctl = (oldtio.sgttyb.sg_flags & ECHOCTL); /* Copy the original settings to the structure we're going to use for our settings. */ @@ -433,10 +369,10 @@ save_tty_chars (tiop) #ifdef VREPRINT _rl_tty_chars.t_reprint = tiop->c_cc[VREPRINT]; #endif - _rl_tty_chars.t_intr = tiop->c_cc[VINTR]; - _rl_tty_chars.t_quit = tiop->c_cc[VQUIT]; + _rl_intr_char = _rl_tty_chars.t_intr = tiop->c_cc[VINTR]; + _rl_quit_char = _rl_tty_chars.t_quit = tiop->c_cc[VQUIT]; #ifdef VSUSP - _rl_tty_chars.t_susp = tiop->c_cc[VSUSP]; + _rl_susp_char = _rl_tty_chars.t_susp = tiop->c_cc[VSUSP]; #endif #ifdef VDSUSP _rl_tty_chars.t_dsusp = tiop->c_cc[VDSUSP]; @@ -464,7 +400,7 @@ static void rltty_warning (msg) char *msg; { - fprintf (stderr, "readline: warning: %s\n", msg); + _rl_errmsg ("warning: %s", msg); } #endif @@ -475,7 +411,7 @@ TIOTYPE *tp; { if ((tp->c_oflag & OPOST) == 0) { - rltty_warning ("turning on OPOST for terminal\r"); + _rl_errmsg ("warning: turning on OPOST for terminal\r"); tp->c_oflag |= OPOST|ONLCR; } } @@ -500,8 +436,8 @@ _get_tty_settings (tty, tiop) } if (OUTPUT_BEING_FLUSHED (tiop)) { -#if defined (FLUSHO) && defined (_AIX41) - rltty_warning ("turning off output flushing"); +#if defined (FLUSHO) + _rl_errmsg ("warning: turning off output flushing"); tiop->c_lflag &= ~FLUSHO; break; #else @@ -580,7 +516,8 @@ prepare_terminal_settings (meta_flag, oldtio, tiop) int meta_flag; TIOTYPE oldtio, *tiop; { - readline_echoing_p = (oldtio.c_lflag & ECHO); + _rl_echoing_p = (oldtio.c_lflag & ECHO); + _rl_echoctl = (oldtio.c_lflag & ECHOCTL); tiop->c_lflag &= ~(ICANON | ECHO); @@ -643,7 +580,7 @@ void rl_prep_terminal (meta_flag) int meta_flag; { - readline_echoing_p = 1; + _rl_echoing_p = 1; } void @@ -663,20 +600,22 @@ rl_prep_terminal (meta_flag) return; /* Try to keep this function from being INTerrupted. */ - block_sigint (); + _rl_block_sigint (); tty = fileno (rl_instream); if (get_tty_settings (tty, &tio) < 0) { #if defined (ENOTSUP) - /* MacOS X, at least, lies about the value of errno if tcgetattr fails. */ - if (errno == ENOTTY || errno == ENOTSUP) + /* MacOS X and Linux, at least, lie about the value of errno if + tcgetattr fails. */ + if (errno == ENOTTY || errno == EINVAL || errno == ENOTSUP) #else - if (errno == ENOTTY) + if (errno == ENOTTY || errno == EINVAL) #endif - readline_echoing_p = 1; /* XXX */ - release_sigint (); + _rl_echoing_p = 1; /* XXX */ + + _rl_release_sigint (); return; } @@ -711,7 +650,7 @@ rl_prep_terminal (meta_flag) if (set_tty_settings (tty, &tio) < 0) { - release_sigint (); + _rl_release_sigint (); return; } @@ -722,7 +661,7 @@ rl_prep_terminal (meta_flag) terminal_prepped = 1; RL_SETSTATE(RL_STATE_TERMPREPPED); - release_sigint (); + _rl_release_sigint (); } /* Restore the terminal's normal settings and modes. */ @@ -735,7 +674,7 @@ rl_deprep_terminal () return; /* Try to keep this function from being interrupted. */ - block_sigint (); + _rl_block_sigint (); tty = fileno (rl_instream); @@ -746,14 +685,14 @@ rl_deprep_terminal () if (set_tty_settings (tty, &otio) < 0) { - release_sigint (); + _rl_release_sigint (); return; } terminal_prepped = 0; RL_UNSETSTATE(RL_STATE_TERMPREPPED); - release_sigint (); + _rl_release_sigint (); } #endif /* !NO_TTY_DRIVER */ @@ -862,7 +801,7 @@ set_special_char (kmap, tiop, sc, func) } #define RESET_SPECIAL(c) \ - if (c != -1 && kmap[(unsigned char)c].type == ISFUNC) + if (c != -1 && kmap[(unsigned char)c].type == ISFUNC) \ kmap[(unsigned char)c].function = rl_insert; static void diff --git a/lib/readline/rltty.h b/lib/readline/rltty.h index 142e96b6a..5bcc946b2 100644 --- a/lib/readline/rltty.h +++ b/lib/readline/rltty.h @@ -1,25 +1,23 @@ /* rltty.h - tty driver-related definitions used by some library files. */ -/* Copyright (C) 1995 Free Software Foundation, Inc. +/* Copyright (C) 1995-2009 Free Software Foundation, Inc. - This file contains the Readline Library (the Library), a set of - routines for providing Emacs style line input to programs that ask - for it. + This file is part of the GNU Readline Library (Readline), a library + for reading lines of text with interactive input and history editing. - The Library is free software; you can redistribute it and/or modify + Readline 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. + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - The Library 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. + Readline 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. - The GNU General Public License is often shipped with GNU software, and - is generally kept in a file called COPYING or LICENSE. If you do not - have a copy of the license, write to the Free Software Foundation, - 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ + You should have received a copy of the GNU General Public License + along with Readline. If not, see . +*/ #if !defined (_RLTTY_H_) #define _RLTTY_H_ diff --git a/lib/readline/rltypedefs.h b/lib/readline/rltypedefs.h index 862bdb8e4..60f29a18b 100644 --- a/lib/readline/rltypedefs.h +++ b/lib/readline/rltypedefs.h @@ -1,24 +1,23 @@ /* rltypedefs.h -- Type declarations for readline functions. */ -/* Copyright (C) 2000-2004 Free Software Foundation, Inc. +/* Copyright (C) 2000-2009 Free Software Foundation, Inc. - This file is part of the GNU Readline Library, a library for - reading lines of text with interactive input and history editing. + This file is part of the GNU Readline Library (Readline), a library + for reading lines of text with interactive input and history editing. - The GNU Readline Library 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 + Readline is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - The GNU Readline Library 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 + Readline 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. - The GNU General Public License is often shipped with GNU software, and - is generally kept in a file called COPYING or LICENSE. If you do not - have a copy of the license, write to the Free Software Foundation, - 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ + You should have received a copy of the GNU General Public License + along with Readline. If not, see . +*/ #ifndef _RL_TYPEDEFS_H_ #define _RL_TYPEDEFS_H_ diff --git a/lib/readline/rlwinsize.h b/lib/readline/rlwinsize.h index 7838154d0..d198fcf87 100644 --- a/lib/readline/rlwinsize.h +++ b/lib/readline/rlwinsize.h @@ -1,26 +1,24 @@ /* rlwinsize.h -- an attempt to isolate some of the system-specific defines for `struct winsize' and TIOCGWINSZ. */ -/* Copyright (C) 1997 Free Software Foundation, Inc. +/* Copyright (C) 1997-2009 Free Software Foundation, Inc. - This file contains the Readline Library (the Library), a set of - routines for providing Emacs style line input to programs that ask - for it. + This file is part of the GNU Readline Library (Readline), a library + for reading lines of text with interactive input and history editing. - The Library is free software; you can redistribute it and/or modify + Readline 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. + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - The Library 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. + Readline 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. - The GNU General Public License is often shipped with GNU software, and - is generally kept in a file called COPYING or LICENSE. If you do not - have a copy of the license, write to the Free Software Foundation, - 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ + You should have received a copy of the GNU General Public License + along with Readline. If not, see . +*/ #if !defined (_RLWINSIZE_H_) #define _RLWINSIZE_H_ @@ -53,5 +51,8 @@ # endif /* HAVE_SYS_PTE_H */ #endif /* !STRUCT_WINSIZE_IN_TERMIOS && !STRUCT_WINSIZE_IN_SYS_IOCTL */ -#endif /* _RL_WINSIZE_H */ +#if defined (M_UNIX) && !defined (_SCO_DS) && !defined (tcflow) +# define tcflow(fd, action) ioctl(fd, TCXONC, action) +#endif +#endif /* _RL_WINSIZE_H */ diff --git a/lib/readline/savestring.c b/lib/readline/savestring.c index 820428d88..63f467a06 100644 --- a/lib/readline/savestring.c +++ b/lib/readline/savestring.c @@ -1,24 +1,24 @@ -/* savestring.c */ +/* savestring.c - function version of savestring for backwards compatibility */ /* Copyright (C) 1998,2003 Free Software Foundation, Inc. - This file is part of the GNU Readline Library, a library for - reading lines of text with interactive input and history editing. + This file is part of the GNU Readline Library (Readline), a library + for reading lines of text with interactive input and history editing. - The GNU Readline Library 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 + Readline is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - The GNU Readline Library 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 + Readline 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. - The GNU General Public License is often shipped with GNU software, and - is generally kept in a file called COPYING or LICENSE. If you do not - have a copy of the license, write to the Free Software Foundation, - 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ + You should have received a copy of the GNU General Public License + along with Readline. If not, see . +*/ + #define READLINE_LIBRARY #include diff --git a/lib/readline/search.c b/lib/readline/search.c index 33cc4fc1e..82984f19d 100644 --- a/lib/readline/search.c +++ b/lib/readline/search.c @@ -1,25 +1,24 @@ /* search.c - code for non-incremental searching in emacs and vi modes. */ -/* Copyright (C) 1992-2005 Free Software Foundation, Inc. +/* Copyright (C) 1992-2009 Free Software Foundation, Inc. - This file is part of the Readline Library (the Library), a set of - routines for providing Emacs style line input to programs that ask - for it. + This file is part of the GNU Readline Library (Readline), a library + for reading lines of text with interactive input and history editing. - The Library is free software; you can redistribute it and/or modify + Readline 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. - - The Library 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. - - The GNU General Public License is often shipped with GNU software, and - is generally kept in a file called COPYING or LICENSE. If you do not - have a copy of the license, write to the Free Software Foundation, - 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Readline 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 Readline. If not, see . +*/ + #define READLINE_LIBRARY #if defined (HAVE_CONFIG_H) diff --git a/lib/readline/shell.c b/lib/readline/shell.c index 346f8113d..18b4f03a7 100644 --- a/lib/readline/shell.c +++ b/lib/readline/shell.c @@ -1,25 +1,25 @@ /* shell.c -- readline utility functions that are normally provided by bash when readline is linked as part of the shell. */ -/* Copyright (C) 1997 Free Software Foundation, Inc. +/* Copyright (C) 1997-2009 Free Software Foundation, Inc. - This file is part of the GNU Readline Library, a library for - reading lines of text with interactive input and history editing. + This file is part of the GNU Readline Library (Readline), a library + for reading lines of text with interactive input and history editing. - The GNU Readline Library 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 + Readline is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - The GNU Readline Library 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 + Readline 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. - The GNU General Public License is often shipped with GNU software, and - is generally kept in a file called COPYING or LICENSE. If you do not - have a copy of the license, write to the Free Software Foundation, - 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ + You should have received a copy of the GNU General Public License + along with Readline. If not, see . +*/ + #define READLINE_LIBRARY #if defined (HAVE_CONFIG_H) diff --git a/lib/readline/signals.c b/lib/readline/signals.c index 54f2a6428..48dd885fb 100644 --- a/lib/readline/signals.c +++ b/lib/readline/signals.c @@ -1,24 +1,24 @@ /* signals.c -- signal handling support for readline. */ -/* Copyright (C) 1987-2005 Free Software Foundation, Inc. +/* Copyright (C) 1987-2009 Free Software Foundation, Inc. - This file is part of the GNU Readline Library, a library for - reading lines of text with interactive input and history editing. + This file is part of the GNU Readline Library (Readline), a library + for reading lines of text with interactive input and history editing. - The GNU Readline Library 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 + Readline is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - The GNU Readline Library 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 + Readline 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. - The GNU General Public License is often shipped with GNU software, and - is generally kept in a file called COPYING or LICENSE. If you do not - have a copy of the license, write to the Free Software Foundation, - 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ + You should have received a copy of the GNU General Public License + along with Readline. If not, see . +*/ + #define READLINE_LIBRARY #if defined (HAVE_CONFIG_H) @@ -40,13 +40,14 @@ # include #endif /* GWINSZ_IN_SYS_IOCTL */ -#if defined (HANDLE_SIGNALS) /* Some standard library routines. */ #include "readline.h" #include "history.h" #include "rlprivate.h" +#if defined (HANDLE_SIGNALS) + #if !defined (RETSIGTYPE) # if defined (VOID_SIGHANDLER) # define RETSIGTYPE void @@ -93,6 +94,14 @@ int rl_catch_sigwinch = 1; int rl_catch_sigwinch = 0; /* for the readline state struct in readline.c */ #endif +/* Private variables. */ +/* If non-zero, print characters corresponding to received signals. */ +int _rl_echoctl = 0; + +int _rl_intr_char = 0; +int _rl_quit_char = 0; +int _rl_susp_char = 0; + static int signals_set_flag; static int sigwinch_set_flag; @@ -142,6 +151,7 @@ rl_signal_handler (sig) switch (sig) { case SIGINT: + _rl_reset_completion_state (); rl_free_line_state (); /* FALLTHROUGH */ @@ -157,6 +167,7 @@ rl_signal_handler (sig) #if defined (SIGQUIT) case SIGQUIT: #endif + rl_echo_signal_char (sig); rl_cleanup_after_signal (); #if defined (HAVE_POSIX_SIGNALS) @@ -252,7 +263,11 @@ rl_set_sighandler (sig, handler, ohandler) struct sigaction act; act.sa_handler = handler; +# if defined (SIGWINCH) act.sa_flags = (sig == SIGWINCH) ? SA_RESTART : 0; +# else + act.sa_flags = 0; +# endif /* SIGWINCH */ sigemptyset (&act.sa_mask); sigemptyset (&ohandler->sa_mask); sigaction (sig, &act, &old_handler); @@ -300,7 +315,7 @@ rl_set_signals () sigemptyset (&bset); sigaddset (&bset, SIGINT); - sigaddset (&bset, SIGINT); + sigaddset (&bset, SIGTERM); #if defined (SIGQUIT) sigaddset (&bset, SIGQUIT); #endif @@ -464,3 +479,105 @@ rl_free_line_state () } #endif /* HANDLE_SIGNALS */ + +/* **************************************************************** */ +/* */ +/* SIGINT Management */ +/* */ +/* **************************************************************** */ + +#if defined (HAVE_POSIX_SIGNALS) +static sigset_t sigint_set, sigint_oset; +#else /* !HAVE_POSIX_SIGNALS */ +# if defined (HAVE_BSD_SIGNALS) +static int sigint_oldmask; +# endif /* HAVE_BSD_SIGNALS */ +#endif /* !HAVE_POSIX_SIGNALS */ + +static int sigint_blocked; + +/* Cause SIGINT to not be delivered until the corresponding call to + release_sigint(). */ +void +_rl_block_sigint () +{ + if (sigint_blocked) + return; + +#if defined (HAVE_POSIX_SIGNALS) + sigemptyset (&sigint_set); + sigemptyset (&sigint_oset); + sigaddset (&sigint_set, SIGINT); + sigprocmask (SIG_BLOCK, &sigint_set, &sigint_oset); +#else /* !HAVE_POSIX_SIGNALS */ +# if defined (HAVE_BSD_SIGNALS) + sigint_oldmask = sigblock (sigmask (SIGINT)); +# else /* !HAVE_BSD_SIGNALS */ +# if defined (HAVE_USG_SIGHOLD) + sighold (SIGINT); +# endif /* HAVE_USG_SIGHOLD */ +# endif /* !HAVE_BSD_SIGNALS */ +#endif /* !HAVE_POSIX_SIGNALS */ + + sigint_blocked = 1; +} + +/* Allow SIGINT to be delivered. */ +void +_rl_release_sigint () +{ + if (sigint_blocked == 0) + return; + +#if defined (HAVE_POSIX_SIGNALS) + sigprocmask (SIG_SETMASK, &sigint_oset, (sigset_t *)NULL); +#else +# if defined (HAVE_BSD_SIGNALS) + sigsetmask (sigint_oldmask); +# else /* !HAVE_BSD_SIGNALS */ +# if defined (HAVE_USG_SIGHOLD) + sigrelse (SIGINT); +# endif /* HAVE_USG_SIGHOLD */ +# endif /* !HAVE_BSD_SIGNALS */ +#endif /* !HAVE_POSIX_SIGNALS */ + + sigint_blocked = 0; +} + +/* **************************************************************** */ +/* */ +/* Echoing special control characters */ +/* */ +/* **************************************************************** */ +void +rl_echo_signal_char (sig) + int sig; +{ + char cstr[3]; + int cslen, c; + + if (_rl_echoctl == 0) + return; + + switch (sig) + { + case SIGINT: c = _rl_intr_char; break; + case SIGQUIT: c = _rl_quit_char; break; + case SIGTSTP: c = _rl_susp_char; break; + default: return; + } + + if (CTRL_CHAR (c) || c == RUBOUT) + { + cstr[0] = '^'; + cstr[1] = CTRL_CHAR (c) ? UNCTRL (c) : '?'; + cstr[cslen = 2] = '\0'; + } + else + { + cstr[0] = c; + cstr[cslen = 1] = '\0'; + } + + _rl_output_some_chars (cstr, cslen); +} diff --git a/lib/readline/tcap.h b/lib/readline/tcap.h index 58ab894d9..9d09b7a9c 100644 --- a/lib/readline/tcap.h +++ b/lib/readline/tcap.h @@ -1,25 +1,23 @@ /* tcap.h -- termcap library functions and variables. */ -/* Copyright (C) 1996 Free Software Foundation, Inc. +/* Copyright (C) 1996-2009 Free Software Foundation, Inc. - This file contains the Readline Library (the Library), a set of - routines for providing Emacs style line input to programs that ask - for it. + This file is part of the GNU Readline Library (Readline), a library + for reading lines of text with interactive input and history editing. - The Library is free software; you can redistribute it and/or modify + Readline 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. - - The Library 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. - - The GNU General Public License is often shipped with GNU software, and - is generally kept in a file called COPYING or LICENSE. If you do not - have a copy of the license, write to the Free Software Foundation, - 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Readline 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 Readline. If not, see . +*/ #if !defined (_RLTCAP_H_) #define _RLTCAP_H_ diff --git a/lib/readline/terminal.c b/lib/readline/terminal.c index 547f6f5df..87fdf1012 100644 --- a/lib/readline/terminal.c +++ b/lib/readline/terminal.c @@ -1,24 +1,24 @@ /* terminal.c -- controlling the terminal with termcap. */ -/* Copyright (C) 1996-2006 Free Software Foundation, Inc. +/* Copyright (C) 1996-2009 Free Software Foundation, Inc. - This file is part of the GNU Readline Library, a library for - reading lines of text with interactive input and history editing. + This file is part of the GNU Readline Library (Readline), a library + for reading lines of text with interactive input and history editing. - The GNU Readline Library 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 + Readline is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - The GNU Readline Library 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 + Readline 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. - The GNU General Public License is often shipped with GNU software, and - is generally kept in a file called COPYING or LICENSE. If you do not - have a copy of the license, write to the Free Software Foundation, - 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ + You should have received a copy of the GNU General Public License + along with Readline. If not, see . +*/ + #define READLINE_LIBRARY #if defined (HAVE_CONFIG_H) @@ -350,7 +350,7 @@ rl_reset_screen_size () void rl_resize_terminal () { - if (readline_echoing_p) + if (_rl_echoing_p) { _rl_get_screen_size (fileno (rl_instream), 1); if (CUSTOM_REDISPLAY_FUNC ()) @@ -361,13 +361,13 @@ rl_resize_terminal () } struct _tc_string { - const char *tc_var; + const char * const tc_var; char **tc_value; }; /* This should be kept sorted, just in case we decide to change the search algorithm to something smarter. */ -static struct _tc_string tc_strings[] = +static const struct _tc_string tc_strings[] = { { "@7", &_rl_term_at7 }, { "DC", &_rl_term_DC }, @@ -641,10 +641,10 @@ _rl_backspace (count) int rl_crlf () { -#if defined (NEW_TTY_DRIVER) +#if defined (NEW_TTY_DRIVER) || defined (__MINT__) if (_rl_term_cr) tputs (_rl_term_cr, 1, _rl_output_character_function); -#endif /* NEW_TTY_DRIVER */ +#endif /* NEW_TTY_DRIVER || __MINT__ */ putc ('\n', _rl_out_stream); return 0; } @@ -653,7 +653,7 @@ rl_crlf () int rl_ding () { - if (readline_echoing_p) + if (_rl_echoing_p) { switch (_rl_bell_preference) { diff --git a/lib/readline/text.c b/lib/readline/text.c index cb2f5ad20..652b306b4 100644 --- a/lib/readline/text.c +++ b/lib/readline/text.c @@ -1,24 +1,24 @@ /* text.c -- text handling commands for readline. */ -/* Copyright (C) 1987-2005 Free Software Foundation, Inc. +/* Copyright (C) 1987-2009 Free Software Foundation, Inc. - This file is part of the GNU Readline Library, a library for - reading lines of text with interactive input and history editing. + This file is part of the GNU Readline Library (Readline), a library + for reading lines of text with interactive input and history editing. - The GNU Readline Library 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 + Readline is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - The GNU Readline Library 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 + Readline 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. - The GNU General Public License is often shipped with GNU software, and - is generally kept in a file called COPYING or LICENSE. If you do not - have a copy of the license, write to the Free Software Foundation, - 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ + You should have received a copy of the GNU General Public License + along with Readline. If not, see . +*/ + #define READLINE_LIBRARY #if defined (HAVE_CONFIG_H) @@ -260,7 +260,7 @@ rl_forward_byte (count, key) { int end = rl_point + count; #if defined (VI_MODE) - int lend = rl_end > 0 ? rl_end - (rl_editing_mode == vi_mode) : rl_end; + int lend = rl_end > 0 ? rl_end - (VI_COMMAND_MODE()) : rl_end; #else int lend = rl_end; #endif @@ -296,10 +296,16 @@ rl_forward_char (count, key) if (count > 0) { + if (rl_point == rl_end && EMACS_MODE()) + { + rl_ding (); + return 0; + } + point = _rl_find_next_mbchar (rl_line_buffer, rl_point, count, MB_FIND_NONZERO); #if defined (VI_MODE) - if (rl_end <= point && rl_editing_mode == vi_mode) + if (point >= rl_end && VI_COMMAND_MODE()) point = _rl_find_prev_mbchar (rl_line_buffer, rl_end, MB_FIND_NONZERO); #endif @@ -943,7 +949,7 @@ rl_newline (count, key) if (rl_erase_empty_line && rl_point == 0 && rl_end == 0) return 0; - if (readline_echoing_p) + if (_rl_echoing_p) _rl_update_final (); return 0; } diff --git a/lib/readline/tilde.c b/lib/readline/tilde.c index 1b76c9f24..088ff1540 100644 --- a/lib/readline/tilde.c +++ b/lib/readline/tilde.c @@ -1,23 +1,23 @@ /* tilde.c -- Tilde expansion code (~/foo := $HOME/foo). */ -/* Copyright (C) 1988,1989 Free Software Foundation, Inc. +/* Copyright (C) 1988-2009 Free Software Foundation, Inc. - This file is part of GNU Readline, a library for reading lines - of text with interactive input and history editing. + This file is part of the GNU Readline Library (Readline), a library + for reading lines of text with interactive input and history editing. - Readline 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. + Readline is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Readline 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. + Readline 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 Readline; see the file COPYING. If not, write to the Free - Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ + along with Readline. If not, see . +*/ #if defined (HAVE_CONFIG_H) # include @@ -236,7 +236,7 @@ tilde_expand (string) string += end; expansion = tilde_expand_word (tilde_word); - free (tilde_word); + xfree (tilde_word); len = strlen (expansion); #ifdef __CYGWIN__ @@ -251,7 +251,7 @@ tilde_expand (string) strcpy (result + result_index, expansion); result_index += len; } - free (expansion); + xfree (expansion); } result[result_index] = '\0'; @@ -377,7 +377,7 @@ tilde_expand_word (filename) if (expansion) { dirname = glue_prefix_and_suffix (expansion, filename, user_len); - free (username); + xfree (username); free (expansion); return (dirname); } @@ -414,7 +414,7 @@ tilde_expand_word (filename) dirname = glue_prefix_and_suffix (user_entry->pw_dir, filename, user_len); #endif - free (username); + xfree (username); #if defined (HAVE_GETPWENT) endpwent (); #endif diff --git a/lib/readline/tilde.h b/lib/readline/tilde.h index c58ce20e7..e26dd0476 100644 --- a/lib/readline/tilde.h +++ b/lib/readline/tilde.h @@ -1,25 +1,24 @@ /* tilde.h: Externally available variables and function in libtilde.a. */ -/* Copyright (C) 1992 Free Software Foundation, Inc. +/* Copyright (C) 1992-2009 Free Software Foundation, Inc. - This file contains the Readline Library (the Library), a set of + This file contains the Readline Library (Readline), a set of routines for providing Emacs style line input to programs that ask for it. - The Library is free software; you can redistribute it and/or modify + Readline 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. - - The Library 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. - - The GNU General Public License is often shipped with GNU software, and - is generally kept in a file called COPYING or LICENSE. If you do not - have a copy of the license, write to the Free Software Foundation, - 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Readline 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 Readline. If not, see . +*/ #if !defined (_TILDE_H_) # define _TILDE_H_ diff --git a/lib/readline/undo.c b/lib/readline/undo.c index 9d9bd25ba..c2a7851c7 100644 --- a/lib/readline/undo.c +++ b/lib/readline/undo.c @@ -1,25 +1,25 @@ /* readline.c -- a general facility for reading lines of input with emacs style editing and completion. */ -/* Copyright (C) 1987, 1989, 1992, 2006 Free Software Foundation, Inc. +/* Copyright (C) 1987-2009 Free Software Foundation, Inc. - This file is part of the GNU Readline Library, a library for - reading lines of text with interactive input and history editing. + This file is part of the GNU Readline Library (Readline), a library + for reading lines of text with interactive input and history editing. - The GNU Readline Library 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 + Readline is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - The GNU Readline Library 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 + Readline 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. - The GNU General Public License is often shipped with GNU software, and - is generally kept in a file called COPYING or LICENSE. If you do not - have a copy of the license, write to the Free Software Foundation, - 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ + You should have received a copy of the GNU General Public License + along with Readline. If not, see . +*/ + #define READLINE_LIBRARY #if defined (HAVE_CONFIG_H) @@ -116,7 +116,7 @@ rl_free_undo_list () if (release->what == UNDO_DELETE) free (release->text); - free (release); + xfree (release); } rl_undo_list = (UNDO_LIST *)NULL; replace_history_data (-1, (histdata_t *)orig_list, (histdata_t *)NULL); @@ -171,7 +171,7 @@ rl_do_undo () start = end = waiting_for_begin = 0; do { - if (!rl_undo_list) + if (rl_undo_list == 0) return (0); _rl_doing_an_undo = 1; @@ -221,7 +221,7 @@ rl_do_undo () rl_undo_list = rl_undo_list->next; replace_history_data (-1, (histdata_t *)release, (histdata_t *)rl_undo_list); - free (release); + xfree (release); } while (waiting_for_begin); @@ -291,7 +291,7 @@ int rl_revert_line (count, key) int count, key; { - if (!rl_undo_list) + if (rl_undo_list == 0) rl_ding (); else { diff --git a/lib/readline/util.c b/lib/readline/util.c index e44ef6434..3a3e91ecf 100644 --- a/lib/readline/util.c +++ b/lib/readline/util.c @@ -1,24 +1,24 @@ /* util.c -- readline utility functions */ -/* Copyright (C) 1987-2005 Free Software Foundation, Inc. +/* Copyright (C) 1987-2009 Free Software Foundation, Inc. - This file is part of the GNU Readline Library, a library for - reading lines of text with interactive input and history editing. + This file is part of the GNU Readline Library (Readline), a library + for reading lines of text with interactive input and history editing. - The GNU Readline Library 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 + Readline is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - The GNU Readline Library 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 + Readline 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. - The GNU General Public License is often shipped with GNU software, and - is generally kept in a file called COPYING or LICENSE. If you do not - have a copy of the license, write to the Free Software Foundation, - 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ + You should have received a copy of the GNU General Public License + along with Readline. If not, see . +*/ + #define READLINE_LIBRARY #if defined (HAVE_CONFIG_H) @@ -66,7 +66,7 @@ in words, or 1 if it is. */ int _rl_allow_pathname_alphabetic_chars = 0; -static const char *pathname_alphabetic_chars = "/-_=~.#$"; +static const char * const pathname_alphabetic_chars = "/-_=~.#$"; int rl_alphabetic (c) @@ -109,7 +109,7 @@ _rl_abort_internal () _rl_pop_executing_macro (); rl_last_func = (rl_command_func_t *)NULL; - longjmp (readline_top_level, 1); + longjmp (_rl_top_level, 1); return (0); } @@ -185,6 +185,7 @@ rl_tilde_expand (ignore, key) { homedir = tilde_expand ("~"); _rl_replace_text (homedir, start, end); + xfree (homedir); return (0); } else if (rl_line_buffer[start] != '~') @@ -212,14 +213,96 @@ rl_tilde_expand (ignore, key) strncpy (temp, rl_line_buffer + start, len); temp[len] = '\0'; homedir = tilde_expand (temp); - free (temp); + xfree (temp); _rl_replace_text (homedir, start, end); + xfree (homedir); } return (0); } +#if defined (USE_VARARGS) +void +#if defined (PREFER_STDARG) +_rl_ttymsg (const char *format, ...) +#else +_rl_ttymsg (va_alist) + va_dcl +#endif +{ + va_list args; +#if defined (PREFER_VARARGS) + char *format; +#endif + +#if defined (PREFER_STDARG) + va_start (args, format); +#else + va_start (args); + format = va_arg (args, char *); +#endif + + fprintf (stderr, "readline: "); + vfprintf (stderr, format, args); + fprintf (stderr, "\n"); + fflush (stderr); + + va_end (args); + + rl_forced_update_display (); +} + +void +#if defined (PREFER_STDARG) +_rl_errmsg (const char *format, ...) +#else +_rl_errmsg (va_alist) + va_dcl +#endif +{ + va_list args; +#if defined (PREFER_VARARGS) + char *format; +#endif + +#if defined (PREFER_STDARG) + va_start (args, format); +#else + va_start (args); + format = va_arg (args, char *); +#endif + + fprintf (stderr, "readline: "); + vfprintf (stderr, format, args); + fprintf (stderr, "\n"); + fflush (stderr); + + va_end (args); +} + +#else /* !USE_VARARGS */ +void +_rl_ttymsg (format, arg1, arg2) + char *format; +{ + fprintf (stderr, "readline: "); + fprintf (stderr, format, arg1, arg2); + fprintf (stderr, "\n"); + + rl_forced_update_display (); +} + +void +_rl_errmsg (format, arg1, arg2) + char *format; +{ + fprintf (stderr, "readline: "); + fprintf (stderr, format, arg1, arg2); + fprintf (stderr, "\n"); +} +#endif /* !USE_VARARGS */ + /* **************************************************************** */ /* */ /* String Utility Functions */ @@ -344,6 +427,16 @@ FUNCTION_FOR_MACRO (_rl_to_lower) FUNCTION_FOR_MACRO (_rl_to_upper) FUNCTION_FOR_MACRO (_rl_uppercase_p) +/* A convenience function, to force memory deallocation to be performed + by readline. DLLs on Windows apparently require this. */ +void +rl_free (mem) + void *mem; +{ + if (mem) + free (mem); +} + /* Backwards compatibility, now that savestring has been removed from all `public' readline header files. */ #undef _rl_savestring @@ -353,3 +446,60 @@ _rl_savestring (s) { return (strcpy ((char *)xmalloc (1 + (int)strlen (s)), (s))); } + +#if defined (USE_VARARGS) +static FILE *_rl_tracefp; + +void +#if defined (PREFER_STDARG) +_rl_trace (const char *format, ...) +#else +_rl_trace (va_alist) + va_dcl +#endif +{ + va_list args; +#if defined (PREFER_VARARGS) + char *format; +#endif + +#if defined (PREFER_STDARG) + va_start (args, format); +#else + va_start (args); + format = va_arg (args, char *); +#endif + + if (_rl_tracefp == 0) + _rl_tropen (); + vfprintf (_rl_tracefp, format, args); + fprintf (_rl_tracefp, "\n"); + fflush (_rl_tracefp); + + va_end (args); +} + +int +_rl_tropen () +{ + char fnbuf[128]; + + if (_rl_tracefp) + fclose (_rl_tracefp); + sprintf (fnbuf, "/var/tmp/rltrace.%ld", getpid()); + unlink(fnbuf); + _rl_tracefp = fopen (fnbuf, "w+"); + return _rl_tracefp != 0; +} + +int +_rl_trclose () +{ + int r; + + r = fclose (_rl_tracefp); + _rl_tracefp = 0; + return r; +} + +#endif diff --git a/lib/readline/vi_keymap.c b/lib/readline/vi_keymap.c index 4b48c75cc..36631730e 100644 --- a/lib/readline/vi_keymap.c +++ b/lib/readline/vi_keymap.c @@ -1,24 +1,23 @@ /* vi_keymap.c -- the keymap for vi_mode in readline (). */ -/* Copyright (C) 1987, 1989, 1992 Free Software Foundation, Inc. +/* Copyright (C) 1987-2009 Free Software Foundation, Inc. - This file is part of the GNU Readline Library, a library for - reading lines of text with interactive input and history editing. + This file is part of the GNU Readline Library (Readline), a library + for reading lines of text with interactive input and history editing. - The GNU Readline Library 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 + Readline is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - The GNU Readline Library 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 + Readline 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. - The GNU General Public License is often shipped with GNU software, and - is generally kept in a file called COPYING or LICENSE. If you do not - have a copy of the license, write to the Free Software Foundation, - 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ + You should have received a copy of the GNU General Public License + along with Readline. If not, see . +*/ #if !defined (BUFSIZ) #include @@ -151,7 +150,7 @@ KEYMAP_ENTRY_ARRAY vi_movement_keymap = { { ISFUNC, rl_vi_char_search }, /* f */ { ISFUNC, (rl_command_func_t *)0x0 }, /* g */ { ISFUNC, rl_backward_char }, /* h */ - { ISFUNC, rl_vi_insertion_mode }, /* i */ + { ISFUNC, rl_vi_insert_mode }, /* i */ { ISFUNC, rl_get_next_history }, /* j */ { ISFUNC, rl_get_previous_history }, /* k */ { ISFUNC, rl_forward_char }, /* l */ diff --git a/lib/readline/vi_mode.c b/lib/readline/vi_mode.c index b0da0abd2..5f35cf080 100644 --- a/lib/readline/vi_mode.c +++ b/lib/readline/vi_mode.c @@ -1,25 +1,25 @@ /* vi_mode.c -- A vi emulation mode for Bash. Derived from code written by Jeff Sparkes (jsparkes@bnr.ca). */ -/* Copyright (C) 1987-2005 Free Software Foundation, Inc. +/* Copyright (C) 1987-2009 Free Software Foundation, Inc. - This file is part of the GNU Readline Library, a library for - reading lines of text with interactive input and history editing. + This file is part of the GNU Readline Library (Readline), a library + for reading lines of text with interactive input and history editing. - The GNU Readline Library 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 + Readline is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - The GNU Readline Library 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 + Readline 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. - The GNU General Public License is often shipped with GNU software, and - is generally kept in a file called COPYING or LICENSE. If you do not - have a copy of the license, write to the Free Software Foundation, - 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ + You should have received a copy of the GNU General Public License + along with Readline. If not, see . +*/ + #define READLINE_LIBRARY /* **************************************************************** */ @@ -69,7 +69,7 @@ int _rl_vi_last_command = 'i'; /* default `.' puts you in insert mode */ static int _rl_vi_doing_insert; /* Command keys which do movement for xxx_to commands. */ -static const char *vi_motion = " hl^$0ftFT;,%wbeWBE|"; +static const char * const vi_motion = " hl^$0ftFT;,%wbeWBE|`"; /* Keymap used for vi replace characters. Created dynamically since rarely used. */ @@ -101,7 +101,7 @@ static int _rl_vi_last_key_before_insert; static int vi_redoing; /* Text modification commands. These are the `redoable' commands. */ -static const char *vi_textmod = "_*\\AaIiCcDdPpYyRrSsXx~"; +static const char * const vi_textmod = "_*\\AaIiCcDdPpYyRrSsXx~"; /* Arrays for the saved marks. */ static int vi_mark_chars['z' - 'a' + 1]; @@ -211,6 +211,15 @@ rl_vi_redo (count, c) if (rl_point > 0) _rl_vi_backup (); } + /* Ditto for redoing an insert with `I', but move to the beginning of the + line like the `I' command does. */ + else if (_rl_vi_last_command == 'I' && vi_insert_buffer && *vi_insert_buffer) + { + rl_beg_of_line (1, 'I'); + _rl_vi_stuff_insert (count); + if (rl_point > 0) + _rl_vi_backup (); + } /* Ditto for redoing an insert with `a', but move forward a character first like the `a' command does. */ else if (_rl_vi_last_command == 'a' && vi_insert_buffer && *vi_insert_buffer) @@ -220,6 +229,15 @@ rl_vi_redo (count, c) if (rl_point > 0) _rl_vi_backup (); } + /* Ditto for redoing an insert with `A', but move to the end of the line + like the `A' command does. */ + else if (_rl_vi_last_command == 'A' && vi_insert_buffer && *vi_insert_buffer) + { + rl_end_of_line (1, 'A'); + _rl_vi_stuff_insert (count); + if (rl_point > 0) + _rl_vi_backup (); + } else r = _rl_dispatch (_rl_vi_last_command, _rl_keymap); vi_redoing = 0; @@ -584,7 +602,7 @@ rl_vi_insert_beg (count, key) int count, key; { rl_beg_of_line (1, key); - rl_vi_insertion_mode (1, key); + rl_vi_insert_mode (1, key); return (0); } @@ -647,6 +665,14 @@ rl_vi_insertion_mode (count, key) return (0); } +int +rl_vi_insert_mode (count, key) + int count, key; +{ + rl_vi_start_inserting (key, 1, rl_arg_sign); + return (0); +} + static void _rl_vi_save_insert (up) UNDO_LIST *up; @@ -690,7 +716,10 @@ _rl_vi_done_inserting () } else { - if ((_rl_vi_last_key_before_insert == 'i' || _rl_vi_last_key_before_insert == 'a') && rl_undo_list) + if (rl_undo_list && (_rl_vi_last_key_before_insert == 'i' || + _rl_vi_last_key_before_insert == 'a' || + _rl_vi_last_key_before_insert == 'I' || + _rl_vi_last_key_before_insert == 'A')) _rl_vi_save_insert (rl_undo_list); /* XXX - Other keys probably need to be checked. */ else if (_rl_vi_last_key_before_insert == 'C') @@ -1045,13 +1074,15 @@ int rl_vi_delete_to (count, key) int count, key; { - int c; + int c, start_pos; if (_rl_uppercase_p (key)) rl_stuff_char ('$'); else if (vi_redoing) rl_stuff_char (_rl_vi_last_motion); + start_pos = rl_point; + if (rl_vi_domove (key, &c)) { rl_ding (); @@ -1060,7 +1091,8 @@ rl_vi_delete_to (count, key) /* These are the motion commands that do not require adjusting the mark. */ - if ((strchr (" l|h^0bB", c) == 0) && (rl_mark < rl_end)) + if (((strchr (" l|h^0bBFT`", c) == 0) && (rl_point >= start_pos)) && + (rl_mark < rl_end)) rl_mark++; rl_kill_text (rl_point, rl_mark); @@ -1089,7 +1121,8 @@ rl_vi_change_to (count, key) /* These are the motion commands that do not require adjusting the mark. c[wW] are handled by special-case code in rl_vi_domove(), and already leave the mark at the correct location. */ - if ((strchr (" l|hwW^0bB", c) == 0) && (rl_mark < rl_end)) + if (((strchr (" l|hwW^0bBFT`", c) == 0) && (rl_point >= start_pos)) && + (rl_mark < rl_end)) rl_mark++; /* The cursor never moves with c[wW]. */ @@ -1124,12 +1157,13 @@ int rl_vi_yank_to (count, key) int count, key; { - int c, save; + int c, start_pos; - save = rl_point; if (_rl_uppercase_p (key)) rl_stuff_char ('$'); + start_pos = rl_point; + if (rl_vi_domove (key, &c)) { rl_ding (); @@ -1138,14 +1172,15 @@ rl_vi_yank_to (count, key) /* These are the motion commands that do not require adjusting the mark. */ - if ((strchr (" l|h^0%bB", c) == 0) && (rl_mark < rl_end)) + if (((strchr (" l|h^0%bBFT`", c) == 0) && (rl_point >= start_pos)) && + (rl_mark < rl_end)) rl_mark++; rl_begin_undo_group (); rl_kill_text (rl_point, rl_mark); rl_end_undo_group (); rl_do_undo (); - rl_point = save; + rl_point = start_pos; return (0); } diff --git a/lib/readline/xmalloc.c b/lib/readline/xmalloc.c index 8985d340d..97d8f2e58 100644 --- a/lib/readline/xmalloc.c +++ b/lib/readline/xmalloc.c @@ -1,23 +1,24 @@ /* xmalloc.c -- safe versions of malloc and realloc */ -/* Copyright (C) 1991 Free Software Foundation, Inc. +/* Copyright (C) 1991-2009 Free Software Foundation, Inc. - This file is part of GNU Readline, a library for reading lines - of text with interactive input and history editing. + This file is part of the GNU Readline Library (Readline), a library + for reading lines of text with interactive input and history editing. - Readline 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. + Readline is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Readline 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. + Readline 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 Readline; see the file COPYING. If not, write to the Free - Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ + along with Readline. If not, see . +*/ + #define READLINE_LIBRARY #if defined (HAVE_CONFIG_H) diff --git a/lib/readline/xmalloc.h b/lib/readline/xmalloc.h index 9cb08ba21..f40d7a596 100644 --- a/lib/readline/xmalloc.h +++ b/lib/readline/xmalloc.h @@ -1,24 +1,23 @@ /* xmalloc.h -- memory allocation that aborts on errors. */ -/* Copyright (C) 1999 Free Software Foundation, Inc. +/* Copyright (C) 1999-2009 Free Software Foundation, Inc. - This file is part of the GNU Readline Library, a library for - reading lines of text with interactive input and history editing. + This file is part of the GNU Readline Library (Readline), a library + for reading lines of text with interactive input and history editing. - The GNU Readline Library 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 + Readline is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - The GNU Readline Library 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 + Readline 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. - The GNU General Public License is often shipped with GNU software, and - is generally kept in a file called COPYING or LICENSE. If you do not - have a copy of the license, write to the Free Software Foundation, - 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ + You should have received a copy of the GNU General Public License + along with Readline. If not, see . +*/ #if !defined (_XMALLOC_H_) #define _XMALLOC_H_ diff --git a/lib/sh/Makefile.in b/lib/sh/Makefile.in index bf95d1922..c8db3a524 100644 --- a/lib/sh/Makefile.in +++ b/lib/sh/Makefile.in @@ -2,21 +2,20 @@ # Makefile for the Bash library # # -# Copyright (C) 1998-2005 Free Software Foundation, Inc. +# Copyright (C) 1998-2009 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 free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# 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. +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . PACKAGE = @PACKAGE_NAME@ VERSION = @PACKAGE_VERSION@ @@ -40,6 +39,8 @@ INTL_BUILDDIR = ${LIBBUILD}/intl INTL_INC = @INTL_INC@ LIBINTL_H = @LIBINTL_H@ +datarootdir = @datarootdir@ + INSTALL = @INSTALL@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_DATA = @INSTALL_DATA@ @@ -88,8 +89,9 @@ CSOURCES = clktck.c clock.c getcwd.c getenv.c oslib.c setlinebuf.c \ shquote.c strtrans.c strindex.c snprintf.c mailstat.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 winsize.c eaccess.c \ - wcsdup.c + mktime.c strftime.c xstrchr.c zcatfd.c zmapfd.c winsize.c eaccess.c \ + wcsdup.c fpurge.c zgetline.c mbscmp.c uconvert.c ufuncs.c \ + casemod.c fdprintf.c input_avail.c # The header files for this library. HSOURCES = @@ -101,8 +103,9 @@ OBJECTS = clktck.o clock.o getenv.o oslib.o setlinebuf.o strnlen.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 winsize.o wcsdup.o \ - ${LIBOBJS} + fmtullong.o fmtumax.o xstrchr.o zcatfd.o zmapfd.o winsize.o wcsdup.o \ + fpurge.o zgetline.o mbscmp.o uconvert.o ufuncs.o casemod.o \ + fdprintf.o input_avail.o ${LIBOBJS} SUPPORT = Makefile @@ -134,18 +137,23 @@ ${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 +casemod.o: casemod.c clktck.o: clktck.c clock.o: clock.c eaccess.o: eaccess.c +fdprintf.o: fdprintf.c fmtullong.o: fmtullong.c fmtulong.o: fmtulong.c fmtumax.o: fmtumax.c +fpurge.o: fpurge.c getcwd.o: getcwd.c getenv.o: getenv.c inet_aton.o: inet_aton.c +input_avail.o: input_avail.c itos.o: itos.c mailstat.o: mailstat.c makepath.o: makepath.c +mbscmp.o: mbscmp.c memset.o: memset.c mktime.o: mktime.c netconn.o: netconn.c @@ -178,10 +186,14 @@ strtrans.o: strtrans.c times.o: times.c timeval.o: timeval.c tmpfile.o: tmpfile.c +uconvert.o: uconvert.c +ufuncs.o: ufuncs.c vprint.o: vprint.c wcsdup.o: wcsdup.c xstrchr.o: xstrchr.c zcatfd.o: zcatfd.c +zmapfd.o: zmapfd.c +zgetline.o: zgetline.c zread.o: zread.c zwrite.o: zwrite.c @@ -193,18 +205,23 @@ strtoul.o: strtol.c strtoull.o: strtol.c # all files in the library depend on config.h +casemod.o: ${BUILD_DIR}/config.h clktck.o: ${BUILD_DIR}/config.h clock.o: ${BUILD_DIR}/config.h eaccess.o: ${BUILD_DIR}/config.h +fdprintf.o: ${BUILD_DIR}/config.h fmtullong.o: ${BUILD_DIR}/config.h fmtulong.o: ${BUILD_DIR}/config.h fmtumax.o: ${BUILD_DIR}/config.h +fpurge.o: ${BUILD_DIR}/config.h getcwd.o: ${BUILD_DIR}/config.h getenv.o: ${BUILD_DIR}/config.h inet_aton.o: ${BUILD_DIR}/config.h +input_avail.o: ${BUILD_DIR}/config.h itos.o: ${BUILD_DIR}/config.h mailstat.o: ${BUILD_DIR}/config.h makepath.o: ${BUILD_DIR}/config.h +mbscmp.o: ${BUILD_DIR}/config.h memset.o: ${BUILD_DIR}/config.h mktime.o: ${BUILD_DIR}/config.h netconn.o: ${BUILD_DIR}/config.h @@ -237,10 +254,14 @@ strtrans.o: ${BUILD_DIR}/config.h times.o: ${BUILD_DIR}/config.h timeval.o: ${BUILD_DIR}/config.h tmpfile.o: ${BUILD_DIR}/config.h +uconvert.o: ${BUILD_DIR}/config.h +ufuncs.o: ${BUILD_DIR}/config.h vprint.o: ${BUILD_DIR}/config.h wcsdup.o: ${BUILD_DIR}/config.h xstrchr.o: ${BUILD_DIR}/config.h zcatfd.o: ${BUILD_DIR}/config.h +zgetline.o: ${BUILD_DIR}/config.h +zmapfd.o: ${BUILD_DIR}/config.h zread.o: ${BUILD_DIR}/config.h zwrite.o: ${BUILD_DIR}/config.h @@ -439,6 +460,10 @@ tmpfile.o: ${topdir}/bashtypes.h tmpfile.o: ${BASHINCDIR}/posixstat.h tmpfile.o: ${BASHINCDIR}/filecntl.h +uconvert.o: ${topdir}/bashtypes.h + +ufuncs.o: ${topdir}/bashtypes.h + clock.o: ${BASHINCDIR}/posixtime.h mailstat.o: ${topdir}/bashansi.h @@ -476,3 +501,26 @@ wcsdup.o: ${topdir}/xmalloc.h xstrchr.o: ${topdir}/bashansi.h xstrchr.o: ${BASHINCDIR}/ansi_stdlib.h xstrchr.o: ${BASHINCDIR}/shmbutil.h + +zgetline.o: ${topdir}/bashansi.h ${BASHINCDIR}/ansi_stdlib.h +zgetline.o: ${BASHINCDIR}/stdc.h +zgetline.o: ${topdir}/xmalloc.h +zgetline.o: ${topdir}/bashtypes.h + +mbscmp.o: ${topdir}/bashansi.h ${BASHINCDIR}/ansi_stdlib.h +mbscmp.o: ${BASHINCDIR}/stdc.h +mbscmp.o: ${topdir}/xmalloc.h + +casemod.o: ${topdir}/bashansi.h ${BASHINCDIR}/ansi_stdlib.h +casemod.o: ${BASHINCDIR}/stdc.h +casemod.o: ${topdir}/xmalloc.h +casemod.o: ${topdir}/bashtypes.h +casemod.o: ${BASHINCDIR}/shmbutil.h +casemod.o: ${topdir}/bashintl.h ${LIBINTL_H} ${BASHINCDIR}/gettext.h + +fdprintf.o: ${BASHINCDIR}/stdc.h + +input_avail.o: ${topdir}/bashansi.h ${BASHINCDIR}/ansi_stdlib.h +input_avail.o: ${BASHINCDIR}/stdc.h +input_avail.o: ${topdir}/xmalloc.h + diff --git a/lib/sh/casemod.c b/lib/sh/casemod.c new file mode 100644 index 000000000..83b8ebec2 --- /dev/null +++ b/lib/sh/casemod.c @@ -0,0 +1,206 @@ +/* casemod.c -- functions to change case of strings */ + +/* Copyright (C) 2008,2009 Free Software Foundation, Inc. + + This file is part of GNU Bash, the Bourne Again SHell. + + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ + +#if defined (HAVE_CONFIG_H) +# include +#endif + +#if defined (HAVE_UNISTD_H) +# include +#endif /* HAVE_UNISTD_H */ + +#include + +#include +#include +#include + +#include +#include +#include + +#include +#include + +#include + +#define _to_wupper(wc) (iswlower (wc) ? towupper (wc) : (wc)) +#define _to_wlower(wc) (iswupper (wc) ? towlower (wc) : (wc)) + +#if !defined (HANDLE_MULTIBYTE) +# define cval(s, i) ((s)[(i)]) +# define iswalnum(c) (isalnum(c)) +# define TOGGLE(x) (ISUPPER (x) ? tolower (x) : (TOUPPER (x))) +#else +# define TOGGLE(x) (iswupper (x) ? towlower (x) : (_to_wupper(x))) +#endif + +/* These must agree with the defines in externs.h */ +#define CASE_NOOP 0x0 +#define CASE_LOWER 0x01 +#define CASE_UPPER 0x02 +#define CASE_CAPITALIZE 0x04 +#define CASE_UNCAP 0x08 +#define CASE_TOGGLE 0x10 +#define CASE_TOGGLEALL 0x20 + +extern char *substring __P((char *, int, int)); + +#if defined (HANDLE_MULTIBYTE) +static wchar_t +cval (s, i) + char *s; + int i; +{ + size_t tmp; + wchar_t wc; + int l; + mbstate_t mps; + + if (MB_CUR_MAX == 1) + return ((wchar_t)s[i]); + l = strlen (s); + if (i >= (l - 1)) + return ((wchar_t)s[i]); + memset (&mps, 0, sizeof (mbstate_t)); + tmp = mbrtowc (&wc, s + i, l - i, &mps); + if (MB_INVALIDCH (tmp) || MB_NULLWCH (tmp)) + return ((wchar_t)s[i]); + return wc; +} +#endif + +/* Modify the case of characters in STRING matching PAT based on the value of + FLAGS. If PAT is null, modify the case of each character */ +char * +sh_modcase (string, pat, flags) + const char *string; + char *pat; + int flags; +{ + int start, next, end; + int inword, c, nc, nop, match; + char *ret, *s; + wchar_t wc; +#if defined (HANDLE_MULTIBYTE) + wchar_t nwc; + char mb[MB_LEN_MAX+1]; + int mlen; + mbstate_t state; +#endif + +#if defined (HANDLE_MULTIBYTE) + memset (&state, 0, sizeof (mbstate_t)); +#endif + + start = 0; + end = strlen (string); + + ret = (char *)xmalloc (end + 1); + strcpy (ret, string); + + inword = 0; + while (start < end) + { + wc = cval (ret, start); + + if (iswalnum (wc) == 0) + { + inword = 0; + ADVANCE_CHAR (ret, end, start); + continue; + } + + if (pat) + { + next = start; + ADVANCE_CHAR (ret, end, next); + s = substring (ret, start, next); + match = strmatch (pat, s, FNM_EXTMATCH) != FNM_NOMATCH; + free (s); + if (match == 0) + { + start = next; + inword = 1; + continue; + } + } + + if (flags == CASE_CAPITALIZE) + { + nop = inword ? CASE_LOWER : CASE_UPPER; + inword = 1; + } + else if (flags == CASE_UNCAP) + { + nop = inword ? CASE_UPPER : CASE_LOWER; + inword = 1; + } + else if (flags == CASE_TOGGLE) + { + nop = inword ? CASE_NOOP : CASE_TOGGLE; + inword = 1; + } + else + nop = flags; + + if (MB_CUR_MAX == 1 || isascii (wc)) + { + switch (nop) + { + default: + case CASE_NOOP: nc = wc; break; + case CASE_UPPER: nc = TOUPPER (wc); break; + case CASE_LOWER: nc = TOLOWER (wc); break; + case CASE_TOGGLEALL: + case CASE_TOGGLE: nc = TOGGLE (wc); break; + } + ret[start] = nc; + } +#if defined (HANDLE_MULTIBYTE) + else + { + mbrtowc (&wc, string + start, end - start, &state); + switch (nop) + { + default: + case CASE_NOOP: nwc = wc; break; + case CASE_UPPER: nwc = TOUPPER (wc); break; + case CASE_LOWER: nwc = TOLOWER (wc); break; + case CASE_TOGGLEALL: + case CASE_TOGGLE: nwc = TOGGLE (wc); break; + } + if (nwc != wc) /* just skip unchanged characters */ + { + mlen = wcrtomb (mb, nwc, &state); + if (mlen > 0) + mb[mlen] = '\0'; + /* Assume the same width */ + strncpy (ret + start, mb, mlen); + } + } +#endif + + /* This assumes that the upper and lower case versions are the same width. */ + ADVANCE_CHAR (ret, end, start); + } + + return ret; +} diff --git a/lib/sh/clktck.c b/lib/sh/clktck.c index 546b49c50..096ce06e5 100644 --- a/lib/sh/clktck.c +++ b/lib/sh/clktck.c @@ -4,19 +4,19 @@ 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, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA */ + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #include diff --git a/lib/sh/clock.c b/lib/sh/clock.c index 1186a1982..84cdbc542 100644 --- a/lib/sh/clock.c +++ b/lib/sh/clock.c @@ -4,19 +4,19 @@ 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, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA */ + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #include diff --git a/lib/sh/eaccess.c b/lib/sh/eaccess.c index 1cff692c1..989bc225b 100644 --- a/lib/sh/eaccess.c +++ b/lib/sh/eaccess.c @@ -4,19 +4,19 @@ 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. */ + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #if defined (HAVE_CONFIG_H) # include diff --git a/lib/sh/fdprintf.c b/lib/sh/fdprintf.c new file mode 100644 index 000000000..27d3a4b0a --- /dev/null +++ b/lib/sh/fdprintf.c @@ -0,0 +1,70 @@ +/* fdprintf -- printf to a file descriptor */ + +/* Copyright (C) 2008,2009 Free Software Foundation, Inc. + + This file is part of GNU Bash, the Bourne Again SHell. + + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ + +#ifdef HAVE_CONFIG_H +# include +#endif + +#include + +#if defined (HAVE_UNISTD_H) +# include +#endif + +#if defined (PREFER_STDARG) +# include +#else +# include +#endif + +#include + +int +#if defined (PREFER_STDARG) +fdprintf(int fd, const char *format, ...) +#else +fdprintf(fd, format, va_alist) + int fd; + const char *format; + va_dcl +#endif +{ + FILE *fp; + int fd2, rc, r2; + va_list args; + + if ((fd2 = dup(fd)) < 0) + return -1; + fp = fdopen (fd2, "w"); + if (fp == 0) + { + close (fd2); + return -1; + } + + SH_VA_START (args, format); + rc = vfprintf (fp, format, args); + fflush (fp); + va_end (args); + + r2 = fclose (fp); /* check here */ + + return rc; +} diff --git a/lib/sh/fmtullong.c b/lib/sh/fmtullong.c index df27944a1..97a1dc18c 100644 --- a/lib/sh/fmtullong.c +++ b/lib/sh/fmtullong.c @@ -2,19 +2,21 @@ /* Copyright (C) 2001-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-1307, USA. */ + This file is part of GNU Bash, the Bourne Again SHell. + + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #include diff --git a/lib/sh/fmtulong.c b/lib/sh/fmtulong.c index 43fdffda4..214b1466a 100644 --- a/lib/sh/fmtulong.c +++ b/lib/sh/fmtulong.c @@ -4,19 +4,19 @@ 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. */ + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #ifdef HAVE_CONFIG_H # include diff --git a/lib/sh/fmtumax.c b/lib/sh/fmtumax.c index 9bb4718ae..f2786b5d3 100644 --- a/lib/sh/fmtumax.c +++ b/lib/sh/fmtumax.c @@ -2,19 +2,21 @@ /* Copyright (C) 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-1307, USA. */ + This file is part of GNU Bash, the Bourne Again SHell. + + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #include diff --git a/lib/sh/fpurge.c b/lib/sh/fpurge.c new file mode 100644 index 000000000..fd093b8f1 --- /dev/null +++ b/lib/sh/fpurge.c @@ -0,0 +1,123 @@ +/* fpurge - Flushing buffers of a FILE stream. */ + +/* Copyright (C) 2007 Free Software Foundation, Inc. + + This file is part of GNU Bash, the Bourne Again SHell. + + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ + +#include + +#include "stdc.h" + +#include + +/* Specification. Same as in ../../externs.h. */ +#define NEED_FPURGE_DECL +#if HAVE_FPURGE +# define fpurge _bash_fpurge +#endif +extern int fpurge __P((FILE *stream)); + +#if HAVE___FPURGE /* glibc >= 2.2, Solaris >= 7 */ +# include +#endif +#include + +int +fpurge (FILE *fp) +{ +#if HAVE___FPURGE /* glibc >= 2.2, Solaris >= 7 */ + + __fpurge (fp); + /* The __fpurge function does not have a return value. */ + return 0; + +#elif HAVE_FPURGE /* FreeBSD, NetBSD, OpenBSD, MacOS X */ + + /* Call the system's fpurge function. */ +# undef fpurge +# if !HAVE_DECL_FPURGE + extern int fpurge (FILE *); +# endif + int result = fpurge (fp); +# if defined __sferror /* FreeBSD, NetBSD, OpenBSD, MacOS X, Cygwin */ + if (result == 0) + /* Correct the invariants that fpurge broke. + on BSD systems says: + "The following always hold: if _flags & __SRD, _w is 0." + If this invariant is not fulfilled and the stream is read-write but + currently writing, subsequent putc or fputc calls will write directly + into the buffer, although they shouldn't be allowed to. */ + if ((fp->_flags & __SRD) != 0) + fp->_w = 0; +# endif + return result; + +#else + + /* Most systems provide FILE as a struct and the necessary bitmask in + , because they need it for implementing getc() and putc() as + fast macros. */ +# if defined _IO_ferror_unlocked /* GNU libc, BeOS */ + fp->_IO_read_end = fp->_IO_read_ptr; + fp->_IO_write_ptr = fp->_IO_write_base; + /* Avoid memory leak when there is an active ungetc buffer. */ + if (fp->_IO_save_base != NULL) + { + free (fp->_IO_save_base); + fp->_IO_save_base = NULL; + } + return 0; +# elif defined __sferror /* FreeBSD, NetBSD, OpenBSD, MacOS X, Cygwin */ + fp->_p = fp->_bf._base; + fp->_r = 0; + fp->_w = ((fp->_flags & (__SLBF | __SNBF | __SRD)) == 0 /* fully buffered and not currently reading? */ + ? fp->_bf._size + : 0); + /* Avoid memory leak when there is an active ungetc buffer. */ +# if defined __NetBSD__ || defined __OpenBSD__ /* NetBSD, OpenBSD */ + /* See + and */ +# define fp_ub ((struct { struct __sbuf _ub; } *) fp->_ext._base)->_ub +# else /* FreeBSD, MacOS X, Cygwin */ +# define fp_ub fp->_ub +# endif + if (fp_ub._base != NULL) + { + if (fp_ub._base != fp->_ubuf) + free (fp_ub._base); + fp_ub._base = NULL; + } + return 0; +# elif defined _IOERR /* AIX, HP-UX, IRIX, OSF/1, Solaris, mingw */ + fp->_ptr = fp->_base; + if (fp->_ptr != NULL) + fp->_cnt = 0; + return 0; +# elif defined __UCLIBC__ /* uClibc */ +# ifdef __STDIO_BUFFERS + if (fp->__modeflags & __FLAG_WRITING) + fp->__bufpos = fp->__bufstart; + else if (fp->__modeflags & (__FLAG_READONLY | __FLAG_READING)) + fp->__bufpos = fp->__bufread; +# endif + return 0; +# else + #error "Please port gnulib fpurge.c to your platform! Look at the definitions of fflush, setvbuf and ungetc on your system, then report this to bug-gnulib." +# endif + +#endif +} diff --git a/lib/sh/getcwd.c b/lib/sh/getcwd.c index 1a0279435..84799bbc8 100644 --- a/lib/sh/getcwd.c +++ b/lib/sh/getcwd.c @@ -1,22 +1,22 @@ -/* getcwd.c -- stolen from the GNU C library and modified to work with bash. */ +/* getcwd.c -- get pathname of current directory */ /* Copyright (C) 1991 Free Software Foundation, Inc. - This file is part of the GNU C Library. - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + This file is part of GNU Bash, the Bourne Again SHell. - The GNU C Library is distributed in the hope that it will be useful, + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. + 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 Library General Public - License along with the GNU C Library; see the file COPYING.LIB. If - not, write to the Free Software Foundation, Inc., - 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #include @@ -26,6 +26,10 @@ #pragma alloca #endif /* _AIX && RISC6000 && !__GNUC__ */ +#if defined (__QNX__) +# undef HAVE_LSTAT +#endif + #include #include @@ -58,6 +62,33 @@ extern int errno; # define NULL 0 #endif +/* If the d_fileno member of a struct dirent doesn't return anything useful, + we need to check inode number equivalence the hard way. Return 1 if + the inode corresponding to PATH/DIR is identical to THISINO. */ +#if defined (BROKEN_DIRENT_D_INO) +static int +_path_checkino (dotp, name, thisino) + char *dotp; + char *name; + ino_t thisino; +{ + char *fullpath; + int r, e; + struct stat st; + + e = errno; + fullpath = sh_makepath (dotp, name, MP_RMDOT); + if (stat (fullpath, &st) < 0) + { + errno = e; + return 0; + } + free (fullpath); + errno = e; + return (st.st_ino == thisino); +} +#endif + /* Get the pathname of the current working directory, and put it in SIZE bytes of BUF. Returns NULL if the directory couldn't be determined or SIZE was too small. @@ -169,7 +200,11 @@ getcwd (buf, size) (d->d_name[1] == '\0' || (d->d_name[1] == '.' && d->d_name[2] == '\0'))) continue; +#if !defined (BROKEN_DIRENT_D_INO) if (mount_point || d->d_fileno == thisino) +#else + if (mount_point || _path_checkino (dotp, d->d_name, thisino)) +#endif { char *name; diff --git a/lib/sh/getenv.c b/lib/sh/getenv.c index c3fbf75da..8b5e34060 100644 --- a/lib/sh/getenv.c +++ b/lib/sh/getenv.c @@ -5,19 +5,19 @@ 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, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA */ + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #include diff --git a/lib/sh/inet_aton.c b/lib/sh/inet_aton.c index 2835d627c..4b48456f4 100644 --- a/lib/sh/inet_aton.c +++ b/lib/sh/inet_aton.c @@ -1,3 +1,5 @@ +/* inet_aton - convert string to numeric IP address */ + /* Snagged from GNU C library, version 2.0.3. */ /* diff --git a/lib/sh/input_avail.c b/lib/sh/input_avail.c new file mode 100644 index 000000000..5e01f8f75 --- /dev/null +++ b/lib/sh/input_avail.c @@ -0,0 +1,105 @@ +/* input_avail.c -- check whether or not data is available for reading on a + specified file descriptor. */ + +/* Copyright (C) 2008,2009 Free Software Foundation, Inc. + + This file is part of GNU Bash, the Bourne Again SHell. + + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ + +#if defined (__TANDEM) +# include +#endif + +#if defined (HAVE_CONFIG_H) +# include +#endif + +#include +#include +#if defined (HAVE_SYS_FILE_H) +# include +#endif /* HAVE_SYS_FILE_H */ + +#if defined (HAVE_UNISTD_H) +# include +#endif /* HAVE_UNISTD_H */ + +#include "bashansi.h" + +#if defined (HAVE_SELECT) +# if !defined (HAVE_SYS_SELECT_H) || !defined (M_UNIX) +# include +# endif +#endif /* HAVE_SELECT */ +#if defined (HAVE_SYS_SELECT_H) +# include +#endif + +#if defined (FIONREAD_IN_SYS_IOCTL) +# include +#endif + +#include +#include + +#if !defined (errno) +extern int errno; +#endif /* !errno */ + +#if !defined (O_NDELAY) && defined (O_NONBLOCK) +# define O_NDELAY O_NONBLOCK /* Posix style */ +#endif + +/* Return >= 1 if select/FIONREAD indicates data available for reading on + file descriptor FD; 0 if no data available. Return -1 on error. */ +int +input_avail (fd) + int fd; +{ + int result, chars_avail; +#if defined(HAVE_SELECT) + fd_set readfds, exceptfds; + struct timeval timeout; +#endif + + if (fd < 0) + return -1; + + chars_avail = 0; + +#if defined (HAVE_SELECT) + FD_ZERO (&readfds); + FD_ZERO (&exceptfds); + FD_SET (fd, &readfds); + FD_SET (fd, &exceptfds); + timeout.tv_sec = 0; + timeout.tv_usec = 0; + result = select (fd + 1, &readfds, (fd_set *)NULL, &exceptfds, &timeout); + return ((result <= 0) ? 0 : 1); + +#endif + + result = -1; +#if defined (FIONREAD) + errno = 0; + result = ioctl (fd, FIONREAD, &chars_avail); + if (result == -1 && errno == EIO) + return -1; + return (chars_avail); +#endif + + return 0; +} diff --git a/lib/sh/itos.c b/lib/sh/itos.c index e9a794275..12e9398da 100644 --- a/lib/sh/itos.c +++ b/lib/sh/itos.c @@ -4,19 +4,19 @@ 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. + 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #ifdef HAVE_CONFIG_H # include diff --git a/lib/sh/mailstat.c b/lib/sh/mailstat.c index 03782e785..2b2ac0eaf 100644 --- a/lib/sh/mailstat.c +++ b/lib/sh/mailstat.c @@ -4,19 +4,19 @@ 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. */ + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #include diff --git a/lib/sh/makepath.c b/lib/sh/makepath.c index c496154b7..43dbab208 100644 --- a/lib/sh/makepath.c +++ b/lib/sh/makepath.c @@ -4,19 +4,19 @@ 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. + 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #include @@ -42,17 +42,21 @@ # define MP_DOTILDE 0x01 # define MP_DOCWD 0x02 # define MP_RMDOT 0x04 +# define MP_IGNDOT 0x08 #endif extern char *get_working_directory __P((char *)); +static char *nullpath = ""; + /* Take PATH, an element from, e.g., $CDPATH, and DIR, a directory name, and paste them together into PATH/DIR. Tilde expansion is performed on PATH if (flags & MP_DOTILDE) is non-zero. If PATH is NULL or the empty string, it is converted to the current directory. A full pathname is used if (flags & MP_DOCWD) is non-zero, otherwise `./' is used. If (flags & MP_RMDOT) is non-zero, any `./' is removed from the beginning - of DIR. */ + of DIR. If (flags & MP_IGNDOT) is non-zero, a PATH that is "." or "./" + is ignored. */ #define MAKEDOT() \ do { \ @@ -89,6 +93,12 @@ sh_makepath (path, dir, flags) else MAKEDOT(); } + else if ((flags & MP_IGNDOT) && path[0] == '.' && (path[1] == '\0' || + path[1] == '/' && path[2] == '\0')) + { + xpath = nullpath; + pathlen = 0; + } else { xpath = ((flags & MP_DOTILDE) && *path == '~') ? bash_tilde_expand (path, 0) : (char *)path; @@ -107,12 +117,12 @@ sh_makepath (path, dir, flags) s = xpath; while (*s) *r++ = *s++; - if (s[-1] != '/') + if (s > xpath && s[-1] != '/') *r++ = '/'; s = xdir; while (*r++ = *s++) ; - if (xpath != path) + if (xpath != path && xpath != nullpath) free (xpath); return (ret); } diff --git a/lib/sh/mbscmp.c b/lib/sh/mbscmp.c new file mode 100644 index 000000000..ea01c275c --- /dev/null +++ b/lib/sh/mbscmp.c @@ -0,0 +1,62 @@ +/* mbscmp - multibyte string comparison. */ + +/* Copyright (C) 1995 Free Software Foundation, Inc. + + This file is part of GNU Bash, the Bourne Again SHell. + + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ + +#include + +#if !defined (HAVE_MBSCMP) && defined (HANDLE_MULTIBYTE) + +#include +#include + +/* Compare MBS1 and MBS2. */ +int +mbscmp (mbs1, mbs2) + const char *mbs1; + const char *mbs2; +{ + int len1, len2; + wchar_t c1, c2; + + len1 = len2 = 0; + /* Reset multibyte characters to their initial state. */ + (void) mblen ((char *) NULL, 0); + + do + { + len1 = mbtowc ((wchar_t *) &c1, mbs1, MB_CUR_MAX); + len2 = mbtowc ((wchar_t *) &c2, mbs2, MB_CUR_MAX); + + if (len1 == 0) + return len2 == 0 ? 0 : -1; + if (len2 == 0) + return 1; + if (len1 < 0 || len2 < 0) + /* FIXME: an illegal character appears. What to do? */ + return c1 - c2; + + mbs1 += len1; + mbs2 += len2; + } + while (c1 == c2); + + return c1 - c2; +} + +#endif diff --git a/lib/sh/memset.c b/lib/sh/memset.c index ddc36b636..4ebc41889 100644 --- a/lib/sh/memset.c +++ b/lib/sh/memset.c @@ -1,19 +1,22 @@ -/* memset.c -- set an area of memory to a given value - Copyright (C) 1991-2002 Free Software Foundation, Inc. +/* memset.c -- set an area of memory to a given value */ - This program is free software; you can redistribute it and/or modify +/* Copyright (C) 1991-2002 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. + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - This program is distributed in the hope that it will be useful, + 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 this program; if not, write to the Free Software Foundation, - Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + along with Bash. If not, see . +*/ char * memset (char *str, int c, unsigned int len) diff --git a/lib/sh/mktime.c b/lib/sh/mktime.c index 81aeb2266..725740080 100644 --- a/lib/sh/mktime.c +++ b/lib/sh/mktime.c @@ -1,22 +1,23 @@ +/* mktime - convert struct tm to a time_t value */ + /* Copyright (C) 1993-2002 Free Software Foundation, Inc. - This file is part of the GNU C Library. + + This file is part of GNU Bash, the Bourne Again SHell. Contributed by Paul Eggert (eggert@twinsun.com). - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - The GNU C Library is distributed in the hope that it will be useful, + 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 - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public - License along with the GNU C Library; see the file COPYING.LIB. If not, - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. */ + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ /* Define this to have a standalone program to test this implementation of mktime. */ /* #define DEBUG 1 */ @@ -49,11 +50,10 @@ #include #endif +#include "bashansi.h" + #if DEBUG #include -#if STDC_HEADERS -#include -#endif /* Make it work even if the system's libc has its own mktime routine. */ #define mktime my_mktime #endif /* DEBUG */ diff --git a/lib/sh/netconn.c b/lib/sh/netconn.c index ae7c2499d..36e5bf5c7 100644 --- a/lib/sh/netconn.c +++ b/lib/sh/netconn.c @@ -4,19 +4,18 @@ 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public - License for more details. + 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. + along with Bash. If not, see . */ #include diff --git a/lib/sh/netopen.c b/lib/sh/netopen.c index d8eec7589..736d4138f 100644 --- a/lib/sh/netopen.c +++ b/lib/sh/netopen.c @@ -9,19 +9,19 @@ 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public - License for more details. + 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. */ + along with Bash. If not, see . +*/ #include diff --git a/lib/sh/oslib.c b/lib/sh/oslib.c index 90d7be9a7..d47f9dc80 100644 --- a/lib/sh/oslib.c +++ b/lib/sh/oslib.c @@ -4,19 +4,19 @@ 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, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA */ + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #include diff --git a/lib/sh/pathcanon.c b/lib/sh/pathcanon.c index 3b427a83c..98e41cedf 100644 --- a/lib/sh/pathcanon.c +++ b/lib/sh/pathcanon.c @@ -1,22 +1,22 @@ -/* pathcanon.c -- Canonicalize and manipulate pathnames. */ +/* pathcanon.c -- canonicalize and manipulate pathnames. */ /* Copyright (C) 2000 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. + 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #include diff --git a/lib/sh/pathphys.c b/lib/sh/pathphys.c index 1f73944a3..15fcd2500 100644 --- a/lib/sh/pathphys.c +++ b/lib/sh/pathphys.c @@ -1,22 +1,22 @@ -/* pathphys.c -- Return pathname with all symlinks expanded. */ +/* pathphys.c -- return pathname with all symlinks expanded. */ /* Copyright (C) 2000 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. + 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #include diff --git a/lib/sh/rename.c b/lib/sh/rename.c index d5c277857..e410b5e8d 100644 --- a/lib/sh/rename.c +++ b/lib/sh/rename.c @@ -6,19 +6,19 @@ 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public - License for more details. + 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. */ + along with Bash. If not, see . +*/ #include diff --git a/lib/sh/setlinebuf.c b/lib/sh/setlinebuf.c index 3c5d05660..6473ddfcc 100644 --- a/lib/sh/setlinebuf.c +++ b/lib/sh/setlinebuf.c @@ -4,19 +4,19 @@ 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, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA */ + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #include diff --git a/lib/sh/shmatch.c b/lib/sh/shmatch.c index f03a2ee52..6de1dc15f 100644 --- a/lib/sh/shmatch.c +++ b/lib/sh/shmatch.c @@ -1,24 +1,24 @@ +/* + * shmatch.c -- shell interface to posix regular expression matching. + */ + /* Copyright (C) 2003 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. + 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. */ - -/* - * shmatch.c -- shell interface to posix regular expression matching. - */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #ifdef HAVE_CONFIG_H # include diff --git a/lib/sh/shquote.c b/lib/sh/shquote.c index e992a6632..a267d3800 100644 --- a/lib/sh/shquote.c +++ b/lib/sh/shquote.c @@ -1,20 +1,22 @@ +/* shquote - functions to quote and dequote strings */ + /* Copyright (C) 1999 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. */ + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #include diff --git a/lib/sh/shtty.c b/lib/sh/shtty.c index 15cc82f80..0433f5e27 100644 --- a/lib/sh/shtty.c +++ b/lib/sh/shtty.c @@ -1,24 +1,24 @@ +/* + * shtty.c -- abstract interface to the terminal, focusing on capabilities. + */ + /* Copyright (C) 1999 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. + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - 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. */ + 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. -/* - * shtty.c -- abstract interface to the terminal, focusing on capabilities. - */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #ifdef HAVE_CONFIG_H # include @@ -85,7 +85,7 @@ ttrestore() ttsaved = 0; } -/* Retrieve the attributes associated with tty fd FD. */ +/* Retrieve the internally-saved attributes associated with tty fd FD. */ TTYSTRUCT * ttattr (fd) int fd; @@ -149,6 +149,17 @@ tt_setonechar(ttp) return 0; } +/* Set the tty associated with FD and TTP into one-character-at-a-time mode */ +int +ttfd_onechar (fd, ttp) + int fd; + TTYSTRUCT *ttp; +{ + if (tt_setonechar(ttp) < 0) + return -1; + return (ttsetattr (fd, ttp)); +} + /* Set the terminal into one-character-at-a-time mode */ int ttonechar () @@ -158,9 +169,7 @@ ttonechar () if (ttsaved == 0) return -1; tt = ttin; - if (tt_setonechar(&tt) < 0) - return -1; - return (ttsetattr (0, &tt)); + return (ttfd_onechar (0, &tt)); } /* @@ -180,6 +189,17 @@ tt_setnoecho(ttp) return 0; } +/* Set the tty associated with FD and TTP into no-echo mode */ +int +ttfd_noecho (fd, ttp) + int fd; + TTYSTRUCT *ttp; +{ + if (tt_setnoecho (ttp) < 0) + return -1; + return (ttsetattr (fd, ttp)); +} + /* Set the terminal into no-echo mode */ int ttnoecho () @@ -189,9 +209,7 @@ ttnoecho () if (ttsaved == 0) return -1; tt = ttin; - if (tt_setnoecho (&tt) < 0) - return -1; - return (ttsetattr (0, &tt)); + return (ttfd_noecho (0, &tt)); } /* @@ -213,6 +231,17 @@ tt_seteightbit (ttp) return 0; } +/* Set the tty associated with FD and TTP into eight-bit mode */ +int +ttfd_eightbit (fd, ttp) + int fd; + TTYSTRUCT *ttp; +{ + if (tt_seteightbit (ttp) < 0) + return -1; + return (ttsetattr (fd, ttp)); +} + /* Set the terminal into eight-bit mode */ int tteightbit () @@ -222,9 +251,7 @@ tteightbit () if (ttsaved == 0) return -1; tt = ttin; - if (tt_seteightbit (&tt) < 0) - return -1; - return (ttsetattr (0, &tt)); + return (ttfd_eightbit (0, &tt)); } /* @@ -242,6 +269,17 @@ tt_setnocanon (ttp) return 0; } +/* Set the tty associated with FD and TTP into non-canonical mode */ +int +ttfd_nocanon (fd, ttp) + int fd; + TTYSTRUCT *ttp; +{ + if (tt_setnocanon (ttp) < 0) + return -1; + return (ttsetattr (fd, ttp)); +} + /* Set the terminal into non-canonical mode */ int ttnocanon () @@ -251,9 +289,7 @@ ttnocanon () if (ttsaved == 0) return -1; tt = ttin; - if (tt_setnocanon (&tt) < 0) - return -1; - return (ttsetattr (0, &tt)); + return (ttfd_nocanon (0, &tt)); } /* @@ -269,6 +305,18 @@ tt_setcbreak(ttp) return (tt_setnoecho (ttp)); } +/* Set the tty associated with FD and TTP into cbreak (no-echo, + one-character-at-a-time) mode */ +int +ttfd_cbreak (fd, ttp) + int fd; + TTYSTRUCT *ttp; +{ + if (tt_setcbreak (ttp) < 0) + return -1; + return (ttsetattr (fd, ttp)); +} + /* Set the terminal into cbreak (no-echo, one-character-at-a-time) mode */ int ttcbreak () @@ -278,7 +326,5 @@ ttcbreak () if (ttsaved == 0) return -1; tt = ttin; - if (tt_setcbreak (&tt) < 0) - return -1; - return (ttsetattr (0, &tt)); + return (ttfd_cbreak (0, &tt)); } diff --git a/lib/sh/snprintf.c b/lib/sh/snprintf.c index 246a01aee..c406d4ad5 100644 --- a/lib/sh/snprintf.c +++ b/lib/sh/snprintf.c @@ -1,3 +1,5 @@ +/* snprintf - formatted output to strings, with bounds checking and allocation */ + /* build a test version with gcc -g -DDRIVER -I../.. -I../../include -o test-snprintf snprintf.c fmtu*long.o @@ -7,21 +9,22 @@ Unix snprintf implementation. derived from inetutils/libinetutils/snprintf.c Version 1.1 - Copyright (C) 2001 Free Software Foundation, Inc. + Copyright (C) 2001,2006 Free Software Foundation, Inc. + + This file is part of GNU Bash, the Bourne Again SHell. - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General License as published by - the Free Software Foundation; either version 2 of the License, or + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - - This program is distributed in the hope that it will be useful, + + 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 License for more details. - - You should have received a copy of the GNU General License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . Revision History: @@ -58,6 +61,11 @@ # include #endif +#if defined(DEBUG) +# undef HAVE_SNPRINTF +# undef HAVE_ASPRINTF +#endif + #if defined(DRIVER) && !defined(HAVE_CONFIG_H) #define HAVE_LONG_LONG #define HAVE_LONG_DOUBLE @@ -401,7 +409,7 @@ static void xfree __P((void *)); } \ } while (0) -#if defined (HAVE_LOCALE_H) +#if defined (HAVE_LOCALE_H) && defined (HAVE_LOCALECONV) # define GETLOCALEDATA(d, t, g) \ do \ { \ diff --git a/lib/sh/spell.c b/lib/sh/spell.c index cff20b24a..d0394c297 100644 --- a/lib/sh/spell.c +++ b/lib/sh/spell.c @@ -2,21 +2,21 @@ /* Copyright (C) 2000 Free Software Foundation, Inc. -This file is part of GNU Bash, the Bourne Again SHell. + 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. -Bash is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. + 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #include @@ -186,3 +186,27 @@ spdist(cur, new) return 3; } + +char * +dirspell (dirname) + char *dirname; +{ + int n; + char *guess; + + n = (strlen (dirname) * 3 + 1) / 2 + 1; + guess = (char *)malloc (n); + if (guess == 0) + return 0; + + switch (spname (dirname, guess)) + { + case -1: + default: + free (guess); + return (char *)NULL; + case 0: + case 1: + return guess; + } +} diff --git a/lib/sh/strcasecmp.c b/lib/sh/strcasecmp.c index 33d925ba8..5542f7155 100644 --- a/lib/sh/strcasecmp.c +++ b/lib/sh/strcasecmp.c @@ -4,19 +4,19 @@ 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, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA */ + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #include diff --git a/lib/sh/strerror.c b/lib/sh/strerror.c index 4990aa7e5..4081e9c19 100644 --- a/lib/sh/strerror.c +++ b/lib/sh/strerror.c @@ -4,19 +4,19 @@ 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, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA */ + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #include diff --git a/lib/sh/strftime.c b/lib/sh/strftime.c index 0783d28da..572baaee0 100644 --- a/lib/sh/strftime.c +++ b/lib/sh/strftime.c @@ -1,7 +1,7 @@ +/* strftime - formatted time and date to a string */ /* * Modified slightly by Chet Ramey for inclusion in Bash */ - /* * strftime.c * @@ -471,6 +471,8 @@ strftime(char *s, size_t maxsize, const char *format, const struct tm *timeptr) * us that muck around with various message processors. */ case 'z': /* time zone offset east of GMT e.g. -0600 */ + if (timeptr->tm_isdst < 0) + break; #ifdef HAVE_TM_NAME /* * Systems with tm_name probably have tm_tzadj as @@ -493,7 +495,7 @@ strftime(char *s, size_t maxsize, const char *format, const struct tm *timeptr) # ifdef HPUX off = -timezone / 60; # else - off = -(daylight ? timezone : altzone) / 60; + off = -(daylight ? altzone : timezone) / 60; # endif /* !HPUX */ #else /* !HAVE_TZNAME */ gettimeofday(& tv, & zone); diff --git a/lib/sh/strindex.c b/lib/sh/strindex.c index 917286289..5cb80ad3e 100644 --- a/lib/sh/strindex.c +++ b/lib/sh/strindex.c @@ -1,24 +1,23 @@ /* strindex.c - Find if one string appears as a substring of another string, without regard to case. */ -/* Copyright (C) 2000 - Free Software Foundation, Inc. +/* Copyright (C) 2000 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. + 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #include diff --git a/lib/sh/stringlist.c b/lib/sh/stringlist.c index efc6fa57f..b0c272ae9 100644 --- a/lib/sh/stringlist.c +++ b/lib/sh/stringlist.c @@ -4,19 +4,19 @@ 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. */ + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #include diff --git a/lib/sh/stringvec.c b/lib/sh/stringvec.c index 222fcd62e..b0ed41645 100644 --- a/lib/sh/stringvec.c +++ b/lib/sh/stringvec.c @@ -4,19 +4,19 @@ 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. */ + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #include diff --git a/lib/sh/strnlen.c b/lib/sh/strnlen.c index da8feecf7..10414d358 100644 --- a/lib/sh/strnlen.c +++ b/lib/sh/strnlen.c @@ -1,18 +1,22 @@ +/* strnlen - return length of passed string, with length limit */ + /* 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 file is part of GNU Bash, the Bourne Again SHell. + + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - This program is distributed in the hope that it will be useful, + 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 this program; if not, write to the Free Software Foundation, - Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + along with Bash. If not, see . +*/ #ifdef HAVE_CONFIG_H # include diff --git a/lib/sh/strpbrk.c b/lib/sh/strpbrk.c index 3c493a883..4439986a2 100644 --- a/lib/sh/strpbrk.c +++ b/lib/sh/strpbrk.c @@ -1,20 +1,25 @@ +/* strpbrk.c - locate multiple characters in a string */ + /* 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 file is part of GNU Bash, the Bourne Again SHell. + + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - This program is distributed in the hope that it will be useful, + 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 this program; if not, write to the Free Software Foundation, - Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + along with Bash. If not, see . +*/ #ifdef HAVE_CONFIG_H # include diff --git a/lib/sh/strstr.c b/lib/sh/strstr.c index c41e90349..c43b05e37 100644 --- a/lib/sh/strstr.c +++ b/lib/sh/strstr.c @@ -1,19 +1,22 @@ +/* strstr - find a substring within a string */ + /* Copyright (C) 1994, 1999 Free Software Foundation, Inc. -This file is part of the GNU C Library. -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 file is part of GNU Bash, the Bourne Again SHell. + + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. -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. + 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 this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ /* * My personal strstr() implementation that beats most other algorithms. diff --git a/lib/sh/strtod.c b/lib/sh/strtod.c index cc3bec966..851d99b9c 100644 --- a/lib/sh/strtod.c +++ b/lib/sh/strtod.c @@ -1,18 +1,22 @@ +/* strtod.c - convert string to double-precision floating-point value. */ + /* Copyright (C) 1991, 1992 Free Software Foundation, Inc. - This program is free software; you can redistribute it and/or modify + 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. + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - This program is distributed in the hope that it will be useful, + 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 this program; if not, write to the Free Software Foundation, - Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + along with Bash. If not, see . +*/ #if HAVE_CONFIG_H # include diff --git a/lib/sh/strtoimax.c b/lib/sh/strtoimax.c index e20c4cc56..373f66a0a 100644 --- a/lib/sh/strtoimax.c +++ b/lib/sh/strtoimax.c @@ -1,19 +1,22 @@ -/* Convert string representation of a number into an intmax_t value. - Copyright 1999-2005 Free Software Foundation, Inc. +/* strtoimax - convert string representation of a number into an intmax_t value. */ - This program is free software; you can redistribute it and/or modify +/* Copyright 1999-2005 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. + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - This program is distributed in the hope that it will be useful, + 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 this program; if not, write to the Free Software Foundation, - Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + along with Bash. If not, see . +*/ /* Written by Paul Eggert. Modified by Chet Ramey for Bash. */ diff --git a/lib/sh/strtol.c b/lib/sh/strtol.c index 2adbb897a..8aa747880 100644 --- a/lib/sh/strtol.c +++ b/lib/sh/strtol.c @@ -1,21 +1,22 @@ -/* Convert string representation of a number into an integer value. - Copyright (C) 1991,92,94,95,96,97,98,99,2000,2001 Free Software Foundation, Inc. - This file is part of the GNU C Library. +/* strtol - convert string representation of a number into a long integer value. */ - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. +/* Copyright (C) 1991,92,94,95,96,97,98,99,2000,2001 Free Software Foundation, Inc. - The GNU C Library is distributed in the hope that it will be useful, + This file is part of GNU Bash, the Bourne Again SHell. + + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. + 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 Lesser General Public - License along with the GNU C Library; if not, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #include diff --git a/lib/sh/strtoll.c b/lib/sh/strtoll.c index 20004973e..f6060eefa 100644 --- a/lib/sh/strtoll.c +++ b/lib/sh/strtoll.c @@ -1,18 +1,22 @@ +/* strtoll - convert string representation of a number into a long long value. */ + /* Copyright (C) 1997 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 file is part of GNU Bash, the Bourne Again SHell. + + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. -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. + 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 this program; if not, write to the Free Software Foundation, -Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #include diff --git a/lib/sh/strtoul.c b/lib/sh/strtoul.c index 4a75d76eb..cbaa48452 100644 --- a/lib/sh/strtoul.c +++ b/lib/sh/strtoul.c @@ -1,18 +1,22 @@ +/* strtoul - convert string representation of a number into an unsigned long value. */ + /* Copyright (C) 1997 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 file is part of GNU Bash, the Bourne Again SHell. + + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. -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. + 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 this program; if not, write to the Free Software Foundation, -Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #include diff --git a/lib/sh/strtoull.c b/lib/sh/strtoull.c index 09a2fac95..02ddebb90 100644 --- a/lib/sh/strtoull.c +++ b/lib/sh/strtoull.c @@ -1,18 +1,22 @@ +/* strtoull - convert string representation of a number into an unsigned long long value. */ + /* Copyright (C) 1997 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 file is part of GNU Bash, the Bourne Again SHell. + + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. -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. + 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 this program; if not, write to the Free Software Foundation, -Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #include diff --git a/lib/sh/strtoumax.c b/lib/sh/strtoumax.c index e723d4918..3652b1e30 100644 --- a/lib/sh/strtoumax.c +++ b/lib/sh/strtoumax.c @@ -1,20 +1,22 @@ -/* Convert string representation of a number into an uintmax_t value. - Copyright 1999-2005 Free Software Foundation, Inc. +/* strtoumax - convert string representation of a number into an uintmax_t value. */ - This program is free software; you can redistribute it and/or modify +/* Copyright 1999-2005 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. + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - This program is distributed in the hope that it will be useful, + 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 this program; if not, write to the Free Software Foundation, - Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - + along with Bash. If not, see . +*/ /* Written by Paul Eggert. Modified by Chet Ramey for Bash. */ #if HAVE_CONFIG_H diff --git a/lib/sh/strtrans.c b/lib/sh/strtrans.c index 1f0290e3d..355a3061e 100644 --- a/lib/sh/strtrans.c +++ b/lib/sh/strtrans.c @@ -1,24 +1,22 @@ -/* strtrans.c - Translate and untranslate strings with ANSI-C escape - sequences. */ +/* strtrans.c - Translate and untranslate strings with ANSI-C escape sequences. */ -/* Copyright (C) 2000 - Free Software Foundation, Inc. +/* Copyright (C) 2000 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. + 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #include diff --git a/lib/sh/times.c b/lib/sh/times.c index 7136cf20a..47ddf5772 100644 --- a/lib/sh/times.c +++ b/lib/sh/times.c @@ -4,19 +4,19 @@ 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. */ + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #include diff --git a/lib/sh/timeval.c b/lib/sh/timeval.c index f7f624eba..7bd9df8f6 100644 --- a/lib/sh/timeval.c +++ b/lib/sh/timeval.c @@ -4,19 +4,19 @@ 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. */ + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #include diff --git a/lib/sh/tmpfile.c b/lib/sh/tmpfile.c index 5f2279d0e..a87c254fb 100644 --- a/lib/sh/tmpfile.c +++ b/lib/sh/tmpfile.c @@ -6,19 +6,19 @@ 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public - License for more details. + 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. */ + along with Bash. If not, see . +*/ #include @@ -91,6 +91,9 @@ get_tmpdir (flags) char *tdir; tdir = (flags & MT_USETMPDIR) ? get_string_value ("TMPDIR") : (char *)NULL; + if (tdir && (file_iswdir (tdir) == 0 || strlen (tdir) > PATH_MAX)) + tdir = 0; + if (tdir == 0) tdir = get_sys_tmpdir (); diff --git a/lib/sh/uconvert.c b/lib/sh/uconvert.c new file mode 100644 index 000000000..100956532 --- /dev/null +++ b/lib/sh/uconvert.c @@ -0,0 +1,116 @@ +/* uconvert - convert string representations of decimal numbers into whole + number/fractional value pairs. */ + +/* Copyright (C) 2008,2009 Free Software Foundation, Inc. + + This file is part of GNU Bash, the Bourne Again SHell. + + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ + +#include "config.h" + +#include "bashtypes.h" + +#if defined (TIME_WITH_SYS_TIME) +# include +# include +#else +# if defined (HAVE_SYS_TIME_H) +# include +# else +# include +# endif +#endif + +#if defined (HAVE_UNISTD_H) +#include +#endif + +#include +#include "chartypes.h" + +#include "shell.h" +#include "builtins.h" + +#define DECIMAL '.' /* XXX - should use locale */ + +#define RETURN(x) \ +do { \ + if (ip) *ip = ipart * mult; \ + if (up) *up = upart; \ + return (x); \ +} while (0) + +/* + * An incredibly simplistic floating point converter. + */ +static int multiplier[7] = { 1, 100000, 10000, 1000, 100, 10, 1 }; + +/* Take a decimal number int-part[.[micro-part]] and convert it to the whole + and fractional portions. The fractional portion is returned in + millionths (micro); callers are responsible for multiplying appropriately. + Return 1 if value converted; 0 if invalid integer for either whole or + fractional parts. */ +int +uconvert(s, ip, up) + char *s; + long *ip, *up; +{ + int n, mult; + long ipart, upart; + char *p; + + ipart = upart = 0; + mult = 1; + + if (s && (*s == '-' || *s == '+')) + { + mult = (*s == '-') ? -1 : 1; + p = s + 1; + } + else + p = s; + + for ( ; p && *p; p++) + { + if (*p == DECIMAL) /* decimal point */ + break; + if (DIGIT(*p) == 0) + RETURN(0); + ipart = (ipart * 10) + (*p - '0'); + } + + if (*p == 0) + RETURN(1); + + if (*p == DECIMAL) + p++; + + /* Look for up to six digits past a decimal point. */ + for (n = 0; n < 6 && p[n]; n++) + { + if (DIGIT(p[n]) == 0) + RETURN(0); + upart = (upart * 10) + (p[n] - '0'); + } + + /* Now convert to millionths */ + upart *= multiplier[n]; + + if (n == 6 && p[6] >= '5' && p[6] <= '9') + upart++; /* round up 1 */ + + RETURN(1); +} diff --git a/lib/sh/ufuncs.c b/lib/sh/ufuncs.c new file mode 100644 index 000000000..ed526feef --- /dev/null +++ b/lib/sh/ufuncs.c @@ -0,0 +1,104 @@ +/* ufuncs - sleep and alarm functions that understand fractional values */ + +/* Copyright (C) 2008,2009 Free Software Foundation, Inc. + + This file is part of GNU Bash, the Bourne Again SHell. + + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ + +#include "config.h" + +#include "bashtypes.h" + +#if defined (TIME_WITH_SYS_TIME) +# include +# include +#else +# if defined (HAVE_SYS_TIME_H) +# include +# else +# include +# endif +#endif + +#if defined (HAVE_UNISTD_H) +#include +#endif + +/* A version of `alarm' using setitimer if it's available. */ + +#if defined (HAVE_SETITIMER) +unsigned int +falarm(secs, usecs) + unsigned int secs, usecs; +{ + struct itimerval it, oit; + + it.it_interval.tv_sec = 0; + it.it_interval.tv_usec = 0; + + it.it_value.tv_sec = secs; + it.it_value.tv_usec = usecs; + + if (setitimer(ITIMER_REAL, &it, &oit) < 0) + return (-1); /* XXX will be converted to unsigned */ + + /* Backwards compatibility with alarm(3) */ + if (oit.it_value.tv_usec) + oit.it_value.tv_sec++; + return (oit.it_value.tv_sec); +} +#else +int +falarm (secs, usecs) + unsigned int secs, usecs; +{ + if (secs == 0 && usecs == 0) + return (alarm (0)); + + if (secs == 0 || usecs >= 500000) + { + secs++; + usecs = 0; + } + return (alarm (secs)); +} +#endif /* !HAVE_SETITIMER */ + +/* A version of sleep using fractional seconds and select. I'd like to use + `usleep', but it's already taken */ + +#if defined (HAVE_TIMEVAL) && defined (HAVE_SELECT) +int +fsleep(sec, usec) + unsigned int sec, usec; +{ + struct timeval tv; + + tv.tv_sec = sec; + tv.tv_usec = usec; + + return select(0, (fd_set *)0, (fd_set *)0, (fd_set *)0, &tv); +} +#else /* !HAVE_TIMEVAL || !HAVE_SELECT */ +int +fsleep(sec, usec) + long sec, usec; +{ + if (usec >= 500000) /* round */ + sec++; + return (sleep(sec)); +} +#endif /* !HAVE_TIMEVAL || !HAVE_SELECT */ diff --git a/lib/sh/vprint.c b/lib/sh/vprint.c index 929bdbcea..567fba384 100644 --- a/lib/sh/vprint.c +++ b/lib/sh/vprint.c @@ -2,21 +2,21 @@ /* Copyright (C) 1987,1989 Free Software Foundation, Inc. -This file is part of GNU Bash, the Bourne Again SHell. + 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. -Bash is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. + 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #include diff --git a/lib/sh/wcsdup.c b/lib/sh/wcsdup.c index e04530772..62a3c8641 100644 --- a/lib/sh/wcsdup.c +++ b/lib/sh/wcsdup.c @@ -1,22 +1,22 @@ -/* wcsdup.c - wcsdup(3) library function */ +/* wcsdup.c - duplicate wide character string */ /* Copyright (C) 2006 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. + 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #include diff --git a/lib/sh/winsize.c b/lib/sh/winsize.c index f4696de0a..81ebb378c 100644 --- a/lib/sh/winsize.c +++ b/lib/sh/winsize.c @@ -1,22 +1,22 @@ -/* Handle window size changes and information. */ +/* winsize.c - handle window size changes and information. */ /* Copyright (C) 2005 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. + 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #include "config.h" diff --git a/lib/sh/xstrchr.c b/lib/sh/xstrchr.c index 3272837a1..6dd4d8ed2 100644 --- a/lib/sh/xstrchr.c +++ b/lib/sh/xstrchr.c @@ -4,19 +4,19 @@ 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. */ + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #include diff --git a/lib/sh/zcatfd.c b/lib/sh/zcatfd.c index 24020ebc7..bdbcd9105 100644 --- a/lib/sh/zcatfd.c +++ b/lib/sh/zcatfd.c @@ -1,20 +1,22 @@ +/* zcatfd - copy contents of file descriptor to another */ + /* Copyright (C) 2002 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. - 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #include diff --git a/lib/sh/zgetline.c b/lib/sh/zgetline.c new file mode 100644 index 000000000..20069e901 --- /dev/null +++ b/lib/sh/zgetline.c @@ -0,0 +1,115 @@ +/* zgetline - read a line of input from a specified file descriptor and return + a pointer to a newly-allocated buffer containing the data. */ + +/* Copyright (C) 2008,2009 Free Software Foundation, Inc. + + This file is part of GNU Bash, the Bourne Again SHell. + + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ + +#include + +#include + +#if defined (HAVE_UNISTD_H) +# include +#endif + +#include +#include "xmalloc.h" + +#if !defined (errno) +extern int errno; +#endif + +extern ssize_t zread __P((int, char *, size_t)); +extern ssize_t zreadc __P((int, char *)); + +/* Initial memory allocation for automatic growing buffer in zreadlinec */ +#define GET_LINE_INITIAL_ALLOCATION 16 + +/* Derived from GNU libc's getline. + The behavior is almost the same as getline. See man getline. + The differences are + (1) using file descriptor instead of FILE *, + (2) the order of arguments; the file descriptor comes the first, and + (3) the addtion of thired argument, UNBUFFERED_READ; this argument + controls whether get_line uses buffering or not to get a byte data + from FD. get_line uses zreadc if UNBUFFERED_READ is zero; and + uses zread if UNBUFFERED_READ is non-zero. + + Returns number of bytes read or -1 on error. */ + +ssize_t +zgetline (fd, lineptr, n, unbuffered_read) + int fd; + char **lineptr; + size_t *n; + int unbuffered_read; +{ + int nr, retval; + char *line, c; + + if (lineptr == 0 || n == 0 || (*lineptr == 0 && *n != 0)) + return -1; + + nr = 0; + line = *lineptr; + + while (1) + { + retval = unbuffered_read ? zread (fd, &c, 1) : zreadc(fd, &c); + + if (retval <= 0) + { + line[nr] = '\0'; + break; + } + + if (nr + 2 >= *n) + { + size_t new_size; + + new_size = (*n == 0) ? GET_LINE_INITIAL_ALLOCATION : *n * 2; + line = xrealloc (*lineptr, new_size); + + if (line) + { + *lineptr = line; + *n = new_size; + } + else + { + if (*n > 0) + { + (*lineptr)[*n - 1] = '\0'; + nr = *n - 2; + } + break; + } + } + + line[nr] = c; + nr++; + + if (c == '\n') + { + line[nr] = '\0'; + break; + } + } + + return nr - 1; +} diff --git a/lib/sh/zmapfd.c b/lib/sh/zmapfd.c new file mode 100644 index 000000000..4000c4a5a --- /dev/null +++ b/lib/sh/zmapfd.c @@ -0,0 +1,90 @@ +/* zmapfd - read contents of file descriptor into a newly-allocated buffer */ + +/* Copyright (C) 2006 Free Software Foundation, Inc. + + This file is part of GNU Bash, the Bourne Again SHell. + + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ + +#include + +#include + +#if defined (HAVE_UNISTD_H) +# include +#endif + +#include + +#include "bashansi.h" +#include "command.h" +#include "general.h" + +#if !defined (errno) +extern int errno; +#endif + +extern ssize_t zread __P((int, char *, size_t)); + +/* Dump contents of file descriptor FD to *OSTR. FN is the filename for + error messages (not used right now). */ +int +zmapfd (fd, ostr, fn) + int fd; + char **ostr; + char *fn; +{ + ssize_t nr; + int rval; + char lbuf[128]; + char *result; + int rsize, rind; + + rval = 0; + result = (char *)xmalloc (rsize = 64); + rind = 0; + + while (1) + { + nr = zread (fd, lbuf, sizeof (lbuf)); + if (nr == 0) + { + rval = rind; + break; + } + else if (nr < 0) + { + rval = -1; + free (result); + if (ostr) + *ostr = (char *)NULL; + break; + } + + RESIZE_MALLOCED_BUFFER (result, rind, nr, rsize, 128); + memcpy (result+rind, lbuf, nr); + rind += nr; + } + + RESIZE_MALLOCED_BUFFER (result, rind, 1, rsize, 128); + result[rind] = '\0'; + + if (ostr) + *ostr = result; + else + free (result); + + return rval; +} diff --git a/lib/sh/zread.c b/lib/sh/zread.c index 460234b99..94c426ff0 100644 --- a/lib/sh/zread.c +++ b/lib/sh/zread.c @@ -1,20 +1,22 @@ +/* zread - read data from file descriptor into buffer with retries */ + /* Copyright (C) 1999-2002 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. */ + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #include diff --git a/lib/sh/zwrite.c b/lib/sh/zwrite.c index cf1f9e62a..3240f4f42 100644 --- a/lib/sh/zwrite.c +++ b/lib/sh/zwrite.c @@ -1,20 +1,22 @@ +/* zwrite - write contents of buffer to file descriptor, retrying on error */ + /* Copyright (C) 1999-2002 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. */ + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #include diff --git a/lib/termcap/Makefile.in b/lib/termcap/Makefile.in index bf5639f5c..aeee47fe5 100644 --- a/lib/termcap/Makefile.in +++ b/lib/termcap/Makefile.in @@ -4,21 +4,20 @@ # # #################################################################### -# Copyright (C) 1996-2005 Free Software Foundation, Inc. +# Copyright (C) 1996-2009 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 free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# 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. +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . srcdir = @srcdir@ VPATH = .:@srcdir@ diff --git a/lib/termcap/grot/COPYING b/lib/termcap/grot/COPYING deleted file mode 100644 index 2b940a412..000000000 --- a/lib/termcap/grot/COPYING +++ /dev/null @@ -1,347 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc. - 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - -The Free Software Foundation has exempted Bash from the requirement of -Paragraph 2c of the General Public License. This is to say, there is -no requirement for Bash to print a notice when it is started -interactively in the usual way. We made this exception because users -and standards expect shells not to print such messages. This -exception applies to any program that serves as a shell and that is -based primarily on Bash as opposed to other GNU software. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Library General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - Appendix: How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) 19yy - - 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 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) 19yy name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Library General -Public License instead of this License. diff --git a/lib/termcap/grot/ChangeLog b/lib/termcap/grot/ChangeLog deleted file mode 100644 index e8c475120..000000000 --- a/lib/termcap/grot/ChangeLog +++ /dev/null @@ -1,137 +0,0 @@ -Wed Aug 16 20:45:44 1995 David J. MacKenzie - - * version.c: Version 1.3. - - * termcap.c (tgetent): Use the user-supplied buffer even if we - don't find a matching terminal, so the program can set the buffer - if they want (`less' does this). From Bob Pegram - . - -Wed Jul 26 11:44:51 1995 David J. MacKenzie - - * termcap.c: TERMCAP_NAME -> TERMCAP_FILE. - - * configure.in: Add --enable-install-termcap and --with-termcap - options. - - * Makefile.in: Add hooks for new configure options. - - * Makefile.in (DISTFILES): Add termcap.src. - (DEFS): Remove -DNO_ARG_ARRAY. - (install-data, uninstall-data): New targets. - - * tparam.c (tparam): Remove arg array version and the #ifdef. - - * termcap.c: Move #define of bcopy to after #include . - - * termcap.h: Prototype the arg to the tputs outfun arg. - - * Makefile.in: realclean -> maintainer-clean. Use @prefix@ and - @exec_prefix@. - - * Makefile.in (DISTFILES): Add install-sh. - -Fri Apr 7 14:57:45 1995 Richard Stallman - - * termcap.c (tgetent): Don't try to return the allocated address. - Always return 1 if successful. - -Tue Feb 14 02:34:43 1995 Richard Stallman - - * termcap.c (speeds): Make it ints. Add some higher speeds. - (tputs) [emacs]: If speed is high, convert to smaller units. - (tputs): Really use SPEED to calculate PADCOUNT. - -Sat Dec 17 07:20:24 1994 Richard Stallman - - * termcap.c (tgetst1): Let ^? stand for DEL character. - -Thu Jun 30 04:35:50 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu) - - * configure.in: Use AC_HAVE_HEADERS instead of AC_UNISTD_H. - Add AC_PROG_RANLIB. - * Makefile.in (AR, RANLIB): New variables. - (install, libtermcap.a): Use them instead of hard-wired commands. - -Sat Jun 4 12:21:41 1994 Roland McGrath (roland@geech.gnu.ai.mit.edu) - - * termcap.c [HAVE_CONFIG_H]: Include , and include - #ifdef USG5, so we get O_* defns. - -Wed May 25 19:05:30 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu) - - * termcap.c (O_RDONLY): Define to 0 if not already defined. - (tgetent): Use O_RDONLY instead of explicit 0 in call to open. - -Wed Jan 5 22:20:15 1993 Morten Welinder (terra@diku.dk) - - * termcap.c (tgetent) [INTERNAL_TERMINAL]: Fake internal terminal - without reading any files. - (valid_file_name, tgetent) [MSDOS]: Drive letter support. - (tgetent) [MSDOS]: Use text mode for database. - -Fri Dec 17 00:22:43 1993 Mike Long (mike.long@analog.com) - - * termcap.c (tgetent): Replaced literal filenames for termcap - database with preprocessor symbol TERMCAP_NAME. - (TERMCAP_NAME): Define if not defined. - -Fri Sep 10 00:35:07 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) - - * Makefile.in (.c.o): Put -I. before -I$(srcdir). - * termcap.c: Include instead of "config.h". - * tparam.c: Likewise. - -Thu Jul 29 20:53:30 1993 David J. MacKenzie (djm@wookumz.gnu.ai.mit.edu) - - * Makefile.in (config.status): Run config.status --recheck, not - configure, to get the right args passed. - -Thu Apr 15 12:45:10 1993 David J. MacKenzie (djm@kropotkin.gnu.ai.mit.edu) - - * Version 1.2. - - * tparam.c [!emacs] (xmalloc, xrealloc, memory_out): New functions. - (tparam1): Use them. - - * termcap.c, tparam.c: Use NULL or '\0' where appropriate - instead of 0. Rename some vars. - * termcap.c (tgetent): If EOF is reached on termcap file, - free allocated resources before returning. - - * termcap.c (tgetent): Use /etc/termcap if TERMCAP is an entry - for a term type other than TERM. - From pjr@jet.UK (Paul J Rippin). - -Sat Apr 10 23:55:12 1993 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * tparam.c (tparam1): Don't set the 0200 bit on a non-0 character code. - From junio@twinsun.COM (Junio Hamano). - -Tue Dec 8 22:02:15 1992 David J. MacKenzie (djm@kropotkin.gnu.ai.mit.edu) - - * termcap.c, tparam.c: Use HAVE_STRING_H instead of USG. - -Thu Dec 3 13:47:56 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu) - - * termcap.c, tparam.c [HAVE_CONFIG_H]: Include config.h. - -Fri Oct 23 12:35:29 1992 David J. MacKenzie (djm@goldman.gnu.ai.mit.edu) - - * termcap.h [__STDC__]: Add consts. From Franc,ois Pinard. - -Tue Oct 13 15:52:21 1992 David J. MacKenzie (djm@goldman.gnu.ai.mit.edu) - - * Version 1.1. - -Tue Sep 29 21:04:39 1992 David J. MacKenzie (djm@geech.gnu.ai.mit.edu) - - * termcap.[ch], tparam.c: Fix some lint. - - * version.c: New file. - -Local Variables: -mode: indented-text -left-margin: 8 -version-control: never -End: diff --git a/lib/termcap/grot/INSTALL b/lib/termcap/grot/INSTALL deleted file mode 100644 index 95d84c820..000000000 --- a/lib/termcap/grot/INSTALL +++ /dev/null @@ -1,176 +0,0 @@ -Basic Installation -================== - - These are generic installation instructions. - - The `configure' shell script attempts to guess correct values for -various system-dependent variables used during compilation. It uses -those values to create a `Makefile' in each directory of the package. -It may also create one or more `.h' files containing system-dependent -definitions. Finally, it creates a shell script `config.status' that -you can run in the future to recreate the current configuration, a file -`config.cache' that saves the results of its tests to speed up -reconfiguring, and a file `config.log' containing compiler output -(useful mainly for debugging `configure'). - - If you need to do unusual things to compile the package, please try -to figure out how `configure' could check whether to do them, and mail -diffs or instructions to the address given in the `README' so they can -be considered for the next release. If at some point `config.cache' -contains results you don't want to keep, you may remove or edit it. - - The file `configure.in' is used to create `configure' by a program -called `autoconf'. You only need `configure.in' if you want to change -it or regenerate `configure' using a newer version of `autoconf'. - -The simplest way to compile this package is: - - 1. `cd' to the directory containing the package's source code and type - `./configure' to configure the package for your system. If you're - using `csh' on an old version of System V, you might need to type - `sh ./configure' instead to prevent `csh' from trying to execute - `configure' itself. - - Running `configure' takes awhile. While running, it prints some - messages telling which features it is checking for. - - 2. Type `make' to compile the package. - - 3. Optionally, type `make check' to run any self-tests that come with - the package. - - 4. Type `make install' to install the programs and any data files and - documentation. - - 5. You can remove the program binaries and object files from the - source code directory by typing `make clean'. To also remove the - files that `configure' created (so you can compile the package for - a different kind of computer), type `make distclean'. There is - also a `make maintainer-clean' target, but that is intended mainly - for the package's developers. If you use it, you may have to get - all sorts of other programs in order to regenerate files that came - with the distribution. - -Compilers and Options -===================== - - Some systems require unusual options for compilation or linking that -the `configure' script does not know about. You can give `configure' -initial values for variables by setting them in the environment. Using -a Bourne-compatible shell, you can do that on the command line like -this: - CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure - -Or on systems that have the `env' program, you can do it like this: - env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure - -Compiling For Multiple Architectures -==================================== - - You can compile the package for more than one kind of computer at the -same time, by placing the object files for each architecture in their -own directory. To do this, you must use a version of `make' that -supports the `VPATH' variable, such as GNU `make'. `cd' to the -directory where you want the object files and executables to go and run -the `configure' script. `configure' automatically checks for the -source code in the directory that `configure' is in and in `..'. - - If you have to use a `make' that does not supports the `VPATH' -variable, you have to compile the package for one architecture at a time -in the source code directory. After you have installed the package for -one architecture, use `make distclean' before reconfiguring for another -architecture. - -Installation Names -================== - - By default, `make install' will install the package's files in -`/usr/local/bin', `/usr/local/man', etc. You can specify an -installation prefix other than `/usr/local' by giving `configure' the -option `--prefix=PATH'. - - You can specify separate installation prefixes for -architecture-specific files and architecture-independent files. If you -give `configure' the option `--exec-prefix=PATH', the package will use -PATH as the prefix for installing programs and libraries. -Documentation and other data files will still use the regular prefix. - - If the package supports it, you can cause programs to be installed -with an extra prefix or suffix on their names by giving `configure' the -option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. - -Optional Features -================= - - Some packages pay attention to `--enable-FEATURE' options to -`configure', where FEATURE indicates an optional part of the package. -They may also pay attention to `--with-PACKAGE' options, where PACKAGE -is something like `gnu-as' or `x' (for the X Window System). The -`README' should mention any `--enable-' and `--with-' options that the -package recognizes. - - For packages that use the X Window System, `configure' can usually -find the X include and library files automatically, but if it doesn't, -you can use the `configure' options `--x-includes=DIR' and -`--x-libraries=DIR' to specify their locations. - -Specifying the System Type -========================== - - There may be some features `configure' can not figure out -automatically, but needs to determine by the type of host the package -will run on. Usually `configure' can figure that out, but if it prints -a message saying it can not guess the host type, give it the -`--host=TYPE' option. TYPE can either be a short name for the system -type, such as `sun4', or a canonical name with three fields: - CPU-COMPANY-SYSTEM - -See the file `config.sub' for the possible values of each field. If -`config.sub' isn't included in this package, then this package doesn't -need to know the host type. - - If you are building compiler tools for cross-compiling, you can also -use the `--target=TYPE' option to select the type of system they will -produce code for and the `--build=TYPE' option to select the type of -system on which you are compiling the package. - -Sharing Defaults -================ - - If you want to set default values for `configure' scripts to share, -you can create a site shell script called `config.site' that gives -default values for variables like `CC', `cache_file', and `prefix'. -`configure' looks for `PREFIX/share/config.site' if it exists, then -`PREFIX/etc/config.site' if it exists. Or, you can set the -`CONFIG_SITE' environment variable to the location of the site script. -A warning: not all `configure' scripts look for a site script. - -Operation Controls -================== - - `configure' recognizes the following options to control how it -operates. - -`--cache-file=FILE' - Use and save the results of the tests in FILE instead of - `./config.cache'. Set FILE to `/dev/null' to disable caching, for - debugging `configure'. - -`--help' - Print a summary of the options to `configure', and exit. - -`--quiet' -`--silent' -`-q' - Do not print messages saying which checks are being made. - -`--srcdir=DIR' - Look for the package's source code in directory DIR. Usually - `configure' can determine that directory automatically. - -`--version' - Print the version of Autoconf used to generate the `configure' - script, and exit. - -`configure' also accepts some other, not widely useful, options. - diff --git a/lib/termcap/grot/Makefile.in b/lib/termcap/grot/Makefile.in deleted file mode 100644 index e6f06ae6d..000000000 --- a/lib/termcap/grot/Makefile.in +++ /dev/null @@ -1,138 +0,0 @@ -# Makefile for GNU termcap library. -# Copyright (C) 1992, 1993, 1994 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. - -#### Start of system configuration section. #### - -srcdir = @srcdir@ -VPATH = @srcdir@ - -CC = @CC@ -AR = ar -RANLIB = @RANLIB@ - -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ - -MAKEINFO = makeinfo - -DEFS = @DEFS@ -DTERMCAP_FILE=\"$(termcapfile)\" - -CFLAGS = -g - -prefix = @prefix@ -exec_prefix = @exec_prefix@ - -# Directory in which to install libtermcap.a. -libdir = $(exec_prefix)/lib - -# Directory in which to install termcap.h. -includedir = $(prefix)/include - -# Directory in which to optionally also install termcap.h, -# so compilers besides gcc can find it by default. -# If it is empty or not defined, termcap.h will only be installed in -# includedir. -oldincludedir = /usr/include - -# Directory in which to install the documentation info files. -infodir = $(prefix)/info - -# File to which `install-data' should install the data file -# if --enable-install-termcap was given. -termcapfile = @termcapfile@ - -#### End of system configuration section. #### - -SHELL = /bin/sh - -SRCS = termcap.c tparam.c version.c -OBJS = termcap.o tparam.o version.o -HDRS = termcap.h -DISTFILES = $(SRCS) $(HDRS) ChangeLog COPYING README INSTALL NEWS \ -termcap.src termcap.texi termcap.info* \ -texinfo.tex Makefile.in configure configure.in mkinstalldirs install-sh - -all: libtermcap.a info - -.c.o: - $(CC) -c $(CPPFLAGS) $(DEFS) -I. -I$(srcdir) $(CFLAGS) $< - -install: all installdirs @installdata@ - $(INSTALL_DATA) libtermcap.a $(libdir)/libtermcap.a - -$(RANLIB) $(libdir)/libtermcap.a - cd $(srcdir); $(INSTALL_DATA) termcap.h $(includedir)/termcap.h - -cd $(srcdir); test -z "$(oldincludedir)" || \ - $(INSTALL_DATA) termcap.h $(oldincludedir)/termcap.h - cd $(srcdir); for f in termcap.info*; \ - do $(INSTALL_DATA) $$f $(infodir)/$$f; done - -uninstall: @uninstalldata@ - rm -f $(libdir)/libtermcap.a $(includedir)/termcap.h - test -z "$(oldincludedir)" || rm -f $(oldincludedir)/termcap.h - rm -f $(infodir)/termcap.info* - -# These are separate targets to avoid trashing the user's existing -# termcap file unexpectedly. -install-data: - $(INSTALL_DATA) ${srcdir}/termcap.src ${termcapfile} - -uninstall-data: - rm -f ${termcapfile} - -installdirs: - $(SHELL) ${srcdir}/mkinstalldirs $(bindir) $(libdir) \ - $(includedir) $(infodir) - -Makefile: Makefile.in config.status - $(SHELL) config.status -config.status: configure - $(SHELL) config.status --recheck -configure: configure.in - cd $(srcdir) && autoconf - -libtermcap.a: $(OBJS) - $(AR) rc $@ $(OBJS) - -$(RANLIB) $@ - -info: termcap.info - -termcap.info: termcap.texi - $(MAKEINFO) $(srcdir)/termcap.texi --output=$@ - -TAGS: $(SRCS) - etags $(SRCS) - -clean: - rm -f *.a *.o core - -mostlyclean: clean - -distclean: clean - rm -f Makefile config.status config.cache config.log - -maintainer-clean: distclean - @echo "This command is intended for maintainers to use;" - @echo "rebuilding the deleted files requires makeinfo." - rm -f TAGS *.info* - -dist: $(DISTFILES) - echo termcap-`sed -e '/version_string/!d' -e 's/[^0-9]*\([0-9a-z.]*\).*/\1/' -e q version.c` > .fname - rm -rf `cat .fname` - mkdir `cat .fname` - ln $(DISTFILES) `cat .fname` - tar chzf `cat .fname`.tar.gz `cat .fname` - rm -rf `cat .fname` .fname diff --git a/lib/termcap/grot/NEWS b/lib/termcap/grot/NEWS deleted file mode 100644 index e5d58b9ea..000000000 --- a/lib/termcap/grot/NEWS +++ /dev/null @@ -1,20 +0,0 @@ -Major changes in release 1.3: - -Termcap data file is now included in distribution and may optionally - be installed, or used in a non-default location. -Support for a fake internal terminal (no external files). -Higher tty speeds supported. -Portability tweaks. - -Major changes in release 1.2: - -For `%.', only set the high bit on NUL. -Fix a file descriptor and memory leak. -Add const in termcap.h prototypes. -Configuration improvements. - -Major changes in release 1.1: - -Fix portability problems. -Improve configuration and installation. -Fix compiler warnings. diff --git a/lib/termcap/grot/README b/lib/termcap/grot/README deleted file mode 100644 index ba1a19c93..000000000 --- a/lib/termcap/grot/README +++ /dev/null @@ -1,34 +0,0 @@ -This is the GNU termcap library -- a library of C functions that -enable programs to send control strings to terminals in a way -independent of the terminal type. The GNU termcap library does not -place an arbitrary limit on the size of termcap entries, unlike most -other termcap libraries. - -Most of this package is also distributed with GNU Emacs, but it is -available in this separate distribution to make it easier to install -as -ltermcap. However, use of termcap is discouraged. Termcap is -being phased out in favor of the terminfo-based ncurses library, which -contains an emulation of the termcap library routines in addition to -an excellent curses implementation. ncurses is available from the -usual GNU archive sites. - -See the file INSTALL for compilation and installation instructions. -Additionally: - -This package contains termcap.src, the latest official termcap data -file. By default, it is not installed. The current version contains -some entries that are more than 1023 bytes long, which is the largest -value that is safe to use with the many historical applications that -only allocate a 1024 byte termcap buffer (telnet, for example). If -you make sure that all of your programs allocate buffers of at least -2500 bytes, or let the termcap library do it by passing a NULL -pointer, then it is safe to install the new termcap file, as described -below. - -You can give configure two special options: - --enable-install-termcap install the termcap data file - --with-termcap=FILE use data file FILE instead of /etc/termcap - -Please report any bugs in this library to bug-gnu-emacs@prep.ai.mit.edu. -You can check which version of the library you have by using the RCS -`ident' command on libtermcap.a. diff --git a/lib/termcap/grot/configure b/lib/termcap/grot/configure deleted file mode 100755 index 8a885fa5b..000000000 --- a/lib/termcap/grot/configure +++ /dev/null @@ -1,998 +0,0 @@ -#! /bin/sh - -# Guess values for system-dependent variables and create Makefiles. -# Generated automatically using autoconf version 2.4 -# Copyright (C) 1992, 1993, 1994 Free Software Foundation, Inc. -# -# This configure script is free software; the Free Software Foundation -# gives unlimited permission to copy, distribute and modify it. - -# Defaults: -ac_help= -ac_default_prefix=/usr/local -# Any additions from configure.in: -ac_help="$ac_help - --enable-install-termcap install the termcap data file" -ac_help="$ac_help - --with-termcap=FILE use data file FILE instead of /etc/termcap" - -# Initialize some variables set by options. -# The variables have the same names as the options, with -# dashes changed to underlines. -build=NONE -cache_file=./config.cache -exec_prefix=NONE -host=NONE -no_create= -nonopt=NONE -no_recursion= -prefix=NONE -program_prefix=NONE -program_suffix=NONE -program_transform_name=s,x,x, -silent= -site= -srcdir= -target=NONE -verbose= -x_includes=NONE -x_libraries=NONE - -# Initialize some other variables. -subdirs= - -ac_prev= -for ac_option -do - - # If the previous option needs an argument, assign it. - if test -n "$ac_prev"; then - eval "$ac_prev=\$ac_option" - ac_prev= - continue - fi - - case "$ac_option" in - -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; - *) ac_optarg= ;; - esac - - # Accept the important Cygnus configure options, so we can diagnose typos. - - case "$ac_option" in - - -build | --build | --buil | --bui | --bu | --b) - ac_prev=build ;; - -build=* | --build=* | --buil=* | --bui=* | --bu=* | --b=*) - build="$ac_optarg" ;; - - -cache-file | --cache-file | --cache-fil | --cache-fi \ - | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) - ac_prev=cache_file ;; - -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ - | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) - cache_file="$ac_optarg" ;; - - -disable-* | --disable-*) - ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` - # Reject names that are not valid shell variable names. - if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then - { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } - fi - ac_feature=`echo $ac_feature| sed 's/-/_/g'` - eval "enable_${ac_feature}=no" ;; - - -enable-* | --enable-*) - ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` - # Reject names that are not valid shell variable names. - if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then - { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } - fi - ac_feature=`echo $ac_feature| sed 's/-/_/g'` - case "$ac_option" in - *=*) ;; - *) ac_optarg=yes ;; - esac - eval "enable_${ac_feature}='$ac_optarg'" ;; - - -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ - | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ - | --exec | --exe | --ex) - ac_prev=exec_prefix ;; - -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ - | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ - | --exec=* | --exe=* | --ex=*) - exec_prefix="$ac_optarg" ;; - - -gas | --gas | --ga | --g) - # Obsolete; use --with-gas. - with_gas=yes ;; - - -help | --help | --hel | --he) - # 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 << EOF -Usage: configure [options] [host] -Options: [defaults in brackets after descriptions] -Configuration: - --cache-file=FILE cache test results in FILE - --help print this message - --no-create do not create output files - --quiet, --silent do not print \`checking...' messages - --version print the version of autoconf that created configure -Directory and file names: - --prefix=PREFIX install architecture-independent files in PREFIX - [$ac_default_prefix] - --exec-prefix=PREFIX install architecture-dependent files in PREFIX - [same as prefix] - --srcdir=DIR find the sources in DIR [configure dir or ..] - --program-prefix=PREFIX prepend PREFIX to installed program names - --program-suffix=SUFFIX append SUFFIX to installed program names - --program-transform-name=PROGRAM run sed PROGRAM on installed program names -Host type: - --build=BUILD configure for building on BUILD [BUILD=HOST] - --host=HOST configure for HOST [guessed] - --target=TARGET configure for TARGET [TARGET=HOST] -Features and packages: - --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) - --enable-FEATURE[=ARG] include FEATURE [ARG=yes] - --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] - --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) - --x-includes=DIR X include files are in DIR - --x-libraries=DIR X library files are in DIR ---enable and --with options recognized:$ac_help -EOF - exit 0 ;; - - -host | --host | --hos | --ho) - ac_prev=host ;; - -host=* | --host=* | --hos=* | --ho=*) - host="$ac_optarg" ;; - - -nfp | --nfp | --nf) - # Obsolete; use --without-fp. - with_fp=no ;; - - -no-create | --no-create | --no-creat | --no-crea | --no-cre \ - | --no-cr | --no-c) - no_create=yes ;; - - -no-recursion | --no-recursion | --no-recursio | --no-recursi \ - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) - no_recursion=yes ;; - - -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) - ac_prev=prefix ;; - -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) - prefix="$ac_optarg" ;; - - -program-prefix | --program-prefix | --program-prefi | --program-pref \ - | --program-pre | --program-pr | --program-p) - ac_prev=program_prefix ;; - -program-prefix=* | --program-prefix=* | --program-prefi=* \ - | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) - program_prefix="$ac_optarg" ;; - - -program-suffix | --program-suffix | --program-suffi | --program-suff \ - | --program-suf | --program-su | --program-s) - ac_prev=program_suffix ;; - -program-suffix=* | --program-suffix=* | --program-suffi=* \ - | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) - program_suffix="$ac_optarg" ;; - - -program-transform-name | --program-transform-name \ - | --program-transform-nam | --program-transform-na \ - | --program-transform-n | --program-transform- \ - | --program-transform | --program-transfor \ - | --program-transfo | --program-transf \ - | --program-trans | --program-tran \ - | --progr-tra | --program-tr | --program-t) - ac_prev=program_transform_name ;; - -program-transform-name=* | --program-transform-name=* \ - | --program-transform-nam=* | --program-transform-na=* \ - | --program-transform-n=* | --program-transform-=* \ - | --program-transform=* | --program-transfor=* \ - | --program-transfo=* | --program-transf=* \ - | --program-trans=* | --program-tran=* \ - | --progr-tra=* | --program-tr=* | --program-t=*) - program_transform_name="$ac_optarg" ;; - - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - silent=yes ;; - - -site | --site | --sit) - ac_prev=site ;; - -site=* | --site=* | --sit=*) - site="$ac_optarg" ;; - - -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) - ac_prev=srcdir ;; - -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) - srcdir="$ac_optarg" ;; - - -target | --target | --targe | --targ | --tar | --ta | --t) - ac_prev=target ;; - -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) - target="$ac_optarg" ;; - - -v | -verbose | --verbose | --verbos | --verbo | --verb) - verbose=yes ;; - - -version | --version | --versio | --versi | --vers) - echo "configure generated by autoconf version 2.4" - exit 0 ;; - - -with-* | --with-*) - ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` - # Reject names that are not valid shell variable names. - if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then - { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } - fi - ac_package=`echo $ac_package| sed 's/-/_/g'` - case "$ac_option" in - *=*) ;; - *) ac_optarg=yes ;; - esac - eval "with_${ac_package}='$ac_optarg'" ;; - - -without-* | --without-*) - ac_package=`echo $ac_option|sed -e 's/-*without-//'` - # Reject names that are not valid shell variable names. - if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then - { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } - fi - ac_package=`echo $ac_package| sed 's/-/_/g'` - eval "with_${ac_package}=no" ;; - - --x) - # Obsolete; use --with-x. - with_x=yes ;; - - -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ - | --x-incl | --x-inc | --x-in | --x-i) - ac_prev=x_includes ;; - -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ - | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) - x_includes="$ac_optarg" ;; - - -x-libraries | --x-libraries | --x-librarie | --x-librari \ - | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) - ac_prev=x_libraries ;; - -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ - | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) - x_libraries="$ac_optarg" ;; - - -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } - ;; - - *) - if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then - echo "configure: warning: $ac_option: invalid host type" 1>&2 - fi - if test "x$nonopt" != xNONE; then - { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } - fi - nonopt="$ac_option" - ;; - - esac -done - -if test -n "$ac_prev"; then - { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } -fi - -trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 - -# File descriptor usage: -# 0 standard input -# 1 file creation -# 2 errors and warnings -# 3 some systems may open it to /dev/tty -# 4 used on the Kubota Titan -# 6 checking for... messages and results -# 5 compiler messages saved in config.log -if test "$silent" = yes; then - exec 6>/dev/null -else - exec 6>&1 -fi -exec 5>./config.log - -echo "\ -This file contains any messages produced by compilers while -running configure, to aid debugging if configure makes a mistake. -" 1>&5 - -# Strip out --no-create and --no-recursion so they do not pile up. -# Also quote any args containing shell metacharacters. -ac_configure_args= -for ac_arg -do - case "$ac_arg" in - -no-create | --no-create | --no-creat | --no-crea | --no-cre \ - | --no-cr | --no-c) ;; - -no-recursion | --no-recursion | --no-recursio | --no-recursi \ - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; - *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) - ac_configure_args="$ac_configure_args '$ac_arg'" ;; - *) ac_configure_args="$ac_configure_args $ac_arg" ;; - esac -done - -# NLS nuisances. -# Only set LANG and LC_ALL to C if already set. -# These must not be set unconditionally because not all systems understand -# e.g. LANG=C (notably SCO). -if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi -if test "${LANG+set}" = set; then LANG=C; export LANG; fi - -# confdefs.h avoids OS command line length limits that DEFS can exceed. -rm -rf conftest* confdefs.h -# AIX cpp loses on an empty file, so make sure it contains at least a newline. -echo > confdefs.h - -# A filename unique to this package, relative to the directory that -# configure is in, which we can look for to find out if srcdir is correct. -ac_unique_file=termcap.h - -# Find the source files, if location was not specified. -if test -z "$srcdir"; then - ac_srcdir_defaulted=yes - # Try the directory containing this script, then its parent. - ac_prog=$0 - ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` - test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. - srcdir=$ac_confdir - if test ! -r $srcdir/$ac_unique_file; then - srcdir=.. - fi -else - ac_srcdir_defaulted=no -fi -if test ! -r $srcdir/$ac_unique_file; then - if test "$ac_srcdir_defaulted" = yes; then - { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } - else - { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } - fi -fi -srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` - -# Prefer explicitly selected file to automatically selected ones. -if test -z "$CONFIG_SITE"; then - if test "x$prefix" != xNONE; then - CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" - else - CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" - fi -fi -for ac_site_file in $CONFIG_SITE; do - if test -r "$ac_site_file"; then - echo "loading site script $ac_site_file" - . "$ac_site_file" - fi -done - -if test -r "$cache_file"; then - echo "loading cache $cache_file" - . $cache_file -else - echo "creating cache $cache_file" - > $cache_file -fi - -ac_ext=c -# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. -ac_cpp='$CPP $CPPFLAGS' -ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5 2>&5' -ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5 2>&5' - -if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then - # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. - if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then - ac_n= ac_c=' -' ac_t=' ' - else - ac_n=-n ac_c= ac_t= - fi -else - ac_n= ac_c='\c' ac_t= -fi - - - -# Check whether --enable-install-termcap or --disable-install-termcap was given. -enableval="$enable_install_termcap" -if test -n "$enableval"; then - if test $enableval = yes; then - installdata=install-data uninstalldata=uninstall-data - fi -fi - - -# Check whether --with-termcap or --without-termcap was given. -withval="$with_termcap" -if test -n "$withval"; then - termcapfile=$withval -else - termcapfile=/etc/termcap -fi - - -# Extract the first word of "gcc", so it can be a program name with args. -set dummy gcc; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in $PATH; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_CC="gcc" - break - fi - done - IFS="$ac_save_ifs" - test -z "$ac_cv_prog_CC" && ac_cv_prog_CC="cc" -fi -fi -CC="$ac_cv_prog_CC" -if test -n "$CC"; then - echo "$ac_t""$CC" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - - -echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 -if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - cat > conftest.c <&5 | egrep yes >/dev/null 2>&1; then - ac_cv_prog_gcc=yes -else - ac_cv_prog_gcc=no -fi -fi -echo "$ac_t""$ac_cv_prog_gcc" 1>&6 -if test $ac_cv_prog_gcc = yes; then - GCC=yes - if test "${CFLAGS+set}" != set; then - echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 -if eval "test \"`echo '$''{'ac_cv_prog_gcc_g'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - echo 'void f(){}' > conftest.c -if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then - ac_cv_prog_gcc_g=yes -else - ac_cv_prog_gcc_g=no -fi -rm -f conftest* - -fi - echo "$ac_t""$ac_cv_prog_gcc_g" 1>&6 - if test $ac_cv_prog_gcc_g = yes; then - CFLAGS="-g -O" - else - CFLAGS="-O" - fi - fi -else - GCC= - test "${CFLAGS+set}" = set || CFLAGS="-g" -fi - -# Extract the first word of "ranlib", so it can be a program name with args. -set dummy ranlib; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$RANLIB"; then - ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in $PATH; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_RANLIB="ranlib" - break - fi - done - IFS="$ac_save_ifs" - test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":" -fi -fi -RANLIB="$ac_cv_prog_RANLIB" -if test -n "$RANLIB"; then - echo "$ac_t""$RANLIB" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - -ac_aux_dir= -for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do - if test -f $ac_dir/install-sh; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install-sh -c" - break - elif test -f $ac_dir/install.sh; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install.sh -c" - break - fi -done -if test -z "$ac_aux_dir"; then - { echo "configure: error: can not find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." 1>&2; exit 1; } -fi -ac_config_guess=$ac_aux_dir/config.guess -ac_config_sub=$ac_aux_dir/config.sub -ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. - -# Find a good install program. We prefer a C program (faster), -# so one script is as good as another. But avoid the broken or -# incompatible versions: -# SysV /etc/install, /usr/sbin/install -# SunOS /usr/etc/install -# IRIX /sbin/install -# AIX /bin/install -# AFS /usr/afsws/bin/install, which mishandles nonexistent args -# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" -# ./install, which can be erroneously created by make from ./install.sh. -echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 -if test -z "$INSTALL"; then -if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in $PATH; do - # Account for people who put trailing slashes in PATH elements. - case "$ac_dir/" in - /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; - *) - # OSF1 and SCO ODT 3.0 have their own names for install. - for ac_prog in ginstall installbsd scoinst install; do - if test -f $ac_dir/$ac_prog; then - if test $ac_prog = install && - grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then - # AIX install. It has an incompatible calling convention. - # OSF/1 installbsd also uses dspmsg, but is usable. - : - else - ac_cv_path_install="$ac_dir/$ac_prog -c" - break 2 - fi - fi - done - ;; - esac - done - IFS="$ac_save_ifs" - # As a last resort, use the slow shell script. - test -z "$ac_cv_path_install" && ac_cv_path_install="$ac_install_sh" -fi - INSTALL="$ac_cv_path_install" -fi -echo "$ac_t""$INSTALL" 1>&6 - -# Use test -z because SunOS4 sh mishandles braces in ${var-val}. -# It thinks the first close brace ends the variable substitution. -test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' - -test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' - -echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 -# On Suns, sometimes $CPP names a directory. -if test -n "$CPP" && test -d "$CPP"; then - CPP= -fi -if test -z "$CPP"; then -if eval "test \"`echo '$''{'ac_cv_prog_CPP'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - # This must be in double quotes, not single quotes, because CPP may get - # substituted into the Makefile and "${CC-cc}" will confuse make. - CPP="${CC-cc} -E" - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. - cat > conftest.$ac_ext < -Syntax Error -EOF -eval "$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -ac_err=`grep -v '^ *+' conftest.out` -if test -z "$ac_err"; then - : -else - echo "$ac_err" >&5 - rm -rf conftest* - CPP="${CC-cc} -E -traditional-cpp" - cat > conftest.$ac_ext < -Syntax Error -EOF -eval "$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -ac_err=`grep -v '^ *+' conftest.out` -if test -z "$ac_err"; then - : -else - echo "$ac_err" >&5 - rm -rf conftest* - CPP=/lib/cpp -fi -rm -f conftest* -fi -rm -f conftest* - ac_cv_prog_CPP="$CPP" -fi - CPP="$ac_cv_prog_CPP" -else - ac_cv_prog_CPP="$CPP" -fi -echo "$ac_t""$CPP" 1>&6 - -for ac_hdr in string.h unistd.h -do -ac_safe=`echo "$ac_hdr" | tr './\055' '___'` -echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - cat > conftest.$ac_ext < -EOF -eval "$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -ac_err=`grep -v '^ *+' conftest.out` -if test -z "$ac_err"; then - rm -rf conftest* - eval "ac_cv_header_$ac_safe=yes" -else - echo "$ac_err" >&5 - rm -rf conftest* - eval "ac_cv_header_$ac_safe=no" -fi -rm -f conftest* -fi -if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then - echo "$ac_t""yes" 1>&6 - ac_tr_hdr=HAVE_`echo $ac_hdr | tr '[a-z]./\055' '[A-Z]___'` - cat >> confdefs.h <&6 -fi -done - -# If we cannot run a trivial program, we must be cross compiling. -echo $ac_n "checking whether cross-compiling""... $ac_c" 1>&6 -if eval "test \"`echo '$''{'ac_cv_c_cross'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test "$cross_compiling" = yes; then - ac_cv_c_cross=yes -else -cat > conftest.$ac_ext </dev/null; then - ac_cv_c_cross=no -else - ac_cv_c_cross=yes -fi -fi -rm -fr conftest* -fi -cross_compiling=$ac_cv_c_cross -echo "$ac_t""$ac_cv_c_cross" 1>&6 - -echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 -if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - cat > conftest.$ac_ext < -#include -#include -#include -EOF -eval "$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -ac_err=`grep -v '^ *+' conftest.out` -if test -z "$ac_err"; then - rm -rf conftest* - ac_cv_header_stdc=yes -else - echo "$ac_err" >&5 - rm -rf conftest* - ac_cv_header_stdc=no -fi -rm -f conftest* - -if test $ac_cv_header_stdc = yes; then - # SunOS 4.x string.h does not declare mem*, contrary to ANSI. -cat > conftest.$ac_ext < -EOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - egrep "memchr" >/dev/null 2>&1; then - : -else - rm -rf conftest* - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. -cat > conftest.$ac_ext < -EOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - egrep "free" >/dev/null 2>&1; then - : -else - rm -rf conftest* - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. -if test "$cross_compiling" = yes; then - ac_cv_header_stdc=no -else -cat > conftest.$ac_ext < -#define ISLOWER(c) ('a' <= (c) && (c) <= 'z') -#define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) -#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) -int main () { int i; for (i = 0; i < 256; i++) -if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2); -exit (0); } - -EOF -eval $ac_link -if test -s conftest && (./conftest; exit) 2>/dev/null; then - : -else - ac_cv_header_stdc=no -fi -fi -rm -fr conftest* -fi -fi -echo "$ac_t""$ac_cv_header_stdc" 1>&6 -if test $ac_cv_header_stdc = yes; then - cat >> confdefs.h <<\EOF -#define STDC_HEADERS 1 -EOF - -fi - - -trap '' 1 2 15 -cat > confcache <<\EOF -# This file is a shell script that caches the results of configure -# tests run on this system so they can be shared between configure -# scripts and configure runs. It is not useful on other systems. -# If it contains results you don't want to keep, you may remove or edit it. -# -# By default, configure uses ./config.cache as the cache file, -# creating it if it does not exist already. You can give configure -# the --cache-file=FILE option to use a different cache file; that is -# what configure does when it calls configure scripts in -# subdirectories, so they share the cache. -# Giving --cache-file=/dev/null disables caching, for debugging configure. -# config.status only pays attention to the cache file if you give it the -# --recheck option to rerun configure. -# -EOF -# Ultrix sh set writes to stderr and can't be redirected directly, -# and sets the high bit in the cache file unless we assign to the vars. -(set) 2>&1 | - sed -n "s/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=\${\1='\2'}/p" \ - >> confcache -if cmp -s $cache_file confcache; then - : -else - if test -w $cache_file; then - echo "updating cache $cache_file" - cat confcache > $cache_file - else - echo "not updating unwritable cache $cache_file" - fi -fi -rm -f confcache - -trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 - -test "x$prefix" = xNONE && prefix=$ac_default_prefix -# Let make expand exec_prefix. -test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' - -# Any assignment to VPATH causes Sun make to only execute -# the first set of double-colon rules, so remove it if not needed. -# If there is a colon in the path, we need to keep it. -if test "x$srcdir" = x.; then - ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' -fi - -trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 - -# Transform confdefs.h into DEFS. -# Protect against shell expansion while executing Makefile rules. -# Protect against Makefile macro expansion. -cat > conftest.defs <<\EOF -s%#define \([A-Za-z_][A-Za-z0-9_]*\) \(.*\)%-D\1=\2%g -s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g -s%\[%\\&%g -s%\]%\\&%g -s%\$%$$%g -EOF -DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '` -rm -f conftest.defs - - -# Without the "./", some shells look in PATH for config.status. -: ${CONFIG_STATUS=./config.status} - -echo creating $CONFIG_STATUS -rm -f $CONFIG_STATUS -cat > $CONFIG_STATUS </dev/null | sed 1q`: -# -# $0 $ac_configure_args -# -# Compiler output produced by configure, useful for debugging -# configure, is in ./config.log if it exists. - -ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" -for ac_option -do - case "\$ac_option" in - -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) - echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" - exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; - -version | --version | --versio | --versi | --vers | --ver | --ve | --v) - echo "$CONFIG_STATUS generated by autoconf version 2.4" - exit 0 ;; - -help | --help | --hel | --he | --h) - echo "\$ac_cs_usage"; exit 0 ;; - *) echo "\$ac_cs_usage"; exit 1 ;; - esac -done - -ac_given_srcdir=$srcdir -ac_given_INSTALL="$INSTALL" - -trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 - -# Protect against being on the right side of a sed subst in config.status. -sed 's/%@/@@/; s/@%/@@/; s/%g$/@g/; /@g$/s/[\\\\&%]/\\\\&/g; - s/@@/%@/; s/@@/@%/; s/@g$/%g/' > conftest.subs <<\CEOF -$ac_vpsub -$extrasub -s%@CFLAGS@%$CFLAGS%g -s%@CPPFLAGS@%$CPPFLAGS%g -s%@CXXFLAGS@%$CXXFLAGS%g -s%@DEFS@%$DEFS%g -s%@LDFLAGS@%$LDFLAGS%g -s%@LIBS@%$LIBS%g -s%@exec_prefix@%$exec_prefix%g -s%@prefix@%$prefix%g -s%@program_transform_name@%$program_transform_name%g -s%@installdata@%$installdata%g -s%@uninstalldata@%$uninstalldata%g -s%@termcapfile@%$termcapfile%g -s%@CC@%$CC%g -s%@RANLIB@%$RANLIB%g -s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g -s%@INSTALL_DATA@%$INSTALL_DATA%g -s%@CPP@%$CPP%g - -CEOF -EOF -cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF -for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then - # Support "outfile[:infile]", defaulting infile="outfile.in". - case "$ac_file" in - *:*) ac_file_in=`echo "$ac_file"|sed 's%.*:%%'` - ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; - *) ac_file_in="${ac_file}.in" ;; - esac - - # Adjust relative srcdir, etc. for subdirectories. - - # Remove last slash and all that follows it. Not all systems have dirname. - ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` - if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then - # The file is in a subdirectory. - test ! -d "$ac_dir" && mkdir "$ac_dir" - ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" - # A "../" for each directory in $ac_dir_suffix. - ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` - else - ac_dir_suffix= ac_dots= - fi - - case "$ac_given_srcdir" in - .) srcdir=. - if test -z "$ac_dots"; then top_srcdir=. - else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; - /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; - *) # Relative path. - srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" - top_srcdir="$ac_dots$ac_given_srcdir" ;; - esac - - case "$ac_given_INSTALL" in - [/$]*) INSTALL="$ac_given_INSTALL" ;; - *) INSTALL="$ac_dots$ac_given_INSTALL" ;; - esac - echo creating "$ac_file" - rm -f "$ac_file" - configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." - case "$ac_file" in - *Makefile*) ac_comsub="1i\\ -# $configure_input" ;; - *) ac_comsub= ;; - esac - sed -e "$ac_comsub -s%@configure_input@%$configure_input%g -s%@srcdir@%$srcdir%g -s%@top_srcdir@%$top_srcdir%g -s%@INSTALL@%$INSTALL%g -" -f conftest.subs $ac_given_srcdir/$ac_file_in > $ac_file -fi; done -rm -f conftest.subs - - - -exit 0 -EOF -chmod +x $CONFIG_STATUS -rm -fr confdefs* $ac_clean_files -test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 - diff --git a/lib/termcap/grot/configure.in b/lib/termcap/grot/configure.in deleted file mode 100644 index f3f944f9c..000000000 --- a/lib/termcap/grot/configure.in +++ /dev/null @@ -1,23 +0,0 @@ -dnl Process this file with autoconf to produce a configure script. -AC_INIT(termcap.h) - -AC_ARG_ENABLE(install-termcap, -[ --enable-install-termcap install the termcap data file], -[if test $enableval = yes; then - installdata=install-data uninstalldata=uninstall-data - fi]) -AC_SUBST(installdata)dnl -AC_SUBST(uninstalldata)dnl - -AC_ARG_WITH(termcap, -[ --with-termcap=FILE use data file FILE instead of /etc/termcap], -termcapfile=$withval, termcapfile=/etc/termcap) -AC_SUBST(termcapfile)dnl - -AC_PROG_CC -AC_PROG_RANLIB -AC_PROG_INSTALL -AC_HAVE_HEADERS(string.h unistd.h) -AC_STDC_HEADERS - -AC_OUTPUT(Makefile) diff --git a/lib/termcap/grot/termcap.info b/lib/termcap/grot/termcap.info deleted file mode 100644 index f663195a3..000000000 --- a/lib/termcap/grot/termcap.info +++ /dev/null @@ -1,80 +0,0 @@ -This is Info file ./termcap.info, produced by Makeinfo-1.55 from the -input file ./termcap.texi. - - This file documents the termcap library of the GNU system. - - Copyright (C) 1988 Free Software Foundation, Inc. - - 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 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, except that this permission notice may be stated in a -translation approved by the Foundation. - - -Indirect: -termcap.info-1: 874 -termcap.info-2: 47411 -termcap.info-3: 90390 -termcap.info-4: 138827 - -Tag Table: -(Indirect) -Node: Top874 -Node: Introduction4105 -Node: Library5832 -Node: Preparation6851 -Node: Find8034 -Node: Interrogate11492 -Node: Initialize16800 -Node: Padding18440 -Node: Why Pad19146 -Node: Not Enough20768 -Node: Describe Padding23336 -Node: Output Padding24826 -Node: Parameters28441 -Node: Encode Parameters30101 -Node: Using Parameters36185 -Node: tparam36780 -Node: tgoto38806 -Node: Data Base41361 -Node: Format42257 -Node: Capability Format44346 -Node: Naming47411 -Node: Inheriting51980 -Node: Changing54224 -Node: Capabilities55388 -Node: Basic58127 -Node: Screen Size62180 -Node: Cursor Motion63920 -Node: Wrapping74062 -Node: Scrolling77091 -Node: Windows82980 -Node: Clearing83714 -Node: Insdel Line85478 -Node: Insdel Char90390 -Node: Standout100375 -Node: Underlining109433 -Node: Cursor Visibility111852 -Node: Bell112600 -Node: Keypad113149 -Node: Meta Key117864 -Node: Initialization118818 -Node: Pad Specs121369 -Node: Status Line123422 -Node: Half-Line125306 -Node: Printer126108 -Node: Summary127787 -Node: Var Index138114 -Node: Cap Index138827 -Node: Index145991 - -End Tag Table diff --git a/lib/termcap/grot/termcap.info-1 b/lib/termcap/grot/termcap.info-1 deleted file mode 100644 index a5b5da0bb..000000000 --- a/lib/termcap/grot/termcap.info-1 +++ /dev/null @@ -1,1114 +0,0 @@ -This is Info file ./termcap.info, produced by Makeinfo-1.55 from the -input file ./termcap.texi. - - This file documents the termcap library of the GNU system. - - Copyright (C) 1988 Free Software Foundation, Inc. - - 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 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, except that this permission notice may be stated in a -translation approved by the Foundation. - - -File: termcap.info, Node: Top, Next: Introduction, Prev: (dir), Up: (dir) - -* Menu: - -* Introduction:: What is termcap? Why this manual? -* Library:: The termcap library functions. -* Data Base:: What terminal descriptions in `/etc/termcap' look like. -* Capabilities:: Definitions of the individual terminal capabilities: - how to write them in descriptions, and how to use - their values to do display updating. -* Summary:: Brief table of capability names and their meanings. -* Var Index:: Index of C functions and variables. -* Cap Index:: Index of termcap capabilities. -* Index:: Concept index. - - -- The Detailed Node Listing -- - -The Termcap Library - -* Preparation:: Preparing to use the termcap library. -* Find:: Finding the description of the terminal being used. -* Interrogate:: Interrogating the description for particular capabilities. -* Initialize:: Initialization for output using termcap. -* Padding:: Outputting padding. -* Parameters:: Encoding parameters such as cursor positions. - -Padding - -* Why Pad:: Explanation of padding. -* Not Enough:: When there is not enough padding. -* Describe Padding:: The data base says how much padding a terminal needs. -* Output Padding:: Using `tputs' to output the needed padding. - -Filling In Parameters - -* Encode Parameters:: The language for encoding parameters. -* Using Parameters:: Outputting a string command with parameters. - -Sending Display Commands with Parameters - -* tparam:: The general case, for GNU termcap only. -* tgoto:: The special case of cursor motion. - -The Format of the Data Base - -* Format:: Overall format of a terminal description. -* Capability Format:: Format of capabilities within a description. -* Naming:: Naming conventions for terminal types. -* Inheriting:: Inheriting part of a description from -a related terminal type. -* Changing:: When changes in the data base take effect. - -Definitions of the Terminal Capabilities - -* Basic:: Basic characteristics. -* Screen Size:: Screen size, and what happens when it changes. -* Cursor Motion:: Various ways to move the cursor. -* Wrapping:: What happens if you write a character in the last column. -* Scrolling:: Pushing text up and down on the screen. -* Windows:: Limiting the part of the window that output affects. -* Clearing:: Erasing one or many lines. -* Insdel Line:: Making new blank lines in mid-screen; deleting lines. -* Insdel Char:: Inserting and deleting characters within a line. -* Standout:: Highlighting some of the text. -* Underlining:: Underlining some of the text. -* Cursor Visibility:: Making the cursor more or less easy to spot. -* Bell:: Attracts user's attention; not localized on the screen. -* Keypad:: Recognizing when function keys or arrows are typed. -* Meta Key:: META acts like an extra shift key. -* Initialization:: Commands used to initialize or reset the terminal. -* Pad Specs:: Info for the kernel on how much padding is needed. -* Status Line:: A status line displays "background" information. -* Half-Line:: Moving by half-lines, for superscripts and subscripts. -* Printer:: Controlling auxiliary printers of display terminals. - - -File: termcap.info, Node: Introduction, Next: Library, Prev: Top, Up: Top - -Introduction -************ - - "Termcap" is a library and data base that enables programs to use -display terminals in a terminal-independent manner. It originated in -Berkeley Unix. - - The termcap data base describes the capabilities of hundreds of -different display terminals in great detail. Some examples of the -information recorded for a terminal could include how many columns wide -it is, what string to send to move the cursor to an arbitrary position -(including how to encode the row and column numbers), how to scroll the -screen up one or several lines, and how much padding is needed for such -a scrolling operation. - - The termcap library is provided for easy access this data base in -programs that want to do terminal-independent character-based display -output. - - This manual describes the GNU version of the termcap library, which -has some extensions over the Unix version. All the extensions are -identified as such, so this manual also tells you how to use the Unix -termcap. - - The GNU version of the termcap library is available free as source -code, for use in free programs, and runs on Unix and VMS systems (at -least). You can find it in the GNU Emacs distribution in the files -`termcap.c' and `tparam.c'. - - This manual was written for the GNU project, whose goal is to -develop a complete free operating system upward-compatible with Unix -for user programs. The project is approximately two thirds complete. -For more information on the GNU project, including the GNU Emacs editor -and the mostly-portable optimizing C compiler, send one dollar to - - Free Software Foundation - 675 Mass Ave - Cambridge, MA 02139 - - -File: termcap.info, Node: Library, Next: Data Base, Prev: Introduction, Up: Top - -The Termcap Library -******************* - - The termcap library is the application programmer's interface to the -termcap data base. It contains functions for the following purposes: - - * Finding the description of the user's terminal type (`tgetent'). - - * Interrogating the description for information on various topics - (`tgetnum', `tgetflag', `tgetstr'). - - * Computing and performing padding (`tputs'). - - * Encoding numeric parameters such as cursor positions into the - terminal-specific form required for display commands (`tparam', - `tgoto'). - -* Menu: - -* Preparation:: Preparing to use the termcap library. -* Find:: Finding the description of the terminal being used. -* Interrogate:: Interrogating the description for particular capabilities. -* Initialize:: Initialization for output using termcap. -* Padding:: Outputting padding. -* Parameters:: Encoding parameters such as cursor positions. - - -File: termcap.info, Node: Preparation, Next: Find, Up: Library - -Preparing to Use the Termcap Library -==================================== - - To use the termcap library in a program, you need two kinds of -preparation: - - * The compiler needs declarations of the functions and variables in - the library. - - On GNU systems, it suffices to include the header file `termcap.h' - in each source file that uses these functions and variables. - - On Unix systems, there is often no such header file. Then you must - explictly declare the variables as external. You can do likewise - for the functions, or let them be implicitly declared and cast - their values from type `int' to the appropriate type. - - We illustrate the declarations of the individual termcap library - functions with ANSI C prototypes because they show how to pass the - arguments. If you are not using the GNU C compiler, you probably - cannot use function prototypes, so omit the argument types and - names from your declarations. - - * The linker needs to search the library. Usually either - `-ltermcap' or `-ltermlib' as an argument when linking will do - this. - - -File: termcap.info, Node: Find, Next: Interrogate, Prev: Preparation, Up: Library - -Finding a Terminal Description: `tgetent' -========================================= - - An application program that is going to use termcap must first look -up the description of the terminal type in use. This is done by calling -`tgetent', whose declaration in ANSI Standard C looks like: - - int tgetent (char *BUFFER, char *TERMTYPE); - -This function finds the description and remembers it internally so that -you can interrogate it about specific terminal capabilities (*note -Interrogate::.). - - The argument TERMTYPE is a string which is the name for the type of -terminal to look up. Usually you would obtain this from the environment -variable `TERM' using `getenv ("TERM")'. - - If you are using the GNU version of termcap, you can alternatively -ask `tgetent' to allocate enough space. Pass a null pointer for -BUFFER, and `tgetent' itself allocates the storage using `malloc'. -There is no way to get the address that was allocated, and you -shouldn't try to free the storage. - - With the Unix version of termcap, you must allocate space for the -description yourself and pass the address of the space as the argument -BUFFER. There is no way you can tell how much space is needed, so the -convention is to allocate a buffer 2048 characters long and assume that -is enough. (Formerly the convention was to allocate 1024 characters and -assume that was enough. But one day, for one kind of terminal, that was -not enough.) - - No matter how the space to store the description has been obtained, -termcap records its address internally for use when you later -interrogate the description with `tgetnum', `tgetstr' or `tgetflag'. If -the buffer was allocated by termcap, it will be freed by termcap too if -you call `tgetent' again. If the buffer was provided by you, you must -make sure that its contents remain unchanged for as long as you still -plan to interrogate the description. - - The return value of `tgetent' is -1 if there is some difficulty -accessing the data base of terminal types, 0 if the data base is -accessible but the specified type is not defined in it, and some other -value otherwise. - - Here is how you might use the function `tgetent': - - #ifdef unix - static char term_buffer[2048]; - #else - #define term_buffer 0 - #endif - - init_terminal_data () - { - char *termtype = getenv ("TERM"); - int success; - - if (termtype == 0) - fatal ("Specify a terminal type with `setenv TERM '.\n"); - - success = tgetent (term_buffer, termtype); - if (success < 0) - fatal ("Could not access the termcap data base.\n"); - if (success == 0) - fatal ("Terminal type `%s' is not defined.\n", termtype); - } - -Here we assume the function `fatal' prints an error message and exits. - - If the environment variable `TERMCAP' is defined, its value is used -to override the terminal type data base. The function `tgetent' checks -the value of `TERMCAP' automatically. If the value starts with `/' -then it is taken as a file name to use as the data base file, instead -of `/etc/termcap' which is the standard data base. If the value does -not start with `/' then it is itself used as the terminal description, -provided that the terminal type TERMTYPE is among the types it claims -to apply to. *Note Data Base::, for information on the format of a -terminal description. - - -File: termcap.info, Node: Interrogate, Next: Initialize, Prev: Find, Up: Library - -Interrogating the Terminal Description -====================================== - - Each piece of information recorded in a terminal description is -called a "capability". Each defined terminal capability has a -two-letter code name and a specific meaning. For example, the number -of columns is named `co'. *Note Capabilities::, for definitions of all -the standard capability names. - - Once you have found the proper terminal description with `tgetent' -(*note Find::.), your application program must "interrogate" it for -various terminal capabilities. You must specify the two-letter code of -the capability whose value you seek. - - Capability values can be numeric, boolean (capability is either -present or absent) or strings. Any particular capability always has -the same value type; for example, `co' always has a numeric value, -while `am' (automatic wrap at margin) is always a flag, and `cm' -(cursor motion command) always has a string value. The documentation -of each capability says which type of value it has. - - There are three functions to use to get the value of a capability, -depending on the type of value the capability has. Here are their -declarations in ANSI C: - - int tgetnum (char *NAME); - int tgetflag (char *NAME); - char *tgetstr (char *NAME, char **AREA); - -`tgetnum' - Use `tgetnum' to get a capability value that is numeric. The - argument NAME is the two-letter code name of the capability. If - the capability is present, `tgetnum' returns the numeric value - (which is nonnegative). If the capability is not mentioned in the - terminal description, `tgetnum' returns -1. - -`tgetflag' - Use `tgetflag' to get a boolean value. If the capability NAME is - present in the terminal description, `tgetflag' returns 1; - otherwise, it returns 0. - -`tgetstr' - Use `tgetstr' to get a string value. It returns a pointer to a - string which is the capability value, or a null pointer if the - capability is not present in the terminal description. - - There are two ways `tgetstr' can find space to store the string - value: - - * You can ask `tgetstr' to allocate the space. Pass a null - pointer for the argument AREA, and `tgetstr' will use - `malloc' to allocate storage big enough for the value. - Termcap will never free this storage or refer to it again; you - should free it when you are finished with it. - - This method is more robust, since there is no need to guess - how much space is needed. But it is supported only by the GNU - termcap library. - - * You can provide the space. Provide for the argument AREA the - address of a pointer variable of type `char *'. Before - calling `tgetstr', initialize the variable to point at - available space. Then `tgetstr' will store the string value - in that space and will increment the pointer variable to - point after the space that has been used. You can use the - same pointer variable for many calls to `tgetstr'. - - There is no way to determine how much space is needed for a - single string, and no way for you to prevent or handle - overflow of the area you have provided. However, you can be - sure that the total size of all the string values you will - obtain from the terminal description is no greater than the - size of the description (unless you get the same capability - twice). You can determine that size with `strlen' on the - buffer you provided to `tgetent'. See below for an example. - - Providing the space yourself is the only method supported by - the Unix version of termcap. - - Note that you do not have to specify a terminal type or terminal -description for the interrogation functions. They automatically use the -description found by the most recent call to `tgetent'. - - Here is an example of interrogating a terminal description for -various capabilities, with conditionals to select between the Unix and -GNU methods of providing buffer space. - - char *tgetstr (); - - char *cl_string, *cm_string; - int height; - int width; - int auto_wrap; - - char PC; /* For tputs. */ - char *BC; /* For tgoto. */ - char *UP; - - interrogate_terminal () - { - #ifdef UNIX - /* Here we assume that an explicit term_buffer - was provided to tgetent. */ - char *buffer - = (char *) malloc (strlen (term_buffer)); - #define BUFFADDR &buffer - #else - #define BUFFADDR 0 - #endif - - char *temp; - - /* Extract information we will use. */ - cl_string = tgetstr ("cl", BUFFADDR); - cm_string = tgetstr ("cm", BUFFADDR); - auto_wrap = tgetflag ("am"); - height = tgetnum ("li"); - width = tgetnum ("co"); - - /* Extract information that termcap functions use. */ - temp = tgetstr ("pc", BUFFADDR); - PC = temp ? *temp : 0; - BC = tgetstr ("le", BUFFADDR); - UP = tgetstr ("up", BUFFADDR); - } - -*Note Padding::, for information on the variable `PC'. *Note Using -Parameters::, for information on `UP' and `BC'. - - -File: termcap.info, Node: Initialize, Next: Padding, Prev: Interrogate, Up: Library - -Initialization for Use of Termcap -================================= - - Before starting to output commands to a terminal using termcap, an -application program should do two things: - - * Initialize various global variables which termcap library output - functions refer to. These include `PC' and `ospeed' for padding - (*note Output Padding::.) and `UP' and `BC' for cursor motion - (*note tgoto::.). - - * Tell the kernel to turn off alteration and padding of - horizontal-tab characters sent to the terminal. - - To turn off output processing in Berkeley Unix you would use `ioctl' -with code `TIOCLSET' to set the bit named `LLITOUT', and clear the bits -`ANYDELAY' using `TIOCSETN'. In POSIX or System V, you must clear the -bit named `OPOST'. Refer to the system documentation for details. - - If you do not set the terminal flags properly, some older terminals -will not work. This is because their commands may contain the -characters that normally signify newline, carriage return and -horizontal tab--characters which the kernel thinks it ought to modify -before output. - - When you change the kernel's terminal flags, you must arrange to -restore them to their normal state when your program exits. This -implies that the program must catch fatal signals such as `SIGQUIT' and -`SIGINT' and restore the old terminal flags before actually terminating. - - Modern terminals' commands do not use these special characters, so -if you do not care about problems with old terminals, you can leave the -kernel's terminal flags unaltered. - - -File: termcap.info, Node: Padding, Next: Parameters, Prev: Initialize, Up: Library - -Padding -======= - - "Padding" means outputting null characters following a terminal -display command that takes a long time to execute. The terminal -description says which commands require padding and how much; the -function `tputs', described below, outputs a terminal command while -extracting from it the padding information, and then outputs the -padding that is necessary. - -* Menu: - -* Why Pad:: Explanation of padding. -* Not Enough:: When there is not enough padding. -* Describe Padding:: The data base says how much padding a terminal needs. -* Output Padding:: Using `tputs' to output the needed padding. - - -File: termcap.info, Node: Why Pad, Next: Not Enough, Up: Padding - -Why Pad, and How ----------------- - - Most types of terminal have commands that take longer to execute -than they do to send over a high-speed line. For example, clearing the -screen may take 20msec once the entire command is received. During -that time, on a 9600 bps line, the terminal could receive about 20 -additional output characters while still busy clearing the screen. -Every terminal has a certain amount of buffering capacity to remember -output characters that cannot be processed yet, but too many slow -commands in a row can cause the buffer to fill up. Then any additional -output that cannot be processed immediately will be lost. - - To avoid this problem, we normally follow each display command with -enough useless charaters (usually null characters) to fill up the time -that the display command needs to execute. This does the job if the -terminal throws away null characters without using up space in the -buffer (which most terminals do). If enough padding is used, no output -can ever be lost. The right amount of padding avoids loss of output -without slowing down operation, since the time used to transmit padding -is time that nothing else could be done. - - The number of padding characters needed for an operation depends on -the line speed. In fact, it is proportional to the line speed. A 9600 -baud line transmits about one character per msec, so the clear screen -command in the example above would need about 20 characters of padding. -At 1200 baud, however, only about 3 characters of padding are needed -to fill up 20msec. - - -File: termcap.info, Node: Not Enough, Next: Describe Padding, Prev: Why Pad, Up: Padding - -When There Is Not Enough Padding --------------------------------- - - There are several common manifestations of insufficient padding. - - * Emacs displays `I-search: ^Q-' at the bottom of the screen. - - This means that the terminal thought its buffer was getting full of - display commands, so it tried to tell the computer to stop sending - any. - - * The screen is garbled intermittently, or the details of garbling - vary when you repeat the action. (A garbled screen could be due - to a command which is simply incorrect, or to user option in the - terminal which doesn't match the assumptions of the terminal - description, but this usually leads to reproducible failure.) - - This means that the buffer did get full, and some commands were - lost. Many changeable factors can change which ones are lost. - - * Screen is garbled at high output speeds but not at low speeds. - Padding problems nearly always go away at low speeds, usually even - at 1200 baud. - - This means that a high enough speed permits commands to arrive - faster than they can be executed. - - Although any obscure command on an obscure terminal might lack -padding, in practice problems arise most often from the clearing -commands `cl' and `cd' (*note Clearing::.), the scrolling commands `sf' -and `sr' (*note Scrolling::.), and the line insert/delete commands `al' -and `dl' (*note Insdel Line::.). - - Occasionally the terminal description fails to define `sf' and some -programs will use `do' instead, so you may get a problem with `do'. If -so, first define `sf' just like `do', then add some padding to `sf'. - - The best strategy is to add a lot of padding at first, perhaps 200 -msec. This is much more than enough; in fact, it should cause a -visible slowdown. (If you don't see a slowdown, the change has not -taken effect; *note Changing::..) If this makes the problem go away, -you have found the right place to add padding; now reduce the amount -until the problem comes back, then increase it again. If the problem -remains, either it is in some other capability or it is not a matter of -padding at all. - - Keep in mind that on many terminals the correct padding for -insert/delete line or for scrolling is cursor-position dependent. If -you get problems from scrolling a large region of the screen but not -from scrolling a small part (just a few lines moving), it may mean that -fixed padding should be replaced with position-dependent padding. - - -File: termcap.info, Node: Describe Padding, Next: Output Padding, Prev: Not Enough, Up: Padding - -Specifying Padding in a Terminal Description --------------------------------------------- - - In the terminal description, the amount of padding required by each -display command is recorded as a sequence of digits at the front of the -command. These digits specify the padding time in milliseconds (msec). -They can be followed optionally by a decimal point and one more digit, -which is a number of tenths of msec. - - Sometimes the padding needed by a command depends on the cursor -position. For example, the time taken by an "insert line" command is -usually proportional to the number of lines that need to be moved down -or cleared. An asterisk (`*') following the padding time says that the -time should be multiplied by the number of screen lines affected by the -command. - - :al=1.3*\E[L: - -is used to describe the "insert line" command for a certain terminal. -The padding required is 1.3 msec per line affected. The command itself -is `ESC [ L'. - - The padding time specified in this way tells `tputs' how many pad -characters to output. *Note Output Padding::. - - Two special capability values affect padding for all commands. -These are the `pc' and `pb'. The variable `pc' specifies the character -to pad with, and `pb' the speed below which no padding is needed. The -defaults for these variables, a null character and 0, are correct for -most terminals. *Note Pad Specs::. - - -File: termcap.info, Node: Output Padding, Prev: Describe Padding, Up: Padding - -Performing Padding with `tputs' -------------------------------- - - Use the termcap function `tputs' to output a string containing an -optional padding spec of the form described above (*note Describe -Padding::.). The function `tputs' strips off and decodes the padding -spec, outputs the rest of the string, and then outputs the appropriate -padding. Here is its declaration in ANSI C: - - char PC; - short ospeed; - - int tputs (char *STRING, int NLINES, int (*OUTFUN) ()); - - Here STRING is the string (including padding spec) to be output; -NLINES is the number of lines affected by the operation, which is used -to multiply the amount of padding if the padding spec ends with a `*'. -Finally, OUTFUN is a function (such as `fputchar') that is called to -output each character. When actually called, OUTFUN should expect one -argument, a character. - - The operation of `tputs' is controlled by two global variables, -`ospeed' and `PC'. The value of `ospeed' is supposed to be the -terminal output speed, encoded as in the `ioctl' system call which gets -the speed information. This is needed to compute the number of padding -characters. The value of `PC' is the character used for padding. - - You are responsible for storing suitable values into these variables -before using `tputs'. The value stored into the `PC' variable should be -taken from the `pc' capability in the terminal description (*note Pad -Specs::.). Store zero in `PC' if there is no `pc' capability. - - The argument NLINES requires some thought. Normally, it should be -the number of lines whose contents will be cleared or moved by the -command. For cursor motion commands, or commands that do editing -within one line, use the value 1. For most commands that affect -multiple lines, such as `al' (insert a line) and `cd' (clear from the -cursor to the end of the screen), NLINES should be the screen height -minus the current vertical position (origin 0). For multiple insert -and scroll commands such as `AL' (insert multiple lines), that same -value for NLINES is correct; the number of lines being inserted is not -correct. - - If a "scroll window" feature is used to reduce the number of lines -affected by a command, the value of NLINES should take this into -account. This is because the delay time required depends on how much -work the terminal has to do, and the scroll window feature reduces the -work. *Note Scrolling::. - - Commands such as `ic' and `dc' (insert or delete characters) are -problematical because the padding needed by these commands is -proportional to the number of characters affected, which is the number -of columns from the cursor to the end of the line. It would be nice to -have a way to specify such a dependence, and there is no need for -dependence on vertical position in these commands, so it is an obvious -idea to say that for these commands NLINES should really be the number -of columns affected. However, the definition of termcap clearly says -that NLINES is always the number of lines affected, even in this case, -where it is always 1. It is not easy to change this rule now, because -too many programs and terminal descriptions have been written to follow -it. - - Because NLINES is always 1 for the `ic' and `dc' strings, there is -no reason for them to use `*', but some of them do. These should be -corrected by deleting the `*'. If, some day, such entries have -disappeared, it may be possible to change to a more useful convention -for the NLINES argument for these operations without breaking any -programs. - - -File: termcap.info, Node: Parameters, Prev: Padding, Up: Library - -Filling In Parameters -===================== - - Some terminal control strings require numeric "parameters". For -example, when you move the cursor, you need to say what horizontal and -vertical positions to move it to. The value of the terminal's `cm' -capability, which says how to move the cursor, cannot simply be a -string of characters; it must say how to express the cursor position -numbers and where to put them within the command. - - The specifications of termcap include conventions as to which -string-valued capabilities require parameters, how many parameters, and -what the parameters mean; for example, it defines the `cm' string to -take two parameters, the vertical and horizontal positions, with 0,0 -being the upper left corner. These conventions are described where the -individual commands are documented. - - Termcap also defines a language used within the capability -definition for specifying how and where to encode the parameters for -output. This language uses character sequences starting with `%'. -(This is the same idea as `printf', but the details are different.) -The language for parameter encoding is described in this section. - - A program that is doing display output calls the functions `tparam' -or `tgoto' to encode parameters according to the specifications. These -functions produce a string containing the actual commands to be output -(as well a padding spec which must be processed with `tputs'; *note -Padding::.). - -* Menu: - -* Encode Parameters:: The language for encoding parameters. -* Using Parameters:: Outputting a string command with parameters. - - -File: termcap.info, Node: Encode Parameters, Next: Using Parameters, Up: Parameters - -Describing the Encoding ------------------------ - - A terminal command string that requires parameters contains special -character sequences starting with `%' to say how to encode the -parameters. These sequences control the actions of `tparam' and -`tgoto'. - - The parameters values passed to `tparam' or `tgoto' are considered -to form a vector. A pointer into this vector determines the next -parameter to be processed. Some of the `%'-sequences encode one -parameter and advance the pointer to the next parameter. Other -`%'-sequences alter the pointer or alter the parameter values without -generating output. - - For example, the `cm' string for a standard ANSI terminal is written -as `\E[%i%d;%dH'. (`\E' stands for ESC.) `cm' by convention always -requires two parameters, the vertical and horizontal goal positions, so -this string specifies the encoding of two parameters. Here `%i' -increments the two values supplied, and each `%d' encodes one of the -values in decimal. If the cursor position values 20,58 are encoded -with this string, the result is `\E[21;59H'. - - First, here are the `%'-sequences that generate output. Except for -`%%', each of them encodes one parameter and advances the pointer to -the following parameter. - -`%%' - Output a single `%'. This is the only way to represent a literal - `%' in a terminal command with parameters. `%%' does not use up a - parameter. - -`%d' - As in `printf', output the next parameter in decimal. - -`%2' - Like `%02d' in `printf': output the next parameter in decimal, and - always use at least two digits. - -`%3' - Like `%03d' in `printf': output the next parameter in decimal, and - always use at least three digits. Note that `%4' and so on are - *not* defined. - -`%.' - Output the next parameter as a single character whose ASCII code is - the parameter value. Like `%c' in `printf'. - -`%+CHAR' - Add the next parameter to the character CHAR, and output the - resulting character. For example, `%+ ' represents 0 as a space, - 1 as `!', etc. - - The following `%'-sequences specify alteration of the parameters -(their values, or their order) rather than encoding a parameter for -output. They generate no output; they are used only for their side -effects on the parameters. Also, they do not advance the "next -parameter" pointer except as explicitly stated. Only `%i', `%r' and -`%>' are defined in standard Unix termcap. The others are GNU -extensions. - -`%i' - Increment the next two parameters. This is used for terminals that - expect cursor positions in origin 1. For example, `%i%d,%d' would - output two parameters with `1' for 0, `2' for 1, etc. - -`%r' - Interchange the next two parameters. This is used for terminals - whose cursor positioning command expects the horizontal position - first. - -`%s' - Skip the next parameter. Do not output anything. - -`%b' - Back up one parameter. The last parameter used will become once - again the next parameter to be output, and the next output command - will use it. Using `%b' more than once, you can back up any - number of parameters, and you can refer to each parameter any - number of times. - -`%>C1C2' - Conditionally increment the next parameter. Here C1 and C2 are - characters which stand for their ASCII codes as numbers. If the - next parameter is greater than the ASCII code of C1, the ASCII - code of C2 is added to it. - -`%a OP TYPE POS' - Perform arithmetic on the next parameter, do not use it up, and do - not output anything. Here OP specifies the arithmetic operation, - while TYPE and POS together specify the other operand. - - Spaces are used above to separate the operands for clarity; the - spaces don't appear in the data base, where this sequence is - exactly five characters long. - - The character OP says what kind of arithmetic operation to - perform. It can be any of these characters: - - `=' - assign a value to the next parameter, ignoring its old value. - The new value comes from the other operand. - - `+' - add the other operand to the next parameter. - - `-' - subtract the other operand from the next parameter. - - `*' - multiply the next parameter by the other operand. - - `/' - divide the next parameter by the other operand. - - The "other operand" may be another parameter's value or a constant; - the character TYPE says which. It can be: - - `p' - Use another parameter. The character POS says which - parameter to use. Subtract 64 from its ASCII code to get the - position of the desired parameter relative to this one. Thus, - the character `A' as POS means the parameter after the next - one; the character `?' means the parameter before the next - one. - - `c' - Use a constant value. The character POS specifies the value - of the constant. The 0200 bit is cleared out, so that 0200 - can be used to represent zero. - - The following `%'-sequences are special purpose hacks to compensate -for the weird designs of obscure terminals. They modify the next -parameter or the next two parameters but do not generate output and do -not use up any parameters. `%m' is a GNU extension; the others are -defined in standard Unix termcap. - -`%n' - Exclusive-or the next parameter with 0140, and likewise the - parameter after next. - -`%m' - Complement all the bits of the next parameter and the parameter - after next. - -`%B' - Encode the next parameter in BCD. It alters the value of the - parameter by adding six times the quotient of the parameter by ten. - Here is a C statement that shows how the new value is computed: - - PARM = (PARM / 10) * 16 + PARM % 10; - -`%D' - Transform the next parameter as needed by Delta Data terminals. - This involves subtracting twice the remainder of the parameter by - 16. - - PARM -= 2 * (PARM % 16); - - -File: termcap.info, Node: Using Parameters, Prev: Encode Parameters, Up: Parameters - -Sending Display Commands with Parameters ----------------------------------------- - - The termcap library functions `tparam' and `tgoto' serve as the -analog of `printf' for terminal string parameters. The newer function -`tparam' is a GNU extension, more general but missing from Unix -termcap. The original parameter-encoding function is `tgoto', which is -preferable for cursor motion. - -* Menu: - -* tparam:: The general case, for GNU termcap only. -* tgoto:: The special case of cursor motion. - - -File: termcap.info, Node: tparam, Next: tgoto, Up: Using Parameters - -`tparam' -........ - - The function `tparam' can encode display commands with any number of -parameters and allows you to specify the buffer space. It is the -preferred function for encoding parameters for all but the `cm' -capability. Its ANSI C declaration is as follows: - - char *tparam (char *CTLSTRING, char *BUFFER, int SIZE, int PARM1,...) - - The arguments are a control string CTLSTRING (the value of a terminal -capability, presumably), an output buffer BUFFER and SIZE, and any -number of integer parameters to be encoded. The effect of `tparam' is -to copy the control string into the buffer, encoding parameters -according to the `%' sequences in the control string. - - You describe the output buffer by its address, BUFFER, and its size -in bytes, SIZE. If the buffer is not big enough for the data to be -stored in it, `tparam' calls `malloc' to get a larger buffer. In -either case, `tparam' returns the address of the buffer it ultimately -uses. If the value equals BUFFER, your original buffer was used. -Otherwise, a new buffer was allocated, and you must free it after you -are done with printing the results. If you pass zero for SIZE and -BUFFER, `tparam' always allocates the space with `malloc'. - - All capabilities that require parameters also have the ability to -specify padding, so you should use `tputs' to output the string -produced by `tparam'. *Note Padding::. Here is an example. - - { - char *buf; - char buffer[40]; - - buf = tparam (command, buffer, 40, parm); - tputs (buf, 1, fputchar); - if (buf != buffer) - free (buf); - } - - If a parameter whose value is zero is encoded with `%.'-style -encoding, the result is a null character, which will confuse `tputs'. -This would be a serious problem, but luckily `%.' encoding is used only -by a few old models of terminal, and only for the `cm' capability. To -solve the problem, use `tgoto' rather than `tparam' to encode the `cm' -capability. - - -File: termcap.info, Node: tgoto, Prev: tparam, Up: Using Parameters - -`tgoto' -....... - - The special case of cursor motion is handled by `tgoto'. There are -two reasons why you might choose to use `tgoto': - - * For Unix compatibility, because Unix termcap does not have - `tparam'. - - * For the `cm' capability, since `tgoto' has a special feature to - avoid problems with null characters, tabs and newlines on certain - old terminal types that use `%.' encoding for that capability. - - Here is how `tgoto' might be declared in ANSI C: - - char *tgoto (char *CSTRING, int HPOS, int VPOS) - - There are three arguments, the terminal description's `cm' string and -the two cursor position numbers; `tgoto' computes the parametrized -string in an internal static buffer and returns the address of that -buffer. The next time you use `tgoto' the same buffer will be reused. - - Parameters encoded with `%.' encoding can generate null characters, -tabs or newlines. These might cause trouble: the null character because -`tputs' would think that was the end of the string, the tab because the -kernel or other software might expand it into spaces, and the newline -becaue the kernel might add a carriage-return, or padding characters -normally used for a newline. To prevent such problems, `tgoto' is -careful to avoid these characters. Here is how this works: if the -target cursor position value is such as to cause a problem (that is to -say, zero, nine or ten), `tgoto' increments it by one, then compensates -by appending a string to move the cursor back or up one position. - - The compensation strings to use for moving back or up are found in -global variables named `BC' and `UP'. These are actual external C -variables with upper case names; they are declared `char *'. It is up -to you to store suitable values in them, normally obtained from the -`le' and `up' terminal capabilities in the terminal description with -`tgetstr'. Alternatively, if these two variables are both zero, the -feature of avoiding nulls, tabs and newlines is turned off. - - It is safe to use `tgoto' for commands other than `cm' only if you -have stored zero in `BC' and `UP'. - - Note that `tgoto' reverses the order of its operands: the horizontal -position comes before the vertical position in the arguments to -`tgoto', even though the vertical position comes before the horizontal -in the parameters of the `cm' string. If you use `tgoto' with a -command such as `AL' that takes one parameter, you must pass the -parameter to `tgoto' as the "vertical position". - - -File: termcap.info, Node: Data Base, Next: Capabilities, Prev: Library, Up: Top - -The Format of the Data Base -*************************** - - The termcap data base of terminal descriptions is stored in the file -`/etc/termcap'. It contains terminal descriptions, blank lines, and -comments. - - A terminal description starts with one or more names for the -terminal type. The information in the description is a series of -"capability names" and values. The capability names have standard -meanings (*note Capabilities::.) and their values describe the terminal. - -* Menu: - -* Format:: Overall format of a terminal description. -* Capability Format:: Format of capabilities within a description. -* Naming:: Naming conventions for terminal types. -* Inheriting:: Inheriting part of a description from -a related terminal type. -* Changing:: When changes in the data base take effect. - - -File: termcap.info, Node: Format, Next: Capability Format, Up: Data Base - -Terminal Description Format -=========================== - - Aside from comments (lines starting with `#', which are ignored), -each nonblank line in the termcap data base is a terminal description. -A terminal description is nominally a single line, but it can be split -into multiple lines by inserting the two characters `\ newline'. This -sequence is ignored wherever it appears in a description. - - The preferred way to split the description is between capabilities: -insert the four characters `: \ newline tab' immediately before any -colon. This allows each sub-line to start with some indentation. This -works because, after the `\ newline' are ignored, the result is `: tab -:'; the first colon ends the preceding capability and the second colon -starts the next capability. If you split with `\ newline' alone, you -may not add any indentation after them. - - Here is a real example of a terminal description: - - dw|vt52|DEC vt52:\ - :cr=^M:do=^J:nl=^J:bl=^G:\ - :le=^H:bs:cd=\EJ:ce=\EK:cl=\EH\EJ:\ - :cm=\EY%+ %+ :co#80:li#24:\ - :nd=\EC:ta=^I:pt:sr=\EI:up=\EA:\ - :ku=\EA:kd=\EB:kr=\EC:kl=\ED:kb=^H: - - Each terminal description begins with several names for the terminal -type. The names are separated by `|' characters, and a colon ends the -last name. The first name should be two characters long; it exists -only for the sake of very old Unix systems and is never used in modern -systems. The last name should be a fully verbose name such as "DEC -vt52" or "Ann Arbor Ambassador with 48 lines". The other names should -include whatever the user ought to be able to specify to get this -terminal type, such as `vt52' or `aaa-48'. *Note Naming::, for -information on how to choose terminal type names. - - After the terminal type names come the terminal capabilities, -separated by colons and with a colon after the last one. Each -capability has a two-letter name, such as `cm' for "cursor motion -string" or `li' for "number of display lines". - - -File: termcap.info, Node: Capability Format, Next: Naming, Prev: Format, Up: Data Base - -Writing the Capabilities -======================== - - There are three kinds of capabilities: flags, numbers, and strings. -Each kind has its own way of being written in the description. Each -defined capability has by convention a particular kind of value; for -example, `li' always has a numeric value and `cm' always a string value. - - A flag capability is thought of as having a boolean value: the value -is true if the capability is present, false if not. When the -capability is present, just write its name between two colons. - - A numeric capability has a value which is a nonnegative number. -Write the capability name, a `#', and the number, between two colons. -For example, `...:li#48:...' is how you specify the `li' capability for -48 lines. - - A string-valued capability has a value which is a sequence of -characters. Usually these are the characters used to perform some -display operation. Write the capability name, a `=', and the -characters of the value, between two colons. For example, -`...:cm=\E[%i%d;%dH:...' is how the cursor motion command for a -standard ANSI terminal would be specified. - - Special characters in the string value can be expressed using -`\'-escape sequences as in C; in addition, `\E' stands for ESC. `^' is -also a kind of escape character; `^' followed by CHAR stands for the -control-equivalent of CHAR. Thus, `^a' stands for the character -control-a, just like `\001'. `\' and `^' themselves can be represented -as `\\' and `\^'. - - To include a colon in the string, you must write `\072'. You might -ask, "Why can't `\:' be used to represent a colon?" The reason is that -the interrogation functions do not count slashes while looking for a -capability. Even if `:ce=ab\:cd:' were interpreted as giving the `ce' -capability the value `ab:cd', it would also appear to define `cd' as a -flag. - - The string value will often contain digits at the front to specify -padding (*note Padding::.) and/or `%'-sequences within to specify how -to encode parameters (*note Parameters::.). Although these things are -not to be output literally to the terminal, they are considered part of -the value of the capability. They are special only when the string -value is processed by `tputs', `tparam' or `tgoto'. By contrast, `\' -and `^' are considered part of the syntax for specifying the characters -in the string. - - Let's look at the VT52 example again: - - dw|vt52|DEC vt52:\ - :cr=^M:do=^J:nl=^J:bl=^G:\ - :le=^H:bs:cd=\EJ:ce=\EK:cl=\EH\EJ:\ - :cm=\EY%+ %+ :co#80:li#24:\ - :nd=\EC:ta=^I:pt:sr=\EI:up=\EA:\ - :ku=\EA:kd=\EB:kr=\EC:kl=\ED:kb=^H: - - Here we see the numeric-valued capabilities `co' and `li', the flags -`bs' and `pt', and many string-valued capabilities. Most of the -strings start with ESC represented as `\E'. The rest contain control -characters represented using `^'. The meanings of the individual -capabilities are defined elsewhere (*note Capabilities::.). - diff --git a/lib/termcap/grot/termcap.info-2 b/lib/termcap/grot/termcap.info-2 deleted file mode 100644 index 6098d62df..000000000 --- a/lib/termcap/grot/termcap.info-2 +++ /dev/null @@ -1,974 +0,0 @@ -This is Info file ./termcap.info, produced by Makeinfo-1.55 from the -input file ./termcap.texi. - - This file documents the termcap library of the GNU system. - - Copyright (C) 1988 Free Software Foundation, Inc. - - 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 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, except that this permission notice may be stated in a -translation approved by the Foundation. - - -File: termcap.info, Node: Naming, Next: Inheriting, Prev: Capability Format, Up: Data Base - -Terminal Type Name Conventions -============================== - - There are conventions for choosing names of terminal types. For one -thing, all letters should be in lower case. The terminal type for a -terminal in its most usual or most fundamental mode of operation should -not have a hyphen in it. - - If the same terminal has other modes of operation which require -different terminal descriptions, these variant descriptions are given -names made by adding suffixes with hyphens. Such alternate descriptions -are used for two reasons: - - * When the terminal has a switch that changes its behavior. Since - the computer cannot tell how the switch is set, the user must tell - the computer by choosing the appropriate terminal type name. - - For example, the VT-100 has a setup flag that controls whether the - cursor wraps at the right margin. If this flag is set to "wrap", - you must use the terminal type `vt100-am'. Otherwise you must use - `vt100-nam'. Plain `vt100' is defined as a synonym for either - `vt100-am' or `vt100-nam' depending on the preferences of the - local site. - - The standard suffix `-am' stands for "automatic margins". - - * To give the user a choice in how to use the terminal. This is done - when the terminal has a switch that the computer normally controls. - - For example, the Ann Arbor Ambassador can be configured with many - screen sizes ranging from 20 to 60 lines. Fewer lines make bigger - characters but more lines let you see more of what you are editing. - As a result, users have different preferences. Therefore, termcap - provides terminal types for many screen sizes. If you choose type - `aaa-30', the terminal will be configured to use 30 lines; if you - choose `aaa-48', 48 lines will be used, and so on. - - Here is a list of standard suffixes and their conventional meanings: - -`-w' - Short for "wide". This is a mode that gives the terminal more - columns than usual. This is normally a user option. - -`-am' - "Automatic margins". This is an alternate description for use when - the terminal's margin-wrap switch is on; it contains the `am' - flag. The implication is that normally the switch is off and the - usual description for the terminal says that the switch is off. - -`-nam' - "No automatic margins". The opposite of `-am', this names an - alternative description which lacks the `am' flag. This implies - that the terminal is normally operated with the margin-wrap switch - turned on, and the normal description of the terminal says so. - -`-na' - "No arrows". This terminal description initializes the terminal to - keep its arrow keys in local mode. This is a user option. - -`-rv' - "Reverse video". This terminal description causes text output for - normal video to appear as reverse, and text output for reverse - video to come out as normal. Often this description differs from - the usual one by interchanging the two strings which turn reverse - video on and off. - - This is a user option; you can choose either the "reverse video" - variant terminal type or the normal terminal type, and termcap will - obey. - -`-s' - "Status". Says to enable use of a status line which ordinary - output does not touch (*note Status Line::.). - - Some terminals have a special line that is used only as a status - line. For these terminals, there is no need for an `-s' variant; - the status line commands should be defined by default. On other - terminals, enabling a status line means removing one screen line - from ordinary use and reducing the effective screen height. For - these terminals, the user can choose the `-s' variant type to - request use of a status line. - -`-NLINES' - Says to operate with NLINES lines on the screen, for terminals - such as the Ambassador which provide this as an option. Normally - this is a user option; by choosing the terminal type, you control - how many lines termcap will use. - -`-NPAGESp' - Says that the terminal has NPAGES pages worth of screen memory, - for terminals where this is a hardware option. - -`-unk' - Says that description is not for direct use, but only for - reference in `tc' capabilities. Such a description is a kind of - subroutine, because it describes the common characteristics of - several variant descriptions that would use other suffixes in - place of `-unk'. - - -File: termcap.info, Node: Inheriting, Next: Changing, Prev: Naming, Up: Data Base - -Inheriting from Related Descriptions -==================================== - - When two terminal descriptions are similar, their identical parts do -not need to be given twice. Instead, one of the two can be defined in -terms of the other, using the `tc' capability. We say that one -description "refers to" the other, or "inherits from" the other. - - The `tc' capability must be the last one in the terminal description, -and its value is a string which is the name of another terminal type -which is referred to. For example, - - N9|aaa|ambassador|aaa-30|ann arbor ambassador/30 lines:\ - :ti=\E[2J\E[30;0;0;30p:\ - :te=\E[60;0;0;30p\E[30;1H\E[J:\ - :li#30:tc=aaa-unk: - -defines the terminal type `aaa-30' (also known as plain `aaa') in terms -of `aaa-unk', which defines everything about the Ambassador that is -independent of screen height. The types `aaa-36', `aaa-48' and so on -for other screen heights are likewise defined to inherit from `aaa-unk'. - - The capabilities overridden by `aaa-30' include `li', which says how -many lines there are, and `ti' and `te', which configure the terminal -to use that many lines. - - The effective terminal description for type `aaa' consists of the -text shown above followed by the text of the description of `aaa-unk'. -The `tc' capability is handled automatically by `tgetent', which finds -the description thus referenced and combines the two descriptions -(*note Find::.). Therefore, only the implementor of the terminal -descriptions needs to think about using `tc'. Users and application -programmers do not need to be concerned with it. - - Since the reference terminal description is used last, capabilities -specified in the referring description override any specifications of -the same capabilities in the reference description. - - The referring description can cancel out a capability without -specifying any new value for it by means of a special trick. Write the -capability in the referring description, with the character `@' after -the capability name, as follows: - - NZ|aaa-30-nam|ann arbor ambassador/30 lines/no automatic-margins:\ - :am@:tc=aaa-30: - - -File: termcap.info, Node: Changing, Prev: Inheriting, Up: Data Base - -When Changes in the Data Base Take Effect -========================================= - - Each application program must read the terminal description from the -data base, so a change in the data base is effective for all jobs -started after the change is made. - - The change will usually have no effect on a job that have been in -existence since before the change. The program probably read the -terminal description once, when it was started, and is continuing to -use what it read then. If the program does not have a feature for -reexamining the data base, then you will need to run it again (probably -killing the old job). - - If the description in use is coming from the `TERMCAP' environment -variable, then the data base file is effectively overridden, and -changes in it will have no effect until you change the `TERMCAP' -variable as well. For example, some users' `.login' files -automatically copy the terminal description into `TERMCAP' to speed -startup of applications. If you have done this, you will need to -change the `TERMCAP' variable to make the changed data base take effect. - - -File: termcap.info, Node: Capabilities, Next: Summary, Prev: Data Base, Up: Top - -Definitions of the Terminal Capabilities -**************************************** - - This section is divided into many subsections, each for one aspect of -use of display terminals. For writing a display program, you usually -need only check the subsections for the operations you want to use. -For writing a terminal description, you must read each subsection and -fill in the capabilities described there. - - String capabilities that are display commands may require numeric -parameters (*note Parameters::.). Most such capabilities do not use -parameters. When a capability requires parameters, this is explicitly -stated at the beginning of its definition. In simple cases, the first -or second sentence of the definition mentions all the parameters, in -the order they should be given, using a name in upper case for each -one. For example, the `rp' capability is a command that requires two -parameters; its definition begins as follows: - - String of commands to output a graphic character C, repeated N - times. - - In complex cases or when there are many parameters, they are -described explicitly. - - When a capability is described as obsolete, this means that programs -should not be written to look for it, but terminal descriptions should -still be written to provide it. - - When a capability is described as very obsolete, this means that it -should be omitted from terminal descriptions as well. - -* Menu: - -* Basic:: Basic characteristics. -* Screen Size:: Screen size, and what happens when it changes. -* Cursor Motion:: Various ways to move the cursor. -* Wrapping:: What happens if you write a character in the last column. -* Scrolling:: Pushing text up and down on the screen. -* Windows:: Limiting the part of the window that output affects. -* Clearing:: Erasing one or many lines. -* Insdel Line:: Making new blank lines in mid-screen; deleting lines. -* Insdel Char:: Inserting and deleting characters within a line. -* Standout:: Highlighting some of the text. -* Underlining:: Underlining some of the text. -* Cursor Visibility:: Making the cursor more or less easy to spot. -* Bell:: Attracts user's attention; not localized on the screen. -* Keypad:: Recognizing when function keys or arrows are typed. -* Meta Key:: META acts like an extra shift key. -* Initialization:: Commands used to initialize or reset the terminal. -* Pad Specs:: Info for the kernel on how much padding is needed. -* Status Line:: A status line displays "background" information. -* Half-Line:: Moving by half-lines, for superscripts and subscripts. -* Printer:: Controlling auxiliary printers of display terminals. - - -File: termcap.info, Node: Basic, Next: Screen Size, Up: Capabilities - -Basic Characteristics -===================== - - This section documents the capabilities that describe the basic and -nature of the terminal, and also those that are relevant to the output -of graphic characters. - -`os' - Flag whose presence means that the terminal can overstrike. This - means that outputting a graphic character does not erase whatever - was present in the same character position before. The terminals - that can overstrike include printing terminals, storage tubes (all - obsolete nowadays), and many bit-map displays. - -`eo' - Flag whose presence means that outputting a space erases a - character position even if the terminal supports overstriking. If - this flag is not present and overstriking is supported, output of - a space has no effect except to move the cursor. - - (On terminals that do not support overstriking, you can always - assume that outputting a space at a position erases whatever - character was previously displayed there.) - -`gn' - Flag whose presence means that this terminal type is a generic type - which does not really describe any particular terminal. Generic - types are intended for use as the default type assigned when the - user connects to the system, with the intention that the user - should specify what type he really has. One example of a generic - type is the type `network'. - - Since the generic type cannot say how to do anything interesting - with the terminal, termcap-using programs will always find that the - terminal is too weak to be supported if the user has failed to - specify a real terminal type in place of the generic one. The - `gn' flag directs these programs to use a different error message: - "You have not specified your real terminal type", rather than - "Your terminal is not powerful enough to be used". - -`hc' - Flag whose presence means this is a hardcopy terminal. - -`rp' - String of commands to output a graphic character C, repeated N - times. The first parameter value is the ASCII code for the desired - character, and the second parameter is the number of times to - repeat the character. Often this command requires padding - proportional to the number of times the character is repeated. - This effect can be had by using parameter arithmetic with - `%'-sequences to compute the amount of padding, then generating - the result as a number at the front of the string so that `tputs' - will treat it as padding. - -`hz' - Flag whose presence means that the ASCII character `~' cannot be - output on this terminal because it is used for display commands. - - Programs handle this flag by checking all text to be output and - replacing each `~' with some other character(s). If this is not - done, the screen will be thoroughly garbled. - - The old Hazeltine terminals that required such treatment are - probably very rare today, so you might as well not bother to - support this flag. - -`CC' - String whose presence means the terminal has a settable command - character. The value of the string is the default command - character (which is usually ESC). - - All the strings of commands in the terminal description should be - written to use the default command character. If you are writing - an application program that changes the command character, use the - `CC' capability to figure out how to translate all the display - commands to work with the new command character. - - Most programs have no reason to look at the `CC' capability. - -`xb' - Flag whose presence identifies Superbee terminals which are unable - to transmit the characters ESC and `Control-C'. Programs which - support this flag are supposed to check the input for the code - sequences sent by the F1 and F2 keys, and pretend that ESC or - `Control-C' (respectively) had been read. But this flag is - obsolete, and not worth supporting. - - -File: termcap.info, Node: Screen Size, Next: Cursor Motion, Prev: Basic, Up: Capabilities - -Screen Size -=========== - - A terminal description has two capabilities, `co' and `li', that -describe the screen size in columns and lines. But there is more to -the question of screen size than this. - - On some operating systems the "screen" is really a window and the -effective width can vary. On some of these systems, `tgetnum' uses the -actual width of the window to decide what value to return for the `co' -capability, overriding what is actually written in the terminal -description. On other systems, it is up to the application program to -check the actual window width using a system call. For example, on BSD -4.3 systems, the system call `ioctl' with code `TIOCGWINSZ' will tell -you the current screen size. - - On all window systems, termcap is powerless to advise the application -program if the user resizes the window. Application programs must deal -with this possibility in a system-dependent fashion. On some systems -the C shell handles part of the problem by detecting changes in window -size and setting the `TERMCAP' environment variable appropriately. -This takes care of application programs that are started subsequently. -It does not help application programs already running. - - On some systems, including BSD 4.3, all programs using a terminal get -a signal named `SIGWINCH' whenever the screen size changes. Programs -that use termcap should handle this signal by using `ioctl TIOCGWINSZ' -to learn the new screen size. - -`co' - Numeric value, the width of the screen in character positions. - Even hardcopy terminals normally have a `co' capability. - -`li' - Numeric value, the height of the screen in lines. - - -File: termcap.info, Node: Cursor Motion, Next: Wrapping, Prev: Screen Size, Up: Capabilities - -Cursor Motion -============= - - Termcap assumes that the terminal has a "cursor", a spot on the -screen where a visible mark is displayed, and that most display -commands take effect at the position of the cursor. It follows that -moving the cursor to a specified location is very important. - - There are many terminal capabilities for different cursor motion -operations. A terminal description should define as many as possible, -but most programs do not need to use most of them. One capability, -`cm', moves the cursor to an arbitrary place on the screen; this by -itself is sufficient for any application as long as there is no need to -support hardcopy terminals or certain old, weak displays that have only -relative motion commands. Use of other cursor motion capabilities is an -optimization, enabling the program to output fewer characters in some -common cases. - - If you plan to use the relative cursor motion commands in an -application program, you must know what the starting cursor position -is. To do this, you must keep track of the cursor position and update -the records each time anything is output to the terminal, including -graphic characters. In addition, it is necessary to know whether the -terminal wraps after writing in the rightmost column. *Note Wrapping::. - - One other motion capability needs special mention: `nw' moves the -cursor to the beginning of the following line, perhaps clearing all the -starting line after the cursor, or perhaps not clearing at all. This -capability is a least common denominator that is probably supported -even by terminals that cannot do most other things such as `cm' or `do'. -Even hardcopy terminals can support `nw'. - -`cm' - String of commands to position the cursor at line L, column C. - Both parameters are origin-zero, and are defined relative to the - screen, not relative to display memory. - - All display terminals except a few very obsolete ones support `cm', - so it is acceptable for an application program to refuse to - operate on terminals lacking `cm'. - -`ho' - String of commands to move the cursor to the upper left corner of - the screen (this position is called the "home position"). In - terminals where the upper left corner of the screen is not the - same as the beginning of display memory, this command must go to - the upper left corner of the screen, not the beginning of display - memory. - - Every display terminal supports this capability, and many - application programs refuse to operate if the `ho' capability is - missing. - -`ll' - String of commands to move the cursor to the lower left corner of - the screen. On some terminals, moving up from home position does - this, but programs should never assume that will work. Just - output the `ll' string (if it is provided); if moving to home - position and then moving up is the best way to get there, the `ll' - command will do that. - -`cr' - String of commands to move the cursor to the beginning of the line - it is on. If this capability is not specified, many programs - assume they can use the ASCII carriage return character for this. - -`le' - String of commands to move the cursor left one column. Unless the - `bw' flag capability is specified, the effect is undefined if the - cursor is at the left margin; do not use this command there. If - `bw' is present, this command may be used at the left margin, and - it wraps the cursor to the last column of the preceding line. - -`nd' - String of commands to move the cursor right one column. The - effect is undefined if the cursor is at the right margin; do not - use this command there, not even if `am' is present. - -`up' - String of commands to move the cursor vertically up one line. The - effect of sending this string when on the top line is undefined; - programs should never use it that way. - -`do' - String of commands to move the cursor vertically down one line. - The effect of sending this string when on the bottom line is - undefined; programs should never use it that way. - - Some programs do use `do' to scroll up one line if used at the - bottom line, if `sf' is not defined but `sr' is. This is only to - compensate for certain old, incorrect terminal descriptions. (In - principle this might actually lead to incorrect behavior on other - terminals, but that seems to happen rarely if ever.) But the - proper solution is that the terminal description should define - `sf' as well as `do' if the command is suitable for scrolling. - - The original idea was that this string would not contain a newline - character and therefore could be used without disabling the - kernel's usual habit of converting of newline into a - carriage-return newline sequence. But many terminal descriptions - do use newline in the `do' string, so this is not possible; a - program which sends the `do' string must disable output conversion - in the kernel (*note Initialize::.). - -`bw' - Flag whose presence says that `le' may be used in column zero to - move to the last column of the preceding line. If this flag is - not present, `le' should not be used in column zero. - -`nw' - String of commands to move the cursor to start of next line, - possibly clearing rest of line (following the cursor) before - moving. - -`DO', `UP', `LE', `RI' - Strings of commands to move the cursor N lines down vertically, up - vertically, or N columns left or right. Do not attempt to move - past any edge of the screen with these commands; the effect of - trying that is undefined. Only a few terminal descriptions provide - these commands, and most programs do not use them. - -`CM' - String of commands to position the cursor at line L, column C, - relative to display memory. Both parameters are origin-zero. - This capability is present only in terminals where there is a - difference between screen-relative and memory-relative addressing, - and not even in all such terminals. - -`ch' - String of commands to position the cursor at column C in the same - line it is on. This is a special case of `cm' in which the - vertical position is not changed. The `ch' capability is provided - only when it is faster to output than `cm' would be in this - special case. Programs should not assume most display terminals - have `ch'. - -`cv' - String of commands to position the cursor at line L in the same - column. This is a special case of `cm' in which the horizontal - position is not changed. The `cv' capability is provided only - when it is faster to output than `cm' would be in this special - case. Programs should not assume most display terminals have `cv'. - -`sc' - String of commands to make the terminal save the current cursor - position. Only the last saved position can be used. If this - capability is present, `rc' should be provided also. Most - terminals have neither. - -`rc' - String of commands to make the terminal restore the last saved - cursor position. If this capability is present, `sc' should be - provided also. Most terminals have neither. - -`ff' - String of commands to advance to the next page, for a hardcopy - terminal. - -`ta' - String of commands to move the cursor right to the next hardware - tab stop column. Missing if the terminal does not have any kind of - hardware tabs. Do not send this command if the kernel's terminal - modes say that the kernel is expanding tabs into spaces. - -`bt' - String of commands to move the cursor left to the previous hardware - tab stop column. Missing if the terminal has no such ability; many - terminals do not. Do not send this command if the kernel's - terminal modes say that the kernel is expanding tabs into spaces. - - The following obsolete capabilities should be included in terminal -descriptions when appropriate, but should not be looked at by new -programs. - -`nc' - Flag whose presence means the terminal does not support the ASCII - carriage return character as `cr'. This flag is needed because - old programs assume, when the `cr' capability is missing, that - ASCII carriage return can be used for the purpose. We use `nc' to - tell the old programs that carriage return may not be used. - - New programs should not assume any default for `cr', so they need - not look at `nc'. However, descriptions should contain `nc' - whenever they do not contain `cr'. - -`xt' - Flag whose presence means that the ASCII tab character may not be - used for cursor motion. This flag exists because old programs - assume, when the `ta' capability is missing, that ASCII tab can be - used for the purpose. We use `xt' to tell the old programs not to - use tab. - - New programs should not assume any default for `ta', so they need - not look at `xt' in connection with cursor motion. Note that `xt' - also has implications for standout mode (*note Standout::.). It - is obsolete in regard to cursor motion but not in regard to - standout. - - In fact, `xt' means that the terminal is a Teleray 1061. - -`bc' - Very obsolete alternative name for the `le' capability. - -`bs' - Flag whose presence means that the ASCII character backspace may be - used to move the cursor left. Obsolete; look at `le' instead. - -`nl' - Obsolete capability which is a string that can either be used to - move the cursor down or to scroll. The same string must scroll - when used on the bottom line and move the cursor when used on any - other line. New programs should use `do' or `sf', and ignore `nl'. - - If there is no `nl' capability, some old programs assume they can - use the newline character for this purpose. These programs follow - a bad practice, but because they exist, it is still desirable to - define the `nl' capability in a terminal description if the best - way to move down is *not* a newline. - - -File: termcap.info, Node: Wrapping, Next: Scrolling, Prev: Cursor Motion, Up: Capabilities - -Wrapping -======== - - "Wrapping" means moving the cursor from the right margin to the left -margin of the following line. Some terminals wrap automatically when a -graphic character is output in the last column, while others do not. -Most application programs that use termcap need to know whether the -terminal wraps. There are two special flag capabilities to describe -what the terminal does when a graphic character is output in the last -column. - -`am' - Flag whose presence means that writing a character in the last - column causes the cursor to wrap to the beginning of the next line. - - If `am' is not present, writing in the last column leaves the - cursor at the place where the character was written. - - Writing in the last column of the last line should be avoided on - terminals with `am', as it may or may not cause scrolling to occur - (*note Scrolling::.). Scrolling is surely not what you would - intend. - - If your program needs to check the `am' flag, then it also needs - to check the `xn' flag which indicates that wrapping happens in a - strange way. Many common terminals have the `xn' flag. - -`xn' - Flag whose presence means that the cursor wraps in a strange way. - At least two distinct kinds of strange behavior are known; the - termcap data base does not contain anything to distinguish the two. - - On Concept-100 terminals, output in the last column wraps the - cursor almost like an ordinary `am' terminal. But if the next - thing output is a newline, it is ignored. - - DEC VT-100 terminals (when the wrap switch is on) do a different - strange thing: the cursor wraps only if the next thing output is - another graphic character. In fact, the wrap occurs when the - following graphic character is received by the terminal, before the - character is placed on the screen. - - On both of these terminals, after writing in the last column a - following graphic character will be displayed in the first column - of the following line. But the effect of relative cursor motion - characters such as newline or backspace at such a time depends on - the terminal. The effect of erase or scrolling commands also - depends on the terminal. You can't assume anything about what - they will do on a terminal that has `xn'. So, to be safe, you - should never do these things at such a time on such a terminal. - - To be sure of reliable results on a terminal which has the `xn' - flag, output a `cm' absolute positioning command after writing in - the last column. Another safe thing to do is to output - carriage-return newline, which will leave the cursor at the - beginning of the following line. - -`LP' - Flag whose presence means that it is safe to write in the last - column of the last line without worrying about undesired - scrolling. `LP' indicates the DEC flavor of `xn' strangeness. - - -File: termcap.info, Node: Scrolling, Next: Windows, Prev: Wrapping, Up: Capabilities - -Scrolling -========= - - "Scrolling" means moving the contents of the screen up or down one or -more lines. Moving the contents up is "forward scrolling"; moving them -down is "reverse scrolling". - - Scrolling happens after each line of output during ordinary output -on most display terminals. But in an application program that uses -termcap for random-access output, scrolling happens only when -explicitly requested with the commands in this section. - - Some terminals have a "scroll region" feature. This lets you limit -the effect of scrolling to a specified range of lines. Lines outside -the range are unaffected when scrolling happens. The scroll region -feature is available if either `cs' or `cS' is present. - -`sf' - String of commands to scroll the screen one line up, assuming it is - output with the cursor at the beginning of the bottom line. - -`sr' - String of commands to scroll the screen one line down, assuming it - is output with the cursor at the beginning of the top line. - -`do' - A few programs will try to use `do' to do the work of `sf'. This - is not really correct--it is an attempt to compensate for the - absence of a `sf' command in some old terminal descriptions. - - Since these terminal descriptions do define `sr', perhaps at one - time the definition of `do' was different and it could be used for - scrolling as well. But it isn't desirable to combine these two - functions in one capability, since scrolling often requires more - padding than simply moving the cursor down. Defining `sf' and - `do' separately allows you to specify the padding properly. Also, - all sources agree that `do' should not be relied on to do - scrolling. - - So the best approach is to add `sf' capabilities to the - descriptions of these terminals, copying the definition of `do' if - that does scroll. - -`SF' - String of commands to scroll the screen N lines up, assuming it is - output with the cursor at the beginning of the bottom line. - -`SR' - String of commands to scroll the screen N lines down, assuming it - is output with the cursor at the beginning of the top line. - -`cs' - String of commands to set the scroll region. This command takes - two parameters, START and END, which are the line numbers - (origin-zero) of the first line to include in the scroll region - and of the last line to include in it. When a scroll region is - set, scrolling is limited to the specified range of lines; lines - outside the range are not affected by scroll commands. - - Do not try to move the cursor outside the scroll region. The - region remains set until explicitly removed. To remove the scroll - region, use another `cs' command specifying the full height of the - screen. - - The cursor position is undefined after the `cs' command is set, so - position the cursor with `cm' immediately afterward. - -`cS' - String of commands to set the scroll region using parameters in - different form. The effect is the same as if `cs' were used. - Four parameters are required: - - 1. Total number of lines on the screen. - - 2. Number of lines above desired scroll region. - - 3. Number of lines below (outside of) desired scroll region. - - 4. Total number of lines on the screen, the same as the first - parameter. - - This capability is a GNU extension that was invented to allow the - Ann Arbor Ambassador's scroll-region command to be described; it - could also be done by putting non-Unix `%'-sequences into a `cs' - string, but that would have confused Unix programs that used the - `cs' capability with the Unix termcap. Currently only GNU Emacs - uses the `cS' capability. - -`ns' - Flag which means that the terminal does not normally scroll for - ordinary sequential output. For modern terminals, this means that - outputting a newline in ordinary sequential output with the cursor - on the bottom line wraps to the top line. For some obsolete - terminals, other things may happen. - - The terminal may be able to scroll even if it does not normally do - so. If the `sf' capability is provided, it can be used for - scrolling regardless of `ns'. - -`da' - Flag whose presence means that lines scrolled up off the top of the - screen may come back if scrolling down is done subsequently. - - The `da' and `db' flags do not, strictly speaking, affect how to - scroll. But programs that scroll usually need to clear the lines - scrolled onto the screen, if these flags are present. - -`db' - Flag whose presence means that lines scrolled down off the bottom - of the screen may come back if scrolling up is done subsequently. - -`lm' - Numeric value, the number of lines of display memory that the - terminal has. A value of zero means that the terminal has more - display memory than can fit on the screen, but no fixed number of - lines. (The number of lines may depend on the amount of text in - each line.) - - Any terminal description that defines `SF' should also define `sf'; -likewise for `SR' and `sr'. However, many terminals can only scroll by -one line at a time, so it is common to find `sf' and not `SF', or `sr' -without `SR'. - - Therefore, all programs that use the scrolling facilities should be -prepared to work with `sf' in the case that `SF' is absent, and -likewise with `sr'. On the other hand, an application program that -uses only `sf' and not `SF' is acceptable, though slow on some -terminals. - - When outputting a scroll command with `tputs', the NLINES argument -should be the total number of lines in the portion of the screen being -scrolled. Very often these commands require padding proportional to -this number of lines. *Note Padding::. - - -File: termcap.info, Node: Windows, Next: Clearing, Prev: Scrolling, Up: Capabilities - -Windows -======= - - A "window", in termcap, is a rectangular portion of the screen to -which all display operations are restricted. Wrapping, clearing, -scrolling, insertion and deletion all operate as if the specified -window were all the screen there was. - -`wi' - String of commands to set the terminal output screen window. This - string requires four parameters, all origin-zero: - 1. The first line to include in the window. - - 2. The last line to include in the window. - - 3. The first column to include in the window. - - 4. The last column to include in the window. - - Most terminals do not support windows. - - -File: termcap.info, Node: Clearing, Next: Insdel Line, Prev: Windows, Up: Capabilities - -Clearing Parts of the Screen -============================ - - There are several terminal capabilities for clearing parts of the -screen to blank. All display terminals support the `cl' string, and -most display terminals support all of these capabilities. - -`cl' - String of commands to clear the entire screen and position the - cursor at the upper left corner. - -`cd' - String of commands to clear the line the cursor is on, and all the - lines below it, down to the bottom of the screen. This command - string should be used only with the cursor in column zero; their - effect is undefined if the cursor is elsewhere. - -`ce' - String of commands to clear from the cursor to the end of the - current line. - -`ec' - String of commands to clear N characters, starting with the - character that the cursor is on. This command string is expected - to leave the cursor position unchanged. The parameter N should - never be large enough to reach past the right margin; the effect - of such a large parameter would be undefined. - - Clear to end of line (`ce') is extremely important in programs that -maintain an updating display. Nearly all display terminals support this -operation, so it is acceptable for a an application program to refuse to -work if `ce' is not present. However, if you do not want this -limitation, you can accomplish clearing to end of line by outputting -spaces until you reach the right margin. In order to do this, you must -know the current horizontal position. Also, this technique assumes -that writing a space will erase. But this happens to be true on all -the display terminals that fail to support `ce'. - - -File: termcap.info, Node: Insdel Line, Next: Insdel Char, Prev: Clearing, Up: Capabilities - -Insert/Delete Line -================== - - "Inserting a line" means creating a blank line in the middle of the -screen, and pushing the existing lines of text apart. In fact, the -lines above the insertion point do not change, while the lines below -move down, and one is normally lost at the bottom of the screen. - - "Deleting a line" means causing the line to disappear from the -screen, closing up the gap by moving the lines below it upward. A new -line appears at the bottom of the screen. Usually this line is blank, -but on terminals with the `db' flag it may be a line previously moved -off the screen bottom by scrolling or line insertion. - - Insertion and deletion of lines is useful in programs that maintain -an updating display some parts of which may get longer or shorter. -They are also useful in editors for scrolling parts of the screen, and -for redisplaying after lines of text are killed or inserted. - - Many terminals provide commands to insert or delete a single line at -the cursor position. Some provide the ability to insert or delete -several lines with one command, using the number of lines to insert or -delete as a parameter. Always move the cursor to column zero before -using any of these commands. - -`al' - String of commands to insert a blank line before the line the - cursor is on. The existing line, and all lines below it, are - moved down. The last line in the screen (or in the scroll region, - if one is set) disappears and in most circumstances is discarded. - It may not be discarded if the `db' is present (*note - Scrolling::.). - - The cursor must be at the left margin before this command is used. - This command does not move the cursor. - -`dl' - String of commands to delete the line the cursor is on. The - following lines move up, and a blank line appears at the bottom of - the screen (or bottom of the scroll region). If the terminal has - the `db' flag, a nonblank line previously pushed off the screen - bottom may reappear at the bottom. - - The cursor must be at the left margin before this command is used. - This command does not move the cursor. - -`AL' - String of commands to insert N blank lines before the line that - the cursor is on. It is like `al' repeated N times, except that - it is as fast as one `al'. - -`DL' - String of commands to delete N lines starting with the line that - the cursor is on. It is like `dl' repeated N times, except that - it is as fast as one `dl'. - - Any terminal description that defines `AL' should also define `al'; -likewise for `DL' and `dl'. However, many terminals can only insert or -delete one line at a time, so it is common to find `al' and not `AL', -or `dl' without `DL'. - - Therefore, all programs that use the insert and delete facilities -should be prepared to work with `al' in the case that `AL' is absent, -and likewise with `dl'. On the other hand, it is acceptable to write -an application that uses only `al' and `dl' and does not look for `AL' -or `DL' at all. - - If a terminal does not support line insertion and deletion directly, -but does support a scroll region, the effect of insertion and deletion -can be obtained with scrolling. However, it is up to the individual -user program to check for this possibility and use the scrolling -commands to get the desired result. It is fairly important to implement -this alternate strategy, since it is the only way to get the effect of -line insertion and deletion on the popular VT100 terminal. - - Insertion and deletion of lines is affected by the scroll region on -terminals that have a settable scroll region. This is useful when it is -desirable to move any few consecutive lines up or down by a few lines. -*Note Scrolling::. - - The line pushed off the bottom of the screen is not lost if the -terminal has the `db' flag capability; instead, it is pushed into -display memory that does not appear on the screen. This is the same -thing that happens when scrolling pushes a line off the bottom of the -screen. Either reverse scrolling or deletion of a line can bring the -apparently lost line back onto the bottom of the screen. If the -terminal has the scroll region feature as well as `db', the pushed-out -line really is lost if a scroll region is in effect. - - When outputting an insert or delete command with `tputs', the NLINES -argument should be the total number of lines from the cursor to the -bottom of the screen (or scroll region). Very often these commands -require padding proportional to this number of lines. *Note Padding::. - - For `AL' and `DL' the NLINES argument should *not* depend on the -number of lines inserted or deleted; only the total number of lines -affected. This is because it is just as fast to insert two or N lines -with `AL' as to insert one line with `al'. - diff --git a/lib/termcap/grot/termcap.info-3 b/lib/termcap/grot/termcap.info-3 deleted file mode 100644 index d5b309f21..000000000 --- a/lib/termcap/grot/termcap.info-3 +++ /dev/null @@ -1,1480 +0,0 @@ -This is Info file ./termcap.info, produced by Makeinfo-1.55 from the -input file ./termcap.texi. - - This file documents the termcap library of the GNU system. - - Copyright (C) 1988 Free Software Foundation, Inc. - - 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 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, except that this permission notice may be stated in a -translation approved by the Foundation. - - -File: termcap.info, Node: Insdel Char, Next: Standout, Prev: Insdel Line, Up: Capabilities - -Insert/Delete Character -======================= - - "Inserting a character" means creating a blank space in the middle -of a line, and pushing the rest of the line rightward. The character -in the rightmost column is lost. - - "Deleting a character" means causing the character to disappear from -the screen, closing up the gap by moving the rest of the line leftward. -A blank space appears in the rightmost column. - - Insertion and deletion of characters is useful in programs that -maintain an updating display some parts of which may get longer or -shorter. It is also useful in editors for redisplaying the results of -editing within a line. - - Many terminals provide commands to insert or delete a single -character at the cursor position. Some provide the ability to insert -or delete several characters with one command, using the number of -characters to insert or delete as a parameter. - - Many terminals provide an insert mode in which outputting a graphic -character has the added effect of inserting a position for that -character. A special command string is used to enter insert mode and -another is used to exit it. The reason for designing a terminal with -an insert mode rather than an insert command is that inserting -character positions is usually followed by writing characters into -them. With insert mode, this is as fast as simply writing the -characters, except for the fixed overhead of entering and leaving -insert mode. However, when the line speed is great enough, padding may -be required for the graphic characters output in insert mode. - - Some terminals require you to enter insert mode and then output a -special command for each position to be inserted. Or they may require -special commands to be output before or after each graphic character to -be inserted. - - Deletion of characters is usually accomplished by a straightforward -command to delete one or several positions; but on some terminals, it -is necessary to enter a special delete mode before using the delete -command, and leave delete mode afterward. Sometimes delete mode and -insert mode are the same mode. - - Some terminals make a distinction between character positions in -which a space character has been output and positions which have been -cleared. On these terminals, the effect of insert or delete character -runs to the first cleared position rather than to the end of the line. -In fact, the effect may run to more than one line if there is no -cleared position to stop the shift on the first line. These terminals -are identified by the `in' flag capability. - - On terminals with the `in' flag, the technique of skipping over -characters that you know were cleared, and then outputting text later -on in the same line, causes later insert and delete character -operations on that line to do nonstandard things. A program that has -any chance of doing this must check for the `in' flag and must be -careful to write explicit space characters into the intermediate -columns when `in' is present. - - A plethora of terminal capabilities are needed to describe all of -this complexity. Here is a list of them all. Following the list, we -present an algorithm for programs to use to take proper account of all -of these capabilities. - -`im' - String of commands to enter insert mode. - - If the terminal has no special insert mode, but it can insert - characters with a special command, `im' should be defined with a - null value, because the `vi' editor assumes that insertion of a - character is impossible if `im' is not provided. - - New programs should not act like `vi'. They should pay attention - to `im' only if it is defined. - -`ei' - String of commands to leave insert mode. This capability must be - present if `im' is. - - On a few old terminals the same string is used to enter and exit - insert mode. This string turns insert mode on if it was off, and - off it it was on. You can tell these terminals because the `ei' - string equals the `im' string. If you want to support these - terminals, you must always remember accurately whether insert mode - is in effect. However, these terminals are obsolete, and it is - reasonable to refuse to support them. On all modern terminals, you - can safely output `ei' at any time to ensure that insert mode is - turned off. - -`ic' - String of commands to insert one character position at the cursor. - The cursor does not move. - - If outputting a graphic character while in insert mode is - sufficient to insert the character, then the `ic' capability - should be defined with a null value. - - If your terminal offers a choice of ways to insert--either use - insert mode or use a special command--then define `im' and do not - define `ic', since this gives the most efficient operation when - several characters are to be inserted. *Do not* define both - strings, for that means that *both* must be used each time - insertion is done. - -`ip' - String of commands to output following an inserted graphic - character in insert mode. Often it is used just for a padding - spec, when padding is needed after an inserted character (*note - Padding::.). - -`IC' - String of commands to insert N character positions at and after - the cursor. It has the same effect as repeating the `ic' string - and a space, N times. - - If `IC' is provided, application programs may use it without first - entering insert mode. - -`mi' - Flag whose presence means it is safe to move the cursor while in - insert mode and assume the terminal remains in insert mode. - -`in' - Flag whose presence means that the terminal distinguishes between - character positions in which space characters have been output and - positions which have been cleared. - - An application program can assume that the terminal can do character -insertion if *any one of* the capabilities `IC', `im', `ic' or `ip' is -provided. - - To insert N blank character positions, move the cursor to the place -to insert them and follow this algorithm: - - 1. If an `IC' string is provided, output it with parameter N and you - are finished. Otherwise (or if you don't want to bother to look - for an `IC' string) follow the remaining steps. - - 2. Output the `im' string, if there is one, unless the terminal is - already in insert mode. - - 3. Repeat steps 4 through 6, N times. - - 4. Output the `ic' string if any. - - 5. Output a space. - - 6. Output the `ip' string if any. - - 7. Output the `ei' string, eventually, to exit insert mode. There is - no need to do this right away. If the `mi' flag is present, you - can move the cursor and the cursor will remain in insert mode; - then you can do more insertion elsewhere without reentering insert - mode. - - To insert N graphic characters, position the cursor and follow this -algorithm: - - 1. If an `IC' string is provided, output it with parameter N, then - output the graphic characters, and you are finished. Otherwise - (or if you don't want to bother to look for an `IC' string) follow - the remaining steps. - - 2. Output the `im' string, if there is one, unless the terminal is - already in insert mode. - - 3. For each character to be output, repeat steps 4 through 6. - - 4. Output the `ic' string if any. - - 5. Output the next graphic character. - - 6. Output the `ip' string if any. - - 7. Output the `ei' string, eventually, to exit insert mode. There is - no need to do this right away. If the `mi' flag is present, you - can move the cursor and the cursor will remain in insert mode; - then you can do more insertion elsewhere without reentering insert - mode. - - Note that this is not the same as the original Unix termcap -specifications in one respect: it assumes that the `IC' string can be -used without entering insert mode. This is true as far as I know, and -it allows you be able to avoid entering and leaving insert mode, and -also to be able to avoid the inserted-character padding after the -characters that go into the inserted positions. - - Deletion of characters is less complicated; deleting one column is -done by outputting the `dc' string. However, there may be a delete -mode that must be entered with `dm' in order to make `dc' work. - -`dc' - String of commands to delete one character position at the cursor. - If `dc' is not present, the terminal cannot delete characters. - -`DC' - String of commands to delete N characters starting at the cursor. - It has the same effect as repeating the `dc' string N times. Any - terminal description that has `DC' also has `dc'. - -`dm' - String of commands to enter delete mode. If not present, there is - no delete mode, and `dc' can be used at any time (assuming there is - a `dc'). - -`ed' - String of commands to exit delete mode. This must be present if - `dm' is. - - To delete N character positions, position the cursor and follow these -steps: - - 1. If the `DC' string is present, output it with parameter N and you - are finished. Otherwise, follow the remaining steps. - - 2. Output the `dm' string, unless you know the terminal is already in - delete mode. - - 3. Output the `dc' string N times. - - 4. Output the `ed' string eventually. If the flag capability `mi' is - present, you can move the cursor and do more deletion without - leaving and reentering delete mode. - - As with the `IC' string, we have departed from the original termcap -specifications by assuming that `DC' works without entering delete mode -even though `dc' would not. - - If the `dm' and `im' capabilities are both present and have the same -value, it means that the terminal has one mode for both insertion and -deletion. It is useful for a program to know this, because then it can -do insertions after deletions, or vice versa, without leaving -insert/delete mode and reentering it. - - -File: termcap.info, Node: Standout, Next: Underlining, Prev: Insdel Char, Up: Capabilities - -Standout and Appearance Modes -============================= - - "Appearance modes" are modifications to the ways characters are -displayed. Typical appearance modes include reverse video, dim, bright, -blinking, underlined, invisible, and alternate character set. Each -kind of terminal supports various among these, or perhaps none. - - For each type of terminal, one appearance mode or combination of -them that looks good for highlighted text is chosen as the "standout -mode". The capabilities `so' and `se' say how to enter and leave -standout mode. Programs that use appearance modes only to highlight -some text generally use the standout mode so that they can work on as -many terminals as possible. Use of specific appearance modes other -than "underlined" and "alternate character set" is rare. - - Terminals that implement appearance modes fall into two general -classes as to how they do it. - - In some terminals, the presence or absence of any appearance mode is -recorded separately for each character position. In these terminals, -each graphic character written is given the appearance modes current at -the time it is written, and keeps those modes until it is erased or -overwritten. There are special commands to turn the appearance modes -on or off for characters to be written in the future. - - In other terminals, the change of appearance modes is represented by -a marker that belongs to a certain screen position but affects all -following screen positions until the next marker. These markers are -traditionally called "magic cookies". - - The same capabilities (`so', `se', `mb' and so on) for turning -appearance modes on and off are used for both magic-cookie terminals -and per-character terminals. On magic cookie terminals, these give the -commands to write the magic cookies. On per-character terminals, they -change the current modes that affect future output and erasure. Some -simple applications can use these commands without knowing whether or -not they work by means of cookies. - - However, a program that maintains and updates a display needs to know -whether the terminal uses magic cookies, and exactly what their effect -is. This information comes from the `sg' capability. - - The `sg' capability is a numeric capability whose presence indicates -that the terminal uses magic cookies for appearance modes. Its value is -the number of character positions that a magic cookie occupies. Usually -the cookie occupies one or more character positions on the screen, and -these character positions are displayed as blank, but in some terminals -the cookie has zero width. - - The `sg' capability describes both the magic cookie to turn standout -on and the cookie to turn it off. This makes the assumption that both -kinds of cookie have the same width on the screen. If that is not true, -the narrower cookie must be "widened" with spaces until it has the same -width as the other. - - On some magic cookie terminals, each line always starts with normal -display; in other words, the scope of a magic cookie never extends over -more than one line. But on other terminals, one magic cookie affects -all the lines below it unless explicitly canceled. Termcap does not -define any way to distinguish these two ways magic cookies can work. -To be safe, it is best to put a cookie at the beginning of each line. - - On some per-character terminals, standout mode or other appearance -modes may be canceled by moving the cursor. On others, moving the -cursor has no effect on the state of the appearance modes. The latter -class of terminals are given the flag capability `ms' ("can move in -standout"). All programs that might have occasion to move the cursor -while appearance modes are turned on must check for this flag; if it is -not present, they should reset appearance modes to normal before doing -cursor motion. - - A program that has turned on only standout mode should use `se' to -reset the standout mode to normal. A program that has turned on only -alternate character set mode should use `ae' to return it to normal. -If it is possible that any other appearance modes are turned on, use the -`me' capability to return them to normal. - - Note that the commands to turn on one appearance mode, including `so' -and `mb' ... `mr', if used while some other appearance modes are turned -on, may combine the two modes on some terminals but may turn off the -mode previously enabled on other terminals. This is because some -terminals do not have a command to set or clear one appearance mode -without changing the others. Programs should not attempt to use -appearance modes in combination except with `sa', and when switching -from one single mode to another should always turn off the previously -enabled mode and then turn on the new desired mode. - - On some old terminals, the `so' and `se' commands may be the same -command, which has the effect of turning standout on if it is off, or -off it is on. It is therefore risky for a program to output extra `se' -commands for good measure. Fortunately, all these terminals are -obsolete. - - Programs that update displays in which standout-text may be replaced -with non-standout text must check for the `xs' flag. In a per-character -terminal, this flag says that the only way to remove standout once -written is to clear that portion of the line with the `ce' string or -something even more powerful (*note Clearing::.); just writing new -characters at those screen positions will not change the modes in -effect there. In a magic cookie terminal, `xs' says that the only way -to remove a cookie is to clear a portion of the line that includes the -cookie; writing a different cookie at the same position does not work. - - Such programs must also check for the `xt' flag, which means that the -terminal is a Teleray 1061. On this terminal it is impossible to -position the cursor at the front of a magic cookie, so the only two -ways to remove a cookie are (1) to delete the line it is on or (2) to -position the cursor at least one character before it (possibly on a -previous line) and output the `se' string, which on these terminals -finds and removes the next `so' magic cookie on the screen. (It may -also be possible to remove a cookie which is not at the beginning of a -line by clearing that line.) The `xt' capability also has implications -for the use of tab characters, but in that regard it is obsolete (*Note -Cursor Motion::). - -`so' - String of commands to enter standout mode. - -`se' - String of commands to leave standout mode. - -`sg' - Numeric capability, the width on the screen of the magic cookie. - This capability is absent in terminals that record appearance modes - character by character. - -`ms' - Flag whose presence means that it is safe to move the cursor while - the appearance modes are not in the normal state. If this flag is - absent, programs should always reset the appearance modes to - normal before moving the cursor. - -`xs' - Flag whose presence means that the only way to reset appearance - modes already on the screen is to clear to end of line. On a - per-character terminal, you must clear the area where the modes - are set. On a magic cookie terminal, you must clear an area - containing the cookie. See the discussion above. - -`xt' - Flag whose presence means that the cursor cannot be positioned - right in front of a magic cookie, and that `se' is a command to - delete the next magic cookie following the cursor. See discussion - above. - -`mb' - String of commands to enter blinking mode. - -`md' - String of commands to enter double-bright mode. - -`mh' - String of commands to enter half-bright mode. - -`mk' - String of commands to enter invisible mode. - -`mp' - String of commands to enter protected mode. - -`mr' - String of commands to enter reverse-video mode. - -`me' - String of commands to turn off all appearance modes, including - standout mode and underline mode. On some terminals it also turns - off alternate character set mode; on others, it may not. This - capability must be present if any of `mb' ... `mr' is present. - -`as' - String of commands to turn on alternate character set mode. This - mode assigns some or all graphic characters an alternate picture - on the screen. There is no standard as to what the alternate - pictures look like. - -`ae' - String of commands to turn off alternate character set mode. - -`sa' - String of commands to turn on an arbitrary combination of - appearance modes. It accepts 9 parameters, each of which controls - a particular kind of appearance mode. A parameter should be 1 to - turn its appearance mode on, or zero to turn that mode off. Most - terminals do not support the `sa' capability, even among those - that do have various appearance modes. - - The nine parameters are, in order, STANDOUT, UNDERLINE, REVERSE, - BLINK, HALF-BRIGHT, DOUBLE-BRIGHT, BLANK, PROTECT, ALT CHAR SET. - - -File: termcap.info, Node: Underlining, Next: Cursor Visibility, Prev: Standout, Up: Capabilities - -Underlining -=========== - - Underlining on most terminals is a kind of appearance mode, much like -standout mode. Therefore, it may be implemented using magic cookies or -as a flag in the terminal whose current state affects each character -that is output. *Note Standout::, for a full explanation. - - The `ug' capability is a numeric capability whose presence indicates -that the terminal uses magic cookies for underlining. Its value is the -number of character positions that a magic cookie for underlining -occupies; it is used for underlining just as `sg' is used for standout. -Aside from the simplest applications, it is impossible to use -underlining correctly without paying attention to the value of `ug'. - -`us' - String of commands to turn on underline mode or to output a magic - cookie to start underlining. - -`ue' - String of commands to turn off underline mode or to output a magic - cookie to stop underlining. - -`ug' - Width of magic cookie that represents a change of underline mode; - or missing, if the terminal does not use a magic cookie for this. - -`ms' - Flag whose presence means that it is safe to move the cursor while - the appearance modes are not in the normal state. Underlining is - an appearance mode. If this flag is absent, programs should - always turn off underlining before moving the cursor. - - There are two other, older ways of doing underlining: there can be a -command to underline a single character, or the output of `_', the -ASCII underscore character, as an overstrike could cause a character to -be underlined. New programs need not bother to handle these -capabilities unless the author cares strongly about the obscure -terminals which support them. However, terminal descriptions should -provide these capabilities when appropriate. - -`uc' - String of commands to underline the character under the cursor, and - move the cursor right. - -`ul' - Flag whose presence means that the terminal can underline by - overstriking an underscore character (`_'); some terminals can do - this even though they do not support overstriking in general. An - implication of this flag is that when outputting new text to - overwrite old text, underscore characters must be treated - specially lest they underline the old text instead. - - -File: termcap.info, Node: Cursor Visibility, Next: Bell, Prev: Underlining, Up: Capabilities - -Cursor Visibility -================= - - Some terminals have the ability to make the cursor invisible, or to -enhance it. Enhancing the cursor is often done by programs that plan -to use the cursor to indicate to the user a position of interest that -may be anywhere on the screen--for example, the Emacs editor enhances -the cursor on entry. Such programs should always restore the cursor to -normal on exit. - -`vs' - String of commands to enhance the cursor. - -`vi' - String of commands to make the cursor invisible. - -`ve' - String of commands to return the cursor to normal. - - If you define either `vs' or `vi', you must also define `ve'. - - -File: termcap.info, Node: Bell, Next: Keypad, Prev: Cursor Visibility, Up: Capabilities - -Bell -==== - - Here we describe commands to make the terminal ask for the user to -pay attention to it. - -`bl' - String of commands to cause the terminal to make an audible sound. - If this capability is absent, the terminal has no way to make a - suitable sound. - -`vb' - String of commands to cause the screen to flash to attract - attention ("visible bell"). If this capability is absent, the - terminal has no way to do such a thing. - - -File: termcap.info, Node: Keypad, Next: Meta Key, Prev: Bell, Up: Capabilities - -Keypad and Function Keys -======================== - - Many terminals have arrow and function keys that transmit specific -character sequences to the computer. Since the precise sequences used -depend on the terminal, termcap defines capabilities used to say what -the sequences are. Unlike most termcap string-valued capabilities, -these are not strings of commands to be sent to the terminal, rather -strings that are received from the terminal. - - Programs that expect to use keypad keys should check, initially, for -a `ks' capability and send it, to make the keypad actually transmit. -Such programs should also send the `ke' string when exiting. - -`ks' - String of commands to make the keypad keys transmit. If this - capability is not provided, but the others in this section are, - programs may assume that the keypad keys always transmit. - -`ke' - String of commands to make the keypad keys work locally. This - capability is provided only if `ks' is. - -`kl' - String of input characters sent by typing the left-arrow key. If - this capability is missing, you cannot expect the terminal to have - a left-arrow key that transmits anything to the computer. - -`kr' - String of input characters sent by typing the right-arrow key. - -`ku' - String of input characters sent by typing the up-arrow key. - -`kd' - String of input characters sent by typing the down-arrow key. - -`kh' - String of input characters sent by typing the "home-position" key. - -`K1' ... `K5' - Strings of input characters sent by the five other keys in a 3-by-3 - array that includes the arrow keys, if the keyboard has such a - 3-by-3 array. Note that one of these keys may be the - "home-position" key, in which case one of these capabilities will - have the same value as the `kh' key. - -`k0' - String of input characters sent by function key 10 (or 0, if the - terminal has one labeled 0). - -`k1' ... `k9' - Strings of input characters sent by function keys 1 through 9, - provided for those function keys that exist. - -`kn' - Number: the number of numbered function keys, if there are more - than 10. - -`l0' ... `l9' - Strings which are the labels appearing on the keyboard on the keys - described by the capabilities `k0' ... `l9'. These capabilities - should be left undefined if the labels are `f0' or `f10' and `f1' - ... `f9'. - -`kH' - String of input characters sent by the "home down" key, if there is - one. - -`kb' - String of input characters sent by the "backspace" key, if there is - one. - -`ka' - String of input characters sent by the "clear all tabs" key, if - there is one. - -`kt' - String of input characters sent by the "clear tab stop this column" - key, if there is one. - -`kC' - String of input characters sent by the "clear screen" key, if - there is one. - -`kD' - String of input characters sent by the "delete character" key, if - there is one. - -`kL' - String of input characters sent by the "delete line" key, if there - is one. - -`kM' - String of input characters sent by the "exit insert mode" key, if - there is one. - -`kE' - String of input characters sent by the "clear to end of line" key, - if there is one. - -`kS' - String of input characters sent by the "clear to end of screen" - key, if there is one. - -`kI' - String of input characters sent by the "insert character" or "enter - insert mode" key, if there is one. - -`kA' - String of input characters sent by the "insert line" key, if there - is one. - -`kN' - String of input characters sent by the "next page" key, if there is - one. - -`kP' - String of input characters sent by the "previous page" key, if - there is one. - -`kF' - String of input characters sent by the "scroll forward" key, if - there is one. - -`kR' - String of input characters sent by the "scroll reverse" key, if - there is one. - -`kT' - String of input characters sent by the "set tab stop in this - column" key, if there is one. - -`ko' - String listing the other function keys the terminal has. This is a - very obsolete way of describing the same information found in the - `kH' ... `kT' keys. The string contains a list of two-character - termcap capability names, separated by commas. The meaning is - that for each capability name listed, the terminal has a key which - sends the string which is the value of that capability. For - example, the value `:ko=cl,ll,sf,sr:' says that the terminal has - four function keys which mean "clear screen", "home down", "scroll - forward" and "scroll reverse". - - -File: termcap.info, Node: Meta Key, Next: Initialization, Prev: Keypad, Up: Capabilities - -Meta Key -======== - - A Meta key is a key on the keyboard that modifies each character you -type by controlling the 0200 bit. This bit is on if and only if the -Meta key is held down when the character is typed. Characters typed -using the Meta key are called Meta characters. Emacs uses Meta -characters as editing commands. - -`km' - Flag whose presence means that the terminal has a Meta key. - -`mm' - String of commands to enable the functioning of the Meta key. - -`mo' - String of commands to disable the functioning of the Meta key. - - If the terminal has `km' but does not have `mm' and `mo', it means -that the Meta key always functions. If it has `mm' and `mo', it means -that the Meta key can be turned on or off. Send the `mm' string to -turn it on, and the `mo' string to turn it off. I do not know why one -would ever not want it to be on. - - -File: termcap.info, Node: Initialization, Next: Pad Specs, Prev: Meta Key, Up: Capabilities - -Initialization -============== - -`ti' - String of commands to put the terminal into whatever special modes - are needed or appropriate for programs that move the cursor - nonsequentially around the screen. Programs that use termcap to do - full-screen display should output this string when they start up. - -`te' - String of commands to undo what is done by the `ti' string. - Programs that output the `ti' string on entry should output this - string when they exit. - -`is' - String of commands to initialize the terminal for each login - session. - -`if' - String which is the name of a file containing the string of - commands to initialize the terminal for each session of use. - Normally `is' and `if' are not both used. - -`i1' -`i3' - Two more strings of commands to initialize the terminal for each - login session. The `i1' string (if defined) is output before `is' - or `if', and the `i3' string (if defined) is output after. - - The reason for having three separate initialization strings is to - make it easier to define a group of related terminal types with - slightly different initializations. Define two or three of the - strings in the basic type; then the other types can override one - or two of the strings. - -`rs' - String of commands to reset the terminal from any strange mode it - may be in. Normally this includes the `is' string (or other - commands with the same effects) and more. What would go in the - `rs' string but not in the `is' string are annoying or slow - commands to bring the terminal back from strange modes that nobody - would normally use. - -`it' - Numeric value, the initial spacing between hardware tab stop - columns when the terminal is powered up. Programs to initialize - the terminal can use this to decide whether there is a need to set - the tab stops. If the initial width is 8, well and good; if it is - not 8, then the tab stops should be set; if they cannot be set, - the kernel is told to convert tabs to spaces, and other programs - will observe this and do likewise. - -`ct' - String of commands to clear all tab stops. - -`st' - String of commands to set tab stop at current cursor column on all - lines. - -`NF' - Flag whose presence means that the terminal does not support - XON/XOFF flow control. Programs should not send XON (`C-q') or - XOFF (`C-s') characters to the terminal. - - -File: termcap.info, Node: Pad Specs, Next: Status Line, Prev: Initialization, Up: Capabilities - -Padding Capabilities -==================== - - There are two terminal capabilities that exist just to explain the -proper way to obey the padding specifications in all the command string -capabilities. One, `pc', must be obeyed by all termcap-using programs. - -`pb' - Numeric value, the lowest baud rate at which padding is actually - needed. Programs may check this and refrain from doing any - padding at lower speeds. - -`pc' - String of commands for padding. The first character of this - string is to be used as the pad character, instead of using null - characters for padding. If `pc' is not provided, use null - characters. Every program that uses termcap must look up this - capability and use it to set the variable `PC' that is used by - `tputs'. *Note Padding::. - - Some termcap capabilities exist just to specify the amount of -padding that the kernel should give to cursor motion commands used in -ordinary sequential output. - -`dC' - Numeric value, the number of msec of padding needed for the - carriage-return character. - -`dN' - Numeric value, the number of msec of padding needed for the newline - (linefeed) character. - -`dB' - Numeric value, the number of msec of padding needed for the - backspace character. - -`dF' - Numeric value, the number of msec of padding needed for the - formfeed character. - -`dT' - Numeric value, the number of msec of padding needed for the tab - character. - - In some systems, the kernel uses the above capabilities; in other -systems, the kernel uses the paddings specified in the string -capabilities `cr', `sf', `le', `ff' and `ta'. Descriptions of -terminals which require such padding should contain the `dC' ... `dT' -capabilities and also specify the appropriate padding in the -corresponding string capabilities. Since no modern terminals require -padding for ordinary sequential output, you probably won't need to do -either of these things. - - -File: termcap.info, Node: Status Line, Next: Half-Line, Prev: Pad Specs, Up: Capabilities - -Status Line -=========== - - A "status line" is a line on the terminal that is not used for -ordinary display output but instead used for a special message. The -intended use is for a continuously updated description of what the -user's program is doing, and that is where the name "status line" comes -from, but in fact it could be used for anything. The distinguishing -characteristic of a status line is that ordinary output to the terminal -does not affect it; it changes only if the special status line commands -of this section are used. - -`hs' - Flag whose presence means that the terminal has a status line. If - a terminal description specifies that there is a status line, it - must provide the `ts' and `fs' capabilities. - -`ts' - String of commands to move the terminal cursor into the status - line. Usually these commands must specifically record the old - cursor position for the sake of the `fs' string. - -`fs' - String of commands to move the cursor back from the status line to - its previous position (outside the status line). - -`es' - Flag whose presence means that other display commands work while - writing the status line. In other words, one can clear parts of - it, insert or delete characters, move the cursor within it using - `ch' if there is a `ch' capability, enter and leave standout mode, - and so on. - -`ds' - String of commands to disable the display of the status line. This - may be absent, if there is no way to disable the status line - display. - -`ws' - Numeric value, the width of the status line. If this capability is - absent in a terminal that has a status line, it means the status - line is the same width as the other lines. - - Note that the value of `ws' is sometimes as small as 8. - - -File: termcap.info, Node: Half-Line, Next: Printer, Prev: Status Line, Up: Capabilities - -Half-Line Motion -================ - - Some terminals have commands for moving the cursor vertically by -half-lines, useful for outputting subscripts and superscripts. Mostly -it is hardcopy terminals that have such features. - -`hu' - String of commands to move the cursor up half a line. If the - terminal is a display, it is your responsibility to avoid moving - up past the top line; however, most likely the terminal that - supports this is a hardcopy terminal and there is nothing to be - concerned about. - -`hd' - String of commands to move the cursor down half a line. If the - terminal is a display, it is your responsibility to avoid moving - down past the bottom line, etc. - - -File: termcap.info, Node: Printer, Prev: Half-Line, Up: Capabilities - -Controlling Printers Attached to Terminals -========================================== - - Some terminals have attached hardcopy printer ports. They may be -able to copy the screen contents to the printer; they may also be able -to redirect output to the printer. Termcap does not have anything to -tell the program whether the redirected output appears also on the -screen; it does on some terminals but not all. - -`ps' - String of commands to cause the contents of the screen to be - printed. If it is absent, the screen contents cannot be printed. - -`po' - String of commands to redirect further output to the printer. - -`pf' - String of commands to terminate redirection of output to the - printer. This capability must be present in the description if - `po' is. - -`pO' - String of commands to redirect output to the printer for next N - characters of output, regardless of what they are. Redirection - will end automatically after N characters of further output. Until - then, nothing that is output can end redirection, not even the - `pf' string if there is one. The number N should not be more than - 255. - - One use of this capability is to send non-text byte sequences - (such as bit-maps) to the printer. - - Most terminals with printers do not support all of `ps', `po' and -`pO'; any one or two of them may be supported. To make a program that -can send output to all kinds of printers, it is necessary to check for -all three of these capabilities, choose the most convenient of the ones -that are provided, and use it in its own appropriate fashion. - - -File: termcap.info, Node: Summary, Next: Var Index, Prev: Capabilities, Up: Top - -Summary of Capability Names -*************************** - - Here are all the terminal capability names in alphabetical order -with a brief description of each. For cross references to their -definitions, see the index of capability names (*note Cap Index::.). - -`ae' - String to turn off alternate character set mode. - -`al' - String to insert a blank line before the cursor. - -`AL' - String to insert N blank lines before the cursor. - -`am' - Flag: output to last column wraps cursor to next line. - -`as' - String to turn on alternate character set mode.like. - -`bc' - Very obsolete alternative name for the `le' capability. - -`bl' - String to sound the bell. - -`bs' - Obsolete flag: ASCII backspace may be used for leftward motion. - -`bt' - String to move the cursor left to the previous hardware tab stop - column. - -`bw' - Flag: `le' at left margin wraps to end of previous line. - -`CC' - String to change terminal's command character. - -`cd' - String to clear the line the cursor is on, and following lines. - -`ce' - String to clear from the cursor to the end of the line. - -`ch' - String to position the cursor at column C in the same line. - -`cl' - String to clear the entire screen and put cursor at upper left - corner. - -`cm' - String to position the cursor at line L, column C. - -`CM' - String to position the cursor at line L, column C, relative to - display memory. - -`co' - Number: width of the screen. - -`cr' - String to move cursor sideways to left margin. - -`cs' - String to set the scroll region. - -`cS' - Alternate form of string to set the scroll region. - -`ct' - String to clear all tab stops. - -`cv' - String to position the cursor at line L in the same column. - -`da' - Flag: data scrolled off top of screen may be scrolled back. - -`db' - Flag: data scrolled off bottom of screen may be scrolled back. - -`dB' - Obsolete number: msec of padding needed for the backspace - character. - -`dc' - String to delete one character position at the cursor. - -`dC' - Obsolete number: msec of padding needed for the carriage-return - character. - -`DC' - String to delete N characters starting at the cursor. - -`dF' - Obsolete number: msec of padding needed for the formfeed character. - -`dl' - String to delete the line the cursor is on. - -`DL' - String to delete N lines starting with the cursor's line. - -`dm' - String to enter delete mode. - -`dN' - Obsolete number: msec of padding needed for the newline character. - -`do' - String to move the cursor vertically down one line. - -`DO' - String to move cursor vertically down N lines. - -`ds' - String to disable the display of the status line. - -`dT' - Obsolete number: msec of padding needed for the tab character. - -`ec' - String of commands to clear N characters at cursor. - -`ed' - String to exit delete mode. - -`ei' - String to leave insert mode. - -`eo' - Flag: output of a space can erase an overstrike. - -`es' - Flag: other display commands work while writing the status line. - -`ff' - String to advance to the next page, for a hardcopy terminal. - -`fs' - String to move the cursor back from the status line to its - previous position (outside the status line). - -`gn' - Flag: this terminal type is generic, not real. - -`hc' - Flag: hardcopy terminal. - -`hd' - String to move the cursor down half a line. - -`ho' - String to position cursor at upper left corner. - -`hs' - Flag: the terminal has a status line. - -`hu' - String to move the cursor up half a line. - -`hz' - Flag: terminal cannot accept `~' as output. - -`i1' - String to initialize the terminal for each login session. - -`i3' - String to initialize the terminal for each login session. - -`ic' - String to insert one character position at the cursor. - -`IC' - String to insert N character positions at the cursor. - -`if' - String naming a file of commands to initialize the terminal. - -`im' - String to enter insert mode. - -`in' - Flag: outputting a space is different from moving over empty - positions. - -`ip' - String to output following an inserted character in insert mode. - -`is' - String to initialize the terminal for each login session. - -`it' - Number: initial spacing between hardware tab stop columns. - -`k0' - String of input sent by function key 0 or 10. - -`k1 ... k9' - Strings of input sent by function keys 1 through 9. - -`K1 ... K5' - Strings sent by the five other keys in 3-by-3 array with arrows. - -`ka' - String of input sent by the "clear all tabs" key. - -`kA' - String of input sent by the "insert line" key. - -`kb' - String of input sent by the "backspace" key. - -`kC' - String of input sent by the "clear screen" key. - -`kd' - String of input sent by typing the down-arrow key. - -`kD' - String of input sent by the "delete character" key. - -`ke' - String to make the function keys work locally. - -`kE' - String of input sent by the "clear to end of line" key. - -`kF' - String of input sent by the "scroll forward" key. - -`kh' - String of input sent by typing the "home-position" key. - -`kH' - String of input sent by the "home down" key. - -`kI' - String of input sent by the "insert character" or "enter insert - mode" key. - -`kl' - String of input sent by typing the left-arrow key. - -`kL' - String of input sent by the "delete line" key. - -`km' - Flag: the terminal has a Meta key. - -`kM' - String of input sent by the "exit insert mode" key. - -`kn' - Numeric value, the number of numbered function keys. - -`kN' - String of input sent by the "next page" key. - -`ko' - Very obsolete string listing the terminal's named function keys. - -`kP' - String of input sent by the "previous page" key. - -`kr' - String of input sent by typing the right-arrow key. - -`kR' - String of input sent by the "scroll reverse" key. - -`ks' - String to make the function keys transmit. - -`kS' - String of input sent by the "clear to end of screen" key. - -`kt' - String of input sent by the "clear tab stop this column" key. - -`kT' - String of input sent by the "set tab stop in this column" key. - -`ku' - String of input sent by typing the up-arrow key. - -`l0' - String on keyboard labelling function key 0 or 10. - -`l1 ... l9' - Strings on keyboard labelling function keys 1 through 9. - -`le' - String to move the cursor left one column. - -`LE' - String to move cursor left N columns. - -`li' - Number: height of the screen. - -`ll' - String to position cursor at lower left corner. - -`lm' - Number: lines of display memory. - -`LP' - Flag: writing to last column of last line will not scroll. - -`mb' - String to enter blinking mode. - -`md' - String to enter double-bright mode. - -`me' - String to turn off all appearance modes - -`mh' - String to enter half-bright mode. - -`mi' - Flag: cursor motion in insert mode is safe. - -`mk' - String to enter invisible mode. - -`mm' - String to enable the functioning of the Meta key. - -`mo' - String to disable the functioning of the Meta key. - -`mp' - String to enter protected mode. - -`mr' - String to enter reverse-video mode. - -`ms' - Flag: cursor motion in standout mode is safe. - -`nc' - Obsolete flag: do not use ASCII carriage-return on this terminal. - -`nd' - String to move the cursor right one column. - -`NF' - Flag: do not use XON/XOFF flow control. - -`nl' - Obsolete alternative name for the `do' and `sf' capabilities. - -`ns' - Flag: the terminal does not normally scroll for sequential output. - -`nw' - String to move to start of next line, possibly clearing rest of - old line. - -`os' - Flag: terminal can overstrike. - -`pb' - Number: the lowest baud rate at which padding is actually needed. - -`pc' - String containing character for padding. - -`pf' - String to terminate redirection of output to the printer. - -`po' - String to redirect further output to the printer. - -`pO' - String to redirect N characters ofoutput to the printer. - -`ps' - String to print the screen on the attached printer. - -`rc' - String to move to last saved cursor position. - -`RI' - String to move cursor right N columns. - -`rp' - String to output character C repeated N times. - -`rs' - String to reset the terminal from any strange modes. - -`sa' - String to turn on an arbitrary combination of appearance modes. - -`sc' - String to save the current cursor position. - -`se' - String to leave standout mode. - -`sf' - String to scroll the screen one line up. - -`SF' - String to scroll the screen N lines up. - -`sg' - Number: width of magic standout cookie. Absent if magic cookies - are not used. - -`so' - String to enter standout mode. - -`sr' - String to scroll the screen one line down. - -`SR' - String to scroll the screen N line down. - -`st' - String to set tab stop at current cursor column on all lines. - programs. - -`ta' - String to move the cursor right to the next hardware tab stop - column. - -`te' - String to return terminal to settings for sequential output. - -`ti' - String to initialize terminal for random cursor motion. - -`ts' - String to move the terminal cursor into the status line. - -`uc' - String to underline one character and move cursor right. - -`ue' - String to turn off underline mode - -`ug' - Number: width of underlining magic cookie. Absent if underlining - doesn't use magic cookies. - -`ul' - Flag: underline by overstriking with an underscore. - -`up' - String to move the cursor vertically up one line. - -`UP' - String to move cursor vertically up N lines. - -`us' - String to turn on underline mode - -`vb' - String to make the screen flash. - -`ve' - String to return the cursor to normal. - -`vi' - String to make the cursor invisible. - -`vs' - String to enhance the cursor. - -`wi' - String to set the terminal output screen window. - -`ws' - Number: the width of the status line. - -`xb' - Flag: superbee terminal. - -`xn' - Flag: cursor wraps in a strange way. - -`xs' - Flag: clearing a line is the only way to clear the appearance - modes of positions in that line (or, only way to remove magic - cookies on that line). - -`xt' - Flag: Teleray 1061; several strange characteristics. - - -File: termcap.info, Node: Var Index, Next: Cap Index, Prev: Summary, Up: Top - -Variable and Function Index -*************************** - -* Menu: - -* BC: tgoto. -* ospeed: Output Padding. -* PC: Output Padding. -* tgetent: Find. -* tgetflag: Interrogate. -* tgetnum: Interrogate. -* tgetstr: Interrogate. -* tgoto: tgoto. -* tparam: tparam. -* tputs: Output Padding. -* UP: tgoto. - diff --git a/lib/termcap/grot/termcap.info-4 b/lib/termcap/grot/termcap.info-4 deleted file mode 100644 index 4b8bf791c..000000000 --- a/lib/termcap/grot/termcap.info-4 +++ /dev/null @@ -1,220 +0,0 @@ -This is Info file ./termcap.info, produced by Makeinfo-1.55 from the -input file ./termcap.texi. - - This file documents the termcap library of the GNU system. - - Copyright (C) 1988 Free Software Foundation, Inc. - - 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 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, except that this permission notice may be stated in a -translation approved by the Foundation. - - -File: termcap.info, Node: Cap Index, Next: Index, Prev: Var Index, Up: Top - -Capability Index -**************** - -* Menu: - -* ae: Standout. -* al: Insdel Line. -* AL: Insdel Line. -* am: Wrapping. -* as: Standout. -* bc: Cursor Motion. -* bl: Bell. -* bs: Cursor Motion. -* bt: Cursor Motion. -* bw: Cursor Motion. -* CC: Basic. -* cd: Clearing. -* ce: Clearing. -* ch: Cursor Motion. -* cl: Clearing. -* cm: Cursor Motion. -* CM: Cursor Motion. -* co: Screen Size. -* cr: Cursor Motion. -* cS: Scrolling. -* cs: Scrolling. -* ct: Initialization. -* cv: Cursor Motion. -* da: Scrolling. -* dB: Pad Specs. -* db: Scrolling. -* dC: Pad Specs. -* DC: Insdel Char. -* dc: Insdel Char. -* dF: Pad Specs. -* dl: Insdel Line. -* DL: Insdel Line. -* dm: Insdel Char. -* dN: Pad Specs. -* do: Cursor Motion. -* DO: Cursor Motion. -* ds: Status Line. -* dT: Pad Specs. -* ec: Clearing. -* ed: Insdel Char. -* ei: Insdel Char. -* eo: Basic. -* es: Status Line. -* ff: Cursor Motion. -* fs: Status Line. -* gn: Basic. -* hc: Basic. -* hd: Half-Line. -* ho: Cursor Motion. -* hs: Status Line. -* hu: Half-Line. -* hz: Basic. -* i1: Initialization. -* i3: Initialization. -* IC: Insdel Char. -* ic: Insdel Char. -* if: Initialization. -* im: Insdel Char. -* in: Insdel Char. -* ip: Insdel Char. -* is: Initialization. -* it: Initialization. -* K1...K5: Keypad. -* k1...k9: Keypad. -* kA...kT: Keypad. -* ka...ku: Keypad. -* km: Meta Key. -* l0...l9: Keypad. -* le: Cursor Motion. -* LE: Cursor Motion. -* li: Screen Size. -* ll: Cursor Motion. -* lm: Scrolling. -* LP: Wrapping. -* mb: Standout. -* md: Standout. -* me: Standout. -* mh: Standout. -* mi: Insdel Char. -* mk: Standout. -* mm: Meta Key. -* mo: Meta Key. -* mp: Standout. -* mr: Standout. -* ms: Standout. -* ms: Underlining. -* nc: Cursor Motion. -* nd: Cursor Motion. -* NF: Initialization. -* nl: Cursor Motion. -* ns: Scrolling. -* nw: Cursor Motion. -* os: Basic. -* pb: Pad Specs. -* pc: Pad Specs. -* pf: Printer. -* pO: Printer. -* po: Printer. -* ps: Printer. -* rc: Cursor Motion. -* RI: Cursor Motion. -* rp: Basic. -* rs: Initialization. -* sa: Standout. -* sc: Cursor Motion. -* se: Standout. -* SF: Scrolling. -* sf: Scrolling. -* sg: Standout. -* so: Standout. -* SR: Scrolling. -* sr: Scrolling. -* st: Initialization. -* ta: Cursor Motion. -* te: Initialization. -* ti: Initialization. -* ts: Status Line. -* uc: Underlining. -* ue: Underlining. -* ug: Underlining. -* ul: Underlining. -* up: Cursor Motion. -* UP: Cursor Motion. -* us: Underlining. -* vb: Bell. -* ve: Cursor Visibility. -* vi: Cursor Visibility. -* vs: Cursor Visibility. -* wi: Windows. -* ws: Status Line. -* xb: Basic. -* xn: Wrapping. -* xs: Standout. -* xt: Cursor Motion. -* xt: Standout. - - -File: termcap.info, Node: Index, Prev: Cap Index, Up: Top - -Concept Index -************* - -* Menu: - -* %: Encode Parameters. -* appearance modes: Standout. -* bell: Bell. -* clearing the screen: Clearing. -* command character: Basic. -* cursor motion: Cursor Motion. -* delete character: Insdel Char. -* delete line: Insdel Line. -* delete mode: Insdel Char. -* description format: Format. -* erasing: Clearing. -* generic terminal type: Basic. -* home position: Cursor Motion. -* inheritance: Inheriting. -* initialization: Initialization. -* insert character: Insdel Char. -* insert line: Insdel Line. -* insert mode: Insdel Char. -* line speed: Output Padding. -* magic cookie: Standout. -* meta key: Meta Key. -* names of terminal types: Naming. -* overstrike: Basic. -* padding: Pad Specs. -* padding: Padding. -* parameters: Parameters. -* printer: Printer. -* repeat output: Basic. -* reset: Initialization. -* screen size: Screen Size. -* screen size: Naming. -* screen size: Screen Size. -* scrolling: Scrolling. -* standout: Standout. -* status line: Status Line. -* Superbee: Basic. -* tab stops: Initialization. -* termcap: Introduction. -* terminal flags (kernel): Initialize. -* underlining: Underlining. -* visibility: Cursor Visibility. -* visible bell: Bell. -* window: Windows. -* wrapping: Wrapping. -* wrapping: Naming. - - diff --git a/lib/termcap/grot/termcap.texi b/lib/termcap/grot/termcap.texi deleted file mode 100644 index eab49e88a..000000000 --- a/lib/termcap/grot/termcap.texi +++ /dev/null @@ -1,3617 +0,0 @@ -\input texinfo @c -*-texinfo-*- -@setfilename termcap.info -@settitle The Termcap Library -@smallbook - -@ifinfo -This file documents the termcap library of the GNU system. - -Copyright (C) 1988 Free Software Foundation, Inc. - -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. - -@ignore -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). - -@end ignore -Permission is granted to copy and distribute modified versions of this -manual under the conditions for verbatim copying, 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, -except that this permission notice may be stated in a translation approved -by the Foundation. -@end ifinfo - -@setchapternewpage odd - -@c @shorttitlepage The Termcap Manual - -@titlepage -@ignore -@sp 6 -@center @titlefont{Termcap} -@sp 1 -@center The Termcap Library and Data Base -@sp 4 -@center Second Edition -@sp 1 -@center December 1992 -@sp 5 -@center Richard M. Stallman -@sp 1 -@center Free Software Foundation -@end ignore - -@c Real title page -@title The Termcap Manual -@subtitle The Termcap Library and Data Base -@subtitle Second Edition -@subtitle December 1992 -@author Richard M. Stallman -@page -@vskip 0pt plus 1filll -Copyright @copyright{} 1988 Free Software Foundation, Inc. - -Published by the Free Software Foundation -(59 Temple Place, Suite 330, Boston, MA 02111 USA). -Printed copies are available for $10 each. - -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 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, -except that this permission notice may be stated in a translation approved -by the Foundation. -@sp 2 -Cover art by Etienne Suvasa. -@end titlepage -@page - -@synindex vr fn - -@node Top, Introduction, (dir), (dir) - -@menu -* Introduction:: What is termcap? Why this manual? -* Library:: The termcap library functions. -* Data Base:: What terminal descriptions in @file{/etc/termcap} look like. -* Capabilities:: Definitions of the individual terminal capabilities: - how to write them in descriptions, and how to use - their values to do display updating. -* Summary:: Brief table of capability names and their meanings. -* Var Index:: Index of C functions and variables. -* Cap Index:: Index of termcap capabilities. -* Index:: Concept index. - - --- The Detailed Node Listing --- - -The Termcap Library - -* Preparation:: Preparing to use the termcap library. -* Find:: Finding the description of the terminal being used. -* Interrogate:: Interrogating the description for particular capabilities. -* Initialize:: Initialization for output using termcap. -* Padding:: Outputting padding. -* Parameters:: Encoding parameters such as cursor positions. - -Padding - -* Why Pad:: Explanation of padding. -* Not Enough:: When there is not enough padding. -* Describe Padding:: The data base says how much padding a terminal needs. -* Output Padding:: Using @code{tputs} to output the needed padding. - -Filling In Parameters - -* Encode Parameters:: The language for encoding parameters. -* Using Parameters:: Outputting a string command with parameters. - -Sending Display Commands with Parameters - -* tparam:: The general case, for GNU termcap only. -* tgoto:: The special case of cursor motion. - -The Format of the Data Base - -* Format:: Overall format of a terminal description. -* Capability Format:: Format of capabilities within a description. -* Naming:: Naming conventions for terminal types. -* Inheriting:: Inheriting part of a description from -a related terminal type. -* Changing:: When changes in the data base take effect. - -Definitions of the Terminal Capabilities - -* Basic:: Basic characteristics. -* Screen Size:: Screen size, and what happens when it changes. -* Cursor Motion:: Various ways to move the cursor. -* Wrapping:: What happens if you write a character in the last column. -* Scrolling:: Pushing text up and down on the screen. -* Windows:: Limiting the part of the window that output affects. -* Clearing:: Erasing one or many lines. -* Insdel Line:: Making new blank lines in mid-screen; deleting lines. -* Insdel Char:: Inserting and deleting characters within a line. -* Standout:: Highlighting some of the text. -* Underlining:: Underlining some of the text. -* Cursor Visibility:: Making the cursor more or less easy to spot. -* Bell:: Attracts user's attention; not localized on the screen. -* Keypad:: Recognizing when function keys or arrows are typed. -* Meta Key:: @key{META} acts like an extra shift key. -* Initialization:: Commands used to initialize or reset the terminal. -* Pad Specs:: Info for the kernel on how much padding is needed. -* Status Line:: A status line displays ``background'' information. -* Half-Line:: Moving by half-lines, for superscripts and subscripts. -* Printer:: Controlling auxiliary printers of display terminals. -@end menu - -@node Introduction, Library, Top, Top -@unnumbered Introduction - -@cindex termcap -@dfn{Termcap} is a library and data base that enables programs to use -display terminals in a terminal-independent manner. It originated in -Berkeley Unix. - -The termcap data base describes the capabilities of hundreds of different -display terminals in great detail. Some examples of the information -recorded for a terminal could include how many columns wide it is, what -string to send to move the cursor to an arbitrary position (including how -to encode the row and column numbers), how to scroll the screen up one or -several lines, and how much padding is needed for such a scrolling -operation. - -The termcap library is provided for easy access this data base in programs -that want to do terminal-independent character-based display output. - -This manual describes the GNU version of the termcap library, which has -some extensions over the Unix version. All the extensions are identified -as such, so this manual also tells you how to use the Unix termcap. - -The GNU version of the termcap library is available free as source code, -for use in free programs, and runs on Unix and VMS systems (at least). You -can find it in the GNU Emacs distribution in the files @file{termcap.c} and -@file{tparam.c}. - -This manual was written for the GNU project, whose goal is to develop a -complete free operating system upward-compatible with Unix for user -programs. The project is approximately two thirds complete. For more -information on the GNU project, including the GNU Emacs editor and the -mostly-portable optimizing C compiler, send one dollar to - -@display -Free Software Foundation -675 Mass Ave -Cambridge, MA 02139 -@end display - -@node Library, Data Base, Introduction, Top -@chapter The Termcap Library - -The termcap library is the application programmer's interface to the -termcap data base. It contains functions for the following purposes: - -@itemize @bullet -@item -Finding the description of the user's terminal type (@code{tgetent}). - -@item -Interrogating the description for information on various topics -(@code{tgetnum}, @code{tgetflag}, @code{tgetstr}). - -@item -Computing and performing padding (@code{tputs}). - -@item -Encoding numeric parameters such as cursor positions into the -terminal-specific form required for display commands (@code{tparam}, -@code{tgoto}). -@end itemize - -@menu -* Preparation:: Preparing to use the termcap library. -* Find:: Finding the description of the terminal being used. -* Interrogate:: Interrogating the description for particular capabilities. -* Initialize:: Initialization for output using termcap. -* Padding:: Outputting padding. -* Parameters:: Encoding parameters such as cursor positions. -@end menu - -@node Preparation, Find, , Library -@section Preparing to Use the Termcap Library - -To use the termcap library in a program, you need two kinds of preparation: - -@itemize @bullet -@item -The compiler needs declarations of the functions and variables in the -library. - -On GNU systems, it suffices to include the header file -@file{termcap.h} in each source file that uses these functions and -variables.@refill - -On Unix systems, there is often no such header file. Then you must -explictly declare the variables as external. You can do likewise for -the functions, or let them be implicitly declared and cast their -values from type @code{int} to the appropriate type. - -We illustrate the declarations of the individual termcap library -functions with ANSI C prototypes because they show how to pass the -arguments. If you are not using the GNU C compiler, you probably -cannot use function prototypes, so omit the argument types and names -from your declarations. - -@item -The linker needs to search the library. Usually either -@samp{-ltermcap} or @samp{-ltermlib} as an argument when linking will -do this.@refill -@end itemize - -@node Find, Interrogate, Preparation, Library -@section Finding a Terminal Description: @code{tgetent} - -@findex tgetent -An application program that is going to use termcap must first look up the -description of the terminal type in use. This is done by calling -@code{tgetent}, whose declaration in ANSI Standard C looks like: - -@example -int tgetent (char *@var{buffer}, char *@var{termtype}); -@end example - -@noindent -This function finds the description and remembers it internally so that -you can interrogate it about specific terminal capabilities -(@pxref{Interrogate}). - -The argument @var{termtype} is a string which is the name for the type of -terminal to look up. Usually you would obtain this from the environment -variable @code{TERM} using @code{getenv ("TERM")}. - -If you are using the GNU version of termcap, you can alternatively ask -@code{tgetent} to allocate enough space. Pass a null pointer for -@var{buffer}, and @code{tgetent} itself allocates the storage using -@code{malloc}. There is no way to get the address that was allocated, -and you shouldn't try to free the storage.@refill - -With the Unix version of termcap, you must allocate space for the -description yourself and pass the address of the space as the argument -@var{buffer}. There is no way you can tell how much space is needed, so -the convention is to allocate a buffer 2048 characters long and assume that -is enough. (Formerly the convention was to allocate 1024 characters and -assume that was enough. But one day, for one kind of terminal, that was -not enough.) - -No matter how the space to store the description has been obtained, -termcap records its address internally for use when you later interrogate -the description with @code{tgetnum}, @code{tgetstr} or @code{tgetflag}. If -the buffer was allocated by termcap, it will be freed by termcap too if you -call @code{tgetent} again. If the buffer was provided by you, you must -make sure that its contents remain unchanged for as long as you still plan -to interrogate the description.@refill - -The return value of @code{tgetent} is @minus{}1 if there is some difficulty -accessing the data base of terminal types, 0 if the data base is accessible -but the specified type is not defined in it, and some other value -otherwise. - -Here is how you might use the function @code{tgetent}: - -@smallexample -#ifdef unix -static char term_buffer[2048]; -#else -#define term_buffer 0 -#endif - -init_terminal_data () -@{ - char *termtype = getenv ("TERM"); - int success; - - if (termtype == 0) - fatal ("Specify a terminal type with `setenv TERM '.\n"); - - success = tgetent (term_buffer, termtype); - if (success < 0) - fatal ("Could not access the termcap data base.\n"); - if (success == 0) - fatal ("Terminal type `%s' is not defined.\n", termtype); -@} -@end smallexample - -@noindent -Here we assume the function @code{fatal} prints an error message and exits. - -If the environment variable @code{TERMCAP} is defined, its value is used to -override the terminal type data base. The function @code{tgetent} checks -the value of @code{TERMCAP} automatically. If the value starts with -@samp{/} then it is taken as a file name to use as the data base file, -instead of @file{/etc/termcap} which is the standard data base. If the -value does not start with @samp{/} then it is itself used as the terminal -description, provided that the terminal type @var{termtype} is among the -types it claims to apply to. @xref{Data Base}, for information on the -format of a terminal description.@refill - -@node Interrogate, Initialize, Find, Library -@section Interrogating the Terminal Description - -Each piece of information recorded in a terminal description is called a -@dfn{capability}. Each defined terminal capability has a two-letter code -name and a specific meaning. For example, the number of columns is named -@samp{co}. @xref{Capabilities}, for definitions of all the standard -capability names. - -Once you have found the proper terminal description with @code{tgetent} -(@pxref{Find}), your application program must @dfn{interrogate} it for -various terminal capabilities. You must specify the two-letter code of -the capability whose value you seek. - -Capability values can be numeric, boolean (capability is either present or -absent) or strings. Any particular capability always has the same value -type; for example, @samp{co} always has a numeric value, while @samp{am} -(automatic wrap at margin) is always a flag, and @samp{cm} (cursor motion -command) always has a string value. The documentation of each capability -says which type of value it has.@refill - -There are three functions to use to get the value of a capability, -depending on the type of value the capability has. Here are their -declarations in ANSI C: - -@findex tgetnum -@findex tgetflag -@findex tgetstr -@example -int tgetnum (char *@var{name}); -int tgetflag (char *@var{name}); -char *tgetstr (char *@var{name}, char **@var{area}); -@end example - -@table @code -@item tgetnum -Use @code{tgetnum} to get a capability value that is numeric. The -argument @var{name} is the two-letter code name of the capability. If -the capability is present, @code{tgetnum} returns the numeric value -(which is nonnegative). If the capability is not mentioned in the -terminal description, @code{tgetnum} returns @minus{}1. - -@item tgetflag -Use @code{tgetflag} to get a boolean value. If the capability -@var{name} is present in the terminal description, @code{tgetflag} -returns 1; otherwise, it returns 0. - -@item tgetstr -Use @code{tgetstr} to get a string value. It returns a pointer to a -string which is the capability value, or a null pointer if the -capability is not present in the terminal description. - -There are two ways @code{tgetstr} can find space to store the string value: - -@itemize @bullet -@item -You can ask @code{tgetstr} to allocate the space. Pass a null -pointer for the argument @var{area}, and @code{tgetstr} will use -@code{malloc} to allocate storage big enough for the value. -Termcap will never free this storage or refer to it again; you -should free it when you are finished with it. - -This method is more robust, since there is no need to guess how -much space is needed. But it is supported only by the GNU -termcap library. - -@item -You can provide the space. Provide for the argument @var{area} the -address of a pointer variable of type @code{char *}. Before calling -@code{tgetstr}, initialize the variable to point at available space. -Then @code{tgetstr} will store the string value in that space and will -increment the pointer variable to point after the space that has been -used. You can use the same pointer variable for many calls to -@code{tgetstr}. - -There is no way to determine how much space is needed for a single -string, and no way for you to prevent or handle overflow of the area -you have provided. However, you can be sure that the total size of -all the string values you will obtain from the terminal description is -no greater than the size of the description (unless you get the same -capability twice). You can determine that size with @code{strlen} on -the buffer you provided to @code{tgetent}. See below for an example. - -Providing the space yourself is the only method supported by the Unix -version of termcap. -@end itemize -@end table - -Note that you do not have to specify a terminal type or terminal -description for the interrogation functions. They automatically use the -description found by the most recent call to @code{tgetent}. - -Here is an example of interrogating a terminal description for various -capabilities, with conditionals to select between the Unix and GNU methods -of providing buffer space. - -@example -char *tgetstr (); - -char *cl_string, *cm_string; -int height; -int width; -int auto_wrap; - -char PC; /* For tputs. */ -char *BC; /* For tgoto. */ -char *UP; - -interrogate_terminal () -@{ -#ifdef UNIX - /* Here we assume that an explicit term_buffer - was provided to tgetent. */ - char *buffer - = (char *) malloc (strlen (term_buffer)); -#define BUFFADDR &buffer -#else -#define BUFFADDR 0 -#endif - - char *temp; - - /* Extract information we will use. */ - cl_string = tgetstr ("cl", BUFFADDR); - cm_string = tgetstr ("cm", BUFFADDR); - auto_wrap = tgetflag ("am"); - height = tgetnum ("li"); - width = tgetnum ("co"); - - /* Extract information that termcap functions use. */ - temp = tgetstr ("pc", BUFFADDR); - PC = temp ? *temp : 0; - BC = tgetstr ("le", BUFFADDR); - UP = tgetstr ("up", BUFFADDR); -@} -@end example - -@noindent -@xref{Padding}, for information on the variable @code{PC}. @xref{Using -Parameters}, for information on @code{UP} and @code{BC}. - -@node Initialize, Padding, Interrogate, Library -@section Initialization for Use of Termcap -@cindex terminal flags (kernel) - -Before starting to output commands to a terminal using termcap, -an application program should do two things: - -@itemize @bullet -@item -Initialize various global variables which termcap library output -functions refer to. These include @code{PC} and @code{ospeed} for -padding (@pxref{Output Padding}) and @code{UP} and @code{BC} for -cursor motion (@pxref{tgoto}).@refill - -@item -Tell the kernel to turn off alteration and padding of horizontal-tab -characters sent to the terminal. -@end itemize - -To turn off output processing in Berkeley Unix you would use @code{ioctl} -with code @code{TIOCLSET} to set the bit named @code{LLITOUT}, and clear -the bits @code{ANYDELAY} using @code{TIOCSETN}. In POSIX or System V, you -must clear the bit named @code{OPOST}. Refer to the system documentation -for details.@refill - -If you do not set the terminal flags properly, some older terminals will -not work. This is because their commands may contain the characters that -normally signify newline, carriage return and horizontal tab---characters -which the kernel thinks it ought to modify before output. - -When you change the kernel's terminal flags, you must arrange to restore -them to their normal state when your program exits. This implies that the -program must catch fatal signals such as @code{SIGQUIT} and @code{SIGINT} -and restore the old terminal flags before actually terminating. - -Modern terminals' commands do not use these special characters, so if you -do not care about problems with old terminals, you can leave the kernel's -terminal flags unaltered. - -@node Padding, Parameters, Initialize, Library -@section Padding -@cindex padding - -@dfn{Padding} means outputting null characters following a terminal display -command that takes a long time to execute. The terminal description says -which commands require padding and how much; the function @code{tputs}, -described below, outputs a terminal command while extracting from it the -padding information, and then outputs the padding that is necessary. - -@menu -* Why Pad:: Explanation of padding. -* Not Enough:: When there is not enough padding. -* Describe Padding:: The data base says how much padding a terminal needs. -* Output Padding:: Using @code{tputs} to output the needed padding. -@end menu - -@node Why Pad, Not Enough, , Padding -@subsection Why Pad, and How - -Most types of terminal have commands that take longer to execute than they -do to send over a high-speed line. For example, clearing the screen may -take 20msec once the entire command is received. During that time, on a -9600 bps line, the terminal could receive about 20 additional output -characters while still busy clearing the screen. Every terminal has a -certain amount of buffering capacity to remember output characters that -cannot be processed yet, but too many slow commands in a row can cause the -buffer to fill up. Then any additional output that cannot be processed -immediately will be lost. - -To avoid this problem, we normally follow each display command with enough -useless charaters (usually null characters) to fill up the time that the -display command needs to execute. This does the job if the terminal throws -away null characters without using up space in the buffer (which most -terminals do). If enough padding is used, no output can ever be lost. The -right amount of padding avoids loss of output without slowing down -operation, since the time used to transmit padding is time that nothing -else could be done. - -The number of padding characters needed for an operation depends on the -line speed. In fact, it is proportional to the line speed. A 9600 baud -line transmits about one character per msec, so the clear screen command in -the example above would need about 20 characters of padding. At 1200 baud, -however, only about 3 characters of padding are needed to fill up 20msec. - -@node Not Enough, Describe Padding, Why Pad, Padding -@subsection When There Is Not Enough Padding - -There are several common manifestations of insufficient padding. - -@itemize @bullet -@item -Emacs displays @samp{I-search: ^Q-} at the bottom of the screen. - -This means that the terminal thought its buffer was getting full of -display commands, so it tried to tell the computer to stop sending -any. - -@item -The screen is garbled intermittently, or the details of garbling vary -when you repeat the action. (A garbled screen could be due to a -command which is simply incorrect, or to user option in the terminal -which doesn't match the assumptions of the terminal description, but -this usually leads to reproducible failure.) - -This means that the buffer did get full, and some commands were lost. -Many changeable factors can change which ones are lost. - -@item -Screen is garbled at high output speeds but not at low speeds. -Padding problems nearly always go away at low speeds, usually even at -1200 baud. - -This means that a high enough speed permits commands to arrive faster -than they can be executed. -@end itemize - -Although any obscure command on an obscure terminal might lack padding, -in practice problems arise most often from the clearing commands -@samp{cl} and @samp{cd} (@pxref{Clearing}), the scrolling commands -@samp{sf} and @samp{sr} (@pxref{Scrolling}), and the line insert/delete -commands @samp{al} and @samp{dl} (@pxref{Insdel Line}). - -Occasionally the terminal description fails to define @samp{sf} and some -programs will use @samp{do} instead, so you may get a problem with -@samp{do}. If so, first define @samp{sf} just like @samp{do}, then -add some padding to @samp{sf}. - -The best strategy is to add a lot of padding at first, perhaps 200 msec. -This is much more than enough; in fact, it should cause a visible slowdown. -(If you don't see a slowdown, the change has not taken effect; -@pxref{Changing}.) If this makes the problem go away, you have found the -right place to add padding; now reduce the amount until the problem comes -back, then increase it again. If the problem remains, either it is in some -other capability or it is not a matter of padding at all. - -Keep in mind that on many terminals the correct padding for insert/delete -line or for scrolling is cursor-position dependent. If you get problems -from scrolling a large region of the screen but not from scrolling a small -part (just a few lines moving), it may mean that fixed padding should be -replaced with position-dependent padding. - -@node Describe Padding, Output Padding, Not Enough, Padding -@subsection Specifying Padding in a Terminal Description - -In the terminal description, the amount of padding required by each display -command is recorded as a sequence of digits at the front of the command. -These digits specify the padding time in milliseconds (msec). They can be -followed optionally by a decimal point and one more digit, which is a -number of tenths of msec. - -Sometimes the padding needed by a command depends on the cursor position. -For example, the time taken by an ``insert line'' command is usually -proportional to the number of lines that need to be moved down or cleared. -An asterisk (@samp{*}) following the padding time says that the time -should be multiplied by the number of screen lines affected by the command. - -@example -:al=1.3*\E[L: -@end example - -@noindent -is used to describe the ``insert line'' command for a certain terminal. -The padding required is 1.3 msec per line affected. The command itself is -@samp{@key{ESC} [ L}. - -The padding time specified in this way tells @code{tputs} how many pad -characters to output. @xref{Output Padding}. - -Two special capability values affect padding for all commands. These are -the @samp{pc} and @samp{pb}. The variable @samp{pc} specifies the -character to pad with, and @samp{pb} the speed below which no padding is -needed. The defaults for these variables, a null character and 0, -are correct for most terminals. @xref{Pad Specs}. - -@node Output Padding, , Describe Padding, Padding -@subsection Performing Padding with @code{tputs} -@cindex line speed - -@findex tputs -Use the termcap function @code{tputs} to output a string containing an -optional padding spec of the form described above (@pxref{Describe -Padding}). The function @code{tputs} strips off and decodes the padding -spec, outputs the rest of the string, and then outputs the appropriate -padding. Here is its declaration in ANSI C: - -@example -char PC; -short ospeed; - -int tputs (char *@var{string}, int @var{nlines}, int (*@var{outfun}) ()); -@end example - -Here @var{string} is the string (including padding spec) to be output; -@var{nlines} is the number of lines affected by the operation, which is -used to multiply the amount of padding if the padding spec ends with a -@samp{*}. Finally, @var{outfun} is a function (such as @code{fputchar}) -that is called to output each character. When actually called, -@var{outfun} should expect one argument, a character. - -@vindex ospeed -@vindex PC -The operation of @code{tputs} is controlled by two global variables, -@code{ospeed} and @code{PC}. The value of @code{ospeed} is supposed to be -the terminal output speed, encoded as in the @code{ioctl} system call which -gets the speed information. This is needed to compute the number of -padding characters. The value of @code{PC} is the character used for -padding. - -You are responsible for storing suitable values into these variables before -using @code{tputs}. The value stored into the @code{PC} variable should be -taken from the @samp{pc} capability in the terminal description (@pxref{Pad -Specs}). Store zero in @code{PC} if there is no @samp{pc} -capability.@refill - -The argument @var{nlines} requires some thought. Normally, it should be -the number of lines whose contents will be cleared or moved by the command. -For cursor motion commands, or commands that do editing within one line, -use the value 1. For most commands that affect multiple lines, such as -@samp{al} (insert a line) and @samp{cd} (clear from the cursor to the end -of the screen), @var{nlines} should be the screen height minus the current -vertical position (origin 0). For multiple insert and scroll commands such -as @samp{AL} (insert multiple lines), that same value for @var{nlines} is -correct; the number of lines being inserted is @i{not} correct.@refill - -If a ``scroll window'' feature is used to reduce the number of lines -affected by a command, the value of @var{nlines} should take this into -account. This is because the delay time required depends on how much work -the terminal has to do, and the scroll window feature reduces the work. -@xref{Scrolling}. - -Commands such as @samp{ic} and @samp{dc} (insert or delete characters) are -problematical because the padding needed by these commands is proportional -to the number of characters affected, which is the number of columns from -the cursor to the end of the line. It would be nice to have a way to -specify such a dependence, and there is no need for dependence on vertical -position in these commands, so it is an obvious idea to say that for these -commands @var{nlines} should really be the number of columns affected. -However, the definition of termcap clearly says that @var{nlines} is always -the number of lines affected, even in this case, where it is always 1. It -is not easy to change this rule now, because too many programs and terminal -descriptions have been written to follow it. - -Because @var{nlines} is always 1 for the @samp{ic} and @samp{dc} strings, -there is no reason for them to use @samp{*}, but some of them do. These -should be corrected by deleting the @samp{*}. If, some day, such entries -have disappeared, it may be possible to change to a more useful convention -for the @var{nlines} argument for these operations without breaking any -programs. - -@node Parameters, , Padding, Library -@section Filling In Parameters -@cindex parameters - -Some terminal control strings require numeric @dfn{parameters}. For -example, when you move the cursor, you need to say what horizontal and -vertical positions to move it to. The value of the terminal's @samp{cm} -capability, which says how to move the cursor, cannot simply be a string of -characters; it must say how to express the cursor position numbers and -where to put them within the command. - -The specifications of termcap include conventions as to which string-valued -capabilities require parameters, how many parameters, and what the -parameters mean; for example, it defines the @samp{cm} string to take -two parameters, the vertical and horizontal positions, with 0,0 being the -upper left corner. These conventions are described where the individual -commands are documented. - -Termcap also defines a language used within the capability definition for -specifying how and where to encode the parameters for output. This language -uses character sequences starting with @samp{%}. (This is the same idea as -@code{printf}, but the details are different.) The language for parameter -encoding is described in this section. - -A program that is doing display output calls the functions @code{tparam} or -@code{tgoto} to encode parameters according to the specifications. These -functions produce a string containing the actual commands to be output (as -well a padding spec which must be processed with @code{tputs}; -@pxref{Padding}). - -@menu -* Encode Parameters:: The language for encoding parameters. -* Using Parameters:: Outputting a string command with parameters. -@end menu - -@node Encode Parameters, Using Parameters, , Parameters -@subsection Describing the Encoding -@cindex % - -A terminal command string that requires parameters contains special -character sequences starting with @samp{%} to say how to encode the -parameters. These sequences control the actions of @code{tparam} and -@code{tgoto}. - -The parameters values passed to @code{tparam} or @code{tgoto} are -considered to form a vector. A pointer into this vector determines -the next parameter to be processed. Some of the @samp{%}-sequences -encode one parameter and advance the pointer to the next parameter. -Other @samp{%}-sequences alter the pointer or alter the parameter -values without generating output. - -For example, the @samp{cm} string for a standard ANSI terminal is written -as @samp{\E[%i%d;%dH}. (@samp{\E} stands for @key{ESC}.) @samp{cm} by -convention always requires two parameters, the vertical and horizontal goal -positions, so this string specifies the encoding of two parameters. Here -@samp{%i} increments the two values supplied, and each @samp{%d} encodes -one of the values in decimal. If the cursor position values 20,58 are -encoded with this string, the result is @samp{\E[21;59H}. - -First, here are the @samp{%}-sequences that generate output. Except for -@samp{%%}, each of them encodes one parameter and advances the pointer -to the following parameter. - -@table @samp -@item %% -Output a single @samp{%}. This is the only way to represent a literal -@samp{%} in a terminal command with parameters. @samp{%%} does not -use up a parameter. - -@item %d -As in @code{printf}, output the next parameter in decimal. - -@item %2 -Like @samp{%02d} in @code{printf}: output the next parameter in -decimal, and always use at least two digits. - -@item %3 -Like @samp{%03d} in @code{printf}: output the next parameter in -decimal, and always use at least three digits. Note that @samp{%4} -and so on are @emph{not} defined. - -@item %. -Output the next parameter as a single character whose ASCII code is -the parameter value. Like @samp{%c} in @code{printf}. - -@item %+@var{char} -Add the next parameter to the character @var{char}, and output the -resulting character. For example, @samp{%+ } represents 0 as a space, -1 as @samp{!}, etc. -@end table - -The following @samp{%}-sequences specify alteration of the parameters -(their values, or their order) rather than encoding a parameter for output. -They generate no output; they are used only for their side effects -on the parameters. Also, they do not advance the ``next parameter'' pointer -except as explicitly stated. Only @samp{%i}, @samp{%r} and @samp{%>} are -defined in standard Unix termcap. The others are GNU extensions.@refill - -@table @samp -@item %i -Increment the next two parameters. This is used for terminals that -expect cursor positions in origin 1. For example, @samp{%i%d,%d} would -output two parameters with @samp{1} for 0, @samp{2} for 1, etc. - -@item %r -Interchange the next two parameters. This is used for terminals whose -cursor positioning command expects the horizontal position first. - -@item %s -Skip the next parameter. Do not output anything. - -@item %b -Back up one parameter. The last parameter used will become once again -the next parameter to be output, and the next output command will use -it. Using @samp{%b} more than once, you can back up any number of -parameters, and you can refer to each parameter any number of times. - -@item %>@var{c1}@var{c2} -Conditionally increment the next parameter. Here @var{c1} and -@var{c2} are characters which stand for their ASCII codes as numbers. -If the next parameter is greater than the ASCII code of @var{c1}, the -ASCII code of @var{c2} is added to it.@refill - -@item %a @var{op} @var{type} @var{pos} -Perform arithmetic on the next parameter, do not use it up, and do not -output anything. Here @var{op} specifies the arithmetic operation, -while @var{type} and @var{pos} together specify the other operand. - -Spaces are used above to separate the operands for clarity; the spaces -don't appear in the data base, where this sequence is exactly five -characters long. - -The character @var{op} says what kind of arithmetic operation to -perform. It can be any of these characters: - -@table @samp -@item = -assign a value to the next parameter, ignoring its old value. -The new value comes from the other operand. - -@item + -add the other operand to the next parameter. - -@item - -subtract the other operand from the next parameter. - -@item * -multiply the next parameter by the other operand. - -@item / -divide the next parameter by the other operand. -@end table - -The ``other operand'' may be another parameter's value or a constant; -the character @var{type} says which. It can be: - -@table @samp -@item p -Use another parameter. The character @var{pos} says which -parameter to use. Subtract 64 from its ASCII code to get the -position of the desired parameter relative to this one. Thus, -the character @samp{A} as @var{pos} means the parameter after the -next one; the character @samp{?} means the parameter before the -next one. - -@item c -Use a constant value. The character @var{pos} specifies the -value of the constant. The 0200 bit is cleared out, so that 0200 -can be used to represent zero. -@end table -@end table - -The following @samp{%}-sequences are special purpose hacks to compensate -for the weird designs of obscure terminals. They modify the next parameter -or the next two parameters but do not generate output and do not use up any -parameters. @samp{%m} is a GNU extension; the others are defined in -standard Unix termcap. - -@table @samp -@item %n -Exclusive-or the next parameter with 0140, and likewise the parameter -after next. - -@item %m -Complement all the bits of the next parameter and the parameter after next. - -@item %B -Encode the next parameter in BCD. It alters the value of the -parameter by adding six times the quotient of the parameter by ten. -Here is a C statement that shows how the new value is computed: - -@example -@var{parm} = (@var{parm} / 10) * 16 + @var{parm} % 10; -@end example - -@item %D -Transform the next parameter as needed by Delta Data terminals. -This involves subtracting twice the remainder of the parameter by 16. - -@example -@var{parm} -= 2 * (@var{parm} % 16); -@end example -@end table - -@node Using Parameters, , Encode Parameters, Parameters -@subsection Sending Display Commands with Parameters - -The termcap library functions @code{tparam} and @code{tgoto} serve as the -analog of @code{printf} for terminal string parameters. The newer function -@code{tparam} is a GNU extension, more general but missing from Unix -termcap. The original parameter-encoding function is @code{tgoto}, which -is preferable for cursor motion. - -@menu -* tparam:: The general case, for GNU termcap only. -* tgoto:: The special case of cursor motion. -@end menu - -@node tparam, tgoto, , Using Parameters -@subsubsection @code{tparam} - -@findex tparam -The function @code{tparam} can encode display commands with any number of -parameters and allows you to specify the buffer space. It is the preferred -function for encoding parameters for all but the @samp{cm} capability. Its -ANSI C declaration is as follows: - -@smallexample -char *tparam (char *@var{ctlstring}, char *@var{buffer}, int @var{size}, int @var{parm1},...) -@end smallexample - -The arguments are a control string @var{ctlstring} (the value of a terminal -capability, presumably), an output buffer @var{buffer} and @var{size}, and -any number of integer parameters to be encoded. The effect of -@code{tparam} is to copy the control string into the buffer, encoding -parameters according to the @samp{%} sequences in the control string. - -You describe the output buffer by its address, @var{buffer}, and its size -in bytes, @var{size}. If the buffer is not big enough for the data to be -stored in it, @code{tparam} calls @code{malloc} to get a larger buffer. In -either case, @code{tparam} returns the address of the buffer it ultimately -uses. If the value equals @var{buffer}, your original buffer was used. -Otherwise, a new buffer was allocated, and you must free it after you are -done with printing the results. If you pass zero for @var{size} and -@var{buffer}, @code{tparam} always allocates the space with @code{malloc}. - -All capabilities that require parameters also have the ability to specify -padding, so you should use @code{tputs} to output the string produced by -@code{tparam}. @xref{Padding}. Here is an example. - -@example -@{ -char *buf; -char buffer[40]; - -buf = tparam (command, buffer, 40, parm); -tputs (buf, 1, fputchar); -if (buf != buffer) -free (buf); -@} -@end example - -If a parameter whose value is zero is encoded with @samp{%.}-style -encoding, the result is a null character, which will confuse @code{tputs}. -This would be a serious problem, but luckily @samp{%.} encoding is used -only by a few old models of terminal, and only for the @samp{cm} -capability. To solve the problem, use @code{tgoto} rather than -@code{tparam} to encode the @samp{cm} capability.@refill - -@node tgoto, , tparam, Using Parameters -@subsubsection @code{tgoto} - -@findex tgoto -The special case of cursor motion is handled by @code{tgoto}. There -are two reasons why you might choose to use @code{tgoto}: - -@itemize @bullet -@item -For Unix compatibility, because Unix termcap does not have @code{tparam}. - -@item -For the @samp{cm} capability, since @code{tgoto} has a special feature -to avoid problems with null characters, tabs and newlines on certain old -terminal types that use @samp{%.} encoding for that capability. -@end itemize - -Here is how @code{tgoto} might be declared in ANSI C: - -@example -char *tgoto (char *@var{cstring}, int @var{hpos}, int @var{vpos}) -@end example - -There are three arguments, the terminal description's @samp{cm} string and -the two cursor position numbers; @code{tgoto} computes the parametrized -string in an internal static buffer and returns the address of that buffer. -The next time you use @code{tgoto} the same buffer will be reused. - -@vindex UP -@vindex BC -Parameters encoded with @samp{%.} encoding can generate null characters, -tabs or newlines. These might cause trouble: the null character because -@code{tputs} would think that was the end of the string, the tab because -the kernel or other software might expand it into spaces, and the newline -becaue the kernel might add a carriage-return, or padding characters -normally used for a newline. To prevent such problems, @code{tgoto} is -careful to avoid these characters. Here is how this works: if the target -cursor position value is such as to cause a problem (that is to say, zero, -nine or ten), @code{tgoto} increments it by one, then compensates by -appending a string to move the cursor back or up one position. - -The compensation strings to use for moving back or up are found in global -variables named @code{BC} and @code{UP}. These are actual external C -variables with upper case names; they are declared @code{char *}. It is up -to you to store suitable values in them, normally obtained from the -@samp{le} and @samp{up} terminal capabilities in the terminal description -with @code{tgetstr}. Alternatively, if these two variables are both zero, -the feature of avoiding nulls, tabs and newlines is turned off. - -It is safe to use @code{tgoto} for commands other than @samp{cm} only if -you have stored zero in @code{BC} and @code{UP}. - -Note that @code{tgoto} reverses the order of its operands: the horizontal -position comes before the vertical position in the arguments to -@code{tgoto}, even though the vertical position comes before the horizontal -in the parameters of the @samp{cm} string. If you use @code{tgoto} with a -command such as @samp{AL} that takes one parameter, you must pass the -parameter to @code{tgoto} as the ``vertical position''.@refill - -@node Data Base, Capabilities, Library, Top -@chapter The Format of the Data Base - -The termcap data base of terminal descriptions is stored in the file -@file{/etc/termcap}. It contains terminal descriptions, blank lines, and -comments. - -A terminal description starts with one or more names for the terminal type. -The information in the description is a series of @dfn{capability names} -and values. The capability names have standard meanings -(@pxref{Capabilities}) and their values describe the terminal. - -@menu -* Format:: Overall format of a terminal description. -* Capability Format:: Format of capabilities within a description. -* Naming:: Naming conventions for terminal types. -* Inheriting:: Inheriting part of a description from -a related terminal type. -* Changing:: When changes in the data base take effect. -@end menu - -@node Format, Capability Format, , Data Base -@section Terminal Description Format -@cindex description format - -Aside from comments (lines starting with @samp{#}, which are ignored), each -nonblank line in the termcap data base is a terminal description. -A terminal description is nominally a single line, but it can be split -into multiple lines by inserting the two characters @samp{\ newline}. -This sequence is ignored wherever it appears in a description. - -The preferred way to split the description is between capabilities: insert -the four characters @samp{: \ newline tab} immediately before any colon. -This allows each sub-line to start with some indentation. This works -because, after the @samp{\ newline} are ignored, the result is @samp{: tab -:}; the first colon ends the preceding capability and the second colon -starts the next capability. If you split with @samp{\ newline} alone, you -may not add any indentation after them. - -Here is a real example of a terminal description: - -@example -dw|vt52|DEC vt52:\ - :cr=^M:do=^J:nl=^J:bl=^G:\ - :le=^H:bs:cd=\EJ:ce=\EK:cl=\EH\EJ:\ - :cm=\EY%+ %+ :co#80:li#24:\ - :nd=\EC:ta=^I:pt:sr=\EI:up=\EA:\ - :ku=\EA:kd=\EB:kr=\EC:kl=\ED:kb=^H: -@end example - -Each terminal description begins with several names for the terminal type. -The names are separated by @samp{|} characters, and a colon ends the last -name. The first name should be two characters long; it exists only for the -sake of very old Unix systems and is never used in modern systems. The -last name should be a fully verbose name such as ``DEC vt52'' or ``Ann -Arbor Ambassador with 48 lines''. The other names should include whatever -the user ought to be able to specify to get this terminal type, such as -@samp{vt52} or @samp{aaa-48}. @xref{Naming}, for information on how to -choose terminal type names. - -After the terminal type names come the terminal capabilities, separated by -colons and with a colon after the last one. Each capability has a -two-letter name, such as @samp{cm} for ``cursor motion string'' or @samp{li} -for ``number of display lines''. - -@node Capability Format, Naming, Format, Data Base -@section Writing the Capabilities - -There are three kinds of capabilities: flags, numbers, and strings. Each -kind has its own way of being written in the description. Each defined -capability has by convention a particular kind of value; for example, -@samp{li} always has a numeric value and @samp{cm} always a string value. - -A flag capability is thought of as having a boolean value: the value is -true if the capability is present, false if not. When the capability is -present, just write its name between two colons. - -A numeric capability has a value which is a nonnegative number. Write the -capability name, a @samp{#}, and the number, between two colons. For -example, @samp{@dots{}:li#48:@dots{}} is how you specify the @samp{li} -capability for 48 lines.@refill - -A string-valued capability has a value which is a sequence of characters. -Usually these are the characters used to perform some display operation. -Write the capability name, a @samp{=}, and the characters of the value, -between two colons. For example, @samp{@dots{}:cm=\E[%i%d;%dH:@dots{}} is -how the cursor motion command for a standard ANSI terminal would be -specified.@refill - -Special characters in the string value can be expressed using -@samp{\}-escape sequences as in C; in addition, @samp{\E} stands for -@key{ESC}. @samp{^} is also a kind of escape character; @samp{^} followed -by @var{char} stands for the control-equivalent of @var{char}. Thus, -@samp{^a} stands for the character control-a, just like @samp{\001}. -@samp{\} and @samp{^} themselves can be represented as @samp{\\} and -@samp{\^}.@refill - -To include a colon in the string, you must write @samp{\072}. You might -ask, ``Why can't @samp{\:} be used to represent a colon?'' The reason is -that the interrogation functions do not count slashes while looking for a -capability. Even if @samp{:ce=ab\:cd:} were interpreted as giving the -@samp{ce} capability the value @samp{ab:cd}, it would also appear to define -@samp{cd} as a flag. - -The string value will often contain digits at the front to specify padding -(@pxref{Padding}) and/or @samp{%}-sequences within to specify how to encode -parameters (@pxref{Parameters}). Although these things are not to be -output literally to the terminal, they are considered part of the value of -the capability. They are special only when the string value is processed -by @code{tputs}, @code{tparam} or @code{tgoto}. By contrast, @samp{\} and -@samp{^} are considered part of the syntax for specifying the characters -in the string. - -Let's look at the VT52 example again: - -@example -dw|vt52|DEC vt52:\ - :cr=^M:do=^J:nl=^J:bl=^G:\ - :le=^H:bs:cd=\EJ:ce=\EK:cl=\EH\EJ:\ - :cm=\EY%+ %+ :co#80:li#24:\ - :nd=\EC:ta=^I:pt:sr=\EI:up=\EA:\ - :ku=\EA:kd=\EB:kr=\EC:kl=\ED:kb=^H: -@end example - -Here we see the numeric-valued capabilities @samp{co} and @samp{li}, the -flags @samp{bs} and @samp{pt}, and many string-valued capabilities. Most -of the strings start with @key{ESC} represented as @samp{\E}. The rest -contain control characters represented using @samp{^}. The meanings of the -individual capabilities are defined elsewhere (@pxref{Capabilities}). - -@node Naming, Inheriting, Capability Format, Data Base -@section Terminal Type Name Conventions -@cindex names of terminal types - -There are conventions for choosing names of terminal types. For one thing, -all letters should be in lower case. The terminal type for a terminal in -its most usual or most fundamental mode of operation should not have a -hyphen in it. - -If the same terminal has other modes of operation which require -different terminal descriptions, these variant descriptions are given -names made by adding suffixes with hyphens. Such alternate descriptions -are used for two reasons: - -@itemize @bullet -@item -When the terminal has a switch that changes its behavior. Since the -computer cannot tell how the switch is set, the user must tell the -computer by choosing the appropriate terminal type name. - -@cindex wrapping -For example, the VT-100 has a setup flag that controls whether the -cursor wraps at the right margin. If this flag is set to ``wrap'', -you must use the terminal type @samp{vt100-am}. Otherwise you must -use @samp{vt100-nam}. Plain @samp{vt100} is defined as a synonym for -either @samp{vt100-am} or @samp{vt100-nam} depending on the -preferences of the local site.@refill - -The standard suffix @samp{-am} stands for ``automatic margins''. - -@item -To give the user a choice in how to use the terminal. This is done -when the terminal has a switch that the computer normally controls. - -@cindex screen size -For example, the Ann Arbor Ambassador can be configured with many -screen sizes ranging from 20 to 60 lines. Fewer lines make bigger -characters but more lines let you see more of what you are editing. -As a result, users have different preferences. Therefore, termcap -provides terminal types for many screen sizes. If you choose type -@samp{aaa-30}, the terminal will be configured to use 30 lines; if you -choose @samp{aaa-48}, 48 lines will be used, and so on. -@end itemize - -Here is a list of standard suffixes and their conventional meanings: - -@table @samp -@item -w -Short for ``wide''. This is a mode that gives the terminal more -columns than usual. This is normally a user option. - -@item -am -``Automatic margins''. This is an alternate description for use when -the terminal's margin-wrap switch is on; it contains the @samp{am} -flag. The implication is that normally the switch is off and the -usual description for the terminal says that the switch is off. - -@item -nam -``No automatic margins''. The opposite of @samp{-am}, this names an -alternative description which lacks the @samp{am} flag. This implies -that the terminal is normally operated with the margin-wrap switch -turned on, and the normal description of the terminal says so. - -@item -na -``No arrows''. This terminal description initializes the terminal to -keep its arrow keys in local mode. This is a user option. - -@item -rv -``Reverse video''. This terminal description causes text output for -normal video to appear as reverse, and text output for reverse video -to come out as normal. Often this description differs from the usual -one by interchanging the two strings which turn reverse video on and -off.@refill - -This is a user option; you can choose either the ``reverse video'' -variant terminal type or the normal terminal type, and termcap will -obey. - -@item -s -``Status''. Says to enable use of a status line which ordinary output -does not touch (@pxref{Status Line}). - -Some terminals have a special line that is used only as a status line. -For these terminals, there is no need for an @samp{-s} variant; the -status line commands should be defined by default. On other -terminals, enabling a status line means removing one screen line from -ordinary use and reducing the effective screen height. For these -terminals, the user can choose the @samp{-s} variant type to request -use of a status line. - -@item -@var{nlines} -Says to operate with @var{nlines} lines on the screen, for terminals -such as the Ambassador which provide this as an option. Normally this -is a user option; by choosing the terminal type, you control how many -lines termcap will use. - -@item -@var{npages}p -Says that the terminal has @var{npages} pages worth of screen memory, -for terminals where this is a hardware option. - -@item -unk -Says that description is not for direct use, but only for reference in -@samp{tc} capabilities. Such a description is a kind of subroutine, -because it describes the common characteristics of several variant -descriptions that would use other suffixes in place of @samp{-unk}. -@end table - -@node Inheriting, Changing, Naming, Data Base -@section Inheriting from Related Descriptions - -@cindex inheritance -When two terminal descriptions are similar, their identical parts do not -need to be given twice. Instead, one of the two can be defined in terms of -the other, using the @samp{tc} capability. We say that one description -@dfn{refers to} the other, or @dfn{inherits from} the other. - -The @samp{tc} capability must be the last one in the terminal description, -and its value is a string which is the name of another terminal type which -is referred to. For example, - -@example -N9|aaa|ambassador|aaa-30|ann arbor ambassador/30 lines:\ - :ti=\E[2J\E[30;0;0;30p:\ - :te=\E[60;0;0;30p\E[30;1H\E[J:\ - :li#30:tc=aaa-unk: -@end example - -@noindent -defines the terminal type @samp{aaa-30} (also known as plain @samp{aaa}) in -terms of @samp{aaa-unk}, which defines everything about the Ambassador that -is independent of screen height. The types @samp{aaa-36}, @samp{aaa-48} -and so on for other screen heights are likewise defined to inherit from -@samp{aaa-unk}. - -The capabilities overridden by @samp{aaa-30} include @samp{li}, which says -how many lines there are, and @samp{ti} and @samp{te}, which configure the -terminal to use that many lines. - -The effective terminal description for type @samp{aaa} consists of the text -shown above followed by the text of the description of @samp{aaa-unk}. The -@samp{tc} capability is handled automatically by @code{tgetent}, which -finds the description thus referenced and combines the two descriptions -(@pxref{Find}). Therefore, only the implementor of the terminal -descriptions needs to think about using @samp{tc}. Users and application -programmers do not need to be concerned with it. - -Since the reference terminal description is used last, capabilities -specified in the referring description override any specifications of the -same capabilities in the reference description. - -The referring description can cancel out a capability without specifying -any new value for it by means of a special trick. Write the capability in -the referring description, with the character @samp{@@} after the capability -name, as follows: - -@smallexample -NZ|aaa-30-nam|ann arbor ambassador/30 lines/no automatic-margins:\ - :am@@:tc=aaa-30: -@end smallexample - -@node Changing, , Inheriting, Data Base -@section When Changes in the Data Base Take Effect - -Each application program must read the terminal description from the -data base, so a change in the data base is effective for all jobs started -after the change is made. - -The change will usually have no effect on a job that have been in existence -since before the change. The program probably read the terminal description -once, when it was started, and is continuing to use what it read then. -If the program does not have a feature for reexamining the data base, then -you will need to run it again (probably killing the old job). - -If the description in use is coming from the @code{TERMCAP} environment -variable, then the data base file is effectively overridden, and changes in -it will have no effect until you change the @code{TERMCAP} variable as -well. For example, some users' @file{.login} files automatically copy the -terminal description into @code{TERMCAP} to speed startup of applications. -If you have done this, you will need to change the @code{TERMCAP} variable -to make the changed data base take effect. - -@node Capabilities, Summary, Data Base, Top -@chapter Definitions of the Terminal Capabilities - -This section is divided into many subsections, each for one aspect of -use of display terminals. For writing a display program, you usually need -only check the subsections for the operations you want to use. For writing -a terminal description, you must read each subsection and fill in the -capabilities described there. - -String capabilities that are display commands may require numeric -parameters (@pxref{Parameters}). Most such capabilities do not use -parameters. When a capability requires parameters, this is explicitly -stated at the beginning of its definition. In simple cases, the first or -second sentence of the definition mentions all the parameters, in the order -they should be given, using a name -@iftex -in italics -@end iftex -@ifinfo -in upper case -@end ifinfo -for each one. For example, the @samp{rp} capability is a command that -requires two parameters; its definition begins as follows: - -@quotation -String of commands to output a graphic character @var{c}, repeated @var{n} -times. -@end quotation - -In complex cases or when there are many parameters, they are described -explicitly. - -When a capability is described as obsolete, this means that programs should -not be written to look for it, but terminal descriptions should still be -written to provide it. - -When a capability is described as very obsolete, this means that it should -be omitted from terminal descriptions as well. - -@menu -* Basic:: Basic characteristics. -* Screen Size:: Screen size, and what happens when it changes. -* Cursor Motion:: Various ways to move the cursor. -* Wrapping:: What happens if you write a character in the last column. -* Scrolling:: Pushing text up and down on the screen. -* Windows:: Limiting the part of the window that output affects. -* Clearing:: Erasing one or many lines. -* Insdel Line:: Making new blank lines in mid-screen; deleting lines. -* Insdel Char:: Inserting and deleting characters within a line. -* Standout:: Highlighting some of the text. -* Underlining:: Underlining some of the text. -* Cursor Visibility:: Making the cursor more or less easy to spot. -* Bell:: Attracts user's attention; not localized on the screen. -* Keypad:: Recognizing when function keys or arrows are typed. -* Meta Key:: @key{META} acts like an extra shift key. -* Initialization:: Commands used to initialize or reset the terminal. -* Pad Specs:: Info for the kernel on how much padding is needed. -* Status Line:: A status line displays ``background'' information. -* Half-Line:: Moving by half-lines, for superscripts and subscripts. -* Printer:: Controlling auxiliary printers of display terminals. -@end menu - -@node Basic, Screen Size, , Capabilities -@section Basic Characteristics - -This section documents the capabilities that describe the basic and -nature of the terminal, and also those that are relevant to the output -of graphic characters. - -@table @samp -@item os -@kindex os -@cindex overstrike -Flag whose presence means that the terminal can overstrike. This -means that outputting a graphic character does not erase whatever was -present in the same character position before. The terminals that can -overstrike include printing terminals, storage tubes (all obsolete -nowadays), and many bit-map displays. - -@item eo -@kindex eo -Flag whose presence means that outputting a space erases a character -position even if the terminal supports overstriking. If this flag is -not present and overstriking is supported, output of a space has no -effect except to move the cursor. - -(On terminals that do not support overstriking, you can always assume -that outputting a space at a position erases whatever character was -previously displayed there.) - -@item gn -@kindex gn -@cindex generic terminal type -Flag whose presence means that this terminal type is a generic type -which does not really describe any particular terminal. Generic types -are intended for use as the default type assigned when the user -connects to the system, with the intention that the user should -specify what type he really has. One example of a generic type -is the type @samp{network}. - -Since the generic type cannot say how to do anything interesting with -the terminal, termcap-using programs will always find that the -terminal is too weak to be supported if the user has failed to specify -a real terminal type in place of the generic one. The @samp{gn} flag -directs these programs to use a different error message: ``You have -not specified your real terminal type'', rather than ``Your terminal -is not powerful enough to be used''. - -@item hc -@kindex hc -Flag whose presence means this is a hardcopy terminal. - -@item rp -@kindex rp -@cindex repeat output -String of commands to output a graphic character @var{c}, repeated @var{n} -times. The first parameter value is the ASCII code for the desired -character, and the second parameter is the number of times to repeat the -character. Often this command requires padding proportional to the -number of times the character is repeated. This effect can be had by -using parameter arithmetic with @samp{%}-sequences to compute the -amount of padding, then generating the result as a number at the front -of the string so that @code{tputs} will treat it as padding. - -@item hz -@kindex hz -Flag whose presence means that the ASCII character @samp{~} cannot be -output on this terminal because it is used for display commands. - -Programs handle this flag by checking all text to be output and -replacing each @samp{~} with some other character(s). If this is not -done, the screen will be thoroughly garbled. - -The old Hazeltine terminals that required such treatment are probably -very rare today, so you might as well not bother to support this flag. - -@item CC -@kindex CC -@cindex command character -String whose presence means the terminal has a settable command -character. The value of the string is the default command character -(which is usually @key{ESC}). - -All the strings of commands in the terminal description should be -written to use the default command character. If you are writing an -application program that changes the command character, use the -@samp{CC} capability to figure out how to translate all the display -commands to work with the new command character. - -Most programs have no reason to look at the @samp{CC} capability. - -@item xb -@kindex xb -@cindex Superbee -Flag whose presence identifies Superbee terminals which are unable to -transmit the characters @key{ESC} and @kbd{Control-C}. Programs which -support this flag are supposed to check the input for the code sequences -sent by the @key{F1} and @key{F2} keys, and pretend that @key{ESC} -or @kbd{Control-C} (respectively) had been read. But this flag is -obsolete, and not worth supporting. -@end table - -@node Screen Size, Cursor Motion, Basic, Capabilities -@section Screen Size -@cindex screen size - -A terminal description has two capabilities, @samp{co} and @samp{li}, -that describe the screen size in columns and lines. But there is more -to the question of screen size than this. - -On some operating systems the ``screen'' is really a window and the -effective width can vary. On some of these systems, @code{tgetnum} -uses the actual width of the window to decide what value to return for -the @samp{co} capability, overriding what is actually written in the -terminal description. On other systems, it is up to the application -program to check the actual window width using a system call. For -example, on BSD 4.3 systems, the system call @code{ioctl} with code -@code{TIOCGWINSZ} will tell you the current screen size. - -On all window systems, termcap is powerless to advise the application -program if the user resizes the window. Application programs must -deal with this possibility in a system-dependent fashion. On some -systems the C shell handles part of the problem by detecting changes -in window size and setting the @code{TERMCAP} environment variable -appropriately. This takes care of application programs that are -started subsequently. It does not help application programs already -running. - -On some systems, including BSD 4.3, all programs using a terminal get -a signal named @code{SIGWINCH} whenever the screen size changes. -Programs that use termcap should handle this signal by using -@code{ioctl TIOCGWINSZ} to learn the new screen size. - -@table @samp -@item co -@kindex co -@cindex screen size -Numeric value, the width of the screen in character positions. Even -hardcopy terminals normally have a @samp{co} capability. - -@item li -@kindex li -Numeric value, the height of the screen in lines. -@end table - -@node Cursor Motion, Wrapping, Screen Size, Capabilities -@section Cursor Motion -@cindex cursor motion - -Termcap assumes that the terminal has a @dfn{cursor}, a spot on the screen -where a visible mark is displayed, and that most display commands take -effect at the position of the cursor. It follows that moving the cursor -to a specified location is very important. - -There are many terminal capabilities for different cursor motion -operations. A terminal description should define as many as possible, but -most programs do not need to use most of them. One capability, @samp{cm}, -moves the cursor to an arbitrary place on the screen; this by itself is -sufficient for any application as long as there is no need to support -hardcopy terminals or certain old, weak displays that have only relative -motion commands. Use of other cursor motion capabilities is an -optimization, enabling the program to output fewer characters in some -common cases. - -If you plan to use the relative cursor motion commands in an application -program, you must know what the starting cursor position is. To do this, -you must keep track of the cursor position and update the records each -time anything is output to the terminal, including graphic characters. -In addition, it is necessary to know whether the terminal wraps after -writing in the rightmost column. @xref{Wrapping}. - -One other motion capability needs special mention: @samp{nw} moves the -cursor to the beginning of the following line, perhaps clearing all the -starting line after the cursor, or perhaps not clearing at all. This -capability is a least common denominator that is probably supported even by -terminals that cannot do most other things such as @samp{cm} or @samp{do}. -Even hardcopy terminals can support @samp{nw}. - -@table @asis -@item @samp{cm} -@kindex cm -String of commands to position the cursor at line @var{l}, column @var{c}. -Both parameters are origin-zero, and are defined relative to the -screen, not relative to display memory. - -All display terminals except a few very obsolete ones support @samp{cm}, -so it is acceptable for an application program to refuse to operate on -terminals lacking @samp{cm}. - -@item @samp{ho} -@kindex ho -@cindex home position -String of commands to move the cursor to the upper left corner of the -screen (this position is called the @dfn{home position}). In -terminals where the upper left corner of the screen is not the same as -the beginning of display memory, this command must go to the upper -left corner of the screen, not the beginning of display memory. - -Every display terminal supports this capability, and many application -programs refuse to operate if the @samp{ho} capability is missing. - -@item @samp{ll} -@kindex ll -String of commands to move the cursor to the lower left corner of the -screen. On some terminals, moving up from home position does this, -but programs should never assume that will work. Just output the -@samp{ll} string (if it is provided); if moving to home position and -then moving up is the best way to get there, the @samp{ll} command -will do that. - -@item @samp{cr} -@kindex cr -String of commands to move the cursor to the beginning of the line it -is on. If this capability is not specified, many programs assume -they can use the ASCII carriage return character for this. - -@item @samp{le} -@kindex le -String of commands to move the cursor left one column. Unless the -@samp{bw} flag capability is specified, the effect is undefined if the -cursor is at the left margin; do not use this command there. If -@samp{bw} is present, this command may be used at the left margin, and -it wraps the cursor to the last column of the preceding line. - -@item @samp{nd} -@kindex nd -String of commands to move the cursor right one column. The effect is -undefined if the cursor is at the right margin; do not use this -command there, not even if @samp{am} is present. - -@item @samp{up} -@kindex up -String of commands to move the cursor vertically up one line. The -effect of sending this string when on the top line is undefined; -programs should never use it that way. - -@item @samp{do} -@kindex do -String of commands to move the cursor vertically down one line. The -effect of sending this string when on the bottom line is undefined; -programs should never use it that way. - -Some programs do use @samp{do} to scroll up one line if used at the -bottom line, if @samp{sf} is not defined but @samp{sr} is. This is -only to compensate for certain old, incorrect terminal descriptions. -(In principle this might actually lead to incorrect behavior on other -terminals, but that seems to happen rarely if ever.) But the proper -solution is that the terminal description should define @samp{sf} as -well as @samp{do} if the command is suitable for scrolling. - -The original idea was that this string would not contain a newline -character and therefore could be used without disabling the kernel's -usual habit of converting of newline into a carriage-return newline -sequence. But many terminal descriptions do use newline in the -@samp{do} string, so this is not possible; a program which sends the -@samp{do} string must disable output conversion in the kernel -(@pxref{Initialize}). - -@item @samp{bw} -@kindex bw -Flag whose presence says that @samp{le} may be used in column zero -to move to the last column of the preceding line. If this flag -is not present, @samp{le} should not be used in column zero. - -@item @samp{nw} -@kindex nw -String of commands to move the cursor to start of next line, possibly -clearing rest of line (following the cursor) before moving. - -@item @samp{DO}, @samp{UP}, @samp{LE}, @samp{RI} -@kindex DO -@kindex LE -@kindex RI -@kindex UP -Strings of commands to move the cursor @var{n} lines down vertically, -up vertically, or @var{n} columns left or right. Do not attempt to -move past any edge of the screen with these commands; the effect of -trying that is undefined. Only a few terminal descriptions provide -these commands, and most programs do not use them. - -@item @samp{CM} -@kindex CM -String of commands to position the cursor at line @var{l}, column -@var{c}, relative to display memory. Both parameters are origin-zero. -This capability is present only in terminals where there is a -difference between screen-relative and memory-relative addressing, and -not even in all such terminals. - -@item @samp{ch} -@kindex ch -String of commands to position the cursor at column @var{c} in the -same line it is on. This is a special case of @samp{cm} in which the -vertical position is not changed. The @samp{ch} capability is -provided only when it is faster to output than @samp{cm} would be in -this special case. Programs should not assume most display terminals -have @samp{ch}. - -@item @samp{cv} -@kindex cv -String of commands to position the cursor at line @var{l} in the same -column. This is a special case of @samp{cm} in which the horizontal -position is not changed. The @samp{cv} capability is provided only -when it is faster to output than @samp{cm} would be in this special -case. Programs should not assume most display terminals have -@samp{cv}. - -@item @samp{sc} -@kindex sc -String of commands to make the terminal save the current cursor -position. Only the last saved position can be used. If this -capability is present, @samp{rc} should be provided also. Most -terminals have neither. - -@item @samp{rc} -@kindex rc -String of commands to make the terminal restore the last saved cursor -position. If this capability is present, @samp{sc} should be provided -also. Most terminals have neither. - -@item @samp{ff} -@kindex ff -String of commands to advance to the next page, for a hardcopy -terminal. - -@item @samp{ta} -@kindex ta -String of commands to move the cursor right to the next hardware tab -stop column. Missing if the terminal does not have any kind of -hardware tabs. Do not send this command if the kernel's terminal -modes say that the kernel is expanding tabs into spaces. - -@item @samp{bt} -@kindex bt -String of commands to move the cursor left to the previous hardware -tab stop column. Missing if the terminal has no such ability; many -terminals do not. Do not send this command if the kernel's terminal -modes say that the kernel is expanding tabs into spaces. -@end table - -The following obsolete capabilities should be included in terminal -descriptions when appropriate, but should not be looked at by new programs. - -@table @samp -@item nc -@kindex nc -Flag whose presence means the terminal does not support the ASCII -carriage return character as @samp{cr}. This flag is needed because -old programs assume, when the @samp{cr} capability is missing, that -ASCII carriage return can be used for the purpose. We use @samp{nc} -to tell the old programs that carriage return may not be used. - -New programs should not assume any default for @samp{cr}, so they need -not look at @samp{nc}. However, descriptions should contain @samp{nc} -whenever they do not contain @samp{cr}. - -@item xt -@kindex xt -Flag whose presence means that the ASCII tab character may not be used -for cursor motion. This flag exists because old programs assume, when -the @samp{ta} capability is missing, that ASCII tab can be used for -the purpose. We use @samp{xt} to tell the old programs not to use tab. - -New programs should not assume any default for @samp{ta}, so they need -not look at @samp{xt} in connection with cursor motion. Note that -@samp{xt} also has implications for standout mode (@pxref{Standout}). -It is obsolete in regard to cursor motion but not in regard to -standout. - -In fact, @samp{xt} means that the terminal is a Teleray 1061. - -@item bc -@kindex bc -Very obsolete alternative name for the @samp{le} capability. - -@item bs -@kindex bs -Flag whose presence means that the ASCII character backspace may be -used to move the cursor left. Obsolete; look at @samp{le} instead. - -@item nl -@kindex nl -Obsolete capability which is a string that can either be used to move -the cursor down or to scroll. The same string must scroll when used -on the bottom line and move the cursor when used on any other line. -New programs should use @samp{do} or @samp{sf}, and ignore @samp{nl}. - -If there is no @samp{nl} capability, some old programs assume they can -use the newline character for this purpose. These programs follow a -bad practice, but because they exist, it is still desirable to define -the @samp{nl} capability in a terminal description if the best way to -move down is @emph{not} a newline. -@end table - -@node Wrapping, Scrolling, Cursor Motion, Capabilities -@section Wrapping -@cindex wrapping - -@dfn{Wrapping} means moving the cursor from the right margin to the left -margin of the following line. Some terminals wrap automatically when a -graphic character is output in the last column, while others do not. Most -application programs that use termcap need to know whether the terminal -wraps. There are two special flag capabilities to describe what the -terminal does when a graphic character is output in the last column. - -@table @samp -@item am -@kindex am -Flag whose presence means that writing a character in the last column -causes the cursor to wrap to the beginning of the next line. - -If @samp{am} is not present, writing in the last column leaves the -cursor at the place where the character was written. - -Writing in the last column of the last line should be avoided on -terminals with @samp{am}, as it may or may not cause scrolling to -occur (@pxref{Scrolling}). Scrolling is surely not what you would -intend. - -If your program needs to check the @samp{am} flag, then it also needs -to check the @samp{xn} flag which indicates that wrapping happens in a -strange way. Many common terminals have the @samp{xn} flag. - -@item xn -@kindex xn -Flag whose presence means that the cursor wraps in a strange way. At -least two distinct kinds of strange behavior are known; the termcap -data base does not contain anything to distinguish the two. - -On Concept-100 terminals, output in the last column wraps the cursor -almost like an ordinary @samp{am} terminal. But if the next thing -output is a newline, it is ignored. - -DEC VT-100 terminals (when the wrap switch is on) do a different -strange thing: the cursor wraps only if the next thing output is -another graphic character. In fact, the wrap occurs when the -following graphic character is received by the terminal, before the -character is placed on the screen. - -On both of these terminals, after writing in the last column a -following graphic character will be displayed in the first column of -the following line. But the effect of relative cursor motion -characters such as newline or backspace at such a time depends on the -terminal. The effect of erase or scrolling commands also depends on -the terminal. You can't assume anything about what they will do on a -terminal that has @samp{xn}. So, to be safe, you should never do -these things at such a time on such a terminal. - -To be sure of reliable results on a terminal which has the @samp{xn} -flag, output a @samp{cm} absolute positioning command after writing in -the last column. Another safe thing to do is to output carriage-return -newline, which will leave the cursor at the beginning of the following -line. - -@item LP -@kindex LP -Flag whose presence means that it is safe to write in the last column of -the last line without worrying about undesired scrolling. @samp{LP} -indicates the DEC flavor of @samp{xn} strangeness. -@end table - -@node Scrolling, Windows, Wrapping, Capabilities -@section Scrolling -@cindex scrolling - -@dfn{Scrolling} means moving the contents of the screen up or down one or -more lines. Moving the contents up is @dfn{forward scrolling}; moving them -down is @dfn{reverse scrolling}. - -Scrolling happens after each line of output during ordinary output on most -display terminals. But in an application program that uses termcap for -random-access output, scrolling happens only when explicitly requested with -the commands in this section. - -Some terminals have a @dfn{scroll region} feature. This lets you limit -the effect of scrolling to a specified range of lines. Lines outside the -range are unaffected when scrolling happens. The scroll region feature -is available if either @samp{cs} or @samp{cS} is present. - -@table @samp -@item sf -@kindex sf -String of commands to scroll the screen one line up, assuming it is -output with the cursor at the beginning of the bottom line. - -@item sr -@kindex sr -String of commands to scroll the screen one line down, assuming it is -output with the cursor at the beginning of the top line. - -@item do -A few programs will try to use @samp{do} to do the work of @samp{sf}. -This is not really correct---it is an attempt to compensate for the -absence of a @samp{sf} command in some old terminal descriptions. - -Since these terminal descriptions do define @samp{sr}, perhaps at one -time the definition of @samp{do} was different and it could be used -for scrolling as well. But it isn't desirable to combine these two -functions in one capability, since scrolling often requires more -padding than simply moving the cursor down. Defining @samp{sf} and -@samp{do} separately allows you to specify the padding properly. -Also, all sources agree that @samp{do} should not be relied on to do -scrolling. - -So the best approach is to add @samp{sf} capabilities to the -descriptions of these terminals, copying the definition of @samp{do} -if that does scroll. - -@item SF -@kindex SF -String of commands to scroll the screen @var{n} lines up, assuming it -is output with the cursor at the beginning of the bottom line. - -@item SR -@kindex SR -String of commands to scroll the screen @var{n} lines down, assuming it -is output with the cursor at the beginning of the top line. - -@item cs -@kindex cs -String of commands to set the scroll region. This command takes two -parameters, @var{start} and @var{end}, which are the line numbers -(origin-zero) of the first line to include in the scroll region and of -the last line to include in it. When a scroll region is set, -scrolling is limited to the specified range of lines; lines outside -the range are not affected by scroll commands. - -Do not try to move the cursor outside the scroll region. The region -remains set until explicitly removed. To remove the scroll region, -use another @samp{cs} command specifying the full height of the -screen. - -The cursor position is undefined after the @samp{cs} command is set, -so position the cursor with @samp{cm} immediately afterward. - -@item cS -@kindex cS -String of commands to set the scroll region using parameters in -different form. The effect is the same as if @samp{cs} were used. -Four parameters are required: - -@enumerate -@item -Total number of lines on the screen. -@item -Number of lines above desired scroll region. -@item -Number of lines below (outside of) desired scroll region. -@item -Total number of lines on the screen, the same as the first parameter. -@end enumerate - -This capability is a GNU extension that was invented to allow the Ann -Arbor Ambassador's scroll-region command to be described; it could -also be done by putting non-Unix @samp{%}-sequences into a @samp{cs} -string, but that would have confused Unix programs that used the -@samp{cs} capability with the Unix termcap. Currently only GNU Emacs -uses the @samp{cS} capability. - -@item ns -@kindex ns -Flag which means that the terminal does not normally scroll for -ordinary sequential output. For modern terminals, this means that -outputting a newline in ordinary sequential output with the cursor on -the bottom line wraps to the top line. For some obsolete terminals, -other things may happen. - -The terminal may be able to scroll even if it does not normally do so. -If the @samp{sf} capability is provided, it can be used for scrolling -regardless of @samp{ns}. - -@item da -@kindex da -Flag whose presence means that lines scrolled up off the top of the -screen may come back if scrolling down is done subsequently. - -The @samp{da} and @samp{db} flags do not, strictly speaking, affect -how to scroll. But programs that scroll usually need to clear the -lines scrolled onto the screen, if these flags are present. - -@item db -@kindex db -Flag whose presence means that lines scrolled down off the bottom of -the screen may come back if scrolling up is done subsequently. - -@item lm -@kindex lm -Numeric value, the number of lines of display memory that the terminal -has. A value of zero means that the terminal has more display memory -than can fit on the screen, but no fixed number of lines. (The number -of lines may depend on the amount of text in each line.) -@end table - -Any terminal description that defines @samp{SF} should also define @samp{sf}; -likewise for @samp{SR} and @samp{sr}. However, many terminals can only -scroll by one line at a time, so it is common to find @samp{sf} and not -@samp{SF}, or @samp{sr} without @samp{SR}.@refill - -Therefore, all programs that use the scrolling facilities should be -prepared to work with @samp{sf} in the case that @samp{SF} is absent, and -likewise with @samp{sr}. On the other hand, an application program that -uses only @samp{sf} and not @samp{SF} is acceptable, though slow on some -terminals.@refill - -When outputting a scroll command with @code{tputs}, the @var{nlines} -argument should be the total number of lines in the portion of the screen -being scrolled. Very often these commands require padding proportional to -this number of lines. @xref{Padding}. - -@node Windows, Clearing, Scrolling, Capabilities -@section Windows -@cindex window - -A @dfn{window}, in termcap, is a rectangular portion of the screen to which -all display operations are restricted. Wrapping, clearing, scrolling, -insertion and deletion all operate as if the specified window were all the -screen there was. - -@table @samp -@item wi -@kindex wi -String of commands to set the terminal output screen window. -This string requires four parameters, all origin-zero: -@enumerate -@item -The first line to include in the window. -@item -The last line to include in the window. -@item -The first column to include in the window. -@item -The last column to include in the window. -@end enumerate -@end table - -Most terminals do not support windows. - -@node Clearing, Insdel Line, Windows, Capabilities -@section Clearing Parts of the Screen -@cindex erasing -@cindex clearing the screen - -There are several terminal capabilities for clearing parts of the screen -to blank. All display terminals support the @samp{cl} string, and most -display terminals support all of these capabilities. - -@table @samp -@item cl -@kindex cl -String of commands to clear the entire screen and position the cursor -at the upper left corner. - -@item cd -@kindex cd -String of commands to clear the line the cursor is on, and all the -lines below it, down to the bottom of the screen. This command string -should be used only with the cursor in column zero; their effect is -undefined if the cursor is elsewhere. - -@item ce -@kindex ce -String of commands to clear from the cursor to the end of the current -line. - -@item ec -@kindex ec -String of commands to clear @var{n} characters, starting with the -character that the cursor is on. This command string is expected to -leave the cursor position unchanged. The parameter @var{n} should never -be large enough to reach past the right margin; the effect of such a -large parameter would be undefined. -@end table - -Clear to end of line (@samp{ce}) is extremely important in programs that -maintain an updating display. Nearly all display terminals support this -operation, so it is acceptable for a an application program to refuse to -work if @samp{ce} is not present. However, if you do not want this -limitation, you can accomplish clearing to end of line by outputting spaces -until you reach the right margin. In order to do this, you must know the -current horizontal position. Also, this technique assumes that writing a -space will erase. But this happens to be true on all the display terminals -that fail to support @samp{ce}. - -@node Insdel Line, Insdel Char, Clearing, Capabilities -@section Insert/Delete Line - -@cindex insert line -@cindex delete line -@dfn{Inserting a line} means creating a blank line in the middle -of the screen, and pushing the existing lines of text apart. In fact, -the lines above the insertion point do not change, while the lines below -move down, and one is normally lost at the bottom of the screen. - -@dfn{Deleting a line} means causing the line to disappear from the screen, -closing up the gap by moving the lines below it upward. A new line -appears at the bottom of the screen. Usually this line is blank, but -on terminals with the @samp{db} flag it may be a line previously moved -off the screen bottom by scrolling or line insertion. - -Insertion and deletion of lines is useful in programs that maintain an -updating display some parts of which may get longer or shorter. They are -also useful in editors for scrolling parts of the screen, and for -redisplaying after lines of text are killed or inserted. - -Many terminals provide commands to insert or delete a single line at the -cursor position. Some provide the ability to insert or delete several -lines with one command, using the number of lines to insert or delete as a -parameter. Always move the cursor to column zero before using any of -these commands. - -@table @samp -@item al -@kindex al -String of commands to insert a blank line before the line the cursor -is on. The existing line, and all lines below it, are moved down. -The last line in the screen (or in the scroll region, if one is set) -disappears and in most circumstances is discarded. It may not be -discarded if the @samp{db} is present (@pxref{Scrolling}). - -The cursor must be at the left margin before this command is used. -This command does not move the cursor. - -@item dl -@kindex dl -String of commands to delete the line the cursor is on. The following -lines move up, and a blank line appears at the bottom of the screen -(or bottom of the scroll region). If the terminal has the @samp{db} -flag, a nonblank line previously pushed off the screen bottom may -reappear at the bottom. - -The cursor must be at the left margin before this command is used. -This command does not move the cursor. - -@item AL -@kindex AL -String of commands to insert @var{n} blank lines before the line that -the cursor is on. It is like @samp{al} repeated @var{n} times, except -that it is as fast as one @samp{al}. - -@item DL -@kindex DL -String of commands to delete @var{n} lines starting with the line that -the cursor is on. It is like @samp{dl} repeated @var{n} times, except -that it is as fast as one @samp{dl}. -@end table - -Any terminal description that defines @samp{AL} should also define -@samp{al}; likewise for @samp{DL} and @samp{dl}. However, many terminals -can only insert or delete one line at a time, so it is common to find -@samp{al} and not @samp{AL}, or @samp{dl} without @samp{DL}.@refill - -Therefore, all programs that use the insert and delete facilities should be -prepared to work with @samp{al} in the case that @samp{AL} is absent, and -likewise with @samp{dl}. On the other hand, it is acceptable to write -an application that uses only @samp{al} and @samp{dl} and does not look -for @samp{AL} or @samp{DL} at all.@refill - -If a terminal does not support line insertion and deletion directly, -but does support a scroll region, the effect of insertion and deletion -can be obtained with scrolling. However, it is up to the individual -user program to check for this possibility and use the scrolling -commands to get the desired result. It is fairly important to implement -this alternate strategy, since it is the only way to get the effect of -line insertion and deletion on the popular VT100 terminal. - -Insertion and deletion of lines is affected by the scroll region on -terminals that have a settable scroll region. This is useful when it is -desirable to move any few consecutive lines up or down by a few lines. -@xref{Scrolling}. - -The line pushed off the bottom of the screen is not lost if the terminal -has the @samp{db} flag capability; instead, it is pushed into display -memory that does not appear on the screen. This is the same thing that -happens when scrolling pushes a line off the bottom of the screen. -Either reverse scrolling or deletion of a line can bring the apparently -lost line back onto the bottom of the screen. If the terminal has the -scroll region feature as well as @samp{db}, the pushed-out line really -is lost if a scroll region is in effect. - -When outputting an insert or delete command with @code{tputs}, the -@var{nlines} argument should be the total number of lines from the cursor -to the bottom of the screen (or scroll region). Very often these commands -require padding proportional to this number of lines. @xref{Padding}. - -For @samp{AL} and @samp{DL} the @var{nlines} argument should @emph{not} -depend on the number of lines inserted or deleted; only the total number of -lines affected. This is because it is just as fast to insert two or -@var{n} lines with @samp{AL} as to insert one line with @samp{al}. - -@node Insdel Char, Standout, Insdel Line, Capabilities -@section Insert/Delete Character -@cindex insert character -@cindex delete character - -@dfn{Inserting a character} means creating a blank space in the middle of a -line, and pushing the rest of the line rightward. The character in the -rightmost column is lost. - -@dfn{Deleting a character} means causing the character to disappear from -the screen, closing up the gap by moving the rest of the line leftward. A -blank space appears in the rightmost column. - -Insertion and deletion of characters is useful in programs that maintain an -updating display some parts of which may get longer or shorter. It is also -useful in editors for redisplaying the results of editing within a line. - -Many terminals provide commands to insert or delete a single character at -the cursor position. Some provide the ability to insert or delete several -characters with one command, using the number of characters to insert or -delete as a parameter. - -@cindex insert mode -Many terminals provide an insert mode in which outputting a graphic -character has the added effect of inserting a position for that character. -A special command string is used to enter insert mode and another is used -to exit it. The reason for designing a terminal with an insert mode rather -than an insert command is that inserting character positions is usually -followed by writing characters into them. With insert mode, this is as -fast as simply writing the characters, except for the fixed overhead of -entering and leaving insert mode. However, when the line speed is great -enough, padding may be required for the graphic characters output in insert -mode. - -Some terminals require you to enter insert mode and then output a special -command for each position to be inserted. Or they may require special -commands to be output before or after each graphic character to be -inserted. - -@cindex delete mode -Deletion of characters is usually accomplished by a straightforward command -to delete one or several positions; but on some terminals, it is necessary -to enter a special delete mode before using the delete command, and leave -delete mode afterward. Sometimes delete mode and insert mode are the same -mode. - -Some terminals make a distinction between character positions in which a -space character has been output and positions which have been cleared. On -these terminals, the effect of insert or delete character runs to the first -cleared position rather than to the end of the line. In fact, the effect -may run to more than one line if there is no cleared position to stop the -shift on the first line. These terminals are identified by the @samp{in} -flag capability. - -On terminals with the @samp{in} flag, the technique of skipping over -characters that you know were cleared, and then outputting text later on in -the same line, causes later insert and delete character operations on that -line to do nonstandard things. A program that has any chance of doing this -must check for the @samp{in} flag and must be careful to write explicit -space characters into the intermediate columns when @samp{in} is present. - -A plethora of terminal capabilities are needed to describe all of this -complexity. Here is a list of them all. Following the list, we present -an algorithm for programs to use to take proper account of all of these -capabilities. - -@table @samp -@item im -@kindex im -String of commands to enter insert mode. - -If the terminal has no special insert mode, but it can insert -characters with a special command, @samp{im} should be defined with a -null value, because the @samp{vi} editor assumes that insertion of a -character is impossible if @samp{im} is not provided. - -New programs should not act like @samp{vi}. They should pay attention -to @samp{im} only if it is defined. - -@item ei -@kindex ei -String of commands to leave insert mode. This capability must be -present if @samp{im} is. - -On a few old terminals the same string is used to enter and exit -insert mode. This string turns insert mode on if it was off, and off -it it was on. You can tell these terminals because the @samp{ei} -string equals the @samp{im} string. If you want to support these -terminals, you must always remember accurately whether insert mode is -in effect. However, these terminals are obsolete, and it is -reasonable to refuse to support them. On all modern terminals, you -can safely output @samp{ei} at any time to ensure that insert mode is -turned off. - -@item ic -@kindex ic -String of commands to insert one character position at the cursor. -The cursor does not move. - -If outputting a graphic character while in insert mode is sufficient -to insert the character, then the @samp{ic} capability should be -defined with a null value. - -If your terminal offers a choice of ways to insert---either use insert -mode or use a special command---then define @samp{im} and do not define -@samp{ic}, since this gives the most efficient operation when several -characters are to be inserted. @emph{Do not} define both strings, for -that means that @emph{both} must be used each time insertion is done. - -@item ip -@kindex ip -String of commands to output following an inserted graphic character -in insert mode. Often it is used just for a padding spec, when padding -is needed after an inserted character (@pxref{Padding}). - -@item IC -@kindex IC -String of commands to insert @var{n} character positions at and after -the cursor. It has the same effect as repeating the @samp{ic} string -and a space, @var{n} times. - -If @samp{IC} is provided, application programs may use it without first -entering insert mode. - -@item mi -@kindex mi -Flag whose presence means it is safe to move the cursor while in insert -mode and assume the terminal remains in insert mode. - -@item in -@kindex in -Flag whose presence means that the terminal distinguishes between -character positions in which space characters have been output and -positions which have been cleared. -@end table - -An application program can assume that the terminal can do character -insertion if @emph{any one of} the capabilities @samp{IC}, @samp{im}, -@samp{ic} or @samp{ip} is provided. - -To insert @var{n} blank character positions, move the cursor to the place -to insert them and follow this algorithm: - -@enumerate -@item -If an @samp{IC} string is provided, output it with parameter @var{n} -and you are finished. Otherwise (or if you don't want to bother to -look for an @samp{IC} string) follow the remaining steps. - -@item -Output the @samp{im} string, if there is one, unless the terminal is -already in insert mode. - -@item -Repeat steps 4 through 6, @var{n} times. - -@item -Output the @samp{ic} string if any. - -@item -Output a space. - -@item -Output the @samp{ip} string if any. - -@item -Output the @samp{ei} string, eventually, to exit insert mode. There -is no need to do this right away. If the @samp{mi} flag is present, -you can move the cursor and the cursor will remain in insert mode; -then you can do more insertion elsewhere without reentering insert -mode. -@end enumerate - -To insert @var{n} graphic characters, position the cursor and follow this -algorithm: - -@enumerate -@item -If an @samp{IC} string is provided, output it with parameter @var{n}, -then output the graphic characters, and you are finished. Otherwise -(or if you don't want to bother to look for an @samp{IC} string) -follow the remaining steps. - -@item -Output the @samp{im} string, if there is one, unless the terminal is -already in insert mode. - -@item -For each character to be output, repeat steps 4 through 6. - -@item -Output the @samp{ic} string if any. - -@item -Output the next graphic character. - -@item -Output the @samp{ip} string if any. - -@item -Output the @samp{ei} string, eventually, to exit insert mode. There -is no need to do this right away. If the @samp{mi} flag is present, -you can move the cursor and the cursor will remain in insert mode; -then you can do more insertion elsewhere without reentering insert -mode. -@end enumerate - -Note that this is not the same as the original Unix termcap specifications -in one respect: it assumes that the @samp{IC} string can be used without -entering insert mode. This is true as far as I know, and it allows you be -able to avoid entering and leaving insert mode, and also to be able to -avoid the inserted-character padding after the characters that go into the -inserted positions. - -Deletion of characters is less complicated; deleting one column is done by -outputting the @samp{dc} string. However, there may be a delete mode that -must be entered with @samp{dm} in order to make @samp{dc} work. - -@table @samp -@item dc -@kindex dc -String of commands to delete one character position at the cursor. If -@samp{dc} is not present, the terminal cannot delete characters. - -@item DC -@kindex DC -String of commands to delete @var{n} characters starting at the cursor. -It has the same effect as repeating the @samp{dc} string @var{n} times. -Any terminal description that has @samp{DC} also has @samp{dc}. - -@item dm -@kindex dm -String of commands to enter delete mode. If not present, there is no -delete mode, and @samp{dc} can be used at any time (assuming there is -a @samp{dc}). - -@item ed -@kindex ed -String of commands to exit delete mode. This must be present if -@samp{dm} is. -@end table - -To delete @var{n} character positions, position the cursor and follow these -steps: - -@enumerate -@item -If the @samp{DC} string is present, output it with parameter @var{n} -and you are finished. Otherwise, follow the remaining steps. - -@item -Output the @samp{dm} string, unless you know the terminal is already -in delete mode. - -@item -Output the @samp{dc} string @var{n} times. - -@item -Output the @samp{ed} string eventually. If the flag capability -@samp{mi} is present, you can move the cursor and do more deletion -without leaving and reentering delete mode. -@end enumerate - -As with the @samp{IC} string, we have departed from the original termcap -specifications by assuming that @samp{DC} works without entering delete -mode even though @samp{dc} would not. - -If the @samp{dm} and @samp{im} capabilities are both present and have the -same value, it means that the terminal has one mode for both insertion and -deletion. It is useful for a program to know this, because then it can do -insertions after deletions, or vice versa, without leaving insert/delete -mode and reentering it. - -@node Standout, Underlining, Insdel Char, Capabilities -@section Standout and Appearance Modes -@cindex appearance modes -@cindex standout -@cindex magic cookie - -@dfn{Appearance modes} are modifications to the ways characters are -displayed. Typical appearance modes include reverse video, dim, bright, -blinking, underlined, invisible, and alternate character set. Each kind of -terminal supports various among these, or perhaps none. - -For each type of terminal, one appearance mode or combination of them that -looks good for highlighted text is chosen as the @dfn{standout mode}. The -capabilities @samp{so} and @samp{se} say how to enter and leave standout -mode. Programs that use appearance modes only to highlight some text -generally use the standout mode so that they can work on as many terminals -as possible. Use of specific appearance modes other than ``underlined'' -and ``alternate character set'' is rare. - -Terminals that implement appearance modes fall into two general classes as -to how they do it. - -In some terminals, the presence or absence of any appearance mode is -recorded separately for each character position. In these terminals, each -graphic character written is given the appearance modes current at the time -it is written, and keeps those modes until it is erased or overwritten. -There are special commands to turn the appearance modes on or off for -characters to be written in the future. - -In other terminals, the change of appearance modes is represented by a -marker that belongs to a certain screen position but affects all following -screen positions until the next marker. These markers are traditionally -called @dfn{magic cookies}. - -The same capabilities (@samp{so}, @samp{se}, @samp{mb} and so on) for -turning appearance modes on and off are used for both magic-cookie -terminals and per-character terminals. On magic cookie terminals, these -give the commands to write the magic cookies. On per-character terminals, -they change the current modes that affect future output and erasure. Some -simple applications can use these commands without knowing whether or not -they work by means of cookies. - -However, a program that maintains and updates a display needs to know -whether the terminal uses magic cookies, and exactly what their effect is. -This information comes from the @samp{sg} capability. - -The @samp{sg} capability is a numeric capability whose presence indicates -that the terminal uses magic cookies for appearance modes. Its value is -the number of character positions that a magic cookie occupies. Usually -the cookie occupies one or more character positions on the screen, and these -character positions are displayed as blank, but in some terminals the -cookie has zero width. - -The @samp{sg} capability describes both the magic cookie to turn standout -on and the cookie to turn it off. This makes the assumption that both -kinds of cookie have the same width on the screen. If that is not true, -the narrower cookie must be ``widened'' with spaces until it has the same -width as the other. - -On some magic cookie terminals, each line always starts with normal -display; in other words, the scope of a magic cookie never extends over -more than one line. But on other terminals, one magic cookie affects all -the lines below it unless explicitly canceled. Termcap does not define any -way to distinguish these two ways magic cookies can work. To be safe, it -is best to put a cookie at the beginning of each line. - -On some per-character terminals, standout mode or other appearance modes -may be canceled by moving the cursor. On others, moving the cursor has no -effect on the state of the appearance modes. The latter class of terminals -are given the flag capability @samp{ms} (``can move in standout''). All -programs that might have occasion to move the cursor while appearance modes -are turned on must check for this flag; if it is not present, they should -reset appearance modes to normal before doing cursor motion. - -A program that has turned on only standout mode should use @samp{se} to -reset the standout mode to normal. A program that has turned on only -alternate character set mode should use @samp{ae} to return it to normal. -If it is possible that any other appearance modes are turned on, use the -@samp{me} capability to return them to normal. - -Note that the commands to turn on one appearance mode, including @samp{so} -and @samp{mb} @dots{} @samp{mr}, if used while some other appearance modes -are turned on, may combine the two modes on some terminals but may turn off -the mode previously enabled on other terminals. This is because some -terminals do not have a command to set or clear one appearance mode without -changing the others. Programs should not attempt to use appearance modes -in combination except with @samp{sa}, and when switching from one single -mode to another should always turn off the previously enabled mode and then -turn on the new desired mode. - -On some old terminals, the @samp{so} and @samp{se} commands may be the same -command, which has the effect of turning standout on if it is off, or off -it is on. It is therefore risky for a program to output extra @samp{se} -commands for good measure. Fortunately, all these terminals are obsolete. - -Programs that update displays in which standout-text may be replaced with -non-standout text must check for the @samp{xs} flag. In a per-character -terminal, this flag says that the only way to remove standout once written is -to clear that portion of the line with the @samp{ce} string or something -even more powerful (@pxref{Clearing}); just writing new characters at those -screen positions will not change the modes in effect there. In a magic -cookie terminal, @samp{xs} says that the only way to remove a cookie is to -clear a portion of the line that includes the cookie; writing a different -cookie at the same position does not work. - -Such programs must also check for the @samp{xt} flag, which means that the -terminal is a Teleray 1061. On this terminal it is impossible to position -the cursor at the front of a magic cookie, so the only two ways to remove a -cookie are (1) to delete the line it is on or (2) to position the cursor at -least one character before it (possibly on a previous line) and output the -@samp{se} string, which on these terminals finds and removes the next -@samp{so} magic cookie on the screen. (It may also be possible to remove a -cookie which is not at the beginning of a line by clearing that line.) The -@samp{xt} capability also has implications for the use of tab characters, -but in that regard it is obsolete (@xref{Cursor Motion}). - -@table @samp -@item so -@kindex so -String of commands to enter standout mode. - -@item se -@kindex se -String of commands to leave standout mode. - -@item sg -@kindex sg -Numeric capability, the width on the screen of the magic cookie. This -capability is absent in terminals that record appearance modes -character by character. - -@item ms -@kindex ms -Flag whose presence means that it is safe to move the cursor while the -appearance modes are not in the normal state. If this flag is absent, -programs should always reset the appearance modes to normal before -moving the cursor. - -@item xs -@kindex xs -Flag whose presence means that the only way to reset appearance modes -already on the screen is to clear to end of line. On a per-character -terminal, you must clear the area where the modes are set. On a magic -cookie terminal, you must clear an area containing the cookie. -See the discussion above. - -@item xt -@kindex xt -Flag whose presence means that the cursor cannot be positioned right -in front of a magic cookie, and that @samp{se} is a command to delete -the next magic cookie following the cursor. See discussion above. - -@item mb -@kindex mb -String of commands to enter blinking mode. - -@item md -@kindex md -String of commands to enter double-bright mode. - -@item mh -@kindex mh -String of commands to enter half-bright mode. - -@item mk -@kindex mk -String of commands to enter invisible mode. - -@item mp -@kindex mp -String of commands to enter protected mode. - -@item mr -@kindex mr -String of commands to enter reverse-video mode. - -@item me -@kindex me -String of commands to turn off all appearance modes, including -standout mode and underline mode. On some terminals it also turns off -alternate character set mode; on others, it may not. This capability -must be present if any of @samp{mb} @dots{} @samp{mr} is present. - -@item as -@kindex as -String of commands to turn on alternate character set mode. This mode -assigns some or all graphic characters an alternate picture on the -screen. There is no standard as to what the alternate pictures look -like. - -@item ae -@kindex ae -String of commands to turn off alternate character set mode. - -@item sa -@kindex sa -String of commands to turn on an arbitrary combination of appearance -modes. It accepts 9 parameters, each of which controls a particular -kind of appearance mode. A parameter should be 1 to turn its appearance -mode on, or zero to turn that mode off. Most terminals do not support -the @samp{sa} capability, even among those that do have various -appearance modes. - -The nine parameters are, in order, @var{standout}, @var{underline}, -@var{reverse}, @var{blink}, @var{half-bright}, @var{double-bright}, -@var{blank}, @var{protect}, @var{alt char set}. -@end table - -@node Underlining, Cursor Visibility, Standout, Capabilities -@section Underlining -@cindex underlining - -Underlining on most terminals is a kind of appearance mode, much like -standout mode. Therefore, it may be implemented using magic cookies or as -a flag in the terminal whose current state affects each character that is -output. @xref{Standout}, for a full explanation. - -The @samp{ug} capability is a numeric capability whose presence indicates -that the terminal uses magic cookies for underlining. Its value is the -number of character positions that a magic cookie for underlining occupies; -it is used for underlining just as @samp{sg} is used for standout. Aside -from the simplest applications, it is impossible to use underlining -correctly without paying attention to the value of @samp{ug}. - -@table @samp -@item us -@kindex us -String of commands to turn on underline mode or to output a magic cookie -to start underlining. - -@item ue -@kindex ue -String of commands to turn off underline mode or to output a magic -cookie to stop underlining. - -@item ug -@kindex ug -Width of magic cookie that represents a change of underline mode; -or missing, if the terminal does not use a magic cookie for this. - -@item ms -@kindex ms -Flag whose presence means that it is safe to move the cursor while the -appearance modes are not in the normal state. Underlining is an -appearance mode. If this flag is absent, programs should always turn -off underlining before moving the cursor. -@end table - -There are two other, older ways of doing underlining: there can be a -command to underline a single character, or the output of @samp{_}, the -ASCII underscore character, as an overstrike could cause a character to be -underlined. New programs need not bother to handle these capabilities -unless the author cares strongly about the obscure terminals which support -them. However, terminal descriptions should provide these capabilities -when appropriate. - -@table @samp -@item uc -@kindex uc -String of commands to underline the character under the cursor, and -move the cursor right. - -@item ul -@kindex ul -Flag whose presence means that the terminal can underline by -overstriking an underscore character (@samp{_}); some terminals can do -this even though they do not support overstriking in general. An -implication of this flag is that when outputting new text to overwrite -old text, underscore characters must be treated specially lest they -underline the old text instead. -@end table - -@node Cursor Visibility, Bell, Underlining, Capabilities -@section Cursor Visibility -@cindex visibility - -Some terminals have the ability to make the cursor invisible, or to enhance -it. Enhancing the cursor is often done by programs that plan to use the -cursor to indicate to the user a position of interest that may be anywhere -on the screen---for example, the Emacs editor enhances the cursor on entry. -Such programs should always restore the cursor to normal on exit. - -@table @samp -@item vs -@kindex vs -String of commands to enhance the cursor. - -@item vi -@kindex vi -String of commands to make the cursor invisible. - -@item ve -@kindex ve -String of commands to return the cursor to normal. -@end table - -If you define either @samp{vs} or @samp{vi}, you must also define @samp{ve}. - -@node Bell, Keypad, Cursor Visibility, Capabilities -@section Bell -@cindex bell -@cindex visible bell - -Here we describe commands to make the terminal ask for the user to pay -attention to it. - -@table @samp -@item bl -@kindex bl -String of commands to cause the terminal to make an audible sound. If -this capability is absent, the terminal has no way to make a suitable -sound. - -@item vb -@kindex vb -String of commands to cause the screen to flash to attract attention -(``visible bell''). If this capability is absent, the terminal has no -way to do such a thing. -@end table - -@node Keypad, Meta Key, Bell, Capabilities -@section Keypad and Function Keys - -Many terminals have arrow and function keys that transmit specific -character sequences to the computer. Since the precise sequences used -depend on the terminal, termcap defines capabilities used to say what the -sequences are. Unlike most termcap string-valued capabilities, these are -not strings of commands to be sent to the terminal, rather strings that -are received from the terminal. - -Programs that expect to use keypad keys should check, initially, for a -@samp{ks} capability and send it, to make the keypad actually transmit. -Such programs should also send the @samp{ke} string when exiting. - -@table @asis -@item @samp{ks} -@kindex ka@dots{}ku -String of commands to make the keypad keys transmit. If this -capability is not provided, but the others in this section are, -programs may assume that the keypad keys always transmit. - -@item @samp{ke} -String of commands to make the keypad keys work locally. This -capability is provided only if @samp{ks} is. - -@item @samp{kl} -String of input characters sent by typing the left-arrow key. If this -capability is missing, you cannot expect the terminal to have a -left-arrow key that transmits anything to the computer. - -@item @samp{kr} -String of input characters sent by typing the right-arrow key. - -@item @samp{ku} -String of input characters sent by typing the up-arrow key. - -@item @samp{kd} -String of input characters sent by typing the down-arrow key. - -@item @samp{kh} -String of input characters sent by typing the ``home-position'' key. - -@item @samp{K1} @dots{} @samp{K5} -@kindex K1@dots{}K5 -Strings of input characters sent by the five other keys in a 3-by-3 -array that includes the arrow keys, if the keyboard has such a 3-by-3 -array. Note that one of these keys may be the ``home-position'' key, -in which case one of these capabilities will have the same value as -the @samp{kh} key. - -@item @samp{k0} -String of input characters sent by function key 10 (or 0, if the terminal -has one labeled 0). - -@item @samp{k1} @dots{} @samp{k9} -@kindex k1@dots{}k9 -Strings of input characters sent by function keys 1 through 9, -provided for those function keys that exist. - -@item @samp{kn} -Number: the number of numbered function keys, if there are more than -10. - -@item @samp{l0} @dots{} @samp{l9} -@kindex l0@dots{}l9 -Strings which are the labels appearing on the keyboard on the keys -described by the capabilities @samp{k0} @dots{} @samp{l9}. These -capabilities should be left undefined if the labels are @samp{f0} or -@samp{f10} and @samp{f1} @dots{} @samp{f9}.@refill - -@item @samp{kH} -@kindex kA@dots{}kT -String of input characters sent by the ``home down'' key, if there is -one. - -@item @samp{kb} -String of input characters sent by the ``backspace'' key, if there is -one. - -@item @samp{ka} -String of input characters sent by the ``clear all tabs'' key, if there -is one. - -@item @samp{kt} -String of input characters sent by the ``clear tab stop this column'' -key, if there is one. - -@item @samp{kC} -String of input characters sent by the ``clear screen'' key, if there is -one. - -@item @samp{kD} -String of input characters sent by the ``delete character'' key, if -there is one. - -@item @samp{kL} -String of input characters sent by the ``delete line'' key, if there is -one. - -@item @samp{kM} -String of input characters sent by the ``exit insert mode'' key, if -there is one. - -@item @samp{kE} -String of input characters sent by the ``clear to end of line'' key, if -there is one. - -@item @samp{kS} -String of input characters sent by the ``clear to end of screen'' key, -if there is one. - -@item @samp{kI} -String of input characters sent by the ``insert character'' or ``enter -insert mode'' key, if there is one. - -@item @samp{kA} -String of input characters sent by the ``insert line'' key, if there is -one. - -@item @samp{kN} -String of input characters sent by the ``next page'' key, if there is -one. - -@item @samp{kP} -String of input characters sent by the ``previous page'' key, if there is -one. - -@item @samp{kF} -String of input characters sent by the ``scroll forward'' key, if there -is one. - -@item @samp{kR} -String of input characters sent by the ``scroll reverse'' key, if there -is one. - -@item @samp{kT} -String of input characters sent by the ``set tab stop in this column'' -key, if there is one. - -@item @samp{ko} -String listing the other function keys the terminal has. This is a -very obsolete way of describing the same information found in the -@samp{kH} @dots{} @samp{kT} keys. The string contains a list of -two-character termcap capability names, separated by commas. The -meaning is that for each capability name listed, the terminal has a -key which sends the string which is the value of that capability. For -example, the value @samp{:ko=cl,ll,sf,sr:} says that the terminal has -four function keys which mean ``clear screen'', ``home down'', -``scroll forward'' and ``scroll reverse''.@refill -@end table - -@node Meta Key, Initialization, Keypad, Capabilities -@section Meta Key - -@cindex meta key -A Meta key is a key on the keyboard that modifies each character you type -by controlling the 0200 bit. This bit is on if and only if the Meta key is -held down when the character is typed. Characters typed using the Meta key -are called Meta characters. Emacs uses Meta characters as editing -commands. - -@table @samp -@item km -@kindex km -Flag whose presence means that the terminal has a Meta key. - -@item mm -@kindex mm -String of commands to enable the functioning of the Meta key. - -@item mo -@kindex mo -String of commands to disable the functioning of the Meta key. -@end table - -If the terminal has @samp{km} but does not have @samp{mm} and @samp{mo}, it -means that the Meta key always functions. If it has @samp{mm} and -@samp{mo}, it means that the Meta key can be turned on or off. Send the -@samp{mm} string to turn it on, and the @samp{mo} string to turn it off. -I do not know why one would ever not want it to be on. - -@node Initialization, Pad Specs, Meta Key, Capabilities -@section Initialization -@cindex reset -@cindex initialization -@cindex tab stops - -@table @samp -@item ti -@kindex ti -String of commands to put the terminal into whatever special modes are -needed or appropriate for programs that move the cursor -nonsequentially around the screen. Programs that use termcap to do -full-screen display should output this string when they start up. - -@item te -@kindex te -String of commands to undo what is done by the @samp{ti} string. -Programs that output the @samp{ti} string on entry should output this -string when they exit. - -@item is -@kindex is -String of commands to initialize the terminal for each login session. - -@item if -@kindex if -String which is the name of a file containing the string of commands -to initialize the terminal for each session of use. Normally @samp{is} -and @samp{if} are not both used. - -@item i1 -@itemx i3 -@kindex i1 -@kindex i3 -Two more strings of commands to initialize the terminal for each login -session. The @samp{i1} string (if defined) is output before @samp{is} -or @samp{if}, and the @samp{i3} string (if defined) is output after. - -The reason for having three separate initialization strings is to make -it easier to define a group of related terminal types with slightly -different initializations. Define two or three of the strings in the -basic type; then the other types can override one or two of the -strings. - -@item rs -@kindex rs -String of commands to reset the terminal from any strange mode it may -be in. Normally this includes the @samp{is} string (or other commands -with the same effects) and more. What would go in the @samp{rs} -string but not in the @samp{is} string are annoying or slow commands -to bring the terminal back from strange modes that nobody would -normally use. - -@item it -@kindex it -Numeric value, the initial spacing between hardware tab stop columns -when the terminal is powered up. Programs to initialize the terminal -can use this to decide whether there is a need to set the tab stops. -If the initial width is 8, well and good; if it is not 8, then the -tab stops should be set; if they cannot be set, the kernel is told -to convert tabs to spaces, and other programs will observe this and do -likewise. - -@item ct -@kindex ct -String of commands to clear all tab stops. - -@item st -@kindex st -String of commands to set tab stop at current cursor column on all -lines. - -@item NF -@kindex NF -Flag whose presence means that the terminal does not support XON/XOFF -flow control. Programs should not send XON (@kbd{C-q}) or XOFF -(@kbd{C-s}) characters to the terminal. -@end table - -@node Pad Specs, Status Line, Initialization, Capabilities -@section Padding Capabilities -@cindex padding - -There are two terminal capabilities that exist just to explain the proper -way to obey the padding specifications in all the command string -capabilities. One, @samp{pc}, must be obeyed by all termcap-using -programs. - -@table @samp -@item pb -@kindex pb -Numeric value, the lowest baud rate at which padding is actually -needed. Programs may check this and refrain from doing any padding at -lower speeds. - -@item pc -@kindex pc -String of commands for padding. The first character of this string is -to be used as the pad character, instead of using null characters for -padding. If @samp{pc} is not provided, use null characters. Every -program that uses termcap must look up this capability and use it to -set the variable @code{PC} that is used by @code{tputs}. -@xref{Padding}. -@end table - -Some termcap capabilities exist just to specify the amount of padding that -the kernel should give to cursor motion commands used in ordinary -sequential output. - -@table @samp -@item dC -@kindex dC -Numeric value, the number of msec of padding needed for the -carriage-return character. - -@item dN -@kindex dN -Numeric value, the number of msec of padding needed for the newline -(linefeed) character. - -@item dB -@kindex dB -Numeric value, the number of msec of padding needed for the backspace -character. - -@item dF -@kindex dF -Numeric value, the number of msec of padding needed for the formfeed -character. - -@item dT -@kindex dT -Numeric value, the number of msec of padding needed for the tab -character. -@end table - -In some systems, the kernel uses the above capabilities; in other systems, -the kernel uses the paddings specified in the string capabilities -@samp{cr}, @samp{sf}, @samp{le}, @samp{ff} and @samp{ta}. Descriptions of -terminals which require such padding should contain the @samp{dC} @dots{} -@samp{dT} capabilities and also specify the appropriate padding in the -corresponding string capabilities. Since no modern terminals require -padding for ordinary sequential output, you probably won't need to do -either of these things. - -@node Status Line, Half-Line, Pad Specs, Capabilities -@section Status Line - -@cindex status line -A @dfn{status line} is a line on the terminal that is not used for ordinary -display output but instead used for a special message. The intended use is -for a continuously updated description of what the user's program is doing, -and that is where the name ``status line'' comes from, but in fact it could -be used for anything. The distinguishing characteristic of a status line -is that ordinary output to the terminal does not affect it; it changes only -if the special status line commands of this section are used. - -@table @samp -@item hs -@kindex hs -Flag whose presence means that the terminal has a status line. If a -terminal description specifies that there is a status line, it must -provide the @samp{ts} and @samp{fs} capabilities. - -@item ts -@kindex ts -String of commands to move the terminal cursor into the status line. -Usually these commands must specifically record the old cursor -position for the sake of the @samp{fs} string. - -@item fs -@kindex fs -String of commands to move the cursor back from the status line to its -previous position (outside the status line). - -@item es -@kindex es -Flag whose presence means that other display commands work while -writing the status line. In other words, one can clear parts of it, -insert or delete characters, move the cursor within it using @samp{ch} -if there is a @samp{ch} capability, enter and leave standout mode, and -so on. - -@item ds -@kindex ds -String of commands to disable the display of the status line. This -may be absent, if there is no way to disable the status line display. - -@item ws -@kindex ws -Numeric value, the width of the status line. If this capability is -absent in a terminal that has a status line, it means the status line -is the same width as the other lines. - -Note that the value of @samp{ws} is sometimes as small as 8. -@end table - -@node Half-Line, Printer, Status Line, Capabilities -@section Half-Line Motion - -Some terminals have commands for moving the cursor vertically by half-lines, -useful for outputting subscripts and superscripts. Mostly it is hardcopy -terminals that have such features. - -@table @samp -@item hu -@kindex hu -String of commands to move the cursor up half a line. If the terminal -is a display, it is your responsibility to avoid moving up past the -top line; however, most likely the terminal that supports this is a -hardcopy terminal and there is nothing to be concerned about. - -@item hd -@kindex hd -String of commands to move the cursor down half a line. If the -terminal is a display, it is your responsibility to avoid moving down -past the bottom line, etc. -@end table - -@node Printer, , Half-Line, Capabilities -@section Controlling Printers Attached to Terminals -@cindex printer - -Some terminals have attached hardcopy printer ports. They may be able to -copy the screen contents to the printer; they may also be able to redirect -output to the printer. Termcap does not have anything to tell the program -whether the redirected output appears also on the screen; it does on some -terminals but not all. - -@table @samp -@item ps -@kindex ps -String of commands to cause the contents of the screen to be printed. -If it is absent, the screen contents cannot be printed. - -@item po -@kindex po -String of commands to redirect further output to the printer. - -@item pf -@kindex pf -String of commands to terminate redirection of output to the printer. -This capability must be present in the description if @samp{po} is. - -@item pO -@kindex pO -String of commands to redirect output to the printer for next @var{n} -characters of output, regardless of what they are. Redirection will -end automatically after @var{n} characters of further output. Until -then, nothing that is output can end redirection, not even the -@samp{pf} string if there is one. The number @var{n} should not be -more than 255. - -One use of this capability is to send non-text byte sequences (such as -bit-maps) to the printer. -@end table - -Most terminals with printers do not support all of @samp{ps}, @samp{po} and -@samp{pO}; any one or two of them may be supported. To make a program that -can send output to all kinds of printers, it is necessary to check for all -three of these capabilities, choose the most convenient of the ones that -are provided, and use it in its own appropriate fashion. - -@node Summary, Var Index, Capabilities, Top -@chapter Summary of Capability Names - -Here are all the terminal capability names in alphabetical order -with a brief description of each. For cross references to their definitions, -see the index of capability names (@pxref{Cap Index}). - -@table @samp -@item ae -String to turn off alternate character set mode. -@item al -String to insert a blank line before the cursor. -@item AL -String to insert @var{n} blank lines before the cursor. -@item am -Flag: output to last column wraps cursor to next line. -@item as -String to turn on alternate character set mode.like. -@item bc -Very obsolete alternative name for the @samp{le} capability. -@item bl -String to sound the bell. -@item bs -Obsolete flag: ASCII backspace may be used for leftward motion. -@item bt -String to move the cursor left to the previous hardware tab stop column. -@item bw -Flag: @samp{le} at left margin wraps to end of previous line. -@item CC -String to change terminal's command character. -@item cd -String to clear the line the cursor is on, and following lines. -@item ce -String to clear from the cursor to the end of the line. -@item ch -String to position the cursor at column @var{c} in the same line. -@item cl -String to clear the entire screen and put cursor at upper left corner. -@item cm -String to position the cursor at line @var{l}, column @var{c}. -@item CM -String to position the cursor at line @var{l}, column -@var{c}, relative to display memory. -@item co -Number: width of the screen. -@item cr -String to move cursor sideways to left margin. -@item cs -String to set the scroll region. -@item cS -Alternate form of string to set the scroll region. -@item ct -String to clear all tab stops. -@item cv -String to position the cursor at line @var{l} in the same column. -@item da -Flag: data scrolled off top of screen may be scrolled back. -@item db -Flag: data scrolled off bottom of screen may be scrolled back. -@item dB -Obsolete number: msec of padding needed for the backspace character. -@item dc -String to delete one character position at the cursor. -@item dC -Obsolete number: msec of padding needed for the carriage-return character. -@item DC -String to delete @var{n} characters starting at the cursor. -@item dF -Obsolete number: msec of padding needed for the formfeed character. -@item dl -String to delete the line the cursor is on. -@item DL -String to delete @var{n} lines starting with the cursor's line. -@item dm -String to enter delete mode. -@item dN -Obsolete number: msec of padding needed for the newline character. -@item do -String to move the cursor vertically down one line. -@item DO -String to move cursor vertically down @var{n} lines. -@item ds -String to disable the display of the status line. -@item dT -Obsolete number: msec of padding needed for the tab character. -@item ec -String of commands to clear @var{n} characters at cursor. -@item ed -String to exit delete mode. -@item ei -String to leave insert mode. -@item eo -Flag: output of a space can erase an overstrike. -@item es -Flag: other display commands work while writing the status line. -@item ff -String to advance to the next page, for a hardcopy terminal. -@item fs -String to move the cursor back from the status line to its -previous position (outside the status line). -@item gn -Flag: this terminal type is generic, not real. -@item hc -Flag: hardcopy terminal. -@item hd -String to move the cursor down half a line. -@item ho -String to position cursor at upper left corner. -@item hs -Flag: the terminal has a status line. -@item hu -String to move the cursor up half a line. -@item hz -Flag: terminal cannot accept @samp{~} as output. -@item i1 -String to initialize the terminal for each login session. -@item i3 -String to initialize the terminal for each login session. -@item ic -String to insert one character position at the cursor. -@item IC -String to insert @var{n} character positions at the cursor. -@item if -String naming a file of commands to initialize the terminal. -@item im -String to enter insert mode. -@item in -Flag: outputting a space is different from moving over empty positions. -@item ip -String to output following an inserted character in insert mode. -@item is -String to initialize the terminal for each login session. -@item it -Number: initial spacing between hardware tab stop columns. -@item k0 -String of input sent by function key 0 or 10. -@item k1 @dots{} k9 -Strings of input sent by function keys 1 through 9. -@item K1 @dots{} K5 -Strings sent by the five other keys in 3-by-3 array with arrows. -@item ka -String of input sent by the ``clear all tabs'' key. -@item kA -String of input sent by the ``insert line'' key. -@item kb -String of input sent by the ``backspace'' key. -@item kC -String of input sent by the ``clear screen'' key. -@item kd -String of input sent by typing the down-arrow key. -@item kD -String of input sent by the ``delete character'' key. -@item ke -String to make the function keys work locally. -@item kE -String of input sent by the ``clear to end of line'' key. -@item kF -String of input sent by the ``scroll forward'' key. -@item kh -String of input sent by typing the ``home-position'' key. -@item kH -String of input sent by the ``home down'' key. -@item kI -String of input sent by the ``insert character'' or ``enter -insert mode'' key. -@item kl -String of input sent by typing the left-arrow key. -@item kL -String of input sent by the ``delete line'' key. -@item km -Flag: the terminal has a Meta key. -@item kM -String of input sent by the ``exit insert mode'' key. -@item kn -Numeric value, the number of numbered function keys. -@item kN -String of input sent by the ``next page'' key. -@item ko -Very obsolete string listing the terminal's named function keys. -@item kP -String of input sent by the ``previous page'' key. -@item kr -String of input sent by typing the right-arrow key. -@item kR -String of input sent by the ``scroll reverse'' key. -@item ks -String to make the function keys transmit. -@item kS -String of input sent by the ``clear to end of screen'' key. -@item kt -String of input sent by the ``clear tab stop this column'' key. -@item kT -String of input sent by the ``set tab stop in this column'' key. -@item ku -String of input sent by typing the up-arrow key. -@item l0 -String on keyboard labelling function key 0 or 10. -@item l1 @dots{} l9 -Strings on keyboard labelling function keys 1 through 9. -@item le -String to move the cursor left one column. -@item LE -String to move cursor left @var{n} columns. -@item li -Number: height of the screen. -@item ll -String to position cursor at lower left corner. -@item lm -Number: lines of display memory. -@item LP -Flag: writing to last column of last line will not scroll. -@item mb -String to enter blinking mode. -@item md -String to enter double-bright mode. -@item me -String to turn off all appearance modes -@item mh -String to enter half-bright mode. -@item mi -Flag: cursor motion in insert mode is safe. -@item mk -String to enter invisible mode. -@item mm -String to enable the functioning of the Meta key. -@item mo -String to disable the functioning of the Meta key. -@item mp -String to enter protected mode. -@item mr -String to enter reverse-video mode. -@item ms -Flag: cursor motion in standout mode is safe. -@item nc -Obsolete flag: do not use ASCII carriage-return on this terminal. -@item nd -String to move the cursor right one column. -@item NF -Flag: do not use XON/XOFF flow control. -@item nl -Obsolete alternative name for the @samp{do} and @samp{sf} capabilities. -@item ns -Flag: the terminal does not normally scroll for sequential output. -@item nw -String to move to start of next line, possibly clearing rest of old line. -@item os -Flag: terminal can overstrike. -@item pb -Number: the lowest baud rate at which padding is actually needed. -@item pc -String containing character for padding. -@item pf -String to terminate redirection of output to the printer. -@item po -String to redirect further output to the printer. -@item pO -String to redirect @var{n} characters ofoutput to the printer. -@item ps -String to print the screen on the attached printer. -@item rc -String to move to last saved cursor position. -@item RI -String to move cursor right @var{n} columns. -@item rp -String to output character @var{c} repeated @var{n} times. -@item rs -String to reset the terminal from any strange modes. -@item sa -String to turn on an arbitrary combination of appearance modes. -@item sc -String to save the current cursor position. -@item se -String to leave standout mode. -@item sf -String to scroll the screen one line up. -@item SF -String to scroll the screen @var{n} lines up. -@item sg -Number: width of magic standout cookie. Absent if magic cookies are -not used. -@item so -String to enter standout mode. -@item sr -String to scroll the screen one line down. -@item SR -String to scroll the screen @var{n} line down. -@item st -String to set tab stop at current cursor column on all lines. -programs. -@item ta -String to move the cursor right to the next hardware tab stop column. -@item te -String to return terminal to settings for sequential output. -@item ti -String to initialize terminal for random cursor motion. -@item ts -String to move the terminal cursor into the status line. -@item uc -String to underline one character and move cursor right. -@item ue -String to turn off underline mode -@item ug -Number: width of underlining magic cookie. Absent if underlining -doesn't use magic cookies. -@item ul -Flag: underline by overstriking with an underscore. -@item up -String to move the cursor vertically up one line. -@item UP -String to move cursor vertically up @var{n} lines. -@item us -String to turn on underline mode -@item vb -String to make the screen flash. -@item ve -String to return the cursor to normal. -@item vi -String to make the cursor invisible. -@item vs -String to enhance the cursor. -@item wi -String to set the terminal output screen window. -@item ws -Number: the width of the status line. -@item xb -Flag: superbee terminal. -@item xn -Flag: cursor wraps in a strange way. -@item xs -Flag: clearing a line is the only way to clear the appearance modes of -positions in that line (or, only way to remove magic cookies on that -line). -@item xt -Flag: Teleray 1061; several strange characteristics. -@end table - -@node Var Index, Cap Index, Summary, Top -@unnumbered Variable and Function Index - -@printindex fn - -@node Cap Index, Index, Var Index, Top -@unnumbered Capability Index - -@printindex ky - -@node Index, , Cap Index, Top -@unnumbered Concept Index - -@printindex cp - -@contents -@bye diff --git a/lib/termcap/grot/texinfo.tex b/lib/termcap/grot/texinfo.tex deleted file mode 100644 index f62e9f56d..000000000 --- a/lib/termcap/grot/texinfo.tex +++ /dev/null @@ -1,4422 +0,0 @@ -%% TeX macros to handle texinfo files - -% Copyright (C) 1985, 86, 88, 90, 91, 92, 93, 1994 Free Software Foundation, Inc. - -%This texinfo.tex file 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 texinfo.tex file 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 texinfo.tex file; see the file COPYING. If not, write -%to the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, -%USA. - - -%In other words, you are welcome to use, share and improve this program. -%You are forbidden to forbid anyone else to use, share and improve -%what you give them. Help stamp out software-hoarding! - - -% Send bug reports to bug-texinfo@prep.ai.mit.edu. -% Please include a *precise* test case in each bug report. - - -% Make it possible to create a .fmt file just by loading this file: -% if the underlying format is not loaded, start by loading it now. -% Added by gildea November 1993. -\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi - -% This automatically updates the version number based on RCS. -\def\deftexinfoversion$#1: #2 ${\def\texinfoversion{#2}} -\deftexinfoversion$Revision: 2.146 $ -\message{Loading texinfo package [Version \texinfoversion]:} - -% If in a .fmt file, print the version number -% and turn on active characters that we couldn't do earlier because -% they might have appeared in the input file name. -\everyjob{\message{[Texinfo version \texinfoversion]}\message{} - \catcode`+=\active \catcode`\_=\active} - -% Save some parts of plain tex whose names we will redefine. - -\let\ptextilde=\~ -\let\ptexlbrace=\{ -\let\ptexrbrace=\} -\let\ptexdots=\dots -\let\ptexdot=\. -\let\ptexstar=\* -\let\ptexend=\end -\let\ptexbullet=\bullet -\let\ptexb=\b -\let\ptexc=\c -\let\ptexi=\i -\let\ptext=\t -\let\ptexl=\l -\let\ptexL=\L - -% Be sure we're in horizontal mode when doing a tie, since we make space -% equivalent to this in @example-like environments. Otherwise, a space -% at the beginning of a line will start with \penalty -- and -% since \penalty is valid in vertical mode, we'd end up putting the -% penalty on the vertical list instead of in the new paragraph. -{\catcode`@ = 11 - \gdef\tie{\leavevmode\penalty\@M\ } -} -\let\~ = \tie % And make it available as @~. - -\message{Basics,} -\chardef\other=12 - -% If this character appears in an error message or help string, it -% starts a new line in the output. -\newlinechar = `^^J - -% Set up fixed words for English. -\ifx\putwordChapter\undefined{\gdef\putwordChapter{Chapter}}\fi% -\def\putwordInfo{Info}% -\ifx\putwordSee\undefined{\gdef\putwordSee{See}}\fi% -\ifx\putwordsee\undefined{\gdef\putwordsee{see}}\fi% -\ifx\putwordfile\undefined{\gdef\putwordfile{file}}\fi% -\ifx\putwordpage\undefined{\gdef\putwordpage{page}}\fi% -\ifx\putwordsection\undefined{\gdef\putwordsection{section}}\fi% -\ifx\putwordSection\undefined{\gdef\putwordSection{Section}}\fi% -\ifx\putwordTableofContents\undefined{\gdef\putwordTableofContents{Table of Contents}}\fi% -\ifx\putwordShortContents\undefined{\gdef\putwordShortContents{Short Contents}}\fi% -\ifx\putwordAppendix\undefined{\gdef\putwordAppendix{Appendix}}\fi% - -% Ignore a token. -% -\def\gobble#1{} - -\hyphenation{ap-pen-dix} -\hyphenation{mini-buf-fer mini-buf-fers} -\hyphenation{eshell} - -% Margin to add to right of even pages, to left of odd pages. -\newdimen \bindingoffset \bindingoffset=0pt -\newdimen \normaloffset \normaloffset=\hoffset -\newdimen\pagewidth \newdimen\pageheight -\pagewidth=\hsize \pageheight=\vsize - -% Sometimes it is convenient to have everything in the transcript file -% and nothing on the terminal. We don't just call \tracingall here, -% since that produces some useless output on the terminal. -% -\def\gloggingall{\begingroup \globaldefs = 1 \loggingall \endgroup}% -\def\loggingall{\tracingcommands2 \tracingstats2 - \tracingpages1 \tracingoutput1 \tracinglostchars1 - \tracingmacros2 \tracingparagraphs1 \tracingrestores1 - \showboxbreadth\maxdimen\showboxdepth\maxdimen -}% - -%---------------------Begin change----------------------- -% -%%%% For @cropmarks command. -% Dimensions to add cropmarks at corners Added by P. A. MacKay, 12 Nov. 1986 -% -\newdimen\cornerlong \newdimen\cornerthick -\newdimen \topandbottommargin -\newdimen \outerhsize \newdimen \outervsize -\cornerlong=1pc\cornerthick=.3pt % These set size of cropmarks -\outerhsize=7in -%\outervsize=9.5in -% Alternative @smallbook page size is 9.25in -\outervsize=9.25in -\topandbottommargin=.75in -% -%---------------------End change----------------------- - -% \onepageout takes a vbox as an argument. Note that \pagecontents -% does insertions itself, but you have to call it yourself. -\chardef\PAGE=255 \output={\onepageout{\pagecontents\PAGE}} -\def\onepageout#1{\hoffset=\normaloffset -\ifodd\pageno \advance\hoffset by \bindingoffset -\else \advance\hoffset by -\bindingoffset\fi -{\escapechar=`\\\relax % makes sure backslash is used in output files. -\shipout\vbox{{\let\hsize=\pagewidth \makeheadline} \pagebody{#1}% -{\let\hsize=\pagewidth \makefootline}}}% -\advancepageno \ifnum\outputpenalty>-20000 \else\dosupereject\fi} - -%%%% For @cropmarks command %%%% - -% Here is a modification of the main output routine for Near East Publications -% This provides right-angle cropmarks at all four corners. -% The contents of the page are centerlined into the cropmarks, -% and any desired binding offset is added as an \hskip on either -% site of the centerlined box. (P. A. MacKay, 12 November, 1986) -% -\def\croppageout#1{\hoffset=0pt % make sure this doesn't mess things up -{\escapechar=`\\\relax % makes sure backslash is used in output files. - \shipout - \vbox to \outervsize{\hsize=\outerhsize - \vbox{\line{\ewtop\hfill\ewtop}} - \nointerlineskip - \line{\vbox{\moveleft\cornerthick\nstop} - \hfill - \vbox{\moveright\cornerthick\nstop}} - \vskip \topandbottommargin - \centerline{\ifodd\pageno\hskip\bindingoffset\fi - \vbox{ - {\let\hsize=\pagewidth \makeheadline} - \pagebody{#1} - {\let\hsize=\pagewidth \makefootline}} - \ifodd\pageno\else\hskip\bindingoffset\fi} - \vskip \topandbottommargin plus1fill minus1fill - \boxmaxdepth\cornerthick - \line{\vbox{\moveleft\cornerthick\nsbot} - \hfill - \vbox{\moveright\cornerthick\nsbot}} - \nointerlineskip - \vbox{\line{\ewbot\hfill\ewbot}} - }} - \advancepageno - \ifnum\outputpenalty>-20000 \else\dosupereject\fi} -% -% Do @cropmarks to get crop marks -\def\cropmarks{\let\onepageout=\croppageout } - -\newinsert\margin \dimen\margin=\maxdimen - -\def\pagebody#1{\vbox to\pageheight{\boxmaxdepth=\maxdepth #1}} -{\catcode`\@ =11 -\gdef\pagecontents#1{\ifvoid\topins\else\unvbox\topins\fi -% marginal hacks, juha@viisa.uucp (Juha Takala) -\ifvoid\margin\else % marginal info is present - \rlap{\kern\hsize\vbox to\z@{\kern1pt\box\margin \vss}}\fi -\dimen@=\dp#1 \unvbox#1 -\ifvoid\footins\else\vskip\skip\footins\footnoterule \unvbox\footins\fi -\ifr@ggedbottom \kern-\dimen@ \vfil \fi} -} - -% -% Here are the rules for the cropmarks. Note that they are -% offset so that the space between them is truly \outerhsize or \outervsize -% (P. A. MacKay, 12 November, 1986) -% -\def\ewtop{\vrule height\cornerthick depth0pt width\cornerlong} -\def\nstop{\vbox - {\hrule height\cornerthick depth\cornerlong width\cornerthick}} -\def\ewbot{\vrule height0pt depth\cornerthick width\cornerlong} -\def\nsbot{\vbox - {\hrule height\cornerlong depth\cornerthick width\cornerthick}} - -% Parse an argument, then pass it to #1. The argument is the rest of -% the input line (except we remove a trailing comment). #1 should be a -% macro which expects an ordinary undelimited TeX argument. -% -\def\parsearg#1{% - \let\next = #1% - \begingroup - \obeylines - \futurelet\temp\parseargx -} - -% If the next token is an obeyed space (from an @example environment or -% the like), remove it and recurse. Otherwise, we're done. -\def\parseargx{% - % \obeyedspace is defined far below, after the definition of \sepspaces. - \ifx\obeyedspace\temp - \expandafter\parseargdiscardspace - \else - \expandafter\parseargline - \fi -} - -% Remove a single space (as the delimiter token to the macro call). -{\obeyspaces % - \gdef\parseargdiscardspace {\futurelet\temp\parseargx}} - -{\obeylines % - \gdef\parseargline#1^^M{% - \endgroup % End of the group started in \parsearg. - % - % First remove any @c comment, then any @comment. - % Result of each macro is put in \toks0. - \argremovec #1\c\relax % - \expandafter\argremovecomment \the\toks0 \comment\relax % - % - % Call the caller's macro, saved as \next in \parsearg. - \expandafter\next\expandafter{\the\toks0}% - }% -} - -% Since all \c{,omment} does is throw away the argument, we can let TeX -% do that for us. The \relax here is matched by the \relax in the call -% in \parseargline; it could be more or less anything, its purpose is -% just to delimit the argument to the \c. -\def\argremovec#1\c#2\relax{\toks0 = {#1}} -\def\argremovecomment#1\comment#2\relax{\toks0 = {#1}} - -% \argremovec{,omment} might leave us with trailing spaces, though; e.g., -% @end itemize @c foo -% will have two active spaces as part of the argument with the -% `itemize'. Here we remove all active spaces from #1, and assign the -% result to \toks0. -% -% This loses if there are any *other* active characters besides spaces -% in the argument -- _ ^ +, for example -- since they get expanded. -% Fortunately, Texinfo does not define any such commands. (If it ever -% does, the catcode of the characters in questionwill have to be changed -% here.) But this means we cannot call \removeactivespaces as part of -% \argremovec{,omment}, since @c uses \parsearg, and thus the argument -% that \parsearg gets might well have any character at all in it. -% -\def\removeactivespaces#1{% - \begingroup - \ignoreactivespaces - \edef\temp{#1}% - \global\toks0 = \expandafter{\temp}% - \endgroup -} - -% Change the active space to expand to nothing. -% -\begingroup - \obeyspaces - \gdef\ignoreactivespaces{\obeyspaces\let =\empty} -\endgroup - - -\def\flushcr{\ifx\par\lisppar \def\next##1{}\else \let\next=\relax \fi \next} - -%% These are used to keep @begin/@end levels from running away -%% Call \inENV within environments (after a \begingroup) -\newif\ifENV \ENVfalse \def\inENV{\ifENV\relax\else\ENVtrue\fi} -\def\ENVcheck{% -\ifENV\errmessage{Still within an environment. Type Return to continue.} -\endgroup\fi} % This is not perfect, but it should reduce lossage - -% @begin foo is the same as @foo, for now. -\newhelp\EMsimple{Type to continue.} - -\outer\def\begin{\parsearg\beginxxx} - -\def\beginxxx #1{% -\expandafter\ifx\csname #1\endcsname\relax -{\errhelp=\EMsimple \errmessage{Undefined command @begin #1}}\else -\csname #1\endcsname\fi} - -% @end foo executes the definition of \Efoo. -% -\def\end{\parsearg\endxxx} -\def\endxxx #1{% - \removeactivespaces{#1}% - \edef\endthing{\the\toks0}% - % - \expandafter\ifx\csname E\endthing\endcsname\relax - \expandafter\ifx\csname \endthing\endcsname\relax - % There's no \foo, i.e., no ``environment'' foo. - \errhelp = \EMsimple - \errmessage{Undefined command `@end \endthing'}% - \else - \unmatchedenderror\endthing - \fi - \else - % Everything's ok; the right environment has been started. - \csname E\endthing\endcsname - \fi -} - -% There is an environment #1, but it hasn't been started. Give an error. -% -\def\unmatchedenderror#1{% - \errhelp = \EMsimple - \errmessage{This `@end #1' doesn't have a matching `@#1'}% -} - -% Define the control sequence \E#1 to give an unmatched @end error. -% -\def\defineunmatchedend#1{% - \expandafter\def\csname E#1\endcsname{\unmatchedenderror{#1}}% -} - - -% Single-spacing is done by various environments (specifically, in -% \nonfillstart and \quotations). -\newskip\singlespaceskip \singlespaceskip = 12.5pt -\def\singlespace{% - % Why was this kern here? It messes up equalizing space above and below - % environments. --karl, 6may93 - %{\advance \baselineskip by -\singlespaceskip - %\kern \baselineskip}% - \setleading \singlespaceskip -} - -%% Simple single-character @ commands - -% @@ prints an @ -% Kludge this until the fonts are right (grr). -\def\@{{\tt \char '100}} - -% This is turned off because it was never documented -% and you can use @w{...} around a quote to suppress ligatures. -%% Define @` and @' to be the same as ` and ' -%% but suppressing ligatures. -%\def\`{{`}} -%\def\'{{'}} - -% Used to generate quoted braces. - -\def\mylbrace {{\tt \char '173}} -\def\myrbrace {{\tt \char '175}} -\let\{=\mylbrace -\let\}=\myrbrace - -% @: forces normal size whitespace following. -\def\:{\spacefactor=1000 } - -% @* forces a line break. -\def\*{\hfil\break\hbox{}\ignorespaces} - -% @. is an end-of-sentence period. -\def\.{.\spacefactor=3000 } - -% @enddots{} is an end-of-sentence ellipsis. -\gdef\enddots{$\mathinner{\ldotp\ldotp\ldotp\ldotp}$\spacefactor=3000} - -% @! is an end-of-sentence bang. -\gdef\!{!\spacefactor=3000 } - -% @? is an end-of-sentence query. -\gdef\?{?\spacefactor=3000 } - -% @w prevents a word break. Without the \leavevmode, @w at the -% beginning of a paragraph, when TeX is still in vertical mode, would -% produce a whole line of output instead of starting the paragraph. -\def\w#1{\leavevmode\hbox{#1}} - -% @group ... @end group forces ... to be all on one page, by enclosing -% it in a TeX vbox. We use \vtop instead of \vbox to construct the box -% to keep its height that of a normal line. According to the rules for -% \topskip (p.114 of the TeXbook), the glue inserted is -% max (\topskip - \ht (first item), 0). If that height is large, -% therefore, no glue is inserted, and the space between the headline and -% the text is small, which looks bad. -% -\def\group{\begingroup - \ifnum\catcode13=\active \else - \errhelp = \groupinvalidhelp - \errmessage{@group invalid in context where filling is enabled}% - \fi - % - % The \vtop we start below produces a box with normal height and large - % depth; thus, TeX puts \baselineskip glue before it, and (when the - % next line of text is done) \lineskip glue after it. (See p.82 of - % the TeXbook.) Thus, space below is not quite equal to space - % above. But it's pretty close. - \def\Egroup{% - \egroup % End the \vtop. - \endgroup % End the \group. - }% - % - \vtop\bgroup - % We have to put a strut on the last line in case the @group is in - % the midst of an example, rather than completely enclosing it. - % Otherwise, the interline space between the last line of the group - % and the first line afterwards is too small. But we can't put the - % strut in \Egroup, since there it would be on a line by itself. - % Hence this just inserts a strut at the beginning of each line. - \everypar = {\strut}% - % - % Since we have a strut on every line, we don't need any of TeX's - % normal interline spacing. - \offinterlineskip - % - % OK, but now we have to do something about blank - % lines in the input in @example-like environments, which normally - % just turn into \lisppar, which will insert no space now that we've - % turned off the interline space. Simplest is to make them be an - % empty paragraph. - \ifx\par\lisppar - \edef\par{\leavevmode \par}% - % - % Reset ^^M's definition to new definition of \par. - \obeylines - \fi - % - % Do @comment since we are called inside an environment such as - % @example, where each end-of-line in the input causes an - % end-of-line in the output. We don't want the end-of-line after - % the `@group' to put extra space in the output. Since @group - % should appear on a line by itself (according to the Texinfo - % manual), we don't worry about eating any user text. - \comment -} -% -% TeX puts in an \escapechar (i.e., `@') at the beginning of the help -% message, so this ends up printing `@group can only ...'. -% -\newhelp\groupinvalidhelp{% -group can only be used in environments such as @example,^^J% -where each line of input produces a line of output.} - -% @need space-in-mils -% forces a page break if there is not space-in-mils remaining. - -\newdimen\mil \mil=0.001in - -\def\need{\parsearg\needx} - -% Old definition--didn't work. -%\def\needx #1{\par % -%% This method tries to make TeX break the page naturally -%% if the depth of the box does not fit. -%{\baselineskip=0pt% -%\vtop to #1\mil{\vfil}\kern -#1\mil\penalty 10000 -%\prevdepth=-1000pt -%}} - -\def\needx#1{% - % Go into vertical mode, so we don't make a big box in the middle of a - % paragraph. - \par - % - % Don't add any leading before our big empty box, but allow a page - % break, since the best break might be right here. - \allowbreak - \nointerlineskip - \vtop to #1\mil{\vfil}% - % - % TeX does not even consider page breaks if a penalty added to the - % main vertical list is 10000 or more. But in order to see if the - % empty box we just added fits on the page, we must make it consider - % page breaks. On the other hand, we don't want to actually break the - % page after the empty box. So we use a penalty of 9999. - % - % There is an extremely small chance that TeX will actually break the - % page at this \penalty, if there are no other feasible breakpoints in - % sight. (If the user is using lots of big @group commands, which - % almost-but-not-quite fill up a page, TeX will have a hard time doing - % good page breaking, for example.) However, I could not construct an - % example where a page broke at this \penalty; if it happens in a real - % document, then we can reconsider our strategy. - \penalty9999 - % - % Back up by the size of the box, whether we did a page break or not. - \kern -#1\mil - % - % Do not allow a page break right after this kern. - \nobreak -} - -% @br forces paragraph break - -\let\br = \par - -% @dots{} output some dots - -\def\dots{$\ldots$} - -% @page forces the start of a new page - -\def\page{\par\vfill\supereject} - -% @exdent text.... -% outputs text on separate line in roman font, starting at standard page margin - -% This records the amount of indent in the innermost environment. -% That's how much \exdent should take out. -\newskip\exdentamount - -% This defn is used inside fill environments such as @defun. -\def\exdent{\parsearg\exdentyyy} -\def\exdentyyy #1{{\hfil\break\hbox{\kern -\exdentamount{\rm#1}}\hfil\break}} - -% This defn is used inside nofill environments such as @example. -\def\nofillexdent{\parsearg\nofillexdentyyy} -\def\nofillexdentyyy #1{{\advance \leftskip by -\exdentamount -\leftline{\hskip\leftskip{\rm#1}}}} - -%\hbox{{\rm#1}}\hfil\break}} - -% @include file insert text of that file as input. - -\def\include{\parsearg\includezzz} -%Use \input\thisfile to avoid blank after \input, which may be an active -%char (in which case the blank would become the \input argument). -%The grouping keeps the value of \thisfile correct even when @include -%is nested. -\def\includezzz #1{\begingroup -\def\thisfile{#1}\input\thisfile -\endgroup} - -\def\thisfile{} - -% @center line outputs that line, centered - -\def\center{\parsearg\centerzzz} -\def\centerzzz #1{{\advance\hsize by -\leftskip -\advance\hsize by -\rightskip -\centerline{#1}}} - -% @sp n outputs n lines of vertical space - -\def\sp{\parsearg\spxxx} -\def\spxxx #1{\par \vskip #1\baselineskip} - -% @comment ...line which is ignored... -% @c is the same as @comment -% @ignore ... @end ignore is another way to write a comment - -\def\comment{\catcode 64=\other \catcode 123=\other \catcode 125=\other% -\parsearg \commentxxx} - -\def\commentxxx #1{\catcode 64=0 \catcode 123=1 \catcode 125=2 } - -\let\c=\comment - -% Prevent errors for section commands. -% Used in @ignore and in failing conditionals. -\def\ignoresections{% -\let\chapter=\relax -\let\unnumbered=\relax -\let\top=\relax -\let\unnumberedsec=\relax -\let\unnumberedsection=\relax -\let\unnumberedsubsec=\relax -\let\unnumberedsubsection=\relax -\let\unnumberedsubsubsec=\relax -\let\unnumberedsubsubsection=\relax -\let\section=\relax -\let\subsec=\relax -\let\subsubsec=\relax -\let\subsection=\relax -\let\subsubsection=\relax -\let\appendix=\relax -\let\appendixsec=\relax -\let\appendixsection=\relax -\let\appendixsubsec=\relax -\let\appendixsubsection=\relax -\let\appendixsubsubsec=\relax -\let\appendixsubsubsection=\relax -\let\contents=\relax -\let\smallbook=\relax -\let\titlepage=\relax -} - -% Used in nested conditionals, where we have to parse the Texinfo source -% and so want to turn off most commands, in case they are used -% incorrectly. -% -\def\ignoremorecommands{% - \let\defcv = \relax - \let\deffn = \relax - \let\deffnx = \relax - \let\defindex = \relax - \let\defivar = \relax - \let\defmac = \relax - \let\defmethod = \relax - \let\defop = \relax - \let\defopt = \relax - \let\defspec = \relax - \let\deftp = \relax - \let\deftypefn = \relax - \let\deftypefun = \relax - \let\deftypevar = \relax - \let\deftypevr = \relax - \let\defun = \relax - \let\defvar = \relax - \let\defvr = \relax - \let\ref = \relax - \let\xref = \relax - \let\printindex = \relax - \let\pxref = \relax - \let\settitle = \relax - \let\include = \relax - \let\lowersections = \relax - \let\down = \relax - \let\raisesections = \relax - \let\up = \relax - \let\set = \relax - \let\clear = \relax - \let\item = \relax - \let\message = \relax -} - -% Ignore @ignore ... @end ignore. -% -\def\ignore{\doignore{ignore}} - -% Also ignore @ifinfo, @ifhtml, @html, @menu, and @direntry text. -% -\def\ifinfo{\doignore{ifinfo}} -\def\ifhtml{\doignore{ifhtml}} -\def\html{\doignore{html}} -\def\menu{\doignore{menu}} -\def\direntry{\doignore{direntry}} - -% Ignore text until a line `@end #1'. -% -\def\doignore#1{\begingroup - % Don't complain about control sequences we have declared \outer. - \ignoresections - % - % Define a command to swallow text until we reach `@end #1'. - \long\def\doignoretext##1\end #1{\enddoignore}% - % - % Make sure that spaces turn into tokens that match what \doignoretext wants. - \catcode32 = 10 - % - % And now expand that command. - \doignoretext -} - -% What we do to finish off ignored text. -% -\def\enddoignore{\endgroup\ignorespaces}% - -\newif\ifwarnedobs\warnedobsfalse -\def\obstexwarn{% - \ifwarnedobs\relax\else - % We need to warn folks that they may have trouble with TeX 3.0. - % This uses \immediate\write16 rather than \message to get newlines. - \immediate\write16{} - \immediate\write16{***WARNING*** for users of Unix TeX 3.0!} - \immediate\write16{This manual trips a bug in TeX version 3.0 (tex hangs).} - \immediate\write16{If you are running another version of TeX, relax.} - \immediate\write16{If you are running Unix TeX 3.0, kill this TeX process.} - \immediate\write16{ Then upgrade your TeX installation if you can.} - \immediate\write16{If you are stuck with version 3.0, run the} - \immediate\write16{ script ``tex3patch'' from the Texinfo distribution} - \immediate\write16{ to use a workaround.} - \immediate\write16{} - \warnedobstrue - \fi -} - -% **In TeX 3.0, setting text in \nullfont hangs tex. For a -% workaround (which requires the file ``dummy.tfm'' to be installed), -% uncomment the following line: -%%%%%\font\nullfont=dummy\let\obstexwarn=\relax - -% Ignore text, except that we keep track of conditional commands for -% purposes of nesting, up to an `@end #1' command. -% -\def\nestedignore#1{% - \obstexwarn - % We must actually expand the ignored text to look for the @end - % command, so that nested ignore constructs work. Thus, we put the - % text into a \vbox and then do nothing with the result. To minimize - % the change of memory overflow, we follow the approach outlined on - % page 401 of the TeXbook: make the current font be a dummy font. - % - \setbox0 = \vbox\bgroup - % Don't complain about control sequences we have declared \outer. - \ignoresections - % - % Define `@end #1' to end the box, which will in turn undefine the - % @end command again. - \expandafter\def\csname E#1\endcsname{\egroup\ignorespaces}% - % - % We are going to be parsing Texinfo commands. Most cause no - % trouble when they are used incorrectly, but some commands do - % complicated argument parsing or otherwise get confused, so we - % undefine them. - % - % We can't do anything about stray @-signs, unfortunately; - % they'll produce `undefined control sequence' errors. - \ignoremorecommands - % - % Set the current font to be \nullfont, a TeX primitive, and define - % all the font commands to also use \nullfont. We don't use - % dummy.tfm, as suggested in the TeXbook, because not all sites - % might have that installed. Therefore, math mode will still - % produce output, but that should be an extremely small amount of - % stuff compared to the main input. - % - \nullfont - \let\tenrm = \nullfont \let\tenit = \nullfont \let\tensl = \nullfont - \let\tenbf = \nullfont \let\tentt = \nullfont \let\smallcaps = \nullfont - \let\tensf = \nullfont - % Similarly for index fonts (mostly for their use in - % smallexample) - \let\indrm = \nullfont \let\indit = \nullfont \let\indsl = \nullfont - \let\indbf = \nullfont \let\indtt = \nullfont \let\indsc = \nullfont - \let\indsf = \nullfont - % - % Don't complain when characters are missing from the fonts. - \tracinglostchars = 0 - % - % Don't bother to do space factor calculations. - \frenchspacing - % - % Don't report underfull hboxes. - \hbadness = 10000 - % - % Do minimal line-breaking. - \pretolerance = 10000 - % - % Do not execute instructions in @tex - \def\tex{\doignore{tex}} -} - -% @set VAR sets the variable VAR to an empty value. -% @set VAR REST-OF-LINE sets VAR to the value REST-OF-LINE. -% -% Since we want to separate VAR from REST-OF-LINE (which might be -% empty), we can't just use \parsearg; we have to insert a space of our -% own to delimit the rest of the line, and then take it out again if we -% didn't need it. -% -\def\set{\parsearg\setxxx} -\def\setxxx#1{\setyyy#1 \endsetyyy} -\def\setyyy#1 #2\endsetyyy{% - \def\temp{#2}% - \ifx\temp\empty \global\expandafter\let\csname SET#1\endcsname = \empty - \else \setzzz{#1}#2\endsetzzz % Remove the trailing space \setxxx inserted. - \fi -} -% Can't use \xdef to pre-expand #2 and save some time, since \temp or -% \next or other control sequences that we've defined might get us into -% an infinite loop. Consider `@set foo @cite{bar}'. -\def\setzzz#1#2 \endsetzzz{\expandafter\gdef\csname SET#1\endcsname{#2}} - -% @clear VAR clears (i.e., unsets) the variable VAR. -% -\def\clear{\parsearg\clearxxx} -\def\clearxxx#1{\global\expandafter\let\csname SET#1\endcsname=\relax} - -% @value{foo} gets the text saved in variable foo. -% -\def\value#1{\expandafter - \ifx\csname SET#1\endcsname\relax - {\{No value for ``#1''\}} - \else \csname SET#1\endcsname \fi} - -% @ifset VAR ... @end ifset reads the `...' iff VAR has been defined -% with @set. -% -\def\ifset{\parsearg\ifsetxxx} -\def\ifsetxxx #1{% - \expandafter\ifx\csname SET#1\endcsname\relax - \expandafter\ifsetfail - \else - \expandafter\ifsetsucceed - \fi -} -\def\ifsetsucceed{\conditionalsucceed{ifset}} -\def\ifsetfail{\nestedignore{ifset}} -\defineunmatchedend{ifset} - -% @ifclear VAR ... @end ifclear reads the `...' iff VAR has never been -% defined with @set, or has been undefined with @clear. -% -\def\ifclear{\parsearg\ifclearxxx} -\def\ifclearxxx #1{% - \expandafter\ifx\csname SET#1\endcsname\relax - \expandafter\ifclearsucceed - \else - \expandafter\ifclearfail - \fi -} -\def\ifclearsucceed{\conditionalsucceed{ifclear}} -\def\ifclearfail{\nestedignore{ifclear}} -\defineunmatchedend{ifclear} - -% @iftex always succeeds; we read the text following, through @end -% iftex). But `@end iftex' should be valid only after an @iftex. -% -\def\iftex{\conditionalsucceed{iftex}} -\defineunmatchedend{iftex} - -% We can't just want to start a group at @iftex (for example) and end it -% at @end iftex, since then @set commands inside the conditional have no -% effect (they'd get reverted at the end of the group). So we must -% define \Eiftex to redefine itself to be its previous value. (We can't -% just define it to fail again with an ``unmatched end'' error, since -% the @ifset might be nested.) -% -\def\conditionalsucceed#1{% - \edef\temp{% - % Remember the current value of \E#1. - \let\nece{prevE#1} = \nece{E#1}% - % - % At the `@end #1', redefine \E#1 to be its previous value. - \def\nece{E#1}{\let\nece{E#1} = \nece{prevE#1}}% - }% - \temp -} - -% We need to expand lots of \csname's, but we don't want to expand the -% control sequences after we've constructed them. -% -\def\nece#1{\expandafter\noexpand\csname#1\endcsname} - -% @asis just yields its argument. Used with @table, for example. -% -\def\asis#1{#1} - -% @math means output in math mode. -% We don't use $'s directly in the definition of \math because control -% sequences like \math are expanded when the toc file is written. Then, -% we read the toc file back, the $'s will be normal characters (as they -% should be, according to the definition of Texinfo). So we must use a -% control sequence to switch into and out of math mode. -% -% This isn't quite enough for @math to work properly in indices, but it -% seems unlikely it will ever be needed there. -% -\let\implicitmath = $ -\def\math#1{\implicitmath #1\implicitmath} - -% @bullet and @minus need the same treatment as @math, just above. -\def\bullet{\implicitmath\ptexbullet\implicitmath} -\def\minus{\implicitmath-\implicitmath} - -\def\node{\ENVcheck\parsearg\nodezzz} -\def\nodezzz#1{\nodexxx [#1,]} -\def\nodexxx[#1,#2]{\gdef\lastnode{#1}} -\let\nwnode=\node -\let\lastnode=\relax - -\def\donoderef{\ifx\lastnode\relax\else -\expandafter\expandafter\expandafter\setref{\lastnode}\fi -\global\let\lastnode=\relax} - -\def\unnumbnoderef{\ifx\lastnode\relax\else -\expandafter\expandafter\expandafter\unnumbsetref{\lastnode}\fi -\global\let\lastnode=\relax} - -\def\appendixnoderef{\ifx\lastnode\relax\else -\expandafter\expandafter\expandafter\appendixsetref{\lastnode}\fi -\global\let\lastnode=\relax} - -\let\refill=\relax - -% @setfilename is done at the beginning of every texinfo file. -% So open here the files we need to have open while reading the input. -% This makes it possible to make a .fmt file for texinfo. -\def\setfilename{% - \readauxfile - \opencontents - \openindices - \fixbackslash % Turn off hack to swallow `\input texinfo'. - \global\let\setfilename=\comment % Ignore extra @setfilename cmds. - \comment % Ignore the actual filename. -} - -\outer\def\bye{\pagealignmacro\tracingstats=1\ptexend} - -\def\inforef #1{\inforefzzz #1,,,,**} -\def\inforefzzz #1,#2,#3,#4**{\putwordSee{} \putwordInfo{} \putwordfile{} \file{\ignorespaces #3{}}, - node \samp{\ignorespaces#1{}}} - -\message{fonts,} - -% Font-change commands. - -% Texinfo supports the sans serif font style, which plain TeX does not. -% So we set up a \sf analogous to plain's \rm, etc. -\newfam\sffam -\def\sf{\fam=\sffam \tensf} -\let\li = \sf % Sometimes we call it \li, not \sf. - -%% Try out Computer Modern fonts at \magstephalf -\let\mainmagstep=\magstephalf - -% Set the font macro #1 to the font named #2, adding on the -% specified font prefix (normally `cm'). -\def\setfont#1#2{\font#1=\fontprefix#2} - -% Use cm as the default font prefix. -% To specify the font prefix, you must define \fontprefix -% before you read in texinfo.tex. -\ifx\fontprefix\undefined -\def\fontprefix{cm} -\fi - -\ifx\bigger\relax -\let\mainmagstep=\magstep1 -\setfont\textrm{r12} -\setfont\texttt{tt12} -\else -\setfont\textrm{r10 scaled \mainmagstep} -\setfont\texttt{tt10 scaled \mainmagstep} -\fi -% Instead of cmb10, you many want to use cmbx10. -% cmbx10 is a prettier font on its own, but cmb10 -% looks better when embedded in a line with cmr10. -\setfont\textbf{b10 scaled \mainmagstep} -\setfont\textit{ti10 scaled \mainmagstep} -\setfont\textsl{sl10 scaled \mainmagstep} -\setfont\textsf{ss10 scaled \mainmagstep} -\setfont\textsc{csc10 scaled \mainmagstep} -\font\texti=cmmi10 scaled \mainmagstep -\font\textsy=cmsy10 scaled \mainmagstep - -% A few fonts for @defun, etc. -\setfont\defbf{bx10 scaled \magstep1} %was 1314 -\setfont\deftt{tt10 scaled \magstep1} -\def\df{\let\tentt=\deftt \let\tenbf = \defbf \bf} - -% Fonts for indices and small examples. -% We actually use the slanted font rather than the italic, -% because texinfo normally uses the slanted fonts for that. -% Do not make many font distinctions in general in the index, since they -% aren't very useful. -\setfont\ninett{tt9} -\setfont\indrm{r9} -\setfont\indit{sl9} -\let\indsl=\indit -\let\indtt=\ninett -\let\indsf=\indrm -\let\indbf=\indrm -\setfont\indsc{csc10 at 9pt} -\font\indi=cmmi9 -\font\indsy=cmsy9 - -% Fonts for headings -\setfont\chaprm{bx12 scaled \magstep2} -\setfont\chapit{ti12 scaled \magstep2} -\setfont\chapsl{sl12 scaled \magstep2} -\setfont\chaptt{tt12 scaled \magstep2} -\setfont\chapsf{ss12 scaled \magstep2} -\let\chapbf=\chaprm -\setfont\chapsc{csc10 scaled\magstep3} -\font\chapi=cmmi12 scaled \magstep2 -\font\chapsy=cmsy10 scaled \magstep3 - -\setfont\secrm{bx12 scaled \magstep1} -\setfont\secit{ti12 scaled \magstep1} -\setfont\secsl{sl12 scaled \magstep1} -\setfont\sectt{tt12 scaled \magstep1} -\setfont\secsf{ss12 scaled \magstep1} -\setfont\secbf{bx12 scaled \magstep1} -\setfont\secsc{csc10 scaled\magstep2} -\font\seci=cmmi12 scaled \magstep1 -\font\secsy=cmsy10 scaled \magstep2 - -% \setfont\ssecrm{bx10 scaled \magstep1} % This size an font looked bad. -% \setfont\ssecit{cmti10 scaled \magstep1} % The letters were too crowded. -% \setfont\ssecsl{sl10 scaled \magstep1} -% \setfont\ssectt{tt10 scaled \magstep1} -% \setfont\ssecsf{ss10 scaled \magstep1} - -%\setfont\ssecrm{b10 scaled 1315} % Note the use of cmb rather than cmbx. -%\setfont\ssecit{ti10 scaled 1315} % Also, the size is a little larger than -%\setfont\ssecsl{sl10 scaled 1315} % being scaled magstep1. -%\setfont\ssectt{tt10 scaled 1315} -%\setfont\ssecsf{ss10 scaled 1315} - -%\let\ssecbf=\ssecrm - -\setfont\ssecrm{bx12 scaled \magstephalf} -\setfont\ssecit{ti12 scaled \magstephalf} -\setfont\ssecsl{sl12 scaled \magstephalf} -\setfont\ssectt{tt12 scaled \magstephalf} -\setfont\ssecsf{ss12 scaled \magstephalf} -\setfont\ssecbf{bx12 scaled \magstephalf} -\setfont\ssecsc{csc10 scaled \magstep1} -\font\sseci=cmmi12 scaled \magstephalf -\font\ssecsy=cmsy10 scaled \magstep1 -% The smallcaps and symbol fonts should actually be scaled \magstep1.5, -% but that is not a standard magnification. - -% Fonts for title page: -\setfont\titlerm{bx12 scaled \magstep3} -\let\authorrm = \secrm - -% In order for the font changes to affect most math symbols and letters, -% we have to define the \textfont of the standard families. Since -% texinfo doesn't allow for producing subscripts and superscripts, we -% don't bother to reset \scriptfont and \scriptscriptfont (which would -% also require loading a lot more fonts). -% -\def\resetmathfonts{% - \textfont0 = \tenrm \textfont1 = \teni \textfont2 = \tensy - \textfont\itfam = \tenit \textfont\slfam = \tensl \textfont\bffam = \tenbf - \textfont\ttfam = \tentt \textfont\sffam = \tensf -} - - -% The font-changing commands redefine the meanings of \tenSTYLE, instead -% of just \STYLE. We do this so that font changes will continue to work -% in math mode, where it is the current \fam that is relevant in most -% cases, not the current. Plain TeX does, for example, -% \def\bf{\fam=\bffam \tenbf} By redefining \tenbf, we obviate the need -% to redefine \bf itself. -\def\textfonts{% - \let\tenrm=\textrm \let\tenit=\textit \let\tensl=\textsl - \let\tenbf=\textbf \let\tentt=\texttt \let\smallcaps=\textsc - \let\tensf=\textsf \let\teni=\texti \let\tensy=\textsy - \resetmathfonts} -\def\chapfonts{% - \let\tenrm=\chaprm \let\tenit=\chapit \let\tensl=\chapsl - \let\tenbf=\chapbf \let\tentt=\chaptt \let\smallcaps=\chapsc - \let\tensf=\chapsf \let\teni=\chapi \let\tensy=\chapsy - \resetmathfonts} -\def\secfonts{% - \let\tenrm=\secrm \let\tenit=\secit \let\tensl=\secsl - \let\tenbf=\secbf \let\tentt=\sectt \let\smallcaps=\secsc - \let\tensf=\secsf \let\teni=\seci \let\tensy=\secsy - \resetmathfonts} -\def\subsecfonts{% - \let\tenrm=\ssecrm \let\tenit=\ssecit \let\tensl=\ssecsl - \let\tenbf=\ssecbf \let\tentt=\ssectt \let\smallcaps=\ssecsc - \let\tensf=\ssecsf \let\teni=\sseci \let\tensy=\ssecsy - \resetmathfonts} -\def\indexfonts{% - \let\tenrm=\indrm \let\tenit=\indit \let\tensl=\indsl - \let\tenbf=\indbf \let\tentt=\indtt \let\smallcaps=\indsc - \let\tensf=\indsf \let\teni=\indi \let\tensy=\indsy - \resetmathfonts} - -% Set up the default fonts, so we can use them for creating boxes. -% -\textfonts - -% Count depth in font-changes, for error checks -\newcount\fontdepth \fontdepth=0 - -% Fonts for short table of contents. -\setfont\shortcontrm{r12} -\setfont\shortcontbf{bx12} -\setfont\shortcontsl{sl12} - -%% Add scribe-like font environments, plus @l for inline lisp (usually sans -%% serif) and @ii for TeX italic - -% \smartitalic{ARG} outputs arg in italics, followed by an italic correction -% unless the following character is such as not to need one. -\def\smartitalicx{\ifx\next,\else\ifx\next-\else\ifx\next.\else\/\fi\fi\fi} -\def\smartitalic#1{{\sl #1}\futurelet\next\smartitalicx} - -\let\i=\smartitalic -\let\var=\smartitalic -\let\dfn=\smartitalic -\let\emph=\smartitalic -\let\cite=\smartitalic - -\def\b#1{{\bf #1}} -\let\strong=\b - -% We can't just use \exhyphenpenalty, because that only has effect at -% the end of a paragraph. Restore normal hyphenation at the end of the -% group within which \nohyphenation is presumably called. -% -\def\nohyphenation{\hyphenchar\font = -1 \aftergroup\restorehyphenation} -\def\restorehyphenation{\hyphenchar\font = `- } - -\def\t#1{% - {\tt \rawbackslash \frenchspacing #1}% - \null -} -\let\ttfont=\t -\def\samp #1{`\tclose{#1}'\null} -\def\key #1{{\tt \nohyphenation \uppercase{#1}}\null} -\def\ctrl #1{{\tt \rawbackslash \hat}#1} - -\let\file=\samp - -% @code is a modification of @t, -% which makes spaces the same size as normal in the surrounding text. -\def\tclose#1{% - {% - % Change normal interword space to be same as for the current font. - \spaceskip = \fontdimen2\font - % - % Switch to typewriter. - \tt - % - % But `\ ' produces the large typewriter interword space. - \def\ {{\spaceskip = 0pt{} }}% - % - % Turn off hyphenation. - \nohyphenation - % - \rawbackslash - \frenchspacing - #1% - }% - \null -} - -% We *must* turn on hyphenation at `-' and `_' in \code. -% Otherwise, it is too hard to avoid overful hboxes -% in the Emacs manual, the Library manual, etc. - -% Unfortunately, TeX uses one parameter (\hyphenchar) to control -% both hyphenation at - and hyphenation within words. -% We must therefore turn them both off (\tclose does that) -% and arrange explicitly to hyphenate an a dash. -% -- rms. -{ -\catcode`\-=\active -\catcode`\_=\active -\global\def\code{\begingroup \catcode`\-=\active \let-\codedash \catcode`\_=\active \let_\codeunder \codex} -% The following is used by \doprintindex to insure that long function names -% wrap around. It is necessary for - and _ to be active before the index is -% read from the file, as \entry parses the arguments long before \code is -% ever called. -- mycroft -\global\def\indexbreaks{\catcode`\-=\active \let-\realdash \catcode`\_=\active \let_\realunder} -} - -\def\realdash{-} -\def\realunder{_} -\def\codedash{-\discretionary{}{}{}} -\def\codeunder{\normalunderscore\discretionary{}{}{}} -\def\codex #1{\tclose{#1}\endgroup} - -%\let\exp=\tclose %Was temporary - -% @kbd is like @code, except that if the argument is just one @key command, -% then @kbd has no effect. - -\def\xkey{\key} -\def\kbdfoo#1#2#3\par{\def\one{#1}\def\three{#3}\def\threex{??}% -\ifx\one\xkey\ifx\threex\three \key{#2}% -\else\tclose{\look}\fi -\else\tclose{\look}\fi} - -% Typeset a dimension, e.g., `in' or `pt'. The only reason for the -% argument is to make the input look right: @dmn{pt} instead of -% @dmn{}pt. -% -\def\dmn#1{\thinspace #1} - -\def\kbd#1{\def\look{#1}\expandafter\kbdfoo\look??\par} - -\def\l#1{{\li #1}\null} % - -\def\r#1{{\rm #1}} % roman font -% Use of \lowercase was suggested. -\def\sc#1{{\smallcaps#1}} % smallcaps font -\def\ii#1{{\it #1}} % italic font - -\message{page headings,} - -\newskip\titlepagetopglue \titlepagetopglue = 1.5in -\newskip\titlepagebottomglue \titlepagebottomglue = 2pc - -% First the title page. Must do @settitle before @titlepage. -\def\titlefont#1{{\titlerm #1}} - -\newif\ifseenauthor -\newif\iffinishedtitlepage - -\def\shorttitlepage{\parsearg\shorttitlepagezzz} -\def\shorttitlepagezzz #1{\begingroup\hbox{}\vskip 1.5in \chaprm \centerline{#1}% - \endgroup\page\hbox{}\page} - -\def\titlepage{\begingroup \parindent=0pt \textfonts - \let\subtitlerm=\tenrm -% I deinstalled the following change because \cmr12 is undefined. -% This change was not in the ChangeLog anyway. --rms. -% \let\subtitlerm=\cmr12 - \def\subtitlefont{\subtitlerm \normalbaselineskip = 13pt \normalbaselines}% - % - \def\authorfont{\authorrm \normalbaselineskip = 16pt \normalbaselines}% - % - % Leave some space at the very top of the page. - \vglue\titlepagetopglue - % - % Now you can print the title using @title. - \def\title{\parsearg\titlezzz}% - \def\titlezzz##1{\leftline{\titlefont{##1}} - % print a rule at the page bottom also. - \finishedtitlepagefalse - \vskip4pt \hrule height 4pt width \hsize \vskip4pt}% - % No rule at page bottom unless we print one at the top with @title. - \finishedtitlepagetrue - % - % Now you can put text using @subtitle. - \def\subtitle{\parsearg\subtitlezzz}% - \def\subtitlezzz##1{{\subtitlefont \rightline{##1}}}% - % - % @author should come last, but may come many times. - \def\author{\parsearg\authorzzz}% - \def\authorzzz##1{\ifseenauthor\else\vskip 0pt plus 1filll\seenauthortrue\fi - {\authorfont \leftline{##1}}}% - % - % Most title ``pages'' are actually two pages long, with space - % at the top of the second. We don't want the ragged left on the second. - \let\oldpage = \page - \def\page{% - \iffinishedtitlepage\else - \finishtitlepage - \fi - \oldpage - \let\page = \oldpage - \hbox{}}% -% \def\page{\oldpage \hbox{}} -} - -\def\Etitlepage{% - \iffinishedtitlepage\else - \finishtitlepage - \fi - % It is important to do the page break before ending the group, - % because the headline and footline are only empty inside the group. - % If we use the new definition of \page, we always get a blank page - % after the title page, which we certainly don't want. - \oldpage - \endgroup - \HEADINGSon -} - -\def\finishtitlepage{% - \vskip4pt \hrule height 2pt width \hsize - \vskip\titlepagebottomglue - \finishedtitlepagetrue -} - -%%% Set up page headings and footings. - -\let\thispage=\folio - -\newtoks \evenheadline % Token sequence for heading line of even pages -\newtoks \oddheadline % Token sequence for heading line of odd pages -\newtoks \evenfootline % Token sequence for footing line of even pages -\newtoks \oddfootline % Token sequence for footing line of odd pages - -% Now make Tex use those variables -\headline={{\textfonts\rm \ifodd\pageno \the\oddheadline - \else \the\evenheadline \fi}} -\footline={{\textfonts\rm \ifodd\pageno \the\oddfootline - \else \the\evenfootline \fi}\HEADINGShook} -\let\HEADINGShook=\relax - -% Commands to set those variables. -% For example, this is what @headings on does -% @evenheading @thistitle|@thispage|@thischapter -% @oddheading @thischapter|@thispage|@thistitle -% @evenfooting @thisfile|| -% @oddfooting ||@thisfile - -\def\evenheading{\parsearg\evenheadingxxx} -\def\oddheading{\parsearg\oddheadingxxx} -\def\everyheading{\parsearg\everyheadingxxx} - -\def\evenfooting{\parsearg\evenfootingxxx} -\def\oddfooting{\parsearg\oddfootingxxx} -\def\everyfooting{\parsearg\everyfootingxxx} - -{\catcode`\@=0 % - -\gdef\evenheadingxxx #1{\evenheadingyyy #1@|@|@|@|\finish} -\gdef\evenheadingyyy #1@|#2@|#3@|#4\finish{% -\global\evenheadline={\rlap{\centerline{#2}}\line{#1\hfil#3}}} - -\gdef\oddheadingxxx #1{\oddheadingyyy #1@|@|@|@|\finish} -\gdef\oddheadingyyy #1@|#2@|#3@|#4\finish{% -\global\oddheadline={\rlap{\centerline{#2}}\line{#1\hfil#3}}} - -\gdef\everyheadingxxx #1{\everyheadingyyy #1@|@|@|@|\finish} -\gdef\everyheadingyyy #1@|#2@|#3@|#4\finish{% -\global\evenheadline={\rlap{\centerline{#2}}\line{#1\hfil#3}} -\global\oddheadline={\rlap{\centerline{#2}}\line{#1\hfil#3}}} - -\gdef\evenfootingxxx #1{\evenfootingyyy #1@|@|@|@|\finish} -\gdef\evenfootingyyy #1@|#2@|#3@|#4\finish{% -\global\evenfootline={\rlap{\centerline{#2}}\line{#1\hfil#3}}} - -\gdef\oddfootingxxx #1{\oddfootingyyy #1@|@|@|@|\finish} -\gdef\oddfootingyyy #1@|#2@|#3@|#4\finish{% -\global\oddfootline={\rlap{\centerline{#2}}\line{#1\hfil#3}}} - -\gdef\everyfootingxxx #1{\everyfootingyyy #1@|@|@|@|\finish} -\gdef\everyfootingyyy #1@|#2@|#3@|#4\finish{% -\global\evenfootline={\rlap{\centerline{#2}}\line{#1\hfil#3}} -\global\oddfootline={\rlap{\centerline{#2}}\line{#1\hfil#3}}} -% -}% unbind the catcode of @. - -% @headings double turns headings on for double-sided printing. -% @headings single turns headings on for single-sided printing. -% @headings off turns them off. -% @headings on same as @headings double, retained for compatibility. -% @headings after turns on double-sided headings after this page. -% @headings doubleafter turns on double-sided headings after this page. -% @headings singleafter turns on single-sided headings after this page. -% By default, they are off. - -\def\headings #1 {\csname HEADINGS#1\endcsname} - -\def\HEADINGSoff{ -\global\evenheadline={\hfil} \global\evenfootline={\hfil} -\global\oddheadline={\hfil} \global\oddfootline={\hfil}} -\HEADINGSoff -% When we turn headings on, set the page number to 1. -% For double-sided printing, put current file name in lower left corner, -% chapter name on inside top of right hand pages, document -% title on inside top of left hand pages, and page numbers on outside top -% edge of all pages. -\def\HEADINGSdouble{ -%\pagealignmacro -\global\pageno=1 -\global\evenfootline={\hfil} -\global\oddfootline={\hfil} -\global\evenheadline={\line{\folio\hfil\thistitle}} -\global\oddheadline={\line{\thischapter\hfil\folio}} -} -% For single-sided printing, chapter title goes across top left of page, -% page number on top right. -\def\HEADINGSsingle{ -%\pagealignmacro -\global\pageno=1 -\global\evenfootline={\hfil} -\global\oddfootline={\hfil} -\global\evenheadline={\line{\thischapter\hfil\folio}} -\global\oddheadline={\line{\thischapter\hfil\folio}} -} -\def\HEADINGSon{\HEADINGSdouble} - -\def\HEADINGSafter{\let\HEADINGShook=\HEADINGSdoublex} -\let\HEADINGSdoubleafter=\HEADINGSafter -\def\HEADINGSdoublex{% -\global\evenfootline={\hfil} -\global\oddfootline={\hfil} -\global\evenheadline={\line{\folio\hfil\thistitle}} -\global\oddheadline={\line{\thischapter\hfil\folio}} -} - -\def\HEADINGSsingleafter{\let\HEADINGShook=\HEADINGSsinglex} -\def\HEADINGSsinglex{% -\global\evenfootline={\hfil} -\global\oddfootline={\hfil} -\global\evenheadline={\line{\thischapter\hfil\folio}} -\global\oddheadline={\line{\thischapter\hfil\folio}} -} - -% Subroutines used in generating headings -% Produces Day Month Year style of output. -\def\today{\number\day\space -\ifcase\month\or -January\or February\or March\or April\or May\or June\or -July\or August\or September\or October\or November\or December\fi -\space\number\year} - -% Use this if you want the Month Day, Year style of output. -%\def\today{\ifcase\month\or -%January\or February\or March\or April\or May\or June\or -%July\or August\or September\or October\or November\or December\fi -%\space\number\day, \number\year} - -% @settitle line... specifies the title of the document, for headings -% It generates no output of its own - -\def\thistitle{No Title} -\def\settitle{\parsearg\settitlezzz} -\def\settitlezzz #1{\gdef\thistitle{#1}} - -\message{tables,} - -% @tabs -- simple alignment - -% These don't work. For one thing, \+ is defined as outer. -% So these macros cannot even be defined. - -%\def\tabs{\parsearg\tabszzz} -%\def\tabszzz #1{\settabs\+#1\cr} -%\def\tabline{\parsearg\tablinezzz} -%\def\tablinezzz #1{\+#1\cr} -%\def\&{&} - -% Tables -- @table, @ftable, @vtable, @item(x), @kitem(x), @xitem(x). - -% default indentation of table text -\newdimen\tableindent \tableindent=.8in -% default indentation of @itemize and @enumerate text -\newdimen\itemindent \itemindent=.3in -% margin between end of table item and start of table text. -\newdimen\itemmargin \itemmargin=.1in - -% used internally for \itemindent minus \itemmargin -\newdimen\itemmax - -% Note @table, @vtable, and @vtable define @item, @itemx, etc., with -% these defs. -% They also define \itemindex -% to index the item name in whatever manner is desired (perhaps none). - -\newif\ifitemxneedsnegativevskip - -\def\itemxpar{\par\ifitemxneedsnegativevskip\vskip-\parskip\nobreak\fi} - -\def\internalBitem{\smallbreak \parsearg\itemzzz} -\def\internalBitemx{\itemxpar \parsearg\itemzzz} - -\def\internalBxitem "#1"{\def\xitemsubtopix{#1} \smallbreak \parsearg\xitemzzz} -\def\internalBxitemx "#1"{\def\xitemsubtopix{#1} \itemxpar \parsearg\xitemzzz} - -\def\internalBkitem{\smallbreak \parsearg\kitemzzz} -\def\internalBkitemx{\itemxpar \parsearg\kitemzzz} - -\def\kitemzzz #1{\dosubind {kw}{\code{#1}}{for {\bf \lastfunction}}% - \itemzzz {#1}} - -\def\xitemzzz #1{\dosubind {kw}{\code{#1}}{for {\bf \xitemsubtopic}}% - \itemzzz {#1}} - -\def\itemzzz #1{\begingroup % - \advance\hsize by -\rightskip - \advance\hsize by -\tableindent - \setbox0=\hbox{\itemfont{#1}}% - \itemindex{#1}% - \nobreak % This prevents a break before @itemx. - % - % Be sure we are not still in the middle of a paragraph. - %{\parskip = 0in - %\par - %}% - % - % If the item text does not fit in the space we have, put it on a line - % by itself, and do not allow a page break either before or after that - % line. We do not start a paragraph here because then if the next - % command is, e.g., @kindex, the whatsit would get put into the - % horizontal list on a line by itself, resulting in extra blank space. - \ifdim \wd0>\itemmax - % - % Make this a paragraph so we get the \parskip glue and wrapping, - % but leave it ragged-right. - \begingroup - \advance\leftskip by-\tableindent - \advance\hsize by\tableindent - \advance\rightskip by0pt plus1fil - \leavevmode\unhbox0\par - \endgroup - % - % We're going to be starting a paragraph, but we don't want the - % \parskip glue -- logically it's part of the @item we just started. - \nobreak \vskip-\parskip - % - % Stop a page break at the \parskip glue coming up. Unfortunately - % we can't prevent a possible page break at the following - % \baselineskip glue. - \nobreak - \endgroup - \itemxneedsnegativevskipfalse - \else - % The item text fits into the space. Start a paragraph, so that the - % following text (if any) will end up on the same line. Since that - % text will be indented by \tableindent, we make the item text be in - % a zero-width box. - \noindent - \rlap{\hskip -\tableindent\box0}\ignorespaces% - \endgroup% - \itemxneedsnegativevskiptrue% - \fi -} - -\def\item{\errmessage{@item while not in a table}} -\def\itemx{\errmessage{@itemx while not in a table}} -\def\kitem{\errmessage{@kitem while not in a table}} -\def\kitemx{\errmessage{@kitemx while not in a table}} -\def\xitem{\errmessage{@xitem while not in a table}} -\def\xitemx{\errmessage{@xitemx while not in a table}} - -%% Contains a kludge to get @end[description] to work -\def\description{\tablez{\dontindex}{1}{}{}{}{}} - -\def\table{\begingroup\inENV\obeylines\obeyspaces\tablex} -{\obeylines\obeyspaces% -\gdef\tablex #1^^M{% -\tabley\dontindex#1 \endtabley}} - -\def\ftable{\begingroup\inENV\obeylines\obeyspaces\ftablex} -{\obeylines\obeyspaces% -\gdef\ftablex #1^^M{% -\tabley\fnitemindex#1 \endtabley -\def\Eftable{\endgraf\afterenvbreak\endgroup}% -\let\Etable=\relax}} - -\def\vtable{\begingroup\inENV\obeylines\obeyspaces\vtablex} -{\obeylines\obeyspaces% -\gdef\vtablex #1^^M{% -\tabley\vritemindex#1 \endtabley -\def\Evtable{\endgraf\afterenvbreak\endgroup}% -\let\Etable=\relax}} - -\def\dontindex #1{} -\def\fnitemindex #1{\doind {fn}{\code{#1}}}% -\def\vritemindex #1{\doind {vr}{\code{#1}}}% - -{\obeyspaces % -\gdef\tabley#1#2 #3 #4 #5 #6 #7\endtabley{\endgroup% -\tablez{#1}{#2}{#3}{#4}{#5}{#6}}} - -\def\tablez #1#2#3#4#5#6{% -\aboveenvbreak % -\begingroup % -\def\Edescription{\Etable}% Neccessary kludge. -\let\itemindex=#1% -\ifnum 0#3>0 \advance \leftskip by #3\mil \fi % -\ifnum 0#4>0 \tableindent=#4\mil \fi % -\ifnum 0#5>0 \advance \rightskip by #5\mil \fi % -\def\itemfont{#2}% -\itemmax=\tableindent % -\advance \itemmax by -\itemmargin % -\advance \leftskip by \tableindent % -\exdentamount=\tableindent -\parindent = 0pt -\parskip = \smallskipamount -\ifdim \parskip=0pt \parskip=2pt \fi% -\def\Etable{\endgraf\afterenvbreak\endgroup}% -\let\item = \internalBitem % -\let\itemx = \internalBitemx % -\let\kitem = \internalBkitem % -\let\kitemx = \internalBkitemx % -\let\xitem = \internalBxitem % -\let\xitemx = \internalBxitemx % -} - -% This is the counter used by @enumerate, which is really @itemize - -\newcount \itemno - -\def\itemize{\parsearg\itemizezzz} - -\def\itemizezzz #1{% - \begingroup % ended by the @end itemsize - \itemizey {#1}{\Eitemize} -} - -\def\itemizey #1#2{% -\aboveenvbreak % -\itemmax=\itemindent % -\advance \itemmax by -\itemmargin % -\advance \leftskip by \itemindent % -\exdentamount=\itemindent -\parindent = 0pt % -\parskip = \smallskipamount % -\ifdim \parskip=0pt \parskip=2pt \fi% -\def#2{\endgraf\afterenvbreak\endgroup}% -\def\itemcontents{#1}% -\let\item=\itemizeitem} - -% Set sfcode to normal for the chars that usually have another value. -% These are `.?!:;,' -\def\frenchspacing{\sfcode46=1000 \sfcode63=1000 \sfcode33=1000 - \sfcode58=1000 \sfcode59=1000 \sfcode44=1000 } - -% \splitoff TOKENS\endmark defines \first to be the first token in -% TOKENS, and \rest to be the remainder. -% -\def\splitoff#1#2\endmark{\def\first{#1}\def\rest{#2}}% - -% Allow an optional argument of an uppercase letter, lowercase letter, -% or number, to specify the first label in the enumerated list. No -% argument is the same as `1'. -% -\def\enumerate{\parsearg\enumeratezzz} -\def\enumeratezzz #1{\enumeratey #1 \endenumeratey} -\def\enumeratey #1 #2\endenumeratey{% - \begingroup % ended by the @end enumerate - % - % If we were given no argument, pretend we were given `1'. - \def\thearg{#1}% - \ifx\thearg\empty \def\thearg{1}\fi - % - % Detect if the argument is a single token. If so, it might be a - % letter. Otherwise, the only valid thing it can be is a number. - % (We will always have one token, because of the test we just made. - % This is a good thing, since \splitoff doesn't work given nothing at - % all -- the first parameter is undelimited.) - \expandafter\splitoff\thearg\endmark - \ifx\rest\empty - % Only one token in the argument. It could still be anything. - % A ``lowercase letter'' is one whose \lccode is nonzero. - % An ``uppercase letter'' is one whose \lccode is both nonzero, and - % not equal to itself. - % Otherwise, we assume it's a number. - % - % We need the \relax at the end of the \ifnum lines to stop TeX from - % continuing to look for a . - % - \ifnum\lccode\expandafter`\thearg=0\relax - \numericenumerate % a number (we hope) - \else - % It's a letter. - \ifnum\lccode\expandafter`\thearg=\expandafter`\thearg\relax - \lowercaseenumerate % lowercase letter - \else - \uppercaseenumerate % uppercase letter - \fi - \fi - \else - % Multiple tokens in the argument. We hope it's a number. - \numericenumerate - \fi -} - -% An @enumerate whose labels are integers. The starting integer is -% given in \thearg. -% -\def\numericenumerate{% - \itemno = \thearg - \startenumeration{\the\itemno}% -} - -% The starting (lowercase) letter is in \thearg. -\def\lowercaseenumerate{% - \itemno = \expandafter`\thearg - \startenumeration{% - % Be sure we're not beyond the end of the alphabet. - \ifnum\itemno=0 - \errmessage{No more lowercase letters in @enumerate; get a bigger - alphabet}% - \fi - \char\lccode\itemno - }% -} - -% The starting (uppercase) letter is in \thearg. -\def\uppercaseenumerate{% - \itemno = \expandafter`\thearg - \startenumeration{% - % Be sure we're not beyond the end of the alphabet. - \ifnum\itemno=0 - \errmessage{No more uppercase letters in @enumerate; get a bigger - alphabet} - \fi - \char\uccode\itemno - }% -} - -% Call itemizey, adding a period to the first argument and supplying the -% common last two arguments. Also subtract one from the initial value in -% \itemno, since @item increments \itemno. -% -\def\startenumeration#1{% - \advance\itemno by -1 - \itemizey{#1.}\Eenumerate\flushcr -} - -% @alphaenumerate and @capsenumerate are abbreviations for giving an arg -% to @enumerate. -% -\def\alphaenumerate{\enumerate{a}} -\def\capsenumerate{\enumerate{A}} -\def\Ealphaenumerate{\Eenumerate} -\def\Ecapsenumerate{\Eenumerate} - -% Definition of @item while inside @itemize. - -\def\itemizeitem{% -\advance\itemno by 1 -{\let\par=\endgraf \smallbreak}% -\ifhmode \errmessage{\in hmode at itemizeitem}\fi -{\parskip=0in \hskip 0pt -\hbox to 0pt{\hss \itemcontents\hskip \itemmargin}% -\vadjust{\penalty 1200}}% -\flushcr} - -% @multitable macros -% Amy Hendrickson, 8/18/94 -% -% @multitable ... @endmultitable will make as many columns as desired. -% Contents of each column will wrap at width given in preamble. Width -% can be specified either with sample text given in a template line, -% or in percent of \hsize, the current width of text on page. - -% Table can continue over pages but will only break between lines. - -% To make preamble: -% -% Either define widths of columns in terms of percent of \hsize: -% @multitable @percentofhsize .2 .3 .5 -% @item ... -% -% Numbers following @percentofhsize are the percent of the total -% current hsize to be used for each column. You may use as many -% columns as desired. - -% Or use a template: -% @multitable {Column 1 template} {Column 2 template} {Column 3 template} -% @item ... -% using the widest term desired in each column. - - -% Each new table line starts with @item, each subsequent new column -% starts with @tab. Empty columns may be produced by supplying @tab's -% with nothing between them for as many times as empty columns are needed, -% ie, @tab@tab@tab will produce two empty columns. - -% @item, @tab, @multicolumn or @endmulticolumn do not need to be on their -% own lines, but it will not hurt if they are. - -% Sample multitable: - -% @multitable {Column 1 template} {Column 2 template} {Column 3 template} -% @item first col stuff @tab second col stuff @tab third col -% @item -% first col stuff -% @tab -% second col stuff -% @tab -% third col -% @item first col stuff @tab second col stuff -% @tab Many paragraphs of text may be used in any column. -% -% They will wrap at the width determined by the template. -% @item@tab@tab This will be in third column. -% @endmultitable - -% Default dimensions may be reset by user. -% @intableparskip will set vertical space between paragraphs in table. -% @intableparindent will set paragraph indent in table. -% @spacebetweencols will set horizontal space to be left between columns. -% @spacebetweenlines will set vertical space to be left between lines. - -%%%% -% Dimensions - -\newdimen\intableparskip -\newdimen\intableparindent -\newdimen\spacebetweencols -\newdimen\spacebetweenlines -\intableparskip=0pt -\intableparindent=6pt -\spacebetweencols=12pt -\spacebetweenlines=12pt - -%%%% -% Macros used to set up halign preamble: -\let\endsetuptable\relax -\def\xendsetuptable{\endsetuptable} -\let\percentofhsize\relax -\def\xpercentofhsize{\percentofhsize} -\newif\ifsetpercent - -\newcount\colcount -\def\setuptable#1{\def\firstarg{#1}% -\ifx\firstarg\xendsetuptable\let\go\relax% -\else - \ifx\firstarg\xpercentofhsize\global\setpercenttrue% - \else - \ifsetpercent - \if#1.\else% - \global\advance\colcount by1 % - \expandafter\xdef\csname col\the\colcount\endcsname{.#1\hsize}% - \fi - \else - \global\advance\colcount by1 - \setbox0=\hbox{#1}% - \expandafter\xdef\csname col\the\colcount\endcsname{\the\wd0}% - \fi% - \fi% - \let\go\setuptable% -\fi\go} -%%%% -% multitable syntax -\def\tab{&} - -%%%% -% @multitable ... @endmultitable definitions: - -\def\multitable#1\item{\bgroup -\let\item\cr -\tolerance=9500 -\hbadness=9500 -\parskip=\intableparskip -\parindent=\intableparindent -\overfullrule=0pt -\global\colcount=0\relax% -\def\Emultitable{\global\setpercentfalse\global\everycr{}\cr\egroup\egroup}% - % To parse everything between @multitable and @item : -\def\one{#1}\expandafter\setuptable\one\endsetuptable - % Need to reset this to 0 after \setuptable. -\global\colcount=0\relax% - % - % This preamble sets up a generic column definition, which will - % be used as many times as user calls for columns. - % \vtop will set a single line and will also let text wrap and - % continue for many paragraphs if desired. -\halign\bgroup&\global\advance\colcount by 1\relax% -\vtop{\hsize=\expandafter\csname col\the\colcount\endcsname - % In order to keep entries from bumping into each other - % we will add a \leftskip of \spacebetweencols to all columns after - % the first one. - % If a template has been used, we will add \spacebetweencols - % to the width of each template entry. - % If user has set preamble in terms of percent of \hsize - % we will use that dimension as the width of the column, and - % the \leftskip will keep entries from bumping into each other. - % Table will start at left margin and final column will justify at - % right margin. -\ifnum\colcount=1 -\else - \ifsetpercent - \else - % If user has set preamble in terms of percent of \hsize - % we will advance \hsize by \spacebetweencols - \advance\hsize by \spacebetweencols - \fi - % In either case we will make \leftskip=\spacebetweencols: -\leftskip=\spacebetweencols -\fi -\noindent##}\cr% - % \everycr will reset column counter, \colcount, at the end of - % each line. Every column entry will cause \colcount to advance by one. - % The table preamble - % looks at the current \colcount to find the correct column width. -\global\everycr{\noalign{\nointerlineskip\vskip\spacebetweenlines -\filbreak%% keeps underfull box messages off when table breaks over pages. -\global\colcount=0\relax}}} - -\message{indexing,} -% Index generation facilities - -% Define \newwrite to be identical to plain tex's \newwrite -% except not \outer, so it can be used within \newindex. -{\catcode`\@=11 -\gdef\newwrite{\alloc@7\write\chardef\sixt@@n}} - -% \newindex {foo} defines an index named foo. -% It automatically defines \fooindex such that -% \fooindex ...rest of line... puts an entry in the index foo. -% It also defines \fooindfile to be the number of the output channel for -% the file that accumulates this index. The file's extension is foo. -% The name of an index should be no more than 2 characters long -% for the sake of vms. - -\def\newindex #1{ -\expandafter\newwrite \csname#1indfile\endcsname% Define number for output file -\openout \csname#1indfile\endcsname \jobname.#1 % Open the file -\expandafter\xdef\csname#1index\endcsname{% % Define \xxxindex -\noexpand\doindex {#1}} -} - -% @defindex foo == \newindex{foo} - -\def\defindex{\parsearg\newindex} - -% Define @defcodeindex, like @defindex except put all entries in @code. - -\def\newcodeindex #1{ -\expandafter\newwrite \csname#1indfile\endcsname% Define number for output file -\openout \csname#1indfile\endcsname \jobname.#1 % Open the file -\expandafter\xdef\csname#1index\endcsname{% % Define \xxxindex -\noexpand\docodeindex {#1}} -} - -\def\defcodeindex{\parsearg\newcodeindex} - -% @synindex foo bar makes index foo feed into index bar. -% Do this instead of @defindex foo if you don't want it as a separate index. -\def\synindex #1 #2 {% -\expandafter\let\expandafter\synindexfoo\expandafter=\csname#2indfile\endcsname -\expandafter\let\csname#1indfile\endcsname=\synindexfoo -\expandafter\xdef\csname#1index\endcsname{% % Define \xxxindex -\noexpand\doindex {#2}}% -} - -% @syncodeindex foo bar similar, but put all entries made for index foo -% inside @code. -\def\syncodeindex #1 #2 {% -\expandafter\let\expandafter\synindexfoo\expandafter=\csname#2indfile\endcsname -\expandafter\let\csname#1indfile\endcsname=\synindexfoo -\expandafter\xdef\csname#1index\endcsname{% % Define \xxxindex -\noexpand\docodeindex {#2}}% -} - -% Define \doindex, the driver for all \fooindex macros. -% Argument #1 is generated by the calling \fooindex macro, -% and it is "foo", the name of the index. - -% \doindex just uses \parsearg; it calls \doind for the actual work. -% This is because \doind is more useful to call from other macros. - -% There is also \dosubind {index}{topic}{subtopic} -% which makes an entry in a two-level index such as the operation index. - -\def\doindex#1{\edef\indexname{#1}\parsearg\singleindexer} -\def\singleindexer #1{\doind{\indexname}{#1}} - -% like the previous two, but they put @code around the argument. -\def\docodeindex#1{\edef\indexname{#1}\parsearg\singlecodeindexer} -\def\singlecodeindexer #1{\doind{\indexname}{\code{#1}}} - -\def\indexdummies{% -% Take care of the plain tex accent commands. -\def\"{\realbackslash "}% -\def\`{\realbackslash `}% -\def\'{\realbackslash '}% -\def\^{\realbackslash ^}% -\def\~{\realbackslash ~}% -\def\={\realbackslash =}% -\def\b{\realbackslash b}% -\def\c{\realbackslash c}% -\def\d{\realbackslash d}% -\def\u{\realbackslash u}% -\def\v{\realbackslash v}% -\def\H{\realbackslash H}% -% Take care of the plain tex special European modified letters. -\def\oe{\realbackslash oe}% -\def\ae{\realbackslash ae}% -\def\aa{\realbackslash aa}% -\def\OE{\realbackslash OE}% -\def\AE{\realbackslash AE}% -\def\AA{\realbackslash AA}% -\def\o{\realbackslash o}% -\def\O{\realbackslash O}% -\def\l{\realbackslash l}% -\def\L{\realbackslash L}% -\def\ss{\realbackslash ss}% -% Take care of texinfo commands likely to appear in an index entry. -\def\_{{\realbackslash _}}% -\def\w{\realbackslash w }% -\def\bf{\realbackslash bf }% -\def\rm{\realbackslash rm }% -\def\sl{\realbackslash sl }% -\def\sf{\realbackslash sf}% -\def\tt{\realbackslash tt}% -\def\gtr{\realbackslash gtr}% -\def\less{\realbackslash less}% -\def\hat{\realbackslash hat}% -\def\char{\realbackslash char}% -\def\TeX{\realbackslash TeX}% -\def\dots{\realbackslash dots }% -\def\copyright{\realbackslash copyright }% -\def\tclose##1{\realbackslash tclose {##1}}% -\def\code##1{\realbackslash code {##1}}% -\def\samp##1{\realbackslash samp {##1}}% -\def\t##1{\realbackslash r {##1}}% -\def\r##1{\realbackslash r {##1}}% -\def\i##1{\realbackslash i {##1}}% -\def\b##1{\realbackslash b {##1}}% -\def\cite##1{\realbackslash cite {##1}}% -\def\key##1{\realbackslash key {##1}}% -\def\file##1{\realbackslash file {##1}}% -\def\var##1{\realbackslash var {##1}}% -\def\kbd##1{\realbackslash kbd {##1}}% -\def\dfn##1{\realbackslash dfn {##1}}% -\def\emph##1{\realbackslash emph {##1}}% -} - -% \indexnofonts no-ops all font-change commands. -% This is used when outputting the strings to sort the index by. -\def\indexdummyfont#1{#1} -\def\indexdummytex{TeX} -\def\indexdummydots{...} - -\def\indexnofonts{% -% Just ignore accents. -\let\"=\indexdummyfont -\let\`=\indexdummyfont -\let\'=\indexdummyfont -\let\^=\indexdummyfont -\let\~=\indexdummyfont -\let\==\indexdummyfont -\let\b=\indexdummyfont -\let\c=\indexdummyfont -\let\d=\indexdummyfont -\let\u=\indexdummyfont -\let\v=\indexdummyfont -\let\H=\indexdummyfont -% Take care of the plain tex special European modified letters. -\def\oe{oe}% -\def\ae{ae}% -\def\aa{aa}% -\def\OE{OE}% -\def\AE{AE}% -\def\AA{AA}% -\def\o{o}% -\def\O{O}% -\def\l{l}% -\def\L{L}% -\def\ss{ss}% -\let\w=\indexdummyfont -\let\t=\indexdummyfont -\let\r=\indexdummyfont -\let\i=\indexdummyfont -\let\b=\indexdummyfont -\let\emph=\indexdummyfont -\let\strong=\indexdummyfont -\let\cite=\indexdummyfont -\let\sc=\indexdummyfont -%Don't no-op \tt, since it isn't a user-level command -% and is used in the definitions of the active chars like <, >, |... -%\let\tt=\indexdummyfont -\let\tclose=\indexdummyfont -\let\code=\indexdummyfont -\let\file=\indexdummyfont -\let\samp=\indexdummyfont -\let\kbd=\indexdummyfont -\let\key=\indexdummyfont -\let\var=\indexdummyfont -\let\TeX=\indexdummytex -\let\dots=\indexdummydots -} - -% To define \realbackslash, we must make \ not be an escape. -% We must first make another character (@) an escape -% so we do not become unable to do a definition. - -{\catcode`\@=0 \catcode`\\=\other -@gdef@realbackslash{\}} - -\let\indexbackslash=0 %overridden during \printindex. - -\let\SETmarginindex=\relax %initialize! -% workhorse for all \fooindexes -% #1 is name of index, #2 is stuff to put there -\def\doind #1#2{% -% Put the index entry in the margin if desired. -\ifx\SETmarginindex\relax\else% -\insert\margin{\hbox{\vrule height8pt depth3pt width0pt #2}}% -\fi% -{\count10=\lastpenalty % -{\indexdummies % Must do this here, since \bf, etc expand at this stage -\escapechar=`\\% -{\let\folio=0% Expand all macros now EXCEPT \folio -\def\rawbackslashxx{\indexbackslash}% \indexbackslash isn't defined now -% so it will be output as is; and it will print as backslash in the indx. -% -% Now process the index-string once, with all font commands turned off, -% to get the string to sort the index by. -{\indexnofonts -\xdef\temp1{#2}% -}% -% Now produce the complete index entry. We process the index-string again, -% this time with font commands expanded, to get what to print in the index. -\edef\temp{% -\write \csname#1indfile\endcsname{% -\realbackslash entry {\temp1}{\folio}{#2}}}% -\temp }% -}\penalty\count10}} - -\def\dosubind #1#2#3{% -{\count10=\lastpenalty % -{\indexdummies % Must do this here, since \bf, etc expand at this stage -\escapechar=`\\% -{\let\folio=0% -\def\rawbackslashxx{\indexbackslash}% -% -% Now process the index-string once, with all font commands turned off, -% to get the string to sort the index by. -{\indexnofonts -\xdef\temp1{#2 #3}% -}% -% Now produce the complete index entry. We process the index-string again, -% this time with font commands expanded, to get what to print in the index. -\edef\temp{% -\write \csname#1indfile\endcsname{% -\realbackslash entry {\temp1}{\folio}{#2}{#3}}}% -\temp }% -}\penalty\count10}} - -% The index entry written in the file actually looks like -% \entry {sortstring}{page}{topic} -% or -% \entry {sortstring}{page}{topic}{subtopic} -% The texindex program reads in these files and writes files -% containing these kinds of lines: -% \initial {c} -% before the first topic whose initial is c -% \entry {topic}{pagelist} -% for a topic that is used without subtopics -% \primary {topic} -% for the beginning of a topic that is used with subtopics -% \secondary {subtopic}{pagelist} -% for each subtopic. - -% Define the user-accessible indexing commands -% @findex, @vindex, @kindex, @cindex. - -\def\findex {\fnindex} -\def\kindex {\kyindex} -\def\cindex {\cpindex} -\def\vindex {\vrindex} -\def\tindex {\tpindex} -\def\pindex {\pgindex} - -\def\cindexsub {\begingroup\obeylines\cindexsub} -{\obeylines % -\gdef\cindexsub "#1" #2^^M{\endgroup % -\dosubind{cp}{#2}{#1}}} - -% Define the macros used in formatting output of the sorted index material. - -% This is what you call to cause a particular index to get printed. -% Write -% @unnumbered Function Index -% @printindex fn - -\def\printindex{\parsearg\doprintindex} - -\def\doprintindex#1{% - \tex - \dobreak \chapheadingskip {10000} - \catcode`\%=\other\catcode`\&=\other\catcode`\#=\other - \catcode`\$=\other - \catcode`\~=\other - \indexbreaks - % - % The following don't help, since the chars were translated - % when the raw index was written, and their fonts were discarded - % due to \indexnofonts. - %\catcode`\"=\active - %\catcode`\^=\active - %\catcode`\_=\active - %\catcode`\|=\active - %\catcode`\<=\active - %\catcode`\>=\active - % % - \def\indexbackslash{\rawbackslashxx} - \indexfonts\rm \tolerance=9500 \advance\baselineskip -1pt - \begindoublecolumns - % - % See if the index file exists and is nonempty. - \openin 1 \jobname.#1s - \ifeof 1 - % \enddoublecolumns gets confused if there is no text in the index, - % and it loses the chapter title and the aux file entries for the - % index. The easiest way to prevent this problem is to make sure - % there is some text. - (Index is nonexistent) - \else - % - % If the index file exists but is empty, then \openin leaves \ifeof - % false. We have to make TeX try to read something from the file, so - % it can discover if there is anything in it. - \read 1 to \temp - \ifeof 1 - (Index is empty) - \else - \input \jobname.#1s - \fi - \fi - \closein 1 - \enddoublecolumns - \Etex -} - -% These macros are used by the sorted index file itself. -% Change them to control the appearance of the index. - -% Same as \bigskipamount except no shrink. -% \balancecolumns gets confused if there is any shrink. -\newskip\initialskipamount \initialskipamount 12pt plus4pt - -\def\initial #1{% -{\let\tentt=\sectt \let\tt=\sectt \let\sf=\sectt -\ifdim\lastskip<\initialskipamount -\removelastskip \penalty-200 \vskip \initialskipamount\fi -\line{\secbf#1\hfill}\kern 2pt\penalty10000}} - -% This typesets a paragraph consisting of #1, dot leaders, and then #2 -% flush to the right margin. It is used for index and table of contents -% entries. The paragraph is indented by \leftskip. -% -\def\entry #1#2{\begingroup - % - % Start a new paragraph if necessary, so our assignments below can't - % affect previous text. - \par - % - % Do not fill out the last line with white space. - \parfillskip = 0in - % - % No extra space above this paragraph. - \parskip = 0in - % - % Do not prefer a separate line ending with a hyphen to fewer lines. - \finalhyphendemerits = 0 - % - % \hangindent is only relevant when the entry text and page number - % don't both fit on one line. In that case, bob suggests starting the - % dots pretty far over on the line. Unfortunately, a large - % indentation looks wrong when the entry text itself is broken across - % lines. So we use a small indentation and put up with long leaders. - % - % \hangafter is reset to 1 (which is the value we want) at the start - % of each paragraph, so we need not do anything with that. - \hangindent=2em - % - % When the entry text needs to be broken, just fill out the first line - % with blank space. - \rightskip = 0pt plus1fil - % - % Start a ``paragraph'' for the index entry so the line breaking - % parameters we've set above will have an effect. - \noindent - % - % Insert the text of the index entry. TeX will do line-breaking on it. - #1% - % The following is kluged to not output a line of dots in the index if - % there are no page numbers. The next person who breaks this will be - % cursed by a Unix daemon. - \def\tempa{{\rm }}% - \def\tempb{#2}% - \edef\tempc{\tempa}% - \edef\tempd{\tempb}% - \ifx\tempc\tempd\ \else% - % - % If we must, put the page number on a line of its own, and fill out - % this line with blank space. (The \hfil is overwhelmed with the - % fill leaders glue in \indexdotfill if the page number does fit.) - \hfil\penalty50 - \null\nobreak\indexdotfill % Have leaders before the page number. - % - % The `\ ' here is removed by the implicit \unskip that TeX does as - % part of (the primitive) \par. Without it, a spurious underfull - % \hbox ensues. - \ #2% The page number ends the paragraph. - \fi% - \par -\endgroup} - -% Like \dotfill except takes at least 1 em. -\def\indexdotfill{\cleaders - \hbox{$\mathsurround=0pt \mkern1.5mu ${\it .}$ \mkern1.5mu$}\hskip 1em plus 1fill} - -\def\primary #1{\line{#1\hfil}} - -\newskip\secondaryindent \secondaryindent=0.5cm - -\def\secondary #1#2{ -{\parfillskip=0in \parskip=0in -\hangindent =1in \hangafter=1 -\noindent\hskip\secondaryindent\hbox{#1}\indexdotfill #2\par -}} - -%% Define two-column mode, which is used in indexes. -%% Adapted from the TeXbook, page 416. -\catcode `\@=11 - -\newbox\partialpage - -\newdimen\doublecolumnhsize - -\def\begindoublecolumns{\begingroup - % Grab any single-column material above us. - \output = {\global\setbox\partialpage - =\vbox{\unvbox255\kern -\topskip \kern \baselineskip}}% - \eject - % - % Now switch to the double-column output routine. - \output={\doublecolumnout}% - % - % Change the page size parameters. We could do this once outside this - % routine, in each of @smallbook, @afourpaper, and the default 8.5x11 - % format, but then we repeat the same computation. Repeating a couple - % of assignments once per index is clearly meaningless for the - % execution time, so we may as well do it once. - % - % First we halve the line length, less a little for the gutter between - % the columns. We compute the gutter based on the line length, so it - % changes automatically with the paper format. The magic constant - % below is chosen so that the gutter has the same value (well, +- < - % 1pt) as it did when we hard-coded it. - % - % We put the result in a separate register, \doublecolumhsize, so we - % can restore it in \pagesofar, after \hsize itself has (potentially) - % been clobbered. - % - \doublecolumnhsize = \hsize - \advance\doublecolumnhsize by -.04154\hsize - \divide\doublecolumnhsize by 2 - \hsize = \doublecolumnhsize - % - % Double the \vsize as well. (We don't need a separate register here, - % since nobody clobbers \vsize.) - \vsize = 2\vsize - \doublecolumnpagegoal -} - -\def\enddoublecolumns{\eject \endgroup \pagegoal=\vsize \unvbox\partialpage} - -\def\doublecolumnsplit{\splittopskip=\topskip \splitmaxdepth=\maxdepth - \global\dimen@=\pageheight \global\advance\dimen@ by-\ht\partialpage - \global\setbox1=\vsplit255 to\dimen@ \global\setbox0=\vbox{\unvbox1} - \global\setbox3=\vsplit255 to\dimen@ \global\setbox2=\vbox{\unvbox3} - \ifdim\ht0>\dimen@ \setbox255=\vbox{\unvbox0\unvbox2} \global\setbox255=\copy5 \fi - \ifdim\ht2>\dimen@ \setbox255=\vbox{\unvbox0\unvbox2} \global\setbox255=\copy5 \fi -} -\def\doublecolumnpagegoal{% - \dimen@=\vsize \advance\dimen@ by-2\ht\partialpage \global\pagegoal=\dimen@ -} -\def\pagesofar{\unvbox\partialpage % - \hsize=\doublecolumnhsize % have to restore this since output routine - \wd0=\hsize \wd2=\hsize \hbox to\pagewidth{\box0\hfil\box2}} -\def\doublecolumnout{% - \setbox5=\copy255 - {\vbadness=10000 \doublecolumnsplit} - \ifvbox255 - \setbox0=\vtop to\dimen@{\unvbox0} - \setbox2=\vtop to\dimen@{\unvbox2} - \onepageout\pagesofar \unvbox255 \penalty\outputpenalty - \else - \setbox0=\vbox{\unvbox5} - \ifvbox0 - \dimen@=\ht0 \advance\dimen@ by\topskip \advance\dimen@ by-\baselineskip - \divide\dimen@ by2 \splittopskip=\topskip \splitmaxdepth=\maxdepth - {\vbadness=10000 - \loop \global\setbox5=\copy0 - \setbox1=\vsplit5 to\dimen@ - \setbox3=\vsplit5 to\dimen@ - \ifvbox5 \global\advance\dimen@ by1pt \repeat - \setbox0=\vbox to\dimen@{\unvbox1} - \setbox2=\vbox to\dimen@{\unvbox3} - \global\setbox\partialpage=\vbox{\pagesofar} - \doublecolumnpagegoal - } - \fi - \fi -} - -\catcode `\@=\other -\message{sectioning,} -% Define chapters, sections, etc. - -\newcount \chapno -\newcount \secno \secno=0 -\newcount \subsecno \subsecno=0 -\newcount \subsubsecno \subsubsecno=0 - -% This counter is funny since it counts through charcodes of letters A, B, ... -\newcount \appendixno \appendixno = `\@ -\def\appendixletter{\char\the\appendixno} - -\newwrite \contentsfile -% This is called from \setfilename. -\def\opencontents{\openout \contentsfile = \jobname.toc} - -% Each @chapter defines this as the name of the chapter. -% page headings and footings can use it. @section does likewise - -\def\thischapter{} \def\thissection{} -\def\seccheck#1{\if \pageno<0 % -\errmessage{@#1 not allowed after generating table of contents}\fi -% -} - -\def\chapternofonts{% -\let\rawbackslash=\relax% -\let\frenchspacing=\relax% -\def\result{\realbackslash result} -\def\equiv{\realbackslash equiv} -\def\expansion{\realbackslash expansion} -\def\print{\realbackslash print} -\def\TeX{\realbackslash TeX} -\def\dots{\realbackslash dots} -\def\copyright{\realbackslash copyright} -\def\tt{\realbackslash tt} -\def\bf{\realbackslash bf } -\def\w{\realbackslash w} -\def\less{\realbackslash less} -\def\gtr{\realbackslash gtr} -\def\hat{\realbackslash hat} -\def\char{\realbackslash char} -\def\tclose##1{\realbackslash tclose {##1}} -\def\code##1{\realbackslash code {##1}} -\def\samp##1{\realbackslash samp {##1}} -\def\r##1{\realbackslash r {##1}} -\def\b##1{\realbackslash b {##1}} -\def\key##1{\realbackslash key {##1}} -\def\file##1{\realbackslash file {##1}} -\def\kbd##1{\realbackslash kbd {##1}} -% These are redefined because @smartitalic wouldn't work inside xdef. -\def\i##1{\realbackslash i {##1}} -\def\cite##1{\realbackslash cite {##1}} -\def\var##1{\realbackslash var {##1}} -\def\emph##1{\realbackslash emph {##1}} -\def\dfn##1{\realbackslash dfn {##1}} -} - -\newcount\absseclevel % used to calculate proper heading level -\newcount\secbase\secbase=0 % @raise/lowersections modify this count - -% @raisesections: treat @section as chapter, @subsection as section, etc. -\def\raisesections{\global\advance\secbase by -1} -\let\up=\raisesections % original BFox name - -% @lowersections: treat @chapter as section, @section as subsection, etc. -\def\lowersections{\global\advance\secbase by 1} -\let\down=\lowersections % original BFox name - -% Choose a numbered-heading macro -% #1 is heading level if unmodified by @raisesections or @lowersections -% #2 is text for heading -\def\numhead#1#2{\absseclevel=\secbase\advance\absseclevel by #1 -\ifcase\absseclevel - \chapterzzz{#2} -\or - \seczzz{#2} -\or - \numberedsubseczzz{#2} -\or - \numberedsubsubseczzz{#2} -\else - \ifnum \absseclevel<0 - \chapterzzz{#2} - \else - \numberedsubsubseczzz{#2} - \fi -\fi -} - -% like \numhead, but chooses appendix heading levels -\def\apphead#1#2{\absseclevel=\secbase\advance\absseclevel by #1 -\ifcase\absseclevel - \appendixzzz{#2} -\or - \appendixsectionzzz{#2} -\or - \appendixsubseczzz{#2} -\or - \appendixsubsubseczzz{#2} -\else - \ifnum \absseclevel<0 - \appendixzzz{#2} - \else - \appendixsubsubseczzz{#2} - \fi -\fi -} - -% like \numhead, but chooses numberless heading levels -\def\unnmhead#1#2{\absseclevel=\secbase\advance\absseclevel by #1 -\ifcase\absseclevel - \unnumberedzzz{#2} -\or - \unnumberedseczzz{#2} -\or - \unnumberedsubseczzz{#2} -\or - \unnumberedsubsubseczzz{#2} -\else - \ifnum \absseclevel<0 - \unnumberedzzz{#2} - \else - \unnumberedsubsubseczzz{#2} - \fi -\fi -} - - -\def\thischaptername{No Chapter Title} -\outer\def\chapter{\parsearg\chapteryyy} -\def\chapteryyy #1{\numhead0{#1}} % normally numhead0 calls chapterzzz -\def\chapterzzz #1{\seccheck{chapter}% -\secno=0 \subsecno=0 \subsubsecno=0 -\global\advance \chapno by 1 \message{\putwordChapter \the\chapno}% -\chapmacro {#1}{\the\chapno}% -\gdef\thissection{#1}% -\gdef\thischaptername{#1}% -% We don't substitute the actual chapter name into \thischapter -% because we don't want its macros evaluated now. -\xdef\thischapter{\putwordChapter{} \the\chapno: \noexpand\thischaptername}% -{\chapternofonts% -\edef\temp{{\realbackslash chapentry {#1}{\the\chapno}{\noexpand\folio}}}% -\escapechar=`\\% -\write \contentsfile \temp % -\donoderef % -\global\let\section = \numberedsec -\global\let\subsection = \numberedsubsec -\global\let\subsubsection = \numberedsubsubsec -}} - -\outer\def\appendix{\parsearg\appendixyyy} -\def\appendixyyy #1{\apphead0{#1}} % normally apphead0 calls appendixzzz -\def\appendixzzz #1{\seccheck{appendix}% -\secno=0 \subsecno=0 \subsubsecno=0 -\global\advance \appendixno by 1 \message{Appendix \appendixletter}% -\chapmacro {#1}{\putwordAppendix{} \appendixletter}% -\gdef\thissection{#1}% -\gdef\thischaptername{#1}% -\xdef\thischapter{\putwordAppendix{} \appendixletter: \noexpand\thischaptername}% -{\chapternofonts% -\edef\temp{{\realbackslash chapentry - {#1}{\putwordAppendix{} \appendixletter}{\noexpand\folio}}}% -\escapechar=`\\% -\write \contentsfile \temp % -\appendixnoderef % -\global\let\section = \appendixsec -\global\let\subsection = \appendixsubsec -\global\let\subsubsection = \appendixsubsubsec -}} - -\outer\def\top{\parsearg\unnumberedyyy} -\outer\def\unnumbered{\parsearg\unnumberedyyy} -\def\unnumberedyyy #1{\unnmhead0{#1}} % normally unnmhead0 calls unnumberedzzz -\def\unnumberedzzz #1{\seccheck{unnumbered}% -\secno=0 \subsecno=0 \subsubsecno=0 -% -% This used to be simply \message{#1}, but TeX fully expands the -% argument to \message. Therefore, if #1 contained @-commands, TeX -% expanded them. For example, in `@unnumbered The @cite{Book}', TeX -% expanded @cite (which turns out to cause errors because \cite is meant -% to be executed, not expanded). -% -% Anyway, we don't want the fully-expanded definition of @cite to appear -% as a result of the \message, we just want `@cite' itself. We use -% \the to achieve this: TeX expands \the only once, -% simply yielding the contents of the . -\toks0 = {#1}\message{(\the\toks0)}% -% -\unnumbchapmacro {#1}% -\gdef\thischapter{#1}\gdef\thissection{#1}% -{\chapternofonts% -\edef\temp{{\realbackslash unnumbchapentry {#1}{\noexpand\folio}}}% -\escapechar=`\\% -\write \contentsfile \temp % -\unnumbnoderef % -\global\let\section = \unnumberedsec -\global\let\subsection = \unnumberedsubsec -\global\let\subsubsection = \unnumberedsubsubsec -}} - -\outer\def\numberedsec{\parsearg\secyyy} -\def\secyyy #1{\numhead1{#1}} % normally calls seczzz -\def\seczzz #1{\seccheck{section}% -\subsecno=0 \subsubsecno=0 \global\advance \secno by 1 % -\gdef\thissection{#1}\secheading {#1}{\the\chapno}{\the\secno}% -{\chapternofonts% -\edef\temp{{\realbackslash secentry % -{#1}{\the\chapno}{\the\secno}{\noexpand\folio}}}% -\escapechar=`\\% -\write \contentsfile \temp % -\donoderef % -\penalty 10000 % -}} - -\outer\def\appenixsection{\parsearg\appendixsecyyy} -\outer\def\appendixsec{\parsearg\appendixsecyyy} -\def\appendixsecyyy #1{\apphead1{#1}} % normally calls appendixsectionzzz -\def\appendixsectionzzz #1{\seccheck{appendixsection}% -\subsecno=0 \subsubsecno=0 \global\advance \secno by 1 % -\gdef\thissection{#1}\secheading {#1}{\appendixletter}{\the\secno}% -{\chapternofonts% -\edef\temp{{\realbackslash secentry % -{#1}{\appendixletter}{\the\secno}{\noexpand\folio}}}% -\escapechar=`\\% -\write \contentsfile \temp % -\appendixnoderef % -\penalty 10000 % -}} - -\outer\def\unnumberedsec{\parsearg\unnumberedsecyyy} -\def\unnumberedsecyyy #1{\unnmhead1{#1}} % normally calls unnumberedseczzz -\def\unnumberedseczzz #1{\seccheck{unnumberedsec}% -\plainsecheading {#1}\gdef\thissection{#1}% -{\chapternofonts% -\edef\temp{{\realbackslash unnumbsecentry{#1}{\noexpand\folio}}}% -\escapechar=`\\% -\write \contentsfile \temp % -\unnumbnoderef % -\penalty 10000 % -}} - -\outer\def\numberedsubsec{\parsearg\numberedsubsecyyy} -\def\numberedsubsecyyy #1{\numhead2{#1}} % normally calls numberedsubseczzz -\def\numberedsubseczzz #1{\seccheck{subsection}% -\gdef\thissection{#1}\subsubsecno=0 \global\advance \subsecno by 1 % -\subsecheading {#1}{\the\chapno}{\the\secno}{\the\subsecno}% -{\chapternofonts% -\edef\temp{{\realbackslash subsecentry % -{#1}{\the\chapno}{\the\secno}{\the\subsecno}{\noexpand\folio}}}% -\escapechar=`\\% -\write \contentsfile \temp % -\donoderef % -\penalty 10000 % -}} - -\outer\def\appendixsubsec{\parsearg\appendixsubsecyyy} -\def\appendixsubsecyyy #1{\apphead2{#1}} % normally calls appendixsubseczzz -\def\appendixsubseczzz #1{\seccheck{appendixsubsec}% -\gdef\thissection{#1}\subsubsecno=0 \global\advance \subsecno by 1 % -\subsecheading {#1}{\appendixletter}{\the\secno}{\the\subsecno}% -{\chapternofonts% -\edef\temp{{\realbackslash subsecentry % -{#1}{\appendixletter}{\the\secno}{\the\subsecno}{\noexpand\folio}}}% -\escapechar=`\\% -\write \contentsfile \temp % -\appendixnoderef % -\penalty 10000 % -}} - -\outer\def\unnumberedsubsec{\parsearg\unnumberedsubsecyyy} -\def\unnumberedsubsecyyy #1{\unnmhead2{#1}} %normally calls unnumberedsubseczzz -\def\unnumberedsubseczzz #1{\seccheck{unnumberedsubsec}% -\plainsecheading {#1}\gdef\thissection{#1}% -{\chapternofonts% -\edef\temp{{\realbackslash unnumbsubsecentry{#1}{\noexpand\folio}}}% -\escapechar=`\\% -\write \contentsfile \temp % -\unnumbnoderef % -\penalty 10000 % -}} - -\outer\def\numberedsubsubsec{\parsearg\numberedsubsubsecyyy} -\def\numberedsubsubsecyyy #1{\numhead3{#1}} % normally numberedsubsubseczzz -\def\numberedsubsubseczzz #1{\seccheck{subsubsection}% -\gdef\thissection{#1}\global\advance \subsubsecno by 1 % -\subsubsecheading {#1} - {\the\chapno}{\the\secno}{\the\subsecno}{\the\subsubsecno}% -{\chapternofonts% -\edef\temp{{\realbackslash subsubsecentry % - {#1} - {\the\chapno}{\the\secno}{\the\subsecno}{\the\subsubsecno} - {\noexpand\folio}}}% -\escapechar=`\\% -\write \contentsfile \temp % -\donoderef % -\penalty 10000 % -}} - -\outer\def\appendixsubsubsec{\parsearg\appendixsubsubsecyyy} -\def\appendixsubsubsecyyy #1{\apphead3{#1}} % normally appendixsubsubseczzz -\def\appendixsubsubseczzz #1{\seccheck{appendixsubsubsec}% -\gdef\thissection{#1}\global\advance \subsubsecno by 1 % -\subsubsecheading {#1} - {\appendixletter}{\the\secno}{\the\subsecno}{\the\subsubsecno}% -{\chapternofonts% -\edef\temp{{\realbackslash subsubsecentry{#1}% - {\appendixletter} - {\the\secno}{\the\subsecno}{\the\subsubsecno}{\noexpand\folio}}}% -\escapechar=`\\% -\write \contentsfile \temp % -\appendixnoderef % -\penalty 10000 % -}} - -\outer\def\unnumberedsubsubsec{\parsearg\unnumberedsubsubsecyyy} -\def\unnumberedsubsubsecyyy #1{\unnmhead3{#1}} %normally unnumberedsubsubseczzz -\def\unnumberedsubsubseczzz #1{\seccheck{unnumberedsubsubsec}% -\plainsecheading {#1}\gdef\thissection{#1}% -{\chapternofonts% -\edef\temp{{\realbackslash unnumbsubsubsecentry{#1}{\noexpand\folio}}}% -\escapechar=`\\% -\write \contentsfile \temp % -\unnumbnoderef % -\penalty 10000 % -}} - -% These are variants which are not "outer", so they can appear in @ifinfo. -% Actually, they should now be obsolete; ordinary section commands should work. -\def\infotop{\parsearg\unnumberedzzz} -\def\infounnumbered{\parsearg\unnumberedzzz} -\def\infounnumberedsec{\parsearg\unnumberedseczzz} -\def\infounnumberedsubsec{\parsearg\unnumberedsubseczzz} -\def\infounnumberedsubsubsec{\parsearg\unnumberedsubsubseczzz} - -\def\infoappendix{\parsearg\appendixzzz} -\def\infoappendixsec{\parsearg\appendixseczzz} -\def\infoappendixsubsec{\parsearg\appendixsubseczzz} -\def\infoappendixsubsubsec{\parsearg\appendixsubsubseczzz} - -\def\infochapter{\parsearg\chapterzzz} -\def\infosection{\parsearg\sectionzzz} -\def\infosubsection{\parsearg\subsectionzzz} -\def\infosubsubsection{\parsearg\subsubsectionzzz} - -% These macros control what the section commands do, according -% to what kind of chapter we are in (ordinary, appendix, or unnumbered). -% Define them by default for a numbered chapter. -\global\let\section = \numberedsec -\global\let\subsection = \numberedsubsec -\global\let\subsubsection = \numberedsubsubsec - -% Define @majorheading, @heading and @subheading - -% NOTE on use of \vbox for chapter headings, section headings, and -% such: -% 1) We use \vbox rather than the earlier \line to permit -% overlong headings to fold. -% 2) \hyphenpenalty is set to 10000 because hyphenation in a -% heading is obnoxious; this forbids it. -% 3) Likewise, headings look best if no \parindent is used, and -% if justification is not attempted. Hence \raggedright. - - -\def\majorheading{\parsearg\majorheadingzzz} -\def\majorheadingzzz #1{% -{\advance\chapheadingskip by 10pt \chapbreak }% -{\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000 - \parindent=0pt\raggedright - \rm #1\hfill}}\bigskip \par\penalty 200} - -\def\chapheading{\parsearg\chapheadingzzz} -\def\chapheadingzzz #1{\chapbreak % -{\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000 - \parindent=0pt\raggedright - \rm #1\hfill}}\bigskip \par\penalty 200} - -\def\heading{\parsearg\secheadingi} - -\def\subheading{\parsearg\subsecheadingi} - -\def\subsubheading{\parsearg\subsubsecheadingi} - -% These macros generate a chapter, section, etc. heading only -% (including whitespace, linebreaking, etc. around it), -% given all the information in convenient, parsed form. - -%%% Args are the skip and penalty (usually negative) -\def\dobreak#1#2{\par\ifdim\lastskip<#1\removelastskip\penalty#2\vskip#1\fi} - -\def\setchapterstyle #1 {\csname CHAPF#1\endcsname} - -%%% Define plain chapter starts, and page on/off switching for it -% Parameter controlling skip before chapter headings (if needed) - -\newskip \chapheadingskip \chapheadingskip = 30pt plus 8pt minus 4pt - -\def\chapbreak{\dobreak \chapheadingskip {-4000}} -\def\chappager{\par\vfill\supereject} -\def\chapoddpage{\chappager \ifodd\pageno \else \hbox to 0pt{} \chappager\fi} - -\def\setchapternewpage #1 {\csname CHAPPAG#1\endcsname} - -\def\CHAPPAGoff{ -\global\let\pchapsepmacro=\chapbreak -\global\let\pagealignmacro=\chappager} - -\def\CHAPPAGon{ -\global\let\pchapsepmacro=\chappager -\global\let\pagealignmacro=\chappager -\global\def\HEADINGSon{\HEADINGSsingle}} - -\def\CHAPPAGodd{ -\global\let\pchapsepmacro=\chapoddpage -\global\let\pagealignmacro=\chapoddpage -\global\def\HEADINGSon{\HEADINGSdouble}} - -\CHAPPAGon - -\def\CHAPFplain{ -\global\let\chapmacro=\chfplain -\global\let\unnumbchapmacro=\unnchfplain} - -\def\chfplain #1#2{% - \pchapsepmacro - {% - \chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000 - \parindent=0pt\raggedright - \rm #2\enspace #1}% - }% - \bigskip - \penalty5000 -} - -\def\unnchfplain #1{% -\pchapsepmacro % -{\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000 - \parindent=0pt\raggedright - \rm #1\hfill}}\bigskip \par\penalty 10000 % -} -\CHAPFplain % The default - -\def\unnchfopen #1{% -\chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000 - \parindent=0pt\raggedright - \rm #1\hfill}}\bigskip \par\penalty 10000 % -} - -\def\chfopen #1#2{\chapoddpage {\chapfonts -\vbox to 3in{\vfil \hbox to\hsize{\hfil #2} \hbox to\hsize{\hfil #1} \vfil}}% -\par\penalty 5000 % -} - -\def\CHAPFopen{ -\global\let\chapmacro=\chfopen -\global\let\unnumbchapmacro=\unnchfopen} - -% Parameter controlling skip before section headings. - -\newskip \subsecheadingskip \subsecheadingskip = 17pt plus 8pt minus 4pt -\def\subsecheadingbreak{\dobreak \subsecheadingskip {-500}} - -\newskip \secheadingskip \secheadingskip = 21pt plus 8pt minus 4pt -\def\secheadingbreak{\dobreak \secheadingskip {-1000}} - -% @paragraphindent is defined for the Info formatting commands only. -\let\paragraphindent=\comment - -% Section fonts are the base font at magstep2, which produces -% a size a bit more than 14 points in the default situation. - -\def\secheading #1#2#3{\secheadingi {#2.#3\enspace #1}} -\def\plainsecheading #1{\secheadingi {#1}} -\def\secheadingi #1{{\advance \secheadingskip by \parskip % -\secheadingbreak}% -{\secfonts \vbox{\hyphenpenalty=10000\tolerance=5000 - \parindent=0pt\raggedright - \rm #1\hfill}}% -\ifdim \parskip<10pt \kern 10pt\kern -\parskip\fi \penalty 10000 } - - -% Subsection fonts are the base font at magstep1, -% which produces a size of 12 points. - -\def\subsecheading #1#2#3#4{\subsecheadingi {#2.#3.#4\enspace #1}} -\def\subsecheadingi #1{{\advance \subsecheadingskip by \parskip % -\subsecheadingbreak}% -{\subsecfonts \vbox{\hyphenpenalty=10000\tolerance=5000 - \parindent=0pt\raggedright - \rm #1\hfill}}% -\ifdim \parskip<10pt \kern 10pt\kern -\parskip\fi \penalty 10000 } - -\def\subsubsecfonts{\subsecfonts} % Maybe this should change: - % Perhaps make sssec fonts scaled - % magstep half -\def\subsubsecheading #1#2#3#4#5{\subsubsecheadingi {#2.#3.#4.#5\enspace #1}} -\def\subsubsecheadingi #1{{\advance \subsecheadingskip by \parskip % -\subsecheadingbreak}% -{\subsubsecfonts \vbox{\hyphenpenalty=10000\tolerance=5000 - \parindent=0pt\raggedright - \rm #1\hfill}}% -\ifdim \parskip<10pt \kern 10pt\kern -\parskip\fi \penalty 10000} - - -\message{toc printing,} - -% Finish up the main text and prepare to read what we've written -% to \contentsfile. - -\newskip\contentsrightmargin \contentsrightmargin=1in -\def\startcontents#1{% - \pagealignmacro - \immediate\closeout \contentsfile - \ifnum \pageno>0 - \pageno = -1 % Request roman numbered pages. - \fi - % Don't need to put `Contents' or `Short Contents' in the headline. - % It is abundantly clear what they are. - \unnumbchapmacro{#1}\def\thischapter{}% - \begingroup % Set up to handle contents files properly. - \catcode`\\=0 \catcode`\{=1 \catcode`\}=2 \catcode`\@=11 - \catcode`\^=7 % to see ^^e4 as \"a etc. juha@piuha.ydi.vtt.fi - \raggedbottom % Worry more about breakpoints than the bottom. - \advance\hsize by -\contentsrightmargin % Don't use the full line length. -} - - -% Normal (long) toc. -\outer\def\contents{% - \startcontents{\putwordTableofContents}% - \input \jobname.toc - \endgroup - \vfill \eject -} - -% And just the chapters. -\outer\def\summarycontents{% - \startcontents{\putwordShortContents}% - % - \let\chapentry = \shortchapentry - \let\unnumbchapentry = \shortunnumberedentry - % We want a true roman here for the page numbers. - \secfonts - \let\rm=\shortcontrm \let\bf=\shortcontbf \let\sl=\shortcontsl - \rm - \advance\baselineskip by 1pt % Open it up a little. - \def\secentry ##1##2##3##4{} - \def\unnumbsecentry ##1##2{} - \def\subsecentry ##1##2##3##4##5{} - \def\unnumbsubsecentry ##1##2{} - \def\subsubsecentry ##1##2##3##4##5##6{} - \def\unnumbsubsubsecentry ##1##2{} - \input \jobname.toc - \endgroup - \vfill \eject -} -\let\shortcontents = \summarycontents - -% These macros generate individual entries in the table of contents. -% The first argument is the chapter or section name. -% The last argument is the page number. -% The arguments in between are the chapter number, section number, ... - -% Chapter-level things, for both the long and short contents. -\def\chapentry#1#2#3{\dochapentry{#2\labelspace#1}{#3}} - -% See comments in \dochapentry re vbox and related settings -\def\shortchapentry#1#2#3{% - \tocentry{\shortchaplabel{#2}\labelspace #1}{\doshortpageno{#3}}% -} - -% Typeset the label for a chapter or appendix for the short contents. -% The arg is, e.g. `Appendix A' for an appendix, or `3' for a chapter. -% We could simplify the code here by writing out an \appendixentry -% command in the toc file for appendices, instead of using \chapentry -% for both, but it doesn't seem worth it. -\setbox0 = \hbox{\shortcontrm \putwordAppendix } -\newdimen\shortappendixwidth \shortappendixwidth = \wd0 - -\def\shortchaplabel#1{% - % We typeset #1 in a box of constant width, regardless of the text of - % #1, so the chapter titles will come out aligned. - \setbox0 = \hbox{#1}% - \dimen0 = \ifdim\wd0 > \shortappendixwidth \shortappendixwidth \else 0pt \fi - % - % This space should be plenty, since a single number is .5em, and the - % widest letter (M) is 1em, at least in the Computer Modern fonts. - % (This space doesn't include the extra space that gets added after - % the label; that gets put in in \shortchapentry above.) - \advance\dimen0 by 1.1em - \hbox to \dimen0{#1\hfil}% -} - -\def\unnumbchapentry#1#2{\dochapentry{#1}{#2}} -\def\shortunnumberedentry#1#2{\tocentry{#1}{\doshortpageno{#2}}} - -% Sections. -\def\secentry#1#2#3#4{\dosecentry{#2.#3\labelspace#1}{#4}} -\def\unnumbsecentry#1#2{\dosecentry{#1}{#2}} - -% Subsections. -\def\subsecentry#1#2#3#4#5{\dosubsecentry{#2.#3.#4\labelspace#1}{#5}} -\def\unnumbsubsecentry#1#2{\dosubsecentry{#1}{#2}} - -% And subsubsections. -\def\subsubsecentry#1#2#3#4#5#6{% - \dosubsubsecentry{#2.#3.#4.#5\labelspace#1}{#6}} -\def\unnumbsubsubsecentry#1#2{\dosubsubsecentry{#1}{#2}} - - -% This parameter controls the indentation of the various levels. -\newdimen\tocindent \tocindent = 3pc - -% Now for the actual typesetting. In all these, #1 is the text and #2 is the -% page number. -% -% If the toc has to be broken over pages, we would want to be at chapters -% if at all possible; hence the \penalty. -\def\dochapentry#1#2{% - \penalty-300 \vskip\baselineskip - \begingroup - \chapentryfonts - \tocentry{#1}{\dopageno{#2}}% - \endgroup - \nobreak\vskip .25\baselineskip -} - -\def\dosecentry#1#2{\begingroup - \secentryfonts \leftskip=\tocindent - \tocentry{#1}{\dopageno{#2}}% -\endgroup} - -\def\dosubsecentry#1#2{\begingroup - \subsecentryfonts \leftskip=2\tocindent - \tocentry{#1}{\dopageno{#2}}% -\endgroup} - -\def\dosubsubsecentry#1#2{\begingroup - \subsubsecentryfonts \leftskip=3\tocindent - \tocentry{#1}{\dopageno{#2}}% -\endgroup} - -% Final typesetting of a toc entry; we use the same \entry macro as for -% the index entries, but we want to suppress hyphenation here. (We -% can't do that in the \entry macro, since index entries might consist -% of hyphenated-identifiers-that-do-not-fit-on-a-line-and-nothing-else.) -% -% \turnoffactive is for the sake of @" used for umlauts. -\def\tocentry#1#2{\begingroup - \hyphenpenalty = 10000 - \entry{\turnoffactive #1}{\turnoffactive #2}% -\endgroup} - -% Space between chapter (or whatever) number and the title. -\def\labelspace{\hskip1em \relax} - -\def\dopageno#1{{\rm #1}} -\def\doshortpageno#1{{\rm #1}} - -\def\chapentryfonts{\secfonts \rm} -\def\secentryfonts{\textfonts} -\let\subsecentryfonts = \textfonts -\let\subsubsecentryfonts = \textfonts - - -\message{environments,} - -% Since these characters are used in examples, it should be an even number of -% \tt widths. Each \tt character is 1en, so two makes it 1em. -% Furthermore, these definitions must come after we define our fonts. -\newbox\dblarrowbox \newbox\longdblarrowbox -\newbox\pushcharbox \newbox\bullbox -\newbox\equivbox \newbox\errorbox - -\let\ptexequiv = \equiv - -%{\tentt -%\global\setbox\dblarrowbox = \hbox to 1em{\hfil$\Rightarrow$\hfil} -%\global\setbox\longdblarrowbox = \hbox to 1em{\hfil$\mapsto$\hfil} -%\global\setbox\pushcharbox = \hbox to 1em{\hfil$\dashv$\hfil} -%\global\setbox\equivbox = \hbox to 1em{\hfil$\ptexequiv$\hfil} -% Adapted from the manmac format (p.420 of TeXbook) -%\global\setbox\bullbox = \hbox to 1em{\kern.15em\vrule height .75ex width .85ex -% depth .1ex\hfil} -%} - -\def\point{$\star$} - -\def\result{\leavevmode\raise.15ex\hbox to 1em{\hfil$\Rightarrow$\hfil}} -\def\expansion{\leavevmode\raise.1ex\hbox to 1em{\hfil$\mapsto$\hfil}} -\def\print{\leavevmode\lower.1ex\hbox to 1em{\hfil$\dashv$\hfil}} - -\def\equiv{\leavevmode\lower.1ex\hbox to 1em{\hfil$\ptexequiv$\hfil}} - -% Adapted from the TeXbook's \boxit. -{\tentt \global\dimen0 = 3em}% Width of the box. -\dimen2 = .55pt % Thickness of rules -% The text. (`r' is open on the right, `e' somewhat less so on the left.) -\setbox0 = \hbox{\kern-.75pt \tensf error\kern-1.5pt} - -\global\setbox\errorbox=\hbox to \dimen0{\hfil - \hsize = \dimen0 \advance\hsize by -5.8pt % Space to left+right. - \advance\hsize by -2\dimen2 % Rules. - \vbox{ - \hrule height\dimen2 - \hbox{\vrule width\dimen2 \kern3pt % Space to left of text. - \vtop{\kern2.4pt \box0 \kern2.4pt}% Space above/below. - \kern3pt\vrule width\dimen2}% Space to right. - \hrule height\dimen2} - \hfil} - -% The @error{} command. -\def\error{\leavevmode\lower.7ex\copy\errorbox} - -% @tex ... @end tex escapes into raw Tex temporarily. -% One exception: @ is still an escape character, so that @end tex works. -% But \@ or @@ will get a plain tex @ character. - -\def\tex{\begingroup -\catcode `\\=0 \catcode `\{=1 \catcode `\}=2 -\catcode `\$=3 \catcode `\&=4 \catcode `\#=6 -\catcode `\^=7 \catcode `\_=8 \catcode `\~=13 \let~=\tie -\catcode `\%=14 -\catcode 43=12 -\catcode`\"=12 -\catcode`\==12 -\catcode`\|=12 -\catcode`\<=12 -\catcode`\>=12 -\escapechar=`\\ -% -\let\~=\ptextilde -\let\{=\ptexlbrace -\let\}=\ptexrbrace -\let\.=\ptexdot -\let\*=\ptexstar -\let\dots=\ptexdots -\def\@{@}% -\let\bullet=\ptexbullet -\let\b=\ptexb \let\c=\ptexc \let\i=\ptexi \let\t=\ptext \let\l=\ptexl -\let\L=\ptexL -% -\let\Etex=\endgroup} - -% Define @lisp ... @endlisp. -% @lisp does a \begingroup so it can rebind things, -% including the definition of @endlisp (which normally is erroneous). - -% Amount to narrow the margins by for @lisp. -\newskip\lispnarrowing \lispnarrowing=0.4in - -% This is the definition that ^^M gets inside @lisp, @example, and other -% such environments. \null is better than a space, since it doesn't -% have any width. -\def\lisppar{\null\endgraf} - -% Make each space character in the input produce a normal interword -% space in the output. Don't allow a line break at this space, as this -% is used only in environments like @example, where each line of input -% should produce a line of output anyway. -% -{\obeyspaces % -\gdef\sepspaces{\obeyspaces\let =\tie}} - -% Define \obeyedspace to be our active space, whatever it is. This is -% for use in \parsearg. -{\sepspaces% -\global\let\obeyedspace= } - -% This space is always present above and below environments. -\newskip\envskipamount \envskipamount = 0pt - -% Make spacing and below environment symmetrical. We use \parskip here -% to help in doing that, since in @example-like environments \parskip -% is reset to zero; thus the \afterenvbreak inserts no space -- but the -% start of the next paragraph will insert \parskip -% -\def\aboveenvbreak{{\advance\envskipamount by \parskip -\endgraf \ifdim\lastskip<\envskipamount -\removelastskip \penalty-50 \vskip\envskipamount \fi}} - -\let\afterenvbreak = \aboveenvbreak - -% \nonarrowing is a flag. If "set", @lisp etc don't narrow margins. -\let\nonarrowing=\relax - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% \cartouche: draw rectangle w/rounded corners around argument -\font\circle=lcircle10 -\newdimen\circthick -\newdimen\cartouter\newdimen\cartinner -\newskip\normbskip\newskip\normpskip\newskip\normlskip -\circthick=\fontdimen8\circle -% -\def\ctl{{\circle\char'013\hskip -6pt}}% 6pt from pl file: 1/2charwidth -\def\ctr{{\hskip 6pt\circle\char'010}} -\def\cbl{{\circle\char'012\hskip -6pt}} -\def\cbr{{\hskip 6pt\circle\char'011}} -\def\carttop{\hbox to \cartouter{\hskip\lskip - \ctl\leaders\hrule height\circthick\hfil\ctr - \hskip\rskip}} -\def\cartbot{\hbox to \cartouter{\hskip\lskip - \cbl\leaders\hrule height\circthick\hfil\cbr - \hskip\rskip}} -% -\newskip\lskip\newskip\rskip - -\long\def\cartouche{% -\begingroup - \lskip=\leftskip \rskip=\rightskip - \leftskip=0pt\rightskip=0pt %we want these *outside*. - \cartinner=\hsize \advance\cartinner by-\lskip - \advance\cartinner by-\rskip - \cartouter=\hsize - \advance\cartouter by 18pt % allow for 3pt kerns on either -% side, and for 6pt waste from -% each corner char - \normbskip=\baselineskip \normpskip=\parskip \normlskip=\lineskip - % Flag to tell @lisp, etc., not to narrow margin. - \let\nonarrowing=\comment - \vbox\bgroup - \baselineskip=0pt\parskip=0pt\lineskip=0pt - \carttop - \hbox\bgroup - \hskip\lskip - \vrule\kern3pt - \vbox\bgroup - \hsize=\cartinner - \kern3pt - \begingroup - \baselineskip=\normbskip - \lineskip=\normlskip - \parskip=\normpskip - \vskip -\parskip -\def\Ecartouche{% - \endgroup - \kern3pt - \egroup - \kern3pt\vrule - \hskip\rskip - \egroup - \cartbot - \egroup -\endgroup -}} - - -% This macro is called at the beginning of all the @example variants, -% inside a group. -\def\nonfillstart{% - \aboveenvbreak - \inENV % This group ends at the end of the body - \hfuzz = 12pt % Don't be fussy - \sepspaces % Make spaces be word-separators rather than space tokens. - \singlespace - \let\par = \lisppar % don't ignore blank lines - \obeylines % each line of input is a line of output - \parskip = 0pt - \parindent = 0pt - \emergencystretch = 0pt % don't try to avoid overfull boxes - % @cartouche defines \nonarrowing to inhibit narrowing - % at next level down. - \ifx\nonarrowing\relax - \advance \leftskip by \lispnarrowing - \exdentamount=\lispnarrowing - \let\exdent=\nofillexdent - \let\nonarrowing=\relax - \fi -} - -% To ending an @example-like environment, we first end the paragraph -% (via \afterenvbreak's vertical glue), and then the group. That way we -% keep the zero \parskip that the environments set -- \parskip glue -% will be inserted at the beginning of the next paragraph in the -% document, after the environment. -% -\def\nonfillfinish{\afterenvbreak\endgroup}% - -% This macro is -\def\lisp{\begingroup - \nonfillstart - \let\Elisp = \nonfillfinish - \tt - \rawbackslash % have \ input char produce \ char from current font - \gobble -} - -% Define the \E... control sequence only if we are inside the -% environment, so the error checking in \end will work. -% -% We must call \lisp last in the definition, since it reads the -% return following the @example (or whatever) command. -% -\def\example{\begingroup \def\Eexample{\nonfillfinish\endgroup}\lisp} -\def\smallexample{\begingroup \def\Esmallexample{\nonfillfinish\endgroup}\lisp} -\def\smalllisp{\begingroup \def\Esmalllisp{\nonfillfinish\endgroup}\lisp} - -% @smallexample and @smalllisp. This is not used unless the @smallbook -% command is given. Originally contributed by Pavel@xerox. -% -\def\smalllispx{\begingroup - \nonfillstart - \let\Esmalllisp = \nonfillfinish - \let\Esmallexample = \nonfillfinish - % - % Smaller interline space and fonts for small examples. - \setleading{10pt}% - \indexfonts \tt - \rawbackslash % make \ output the \ character from the current font (tt) - \gobble -} - -% This is @display; same as @lisp except use roman font. -% -\def\display{\begingroup - \nonfillstart - \let\Edisplay = \nonfillfinish - \gobble -} - -% This is @format; same as @display except don't narrow margins. -% -\def\format{\begingroup - \let\nonarrowing = t - \nonfillstart - \let\Eformat = \nonfillfinish - \gobble -} - -% @flushleft (same as @format) and @flushright. -% -\def\flushleft{\begingroup - \let\nonarrowing = t - \nonfillstart - \let\Eflushleft = \nonfillfinish - \gobble -} -\def\flushright{\begingroup - \let\nonarrowing = t - \nonfillstart - \let\Eflushright = \nonfillfinish - \advance\leftskip by 0pt plus 1fill - \gobble} - -% @quotation does normal linebreaking (hence we can't use \nonfillstart) -% and narrows the margins. -% -\def\quotation{% - \begingroup\inENV %This group ends at the end of the @quotation body - {\parskip=0pt \aboveenvbreak}% because \aboveenvbreak inserts \parskip - \singlespace - \parindent=0pt - % We have retained a nonzero parskip for the environment, since we're - % doing normal filling. So to avoid extra space below the environment... - \def\Equotation{\parskip = 0pt \nonfillfinish}% - % - % @cartouche defines \nonarrowing to inhibit narrowing at next level down. - \ifx\nonarrowing\relax - \advance\leftskip by \lispnarrowing - \advance\rightskip by \lispnarrowing - \exdentamount = \lispnarrowing - \let\nonarrowing = \relax - \fi -} - -\message{defuns,} -% Define formatter for defuns -% First, allow user to change definition object font (\df) internally -\def\setdeffont #1 {\csname DEF#1\endcsname} - -\newskip\defbodyindent \defbodyindent=.4in -\newskip\defargsindent \defargsindent=50pt -\newskip\deftypemargin \deftypemargin=12pt -\newskip\deflastargmargin \deflastargmargin=18pt - -\newcount\parencount -% define \functionparens, which makes ( and ) and & do special things. -% \functionparens affects the group it is contained in. -\def\activeparens{% -\catcode`\(=\active \catcode`\)=\active \catcode`\&=\active -\catcode`\[=\active \catcode`\]=\active} - -% Make control sequences which act like normal parenthesis chars. -\let\lparen = ( \let\rparen = ) - -{\activeparens % Now, smart parens don't turn on until &foo (see \amprm) - -% Be sure that we always have a definition for `(', etc. For example, -% if the fn name has parens in it, \boldbrax will not be in effect yet, -% so TeX would otherwise complain about undefined control sequence. -\global\let(=\lparen \global\let)=\rparen -\global\let[=\lbrack \global\let]=\rbrack - -\gdef\functionparens{\boldbrax\let&=\amprm\parencount=0 } -\gdef\boldbrax{\let(=\opnr\let)=\clnr\let[=\lbrb\let]=\rbrb} -% This is used to turn on special parens -% but make & act ordinary (given that it's active). -\gdef\boldbraxnoamp{\let(=\opnr\let)=\clnr\let[=\lbrb\let]=\rbrb\let&=\ampnr} - -% Definitions of (, ) and & used in args for functions. -% This is the definition of ( outside of all parentheses. -\gdef\oprm#1 {{\rm\char`\(}#1 \bf \let(=\opnested % -\global\advance\parencount by 1 } -% -% This is the definition of ( when already inside a level of parens. -\gdef\opnested{\char`\(\global\advance\parencount by 1 } -% -\gdef\clrm{% Print a paren in roman if it is taking us back to depth of 0. -% also in that case restore the outer-level definition of (. -\ifnum \parencount=1 {\rm \char `\)}\sl \let(=\oprm \else \char `\) \fi -\global\advance \parencount by -1 } -% If we encounter &foo, then turn on ()-hacking afterwards -\gdef\amprm#1 {{\rm\}\let(=\oprm \let)=\clrm\ } -% -\gdef\normalparens{\boldbrax\let&=\ampnr} -} % End of definition inside \activeparens -%% These parens (in \boldbrax) actually are a little bolder than the -%% contained text. This is especially needed for [ and ] -\def\opnr{{\sf\char`\(}} \def\clnr{{\sf\char`\)}} \def\ampnr{\&} -\def\lbrb{{\bf\char`\[}} \def\rbrb{{\bf\char`\]}} - -% First, defname, which formats the header line itself. -% #1 should be the function name. -% #2 should be the type of definition, such as "Function". - -\def\defname #1#2{% -% Get the values of \leftskip and \rightskip as they were -% outside the @def... -\dimen2=\leftskip -\advance\dimen2 by -\defbodyindent -\dimen3=\rightskip -\advance\dimen3 by -\defbodyindent -\noindent % -\setbox0=\hbox{\hskip \deflastargmargin{\rm #2}\hskip \deftypemargin}% -\dimen0=\hsize \advance \dimen0 by -\wd0 % compute size for first line -\dimen1=\hsize \advance \dimen1 by -\defargsindent %size for continuations -\parshape 2 0in \dimen0 \defargsindent \dimen1 % -% Now output arg 2 ("Function" or some such) -% ending at \deftypemargin from the right margin, -% but stuck inside a box of width 0 so it does not interfere with linebreaking -{% Adjust \hsize to exclude the ambient margins, -% so that \rightline will obey them. -\advance \hsize by -\dimen2 \advance \hsize by -\dimen3 -\rlap{\rightline{{\rm #2}\hskip \deftypemargin}}}% -% Make all lines underfull and no complaints: -\tolerance=10000 \hbadness=10000 -\advance\leftskip by -\defbodyindent -\exdentamount=\defbodyindent -{\df #1}\enskip % Generate function name -} - -% Actually process the body of a definition -% #1 should be the terminating control sequence, such as \Edefun. -% #2 should be the "another name" control sequence, such as \defunx. -% #3 should be the control sequence that actually processes the header, -% such as \defunheader. - -\def\defparsebody #1#2#3{\begingroup\inENV% Environment for definitionbody -\medbreak % -% Define the end token that this defining construct specifies -% so that it will exit this group. -\def#1{\endgraf\endgroup\medbreak}% -\def#2{\begingroup\obeylines\activeparens\spacesplit#3}% -\parindent=0in -\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindent -\exdentamount=\defbodyindent -\begingroup % -\catcode 61=\active % 61 is `=' -\obeylines\activeparens\spacesplit#3} - -\def\defmethparsebody #1#2#3#4 {\begingroup\inENV % -\medbreak % -% Define the end token that this defining construct specifies -% so that it will exit this group. -\def#1{\endgraf\endgroup\medbreak}% -\def#2##1 {\begingroup\obeylines\activeparens\spacesplit{#3{##1}}}% -\parindent=0in -\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindent -\exdentamount=\defbodyindent -\begingroup\obeylines\activeparens\spacesplit{#3{#4}}} - -\def\defopparsebody #1#2#3#4#5 {\begingroup\inENV % -\medbreak % -% Define the end token that this defining construct specifies -% so that it will exit this group. -\def#1{\endgraf\endgroup\medbreak}% -\def#2##1 ##2 {\def#4{##1}% -\begingroup\obeylines\activeparens\spacesplit{#3{##2}}}% -\parindent=0in -\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindent -\exdentamount=\defbodyindent -\begingroup\obeylines\activeparens\spacesplit{#3{#5}}} - -% These parsing functions are similar to the preceding ones -% except that they do not make parens into active characters. -% These are used for "variables" since they have no arguments. - -\def\defvarparsebody #1#2#3{\begingroup\inENV% Environment for definitionbody -\medbreak % -% Define the end token that this defining construct specifies -% so that it will exit this group. -\def#1{\endgraf\endgroup\medbreak}% -\def#2{\begingroup\obeylines\spacesplit#3}% -\parindent=0in -\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindent -\exdentamount=\defbodyindent -\begingroup % -\catcode 61=\active % -\obeylines\spacesplit#3} - -% This is used for \def{tp,vr}parsebody. It could probably be used for -% some of the others, too, with some judicious conditionals. -% -\def\parsebodycommon#1#2#3{% - \begingroup\inENV % - \medbreak % - % Define the end token that this defining construct specifies - % so that it will exit this group. - \def#1{\endgraf\endgroup\medbreak}% - \def#2##1 {\begingroup\obeylines\spacesplit{#3{##1}}}% - \parindent=0in - \advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindent - \exdentamount=\defbodyindent - \begingroup\obeylines -} - -\def\defvrparsebody#1#2#3#4 {% - \parsebodycommon{#1}{#2}{#3}% - \spacesplit{#3{#4}}% -} - -% This loses on `@deftp {Data Type} {struct termios}' -- it thinks the -% type is just `struct', because we lose the braces in `{struct -% termios}' when \spacesplit reads its undelimited argument. Sigh. -% \let\deftpparsebody=\defvrparsebody -% -% So, to get around this, we put \empty in with the type name. That -% way, TeX won't find exactly `{...}' as an undelimited argument, and -% won't strip off the braces. -% -\def\deftpparsebody #1#2#3#4 {% - \parsebodycommon{#1}{#2}{#3}% - \spacesplit{\parsetpheaderline{#3{#4}}}\empty -} - -% Fine, but then we have to eventually remove the \empty *and* the -% braces (if any). That's what this does, putting the result in \tptemp. -% -\def\removeemptybraces\empty#1\relax{\def\tptemp{#1}}% - -% After \spacesplit has done its work, this is called -- #1 is the final -% thing to call, #2 the type name (which starts with \empty), and #3 -% (which might be empty) the arguments. -% -\def\parsetpheaderline#1#2#3{% - \removeemptybraces#2\relax - #1{\tptemp}{#3}% -}% - -\def\defopvarparsebody #1#2#3#4#5 {\begingroup\inENV % -\medbreak % -% Define the end token that this defining construct specifies -% so that it will exit this group. -\def#1{\endgraf\endgroup\medbreak}% -\def#2##1 ##2 {\def#4{##1}% -\begingroup\obeylines\spacesplit{#3{##2}}}% -\parindent=0in -\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindent -\exdentamount=\defbodyindent -\begingroup\obeylines\spacesplit{#3{#5}}} - -% Split up #2 at the first space token. -% call #1 with two arguments: -% the first is all of #2 before the space token, -% the second is all of #2 after that space token. -% If #2 contains no space token, all of it is passed as the first arg -% and the second is passed as empty. - -{\obeylines -\gdef\spacesplit#1#2^^M{\endgroup\spacesplitfoo{#1}#2 \relax\spacesplitfoo}% -\long\gdef\spacesplitfoo#1#2 #3#4\spacesplitfoo{% -\ifx\relax #3% -#1{#2}{}\else #1{#2}{#3#4}\fi}} - -% So much for the things common to all kinds of definitions. - -% Define @defun. - -% First, define the processing that is wanted for arguments of \defun -% Use this to expand the args and terminate the paragraph they make up - -\def\defunargs #1{\functionparens \sl -% Expand, preventing hyphenation at `-' chars. -% Note that groups don't affect changes in \hyphenchar. -\hyphenchar\tensl=0 -#1% -\hyphenchar\tensl=45 -\ifnum\parencount=0 \else \errmessage{unbalanced parens in @def arguments}\fi% -\interlinepenalty=10000 -\advance\rightskip by 0pt plus 1fil -\endgraf\penalty 10000\vskip -\parskip\penalty 10000% -} - -\def\deftypefunargs #1{% -% Expand, preventing hyphenation at `-' chars. -% Note that groups don't affect changes in \hyphenchar. -% Use \boldbraxnoamp, not \functionparens, so that & is not special. -\boldbraxnoamp -\tclose{#1}% avoid \code because of side effects on active chars -\interlinepenalty=10000 -\advance\rightskip by 0pt plus 1fil -\endgraf\penalty 10000\vskip -\parskip\penalty 10000% -} - -% Do complete processing of one @defun or @defunx line already parsed. - -% @deffn Command forward-char nchars - -\def\deffn{\defmethparsebody\Edeffn\deffnx\deffnheader} - -\def\deffnheader #1#2#3{\doind {fn}{\code{#2}}% -\begingroup\defname {#2}{#1}\defunargs{#3}\endgroup % -\catcode 61=\other % Turn off change made in \defparsebody -} - -% @defun == @deffn Function - -\def\defun{\defparsebody\Edefun\defunx\defunheader} - -\def\defunheader #1#2{\doind {fn}{\code{#1}}% Make entry in function index -\begingroup\defname {#1}{Function}% -\defunargs {#2}\endgroup % -\catcode 61=\other % Turn off change made in \defparsebody -} - -% @deftypefun int foobar (int @var{foo}, float @var{bar}) - -\def\deftypefun{\defparsebody\Edeftypefun\deftypefunx\deftypefunheader} - -% #1 is the data type. #2 is the name and args. -\def\deftypefunheader #1#2{\deftypefunheaderx{#1}#2 \relax} -% #1 is the data type, #2 the name, #3 the args. -\def\deftypefunheaderx #1#2 #3\relax{% -\doind {fn}{\code{#2}}% Make entry in function index -\begingroup\defname {\defheaderxcond#1\relax$$$#2}{Function}% -\deftypefunargs {#3}\endgroup % -\catcode 61=\other % Turn off change made in \defparsebody -} - -% @deftypefn {Library Function} int foobar (int @var{foo}, float @var{bar}) - -\def\deftypefn{\defmethparsebody\Edeftypefn\deftypefnx\deftypefnheader} - -% \defheaderxcond#1\relax$$$ -% puts #1 in @code, followed by a space, but does nothing if #1 is null. -\def\defheaderxcond#1#2$$${\ifx#1\relax\else\code{#1#2} \fi} - -% #1 is the classification. #2 is the data type. #3 is the name and args. -\def\deftypefnheader #1#2#3{\deftypefnheaderx{#1}{#2}#3 \relax} -% #1 is the classification, #2 the data type, #3 the name, #4 the args. -\def\deftypefnheaderx #1#2#3 #4\relax{% -\doind {fn}{\code{#3}}% Make entry in function index -\begingroup -\normalparens % notably, turn off `&' magic, which prevents -% at least some C++ text from working -\defname {\defheaderxcond#2\relax$$$#3}{#1}% -\deftypefunargs {#4}\endgroup % -\catcode 61=\other % Turn off change made in \defparsebody -} - -% @defmac == @deffn Macro - -\def\defmac{\defparsebody\Edefmac\defmacx\defmacheader} - -\def\defmacheader #1#2{\doind {fn}{\code{#1}}% Make entry in function index -\begingroup\defname {#1}{Macro}% -\defunargs {#2}\endgroup % -\catcode 61=\other % Turn off change made in \defparsebody -} - -% @defspec == @deffn Special Form - -\def\defspec{\defparsebody\Edefspec\defspecx\defspecheader} - -\def\defspecheader #1#2{\doind {fn}{\code{#1}}% Make entry in function index -\begingroup\defname {#1}{Special Form}% -\defunargs {#2}\endgroup % -\catcode 61=\other % Turn off change made in \defparsebody -} - -% This definition is run if you use @defunx -% anywhere other than immediately after a @defun or @defunx. - -\def\deffnx #1 {\errmessage{@deffnx in invalid context}} -\def\defunx #1 {\errmessage{@defunx in invalid context}} -\def\defmacx #1 {\errmessage{@defmacx in invalid context}} -\def\defspecx #1 {\errmessage{@defspecx in invalid context}} -\def\deftypefnx #1 {\errmessage{@deftypefnx in invalid context}} -\def\deftypeunx #1 {\errmessage{@deftypeunx in invalid context}} - -% @defmethod, and so on - -% @defop {Funny Method} foo-class frobnicate argument - -\def\defop #1 {\def\defoptype{#1}% -\defopparsebody\Edefop\defopx\defopheader\defoptype} - -\def\defopheader #1#2#3{% -\dosubind {fn}{\code{#2}}{on #1}% Make entry in function index -\begingroup\defname {#2}{\defoptype{} on #1}% -\defunargs {#3}\endgroup % -} - -% @defmethod == @defop Method - -\def\defmethod{\defmethparsebody\Edefmethod\defmethodx\defmethodheader} - -\def\defmethodheader #1#2#3{% -\dosubind {fn}{\code{#2}}{on #1}% entry in function index -\begingroup\defname {#2}{Method on #1}% -\defunargs {#3}\endgroup % -} - -% @defcv {Class Option} foo-class foo-flag - -\def\defcv #1 {\def\defcvtype{#1}% -\defopvarparsebody\Edefcv\defcvx\defcvarheader\defcvtype} - -\def\defcvarheader #1#2#3{% -\dosubind {vr}{\code{#2}}{of #1}% Make entry in var index -\begingroup\defname {#2}{\defcvtype{} of #1}% -\defvarargs {#3}\endgroup % -} - -% @defivar == @defcv {Instance Variable} - -\def\defivar{\defvrparsebody\Edefivar\defivarx\defivarheader} - -\def\defivarheader #1#2#3{% -\dosubind {vr}{\code{#2}}{of #1}% Make entry in var index -\begingroup\defname {#2}{Instance Variable of #1}% -\defvarargs {#3}\endgroup % -} - -% These definitions are run if you use @defmethodx, etc., -% anywhere other than immediately after a @defmethod, etc. - -\def\defopx #1 {\errmessage{@defopx in invalid context}} -\def\defmethodx #1 {\errmessage{@defmethodx in invalid context}} -\def\defcvx #1 {\errmessage{@defcvx in invalid context}} -\def\defivarx #1 {\errmessage{@defivarx in invalid context}} - -% Now @defvar - -% First, define the processing that is wanted for arguments of @defvar. -% This is actually simple: just print them in roman. -% This must expand the args and terminate the paragraph they make up -\def\defvarargs #1{\normalparens #1% -\interlinepenalty=10000 -\endgraf\penalty 10000\vskip -\parskip\penalty 10000} - -% @defvr Counter foo-count - -\def\defvr{\defvrparsebody\Edefvr\defvrx\defvrheader} - -\def\defvrheader #1#2#3{\doind {vr}{\code{#2}}% -\begingroup\defname {#2}{#1}\defvarargs{#3}\endgroup} - -% @defvar == @defvr Variable - -\def\defvar{\defvarparsebody\Edefvar\defvarx\defvarheader} - -\def\defvarheader #1#2{\doind {vr}{\code{#1}}% Make entry in var index -\begingroup\defname {#1}{Variable}% -\defvarargs {#2}\endgroup % -} - -% @defopt == @defvr {User Option} - -\def\defopt{\defvarparsebody\Edefopt\defoptx\defoptheader} - -\def\defoptheader #1#2{\doind {vr}{\code{#1}}% Make entry in var index -\begingroup\defname {#1}{User Option}% -\defvarargs {#2}\endgroup % -} - -% @deftypevar int foobar - -\def\deftypevar{\defvarparsebody\Edeftypevar\deftypevarx\deftypevarheader} - -% #1 is the data type. #2 is the name. -\def\deftypevarheader #1#2{% -\doind {vr}{\code{#2}}% Make entry in variables index -\begingroup\defname {\defheaderxcond#1\relax$$$#2}{Variable}% -\interlinepenalty=10000 -\endgraf\penalty 10000\vskip -\parskip\penalty 10000 -\endgroup} - -% @deftypevr {Global Flag} int enable - -\def\deftypevr{\defvrparsebody\Edeftypevr\deftypevrx\deftypevrheader} - -\def\deftypevrheader #1#2#3{\doind {vr}{\code{#3}}% -\begingroup\defname {\defheaderxcond#2\relax$$$#3}{#1} -\interlinepenalty=10000 -\endgraf\penalty 10000\vskip -\parskip\penalty 10000 -\endgroup} - -% This definition is run if you use @defvarx -% anywhere other than immediately after a @defvar or @defvarx. - -\def\defvrx #1 {\errmessage{@defvrx in invalid context}} -\def\defvarx #1 {\errmessage{@defvarx in invalid context}} -\def\defoptx #1 {\errmessage{@defoptx in invalid context}} -\def\deftypevarx #1 {\errmessage{@deftypevarx in invalid context}} -\def\deftypevrx #1 {\errmessage{@deftypevrx in invalid context}} - -% Now define @deftp -% Args are printed in bold, a slight difference from @defvar. - -\def\deftpargs #1{\bf \defvarargs{#1}} - -% @deftp Class window height width ... - -\def\deftp{\deftpparsebody\Edeftp\deftpx\deftpheader} - -\def\deftpheader #1#2#3{\doind {tp}{\code{#2}}% -\begingroup\defname {#2}{#1}\deftpargs{#3}\endgroup} - -% This definition is run if you use @deftpx, etc -% anywhere other than immediately after a @deftp, etc. - -\def\deftpx #1 {\errmessage{@deftpx in invalid context}} - -\message{cross reference,} -% Define cross-reference macros -\newwrite \auxfile - -\newif\ifhavexrefs % True if xref values are known. -\newif\ifwarnedxrefs % True if we warned once that they aren't known. - -% \setref{foo} defines a cross-reference point named foo. - -\def\setref#1{% -\dosetq{#1-title}{Ytitle}% -\dosetq{#1-pg}{Ypagenumber}% -\dosetq{#1-snt}{Ysectionnumberandtype}} - -\def\unnumbsetref#1{% -\dosetq{#1-title}{Ytitle}% -\dosetq{#1-pg}{Ypagenumber}% -\dosetq{#1-snt}{Ynothing}} - -\def\appendixsetref#1{% -\dosetq{#1-title}{Ytitle}% -\dosetq{#1-pg}{Ypagenumber}% -\dosetq{#1-snt}{Yappendixletterandtype}} - -% \xref, \pxref, and \ref generate cross-references to specified points. -% For \xrefX, #1 is the node name, #2 the name of the Info -% cross-reference, #3 the printed node name, #4 the name of the Info -% file, #5 the name of the printed manual. All but the node name can be -% omitted. -% -\def\pxref#1{\putwordsee{} \xrefX[#1,,,,,,,]} -\def\xref#1{\putwordSee{} \xrefX[#1,,,,,,,]} -\def\ref#1{\xrefX[#1,,,,,,,]} -\def\xrefX[#1,#2,#3,#4,#5,#6]{\begingroup - \def\printedmanual{\ignorespaces #5}% - \def\printednodename{\ignorespaces #3}% - \setbox1=\hbox{\printedmanual}% - \setbox0=\hbox{\printednodename}% - \ifdim \wd0 = 0pt - % No printed node name was explicitly given. - \ifx\SETxref-automatic-section-title\relax % - % Use the actual chapter/section title appear inside - % the square brackets. Use the real section title if we have it. - \ifdim \wd1>0pt% - % It is in another manual, so we don't have it. - \def\printednodename{\ignorespaces #1}% - \else - \ifhavexrefs - % We know the real title if we have the xref values. - \def\printednodename{\refx{#1-title}}% - \else - % Otherwise just copy the Info node name. - \def\printednodename{\ignorespaces #1}% - \fi% - \fi - \def\printednodename{#1-title}% - \else - % Use the node name inside the square brackets. - \def\printednodename{\ignorespaces #1}% - \fi - \fi - % - % If we use \unhbox0 and \unhbox1 to print the node names, TeX does not - % insert empty discretionaries after hyphens, which means that it will - % not find a line break at a hyphen in a node names. Since some manuals - % are best written with fairly long node names, containing hyphens, this - % is a loss. Therefore, we give the text of the node name again, so it - % is as if TeX is seeing it for the first time. - \ifdim \wd1 > 0pt - \putwordsection{} ``\printednodename'' in \cite{\printedmanual}% - \else - % _ (for example) has to be the character _ for the purposes of the - % control sequence corresponding to the node, but it has to expand - % into the usual \leavevmode...\vrule stuff for purposes of - % printing. So we \turnoffactive for the \refx-snt, back on for the - % printing, back off for the \refx-pg. - {\turnoffactive \refx{#1-snt}{}}% - \space [\printednodename],\space - \turnoffactive \putwordpage\tie\refx{#1-pg}{}% - \fi -\endgroup} - -% \dosetq is the interface for calls from other macros - -% Use \turnoffactive so that punctuation chars such as underscore -% work in node names. -\def\dosetq #1#2{{\let\folio=0 \turnoffactive \auxhat% -\edef\next{\write\auxfile{\internalsetq {#1}{#2}}}% -\next}} - -% \internalsetq {foo}{page} expands into -% CHARACTERS 'xrdef {foo}{...expansion of \Ypage...} -% When the aux file is read, ' is the escape character - -\def\internalsetq #1#2{'xrdef {#1}{\csname #2\endcsname}} - -% Things to be expanded by \internalsetq - -\def\Ypagenumber{\folio} - -\def\Ytitle{\thissection} - -\def\Ynothing{} - -\def\Ysectionnumberandtype{% -\ifnum\secno=0 \putwordChapter\xreftie\the\chapno % -\else \ifnum \subsecno=0 \putwordSection\xreftie\the\chapno.\the\secno % -\else \ifnum \subsubsecno=0 % -\putwordSection\xreftie\the\chapno.\the\secno.\the\subsecno % -\else % -\putwordSection\xreftie\the\chapno.\the\secno.\the\subsecno.\the\subsubsecno % -\fi \fi \fi } - -\def\Yappendixletterandtype{% -\ifnum\secno=0 \putwordAppendix\xreftie'char\the\appendixno{}% -\else \ifnum \subsecno=0 \putwordSection\xreftie'char\the\appendixno.\the\secno % -\else \ifnum \subsubsecno=0 % -\putwordSection\xreftie'char\the\appendixno.\the\secno.\the\subsecno % -\else % -\putwordSection\xreftie'char\the\appendixno.\the\secno.\the\subsecno.\the\subsubsecno % -\fi \fi \fi } - -\gdef\xreftie{'tie} - -% Use TeX 3.0's \inputlineno to get the line number, for better error -% messages, but if we're using an old version of TeX, don't do anything. -% -\ifx\inputlineno\thisisundefined - \let\linenumber = \empty % Non-3.0. -\else - \def\linenumber{\the\inputlineno:\space} -\fi - -% Define \refx{NAME}{SUFFIX} to reference a cross-reference string named NAME. -% If its value is nonempty, SUFFIX is output afterward. - -\def\refx#1#2{% - \expandafter\ifx\csname X#1\endcsname\relax - % If not defined, say something at least. - $\langle$un\-de\-fined$\rangle$% - \ifhavexrefs - \message{\linenumber Undefined cross reference `#1'.}% - \else - \ifwarnedxrefs\else - \global\warnedxrefstrue - \message{Cross reference values unknown; you must run TeX again.}% - \fi - \fi - \else - % It's defined, so just use it. - \csname X#1\endcsname - \fi - #2% Output the suffix in any case. -} - -% Read the last existing aux file, if any. No error if none exists. - -% This is the macro invoked by entries in the aux file. -\def\xrdef #1#2{ -{\catcode`\'=\other\expandafter \gdef \csname X#1\endcsname {#2}}} - -\def\readauxfile{% -\begingroup -\catcode `\^^@=\other -\catcode `\=\other -\catcode `\=\other -\catcode `\^^C=\other -\catcode `\^^D=\other -\catcode `\^^E=\other -\catcode `\^^F=\other -\catcode `\^^G=\other -\catcode `\^^H=\other -\catcode `\ =\other -\catcode `\^^L=\other -\catcode `\=\other -\catcode `\=\other -\catcode `\=\other -\catcode `\=\other -\catcode `\=\other -\catcode `\=\other -\catcode `\=\other -\catcode `\=\other -\catcode `\=\other -\catcode `\=\other -\catcode `\=\other -\catcode `\=\other -\catcode 26=\other -\catcode `\^^[=\other -\catcode `\^^\=\other -\catcode `\^^]=\other -\catcode `\^^^=\other -\catcode `\^^_=\other -\catcode `\@=\other -\catcode `\^=\other -\catcode `\~=\other -\catcode `\[=\other -\catcode `\]=\other -\catcode`\"=\other -\catcode`\_=\other -\catcode`\|=\other -\catcode`\<=\other -\catcode`\>=\other -\catcode `\$=\other -\catcode `\#=\other -\catcode `\&=\other -% `\+ does not work, so use 43. -\catcode 43=\other -% Make the characters 128-255 be printing characters -{% - \count 1=128 - \def\loop{% - \catcode\count 1=\other - \advance\count 1 by 1 - \ifnum \count 1<256 \loop \fi - }% -}% -% the aux file uses ' as the escape. -% Turn off \ as an escape so we do not lose on -% entries which were dumped with control sequences in their names. -% For example, 'xrdef {$\leq $-fun}{page ...} made by @defun ^^ -% Reference to such entries still does not work the way one would wish, -% but at least they do not bomb out when the aux file is read in. -\catcode `\{=1 \catcode `\}=2 -\catcode `\%=\other -\catcode `\'=0 -\catcode`\^=7 % to make ^^e4 etc usable in xref tags -\catcode `\\=\other -\openin 1 \jobname.aux -\ifeof 1 \else \closein 1 \input \jobname.aux \global\havexrefstrue -\global\warnedobstrue -\fi -% Open the new aux file. Tex will close it automatically at exit. -\openout \auxfile=\jobname.aux -\endgroup} - - -% Footnotes. - -\newcount \footnoteno - -% The trailing space in the following definition for supereject is -% vital for proper filling; pages come out unaligned when you do a -% pagealignmacro call if that space before the closing brace is -% removed. -\def\supereject{\par\penalty -20000\footnoteno =0 } - -% @footnotestyle is meaningful for info output only.. -\let\footnotestyle=\comment - -\let\ptexfootnote=\footnote - -{\catcode `\@=11 -% -% Auto-number footnotes. Otherwise like plain. -\gdef\footnote{% - \global\advance\footnoteno by \@ne - \edef\thisfootno{$^{\the\footnoteno}$}% - % - % In case the footnote comes at the end of a sentence, preserve the - % extra spacing after we do the footnote number. - \let\@sf\empty - \ifhmode\edef\@sf{\spacefactor\the\spacefactor}\/\fi - % - % Remove inadvertent blank space before typesetting the footnote number. - \unskip - \thisfootno\@sf - \footnotezzz -}% - -% Don't bother with the trickery in plain.tex to not require the -% footnote text as a parameter. Our footnotes don't need to be so general. -% -\long\gdef\footnotezzz#1{\insert\footins{% - % We want to typeset this text as a normal paragraph, even if the - % footnote reference occurs in (for example) a display environment. - % So reset some parameters. - \interlinepenalty\interfootnotelinepenalty - \splittopskip\ht\strutbox % top baseline for broken footnotes - \splitmaxdepth\dp\strutbox - \floatingpenalty\@MM - \leftskip\z@skip - \rightskip\z@skip - \spaceskip\z@skip - \xspaceskip\z@skip - \parindent\defaultparindent - % - % Hang the footnote text off the number. - \hang - \textindent{\thisfootno}% - % - % Don't crash into the line above the footnote text. Since this - % expands into a box, it must come within the paragraph, lest it - % provide a place where TeX can split the footnote. - \footstrut - #1\strut}% -} - -}%end \catcode `\@=11 - -% Set the baselineskip to #1, and the lineskip and strut size -% correspondingly. There is no deep meaning behind these magic numbers -% used as factors; they just match (closely enough) what Knuth defined. -% -\def\lineskipfactor{.08333} -\def\strutheightpercent{.70833} -\def\strutdepthpercent {.29167} -% -\def\setleading#1{% - \normalbaselineskip = #1\relax - \normallineskip = \lineskipfactor\normalbaselineskip - \normalbaselines - \setbox\strutbox =\hbox{% - \vrule width0pt height\strutheightpercent\baselineskip - depth \strutdepthpercent \baselineskip - }% -} - -% @| inserts a changebar to the left of the current line. It should -% surround any changed text. This approach does *not* work if the -% change spans more than two lines of output. To handle that, we would -% have adopt a much more difficult approach (putting marks into the main -% vertical list for the beginning and end of each change). -% -\def\|{% - % \vadjust can only be used in horizontal mode. - \leavevmode - % - % Append this vertical mode material after the current line in the output. - \vadjust{% - % We want to insert a rule with the height and depth of the current - % leading; that is exactly what \strutbox is supposed to record. - \vskip-\baselineskip - % - % \vadjust-items are inserted at the left edge of the type. So - % the \llap here moves out into the left-hand margin. - \llap{% - % - % For a thicker or thinner bar, change the `1pt'. - \vrule height\baselineskip width1pt - % - % This is the space between the bar and the text. - \hskip 12pt - }% - }% -} - -% For a final copy, take out the rectangles -% that mark overfull boxes (in case you have decided -% that the text looks ok even though it passes the margin). -% -\def\finalout{\overfullrule=0pt} - - -% End of control word definitions. - -\message{and turning on texinfo input format.} - -\def\openindices{% - \newindex{cp}% - \newcodeindex{fn}% - \newcodeindex{vr}% - \newcodeindex{tp}% - \newcodeindex{ky}% - \newcodeindex{pg}% -} - -% Set some numeric style parameters, for 8.5 x 11 format. - -%\hsize = 6.5in -\newdimen\defaultparindent \defaultparindent = 15pt -\parindent = \defaultparindent -\parskip 18pt plus 1pt -\setleading{15pt} -\advance\topskip by 1.2cm - -% Prevent underfull vbox error messages. -\vbadness=10000 - -% Following George Bush, just get rid of widows and orphans. -\widowpenalty=10000 -\clubpenalty=10000 - -% Use TeX 3.0's \emergencystretch to help line breaking, but if we're -% using an old version of TeX, don't do anything. We want the amount of -% stretch added to depend on the line length, hence the dependence on -% \hsize. This makes it come to about 9pt for the 8.5x11 format. -% -\ifx\emergencystretch\thisisundefined - % Allow us to assign to \emergencystretch anyway. - \def\emergencystretch{\dimen0}% -\else - \emergencystretch = \hsize - \divide\emergencystretch by 45 -\fi - -% Use @smallbook to reset parameters for 7x9.5 format (or else 7x9.25) -\def\smallbook{ - -% These values for secheadingskip and subsecheadingskip are -% experiments. RJC 7 Aug 1992 -\global\secheadingskip = 17pt plus 6pt minus 3pt -\global\subsecheadingskip = 14pt plus 6pt minus 3pt - -\global\lispnarrowing = 0.3in -\setleading{12pt} -\advance\topskip by -1cm -\global\parskip 3pt plus 1pt -\global\hsize = 5in -\global\vsize=7.5in -\global\tolerance=700 -\global\hfuzz=1pt -\global\contentsrightmargin=0pt -\global\deftypemargin=0pt -\global\defbodyindent=.5cm - -\global\pagewidth=\hsize -\global\pageheight=\vsize - -\global\let\smalllisp=\smalllispx -\global\let\smallexample=\smalllispx -\global\def\Esmallexample{\Esmalllisp} -} - -% Use @afourpaper to print on European A4 paper. -\def\afourpaper{ -\global\tolerance=700 -\global\hfuzz=1pt -\setleading{12pt} -\global\parskip 15pt plus 1pt - -\global\vsize= 53\baselineskip -\advance\vsize by \topskip -%\global\hsize= 5.85in % A4 wide 10pt -\global\hsize= 6.5in -\global\outerhsize=\hsize -\global\advance\outerhsize by 0.5in -\global\outervsize=\vsize -\global\advance\outervsize by 0.6in - -\global\pagewidth=\hsize -\global\pageheight=\vsize -} - -% Allow control of the text dimensions. Parameters in order: textheight; -% textwidth; \voffset; \hoffset (!); binding offset. All require a dimension; -% header is additional; added length extends the bottom of the page. - -\def\changepagesizes#1#2#3#4#5{ - \global\vsize= #1 - \advance\vsize by \topskip - \global\voffset= #3 - \global\hsize= #2 - \global\outerhsize=\hsize - \global\advance\outerhsize by 0.5in - \global\outervsize=\vsize - \global\advance\outervsize by 0.6in - \global\pagewidth=\hsize - \global\pageheight=\vsize - \global\normaloffset= #4 - \global\bindingoffset= #5} - -% This layout is compatible with Latex on A4 paper. - -\def\afourlatex{\changepagesizes{22cm}{15cm}{7mm}{4.6mm}{5mm}} - -% Use @afourwide to print on European A4 paper in wide format. -\def\afourwide{\afourpaper -\changepagesizes{9.5in}{6.5in}{\hoffset}{\normaloffset}{\bindingoffset}} - -% Define macros to output various characters with catcode for normal text. -\catcode`\"=\other -\catcode`\~=\other -\catcode`\^=\other -\catcode`\_=\other -\catcode`\|=\other -\catcode`\<=\other -\catcode`\>=\other -\catcode`\+=\other -\def\normaldoublequote{"} -\def\normaltilde{~} -\def\normalcaret{^} -\def\normalunderscore{_} -\def\normalverticalbar{|} -\def\normalless{<} -\def\normalgreater{>} -\def\normalplus{+} - -% This macro is used to make a character print one way in ttfont -% where it can probably just be output, and another way in other fonts, -% where something hairier probably needs to be done. -% -% #1 is what to print if we are indeed using \tt; #2 is what to print -% otherwise. Since all the Computer Modern typewriter fonts have zero -% interword stretch (and shrink), and it is reasonable to expect all -% typewriter fonts to have this, we can check that font parameter. -% -\def\ifusingtt#1#2{\ifdim \fontdimen3\the\font=0pt #1\else #2\fi} - -% Turn off all special characters except @ -% (and those which the user can use as if they were ordinary). -% Most of these we simply print from the \tt font, but for some, we can -% use math or other variants that look better in normal text. - -\catcode`\"=\active -\def\activedoublequote{{\tt \char '042}} -\let"=\activedoublequote -\catcode`\~=\active -\def~{{\tt \char '176}} -\chardef\hat=`\^ -\catcode`\^=\active -\def\auxhat{\def^{'hat}} -\def^{{\tt \hat}} - -\catcode`\_=\active -\def_{\ifusingtt\normalunderscore\_} -% Subroutine for the previous macro. -\def\_{\lvvmode \kern.06em \vbox{\hrule width.3em height.1ex}} - -% \lvvmode is equivalent in function to \leavevmode. -% Using \leavevmode runs into trouble when written out to -% an index file due to the expansion of \leavevmode into ``\unhbox -% \voidb@x'' ---which looks to TeX like ``\unhbox \voidb\x'' due to our -% magic tricks with @. -\def\lvvmode{\vbox to 0pt{}} - -\catcode`\|=\active -\def|{{\tt \char '174}} -\chardef \less=`\< -\catcode`\<=\active -\def<{{\tt \less}} -\chardef \gtr=`\> -\catcode`\>=\active -\def>{{\tt \gtr}} -\catcode`\+=\active -\def+{{\tt \char 43}} -%\catcode 27=\active -%\def^^[{$\diamondsuit$} - -% Set up an active definition for =, but don't enable it most of the time. -{\catcode`\==\active -\global\def={{\tt \char 61}}} - -\catcode`+=\active -\catcode`\_=\active - -% If a .fmt file is being used, characters that might appear in a file -% name cannot be active until we have parsed the command line. -% So turn them off again, and have \everyjob (or @setfilename) turn them on. -% \otherifyactive is called near the end of this file. -\def\otherifyactive{\catcode`+=\other \catcode`\_=\other} - -\catcode`\@=0 - -% \rawbackslashxx output one backslash character in current font -\global\chardef\rawbackslashxx=`\\ -%{\catcode`\\=\other -%@gdef@rawbackslashxx{\}} - -% \rawbackslash redefines \ as input to do \rawbackslashxx. -{\catcode`\\=\active -@gdef@rawbackslash{@let\=@rawbackslashxx }} - -% \normalbackslash outputs one backslash in fixed width font. -\def\normalbackslash{{\tt\rawbackslashxx}} - -% Say @foo, not \foo, in error messages. -\escapechar=`\@ - -% \catcode 17=0 % Define control-q -\catcode`\\=\active - -% Used sometimes to turn off (effectively) the active characters -% even after parsing them. -@def@turnoffactive{@let"=@normaldoublequote -@let\=@realbackslash -@let~=@normaltilde -@let^=@normalcaret -@let_=@normalunderscore -@let|=@normalverticalbar -@let<=@normalless -@let>=@normalgreater -@let+=@normalplus} - -@def@normalturnoffactive{@let"=@normaldoublequote -@let\=@normalbackslash -@let~=@normaltilde -@let^=@normalcaret -@let_=@normalunderscore -@let|=@normalverticalbar -@let<=@normalless -@let>=@normalgreater -@let+=@normalplus} - -% Make _ and + \other characters, temporarily. -% This is canceled by @fixbackslash. -@otherifyactive - -% If a .fmt file is being used, we don't want the `\input texinfo' to show up. -% That is what \eatinput is for; after that, the `\' should revert to printing -% a backslash. -% -@gdef@eatinput input texinfo{@fixbackslash} -@global@let\ = @eatinput - -% On the other hand, perhaps the file did not have a `\input texinfo'. Then -% the first `\{ in the file would cause an error. This macro tries to fix -% that, assuming it is called before the first `\' could plausibly occur. -% Also back turn on active characters that might appear in the input -% file name, in case not using a pre-dumped format. -% -@gdef@fixbackslash{@ifx\@eatinput @let\ = @normalbackslash @fi - @catcode`+=@active @catcode`@_=@active} - -%% These look ok in all fonts, so just make them not special. The @rm below -%% makes sure that the current font starts out as the newly loaded cmr10 -@catcode`@$=@other @catcode`@%=@other @catcode`@&=@other @catcode`@#=@other - -@textfonts -@rm - -@c Local variables: -@c page-delimiter: "^\\\\message" -@c End: diff --git a/lib/termcap/ltcap.h b/lib/termcap/ltcap.h index 507481f05..a97f0d8b0 100644 --- a/lib/termcap/ltcap.h +++ b/lib/termcap/ltcap.h @@ -1,19 +1,20 @@ -/* Local declarations for termcap library. - Copyright (C) 1999 Free Software Foundation, Inc. +/* ltcap.h - Local declarations for termcap library. */ - This program is free software; you can redistribute it and/or modify +/* Copyright (C) 1999-2009 Free Software Foundation, Inc. + + 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. + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - This program is distributed in the hope that it will be useful, + 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 this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ + along with Bash. If not, see . +*/ #ifndef _LTCAP_H_ #define _LTCAP_H_ 1 diff --git a/lib/termcap/termcap.c b/lib/termcap/termcap.c index 0addcc64e..7311349b7 100644 --- a/lib/termcap/termcap.c +++ b/lib/termcap/termcap.c @@ -1,19 +1,22 @@ -/* Work-alike for termcap, plus extra features. - Copyright (C) 1985, 86, 93, 94, 95 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; see the file COPYING. If not, write to the -Free Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ +/* termcap.c - Work-alike for termcap, plus extra features. */ + +/* Copyright (C) 1985, 1986, 1993,1994, 1995, 1998, 2001,2003,2005,2006,2008,2009 Free Software Foundation, Inc. + + This file is part of GNU Bash, the Bourne Again SHell. + + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ /* Emacs config.h may rename various library functions such as malloc. */ #ifdef HAVE_CONFIG_H diff --git a/lib/termcap/termcap.h b/lib/termcap/termcap.h index 40c2e2986..5d715956c 100644 --- a/lib/termcap/termcap.h +++ b/lib/termcap/termcap.h @@ -1,19 +1,20 @@ -/* Declarations for termcap library. - Copyright (C) 1991, 1992, 1995 Free Software Foundation, Inc. +/* termcap.h - public declarations for termcap library. */ - This program is free software; you can redistribute it and/or modify +/* Copyright (C) 1991, 1992, 1995, 2001, 2005, 2006, 2008,2009 Free Software Foundation, Inc. + + 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. + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - This program is distributed in the hope that it will be useful, + 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 this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ + along with Bash. If not, see . +*/ #ifndef _TERMCAP_H #define _TERMCAP_H 1 diff --git a/lib/termcap/tparam.c b/lib/termcap/tparam.c index 644042d29..c4bff088e 100644 --- a/lib/termcap/tparam.c +++ b/lib/termcap/tparam.c @@ -1,19 +1,22 @@ -/* Merge parameters into a termcap entry string. - Copyright (C) 1985, 87, 93, 95 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; see the file COPYING. If not, write to the -Free Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ +/* tparam.c - merge parameters into a termcap entry string. */ + +/* Copyright (C) 1985, 1986, 1993,1994, 1995, 1998, 2001,2003,2005,2006,2008,2009 Free Software Foundation, Inc. + + This file is part of GNU Bash, the Bourne Again SHell. + + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ /* Emacs config.h may rename various library functions such as malloc. */ #ifdef HAVE_CONFIG_H diff --git a/lib/termcap/version.c b/lib/termcap/version.c index ad2ab916f..cad57be6f 100644 --- a/lib/termcap/version.c +++ b/lib/termcap/version.c @@ -1,18 +1,22 @@ -/* Copyright (C) 1985-2002 Free Software Foundation, Inc. +/* version.c - termcap library version information. */ - This program is free software; you can redistribute it and/or modify +/* Copyright (C) 1985-2009 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. + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General - Public License for more details. + 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 this program; see the file COPYING. If not, write to the Free - Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ /* Make the library identifiable with the RCS ident command. */ static char *termcap_version_string = "\n$Version: GNU termcap 1.3 $\n"; diff --git a/lib/tilde/Makefile.in b/lib/tilde/Makefile.in index a9d3741f5..d5506c500 100644 --- a/lib/tilde/Makefile.in +++ b/lib/tilde/Makefile.in @@ -4,21 +4,20 @@ # # #################################################################### -# Copyright (C) 1996-2005 Free Software Foundation, Inc. +# Copyright (C) 1996-2009 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 free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# 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. +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . srcdir = @srcdir@ VPATH = .:@srcdir@ diff --git a/lib/tilde/shell.c b/lib/tilde/shell.c index a45af2d44..40a95b635 100644 --- a/lib/tilde/shell.c +++ b/lib/tilde/shell.c @@ -1,24 +1,23 @@ /* shell.c -- tilde utility functions that are normally provided by bash when readline is linked as part of the shell. */ -/* Copyright (C) 1998 Free Software Foundation, Inc. +/* Copyright (C) 1998-2009 Free Software Foundation, Inc. This file is part of the GNU Tilde Library. - The GNU Tilde Library 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 + The GNU Tilde Library is free software: you can redistribute it and/or + modify it under the terms of the GNU General Public License as published + by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - The GNU Tilde Library 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 + The GNU Tilde Library 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. - The GNU General Public License is often shipped with GNU software, and - is generally kept in a file called COPYING or LICENSE. If you do not - have a copy of the license, write to the Free Software Foundation, - 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ + You should have received a copy of the GNU General Public License + along with the GNU Tilde Library. If not, see . +*/ #if defined (HAVE_CONFIG_H) # include diff --git a/lib/tilde/tilde.c b/lib/tilde/tilde.c index 1b76c9f24..088ff1540 100644 --- a/lib/tilde/tilde.c +++ b/lib/tilde/tilde.c @@ -1,23 +1,23 @@ /* tilde.c -- Tilde expansion code (~/foo := $HOME/foo). */ -/* Copyright (C) 1988,1989 Free Software Foundation, Inc. +/* Copyright (C) 1988-2009 Free Software Foundation, Inc. - This file is part of GNU Readline, a library for reading lines - of text with interactive input and history editing. + This file is part of the GNU Readline Library (Readline), a library + for reading lines of text with interactive input and history editing. - Readline 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. + Readline is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Readline 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. + Readline 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 Readline; see the file COPYING. If not, write to the Free - Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ + along with Readline. If not, see . +*/ #if defined (HAVE_CONFIG_H) # include @@ -236,7 +236,7 @@ tilde_expand (string) string += end; expansion = tilde_expand_word (tilde_word); - free (tilde_word); + xfree (tilde_word); len = strlen (expansion); #ifdef __CYGWIN__ @@ -251,7 +251,7 @@ tilde_expand (string) strcpy (result + result_index, expansion); result_index += len; } - free (expansion); + xfree (expansion); } result[result_index] = '\0'; @@ -377,7 +377,7 @@ tilde_expand_word (filename) if (expansion) { dirname = glue_prefix_and_suffix (expansion, filename, user_len); - free (username); + xfree (username); free (expansion); return (dirname); } @@ -414,7 +414,7 @@ tilde_expand_word (filename) dirname = glue_prefix_and_suffix (user_entry->pw_dir, filename, user_len); #endif - free (username); + xfree (username); #if defined (HAVE_GETPWENT) endpwent (); #endif diff --git a/lib/tilde/tilde.h b/lib/tilde/tilde.h index c58ce20e7..e26dd0476 100644 --- a/lib/tilde/tilde.h +++ b/lib/tilde/tilde.h @@ -1,25 +1,24 @@ /* tilde.h: Externally available variables and function in libtilde.a. */ -/* Copyright (C) 1992 Free Software Foundation, Inc. +/* Copyright (C) 1992-2009 Free Software Foundation, Inc. - This file contains the Readline Library (the Library), a set of + This file contains the Readline Library (Readline), a set of routines for providing Emacs style line input to programs that ask for it. - The Library is free software; you can redistribute it and/or modify + Readline 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. - - The Library 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. - - The GNU General Public License is often shipped with GNU software, and - is generally kept in a file called COPYING or LICENSE. If you do not - have a copy of the license, write to the Free Software Foundation, - 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Readline 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 Readline. If not, see . +*/ #if !defined (_TILDE_H_) # define _TILDE_H_ diff --git a/list.c b/list.c index bb7943a80..88835f58e 100644 --- a/list.c +++ b/list.c @@ -1,23 +1,22 @@ /* list.c - Functions for manipulating linked lists of objects. */ -/* Copyright (C) 1996 - Free Software Foundation, Inc. +/* Copyright (C) 1996-2009 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. + 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #include "config.h" diff --git a/locale.c b/locale.c index 1a222dc46..53b447a32 100644 --- a/locale.c +++ b/locale.c @@ -1,22 +1,22 @@ /* locale.c - Miscellaneous internationalization functions. */ -/* Copyright (C) 1996-2004 Free Software Foundation, Inc. +/* Copyright (C) 1996-2009 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. + 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #include "config.h" @@ -30,10 +30,15 @@ #include "bashansi.h" #include #include "chartypes.h" +#include #include "shell.h" #include "input.h" /* For bash_input */ +#ifndef errno +extern int errno; +#endif + extern int dump_translatable_strings, dump_po_strings; /* The current locale when the program begins */ @@ -144,7 +149,10 @@ set_locale_var (var, value) char *var, *value; { int r; + char *x; + x = ""; + errno = 0; if (var[0] == 'T' && var[10] == 0) /* TEXTDOMAIN */ { FREE (default_domain); @@ -177,7 +185,9 @@ set_locale_var (var, value) lc_all[0] = '\0'; } #if defined (HAVE_SETLOCALE) - r = *lc_all ? (setlocale (LC_ALL, lc_all) != 0) : reset_locale_vars (); + r = *lc_all ? ((x = setlocale (LC_ALL, lc_all)) != 0) : reset_locale_vars (); + if (x == 0) + internal_warning("setlocale: LC_ALL: cannot change locale (%s): %s", lc_all, strerror(errno)); locale_setblanks (); return r; #else @@ -191,9 +201,8 @@ set_locale_var (var, value) # if defined (LC_CTYPE) if (lc_all == 0 || *lc_all == '\0') { - r = (setlocale (LC_CTYPE, get_locale_var ("LC_CTYPE")) != 0); + x = setlocale (LC_CTYPE, get_locale_var ("LC_CTYPE")); locale_setblanks (); - return r; } # endif } @@ -201,34 +210,36 @@ set_locale_var (var, value) { # if defined (LC_COLLATE) if (lc_all == 0 || *lc_all == '\0') - return (setlocale (LC_COLLATE, get_locale_var ("LC_COLLATE")) != 0); + x = setlocale (LC_COLLATE, get_locale_var ("LC_COLLATE")); # endif /* LC_COLLATE */ } else if (var[3] == 'M' && var[4] == 'E') /* LC_MESSAGES */ { # if defined (LC_MESSAGES) if (lc_all == 0 || *lc_all == '\0') - return (setlocale (LC_MESSAGES, get_locale_var ("LC_MESSAGES")) != 0); + x = setlocale (LC_MESSAGES, get_locale_var ("LC_MESSAGES")); # endif /* LC_MESSAGES */ } else if (var[3] == 'N' && var[4] == 'U') /* LC_NUMERIC */ { # if defined (LC_NUMERIC) if (lc_all == 0 || *lc_all == '\0') - return (setlocale (LC_NUMERIC, get_locale_var ("LC_NUMERIC")) != 0); + x = setlocale (LC_NUMERIC, get_locale_var ("LC_NUMERIC")); # endif /* LC_NUMERIC */ } else if (var[3] == 'T' && var[4] == 'I') /* LC_TIME */ { # if defined (LC_TIME) if (lc_all == 0 || *lc_all == '\0') - return (setlocale (LC_TIME, get_locale_var ("LC_TIME")) != 0); + x = setlocale (LC_TIME, get_locale_var ("LC_TIME")); # endif /* LC_TIME */ } #endif /* HAVE_SETLOCALE */ + if (x == 0) + internal_warning("setlocale: %s: cannot change locale (%s): %s", var, get_locale_var (var), strerror(errno)); - return (0); + return (x != 0); } /* Called when LANG is assigned a value. Tracks value in `lang'. Calls @@ -280,8 +291,11 @@ get_locale_var (var) if (locale == 0 || *locale == 0) locale = lang; if (locale == 0 || *locale == 0) +#if 0 locale = default_locale; /* system-dependent; not really portable. should it be "C"? */ - +#else + locale = ""; +#endif return (locale); } @@ -291,6 +305,7 @@ get_locale_var (var) static int reset_locale_vars () { + char *t; #if defined (HAVE_SETLOCALE) if (lang == 0 || *lang == '\0') maybe_make_export_env (); /* trust that this will change environment for setlocale */ @@ -298,19 +313,19 @@ reset_locale_vars () return 0; # if defined (LC_CTYPE) - setlocale (LC_CTYPE, get_locale_var ("LC_CTYPE")); + t = setlocale (LC_CTYPE, get_locale_var ("LC_CTYPE")); # endif # if defined (LC_COLLATE) - setlocale (LC_COLLATE, get_locale_var ("LC_COLLATE")); + t = setlocale (LC_COLLATE, get_locale_var ("LC_COLLATE")); # endif # if defined (LC_MESSAGES) - setlocale (LC_MESSAGES, get_locale_var ("LC_MESSAGES")); + t = setlocale (LC_MESSAGES, get_locale_var ("LC_MESSAGES")); # endif # if defined (LC_NUMERIC) - setlocale (LC_NUMERIC, get_locale_var ("LC_NUMERIC")); + t = setlocale (LC_NUMERIC, get_locale_var ("LC_NUMERIC")); # endif # if defined (LC_TIME) - setlocale (LC_TIME, get_locale_var ("LC_TIME")); + t = setlocale (LC_TIME, get_locale_var ("LC_TIME")); # endif locale_setblanks (); diff --git a/mailcheck.c b/mailcheck.c index 4b7e2073f..ed64bdfb3 100644 --- a/mailcheck.c +++ b/mailcheck.c @@ -1,22 +1,22 @@ /* mailcheck.c -- The check is in the mail... */ -/* Copyright (C) 1987-2004 Free Software Foundation, Inc. +/* Copyright (C) 1987-2009 Free Software Foundation, Inc. -This file is part of GNU Bash, the Bourne Again SHell. + 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. -Bash is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. + 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #include "config.h" @@ -38,14 +38,20 @@ Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ #include "mailcheck.h" #include +/* Values for flags word in struct _fileinfo */ +#define MBOX_INITIALIZED 0x01 + +extern time_t shell_start_time; + extern int mailstat __P((const char *, struct stat *)); -typedef struct { +typedef struct _fileinfo { char *name; char *msg; time_t access_time; time_t mod_time; off_t file_size; + int flags; } FILEINFO; /* The list of remembered mail files. */ @@ -55,15 +61,19 @@ static FILEINFO **mailfiles = (FILEINFO **)NULL; static int mailfiles_count; /* The last known time that mail was checked. */ -static time_t last_time_mail_checked; +static time_t last_time_mail_checked = 0; /* Non-zero means warn if a mail file has been read since last checked. */ int mail_warning; static int find_mail_file __P((char *)); +static void init_mail_file __P((int)); static void update_mail_file __P((int)); static int add_mail_file __P((char *, char *)); +static FILEINFO *alloc_mail_file __P((char *, char *)); +static void dispose_mail_file __P((FILEINFO *)); + static int file_mod_date_changed __P((int)); static int file_access_date_changed __P((int)); static int file_has_grown __P((int)); @@ -119,6 +129,7 @@ find_mail_file (file) { \ mailfiles[i]->access_time = mailfiles[i]->mod_time = 0; \ mailfiles[i]->file_size = 0; \ + mailfiles[i]->flags = 0; \ } \ while (0) @@ -128,9 +139,19 @@ find_mail_file (file) mailfiles[i]->access_time = finfo.st_atime; \ mailfiles[i]->mod_time = finfo.st_mtime; \ mailfiles[i]->file_size = finfo.st_size; \ + mailfiles[i]->flags |= MBOX_INITIALIZED; \ } \ while (0) +static void +init_mail_file (i) + int i; +{ + mailfiles[i]->access_time = mailfiles[i]->mod_time = last_time_mail_checked ? last_time_mail_checked : shell_start_time; + mailfiles[i]->file_size = 0; + mailfiles[i]->flags = 0; +} + static void update_mail_file (i) int i; @@ -170,10 +191,9 @@ add_mail_file (file, msg) mailfiles = (FILEINFO **)xrealloc (mailfiles, mailfiles_count * sizeof (FILEINFO *)); - mailfiles[i] = (FILEINFO *)xmalloc (sizeof (FILEINFO)); - mailfiles[i]->name = filename; - mailfiles[i]->msg = msg ? savestring (msg) : (char *)NULL; - update_mail_file (i); + mailfiles[i] = alloc_mail_file (filename, msg); + init_mail_file (i); + return i; } @@ -187,6 +207,29 @@ reset_mail_files () RESET_MAIL_FILE (i); } +static FILEINFO * +alloc_mail_file (filename, msg) + char *filename, *msg; +{ + FILEINFO *mf; + + mf = (FILEINFO *)xmalloc (sizeof (FILEINFO)); + mf->name = filename; + mf->msg = msg ? savestring (msg) : (char *)NULL; + mf->flags = 0; + + return mf; +} + +static void +dispose_mail_file (mf) + FILEINFO *mf; +{ + free (mf->name); + FREE (mf->msg); + free (mf); +} + /* Free the information that we have about the remembered mail files. */ void free_mail_files () @@ -194,11 +237,7 @@ free_mail_files () register int i; for (i = 0; i < mailfiles_count; i++) - { - free (mailfiles[i]->name); - FREE (mailfiles[i]->msg); - free (mailfiles[i]); - } + dispose_mail_file (mailfiles[i]); if (mailfiles) free (mailfiles); @@ -207,6 +246,13 @@ free_mail_files () mailfiles = (FILEINFO **)NULL; } +void +init_mail_dates () +{ + if (mailfiles == 0) + remember_mail_dates (); +} + /* Return non-zero if FILE's mod date has changed and it has not been accessed since modified. If the size has dropped to zero, reset the cached mail file info. */ @@ -311,6 +357,7 @@ make_default_mailpath () /* Remember the dates of the files specified by MAILPATH, or if there is no MAILPATH, by the file specified in MAIL. If neither exists, use a default value, which we randomly concoct from using Unix. */ + void remember_mail_dates () { diff --git a/mailcheck.h b/mailcheck.h index 1c6f24ff9..3ca8440aa 100644 --- a/mailcheck.h +++ b/mailcheck.h @@ -1,22 +1,22 @@ /* mailcheck.h -- variables and function declarations for mail checking. */ -/* Copyright (C) 1987,1991 Free Software Foundation, Inc. +/* Copyright (C) 1987,1991,2001,2003,2005,2006,2008,2009 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public - License for more details. + 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. */ + along with Bash. If not, see . +*/ #if !defined (_MAILCHECK_H_) #define _MAILCHECK_H_ @@ -28,6 +28,7 @@ extern void reset_mail_files __P((void)); extern void free_mail_files __P((void)); extern char *make_default_mailpath __P((void)); extern void remember_mail_dates __P((void)); +extern void init_mail_dates __P((void)); extern void check_mail __P((void)); #endif /* _MAILCHECK_H */ diff --git a/make_cmd.c b/make_cmd.c index 6d5409cc6..58c4432ff 100644 --- a/make_cmd.c +++ b/make_cmd.c @@ -1,23 +1,23 @@ /* make_cmd.c -- Functions for making instances of the various parser constructs. */ -/* Copyright (C) 1989-2005 Free Software Foundation, Inc. +/* Copyright (C) 1989-2009 Free Software Foundation, Inc. -This file is part of GNU Bash, the Bourne Again SHell. + 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. -Bash is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. + 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #include "config.h" @@ -553,8 +553,9 @@ make_simple_command (element, command) the redirectee.word with the new input text. If <<- is on, then remove leading TABS from each line. */ void -make_here_document (temp) +make_here_document (temp, lineno) REDIRECT *temp; + int lineno; { int kill_leading, redir_len; char *redir_word, *document, *full_line; @@ -646,6 +647,9 @@ make_here_document (temp) document_index += len; } + if (full_line == 0) + internal_warning (_("here-document at line %d delimited by end-of-file (wanted `%s')"), lineno, redir_word); + document_done: if (document) document[document_index] = '\0'; @@ -685,11 +689,12 @@ make_redirection (source, instruction, dest_and_filename) case r_output_direction: /* >foo */ case r_output_force: /* >| foo */ - case r_err_and_out: /* command &>filename */ + case r_err_and_out: /* &>filename */ temp->flags = O_TRUNC | O_WRONLY | O_CREAT; break; case r_appending_to: /* >>foo */ + case r_append_err_and_out: /* &>> filename */ temp->flags = O_APPEND | O_WRONLY | O_CREAT; break; @@ -771,7 +776,9 @@ make_function_def (name, command, lineno, lstart) if (bash_source_a && array_num_elements (bash_source_a) > 0) temp->source_file = array_reference (bash_source_a, 0); #endif +#if defined (DEBUGGER) bind_function_def (name->word, temp); +#endif temp->source_file = 0; return (make_command (cm_function_def, (SIMPLE_COM *)temp)); @@ -789,6 +796,20 @@ make_subshell_command (command) return (make_command (cm_subshell, (SIMPLE_COM *)temp)); } +COMMAND * +make_coproc_command (name, command) + char *name; + COMMAND *command; +{ + COPROC_COM *temp; + + temp = (COPROC_COM *)xmalloc (sizeof (COPROC_COM)); + temp->name = savestring (name); + temp->command = command; + temp->flags = CMD_WANT_SUBSHELL|CMD_COPROC_SUBSHELL; + return (make_command (cm_coproc, (SIMPLE_COM *)temp)); +} + /* Reverse the word list and redirection list in the simple command has just been parsed. It seems simpler to do this here the one time then by any other method that I can think of. */ diff --git a/make_cmd.h b/make_cmd.h index fe5dc15bc..0a7456ee2 100644 --- a/make_cmd.h +++ b/make_cmd.h @@ -1,22 +1,22 @@ /* make_cmd.h -- Declarations of functions found in make_cmd.c */ -/* Copyright (C) 1993-2005 Free Software Foundation, Inc. +/* Copyright (C) 1993-2009 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. + 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #if !defined (_MAKE_CMD_H_) #define _MAKE_CMD_H_ @@ -46,7 +46,7 @@ extern COMMAND *make_while_command __P((COMMAND *, COMMAND *)); extern COMMAND *make_until_command __P((COMMAND *, COMMAND *)); extern COMMAND *make_bare_simple_command __P((void)); extern COMMAND *make_simple_command __P((ELEMENT, COMMAND *)); -extern void make_here_document __P((REDIRECT *)); +extern void make_here_document __P((REDIRECT *, int)); extern REDIRECT *make_redirection __P((int, enum r_instruction, REDIRECTEE)); extern COMMAND *make_function_def __P((WORD_DESC *, COMMAND *, int, int)); extern COMMAND *clean_simple_command __P((COMMAND *)); @@ -63,6 +63,7 @@ extern COMMAND *make_cond_command __P((COND_COM *)); extern COMMAND *make_arith_for_command __P((WORD_LIST *, COMMAND *, int)); extern COMMAND *make_subshell_command __P((COMMAND *)); +extern COMMAND *make_coproc_command __P((char *, COMMAND *)); extern COMMAND *connect_async_list __P((COMMAND *, COMMAND *, int)); diff --git a/mksyntax.c b/mksyntax.c index 8e26ae88e..56ade2e45 100644 --- a/mksyntax.c +++ b/mksyntax.c @@ -2,23 +2,23 @@ * mksyntax.c - construct shell syntax table for fast char attribute lookup. */ -/* Copyright (C) 2000-2002 Free Software Foundation, Inc. +/* Copyright (C) 2000-2009 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. + 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #include "config.h" diff --git a/nojobs.c b/nojobs.c index a3d51f670..08a225497 100644 --- a/nojobs.c +++ b/nojobs.c @@ -1,25 +1,25 @@ -/* The thing that makes children, remembers them, and contains wait loops. */ +/* nojobs.c - functions that make children, remember them, and handle their termination. */ /* This file works under BSD, System V, minix, and Posix systems. It does not implement job control. */ -/* Copyright (C) 1987-2006 Free Software Foundation, Inc. +/* Copyright (C) 1987-2009 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. + 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #include "config.h" @@ -232,7 +232,7 @@ find_termsig_by_pid (pid) return (0); if (pid_list[i].flags & PROC_RUNNING) return (0); - return (get_termsig (pid_list[i].status)); + return (get_termsig ((WAIT)pid_list[i].status)); } /* Set LAST_COMMAND_EXIT_SIGNAL depending on STATUS. If STATUS is -1, look @@ -465,9 +465,7 @@ make_child (command, async_p) int async_p; { pid_t pid; -#if defined (HAVE_WAITPID) - int retry = 1; -#endif /* HAVE_WAITPID */ + int forksleep; /* Discard saved memory. */ if (command) @@ -484,26 +482,27 @@ make_child (command, async_p) sync_buffered_stream (default_buffered_input); #endif /* BUFFERED_INPUT */ - /* Create the child, handle severe errors. */ -#if defined (HAVE_WAITPID) - retry_fork: -#endif /* HAVE_WAITPID */ - - if ((pid = fork ()) < 0) + /* Create the child, handle severe errors. Retry on EAGAIN. */ + forksleep = 1; + while ((pid = fork ()) < 0 && errno == EAGAIN && forksleep < FORKSLEEP_MAX) { + sys_error ("fork: retry"); #if defined (HAVE_WAITPID) /* Posix systems with a non-blocking waitpid () system call available get another chance after zombies are reaped. */ - if (errno == EAGAIN && retry) - { - reap_zombie_children (); - retry = 0; - goto retry_fork; - } + reap_zombie_children (); + if (forksleep > 1 && sleep (forksleep) != 0) + break; +#else + if (sleep (forksleep) != 0) + break; #endif /* HAVE_WAITPID */ + forksleep <<= 1; + } + if (pid < 0) + { sys_error ("fork"); - throw_to_top_level (); } @@ -518,9 +517,11 @@ make_child (command, async_p) sigprocmask (SIG_SETMASK, &top_level_mask, (sigset_t *)NULL); #endif +#if 0 /* Ignore INT and QUIT in asynchronous children. */ if (async_p) last_asynchronous_pid = getpid (); +#endif default_tty_job_signals (); } @@ -801,7 +802,7 @@ wait_for (pid) { fprintf (stderr, "%s", j_strsignal (WTERMSIG (status))); if (WIFCORED (status)) - fprintf (stderr, " (core dumped)"); + fprintf (stderr, _(" (core dumped)")); fprintf (stderr, "\n"); } diff --git a/parse.y b/parse.y index 8a2b081ac..8461337ee 100644 --- a/parse.y +++ b/parse.y @@ -1,22 +1,22 @@ -/* Yacc grammar for bash. */ +/* parse.y - Yacc grammar for bash. */ -/* Copyright (C) 1989-2006 Free Software Foundation, Inc. +/* Copyright (C) 1989-2009 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. + 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ %{ #include "config.h" @@ -115,7 +115,7 @@ extern int extended_glob; extern int eof_encountered; extern int no_line_editing, running_under_emacs; extern int current_command_number; -extern int sourcelevel; +extern int sourcelevel, parse_and_execute_level; extern int posixly_correct; extern int last_command_exit_value; extern char *shell_name, *current_host_name; @@ -148,6 +148,7 @@ static int yy_readline_unget __P((int)); static int yy_string_get __P((void)); static int yy_string_unget __P((int)); +static void rewind_input_string __P((void)); static int yy_stream_get __P((void)); static int yy_stream_unget __P((int)); @@ -170,6 +171,7 @@ 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)); +static char *parse_comsub __P((int, int, int, int *, int)); #if defined (ARRAY_VARS) static char *parse_compound_assignment __P((int *)); #endif @@ -251,6 +253,12 @@ static char *current_decoded_prompt; /* The number of lines read from input while creating the current command. */ int current_command_line_count; +/* The token that currently denotes the end of parse. */ +int shell_eof_token; + +/* The token currently being read. */ +int current_token; + /* 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]; @@ -275,6 +283,19 @@ static int function_bstart; /* The line number in a script at which an arithmetic for command starts. */ static int arith_for_lineno; +/* The current parser state. */ +static int parser_state; + +/* 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 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. */ @@ -306,7 +327,7 @@ static REDIRECTEE redir; 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 IF THEN ELSE ELIF FI CASE ESAC FOR SELECT WHILE UNTIL DO DONE FUNCTION COPROC %token COND_START COND_END COND_ERROR %token IN BANG TIME TIMEOPT @@ -316,8 +337,9 @@ static REDIRECTEE redir; %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 +%token GREATER_AND SEMI_SEMI SEMI_AND SEMI_SEMI_AND +%token LESS_LESS_MINUS AND_GREATER AND_GREATER_GREATER LESS_GREATER +%token GREATER_BAR BAR_AND /* The types that the various syntactical units return. */ @@ -328,6 +350,7 @@ static REDIRECTEE redir; %type arith_command %type cond_command %type arith_for_command +%type coproc %type function_def function_body if_command elif_clause subshell %type redirection redirection_list %type simple_command_element @@ -340,7 +363,7 @@ static REDIRECTEE redir; %left '&' ';' '\n' yacc_EOF %left AND_AND OR_OR -%right '|' +%right '|' BAR_AND %% inputunit: simple_list simple_list_terminator @@ -350,6 +373,8 @@ inputunit: simple_list simple_list_terminator global_command = $1; eof_encountered = 0; /* discard_parser_constructs (0); */ + if (parser_state & PST_CMDSUBST) + parser_state |= PST_EOFTOKEN; YYACCEPT; } | '\n' @@ -357,6 +382,8 @@ inputunit: simple_list simple_list_terminator /* Case of regular command, but not a very interesting one. Return a NULL command. */ global_command = (COMMAND *)NULL; + if (parser_state & PST_CMDSUBST) + parser_state |= PST_EOFTOKEN; YYACCEPT; } | error '\n' @@ -365,7 +392,7 @@ inputunit: simple_list simple_list_terminator global_command = (COMMAND *)NULL; eof_encountered = 0; /* discard_parser_constructs (1); */ - if (interactive) + if (interactive && parse_and_execute_level == 0) { YYACCEPT; } @@ -521,6 +548,11 @@ redirection: '>' WORD redir.filename = $2; $$ = make_redirection (1, r_err_and_out, redir); } + | AND_GREATER_GREATER WORD + { + redir.filename = $2; + $$ = make_redirection (1, r_append_err_and_out, redir); + } | NUMBER LESS_GREATER WORD { redir.filename = $3; @@ -594,6 +626,8 @@ command: simple_command } | function_def { $$ = $1; } + | coproc + { $$ = $1; } ; shell_command: for_command @@ -743,7 +777,6 @@ function_def: WORD '(' ')' newline_list function_body { $$ = make_function_def ($2, $4, function_dstart, function_bstart); } ; - function_body: shell_command { $$ = $1; } | shell_command redirection_list @@ -784,6 +817,57 @@ subshell: '(' compound_list ')' } ; +coproc: COPROC shell_command + { + $$ = make_coproc_command ("COPROC", $2); + $$->flags |= CMD_WANT_SUBSHELL|CMD_COPROC_SUBSHELL; + } + | COPROC shell_command redirection_list + { + COMMAND *tc; + + tc = $2; + if (tc->redirects) + { + register REDIRECT *t; + for (t = tc->redirects; t->next; t = t->next) + ; + t->next = $3; + } + else + tc->redirects = $3; + $$ = make_coproc_command ("COPROC", $2); + $$->flags |= CMD_WANT_SUBSHELL|CMD_COPROC_SUBSHELL; + } + | COPROC WORD shell_command + { + $$ = make_coproc_command ($2->word, $3); + $$->flags |= CMD_WANT_SUBSHELL|CMD_COPROC_SUBSHELL; + } + | COPROC WORD shell_command redirection_list + { + COMMAND *tc; + + tc = $3; + if (tc->redirects) + { + register REDIRECT *t; + for (t = tc->redirects; t->next; t = t->next) + ; + t->next = $4; + } + else + tc->redirects = $4; + $$ = make_coproc_command ($2->word, $3); + $$->flags |= CMD_WANT_SUBSHELL|CMD_COPROC_SUBSHELL; + } + | COPROC simple_command + { + $$ = make_coproc_command ("COPROC", clean_simple_command ($2)); + $$->flags |= CMD_WANT_SUBSHELL|CMD_COPROC_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 @@ -829,8 +913,17 @@ pattern_list: newline_list pattern ')' compound_list ; case_clause_sequence: pattern_list SEMI_SEMI + { $$ = $1; } | case_clause_sequence pattern_list SEMI_SEMI { $2->next = $1; $$ = $2; } + | pattern_list SEMI_AND + { $1->flags |= CASEPAT_FALLTHROUGH; $$ = $1; } + | case_clause_sequence pattern_list SEMI_AND + { $2->flags |= CASEPAT_FALLTHROUGH; $2->next = $1; $$ = $2; } + | pattern_list SEMI_SEMI_AND + { $1->flags |= CASEPAT_TESTNEXT; $$ = $1; } + | case_clause_sequence pattern_list SEMI_SEMI_AND + { $2->flags |= CASEPAT_TESTNEXT; $2->next = $1; $$ = $2; } ; pattern: WORD @@ -917,6 +1010,13 @@ simple_list: simple_list1 $$ = $1; if (need_here_doc) gather_here_documents (); + if ((parser_state & PST_CMDSUBST) && current_token == shell_eof_token) + { + global_command = $1; + eof_encountered = 0; + rewind_input_string (); + YYACCEPT; + } } | simple_list1 '&' { @@ -926,12 +1026,26 @@ simple_list: simple_list1 $$ = command_connect ($1, (COMMAND *)NULL, '&'); if (need_here_doc) gather_here_documents (); + if ((parser_state & PST_CMDSUBST) && current_token == shell_eof_token) + { + global_command = $1; + eof_encountered = 0; + rewind_input_string (); + YYACCEPT; + } } | simple_list1 ';' { $$ = $1; if (need_here_doc) gather_here_documents (); + if ((parser_state & PST_CMDSUBST) && current_token == shell_eof_token) + { + global_command = $1; + eof_encountered = 0; + rewind_input_string (); + YYACCEPT; + } } ; @@ -999,9 +1113,30 @@ pipeline_command: pipeline ; -pipeline: - pipeline '|' newline_list pipeline +pipeline: pipeline '|' newline_list pipeline { $$ = command_connect ($1, $4, '|'); } + | pipeline BAR_AND newline_list pipeline + { + /* Make cmd1 |& cmd2 equivalent to cmd1 2>&1 | cmd2 */ + COMMAND *tc; + REDIRECTEE rd; + REDIRECT *r; + + tc = $1; + rd.dest = 1; + r = make_redirection (2, r_duplicating_output, rd); + if (tc->redirects) + { + register REDIRECT *t; + for (t = tc->redirects; t->next; t = t->next) + ; + t->next = r; + } + else + tc->redirects = r; + + $$ = command_connect ($1, $4, '|'); + } | command { $$ = $1; } ; @@ -1013,24 +1148,6 @@ timespec: TIME ; %% -/* 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 */ -#define PST_REGEXP 0x8000 /* parsing an ERE/BRE as a single word */ - /* Initial size to allocate for tokens, and the amount to grow them by. */ #define TOKEN_DEFAULT_INITIAL_SIZE 496 @@ -1046,22 +1163,6 @@ timespec: TIME # 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; @@ -1324,6 +1425,33 @@ with_input_from_string (string, name) init_yy_io (yy_string_get, yy_string_unget, st_string, name, location); } +/* Count the number of characters we've consumed from bash_input.location.string + and read into shell_input_line, but have not returned from shell_getc. + That is the true input location. Rewind bash_input.location.string by + that number of characters, so it points to the last character actually + consumed by the parser. */ +static void +rewind_input_string () +{ + int xchars; + + /* number of unconsumed characters in the input -- XXX need to take newlines + into account, e.g., $(...\n) */ + xchars = shell_input_line_len - shell_input_line_index; + if (bash_input.location.string[-1] == '\n') + xchars++; + + /* XXX - how to reflect bash_input.location.string back to string passed to + parse_and_execute or xparse_dolparen? xparse_dolparen needs to know how + far into the string we parsed. parse_and_execute knows where bash_input. + location.string is, and how far from orig_string that is -- that's the + number of characters the command consumed. */ + + /* bash_input.location.string - xchars should be where we parsed to */ + /* need to do more validation on xchars value for sanity -- test cases. */ + bash_input.location.string -= xchars; +} + /* **************************************************************** */ /* */ /* Let input come from STREAM. */ @@ -1741,10 +1869,27 @@ char * read_secondary_line (remove_quoted_newline) int remove_quoted_newline; { + char *ret; + int n, c; + prompt_string_pointer = &ps2_prompt; if (SHOULD_PROMPT()) prompt_again (); - return (read_a_line (remove_quoted_newline)); + ret = read_a_line (remove_quoted_newline); +#if defined (HISTORY) + if (remember_on_history && (parser_state & PST_HEREDOC)) + { + /* To make adding the the here-document body right, we need to rely + on history_delimiting_chars() returning \n for the first line of + the here-document body and the null string for the second and + subsequent lines, so we avoid double newlines. + current_command_line_count == 2 for the first line of the body. */ + + current_command_line_count++; + maybe_add_history (ret); + } +#endif /* HISTORY */ + return ret; } /* **************************************************************** */ @@ -1782,6 +1927,9 @@ STRING_INT_ALIST word_token_alist[] = { #if defined (COND_COMMAND) { "[[", COND_START }, { "]]", COND_END }, +#endif +#if defined (COPROCESS_SUPPORT) + { "coproc", COPROC }, #endif { (char *)NULL, 0} }; @@ -1797,11 +1945,15 @@ STRING_INT_ALIST other_token_alist[] = { { "<&", LESS_AND }, { ">&", GREATER_AND }, { ";;", SEMI_SEMI }, + { ";&", SEMI_AND }, + { ";;&", SEMI_SEMI_AND }, { "<<-", LESS_LESS_MINUS }, { "<<<", LESS_LESS_LESS }, { "&>", AND_GREATER }, + { "&>>", AND_GREATER_GREATER }, { "<>", LESS_GREATER }, { ">|", GREATER_BAR }, + { "|&", BAR_AND }, { "EOF", yacc_EOF }, /* Tokens whose value is the character itself */ { ">", '>' }, @@ -2206,6 +2358,15 @@ yylex () token_before_that = last_read_token; last_read_token = current_token; current_token = read_token (READ); + + if ((parser_state & PST_EOFTOKEN) && current_token == shell_eof_token) + { + current_token = yacc_EOF; + if (bash_input.type == st_string) + rewind_input_string (); + } + parser_state &= ~PST_EOFTOKEN; + return (current_token); } @@ -2216,10 +2377,14 @@ static int esacs_needed_count; void gather_here_documents () { - int r = 0; + int r; + + r = 0; while (need_here_doc) { - make_here_document (redir_stack[r++]); + parser_state |= PST_HEREDOC; + make_here_document (redir_stack[r++], line_number); + parser_state &= ~PST_HEREDOC; need_here_doc--; } } @@ -2230,7 +2395,7 @@ static int open_brace_count; #define command_token_position(token) \ (((token) == ASSIGNMENT_WORD) || \ - ((token) != SEMI_SEMI && reserved_word_acceptable(token))) + ((token) != SEMI_SEMI && (token) != SEMI_AND && (token) != SEMI_SEMI_AND && reserved_word_acceptable(token))) #define assignment_acceptable(token) \ (command_token_position(token) && ((parser_state & PST_CASEPAT) == 0)) @@ -2616,9 +2781,9 @@ read_token (command) /* If '<' then we could be at "<<" or at "<<-". We have to look ahead one more character. */ peek_char = shell_getc (1); - if (peek_char == '-') + if MBTEST(peek_char == '-') return (LESS_LESS_MINUS); - else if (peek_char == '<') + else if MBTEST(peek_char == '<') return (LESS_LESS_LESS); else { @@ -2635,7 +2800,14 @@ read_token (command) parser_state &= ~PST_ALEXPNEXT; #endif /* ALIAS */ - return (SEMI_SEMI); + peek_char = shell_getc (1); + if MBTEST(peek_char == '&') + return (SEMI_SEMI_AND); + else + { + shell_ungetc (peek_char); + return (SEMI_SEMI); + } case '&': return (AND_AND); @@ -2661,8 +2833,27 @@ read_token (command) return (LESS_GREATER); else if MBTEST(character == '>' && peek_char == '|') return (GREATER_BAR); - else if MBTEST(peek_char == '>' && character == '&') - return (AND_GREATER); + else if MBTEST(character == '&' && peek_char == '>') + { + peek_char = shell_getc (1); + if MBTEST(peek_char == '>') + return (AND_GREATER_GREATER); + else + { + shell_ungetc (peek_char); + return (AND_GREATER); + } + } + else if MBTEST(character == '|' && peek_char == '&') + return (BAR_AND); + else if MBTEST(character == ';' && peek_char == '&') + { + parser_state |= PST_CASEPAT; +#if defined (ALIAS) + parser_state &= ~PST_ALEXPNEXT; +#endif /* ALIAS */ + return (SEMI_AND); + } shell_ungetc (peek_char); @@ -2725,22 +2916,58 @@ tokword: #define P_COMMAND 0x08 /* parsing a command, so look for comments */ #define P_BACKQUOTE 0x10 /* parsing a backquoted command substitution */ +/* Lexical state while parsing a grouping construct or $(...). */ +#define LEX_WASDOL 0x001 +#define LEX_CKCOMMENT 0x002 +#define LEX_INCOMMENT 0x004 +#define LEX_PASSNEXT 0x008 +#define LEX_RESWDOK 0x010 +#define LEX_CKCASE 0x020 +#define LEX_INCASE 0x040 +#define LEX_INHEREDOC 0x080 +#define LEX_HEREDELIM 0x100 /* reading here-doc delimiter */ +#define LEX_STRIPDOC 0x200 /* <<- strip tabs from here doc delim */ + +#define COMSUB_META(ch) ((ch) == ';' || (ch) == '&' || (ch) == '|') + +#define CHECK_NESTRET_ERROR() \ + do { \ + if (nestret == &matched_pair_error) \ + { \ + free (ret); \ + return &matched_pair_error; \ + } \ + } while (0) + +#define APPEND_NESTRET() \ + do { \ + if (nestlen) \ + { \ + RESIZE_MALLOCED_BUFFER (ret, retind, nestlen, retsize, 64); \ + strcpy (ret + retind, nestret); \ + retind += nestlen; \ + } \ + } while (0) + 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, in_comment, check_comment; - int pass_next_character, backq_backslash, nestlen, ttranslen, start_lineno; + int count, ch, tflags; + int nestlen, ttranslen, start_lineno; char *ret, *nestret, *ttrans; int retind, retsize, rflags; -/* itrace("parse_matched_pair: open = %c close = %c", open, close); */ +/* itrace("parse_matched_pair: open = %c close = %c flags = %d", open, close, flags); */ count = 1; - pass_next_character = backq_backslash = was_dollar = in_comment = 0; - check_comment = (flags & P_COMMAND) && qc != '`' && qc != '\'' && qc != '"' && (flags & P_DQUOTE) == 0; + tflags = 0; + + if ((flags & P_COMMAND) && qc != '`' && qc != '\'' && qc != '"' && (flags & P_DQUOTE) == 0) + tflags |= LEX_CKCOMMENT; /* RFLAGS is the set of flags we want to pass to recursive calls. */ rflags = (qc == '"') ? P_DQUOTE : (flags & P_DQUOTE); @@ -2751,7 +2978,7 @@ parse_matched_pair (qc, open, close, lenp, flags) start_lineno = line_number; while (count) { - ch = shell_getc (qc != '\'' && pass_next_character == 0 && backq_backslash == 0); + ch = shell_getc (qc != '\'' && (tflags & LEX_PASSNEXT) == 0); if (ch == EOF) { @@ -2765,36 +2992,33 @@ parse_matched_pair (qc, open, close, lenp, flags) if (ch == '\n' && SHOULD_PROMPT ()) prompt_again (); - if (in_comment) + /* Don't bother counting parens or doing anything else if in a comment + or part of a case statement */ + if (tflags & LEX_INCOMMENT) { /* Add this character. */ RESIZE_MALLOCED_BUFFER (ret, retind, 1, retsize, 64); ret[retind++] = ch; if (ch == '\n') - in_comment = 0; + tflags &= ~LEX_INCOMMENT; continue; } + /* Not exactly right yet, should handle shell metacharacters, too. If any changes are made to this test, make analogous changes to subst.c: extract_delimited_string(). */ - else if MBTEST(check_comment && in_comment == 0 && ch == '#' && (retind == 0 || ret[retind-1] == '\n' || whitespace (ret[retind - 1]))) - in_comment = 1; - - /* last char was backslash inside backquoted command substitution */ - if (backq_backslash) - { - backq_backslash = 0; - /* Placeholder for adding special characters */ - } + else if MBTEST((tflags & LEX_CKCOMMENT) && (tflags & LEX_INCOMMENT) == 0 && ch == '#' && (retind == 0 || ret[retind-1] == '\n' || shellblank (ret[retind - 1]))) + tflags |= LEX_INCOMMENT; - if (pass_next_character) /* last char was backslash */ + if (tflags & LEX_PASSNEXT) /* last char was backslash */ { - pass_next_character = 0; + tflags &= ~LEX_PASSNEXT; if (qc != '\'' && ch == '\n') /* double-quoted \ disappears. */ { - if (retind > 0) retind--; /* swallow previously-added backslash */ + if (retind > 0) + retind--; /* swallow previously-added backslash */ continue; } @@ -2804,6 +3028,16 @@ parse_matched_pair (qc, open, close, lenp, flags) ret[retind++] = ch; continue; } + /* If we're reparsing the input (e.g., from parse_string_to_word_list), + we've already prepended CTLESC to single-quoted results of $'...'. + We may want to do this for other CTLESC-quoted characters in + reparse, too. */ + else if MBTEST((parser_state & PST_REPARSE) && open == '\'' && (ch == CTLESC || ch == CTLNUL)) + { + RESIZE_MALLOCED_BUFFER (ret, retind, 1, retsize, 64); + ret[retind++] = ch; + continue; + } else if MBTEST(ch == CTLESC || ch == CTLNUL) /* special shell escapes */ { RESIZE_MALLOCED_BUFFER (ret, retind, 2, retsize, 64); @@ -2814,7 +3048,7 @@ parse_matched_pair (qc, open, close, lenp, flags) else if MBTEST(ch == close) /* ending delimiter */ count--; /* handle nested ${...} specially. */ - else if MBTEST(open != close && was_dollar && open == '{' && ch == open) /* } */ + else if MBTEST(open != close && (tflags & LEX_WASDOL) && open == '{' && ch == open) /* } */ count++; else if MBTEST(((flags & P_FIRSTCLOSE) == 0) && ch == open) /* nested begin */ count++; @@ -2823,37 +3057,45 @@ parse_matched_pair (qc, open, close, lenp, flags) RESIZE_MALLOCED_BUFFER (ret, retind, 1, retsize, 64); ret[retind++] = ch; + /* If we just read the ending character, don't bother continuing. */ + if (count == 0) + break; + if (open == '\'') /* '' inside grouping construct */ { if MBTEST((flags & P_ALLOWESC) && ch == '\\') - pass_next_character++; -#if 0 - else if MBTEST((flags & P_BACKQUOTE) && ch == '\\') - backq_backslash++; -#endif + tflags |= LEX_PASSNEXT; continue; } if MBTEST(ch == '\\') /* backslashes */ - pass_next_character++; + tflags |= LEX_PASSNEXT; + +#if 0 + /* The big hammer. Single quotes aren't special in double quotes. The + problem is that Posix says the single quotes are semi-special: + within a double-quoted ${...} construct "an even number of + unescaped double-quotes or single-quotes, if any, shall occur." */ + if MBTEST(open == '{' && (flags & P_DQUOTE) && ch == '\'') /* } */ + continue; +#endif + /* Could also check open == '`' if we want to parse grouping constructs + inside old-style command substitution. */ 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 */ + if MBTEST((tflags & LEX_WASDOL) && 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)) + CHECK_NESTRET_ERROR (); + + if MBTEST((tflags & LEX_WASDOL) && ch == '\'' && (extended_quote || (rflags & P_DQUOTE) == 0)) { /* Translate $'...' here. */ ttrans = ansiexpand (nestret, 0, nestlen - 1, &ttranslen); @@ -2872,7 +3114,7 @@ parse_matched_pair (qc, open, close, lenp, flags) } retind -= 2; /* back up before the $' */ } - else if MBTEST(was_dollar && ch == '"' && (extended_quote || (rflags & P_DQUOTE) == 0)) + else if MBTEST((tflags & LEX_WASDOL) && ch == '"' && (extended_quote || (rflags & P_DQUOTE) == 0)) { /* Locale expand $"..." here. */ ttrans = localeexpand (nestret, 0, nestlen - 1, start_lineno, &ttranslen); @@ -2884,12 +3126,7 @@ parse_matched_pair (qc, open, close, lenp, flags) retind -= 2; /* back up before the $" */ } - if (nestlen) - { - RESIZE_MALLOCED_BUFFER (ret, retind, nestlen, retsize, 64); - strcpy (ret + retind, nestret); - retind += nestlen; - } + APPEND_NESTRET (); FREE (nestret); } } @@ -2899,51 +3136,465 @@ parse_matched_pair (qc, open, close, lenp, flags) else if MBTEST(open == '"' && ch == '`') { nestret = parse_matched_pair (0, '`', '`', &nestlen, rflags); -add_nestret: - if (nestret == &matched_pair_error) + + CHECK_NESTRET_ERROR (); + APPEND_NESTRET (); + + FREE (nestret); + } + else if MBTEST(open != '`' && (tflags & LEX_WASDOL) && (ch == '(' || ch == '{' || ch == '[')) /* ) } ] */ + /* check for $(), $[], or ${} inside quoted string. */ + { + if (open == ch) /* undo previous increment */ + count--; + if (ch == '(') /* ) */ + nestret = parse_comsub (0, '(', ')', &nestlen, (rflags|P_COMMAND) & ~P_DQUOTE); + else if (ch == '{') /* } */ + nestret = parse_matched_pair (0, '{', '}', &nestlen, P_FIRSTCLOSE|rflags); + else if (ch == '[') /* ] */ + nestret = parse_matched_pair (0, '[', ']', &nestlen, rflags); + + CHECK_NESTRET_ERROR (); + APPEND_NESTRET (); + + FREE (nestret); + } + if MBTEST(ch == '$') + tflags |= LEX_WASDOL; + else + tflags &= ~LEX_WASDOL; + } + + ret[retind] = '\0'; + if (lenp) + *lenp = retind; + return ret; +} + +/* Parse a $(...) command substitution. This is messier than I'd like, and + reproduces a lot more of the token-reading code than I'd like. */ +static char * +parse_comsub (qc, open, close, lenp, flags) + int qc; /* `"' if this construct is within double quotes */ + int open, close; + int *lenp, flags; +{ + int count, ch, peekc, tflags, lex_rwlen, lex_firstind; + int nestlen, ttranslen, start_lineno; + char *ret, *nestret, *ttrans, *heredelim; + int retind, retsize, rflags, hdlen; + +/*itrace("parse_comsub: qc = `%c' open = %c close = %c", qc, open, close);*/ + count = 1; + tflags = LEX_RESWDOK; + + if ((flags & P_COMMAND) && qc != '\'' && qc != '"' && (flags & P_DQUOTE) == 0) + tflags |= LEX_CKCASE; + if ((tflags & LEX_CKCASE) && (interactive == 0 || interactive_comments)) + tflags |= LEX_CKCOMMENT; + + /* RFLAGS is the set of flags we want to pass to recursive calls. */ + rflags = (flags & P_DQUOTE); + + ret = (char *)xmalloc (retsize = 64); + retind = 0; + + start_lineno = line_number; + lex_rwlen = 0; + + heredelim = 0; + lex_firstind = -1; + + while (count) + { +comsub_readchar: + ch = shell_getc (qc != '\'' && (tflags & LEX_PASSNEXT) == 0); + + if (ch == EOF) + { +eof_error: + free (ret); + FREE (heredelim); + parser_error (start_lineno, _("unexpected EOF while looking for matching `%c'"), close); + EOF_Reached = 1; /* XXX */ + return (&matched_pair_error); + } + + /* If we hit the end of a line and are reading the contents of a here + document, and it's not the same line that the document starts on, + check for this line being the here doc delimiter. Otherwise, if + we're in a here document, mark the next character as the beginning + of a line. */ + if (ch == '\n') + { + if ((tflags & LEX_HEREDELIM) && heredelim) { - free (ret); - return &matched_pair_error; + tflags &= ~LEX_HEREDELIM; + tflags |= LEX_INHEREDOC; + lex_firstind = retind + 1; } - if (nestlen) + else if (tflags & LEX_INHEREDOC) { - RESIZE_MALLOCED_BUFFER (ret, retind, nestlen, retsize, 64); - strcpy (ret + retind, nestret); - retind += nestlen; + int tind; + tind = lex_firstind; + while ((tflags & LEX_STRIPDOC) && ret[tind] == '\t') + tind++; + if (STREQN (ret + tind, heredelim, hdlen)) + { + tflags &= ~(LEX_STRIPDOC|LEX_INHEREDOC); +/*itrace("parse_comsub:%d: found here doc end `%s'", line_number, ret + tind);*/ + lex_firstind = -1; + } + else + lex_firstind = retind + 1; } - FREE (nestret); } -#if 0 - else if MBTEST(qc == '`' && (ch == '"' || ch == '\'') && in_comment == 0) + + /* Possible reprompting. */ + if (ch == '\n' && SHOULD_PROMPT ()) + prompt_again (); + + /* Don't bother counting parens or doing anything else if in a comment */ + if (tflags & (LEX_INCOMMENT|LEX_INHEREDOC)) + { + /* Add this character. */ + RESIZE_MALLOCED_BUFFER (ret, retind, 1, retsize, 64); + ret[retind++] = ch; + + if ((tflags & LEX_INCOMMENT) && ch == '\n') + tflags &= ~LEX_INCOMMENT; + + continue; + } + + /* Skip whitespace */ + if MBTEST(shellblank (ch) && lex_rwlen == 0) + { + /* Add this character. */ + RESIZE_MALLOCED_BUFFER (ret, retind, 1, retsize, 64); + ret[retind++] = ch; + continue; + } + + /* Either we are looking for the start of the here-doc delimiter + (lex_firstind == -1) or we are reading one (lex_firstind >= 0). + If this character is a shell break character and we are reading + the delimiter, save it and note that we are now reading a here + document. If we've found the start of the delimiter, note it by + setting lex_firstind. Backslashes can quote shell metacharacters + in here-doc delimiters. */ + if (tflags & LEX_HEREDELIM) + { + if (lex_firstind == -1 && shellbreak (ch) == 0) + lex_firstind = retind; + else if (lex_firstind >= 0 && (tflags & LEX_PASSNEXT) == 0 && shellbreak (ch)) + { + nestret = substring (ret, lex_firstind, retind); + heredelim = string_quote_removal (nestret, 0); + free (nestret); + hdlen = STRLEN(heredelim); +/*itrace("parse_comsub:%d: found here doc delimiter `%s' (%d)", line_number, heredelim, hdlen);*/ + if (ch == '\n') + { + tflags |= LEX_INHEREDOC; + tflags &= ~LEX_HEREDELIM; + lex_firstind = retind + 1; + } + else + lex_firstind = -1; + } + } + + /* Meta-characters that can introduce a reserved word. Not perfect yet. */ + if MBTEST((tflags & LEX_RESWDOK) == 0 && (tflags & LEX_CKCASE) && (tflags & LEX_INCOMMENT) == 0 && shellmeta(ch)) { - /* Add P_BACKQUOTE so backslash quotes the next character and - shell_getc does the right thing with \. We do this for - a measure of backwards compatibility -- it's not strictly the - right POSIX thing. */ - nestret = parse_matched_pair (0, ch, ch, &nestlen, rflags|P_BACKQUOTE); - goto add_nestret; + /* Add this character. */ + RESIZE_MALLOCED_BUFFER (ret, retind, 1, retsize, 64); + ret[retind++] = ch; + peekc = shell_getc (1); + if (ch == peekc && (ch == '&' || ch == '|' || ch == ';')) /* two-character tokens */ + { + RESIZE_MALLOCED_BUFFER (ret, retind, 1, retsize, 64); + ret[retind++] = peekc; +/*itrace("parse_comsub:%d: set lex_reswordok = 1, ch = `%c'", line_number, ch); */ + tflags |= LEX_RESWDOK; + lex_rwlen = 0; + continue; + } + else if (ch == '\n' || COMSUB_META(ch)) + { + shell_ungetc (peekc); + tflags |= LEX_RESWDOK; +/*itrace("parse_comsub:%d: set lex_reswordok = 1, ch = `%c'", line_number, ch);*/ + lex_rwlen = 0; + continue; + } + else if (ch == EOF) + goto eof_error; + else + { + /* `unget' the character we just added and fall through */ + retind--; + shell_ungetc (peekc); + } } + + /* If we can read a reserved word, try to read one. */ + if (tflags & LEX_RESWDOK) + { + if MBTEST(islower (ch)) + { + /* Add this character. */ + RESIZE_MALLOCED_BUFFER (ret, retind, 1, retsize, 64); + ret[retind++] = ch; + lex_rwlen++; + continue; + } + else if MBTEST(lex_rwlen == 4 && shellbreak (ch)) + { + if (STREQN (ret + retind - 4, "case", 4)) +{ + tflags |= LEX_INCASE; +/*itrace("parse_comsub:%d: found `case', lex_incase -> 1", line_number);*/ +} + else if (STREQN (ret + retind - 4, "esac", 4)) +{ + tflags &= ~LEX_INCASE; +/*itrace("parse_comsub:%d: found `esac', lex_incase -> 0", line_number);*/ +} + tflags &= ~LEX_RESWDOK; + } + else if (shellbreak (ch) == 0) +{ + tflags &= ~LEX_RESWDOK; +/*itrace("parse_comsub:%d: found `%c', lex_reswordok -> 0", line_number, ch);*/ +} + } + + if MBTEST((tflags & LEX_INCOMMENT) == 0 && (tflags & LEX_CKCASE) && ch == '<') + { + /* Add this character. */ + RESIZE_MALLOCED_BUFFER (ret, retind, 1, retsize, 64); + ret[retind++] = ch; + peekc = shell_getc (1); + if (peekc == EOF) + goto eof_error; + if (peekc == ch) + { + RESIZE_MALLOCED_BUFFER (ret, retind, 1, retsize, 64); + ret[retind++] = peekc; + peekc = shell_getc (1); + if (peekc == EOF) + goto eof_error; + if (peekc == '-') + { + RESIZE_MALLOCED_BUFFER (ret, retind, 1, retsize, 64); + ret[retind++] = peekc; + tflags |= LEX_STRIPDOC; + } + else + shell_ungetc (peekc); + tflags |= LEX_HEREDELIM; + lex_firstind = -1; + continue; + } + else + ch = peekc; /* fall through and continue XXX - this skips comments if peekc == '#' */ + } + /* Not exactly right yet, should handle shell metacharacters, too. If + any changes are made to this test, make analogous changes to subst.c: + extract_delimited_string(). */ + else if MBTEST((tflags & LEX_CKCOMMENT) && (tflags & LEX_INCOMMENT) == 0 && ch == '#' && (retind == 0 || ret[retind-1] == '\n' || shellblank (ret[retind - 1]))) + tflags |= LEX_INCOMMENT; + + if (tflags & LEX_PASSNEXT) /* last char was backslash */ + { + tflags &= ~LEX_PASSNEXT; + 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; + } +#if 0 + else if MBTEST((tflags & LEX_INCASE) && ch == close && close == ')') + tflags &= ~LEX_INCASE; /* XXX */ #endif - else if MBTEST(open != '`' && was_dollar && (ch == '(' || ch == '{' || ch == '[')) /* ) } ] */ - /* check for $(), $[], or ${} inside quoted string. */ + else if MBTEST(ch == close && (tflags & LEX_INCASE) == 0) /* ending delimiter */ +{ + count--; +/*itrace("parse_comsub:%d: found close: count = %d", line_number, count);*/ +} + else if MBTEST(((flags & P_FIRSTCLOSE) == 0) && (tflags & LEX_INCASE) == 0 && ch == open) /* nested begin */ + count++; + + /* Add this character. */ + RESIZE_MALLOCED_BUFFER (ret, retind, 1, retsize, 64); + ret[retind++] = ch; + + /* If we just read the ending character, don't bother continuing. */ + if (count == 0) + break; + + if MBTEST(ch == '\\') /* backslashes */ + tflags |= LEX_PASSNEXT; + + if MBTEST(shellquote (ch)) + { + /* '', ``, or "" inside $(...). */ + push_delimiter (dstack, ch); + if MBTEST((tflags & LEX_WASDOL) && 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); + CHECK_NESTRET_ERROR (); + + if MBTEST((tflags & LEX_WASDOL) && ch == '\'' && (extended_quote || (rflags & P_DQUOTE) == 0)) + { + /* Translate $'...' here. */ + ttrans = ansiexpand (nestret, 0, nestlen - 1, &ttranslen); + xfree (nestret); + + if ((rflags & P_DQUOTE) == 0) + { + nestret = sh_single_quote (ttrans); + free (ttrans); + nestlen = strlen (nestret); + } + else + { + nestret = ttrans; + nestlen = ttranslen; + } + retind -= 2; /* back up before the $' */ + } + else if MBTEST((tflags & LEX_WASDOL) && ch == '"' && (extended_quote || (rflags & P_DQUOTE) == 0)) + { + /* Locale expand $"..." here. */ + ttrans = localeexpand (nestret, 0, nestlen - 1, start_lineno, &ttranslen); + xfree (nestret); + + nestret = sh_mkdoublequoted (ttrans, ttranslen, 0); + free (ttrans); + nestlen = ttranslen + 2; + retind -= 2; /* back up before the $" */ + } + + APPEND_NESTRET (); + FREE (nestret); + } + else if MBTEST((tflags & LEX_WASDOL) && (ch == '(' || ch == '{' || ch == '[')) /* ) } ] */ + /* check for $(), $[], or ${} inside command substitution. */ { - if (open == ch) /* undo previous increment */ + if ((tflags & LEX_INCASE) == 0 && open == ch) /* undo previous increment */ count--; if (ch == '(') /* ) */ - nestret = parse_matched_pair (0, '(', ')', &nestlen, rflags & ~P_DQUOTE); + nestret = parse_comsub (0, '(', ')', &nestlen, (rflags|P_COMMAND) & ~P_DQUOTE); else if (ch == '{') /* } */ nestret = parse_matched_pair (0, '{', '}', &nestlen, P_FIRSTCLOSE|rflags); else if (ch == '[') /* ] */ nestret = parse_matched_pair (0, '[', ']', &nestlen, rflags); - goto add_nestret; + CHECK_NESTRET_ERROR (); + APPEND_NESTRET (); + + FREE (nestret); } - was_dollar = MBTEST(ch == '$'); + if MBTEST(ch == '$') + tflags |= LEX_WASDOL; + else + tflags &= ~LEX_WASDOL; } + FREE (heredelim); ret[retind] = '\0'; if (lenp) *lenp = retind; +/*itrace("parse_comsub:%d: returning `%s'", line_number, ret);*/ + return ret; +} + +/* XXX - this needs to handle functionality like subst.c:no_longjmp_on_fatal_error; + maybe extract_command_subst should handle it. */ +char * +xparse_dolparen (base, string, indp, flags) + char *base; + char *string; + int *indp; + int flags; +{ + sh_parser_state_t ps; + int orig_ind, nc, sflags; + char *ret, *s, *ep, *ostring; + + /*yydebug = 1;*/ + orig_ind = *indp; + ostring = string; + + sflags = SEVAL_NONINT|SEVAL_NOHIST|SEVAL_NOFREE; + if (flags & SX_NOLONGJMP) + sflags |= SEVAL_NOLONGJMP; + save_parser_state (&ps); + + /*(*/ + parser_state |= PST_CMDSUBST|PST_EOFTOKEN; /* allow instant ')' */ /*(*/ + shell_eof_token = ')'; + parse_string (string, "command substitution", sflags, &ep); + + restore_parser_state (&ps); + reset_parser (); + if (interactive) + token_to_read = 0; + + /* Need to find how many characters parse_and_execute consumed, update + *indp, if flags != 0, copy the portion of the string parsed into RET + and return it. If flags & 1 (EX_NOALLOC) we can return NULL. */ + + /*(*/ + if (ep[-1] != ')') + { +#if DEBUG + if (ep[-1] != '\n') + itrace("xparse_dolparen:%d: ep[-1] != RPAREN (%d), ep = `%s'", line_number, ep[-1], ep); +#endif + while (ep > ostring && ep[-1] == '\n') ep--; + } + + nc = ep - ostring; + *indp = ep - base - 1; + + /*(*/ +#if DEBUG + if (base[*indp] != ')') + itrace("xparse_dolparen:%d: base[%d] != RPAREN (%d), base = `%s'", line_number, *indp, base[*indp], base); +#endif + + if (flags & SX_NOALLOC) + return (char *)NULL; + + if (nc == 0) + { + ret = xmalloc (1); + ret[0] = '\0'; + } + else + ret = substring (ostring, 0, nc - 1); + return ret; } @@ -3173,7 +3824,7 @@ cond_term () if (term) term->flags |= CMD_INVERT_RETURN; } - else if (tok == WORD && test_unop (yylval.word->word)) + else if (tok == WORD && yylval.word->word[0] == '-' && yylval.word->word[2] == 0 && test_unop (yylval.word->word)) { op = yylval.word; tok = read_token (READ); @@ -3433,9 +4084,9 @@ read_token_word (character) we need to special-case characters special to both the shell and regular expressions. Right now, that is only '(' and '|'. */ /*)*/ if MBTEST((parser_state & PST_REGEXP) && (character == '(' || character == '|')) /*)*/ - { - if (character == '|') - goto got_character; + { + if (character == '|') + goto got_character; push_delimiter (dstack, character); ttok = parse_matched_pair (cd, '(', ')', &ttoklen, 0); @@ -3450,7 +4101,7 @@ read_token_word (character) FREE (ttok); dollar_present = all_digit_token = 0; goto next_character; - } + } #endif /* COND_REGEXP */ #ifdef EXTENDED_GLOB @@ -3500,7 +4151,7 @@ read_token_word (character) history literally rather than causing a possibly- incorrect `;' to be added. ) */ push_delimiter (dstack, peek_char); - ttok = parse_matched_pair (cd, '(', ')', &ttoklen, P_COMMAND); + ttok = parse_comsub (cd, '(', ')', &ttoklen, P_COMMAND); pop_delimiter (dstack); } else @@ -3590,8 +4241,12 @@ read_token_word (character) } #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)) /* ] */ + /* Identify possible array subscript assignment; match [...]. If + parser_state&PST_COMPASSIGN, we need to parse [sub]=words treating + `sub' as if it were enclosed in double quotes. */ + else if MBTEST(character == '[' && /* ] */ + ((token_index > 0 && assignment_acceptable (last_read_token) && token_is_ident (token, token_index)) || + (token_index == 0 && (parser_state&PST_COMPASSIGN)))) { ttok = parse_matched_pair (cd, '[', ']', &ttoklen, 0); if (ttok == &matched_pair_error) @@ -3803,14 +4458,21 @@ reserved_word_acceptable (toksym) case IF: case OR_OR: case SEMI_SEMI: + case SEMI_AND: + case SEMI_SEMI_AND: case THEN: case TIME: case TIMEOPT: + case COPROC: case UNTIL: case WHILE: case 0: return 1; default: +#if defined (COPROCESS_SUPPORT) + if (last_read_token == WORD && token_before_that == COPROC) + return 1; +#endif return 0; } } @@ -3861,9 +4523,10 @@ reset_readline_prompt () /* 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[] = { +static const int no_semi_successors[] = { '\n', '{', '(', ')', ';', '&', '|', - CASE, DO, ELSE, IF, SEMI_SEMI, THEN, UNTIL, WHILE, AND_AND, OR_OR, IN, + CASE, DO, ELSE, IF, SEMI_SEMI, SEMI_AND, SEMI_SEMI_AND, THEN, UNTIL, + WHILE, AND_AND, OR_OR, IN, 0 }; @@ -3878,7 +4541,13 @@ history_delimiting_chars () if (dstack.delimiter_depth != 0) return ("\n"); - + + /* We look for current_command_line_count == 2 because we are looking to + add the first line of the body of the here document (the second line + of the command). */ + if (parser_state & PST_HEREDOC) + return (current_command_line_count == 2 ? "\n" : ""); + /* First, handle some special cases. */ /*(*/ /* If we just read `()', assume it's a function definition, and don't @@ -3904,7 +4573,7 @@ history_delimiting_chars () { /* 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++) + 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 " "; @@ -4232,6 +4901,7 @@ decode_prompt_string (string) no longer than PATH_MAX - 1 characters. */ strcpy (t_string, polite_directory_format (t_string)); + temp = trim_pathname (t_string, PATH_MAX - 1); /* If we're going to be expanding the prompt string later, quote the directory name. */ if (promptvars || posixly_correct) @@ -4685,7 +5355,7 @@ parse_string_to_word_list (s, flags, whom) wl = (WORD_LIST *)NULL; if (flags & 1) - parser_state |= PST_COMPASSIGN; + parser_state |= PST_COMPASSIGN|PST_REPARSE; while ((tok = read_token (READ)) != yacc_EOF) { @@ -4725,7 +5395,7 @@ parse_string_to_word_list (s, flags, whom) shell_input_line_terminator = orig_input_terminator; if (flags & 1) - parser_state &= ~PST_COMPASSIGN; + parser_state &= ~(PST_COMPASSIGN|PST_REPARSE); if (wl == &parse_string_error) { diff --git a/parser-built b/parser-built index e69de29bb..552d7adb5 100644 --- a/parser-built +++ b/parser-built @@ -0,0 +1,160 @@ +/* A Bison parser, made by GNU Bison 2.3. */ + +/* Skeleton interface for Bison's Yacc-like parsers in C + + Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 + 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., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. */ + +/* As a special exception, you may create a larger work that contains + part or all of the Bison parser skeleton and distribute that work + under terms of your choice, so long as that work isn't itself a + parser generator using the skeleton or a modified version thereof + as a parser skeleton. Alternatively, if you modify or redistribute + the parser skeleton itself, you may (at your option) remove this + special exception, which will cause the skeleton and the resulting + Bison output files to be licensed under the GNU General Public + License without this special exception. + + This special exception was added by the Free Software Foundation in + version 2.2 of Bison. */ + +/* Tokens. */ +#ifndef YYTOKENTYPE +# define YYTOKENTYPE + /* Put the tokens into the symbol table, so that GDB and other debuggers + know about them. */ + enum yytokentype { + IF = 258, + THEN = 259, + ELSE = 260, + ELIF = 261, + FI = 262, + CASE = 263, + ESAC = 264, + FOR = 265, + SELECT = 266, + WHILE = 267, + UNTIL = 268, + DO = 269, + DONE = 270, + FUNCTION = 271, + COPROC = 272, + COND_START = 273, + COND_END = 274, + COND_ERROR = 275, + IN = 276, + BANG = 277, + TIME = 278, + TIMEOPT = 279, + WORD = 280, + ASSIGNMENT_WORD = 281, + NUMBER = 282, + ARITH_CMD = 283, + ARITH_FOR_EXPRS = 284, + COND_CMD = 285, + AND_AND = 286, + OR_OR = 287, + GREATER_GREATER = 288, + LESS_LESS = 289, + LESS_AND = 290, + LESS_LESS_LESS = 291, + GREATER_AND = 292, + SEMI_SEMI = 293, + SEMI_AND = 294, + SEMI_SEMI_AND = 295, + LESS_LESS_MINUS = 296, + AND_GREATER = 297, + AND_GREATER_GREATER = 298, + LESS_GREATER = 299, + GREATER_BAR = 300, + BAR_AND = 301, + yacc_EOF = 302 + }; +#endif +/* Tokens. */ +#define IF 258 +#define THEN 259 +#define ELSE 260 +#define ELIF 261 +#define FI 262 +#define CASE 263 +#define ESAC 264 +#define FOR 265 +#define SELECT 266 +#define WHILE 267 +#define UNTIL 268 +#define DO 269 +#define DONE 270 +#define FUNCTION 271 +#define COPROC 272 +#define COND_START 273 +#define COND_END 274 +#define COND_ERROR 275 +#define IN 276 +#define BANG 277 +#define TIME 278 +#define TIMEOPT 279 +#define WORD 280 +#define ASSIGNMENT_WORD 281 +#define NUMBER 282 +#define ARITH_CMD 283 +#define ARITH_FOR_EXPRS 284 +#define COND_CMD 285 +#define AND_AND 286 +#define OR_OR 287 +#define GREATER_GREATER 288 +#define LESS_LESS 289 +#define LESS_AND 290 +#define LESS_LESS_LESS 291 +#define GREATER_AND 292 +#define SEMI_SEMI 293 +#define SEMI_AND 294 +#define SEMI_SEMI_AND 295 +#define LESS_LESS_MINUS 296 +#define AND_GREATER 297 +#define AND_GREATER_GREATER 298 +#define LESS_GREATER 299 +#define GREATER_BAR 300 +#define BAR_AND 301 +#define yacc_EOF 302 + + + + +#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED +typedef union YYSTYPE +#line 316 "/Users/chet/src/bash/src/parse.y" +{ + 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; +} +/* Line 1489 of yacc.c. */ +#line 153 "y.tab.h" + YYSTYPE; +# define yystype YYSTYPE /* obsolescent; will be withdrawn */ +# define YYSTYPE_IS_DECLARED 1 +# define YYSTYPE_IS_TRIVIAL 1 +#endif + +extern YYSTYPE yylval; + diff --git a/parser.h b/parser.h index 626651cc4..3c47dc96f 100644 --- a/parser.h +++ b/parser.h @@ -1,23 +1,23 @@ /* parser.h -- Everything you wanted to know about the parser, but were afraid to ask. */ -/* Copyright (C) 1995 Free Software Foundation, Inc. +/* Copyright (C) 1995, 2008,2009 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. + 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #if !defined (_PARSER_H_) # define _PARSER_H_ @@ -25,6 +25,27 @@ # include "command.h" # include "input.h" +/* Possible states for the parser that require it to do special things. */ +#define PST_CASEPAT 0x00001 /* in a case pattern list */ +#define PST_ALEXPNEXT 0x00002 /* expand next word for aliases */ +#define PST_ALLOWOPNBRC 0x00004 /* allow open brace for function def */ +#define PST_NEEDCLOSBRC 0x00008 /* need close brace */ +#define PST_DBLPAREN 0x00010 /* double-paren parsing */ +#define PST_SUBSHELL 0x00020 /* ( ... ) subshell */ +#define PST_CMDSUBST 0x00040 /* $( ... ) command substitution */ +#define PST_CASESTMT 0x00080 /* parsing a case statement */ +#define PST_CONDCMD 0x00100 /* parsing a [[...]] command */ +#define PST_CONDEXPR 0x00200 /* parsing the guts of [[...]] */ +#define PST_ARITHFOR 0x00400 /* parsing an arithmetic for command */ +#define PST_ALEXPAND 0x00800 /* OK to expand aliases - unused */ +#define PST_CMDTOKEN 0x01000 /* command token OK - unused */ +#define PST_COMPASSIGN 0x02000 /* parsing x=(...) compound assignment */ +#define PST_ASSIGNOK 0x04000 /* assignment statement ok in this context */ +#define PST_EOFTOKEN 0x08000 /* yylex checks against shell_eof_token */ +#define PST_REGEXP 0x10000 /* parsing an ERE/BRE as a single word */ +#define PST_HEREDOC 0x20000 /* reading body of here-document */ +#define PST_REPARSE 0x40000 /* re-parsing in parse_string_to_word_list */ + /* Definition of the delimiter stack. Needed by parse.y and bashhist.c. */ struct dstack { /* DELIMITERS is a stack of the nested delimiters that we have diff --git a/patchlevel.h b/patchlevel.h index aff99d93e..2af2f568b 100644 --- a/patchlevel.h +++ b/patchlevel.h @@ -1,22 +1,22 @@ /* patchlevel.h -- current bash patch level */ -/* Copyright (C) 2001-2006 Free Software Foundation, Inc. +/* Copyright (C) 2001-2009 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public - License for more details. + 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. */ + along with Bash. If not, see . +*/ #if !defined (_PATCHLEVEL_H_) #define _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 48 +#define PATCHLEVEL 0 #endif /* _PATCHLEVEL_H_ */ diff --git a/pathexp.c b/pathexp.c index 69966ac43..ece200d3d 100644 --- a/pathexp.c +++ b/pathexp.c @@ -1,22 +1,22 @@ /* pathexp.c -- The shell interface to the globbing library. */ -/* Copyright (C) 1995-2007 Free Software Foundation, Inc. +/* Copyright (C) 1995-2009 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. + 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #include "config.h" @@ -34,6 +34,7 @@ #include "flags.h" #include "shmbutil.h" +#include "bashintl.h" #include @@ -53,6 +54,9 @@ int glob_dot_filenames; /* Control whether the extended globbing features are enabled. */ int extended_glob = 0; +/* Control enabling special handling of `**' */ +int glob_star = 0; + /* Return nonzero if STRING has any unquoted special globbing chars in it. */ int unquoted_glob_pattern_p (string) @@ -137,6 +141,28 @@ ere_char (c) return (0); } +int +glob_char_p (s) + const char *s; +{ + switch (*s) + { + case '*': + case '[': + case ']': + case '?': + case '\\': + return 1; + case '+': + case '@': + case '!': + if (s[1] == '(') /*(*/ + return 1; + break; + } + return 0; +} + /* PATHNAME can contain characters prefixed by CTLESC; this indicates that the character is to be quoted. We quote it here in the style that the glob library recognizes. If flags includes QGLOB_CVTNULL, @@ -176,6 +202,13 @@ quote_string_for_globbing (pathname, qflags) if (pathname[i] == '\0') break; } + else if (pathname[i] == '\\') + { + temp[j++] = '\\'; + i++; + if (pathname[i] == '\0') + break; + } temp[j++] = pathname[i]; } temp[j] = '\0'; @@ -197,22 +230,8 @@ quote_globbing_chars (string) temp = (char *)xmalloc (slen * 2 + 1); for (t = temp, s = string; *s; ) { - switch (*s) - { - case '*': - case '[': - case ']': - case '?': - case '\\': - *t++ = '\\'; - break; - case '+': - case '@': - case '!': - if (s[1] == '(') /*(*/ - *t++ = '\\'; - break; - } + if (glob_char_p (s)) + *t++ = '\\'; /* Copy a single (possibly multibyte) character from s to t, incrementing both. */ @@ -280,7 +299,7 @@ shell_glob_filename (pathname) noglob_dot_filenames = glob_dot_filenames == 0; temp = quote_string_for_globbing (pathname, QGLOB_FILENAME); - results = glob_filename (temp, 0); + results = glob_filename (temp, glob_star ? GX_GLOBSTAR : 0); free (temp); if (results && ((GLOB_FAILED (results)) == 0)) diff --git a/pathexp.h b/pathexp.h index b4afcb3a4..20d0baf86 100644 --- a/pathexp.h +++ b/pathexp.h @@ -1,22 +1,22 @@ /* pathexp.h -- The shell interface to the globbing library. */ -/* Copyright (C) 1987-2007 Free Software Foundation, Inc. +/* Copyright (C) 1987-2009 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. + 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #if !defined (_PATHEXP_H_) #define _PATHEXP_H_ @@ -46,6 +46,7 @@ extern char *glob_error_return; extern int glob_dot_filenames; extern int extended_glob; +extern int glob_star; extern int match_ignore_case; /* doesn't really belong here */ extern int unquoted_glob_pattern_p __P((char *)); @@ -62,6 +63,7 @@ extern int unquoted_glob_pattern_p __P((char *)); to match a filename should be performed. */ extern char *quote_string_for_globbing __P((const char *, int)); +extern int glob_char_p __P((const char *)); extern char *quote_globbing_chars __P((char *)); /* Call the glob library to do globbing on PATHNAME. */ diff --git a/pathnames.h.in b/pathnames.h.in index 2ced60cd2..38d09393f 100644 --- a/pathnames.h.in +++ b/pathnames.h.in @@ -1,22 +1,22 @@ /* pathnames.h -- absolute filenames that bash wants for various defaults. */ -/* Copyright (C) 1987,1991 Free Software Foundation, Inc. +/* Copyright (C) 1987-2009 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public - License for more details. + 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. */ + along with Bash. If not, see . +*/ #if !defined (_PATHNAMES_H_) #define _PATHNAMES_H_ diff --git a/pcomplete.c b/pcomplete.c index 471fb54f9..311f9674b 100644 --- a/pcomplete.c +++ b/pcomplete.c @@ -1,23 +1,22 @@ -/* pcomplete.c - functions to generate lists of matches for programmable - completion. */ +/* pcomplete.c - functions to generate lists of matches for programmable completion. */ -/* Copyright (C) 1999-2005 Free Software Foundation, Inc. +/* Copyright (C) 1999-2009 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. + 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #include @@ -164,6 +163,9 @@ ITEMLIST it_stopped = { LIST_DYNAMIC, it_init_stopped, (STRINGLIST *)0 }; ITEMLIST it_users = { LIST_DYNAMIC }; /* unused */ ITEMLIST it_variables = { LIST_DYNAMIC, it_init_variables, (STRINGLIST *)0 }; +COMPSPEC *pcomp_curcs; +const char *pcomp_curcmd; + #ifdef DEBUG /* Debugging code */ static void @@ -516,6 +518,7 @@ it_init_joblist (itp, jstate) JOB *j; JOB_STATE ws; /* wanted state */ + ws = JNONE; if (jstate == 0) ws = JRUNNING; else if (jstate == 1) @@ -688,18 +691,17 @@ pcomp_filename_completion_function (text, state) { FREE (dfn); /* remove backslashes quoting special characters in filenames. */ +#if 1 + if (RL_ISSTATE (RL_STATE_COMPLETING) && rl_filename_dequoting_function) +#else if (rl_filename_dequoting_function) +#endif { -#if 0 - qc = (text[0] == '"' || text[0] == '\'') ? text[0] : 0; -#else /* Use rl_completion_quote_character because any single or double quotes have been removed by the time TEXT makes it here, and we don't want to remove backslashes inside quoted strings. */ - qc = rl_dispatching ? rl_completion_quote_character : 0; -#endif - dfn = (*rl_filename_dequoting_function) ((char *)text, qc); + dfn = (*rl_filename_dequoting_function) ((char *)text, rl_completion_quote_character); } else dfn = savestring (text); @@ -894,6 +896,16 @@ bind_compfunc_variables (line, ind, lwords, cw, exported) if (v && exported) VSETATTR(v, att_exported); + value = inttostr (rl_completion_type, ibuf, sizeof (ibuf)); + v = bind_int_variable ("COMP_TYPE", value); + if (v && exported) + VSETATTR(v, att_exported); + + value = inttostr (rl_completion_invoking_key, ibuf, sizeof (ibuf)); + v = bind_int_variable ("COMP_KEY", value); + if (v && exported) + VSETATTR(v, att_exported); + /* Since array variables can't be exported, we don't bother making the array of words. */ if (exported == 0) @@ -914,6 +926,8 @@ unbind_compfunc_variables (exported) { unbind_variable ("COMP_LINE"); unbind_variable ("COMP_POINT"); + unbind_variable ("COMP_TYPE"); + unbind_variable ("COMP_KEY"); #ifdef ARRAY_VARS unbind_variable ("COMP_WORDS"); unbind_variable ("COMP_CWORD"); @@ -1072,6 +1086,7 @@ gen_command_matches (cs, text, line, ind, lwords, nw, cw) char *csbuf, *cscmd, *t; int cmdlen, cmdsize, n, ws, we; WORD_LIST *cmdlist, *cl; + WORD_DESC *tw; STRINGLIST *sl; bind_compfunc_variables (line, ind, lwords, cw, 1); @@ -1103,7 +1118,9 @@ gen_command_matches (cs, text, line, ind, lwords, nw, cw) } cscmd[cmdlen] = '\0'; - csbuf = command_substitute (cscmd, 0); + tw = command_substitute (cscmd, 0); + csbuf = tw ? tw->word : (char *)NULL; + dispose_word_desc (tw); /* Now clean up and destroy everything. */ dispose_words (cmdlist); @@ -1149,7 +1166,11 @@ command_line_to_word_list (line, llen, sentinel, nwp, cwp) WORD_LIST *ret; char *delims; +#if 0 delims = "()<>;&| \t\n"; /* shell metacharacters break words */ +#else + delims = rl_completer_word_break_characters; +#endif ret = split_at_delims (line, llen, delims, sentinel, nwp, cwp); return (ret); } @@ -1340,6 +1361,34 @@ gen_compspec_completions (cs, cmd, word, start, end) return (ret); } +void +pcomp_set_readline_variables (flags, nval) + int flags, nval; +{ + /* If the user specified that the compspec returns filenames, make + sure that readline knows it. */ + if (flags & COPT_FILENAMES) + rl_filename_completion_desired = nval; + /* If the user doesn't want a space appended, tell readline. */ + if (flags & COPT_NOSPACE) + rl_completion_suppress_append = nval; +} + +/* Set or unset FLAGS in the options word of the current compspec. + SET_OR_UNSET is 1 for setting, 0 for unsetting. */ +void +pcomp_set_compspec_options (cs, flags, set_or_unset) + COMPSPEC *cs; + int flags, set_or_unset; +{ + if (cs == 0 && ((cs = pcomp_curcs) == 0)) + return; + if (set_or_unset) + cs->options |= flags; + else + cs->options &= ~flags; +} + /* The driver function for the programmable completion code. Returns a list of matches for WORD, which is an argument to command CMD. START and END bound the command currently being completed in rl_line_buffer. */ @@ -1349,9 +1398,10 @@ programmable_completions (cmd, word, start, end, foundp) const char *word; int start, end, *foundp; { - COMPSPEC *cs; + COMPSPEC *cs, *oldcs; STRINGLIST *ret; char **rmatches, *t; + const char *oldcmd; /* We look at the basename of CMD if the full command does not have an associated COMPSPEC. */ @@ -1371,6 +1421,12 @@ programmable_completions (cmd, word, start, end, foundp) cs = compspec_copy (cs); + oldcs = pcomp_curcs; + oldcmd = pcomp_curcmd; + + pcomp_curcs = cs; + pcomp_curcmd = cmd; + /* Signal the caller that we found a COMPSPEC for this command, and pass back any meta-options associated with the compspec. */ if (foundp) @@ -1378,6 +1434,9 @@ programmable_completions (cmd, word, start, end, foundp) ret = gen_compspec_completions (cs, cmd, word, start, end); + pcomp_curcs = oldcs; + pcomp_curcmd = oldcmd; + compspec_dispose (cs); if (ret) diff --git a/pcomplete.h b/pcomplete.h index 0b05ef815..bc0541d9f 100644 --- a/pcomplete.h +++ b/pcomplete.h @@ -1,23 +1,23 @@ /* pcomplete.h - structure definitions and other stuff for programmable - completion. */ +n completion. */ -/* Copyright (C) 1999-2002 Free Software Foundation, Inc. +/* Copyright (C) 1999-2009 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. + 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #if !defined (_PCOMPLETE_H_) # define _PCOMPLETE_H_ @@ -124,6 +124,9 @@ extern ITEMLIST it_stopped; extern ITEMLIST it_users; extern ITEMLIST it_variables; +extern COMPSPEC *pcomp_curcs; +extern const char *pcomp_curcmd; + /* Functions from pcomplib.c */ extern COMPSPEC *compspec_create __P((void)); extern void compspec_dispose __P((COMPSPEC *)); @@ -150,4 +153,6 @@ extern STRINGLIST *completions_to_stringlist __P((char **)); extern STRINGLIST *gen_compspec_completions __P((COMPSPEC *, const char *, const char *, int, int)); extern char **programmable_completions __P((const char *, const char *, int, int, int *)); +extern void pcomp_set_readline_variables __P((int, int)); +extern void pcomp_set_compspec_options __P((COMPSPEC *, int, int)); #endif /* _PCOMPLETE_H_ */ diff --git a/pcomplib.c b/pcomplib.c index 8db329592..fc4fbe4db 100644 --- a/pcomplib.c +++ b/pcomplib.c @@ -1,22 +1,22 @@ /* pcomplib.c - library functions for programmable completion. */ -/* Copyright (C) 1999-2002 Free Software Foundation, Inc. +/* Copyright (C) 1999-2009 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. + 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #include diff --git a/po/._de.po b/po/._de.po new file mode 100644 index 0000000000000000000000000000000000000000..c04a52a0b8af6b616b3c6d9ab7f3766beadc4517 GIT binary patch literal 4096 zc-rmPKMKMy6bA5DLBz#PCn=d7il~Ut$;C|s?cf?is-bC8(-u@bh{x~}-oO)h5lyLo zz{OqO4<6xtBtymzs;wGS0H&0Y*@7&|Q;|X4P7k1Qwx``2Hvq?lpTfyKFkI#SJzhC5ERuH;j`|n}`UNaa%jJqEhaOzh*_#!SoMvc@9 zxVX#t;1JGFGGzRr+^9eaU_yN|os$K5dSp;F(*>xV&1v@96~MCLr;+E)z`NXv7jQDu z`nqC$^181ghsLpB&Nic(%9Kk6ZNu#kSA%8G@3>>GS)g|AQR%f4sRI{+IzbTvLI@#* z5JCtc^e&s$Yq7lzPl#rT%Cyf&pma#MOqr>jN>U;AM6e(wOF?D$=)r&Y|99L3JJ0VO C1~m)- literal 0 Hc-jL100001 diff --git a/po/._sv.po b/po/._sv.po new file mode 100644 index 0000000000000000000000000000000000000000..6eb0cedf263305bccd64f4be03fcb4f5b2f03174 GIT binary patch literal 4096 zc-rmPKMKMy6bA5DLByq-PEs;E6cG`jlZ%@O+QBu3L_^c0rWI5?h{x~}Uc@uFYoz`G z7k7C-c!c+n3>iPDHfvA;7*j?jGcqSnj|}Q=x&Z#koo@Fp0A2t;4dZwU@%dW5fTNrC z*A?%RH<(F7nq`WI>kYM37gBTRI8krF1nqMcjilwmY@>s*%P=*2sT2)G83IBGA%qY@ z2qE+?o8D^);+4#a<+<5d#)&XCAyOCI)lQ?SQahr!D9A!lojiK*-~Im`w;;IP?&)nc AeEf zdp5iL0bDt8;~(JCQ~3`#a_7b$PziD1%7L$EHVU<5f8N;d`Tg*lKi9fH35=_lZ({z8 z`FfNuh-S>eSHT7N7Wm`x`w6%P{D-vqCKTi``-2fPeE z0(;<5x4rMXZkuxr-UNRDUjlytuYtcV?~5bm(GjhE95Ii}OF7zHS;`leTwT^P#usy6 z5$EFt(dIAKeMUoNj14q&tO94W?*G5ba~{@#X`qdA3mWN)+haSKD3epv8QI$8&93&O zDA$gM!Ma7WgDa6Fau3J$YRiRfz}IaI?I-p1&t{=Q_}OF7{}wW{m5} zs0rT?Uz^g{Q$s$eP6FWc@COBJ>HWbEi?#EnJ!Y@ovb7JSL6EjuSOu8)(5|9*m<-WSRTdF+(&l|sof zI^^IqJ+{`P=yzRtdNMt^H?7MJHQe}KeF6hh)T&^4%xaR+XCtRe1#`Nq)4sWOl7U+jnGot{j6Kv6H)I zXmf3fjQRr|dd=gO%8=2Fo*`fIG|JEIzhh$KJabIdGj>$#Ftgy9+JI+VHHrm_6}xG9 zfTx5hYTx!^#q3pu)kt(v>7kX0hqexyPnkSxBR;Q`a_!pm5fX>ow9;-#V-9EW7^Nmr zz9A0GfJ-(xpEXqh2NaYl2RvqkiLM%Jb~y}l+a~8VTC4Qv_#jT<3&wb-!dd(VGu?ES G_ToP>o-X_V literal 0 Hc-jL100001 diff --git a/po/af.po b/po/af.po new file mode 100644 index 000000000..d09e4df0a --- /dev/null +++ b/po/af.po @@ -0,0 +1,4438 @@ +# bash +# Copyright (C) 2004 Free Software Foundation, Inc. +# Petri Jooste , 2004. +# +msgid "" +msgstr "" +"Project-Id-Version: bash 2.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2009-01-06 11:56-0500\n" +"PO-Revision-Date: 2004-03-17 13:48+0200\n" +"Last-Translator: Petri Jooste \n" +"Language-Team: Afrikaans \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-1\n" +"Content-Transfer-Encoding: 8bit\n" + +#: arrayfunc.c:50 +#, fuzzy +msgid "bad array subscript" +msgstr "Os/2 Biskaart Skikking" + +#: arrayfunc.c:313 builtins/declare.def:474 +#, c-format +msgid "%s: cannot convert indexed to associative array" +msgstr "" + +#: arrayfunc.c:479 +#, fuzzy, c-format +msgid "%s: invalid associative array key" +msgstr "%s: illegal option -- %c\n" + +#: arrayfunc.c:481 +#, c-format +msgid "%s: cannot assign to non-numeric index" +msgstr "" + +#: arrayfunc.c:517 +#, c-format +msgid "%s: %s: must use subscript when assigning associative array" +msgstr "" + +#: bashhist.c:380 +#, c-format +msgid "%s: cannot create: %s" +msgstr "%s: kan nie %s skep nie" + +#: bashline.c:3413 +msgid "bash_execute_unix_command: cannot find keymap for command" +msgstr "" + +#: bashline.c:3491 +#, c-format +msgid "%s: first non-whitespace character is not `\"'" +msgstr "" + +#: bashline.c:3520 +#, c-format +msgid "no closing `%c' in %s" +msgstr "" + +#: bashline.c:3554 +#, c-format +msgid "%s: missing colon separator" +msgstr "" + +#: builtins/bind.def:120 builtins/bind.def:123 +msgid "line editing not enabled" +msgstr "" + +#: builtins/bind.def:206 +#, c-format +msgid "`%s': invalid keymap name" +msgstr "" + +#: builtins/bind.def:245 +#, fuzzy, c-format +msgid "%s: cannot read: %s" +msgstr "%s: kan nie %s skep nie" + +#: builtins/bind.def:260 +#, fuzzy, c-format +msgid "`%s': cannot unbind" +msgstr "%s: bevel nie gevind nie" + +#: builtins/bind.def:295 builtins/bind.def:325 +#, fuzzy, c-format +msgid "`%s': unknown function name" +msgstr "%s: leesalleen-funksie" + +#: builtins/bind.def:303 +#, c-format +msgid "%s is not bound to any keys.\n" +msgstr "" + +#: builtins/bind.def:307 +#, c-format +msgid "%s can be invoked via " +msgstr "" + +#: builtins/break.def:77 builtins/break.def:117 +#, fuzzy +msgid "loop count" +msgstr "Afteken" + +#: builtins/break.def:137 +msgid "only meaningful in a `for', `while', or `until' loop" +msgstr "" + +#: builtins/caller.def:133 +msgid "" +"Returns the context of the current subroutine call.\n" +" \n" +" Without EXPR, returns " +msgstr "" + +#: builtins/cd.def:215 +msgid "HOME not set" +msgstr "" + +#: builtins/cd.def:227 +msgid "OLDPWD not set" +msgstr "" + +#: builtins/common.c:101 +#, fuzzy, c-format +msgid "line %d: " +msgstr "3d modus" + +#: builtins/common.c:139 error.c:260 +#, fuzzy, c-format +msgid "warning: " +msgstr "besig om te skryf" + +#: builtins/common.c:153 +#, c-format +msgid "%s: usage: " +msgstr "" + +#: builtins/common.c:166 test.c:822 +#, fuzzy +msgid "too many arguments" +msgstr "te veel parameters" + +#: builtins/common.c:191 shell.c:493 shell.c:774 +#, fuzzy, c-format +msgid "%s: option requires an argument" +msgstr "%s: option `%s' requires an argument\n" + +#: builtins/common.c:198 +#, c-format +msgid "%s: numeric argument required" +msgstr "" + +#: builtins/common.c:205 +#, fuzzy, c-format +msgid "%s: not found" +msgstr "%s: bevel nie gevind nie" + +#: builtins/common.c:214 shell.c:787 +#, fuzzy, c-format +msgid "%s: invalid option" +msgstr "%s: illegal option -- %c\n" + +#: builtins/common.c:221 +#, fuzzy, c-format +msgid "%s: invalid option name" +msgstr "%s: illegal option -- %c\n" + +#: builtins/common.c:228 general.c:231 general.c:236 +#, fuzzy, c-format +msgid "`%s': not a valid identifier" +msgstr "Die datum is nie geldige!" + +#: builtins/common.c:238 +#, fuzzy +msgid "invalid octal number" +msgstr "Die sein nommer wat was gevang het" + +#: builtins/common.c:240 +#, fuzzy +msgid "invalid hex number" +msgstr "Die sein nommer wat was gevang het" + +#: builtins/common.c:242 expr.c:1255 +#, fuzzy +msgid "invalid number" +msgstr "Die sein nommer wat was gevang het" + +#: builtins/common.c:250 +#, c-format +msgid "%s: invalid signal specification" +msgstr "" + +#: builtins/common.c:257 +#, c-format +msgid "`%s': not a pid or valid job spec" +msgstr "" + +#: builtins/common.c:264 error.c:453 +#, fuzzy, c-format +msgid "%s: readonly variable" +msgstr "Veranderlike boom" + +#: builtins/common.c:272 +#, c-format +msgid "%s: %s out of range" +msgstr "" + +#: builtins/common.c:272 builtins/common.c:274 +#, fuzzy +msgid "argument" +msgstr "argument verwag\n" + +#: builtins/common.c:274 +#, c-format +msgid "%s out of range" +msgstr "" + +#: builtins/common.c:282 +#, c-format +msgid "%s: no such job" +msgstr "" + +#: builtins/common.c:290 +#, fuzzy, c-format +msgid "%s: no job control" +msgstr "geen taakbeheer in hierdie dop nie" + +#: builtins/common.c:292 +#, fuzzy +msgid "no job control" +msgstr "geen taakbeheer in hierdie dop nie" + +#: builtins/common.c:302 +#, fuzzy, c-format +msgid "%s: restricted" +msgstr "Die bediener beëindig Die verbinding." + +#: builtins/common.c:304 +#, fuzzy +msgid "restricted" +msgstr "" +"\n" +"Bevel beëindig\n" + +#: builtins/common.c:312 +#, c-format +msgid "%s: not a shell builtin" +msgstr "" + +#: builtins/common.c:321 +#, fuzzy, c-format +msgid "write error: %s" +msgstr "pypfout: %s" + +#: builtins/common.c:553 +#, c-format +msgid "%s: error retrieving current directory: %s: %s\n" +msgstr "" + +#: builtins/common.c:619 builtins/common.c:621 +#, fuzzy, c-format +msgid "%s: ambiguous job spec" +msgstr "%s: dubbelsinnige herroetering" + +#: builtins/complete.def:270 +#, c-format +msgid "%s: invalid action name" +msgstr "" + +#: builtins/complete.def:430 builtins/complete.def:615 +#: builtins/complete.def:813 +#, c-format +msgid "%s: no completion specification" +msgstr "" + +#: builtins/complete.def:667 +msgid "warning: -F option may not work as you expect" +msgstr "" + +#: builtins/complete.def:669 +msgid "warning: -C option may not work as you expect" +msgstr "" + +#: builtins/complete.def:786 +msgid "not currently executing completion function" +msgstr "" + +#: builtins/declare.def:122 +msgid "can only be used in a function" +msgstr "" + +#: builtins/declare.def:353 +msgid "cannot use `-f' to make functions" +msgstr "" + +#: builtins/declare.def:365 execute_cmd.c:4731 +#, c-format +msgid "%s: readonly function" +msgstr "%s: leesalleen-funksie" + +#: builtins/declare.def:461 +#, fuzzy, c-format +msgid "%s: cannot destroy array variables in this way" +msgstr "Kan nie soek 'n handtekening in hierdie boodskap!" + +#: builtins/declare.def:468 +#, c-format +msgid "%s: cannot convert associative to indexed array" +msgstr "" + +#: builtins/enable.def:137 builtins/enable.def:145 +msgid "dynamic loading not available" +msgstr "" + +#: builtins/enable.def:312 +#, fuzzy, c-format +msgid "cannot open shared object %s: %s" +msgstr "Kan nie oopmaak vir skrip-afvoer nie: \"" + +#: builtins/enable.def:335 +#, c-format +msgid "cannot find %s in shared object %s: %s" +msgstr "" + +#: builtins/enable.def:459 +#, c-format +msgid "%s: not dynamically loaded" +msgstr "" + +#: builtins/enable.def:474 +#, fuzzy, c-format +msgid "%s: cannot delete: %s" +msgstr "%s: kan nie %s skep nie" + +#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4588 +#: shell.c:1439 +#, c-format +msgid "%s: is a directory" +msgstr "%s: is 'n gids" + +#: builtins/evalfile.c:139 +#, fuzzy, c-format +msgid "%s: not a regular file" +msgstr "%s: kan nie 'n binêre lêer uitvoer nie" + +#: builtins/evalfile.c:147 +#, c-format +msgid "%s: file is too large" +msgstr "" + +#: builtins/evalfile.c:185 execute_cmd.c:4658 shell.c:1449 +#, c-format +msgid "%s: cannot execute binary file" +msgstr "%s: kan nie 'n binêre lêer uitvoer nie" + +#: builtins/exec.def:212 +#, fuzzy, c-format +msgid "%s: cannot execute: %s" +msgstr "%s: kan nie %s skep nie" + +#: builtins/exit.def:65 +#, fuzzy, c-format +msgid "logout\n" +msgstr "Afteken" + +#: builtins/exit.def:88 +msgid "not login shell: use `exit'" +msgstr "" + +#: builtins/exit.def:120 +#, c-format +msgid "There are stopped jobs.\n" +msgstr "" + +#: builtins/exit.def:122 +#, c-format +msgid "There are running jobs.\n" +msgstr "" + +#: builtins/fc.def:261 +#, fuzzy +msgid "no command found" +msgstr "%s: bevel nie gevind nie" + +#: builtins/fc.def:341 +msgid "history specification" +msgstr "" + +#: builtins/fc.def:362 +#, fuzzy, c-format +msgid "%s: cannot open temp file: %s" +msgstr "%s: kan nie %s skep nie" + +#: builtins/fg_bg.def:149 builtins/jobs.def:282 +msgid "current" +msgstr "" + +#: builtins/fg_bg.def:158 +#, c-format +msgid "job %d started without job control" +msgstr "" + +#: builtins/getopt.c:110 +#, fuzzy, c-format +msgid "%s: illegal option -- %c\n" +msgstr "%s: illegal option -- %c\n" + +#: builtins/getopt.c:111 +#, fuzzy, c-format +msgid "%s: option requires an argument -- %c\n" +msgstr "%s: option `%s' requires an argument\n" + +#: builtins/hash.def:92 +msgid "hashing disabled" +msgstr "" + +#: builtins/hash.def:138 +#, c-format +msgid "%s: hash table empty\n" +msgstr "" + +#: builtins/hash.def:244 +#, fuzzy, c-format +msgid "hits\tcommand\n" +msgstr "Bevelreël" + +#: builtins/help.def:130 +#, c-format +msgid "Shell commands matching keyword `" +msgid_plural "Shell commands matching keywords `" +msgstr[0] "" +msgstr[1] "" + +#: builtins/help.def:168 +#, c-format +msgid "" +"no help topics match `%s'. Try `help help' or `man -k %s' or `info %s'." +msgstr "" + +#: builtins/help.def:185 +#, fuzzy, c-format +msgid "%s: cannot open: %s" +msgstr "%s: kan nie %s skep nie" + +#: builtins/help.def:337 +#, c-format +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:154 +msgid "cannot use more than one of -anrw" +msgstr "" + +#: builtins/history.def:186 +msgid "history position" +msgstr "" + +#: builtins/history.def:365 +#, fuzzy, c-format +msgid "%s: history expansion failed" +msgstr "%s: heelgetal-uitdrukking is verwag\n" + +#: builtins/inlib.def:71 +#, fuzzy, c-format +msgid "%s: inlib failed" +msgstr "%s: heelgetal-uitdrukking is verwag\n" + +#: builtins/jobs.def:109 +msgid "no other options allowed with `-x'" +msgstr "" + +#: builtins/kill.def:197 +#, c-format +msgid "%s: arguments must be process or job IDs" +msgstr "" + +#: builtins/kill.def:260 +#, fuzzy +msgid "Unknown error" +msgstr "Onbekende fout %d" + +#: builtins/let.def:95 builtins/let.def:120 expr.c:501 expr.c:516 +#, fuzzy +msgid "expression expected" +msgstr "Bools uitdrukking verwag" + +#: builtins/mapfile.def:215 builtins/read.def:272 +#, c-format +msgid "%s: invalid file descriptor specification" +msgstr "" + +#: builtins/mapfile.def:223 builtins/read.def:279 +#, c-format +msgid "%d: invalid file descriptor: %s" +msgstr "" + +#: builtins/mapfile.def:232 builtins/mapfile.def:270 +#, fuzzy, c-format +msgid "%s: invalid line count" +msgstr "%s: illegal option -- %c\n" + +#: builtins/mapfile.def:243 +#, fuzzy, c-format +msgid "%s: invalid array origin" +msgstr "%s: illegal option -- %c\n" + +#: builtins/mapfile.def:260 +#, fuzzy, c-format +msgid "%s: invalid callback quantum" +msgstr "Die sein nommer wat was gevang het" + +#: builtins/mapfile.def:292 +#, fuzzy +msgid "empty array variable name" +msgstr "Veranderlike boom" + +#: builtins/mapfile.def:313 +msgid "array variable support required" +msgstr "" + +#: builtins/printf.def:367 +#, c-format +msgid "`%s': missing format character" +msgstr "" + +#: builtins/printf.def:544 +#, c-format +msgid "`%c': invalid format character" +msgstr "" + +#: builtins/printf.def:571 +#, c-format +msgid "warning: %s: %s" +msgstr "" + +#: builtins/printf.def:750 +msgid "missing hex digit for \\x" +msgstr "" + +#: builtins/pushd.def:195 +#, fuzzy +msgid "no other directory" +msgstr "boonste lêergids." + +#: builtins/pushd.def:462 +#, fuzzy +msgid "" +msgstr "Nuutste gebruik word werksaam gids" + +#: builtins/pushd.def:506 +msgid "directory stack empty" +msgstr "" + +#: builtins/pushd.def:508 +#, fuzzy +msgid "directory stack index" +msgstr "Stapel grootte verhoog" + +#: builtins/pushd.def:683 +msgid "" +"Display the list of currently remembered directories. Directories\n" +" find their way onto the list with the `pushd' command; you can get\n" +" back up through the list with the `popd' command.\n" +" \n" +" Options:\n" +" -c\tclear the directory stack by deleting all of the elements\n" +" -l\tdo not print tilde-prefixed versions of directories relative\n" +" \tto your home directory\n" +" -p\tprint the directory stack with one entry per line\n" +" -v\tprint the directory stack with one entry per line prefixed\n" +" \twith its position in the stack\n" +" \n" +" Arguments:\n" +" +N\tDisplays the Nth entry counting from the left of the list shown " +"by\n" +" \tdirs when invoked without options, starting with zero.\n" +" \n" +" -N\tDisplays the Nth entry counting from the right of the list shown " +"by\n" +"\tdirs when invoked without options, starting with zero." +msgstr "" + +#: builtins/pushd.def:705 +msgid "" +"Adds a directory to the top of the directory stack, or rotates\n" +" the stack, making the new top of the stack the current working\n" +" directory. With no arguments, exchanges the top two directories.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when adding\n" +" \tdirectories to the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the left of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" -N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the right of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" dir\tAdds DIR to the directory stack at the top, making it the\n" +" \tnew current working directory.\n" +" \n" +" The `dirs' builtin displays the directory stack." +msgstr "" + +#: builtins/pushd.def:730 +msgid "" +"Removes entries from the directory stack. With no arguments, removes\n" +" the top directory from the stack, and changes to the new top directory.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when removing\n" +" \tdirectories from the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRemoves the Nth entry counting from the left of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd +0'\n" +" \tremoves the first directory, `popd +1' the second.\n" +" \n" +" -N\tRemoves the Nth entry counting from the right of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd -0'\n" +" \tremoves the last directory, `popd -1' the next to last.\n" +" \n" +" The `dirs' builtin displays the directory stack." +msgstr "" + +#: builtins/read.def:248 +#, c-format +msgid "%s: invalid timeout specification" +msgstr "" + +#: builtins/read.def:574 +#, fuzzy, c-format +msgid "read error: %d: %s" +msgstr "pypfout: %s" + +#: builtins/return.def:73 +msgid "can only `return' from a function or sourced script" +msgstr "" + +#: builtins/set.def:768 +msgid "cannot simultaneously unset a function and a variable" +msgstr "" + +#: builtins/set.def:805 +#, fuzzy, c-format +msgid "%s: cannot unset" +msgstr "%s: kan nie %s skep nie" + +#: builtins/set.def:812 +#, fuzzy, c-format +msgid "%s: cannot unset: readonly %s" +msgstr "%s: kan nie %s skep nie" + +#: builtins/set.def:823 +#, fuzzy, c-format +msgid "%s: not an array variable" +msgstr "Veranderlike boom" + +#: builtins/setattr.def:186 +#, fuzzy, c-format +msgid "%s: not a function" +msgstr "%s: leesalleen-funksie" + +#: builtins/shift.def:71 builtins/shift.def:77 +#, fuzzy +msgid "shift count" +msgstr "Shift" + +#: builtins/shopt.def:254 +msgid "cannot set and unset shell options simultaneously" +msgstr "" + +#: builtins/shopt.def:319 +#, c-format +msgid "%s: invalid shell option name" +msgstr "" + +#: builtins/source.def:128 +msgid "filename argument required" +msgstr "" + +#: builtins/source.def:153 +#, fuzzy, c-format +msgid "%s: file not found" +msgstr "%s: bevel nie gevind nie" + +#: builtins/suspend.def:101 +msgid "cannot suspend" +msgstr "" + +#: builtins/suspend.def:111 +#, fuzzy +msgid "cannot suspend a login shell" +msgstr "Begin aanteken tolk" + +#: builtins/type.def:234 +#, c-format +msgid "%s is aliased to `%s'\n" +msgstr "" + +#: builtins/type.def:255 +#, c-format +msgid "%s is a shell keyword\n" +msgstr "" + +#: builtins/type.def:274 +#, fuzzy, c-format +msgid "%s is a function\n" +msgstr "%s: leesalleen-funksie" + +#: builtins/type.def:296 +#, c-format +msgid "%s is a shell builtin\n" +msgstr "" + +#: builtins/type.def:317 builtins/type.def:391 +#, c-format +msgid "%s is %s\n" +msgstr "" + +#: builtins/type.def:337 +#, c-format +msgid "%s is hashed (%s)\n" +msgstr "" + +#: builtins/ulimit.def:372 +#, c-format +msgid "%s: invalid limit argument" +msgstr "" + +#: builtins/ulimit.def:398 +#, fuzzy, c-format +msgid "`%c': bad command" +msgstr "%s: illegal option -- %c\n" + +#: builtins/ulimit.def:427 +#, fuzzy, c-format +msgid "%s: cannot get limit: %s" +msgstr "%s: kan nie %s skep nie" + +#: builtins/ulimit.def:453 +#, fuzzy +msgid "limit" +msgstr "Filter beperk:" + +#: builtins/ulimit.def:465 builtins/ulimit.def:765 +#, fuzzy, c-format +msgid "%s: cannot modify limit: %s" +msgstr "%s: kan nie %s skep nie" + +#: builtins/umask.def:118 +#, fuzzy +msgid "octal number" +msgstr "Die sein nommer wat was gevang het" + +#: builtins/umask.def:231 +#, c-format +msgid "`%c': invalid symbolic mode operator" +msgstr "" + +#: builtins/umask.def:286 +#, c-format +msgid "`%c': invalid symbolic mode character" +msgstr "" + +#: error.c:89 error.c:320 error.c:322 error.c:324 +msgid " line " +msgstr "" + +#: error.c:164 +#, fuzzy, c-format +msgid "last command: %s\n" +msgstr "Bevelreël" + +#: error.c:172 +#, c-format +msgid "Aborting..." +msgstr "" + +#: error.c:405 +#, fuzzy +msgid "unknown command error" +msgstr "Onbekende fout %d" + +#: error.c:406 +#, fuzzy +msgid "bad command type" +msgstr "bevelnaam" + +#: error.c:407 +#, fuzzy +msgid "bad connector" +msgstr "foutiewe verbinder`%d'" + +#: error.c:408 +#, fuzzy +msgid "bad jump" +msgstr "Spring na:" + +#: error.c:446 +#, fuzzy, c-format +msgid "%s: unbound variable" +msgstr "Veranderlike boom" + +#: eval.c:181 +#, c-format +msgid "\atimed out waiting for input: auto-logout\n" +msgstr "" + +#: execute_cmd.c:491 +#, c-format +msgid "cannot redirect standard input from /dev/null: %s" +msgstr "" + +#: execute_cmd.c:1091 +#, c-format +msgid "TIMEFORMAT: `%c': invalid format character" +msgstr "" + +#: execute_cmd.c:1942 +#, fuzzy +msgid "pipe error" +msgstr "pypfout: %s" + +#: execute_cmd.c:4276 +#, c-format +msgid "%s: restricted: cannot specify `/' in command names" +msgstr "" + +#: execute_cmd.c:4367 +#, c-format +msgid "%s: command not found" +msgstr "%s: bevel nie gevind nie" + +#: execute_cmd.c:4621 +#, fuzzy, c-format +msgid "%s: %s: bad interpreter" +msgstr "%s: is 'n gids" + +#: execute_cmd.c:4770 +#, fuzzy, c-format +msgid "cannot duplicate fd %d to fd %d" +msgstr "kan nie fd %d na fd 0 dupliseer nie: %s" + +#: expr.c:241 +msgid "expression recursion level exceeded" +msgstr "" + +#: expr.c:265 +#, fuzzy +msgid "recursion stack underflow" +msgstr "Stapel grootte verhoog" + +#: expr.c:379 +#, fuzzy +msgid "syntax error in expression" +msgstr "Sintaks fout in patroon" + +#: expr.c:419 +msgid "attempted assignment to non-variable" +msgstr "" + +#: expr.c:440 expr.c:445 expr.c:756 +#, fuzzy +msgid "division by 0" +msgstr "devisie by nul." + +#: expr.c:471 +msgid "bug: bad expassign token" +msgstr "" + +#: expr.c:513 +#, fuzzy +msgid "`:' expected for conditional expression" +msgstr "Soek die lêer vir 'n uitdrukking" + +#: expr.c:781 +msgid "exponent less than 0" +msgstr "" + +#: expr.c:826 +msgid "identifier expected after pre-increment or pre-decrement" +msgstr "" + +#: expr.c:854 +#, fuzzy +msgid "missing `)'" +msgstr "Ontbrekende '>'" + +#: expr.c:897 expr.c:1175 +#, fuzzy +msgid "syntax error: operand expected" +msgstr "Onverwagte einde van lêer tydens inlees van hulpbron." + +#: expr.c:1177 +msgid "syntax error: invalid arithmetic operator" +msgstr "" + +#: expr.c:1201 +#, fuzzy, c-format +msgid "%s%s%s: %s (error token is \"%s\")" +msgstr "" +"Hierdie is die fout boodskap van %1:\n" +"%2" + +#: expr.c:1259 +msgid "invalid arithmetic base" +msgstr "" + +#: expr.c:1279 +msgid "value too great for base" +msgstr "waarde te groot vir basis" + +#: expr.c:1328 +#, fuzzy, c-format +msgid "%s: expression error\n" +msgstr "%s: heelgetal-uitdrukking is verwag\n" + +#: general.c:61 +#, fuzzy +msgid "getcwd: cannot access parent directories" +msgstr "Kan nie die program uitvoer nie:" + +#: input.c:94 subst.c:4559 +#, fuzzy, c-format +msgid "cannot reset nodelay mode for fd %d" +msgstr "kan nie fd %d na fd 0 dupliseer nie: %s" + +#: input.c:258 +#, c-format +msgid "cannot allocate new file descriptor for bash input from fd %d" +msgstr "" + +#: input.c:266 +#, c-format +msgid "save_bash_input: buffer already exists for new fd %d" +msgstr "" + +#: jobs.c:466 +msgid "start_pipeline: pgrp pipe" +msgstr "" + +#: jobs.c:882 +#, c-format +msgid "forked pid %d appears in running job %d" +msgstr "" + +#: jobs.c:1000 +#, c-format +msgid "deleting stopped job %d with process group %ld" +msgstr "" + +#: jobs.c:1105 +#, c-format +msgid "add_process: process %5ld (%s) in the_pipeline" +msgstr "" + +#: jobs.c:1108 +#, c-format +msgid "add_process: pid %5ld (%s) marked as still alive" +msgstr "" + +#: jobs.c:1396 +#, fuzzy, c-format +msgid "describe_pid: %ld: no such pid" +msgstr "E108: Geen veranderlike: \"%s\"" + +#: jobs.c:1411 +#, fuzzy, c-format +msgid "Signal %d" +msgstr "Sein kwaliteit:" + +#: jobs.c:1425 jobs.c:1450 +msgid "Done" +msgstr "Klaar" + +#: jobs.c:1430 siglist.c:122 +#, fuzzy +msgid "Stopped" +msgstr "Op gehou" + +#: jobs.c:1434 +#, fuzzy, c-format +msgid "Stopped(%s)" +msgstr "Op gehou" + +#: jobs.c:1438 +#, fuzzy +msgid "Running" +msgstr "aktief" + +#: jobs.c:1452 +#, c-format +msgid "Done(%d)" +msgstr "Klaar(%d)" + +#: jobs.c:1454 +#, c-format +msgid "Exit %d" +msgstr "Verlaat %d" + +#: jobs.c:1457 +msgid "Unknown status" +msgstr "Onbekende status" + +#: jobs.c:1544 +#, fuzzy, c-format +msgid "(core dumped) " +msgstr "Kern Ontwikkelaar" + +#: jobs.c:1563 +#, fuzzy, c-format +msgid " (wd: %s)" +msgstr "Aktiveer nou dadelik" + +#: jobs.c:1766 +#, fuzzy, c-format +msgid "child setpgid (%ld to %ld)" +msgstr "Fout in die skryf van %s" + +#: jobs.c:2094 nojobs.c:576 +#, c-format +msgid "wait: pid %ld is not a child of this shell" +msgstr "" + +#: jobs.c:2321 +#, c-format +msgid "wait_for: No record of process %ld" +msgstr "" + +#: jobs.c:2593 +#, c-format +msgid "wait_for_job: job %d is stopped" +msgstr "" + +#: jobs.c:2815 +#, fuzzy, c-format +msgid "%s: job has terminated" +msgstr "Die bediener beëindig Die verbinding." + +#: jobs.c:2824 +#, c-format +msgid "%s: job %d already in background" +msgstr "" + +#: jobs.c:3487 +#, fuzzy, c-format +msgid "%s: line %d: " +msgstr "3d modus" + +#: jobs.c:3501 nojobs.c:805 +#, fuzzy, c-format +msgid " (core dumped)" +msgstr "Kern Ontwikkelaar" + +#: jobs.c:3513 jobs.c:3526 +#, fuzzy, c-format +msgid "(wd now: %s)\n" +msgstr "Aktiveer nou dadelik" + +#: jobs.c:3558 +#, fuzzy +msgid "initialize_job_control: getpgrp failed" +msgstr "Inisialisering van OpenGL het misluk." + +#: jobs.c:3618 +msgid "initialize_job_control: line discipline" +msgstr "" + +#: jobs.c:3628 +#, fuzzy +msgid "initialize_job_control: setpgid" +msgstr "Inisialisering van OpenGL het misluk." + +#: jobs.c:3656 +#, c-format +msgid "cannot set terminal process group (%d)" +msgstr "" + +#: jobs.c:3661 +msgid "no job control in this shell" +msgstr "geen taakbeheer in hierdie dop nie" + +#: lib/malloc/malloc.c:296 +#, c-format +msgid "malloc: failed assertion: %s\n" +msgstr "" + +#: lib/malloc/malloc.c:312 +#, c-format +msgid "" +"\r\n" +"malloc: %s:%d: assertion botched\r\n" +msgstr "" + +#: lib/malloc/malloc.c:313 +#, fuzzy +msgid "unknown" +msgstr "(onbekend)" + +#: lib/malloc/malloc.c:797 +msgid "malloc: block on free list clobbered" +msgstr "" + +#: lib/malloc/malloc.c:874 +msgid "free: called with already freed block argument" +msgstr "" + +#: lib/malloc/malloc.c:877 +msgid "free: called with unallocated block argument" +msgstr "" + +#: lib/malloc/malloc.c:896 +msgid "free: underflow detected; mh_nbytes out of range" +msgstr "" + +#: lib/malloc/malloc.c:902 +msgid "free: start and end chunk sizes differ" +msgstr "" + +#: lib/malloc/malloc.c:1001 +msgid "realloc: called with unallocated block argument" +msgstr "" + +#: lib/malloc/malloc.c:1016 +msgid "realloc: underflow detected; mh_nbytes out of range" +msgstr "" + +#: lib/malloc/malloc.c:1022 +msgid "realloc: start and end chunk sizes differ" +msgstr "" + +#: lib/malloc/table.c:177 +#, c-format +msgid "register_alloc: alloc table is full with FIND_ALLOC?\n" +msgstr "" + +#: lib/malloc/table.c:184 +#, c-format +msgid "register_alloc: %p already in table as allocated?\n" +msgstr "" + +#: lib/malloc/table.c:220 +#, c-format +msgid "register_free: %p already in table as free?\n" +msgstr "" + +#: lib/sh/fmtulong.c:101 +msgid "invalid base" +msgstr "" + +#: lib/sh/netopen.c:168 +#, fuzzy, c-format +msgid "%s: host unknown" +msgstr "onbekend" + +#: lib/sh/netopen.c:175 +#, c-format +msgid "%s: invalid service" +msgstr "" + +#: lib/sh/netopen.c:306 +#, c-format +msgid "%s: bad network path specification" +msgstr "" + +#: lib/sh/netopen.c:346 +msgid "network operations not supported" +msgstr "" + +#: mailcheck.c:433 +#, fuzzy +msgid "You have mail in $_" +msgstr "Bevestig Pos In" + +#: mailcheck.c:458 +#, fuzzy +msgid "You have new mail in $_" +msgstr "Wanneer nuwe pos arriveer in" + +#: mailcheck.c:474 +#, c-format +msgid "The mail in %s has been read\n" +msgstr "" + +#: make_cmd.c:322 +#, fuzzy +msgid "syntax error: arithmetic expression required" +msgstr "Sintaks fout in patroon" + +#: make_cmd.c:324 +#, fuzzy +msgid "syntax error: `;' unexpected" +msgstr "Onverwagte einde van lêer tydens inlees van hulpbron." + +#: make_cmd.c:325 +#, fuzzy, c-format +msgid "syntax error: `((%s))'" +msgstr "sintaksfout" + +#: make_cmd.c:567 +#, c-format +msgid "make_here_document: bad instruction type %d" +msgstr "" + +#: make_cmd.c:651 +#, c-format +msgid "here-document at line %d delimited by end-of-file (wanted `%s')" +msgstr "" + +#: make_cmd.c:746 +#, c-format +msgid "make_redirection: redirection instruction `%d' out of range" +msgstr "" + +#: parse.y:2986 parse.y:3218 +#, c-format +msgid "unexpected EOF while looking for matching `%c'" +msgstr "" + +#: parse.y:3722 +msgid "unexpected EOF while looking for `]]'" +msgstr "" + +#: parse.y:3727 +#, c-format +msgid "syntax error in conditional expression: unexpected token `%s'" +msgstr "" + +#: parse.y:3731 +#, fuzzy +msgid "syntax error in conditional expression" +msgstr "Sintaks fout in patroon" + +#: parse.y:3809 +#, c-format +msgid "unexpected token `%s', expected `)'" +msgstr "" + +#: parse.y:3813 +#, fuzzy +msgid "expected `)'" +msgstr "')' is verwag\n" + +#: parse.y:3841 +#, c-format +msgid "unexpected argument `%s' to conditional unary operator" +msgstr "" + +#: parse.y:3845 +msgid "unexpected argument to conditional unary operator" +msgstr "" + +#: parse.y:3885 +#, fuzzy, c-format +msgid "unexpected token `%s', conditional binary operator expected" +msgstr "%s: binêre operator is verwag\n" + +#: parse.y:3889 +#, fuzzy +msgid "conditional binary operator expected" +msgstr "%s: binêre operator is verwag\n" + +#: parse.y:3906 +#, c-format +msgid "unexpected argument `%s' to conditional binary operator" +msgstr "" + +#: parse.y:3910 +msgid "unexpected argument to conditional binary operator" +msgstr "" + +#: parse.y:3921 +#, fuzzy, c-format +msgid "unexpected token `%c' in conditional command" +msgstr "Soek die lêer vir 'n uitdrukking" + +#: parse.y:3924 +#, fuzzy, c-format +msgid "unexpected token `%s' in conditional command" +msgstr "Soek die lêer vir 'n uitdrukking" + +#: parse.y:3928 +#, fuzzy, c-format +msgid "unexpected token %d in conditional command" +msgstr "Soek die lêer vir 'n uitdrukking" + +#: parse.y:5195 +#, c-format +msgid "syntax error near unexpected token `%s'" +msgstr "" + +#: parse.y:5213 +#, fuzzy, c-format +msgid "syntax error near `%s'" +msgstr "Sintaks fout in patroon" + +#: parse.y:5223 +#, fuzzy +msgid "syntax error: unexpected end of file" +msgstr "Onverwagte einde van lêer tydens inlees van hulpbron." + +#: parse.y:5223 +msgid "syntax error" +msgstr "sintaksfout" + +#: parse.y:5285 +#, fuzzy, c-format +msgid "Use \"%s\" to leave the shell.\n" +msgstr "Gebruik Kaart na Los Tronk" + +#: parse.y:5447 +msgid "unexpected EOF while looking for matching `)'" +msgstr "" + +#: pcomplete.c:1016 +#, c-format +msgid "completion: function `%s' not found" +msgstr "" + +#: pcomplib.c:179 +#, c-format +msgid "progcomp_insert: %s: NULL COMPSPEC" +msgstr "" + +#: print_cmd.c:287 +#, c-format +msgid "print_command: bad connector `%d'" +msgstr "" + +#: print_cmd.c:1347 +#, c-format +msgid "cprintf: `%c': invalid format character" +msgstr "" + +#: redir.c:105 +msgid "file descriptor out of range" +msgstr "" + +#: redir.c:148 +#, fuzzy, c-format +msgid "%s: ambiguous redirect" +msgstr "%s: dubbelsinnige herroetering" + +#: redir.c:152 +#, fuzzy, c-format +msgid "%s: cannot overwrite existing file" +msgstr "Jy het gespesifiseer 'n bestaande lêer" + +#: redir.c:157 +#, c-format +msgid "%s: restricted: cannot redirect output" +msgstr "" + +#: redir.c:162 +#, c-format +msgid "cannot create temp file for here-document: %s" +msgstr "" + +#: redir.c:517 +msgid "/dev/(tcp|udp)/host/port not supported without networking" +msgstr "" + +#: redir.c:1023 +#, fuzzy +msgid "redirection error: cannot duplicate fd" +msgstr "Pypfout.\n" + +#: shell.c:328 +msgid "could not find /tmp, please create!" +msgstr "" + +#: shell.c:332 +msgid "/tmp must be a valid directory name" +msgstr "" + +#: shell.c:876 +#, fuzzy, c-format +msgid "%c%c: invalid option" +msgstr "%s: illegal option -- %c\n" + +#: shell.c:1638 +msgid "I have no name!" +msgstr "Ek het nie 'n naam nie!" + +#: shell.c:1778 +#, fuzzy, c-format +msgid "GNU bash, version %s-(%s)\n" +msgstr "bedryfstelselkernweergawe" + +#: shell.c:1779 +#, c-format +msgid "" +"Usage:\t%s [GNU long option] [option] ...\n" +"\t%s [GNU long option] [option] script-file ...\n" +msgstr "" + +#: shell.c:1781 +#, fuzzy +msgid "GNU long options:\n" +msgstr "Gnu C Saamsteller Opsies" + +#: shell.c:1785 +#, fuzzy +msgid "Shell options:\n" +msgstr "opneem opsies" + +#: shell.c:1786 +msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n" +msgstr "" + +#: shell.c:1801 +#, fuzzy, c-format +msgid "\t-%s or -o option\n" +msgstr "" +"Gebruik so: %s LÊER \n" +" of: %s OPSIE\n" + +#: shell.c:1807 +#, c-format +msgid "Type `%s -c \"help set\"' for more information about shell options.\n" +msgstr "" + +#: shell.c:1808 +#, c-format +msgid "Type `%s -c help' for more information about shell builtin commands.\n" +msgstr "" + +#: shell.c:1809 +#, c-format +msgid "Use the `bashbug' command to report bugs.\n" +msgstr "" + +#: sig.c:583 +#, c-format +msgid "sigprocmask: %d: invalid operation" +msgstr "" + +#: siglist.c:47 +msgid "Bogus signal" +msgstr "Foutiewe sein" + +#: siglist.c:50 +#, fuzzy +msgid "Hangup" +msgstr "Ophang" + +#: siglist.c:54 +#, fuzzy +msgid "Interrupt" +msgstr "Interrupt" + +#: siglist.c:58 +#, fuzzy +msgid "Quit" +msgstr "Verlaat" + +#: siglist.c:62 +#, fuzzy +msgid "Illegal instruction" +msgstr "Sigill (onwettige instruksie)" + +#: siglist.c:66 +msgid "BPT trace/trap" +msgstr "" + +#: siglist.c:74 +#, fuzzy +msgid "ABORT instruction" +msgstr "Verwerking Instruksie" + +#: siglist.c:78 +#, fuzzy +msgid "EMT instruction" +msgstr "Verwerking Instruksie" + +#: siglist.c:82 +#, fuzzy +msgid "Floating point exception" +msgstr "wisselpuntgetaluitsondering" + +#: siglist.c:86 +#, fuzzy +msgid "Killed" +msgstr "Doodgemaak proses." + +#: siglist.c:90 +#, fuzzy +msgid "Bus error" +msgstr "Pypfout.\n" + +#: siglist.c:94 +#, fuzzy +msgid "Segmentation fault" +msgstr "Sigsegv (segmentasie oortreding)" + +#: siglist.c:98 +#, fuzzy +msgid "Bad system call" +msgstr "fork-stelselroep het gefaal" + +#: siglist.c:102 +#, fuzzy +msgid "Broken pipe" +msgstr "Sigpipe (gebroke pyp)" + +#: siglist.c:106 +#, fuzzy +msgid "Alarm clock" +msgstr "wêreld horlosie" + +#: siglist.c:110 +#, fuzzy +msgid "Terminated" +msgstr "Gedruk: %s" + +#: siglist.c:114 +#, fuzzy +msgid "Urgent IO condition" +msgstr "Ooreenstem enige kondisie" + +#: siglist.c:118 +#, fuzzy +msgid "Stopped (signal)" +msgstr "Sein kwaliteit:" + +#: siglist.c:126 +#, fuzzy +msgid "Continue" +msgstr "Gaan voort" + +#: siglist.c:134 +msgid "Child death or stop" +msgstr "" + +#: siglist.c:138 +#, fuzzy +msgid "Stopped (tty input)" +msgstr "Sigttin (tty invoer)" + +#: siglist.c:142 +#, fuzzy +msgid "Stopped (tty output)" +msgstr "Sigttou (tty uitset)" + +#: siglist.c:146 +#, fuzzy +msgid "I/O ready" +msgstr "Gereed." + +#: siglist.c:150 +#, fuzzy +msgid "CPU limit" +msgstr "Filter beperk:" + +#: siglist.c:154 +#, fuzzy +msgid "File limit" +msgstr "Filter beperk:" + +#: siglist.c:158 +#, fuzzy +msgid "Alarm (virtual)" +msgstr "virtuele werkskerms" + +#: siglist.c:162 +#, fuzzy +msgid "Alarm (profile)" +msgstr "Vee profiel uit..." + +#: siglist.c:166 +#, fuzzy +msgid "Window changed" +msgstr "Lêer Het verander" + +#: siglist.c:170 +#, fuzzy +msgid "Record lock" +msgstr "Sluit Lêers" + +#: siglist.c:174 +#, fuzzy +msgid "User signal 1" +msgstr "Gebruiker Sein 1" + +#: siglist.c:178 +#, fuzzy +msgid "User signal 2" +msgstr "Gebruiker Sein 1" + +#: siglist.c:182 +msgid "HFT input data pending" +msgstr "" + +#: siglist.c:186 +#, fuzzy +msgid "power failure imminent" +msgstr "Vaaling na Uitpak" + +#: siglist.c:190 +#, fuzzy +msgid "system crash imminent" +msgstr "Die Kde Omval Handteerder" + +#: siglist.c:194 +msgid "migrate process to another CPU" +msgstr "" + +#: siglist.c:198 +#, fuzzy +msgid "programming error" +msgstr "Pypfout.\n" + +#: 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 +#, fuzzy +msgid "Unknown Signal #" +msgstr "Sein kwaliteit:" + +#: siglist.c:224 +#, fuzzy, c-format +msgid "Unknown Signal #%d" +msgstr "Sein kwaliteit:" + +#: subst.c:1181 subst.c:1302 +#, fuzzy, c-format +msgid "bad substitution: no closing `%s' in %s" +msgstr "--Geen reëls in buffer--" + +#: subst.c:2458 +#, c-format +msgid "%s: cannot assign list to array member" +msgstr "" + +#: subst.c:4456 subst.c:4472 +#, fuzzy +msgid "cannot make pipe for process substitution" +msgstr "Woord Substitusie" + +#: subst.c:4504 +#, fuzzy +msgid "cannot make child for process substitution" +msgstr "Woord Substitusie" + +#: subst.c:4549 +#, fuzzy, c-format +msgid "cannot open named pipe %s for reading" +msgstr "Kan nie oopmaak vir skrip-afvoer nie: \"" + +#: subst.c:4551 +#, fuzzy, c-format +msgid "cannot open named pipe %s for writing" +msgstr "Kan nie oopmaak vir skrip-afvoer nie: \"" + +#: subst.c:4569 +#, fuzzy, c-format +msgid "cannot duplicate named pipe %s as fd %d" +msgstr "Kan nie oopmaak vir skrip-afvoer nie: \"" + +#: subst.c:4765 +#, fuzzy +msgid "cannot make pipe for command substitution" +msgstr "Woord Substitusie" + +#: subst.c:4799 +#, fuzzy +msgid "cannot make child for command substitution" +msgstr "Woord Substitusie" + +#: subst.c:4816 +msgid "command_substitute: cannot duplicate pipe as fd 1" +msgstr "" + +#: subst.c:5318 +#, c-format +msgid "%s: parameter null or not set" +msgstr "" + +#: subst.c:5608 +#, fuzzy, c-format +msgid "%s: substring expression < 0" +msgstr "ongeldige uitdrukking" + +#: subst.c:6660 +#, fuzzy, c-format +msgid "%s: bad substitution" +msgstr "Woord Substitusie" + +#: subst.c:6740 +#, fuzzy, c-format +msgid "$%s: cannot assign in this way" +msgstr "Kan nie soek 'n handtekening in hierdie boodskap!" + +#: subst.c:7479 +#, fuzzy, c-format +msgid "bad substitution: no closing \"`\" in %s" +msgstr "--Geen reëls in buffer--" + +#: subst.c:8354 +#, c-format +msgid "no match: %s" +msgstr "" + +#: test.c:145 +#, fuzzy +msgid "argument expected" +msgstr "argument verwag\n" + +#: test.c:154 +#, fuzzy, c-format +msgid "%s: integer expression expected" +msgstr "%s: heelgetal-uitdrukking is verwag\n" + +#: test.c:262 +#, fuzzy +msgid "`)' expected" +msgstr "')' is verwag\n" + +#: test.c:264 +#, fuzzy, c-format +msgid "`)' expected, found %s" +msgstr "')' is verwag, maar %s gevind\n" + +#: test.c:279 test.c:688 test.c:691 +#, fuzzy, c-format +msgid "%s: unary operator expected" +msgstr "%s: unitêre operator is verwag\n" + +#: test.c:444 test.c:731 +#, fuzzy, c-format +msgid "%s: binary operator expected" +msgstr "%s: binêre operator is verwag\n" + +#: test.c:806 +#, fuzzy +msgid "missing `]'" +msgstr "Ontbrekende '>'" + +#: trap.c:201 +#, fuzzy +msgid "invalid signal number" +msgstr "Die sein nommer wat was gevang het" + +#: trap.c:324 +#, c-format +msgid "run_pending_traps: bad value in trap_list[%d]: %p" +msgstr "" + +#: trap.c:328 +#, c-format +msgid "" +"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself" +msgstr "" + +#: trap.c:372 +#, c-format +msgid "trap_handler: bad signal %d" +msgstr "" + +#: variables.c:358 +#, c-format +msgid "error importing function definition for `%s'" +msgstr "" + +#: variables.c:736 +#, c-format +msgid "shell level (%d) too high, resetting to 1" +msgstr "" + +#: variables.c:1898 +msgid "make_local_variable: no function context at current scope" +msgstr "" + +#: variables.c:3127 +msgid "all_local_variables: no function context at current scope" +msgstr "" + +#: variables.c:3344 variables.c:3353 +#, c-format +msgid "invalid character %d in exportstr for %s" +msgstr "" + +#: variables.c:3359 +#, c-format +msgid "no `=' in exportstr for %s" +msgstr "" + +#: variables.c:3794 +msgid "pop_var_context: head of shell_variables not a function context" +msgstr "" + +#: variables.c:3807 +msgid "pop_var_context: no global_variables context" +msgstr "" + +#: variables.c:3881 +msgid "pop_scope: head of shell_variables not a temporary environment scope" +msgstr "" + +#: version.c:46 +msgid "Copyright (C) 2009 Free Software Foundation, Inc." +msgstr "" + +#: version.c:47 +msgid "" +"License GPLv3+: GNU GPL version 3 or later \n" +msgstr "" + +#: version.c:86 +#, fuzzy, c-format +msgid "GNU bash, version %s (%s)\n" +msgstr "bedryfstelselkernweergawe" + +#: version.c:91 +#, c-format +msgid "This is free software; you are free to change and redistribute it.\n" +msgstr "" + +#: version.c:92 +#, c-format +msgid "There is NO WARRANTY, to the extent permitted by law.\n" +msgstr "" + +#: xmalloc.c:92 +#, c-format +msgid "xmalloc: cannot allocate %lu bytes (%lu bytes allocated)" +msgstr "" + +#: xmalloc.c:94 +#, c-format +msgid "xmalloc: cannot allocate %lu bytes" +msgstr "" + +#: xmalloc.c:114 +#, c-format +msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)" +msgstr "" + +#: xmalloc.c:116 +#, c-format +msgid "xrealloc: cannot allocate %lu bytes" +msgstr "" + +#: xmalloc.c:150 +#, c-format +msgid "xmalloc: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)" +msgstr "" + +#: xmalloc.c:152 +#, c-format +msgid "xmalloc: %s:%d: cannot allocate %lu bytes" +msgstr "" + +#: xmalloc.c:174 +#, c-format +msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)" +msgstr "" + +#: xmalloc.c:176 +#, c-format +msgid "xrealloc: %s:%d: cannot allocate %lu bytes" +msgstr "" + +#: builtins.c:43 +#, fuzzy +msgid "alias [-p] [name[=value] ... ]" +msgstr "E418: Ongeldige waarde: %s" + +#: builtins.c:47 +#, fuzzy +msgid "unalias [-a] name [name ...]" +msgstr "Volle Naam:" + +#: builtins.c:51 +msgid "" +"bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-" +"x keyseq:shell-command] [keyseq:readline-function or readline-command]" +msgstr "" + +#: builtins.c:54 +#, fuzzy +msgid "break [n]" +msgstr "Breek" + +#: builtins.c:56 +#, fuzzy +msgid "continue [n]" +msgstr "Gaan voort" + +#: builtins.c:58 +#, fuzzy +msgid "builtin [shell-builtin [arg ...]]" +msgstr "Ontfouting %1 (met arg %2 %3)" + +#: builtins.c:61 +#, fuzzy +msgid "caller [expr]" +msgstr "/Opsies/Toets" + +#: builtins.c:64 +#, fuzzy +msgid "cd [-L|-P] [dir]" +msgstr "init_cache_dir %s... " + +#: builtins.c:66 +#, fuzzy +msgid "pwd [-LP]" +msgstr "miniserv.pl is gestop\n" + +#: builtins.c:68 +msgid ":" +msgstr ":" + +#: builtins.c:70 +msgid "true" +msgstr "" + +#: builtins.c:72 +msgid "false" +msgstr "" + +#: builtins.c:74 +#, fuzzy +msgid "command [-pVv] command [arg ...]" +msgstr "Gebruik so: %s [OPSIE] [BEVEL [ARG]...]\n" + +#: builtins.c:76 +#, fuzzy +msgid "declare [-aAfFilrtux] [-p] [name[=value] ...]" +msgstr "E418: Ongeldige waarde: %s" + +#: builtins.c:78 +#, fuzzy +msgid "typeset [-aAfFilrtux] [-p] name[=value] ..." +msgstr "E418: Ongeldige waarde: %s" + +#: builtins.c:80 +#, fuzzy +msgid "local [option] name[=value] ..." +msgstr "Name=Plaaslike Netwerk" + +#: builtins.c:83 +#, fuzzy +msgid "echo [-neE] [arg ...]" +msgstr "Ontfouting %1 (met arg %2 %3)" + +#: builtins.c:87 +#, fuzzy +msgid "echo [-n] [arg ...]" +msgstr "Konfigureer Eggo" + +#: builtins.c:90 +#, fuzzy +msgid "enable [-a] [-dnps] [-f filename] [name ...]" +msgstr "Teruglus lêernaam:" + +#: builtins.c:92 +#, fuzzy +msgid "eval [arg ...]" +msgstr "Ontfouting %1 (met arg %2 %3)" + +#: builtins.c:94 +msgid "getopts optstring name [arg]" +msgstr "" + +#: builtins.c:96 +msgid "exec [-cl] [-a name] [command [arguments ...]] [redirection ...]" +msgstr "" + +#: builtins.c:98 +#, fuzzy +msgid "exit [n]" +msgstr "Verlaat" + +#: builtins.c:100 +#, fuzzy +msgid "logout [n]" +msgstr "Afteken" + +#: builtins.c:103 +msgid "fc [-e ename] [-lnr] [first] [last] or fc -s [pat=rep] [command]" +msgstr "" + +#: builtins.c:107 +#, fuzzy +msgid "fg [job_spec]" +msgstr "Kort Spesifikasie werkvoorbeeld" + +#: builtins.c:111 +#, fuzzy +msgid "bg [job_spec ...]" +msgstr "Kort Spesifikasie werkvoorbeeld" + +#: builtins.c:114 +#, fuzzy +msgid "hash [-lr] [-p pathname] [-dt] [name ...]" +msgstr "Teruglus lêernaam:" + +#: builtins.c:117 +#, fuzzy +msgid "help [-ds] [pattern ...]" +msgstr "enige patroon" + +#: builtins.c:121 +msgid "" +"history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg " +"[arg...]" +msgstr "" + +#: builtins.c:125 +msgid "jobs [-lnprs] [jobspec ...] or jobs -x command [args]" +msgstr "" + +#: builtins.c:129 +msgid "disown [-h] [-ar] [jobspec ...]" +msgstr "" + +#: builtins.c:132 +msgid "" +"kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l " +"[sigspec]" +msgstr "" + +#: builtins.c:134 +#, fuzzy +msgid "let arg [arg ...]" +msgstr "Kom ons begin!" + +#: builtins.c:136 +msgid "" +"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-p prompt] [-t " +"timeout] [-u fd] [name ...]" +msgstr "" + +#: builtins.c:138 +#, fuzzy +msgid "return [n]" +msgstr "Terug Adres - 3/4 x 2\"" + +#: builtins.c:140 +#, fuzzy +msgid "set [--abefhkmnptuvxBCHP] [-o option-name] [arg ...]" +msgstr "Gebruik so: %s [OPSIE]... [-] [GEBRUIKER [ARG]...]\n" + +#: builtins.c:142 +#, fuzzy +msgid "unset [-f] [-v] [name ...]" +msgstr "Volle Naam:" + +#: builtins.c:144 +#, fuzzy +msgid "export [-fn] [name[=value] ...] or export -p" +msgstr "Bediener of domein naam:" + +#: builtins.c:146 +#, fuzzy +msgid "readonly [-af] [name[=value] ...] or readonly -p" +msgstr "Bediener of domein naam:" + +#: builtins.c:148 +#, fuzzy +msgid "shift [n]" +msgstr "Verlaat" + +#: builtins.c:150 +#, fuzzy +msgid "source filename [arguments]" +msgstr "Kies Lêernaam" + +#: builtins.c:152 +#, fuzzy +msgid ". filename [arguments]" +msgstr ". lêernaam" + +#: builtins.c:155 +#, fuzzy +msgid "suspend [-f]" +msgstr "|uitsit}\n" + +#: builtins.c:158 +#, fuzzy +msgid "test [expr]" +msgstr "/Opsies/Toets" + +#: builtins.c:160 +#, fuzzy +msgid "[ arg... ]" +msgstr "Arg %1" + +#: builtins.c:162 +#, fuzzy +msgid "times" +msgstr "Herhaal %1 times " + +#: builtins.c:164 +msgid "trap [-lp] [[arg] signal_spec ...]" +msgstr "" + +#: builtins.c:166 +#, fuzzy +msgid "type [-afptP] name [name ...]" +msgstr "Tipe die naam van die %1 speler." + +#: builtins.c:169 +#, fuzzy +msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]" +msgstr "Grootte beperk (Kb):" + +#: builtins.c:172 +#, fuzzy +msgid "umask [-p] [-S] [mode]" +msgstr "Belmetode" + +#: builtins.c:175 +#, fuzzy +msgid "wait [id]" +msgstr "Wag:" + +#: builtins.c:179 +#, fuzzy +msgid "wait [pid]" +msgstr "Wag:" + +#: builtins.c:182 +msgid "for NAME [in WORDS ... ] ; do COMMANDS; done" +msgstr "" + +#: builtins.c:184 +msgid "for (( exp1; exp2; exp3 )); do COMMANDS; done" +msgstr "" + +#: builtins.c:186 +msgid "select NAME [in WORDS ... ;] do COMMANDS; done" +msgstr "" + +#: builtins.c:188 +msgid "time [-p] pipeline" +msgstr "" + +#: builtins.c:190 +msgid "case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac" +msgstr "" + +#: builtins.c:192 +msgid "" +"if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else " +"COMMANDS; ] fi" +msgstr "" + +#: builtins.c:194 +msgid "while COMMANDS; do COMMANDS; done" +msgstr "" + +#: builtins.c:196 +#, fuzzy +msgid "until COMMANDS; do COMMANDS; done" +msgstr "Bediener of domein naam:" + +#: builtins.c:198 +#, fuzzy +msgid "function name { COMMANDS ; } or name () { COMMANDS ; }" +msgstr "Bediener of domein naam:" + +#: builtins.c:200 +#, fuzzy +msgid "{ COMMANDS ; }" +msgstr "Opdragte" + +#: builtins.c:202 +#, fuzzy +msgid "job_spec [&]" +msgstr "Kort Spesifikasie werkvoorbeeld" + +#: builtins.c:204 +#, fuzzy +msgid "(( expression ))" +msgstr "Bools uitdrukking verwag" + +#: builtins.c:206 +#, fuzzy +msgid "[[ expression ]]" +msgstr "Bools uitdrukking verwag" + +#: builtins.c:208 +msgid "variables - Names and meanings of some shell variables" +msgstr "" + +#: builtins.c:211 +#, fuzzy +msgid "pushd [-n] [+N | -N | dir]" +msgstr "Tydelike gids:" + +#: builtins.c:215 +msgid "popd [-n] [+N | -N]" +msgstr "" + +#: builtins.c:219 +msgid "dirs [-clpv] [+N] [-N]" +msgstr "" + +#: builtins.c:222 +#, fuzzy +msgid "shopt [-pqsu] [-o] [optname ...]" +msgstr "Volle Naam:" + +#: builtins.c:224 +msgid "printf [-v var] format [arguments]" +msgstr "" + +#: builtins.c:227 +msgid "" +"complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W " +"wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] " +"[name ...]" +msgstr "" + +#: builtins.c:231 +msgid "" +"compgen [-abcdefgjksuv] [-o option] [-A action] [-G globpat] [-W wordlist] " +"[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]" +msgstr "" + +#: builtins.c:235 +#, fuzzy +msgid "compopt [-o|+o option] [name ...]" +msgstr "Tipe die naam van die %1 speler." + +#: builtins.c:238 +msgid "" +"mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c " +"quantum] [array]" +msgstr "" + +#: builtins.c:250 +msgid "" +"Define or display aliases.\n" +" \n" +" Without arguments, `alias' prints the list of aliases in the reusable\n" +" form `alias NAME=VALUE' on standard output.\n" +" \n" +" Otherwise, an alias is defined for each NAME whose VALUE is given.\n" +" A trailing space in VALUE causes the next word to be checked for\n" +" alias substitution when the alias is expanded.\n" +" \n" +" Options:\n" +" -p\tPrint all defined aliases in a reusable format\n" +" \n" +" Exit Status:\n" +" alias returns true unless a NAME is supplied for which no alias has " +"been\n" +" defined." +msgstr "" + +#: builtins.c:272 +msgid "" +"Remove each NAME from the list of defined aliases.\n" +" \n" +" Options:\n" +" -a\tremove all alias definitions.\n" +" \n" +" Return success unless a NAME is not an existing alias." +msgstr "" + +#: builtins.c:285 +msgid "" +"Set Readline key bindings and variables.\n" +" \n" +" Bind a key sequence to a Readline function or a macro, or set a\n" +" Readline variable. The non-option argument syntax is equivalent to\n" +" that found in ~/.inputrc, but must be passed as a single argument:\n" +" e.g., bind '\"\\C-x\\C-r\": re-read-init-file'.\n" +" \n" +" Options:\n" +" -m keymap Use KEYMAP as the keymap for the duration of this\n" +" command. Acceptable keymap names are emacs,\n" +" emacs-standard, emacs-meta, emacs-ctlx, vi, vi-" +"move,\n" +" vi-command, and vi-insert.\n" +" -l List names of functions.\n" +" -P List function names and bindings.\n" +" -p List functions and bindings in a form that can be\n" +" reused as input.\n" +" -S List key sequences that invoke macros and their " +"values\n" +" -s List key sequences that invoke macros and their " +"values\n" +" in a form that can be reused as input.\n" +" -V List variable names and values\n" +" -v List variable names and values in a form that can\n" +" be reused as input.\n" +" -q function-name Query about which keys invoke the named function.\n" +" -u function-name Unbind all keys which are bound to the named " +"function.\n" +" -r keyseq Remove the binding for KEYSEQ.\n" +" -f filename Read key bindings from FILENAME.\n" +" -x keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n" +" \t\t\t\tKEYSEQ is entered.\n" +" \n" +" Exit Status:\n" +" bind returns 0 unless an unrecognized option is given or an error occurs." +msgstr "" + +#: builtins.c:322 +msgid "" +"Exit for, while, or until loops.\n" +" \n" +" Exit a FOR, WHILE or UNTIL loop. If N is specified, break N enclosing\n" +" loops.\n" +" \n" +" Exit Status:\n" +" The exit status is 0 unless N is not greater than or equal to 1." +msgstr "" + +#: builtins.c:334 +msgid "" +"Resume for, while, or until loops.\n" +" \n" +" Resumes the next iteration of the enclosing FOR, WHILE or UNTIL loop.\n" +" If N is specified, resumes the Nth enclosing loop.\n" +" \n" +" Exit Status:\n" +" The exit status is 0 unless N is not greater than or equal to 1." +msgstr "" + +#: builtins.c:346 +msgid "" +"Execute shell builtins.\n" +" \n" +" Execute SHELL-BUILTIN with arguments ARGs without performing command\n" +" lookup. This is useful when you wish to reimplement a shell builtin\n" +" as a shell function, but need to execute the builtin within the " +"function.\n" +" \n" +" Exit Status:\n" +" Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is\n" +" not a shell builtin.." +msgstr "" + +#: builtins.c:361 +msgid "" +"Return the context of the current subroutine call.\n" +" \n" +" Without EXPR, returns \"$line $filename\". With EXPR, returns\n" +" \"$line $subroutine $filename\"; this extra information can be used to\n" +" provide a stack trace.\n" +" \n" +" The value of EXPR indicates how many call frames to go back before the\n" +" current one; the top frame is frame 0.\n" +" \n" +" Exit Status:\n" +" Returns 0 unless the shell is not executing a shell function or EXPR\n" +" is invalid." +msgstr "" + +#: builtins.c:379 +msgid "" +"Change the shell working directory.\n" +" \n" +" Change the current directory to DIR. The default DIR is the value of " +"the\n" +" HOME shell variable.\n" +" \n" +" The variable CDPATH defines the search path for the directory " +"containing\n" +" DIR. Alternative directory names in CDPATH are separated by a colon " +"(:).\n" +" A null directory name is the same as the current directory. If DIR " +"begins\n" +" with a slash (/), then CDPATH is not used.\n" +" \n" +" If the directory is not found, and the shell option `cdable_vars' is " +"set,\n" +" the word is assumed to be a variable name. If that variable has a " +"value,\n" +" its value is used for DIR.\n" +" \n" +" Options:\n" +" -L\tforce symbolic links to be followed\n" +" -P\tuse the physical directory structure without following symbolic\n" +" \tlinks\n" +" \n" +" The default is to follow symbolic links, as if `-L' were specified.\n" +" \n" +" Exit Status:\n" +" Returns 0 if the directory is changed; non-zero otherwise." +msgstr "" + +#: builtins.c:407 +msgid "" +"Print the name of the current working directory.\n" +" \n" +" Options:\n" +" -L\tprint the value of $PWD if it names the current working\n" +" \tdirectory\n" +" -P\tprint the physical directory, without any symbolic links\n" +" \n" +" By default, `pwd' behaves as if `-L' were specified.\n" +" \n" +" Exit Status:\n" +" Returns 0 unless an invalid option is given or the current directory\n" +" cannot be read." +msgstr "" + +#: builtins.c:424 +msgid "" +"Null command.\n" +" \n" +" No effect; the command does nothing.\n" +" \n" +" Exit Status:\n" +" Always succeeds." +msgstr "" + +#: builtins.c:435 +msgid "" +"Return a successful result.\n" +" \n" +" Exit Status:\n" +" Always succeeds." +msgstr "" + +#: builtins.c:444 +msgid "" +"Return an unsuccessful result.\n" +" \n" +" Exit Status:\n" +" Always fails." +msgstr "" + +#: builtins.c:453 +msgid "" +"Execute a simple command or display information about commands.\n" +" \n" +" Runs COMMAND with ARGS suppressing shell function lookup, or display\n" +" information about the specified COMMANDs. Can be used to invoke " +"commands\n" +" on disk when a function with the same name exists.\n" +" \n" +" Options:\n" +" -p\tuse a default value for PATH that is guaranteed to find all of\n" +" \tthe standard utilities\n" +" -v\tprint a description of COMMAND similar to the `type' builtin\n" +" -V\tprint a more verbose description of each COMMAND\n" +" \n" +" Exit Status:\n" +" Returns exit status of COMMAND, or failure if COMMAND is not found." +msgstr "" + +#: builtins.c:472 +msgid "" +"Set variable values and attributes.\n" +" \n" +" Declare variables and give them attributes. If no NAMEs are given,\n" +" display the attributes and values of all variables.\n" +" \n" +" Options:\n" +" -f\trestrict action or display to function names and definitions\n" +" -F\trestrict display to function names only (plus line number and\n" +" \tsource file when debugging)\n" +" -p\tdisplay the attributes and value of each NAME\n" +" \n" +" Options which set attributes:\n" +" -a\tto make NAMEs indexed arrays (if supported)\n" +" -A\tto make NAMEs associative arrays (if supported)\n" +" -i\tto make NAMEs have the `integer' attribute\n" +" -l\tto convert NAMEs to lower case on assignment\n" +" -r\tto make NAMEs readonly\n" +" -t\tto make NAMEs have the `trace' attribute\n" +" -u\tto convert NAMEs to upper case on assignment\n" +" -x\tto make NAMEs export\n" +" \n" +" Using `+' instead of `-' turns off the given attribute.\n" +" \n" +" Variables with the integer attribute have arithmetic evaluation (see\n" +" the `let' command) performed when the variable is assigned a value.\n" +" \n" +" When used in a function, `declare' makes NAMEs local, as with the " +"`local'\n" +" command.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" + +#: builtins.c:508 +msgid "" +"Set variable values and attributes.\n" +" \n" +" Obsolete. See `help declare'." +msgstr "" + +#: builtins.c:516 +msgid "" +"Define local variables.\n" +" \n" +" Create a local variable called NAME, and give it VALUE. OPTION can\n" +" be any option accepted by `declare'.\n" +" \n" +" Local variables can only be used within a function; they are visible\n" +" only to the function where they are defined and its children.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied, an error occurs,\n" +" or the shell is not executing a function." +msgstr "" + +#: builtins.c:533 +msgid "" +"Write arguments to the standard output.\n" +" \n" +" Display the ARGs on the standard output followed by a newline.\n" +" \n" +" Options:\n" +" -n\tdo not append a newline\n" +" -e\tenable interpretation of the following backslash escapes\n" +" -E\texplicitly suppress interpretation of backslash escapes\n" +" \n" +" `echo' interprets the following backslash-escaped characters:\n" +" \\a\talert (bell)\n" +" \\b\tbackspace\n" +" \\c\tsuppress further output\n" +" \\e\tescape character\n" +" \\f\tform feed\n" +" \\n\tnew line\n" +" \\r\tcarriage return\n" +" \\t\thorizontal tab\n" +" \\v\tvertical tab\n" +" \\\\\tbackslash\n" +" \\0nnn\tthe character whose ASCII code is NNN (octal). NNN can be\n" +" \t0 to 3 octal digits\n" +" \\xHH\tthe eight-bit character whose value is HH (hexadecimal). HH\n" +" \tcan be one or two hex digits\n" +" \n" +" Exit Status:\n" +" Returns success unless a write error occurs." +msgstr "" + +#: builtins.c:567 +msgid "" +"Write arguments to the standard output.\n" +" \n" +" Display the ARGs on the standard output followed by a newline.\n" +" \n" +" Options:\n" +" -n\tdo not append a newline\n" +" \n" +" Exit Status:\n" +" Returns success unless a write error occurs." +msgstr "" + +#: builtins.c:582 +msgid "" +"Enable and disable shell builtins.\n" +" \n" +" Enables and disables builtin shell commands. Disabling allows you to\n" +" execute a disk command which has the same name as a shell builtin\n" +" without using a full pathname.\n" +" \n" +" Options:\n" +" -a\tprint a list of builtins showing whether or not each is enabled\n" +" -n\tdisable each NAME or display a list of disabled builtins\n" +" -p\tprint the list of builtins in a reusable format\n" +" -s\tprint only the names of Posix `special' builtins\n" +" \n" +" Options controlling dynamic loading:\n" +" -f\tLoad builtin NAME from shared object FILENAME\n" +" -d\tRemove a builtin loaded with -f\n" +" \n" +" Without options, each NAME is enabled.\n" +" \n" +" To use the `test' found in $PATH instead of the shell builtin\n" +" version, type `enable -n test'.\n" +" \n" +" Exit Status:\n" +" Returns success unless NAME is not a shell builtin or an error occurs." +msgstr "" + +#: builtins.c:610 +msgid "" +"Execute arguments as a shell command.\n" +" \n" +" Combine ARGs into a single string, use the result as input to the " +"shell,\n" +" and execute the resulting commands.\n" +" \n" +" Exit Status:\n" +" Returns exit status of command or success if command is null." +msgstr "" + +#: builtins.c:622 +msgid "" +"Parse option arguments.\n" +" \n" +" Getopts is used by shell procedures to parse positional parameters\n" +" as options.\n" +" \n" +" OPTSTRING contains the option letters to be recognized; if a letter\n" +" is followed by a colon, the option is expected to have an argument,\n" +" which should be separated from it by white space.\n" +" \n" +" Each time it is invoked, getopts will place the next option in the\n" +" shell variable $name, initializing name if it does not exist, and\n" +" the index of the next argument to be processed into the shell\n" +" variable OPTIND. OPTIND is initialized to 1 each time the shell or\n" +" a shell script is invoked. When an option requires an argument,\n" +" getopts places that argument into the shell variable OPTARG.\n" +" \n" +" getopts reports errors in one of two ways. If the first character\n" +" of OPTSTRING is a colon, getopts uses silent error reporting. In\n" +" this mode, no error messages are printed. If an invalid option is\n" +" seen, getopts places the option character found into OPTARG. If a\n" +" required argument is not found, getopts places a ':' into NAME and\n" +" sets OPTARG to the option character found. If getopts is not in\n" +" silent mode, and an invalid option is seen, getopts places '?' into\n" +" NAME and unsets OPTARG. If a required argument is not found, a '?'\n" +" is placed in NAME, OPTARG is unset, and a diagnostic message is\n" +" printed.\n" +" \n" +" If the shell variable OPTERR has the value 0, getopts disables the\n" +" printing of error messages, even if the first character of\n" +" OPTSTRING is not a colon. OPTERR has the value 1 by default.\n" +" \n" +" Getopts normally parses the positional parameters ($0 - $9), but if\n" +" more arguments are given, they are parsed instead.\n" +" \n" +" Exit Status:\n" +" Returns success if an option is found; fails if the end of options is\n" +" encountered or an error occurs." +msgstr "" + +#: builtins.c:664 +msgid "" +"Replace the shell with the given command.\n" +" \n" +" Execute COMMAND, replacing this shell with the specified program.\n" +" ARGUMENTS become the arguments to COMMAND. If COMMAND is not " +"specified,\n" +" any redirections take effect in the current shell.\n" +" \n" +" Options:\n" +" -a name\tpass NAME as the zeroth argument to COMMAND\n" +" -c\t\texecute COMMAND with an empty environment\n" +" -l\t\tplace a dash in the zeroth argument to COMMAND\n" +" \n" +" If the command cannot be executed, a non-interactive shell exits, " +"unless\n" +" the shell option `execfail' is set.\n" +" \n" +" Exit Status:\n" +" Returns success unless COMMAND is not found or a redirection error " +"occurs." +msgstr "" + +#: builtins.c:685 +msgid "" +"Exit the shell.\n" +" \n" +" Exits the shell with a status of N. If N is omitted, the exit status\n" +" is that of the last command executed." +msgstr "" + +#: builtins.c:694 +msgid "" +"Exit a login shell.\n" +" \n" +" Exits a login shell with exit status N. Returns an error if not " +"executed\n" +" in a login shell." +msgstr "" + +#: builtins.c:704 +msgid "" +"Display or execute commands from the history list.\n" +" \n" +" fc is used to list or edit and re-execute commands from the history " +"list.\n" +" FIRST and LAST can be numbers specifying the range, or FIRST can be a\n" +" string, which means the most recent command beginning with that\n" +" string.\n" +" \n" +" Options:\n" +" -e ENAME\tselect which editor to use. Default is FCEDIT, then " +"EDITOR,\n" +" \t\tthen vi\n" +" -l \tlist lines instead of editing\n" +" -n\tomit line numbers when listing\n" +" -r\treverse the order of the lines (newest listed first)\n" +" \n" +" With the `fc -s [pat=rep ...] [command]' format, COMMAND is\n" +" re-executed after the substitution OLD=NEW is performed.\n" +" \n" +" A useful alias to use with this is r='fc -s', so that typing `r cc'\n" +" runs the last command beginning with `cc' and typing `r' re-executes\n" +" the last command.\n" +" \n" +" Exit Status:\n" +" Returns success or status of executed command; non-zero if an error " +"occurs." +msgstr "" + +#: builtins.c:734 +msgid "" +"Move job to the foreground.\n" +" \n" +" Place the job identified by JOB_SPEC in the foreground, making it the\n" +" current job. If JOB_SPEC is not present, the shell's notion of the\n" +" current job is used.\n" +" \n" +" Exit Status:\n" +" Status of command placed in foreground, or failure if an error occurs." +msgstr "" + +#: builtins.c:749 +msgid "" +"Move jobs to the background.\n" +" \n" +" Place the jobs identified by each JOB_SPEC in the background, as if " +"they\n" +" had been started with `&'. If JOB_SPEC is not present, the shell's " +"notion\n" +" of the current job is used.\n" +" \n" +" Exit Status:\n" +" Returns success unless job control is not enabled or an error occurs." +msgstr "" + +#: builtins.c:763 +msgid "" +"Remember or display program locations.\n" +" \n" +" Determine and remember the full pathname of each command NAME. If\n" +" no arguments are given, information about remembered commands is " +"displayed.\n" +" \n" +" Options:\n" +" -d\t\tforget the remembered location of each NAME\n" +" -l\t\tdisplay in a format that may be reused as input\n" +" -p pathname\tuse PATHNAME is the full pathname of NAME\n" +" -r\t\tforget all remembered locations\n" +" -t\t\tprint the remembered location of each NAME, preceding\n" +" \t\teach location with the corresponding NAME if multiple\n" +" \t\tNAMEs are given\n" +" Arguments:\n" +" NAME\t\tEach NAME is searched for in $PATH and added to the list\n" +" \t\tof remembered commands.\n" +" \n" +" Exit Status:\n" +" Returns success unless NAME is not found or an invalid option is given." +msgstr "" + +#: builtins.c:788 +msgid "" +"Display information about builtin commands.\n" +" \n" +" Displays brief summaries of builtin commands. If PATTERN is\n" +" specified, gives detailed help on all commands matching PATTERN,\n" +" otherwise the list of help topics is printed.\n" +" \n" +" Options:\n" +" -d\toutput short description for each topic\n" +" -m\tdisplay usage in pseudo-manpage format\n" +" -s\toutput only a short usage synopsis for each topic matching\n" +" \tPATTERN\n" +" \n" +" Arguments:\n" +" PATTERN\tPattern specifiying a help topic\n" +" \n" +" Exit Status:\n" +" Returns success unless PATTERN is not found or an invalid option is " +"given." +msgstr "" + +#: builtins.c:812 +msgid "" +"Display or manipulate the history list.\n" +" \n" +" Display the history list with line numbers, prefixing each modified\n" +" entry with a `*'. An argument of N lists only the last N entries.\n" +" \n" +" Options:\n" +" -c\tclear the history list by deleting all of the entries\n" +" -d offset\tdelete the history entry at offset OFFSET.\n" +" \n" +" -a\tappend history lines from this session to the history file\n" +" -n\tread all history lines not already read from the history file\n" +" -r\tread the history file and append the contents to the history\n" +" \tlist\n" +" -w\twrite the current history to the history file\n" +" \tand append them to the history list\n" +" \n" +" -p\tperform history expansion on each ARG and display the result\n" +" \twithout storing it in the history list\n" +" -s\tappend the ARGs to the history list as a single entry\n" +" \n" +" If FILENAME is given, it is used as the history file. Otherwise,\n" +" if $HISTFILE has a value, that is used, else ~/.bash_history.\n" +" \n" +" If the $HISTTIMEFORMAT variable is set and not null, its value is used\n" +" as a format string for strftime(3) to print the time stamp associated\n" +" with each displayed history entry. No time stamps are printed " +"otherwise.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or an error occurs." +msgstr "" + +#: builtins.c:848 +msgid "" +"Display status of jobs.\n" +" \n" +" Lists the active jobs. JOBSPEC restricts output to that job.\n" +" Without options, the status of all active jobs is displayed.\n" +" \n" +" Options:\n" +" -l\tlists process IDs in addition to the normal information\n" +" -n\tlist only processes that have changed status since the last\n" +" \tnotification\n" +" -p\tlists process IDs only\n" +" -r\trestrict output to running jobs\n" +" -s\trestrict output to stopped jobs\n" +" \n" +" If -x is supplied, COMMAND is run after all job specifications that\n" +" appear in ARGS have been replaced with the process ID of that job's\n" +" process group leader.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or an error occurs.\n" +" If -x is used, returns the exit status of COMMAND." +msgstr "" + +#: builtins.c:875 +msgid "" +"Remove jobs from current shell.\n" +" \n" +" Removes each JOBSPEC argument from the table of active jobs. Without\n" +" any JOBSPECs, the shell uses its notion of the current job.\n" +" \n" +" Options:\n" +" -a\tremove all jobs if JOBSPEC is not supplied\n" +" -h\tmark each JOBSPEC so that SIGHUP is not sent to the job if the\n" +" \tshell receives a SIGHUP\n" +" -r\tremove only running jobs\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option or JOBSPEC is given." +msgstr "" + +#: builtins.c:894 +msgid "" +"Send a signal to a job.\n" +" \n" +" Send the processes identified by PID or JOBSPEC the signal named by\n" +" SIGSPEC or SIGNUM. If neither SIGSPEC nor SIGNUM is present, then\n" +" SIGTERM is assumed.\n" +" \n" +" Options:\n" +" -s sig\tSIG is a signal name\n" +" -n sig\tSIG is a signal number\n" +" -l\tlist the signal names; if arguments follow `-l' they are\n" +" \tassumed to be signal numbers for which names should be listed\n" +" \n" +" Kill is a shell builtin for two reasons: it allows job IDs to be used\n" +" instead of process IDs, and allows processes to be killed if the limit\n" +" on processes that you can create is reached.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or an error occurs." +msgstr "" + +#: builtins.c:917 +msgid "" +"Evaluate arithmetic expressions.\n" +" \n" +" Evaluate each ARG as an arithmetic expression. Evaluation is done in\n" +" fixed-width integers with no check for overflow, though division by 0\n" +" is trapped and flagged as an error. The following list of operators is\n" +" grouped into levels of equal-precedence operators. The levels are " +"listed\n" +" in order of decreasing precedence.\n" +" \n" +" \tid++, id--\tvariable post-increment, post-decrement\n" +" \t++id, --id\tvariable pre-increment, pre-decrement\n" +" \t-, +\t\tunary minus, plus\n" +" \t!, ~\t\tlogical and bitwise negation\n" +" \t**\t\texponentiation\n" +" \t*, /, %\t\tmultiplication, division, remainder\n" +" \t+, -\t\taddition, subtraction\n" +" \t<<, >>\t\tleft and right bitwise shifts\n" +" \t<=, >=, <, >\tcomparison\n" +" \t==, !=\t\tequality, inequality\n" +" \t&\t\tbitwise AND\n" +" \t^\t\tbitwise XOR\n" +" \t|\t\tbitwise OR\n" +" \t&&\t\tlogical AND\n" +" \t||\t\tlogical OR\n" +" \texpr ? expr : expr\n" +" \t\t\tconditional operator\n" +" \t=, *=, /=, %=,\n" +" \t+=, -=, <<=, >>=,\n" +" \t&=, ^=, |=\tassignment\n" +" \n" +" Shell variables are allowed as operands. The name of the variable\n" +" is replaced by its value (coerced to a fixed-width integer) within\n" +" an expression. The variable need not have its integer attribute\n" +" turned on to be used in an expression.\n" +" \n" +" Operators are evaluated in order of precedence. Sub-expressions in\n" +" parentheses are evaluated first and may override the precedence\n" +" rules above.\n" +" \n" +" Exit Status:\n" +" If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise.." +msgstr "" + +#: builtins.c:962 +msgid "" +"Read a line from the standard input and split it into fields.\n" +" \n" +" Reads a single line from the standard input, or from file descriptor FD\n" +" if the -u option is supplied. The line is split into fields as with " +"word\n" +" splitting, and the first word is assigned to the first NAME, the second\n" +" word to the second NAME, and so on, with any leftover words assigned to\n" +" the last NAME. Only the characters found in $IFS are recognized as " +"word\n" +" delimiters.\n" +" \n" +" If no NAMEs are supplied, the line read is stored in the REPLY " +"variable.\n" +" \n" +" Options:\n" +" -a array\tassign the words read to sequential indices of the array\n" +" \t\tvariable ARRAY, starting at zero\n" +" -d delim\tcontinue until the first character of DELIM is read, rather\n" +" \t\tthan newline\n" +" -e\t\tuse Readline to obtain the line in an interactive shell\n" +" -i text\tUse TEXT as the initial text for Readline\n" +" -n nchars\treturn after reading NCHARS characters rather than waiting\n" +" \t\tfor a newline\n" +" -p prompt\toutput the string PROMPT without a trailing newline before\n" +" \t\tattempting to read\n" +" -r\t\tdo not allow backslashes to escape any characters\n" +" -s\t\tdo not echo input coming from a terminal\n" +" -t timeout\ttime out and return failure if a complete line of input " +"is\n" +" \t\tnot read withint TIMEOUT seconds. The value of the TMOUT\n" +" \t\tvariable is the default timeout. TIMEOUT may be a\n" +" \t\tfractional number. If TIMEOUT is 0, read returns success only\n" +" \t\tif input is available on the specified file descriptor. The\n" +" \t\texit status is greater than 128 if the timeout is exceeded\n" +" -u fd\t\tread from file descriptor FD instead of the standard input\n" +" \n" +" Exit Status:\n" +" The return code is zero, unless end-of-file is encountered, read times " +"out,\n" +" or an invalid file descriptor is supplied as the argument to -u." +msgstr "" + +#: builtins.c:1002 +msgid "" +"Return from a shell function.\n" +" \n" +" Causes a function or sourced script to exit with the return value\n" +" specified by N. If N is omitted, the return status is that of the\n" +" last command executed within the function or script.\n" +" \n" +" Exit Status:\n" +" Returns N, or failure if the shell is not executing a function or script." +msgstr "" + +#: builtins.c:1015 +msgid "" +"Set or unset values of shell options and positional parameters.\n" +" \n" +" Change the value of shell attributes and positional parameters, or\n" +" display the names and values of shell variables.\n" +" \n" +" Options:\n" +" -a Mark variables which are modified or created for export.\n" +" -b Notify of job termination immediately.\n" +" -e Exit immediately if a command exits with a non-zero status.\n" +" -f Disable file name generation (globbing).\n" +" -h Remember the location of commands as they are looked up.\n" +" -k All assignment arguments are placed in the environment for a\n" +" command, not just those that precede the command name.\n" +" -m Job control is enabled.\n" +" -n Read commands but do not execute them.\n" +" -o option-name\n" +" Set the variable corresponding to option-name:\n" +" allexport same as -a\n" +" braceexpand same as -B\n" +" emacs use an emacs-style line editing interface\n" +" errexit same as -e\n" +" errtrace same as -E\n" +" functrace same as -T\n" +" hashall same as -h\n" +" histexpand same as -H\n" +" history enable command history\n" +" ignoreeof the shell will not exit upon reading EOF\n" +" interactive-comments\n" +" allow comments to appear in interactive commands\n" +" keyword same as -k\n" +" monitor same as -m\n" +" noclobber same as -C\n" +" noexec same as -n\n" +" noglob same as -f\n" +" nolog currently accepted but ignored\n" +" notify same as -b\n" +" nounset same as -u\n" +" onecmd same as -t\n" +" physical same as -P\n" +" pipefail the return value of a pipeline is the status of\n" +" the last command to exit with a non-zero status,\n" +" or zero if no command exited with a non-zero " +"status\n" +" posix change the behavior of bash where the default\n" +" operation differs from the Posix standard to\n" +" match the standard\n" +" privileged same as -p\n" +" verbose same as -v\n" +" vi use a vi-style line editing interface\n" +" xtrace same as -x\n" +" -p Turned on whenever the real and effective user ids do not match.\n" +" Disables processing of the $ENV file and importing of shell\n" +" functions. Turning this option off causes the effective uid and\n" +" gid to be set to the real uid and gid.\n" +" -t Exit after reading and executing one command.\n" +" -u Treat unset variables as an error when substituting.\n" +" -v Print shell input lines as they are read.\n" +" -x Print commands and their arguments as they are executed.\n" +" -B the shell will perform brace expansion\n" +" -C If set, disallow existing regular files to be overwritten\n" +" by redirection of output.\n" +" -E If set, the ERR trap is inherited by shell functions.\n" +" -H Enable ! style history substitution. This flag is on\n" +" by default when the shell is interactive.\n" +" -P If set, do not follow symbolic links when executing commands\n" +" such as cd which change the current directory.\n" +" -T If set, the DEBUG trap is inherited by shell functions.\n" +" - Assign any remaining arguments to the positional parameters.\n" +" The -x and -v options are turned off.\n" +" \n" +" Using + rather than - causes these flags to be turned off. The\n" +" flags can also be used upon invocation of the shell. The current\n" +" set of flags may be found in $-. The remaining n ARGs are positional\n" +" parameters and are assigned, in order, to $1, $2, .. $n. If no\n" +" ARGs are given, all shell variables are printed.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given." +msgstr "" + +#: builtins.c:1097 +msgid "" +"Unset values and attributes of shell variables and functions.\n" +" \n" +" For each NAME, remove the corresponding variable or function.\n" +" \n" +" Options:\n" +" -f\ttreat each NAME as a shell function\n" +" -v\ttreat each NAME as a shell variable\n" +" \n" +" Without options, unset first tries to unset a variable, and if that " +"fails,\n" +" tries to unset a function.\n" +" \n" +" Some variables cannot be unset; also see `readonly'.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or a NAME is read-only." +msgstr "" + +#: builtins.c:1117 +msgid "" +"Set export attribute for shell variables.\n" +" \n" +" Marks each NAME for automatic export to the environment of subsequently\n" +" executed commands. If VALUE is supplied, assign VALUE before " +"exporting.\n" +" \n" +" Options:\n" +" -f\trefer to shell functions\n" +" -n\tremove the export property from each NAME\n" +" -p\tdisplay a list of all exported variables and functions\n" +" \n" +" An argument of `--' disables further option processing.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or NAME is invalid." +msgstr "" + +#: builtins.c:1136 +msgid "" +"Mark shell variables as unchangeable.\n" +" \n" +" Mark each NAME as read-only; the values of these NAMEs may not be\n" +" changed by subsequent assignment. If VALUE is supplied, assign VALUE\n" +" before marking as read-only.\n" +" \n" +" Options:\n" +" -a\trefer to indexed array variables\n" +" -A\trefer to associative array variables\n" +" -f\trefer to shell functions\n" +" -p\tdisplay a list of all readonly variables and functions\n" +" \n" +" An argument of `--' disables further option processing.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or NAME is invalid." +msgstr "" + +#: builtins.c:1157 +msgid "" +"Shift positional parameters.\n" +" \n" +" Rename the positional parameters $N+1,$N+2 ... to $1,$2 ... If N is\n" +" not given, it is assumed to be 1.\n" +" \n" +" Exit Status:\n" +" Returns success unless N is negative or greater than $#." +msgstr "" + +#: builtins.c:1169 builtins.c:1184 +msgid "" +"Execute commands from a file in the current shell.\n" +" \n" +" Read and execute commands from FILENAME in the current shell. The\n" +" entries in $PATH are used to find the directory containing FILENAME.\n" +" If any ARGUMENTS are supplied, they become the positional parameters\n" +" when FILENAME is executed.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed in FILENAME; fails if\n" +" FILENAME cannot be read." +msgstr "" + +#: builtins.c:1200 +msgid "" +"Suspend shell execution.\n" +" \n" +" Suspend the execution of this shell until it receives a SIGCONT signal.\n" +" Unless forced, login shells cannot be suspended.\n" +" \n" +" Options:\n" +" -f\tforce the suspend, even if the shell is a login shell\n" +" \n" +" Exit Status:\n" +" Returns success unless job control is not enabled or an error occurs." +msgstr "" + +#: builtins.c:1216 +msgid "" +"Evaluate conditional expression.\n" +" \n" +" Exits with a status of 0 (true) or 1 (false) depending on\n" +" the evaluation of EXPR. Expressions may be unary or binary. Unary\n" +" expressions are often used to examine the status of a file. There\n" +" are string operators as well, and numeric comparison operators.\n" +" \n" +" File operators:\n" +" \n" +" -a FILE True if file exists.\n" +" -b FILE True if file is block special.\n" +" -c FILE True if file is character special.\n" +" -d FILE True if file is a directory.\n" +" -e FILE True if file exists.\n" +" -f FILE True if file exists and is a regular file.\n" +" -g FILE True if file is set-group-id.\n" +" -h FILE True if file is a symbolic link.\n" +" -L FILE True if file is a symbolic link.\n" +" -k FILE True if file has its `sticky' bit set.\n" +" -p FILE True if file is a named pipe.\n" +" -r FILE True if file is readable by you.\n" +" -s FILE True if file exists and is not empty.\n" +" -S FILE True if file is a socket.\n" +" -t FD True if FD is opened on a terminal.\n" +" -u FILE True if the file is set-user-id.\n" +" -w FILE True if the file is writable by you.\n" +" -x FILE True if the file is executable by you.\n" +" -O FILE True if the file is effectively owned by you.\n" +" -G FILE True if the file is effectively owned by your group.\n" +" -N FILE True if the file has been modified since it was last " +"read.\n" +" \n" +" FILE1 -nt FILE2 True if file1 is newer than file2 (according to\n" +" modification date).\n" +" \n" +" FILE1 -ot FILE2 True if file1 is older than file2.\n" +" \n" +" FILE1 -ef FILE2 True if file1 is a hard link to file2.\n" +" \n" +" String operators:\n" +" \n" +" -z STRING True if string is empty.\n" +" \n" +" -n STRING\n" +" STRING True if string is not empty.\n" +" \n" +" STRING1 = STRING2\n" +" True if the strings are equal.\n" +" STRING1 != STRING2\n" +" True if the strings are not equal.\n" +" STRING1 < STRING2\n" +" True if STRING1 sorts before STRING2 " +"lexicographically.\n" +" STRING1 > STRING2\n" +" True if STRING1 sorts after STRING2 lexicographically.\n" +" \n" +" Other operators:\n" +" \n" +" -o OPTION True if the shell option OPTION is enabled.\n" +" ! EXPR True if expr is false.\n" +" EXPR1 -a EXPR2 True if both expr1 AND expr2 are true.\n" +" EXPR1 -o EXPR2 True if either expr1 OR expr2 is true.\n" +" \n" +" arg1 OP arg2 Arithmetic tests. OP is one of -eq, -ne,\n" +" -lt, -le, -gt, or -ge.\n" +" \n" +" Arithmetic binary operators return true if ARG1 is equal, not-equal,\n" +" less-than, less-than-or-equal, greater-than, or greater-than-or-equal\n" +" than ARG2.\n" +" \n" +" Exit Status:\n" +" Returns success if EXPR evaluates to true; fails if EXPR evaluates to\n" +" false or an invalid argument is given." +msgstr "" + +#: builtins.c:1292 +msgid "" +"Evaluate conditional expression.\n" +" \n" +" This is a synonym for the \"test\" builtin, but the last argument must\n" +" be a literal `]', to match the opening `['." +msgstr "" + +#: builtins.c:1301 +msgid "" +"Display process times.\n" +" \n" +" Prints the accumulated user and system times for the shell and all of " +"its\n" +" child processes.\n" +" \n" +" Exit Status:\n" +" Always succeeds." +msgstr "" + +#: builtins.c:1313 +msgid "" +"Trap signals and other events.\n" +" \n" +" Defines and activates handlers to be run when the shell receives " +"signals\n" +" or other conditions.\n" +" \n" +" ARG is a command to be read and executed when the shell receives the\n" +" signal(s) SIGNAL_SPEC. If ARG is absent (and a single SIGNAL_SPEC\n" +" is supplied) or `-', each specified signal is reset to its original\n" +" value. If ARG is the null string each SIGNAL_SPEC is ignored by the\n" +" shell and by the commands it invokes.\n" +" \n" +" If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell. " +"If\n" +" a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command.\n" +" \n" +" If no arguments are supplied, trap prints the list of commands " +"associated\n" +" with each signal.\n" +" \n" +" Options:\n" +" -l\tprint a list of signal names and their corresponding numbers\n" +" -p\tdisplay the trap commands associated with each SIGNAL_SPEC\n" +" \n" +" Each SIGNAL_SPEC is either a signal name in or a signal " +"number.\n" +" Signal names are case insensitive and the SIG prefix is optional. A\n" +" signal may be sent to the shell with \"kill -signal $$\".\n" +" \n" +" Exit Status:\n" +" Returns success unless a SIGSPEC is invalid or an invalid option is " +"given." +msgstr "" + +#: builtins.c:1345 +msgid "" +"Display information about command type.\n" +" \n" +" For each NAME, indicate how it would be interpreted if used as a\n" +" command name.\n" +" \n" +" Options:\n" +" -a\tdisplay all locations containing an executable named NAME;\n" +" \tincludes aliases, builtins, and functions, if and only if\n" +" \tthe `-p' option is not also used\n" +" -f\tsuppress shell function lookup\n" +" -P\tforce a PATH search for each NAME, even if it is an alias,\n" +" \tbuiltin, or function, and returns the name of the disk file\n" +" \tthat would be executed\n" +" -p\treturns either the name of the disk file that would be executed,\n" +" \tor nothing if `type -t NAME' would not return `file'.\n" +" -t\toutput a single word which is one of `alias', `keyword',\n" +" \t`function', `builtin', `file' or `', if NAME is an alias, shell\n" +" \treserved word, shell function, shell builtin, disk file, or not\n" +" \tfound, respectively\n" +" \n" +" Arguments:\n" +" NAME\tCommand name to be interpreted.\n" +" \n" +" Exit Status:\n" +" Returns success if all of the NAMEs are found; fails if any are not " +"found." +msgstr "" + +#: builtins.c:1376 +msgid "" +"Modify shell resource limits.\n" +" \n" +" Provides control over the resources available to the shell and " +"processes\n" +" it creates, on systems that allow such control.\n" +" \n" +" Options:\n" +" -S\tuse the `soft' resource limit\n" +" -H\tuse the `hard' resource limit\n" +" -a\tall current limits are reported\n" +" -b\tthe socket buffer size\n" +" -c\tthe maximum size of core files created\n" +" -d\tthe maximum size of a process's data segment\n" +" -e\tthe maximum scheduling priority (`nice')\n" +" -f\tthe maximum size of files written by the shell and its children\n" +" -i\tthe maximum number of pending signals\n" +" -l\tthe maximum size a process may lock into memory\n" +" -m\tthe maximum resident set size\n" +" -n\tthe maximum number of open file descriptors\n" +" -p\tthe pipe buffer size\n" +" -q\tthe maximum number of bytes in POSIX message queues\n" +" -r\tthe maximum real-time scheduling priority\n" +" -s\tthe maximum stack size\n" +" -t\tthe maximum amount of cpu time in seconds\n" +" -u\tthe maximum number of user processes\n" +" -v\tthe size of virtual memory\n" +" -x\tthe maximum number of file locks\n" +" \n" +" If LIMIT is given, it is the new value of the specified resource; the\n" +" special LIMIT values `soft', `hard', and `unlimited' stand for the\n" +" current soft limit, the current hard limit, and no limit, respectively.\n" +" Otherwise, the current value of the specified resource is printed. If\n" +" no option is given, then -f is assumed.\n" +" \n" +" Values are in 1024-byte increments, except for -t, which is in seconds,\n" +" -p, which is in increments of 512 bytes, and -u, which is an unscaled\n" +" number of processes.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" + +#: builtins.c:1421 +msgid "" +"Display or set file mode mask.\n" +" \n" +" Sets the user file-creation mask to MODE. If MODE is omitted, prints\n" +" the current value of the mask.\n" +" \n" +" If MODE begins with a digit, it is interpreted as an octal number;\n" +" otherwise it is a symbolic mode string like that accepted by chmod(1).\n" +" \n" +" Options:\n" +" -p\tif MODE is omitted, output in a form that may be reused as input\n" +" -S\tmakes the output symbolic; otherwise an octal number is output\n" +" \n" +" Exit Status:\n" +" Returns success unless MODE is invalid or an invalid option is given." +msgstr "" + +#: builtins.c:1441 +msgid "" +"Wait for job completion and return exit status.\n" +" \n" +" Waits for the process identified by ID, which may be a process ID or a\n" +" job specification, and reports its termination status. If ID is not\n" +" given, waits for all currently active child processes, and the return\n" +" status is zero. If ID is a a job specification, waits for all " +"processes\n" +" in the job's pipeline.\n" +" \n" +" Exit Status:\n" +" Returns the status of ID; fails if ID is invalid or an invalid option " +"is\n" +" given." +msgstr "" + +#: builtins.c:1459 +msgid "" +"Wait for process completion and return exit status.\n" +" \n" +" Waits for the specified process and reports its termination status. If\n" +" PID is not given, all currently active child processes are waited for,\n" +" and the return code is zero. PID must be a process ID.\n" +" \n" +" Exit Status:\n" +" Returns the status of ID; fails if ID is invalid or an invalid option " +"is\n" +" given." +msgstr "" + +#: builtins.c:1474 +msgid "" +"Execute commands for each member in a list.\n" +" \n" +" The `for' loop executes a sequence of commands for each member in a\n" +" list of items. If `in WORDS ...;' is not present, then `in \"$@\"' is\n" +" assumed. For each element in WORDS, NAME is set to that element, and\n" +" the COMMANDS are executed.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" + +#: builtins.c:1488 +msgid "" +"Arithmetic for loop.\n" +" \n" +" Equivalent to\n" +" \t(( EXP1 ))\n" +" \twhile (( EXP2 )); do\n" +" \t\tCOMMANDS\n" +" \t\t(( EXP3 ))\n" +" \tdone\n" +" EXP1, EXP2, and EXP3 are arithmetic expressions. If any expression is\n" +" omitted, it behaves as if it evaluates to 1.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" + +#: builtins.c:1506 +msgid "" +"Select words from a list and execute commands.\n" +" \n" +" The WORDS are expanded, generating a list of words. The\n" +" set of expanded words is printed on the standard error, each\n" +" preceded by a number. If `in WORDS' is not present, `in \"$@\"'\n" +" is assumed. The PS3 prompt is then displayed and a line read\n" +" from the standard input. If the line consists of the number\n" +" corresponding to one of the displayed words, then NAME is set\n" +" to that word. If the line is empty, WORDS and the prompt are\n" +" redisplayed. If EOF is read, the command completes. Any other\n" +" value read causes NAME to be set to null. The line read is saved\n" +" in the variable REPLY. COMMANDS are executed after each selection\n" +" until a break command is executed.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" + +#: builtins.c:1527 +msgid "" +"Report time consumed by pipeline's execution.\n" +" \n" +" Execute PIPELINE and print a summary of the real time, user CPU time,\n" +" and system CPU time spent executing PIPELINE when it terminates.\n" +" \n" +" Options:\n" +" -p\tprint the timing summary in the portable Posix format\n" +" \n" +" The value of the TIMEFORMAT variable is used as the output format.\n" +" \n" +" Exit Status:\n" +" The return status is the return status of PIPELINE." +msgstr "" + +#: builtins.c:1544 +msgid "" +"Execute commands based on pattern matching.\n" +" \n" +" Selectively execute COMMANDS based upon WORD matching PATTERN. The\n" +" `|' is used to separate multiple patterns.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" + +#: builtins.c:1556 +msgid "" +"Execute commands based on conditional.\n" +" \n" +" The `if COMMANDS' list is executed. If its exit status is zero, then " +"the\n" +" `then COMMANDS' list is executed. Otherwise, each `elif COMMANDS' list " +"is\n" +" executed in turn, and if its exit status is zero, the corresponding\n" +" `then COMMANDS' list is executed and the if command completes. " +"Otherwise,\n" +" the `else COMMANDS' list is executed, if present. The exit status of " +"the\n" +" entire construct is the exit status of the last command executed, or " +"zero\n" +" if no condition tested true.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" + +#: builtins.c:1573 +msgid "" +"Execute commands as long as a test succeeds.\n" +" \n" +" Expand and execute COMMANDS as long as the final command in the\n" +" `while' COMMANDS has an exit status of zero.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" + +#: builtins.c:1585 +msgid "" +"Execute commands as long as a test does not succeed.\n" +" \n" +" Expand and execute COMMANDS as long as the final command in the\n" +" `until' COMMANDS has an exit status which is not zero.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" + +#: builtins.c:1597 +msgid "" +"Define shell function.\n" +" \n" +" Create a shell function named NAME. When invoked as a simple command,\n" +" NAME runs COMMANDs in the calling shell's context. When NAME is " +"invoked,\n" +" the arguments are passed to the function as $1...$n, and the function's\n" +" name is in $FUNCNAME.\n" +" \n" +" Exit Status:\n" +" Returns success unless NAME is readonly." +msgstr "" + +#: builtins.c:1611 +msgid "" +"Group commands as a unit.\n" +" \n" +" Run a set of commands in a group. This is one way to redirect an\n" +" entire set of commands.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" + +#: builtins.c:1623 +msgid "" +"Resume job in foreground.\n" +" \n" +" Equivalent to the JOB_SPEC argument to the `fg' command. Resume a\n" +" stopped or background job. JOB_SPEC can specify either a job name\n" +" or a job number. Following JOB_SPEC with a `&' places the job in\n" +" the background, as if the job specification had been supplied as an\n" +" argument to `bg'.\n" +" \n" +" Exit Status:\n" +" Returns the status of the resumed job." +msgstr "" + +#: builtins.c:1638 +msgid "" +"Evaluate arithmetic expression.\n" +" \n" +" The EXPRESSION is evaluated according to the rules for arithmetic\n" +" evaluation. Equivalent to \"let EXPRESSION\".\n" +" \n" +" Exit Status:\n" +" Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise." +msgstr "" + +#: builtins.c:1650 +msgid "" +"Execute conditional command.\n" +" \n" +" Returns a status of 0 or 1 depending on the evaluation of the " +"conditional\n" +" expression EXPRESSION. Expressions are composed of the same primaries " +"used\n" +" by the `test' builtin, and may be combined using the following " +"operators:\n" +" \n" +" ( EXPRESSION )\tReturns the value of EXPRESSION\n" +" ! EXPRESSION\t\tTrue if EXPRESSION is false; else false\n" +" EXPR1 && EXPR2\tTrue if both EXPR1 and EXPR2 are true; else false\n" +" EXPR1 || EXPR2\tTrue if either EXPR1 or EXPR2 is true; else false\n" +" \n" +" When the `==' and `!=' operators are used, the string to the right of\n" +" the operator is used as a pattern and pattern matching is performed.\n" +" When the `=~' operator is used, the string to the right of the operator\n" +" is matched as a regular expression.\n" +" \n" +" The && and || operators do not evaluate EXPR2 if EXPR1 is sufficient to\n" +" determine the expression's value.\n" +" \n" +" Exit Status:\n" +" 0 or 1 depending on value of EXPRESSION." +msgstr "" + +#: builtins.c:1676 +msgid "" +"Common shell variable names and usage.\n" +" \n" +" BASH_VERSION\tVersion information for this Bash.\n" +" CDPATH\tA colon-separated list of directories to search\n" +" \t\tfor directories given as arguments to `cd'.\n" +" GLOBIGNORE\tA colon-separated list of patterns describing filenames to\n" +" \t\tbe ignored by pathname expansion.\n" +" HISTFILE\tThe name of the file where your command history is stored.\n" +" HISTFILESIZE\tThe maximum number of lines this file can contain.\n" +" HISTSIZE\tThe maximum number of history lines that a running\n" +" \t\tshell can access.\n" +" HOME\tThe complete pathname to your login directory.\n" +" HOSTNAME\tThe name of the current host.\n" +" HOSTTYPE\tThe type of CPU this version of Bash is running under.\n" +" IGNOREEOF\tControls the action of the shell on receipt of an EOF\n" +" \t\tcharacter as the sole input. If set, then the value\n" +" \t\tof it is the number of EOF characters that can be seen\n" +" \t\tin a row on an empty line before the shell will exit\n" +" \t\t(default 10). When unset, EOF signifies the end of input.\n" +" MACHTYPE\tA string describing the current system Bash is running on.\n" +" MAILCHECK\tHow often, in seconds, Bash checks for new mail.\n" +" MAILPATH\tA colon-separated list of filenames which Bash checks\n" +" \t\tfor new mail.\n" +" OSTYPE\tThe version of Unix this version of Bash is running on.\n" +" PATH\tA colon-separated list of directories to search when\n" +" \t\tlooking for commands.\n" +" PROMPT_COMMAND\tA command to be executed before the printing of each\n" +" \t\tprimary prompt.\n" +" PS1\t\tThe primary prompt string.\n" +" PS2\t\tThe secondary prompt string.\n" +" PWD\t\tThe full pathname of the current directory.\n" +" SHELLOPTS\tA colon-separated list of enabled shell options.\n" +" TERM\tThe name of the current terminal type.\n" +" TIMEFORMAT\tThe output format for timing statistics displayed by the\n" +" \t\t`time' reserved word.\n" +" auto_resume\tNon-null means a command word appearing on a line by\n" +" \t\titself is first looked for in the list of currently\n" +" \t\tstopped jobs. If found there, that job is foregrounded.\n" +" \t\tA value of `exact' means that the command word must\n" +" \t\texactly match a command in the list of stopped jobs. A\n" +" \t\tvalue of `substring' means that the command word must\n" +" \t\tmatch a substring of the job. Any other value means that\n" +" \t\tthe command must be a prefix of a stopped job.\n" +" histchars\tCharacters controlling history expansion and quick\n" +" \t\tsubstitution. The first character is the history\n" +" \t\tsubstitution character, usually `!'. The second is\n" +" \t\tthe `quick substitution' character, usually `^'. The\n" +" \t\tthird is the `history comment' character, usually `#'.\n" +" HISTIGNORE\tA colon-separated list of patterns used to decide which\n" +" \t\tcommands should be saved on the history list.\n" +msgstr "" + +#: builtins.c:1733 +msgid "" +"Add directories to stack.\n" +" \n" +" Adds a directory to the top of the directory stack, or rotates\n" +" the stack, making the new top of the stack the current working\n" +" directory. With no arguments, exchanges the top two directories.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when adding\n" +" \tdirectories to the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the left of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" -N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the right of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" dir\tAdds DIR to the directory stack at the top, making it the\n" +" \tnew current working directory.\n" +" \n" +" The `dirs' builtin displays the directory stack.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid argument is supplied or the directory\n" +" change fails." +msgstr "" + +#: builtins.c:1767 +msgid "" +"Remove directories from stack.\n" +" \n" +" Removes entries from the directory stack. With no arguments, removes\n" +" the top directory from the stack, and changes to the new top directory.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when removing\n" +" \tdirectories from the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRemoves the Nth entry counting from the left of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd +0'\n" +" \tremoves the first directory, `popd +1' the second.\n" +" \n" +" -N\tRemoves the Nth entry counting from the right of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd -0'\n" +" \tremoves the last directory, `popd -1' the next to last.\n" +" \n" +" The `dirs' builtin displays the directory stack.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid argument is supplied or the directory\n" +" change fails." +msgstr "" + +#: builtins.c:1797 +msgid "" +"Display directory stack.\n" +" \n" +" Display the list of currently remembered directories. Directories\n" +" find their way onto the list with the `pushd' command; you can get\n" +" back up through the list with the `popd' command.\n" +" \n" +" Options:\n" +" -c\tclear the directory stack by deleting all of the elements\n" +" -l\tdo not print tilde-prefixed versions of directories relative\n" +" \tto your home directory\n" +" -p\tprint the directory stack with one entry per line\n" +" -v\tprint the directory stack with one entry per line prefixed\n" +" \twith its position in the stack\n" +" \n" +" Arguments:\n" +" +N\tDisplays the Nth entry counting from the left of the list shown " +"by\n" +" \tdirs when invoked without options, starting with zero.\n" +" \n" +" -N\tDisplays the Nth entry counting from the right of the list shown " +"by\n" +" \tdirs when invoked without options, starting with zero.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" + +#: builtins.c:1826 +msgid "" +"Set and unset shell options.\n" +" \n" +" Change the setting of each shell option OPTNAME. Without any option\n" +" arguments, list all shell options with an indication of whether or not " +"each\n" +" is set.\n" +" \n" +" Options:\n" +" -o\trestrict OPTNAMEs to those defined for use with `set -o'\n" +" -p\tprint each shell option with an indication of its status\n" +" -q\tsuppress output\n" +" -s\tenable (set) each OPTNAME\n" +" -u\tdisable (unset) each OPTNAME\n" +" \n" +" Exit Status:\n" +" Returns success if OPTNAME is enabled; fails if an invalid option is\n" +" given or OPTNAME is disabled." +msgstr "" + +#: builtins.c:1847 +msgid "" +"Formats and prints ARGUMENTS under control of the FORMAT.\n" +" \n" +" Options:\n" +" -v var\tassign the output to shell variable VAR rather than\n" +" \t\tdisplay it on the standard output\n" +" \n" +" FORMAT is a character string which contains three types of objects: " +"plain\n" +" characters, which are simply copied to standard output; character " +"escape\n" +" sequences, which are converted and copied to the standard output; and\n" +" format specifications, each of which causes printing of the next " +"successive\n" +" argument.\n" +" \n" +" In addition to the standard format specifications described in printf" +"(1)\n" +" and printf(3), printf interprets:\n" +" \n" +" %b\texpand backslash escape sequences in the corresponding argument\n" +" %q\tquote the argument in a way that can be reused as shell input\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or a write or " +"assignment\n" +" error occurs." +msgstr "" + +#: builtins.c:1874 +msgid "" +"Specify how arguments are to be completed by Readline.\n" +" \n" +" For each NAME, specify how arguments are to be completed. If no " +"options\n" +" are supplied, existing completion specifications are printed in a way " +"that\n" +" allows them to be reused as input.\n" +" \n" +" Options:\n" +" -p\tprint existing completion specifications in a reusable format\n" +" -r\tremove a completion specification for each NAME, or, if no\n" +" \tNAMEs are supplied, all completion specifications\n" +" \n" +" When completion is attempted, the actions are applied in the order the\n" +" uppercase-letter options are listed above.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" + +#: builtins.c:1897 +msgid "" +"Display possible completions depending on the options.\n" +" \n" +" Intended to be used from within a shell function generating possible\n" +" completions. If the optional WORD argument is supplied, matches " +"against\n" +" WORD are generated.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" + +#: builtins.c:1912 +msgid "" +"Modify or display completion options.\n" +" \n" +" Modify the completion options for each NAME, or, if no NAMEs are " +"supplied,\n" +" the completion currently begin executed. If no OPTIONs are givenm, " +"print\n" +" the completion options for each NAME or the current completion " +"specification.\n" +" \n" +" Options:\n" +" \t-o option\tSet completion option OPTION for each NAME\n" +" \n" +" Using `+o' instead of `-o' turns off the specified option.\n" +" \n" +" Arguments:\n" +" \n" +" Each NAME refers to a command for which a completion specification must\n" +" have previously been defined using the `complete' builtin. If no NAMEs\n" +" are supplied, compopt must be called by a function currently generating\n" +" completions, and the options for that currently-executing completion\n" +" generator are modified.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or NAME does not\n" +" have a completion specification defined." +msgstr "" + +#: builtins.c:1940 +msgid "" +"Read lines from a file into an array variable.\n" +" \n" +" Read lines from the standard input into the array variable ARRAY, or " +"from\n" +" file descriptor FD if the -u option is supplied. The variable MAPFILE " +"is\n" +" the default ARRAY.\n" +" \n" +" Options:\n" +" -n count\tCopy at most COUNT lines. If COUNT is 0, all lines are " +"copied.\n" +" -O origin\tBegin assigning to ARRAY at index ORIGIN. The default " +"index is 0.\n" +" -s count \tDiscard the first COUNT lines read.\n" +" -t\t\tRemove a trailing newline from each line read.\n" +" -u fd\t\tRead lines from file descriptor FD instead of the standard " +"input.\n" +" -C callback\tEvaluate CALLBACK each time QUANTUM lines are read.\n" +" -c quantum\tSpecify the number of lines read between each call to " +"CALLBACK.\n" +" \n" +" Arguments:\n" +" ARRAY\t\tArray variable name to use for file data.\n" +" \n" +" If -C is supplied without -c, the default quantum is 5000.\n" +" \n" +" If not supplied with an explicit origin, mapfile will clear ARRAY " +"before\n" +" assigning to it.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or ARRAY is readonly." +msgstr "" + +#, fuzzy +#~ msgid " new current working directory." +#~ msgstr "Nuutste gebruik word werksaam gids" + +#~ msgid "top directory." +#~ msgstr "boonste lêergids." + +#, fuzzy +#~ msgid "Obsolete. See `declare'." +#~ msgstr "Verkeerde verklaring tipe" + +#, fuzzy +#~ msgid "Logout of a login shell." +#~ msgstr "Begin aanteken tolk" + +#~ msgid "Missing `}'" +#~ msgstr "Ontbrekende `}'" + +#~ msgid "brace_expand> " +#~ msgstr "krulhakie_uitbrei>" + +#~ msgid "Attempt to free unknown command type `%d'.\n" +#~ msgstr "Poging om onbekende beveltipe vry te maak `%d'.\n" + +#~ msgid "Report this to %s\n" +#~ msgstr "Meld dit aan by %s\n" + +#~ msgid "Stopping myself..." +#~ msgstr "Besig om myself te stop..." + +#~ msgid "Tell %s to fix this someday.\n" +#~ msgstr "Laat weet %s om dit eendag reg te maak.\n" + +#, fuzzy +#~ msgid "execute_command: bad command type `%d'" +#~ msgstr "Uitvoer 'n tolk opdrag lyn" + +#~ msgid "real\t" +#~ msgstr "regtig\t" + +#~ msgid "user\t" +#~ msgstr "gebruiker\t" + +#~ msgid "sys\t" +#~ msgstr "stelsel\t" + +#~ msgid "" +#~ "real\t0m0.00s\n" +#~ "user\t0m0.00s\n" +#~ "sys\t0m0.00s\n" +#~ msgstr "" +#~ "regtig\t0m0.00s\n" +#~ "gebruiker\t0m0.00s\n" +#~ "stelsel\t0m0.00s\n" + +#~ msgid "cannot duplicate fd %d to fd 1: %s" +#~ msgstr "kan nie fd %d na fd 1 dupliseer nie: %s" + +#, fuzzy +#~ msgid "%s: output redirection restricted" +#~ msgstr "gebruik tans beperkte dop %s" + +#, fuzzy +#~ msgid "Out of memory!" +#~ msgstr "Te min geheue." + +#, fuzzy +#~ msgid "You have already added item `%s'\n" +#~ msgstr "Jy alreeds het 'n groep genaamd %1." + +#, fuzzy +#~ msgid "You have entered %d (%d) items. The distribution is:\n" +#~ msgstr "Die wagwoord frase jy ingevoerde is ongeldige." + +#, fuzzy +#~ msgid "%s: bg background job?" +#~ msgstr "Druktaak gestuur." + +#, fuzzy +#~ msgid "cprintf: bad `%%' argument (%c)" +#~ msgstr "%s: option `%s' requires an argument\n" + +#, fuzzy +#~ msgid "option `%s' requires an argument" +#~ msgstr "%s: option `%s' requires an argument\n" + +#, fuzzy +#~ msgid "%s: unrecognized option" +#~ msgstr "%s: unrecognized option `%c%s'\n" + +#, fuzzy +#~ msgid "`-c' requires an argument" +#~ msgstr "%s: option `%s' requires an argument\n" + +#, fuzzy +#~ msgid "%s: bad array subscript" +#~ msgstr "Os/2 Biskaart Skikking" + +#, fuzzy +#~ msgid "reading" +#~ msgstr "besig om te lees" + +#, fuzzy +#~ msgid "$%c: unbound variable" +#~ msgstr "Veranderlike boom" + +#, fuzzy +#~ msgid "%s: bad arithmetic substitution" +#~ msgstr "&Sintetisering/Wiskundige + Menging" + +#, fuzzy +#~ msgid "-%s: binary operator expected" +#~ msgstr "%s: binêre operator is verwag\n" + +#, fuzzy +#~ msgid "%s[%s: bad subscript" +#~ msgstr "Slegte formule." + +#, fuzzy +#~ msgid "[%s: bad subscript" +#~ msgstr "Slegte formule." + +#, fuzzy +#~ msgid "option %c\n" +#~ msgstr "Opsie" + +#, fuzzy +#~ msgid "option a\n" +#~ msgstr "Opsie" + +#, fuzzy +#~ msgid "option b\n" +#~ msgstr "Opsie" + +#, fuzzy +#~ msgid "option c with value `%s'\n" +#~ msgstr "Opsie '%s' vereis 'n waarde." + +#, fuzzy +#~ msgid "non-option ARGV-elements: " +#~ msgstr "parameters wat nie opsies is nie word geïgnoreer" + +#, fuzzy +#~ msgid "%s: Unknown flag %s.\n" +#~ msgstr "onbekende vlag: " + +#, fuzzy +#~ msgid "Unknown directive `%s'" +#~ msgstr "Onbekende direktief" + +#, fuzzy +#~ msgid "%s requires an argument" +#~ msgstr "%s: option `%s' requires an argument\n" + +#, fuzzy +#~ msgid "%s found before $END" +#~ msgstr "Nee einde was gevind." + +#, fuzzy +#~ msgid "%s already has a function (%s)" +#~ msgstr "Proses %1 het alreeds verdwyn!" + +#, fuzzy +#~ msgid "%s already had a docname (%s)" +#~ msgstr "Alles is alreeds installeer" + +#, fuzzy +#~ msgid "%s already has short documentation (%s)" +#~ msgstr "Proses %1 het alreeds verdwyn!" + +#, fuzzy +#~ msgid "%s already has a %s definition" +#~ msgstr "Proses %1 het alreeds verdwyn!" + +#, fuzzy +#~ msgid "mkbuiltins: Out of virtual memory!\n" +#~ msgstr "GenericName=Virtuele Geheue Statistieke" + +#, fuzzy +#~ msgid "%[DIGITS | WORD] [&]" +#~ msgstr "Woord oorvloei" + +#, fuzzy +#~ msgid "Arguments we accept:" +#~ msgstr "Aanvaar karakter verstel:" + +#, fuzzy +#~ msgid " vi-command, and vi-insert." +#~ msgstr "Biep op kaart voeg by en verwydering" + +#, fuzzy +#~ msgid " -l List names of functions." +#~ msgstr "Verander Posisies/Name..." + +#, fuzzy +#~ msgid " reused as input." +#~ msgstr "Invoer Versterking Limiet" + +#, fuzzy +#~ msgid " -r keyseq Remove the binding for KEYSEQ." +#~ msgstr "Verwyder koekies vir domein." + +#, fuzzy +#~ msgid "break N levels." +#~ msgstr "6 nuwe vlakke" + +#, fuzzy +#~ msgid "to be followed." +#~ msgstr "Lêers na Wees Uitgepak" + +#, fuzzy +#~ msgid "The flags are:" +#~ msgstr "Linker Vlaggies" + +#, fuzzy +#~ msgid "name only." +#~ msgstr "Naam slegs" + +#, fuzzy +#~ msgid "\t\\a\talert (bell)" +#~ msgstr "stelsel klok" + +#, fuzzy +#~ msgid "\t\\c\tsuppress trailing newline" +#~ msgstr "Verwyder agterste spasies" + +#, fuzzy +#~ msgid "\t\\E\tescape character" +#~ msgstr "Ongeldige karakter <%s>" + +#, fuzzy +#~ msgid "\t\\f\tform feed" +#~ msgstr "Koevert Voer" + +#, fuzzy +#~ msgid "\t\\n\tnew line" +#~ msgstr "Lyn uit" + +#, fuzzy +#~ msgid "\t\\r\tcarriage return" +#~ msgstr "Terug Adres - 3/4 x 2\"" + +#, fuzzy +#~ msgid "\t\\t\thorizontal tab" +#~ msgstr "Oortjie Wydte:" + +#, fuzzy +#~ msgid "\t\\v\tvertical tab" +#~ msgstr "Oortjie Wydte:" + +#, fuzzy +#~ msgid "with the -E option." +#~ msgstr "%s: illegal option -- %c\n" + +#, fuzzy +#~ msgid "is set." +#~ msgstr "Nie stel" + +#, fuzzy +#~ msgid "string." +#~ msgstr "String" + +#, fuzzy +#~ msgid " mode, then vi." +#~ msgstr "-v\t\t\tVi modus (soos \"vi\")" + +#, fuzzy +#~ msgid "used." +#~ msgstr "gebruik word" + +#, fuzzy +#~ msgid "job is used." +#~ msgstr "Die naam '%1' is alreeds gebruik word" + +#, fuzzy +#~ msgid "anything in the history list." +#~ msgstr "Lêer Alreeds in Lys" + +#, fuzzy +#~ msgid "process group leader." +#~ msgstr "Proses groep Id" + +#, fuzzy +#~ msgid "\t-, +\t\tunary minus, plus" +#~ msgstr "Name=Qt Motif Plus" + +#, fuzzy +#~ msgid "\t*, /, %\t\tmultiplication, division, remainder" +#~ msgstr "devisie by nul." + +#, fuzzy +#~ msgid "\t&\t\tbitwise AND" +#~ msgstr "en etiket: " + +#, fuzzy +#~ msgid "\t^\t\tbitwise XOR" +#~ msgstr "operande Xor data" + +#, fuzzy +#~ msgid "\t|\t\tbitwise OR" +#~ msgstr " of meer" + +#, fuzzy +#~ msgid "\t&&\t\tlogical AND" +#~ msgstr "en etiket: " + +#, fuzzy +#~ msgid "\t||\t\tlogical OR" +#~ msgstr " of meer" + +#, fuzzy +#~ msgid "\texpr ? expr : expr" +#~ msgstr "ooreenstemmende inskrywings gewone uitdrukking." + +#, fuzzy +#~ msgid "\t\t\tconditional expression" +#~ msgstr "ongeldige uitdrukking" + +#, fuzzy +#~ msgid "rules above." +#~ msgstr "Boonste Redigeerder" + +#, fuzzy +#~ msgid " -m Job control is enabled." +#~ msgstr "Stop flikkerende (as flikkerende is geaktiveer)" + +#, fuzzy +#~ msgid " -o option-name" +#~ msgstr "Gebruik so: %s [OPSIE] NAAM...\n" + +#~ msgid " allexport same as -a" +#~ msgstr " allexport dieselfde as -a" + +#~ msgid " braceexpand same as -B" +#~ msgstr " braceexpand dieselfde as -B" + +#~ msgid " errexit same as -e" +#~ msgstr " errexit dieselfde as -e" + +#~ msgid " hashall same as -h" +#~ msgstr " hashall dieselfde as -h" + +#~ msgid " histexpand same as -H" +#~ msgstr " histexpand dieselfde as -H" + +#~ msgid " interactive-comments" +#~ msgstr " interaktiewe-kommentaar" + +#~ msgid " keyword same as -k" +#~ msgstr " keyword dieselfde as -k" + +#~ msgid " monitor same as -m" +#~ msgstr " monitor dieselfde as -m" + +#~ msgid " noclobber same as -C" +#~ msgstr " noclobber dieselfde as -C" + +#~ msgid " noexec same as -n" +#~ msgstr " noexec dieselfde as -n" + +#~ msgid " noglob same as -f" +#~ msgstr " noglob dieselfde as -f" + +#~ msgid " notify save as -b" +#~ msgstr " notify dieselfde as -b" + +#~ msgid " nounset same as -u" +#~ msgstr " nounset dieselfde as -u" + +#~ msgid " onecmd same as -t" +#~ msgstr " onecmd dieselfde as -t" + +#~ msgid " physical same as -P" +#~ msgstr " physical dieselfde as -P" + +#~ msgid " match the standard" +#~ msgstr " pas by die standaard" + +#~ msgid " privileged same as -p" +#~ msgstr " privileged dieselfde as -p" + +#~ msgid " verbose same as -v" +#~ msgstr " verbose dieselfde as -v" + +#~ msgid " xtrace same as -x" +#~ msgstr " xtrace dieselfde as -x" + +#~ msgid " by default." +#~ msgstr " by verstek." + +#, fuzzy +#~ msgid " by redirection of output." +#~ msgstr "eSound Uitsetinpropprogram %s" + +#~ msgid "see readonly." +#~ msgstr "sien leesalleen" + +#, fuzzy +#~ msgid "processing." +#~ msgstr "Verwerking..." + +#, fuzzy +#~ msgid "File operators:" +#~ msgstr "lêer assosiasies" + +#, fuzzy +#~ msgid " -d FILE True if file is a directory." +#~ msgstr "%1 is 'n gids, maar 'n lêer was verwag." + +#, fuzzy +#~ msgid " -e FILE True if file exists." +#~ msgstr "Verwyder, as bestaan, die _:kommentaar" + +#, fuzzy +#~ msgid " modification date) file2." +#~ msgstr "Begin na datum" + +#, fuzzy +#~ msgid "String operators:" +#~ msgstr "Soekstring" + +#, fuzzy +#~ msgid " -n STRING" +#~ msgstr "String" + +#, fuzzy +#~ msgid "Other operators:" +#~ msgstr "Ander weergawe (B):" + +#, fuzzy +#~ msgid "" +#~ "less-than, less-than-or-equal, greater-than, or greater-than-or-equal" +#~ msgstr "is grootter as of gelyk na" + +#, fuzzy +#~ msgid "than ARG2." +#~ msgstr "%1 vroeër as %2" + +#~ msgid "the shell." +#~ msgstr "die dop." + +#, fuzzy +#~ msgid "with \"kill -signal $$\"." +#~ msgstr "Stuur alle prosesse die KILL sein...\n" + +#, fuzzy +#~ msgid "or unfound, respectively." +#~ msgstr "Formule of gewig:" + +#, fuzzy +#~ msgid " -H\tuse the `hard' resource limit" +#~ msgstr "Minimum waarde is 'n hard beperk" + +#, fuzzy +#~ msgid " -m\tthe maximum resident set size" +#~ msgstr "Data inwoonend stel grootte in Kgrepe" + +#, fuzzy +#~ msgid " -p\tthe pipe buffer size" +#~ msgstr " Audio Buffer Grootte (antwoord tyd) " + +#, fuzzy +#~ msgid " -v\tthe size of virtual memory" +#~ msgstr "GenericName=Virtuele Geheue Statistieke" + +#, fuzzy +#~ msgid "processes." +#~ msgstr "Prosesse" + +#, fuzzy +#~ msgid "pipeline are waited for." +#~ msgstr "Die drukker vir wat werke word versoekte" + +#, fuzzy +#~ msgid "the COMMANDS are executed." +#~ msgstr "Stoor geskiedenis van uitgevoerde bevele." + +#, fuzzy +#~ msgid "function as $0 .. $n." +#~ msgstr "-L\t\t\tSelfde as -r" + +#, fuzzy +#~ msgid "entire set of commands." +#~ msgstr "%s outobevele vir \"%s\"" + +#, fuzzy +#~ msgid "BASH_VERSION The version numbers of this Bash." +#~ msgstr "Hierdie is hoe nommers sal wees vertoon." + +#, fuzzy +#~ msgid "\t\tshell can access." +#~ msgstr "Konfigureer internettoegang..." + +#, fuzzy +#~ msgid "\t\tfor new mail." +#~ msgstr "Nuwe Pos Inkennisstelling" + +#, fuzzy +#~ msgid "\t\tlooking for commands." +#~ msgstr "%s outobevele vir \"%s\"" + +#, fuzzy +#~ msgid "\t\tprimary prompt." +#~ msgstr "Konqueror: Por" + +#, fuzzy +#~ msgid "command_oriented_history" +#~ msgstr "Herstel/Herstel herroep Geskiedenis..." + +#, fuzzy +#~ msgid " a single history line." +#~ msgstr "/Skoopmodus/Lynskoop" + +#~ msgid "not each is set." +#~ msgstr "nie elkeen is gestel nie." diff --git a/po/bash.pot b/po/bash.pot index c96e86669..775fc3ff8 100644 --- a/po/bash.pot +++ b/po/bash.pot @@ -7,377 +7,435 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2005-10-03 17:31-0400\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2009-01-06 11:56-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" +"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" -#: arrayfunc.c:48 +#: arrayfunc.c:50 msgid "bad array subscript" msgstr "" -#: arrayfunc.c:360 +#: arrayfunc.c:313 builtins/declare.def:474 +#, c-format +msgid "%s: cannot convert indexed to associative array" +msgstr "" + +#: arrayfunc.c:479 +#, c-format +msgid "%s: invalid associative array key" +msgstr "" + +#: arrayfunc.c:481 #, c-format msgid "%s: cannot assign to non-numeric index" msgstr "" -#: bashhist.c:328 +#: arrayfunc.c:517 +#, c-format +msgid "%s: %s: must use subscript when assigning associative array" +msgstr "" + +#: bashhist.c:380 #, c-format msgid "%s: cannot create: %s" msgstr "" -#: bashline.c:2947 +#: bashline.c:3413 msgid "bash_execute_unix_command: cannot find keymap for command" msgstr "" -#: bashline.c:2996 +#: bashline.c:3491 #, c-format msgid "%s: first non-whitespace character is not `\"'" msgstr "" -#: bashline.c:3025 +#: bashline.c:3520 #, c-format msgid "no closing `%c' in %s" msgstr "" -#: bashline.c:3059 +#: bashline.c:3554 #, c-format msgid "%s: missing colon separator" msgstr "" -#: builtins/bind.def:194 +#: builtins/bind.def:120 builtins/bind.def:123 +msgid "line editing not enabled" +msgstr "" + +#: builtins/bind.def:206 #, c-format msgid "`%s': invalid keymap name" msgstr "" -#: builtins/bind.def:233 +#: builtins/bind.def:245 #, c-format msgid "%s: cannot read: %s" msgstr "" -#: builtins/bind.def:248 +#: builtins/bind.def:260 #, c-format msgid "`%s': cannot unbind" msgstr "" -#: builtins/bind.def:283 +#: builtins/bind.def:295 builtins/bind.def:325 #, c-format msgid "`%s': unknown function name" msgstr "" -#: builtins/bind.def:291 +#: builtins/bind.def:303 #, c-format msgid "%s is not bound to any keys.\n" msgstr "" -#: builtins/bind.def:295 +#: builtins/bind.def:307 #, 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:132 -msgid "Returns the context of the current subroutine call." -msgstr "" - -#: builtins/caller.def:133 builtins/caller.def:137 builtins/pushd.def:660 -#: builtins/pushd.def:668 builtins/pushd.def:671 builtins/pushd.def:681 -#: builtins/pushd.def:685 builtins/pushd.def:689 builtins/pushd.def:692 -#: builtins/pushd.def:695 builtins/pushd.def:704 builtins/pushd.def:708 -#: builtins/pushd.def:712 builtins/pushd.def:715 -msgid " " +#: builtins/break.def:77 builtins/break.def:117 +msgid "loop count" msgstr "" -#: builtins/caller.def:134 -msgid "Without EXPR, returns returns \"$line $filename\". With EXPR," +#: builtins/break.def:137 +msgid "only meaningful in a `for', `while', or `until' loop" msgstr "" -#: builtins/caller.def:135 -msgid "returns \"$line $subroutine $filename\"; this extra information" +#: builtins/caller.def:133 +msgid "" +"Returns the context of the current subroutine call.\n" +" \n" +" Without EXPR, returns " msgstr "" -#: builtins/caller.def:136 -msgid "can be used used to provide a stack trace." +#: builtins/cd.def:215 +msgid "HOME not set" msgstr "" -#: builtins/caller.def:138 -msgid "The value of EXPR indicates how many call frames to go back before the" +#: builtins/cd.def:227 +msgid "OLDPWD not set" msgstr "" -#: builtins/caller.def:139 -msgid "current one; the top frame is frame 0." +#: builtins/common.c:101 +#, c-format +msgid "line %d: " msgstr "" -#: builtins/cd.def:203 -msgid "HOME not set" +#: builtins/common.c:139 error.c:260 +#, c-format +msgid "warning: " msgstr "" -#: builtins/cd.def:215 -msgid "OLDPWD not set" +#: builtins/common.c:153 +#, c-format +msgid "%s: usage: " msgstr "" -#: builtins/common.c:133 test.c:921 +#: builtins/common.c:166 test.c:822 msgid "too many arguments" msgstr "" -#: builtins/common.c:157 shell.c:474 shell.c:747 +#: builtins/common.c:191 shell.c:493 shell.c:774 #, c-format msgid "%s: option requires an argument" msgstr "" -#: builtins/common.c:164 +#: builtins/common.c:198 #, c-format msgid "%s: numeric argument required" msgstr "" -#: builtins/common.c:171 +#: builtins/common.c:205 #, c-format msgid "%s: not found" msgstr "" -#: builtins/common.c:180 shell.c:760 +#: builtins/common.c:214 shell.c:787 #, c-format msgid "%s: invalid option" msgstr "" -#: builtins/common.c:187 +#: builtins/common.c:221 #, c-format msgid "%s: invalid option name" msgstr "" -#: builtins/common.c:194 general.c:231 general.c:236 +#: builtins/common.c:228 general.c:231 general.c:236 #, c-format msgid "`%s': not a valid identifier" msgstr "" -#: builtins/common.c:201 -#, c-format -msgid "%s: invalid number" +#: builtins/common.c:238 +msgid "invalid octal number" +msgstr "" + +#: builtins/common.c:240 +msgid "invalid hex number" msgstr "" -#: builtins/common.c:208 +#: builtins/common.c:242 expr.c:1255 +msgid "invalid number" +msgstr "" + +#: builtins/common.c:250 #, c-format msgid "%s: invalid signal specification" msgstr "" -#: builtins/common.c:215 +#: builtins/common.c:257 #, c-format msgid "`%s': not a pid or valid job spec" msgstr "" -#: builtins/common.c:222 error.c:453 +#: builtins/common.c:264 error.c:453 #, c-format msgid "%s: readonly variable" msgstr "" -#: builtins/common.c:230 +#: builtins/common.c:272 #, c-format msgid "%s: %s out of range" msgstr "" -#: builtins/common.c:230 builtins/common.c:232 +#: builtins/common.c:272 builtins/common.c:274 msgid "argument" msgstr "" -#: builtins/common.c:232 +#: builtins/common.c:274 #, c-format msgid "%s out of range" msgstr "" -#: builtins/common.c:240 +#: builtins/common.c:282 #, c-format msgid "%s: no such job" msgstr "" -#: builtins/common.c:248 +#: builtins/common.c:290 #, c-format msgid "%s: no job control" msgstr "" -#: builtins/common.c:250 +#: builtins/common.c:292 msgid "no job control" msgstr "" -#: builtins/common.c:260 +#: builtins/common.c:302 #, c-format msgid "%s: restricted" msgstr "" -#: builtins/common.c:262 +#: builtins/common.c:304 msgid "restricted" msgstr "" -#: builtins/common.c:270 +#: builtins/common.c:312 #, c-format msgid "%s: not a shell builtin" msgstr "" -#: builtins/common.c:276 +#: builtins/common.c:321 #, c-format msgid "write error: %s" msgstr "" -#: builtins/common.c:484 +#: builtins/common.c:553 #, c-format msgid "%s: error retrieving current directory: %s: %s\n" msgstr "" -#: builtins/common.c:550 builtins/common.c:552 +#: builtins/common.c:619 builtins/common.c:621 #, c-format msgid "%s: ambiguous job spec" msgstr "" -#: builtins/complete.def:251 +#: builtins/complete.def:270 #, c-format msgid "%s: invalid action name" msgstr "" -#: builtins/complete.def:381 builtins/complete.def:524 +#: builtins/complete.def:430 builtins/complete.def:615 +#: builtins/complete.def:813 #, c-format msgid "%s: no completion specification" msgstr "" -#: builtins/complete.def:571 +#: builtins/complete.def:667 msgid "warning: -F option may not work as you expect" msgstr "" -#: builtins/complete.def:573 +#: builtins/complete.def:669 msgid "warning: -C option may not work as you expect" msgstr "" -#: builtins/declare.def:105 +#: builtins/complete.def:786 +msgid "not currently executing completion function" +msgstr "" + +#: builtins/declare.def:122 msgid "can only be used in a function" msgstr "" -#: builtins/declare.def:301 +#: builtins/declare.def:353 msgid "cannot use `-f' to make functions" msgstr "" -#: builtins/declare.def:313 execute_cmd.c:3986 +#: builtins/declare.def:365 execute_cmd.c:4731 #, c-format msgid "%s: readonly function" msgstr "" -#: builtins/declare.def:401 +#: builtins/declare.def:461 #, c-format msgid "%s: cannot destroy array variables in this way" msgstr "" -#: builtins/enable.def:128 builtins/enable.def:136 +#: builtins/declare.def:468 +#, c-format +msgid "%s: cannot convert associative to indexed array" +msgstr "" + +#: builtins/enable.def:137 builtins/enable.def:145 msgid "dynamic loading not available" msgstr "" -#: builtins/enable.def:303 +#: builtins/enable.def:312 #, c-format msgid "cannot open shared object %s: %s" msgstr "" -#: builtins/enable.def:326 +#: builtins/enable.def:335 #, c-format msgid "cannot find %s in shared object %s: %s" msgstr "" -#: builtins/enable.def:450 +#: builtins/enable.def:459 #, c-format msgid "%s: not dynamically loaded" msgstr "" -#: builtins/enable.def:465 +#: builtins/enable.def:474 #, c-format msgid "%s: cannot delete: %s" msgstr "" -#: builtins/evalfile.c:129 execute_cmd.c:3852 shell.c:1408 +#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4588 +#: shell.c:1439 #, c-format msgid "%s: is a directory" msgstr "" -#: builtins/evalfile.c:134 +#: builtins/evalfile.c:139 #, c-format msgid "%s: not a regular file" msgstr "" -#: builtins/evalfile.c:142 +#: builtins/evalfile.c:147 #, c-format msgid "%s: file is too large" msgstr "" -#: builtins/exec.def:205 +#: builtins/evalfile.c:185 execute_cmd.c:4658 shell.c:1449 +#, c-format +msgid "%s: cannot execute binary file" +msgstr "" + +#: builtins/exec.def:212 #, c-format msgid "%s: cannot execute: %s" msgstr "" -#: builtins/exit.def:83 +#: builtins/exit.def:65 +#, c-format +msgid "logout\n" +msgstr "" + +#: builtins/exit.def:88 msgid "not login shell: use `exit'" msgstr "" -#: builtins/exit.def:111 +#: builtins/exit.def:120 +#, c-format msgid "There are stopped jobs.\n" msgstr "" -#: builtins/fc.def:259 +#: builtins/exit.def:122 +#, c-format +msgid "There are running jobs.\n" +msgstr "" + +#: builtins/fc.def:261 msgid "no command found" msgstr "" -#: builtins/fc.def:329 +#: builtins/fc.def:341 msgid "history specification" msgstr "" -#: builtins/fc.def:350 +#: builtins/fc.def:362 #, c-format msgid "%s: cannot open temp file: %s" msgstr "" -#: builtins/fg_bg.def:149 +#: builtins/fg_bg.def:149 builtins/jobs.def:282 +msgid "current" +msgstr "" + +#: builtins/fg_bg.def:158 #, c-format msgid "job %d started without job control" msgstr "" -#: builtins/getopt.c:109 +#: builtins/getopt.c:110 #, c-format msgid "%s: illegal option -- %c\n" msgstr "" -#: builtins/getopt.c:110 +#: builtins/getopt.c:111 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "" -#: builtins/hash.def:83 +#: builtins/hash.def:92 msgid "hashing disabled" msgstr "" -#: builtins/hash.def:128 +#: builtins/hash.def:138 #, c-format msgid "%s: hash table empty\n" msgstr "" -#: builtins/help.def:108 -msgid "Shell commands matching keywords `" +#: builtins/hash.def:244 +#, c-format +msgid "hits\tcommand\n" msgstr "" -#: builtins/help.def:110 +#: builtins/help.def:130 +#, c-format msgid "Shell commands matching keyword `" -msgstr "" +msgid_plural "Shell commands matching keywords `" +msgstr[0] "" +msgstr[1] "" -#: builtins/help.def:138 +#: builtins/help.def:168 #, c-format msgid "" "no help topics match `%s'. Try `help help' or `man -k %s' or `info %s'." msgstr "" -#: builtins/help.def:164 +#: builtins/help.def:185 #, c-format msgid "%s: cannot open: %s" msgstr "" -#: builtins/help.def:182 +#: builtins/help.def:337 +#, c-format 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" @@ -388,361 +446,327 @@ msgid "" "\n" msgstr "" -#: builtins/history.def:150 +#: builtins/history.def:154 msgid "cannot use more than one of -anrw" msgstr "" -#: builtins/history.def:182 +#: builtins/history.def:186 msgid "history position" msgstr "" -#: builtins/history.def:400 +#: builtins/history.def:365 #, c-format msgid "%s: history expansion failed" msgstr "" -#: builtins/jobs.def:99 +#: builtins/inlib.def:71 +#, c-format +msgid "%s: inlib failed" +msgstr "" + +#: builtins/jobs.def:109 msgid "no other options allowed with `-x'" msgstr "" -#: builtins/kill.def:187 +#: builtins/kill.def:197 #, c-format msgid "%s: arguments must be process or job IDs" msgstr "" -#: builtins/kill.def:250 +#: builtins/kill.def:260 msgid "Unknown error" msgstr "" -#: builtins/let.def:94 builtins/let.def:119 expr.c:497 expr.c:512 +#: builtins/let.def:95 builtins/let.def:120 expr.c:501 expr.c:516 msgid "expression expected" msgstr "" -#: builtins/printf.def:327 +#: builtins/mapfile.def:215 builtins/read.def:272 #, c-format -msgid "`%s': missing format character" +msgid "%s: invalid file descriptor specification" msgstr "" -#: builtins/printf.def:502 +#: builtins/mapfile.def:223 builtins/read.def:279 #, c-format -msgid "`%c': invalid format character" -msgstr "" - -#: builtins/printf.def:708 -msgid "missing hex digit for \\x" -msgstr "" - -#: builtins/pushd.def:173 -msgid "no other directory" -msgstr "" - -#: builtins/pushd.def:440 -msgid "" -msgstr "" - -#: builtins/pushd.def:657 -msgid "Display the list of currently remembered directories. Directories" -msgstr "" - -#: builtins/pushd.def:658 -msgid "find their way onto the list with the `pushd' command; you can get" -msgstr "" - -#: builtins/pushd.def:659 -msgid "back up through the list with the `popd' command." -msgstr "" - -#: builtins/pushd.def:661 -msgid "The -l flag specifies that `dirs' should not print shorthand versions" +msgid "%d: invalid file descriptor: %s" msgstr "" -#: builtins/pushd.def:662 -msgid "of directories which are relative to your home directory. This means" +#: builtins/mapfile.def:232 builtins/mapfile.def:270 +#, c-format +msgid "%s: invalid line count" msgstr "" -#: builtins/pushd.def:663 -msgid "that `~/bin' might be displayed as `/homes/bfox/bin'. The -v flag" +#: builtins/mapfile.def:243 +#, c-format +msgid "%s: invalid array origin" msgstr "" -#: builtins/pushd.def:664 -msgid "causes `dirs' to print the directory stack with one entry per line," +#: builtins/mapfile.def:260 +#, c-format +msgid "%s: invalid callback quantum" msgstr "" -#: builtins/pushd.def:665 -msgid "prepending the directory name with its position in the stack. The -p" +#: builtins/mapfile.def:292 +msgid "empty array variable name" msgstr "" -#: builtins/pushd.def:666 -msgid "flag does the same thing, but the stack position is not prepended." +#: builtins/mapfile.def:313 +msgid "array variable support required" msgstr "" -#: builtins/pushd.def:667 -msgid "The -c flag clears the directory stack by deleting all of the elements." +#: builtins/printf.def:367 +#, c-format +msgid "`%s': missing format character" msgstr "" -#: builtins/pushd.def:669 -msgid "+N displays the Nth entry counting from the left of the list shown by" +#: builtins/printf.def:544 +#, c-format +msgid "`%c': invalid format character" msgstr "" -#: builtins/pushd.def:670 builtins/pushd.def:673 -msgid " dirs when invoked without options, starting with zero." +#: builtins/printf.def:571 +#, c-format +msgid "warning: %s: %s" msgstr "" -#: builtins/pushd.def:672 -msgid "" -"-N displays the Nth entry counting from the right of the list shown by" +#: builtins/printf.def:750 +msgid "missing hex digit for \\x" msgstr "" -#: builtins/pushd.def:678 -msgid "Adds a directory to the top of the directory stack, or rotates" +#: builtins/pushd.def:195 +msgid "no other directory" msgstr "" -#: builtins/pushd.def:679 -msgid "the stack, making the new top of the stack the current working" +#: builtins/pushd.def:462 +msgid "" msgstr "" -#: builtins/pushd.def:680 -msgid "directory. With no arguments, exchanges the top two directories." +#: builtins/pushd.def:506 +msgid "directory stack empty" msgstr "" -#: builtins/pushd.def:682 -msgid "+N Rotates the stack so that the Nth directory (counting" +#: builtins/pushd.def:508 +msgid "directory stack index" msgstr "" #: builtins/pushd.def:683 -msgid " from the left of the list shown by `dirs', starting with" -msgstr "" - -#: builtins/pushd.def:684 builtins/pushd.def:688 -msgid " zero) is at the top." -msgstr "" - -#: builtins/pushd.def:686 -msgid "-N Rotates the stack so that the Nth directory (counting" -msgstr "" - -#: builtins/pushd.def:687 -msgid " from the right of the list shown by `dirs', starting with" -msgstr "" - -#: builtins/pushd.def:690 -msgid "-n suppress the normal change of directory when adding directories" -msgstr "" - -#: builtins/pushd.def:691 -msgid " to the stack, so only the stack is manipulated." -msgstr "" - -#: builtins/pushd.def:693 -msgid "dir adds DIR to the directory stack at the top, making it the" -msgstr "" - -#: builtins/pushd.def:694 -msgid " new current working directory." -msgstr "" - -#: builtins/pushd.def:696 builtins/pushd.def:716 -msgid "You can see the directory stack with the `dirs' command." -msgstr "" - -#: builtins/pushd.def:701 -msgid "Removes entries from the directory stack. With no arguments," -msgstr "" - -#: builtins/pushd.def:702 -msgid "removes the top directory from the stack, and cd's to the new" -msgstr "" - -#: builtins/pushd.def:703 -msgid "top directory." +msgid "" +"Display the list of currently remembered directories. Directories\n" +" find their way onto the list with the `pushd' command; you can get\n" +" back up through the list with the `popd' command.\n" +" \n" +" Options:\n" +" -c\tclear the directory stack by deleting all of the elements\n" +" -l\tdo not print tilde-prefixed versions of directories relative\n" +" \tto your home directory\n" +" -p\tprint the directory stack with one entry per line\n" +" -v\tprint the directory stack with one entry per line prefixed\n" +" \twith its position in the stack\n" +" \n" +" Arguments:\n" +" +N\tDisplays the Nth entry counting from the left of the list shown " +"by\n" +" \tdirs when invoked without options, starting with zero.\n" +" \n" +" -N\tDisplays the Nth entry counting from the right of the list shown " +"by\n" +"\tdirs when invoked without options, starting with zero." msgstr "" #: builtins/pushd.def:705 -msgid "+N removes the Nth entry counting from the left of the list" -msgstr "" - -#: builtins/pushd.def:706 -msgid " shown by `dirs', starting with zero. For example: `popd +0'" -msgstr "" - -#: builtins/pushd.def:707 -msgid " removes the first directory, `popd +1' the second." -msgstr "" - -#: builtins/pushd.def:709 -msgid "-N removes the Nth entry counting from the right of the list" -msgstr "" - -#: builtins/pushd.def:710 -msgid " shown by `dirs', starting with zero. For example: `popd -0'" -msgstr "" - -#: builtins/pushd.def:711 -msgid " removes the last directory, `popd -1' the next to last." -msgstr "" - -#: builtins/pushd.def:713 -msgid "-n suppress the normal change of directory when removing directories" +msgid "" +"Adds a directory to the top of the directory stack, or rotates\n" +" the stack, making the new top of the stack the current working\n" +" directory. With no arguments, exchanges the top two directories.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when adding\n" +" \tdirectories to the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the left of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" -N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the right of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" dir\tAdds DIR to the directory stack at the top, making it the\n" +" \tnew current working directory.\n" +" \n" +" The `dirs' builtin displays the directory stack." msgstr "" -#: builtins/pushd.def:714 -msgid " from the stack, so only the stack is manipulated." +#: builtins/pushd.def:730 +msgid "" +"Removes entries from the directory stack. With no arguments, removes\n" +" the top directory from the stack, and changes to the new top directory.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when removing\n" +" \tdirectories from the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRemoves the Nth entry counting from the left of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd +0'\n" +" \tremoves the first directory, `popd +1' the second.\n" +" \n" +" -N\tRemoves the Nth entry counting from the right of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd -0'\n" +" \tremoves the last directory, `popd -1' the next to last.\n" +" \n" +" The `dirs' builtin displays the directory stack." msgstr "" -#: builtins/read.def:211 +#: builtins/read.def:248 #, c-format msgid "%s: invalid timeout specification" msgstr "" -#: builtins/read.def:234 -#, c-format -msgid "%s: invalid file descriptor specification" -msgstr "" - -#: builtins/read.def:241 -#, c-format -msgid "%d: invalid file descriptor: %s" -msgstr "" - -#: builtins/read.def:474 +#: builtins/read.def:574 #, c-format msgid "read error: %d: %s" msgstr "" -#: builtins/return.def:63 +#: builtins/return.def:73 msgid "can only `return' from a function or sourced script" msgstr "" -#: builtins/set.def:745 +#: builtins/set.def:768 msgid "cannot simultaneously unset a function and a variable" msgstr "" -#: builtins/set.def:782 +#: builtins/set.def:805 #, c-format msgid "%s: cannot unset" msgstr "" -#: builtins/set.def:789 +#: builtins/set.def:812 #, c-format msgid "%s: cannot unset: readonly %s" msgstr "" -#: builtins/set.def:800 +#: builtins/set.def:823 #, c-format msgid "%s: not an array variable" msgstr "" -#: builtins/setattr.def:166 +#: builtins/setattr.def:186 #, c-format msgid "%s: not a function" msgstr "" -#: builtins/shift.def:66 builtins/shift.def:72 +#: builtins/shift.def:71 builtins/shift.def:77 msgid "shift count" msgstr "" -#: builtins/shopt.def:227 +#: builtins/shopt.def:254 msgid "cannot set and unset shell options simultaneously" msgstr "" -#: builtins/shopt.def:292 +#: builtins/shopt.def:319 #, c-format msgid "%s: invalid shell option name" msgstr "" -#: builtins/source.def:117 +#: builtins/source.def:128 msgid "filename argument required" msgstr "" -#: builtins/source.def:137 +#: builtins/source.def:153 #, c-format msgid "%s: file not found" msgstr "" -#: builtins/suspend.def:93 +#: builtins/suspend.def:101 msgid "cannot suspend" msgstr "" -#: builtins/suspend.def:103 +#: builtins/suspend.def:111 msgid "cannot suspend a login shell" msgstr "" -#: builtins/type.def:232 +#: builtins/type.def:234 #, c-format msgid "%s is aliased to `%s'\n" msgstr "" -#: builtins/type.def:253 +#: builtins/type.def:255 #, c-format msgid "%s is a shell keyword\n" msgstr "" -#: builtins/type.def:273 +#: builtins/type.def:274 #, c-format msgid "%s is a function\n" msgstr "" -#: builtins/type.def:298 +#: builtins/type.def:296 #, c-format msgid "%s is a shell builtin\n" msgstr "" -#: builtins/type.def:319 +#: builtins/type.def:317 builtins/type.def:391 #, c-format msgid "%s is %s\n" msgstr "" -#: builtins/type.def:339 +#: builtins/type.def:337 #, c-format msgid "%s is hashed (%s)\n" msgstr "" -#: builtins/ulimit.def:344 +#: builtins/ulimit.def:372 #, c-format msgid "%s: invalid limit argument" msgstr "" -#: builtins/ulimit.def:370 +#: builtins/ulimit.def:398 #, c-format msgid "`%c': bad command" msgstr "" -#: builtins/ulimit.def:399 +#: builtins/ulimit.def:427 #, c-format msgid "%s: cannot get limit: %s" msgstr "" -#: builtins/ulimit.def:437 +#: builtins/ulimit.def:453 +msgid "limit" +msgstr "" + +#: builtins/ulimit.def:465 builtins/ulimit.def:765 #, c-format msgid "%s: cannot modify limit: %s" msgstr "" -#: builtins/umask.def:112 +#: builtins/umask.def:118 msgid "octal number" msgstr "" -#: builtins/umask.def:226 +#: builtins/umask.def:231 #, c-format msgid "`%c': invalid symbolic mode operator" msgstr "" -#: builtins/umask.def:281 +#: builtins/umask.def:286 #, c-format msgid "`%c': invalid symbolic mode character" msgstr "" -#: error.c:165 -#, c-format -msgid "last command: %s\n" +#: error.c:89 error.c:320 error.c:322 error.c:324 +msgid " line " msgstr "" -#: error.c:173 -msgid "Aborting..." +#: error.c:164 +#, c-format +msgid "last command: %s\n" msgstr "" -#: error.c:260 +#: error.c:172 #, c-format -msgid "%s: warning: " +msgid "Aborting..." msgstr "" #: error.c:405 @@ -766,269 +790,366 @@ msgstr "" msgid "%s: unbound variable" msgstr "" -#: eval.c:176 -msgid "timed out waiting for input: auto-logout\n" +#: eval.c:181 +#, c-format +msgid "\atimed out waiting for input: auto-logout\n" msgstr "" -#: execute_cmd.c:471 +#: execute_cmd.c:491 #, c-format msgid "cannot redirect standard input from /dev/null: %s" msgstr "" -#: execute_cmd.c:1036 +#: execute_cmd.c:1091 #, c-format msgid "TIMEFORMAT: `%c': invalid format character" msgstr "" -#: execute_cmd.c:3551 +#: execute_cmd.c:1942 +msgid "pipe error" +msgstr "" + +#: execute_cmd.c:4276 #, c-format msgid "%s: restricted: cannot specify `/' in command names" msgstr "" -#: execute_cmd.c:3639 +#: execute_cmd.c:4367 #, c-format msgid "%s: command not found" msgstr "" -#: execute_cmd.c:3876 +#: execute_cmd.c:4621 #, c-format msgid "%s: %s: bad interpreter" msgstr "" -#: execute_cmd.c:3913 -#, c-format -msgid "%s: cannot execute binary file" -msgstr "" - -#: execute_cmd.c:4025 +#: execute_cmd.c:4770 #, c-format msgid "cannot duplicate fd %d to fd %d" msgstr "" -#: expr.c:240 +#: expr.c:241 msgid "expression recursion level exceeded" msgstr "" -#: expr.c:264 +#: expr.c:265 msgid "recursion stack underflow" msgstr "" -#: expr.c:375 +#: expr.c:379 msgid "syntax error in expression" msgstr "" -#: expr.c:415 +#: expr.c:419 msgid "attempted assignment to non-variable" msgstr "" -#: expr.c:436 expr.c:441 expr.c:751 +#: expr.c:440 expr.c:445 expr.c:756 msgid "division by 0" msgstr "" -#: expr.c:467 +#: expr.c:471 msgid "bug: bad expassign token" msgstr "" -#: expr.c:509 +#: expr.c:513 msgid "`:' expected for conditional expression" msgstr "" -#: expr.c:776 +#: expr.c:781 msgid "exponent less than 0" msgstr "" -#: expr.c:821 +#: expr.c:826 msgid "identifier expected after pre-increment or pre-decrement" msgstr "" -#: expr.c:849 +#: expr.c:854 msgid "missing `)'" msgstr "" -#: expr.c:892 +#: expr.c:897 expr.c:1175 msgid "syntax error: operand expected" msgstr "" -#: expr.c:1178 -msgid "invalid number" +#: expr.c:1177 +msgid "syntax error: invalid arithmetic operator" +msgstr "" + +#: expr.c:1201 +#, c-format +msgid "%s%s%s: %s (error token is \"%s\")" msgstr "" -#: expr.c:1182 +#: expr.c:1259 msgid "invalid arithmetic base" msgstr "" -#: expr.c:1202 +#: expr.c:1279 msgid "value too great for base" msgstr "" -#: general.c:62 +#: expr.c:1328 +#, c-format +msgid "%s: expression error\n" +msgstr "" + +#: general.c:61 msgid "getcwd: cannot access parent directories" msgstr "" -#: input.c:231 +#: input.c:94 subst.c:4559 +#, c-format +msgid "cannot reset nodelay mode for fd %d" +msgstr "" + +#: input.c:258 #, c-format msgid "cannot allocate new file descriptor for bash input from fd %d" msgstr "" -#: input.c:239 +#: input.c:266 #, c-format msgid "save_bash_input: buffer already exists for new fd %d" msgstr "" -#: jobs.c:923 -#, c-format -msgid "deleting stopped job %d with process group %ld" +#: jobs.c:466 +msgid "start_pipeline: pgrp pipe" msgstr "" -#: jobs.c:1308 +#: jobs.c:882 #, c-format -msgid "describe_pid: %ld: no such pid" +msgid "forked pid %d appears in running job %d" msgstr "" -#: jobs.c:1981 nojobs.c:648 +#: jobs.c:1000 #, c-format -msgid "wait: pid %ld is not a child of this shell" +msgid "deleting stopped job %d with process group %ld" msgstr "" -#: jobs.c:2180 +#: jobs.c:1105 #, c-format -msgid "wait_for: No record of process %ld" +msgid "add_process: process %5ld (%s) in the_pipeline" msgstr "" -#: jobs.c:2435 +#: jobs.c:1108 #, c-format -msgid "wait_for_job: job %d is stopped" +msgid "add_process: pid %5ld (%s) marked as still alive" msgstr "" -#: jobs.c:2657 +#: jobs.c:1396 #, c-format -msgid "%s: job has terminated" +msgid "describe_pid: %ld: no such pid" msgstr "" -#: jobs.c:2666 +#: jobs.c:1411 #, c-format -msgid "%s: job %d already in background" +msgid "Signal %d" msgstr "" -#: jobs.c:3452 -msgid "no job control in this shell" +#: jobs.c:1425 jobs.c:1450 +msgid "Done" +msgstr "" + +#: jobs.c:1430 siglist.c:122 +msgid "Stopped" msgstr "" -#: lib/malloc/malloc.c:298 +#: jobs.c:1434 #, c-format -msgid "malloc: failed assertion: %s\n" +msgid "Stopped(%s)" msgstr "" -#: lib/malloc/malloc.c:314 +#: jobs.c:1438 +msgid "Running" +msgstr "" + +#: jobs.c:1452 #, c-format -msgid "" -"\r\n" -"malloc: %s:%d: assertion botched\r\n" +msgid "Done(%d)" msgstr "" -#: lib/malloc/malloc.c:740 -msgid "malloc: block on free list clobbered" +#: jobs.c:1454 +#, c-format +msgid "Exit %d" msgstr "" -#: lib/malloc/malloc.c:817 -msgid "free: called with already freed block argument" +#: jobs.c:1457 +msgid "Unknown status" msgstr "" -#: lib/malloc/malloc.c:820 -msgid "free: called with unallocated block argument" +#: jobs.c:1544 +#, c-format +msgid "(core dumped) " msgstr "" -#: lib/malloc/malloc.c:839 -msgid "free: underflow detected; mh_nbytes out of range" +#: jobs.c:1563 +#, c-format +msgid " (wd: %s)" msgstr "" -#: lib/malloc/malloc.c:845 -msgid "free: start and end chunk sizes differ" +#: jobs.c:1766 +#, c-format +msgid "child setpgid (%ld to %ld)" msgstr "" -#: lib/malloc/malloc.c:942 -msgid "realloc: called with unallocated block argument" +#: jobs.c:2094 nojobs.c:576 +#, c-format +msgid "wait: pid %ld is not a child of this shell" msgstr "" -#: lib/malloc/malloc.c:957 -msgid "realloc: underflow detected; mh_nbytes out of range" +#: jobs.c:2321 +#, c-format +msgid "wait_for: No record of process %ld" msgstr "" -#: lib/malloc/malloc.c:963 -msgid "realloc: start and end chunk sizes differ" +#: jobs.c:2593 +#, c-format +msgid "wait_for_job: job %d is stopped" msgstr "" -#: lib/malloc/table.c:175 -msgid "register_alloc: alloc table is full with FIND_ALLOC?\n" +#: jobs.c:2815 +#, c-format +msgid "%s: job has terminated" msgstr "" -#: lib/malloc/table.c:182 +#: jobs.c:2824 #, c-format -msgid "register_alloc: %p already in table as allocated?\n" +msgid "%s: job %d already in background" msgstr "" -#: lib/malloc/table.c:218 +#: jobs.c:3487 #, c-format -msgid "register_free: %p already in table as free?\n" +msgid "%s: line %d: " msgstr "" -#: lib/malloc/watch.c:46 -msgid "allocated" +#: jobs.c:3501 nojobs.c:805 +#, c-format +msgid " (core dumped)" msgstr "" -#: lib/malloc/watch.c:48 -msgid "freed" +#: jobs.c:3513 jobs.c:3526 +#, c-format +msgid "(wd now: %s)\n" msgstr "" -#: lib/malloc/watch.c:50 -msgid "requesting resize" +#: jobs.c:3558 +msgid "initialize_job_control: getpgrp failed" msgstr "" -#: lib/malloc/watch.c:52 -msgid "just resized" +#: jobs.c:3618 +msgid "initialize_job_control: line discipline" msgstr "" -#: lib/malloc/watch.c:54 -msgid "bug: unknown operation" +#: jobs.c:3628 +msgid "initialize_job_control: setpgid" msgstr "" -#: lib/malloc/watch.c:56 +#: jobs.c:3656 #, c-format -msgid "malloc: watch alert: %p %s " +msgid "cannot set terminal process group (%d)" msgstr "" -#: lib/sh/fmtulong.c:101 -msgid "invalid base" +#: jobs.c:3661 +msgid "no job control in this shell" msgstr "" -#: lib/sh/netopen.c:158 +#: lib/malloc/malloc.c:296 #, c-format -msgid "%s: host unknown" +msgid "malloc: failed assertion: %s\n" msgstr "" -#: lib/sh/netopen.c:165 +#: lib/malloc/malloc.c:312 #, c-format -msgid "%s: invalid service" +msgid "" +"\r\n" +"malloc: %s:%d: assertion botched\r\n" msgstr "" -#: lib/sh/netopen.c:296 -#, c-format -msgid "%s: bad network path specification" +#: lib/malloc/malloc.c:313 +msgid "unknown" msgstr "" -#: lib/sh/netopen.c:336 -msgid "network operations not supported" +#: lib/malloc/malloc.c:797 +msgid "malloc: block on free list clobbered" msgstr "" -#: mailcheck.c:386 -msgid "You have mail in $_" +#: lib/malloc/malloc.c:874 +msgid "free: called with already freed block argument" msgstr "" -#: mailcheck.c:411 -msgid "You have new mail in $_" +#: lib/malloc/malloc.c:877 +msgid "free: called with unallocated block argument" msgstr "" -#: mailcheck.c:427 +#: lib/malloc/malloc.c:896 +msgid "free: underflow detected; mh_nbytes out of range" +msgstr "" + +#: lib/malloc/malloc.c:902 +msgid "free: start and end chunk sizes differ" +msgstr "" + +#: lib/malloc/malloc.c:1001 +msgid "realloc: called with unallocated block argument" +msgstr "" + +#: lib/malloc/malloc.c:1016 +msgid "realloc: underflow detected; mh_nbytes out of range" +msgstr "" + +#: lib/malloc/malloc.c:1022 +msgid "realloc: start and end chunk sizes differ" +msgstr "" + +#: lib/malloc/table.c:177 +#, c-format +msgid "register_alloc: alloc table is full with FIND_ALLOC?\n" +msgstr "" + +#: lib/malloc/table.c:184 +#, c-format +msgid "register_alloc: %p already in table as allocated?\n" +msgstr "" + +#: lib/malloc/table.c:220 +#, c-format +msgid "register_free: %p already in table as free?\n" +msgstr "" + +#: lib/sh/fmtulong.c:101 +msgid "invalid base" +msgstr "" + +#: lib/sh/netopen.c:168 +#, c-format +msgid "%s: host unknown" +msgstr "" + +#: lib/sh/netopen.c:175 +#, c-format +msgid "%s: invalid service" +msgstr "" + +#: lib/sh/netopen.c:306 +#, c-format +msgid "%s: bad network path specification" +msgstr "" + +#: lib/sh/netopen.c:346 +msgid "network operations not supported" +msgstr "" + +#: mailcheck.c:433 +msgid "You have mail in $_" +msgstr "" + +#: mailcheck.c:458 +msgid "You have new mail in $_" +msgstr "" + +#: mailcheck.c:474 #, c-format msgid "The mail in %s has been read\n" msgstr "" @@ -1046,113 +1167,118 @@ msgstr "" msgid "syntax error: `((%s))'" msgstr "" -#: make_cmd.c:566 +#: make_cmd.c:567 #, c-format msgid "make_here_document: bad instruction type %d" msgstr "" -#: make_cmd.c:736 +#: make_cmd.c:651 +#, c-format +msgid "here-document at line %d delimited by end-of-file (wanted `%s')" +msgstr "" + +#: make_cmd.c:746 #, c-format msgid "make_redirection: redirection instruction `%d' out of range" msgstr "" -#: parse.y:2747 +#: parse.y:2986 parse.y:3218 #, c-format msgid "unexpected EOF while looking for matching `%c'" msgstr "" -#: parse.y:3043 +#: parse.y:3722 msgid "unexpected EOF while looking for `]]'" msgstr "" -#: parse.y:3048 +#: parse.y:3727 #, c-format msgid "syntax error in conditional expression: unexpected token `%s'" msgstr "" -#: parse.y:3052 +#: parse.y:3731 msgid "syntax error in conditional expression" msgstr "" -#: parse.y:3130 +#: parse.y:3809 #, c-format msgid "unexpected token `%s', expected `)'" msgstr "" -#: parse.y:3134 +#: parse.y:3813 msgid "expected `)'" msgstr "" -#: parse.y:3162 +#: parse.y:3841 #, c-format msgid "unexpected argument `%s' to conditional unary operator" msgstr "" -#: parse.y:3166 +#: parse.y:3845 msgid "unexpected argument to conditional unary operator" msgstr "" -#: parse.y:3203 +#: parse.y:3885 #, c-format msgid "unexpected token `%s', conditional binary operator expected" msgstr "" -#: parse.y:3207 +#: parse.y:3889 msgid "conditional binary operator expected" msgstr "" -#: parse.y:3223 +#: parse.y:3906 #, c-format msgid "unexpected argument `%s' to conditional binary operator" msgstr "" -#: parse.y:3227 +#: parse.y:3910 msgid "unexpected argument to conditional binary operator" msgstr "" -#: parse.y:3238 +#: parse.y:3921 #, c-format msgid "unexpected token `%c' in conditional command" msgstr "" -#: parse.y:3241 +#: parse.y:3924 #, c-format msgid "unexpected token `%s' in conditional command" msgstr "" -#: parse.y:3245 +#: parse.y:3928 #, c-format msgid "unexpected token %d in conditional command" msgstr "" -#: parse.y:4461 +#: parse.y:5195 #, c-format msgid "syntax error near unexpected token `%s'" msgstr "" -#: parse.y:4479 +#: parse.y:5213 #, c-format msgid "syntax error near `%s'" msgstr "" -#: parse.y:4489 +#: parse.y:5223 msgid "syntax error: unexpected end of file" msgstr "" -#: parse.y:4489 +#: parse.y:5223 msgid "syntax error" msgstr "" -#: parse.y:4551 +#: parse.y:5285 #, c-format msgid "Use \"%s\" to leave the shell.\n" msgstr "" -#: parse.y:4710 +#: parse.y:5447 msgid "unexpected EOF while looking for matching `)'" msgstr "" -#: pcomplete.c:1001 +#: pcomplete.c:1016 #, c-format msgid "completion: function `%s' not found" msgstr "" @@ -1162,537 +1288,1198 @@ msgstr "" msgid "progcomp_insert: %s: NULL COMPSPEC" msgstr "" -#: print_cmd.c:264 +#: print_cmd.c:287 #, c-format msgid "print_command: bad connector `%d'" msgstr "" -#: print_cmd.c:1236 +#: print_cmd.c:1347 #, c-format msgid "cprintf: `%c': invalid format character" msgstr "" -#: redir.c:99 +#: redir.c:105 msgid "file descriptor out of range" msgstr "" -#: redir.c:141 +#: redir.c:148 #, c-format msgid "%s: ambiguous redirect" msgstr "" -#: redir.c:145 +#: redir.c:152 #, c-format msgid "%s: cannot overwrite existing file" msgstr "" -#: redir.c:150 +#: redir.c:157 #, c-format msgid "%s: restricted: cannot redirect output" msgstr "" -#: redir.c:155 +#: redir.c:162 #, c-format -msgid "cannot create temp file for here document: %s" +msgid "cannot create temp file for here-document: %s" msgstr "" -#: redir.c:509 +#: redir.c:517 msgid "/dev/(tcp|udp)/host/port not supported without networking" msgstr "" -#: redir.c:956 +#: redir.c:1023 msgid "redirection error: cannot duplicate fd" msgstr "" -#: shell.c:309 +#: shell.c:328 msgid "could not find /tmp, please create!" msgstr "" -#: shell.c:313 +#: shell.c:332 msgid "/tmp must be a valid directory name" msgstr "" -#: shell.c:849 +#: shell.c:876 #, c-format msgid "%c%c: invalid option" msgstr "" -#: shell.c:1598 +#: shell.c:1638 msgid "I have no name!" msgstr "" -#: shell.c:1733 +#: shell.c:1778 +#, c-format +msgid "GNU bash, version %s-(%s)\n" +msgstr "" + +#: shell.c:1779 #, c-format msgid "" "Usage:\t%s [GNU long option] [option] ...\n" "\t%s [GNU long option] [option] script-file ...\n" msgstr "" -#: shell.c:1735 +#: shell.c:1781 msgid "GNU long options:\n" msgstr "" -#: shell.c:1739 +#: shell.c:1785 msgid "Shell options:\n" msgstr "" -#: shell.c:1740 +#: shell.c:1786 msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n" msgstr "" -#: shell.c:1755 +#: shell.c:1801 #, c-format msgid "\t-%s or -o option\n" msgstr "" -#: shell.c:1761 +#: shell.c:1807 #, c-format msgid "Type `%s -c \"help set\"' for more information about shell options.\n" msgstr "" -#: shell.c:1762 +#: shell.c:1808 #, c-format msgid "Type `%s -c help' for more information about shell builtin commands.\n" msgstr "" -#: shell.c:1763 +#: shell.c:1809 +#, c-format msgid "Use the `bashbug' command to report bugs.\n" msgstr "" -#: sig.c:494 +#: sig.c:583 #, c-format msgid "sigprocmask: %d: invalid operation" msgstr "" -#: subst.c:1123 +#: 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:1181 subst.c:1302 #, c-format msgid "bad substitution: no closing `%s' in %s" msgstr "" -#: subst.c:2269 +#: subst.c:2458 #, c-format msgid "%s: cannot assign list to array member" msgstr "" -#: subst.c:4208 subst.c:4224 +#: subst.c:4456 subst.c:4472 msgid "cannot make pipe for process substitution" msgstr "" -#: subst.c:4255 +#: subst.c:4504 msgid "cannot make child for process substitution" msgstr "" -#: subst.c:4300 +#: subst.c:4549 #, c-format msgid "cannot open named pipe %s for reading" msgstr "" -#: subst.c:4302 +#: subst.c:4551 #, c-format msgid "cannot open named pipe %s for writing" msgstr "" -#: subst.c:4310 -#, c-format -msgid "cannout reset nodelay mode for fd %d" -msgstr "" - -#: subst.c:4320 +#: subst.c:4569 #, c-format msgid "cannot duplicate named pipe %s as fd %d" msgstr "" -#: subst.c:4495 +#: subst.c:4765 msgid "cannot make pipe for command substitution" msgstr "" -#: subst.c:4531 +#: subst.c:4799 msgid "cannot make child for command substitution" msgstr "" -#: subst.c:4548 +#: subst.c:4816 msgid "command_substitute: cannot duplicate pipe as fd 1" msgstr "" -#: subst.c:5013 +#: subst.c:5318 #, c-format msgid "%s: parameter null or not set" msgstr "" -#: subst.c:5287 +#: subst.c:5608 #, c-format msgid "%s: substring expression < 0" msgstr "" -#: subst.c:6058 +#: subst.c:6660 #, c-format msgid "%s: bad substitution" msgstr "" -#: subst.c:6134 +#: subst.c:6740 #, c-format msgid "$%s: cannot assign in this way" msgstr "" -#: subst.c:7687 +#: subst.c:7479 +#, c-format +msgid "bad substitution: no closing \"`\" in %s" +msgstr "" + +#: subst.c:8354 #, c-format msgid "no match: %s" msgstr "" -#: test.c:154 +#: test.c:145 msgid "argument expected" msgstr "" -#: test.c:163 +#: test.c:154 #, c-format msgid "%s: integer expression expected" msgstr "" -#: test.c:361 +#: test.c:262 msgid "`)' expected" msgstr "" -#: test.c:363 +#: test.c:264 #, c-format msgid "`)' expected, found %s" msgstr "" -#: test.c:378 test.c:787 test.c:790 +#: test.c:279 test.c:688 test.c:691 #, c-format msgid "%s: unary operator expected" msgstr "" -#: test.c:543 test.c:830 +#: test.c:444 test.c:731 #, c-format msgid "%s: binary operator expected" msgstr "" -#: test.c:905 +#: test.c:806 msgid "missing `]'" msgstr "" -#: trap.c:194 +#: trap.c:201 msgid "invalid signal number" msgstr "" -#: trap.c:309 +#: trap.c:324 #, c-format msgid "run_pending_traps: bad value in trap_list[%d]: %p" msgstr "" -#: trap.c:313 +#: trap.c:328 #, c-format msgid "" "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself" msgstr "" -#: trap.c:349 +#: trap.c:372 #, c-format msgid "trap_handler: bad signal %d" msgstr "" -#: variables.c:320 +#: variables.c:358 #, c-format msgid "error importing function definition for `%s'" msgstr "" -#: variables.c:692 +#: variables.c:736 #, c-format msgid "shell level (%d) too high, resetting to 1" msgstr "" -#: variables.c:1651 +#: variables.c:1898 msgid "make_local_variable: no function context at current scope" msgstr "" -#: variables.c:2807 +#: variables.c:3127 msgid "all_local_variables: no function context at current scope" msgstr "" -#: variables.c:3021 variables.c:3030 +#: variables.c:3344 variables.c:3353 #, c-format msgid "invalid character %d in exportstr for %s" msgstr "" -#: variables.c:3036 +#: variables.c:3359 #, c-format msgid "no `=' in exportstr for %s" msgstr "" -#: variables.c:3463 +#: variables.c:3794 msgid "pop_var_context: head of shell_variables not a function context" msgstr "" -#: variables.c:3476 +#: variables.c:3807 msgid "pop_var_context: no global_variables context" msgstr "" -#: variables.c:3548 +#: variables.c:3881 msgid "pop_scope: head of shell_variables not a temporary environment scope" msgstr "" -#: version.c:82 -msgid "Copyright (C) 2005 Free Software Foundation, Inc.\n" +#: version.c:46 +msgid "Copyright (C) 2009 Free Software Foundation, Inc." msgstr "" -#: xmalloc.c:93 +#: version.c:47 +msgid "" +"License GPLv3+: GNU GPL version 3 or later \n" +msgstr "" + +#: version.c:86 +#, c-format +msgid "GNU bash, version %s (%s)\n" +msgstr "" + +#: version.c:91 +#, c-format +msgid "This is free software; you are free to change and redistribute it.\n" +msgstr "" + +#: version.c:92 +#, c-format +msgid "There is NO WARRANTY, to the extent permitted by law.\n" +msgstr "" + +#: xmalloc.c:92 #, c-format msgid "xmalloc: cannot allocate %lu bytes (%lu bytes allocated)" msgstr "" -#: xmalloc.c:95 +#: xmalloc.c:94 #, c-format msgid "xmalloc: cannot allocate %lu bytes" msgstr "" -#: xmalloc.c:115 +#: xmalloc.c:114 #, c-format msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)" msgstr "" -#: xmalloc.c:117 +#: xmalloc.c:116 #, c-format msgid "xrealloc: cannot allocate %lu bytes" msgstr "" -#: xmalloc.c:151 +#: xmalloc.c:150 #, c-format msgid "xmalloc: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)" msgstr "" -#: xmalloc.c:153 +#: xmalloc.c:152 #, c-format msgid "xmalloc: %s:%d: cannot allocate %lu bytes" msgstr "" -#: xmalloc.c:175 +#: xmalloc.c:174 #, c-format msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)" msgstr "" -#: xmalloc.c:177 +#: xmalloc.c:176 #, c-format msgid "xrealloc: %s:%d: cannot allocate %lu bytes" msgstr "" -#: builtins.c:244 +#: builtins.c:43 +msgid "alias [-p] [name[=value] ... ]" +msgstr "" + +#: builtins.c:47 +msgid "unalias [-a] name [name ...]" +msgstr "" + +#: builtins.c:51 msgid "" -" `alias' with no arguments or with the -p option prints the list\n" -" of aliases in the form alias NAME=VALUE on standard output.\n" +"bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-" +"x keyseq:shell-command] [keyseq:readline-function or readline-command]" +msgstr "" + +#: builtins.c:54 +msgid "break [n]" +msgstr "" + +#: builtins.c:56 +msgid "continue [n]" +msgstr "" + +#: builtins.c:58 +msgid "builtin [shell-builtin [arg ...]]" +msgstr "" + +#: builtins.c:61 +msgid "caller [expr]" +msgstr "" + +#: builtins.c:64 +msgid "cd [-L|-P] [dir]" +msgstr "" + +#: builtins.c:66 +msgid "pwd [-LP]" +msgstr "" + +#: builtins.c:68 +msgid ":" +msgstr "" + +#: builtins.c:70 +msgid "true" +msgstr "" + +#: builtins.c:72 +msgid "false" +msgstr "" + +#: builtins.c:74 +msgid "command [-pVv] command [arg ...]" +msgstr "" + +#: builtins.c:76 +msgid "declare [-aAfFilrtux] [-p] [name[=value] ...]" +msgstr "" + +#: builtins.c:78 +msgid "typeset [-aAfFilrtux] [-p] name[=value] ..." +msgstr "" + +#: builtins.c:80 +msgid "local [option] name[=value] ..." +msgstr "" + +#: builtins.c:83 +msgid "echo [-neE] [arg ...]" +msgstr "" + +#: builtins.c:87 +msgid "echo [-n] [arg ...]" +msgstr "" + +#: builtins.c:90 +msgid "enable [-a] [-dnps] [-f filename] [name ...]" +msgstr "" + +#: builtins.c:92 +msgid "eval [arg ...]" +msgstr "" + +#: builtins.c:94 +msgid "getopts optstring name [arg]" +msgstr "" + +#: builtins.c:96 +msgid "exec [-cl] [-a name] [command [arguments ...]] [redirection ...]" +msgstr "" + +#: builtins.c:98 +msgid "exit [n]" +msgstr "" + +#: builtins.c:100 +msgid "logout [n]" +msgstr "" + +#: builtins.c:103 +msgid "fc [-e ename] [-lnr] [first] [last] or fc -s [pat=rep] [command]" +msgstr "" + +#: builtins.c:107 +msgid "fg [job_spec]" +msgstr "" + +#: builtins.c:111 +msgid "bg [job_spec ...]" +msgstr "" + +#: builtins.c:114 +msgid "hash [-lr] [-p pathname] [-dt] [name ...]" +msgstr "" + +#: builtins.c:117 +msgid "help [-ds] [pattern ...]" +msgstr "" + +#: builtins.c:121 +msgid "" +"history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg " +"[arg...]" +msgstr "" + +#: builtins.c:125 +msgid "jobs [-lnprs] [jobspec ...] or jobs -x command [args]" +msgstr "" + +#: builtins.c:129 +msgid "disown [-h] [-ar] [jobspec ...]" +msgstr "" + +#: builtins.c:132 +msgid "" +"kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l " +"[sigspec]" +msgstr "" + +#: builtins.c:134 +msgid "let arg [arg ...]" +msgstr "" + +#: builtins.c:136 +msgid "" +"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-p prompt] [-t " +"timeout] [-u fd] [name ...]" +msgstr "" + +#: builtins.c:138 +msgid "return [n]" +msgstr "" + +#: builtins.c:140 +msgid "set [--abefhkmnptuvxBCHP] [-o option-name] [arg ...]" +msgstr "" + +#: builtins.c:142 +msgid "unset [-f] [-v] [name ...]" +msgstr "" + +#: builtins.c:144 +msgid "export [-fn] [name[=value] ...] or export -p" +msgstr "" + +#: builtins.c:146 +msgid "readonly [-af] [name[=value] ...] or readonly -p" +msgstr "" + +#: builtins.c:148 +msgid "shift [n]" +msgstr "" + +#: builtins.c:150 +msgid "source filename [arguments]" +msgstr "" + +#: builtins.c:152 +msgid ". filename [arguments]" +msgstr "" + +#: builtins.c:155 +msgid "suspend [-f]" +msgstr "" + +#: builtins.c:158 +msgid "test [expr]" +msgstr "" + +#: builtins.c:160 +msgid "[ arg... ]" +msgstr "" + +#: builtins.c:162 +msgid "times" +msgstr "" + +#: builtins.c:164 +msgid "trap [-lp] [[arg] signal_spec ...]" +msgstr "" + +#: builtins.c:166 +msgid "type [-afptP] name [name ...]" +msgstr "" + +#: builtins.c:169 +msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]" +msgstr "" + +#: builtins.c:172 +msgid "umask [-p] [-S] [mode]" +msgstr "" + +#: builtins.c:175 +msgid "wait [id]" +msgstr "" + +#: builtins.c:179 +msgid "wait [pid]" +msgstr "" + +#: builtins.c:182 +msgid "for NAME [in WORDS ... ] ; do COMMANDS; done" +msgstr "" + +#: builtins.c:184 +msgid "for (( exp1; exp2; exp3 )); do COMMANDS; done" +msgstr "" + +#: builtins.c:186 +msgid "select NAME [in WORDS ... ;] do COMMANDS; done" +msgstr "" + +#: builtins.c:188 +msgid "time [-p] pipeline" +msgstr "" + +#: builtins.c:190 +msgid "case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac" +msgstr "" + +#: builtins.c:192 +msgid "" +"if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else " +"COMMANDS; ] fi" +msgstr "" + +#: builtins.c:194 +msgid "while COMMANDS; do COMMANDS; done" +msgstr "" + +#: builtins.c:196 +msgid "until COMMANDS; do COMMANDS; done" +msgstr "" + +#: builtins.c:198 +msgid "function name { COMMANDS ; } or name () { COMMANDS ; }" +msgstr "" + +#: builtins.c:200 +msgid "{ COMMANDS ; }" +msgstr "" + +#: builtins.c:202 +msgid "job_spec [&]" +msgstr "" + +#: builtins.c:204 +msgid "(( expression ))" +msgstr "" + +#: builtins.c:206 +msgid "[[ expression ]]" +msgstr "" + +#: builtins.c:208 +msgid "variables - Names and meanings of some shell variables" +msgstr "" + +#: builtins.c:211 +msgid "pushd [-n] [+N | -N | dir]" +msgstr "" + +#: builtins.c:215 +msgid "popd [-n] [+N | -N]" +msgstr "" + +#: builtins.c:219 +msgid "dirs [-clpv] [+N] [-N]" +msgstr "" + +#: builtins.c:222 +msgid "shopt [-pqsu] [-o] [optname ...]" +msgstr "" + +#: builtins.c:224 +msgid "printf [-v var] format [arguments]" +msgstr "" + +#: builtins.c:227 +msgid "" +"complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W " +"wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] " +"[name ...]" +msgstr "" + +#: builtins.c:231 +msgid "" +"compgen [-abcdefgjksuv] [-o option] [-A action] [-G globpat] [-W wordlist] " +"[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]" +msgstr "" + +#: builtins.c:235 +msgid "compopt [-o|+o option] [name ...]" +msgstr "" + +#: builtins.c:238 +msgid "" +"mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c " +"quantum] [array]" +msgstr "" + +#: builtins.c:250 +msgid "" +"Define or display aliases.\n" +" \n" +" Without arguments, `alias' prints the list of aliases in the reusable\n" +" form `alias NAME=VALUE' on standard output.\n" +" \n" " Otherwise, an alias is defined for each NAME whose VALUE is given.\n" " A trailing space in VALUE causes the next word to be checked for\n" -" alias substitution when the alias is expanded. Alias returns\n" -" true unless a NAME is given for which no alias has been defined." +" alias substitution when the alias is expanded.\n" +" \n" +" Options:\n" +" -p\tPrint all defined aliases in a reusable format\n" +" \n" +" Exit Status:\n" +" alias returns true unless a NAME is supplied for which no alias has " +"been\n" +" defined." msgstr "" -#: builtins.c:257 +#: builtins.c:272 msgid "" -" Remove NAMEs from the list of defined aliases. If the -a option is given,\n" -" then remove all alias definitions." +"Remove each NAME from the list of defined aliases.\n" +" \n" +" Options:\n" +" -a\tremove all alias definitions.\n" +" \n" +" Return success unless a NAME is not an existing alias." msgstr "" -#: builtins.c:266 +#: builtins.c:285 msgid "" -" Bind a key sequence to a Readline function or a macro, or set\n" -" a Readline variable. The non-option argument syntax is equivalent\n" -" to that found in ~/.inputrc, but must be passed as a single argument:\n" -" bind '\"\\C-x\\C-r\": re-read-init-file'.\n" -" bind accepts the following options:\n" -" -m keymap Use `keymap' as the keymap for the duration of " -"this\n" +"Set Readline key bindings and variables.\n" +" \n" +" Bind a key sequence to a Readline function or a macro, or set a\n" +" Readline variable. The non-option argument syntax is equivalent to\n" +" that found in ~/.inputrc, but must be passed as a single argument:\n" +" e.g., bind '\"\\C-x\\C-r\": re-read-init-file'.\n" +" \n" +" Options:\n" +" -m keymap Use KEYMAP as the keymap for the duration of this\n" " command. Acceptable keymap names are emacs,\n" -" emacs-standard, emacs-meta, emacs-ctlx, vi, vi-" -"move,\n" -" vi-command, and vi-insert.\n" -" -l List names of functions.\n" -" -P List function names and bindings.\n" -" -p List functions and bindings in a form that can be\n" -" reused as input.\n" -" -r keyseq Remove the binding for KEYSEQ.\n" -" -x keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n" -" \t\t\t\tKEYSEQ is entered.\n" -" -f filename Read key bindings from FILENAME.\n" -" -q function-name Query about which keys invoke the named function.\n" -" -u function-name Unbind all keys which are bound to the named " -"function.\n" -" -V List variable names and values\n" -" -v List variable names and values in a form that can\n" -" be reused as input.\n" +" emacs-standard, emacs-meta, emacs-ctlx, vi, vi-" +"move,\n" +" vi-command, and vi-insert.\n" +" -l List names of functions.\n" +" -P List function names and bindings.\n" +" -p List functions and bindings in a form that can be\n" +" reused as input.\n" " -S List key sequences that invoke macros and their " "values\n" " -s List key sequences that invoke macros and their " "values\n" -" in a form that can be reused as input." +" in a form that can be reused as input.\n" +" -V List variable names and values\n" +" -v List variable names and values in a form that can\n" +" be reused as input.\n" +" -q function-name Query about which keys invoke the named function.\n" +" -u function-name Unbind all keys which are bound to the named " +"function.\n" +" -r keyseq Remove the binding for KEYSEQ.\n" +" -f filename Read key bindings from FILENAME.\n" +" -x keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n" +" \t\t\t\tKEYSEQ is entered.\n" +" \n" +" Exit Status:\n" +" bind returns 0 unless an unrecognized option is given or an error occurs." msgstr "" -#: builtins.c:297 +#: builtins.c:322 msgid "" -" Exit from within a FOR, WHILE or UNTIL loop. If N is specified,\n" -" break N levels." +"Exit for, while, or until loops.\n" +" \n" +" Exit a FOR, WHILE or UNTIL loop. If N is specified, break N enclosing\n" +" loops.\n" +" \n" +" Exit Status:\n" +" The exit status is 0 unless N is not greater than or equal to 1." msgstr "" -#: builtins.c:304 +#: builtins.c:334 msgid "" -" Resume the next iteration of the enclosing FOR, WHILE or UNTIL loop.\n" -" If N is specified, resume at the N-th enclosing loop." +"Resume for, while, or until loops.\n" +" \n" +" Resumes the next iteration of the enclosing FOR, WHILE or UNTIL loop.\n" +" If N is specified, resumes the Nth enclosing loop.\n" +" \n" +" Exit Status:\n" +" The exit status is 0 unless N is not greater than or equal to 1." msgstr "" -#: builtins.c:311 +#: builtins.c:346 msgid "" -" Run a shell builtin. This is useful when you wish to rename a\n" -" shell builtin to be a function, but need the functionality of the\n" -" builtin within the function itself." +"Execute shell builtins.\n" +" \n" +" Execute SHELL-BUILTIN with arguments ARGs without performing command\n" +" lookup. This is useful when you wish to reimplement a shell builtin\n" +" as a shell function, but need to execute the builtin within the " +"function.\n" +" \n" +" Exit Status:\n" +" Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is\n" +" not a shell builtin.." msgstr "" -#: builtins.c:320 +#: builtins.c:361 msgid "" -" Returns the context of the current subroutine call.\n" +"Return the context of the current subroutine call.\n" " \n" -" Without EXPR, returns returns \"$line $filename\". With EXPR,\n" -" returns \"$line $subroutine $filename\"; this extra information\n" -" can be used used to provide a stack trace.\n" +" Without EXPR, returns \"$line $filename\". With EXPR, returns\n" +" \"$line $subroutine $filename\"; this extra information can be used to\n" +" provide a stack trace.\n" " \n" " The value of EXPR indicates how many call frames to go back before the\n" -" current one; the top frame is frame 0." +" current one; the top frame is frame 0.\n" +" \n" +" Exit Status:\n" +" Returns 0 unless the shell is not executing a shell function or EXPR\n" +" is invalid." msgstr "" -#: builtins.c:334 +#: builtins.c:379 msgid "" -" Change the current directory to DIR. The variable $HOME is the\n" -" default DIR. The variable CDPATH defines the search path for\n" -" the directory containing DIR. Alternative directory names in CDPATH\n" -" are separated by a colon (:). A null directory name is the same as\n" -" the current directory, i.e. `.'. If DIR begins with a slash (/),\n" -" then CDPATH is not used. If the directory is not found, and the\n" -" shell option `cdable_vars' is set, then try the word as a variable\n" -" name. If that variable has a value, then cd to the value of that\n" -" variable. The -P option says to use the physical directory structure\n" -" instead of following symbolic links; the -L option forces symbolic " -"links\n" -" to be followed." +"Change the shell working directory.\n" +" \n" +" Change the current directory to DIR. The default DIR is the value of " +"the\n" +" HOME shell variable.\n" +" \n" +" The variable CDPATH defines the search path for the directory " +"containing\n" +" DIR. Alternative directory names in CDPATH are separated by a colon " +"(:).\n" +" A null directory name is the same as the current directory. If DIR " +"begins\n" +" with a slash (/), then CDPATH is not used.\n" +" \n" +" If the directory is not found, and the shell option `cdable_vars' is " +"set,\n" +" the word is assumed to be a variable name. If that variable has a " +"value,\n" +" its value is used for DIR.\n" +" \n" +" Options:\n" +" -L\tforce symbolic links to be followed\n" +" -P\tuse the physical directory structure without following symbolic\n" +" \tlinks\n" +" \n" +" The default is to follow symbolic links, as if `-L' were specified.\n" +" \n" +" Exit Status:\n" +" Returns 0 if the directory is changed; non-zero otherwise." msgstr "" -#: builtins.c:350 +#: builtins.c:407 msgid "" -" Print the current working directory. With the -P option, pwd prints\n" -" the physical directory, without any symbolic links; the -L option\n" -" makes pwd follow symbolic links." +"Print the name of the current working directory.\n" +" \n" +" Options:\n" +" -L\tprint the value of $PWD if it names the current working\n" +" \tdirectory\n" +" -P\tprint the physical directory, without any symbolic links\n" +" \n" +" By default, `pwd' behaves as if `-L' were specified.\n" +" \n" +" Exit Status:\n" +" Returns 0 unless an invalid option is given or the current directory\n" +" cannot be read." msgstr "" -#: builtins.c:358 -msgid " No effect; the command does nothing. A zero exit code is returned." +#: builtins.c:424 +msgid "" +"Null command.\n" +" \n" +" No effect; the command does nothing.\n" +" \n" +" Exit Status:\n" +" Always succeeds." msgstr "" -#: builtins.c:364 -msgid " Return a successful result." +#: builtins.c:435 +msgid "" +"Return a successful result.\n" +" \n" +" Exit Status:\n" +" Always succeeds." msgstr "" -#: builtins.c:370 -msgid " Return an unsuccessful result." +#: builtins.c:444 +msgid "" +"Return an unsuccessful result.\n" +" \n" +" Exit Status:\n" +" Always fails." msgstr "" -#: builtins.c:376 +#: builtins.c:453 msgid "" -" Runs COMMAND with ARGS ignoring shell functions. If you have a shell\n" -" function called `ls', and you wish to call the command `ls', you can\n" -" say \"command ls\". If the -p option is given, a default value is used\n" -" for PATH that is guaranteed to find all of the standard utilities. If\n" -" the -V or -v option is given, a string is printed describing COMMAND.\n" -" The -V option produces a more verbose description." +"Execute a simple command or display information about commands.\n" +" \n" +" Runs COMMAND with ARGS suppressing shell function lookup, or display\n" +" information about the specified COMMANDs. Can be used to invoke " +"commands\n" +" on disk when a function with the same name exists.\n" +" \n" +" Options:\n" +" -p\tuse a default value for PATH that is guaranteed to find all of\n" +" \tthe standard utilities\n" +" -v\tprint a description of COMMAND similar to the `type' builtin\n" +" -V\tprint a more verbose description of each COMMAND\n" +" \n" +" Exit Status:\n" +" Returns exit status of COMMAND, or failure if COMMAND is not found." msgstr "" -#: builtins.c:387 +#: builtins.c:472 msgid "" -" Declare variables and/or give them attributes. If no NAMEs are\n" -" given, then display the values of variables instead. The -p option\n" -" will display the attributes and values of each NAME.\n" +"Set variable values and attributes.\n" " \n" -" The flags are:\n" +" Declare variables and give them attributes. If no NAMEs are given,\n" +" display the attributes and values of all variables.\n" " \n" -" -a\tto make NAMEs arrays (if supported)\n" -" -f\tto select from among function names only\n" -" -F\tto display function names (and line number and source file name " -"if\n" -" \tdebugging) without definitions\n" +" Options:\n" +" -f\trestrict action or display to function names and definitions\n" +" -F\trestrict display to function names only (plus line number and\n" +" \tsource file when debugging)\n" +" -p\tdisplay the attributes and value of each NAME\n" +" \n" +" Options which set attributes:\n" +" -a\tto make NAMEs indexed arrays (if supported)\n" +" -A\tto make NAMEs associative arrays (if supported)\n" " -i\tto make NAMEs have the `integer' attribute\n" +" -l\tto convert NAMEs to lower case on assignment\n" " -r\tto make NAMEs readonly\n" " -t\tto make NAMEs have the `trace' attribute\n" +" -u\tto convert NAMEs to upper case on assignment\n" " -x\tto make NAMEs export\n" " \n" +" Using `+' instead of `-' turns off the given attribute.\n" +" \n" " Variables with the integer attribute have arithmetic evaluation (see\n" -" `let') done when the variable is assigned to.\n" +" the `let' command) performed when the variable is assigned a value.\n" " \n" -" When displaying values of variables, -f displays a function's name\n" -" and definition. The -F option restricts the display to function\n" -" name only.\n" +" When used in a function, `declare' makes NAMEs local, as with the " +"`local'\n" +" command.\n" " \n" -" Using `+' instead of `-' turns off the given attribute instead. When\n" -" used in a function, makes NAMEs local, as with the `local' command." +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." msgstr "" -#: builtins.c:416 -msgid " Obsolete. See `declare'." +#: builtins.c:508 +msgid "" +"Set variable values and attributes.\n" +" \n" +" Obsolete. See `help declare'." msgstr "" -#: builtins.c:422 +#: builtins.c:516 msgid "" -" Create a local variable called NAME, and give it VALUE. LOCAL\n" -" can only be used within a function; it makes the variable NAME\n" -" have a visible scope restricted to that function and its children." +"Define local variables.\n" +" \n" +" Create a local variable called NAME, and give it VALUE. OPTION can\n" +" be any option accepted by `declare'.\n" +" \n" +" Local variables can only be used within a function; they are visible\n" +" only to the function where they are defined and its children.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied, an error occurs,\n" +" or the shell is not executing a function." msgstr "" -#: builtins.c:431 +#: builtins.c:533 msgid "" -" Output the ARGs. If -n is specified, the trailing newline is\n" -" suppressed. If the -e option is given, interpretation of the\n" -" following backslash-escaped characters is turned on:\n" -" \t\\a\talert (bell)\n" -" \t\\b\tbackspace\n" -" \t\\c\tsuppress trailing newline\n" -" \t\\E\tescape character\n" -" \t\\f\tform feed\n" -" \t\\n\tnew line\n" -" \t\\r\tcarriage return\n" -" \t\\t\thorizontal tab\n" -" \t\\v\tvertical tab\n" -" \t\\\\\tbackslash\n" -" \t\\num\tthe character whose ASCII code is NUM (octal).\n" +"Write arguments to the standard output.\n" +" \n" +" Display the ARGs on the standard output followed by a newline.\n" +" \n" +" Options:\n" +" -n\tdo not append a newline\n" +" -e\tenable interpretation of the following backslash escapes\n" +" -E\texplicitly suppress interpretation of backslash escapes\n" +" \n" +" `echo' interprets the following backslash-escaped characters:\n" +" \\a\talert (bell)\n" +" \\b\tbackspace\n" +" \\c\tsuppress further output\n" +" \\e\tescape character\n" +" \\f\tform feed\n" +" \\n\tnew line\n" +" \\r\tcarriage return\n" +" \\t\thorizontal tab\n" +" \\v\tvertical tab\n" +" \\\\\tbackslash\n" +" \\0nnn\tthe character whose ASCII code is NNN (octal). NNN can be\n" +" \t0 to 3 octal digits\n" +" \\xHH\tthe eight-bit character whose value is HH (hexadecimal). HH\n" +" \tcan be one or two hex digits\n" " \n" -" You can explicitly turn off the interpretation of the above characters\n" -" with the -E option." +" Exit Status:\n" +" Returns success unless a write error occurs." msgstr "" -#: builtins.c:455 +#: builtins.c:567 msgid "" -" Output the ARGs. If -n is specified, the trailing newline is suppressed." +"Write arguments to the standard output.\n" +" \n" +" Display the ARGs on the standard output followed by a newline.\n" +" \n" +" Options:\n" +" -n\tdo not append a newline\n" +" \n" +" Exit Status:\n" +" Returns success unless a write error occurs." msgstr "" -#: builtins.c:462 +#: builtins.c:582 msgid "" -" Enable and disable builtin shell commands. This allows\n" -" you to use a disk command which has the same name as a shell\n" -" builtin without specifying a full pathname. If -n is used, the\n" -" NAMEs become disabled; otherwise NAMEs are enabled. For example,\n" -" to use the `test' found in $PATH instead of the shell builtin\n" -" version, type `enable -n test'. On systems supporting dynamic\n" -" loading, the -f option may be used to load new builtins from the\n" -" shared object FILENAME. The -d option will delete a builtin\n" -" previously loaded with -f. If no non-option names are given, or\n" -" the -p option is supplied, a list of builtins is printed. The\n" -" -a option means to print every builtin with an indication of whether\n" -" or not it is enabled. The -s option restricts the output to the " -"POSIX.2\n" -" `special' builtins. The -n option displays a list of all disabled " -"builtins." +"Enable and disable shell builtins.\n" +" \n" +" Enables and disables builtin shell commands. Disabling allows you to\n" +" execute a disk command which has the same name as a shell builtin\n" +" without using a full pathname.\n" +" \n" +" Options:\n" +" -a\tprint a list of builtins showing whether or not each is enabled\n" +" -n\tdisable each NAME or display a list of disabled builtins\n" +" -p\tprint the list of builtins in a reusable format\n" +" -s\tprint only the names of Posix `special' builtins\n" +" \n" +" Options controlling dynamic loading:\n" +" -f\tLoad builtin NAME from shared object FILENAME\n" +" -d\tRemove a builtin loaded with -f\n" +" \n" +" Without options, each NAME is enabled.\n" +" \n" +" To use the `test' found in $PATH instead of the shell builtin\n" +" version, type `enable -n test'.\n" +" \n" +" Exit Status:\n" +" Returns success unless NAME is not a shell builtin or an error occurs." msgstr "" -#: builtins.c:480 -msgid " Read ARGs as input to the shell and execute the resulting command(s)." +#: builtins.c:610 +msgid "" +"Execute arguments as a shell command.\n" +" \n" +" Combine ARGs into a single string, use the result as input to the " +"shell,\n" +" and execute the resulting commands.\n" +" \n" +" Exit Status:\n" +" Returns exit status of command or success if command is null." msgstr "" -#: builtins.c:486 +#: builtins.c:622 msgid "" -" Getopts is used by shell procedures to parse positional parameters.\n" +"Parse option arguments.\n" +" \n" +" Getopts is used by shell procedures to parse positional parameters\n" +" as options.\n" " \n" " OPTSTRING contains the option letters to be recognized; if a letter\n" " is followed by a colon, the option is expected to have an argument,\n" @@ -1721,161 +2508,262 @@ msgid "" " OPTSTRING is not a colon. OPTERR has the value 1 by default.\n" " \n" " Getopts normally parses the positional parameters ($0 - $9), but if\n" -" more arguments are given, they are parsed instead." +" more arguments are given, they are parsed instead.\n" +" \n" +" Exit Status:\n" +" Returns success if an option is found; fails if the end of options is\n" +" encountered or an error occurs." msgstr "" -#: builtins.c:521 +#: builtins.c:664 msgid "" -" Exec FILE, replacing this shell with the specified program.\n" -" If FILE is not specified, the redirections take effect in this\n" -" shell. If the first argument is `-l', then place a dash in the\n" -" zeroth arg passed to FILE, as login does. If the `-c' option\n" -" is supplied, FILE is executed with a null environment. The `-a'\n" -" option means to make set argv[0] of the executed process to NAME.\n" -" If the file cannot be executed and the shell is not interactive,\n" -" then the shell exits, unless the shell option `execfail' is set." +"Replace the shell with the given command.\n" +" \n" +" Execute COMMAND, replacing this shell with the specified program.\n" +" ARGUMENTS become the arguments to COMMAND. If COMMAND is not " +"specified,\n" +" any redirections take effect in the current shell.\n" +" \n" +" Options:\n" +" -a name\tpass NAME as the zeroth argument to COMMAND\n" +" -c\t\texecute COMMAND with an empty environment\n" +" -l\t\tplace a dash in the zeroth argument to COMMAND\n" +" \n" +" If the command cannot be executed, a non-interactive shell exits, " +"unless\n" +" the shell option `execfail' is set.\n" +" \n" +" Exit Status:\n" +" Returns success unless COMMAND is not found or a redirection error " +"occurs." msgstr "" -#: builtins.c:534 +#: builtins.c:685 msgid "" -" Exit the shell with a status of N. If N is omitted, the exit status\n" +"Exit the shell.\n" +" \n" +" Exits the shell with a status of N. If N is omitted, the exit status\n" " is that of the last command executed." msgstr "" -#: builtins.c:541 -msgid " Logout of a login shell." +#: builtins.c:694 +msgid "" +"Exit a login shell.\n" +" \n" +" Exits a login shell with exit status N. Returns an error if not " +"executed\n" +" in a login shell." msgstr "" -#: builtins.c:548 +#: builtins.c:704 msgid "" -" fc is used to list or edit and re-execute commands from the history list.\n" +"Display or execute commands from the history list.\n" +" \n" +" fc is used to list or edit and re-execute commands from the history " +"list.\n" " FIRST and LAST can be numbers specifying the range, or FIRST can be a\n" " string, which means the most recent command beginning with that\n" " string.\n" " \n" -" -e ENAME selects which editor to use. Default is FCEDIT, then " +" Options:\n" +" -e ENAME\tselect which editor to use. Default is FCEDIT, then " "EDITOR,\n" -" then vi.\n" -" \n" -" -l means list lines instead of editing.\n" -" -n means no line numbers listed.\n" -" -r means reverse the order of the lines (making it newest listed " -"first).\n" +" \t\tthen vi\n" +" -l \tlist lines instead of editing\n" +" -n\tomit line numbers when listing\n" +" -r\treverse the order of the lines (newest listed first)\n" " \n" -" With the `fc -s [pat=rep ...] [command]' format, the command is\n" +" With the `fc -s [pat=rep ...] [command]' format, COMMAND is\n" " re-executed after the substitution OLD=NEW is performed.\n" " \n" " A useful alias to use with this is r='fc -s', so that typing `r cc'\n" " runs the last command beginning with `cc' and typing `r' re-executes\n" -" the last command." +" the last command.\n" +" \n" +" Exit Status:\n" +" Returns success or status of executed command; non-zero if an error " +"occurs." msgstr "" -#: builtins.c:573 +#: builtins.c:734 msgid "" -" Place JOB_SPEC in the foreground, and make it the current job. If\n" -" JOB_SPEC is not present, the shell's notion of the current job is\n" -" used." +"Move job to the foreground.\n" +" \n" +" Place the job identified by JOB_SPEC in the foreground, making it the\n" +" current job. If JOB_SPEC is not present, the shell's notion of the\n" +" current job is used.\n" +" \n" +" Exit Status:\n" +" Status of command placed in foreground, or failure if an error occurs." msgstr "" -#: builtins.c:583 +#: builtins.c:749 msgid "" -" Place each JOB_SPEC in the background, as if it had been started with\n" -" `&'. If JOB_SPEC is not present, the shell's notion of the current\n" -" job is used." +"Move jobs to the background.\n" +" \n" +" Place the jobs identified by each JOB_SPEC in the background, as if " +"they\n" +" had been started with `&'. If JOB_SPEC is not present, the shell's " +"notion\n" +" of the current job is used.\n" +" \n" +" Exit Status:\n" +" Returns success unless job control is not enabled or an error occurs." msgstr "" -#: builtins.c:592 +#: builtins.c:763 msgid "" -" For each NAME, the full pathname of the command is determined and\n" -" remembered. If the -p option is supplied, PATHNAME is used as the\n" -" full pathname of NAME, and no path search is performed. The -r\n" -" option causes the shell to forget all remembered locations. The -d\n" -" option causes the shell to forget the remembered location of each NAME.\n" -" If the -t option is supplied the full pathname to which each NAME\n" -" corresponds is printed. If multiple NAME arguments are supplied with\n" -" -t, the NAME is printed before the hashed full pathname. The -l option\n" -" causes output to be displayed in a format that may be reused as input.\n" -" If no arguments are given, information about remembered commands is " -"displayed." +"Remember or display program locations.\n" +" \n" +" Determine and remember the full pathname of each command NAME. If\n" +" no arguments are given, information about remembered commands is " +"displayed.\n" +" \n" +" Options:\n" +" -d\t\tforget the remembered location of each NAME\n" +" -l\t\tdisplay in a format that may be reused as input\n" +" -p pathname\tuse PATHNAME is the full pathname of NAME\n" +" -r\t\tforget all remembered locations\n" +" -t\t\tprint the remembered location of each NAME, preceding\n" +" \t\teach location with the corresponding NAME if multiple\n" +" \t\tNAMEs are given\n" +" Arguments:\n" +" NAME\t\tEach NAME is searched for in $PATH and added to the list\n" +" \t\tof remembered commands.\n" +" \n" +" Exit Status:\n" +" Returns success unless NAME is not found or an invalid option is given." msgstr "" -#: builtins.c:608 +#: builtins.c:788 msgid "" -" Display helpful information about builtin commands. If PATTERN is\n" +"Display information about builtin commands.\n" +" \n" +" Displays brief summaries of builtin commands. If PATTERN is\n" " specified, gives detailed help on all commands matching PATTERN,\n" -" otherwise a list of the builtins is printed. The -s option\n" -" restricts the output for each builtin command matching PATTERN to\n" -" a short usage synopsis." +" otherwise the list of help topics is printed.\n" +" \n" +" Options:\n" +" -d\toutput short description for each topic\n" +" -m\tdisplay usage in pseudo-manpage format\n" +" -s\toutput only a short usage synopsis for each topic matching\n" +" \tPATTERN\n" +" \n" +" Arguments:\n" +" PATTERN\tPattern specifiying a help topic\n" +" \n" +" Exit Status:\n" +" Returns success unless PATTERN is not found or an invalid option is " +"given." msgstr "" -#: builtins.c:620 +#: builtins.c:812 msgid "" -" Display the history list with line numbers. Lines listed with\n" -" with a `*' have been modified. Argument of N says to list only\n" -" the last N lines. The `-c' option causes the history list to be\n" -" cleared by deleting all of the entries. The `-d' option deletes\n" -" the history entry at offset OFFSET. The `-w' option writes out the\n" -" current history to the history file; `-r' means to read the file and\n" -" append the contents to the history list instead. `-a' means\n" -" to append history lines from this session to the history file.\n" -" Argument `-n' means to read all history lines not already read\n" -" from the history file and append them to the history list.\n" +"Display or manipulate the history list.\n" +" \n" +" Display the history list with line numbers, prefixing each modified\n" +" entry with a `*'. An argument of N lists only the last N entries.\n" +" \n" +" Options:\n" +" -c\tclear the history list by deleting all of the entries\n" +" -d offset\tdelete the history entry at offset OFFSET.\n" +" \n" +" -a\tappend history lines from this session to the history file\n" +" -n\tread all history lines not already read from the history file\n" +" -r\tread the history file and append the contents to the history\n" +" \tlist\n" +" -w\twrite the current history to the history file\n" +" \tand append them to the history list\n" " \n" -" If FILENAME is given, then that is used as the history file else\n" +" -p\tperform history expansion on each ARG and display the result\n" +" \twithout storing it in the history list\n" +" -s\tappend the ARGs to the history list as a single entry\n" +" \n" +" If FILENAME is given, it is used as the history file. Otherwise,\n" " if $HISTFILE has a value, that is used, else ~/.bash_history.\n" -" If the -s option is supplied, the non-option ARGs are appended to\n" -" the history list as a single entry. The -p option means to perform\n" -" history expansion on each ARG and display the result, without storing\n" -" anything in the history list.\n" " \n" " If the $HISTTIMEFORMAT variable is set and not null, its value is used\n" " as a format string for strftime(3) to print the time stamp associated\n" -" with each displayed history entry. No time stamps are printed otherwise." +" with each displayed history entry. No time stamps are printed " +"otherwise.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or an error occurs." msgstr "" -#: builtins.c:648 +#: builtins.c:848 msgid "" -" Lists the active jobs. The -l option lists process id's in addition\n" -" to the normal information; the -p option lists process id's only.\n" -" If -n is given, only processes that have changed status since the last\n" -" notification are printed. JOBSPEC restricts output to that job. The\n" -" -r and -s options restrict output to running and stopped jobs only,\n" -" respectively. Without options, the status of all active jobs is\n" -" printed. If -x is given, COMMAND is run after all job specifications\n" -" that appear in ARGS have been replaced with the process ID of that " -"job's\n" -" process group leader." +"Display status of jobs.\n" +" \n" +" Lists the active jobs. JOBSPEC restricts output to that job.\n" +" Without options, the status of all active jobs is displayed.\n" +" \n" +" Options:\n" +" -l\tlists process IDs in addition to the normal information\n" +" -n\tlist only processes that have changed status since the last\n" +" \tnotification\n" +" -p\tlists process IDs only\n" +" -r\trestrict output to running jobs\n" +" -s\trestrict output to stopped jobs\n" +" \n" +" If -x is supplied, COMMAND is run after all job specifications that\n" +" appear in ARGS have been replaced with the process ID of that job's\n" +" process group leader.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or an error occurs.\n" +" If -x is used, returns the exit status of COMMAND." msgstr "" -#: builtins.c:664 +#: builtins.c:875 msgid "" -" By default, removes each JOBSPEC argument from the table of active jobs.\n" -" If the -h option is given, the job is not removed from the table, but " -"is\n" -" marked so that SIGHUP is not sent to the job if the shell receives a\n" -" SIGHUP. The -a option, when JOBSPEC is not supplied, means to remove " -"all\n" -" jobs from the job table; the -r option means to remove only running jobs." +"Remove jobs from current shell.\n" +" \n" +" Removes each JOBSPEC argument from the table of active jobs. Without\n" +" any JOBSPECs, the shell uses its notion of the current job.\n" +" \n" +" Options:\n" +" -a\tremove all jobs if JOBSPEC is not supplied\n" +" -h\tmark each JOBSPEC so that SIGHUP is not sent to the job if the\n" +" \tshell receives a SIGHUP\n" +" -r\tremove only running jobs\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option or JOBSPEC is given." msgstr "" -#: builtins.c:675 +#: builtins.c:894 msgid "" -" Send the processes named by PID (or JOBSPEC) the signal SIGSPEC. If\n" -" SIGSPEC is not present, then SIGTERM is assumed. An argument of `-l'\n" -" lists the signal names; if arguments follow `-l' they are assumed to\n" -" be signal numbers for which names should be listed. Kill is a shell\n" -" builtin for two reasons: it allows job IDs to be used instead of\n" -" process IDs, and, if you have reached the limit on processes that\n" -" you can create, you don't have to start a process to kill another one." +"Send a signal to a job.\n" +" \n" +" Send the processes identified by PID or JOBSPEC the signal named by\n" +" SIGSPEC or SIGNUM. If neither SIGSPEC nor SIGNUM is present, then\n" +" SIGTERM is assumed.\n" +" \n" +" Options:\n" +" -s sig\tSIG is a signal name\n" +" -n sig\tSIG is a signal number\n" +" -l\tlist the signal names; if arguments follow `-l' they are\n" +" \tassumed to be signal numbers for which names should be listed\n" +" \n" +" Kill is a shell builtin for two reasons: it allows job IDs to be used\n" +" instead of process IDs, and allows processes to be killed if the limit\n" +" on processes that you can create is reached.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or an error occurs." msgstr "" -#: builtins.c:687 +#: builtins.c:917 msgid "" -" Each ARG is an arithmetic expression to be evaluated. Evaluation\n" -" is done in fixed-width integers with no check for overflow, though\n" -" division by 0 is trapped and flagged as an error. The following\n" -" list of operators is grouped into levels of equal-precedence operators.\n" -" The levels are listed in order of decreasing precedence.\n" +"Evaluate arithmetic expressions.\n" +" \n" +" Evaluate each ARG as an arithmetic expression. Evaluation is done in\n" +" fixed-width integers with no check for overflow, though division by 0\n" +" is trapped and flagged as an error. The following list of operators is\n" +" grouped into levels of equal-precedence operators. The levels are " +"listed\n" +" in order of decreasing precedence.\n" " \n" " \tid++, id--\tvariable post-increment, post-decrement\n" " \t++id, --id\tvariable pre-increment, pre-decrement\n" @@ -1907,215 +2795,278 @@ msgid "" " parentheses are evaluated first and may override the precedence\n" " rules above.\n" " \n" -" If the last ARG evaluates to 0, let returns 1; 0 is returned\n" -" otherwise." +" Exit Status:\n" +" If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise.." msgstr "" -#: builtins.c:730 +#: builtins.c:962 msgid "" -" One line is read from the standard input, or from file descriptor FD if " -"the\n" -" -u option is supplied, and the first word is assigned to the first " -"NAME,\n" -" the second word to the second NAME, and so on, with leftover words " -"assigned\n" -" to the last NAME. Only the characters found in $IFS are recognized as " +"Read a line from the standard input and split it into fields.\n" +" \n" +" Reads a single line from the standard input, or from file descriptor FD\n" +" if the -u option is supplied. The line is split into fields as with " "word\n" -" delimiters. If no NAMEs are supplied, the line read is stored in the " -"REPLY\n" -" variable. If the -r option is given, this signifies `raw' input, and\n" -" backslash escaping is disabled. The -d option causes read to continue\n" -" until the first character of DELIM is read, rather than newline. If the " -"-p\n" -" option is supplied, the string PROMPT is output without a trailing " -"newline\n" -" before attempting to read. If -a is supplied, the words read are " -"assigned\n" -" to sequential indices of ARRAY, starting at zero. If -e is supplied " -"and\n" -" the shell is interactive, readline is used to obtain the line. If -n " +" splitting, and the first word is assigned to the first NAME, the second\n" +" word to the second NAME, and so on, with any leftover words assigned to\n" +" the last NAME. Only the characters found in $IFS are recognized as " +"word\n" +" delimiters.\n" +" \n" +" If no NAMEs are supplied, the line read is stored in the REPLY " +"variable.\n" +" \n" +" Options:\n" +" -a array\tassign the words read to sequential indices of the array\n" +" \t\tvariable ARRAY, starting at zero\n" +" -d delim\tcontinue until the first character of DELIM is read, rather\n" +" \t\tthan newline\n" +" -e\t\tuse Readline to obtain the line in an interactive shell\n" +" -i text\tUse TEXT as the initial text for Readline\n" +" -n nchars\treturn after reading NCHARS characters rather than waiting\n" +" \t\tfor a newline\n" +" -p prompt\toutput the string PROMPT without a trailing newline before\n" +" \t\tattempting to read\n" +" -r\t\tdo not allow backslashes to escape any characters\n" +" -s\t\tdo not echo input coming from a terminal\n" +" -t timeout\ttime out and return failure if a complete line of input " "is\n" -" supplied with a non-zero NCHARS argument, read returns after NCHARS\n" -" characters have been read. The -s option causes input coming from a\n" -" terminal to not be echoed.\n" +" \t\tnot read withint TIMEOUT seconds. The value of the TMOUT\n" +" \t\tvariable is the default timeout. TIMEOUT may be a\n" +" \t\tfractional number. If TIMEOUT is 0, read returns success only\n" +" \t\tif input is available on the specified file descriptor. The\n" +" \t\texit status is greater than 128 if the timeout is exceeded\n" +" -u fd\t\tread from file descriptor FD instead of the standard input\n" " \n" -" The -t option causes read to time out and return failure if a complete " -"line\n" -" of input is not read within TIMEOUT seconds. If the TMOUT variable is " -"set,\n" -" its value is the default timeout. The return code is zero, unless end-" -"of-file\n" -" is encountered, read times out, or an invalid file descriptor is " -"supplied as\n" -" the argument to -u." +" Exit Status:\n" +" The return code is zero, unless end-of-file is encountered, read times " +"out,\n" +" or an invalid file descriptor is supplied as the argument to -u." msgstr "" -#: builtins.c:756 +#: builtins.c:1002 msgid "" -" Causes a function to exit with the return value specified by N. If N\n" -" is omitted, the return status is that of the last command." +"Return from a shell function.\n" +" \n" +" Causes a function or sourced script to exit with the return value\n" +" specified by N. If N is omitted, the return status is that of the\n" +" last command executed within the function or script.\n" +" \n" +" Exit Status:\n" +" Returns N, or failure if the shell is not executing a function or script." msgstr "" -#: builtins.c:763 +#: builtins.c:1015 msgid "" -" -a Mark variables which are modified or created for export.\n" -" -b Notify of job termination immediately.\n" -" -e Exit immediately if a command exits with a non-zero status.\n" -" -f Disable file name generation (globbing).\n" -" -h Remember the location of commands as they are looked up.\n" -" -k All assignment arguments are placed in the environment for a\n" -" command, not just those that precede the command name.\n" -" -m Job control is enabled.\n" -" -n Read commands but do not execute them.\n" -" -o option-name\n" -" Set the variable corresponding to option-name:\n" -" allexport same as -a\n" -" braceexpand same as -B\n" -" emacs use an emacs-style line editing interface\n" -" errexit same as -e\n" -" errtrace same as -E\n" -" functrace same as -T\n" -" hashall same as -h\n" -" histexpand same as -H\n" -" history enable command history\n" -" ignoreeof the shell will not exit upon reading EOF\n" -" interactive-comments\n" -" allow comments to appear in interactive " -"commands\n" -" keyword same as -k\n" -" monitor same as -m\n" -" noclobber same as -C\n" -" noexec same as -n\n" -" noglob same as -f\n" -" nolog currently accepted but ignored\n" -" notify same as -b\n" -" nounset same as -u\n" -" onecmd same as -t\n" -" physical same as -P\n" -" pipefail the return value of a pipeline is the status " -"of\n" -" the last command to exit with a non-zero " -"status,\n" -" or zero if no command exited with a non-zero " +"Set or unset values of shell options and positional parameters.\n" +" \n" +" Change the value of shell attributes and positional parameters, or\n" +" display the names and values of shell variables.\n" +" \n" +" Options:\n" +" -a Mark variables which are modified or created for export.\n" +" -b Notify of job termination immediately.\n" +" -e Exit immediately if a command exits with a non-zero status.\n" +" -f Disable file name generation (globbing).\n" +" -h Remember the location of commands as they are looked up.\n" +" -k All assignment arguments are placed in the environment for a\n" +" command, not just those that precede the command name.\n" +" -m Job control is enabled.\n" +" -n Read commands but do not execute them.\n" +" -o option-name\n" +" Set the variable corresponding to option-name:\n" +" allexport same as -a\n" +" braceexpand same as -B\n" +" emacs use an emacs-style line editing interface\n" +" errexit same as -e\n" +" errtrace same as -E\n" +" functrace same as -T\n" +" hashall same as -h\n" +" histexpand same as -H\n" +" history enable command history\n" +" ignoreeof the shell will not exit upon reading EOF\n" +" interactive-comments\n" +" allow comments to appear in interactive commands\n" +" keyword same as -k\n" +" monitor same as -m\n" +" noclobber same as -C\n" +" noexec same as -n\n" +" noglob same as -f\n" +" nolog currently accepted but ignored\n" +" notify same as -b\n" +" nounset same as -u\n" +" onecmd same as -t\n" +" physical same as -P\n" +" pipefail the return value of a pipeline is the status of\n" +" the last command to exit with a non-zero status,\n" +" or zero if no command exited with a non-zero " "status\n" -" posix change the behavior of bash where the default\n" -" operation differs from the 1003.2 standard to\n" -" match the standard\n" -" privileged same as -p\n" -" verbose same as -v\n" -" vi use a vi-style line editing interface\n" -" xtrace same as -x\n" -" -p Turned on whenever the real and effective user ids do not " -"match.\n" -" Disables processing of the $ENV file and importing of shell\n" -" functions. Turning this option off causes the effective uid " -"and\n" -" gid to be set to the real uid and gid.\n" -" -t Exit after reading and executing one command.\n" -" -u Treat unset variables as an error when substituting.\n" -" -v Print shell input lines as they are read.\n" -" -x Print commands and their arguments as they are executed.\n" -" -B the shell will perform brace expansion\n" -" -C If set, disallow existing regular files to be overwritten\n" -" by redirection of output.\n" -" -E If set, the ERR trap is inherited by shell functions.\n" -" -H Enable ! style history substitution. This flag is on\n" -" by default when the shell is interactive.\n" -" -P If set, do not follow symbolic links when executing commands\n" -" such as cd which change the current directory.\n" -" -T If set, the DEBUG trap is inherited by shell functions.\n" -" - Assign any remaining arguments to the positional parameters.\n" -" The -x and -v options are turned off.\n" +" posix change the behavior of bash where the default\n" +" operation differs from the Posix standard to\n" +" match the standard\n" +" privileged same as -p\n" +" verbose same as -v\n" +" vi use a vi-style line editing interface\n" +" xtrace same as -x\n" +" -p Turned on whenever the real and effective user ids do not match.\n" +" Disables processing of the $ENV file and importing of shell\n" +" functions. Turning this option off causes the effective uid and\n" +" gid to be set to the real uid and gid.\n" +" -t Exit after reading and executing one command.\n" +" -u Treat unset variables as an error when substituting.\n" +" -v Print shell input lines as they are read.\n" +" -x Print commands and their arguments as they are executed.\n" +" -B the shell will perform brace expansion\n" +" -C If set, disallow existing regular files to be overwritten\n" +" by redirection of output.\n" +" -E If set, the ERR trap is inherited by shell functions.\n" +" -H Enable ! style history substitution. This flag is on\n" +" by default when the shell is interactive.\n" +" -P If set, do not follow symbolic links when executing commands\n" +" such as cd which change the current directory.\n" +" -T If set, the DEBUG trap is inherited by shell functions.\n" +" - Assign any remaining arguments to the positional parameters.\n" +" The -x and -v options are turned off.\n" " \n" " Using + rather than - causes these flags to be turned off. The\n" " flags can also be used upon invocation of the shell. The current\n" " set of flags may be found in $-. The remaining n ARGs are positional\n" " parameters and are assigned, in order, to $1, $2, .. $n. If no\n" -" ARGs are given, all shell variables are printed." +" ARGs are given, all shell variables are printed.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given." msgstr "" -#: builtins.c:836 +#: builtins.c:1097 msgid "" -" For each NAME, remove the corresponding variable or function. Given\n" -" the `-v', unset will only act on variables. Given the `-f' flag,\n" -" unset will only act on functions. With neither flag, unset first\n" -" tries to unset a variable, and if that fails, then tries to unset a\n" -" function. Some variables cannot be unset; also see readonly." +"Unset values and attributes of shell variables and functions.\n" +" \n" +" For each NAME, remove the corresponding variable or function.\n" +" \n" +" Options:\n" +" -f\ttreat each NAME as a shell function\n" +" -v\ttreat each NAME as a shell variable\n" +" \n" +" Without options, unset first tries to unset a variable, and if that " +"fails,\n" +" tries to unset a function.\n" +" \n" +" Some variables cannot be unset; also see `readonly'.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or a NAME is read-only." msgstr "" -#: builtins.c:846 +#: builtins.c:1117 msgid "" -" NAMEs are marked for automatic export to the environment of\n" -" subsequently executed commands. If the -f option is given,\n" -" the NAMEs refer to functions. If no NAMEs are given, or if `-p'\n" -" is given, a list of all names that are exported in this shell is\n" -" printed. An argument of `-n' says to remove the export property\n" -" from subsequent NAMEs. An argument of `--' disables further option\n" -" processing." +"Set export attribute for shell variables.\n" +" \n" +" Marks each NAME for automatic export to the environment of subsequently\n" +" executed commands. If VALUE is supplied, assign VALUE before " +"exporting.\n" +" \n" +" Options:\n" +" -f\trefer to shell functions\n" +" -n\tremove the export property from each NAME\n" +" -p\tdisplay a list of all exported variables and functions\n" +" \n" +" An argument of `--' disables further option processing.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or NAME is invalid." msgstr "" -#: builtins.c:858 +#: builtins.c:1136 msgid "" -" The given NAMEs are marked readonly and the values of these NAMEs may\n" -" not be changed by subsequent assignment. If the -f option is given,\n" -" then functions corresponding to the NAMEs are so marked. If no\n" -" arguments are given, or if `-p' is given, a list of all readonly names\n" -" is printed. The `-a' option means to treat each NAME as\n" -" an array variable. An argument of `--' disables further option\n" -" processing." +"Mark shell variables as unchangeable.\n" +" \n" +" Mark each NAME as read-only; the values of these NAMEs may not be\n" +" changed by subsequent assignment. If VALUE is supplied, assign VALUE\n" +" before marking as read-only.\n" +" \n" +" Options:\n" +" -a\trefer to indexed array variables\n" +" -A\trefer to associative array variables\n" +" -f\trefer to shell functions\n" +" -p\tdisplay a list of all readonly variables and functions\n" +" \n" +" An argument of `--' disables further option processing.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or NAME is invalid." msgstr "" -#: builtins.c:870 +#: builtins.c:1157 msgid "" -" The positional parameters from $N+1 ... are renamed to $1 ... If N is\n" -" not given, it is assumed to be 1." +"Shift positional parameters.\n" +" \n" +" Rename the positional parameters $N+1,$N+2 ... to $1,$2 ... If N is\n" +" not given, it is assumed to be 1.\n" +" \n" +" Exit Status:\n" +" Returns success unless N is negative or greater than $#." msgstr "" -#: builtins.c:877 builtins.c:886 +#: builtins.c:1169 builtins.c:1184 msgid "" -" Read and execute commands from FILENAME and return. The pathnames\n" -" in $PATH are used to find the directory containing FILENAME. If any\n" -" ARGUMENTS are supplied, they become the positional parameters when\n" -" FILENAME is executed." +"Execute commands from a file in the current shell.\n" +" \n" +" Read and execute commands from FILENAME in the current shell. The\n" +" entries in $PATH are used to find the directory containing FILENAME.\n" +" If any ARGUMENTS are supplied, they become the positional parameters\n" +" when FILENAME is executed.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed in FILENAME; fails if\n" +" FILENAME cannot be read." msgstr "" -#: builtins.c:896 +#: builtins.c:1200 msgid "" -" Suspend the execution of this shell until it receives a SIGCONT\n" -" signal. The `-f' if specified says not to complain about this\n" -" being a login shell if it is; just suspend anyway." +"Suspend shell execution.\n" +" \n" +" Suspend the execution of this shell until it receives a SIGCONT signal.\n" +" Unless forced, login shells cannot be suspended.\n" +" \n" +" Options:\n" +" -f\tforce the suspend, even if the shell is a login shell\n" +" \n" +" Exit Status:\n" +" Returns success unless job control is not enabled or an error occurs." msgstr "" -#: builtins.c:905 +#: builtins.c:1216 msgid "" -" Exits with a status of 0 (true) or 1 (false) depending on\n" +"Evaluate conditional expression.\n" +" \n" +" Exits with a status of 0 (true) or 1 (false) depending on\n" " the evaluation of EXPR. Expressions may be unary or binary. Unary\n" " expressions are often used to examine the status of a file. There\n" " are string operators as well, and numeric comparison operators.\n" " \n" " File operators:\n" " \n" -" -a FILE True if file exists.\n" -" -b FILE True if file is block special.\n" -" -c FILE True if file is character special.\n" -" -d FILE True if file is a directory.\n" -" -e FILE True if file exists.\n" -" -f FILE True if file exists and is a regular file.\n" -" -g FILE True if file is set-group-id.\n" -" -h FILE True if file is a symbolic link.\n" -" -L FILE True if file is a symbolic link.\n" -" -k FILE True if file has its `sticky' bit set.\n" -" -p FILE True if file is a named pipe.\n" -" -r FILE True if file is readable by you.\n" -" -s FILE True if file exists and is not empty.\n" -" -S FILE True if file is a socket.\n" -" -t FD True if FD is opened on a terminal.\n" -" -u FILE True if the file is set-user-id.\n" -" -w FILE True if the file is writable by you.\n" -" -x FILE True if the file is executable by you.\n" -" -O FILE True if the file is effectively owned by you.\n" -" -G FILE True if the file is effectively owned by your group.\n" -" -N FILE True if the file has been modified since it was last " +" -a FILE True if file exists.\n" +" -b FILE True if file is block special.\n" +" -c FILE True if file is character special.\n" +" -d FILE True if file is a directory.\n" +" -e FILE True if file exists.\n" +" -f FILE True if file exists and is a regular file.\n" +" -g FILE True if file is set-group-id.\n" +" -h FILE True if file is a symbolic link.\n" +" -L FILE True if file is a symbolic link.\n" +" -k FILE True if file has its `sticky' bit set.\n" +" -p FILE True if file is a named pipe.\n" +" -r FILE True if file is readable by you.\n" +" -s FILE True if file exists and is not empty.\n" +" -S FILE True if file is a socket.\n" +" -t FD True if FD is opened on a terminal.\n" +" -u FILE True if the file is set-user-id.\n" +" -w FILE True if the file is writable by you.\n" +" -x FILE True if the file is executable by you.\n" +" -O FILE True if the file is effectively owned by you.\n" +" -G FILE True if the file is effectively owned by your group.\n" +" -N FILE True if the file has been modified since it was last " "read.\n" " \n" " FILE1 -nt FILE2 True if file1 is newer than file2 (according to\n" @@ -2127,180 +3078,254 @@ msgid "" " \n" " String operators:\n" " \n" -" -z STRING True if string is empty.\n" +" -z STRING True if string is empty.\n" " \n" -" -n STRING\n" -" STRING True if string is not empty.\n" +" -n STRING\n" +" STRING True if string is not empty.\n" " \n" -" STRING1 = STRING2\n" -" True if the strings are equal.\n" -" STRING1 != STRING2\n" -" True if the strings are not equal.\n" -" STRING1 < STRING2\n" -" True if STRING1 sorts before STRING2 " -"lexicographically.\n" -" STRING1 > STRING2\n" -" True if STRING1 sorts after STRING2 " +" STRING1 = STRING2\n" +" True if the strings are equal.\n" +" STRING1 != STRING2\n" +" True if the strings are not equal.\n" +" STRING1 < STRING2\n" +" True if STRING1 sorts before STRING2 " "lexicographically.\n" +" STRING1 > STRING2\n" +" True if STRING1 sorts after STRING2 lexicographically.\n" " \n" " Other operators:\n" " \n" -" -o OPTION True if the shell option OPTION is enabled.\n" -" ! EXPR True if expr is false.\n" -" EXPR1 -a EXPR2 True if both expr1 AND expr2 are true.\n" -" EXPR1 -o EXPR2 True if either expr1 OR expr2 is true.\n" +" -o OPTION True if the shell option OPTION is enabled.\n" +" ! EXPR True if expr is false.\n" +" EXPR1 -a EXPR2 True if both expr1 AND expr2 are true.\n" +" EXPR1 -o EXPR2 True if either expr1 OR expr2 is true.\n" " \n" -" arg1 OP arg2 Arithmetic tests. OP is one of -eq, -ne,\n" -" -lt, -le, -gt, or -ge.\n" +" arg1 OP arg2 Arithmetic tests. OP is one of -eq, -ne,\n" +" -lt, -le, -gt, or -ge.\n" " \n" " Arithmetic binary operators return true if ARG1 is equal, not-equal,\n" " less-than, less-than-or-equal, greater-than, or greater-than-or-equal\n" -" than ARG2." +" than ARG2.\n" +" \n" +" Exit Status:\n" +" Returns success if EXPR evaluates to true; fails if EXPR evaluates to\n" +" false or an invalid argument is given." msgstr "" -#: builtins.c:975 +#: builtins.c:1292 msgid "" -" This is a synonym for the \"test\" builtin, but the last\n" -" argument must be a literal `]', to match the opening `['." +"Evaluate conditional expression.\n" +" \n" +" This is a synonym for the \"test\" builtin, but the last argument must\n" +" be a literal `]', to match the opening `['." msgstr "" -#: builtins.c:982 +#: builtins.c:1301 msgid "" -" Print the accumulated user and system times for processes run from\n" -" the shell." +"Display process times.\n" +" \n" +" Prints the accumulated user and system times for the shell and all of " +"its\n" +" child processes.\n" +" \n" +" Exit Status:\n" +" Always succeeds." msgstr "" -#: builtins.c:989 +#: builtins.c:1313 msgid "" -" The command ARG is to be read and executed when the shell receives\n" +"Trap signals and other events.\n" +" \n" +" Defines and activates handlers to be run when the shell receives " +"signals\n" +" or other conditions.\n" +" \n" +" ARG is a command to be read and executed when the shell receives the\n" " signal(s) SIGNAL_SPEC. If ARG is absent (and a single SIGNAL_SPEC\n" " is supplied) or `-', each specified signal is reset to its original\n" " value. If ARG is the null string each SIGNAL_SPEC is ignored by the\n" -" shell and by the commands it invokes. If a SIGNAL_SPEC is EXIT (0)\n" -" the command ARG is executed on exit from the shell. If a SIGNAL_SPEC\n" -" is DEBUG, ARG is executed after every simple command. If the`-p' " -"option\n" -" is supplied then the trap commands associated with each SIGNAL_SPEC are\n" -" displayed. If no arguments are supplied or if only `-p' is given, trap\n" -" prints the list of commands associated with each signal. Each " -"SIGNAL_SPEC\n" -" is either a signal name in or a signal number. Signal names\n" -" are case insensitive and the SIG prefix is optional. `trap -l' prints\n" -" a list of signal names and their corresponding numbers. Note that a\n" -" signal can be sent to the shell with \"kill -signal $$\"." -msgstr "" - -#: builtins.c:1008 -msgid "" -" For each NAME, indicate how it would be interpreted if used as a\n" -" command name.\n" +" shell and by the commands it invokes.\n" +" \n" +" If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell. " +"If\n" +" a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command.\n" " \n" -" If the -t option is used, `type' outputs a single word which is one of\n" -" `alias', `keyword', `function', `builtin', `file' or `', if NAME is an\n" -" alias, shell reserved word, shell function, shell builtin, disk file,\n" -" or unfound, respectively.\n" +" If no arguments are supplied, trap prints the list of commands " +"associated\n" +" with each signal.\n" " \n" -" If the -p flag is used, `type' either returns the name of the disk\n" -" file that would be executed, or nothing if `type -t NAME' would not\n" -" return `file'.\n" +" Options:\n" +" -l\tprint a list of signal names and their corresponding numbers\n" +" -p\tdisplay the trap commands associated with each SIGNAL_SPEC\n" " \n" -" If the -a flag is used, `type' displays all of the places that contain\n" -" an executable named `file'. This includes aliases, builtins, and\n" -" functions, if and only if the -p flag is not also used.\n" +" Each SIGNAL_SPEC is either a signal name in or a signal " +"number.\n" +" Signal names are case insensitive and the SIG prefix is optional. A\n" +" signal may be sent to the shell with \"kill -signal $$\".\n" " \n" -" The -f flag suppresses shell function lookup.\n" +" Exit Status:\n" +" Returns success unless a SIGSPEC is invalid or an invalid option is " +"given." +msgstr "" + +#: builtins.c:1345 +msgid "" +"Display information about command type.\n" +" \n" +" For each NAME, indicate how it would be interpreted if used as a\n" +" command name.\n" +" \n" +" Options:\n" +" -a\tdisplay all locations containing an executable named NAME;\n" +" \tincludes aliases, builtins, and functions, if and only if\n" +" \tthe `-p' option is not also used\n" +" -f\tsuppress shell function lookup\n" +" -P\tforce a PATH search for each NAME, even if it is an alias,\n" +" \tbuiltin, or function, and returns the name of the disk file\n" +" \tthat would be executed\n" +" -p\treturns either the name of the disk file that would be executed,\n" +" \tor nothing if `type -t NAME' would not return `file'.\n" +" -t\toutput a single word which is one of `alias', `keyword',\n" +" \t`function', `builtin', `file' or `', if NAME is an alias, shell\n" +" \treserved word, shell function, shell builtin, disk file, or not\n" +" \tfound, respectively\n" " \n" -" The -P flag forces a PATH search for each NAME, even if it is an alias,\n" -" builtin, or function, and returns the name of the disk file that would\n" -" be executed." +" Arguments:\n" +" NAME\tCommand name to be interpreted.\n" +" \n" +" Exit Status:\n" +" Returns success if all of the NAMEs are found; fails if any are not " +"found." msgstr "" -#: builtins.c:1035 +#: builtins.c:1376 msgid "" -" Ulimit provides control over the resources available to processes\n" -" started by the shell, on systems that allow such control. If an\n" -" option is given, it is interpreted as follows:\n" +"Modify shell resource limits.\n" +" \n" +" Provides control over the resources available to the shell and " +"processes\n" +" it creates, on systems that allow such control.\n" " \n" -" -S\tuse the `soft' resource limit\n" -" -H\tuse the `hard' resource limit\n" -" -a\tall current limits are reported\n" -" -c\tthe maximum size of core files created\n" -" -d\tthe maximum size of a process's data segment\n" -" -f\tthe maximum size of files created by the shell\n" -" -i the maximum number of pending signals\n" -" -l\tthe maximum size a process may lock into memory\n" -" -m\tthe maximum resident set size\n" -" -n\tthe maximum number of open file descriptors\n" -" -p\tthe pipe buffer size\n" -" -q the maximum number of bytes in POSIX message queues\n" -" -s\tthe maximum stack size\n" -" -t\tthe maximum amount of cpu time in seconds\n" -" -u\tthe maximum number of user processes\n" -" -v\tthe size of virtual memory\n" -" -x the maximum number of file locks\n" +" Options:\n" +" -S\tuse the `soft' resource limit\n" +" -H\tuse the `hard' resource limit\n" +" -a\tall current limits are reported\n" +" -b\tthe socket buffer size\n" +" -c\tthe maximum size of core files created\n" +" -d\tthe maximum size of a process's data segment\n" +" -e\tthe maximum scheduling priority (`nice')\n" +" -f\tthe maximum size of files written by the shell and its children\n" +" -i\tthe maximum number of pending signals\n" +" -l\tthe maximum size a process may lock into memory\n" +" -m\tthe maximum resident set size\n" +" -n\tthe maximum number of open file descriptors\n" +" -p\tthe pipe buffer size\n" +" -q\tthe maximum number of bytes in POSIX message queues\n" +" -r\tthe maximum real-time scheduling priority\n" +" -s\tthe maximum stack size\n" +" -t\tthe maximum amount of cpu time in seconds\n" +" -u\tthe maximum number of user processes\n" +" -v\tthe size of virtual memory\n" +" -x\tthe maximum number of file locks\n" " \n" -" If LIMIT is given, it is the new value of the specified resource;\n" -" the special LIMIT values `soft', `hard', and `unlimited' stand for\n" -" the current soft limit, the current hard limit, and no limit, " -"respectively.\n" -" Otherwise, the current value of the specified resource is printed.\n" -" If no option is given, then -f is assumed. Values are in 1024-byte\n" -" increments, except for -t, which is in seconds, -p, which is in\n" -" increments of 512 bytes, and -u, which is an unscaled number of\n" -" processes." +" If LIMIT is given, it is the new value of the specified resource; the\n" +" special LIMIT values `soft', `hard', and `unlimited' stand for the\n" +" current soft limit, the current hard limit, and no limit, respectively.\n" +" Otherwise, the current value of the specified resource is printed. If\n" +" no option is given, then -f is assumed.\n" +" \n" +" Values are in 1024-byte increments, except for -t, which is in seconds,\n" +" -p, which is in increments of 512 bytes, and -u, which is an unscaled\n" +" number of processes.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." msgstr "" -#: builtins.c:1071 +#: builtins.c:1421 msgid "" -" The user file-creation mask is set to MODE. If MODE is omitted, or if\n" -" `-S' is supplied, the current value of the mask is printed. The `-S'\n" -" option makes the output symbolic; otherwise an octal number is output.\n" -" If `-p' is supplied, and MODE is omitted, the output is in a form\n" -" that may be used as input. If MODE begins with a digit, it is\n" -" interpreted as an octal number, otherwise it is a symbolic mode string\n" -" like that accepted by chmod(1)." +"Display or set file mode mask.\n" +" \n" +" Sets the user file-creation mask to MODE. If MODE is omitted, prints\n" +" the current value of the mask.\n" +" \n" +" If MODE begins with a digit, it is interpreted as an octal number;\n" +" otherwise it is a symbolic mode string like that accepted by chmod(1).\n" +" \n" +" Options:\n" +" -p\tif MODE is omitted, output in a form that may be reused as input\n" +" -S\tmakes the output symbolic; otherwise an octal number is output\n" +" \n" +" Exit Status:\n" +" Returns success unless MODE is invalid or an invalid option is given." msgstr "" -#: builtins.c:1084 +#: builtins.c:1441 msgid "" -" Wait for the specified process and report its termination status. If\n" -" N is not given, all currently active child processes are waited for,\n" -" and the return code is zero. N may be a process ID or a job\n" -" specification; if a job spec is given, all processes in the job's\n" -" pipeline are waited for." +"Wait for job completion and return exit status.\n" +" \n" +" Waits for the process identified by ID, which may be a process ID or a\n" +" job specification, and reports its termination status. If ID is not\n" +" given, waits for all currently active child processes, and the return\n" +" status is zero. If ID is a a job specification, waits for all " +"processes\n" +" in the job's pipeline.\n" +" \n" +" Exit Status:\n" +" Returns the status of ID; fails if ID is invalid or an invalid option " +"is\n" +" given." msgstr "" -#: builtins.c:1096 +#: builtins.c:1459 msgid "" -" Wait for the specified process and report its termination status. If\n" -" N is not given, all currently active child processes are waited for,\n" -" and the return code is zero. N is a process ID; if it is not given,\n" -" all child processes of the shell are waited for." +"Wait for process completion and return exit status.\n" +" \n" +" Waits for the specified process and reports its termination status. If\n" +" PID is not given, all currently active child processes are waited for,\n" +" and the return code is zero. PID must be a process ID.\n" +" \n" +" Exit Status:\n" +" Returns the status of ID; fails if ID is invalid or an invalid option " +"is\n" +" given." msgstr "" -#: builtins.c:1106 +#: builtins.c:1474 msgid "" -" The `for' loop executes a sequence of commands for each member in a\n" +"Execute commands for each member in a list.\n" +" \n" +" The `for' loop executes a sequence of commands for each member in a\n" " list of items. If `in WORDS ...;' is not present, then `in \"$@\"' is\n" " assumed. For each element in WORDS, NAME is set to that element, and\n" -" the COMMANDS are executed." +" the COMMANDS are executed.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." msgstr "" -#: builtins.c:1115 +#: builtins.c:1488 msgid "" -" Equivalent to\n" +"Arithmetic for loop.\n" +" \n" +" Equivalent to\n" " \t(( EXP1 ))\n" " \twhile (( EXP2 )); do\n" " \t\tCOMMANDS\n" " \t\t(( EXP3 ))\n" " \tdone\n" " EXP1, EXP2, and EXP3 are arithmetic expressions. If any expression is\n" -" omitted, it behaves as if it evaluates to 1." +" omitted, it behaves as if it evaluates to 1.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." msgstr "" -#: builtins.c:1128 +#: builtins.c:1506 msgid "" -" The WORDS are expanded, generating a list of words. The\n" +"Select words from a list and execute commands.\n" +" \n" +" The WORDS are expanded, generating a list of words. The\n" " set of expanded words is printed on the standard error, each\n" " preceded by a number. If `in WORDS' is not present, `in \"$@\"'\n" " is assumed. The PS3 prompt is then displayed and a line read\n" @@ -2310,27 +3335,45 @@ msgid "" " redisplayed. If EOF is read, the command completes. Any other\n" " value read causes NAME to be set to null. The line read is saved\n" " in the variable REPLY. COMMANDS are executed after each selection\n" -" until a break command is executed." +" until a break command is executed.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." msgstr "" -#: builtins.c:1144 +#: builtins.c:1527 msgid "" -" Execute PIPELINE and print a summary of the real time, user CPU time,\n" +"Report time consumed by pipeline's execution.\n" +" \n" +" Execute PIPELINE and print a summary of the real time, user CPU time,\n" " and system CPU time spent executing PIPELINE when it terminates.\n" -" The return status is the return status of PIPELINE. The `-p' option\n" -" prints the timing summary in a slightly different format. This uses\n" -" the value of the TIMEFORMAT variable as the output format." +" \n" +" Options:\n" +" -p\tprint the timing summary in the portable Posix format\n" +" \n" +" The value of the TIMEFORMAT variable is used as the output format.\n" +" \n" +" Exit Status:\n" +" The return status is the return status of PIPELINE." msgstr "" -#: builtins.c:1154 +#: builtins.c:1544 msgid "" -" Selectively execute COMMANDS based upon WORD matching PATTERN. The\n" -" `|' is used to separate multiple patterns." +"Execute commands based on pattern matching.\n" +" \n" +" Selectively execute COMMANDS based upon WORD matching PATTERN. The\n" +" `|' is used to separate multiple patterns.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." msgstr "" -#: builtins.c:1161 +#: builtins.c:1556 msgid "" -" The `if COMMANDS' list is executed. If its exit status is zero, then the\n" +"Execute commands based on conditional.\n" +" \n" +" The `if COMMANDS' list is executed. If its exit status is zero, then " +"the\n" " `then COMMANDS' list is executed. Otherwise, each `elif COMMANDS' list " "is\n" " executed in turn, and if its exit status is zero, the corresponding\n" @@ -2340,85 +3383,129 @@ msgid "" "the\n" " entire construct is the exit status of the last command executed, or " "zero\n" -" if no condition tested true." +" if no condition tested true.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." msgstr "" -#: builtins.c:1173 +#: builtins.c:1573 msgid "" -" Expand and execute COMMANDS as long as the final command in the\n" -" `while' COMMANDS has an exit status of zero." +"Execute commands as long as a test succeeds.\n" +" \n" +" Expand and execute COMMANDS as long as the final command in the\n" +" `while' COMMANDS has an exit status of zero.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." msgstr "" -#: builtins.c:1180 +#: builtins.c:1585 msgid "" -" Expand and execute COMMANDS as long as the final command in the\n" -" `until' COMMANDS has an exit status which is not zero." +"Execute commands as long as a test does not succeed.\n" +" \n" +" Expand and execute COMMANDS as long as the final command in the\n" +" `until' COMMANDS has an exit status which is not zero.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." msgstr "" -#: builtins.c:1187 +#: builtins.c:1597 msgid "" -" Create a simple command invoked by NAME which runs COMMANDS.\n" -" Arguments on the command line along with NAME are passed to the\n" -" function as $0 .. $n." +"Define shell function.\n" +" \n" +" Create a shell function named NAME. When invoked as a simple command,\n" +" NAME runs COMMANDs in the calling shell's context. When NAME is " +"invoked,\n" +" the arguments are passed to the function as $1...$n, and the function's\n" +" name is in $FUNCNAME.\n" +" \n" +" Exit Status:\n" +" Returns success unless NAME is readonly." msgstr "" -#: builtins.c:1195 +#: builtins.c:1611 msgid "" -" Run a set of commands in a group. This is one way to redirect an\n" -" entire set of commands." +"Group commands as a unit.\n" +" \n" +" Run a set of commands in a group. This is one way to redirect an\n" +" entire set of commands.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." msgstr "" -#: builtins.c:1202 +#: builtins.c:1623 msgid "" -" Equivalent to the JOB_SPEC argument to the `fg' command. Resume a\n" +"Resume job in foreground.\n" +" \n" +" Equivalent to the JOB_SPEC argument to the `fg' command. Resume a\n" " stopped or background job. JOB_SPEC can specify either a job name\n" " or a job number. Following JOB_SPEC with a `&' places the job in\n" " the background, as if the job specification had been supplied as an\n" -" argument to `bg'." +" argument to `bg'.\n" +" \n" +" Exit Status:\n" +" Returns the status of the resumed job." msgstr "" -#: builtins.c:1212 +#: builtins.c:1638 msgid "" -" The EXPRESSION is evaluated according to the rules for arithmetic\n" -" evaluation. Equivalent to \"let EXPRESSION\"." +"Evaluate arithmetic expression.\n" +" \n" +" The EXPRESSION is evaluated according to the rules for arithmetic\n" +" evaluation. Equivalent to \"let EXPRESSION\".\n" +" \n" +" Exit Status:\n" +" Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise." msgstr "" -#: builtins.c:1219 +#: builtins.c:1650 msgid "" -" Returns a status of 0 or 1 depending on the evaluation of the conditional\n" +"Execute conditional command.\n" +" \n" +" Returns a status of 0 or 1 depending on the evaluation of the " +"conditional\n" " expression EXPRESSION. Expressions are composed of the same primaries " "used\n" " by the `test' builtin, and may be combined using the following " -"operators\n" +"operators:\n" " \n" -" \t( EXPRESSION )\tReturns the value of EXPRESSION\n" -" \t! EXPRESSION\tTrue if EXPRESSION is false; else false\n" -" \tEXPR1 && EXPR2\tTrue if both EXPR1 and EXPR2 are true; else false\n" -" \tEXPR1 || EXPR2\tTrue if either EXPR1 or EXPR2 is true; else false\n" +" ( EXPRESSION )\tReturns the value of EXPRESSION\n" +" ! EXPRESSION\t\tTrue if EXPRESSION is false; else false\n" +" EXPR1 && EXPR2\tTrue if both EXPR1 and EXPR2 are true; else false\n" +" EXPR1 || EXPR2\tTrue if either EXPR1 or EXPR2 is true; else false\n" " \n" -" When the `==' and `!=' operators are used, the string to the right of " -"the\n" -" operator is used as a pattern and pattern matching is performed. The\n" -" && and || operators do not evaluate EXPR2 if EXPR1 is sufficient to\n" -" determine the expression's value." +" When the `==' and `!=' operators are used, the string to the right of\n" +" the operator is used as a pattern and pattern matching is performed.\n" +" When the `=~' operator is used, the string to the right of the operator\n" +" is matched as a regular expression.\n" +" \n" +" The && and || operators do not evaluate EXPR2 if EXPR1 is sufficient to\n" +" determine the expression's value.\n" +" \n" +" Exit Status:\n" +" 0 or 1 depending on value of EXPRESSION." msgstr "" -#: builtins.c:1237 +#: builtins.c:1676 msgid "" -" BASH_VERSION Version information for this Bash.\n" -" CDPATH A colon-separated list of directories to search\n" -" \t\tfor directries given as arguments to `cd'.\n" +"Common shell variable names and usage.\n" +" \n" +" BASH_VERSION\tVersion information for this Bash.\n" +" CDPATH\tA colon-separated list of directories to search\n" +" \t\tfor directories given as arguments to `cd'.\n" " GLOBIGNORE\tA colon-separated list of patterns describing filenames to\n" " \t\tbe ignored by pathname expansion.\n" -" HISTFILE The name of the file where your command history is " -"stored.\n" -" HISTFILESIZE The maximum number of lines this file can contain.\n" -" HISTSIZE The maximum number of history lines that a running\n" +" HISTFILE\tThe name of the file where your command history is stored.\n" +" HISTFILESIZE\tThe maximum number of lines this file can contain.\n" +" HISTSIZE\tThe maximum number of history lines that a running\n" " \t\tshell can access.\n" -" HOME The complete pathname to your login directory.\n" +" HOME\tThe complete pathname to your login directory.\n" " HOSTNAME\tThe name of the current host.\n" -" HOSTTYPE The type of CPU this version of Bash is running under.\n" -" IGNOREEOF Controls the action of the shell on receipt of an EOF\n" +" HOSTTYPE\tThe type of CPU this version of Bash is running under.\n" +" IGNOREEOF\tControls the action of the shell on receipt of an EOF\n" " \t\tcharacter as the sole input. If set, then the value\n" " \t\tof it is the number of EOF characters that can be seen\n" " \t\tin a row on an empty line before the shell will exit\n" @@ -2427,19 +3514,19 @@ msgid "" " MAILCHECK\tHow often, in seconds, Bash checks for new mail.\n" " MAILPATH\tA colon-separated list of filenames which Bash checks\n" " \t\tfor new mail.\n" -" OSTYPE\t\tThe version of Unix this version of Bash is running on.\n" -" PATH A colon-separated list of directories to search when\n" +" OSTYPE\tThe version of Unix this version of Bash is running on.\n" +" PATH\tA colon-separated list of directories to search when\n" " \t\tlooking for commands.\n" -" PROMPT_COMMAND A command to be executed before the printing of each\n" +" PROMPT_COMMAND\tA command to be executed before the printing of each\n" " \t\tprimary prompt.\n" -" PS1 The primary prompt string.\n" -" PS2 The secondary prompt string.\n" +" PS1\t\tThe primary prompt string.\n" +" PS2\t\tThe secondary prompt string.\n" " PWD\t\tThe full pathname of the current directory.\n" " SHELLOPTS\tA colon-separated list of enabled shell options.\n" -" TERM The name of the current terminal type.\n" +" TERM\tThe name of the current terminal type.\n" " TIMEFORMAT\tThe output format for timing statistics displayed by the\n" " \t\t`time' reserved word.\n" -" auto_resume Non-null means a command word appearing on a line by\n" +" auto_resume\tNon-null means a command word appearing on a line by\n" " \t\titself is first looked for in the list of currently\n" " \t\tstopped jobs. If found there, that job is foregrounded.\n" " \t\tA value of `exact' means that the command word must\n" @@ -2447,7 +3534,7 @@ msgid "" " \t\tvalue of `substring' means that the command word must\n" " \t\tmatch a substring of the job. Any other value means that\n" " \t\tthe command must be a prefix of a stopped job.\n" -" histchars Characters controlling history expansion and quick\n" +" histchars\tCharacters controlling history expansion and quick\n" " \t\tsubstitution. The first character is the history\n" " \t\tsubstitution character, usually `!'. The second is\n" " \t\tthe `quick substitution' character, usually `^'. The\n" @@ -2456,113 +3543,240 @@ msgid "" " \t\tcommands should be saved on the history list.\n" msgstr "" -#: builtins.c:1292 +#: builtins.c:1733 msgid "" -" Adds a directory to the top of the directory stack, or rotates\n" +"Add directories to stack.\n" +" \n" +" Adds a directory to the top of the directory stack, or rotates\n" " the stack, making the new top of the stack the current working\n" " directory. With no arguments, exchanges the top two directories.\n" " \n" -" +N\tRotates the stack so that the Nth directory (counting\n" +" Options:\n" +" -n\tSuppresses the normal change of directory when adding\n" +" \tdirectories to the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRotates the stack so that the Nth directory (counting\n" " \tfrom the left of the list shown by `dirs', starting with\n" " \tzero) is at the top.\n" " \n" -" -N\tRotates the stack so that the Nth directory (counting\n" +" -N\tRotates the stack so that the Nth directory (counting\n" " \tfrom the right of the list shown by `dirs', starting with\n" " \tzero) is at the top.\n" " \n" -" -n\tsuppress the normal change of directory when adding directories\n" -" \tto the stack, so only the stack is manipulated.\n" -" \n" -" dir\tadds DIR to the directory stack at the top, making it the\n" +" dir\tAdds DIR to the directory stack at the top, making it the\n" " \tnew current working directory.\n" " \n" -" You can see the directory stack with the `dirs' command." +" The `dirs' builtin displays the directory stack.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid argument is supplied or the directory\n" +" change fails." msgstr "" -#: builtins.c:1318 +#: builtins.c:1767 msgid "" -" Removes entries from the directory stack. With no arguments,\n" -" removes the top directory from the stack, and cd's to the new\n" -" top directory.\n" +"Remove directories from stack.\n" +" \n" +" Removes entries from the directory stack. With no arguments, removes\n" +" the top directory from the stack, and changes to the new top directory.\n" " \n" -" +N\tremoves the Nth entry counting from the left of the list\n" +" Options:\n" +" -n\tSuppresses the normal change of directory when removing\n" +" \tdirectories from the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRemoves the Nth entry counting from the left of the list\n" " \tshown by `dirs', starting with zero. For example: `popd +0'\n" " \tremoves the first directory, `popd +1' the second.\n" " \n" -" -N\tremoves the Nth entry counting from the right of the list\n" +" -N\tRemoves the Nth entry counting from the right of the list\n" " \tshown by `dirs', starting with zero. For example: `popd -0'\n" " \tremoves the last directory, `popd -1' the next to last.\n" " \n" -" -n\tsuppress the normal change of directory when removing directories\n" -" \tfrom the stack, so only the stack is manipulated.\n" +" The `dirs' builtin displays the directory stack.\n" " \n" -" You can see the directory stack with the `dirs' command." +" Exit Status:\n" +" Returns success unless an invalid argument is supplied or the directory\n" +" change fails." msgstr "" -#: builtins.c:1341 +#: builtins.c:1797 msgid "" -" Display the list of currently remembered directories. Directories\n" +"Display directory stack.\n" +" \n" +" Display the list of currently remembered directories. Directories\n" " find their way onto the list with the `pushd' command; you can get\n" " back up through the list with the `popd' command.\n" " \n" -" The -l flag specifies that `dirs' should not print shorthand versions\n" -" of directories which are relative to your home directory. This means\n" -" that `~/bin' might be displayed as `/homes/bfox/bin'. The -v flag\n" -" causes `dirs' to print the directory stack with one entry per line,\n" -" prepending the directory name with its position in the stack. The -p\n" -" flag does the same thing, but the stack position is not prepended.\n" -" The -c flag clears the directory stack by deleting all of the elements.\n" +" Options:\n" +" -c\tclear the directory stack by deleting all of the elements\n" +" -l\tdo not print tilde-prefixed versions of directories relative\n" +" \tto your home directory\n" +" -p\tprint the directory stack with one entry per line\n" +" -v\tprint the directory stack with one entry per line prefixed\n" +" \twith its position in the stack\n" " \n" -" +N\tdisplays the Nth entry counting from the left of the list shown by\n" +" Arguments:\n" +" +N\tDisplays the Nth entry counting from the left of the list shown " +"by\n" " \tdirs when invoked without options, starting with zero.\n" " \n" -" -N\tdisplays the Nth entry counting from the right of the list shown by\n" -" \tdirs when invoked without options, starting with zero." +" -N\tDisplays the Nth entry counting from the right of the list shown " +"by\n" +" \tdirs when invoked without options, starting with zero.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." msgstr "" -#: builtins.c:1364 +#: builtins.c:1826 msgid "" -" Toggle the values of variables controlling optional behavior.\n" -" The -s flag means to enable (set) each OPTNAME; the -u flag\n" -" unsets each OPTNAME. The -q flag suppresses output; the exit\n" -" status indicates whether each OPTNAME is set or unset. The -o\n" -" option restricts the OPTNAMEs to those defined for use with\n" -" `set -o'. With no options, or with the -p option, a list of all\n" -" settable options is displayed, with an indication of whether or\n" -" not each is set." +"Set and unset shell options.\n" +" \n" +" Change the setting of each shell option OPTNAME. Without any option\n" +" arguments, list all shell options with an indication of whether or not " +"each\n" +" is set.\n" +" \n" +" Options:\n" +" -o\trestrict OPTNAMEs to those defined for use with `set -o'\n" +" -p\tprint each shell option with an indication of its status\n" +" -q\tsuppress output\n" +" -s\tenable (set) each OPTNAME\n" +" -u\tdisable (unset) each OPTNAME\n" +" \n" +" Exit Status:\n" +" Returns success if OPTNAME is enabled; fails if an invalid option is\n" +" given or OPTNAME is disabled." msgstr "" -#: builtins.c:1377 +#: builtins.c:1847 msgid "" -" printf formats and prints ARGUMENTS under control of the FORMAT. FORMAT\n" -" is a character string which contains three types of objects: plain\n" -" characters, which are simply copied to standard output, character " +"Formats and prints ARGUMENTS under control of the FORMAT.\n" +" \n" +" Options:\n" +" -v var\tassign the output to shell variable VAR rather than\n" +" \t\tdisplay it on the standard output\n" +" \n" +" FORMAT is a character string which contains three types of objects: " +"plain\n" +" characters, which are simply copied to standard output; character " "escape\n" -" sequences which are converted and copied to the standard output, and\n" +" sequences, which are converted and copied to the standard output; and\n" " format specifications, each of which causes printing of the next " "successive\n" -" argument. In addition to the standard printf(1) formats, %b means to\n" -" expand backslash escape sequences in the corresponding argument, and %q\n" -" means to quote the argument in a way that can be reused as shell input.\n" -" If the -v option is supplied, the output is placed into the value of " -"the\n" -" shell variable VAR rather than being sent to the standard output." +" argument.\n" +" \n" +" In addition to the standard format specifications described in printf" +"(1)\n" +" and printf(3), printf interprets:\n" +" \n" +" %b\texpand backslash escape sequences in the corresponding argument\n" +" %q\tquote the argument in a way that can be reused as shell input\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or a write or " +"assignment\n" +" error occurs." +msgstr "" + +#: builtins.c:1874 +msgid "" +"Specify how arguments are to be completed by Readline.\n" +" \n" +" For each NAME, specify how arguments are to be completed. If no " +"options\n" +" are supplied, existing completion specifications are printed in a way " +"that\n" +" allows them to be reused as input.\n" +" \n" +" Options:\n" +" -p\tprint existing completion specifications in a reusable format\n" +" -r\tremove a completion specification for each NAME, or, if no\n" +" \tNAMEs are supplied, all completion specifications\n" +" \n" +" When completion is attempted, the actions are applied in the order the\n" +" uppercase-letter options are listed above.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" + +#: builtins.c:1897 +msgid "" +"Display possible completions depending on the options.\n" +" \n" +" Intended to be used from within a shell function generating possible\n" +" completions. If the optional WORD argument is supplied, matches " +"against\n" +" WORD are generated.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." msgstr "" -#: builtins.c:1393 +#: builtins.c:1912 msgid "" -" For each NAME, specify how arguments are to be completed.\n" -" If the -p option is supplied, or if no options are supplied, existing\n" -" completion specifications are printed in a way that allows them to be\n" -" reused as input. The -r option removes a completion specification for\n" -" each NAME, or, if no NAMEs are supplied, all completion specifications." +"Modify or display completion options.\n" +" \n" +" Modify the completion options for each NAME, or, if no NAMEs are " +"supplied,\n" +" the completion currently begin executed. If no OPTIONs are givenm, " +"print\n" +" the completion options for each NAME or the current completion " +"specification.\n" +" \n" +" Options:\n" +" \t-o option\tSet completion option OPTION for each NAME\n" +" \n" +" Using `+o' instead of `-o' turns off the specified option.\n" +" \n" +" Arguments:\n" +" \n" +" Each NAME refers to a command for which a completion specification must\n" +" have previously been defined using the `complete' builtin. If no NAMEs\n" +" are supplied, compopt must be called by a function currently generating\n" +" completions, and the options for that currently-executing completion\n" +" generator are modified.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or NAME does not\n" +" have a completion specification defined." msgstr "" -#: builtins.c:1405 +#: builtins.c:1940 msgid "" -" Display the possible completions depending on the options. Intended\n" -" to be used from within a shell function generating possible " -"completions.\n" -" If the optional WORD argument is supplied, matches against WORD are\n" -" generated." +"Read lines from a file into an array variable.\n" +" \n" +" Read lines from the standard input into the array variable ARRAY, or " +"from\n" +" file descriptor FD if the -u option is supplied. The variable MAPFILE " +"is\n" +" the default ARRAY.\n" +" \n" +" Options:\n" +" -n count\tCopy at most COUNT lines. If COUNT is 0, all lines are " +"copied.\n" +" -O origin\tBegin assigning to ARRAY at index ORIGIN. The default " +"index is 0.\n" +" -s count \tDiscard the first COUNT lines read.\n" +" -t\t\tRemove a trailing newline from each line read.\n" +" -u fd\t\tRead lines from file descriptor FD instead of the standard " +"input.\n" +" -C callback\tEvaluate CALLBACK each time QUANTUM lines are read.\n" +" -c quantum\tSpecify the number of lines read between each call to " +"CALLBACK.\n" +" \n" +" Arguments:\n" +" ARRAY\t\tArray variable name to use for file data.\n" +" \n" +" If -C is supplied without -c, the default quantum is 5000.\n" +" \n" +" If not supplied with an explicit origin, mapfile will clear ARRAY " +"before\n" +" assigning to it.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or ARRAY is readonly." msgstr "" diff --git a/po/bg.gmo b/po/bg.gmo new file mode 100644 index 0000000000000000000000000000000000000000..46fc6e17de35d504704d4b38baf83defceb95255 GIT binary patch literal 36341 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 F{|EmR90mXY literal 0 Hc-jL100001 diff --git a/po/bg.po b/po/bg.po new file mode 100644 index 000000000..ab331c0b8 --- /dev/null +++ b/po/bg.po @@ -0,0 +1,5447 @@ +# Bulgarian translation of bash po-file. +# Copyright (C) 2007 Free Software Foundation, Inc. +# This file is distributed under the same license as the bash package. +# Alexander Shopov , 2007. +# +msgid "" +msgstr "" +"Project-Id-Version: bash 3.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2009-01-06 11:56-0500\n" +"PO-Revision-Date: 2007-07-26 07:18+0300\n" +"Last-Translator: Alexander Shopov \n" +"Language-Team: Bulgarian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#: arrayfunc.c:50 +msgid "bad array subscript" +msgstr "неправилен индекс на масив" + +#: arrayfunc.c:313 builtins/declare.def:474 +#, c-format +msgid "%s: cannot convert indexed to associative array" +msgstr "" + +#: arrayfunc.c:479 +#, fuzzy, c-format +msgid "%s: invalid associative array key" +msgstr "%s: грешно име на действие" + +#: arrayfunc.c:481 +#, c-format +msgid "%s: cannot assign to non-numeric index" +msgstr "%s: не може да се присвоява на нецифров индекс" + +#: arrayfunc.c:517 +#, c-format +msgid "%s: %s: must use subscript when assigning associative array" +msgstr "" + +#: bashhist.c:380 +#, c-format +msgid "%s: cannot create: %s" +msgstr "%s: не може да се създаде: %s" + +#: bashline.c:3413 +msgid "bash_execute_unix_command: cannot find keymap for command" +msgstr "" +"изпълнение на команда на Юникс от bash: не може да се открие подредбата на\n" +"функциите на клавишите за командата" + +#: bashline.c:3491 +#, c-format +msgid "%s: first non-whitespace character is not `\"'" +msgstr "%s: първият непразен знак не е „\"“" + +#: bashline.c:3520 +#, c-format +msgid "no closing `%c' in %s" +msgstr "в %2$s липсва затварящ знак „%1$c“" + +#: bashline.c:3554 +#, c-format +msgid "%s: missing colon separator" +msgstr "%s: разделителят двоеточие липсва" + +#: builtins/bind.def:120 builtins/bind.def:123 +msgid "line editing not enabled" +msgstr "" + +#: builtins/bind.def:206 +#, c-format +msgid "`%s': invalid keymap name" +msgstr "„%s“: грешно име на подредбата на функциите на клавишите" + +#: builtins/bind.def:245 +#, c-format +msgid "%s: cannot read: %s" +msgstr "%s: не може да се прочете: %s" + +#: builtins/bind.def:260 +#, c-format +msgid "`%s': cannot unbind" +msgstr "„%s“: не може да се премахне присвояване" + +#: builtins/bind.def:295 builtins/bind.def:325 +#, c-format +msgid "`%s': unknown function name" +msgstr "„%s“: непознато име на функция" + +#: builtins/bind.def:303 +#, c-format +msgid "%s is not bound to any keys.\n" +msgstr "%s не може да се зададе на никой клавиш.\n" + +#: builtins/bind.def:307 +#, c-format +msgid "%s can be invoked via " +msgstr "%s може да се извика чрез " + +#: builtins/break.def:77 builtins/break.def:117 +msgid "loop count" +msgstr "" + +#: builtins/break.def:137 +msgid "only meaningful in a `for', `while', or `until' loop" +msgstr "валидно само за циклите с „for“, „while“ и „until“" + +#: builtins/caller.def:133 +#, fuzzy +msgid "" +"Returns the context of the current subroutine call.\n" +" \n" +" Without EXPR, returns " +msgstr "Връща контекста на текущото извикване на подпрограма." + +#: builtins/cd.def:215 +msgid "HOME not set" +msgstr "Променливата $HOME не зададена" + +#: builtins/cd.def:227 +msgid "OLDPWD not set" +msgstr "Променливата $OLDPWD не е зададена" + +#: builtins/common.c:101 +#, c-format +msgid "line %d: " +msgstr "" + +#: builtins/common.c:139 error.c:260 +#, fuzzy, c-format +msgid "warning: " +msgstr "%s: предупреждение: " + +#: builtins/common.c:153 +#, fuzzy, c-format +msgid "%s: usage: " +msgstr "%s: предупреждение: " + +#: builtins/common.c:166 test.c:822 +msgid "too many arguments" +msgstr "прекалено много аргументи" + +#: builtins/common.c:191 shell.c:493 shell.c:774 +#, c-format +msgid "%s: option requires an argument" +msgstr "%s: опцията изисква аргумент" + +#: builtins/common.c:198 +#, c-format +msgid "%s: numeric argument required" +msgstr "%s: изисква се числов аргумент" + +#: builtins/common.c:205 +#, c-format +msgid "%s: not found" +msgstr "%s: не е открит" + +#: builtins/common.c:214 shell.c:787 +#, c-format +msgid "%s: invalid option" +msgstr "%s: грешна опция" + +#: builtins/common.c:221 +#, c-format +msgid "%s: invalid option name" +msgstr "%s: грешно име на опция" + +#: builtins/common.c:228 general.c:231 general.c:236 +#, c-format +msgid "`%s': not a valid identifier" +msgstr "„%s“: грешен идентификатор" + +#: builtins/common.c:238 +#, fuzzy +msgid "invalid octal number" +msgstr "неправилен номер на сигнал" + +#: builtins/common.c:240 +#, fuzzy +msgid "invalid hex number" +msgstr "грешно число" + +#: builtins/common.c:242 expr.c:1255 +msgid "invalid number" +msgstr "грешно число" + +#: builtins/common.c:250 +#, c-format +msgid "%s: invalid signal specification" +msgstr "%s: грешно указване на сигнал" + +#: builtins/common.c:257 +#, c-format +msgid "`%s': not a pid or valid job spec" +msgstr "„%s“: неправилен идентификатор на процес или задача" + +#: builtins/common.c:264 error.c:453 +#, c-format +msgid "%s: readonly variable" +msgstr "%s: променлива с права само за четене" + +#: builtins/common.c:272 +#, c-format +msgid "%s: %s out of range" +msgstr "%s: %s е извън допустимия диапазон" + +#: builtins/common.c:272 builtins/common.c:274 +msgid "argument" +msgstr "аргументът" + +#: builtins/common.c:274 +#, c-format +msgid "%s out of range" +msgstr "%s е извън допустимия диапазон" + +#: builtins/common.c:282 +#, c-format +msgid "%s: no such job" +msgstr "%s: няма такава задача" + +#: builtins/common.c:290 +#, c-format +msgid "%s: no job control" +msgstr "%s: няма управление на задачите" + +#: builtins/common.c:292 +msgid "no job control" +msgstr "няма управление на задачите" + +#: builtins/common.c:302 +#, c-format +msgid "%s: restricted" +msgstr "%s: ограничена обвивка" + +#: builtins/common.c:304 +msgid "restricted" +msgstr "ограничена обвивка" + +#: builtins/common.c:312 +#, c-format +msgid "%s: not a shell builtin" +msgstr "%s: не е команда вградена в обвивката" + +#: builtins/common.c:321 +#, c-format +msgid "write error: %s" +msgstr "грешка при запис: %s" + +#: builtins/common.c:553 +#, c-format +msgid "%s: error retrieving current directory: %s: %s\n" +msgstr "%s: грешка при получаването на текущата директория: %s: %s\n" + +#: builtins/common.c:619 builtins/common.c:621 +#, c-format +msgid "%s: ambiguous job spec" +msgstr "%s: нееднозначно указана задача" + +#: builtins/complete.def:270 +#, c-format +msgid "%s: invalid action name" +msgstr "%s: грешно име на действие" + +#: builtins/complete.def:430 builtins/complete.def:615 +#: builtins/complete.def:813 +#, c-format +msgid "%s: no completion specification" +msgstr "%s: не е указано дописване" + +#: builtins/complete.def:667 +msgid "warning: -F option may not work as you expect" +msgstr "предупреждение: опцията „-F“ може да не работи според очакванията ви" + +#: builtins/complete.def:669 +msgid "warning: -C option may not work as you expect" +msgstr "предупреждение: опцията „-C“ може да не работи според очакванията ви" + +#: builtins/complete.def:786 +msgid "not currently executing completion function" +msgstr "" + +#: builtins/declare.def:122 +msgid "can only be used in a function" +msgstr "може да се използва само във функция" + +#: builtins/declare.def:353 +msgid "cannot use `-f' to make functions" +msgstr "„-f“ не може да се използва за създаването на функции" + +#: builtins/declare.def:365 execute_cmd.c:4731 +#, c-format +msgid "%s: readonly function" +msgstr "%s: функция с права само за четене" + +#: builtins/declare.def:461 +#, c-format +msgid "%s: cannot destroy array variables in this way" +msgstr "%s: променливите за масиви не могат да се унищожават така" + +#: builtins/declare.def:468 +#, c-format +msgid "%s: cannot convert associative to indexed array" +msgstr "" + +#: builtins/enable.def:137 builtins/enable.def:145 +msgid "dynamic loading not available" +msgstr "липсва възможност за динамично зареждане" + +#: builtins/enable.def:312 +#, c-format +msgid "cannot open shared object %s: %s" +msgstr "споделеният обект %s не може да бъде зареден: %s" + +#: builtins/enable.def:335 +#, c-format +msgid "cannot find %s in shared object %s: %s" +msgstr "не може да се открие %s в споделения обект %s: %s" + +#: builtins/enable.def:459 +#, c-format +msgid "%s: not dynamically loaded" +msgstr "%s: не е зареден динамично" + +#: builtins/enable.def:474 +#, c-format +msgid "%s: cannot delete: %s" +msgstr "%s: не може да се изтрие: %s" + +#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4588 +#: shell.c:1439 +#, c-format +msgid "%s: is a directory" +msgstr "%s: е директория" + +#: builtins/evalfile.c:139 +#, c-format +msgid "%s: not a regular file" +msgstr "%s: не е обикновен файл" + +#: builtins/evalfile.c:147 +#, c-format +msgid "%s: file is too large" +msgstr "%s: файлът е прекалено голям" + +#: builtins/evalfile.c:185 execute_cmd.c:4658 shell.c:1449 +#, c-format +msgid "%s: cannot execute binary file" +msgstr "%s: двоичният файл не може да бъде изпълнен" + +#: builtins/exec.def:212 +#, c-format +msgid "%s: cannot execute: %s" +msgstr "%s: не може да се изпълни: %s" + +#: builtins/exit.def:65 +#, c-format +msgid "logout\n" +msgstr "" + +#: builtins/exit.def:88 +msgid "not login shell: use `exit'" +msgstr "това не е входна обвивка: използвайте „exit“" + +#: builtins/exit.def:120 +#, c-format +msgid "There are stopped jobs.\n" +msgstr "Има спрени задачи.\n" + +#: builtins/exit.def:122 +#, fuzzy, c-format +msgid "There are running jobs.\n" +msgstr "Има спрени задачи.\n" + +#: builtins/fc.def:261 +msgid "no command found" +msgstr "не е открита команда" + +#: builtins/fc.def:341 +msgid "history specification" +msgstr "указване на историята" + +#: builtins/fc.def:362 +#, c-format +msgid "%s: cannot open temp file: %s" +msgstr "%s: не може да се отвори временен файл: %s" + +#: builtins/fg_bg.def:149 builtins/jobs.def:282 +msgid "current" +msgstr "" + +#: builtins/fg_bg.def:158 +#, c-format +msgid "job %d started without job control" +msgstr "задача %d е стартирана без управление на задачите" + +#: builtins/getopt.c:110 +#, c-format +msgid "%s: illegal option -- %c\n" +msgstr "%s: непозволена опция -- %c\n" + +#: builtins/getopt.c:111 +#, c-format +msgid "%s: option requires an argument -- %c\n" +msgstr "%s: опцията изисква аргумент -- %c\n" + +#: builtins/hash.def:92 +msgid "hashing disabled" +msgstr "хеширането е изключено" + +#: builtins/hash.def:138 +#, c-format +msgid "%s: hash table empty\n" +msgstr "%s: таблицата с хешове е празна\n" + +#: builtins/hash.def:244 +#, fuzzy, c-format +msgid "hits\tcommand\n" +msgstr "последна команда: %s\n" + +#: builtins/help.def:130 +#, fuzzy, c-format +msgid "Shell commands matching keyword `" +msgid_plural "Shell commands matching keywords `" +msgstr[0] "Команди на обвивката, които напасват на ключовата дума „" +msgstr[1] "Команди на обвивката, които напасват на ключовата дума „" + +#: builtins/help.def:168 +#, c-format +msgid "" +"no help topics match `%s'. Try `help help' or `man -k %s' or `info %s'." +msgstr "" +"няма теми в помощта, които да отговарят на „%s“. Опитайте с\n" +"„help help“, „man -k %s“ или „info %s“." + +#: builtins/help.def:185 +#, c-format +msgid "%s: cannot open: %s" +msgstr "%s: не може да се отвори: %s" + +#: builtins/help.def:337 +#, c-format +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 "" +"Тези команди на интерпретатора са дефинирани вътрешно.\n" +"Напишете „help“, за да видите списъка.\n" +"Напишете „help ИМЕ_НА_ФУНКЦИЯ“ за повече информация за съответната функция.\n" +"Напишете „info bash“ за повече информация за обвивката като цяло.\n" +"Напишете „man -k“ или „info“ за повече информация за командите извън " +"списъка.\n" +"\n" +"Знакът звездичка „*“ до името на команда означава, че тя е изключена.\n" +"\n" + +#: builtins/history.def:154 +msgid "cannot use more than one of -anrw" +msgstr "не може да се ползва едновременно повече от една от опциите -anrw" + +#: builtins/history.def:186 +msgid "history position" +msgstr "позиция в историята" + +#: builtins/history.def:365 +#, c-format +msgid "%s: history expansion failed" +msgstr "%s: неуспешно заместване чрез историята" + +#: builtins/inlib.def:71 +#, fuzzy, c-format +msgid "%s: inlib failed" +msgstr "%s: неуспешно заместване чрез историята" + +#: builtins/jobs.def:109 +msgid "no other options allowed with `-x'" +msgstr "не е позволена друга опция с „-x“" + +#: builtins/kill.def:197 +#, c-format +msgid "%s: arguments must be process or job IDs" +msgstr "%s: аргументите трябва да са идентификатори на процеси или задачи" + +#: builtins/kill.def:260 +msgid "Unknown error" +msgstr "Неизвестна грешка" + +#: builtins/let.def:95 builtins/let.def:120 expr.c:501 expr.c:516 +msgid "expression expected" +msgstr "очаква се израз" + +#: builtins/mapfile.def:215 builtins/read.def:272 +#, c-format +msgid "%s: invalid file descriptor specification" +msgstr "%s: грешно указване на файловия дескриптор" + +#: builtins/mapfile.def:223 builtins/read.def:279 +#, c-format +msgid "%d: invalid file descriptor: %s" +msgstr "%d: грешен файлов дескриптор: %s" + +#: builtins/mapfile.def:232 builtins/mapfile.def:270 +#, fuzzy, c-format +msgid "%s: invalid line count" +msgstr "%s: грешна опция" + +#: builtins/mapfile.def:243 +#, fuzzy, c-format +msgid "%s: invalid array origin" +msgstr "%s: грешна опция" + +#: builtins/mapfile.def:260 +#, fuzzy, c-format +msgid "%s: invalid callback quantum" +msgstr "%s: грешно име на действие" + +#: builtins/mapfile.def:292 +#, fuzzy +msgid "empty array variable name" +msgstr "%s: не е променлива за масив" + +#: builtins/mapfile.def:313 +msgid "array variable support required" +msgstr "" + +#: builtins/printf.def:367 +#, c-format +msgid "`%s': missing format character" +msgstr "„%s“: липсва форматиращ знак" + +#: builtins/printf.def:544 +#, c-format +msgid "`%c': invalid format character" +msgstr "„%c“: грешен форматиращ знак" + +#: builtins/printf.def:571 +#, fuzzy, c-format +msgid "warning: %s: %s" +msgstr "%s: предупреждение: " + +#: builtins/printf.def:750 +msgid "missing hex digit for \\x" +msgstr "липсва шестнадесетична цифра за \\x" + +#: builtins/pushd.def:195 +msgid "no other directory" +msgstr "няма друга директория" + +#: builtins/pushd.def:462 +msgid "" +msgstr "«няма текуща директория»" + +#: builtins/pushd.def:506 +msgid "directory stack empty" +msgstr "" + +#: builtins/pushd.def:508 +#, fuzzy +msgid "directory stack index" +msgstr "отрицателно препълване на стека за рекурсии" + +#: builtins/pushd.def:683 +#, fuzzy +msgid "" +"Display the list of currently remembered directories. Directories\n" +" find their way onto the list with the `pushd' command; you can get\n" +" back up through the list with the `popd' command.\n" +" \n" +" Options:\n" +" -c\tclear the directory stack by deleting all of the elements\n" +" -l\tdo not print tilde-prefixed versions of directories relative\n" +" \tto your home directory\n" +" -p\tprint the directory stack with one entry per line\n" +" -v\tprint the directory stack with one entry per line prefixed\n" +" \twith its position in the stack\n" +" \n" +" Arguments:\n" +" +N\tDisplays the Nth entry counting from the left of the list shown " +"by\n" +" \tdirs when invoked without options, starting with zero.\n" +" \n" +" -N\tDisplays the Nth entry counting from the right of the list shown " +"by\n" +"\tdirs when invoked without options, starting with zero." +msgstr "" +" Показва списъка с текущо запомнените директории. Списъкът се попълва чрез\n" +" командата „pushd“. Можете да вадите директории от списъка с командата\n" +" „popd“.\n" +" \n" +" Опцията „-l“ кара командата „dirs“ да извежда пълните имена на " +"директориите,\n" +" а не съкратените спрямо домашната директория имена. Това означава, че\n" +" „~/bin“ може да се покаже като „/homes/pesho/bin“. Опцията „-v“ води " +"до\n" +" отпечатване на стека на директориите, като всеки елемент се извежда на " +"нов\n" +" ред и се предхожда от номера си в стека. Опцията „-p“ също води до " +"поредово\n" +" отпечатване, но без поредния номер в стека. Опцията „-c“ изчиства стека " +"на\n" +" директориите като изтрива всички елементи.\n" +" \n" +" +N показва N-тия елемент отляво в списъка показван от\n" +" командата „dirs“, когато е стартирана без опции. Брои се от 0.\n" +" \n" +" -N показва N-тия елемент отдясно в списъка показван от\n" +" командата „dirs“, когато е стартирана без опции. Брои се от 0." + +#: builtins/pushd.def:705 +#, fuzzy +msgid "" +"Adds a directory to the top of the directory stack, or rotates\n" +" the stack, making the new top of the stack the current working\n" +" directory. With no arguments, exchanges the top two directories.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when adding\n" +" \tdirectories to the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the left of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" -N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the right of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" dir\tAdds DIR to the directory stack at the top, making it the\n" +" \tnew current working directory.\n" +" \n" +" The `dirs' builtin displays the directory stack." +msgstr "" +" Добавя директория в стека на директориите или превърта стека\n" +" като най-горна директория става текущата директория. Без\n" +" аргументи сменя най-горните две директории.\n" +" \n" +" +N Превърта стека, така че N-тата директория (като се брои\n" +" от лявата страна на списъка, показан от командата „dirs“\n" +" като се почва от 0) да е най-отгоре.\n" +" \n" +" -N Превърта стека, така че N-тата директория (като се брои\n" +" от дясната страна на списъка, показан от командата „dirs“\n" +" като се почва от 0) да е най-отгоре.\n" +" \n" +" -n подтискане на нормалното преминаване към директория при\n" +" добавянето на директории към стека, така че се променя само той.\n" +"\n" +" dir добавя ДИР най-отгоре в стека на директориите, като я прави\n" +" новата текуща работна директория.\n" +" \n" +" Можете да изведете стека на директорията с командата „dirs“." + +#: builtins/pushd.def:730 +#, fuzzy +msgid "" +"Removes entries from the directory stack. With no arguments, removes\n" +" the top directory from the stack, and changes to the new top directory.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when removing\n" +" \tdirectories from the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRemoves the Nth entry counting from the left of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd +0'\n" +" \tremoves the first directory, `popd +1' the second.\n" +" \n" +" -N\tRemoves the Nth entry counting from the right of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd -0'\n" +" \tremoves the last directory, `popd -1' the next to last.\n" +" \n" +" The `dirs' builtin displays the directory stack." +msgstr "" +" Маха директории от стека с тях. Без аргументи\n" +" премахва последната директория в стека и влиза в новата\n" +" последна директория.\n" +" \n" +" +N премахва N-тия елемент като се брои отляво в списъка\n" +" показван от командата „dirs“, като се брои от 0. Напр.: „popd +0“\n" +" премахва първата директория, „popd +1“ - втората.\n" +"\n" +" -N премахва N-тия елемент като се брои отдясно в списъка\n" +" показван от командата „dirs“, като се брои от 0. Напр.: „popd -0“\n" +" премахва последната директория, „popd -1“ - предпоследната.\n" +"\n" +" -n подтискане на нормалното преминаване към директория при добавянето " +"на\n" +" директории към стека, така че се променя само той.\n" +"\n" +" Стекът с директориите се визуализира с командата „dirs“." + +#: builtins/read.def:248 +#, c-format +msgid "%s: invalid timeout specification" +msgstr "%s: грешно указване на изтичането на времето" + +#: builtins/read.def:574 +#, c-format +msgid "read error: %d: %s" +msgstr "грешка при четене: %d: %s" + +#: builtins/return.def:73 +msgid "can only `return' from a function or sourced script" +msgstr "" +"„return“ е възможен само от функция или изпълнен в текущата обвивка скрипт" + +#: builtins/set.def:768 +msgid "cannot simultaneously unset a function and a variable" +msgstr "" +"не може едновременно да се премахват задаванията на функция и променлива" + +#: builtins/set.def:805 +#, c-format +msgid "%s: cannot unset" +msgstr "%s: не може да се премахне" + +#: builtins/set.def:812 +#, c-format +msgid "%s: cannot unset: readonly %s" +msgstr "%s: не може да се премахне: %s е само за четене" + +#: builtins/set.def:823 +#, c-format +msgid "%s: not an array variable" +msgstr "%s: не е променлива за масив" + +#: builtins/setattr.def:186 +#, c-format +msgid "%s: not a function" +msgstr "%s: не е функция" + +#: builtins/shift.def:71 builtins/shift.def:77 +msgid "shift count" +msgstr "брой на преместванията" + +#: builtins/shopt.def:254 +msgid "cannot set and unset shell options simultaneously" +msgstr "" +"не може едновременно да се задават и да се премахват опции на обвивката" + +#: builtins/shopt.def:319 +#, c-format +msgid "%s: invalid shell option name" +msgstr "%s: грешно име на опция на обвивката" + +#: builtins/source.def:128 +msgid "filename argument required" +msgstr "изисква се аргумент име на файл" + +#: builtins/source.def:153 +#, c-format +msgid "%s: file not found" +msgstr "%s: файлът не е открит" + +#: builtins/suspend.def:101 +msgid "cannot suspend" +msgstr "не може да бъде временно спряна" + +#: builtins/suspend.def:111 +msgid "cannot suspend a login shell" +msgstr "входната обвивка не може да бъде временно спряна" + +#: builtins/type.def:234 +#, c-format +msgid "%s is aliased to `%s'\n" +msgstr "%s е синоним на „%s“\n" + +#: builtins/type.def:255 +#, c-format +msgid "%s is a shell keyword\n" +msgstr "%s в ключова дума на обвивката\n" + +#: builtins/type.def:274 +#, c-format +msgid "%s is a function\n" +msgstr "%s е функция\n" + +#: builtins/type.def:296 +#, c-format +msgid "%s is a shell builtin\n" +msgstr "%s е вградена команда в обвивката\n" + +#: builtins/type.def:317 builtins/type.def:391 +#, c-format +msgid "%s is %s\n" +msgstr "%s е %s\n" + +#: builtins/type.def:337 +#, c-format +msgid "%s is hashed (%s)\n" +msgstr "%s е хеширан (%s)\n" + +#: builtins/ulimit.def:372 +#, c-format +msgid "%s: invalid limit argument" +msgstr "%s: неправилен аргумент за ограничение" + +#: builtins/ulimit.def:398 +#, c-format +msgid "`%c': bad command" +msgstr "„%c“: неправилна команда" + +#: builtins/ulimit.def:427 +#, c-format +msgid "%s: cannot get limit: %s" +msgstr "%s: ограничението не може да бъде получено: %s" + +#: builtins/ulimit.def:453 +msgid "limit" +msgstr "" + +#: builtins/ulimit.def:465 builtins/ulimit.def:765 +#, c-format +msgid "%s: cannot modify limit: %s" +msgstr "%s: ограничението не може да бъде променено: %s" + +#: builtins/umask.def:118 +msgid "octal number" +msgstr "осмично число" + +#: builtins/umask.def:231 +#, c-format +msgid "`%c': invalid symbolic mode operator" +msgstr "„%c“: неправилен оператор за описателен режим" + +#: builtins/umask.def:286 +#, c-format +msgid "`%c': invalid symbolic mode character" +msgstr "„%c“: неправилен знак за описателен режим" + +#: error.c:89 error.c:320 error.c:322 error.c:324 +msgid " line " +msgstr "" + +#: error.c:164 +#, c-format +msgid "last command: %s\n" +msgstr "последна команда: %s\n" + +#: error.c:172 +#, c-format +msgid "Aborting..." +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 "%s: променлива без стойност" + +#: eval.c:181 +#, c-format +msgid "\atimed out waiting for input: auto-logout\n" +msgstr "" +"^Gвремето за изчакване на вход изтече: следва автоматично излизане от " +"системата\n" + +#: execute_cmd.c:491 +#, c-format +msgid "cannot redirect standard input from /dev/null: %s" +msgstr "стандартният вход от /dev/null не може да бъде пренасочен: %s" + +#: execute_cmd.c:1091 +#, c-format +msgid "TIMEFORMAT: `%c': invalid format character" +msgstr "в променливата $TIMEFORMAT: „%c“: грешен форматиращ знак" + +#: execute_cmd.c:1942 +#, fuzzy +msgid "pipe error" +msgstr "грешка при запис: %s" + +#: execute_cmd.c:4276 +#, c-format +msgid "%s: restricted: cannot specify `/' in command names" +msgstr "" +"%s: ограничение: в имената на командите не може да присъства знакът „/“" + +#: execute_cmd.c:4367 +#, c-format +msgid "%s: command not found" +msgstr "%s: командата не е открита" + +#: execute_cmd.c:4621 +#, c-format +msgid "%s: %s: bad interpreter" +msgstr "%s: %s: лош интерпретатор" + +#: execute_cmd.c:4770 +#, c-format +msgid "cannot duplicate fd %d to fd %d" +msgstr "файловият дескриптор %d не може да се дублира като дескриптор %d" + +#: expr.c:241 +msgid "expression recursion level exceeded" +msgstr "максималният брой нива за рекурсия в израз бяха преминати" + +#: expr.c:265 +msgid "recursion stack underflow" +msgstr "отрицателно препълване на стека за рекурсии" + +#: expr.c:379 +msgid "syntax error in expression" +msgstr "синтактична грешка в израз" + +#: expr.c:419 +msgid "attempted assignment to non-variable" +msgstr "опит за присвояване на стойност на нещо, което не е променлива" + +#: expr.c:440 expr.c:445 expr.c:756 +msgid "division by 0" +msgstr "деление на 0" + +#: expr.c:471 +msgid "bug: bad expassign token" +msgstr "програмна грешка: неправилна лексема за присвояване на израз" + +#: expr.c:513 +msgid "`:' expected for conditional expression" +msgstr "за условен израз се изисква „:“" + +#: expr.c:781 +msgid "exponent less than 0" +msgstr "степента е по-малка от 0" + +#: expr.c:826 +msgid "identifier expected after pre-increment or pre-decrement" +msgstr "очаква се идентификатор след предварително увеличаване или намаляване" + +#: expr.c:854 +msgid "missing `)'" +msgstr "липсва „)“" + +#: expr.c:897 expr.c:1175 +msgid "syntax error: operand expected" +msgstr "синтактична грешка: очаква се оператор" + +#: expr.c:1177 +#, fuzzy +msgid "syntax error: invalid arithmetic operator" +msgstr "синтактична грешка: изисква се аритметичен израз" + +#: expr.c:1201 +#, c-format +msgid "%s%s%s: %s (error token is \"%s\")" +msgstr "" + +#: expr.c:1259 +msgid "invalid arithmetic base" +msgstr "грешна аритметична основа на бройна система" + +#: expr.c:1279 +msgid "value too great for base" +msgstr "стойността е прекалено голяма за основата" + +#: expr.c:1328 +#, fuzzy, c-format +msgid "%s: expression error\n" +msgstr "%s: очаква се целочислен израз" + +#: general.c:61 +msgid "getcwd: cannot access parent directories" +msgstr "getcwd: родителските директории не могат да бъдат достъпени" + +#: input.c:94 subst.c:4559 +#, c-format +msgid "cannot reset nodelay mode for fd %d" +msgstr "не може да се изчисти режимът без забавяне на файловия дескриптор %d" + +#: input.c:258 +#, c-format +msgid "cannot allocate new file descriptor for bash input from fd %d" +msgstr "" +"не може да се задели нов файлов дескриптор за вход на bash от дескриптор %d" + +#: input.c:266 +#, c-format +msgid "save_bash_input: buffer already exists for new fd %d" +msgstr "" +"запазване на входа на bash: вече съществува буфер за новия файлов дескриптор " +"%d" + +#: jobs.c:466 +msgid "start_pipeline: pgrp pipe" +msgstr "" + +#: jobs.c:882 +#, c-format +msgid "forked pid %d appears in running job %d" +msgstr "" + +#: jobs.c:1000 +#, c-format +msgid "deleting stopped job %d with process group %ld" +msgstr "изтриване на спряната задача %d в групата процеси %ld" + +#: jobs.c:1105 +#, c-format +msgid "add_process: process %5ld (%s) in the_pipeline" +msgstr "" + +#: jobs.c:1108 +#, c-format +msgid "add_process: pid %5ld (%s) marked as still alive" +msgstr "" + +#: jobs.c:1396 +#, c-format +msgid "describe_pid: %ld: no such pid" +msgstr "" +"описателен идентификатор на процес: %ld: няма такъв идентификатор на процес" + +#: jobs.c:1411 +#, c-format +msgid "Signal %d" +msgstr "" + +#: jobs.c:1425 jobs.c:1450 +msgid "Done" +msgstr "" + +#: jobs.c:1430 siglist.c:122 +msgid "Stopped" +msgstr "" + +#: jobs.c:1434 +#, c-format +msgid "Stopped(%s)" +msgstr "" + +#: jobs.c:1438 +msgid "Running" +msgstr "" + +#: jobs.c:1452 +#, c-format +msgid "Done(%d)" +msgstr "" + +#: jobs.c:1454 +#, c-format +msgid "Exit %d" +msgstr "" + +#: jobs.c:1457 +msgid "Unknown status" +msgstr "" + +#: jobs.c:1544 +#, c-format +msgid "(core dumped) " +msgstr "" + +#: jobs.c:1563 +#, c-format +msgid " (wd: %s)" +msgstr "" + +#: jobs.c:1766 +#, c-format +msgid "child setpgid (%ld to %ld)" +msgstr "" + +#: jobs.c:2094 nojobs.c:576 +#, c-format +msgid "wait: pid %ld is not a child of this shell" +msgstr "изчакване: процесът с идентификатор %ld не е дъщерен на тази обвивка" + +#: jobs.c:2321 +#, c-format +msgid "wait_for: No record of process %ld" +msgstr "изчакване: липсват данни за процес с идентификатор %ld" + +#: jobs.c:2593 +#, c-format +msgid "wait_for_job: job %d is stopped" +msgstr "изчакване на задача: задачата %d е спряна" + +#: jobs.c:2815 +#, c-format +msgid "%s: job has terminated" +msgstr "%s: задачата е приключила" + +#: jobs.c:2824 +#, c-format +msgid "%s: job %d already in background" +msgstr "%s: задача %d вече е във фонов режим" + +#: jobs.c:3487 +#, fuzzy, c-format +msgid "%s: line %d: " +msgstr "%s: предупреждение: " + +#: jobs.c:3501 nojobs.c:805 +#, c-format +msgid " (core dumped)" +msgstr "" + +#: jobs.c:3513 jobs.c:3526 +#, c-format +msgid "(wd now: %s)\n" +msgstr "" + +#: jobs.c:3558 +msgid "initialize_job_control: getpgrp failed" +msgstr "" + +#: jobs.c:3618 +msgid "initialize_job_control: line discipline" +msgstr "" + +#: jobs.c:3628 +msgid "initialize_job_control: setpgid" +msgstr "" + +#: jobs.c:3656 +#, c-format +msgid "cannot set terminal process group (%d)" +msgstr "" + +#: jobs.c:3661 +msgid "no job control in this shell" +msgstr "в тази обвивка няма управление на задачите" + +#: lib/malloc/malloc.c:296 +#, c-format +msgid "malloc: failed assertion: %s\n" +msgstr "заделяне на памет: грешно предположение: %s\n" + +#: lib/malloc/malloc.c:312 +#, c-format +msgid "" +"\r\n" +"malloc: %s:%d: assertion botched\r\n" +msgstr "" +"\r\n" +"заделяне на памет: %s:%d: предположението е отпечатано\r\n" + +#: lib/malloc/malloc.c:313 +#, fuzzy +msgid "unknown" +msgstr "%s: непознат хост" + +#: lib/malloc/malloc.c:797 +msgid "malloc: block on free list clobbered" +msgstr "" +"заделяне на памет: блок в списъка със свободни блокове е зает или неподходящ" + +#: lib/malloc/malloc.c:874 +msgid "free: called with already freed block argument" +msgstr "" +"изчистване на памет: извикано е с блоков аргумент, който вече е изчистен" + +#: lib/malloc/malloc.c:877 +msgid "free: called with unallocated block argument" +msgstr "изчистване на памет: извикано е с незаделен блоков аргумент" + +#: lib/malloc/malloc.c:896 +msgid "free: underflow detected; mh_nbytes out of range" +msgstr "" +"изчистване на памет: открито е отрицателно препълване с mh_nbytes извън\n" +"допустимия диапазон" + +#: lib/malloc/malloc.c:902 +msgid "free: start and end chunk sizes differ" +msgstr "" +"изчистване на памет: късовете на началната и крайната области се различават" + +#: lib/malloc/malloc.c:1001 +msgid "realloc: called with unallocated block argument" +msgstr "презаделяне: извикано е с аргумент с незаделен блок" + +#: lib/malloc/malloc.c:1016 +msgid "realloc: underflow detected; mh_nbytes out of range" +msgstr "" +"презаделяне: открито е отрицателно препълване с mh_nbytes извън допустимия\n" +"диапазон" + +#: lib/malloc/malloc.c:1022 +msgid "realloc: start and end chunk sizes differ" +msgstr "презаделяне: късовете на началната и крайната области се различават" + +#: lib/malloc/table.c:177 +#, c-format +msgid "register_alloc: alloc table is full with FIND_ALLOC?\n" +msgstr "" +"регистриране на презаделяне: таблицата за заделянията е пълна с FIND_ALLOC?\n" + +#: lib/malloc/table.c:184 +#, c-format +msgid "register_alloc: %p already in table as allocated?\n" +msgstr "регистриране на презаделяне: %p вече е в таблицата като заделен?\n" + +#: lib/malloc/table.c:220 +#, c-format +msgid "register_free: %p already in table as free?\n" +msgstr "регистриране на свободни: %p вече е в таблицата като свободен?\n" + +#: lib/sh/fmtulong.c:101 +msgid "invalid base" +msgstr "грешна основа на бройна система" + +#: lib/sh/netopen.c:168 +#, c-format +msgid "%s: host unknown" +msgstr "%s: непознат хост" + +#: lib/sh/netopen.c:175 +#, c-format +msgid "%s: invalid service" +msgstr "%s: неправилна услуга" + +#: lib/sh/netopen.c:306 +#, c-format +msgid "%s: bad network path specification" +msgstr "%s: неправилно указан мрежов път" + +#: lib/sh/netopen.c:346 +msgid "network operations not supported" +msgstr "не се поддържат мрежови операции" + +#: mailcheck.c:433 +msgid "You have mail in $_" +msgstr "Имате поща в $_" + +#: mailcheck.c:458 +msgid "You have new mail in $_" +msgstr "Имате нова поща в $_" + +#: mailcheck.c:474 +#, c-format +msgid "The mail in %s has been read\n" +msgstr "Пощата в %s вече е прочетена\n" + +#: make_cmd.c:322 +msgid "syntax error: arithmetic expression required" +msgstr "синтактична грешка: изисква се аритметичен израз" + +#: make_cmd.c:324 +msgid "syntax error: `;' unexpected" +msgstr "синтактична грешка: неочакван знак „;“" + +#: make_cmd.c:325 +#, c-format +msgid "syntax error: `((%s))'" +msgstr "синтактична грешка: „((%s))“" + +#: make_cmd.c:567 +#, c-format +msgid "make_here_document: bad instruction type %d" +msgstr "вътрешен документ с „<<“: неправилен вид инструкция %d" + +#: make_cmd.c:651 +#, c-format +msgid "here-document at line %d delimited by end-of-file (wanted `%s')" +msgstr "" + +#: make_cmd.c:746 +#, c-format +msgid "make_redirection: redirection instruction `%d' out of range" +msgstr "" +"пренасочване: инструкцията за пренасочване „%d“ е извън допустимия диапазон" + +#: parse.y:2986 parse.y:3218 +#, c-format +msgid "unexpected EOF while looking for matching `%c'" +msgstr "" +"неочакван знак за край на файл „EOF“, а се очакваше съответстващ знак „%c“" + +#: parse.y:3722 +msgid "unexpected EOF while looking for `]]'" +msgstr "неочакван знак за край на файл „EOF“, а се очакваше „]]“" + +#: parse.y:3727 +#, c-format +msgid "syntax error in conditional expression: unexpected token `%s'" +msgstr "синтактична грешка в условен израз: неочаквана лексема „%s“" + +#: parse.y:3731 +msgid "syntax error in conditional expression" +msgstr "синтактична грешка в условен израз" + +#: parse.y:3809 +#, c-format +msgid "unexpected token `%s', expected `)'" +msgstr "неочаквана лексема „%s“, а се очакваше знакът „)“" + +#: parse.y:3813 +msgid "expected `)'" +msgstr "очакваше се „)“" + +#: parse.y:3841 +#, c-format +msgid "unexpected argument `%s' to conditional unary operator" +msgstr "неочакван аргумент „%s“ за унарен условен оператор" + +#: parse.y:3845 +msgid "unexpected argument to conditional unary operator" +msgstr "неочакван аргумент за унарен условен оператор" + +#: parse.y:3885 +#, c-format +msgid "unexpected token `%s', conditional binary operator expected" +msgstr "неочаквана лексема „%s“, очакваше се бинарен условен оператор" + +#: parse.y:3889 +msgid "conditional binary operator expected" +msgstr "очакваше се бинарен условен оператор" + +#: parse.y:3906 +#, c-format +msgid "unexpected argument `%s' to conditional binary operator" +msgstr "неочакван аргумент „%s“ за бинарен условен оператор" + +#: parse.y:3910 +msgid "unexpected argument to conditional binary operator" +msgstr "неочакван аргумент за бинарен условен оператор" + +#: parse.y:3921 +#, c-format +msgid "unexpected token `%c' in conditional command" +msgstr "неочаквана лексема „%c“ в условна команда" + +#: parse.y:3924 +#, c-format +msgid "unexpected token `%s' in conditional command" +msgstr "неочаквана лексема „%s“ в условна команда" + +#: parse.y:3928 +#, c-format +msgid "unexpected token %d in conditional command" +msgstr "неочаквана лексема %d в условна команда" + +#: parse.y:5195 +#, c-format +msgid "syntax error near unexpected token `%s'" +msgstr "синтактична грешка в близост до неочакваната лексема „%s“" + +#: parse.y:5213 +#, c-format +msgid "syntax error near `%s'" +msgstr "синтактична грешка в близост до „%s“" + +#: parse.y:5223 +msgid "syntax error: unexpected end of file" +msgstr "синтактична грешка: неочакван край на файл" + +#: parse.y:5223 +msgid "syntax error" +msgstr "синтактична грешка" + +#: parse.y:5285 +#, c-format +msgid "Use \"%s\" to leave the shell.\n" +msgstr "Използвайте „%s“, за да излезете от обвивката.\n" + +#: parse.y:5447 +msgid "unexpected EOF while looking for matching `)'" +msgstr "неочакван знак за край на файл „EOF“, очакваше се знакът „)“" + +#: pcomplete.c:1016 +#, c-format +msgid "completion: function `%s' not found" +msgstr "дописване: функцията „%s“ не е открита" + +#: pcomplib.c:179 +#, c-format +msgid "progcomp_insert: %s: NULL COMPSPEC" +msgstr "" +"вмъкване на завършване на команда: %s указване на команда, което е NULL" + +#: print_cmd.c:287 +#, c-format +msgid "print_command: bad connector `%d'" +msgstr "команда за печат: лош конектор „%d“" + +#: print_cmd.c:1347 +#, c-format +msgid "cprintf: `%c': invalid format character" +msgstr "отпечатване: „%c“: неправилен форматиращ знак" + +#: redir.c:105 +msgid "file descriptor out of range" +msgstr "файловият дескриптор е извън допустимия диапазон" + +#: redir.c:148 +#, c-format +msgid "%s: ambiguous redirect" +msgstr "%s: двусмислено пренасочване" + +#: redir.c:152 +#, c-format +msgid "%s: cannot overwrite existing file" +msgstr "%s: не може да се презапише съществуващ файл" + +#: redir.c:157 +#, c-format +msgid "%s: restricted: cannot redirect output" +msgstr "%s: поради ограничение изходът не може да се пренасочи" + +#: redir.c:162 +#, fuzzy, c-format +msgid "cannot create temp file for here-document: %s" +msgstr "не може да се създаде временен файл за вътрешен документ с „<<“: %s" + +#: redir.c:517 +msgid "/dev/(tcp|udp)/host/port not supported without networking" +msgstr "/dev/(tcp|udp)/host/port не се поддържа, ако няма поддръжка на мрежа" + +#: redir.c:1023 +msgid "redirection error: cannot duplicate fd" +msgstr "грешка при пренасочване: файловият дескриптор не може да бъде дублиран" + +#: shell.c:328 +msgid "could not find /tmp, please create!" +msgstr "не е открита директорията /tmp. Създайте я!" + +#: shell.c:332 +msgid "/tmp must be a valid directory name" +msgstr "/tmp трябва да е директория" + +#: shell.c:876 +#, c-format +msgid "%c%c: invalid option" +msgstr "%c%c: неправилна опция" + +#: shell.c:1638 +msgid "I have no name!" +msgstr "Не може да се получи името на текущия потребител!" + +#: shell.c:1778 +#, c-format +msgid "GNU bash, version %s-(%s)\n" +msgstr "" + +#: shell.c:1779 +#, c-format +msgid "" +"Usage:\t%s [GNU long option] [option] ...\n" +"\t%s [GNU long option] [option] script-file ...\n" +msgstr "" +"Употреба: %s [дълга опция на GNU] [опция] …\n" +" %s [дълга опция на GNU] [опция] файл-скрипт …\n" + +#: shell.c:1781 +msgid "GNU long options:\n" +msgstr "Дълги опции на GNU:\n" + +#: shell.c:1785 +msgid "Shell options:\n" +msgstr "Опции на обвивката:\n" + +#: shell.c:1786 +msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n" +msgstr "" +" -irsD или -c команда, или -O къса_опция (само при стартиране)\n" + +#: shell.c:1801 +#, c-format +msgid "\t-%s or -o option\n" +msgstr " -%s или -o опция\n" + +#: shell.c:1807 +#, c-format +msgid "Type `%s -c \"help set\"' for more information about shell options.\n" +msgstr "" +"За повече информация за опциите на обвивката въведете „%s -c \"help set\"“.\n" + +#: shell.c:1808 +#, c-format +msgid "Type `%s -c help' for more information about shell builtin commands.\n" +msgstr "" +"За повече информация за вградените в обвивката команди въведете „%s -c " +"help“.\n" + +#: shell.c:1809 +#, c-format +msgid "Use the `bashbug' command to report bugs.\n" +msgstr "За да докладвате грешки използвайте командата „bashbug“.\n" + +#: sig.c:583 +#, c-format +msgid "sigprocmask: %d: invalid operation" +msgstr "маска за обработката на сигнали: %d: невалидна операция" + +#: 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 +#, fuzzy +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 +#, fuzzy +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:1181 subst.c:1302 +#, c-format +msgid "bad substitution: no closing `%s' in %s" +msgstr "лошо заместване: липсва затварящ знак „%s“ в %s" + +#: subst.c:2458 +#, c-format +msgid "%s: cannot assign list to array member" +msgstr "%s: на член от масив не може да се присвои списък" + +#: subst.c:4456 subst.c:4472 +msgid "cannot make pipe for process substitution" +msgstr "не може да се създаде програмен канал за заместване на процеси" + +#: subst.c:4504 +msgid "cannot make child for process substitution" +msgstr "не може да се създаде дъщерен процес за заместване на процеси" + +#: subst.c:4549 +#, c-format +msgid "cannot open named pipe %s for reading" +msgstr "именуваният програмен канал %s не може да се отвори за четене" + +#: subst.c:4551 +#, c-format +msgid "cannot open named pipe %s for writing" +msgstr "именуваният програмен канал %s не може да се отвори за запис" + +#: subst.c:4569 +#, c-format +msgid "cannot duplicate named pipe %s as fd %d" +msgstr "" +"именуваният програмен канал %s не може да се\n" +"дублира като файловия дескриптор %d" + +#: subst.c:4765 +msgid "cannot make pipe for command substitution" +msgstr "не може да се създаде програмен канал за заместване на команди" + +#: subst.c:4799 +msgid "cannot make child for command substitution" +msgstr "не може да се създаде дъщерен процес за заместване на команди" + +#: subst.c:4816 +msgid "command_substitute: cannot duplicate pipe as fd 1" +msgstr "заместване на команди: каналът не може да се дублира като fd 1" + +#: subst.c:5318 +#, c-format +msgid "%s: parameter null or not set" +msgstr "%s: аргументът е null или не е зададен" + +#: subst.c:5608 +#, c-format +msgid "%s: substring expression < 0" +msgstr "%s: изразът от подниза е < 0" + +#: subst.c:6660 +#, c-format +msgid "%s: bad substitution" +msgstr "%s: лошо заместване" + +#: subst.c:6740 +#, c-format +msgid "$%s: cannot assign in this way" +msgstr "$%s: не може да се задава по този начин" + +#: subst.c:7479 +#, fuzzy, c-format +msgid "bad substitution: no closing \"`\" in %s" +msgstr "лошо заместване: липсва затварящ знак „%s“ в %s" + +#: subst.c:8354 +#, c-format +msgid "no match: %s" +msgstr "няма съвпадение: %s" + +#: test.c:145 +msgid "argument expected" +msgstr "очаква се аргумент" + +#: test.c:154 +#, c-format +msgid "%s: integer expression expected" +msgstr "%s: очаква се целочислен израз" + +#: test.c:262 +msgid "`)' expected" +msgstr "очаква се „)“" + +#: test.c:264 +#, c-format +msgid "`)' expected, found %s" +msgstr "очаква се „)“, а е получено %s" + +#: test.c:279 test.c:688 test.c:691 +#, c-format +msgid "%s: unary operator expected" +msgstr "%s: очаква се унарен оператор" + +#: test.c:444 test.c:731 +#, c-format +msgid "%s: binary operator expected" +msgstr "%s: очаква се бинарен оператор" + +#: test.c:806 +msgid "missing `]'" +msgstr "липсва „]“" + +#: trap.c:201 +msgid "invalid signal number" +msgstr "неправилен номер на сигнал" + +#: trap.c:324 +#, c-format +msgid "run_pending_traps: bad value in trap_list[%d]: %p" +msgstr "" +"стартиране на предстоящите капани: неправилна стойност в trap_list[%d]: %p" + +#: trap.c:328 +#, c-format +msgid "" +"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself" +msgstr "" +"стартиране на предстоящите капани: обработката на сигнали е SIG_DFL.\n" +"%d (%s) е преизпратено на текущата обвивка" + +#: trap.c:372 +#, c-format +msgid "trap_handler: bad signal %d" +msgstr "обработка на капани: неправилен сигнал %d" + +#: variables.c:358 +#, c-format +msgid "error importing function definition for `%s'" +msgstr "грешка при внасянето на дефиницията на функция за „%s“" + +#: variables.c:736 +#, c-format +msgid "shell level (%d) too high, resetting to 1" +msgstr "нивото на обвивката (%d) е прекалено голямо. Задава се да е 1" + +#: variables.c:1898 +msgid "make_local_variable: no function context at current scope" +msgstr "" +"създаване на локална променлива: липсва контекст на функция в текущата " +"област\n" +"на видимост" + +#: variables.c:3127 +msgid "all_local_variables: no function context at current scope" +msgstr "" +"всички локални променливи: липсва контекст на функция в текущата област на\n" +"видимост" + +#: variables.c:3344 variables.c:3353 +#, c-format +msgid "invalid character %d in exportstr for %s" +msgstr "неправилен знак на позиция %d в низа за изнасяне за %s" + +#: variables.c:3359 +#, c-format +msgid "no `=' in exportstr for %s" +msgstr "липсва „=“ в низа за изнасяне за %s" + +#: variables.c:3794 +msgid "pop_var_context: head of shell_variables not a function context" +msgstr "" +"изваждане на контекст на променливи: в началото на структурата за променливи " +"на\n" +"обвивката (shell_variables) е нещо, което не е контекст на функция" + +#: variables.c:3807 +msgid "pop_var_context: no global_variables context" +msgstr "" +"изваждане на контекст на променливи: липсва контекст за глобални променливи\n" +"(global_variables)" + +#: variables.c:3881 +msgid "pop_scope: head of shell_variables not a temporary environment scope" +msgstr "" +"изваждане на област: последният елемент структурата за променливи на " +"обвивката\n" +"(shell_variables) не е временна област в обкръжението" + +#: version.c:46 +#, fuzzy +msgid "Copyright (C) 2009 Free Software Foundation, Inc." +msgstr "Авторски права (C) 2005 Free Software Foundation, Inc.\n" + +#: version.c:47 +msgid "" +"License GPLv3+: GNU GPL version 3 or later \n" +msgstr "" + +#: version.c:86 +#, c-format +msgid "GNU bash, version %s (%s)\n" +msgstr "" + +#: version.c:91 +#, c-format +msgid "This is free software; you are free to change and redistribute it.\n" +msgstr "" + +#: version.c:92 +#, c-format +msgid "There is NO WARRANTY, to the extent permitted by law.\n" +msgstr "" + +#: xmalloc.c:92 +#, c-format +msgid "xmalloc: cannot allocate %lu bytes (%lu bytes allocated)" +msgstr "" +"заделяне на памет: %lu байта не могат да се заделят (заделени са\n" +"%lu байта)" + +#: xmalloc.c:94 +#, c-format +msgid "xmalloc: cannot allocate %lu bytes" +msgstr "заделяне на памет: %lu байта не могат да се заделят" + +#: xmalloc.c:114 +#, c-format +msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)" +msgstr "" +"презаделяне на памет: %lu байта не могат да се заделят наново (заделени са\n" +"%lu байта)" + +#: xmalloc.c:116 +#, c-format +msgid "xrealloc: cannot allocate %lu bytes" +msgstr "презаделяне на памет: %lu байта не могат да се заделят" + +#: xmalloc.c:150 +#, c-format +msgid "xmalloc: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)" +msgstr "" +"заделяне на памет: %s:%d: %lu байта не могат да се заделят (заделени са\n" +"%lu байта)" + +#: xmalloc.c:152 +#, c-format +msgid "xmalloc: %s:%d: cannot allocate %lu bytes" +msgstr "заделяне на памет: %s:%d: %lu байта не могат да се заделят" + +#: xmalloc.c:174 +#, c-format +msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)" +msgstr "" +"презаделяне на памет: %s:%d: %lu байта не могат да се заделят (заделени са %" +"lu байта)" + +#: xmalloc.c:176 +#, c-format +msgid "xrealloc: %s:%d: cannot allocate %lu bytes" +msgstr "презаделяне на памет: %s:%d: %lu байта не могат да се заделят" + +#: builtins.c:43 +msgid "alias [-p] [name[=value] ... ]" +msgstr "" + +#: builtins.c:47 +msgid "unalias [-a] name [name ...]" +msgstr "" + +#: builtins.c:51 +msgid "" +"bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-" +"x keyseq:shell-command] [keyseq:readline-function or readline-command]" +msgstr "" + +#: builtins.c:54 +msgid "break [n]" +msgstr "" + +#: builtins.c:56 +msgid "continue [n]" +msgstr "" + +#: builtins.c:58 +msgid "builtin [shell-builtin [arg ...]]" +msgstr "" + +#: builtins.c:61 +msgid "caller [expr]" +msgstr "" + +#: builtins.c:64 +msgid "cd [-L|-P] [dir]" +msgstr "" + +#: builtins.c:66 +msgid "pwd [-LP]" +msgstr "" + +#: builtins.c:68 +msgid ":" +msgstr "" + +#: builtins.c:70 +msgid "true" +msgstr "" + +#: builtins.c:72 +msgid "false" +msgstr "" + +#: builtins.c:74 +msgid "command [-pVv] command [arg ...]" +msgstr "" + +#: builtins.c:76 +msgid "declare [-aAfFilrtux] [-p] [name[=value] ...]" +msgstr "" + +#: builtins.c:78 +msgid "typeset [-aAfFilrtux] [-p] name[=value] ..." +msgstr "" + +#: builtins.c:80 +msgid "local [option] name[=value] ..." +msgstr "" + +#: builtins.c:83 +msgid "echo [-neE] [arg ...]" +msgstr "" + +#: builtins.c:87 +msgid "echo [-n] [arg ...]" +msgstr "" + +#: builtins.c:90 +msgid "enable [-a] [-dnps] [-f filename] [name ...]" +msgstr "" + +#: builtins.c:92 +msgid "eval [arg ...]" +msgstr "" + +#: builtins.c:94 +msgid "getopts optstring name [arg]" +msgstr "" + +#: builtins.c:96 +msgid "exec [-cl] [-a name] [command [arguments ...]] [redirection ...]" +msgstr "" + +#: builtins.c:98 +msgid "exit [n]" +msgstr "" + +#: builtins.c:100 +msgid "logout [n]" +msgstr "" + +#: builtins.c:103 +msgid "fc [-e ename] [-lnr] [first] [last] or fc -s [pat=rep] [command]" +msgstr "" + +#: builtins.c:107 +msgid "fg [job_spec]" +msgstr "" + +#: builtins.c:111 +msgid "bg [job_spec ...]" +msgstr "" + +#: builtins.c:114 +msgid "hash [-lr] [-p pathname] [-dt] [name ...]" +msgstr "" + +#: builtins.c:117 +msgid "help [-ds] [pattern ...]" +msgstr "" + +#: builtins.c:121 +msgid "" +"history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg " +"[arg...]" +msgstr "" + +#: builtins.c:125 +msgid "jobs [-lnprs] [jobspec ...] or jobs -x command [args]" +msgstr "" + +#: builtins.c:129 +msgid "disown [-h] [-ar] [jobspec ...]" +msgstr "" + +#: builtins.c:132 +msgid "" +"kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l " +"[sigspec]" +msgstr "" + +#: builtins.c:134 +msgid "let arg [arg ...]" +msgstr "" + +#: builtins.c:136 +msgid "" +"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-p prompt] [-t " +"timeout] [-u fd] [name ...]" +msgstr "" + +#: builtins.c:138 +msgid "return [n]" +msgstr "" + +#: builtins.c:140 +msgid "set [--abefhkmnptuvxBCHP] [-o option-name] [arg ...]" +msgstr "" + +#: builtins.c:142 +msgid "unset [-f] [-v] [name ...]" +msgstr "" + +#: builtins.c:144 +msgid "export [-fn] [name[=value] ...] or export -p" +msgstr "" + +#: builtins.c:146 +msgid "readonly [-af] [name[=value] ...] or readonly -p" +msgstr "" + +#: builtins.c:148 +#, fuzzy +msgid "shift [n]" +msgstr "брой на преместванията" + +#: builtins.c:150 +#, fuzzy +msgid "source filename [arguments]" +msgstr "изисква се аргумент име на файл" + +#: builtins.c:152 +#, fuzzy +msgid ". filename [arguments]" +msgstr "изисква се аргумент име на файл" + +#: builtins.c:155 +msgid "suspend [-f]" +msgstr "" + +#: builtins.c:158 +msgid "test [expr]" +msgstr "" + +#: builtins.c:160 +msgid "[ arg... ]" +msgstr "" + +#: builtins.c:162 +msgid "times" +msgstr "" + +#: builtins.c:164 +msgid "trap [-lp] [[arg] signal_spec ...]" +msgstr "" + +#: builtins.c:166 +msgid "type [-afptP] name [name ...]" +msgstr "" + +#: builtins.c:169 +msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]" +msgstr "" + +#: builtins.c:172 +msgid "umask [-p] [-S] [mode]" +msgstr "" + +#: builtins.c:175 +msgid "wait [id]" +msgstr "" + +#: builtins.c:179 +msgid "wait [pid]" +msgstr "" + +#: builtins.c:182 +msgid "for NAME [in WORDS ... ] ; do COMMANDS; done" +msgstr "" + +#: builtins.c:184 +msgid "for (( exp1; exp2; exp3 )); do COMMANDS; done" +msgstr "" + +#: builtins.c:186 +msgid "select NAME [in WORDS ... ;] do COMMANDS; done" +msgstr "" + +#: builtins.c:188 +msgid "time [-p] pipeline" +msgstr "" + +#: builtins.c:190 +msgid "case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac" +msgstr "" + +#: builtins.c:192 +msgid "" +"if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else " +"COMMANDS; ] fi" +msgstr "" + +#: builtins.c:194 +msgid "while COMMANDS; do COMMANDS; done" +msgstr "" + +#: builtins.c:196 +msgid "until COMMANDS; do COMMANDS; done" +msgstr "" + +#: builtins.c:198 +msgid "function name { COMMANDS ; } or name () { COMMANDS ; }" +msgstr "" + +#: builtins.c:200 +msgid "{ COMMANDS ; }" +msgstr "" + +#: builtins.c:202 +msgid "job_spec [&]" +msgstr "" + +#: builtins.c:204 +#, fuzzy +msgid "(( expression ))" +msgstr "очаква се израз" + +#: builtins.c:206 +#, fuzzy +msgid "[[ expression ]]" +msgstr "очаква се израз" + +#: builtins.c:208 +msgid "variables - Names and meanings of some shell variables" +msgstr "" + +#: builtins.c:211 +msgid "pushd [-n] [+N | -N | dir]" +msgstr "" + +#: builtins.c:215 +msgid "popd [-n] [+N | -N]" +msgstr "" + +#: builtins.c:219 +msgid "dirs [-clpv] [+N] [-N]" +msgstr "" + +#: builtins.c:222 +msgid "shopt [-pqsu] [-o] [optname ...]" +msgstr "" + +#: builtins.c:224 +msgid "printf [-v var] format [arguments]" +msgstr "" + +#: builtins.c:227 +msgid "" +"complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W " +"wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] " +"[name ...]" +msgstr "" + +#: builtins.c:231 +msgid "" +"compgen [-abcdefgjksuv] [-o option] [-A action] [-G globpat] [-W wordlist] " +"[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]" +msgstr "" + +#: builtins.c:235 +msgid "compopt [-o|+o option] [name ...]" +msgstr "" + +#: builtins.c:238 +msgid "" +"mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c " +"quantum] [array]" +msgstr "" + +#: builtins.c:250 +#, fuzzy +msgid "" +"Define or display aliases.\n" +" \n" +" Without arguments, `alias' prints the list of aliases in the reusable\n" +" form `alias NAME=VALUE' on standard output.\n" +" \n" +" Otherwise, an alias is defined for each NAME whose VALUE is given.\n" +" A trailing space in VALUE causes the next word to be checked for\n" +" alias substitution when the alias is expanded.\n" +" \n" +" Options:\n" +" -p\tPrint all defined aliases in a reusable format\n" +" \n" +" Exit Status:\n" +" alias returns true unless a NAME is supplied for which no alias has " +"been\n" +" defined." +msgstr "" +" „alias“ без аргументи или с опцията „-p“ отпечатва списъка със синонимите " +"във\n" +" формат ИМЕ=СТОЙНОСТ на стандартния изход. В противен случай за всяко " +"ИМЕ,\n" +" за което е зададена стойност, се дефинира синоним. Интервал в края на\n" +" стойност предизвиква синонимно заместване на следващата дума при\n" +" заместването на синонима. Командата „alias“ връща истина, освен в " +"случаите,\n" +" когато се зададе ИМЕ, за което не е дефиниран синоним." + +#: builtins.c:272 +#, fuzzy +msgid "" +"Remove each NAME from the list of defined aliases.\n" +" \n" +" Options:\n" +" -a\tremove all alias definitions.\n" +" \n" +" Return success unless a NAME is not an existing alias." +msgstr "" +" ИМЕната се премахват от списъка с дефинираните синоними. Ако е е дадена и\n" +" опцията „-a“ тогава се премахват всички синоними." + +#: builtins.c:285 +#, fuzzy +msgid "" +"Set Readline key bindings and variables.\n" +" \n" +" Bind a key sequence to a Readline function or a macro, or set a\n" +" Readline variable. The non-option argument syntax is equivalent to\n" +" that found in ~/.inputrc, but must be passed as a single argument:\n" +" e.g., bind '\"\\C-x\\C-r\": re-read-init-file'.\n" +" \n" +" Options:\n" +" -m keymap Use KEYMAP as the keymap for the duration of this\n" +" command. Acceptable keymap names are emacs,\n" +" emacs-standard, emacs-meta, emacs-ctlx, vi, vi-" +"move,\n" +" vi-command, and vi-insert.\n" +" -l List names of functions.\n" +" -P List function names and bindings.\n" +" -p List functions and bindings in a form that can be\n" +" reused as input.\n" +" -S List key sequences that invoke macros and their " +"values\n" +" -s List key sequences that invoke macros and their " +"values\n" +" in a form that can be reused as input.\n" +" -V List variable names and values\n" +" -v List variable names and values in a form that can\n" +" be reused as input.\n" +" -q function-name Query about which keys invoke the named function.\n" +" -u function-name Unbind all keys which are bound to the named " +"function.\n" +" -r keyseq Remove the binding for KEYSEQ.\n" +" -f filename Read key bindings from FILENAME.\n" +" -x keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n" +" \t\t\t\tKEYSEQ is entered.\n" +" \n" +" Exit Status:\n" +" bind returns 0 unless an unrecognized option is given or an error occurs." +msgstr "" +" Присвояване на последователност от клавиши на функция или макрос от " +"readline\n" +" или задаване на променлива на readline. Синтаксисът с аргументи без " +"опции\n" +" е еквивалентен на този във файла „~/.inputrc“, но трябва да се подаде " +"като\n" +" единствен аргумент:\n" +" bind '\"\\C-x\\C-r\": re-read-init-file'.\n" +"\n" +" bind приема следните опции:\n" +" -m ПОДРЕДБА Използване на ПОДРЕДБАта като подредба на функциите " +"на\n" +" клавишите докато командата се изпълнява. Валидни " +"са\n" +" следните имена: „emacs“, „emacs-standard“,\n" +" „emacs-meta“, „emacs-ctlx“, „vi“, „vi-move“,\n" +" „vi-command“ и „vi-insert“.\n" +" -l Списък с имената на функциите.\n" +" -P Списък с имената на функциите и присвояванията.\n" +" -p Списък с имената на функциите и присвояванията във " +"вид,\n" +" който може да се използва за вход.\n" +" -r КЛАВИШНА_ПОСЛЕДОВАТЕЛНОСТ\n" +" Премахване на присвоената функция от\n" +" КЛАВИШНАта_ПОСЛЕДОВАТЕЛНОСТ.\n" +" -x КЛАВИШНА_ПОСЛЕДОВАТЕЛНОСТ:КОМАНДА_НА_ОБВИВКАТА\n" +" Изпълнение на КОМАНДАта_НА_ОБВИВКАТА при въвеждането " +"на\n" +" КЛАВИШНАта_ПОСЛЕДОВАТЕЛНОСТ.\n" +" -f ФАЙЛ Прочитане на присвояванията на клавиши от ФАЙЛа.\n" +" -q ИМЕ_НА_ФУНКЦИЯ\n" +" Проверка кои клавиши извикват функцията с това име.\n" +" -u ИМЕ_НА_ФУНКЦИЯ\n" +" Премахване на присвояванията към всички клавиши на\n" +" функцията с това име.\n" +" -V Списък с имената на променливите и стойностите им.\n" +" -v Списък с имената на променливите и стойностите им във " +"вид,\n" +" който може да се използва за вход.\n" +" -S Списък с клавишните последователности, които извикват\n" +" макроси и стойностите им.\n" +" -s Списък с клавишните последователности, които извикват\n" +" макроси и стойностите им във вид, който може да " +"се\n" +" използва за вход." + +#: builtins.c:322 +#, fuzzy +msgid "" +"Exit for, while, or until loops.\n" +" \n" +" Exit a FOR, WHILE or UNTIL loop. If N is specified, break N enclosing\n" +" loops.\n" +" \n" +" Exit Status:\n" +" The exit status is 0 unless N is not greater than or equal to 1." +msgstr "" +" Продължение със следващата итерация от цикъл ползващ FOR, WHILE или UNTIL.\n" +" Ако е указан N, се продължава от N-тия обхващащ цикъл." + +#: builtins.c:334 +#, fuzzy +msgid "" +"Resume for, while, or until loops.\n" +" \n" +" Resumes the next iteration of the enclosing FOR, WHILE or UNTIL loop.\n" +" If N is specified, resumes the Nth enclosing loop.\n" +" \n" +" Exit Status:\n" +" The exit status is 0 unless N is not greater than or equal to 1." +msgstr "" +" Продължение със следващата итерация от цикъл ползващ FOR, WHILE или UNTIL.\n" +" Ако е указан N, се продължава от N-тия обхващащ цикъл." + +#: builtins.c:346 +msgid "" +"Execute shell builtins.\n" +" \n" +" Execute SHELL-BUILTIN with arguments ARGs without performing command\n" +" lookup. This is useful when you wish to reimplement a shell builtin\n" +" as a shell function, but need to execute the builtin within the " +"function.\n" +" \n" +" Exit Status:\n" +" Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is\n" +" not a shell builtin.." +msgstr "" + +#: builtins.c:361 +#, fuzzy +msgid "" +"Return the context of the current subroutine call.\n" +" \n" +" Without EXPR, returns \"$line $filename\". With EXPR, returns\n" +" \"$line $subroutine $filename\"; this extra information can be used to\n" +" provide a stack trace.\n" +" \n" +" The value of EXPR indicates how many call frames to go back before the\n" +" current one; the top frame is frame 0.\n" +" \n" +" Exit Status:\n" +" Returns 0 unless the shell is not executing a shell function or EXPR\n" +" is invalid." +msgstr "" +" Връща контекста на текущото извикване на подпрограма.\n" +" \n" +" Без ИЗРАЗ връща „$line $filename“. С ИЗРАЗ връща\n" +" „$line $subroutine $filename“. Допълнителната информация може да се\n" +" използва за получаване на информация за състоянието на стека.\n" +" \n" +" Стойността на ИЗРАЗа показва за колко рамки спрямо текущата да се " +"изведе\n" +" информация. Най-горната рамка е 0." + +#: builtins.c:379 +#, fuzzy +msgid "" +"Change the shell working directory.\n" +" \n" +" Change the current directory to DIR. The default DIR is the value of " +"the\n" +" HOME shell variable.\n" +" \n" +" The variable CDPATH defines the search path for the directory " +"containing\n" +" DIR. Alternative directory names in CDPATH are separated by a colon " +"(:).\n" +" A null directory name is the same as the current directory. If DIR " +"begins\n" +" with a slash (/), then CDPATH is not used.\n" +" \n" +" If the directory is not found, and the shell option `cdable_vars' is " +"set,\n" +" the word is assumed to be a variable name. If that variable has a " +"value,\n" +" its value is used for DIR.\n" +" \n" +" Options:\n" +" -L\tforce symbolic links to be followed\n" +" -P\tuse the physical directory structure without following symbolic\n" +" \tlinks\n" +" \n" +" The default is to follow symbolic links, as if `-L' were specified.\n" +" \n" +" Exit Status:\n" +" Returns 0 if the directory is changed; non-zero otherwise." +msgstr "" +" Смяна на текущата директория да е ДИРЕКТОРИЯ. Променливата $HOME е\n" +" стандартната директория. Променливата $CDPATH определя пътя за търсене\n" +" на директории, които могат да съдържат ДИРЕКТОРИЯта. Директориите в " +"$CDPATH\n" +" са разделени с „:“. Липсващо име на директория означава текущата\n" +" директория, т.е. „.“. Ако името на ДИРЕКТОРИЯта започва с наклонена " +"черта\n" +" „/“, $CDPATH не се ползва. Ако директорията не е открита, но е " +"зададена\n" +" опцията на обвивката „cdable_vars“, то думата се пробва като име на\n" +" променлива. Ако променливата има стойност, то директорията се сменя\n" +" към стойността на таи променлива. Опцията „-P“ налага използването на\n" +" фактическата подредба на директориите, вместо да се следват символните\n" +" връзки. Опцията „-L“ налага следването на символните връзки." + +#: builtins.c:407 +msgid "" +"Print the name of the current working directory.\n" +" \n" +" Options:\n" +" -L\tprint the value of $PWD if it names the current working\n" +" \tdirectory\n" +" -P\tprint the physical directory, without any symbolic links\n" +" \n" +" By default, `pwd' behaves as if `-L' were specified.\n" +" \n" +" Exit Status:\n" +" Returns 0 unless an invalid option is given or the current directory\n" +" cannot be read." +msgstr "" + +#: builtins.c:424 +#, fuzzy +msgid "" +"Null command.\n" +" \n" +" No effect; the command does nothing.\n" +" \n" +" Exit Status:\n" +" Always succeeds." +msgstr " Без ефект - командата нищо не прави. Връща се изходен код 0." + +#: builtins.c:435 +msgid "" +"Return a successful result.\n" +" \n" +" Exit Status:\n" +" Always succeeds." +msgstr "" + +#: builtins.c:444 +msgid "" +"Return an unsuccessful result.\n" +" \n" +" Exit Status:\n" +" Always fails." +msgstr "" + +#: builtins.c:453 +msgid "" +"Execute a simple command or display information about commands.\n" +" \n" +" Runs COMMAND with ARGS suppressing shell function lookup, or display\n" +" information about the specified COMMANDs. Can be used to invoke " +"commands\n" +" on disk when a function with the same name exists.\n" +" \n" +" Options:\n" +" -p\tuse a default value for PATH that is guaranteed to find all of\n" +" \tthe standard utilities\n" +" -v\tprint a description of COMMAND similar to the `type' builtin\n" +" -V\tprint a more verbose description of each COMMAND\n" +" \n" +" Exit Status:\n" +" Returns exit status of COMMAND, or failure if COMMAND is not found." +msgstr "" + +#: builtins.c:472 +#, fuzzy +msgid "" +"Set variable values and attributes.\n" +" \n" +" Declare variables and give them attributes. If no NAMEs are given,\n" +" display the attributes and values of all variables.\n" +" \n" +" Options:\n" +" -f\trestrict action or display to function names and definitions\n" +" -F\trestrict display to function names only (plus line number and\n" +" \tsource file when debugging)\n" +" -p\tdisplay the attributes and value of each NAME\n" +" \n" +" Options which set attributes:\n" +" -a\tto make NAMEs indexed arrays (if supported)\n" +" -A\tto make NAMEs associative arrays (if supported)\n" +" -i\tto make NAMEs have the `integer' attribute\n" +" -l\tto convert NAMEs to lower case on assignment\n" +" -r\tto make NAMEs readonly\n" +" -t\tto make NAMEs have the `trace' attribute\n" +" -u\tto convert NAMEs to upper case on assignment\n" +" -x\tto make NAMEs export\n" +" \n" +" Using `+' instead of `-' turns off the given attribute.\n" +" \n" +" Variables with the integer attribute have arithmetic evaluation (see\n" +" the `let' command) performed when the variable is assigned a value.\n" +" \n" +" When used in a function, `declare' makes NAMEs local, as with the " +"`local'\n" +" command.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" +" Обявяване на променливи и/или задаване на техните атрибути. Ако не са " +"зададени\n" +" ИМЕна, то се показват стойностите на променливите. Опцията „-p“ " +"показва\n" +" стойността и атрибутите за всяко ИМЕ.\n" +" \n" +" Опциите са:\n" +" \n" +" -a да се създадат масиви с тези ИМЕна (ако това се поддържа)\n" +" -f да се избира само измежду имената на функциите\n" +" -F да се изведат имената на функциите (с номер на реда и име на " +"файла\n" +" с изходния код при изчистване на грешки) без дефинициите.\n" +" -i на ИМЕто се дава атрибут „цяло число“\n" +" -r маха се възможността за промяна на ИМЕната\n" +" -t на ИМЕто се дава атрибут „проследяване“\n" +" -x ИМЕто да бъде изнасяно\n" +"\n" +" При променливите с атрибут за цяло число се извършва аритметично " +"заместване\n" +" (вижте командата „let“) при първоначално присвояване.\n" +" \n" +" При извеждането на стойностите на променливите „-f“ извежда имената и\n" +" дефинициите на функциите. Опцията „-F“ ограничава изведената " +"информация\n" +" до имената.\n" +"\n" +" Използването на „+“ вместо „-“ премахва атрибута. При използването във\n" +" функция ИМЕната стават локални, както при използването на командата " +"„local“." + +#: builtins.c:508 +msgid "" +"Set variable values and attributes.\n" +" \n" +" Obsolete. See `help declare'." +msgstr "" + +#: builtins.c:516 +msgid "" +"Define local variables.\n" +" \n" +" Create a local variable called NAME, and give it VALUE. OPTION can\n" +" be any option accepted by `declare'.\n" +" \n" +" Local variables can only be used within a function; they are visible\n" +" only to the function where they are defined and its children.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied, an error occurs,\n" +" or the shell is not executing a function." +msgstr "" + +#: builtins.c:533 +#, fuzzy +msgid "" +"Write arguments to the standard output.\n" +" \n" +" Display the ARGs on the standard output followed by a newline.\n" +" \n" +" Options:\n" +" -n\tdo not append a newline\n" +" -e\tenable interpretation of the following backslash escapes\n" +" -E\texplicitly suppress interpretation of backslash escapes\n" +" \n" +" `echo' interprets the following backslash-escaped characters:\n" +" \\a\talert (bell)\n" +" \\b\tbackspace\n" +" \\c\tsuppress further output\n" +" \\e\tescape character\n" +" \\f\tform feed\n" +" \\n\tnew line\n" +" \\r\tcarriage return\n" +" \\t\thorizontal tab\n" +" \\v\tvertical tab\n" +" \\\\\tbackslash\n" +" \\0nnn\tthe character whose ASCII code is NNN (octal). NNN can be\n" +" \t0 to 3 octal digits\n" +" \\xHH\tthe eight-bit character whose value is HH (hexadecimal). HH\n" +" \tcan be one or two hex digits\n" +" \n" +" Exit Status:\n" +" Returns success unless a write error occurs." +msgstr "" +" Извеждане на АРГУМЕНТите. Когато е зададена опцията „-n“, не се извежда " +"знак\n" +" за нов ред. Ако е зададена опцията „-e“, се включва интерпретирането " +"на\n" +" следните знаци екранирани с обратна наклонена черта - „\\“:\n" +" \\a системен звънец\n" +" \\b триене назад\n" +" \\c пропускане на знака за нов ред\n" +" \\E знак за екраниране\n" +" \\f знак „Завършване на формуляра“ (form feed)\n" +" \\n знак за нов ред\n" +" \\r знак „Връщане на каретката“ (carriage return)\n" +" \\t хоризонтална табулация\n" +" \\v вертикална табулация\n" +" \\\\ обратно наклонена черта\n" +" \\НМР знакът с код в ASCII - НоМеР (в осмична бройна система).\n" +"\n" +" Можете изрично да спрете интерпретирането на горните знаци с опцията „-" +"E“." + +#: builtins.c:567 +msgid "" +"Write arguments to the standard output.\n" +" \n" +" Display the ARGs on the standard output followed by a newline.\n" +" \n" +" Options:\n" +" -n\tdo not append a newline\n" +" \n" +" Exit Status:\n" +" Returns success unless a write error occurs." +msgstr "" + +#: builtins.c:582 +msgid "" +"Enable and disable shell builtins.\n" +" \n" +" Enables and disables builtin shell commands. Disabling allows you to\n" +" execute a disk command which has the same name as a shell builtin\n" +" without using a full pathname.\n" +" \n" +" Options:\n" +" -a\tprint a list of builtins showing whether or not each is enabled\n" +" -n\tdisable each NAME or display a list of disabled builtins\n" +" -p\tprint the list of builtins in a reusable format\n" +" -s\tprint only the names of Posix `special' builtins\n" +" \n" +" Options controlling dynamic loading:\n" +" -f\tLoad builtin NAME from shared object FILENAME\n" +" -d\tRemove a builtin loaded with -f\n" +" \n" +" Without options, each NAME is enabled.\n" +" \n" +" To use the `test' found in $PATH instead of the shell builtin\n" +" version, type `enable -n test'.\n" +" \n" +" Exit Status:\n" +" Returns success unless NAME is not a shell builtin or an error occurs." +msgstr "" + +#: builtins.c:610 +msgid "" +"Execute arguments as a shell command.\n" +" \n" +" Combine ARGs into a single string, use the result as input to the " +"shell,\n" +" and execute the resulting commands.\n" +" \n" +" Exit Status:\n" +" Returns exit status of command or success if command is null." +msgstr "" + +#: builtins.c:622 +#, fuzzy +msgid "" +"Parse option arguments.\n" +" \n" +" Getopts is used by shell procedures to parse positional parameters\n" +" as options.\n" +" \n" +" OPTSTRING contains the option letters to be recognized; if a letter\n" +" is followed by a colon, the option is expected to have an argument,\n" +" which should be separated from it by white space.\n" +" \n" +" Each time it is invoked, getopts will place the next option in the\n" +" shell variable $name, initializing name if it does not exist, and\n" +" the index of the next argument to be processed into the shell\n" +" variable OPTIND. OPTIND is initialized to 1 each time the shell or\n" +" a shell script is invoked. When an option requires an argument,\n" +" getopts places that argument into the shell variable OPTARG.\n" +" \n" +" getopts reports errors in one of two ways. If the first character\n" +" of OPTSTRING is a colon, getopts uses silent error reporting. In\n" +" this mode, no error messages are printed. If an invalid option is\n" +" seen, getopts places the option character found into OPTARG. If a\n" +" required argument is not found, getopts places a ':' into NAME and\n" +" sets OPTARG to the option character found. If getopts is not in\n" +" silent mode, and an invalid option is seen, getopts places '?' into\n" +" NAME and unsets OPTARG. If a required argument is not found, a '?'\n" +" is placed in NAME, OPTARG is unset, and a diagnostic message is\n" +" printed.\n" +" \n" +" If the shell variable OPTERR has the value 0, getopts disables the\n" +" printing of error messages, even if the first character of\n" +" OPTSTRING is not a colon. OPTERR has the value 1 by default.\n" +" \n" +" Getopts normally parses the positional parameters ($0 - $9), but if\n" +" more arguments are given, they are parsed instead.\n" +" \n" +" Exit Status:\n" +" Returns success if an option is found; fails if the end of options is\n" +" encountered or an error occurs." +msgstr "" +" getopts се използва от процедурите на обвивката за анализа на позиционните\n" +" аргументи.\n" +" \n" +" НИЗът_С_ОПЦИИ съдържа знаците, които трябва да се разпознават като " +"опции.\n" +" Ако буквата е следвана от двоеточие, очаква се опцията да получава " +"аргумент,\n" +" който да е разделен от нея с интервал(и).\n" +" \n" +" При всяко извикване, „getopts“ поставя следващата опция в променливата " +"на\n" +" обвивката $name, като я инициализира, ако тя не съществува, а индексът " +"на\n" +" следващия аргумент, който трябва да се обработи, в променливата на " +"обвивката\n" +" $OPTIND. $OPTIND се инициализира да е 1 при всяко извикване на обвивка " +"или\n" +" скрипт. Когато опцията се нуждае от аргумент, той се поставя в " +"променливата\n" +" на обвивката $OPTARG.\n" +" \n" +" „getopts“ докладва грешки по един от два начина. Ако първият знак на\n" +" $OPTSTRING е двоеточие, „getopts“ използва тихо докладване. В този " +"режим\n" +" не се извеждат никакви съобщения за грешка. Ако се срещне неправилна " +"опция,\n" +" „getopts“ слага „:“ в $NAME, а в $OPTARG - срещнатия знак за опция. " +"Ако\n" +" „getopts“ не е в режим на тихо докладване, в $NAME се слага „?“, $OPTARG " +"се\n" +" премахва и се изписва диагностично съобщение.\n" +" \n" +" Ако променливата на обвивката $OPTERR е със стойност 0, „getopts“ " +"изключва\n" +" извеждането на диагностични съобщения, дори първият знак в $OPTSTRING да " +"не\n" +" е двоеточие. По подразбиране $OPTERR е със стойност 1.\n" +" \n" +" „getopts“ по принцип анализира позиционните аргументи ($0 - $9), но ако " +"са\n" +" дадени повече аргументи, те биват анализирани вместо това." + +#: builtins.c:664 +msgid "" +"Replace the shell with the given command.\n" +" \n" +" Execute COMMAND, replacing this shell with the specified program.\n" +" ARGUMENTS become the arguments to COMMAND. If COMMAND is not " +"specified,\n" +" any redirections take effect in the current shell.\n" +" \n" +" Options:\n" +" -a name\tpass NAME as the zeroth argument to COMMAND\n" +" -c\t\texecute COMMAND with an empty environment\n" +" -l\t\tplace a dash in the zeroth argument to COMMAND\n" +" \n" +" If the command cannot be executed, a non-interactive shell exits, " +"unless\n" +" the shell option `execfail' is set.\n" +" \n" +" Exit Status:\n" +" Returns success unless COMMAND is not found or a redirection error " +"occurs." +msgstr "" + +#: builtins.c:685 +#, fuzzy +msgid "" +"Exit the shell.\n" +" \n" +" Exits the shell with a status of N. If N is omitted, the exit status\n" +" is that of the last command executed." +msgstr "" +" Изход от обвивката с код N. Ако N е изпуснат, то изходният код е този на\n" +" последната изпълнена команда." + +#: builtins.c:694 +msgid "" +"Exit a login shell.\n" +" \n" +" Exits a login shell with exit status N. Returns an error if not " +"executed\n" +" in a login shell." +msgstr "" + +#: builtins.c:704 +#, fuzzy +msgid "" +"Display or execute commands from the history list.\n" +" \n" +" fc is used to list or edit and re-execute commands from the history " +"list.\n" +" FIRST and LAST can be numbers specifying the range, or FIRST can be a\n" +" string, which means the most recent command beginning with that\n" +" string.\n" +" \n" +" Options:\n" +" -e ENAME\tselect which editor to use. Default is FCEDIT, then " +"EDITOR,\n" +" \t\tthen vi\n" +" -l \tlist lines instead of editing\n" +" -n\tomit line numbers when listing\n" +" -r\treverse the order of the lines (newest listed first)\n" +" \n" +" With the `fc -s [pat=rep ...] [command]' format, COMMAND is\n" +" re-executed after the substitution OLD=NEW is performed.\n" +" \n" +" A useful alias to use with this is r='fc -s', so that typing `r cc'\n" +" runs the last command beginning with `cc' and typing `r' re-executes\n" +" the last command.\n" +" \n" +" Exit Status:\n" +" Returns success or status of executed command; non-zero if an error " +"occurs." +msgstr "" +" „fc“ се използва, за изброяването или редактирането и повторното изпълнение " +"на\n" +" команди от списъка на историята. ПЪРВИ и ПОСЛЕДЕН са номера, които " +"могат да\n" +" указват допустимия диапазон. Ако е зададен само ПЪРВИят аргумент, той\n" +" задава низ, който е началото на команда.\n" +" \n" +" -e РЕДАКТОР показва редактора, който да се използва. Стандартно " +"е\n" +" $FCEDIT, след това се проверява $EDITOR и накрая " +"„vi“.\n" +" -l означава редовете да се покажат вместо редактират.\n" +" -n означава номерата на редовете да не се показват.\n" +" -r означава обратна подредба (отпред да е най-новият " +"ред).\n" +" \n" +" При варианта „fc -s [ШАБЛ=ЗАМЕСТ …] [КОМАНДА]“ командата се изпълнява, " +"като\n" +" всяка поява на ШАБЛона се заменя със ЗАМЕСТителя.\n" +" \n" +" Удобен за използване синоним е „r='fc -s'“. По такъв начин, ако " +"напишете\n" +" „r cc“, ще се изпълни последната команда, която започва с „cc“, а " +"когато\n" +" се въведе само „-r“, ще се изпълни последната команда." + +#: builtins.c:734 +#, fuzzy +msgid "" +"Move job to the foreground.\n" +" \n" +" Place the job identified by JOB_SPEC in the foreground, making it the\n" +" current job. If JOB_SPEC is not present, the shell's notion of the\n" +" current job is used.\n" +" \n" +" Exit Status:\n" +" Status of command placed in foreground, or failure if an error occurs." +msgstr "" +" Изважда ЗАДАЧА от фонов режим и я прави текуща задача. Ако липсва\n" +" аргумент ЗАДАЧА, се използва текущата задача според обвивката." + +#: builtins.c:749 +#, fuzzy +msgid "" +"Move jobs to the background.\n" +" \n" +" Place the jobs identified by each JOB_SPEC in the background, as if " +"they\n" +" had been started with `&'. If JOB_SPEC is not present, the shell's " +"notion\n" +" of the current job is used.\n" +" \n" +" Exit Status:\n" +" Returns success unless job control is not enabled or an error occurs." +msgstr "" +" Поставя всяка ЗАДАЧА във фонов режим, все едно е била стартирана с „&“.\n" +" Ако липсва аргумент ЗАДАЧА, се използва текущата задача според обвивката." + +#: builtins.c:763 +msgid "" +"Remember or display program locations.\n" +" \n" +" Determine and remember the full pathname of each command NAME. If\n" +" no arguments are given, information about remembered commands is " +"displayed.\n" +" \n" +" Options:\n" +" -d\t\tforget the remembered location of each NAME\n" +" -l\t\tdisplay in a format that may be reused as input\n" +" -p pathname\tuse PATHNAME is the full pathname of NAME\n" +" -r\t\tforget all remembered locations\n" +" -t\t\tprint the remembered location of each NAME, preceding\n" +" \t\teach location with the corresponding NAME if multiple\n" +" \t\tNAMEs are given\n" +" Arguments:\n" +" NAME\t\tEach NAME is searched for in $PATH and added to the list\n" +" \t\tof remembered commands.\n" +" \n" +" Exit Status:\n" +" Returns success unless NAME is not found or an invalid option is given." +msgstr "" + +#: builtins.c:788 +msgid "" +"Display information about builtin commands.\n" +" \n" +" Displays brief summaries of builtin commands. If PATTERN is\n" +" specified, gives detailed help on all commands matching PATTERN,\n" +" otherwise the list of help topics is printed.\n" +" \n" +" Options:\n" +" -d\toutput short description for each topic\n" +" -m\tdisplay usage in pseudo-manpage format\n" +" -s\toutput only a short usage synopsis for each topic matching\n" +" \tPATTERN\n" +" \n" +" Arguments:\n" +" PATTERN\tPattern specifiying a help topic\n" +" \n" +" Exit Status:\n" +" Returns success unless PATTERN is not found or an invalid option is " +"given." +msgstr "" + +#: builtins.c:812 +#, fuzzy +msgid "" +"Display or manipulate the history list.\n" +" \n" +" Display the history list with line numbers, prefixing each modified\n" +" entry with a `*'. An argument of N lists only the last N entries.\n" +" \n" +" Options:\n" +" -c\tclear the history list by deleting all of the entries\n" +" -d offset\tdelete the history entry at offset OFFSET.\n" +" \n" +" -a\tappend history lines from this session to the history file\n" +" -n\tread all history lines not already read from the history file\n" +" -r\tread the history file and append the contents to the history\n" +" \tlist\n" +" -w\twrite the current history to the history file\n" +" \tand append them to the history list\n" +" \n" +" -p\tperform history expansion on each ARG and display the result\n" +" \twithout storing it in the history list\n" +" -s\tappend the ARGs to the history list as a single entry\n" +" \n" +" If FILENAME is given, it is used as the history file. Otherwise,\n" +" if $HISTFILE has a value, that is used, else ~/.bash_history.\n" +" \n" +" If the $HISTTIMEFORMAT variable is set and not null, its value is used\n" +" as a format string for strftime(3) to print the time stamp associated\n" +" with each displayed history entry. No time stamps are printed " +"otherwise.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or an error occurs." +msgstr "" +" Показване на списъка на историята с номера на ред. Редовете, които са\n" +" отбелязани със знака „*“, са били променени. Аргументът N указва да се\n" +" извеждат само N на брой реда. Опцията „-c“ предизвиква изчистването на\n" +" списъка, като се изтриват всички елементи от него. Опцията „-d“ " +"изтрива\n" +" елемента в историята намиращ се посочената ПОЗИЦИЯ. Опцията „-w“ " +"записва\n" +" текущата история във файла за историята. Опцията „-r“ означава същият " +"файл\n" +" да се прочете, а съдържанието му да се добави към историята. Опцията „-" +"a“\n" +" добавя историята от текущата сесия към файла с историята. Опцията „-n“\n" +" предизвиква всички редове от файла с историята, които все още не са\n" +" прочетени от файла с историята, да се прочетат и добавят към текущата\n" +" история на командите.\n" +" \n" +" Ако аргументът ИМЕ_НА_ФАЙЛ е зададен, той се използва като файл за\n" +" историята. Ако той липсва, се използва файлът сочен в променливата на\n" +" средата $HISTFILE. В противен случай се ползва „~/.bash_history“. Ако е\n" +" зададена опцията „-s“, аргументите, които не са опции, се добавят като " +"един\n" +" елемент към файла с историята. Опцията „-p“ означава да се извърши\n" +" историческо заместване за всеки АРГУМЕНТ, а резултатът да се изведе, " +"без\n" +" нищо да се записва в историята на командите.\n" +" \n" +" Ако променливата $HISTTIMEFORMAT е зададена и не е „null“, стойността ѝ " +"се\n" +" използва като форматиращия низ за функцията „strftime“, за да се " +"отбелязва\n" +" времето свързано с всеки елемент от историята. В противен случай " +"времето не\n" +" се записва." + +#: builtins.c:848 +#, fuzzy +msgid "" +"Display status of jobs.\n" +" \n" +" Lists the active jobs. JOBSPEC restricts output to that job.\n" +" Without options, the status of all active jobs is displayed.\n" +" \n" +" Options:\n" +" -l\tlists process IDs in addition to the normal information\n" +" -n\tlist only processes that have changed status since the last\n" +" \tnotification\n" +" -p\tlists process IDs only\n" +" -r\trestrict output to running jobs\n" +" -s\trestrict output to stopped jobs\n" +" \n" +" If -x is supplied, COMMAND is run after all job specifications that\n" +" appear in ARGS have been replaced with the process ID of that job's\n" +" process group leader.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or an error occurs.\n" +" If -x is used, returns the exit status of COMMAND." +msgstr "" +" Извежда списък с активните задачи. Опцията „-l“ включва и идентификатора " +"на\n" +" процесите в добавка към стандартната информация. Опцията „-p“ извежда " +"само\n" +" идентификаторите на процесите. Ако е зададена опцията „-n“ се извеждат " +"само\n" +" процесите с променено състояние от последното извеждане на тази " +"информация.\n" +" ЗАДАЧАта ограничава информацията до себе си. Опциите „-r“ и „-s“\n" +" ограничават съответно изхода само до работещите и спрени задачи. Без " +"опции\n" +" се отпечатва състоянието на всички активни задачи. Ако е зададена " +"опцията\n" +" „-x“, КОМАНДАта се изпълнява, след като всички ЗАДАЧи, които се появяват " +"като\n" +" аргументи, се заменят с идентификатора на водача на групата процеси." + +#: builtins.c:875 +msgid "" +"Remove jobs from current shell.\n" +" \n" +" Removes each JOBSPEC argument from the table of active jobs. Without\n" +" any JOBSPECs, the shell uses its notion of the current job.\n" +" \n" +" Options:\n" +" -a\tremove all jobs if JOBSPEC is not supplied\n" +" -h\tmark each JOBSPEC so that SIGHUP is not sent to the job if the\n" +" \tshell receives a SIGHUP\n" +" -r\tremove only running jobs\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option or JOBSPEC is given." +msgstr "" + +#: builtins.c:894 +#, fuzzy +msgid "" +"Send a signal to a job.\n" +" \n" +" Send the processes identified by PID or JOBSPEC the signal named by\n" +" SIGSPEC or SIGNUM. If neither SIGSPEC nor SIGNUM is present, then\n" +" SIGTERM is assumed.\n" +" \n" +" Options:\n" +" -s sig\tSIG is a signal name\n" +" -n sig\tSIG is a signal number\n" +" -l\tlist the signal names; if arguments follow `-l' they are\n" +" \tassumed to be signal numbers for which names should be listed\n" +" \n" +" Kill is a shell builtin for two reasons: it allows job IDs to be used\n" +" instead of process IDs, and allows processes to be killed if the limit\n" +" on processes that you can create is reached.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or an error occurs." +msgstr "" +" Изпращане на сигнала SIGSPEC на процеса с идентификатор ИдП (или ЗАДАЧА).\n" +" Ако сигналът SIGSPEC не съществува, се използва SIGTERM.\n" +" Опцията „-l“ изброява имената на сигналите. Ако към нея са добавени\n" +" аргументи, те се интерпретират като номера на сигналите чиито имена\n" +" да се изброят. „kill“ е команда вградена в обвивката поради две\n" +" причини: позволява да се използват и идентификатори на задачи освен\n" +" идентификатори на процеси, а и ако сте пуснали максимално разрешения\n" +" за вас брой процеси, няма да ви се налага да пуснете още един процес,\n" +" за да убиете друг." + +#: builtins.c:917 +#, fuzzy +msgid "" +"Evaluate arithmetic expressions.\n" +" \n" +" Evaluate each ARG as an arithmetic expression. Evaluation is done in\n" +" fixed-width integers with no check for overflow, though division by 0\n" +" is trapped and flagged as an error. The following list of operators is\n" +" grouped into levels of equal-precedence operators. The levels are " +"listed\n" +" in order of decreasing precedence.\n" +" \n" +" \tid++, id--\tvariable post-increment, post-decrement\n" +" \t++id, --id\tvariable pre-increment, pre-decrement\n" +" \t-, +\t\tunary minus, plus\n" +" \t!, ~\t\tlogical and bitwise negation\n" +" \t**\t\texponentiation\n" +" \t*, /, %\t\tmultiplication, division, remainder\n" +" \t+, -\t\taddition, subtraction\n" +" \t<<, >>\t\tleft and right bitwise shifts\n" +" \t<=, >=, <, >\tcomparison\n" +" \t==, !=\t\tequality, inequality\n" +" \t&\t\tbitwise AND\n" +" \t^\t\tbitwise XOR\n" +" \t|\t\tbitwise OR\n" +" \t&&\t\tlogical AND\n" +" \t||\t\tlogical OR\n" +" \texpr ? expr : expr\n" +" \t\t\tconditional operator\n" +" \t=, *=, /=, %=,\n" +" \t+=, -=, <<=, >>=,\n" +" \t&=, ^=, |=\tassignment\n" +" \n" +" Shell variables are allowed as operands. The name of the variable\n" +" is replaced by its value (coerced to a fixed-width integer) within\n" +" an expression. The variable need not have its integer attribute\n" +" turned on to be used in an expression.\n" +" \n" +" Operators are evaluated in order of precedence. Sub-expressions in\n" +" parentheses are evaluated first and may override the precedence\n" +" rules above.\n" +" \n" +" Exit Status:\n" +" If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise.." +msgstr "" +" Всеки аргумент е аритметичен израз, който се бъде изчислен. Изчисленията\n" +" се извършват в аритметика с целочислени стойности с постоянна широчина\n" +" без проверка за препълване. Делението на 0 се прихваща и се отбелязва\n" +" грешка. Следващият списък на оператори е разделен на групи според\n" +" приоритета на операциите. Подредбата е с намаляващ приоритет.\n" +" \n" +" id++, id-- последващо увеличаване/намаляване на променлива\n" +" ++id, --id предварително увеличаване/намаляване на променлива\n" +" -, + унарни минус, плюс\n" +" !, ~ логическо и побитово отрицания\n" +" ** вдигане на степен\n" +" *, /, % умножение, деление, целочислен остатък\n" +" +, - събиране, изваждане\n" +" <<, >> побитово местене наляво и надясно\n" +" <=, >=, <, > сравнение\n" +" ==, != равно, различно\n" +" & побитово И\n" +" ^ побитово ИЛИ, ИЛИ\n" +" | побитово ИЛИ\n" +" && логическо И\n" +" || логическо ИЛИ\n" +" expr ? expr : expr\n" +" условен оператор\n" +" =, *=, /=, %=,\n" +" +=, -=, <<=, >>=,\n" +" &=, ^=, |= присвояване\n" +" \n" +" Разрешено е ползването на променливи на обвивката като операнди.\n" +" Името на променлива се замества с нейната стойност (която се\n" +" преобразува до цяло число с постоянна широчина) в израза. Не\n" +" е необходимо за променливата да е с атрибут за целочисленост, за\n" +" да се използва в израз.\n" +" \n" +" Операторите се изчисляват по приоритет. Подизразите в скоби се\n" +" изчисляват първи и могат да променят приоритета.\n" +" \n" +" Ако последният АРГУМЕНТ се изчислява като 0, „let“ връща 1. В\n" +" противен случай - връща 0." + +#: builtins.c:962 +#, fuzzy +msgid "" +"Read a line from the standard input and split it into fields.\n" +" \n" +" Reads a single line from the standard input, or from file descriptor FD\n" +" if the -u option is supplied. The line is split into fields as with " +"word\n" +" splitting, and the first word is assigned to the first NAME, the second\n" +" word to the second NAME, and so on, with any leftover words assigned to\n" +" the last NAME. Only the characters found in $IFS are recognized as " +"word\n" +" delimiters.\n" +" \n" +" If no NAMEs are supplied, the line read is stored in the REPLY " +"variable.\n" +" \n" +" Options:\n" +" -a array\tassign the words read to sequential indices of the array\n" +" \t\tvariable ARRAY, starting at zero\n" +" -d delim\tcontinue until the first character of DELIM is read, rather\n" +" \t\tthan newline\n" +" -e\t\tuse Readline to obtain the line in an interactive shell\n" +" -i text\tUse TEXT as the initial text for Readline\n" +" -n nchars\treturn after reading NCHARS characters rather than waiting\n" +" \t\tfor a newline\n" +" -p prompt\toutput the string PROMPT without a trailing newline before\n" +" \t\tattempting to read\n" +" -r\t\tdo not allow backslashes to escape any characters\n" +" -s\t\tdo not echo input coming from a terminal\n" +" -t timeout\ttime out and return failure if a complete line of input " +"is\n" +" \t\tnot read withint TIMEOUT seconds. The value of the TMOUT\n" +" \t\tvariable is the default timeout. TIMEOUT may be a\n" +" \t\tfractional number. If TIMEOUT is 0, read returns success only\n" +" \t\tif input is available on the specified file descriptor. The\n" +" \t\texit status is greater than 128 if the timeout is exceeded\n" +" -u fd\t\tread from file descriptor FD instead of the standard input\n" +" \n" +" Exit Status:\n" +" The return code is zero, unless end-of-file is encountered, read times " +"out,\n" +" or an invalid file descriptor is supplied as the argument to -u." +msgstr "" +" От стандартния вход или от файловия дескриптор ФД, ако е използвана опцията " +"„-u“,\n" +" се прочита един ред и първата дума се присвоява на първото ИМЕ, втората " +"дума\n" +" на второто ИМЕ и т.н., а на последното ИМЕ се присвояват оставащите " +"думи.\n" +" Като разделители на думи се използват само знаците указани в $IFS. Ако " +"не са\n" +" дадени ИМЕна, прочетеният ред се запазва в променливата $REPLY. Когато " +"е\n" +" използвана опцията „-r“, входът не се обработва и заместването на\n" +" екранираните с „\\“ знаци се изключва. Опцията „-d“ кара „read“ да\n" +" продължи до прочитането на първия знак, който присъства в променливата\n" +" $DELIM, а не до минаването на нов ред. Ако е зададена опцията „-p“, се\n" +" извежда низът ПОДСКАЗКА без минаване на нов ред, преди да се четат знаци " +"на\n" +" входа. Когато е зададена опцията „-a“, прочетените уми се присвояват\n" +" последователно на елементите на МАСИВа, като индексът му започва от 0. " +"Ако\n" +" присъства опцията „-e“, а обвивката е интерактивна, за четене на реда " +"се\n" +" използва „readline“. Когато опцията „-n“ има аргумент БРОЙ_ЗНАЦИ, то " +"„read“\n" +" свършва след прочитането на този БРОЙ_ЗНАЦИ. С опцията „-s“ входът от\n" +" терминал не се отпечатва на екрана.\n" +" \n" +" Опцията „-t“ задава ИНТЕРВАЛ, в който трябва да се въведе цял ред. В\n" +" противен случай „read“ завършва с грешка. Ако е зададена, стойността " +"на\n" +" променливата $TMOUT обозначава времето, за което трябва да се въведе " +"редът.\n" +" Изходният код е 0, освен ако не се срещне знак за край на файл „EOF“, " +"мине\n" +" ИНТЕРВАЛът за въвеждане или е зададен неправилен файлов дескриптор като\n" +" аргумент на „-u“." + +#: builtins.c:1002 +msgid "" +"Return from a shell function.\n" +" \n" +" Causes a function or sourced script to exit with the return value\n" +" specified by N. If N is omitted, the return status is that of the\n" +" last command executed within the function or script.\n" +" \n" +" Exit Status:\n" +" Returns N, or failure if the shell is not executing a function or script." +msgstr "" + +#: builtins.c:1015 +#, fuzzy +msgid "" +"Set or unset values of shell options and positional parameters.\n" +" \n" +" Change the value of shell attributes and positional parameters, or\n" +" display the names and values of shell variables.\n" +" \n" +" Options:\n" +" -a Mark variables which are modified or created for export.\n" +" -b Notify of job termination immediately.\n" +" -e Exit immediately if a command exits with a non-zero status.\n" +" -f Disable file name generation (globbing).\n" +" -h Remember the location of commands as they are looked up.\n" +" -k All assignment arguments are placed in the environment for a\n" +" command, not just those that precede the command name.\n" +" -m Job control is enabled.\n" +" -n Read commands but do not execute them.\n" +" -o option-name\n" +" Set the variable corresponding to option-name:\n" +" allexport same as -a\n" +" braceexpand same as -B\n" +" emacs use an emacs-style line editing interface\n" +" errexit same as -e\n" +" errtrace same as -E\n" +" functrace same as -T\n" +" hashall same as -h\n" +" histexpand same as -H\n" +" history enable command history\n" +" ignoreeof the shell will not exit upon reading EOF\n" +" interactive-comments\n" +" allow comments to appear in interactive commands\n" +" keyword same as -k\n" +" monitor same as -m\n" +" noclobber same as -C\n" +" noexec same as -n\n" +" noglob same as -f\n" +" nolog currently accepted but ignored\n" +" notify same as -b\n" +" nounset same as -u\n" +" onecmd same as -t\n" +" physical same as -P\n" +" pipefail the return value of a pipeline is the status of\n" +" the last command to exit with a non-zero status,\n" +" or zero if no command exited with a non-zero " +"status\n" +" posix change the behavior of bash where the default\n" +" operation differs from the Posix standard to\n" +" match the standard\n" +" privileged same as -p\n" +" verbose same as -v\n" +" vi use a vi-style line editing interface\n" +" xtrace same as -x\n" +" -p Turned on whenever the real and effective user ids do not match.\n" +" Disables processing of the $ENV file and importing of shell\n" +" functions. Turning this option off causes the effective uid and\n" +" gid to be set to the real uid and gid.\n" +" -t Exit after reading and executing one command.\n" +" -u Treat unset variables as an error when substituting.\n" +" -v Print shell input lines as they are read.\n" +" -x Print commands and their arguments as they are executed.\n" +" -B the shell will perform brace expansion\n" +" -C If set, disallow existing regular files to be overwritten\n" +" by redirection of output.\n" +" -E If set, the ERR trap is inherited by shell functions.\n" +" -H Enable ! style history substitution. This flag is on\n" +" by default when the shell is interactive.\n" +" -P If set, do not follow symbolic links when executing commands\n" +" such as cd which change the current directory.\n" +" -T If set, the DEBUG trap is inherited by shell functions.\n" +" - Assign any remaining arguments to the positional parameters.\n" +" The -x and -v options are turned off.\n" +" \n" +" Using + rather than - causes these flags to be turned off. The\n" +" flags can also be used upon invocation of the shell. The current\n" +" set of flags may be found in $-. The remaining n ARGs are positional\n" +" parameters and are assigned, in order, to $1, $2, .. $n. If no\n" +" ARGs are given, all shell variables are printed.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given." +msgstr "" +" -a Отбелязване на променливите, които са създадени или променени, да\n" +" бъдат изнесени.\n" +" -b Незабавно известяване на спиране на задача.\n" +" -e Незабавен изход, ако команда приключи команда с код, който не е " +"0.\n" +" -f Изключване на генерирането на имена на файлове (чрез „*“, „?“ и т." +"н.).\n" +" -h Запомняне на местоположението на команди при търсенето им.\n" +" -k Всички аргументи за присвояване се поместват в средата на команда, " +"не\n" +" само тези, които предхождат името на команда.\n" +" -m Включване на управлението на задачи.\n" +" -n Прочитане на команди, без да се изпълняват.\n" +" -o ИМЕ_НА_ОПЦИЯ\n" +" Задаване на променливата, която отговаря на ИМЕто_НА_ОПЦИЯ:\n" +" allexport същото като „-a“\n" +" braceexpand същото като „-B“\n" +" emacs използване на интерфейс за редактиране подобен на " +"„emacs“\n" +" errexit същото като „-e“\n" +" errtrace същото като „-E“\n" +" functrace същото като „-T“\n" +" hashall същото като „-h“\n" +" histexpand същото като „-H“\n" +" history включване на историята на командите\n" +" ignoreeof обвивката няма да излезе при откриване на знак за край " +"на\n" +" файл „EOF“.\n" +" interactive-comments\n" +" позволяване на коментари в интерактивните команди\n" +" keyword същото като „-k“\n" +" monitor същото като „-m“\n" +" noclobber същото като „-C“\n" +" noexec същото като „-n“\n" +" noglob същото като „-f“\n" +" nolog тази опция се приема в момента, но се игнорира\n" +" notify същото като „-b“\n" +" nounset същото като „-u“\n" +" onecmd същото като „-t“\n" +" physical същото като „-P“\n" +" pipefail изходният код на програмния канал е този на последната\n" +" команда, която завършва с код различен от 0\n" +" posix промяна на поведението на „bash“ да отговаря на " +"стандарт\n" +" 1003.2\n" +" privileged същото като „-p“\n" +" verbose същото като „-v“\n" +" vi използване на интерфейс за редактиране подобен на „vi“\n" +" xtrace същото като „-x“\n" +" -p Опцията включена. когато реалният и ефективният идентификатори " +"процеси\n" +" не съвпадат. Изключва обработката на файла $ENV и внасянето " +"на\n" +" функции на обвивката. Изключването на тази опция води до " +"това\n" +" ефективните идентификатори за потребител и група да станат " +"равни\n" +" на реалните.\n" +" -t Изход след прочитането и изпълнението на една команда.\n" +" -u Незададените променливи да се третират като грешки при " +"заместването.\n" +" -v Отпечатване на входните редове към обвивката при прочитането им.\n" +" -x Отпечатване на командите и аргументите им при изпълнението им.\n" +" -B Обвивката ще извършва заместване на изразите с фигурни скоби.\n" +" -C Предотвратяване на презаписването на съществуващите обикновени " +"файлове\n" +" чрез пренасочване на изхода.\n" +" -E Капанът за „ERR“ да се наследява от функциите на обвивката.\n" +" -H Включване на заместването чрез историята с „!“. Стандартно тази " +"опция\n" +" е налична за интерактивните обвивки.\n" +" -P Да не се следват символните връзки при изпълнението на команди " +"като\n" +" „cd“, които променят текущата директория.\n" +" -T Капанът за „DEBUG“ да се наследява от функциите на обвивката.\n" +" - Оставащите аргументи да се тълкуват като позиционни. Опциите „-x“ " +"и\n" +" са изключени.\n" +" \n" +" Използването на „+“ вместо „-“ изключва опциите. Тези опции могат да " +"се\n" +" използват и при стартирането на обвивката. Текущото им състояние се " +"намира\n" +" в „$-“. Останалите n на брой АРГументи са позиционни и се присвояват\n" +" съответно на $1, $2,… $n. Ако не са зададени АРГументи, се извеждат\n" +" всички променливи на средата." + +#: builtins.c:1097 +msgid "" +"Unset values and attributes of shell variables and functions.\n" +" \n" +" For each NAME, remove the corresponding variable or function.\n" +" \n" +" Options:\n" +" -f\ttreat each NAME as a shell function\n" +" -v\ttreat each NAME as a shell variable\n" +" \n" +" Without options, unset first tries to unset a variable, and if that " +"fails,\n" +" tries to unset a function.\n" +" \n" +" Some variables cannot be unset; also see `readonly'.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or a NAME is read-only." +msgstr "" + +#: builtins.c:1117 +msgid "" +"Set export attribute for shell variables.\n" +" \n" +" Marks each NAME for automatic export to the environment of subsequently\n" +" executed commands. If VALUE is supplied, assign VALUE before " +"exporting.\n" +" \n" +" Options:\n" +" -f\trefer to shell functions\n" +" -n\tremove the export property from each NAME\n" +" -p\tdisplay a list of all exported variables and functions\n" +" \n" +" An argument of `--' disables further option processing.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or NAME is invalid." +msgstr "" + +#: builtins.c:1136 +msgid "" +"Mark shell variables as unchangeable.\n" +" \n" +" Mark each NAME as read-only; the values of these NAMEs may not be\n" +" changed by subsequent assignment. If VALUE is supplied, assign VALUE\n" +" before marking as read-only.\n" +" \n" +" Options:\n" +" -a\trefer to indexed array variables\n" +" -A\trefer to associative array variables\n" +" -f\trefer to shell functions\n" +" -p\tdisplay a list of all readonly variables and functions\n" +" \n" +" An argument of `--' disables further option processing.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or NAME is invalid." +msgstr "" + +#: builtins.c:1157 +msgid "" +"Shift positional parameters.\n" +" \n" +" Rename the positional parameters $N+1,$N+2 ... to $1,$2 ... If N is\n" +" not given, it is assumed to be 1.\n" +" \n" +" Exit Status:\n" +" Returns success unless N is negative or greater than $#." +msgstr "" + +#: builtins.c:1169 builtins.c:1184 +#, fuzzy +msgid "" +"Execute commands from a file in the current shell.\n" +" \n" +" Read and execute commands from FILENAME in the current shell. The\n" +" entries in $PATH are used to find the directory containing FILENAME.\n" +" If any ARGUMENTS are supplied, they become the positional parameters\n" +" when FILENAME is executed.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed in FILENAME; fails if\n" +" FILENAME cannot be read." +msgstr "" +" Изчитане и изпълнение на командите от ФАЙЛа и изход. Директориите описани " +"в\n" +" променливата $PATH се използват за изпълнението на командите от ФАЙЛа. " +"Ако\n" +" са зададени АРГУМЕНТИ, те се превръщат в позиционни аргументи при\n" +" изпълнението на ФАЙЛа." + +#: builtins.c:1200 +msgid "" +"Suspend shell execution.\n" +" \n" +" Suspend the execution of this shell until it receives a SIGCONT signal.\n" +" Unless forced, login shells cannot be suspended.\n" +" \n" +" Options:\n" +" -f\tforce the suspend, even if the shell is a login shell\n" +" \n" +" Exit Status:\n" +" Returns success unless job control is not enabled or an error occurs." +msgstr "" + +#: builtins.c:1216 +#, fuzzy +msgid "" +"Evaluate conditional expression.\n" +" \n" +" Exits with a status of 0 (true) or 1 (false) depending on\n" +" the evaluation of EXPR. Expressions may be unary or binary. Unary\n" +" expressions are often used to examine the status of a file. There\n" +" are string operators as well, and numeric comparison operators.\n" +" \n" +" File operators:\n" +" \n" +" -a FILE True if file exists.\n" +" -b FILE True if file is block special.\n" +" -c FILE True if file is character special.\n" +" -d FILE True if file is a directory.\n" +" -e FILE True if file exists.\n" +" -f FILE True if file exists and is a regular file.\n" +" -g FILE True if file is set-group-id.\n" +" -h FILE True if file is a symbolic link.\n" +" -L FILE True if file is a symbolic link.\n" +" -k FILE True if file has its `sticky' bit set.\n" +" -p FILE True if file is a named pipe.\n" +" -r FILE True if file is readable by you.\n" +" -s FILE True if file exists and is not empty.\n" +" -S FILE True if file is a socket.\n" +" -t FD True if FD is opened on a terminal.\n" +" -u FILE True if the file is set-user-id.\n" +" -w FILE True if the file is writable by you.\n" +" -x FILE True if the file is executable by you.\n" +" -O FILE True if the file is effectively owned by you.\n" +" -G FILE True if the file is effectively owned by your group.\n" +" -N FILE True if the file has been modified since it was last " +"read.\n" +" \n" +" FILE1 -nt FILE2 True if file1 is newer than file2 (according to\n" +" modification date).\n" +" \n" +" FILE1 -ot FILE2 True if file1 is older than file2.\n" +" \n" +" FILE1 -ef FILE2 True if file1 is a hard link to file2.\n" +" \n" +" String operators:\n" +" \n" +" -z STRING True if string is empty.\n" +" \n" +" -n STRING\n" +" STRING True if string is not empty.\n" +" \n" +" STRING1 = STRING2\n" +" True if the strings are equal.\n" +" STRING1 != STRING2\n" +" True if the strings are not equal.\n" +" STRING1 < STRING2\n" +" True if STRING1 sorts before STRING2 " +"lexicographically.\n" +" STRING1 > STRING2\n" +" True if STRING1 sorts after STRING2 lexicographically.\n" +" \n" +" Other operators:\n" +" \n" +" -o OPTION True if the shell option OPTION is enabled.\n" +" ! EXPR True if expr is false.\n" +" EXPR1 -a EXPR2 True if both expr1 AND expr2 are true.\n" +" EXPR1 -o EXPR2 True if either expr1 OR expr2 is true.\n" +" \n" +" arg1 OP arg2 Arithmetic tests. OP is one of -eq, -ne,\n" +" -lt, -le, -gt, or -ge.\n" +" \n" +" Arithmetic binary operators return true if ARG1 is equal, not-equal,\n" +" less-than, less-than-or-equal, greater-than, or greater-than-or-equal\n" +" than ARG2.\n" +" \n" +" Exit Status:\n" +" Returns success if EXPR evaluates to true; fails if EXPR evaluates to\n" +" false or an invalid argument is given." +msgstr "" +" Изход с код 0 (истина) или 1 (лъжа) в зависимост от стойността на ИЗРАЗа.\n" +" Изразите могат да бъдат унарни или бинарни. Унарните най-често се " +"използват\n" +" за проверка на състоянието на файл. Освен тях има и оператори за " +"числови\n" +" сравнения и низови оператори.\n" +" \n" +" Файлови оператори:\n" +" \n" +" -a ФАЙЛ Истина, ако ФАЙЛът съществува.\n" +" -b ФАЙЛ Истина, ако ФАЙЛът е блоково устройство.\n" +" -c ФАЙЛ Истина, ако ФАЙЛът е знаково устройство.\n" +" -d ФАЙЛ Истина, ако ФАЙЛът е директория.\n" +" -e ФАЙЛ Истина, ако ФАЙЛът съществува.\n" +" -f ФАЙЛ Истина, ако ФАЙЛът съществува и е обикновен файл.\n" +" -g ФАЙЛ Истина, ако ФАЙЛът е със зададен бит за смяна на група\n" +" при изпълнение.\n" +" -h ФАЙЛ Истина, ако ФАЙЛът е символна връзка.\n" +" -L ФАЙЛ Истина, ако ФАЙЛът е символна връзка.\n" +" -k ФАЙЛ Истина, ако ФАЙЛът е със зададен лепкав бит.\n" +" -p ФАЙЛ Истина, ако ФАЙЛът е именуван програмен канал.\n" +" -r ФАЙЛ Истина, ако ФАЙЛът може да бъде прочетен от вас.\n" +" -s ФАЙЛ Истина, ако ФАЙЛът може да бъде записван от вас.\n" +" -S ФАЙЛ Истина, ако ФАЙЛът е програмно гнездо.\n" +" -t ФДСК Истина, ако Файловият_ДеСКриптор е отворен на терминал.\n" +" -u ФАЙЛ Истина, ако ФАЙЛът е със зададен бит за смяна на " +"потребител\n" +" при изпълнение.\n" +" -w ФАЙЛ Истина, ако ФАЙЛът може да бъде записван от вас.\n" +" -x ФАЙЛ Истина, ако ФАЙЛът може да бъде изпълняван от вас.\n" +" -O ФАЙЛ Истина, ако ФАЙЛът може да бъде ефективно притежаван от " +"вас.\n" +" -G ФАЙЛ Истина, ако ФАЙЛът може да бъде ефективно притежаван от " +"вашата\n" +" група.\n" +" -N ФАЙЛ Истина, ако ФАЙЛът е бил променян от последното му " +"прочитане.\n" +" \n" +" ФАЙЛ_1 -nt ФАЙЛ_2 Истина, ако ФАЙЛ_1 е по-нов от ФАЙЛ_2 (според\n" +" датата на промяна).\n" +" ФАЙЛ_1 -ot ФАЙЛ_2 Истина, ако ФАЙЛ_1 е по-стар от ФАЙЛ_2 " +"(според\n" +" датата на промяна). \n" +" ФАЙЛ_1 -ef ФАЙЛ_2 Истина, ако ФАЙЛ_1 е твърда връзка към " +"ФАЙЛ_2.\n" +" \n" +" Низови оператори:\n" +" \n" +" -z НИЗ Истина, ако НИЗът е празен.\n" +" -n НИЗ Истина, ако НИЗът не е празен.\n" +" НИЗ Истина, ако НИЗът не е празен.\n" +" \n" +" НИЗ_1 = НИЗ_2 Истина, ако низовете са равни.\n" +" НИЗ_1 != НИЗ_2 Истина, ако низовете не са равни.\n" +" НИЗ_1 < НИЗ_2 Истина, ако НИЗ_1 е лексикографски преди НИЗ_2.\n" +" НИЗ_1 > НИЗ_2 Истина, ако НИЗ_1 е лексикографски след НИЗ_2.\n" +" \n" +" Други оператори:\n" +" \n" +" -o ОПЦИЯ Истина, ако ОПЦИЯта на обвивката е " +"зададена.\n" +" ! ИЗРАЗ Истина, ако ИЗРАЗът е лъжа.\n" +" ИЗРАЗ_1 -a ИЗРАЗ_2 Истина, ако и двата ИЗРАЗа са истина.\n" +" ИЗРАЗ_1 -o ИЗРАЗ_2 Истина, ако поне един от ИЗРАЗите е истина.\n" +" \n" +" АРГ_1 ОПЕРАТОР АРГ_2 Аритметични тестове. Те връщат истина, ако " +"се\n" +" изпълнява математическото условие на " +"ОПЕРАТОРа,\n" +" който е един от следните (значението е в " +"скоби):\n" +" „-eq“ (=), „-ne“ (!=), „-lt“ (<),\n" +" „-le“ (<=), „-gt“ (>) , „-ge“ (>=)." + +#: builtins.c:1292 +#, fuzzy +msgid "" +"Evaluate conditional expression.\n" +" \n" +" This is a synonym for the \"test\" builtin, but the last argument must\n" +" be a literal `]', to match the opening `['." +msgstr "" +" Това е синоним на вградената команда „test“, но последният аргумент трябва\n" +" задължително да е знакът „]“, който да съответства на отварящата скоба " +"„[“." + +#: builtins.c:1301 +msgid "" +"Display process times.\n" +" \n" +" Prints the accumulated user and system times for the shell and all of " +"its\n" +" child processes.\n" +" \n" +" Exit Status:\n" +" Always succeeds." +msgstr "" + +#: builtins.c:1313 +#, fuzzy +msgid "" +"Trap signals and other events.\n" +" \n" +" Defines and activates handlers to be run when the shell receives " +"signals\n" +" or other conditions.\n" +" \n" +" ARG is a command to be read and executed when the shell receives the\n" +" signal(s) SIGNAL_SPEC. If ARG is absent (and a single SIGNAL_SPEC\n" +" is supplied) or `-', each specified signal is reset to its original\n" +" value. If ARG is the null string each SIGNAL_SPEC is ignored by the\n" +" shell and by the commands it invokes.\n" +" \n" +" If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell. " +"If\n" +" a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command.\n" +" \n" +" If no arguments are supplied, trap prints the list of commands " +"associated\n" +" with each signal.\n" +" \n" +" Options:\n" +" -l\tprint a list of signal names and their corresponding numbers\n" +" -p\tdisplay the trap commands associated with each SIGNAL_SPEC\n" +" \n" +" Each SIGNAL_SPEC is either a signal name in or a signal " +"number.\n" +" Signal names are case insensitive and the SIG prefix is optional. A\n" +" signal may be sent to the shell with \"kill -signal $$\".\n" +" \n" +" Exit Status:\n" +" Returns success unless a SIGSPEC is invalid or an invalid option is " +"given." +msgstr "" +" Командата АРГУМЕНТ ще бъде прочетена и изпълнена, когато обвивката получи\n" +" УКАЗАНия_СИГНАЛ(и). Ако АРГУМЕНТът липсва (и се подава единичен\n" +" УКАЗАН_СИГНАЛ) или е „-“, то всеки УКАЗАН_СИГНАЛ се връща към " +"първоначалната\n" +" си стойност. Ако АРГУМЕНТът е нулевия низ, всеки УКАЗАН_СИГНАЛ се\n" +" пренебрегва от обвивката и командите, които се стартират през нея. Ако\n" +" УКАЗАНият_СИГНАЛ е „EXIT (0)“, то командата АРГУМЕНТ се изпълнява от\n" +" обвивката при изход. Ако УКАЗАНият_СИГНАЛ е „DEBUG“, АРГУМЕНТът се\n" +" изпълнява след всяка проста команда. Ако е дадена опцията „-p“, то\n" +" се извеждат командите свързани с всеки УКАЗАН_СИГНАЛ. Всеки " +"УКАЗАН_СИГНАЛ\n" +" е или име на сигнал от файла „signal.h“ или номер на сигнал. Няма " +"разлика\n" +" между главни и малки букви в имената на сигнали, а представката „SIG“ не " +"е\n" +" задължителна. „trap -l“ отпечатва списъка с имената на сигналите и\n" +" съответстващите им номера. Забележете, че сигнал може да бъде изпратен " +"на\n" +" обвивката с командата „kill -signal $$“." + +#: builtins.c:1345 +msgid "" +"Display information about command type.\n" +" \n" +" For each NAME, indicate how it would be interpreted if used as a\n" +" command name.\n" +" \n" +" Options:\n" +" -a\tdisplay all locations containing an executable named NAME;\n" +" \tincludes aliases, builtins, and functions, if and only if\n" +" \tthe `-p' option is not also used\n" +" -f\tsuppress shell function lookup\n" +" -P\tforce a PATH search for each NAME, even if it is an alias,\n" +" \tbuiltin, or function, and returns the name of the disk file\n" +" \tthat would be executed\n" +" -p\treturns either the name of the disk file that would be executed,\n" +" \tor nothing if `type -t NAME' would not return `file'.\n" +" -t\toutput a single word which is one of `alias', `keyword',\n" +" \t`function', `builtin', `file' or `', if NAME is an alias, shell\n" +" \treserved word, shell function, shell builtin, disk file, or not\n" +" \tfound, respectively\n" +" \n" +" Arguments:\n" +" NAME\tCommand name to be interpreted.\n" +" \n" +" Exit Status:\n" +" Returns success if all of the NAMEs are found; fails if any are not " +"found." +msgstr "" + +#: builtins.c:1376 +#, fuzzy +msgid "" +"Modify shell resource limits.\n" +" \n" +" Provides control over the resources available to the shell and " +"processes\n" +" it creates, on systems that allow such control.\n" +" \n" +" Options:\n" +" -S\tuse the `soft' resource limit\n" +" -H\tuse the `hard' resource limit\n" +" -a\tall current limits are reported\n" +" -b\tthe socket buffer size\n" +" -c\tthe maximum size of core files created\n" +" -d\tthe maximum size of a process's data segment\n" +" -e\tthe maximum scheduling priority (`nice')\n" +" -f\tthe maximum size of files written by the shell and its children\n" +" -i\tthe maximum number of pending signals\n" +" -l\tthe maximum size a process may lock into memory\n" +" -m\tthe maximum resident set size\n" +" -n\tthe maximum number of open file descriptors\n" +" -p\tthe pipe buffer size\n" +" -q\tthe maximum number of bytes in POSIX message queues\n" +" -r\tthe maximum real-time scheduling priority\n" +" -s\tthe maximum stack size\n" +" -t\tthe maximum amount of cpu time in seconds\n" +" -u\tthe maximum number of user processes\n" +" -v\tthe size of virtual memory\n" +" -x\tthe maximum number of file locks\n" +" \n" +" If LIMIT is given, it is the new value of the specified resource; the\n" +" special LIMIT values `soft', `hard', and `unlimited' stand for the\n" +" current soft limit, the current hard limit, and no limit, respectively.\n" +" Otherwise, the current value of the specified resource is printed. If\n" +" no option is given, then -f is assumed.\n" +" \n" +" Values are in 1024-byte increments, except for -t, which is in seconds,\n" +" -p, which is in increments of 512 bytes, and -u, which is an unscaled\n" +" number of processes.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" +" ulimit осъществява контрол върху ресурсите, които са достъпни на процесите\n" +" стартирани през обвивката върху системите, които поддържат такова\n" +" управление. Ако са зададени опции, те означават следното:\n" +" \n" +" -S използване на „мекото“ ограничение на ресурс\n" +" -H използване на „твърдото“ ограничение на ресурс\n" +" -a извеждат се всички текущи ограничения\n" +" -c максималният размер на създадените файлове със съдържание на\n" +" паметта (core)\n" +" -d максималният размер на сегмента на процес за данни\n" +" -f максималният размер на файловете създадени от обвивката\n" +" -i максималният брой на изчакващите сигнали\n" +" -l максималният размер памет, която процес може да заключи\n" +" -m максималният постоянно зареден в паметта сегмент\n" +" -n максималният брой дескриптори на отворени файлове\n" +" -p размер на буфера за конвейери\n" +" -q максималният брой байтове в опашките за съобщения по POSIX\n" +" -s максималният размер на стека\n" +" -t максималното процесорно време в секунди\n" +" -u максималният брой потребителски процеси\n" +" -v размерът на виртуалната памет\n" +" -x максималният брой заключвания на файлове\n" +" \n" +" Ако е зададено ОГРАНИЧЕНИЕ, то това е новата стойност на указания " +"ресурс.\n" +" Специалните стойности „soft“, „hard“ и „unlimited“ означават текущите " +"меко,\n" +" твърдо и никакво ограничение съответно. В противен случай се извежда\n" +" текущата стойност на указания ресурс. Стойностите са в блокове от по " +"1024\n" +" байта, с изключение на:\n" +" - опцията „-p“, при която блоковете са от по 512 байта;\n" +" - опцията „-t“, при която стойността е в секунди;\n" +" - опцията „-u“, при която стойността е точният брой процеси." + +#: builtins.c:1421 +msgid "" +"Display or set file mode mask.\n" +" \n" +" Sets the user file-creation mask to MODE. If MODE is omitted, prints\n" +" the current value of the mask.\n" +" \n" +" If MODE begins with a digit, it is interpreted as an octal number;\n" +" otherwise it is a symbolic mode string like that accepted by chmod(1).\n" +" \n" +" Options:\n" +" -p\tif MODE is omitted, output in a form that may be reused as input\n" +" -S\tmakes the output symbolic; otherwise an octal number is output\n" +" \n" +" Exit Status:\n" +" Returns success unless MODE is invalid or an invalid option is given." +msgstr "" + +#: builtins.c:1441 +msgid "" +"Wait for job completion and return exit status.\n" +" \n" +" Waits for the process identified by ID, which may be a process ID or a\n" +" job specification, and reports its termination status. If ID is not\n" +" given, waits for all currently active child processes, and the return\n" +" status is zero. If ID is a a job specification, waits for all " +"processes\n" +" in the job's pipeline.\n" +" \n" +" Exit Status:\n" +" Returns the status of ID; fails if ID is invalid or an invalid option " +"is\n" +" given." +msgstr "" + +#: builtins.c:1459 +#, fuzzy +msgid "" +"Wait for process completion and return exit status.\n" +" \n" +" Waits for the specified process and reports its termination status. If\n" +" PID is not given, all currently active child processes are waited for,\n" +" and the return code is zero. PID must be a process ID.\n" +" \n" +" Exit Status:\n" +" Returns the status of ID; fails if ID is invalid or an invalid option " +"is\n" +" given." +msgstr "" +" Изчакване на указания процес и докладване за изходния код. Ако не е " +"зададен N,\n" +" всички текущо активни дъщерни процеси се изчакват и изходният код е 0. " +"N\n" +" може да е идентификатор на процес или задача. Ако е задача, изчакват " +"се\n" +" всички процеси в програмния канал на задачата." + +#: builtins.c:1474 +#, fuzzy +msgid "" +"Execute commands for each member in a list.\n" +" \n" +" The `for' loop executes a sequence of commands for each member in a\n" +" list of items. If `in WORDS ...;' is not present, then `in \"$@\"' is\n" +" assumed. For each element in WORDS, NAME is set to that element, and\n" +" the COMMANDS are executed.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +" Цикълът „for“ изпълнява последователност от команди за всеки член в списък " +"от\n" +" елементи. Ако блокът „в ДУМИ …“ не присъства, използва се „in \"$@\"“. " +"За\n" +" всеки елемент в ДУМИте, ИМЕто се задава да е елементът и се изпълняват\n" +" КОМАНДИте." + +#: builtins.c:1488 +#, fuzzy +msgid "" +"Arithmetic for loop.\n" +" \n" +" Equivalent to\n" +" \t(( EXP1 ))\n" +" \twhile (( EXP2 )); do\n" +" \t\tCOMMANDS\n" +" \t\t(( EXP3 ))\n" +" \tdone\n" +" EXP1, EXP2, and EXP3 are arithmetic expressions. If any expression is\n" +" omitted, it behaves as if it evaluates to 1.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +" Еквивалентно на:\n" +" (( ИЗРАЗ_1 ))\n" +" while (( ИЗРАЗ_2 )); do\n" +" КОМАНДИ\n" +" (( EXP_3 ))\n" +" done\n" +" ИЗРАЗ_1, ИЗРАЗ_2, и ИЗРАЗ_3 са аритметични изрази. Всеки изпуснат израз " +"се\n" +" изчислява да е 1." + +#: builtins.c:1506 +#, fuzzy +msgid "" +"Select words from a list and execute commands.\n" +" \n" +" The WORDS are expanded, generating a list of words. The\n" +" set of expanded words is printed on the standard error, each\n" +" preceded by a number. If `in WORDS' is not present, `in \"$@\"'\n" +" is assumed. The PS3 prompt is then displayed and a line read\n" +" from the standard input. If the line consists of the number\n" +" corresponding to one of the displayed words, then NAME is set\n" +" to that word. If the line is empty, WORDS and the prompt are\n" +" redisplayed. If EOF is read, the command completes. Any other\n" +" value read causes NAME to be set to null. The line read is saved\n" +" in the variable REPLY. COMMANDS are executed after each selection\n" +" until a break command is executed.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +" ДУМИте биват замествани, което води до създаването на списък с думи.\n" +" Наборът от заместените думи бива отпечатан на изхода за стандартната\n" +" грешка, като всяка от тях се предшества от номер. Ако клаузата „in " +"ДУМИ“\n" +" липсва, използва се „in \"$@\"“. В такива случа се отпечатва " +"подсказката PS3\n" +" и от стандартния вход се прочита ред. Ако редът се състои от номера, " +"който\n" +" съответства на някоя от показаните думи, ИМЕто се задава да е тази " +"дума.\n" +" Ако редът е празен, отново се отпечатват ДУМИте и подсказката. Ако се\n" +" прочете „EOF“, командата завършва. Всяка друга стойност присвоява " +"„null“ на\n" +" ИМЕ. Прочетеният ред „null“ се запазва в променливата REPLY. КОМАНДИте " +"се\n" +" изпълняват след всеки избор до изпълняването на команда за прекъсване\n" +" (break)." + +#: builtins.c:1527 +#, fuzzy +msgid "" +"Report time consumed by pipeline's execution.\n" +" \n" +" Execute PIPELINE and print a summary of the real time, user CPU time,\n" +" and system CPU time spent executing PIPELINE when it terminates.\n" +" \n" +" Options:\n" +" -p\tprint the timing summary in the portable Posix format\n" +" \n" +" The value of the TIMEFORMAT variable is used as the output format.\n" +" \n" +" Exit Status:\n" +" The return status is the return status of PIPELINE." +msgstr "" +" Изпълнение на ПРОГРАМНия_КАНАЛ и отпечатване на обобщение за реалното,\n" +" потребителското и системно процесорни времена, които изпълнението на\n" +" ПРОГРАМНия_КАНАЛ отнема. Изходният код е този на ПРОГРАМНия_КАНАЛ. " +"Опцията\n" +" „-p“ води до извеждане на статистиката за времето в различен формат - " +"според\n" +" стойността на променливата на средата $TIMEFORMAT." + +#: builtins.c:1544 +#, fuzzy +msgid "" +"Execute commands based on pattern matching.\n" +" \n" +" Selectively execute COMMANDS based upon WORD matching PATTERN. The\n" +" `|' is used to separate multiple patterns.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +" Избирателно се изпълняват КОМАНДИ на база ДУМА, която напасва на ШАБЛОН.\n" +" Шаблоните се разделят със знака „|“." + +#: builtins.c:1556 +#, fuzzy +msgid "" +"Execute commands based on conditional.\n" +" \n" +" The `if COMMANDS' list is executed. If its exit status is zero, then " +"the\n" +" `then COMMANDS' list is executed. Otherwise, each `elif COMMANDS' list " +"is\n" +" executed in turn, and if its exit status is zero, the corresponding\n" +" `then COMMANDS' list is executed and the if command completes. " +"Otherwise,\n" +" the `else COMMANDS' list is executed, if present. The exit status of " +"the\n" +" entire construct is the exit status of the last command executed, or " +"zero\n" +" if no condition tested true.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +" Първо се изпълняват командите в блока „if КОМАНДИ“. Ако изходният код е 0, " +"то\n" +" се изпълнява блокът „then КОМАНДИ“. В противен случай последователно " +"се\n" +" изпълнява всеки блок „elif КОМАНДИ“ - ако изходният код е 0, то се " +"изпълнява\n" +" съответния блок „then КОМАНДИ“, след което завършва изпълнението на " +"целия\n" +" блок „if“. Ако изходният код на никой от блоковете „if“ и „elif“ не е " +"бил 0,\n" +" изпълнява се блока „else КОМАНДИ“, стига такъв да присъства. Изходният " +"код\n" +" от цялата конструкция е този на последната изпълнена команда или е 0, " +"ако\n" +" никое тестово условие, не се е оценило като истина." + +#: builtins.c:1573 +#, fuzzy +msgid "" +"Execute commands as long as a test succeeds.\n" +" \n" +" Expand and execute COMMANDS as long as the final command in the\n" +" `while' COMMANDS has an exit status of zero.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +" Заместване и изпълнение на КОМАНДИте докато последната команда в блока " +"„while“\n" +" е с изходен код, който е 0." + +#: builtins.c:1585 +#, fuzzy +msgid "" +"Execute commands as long as a test does not succeed.\n" +" \n" +" Expand and execute COMMANDS as long as the final command in the\n" +" `until' COMMANDS has an exit status which is not zero.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +" Заместване и изпълнение на КОМАНДИте докато последната команда в блока " +"„until“\n" +" е с изходен код, който не е 0." + +#: builtins.c:1597 +msgid "" +"Define shell function.\n" +" \n" +" Create a shell function named NAME. When invoked as a simple command,\n" +" NAME runs COMMANDs in the calling shell's context. When NAME is " +"invoked,\n" +" the arguments are passed to the function as $1...$n, and the function's\n" +" name is in $FUNCNAME.\n" +" \n" +" Exit Status:\n" +" Returns success unless NAME is readonly." +msgstr "" + +#: builtins.c:1611 +#, fuzzy +msgid "" +"Group commands as a unit.\n" +" \n" +" Run a set of commands in a group. This is one way to redirect an\n" +" entire set of commands.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +" Изпълняване на цял набор от команди в група. Това е един от начините да " +"се\n" +" цял набор от команди." + +#: builtins.c:1623 +#, fuzzy +msgid "" +"Resume job in foreground.\n" +" \n" +" Equivalent to the JOB_SPEC argument to the `fg' command. Resume a\n" +" stopped or background job. JOB_SPEC can specify either a job name\n" +" or a job number. Following JOB_SPEC with a `&' places the job in\n" +" the background, as if the job specification had been supplied as an\n" +" argument to `bg'.\n" +" \n" +" Exit Status:\n" +" Returns the status of the resumed job." +msgstr "" +" Еквивалентно на аргумента ЗАДАЧА на командата „fg“. Възобновява спряна\n" +" задача или такава на заден фон. ЗАДАЧАта може да указва или име, или\n" +" номер на задача. Ако след ЗАДАЧАта се въведе знакът „&“, задачата\n" +" се изпълнява във фонов режим, все едно е била подадена като аргумент\n" +" на командата „bg“." + +#: builtins.c:1638 +#, fuzzy +msgid "" +"Evaluate arithmetic expression.\n" +" \n" +" The EXPRESSION is evaluated according to the rules for arithmetic\n" +" evaluation. Equivalent to \"let EXPRESSION\".\n" +" \n" +" Exit Status:\n" +" Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise." +msgstr "" +" ИЗРАЗът се изчислява според правилата на аритметичното оценяване.\n" +" Еквивалентно на „let ИЗРАЗ“." + +#: builtins.c:1650 +#, fuzzy +msgid "" +"Execute conditional command.\n" +" \n" +" Returns a status of 0 or 1 depending on the evaluation of the " +"conditional\n" +" expression EXPRESSION. Expressions are composed of the same primaries " +"used\n" +" by the `test' builtin, and may be combined using the following " +"operators:\n" +" \n" +" ( EXPRESSION )\tReturns the value of EXPRESSION\n" +" ! EXPRESSION\t\tTrue if EXPRESSION is false; else false\n" +" EXPR1 && EXPR2\tTrue if both EXPR1 and EXPR2 are true; else false\n" +" EXPR1 || EXPR2\tTrue if either EXPR1 or EXPR2 is true; else false\n" +" \n" +" When the `==' and `!=' operators are used, the string to the right of\n" +" the operator is used as a pattern and pattern matching is performed.\n" +" When the `=~' operator is used, the string to the right of the operator\n" +" is matched as a regular expression.\n" +" \n" +" The && and || operators do not evaluate EXPR2 if EXPR1 is sufficient to\n" +" determine the expression's value.\n" +" \n" +" Exit Status:\n" +" 0 or 1 depending on value of EXPRESSION." +msgstr "" +" Връща състояние 0 или 1 в зависимост от оценката на условния ИЗРАЗ. " +"Изразите\n" +" са съставени от същите примитиви, както вградената команда „test“ и " +"могат да\n" +" се съчетават чрез следните оператори:\n" +" \n" +" ( ИЗРАЗ ) Връща стойността на ИЗРАЗа\n" +" ! ИЗРАЗ Истина, ако ИЗРАЗ се оценя на лъжа, в останалите " +"случаи\n" +" е лъжа\n" +" ИЗРАЗ1 && ИЗРАЗ2 Истина, ако едновременно ИЗРАЗ1 и ИЗРАЗ2 са " +"истина,\n" +" в останалите случаи е лъжа.\n" +" ИЗРАЗ1 || ИЗРАЗ2 Истина, ако поне единият от ИЗРАЗ1 и ИЗРАЗ2 е " +"истина,\n" +" в останалите случаи е лъжа.\n" +" \n" +" Когато се използват операторите „==“ и „!=“, низът от дясната страна на\n" +" оператора се използва като шаблон и се извършва напасване. Операторите\n" +" „&&“ и „||“ не оценят ИЗРАЗ2, ако ИЗРАЗ1 е достатъчен за определяне на\n" +" стойността на израза." + +#: builtins.c:1676 +#, fuzzy +msgid "" +"Common shell variable names and usage.\n" +" \n" +" BASH_VERSION\tVersion information for this Bash.\n" +" CDPATH\tA colon-separated list of directories to search\n" +" \t\tfor directories given as arguments to `cd'.\n" +" GLOBIGNORE\tA colon-separated list of patterns describing filenames to\n" +" \t\tbe ignored by pathname expansion.\n" +" HISTFILE\tThe name of the file where your command history is stored.\n" +" HISTFILESIZE\tThe maximum number of lines this file can contain.\n" +" HISTSIZE\tThe maximum number of history lines that a running\n" +" \t\tshell can access.\n" +" HOME\tThe complete pathname to your login directory.\n" +" HOSTNAME\tThe name of the current host.\n" +" HOSTTYPE\tThe type of CPU this version of Bash is running under.\n" +" IGNOREEOF\tControls the action of the shell on receipt of an EOF\n" +" \t\tcharacter as the sole input. If set, then the value\n" +" \t\tof it is the number of EOF characters that can be seen\n" +" \t\tin a row on an empty line before the shell will exit\n" +" \t\t(default 10). When unset, EOF signifies the end of input.\n" +" MACHTYPE\tA string describing the current system Bash is running on.\n" +" MAILCHECK\tHow often, in seconds, Bash checks for new mail.\n" +" MAILPATH\tA colon-separated list of filenames which Bash checks\n" +" \t\tfor new mail.\n" +" OSTYPE\tThe version of Unix this version of Bash is running on.\n" +" PATH\tA colon-separated list of directories to search when\n" +" \t\tlooking for commands.\n" +" PROMPT_COMMAND\tA command to be executed before the printing of each\n" +" \t\tprimary prompt.\n" +" PS1\t\tThe primary prompt string.\n" +" PS2\t\tThe secondary prompt string.\n" +" PWD\t\tThe full pathname of the current directory.\n" +" SHELLOPTS\tA colon-separated list of enabled shell options.\n" +" TERM\tThe name of the current terminal type.\n" +" TIMEFORMAT\tThe output format for timing statistics displayed by the\n" +" \t\t`time' reserved word.\n" +" auto_resume\tNon-null means a command word appearing on a line by\n" +" \t\titself is first looked for in the list of currently\n" +" \t\tstopped jobs. If found there, that job is foregrounded.\n" +" \t\tA value of `exact' means that the command word must\n" +" \t\texactly match a command in the list of stopped jobs. A\n" +" \t\tvalue of `substring' means that the command word must\n" +" \t\tmatch a substring of the job. Any other value means that\n" +" \t\tthe command must be a prefix of a stopped job.\n" +" histchars\tCharacters controlling history expansion and quick\n" +" \t\tsubstitution. The first character is the history\n" +" \t\tsubstitution character, usually `!'. The second is\n" +" \t\tthe `quick substitution' character, usually `^'. The\n" +" \t\tthird is the `history comment' character, usually `#'.\n" +" HISTIGNORE\tA colon-separated list of patterns used to decide which\n" +" \t\tcommands should be saved on the history list.\n" +msgstr "" +" BASHVERSION Информация за версията на bash.\n" +" CDPATH Списък с директории разделени с двоеточие, които да се\n" +" търсят като аргументи за командата „cd“.\n" +" GLOBIGNORE Списък с шаблони на файлови имена, разделени с " +"двоеточие,\n" +" които да се игнорират от заместването на пътя.\n" +" HISTFILE Името на файла, в който се съхранява историята на " +"командите.\n" +" HISTFILESIZE Максималният брой редове, които горният файл може да\n" +" съдържа.\n" +" HISTSIZE Максималният брой редове, които една работеща обвивка " +"може да\n" +" достъпи.\n" +" HOME Пълният път до домашната ви директория.\n" +" HOSTNAME Името на текущата машина.\n" +" HOSTTYPE Видът на процесора, под който работи текущата обвивка.\n" +" IGNOREEOF Управлява действието на обвивката при срещането на " +"единичен\n" +" знак за край на файл „EOF“. Ако променливата е " +"зададена,\n" +" тя указва броя на знаците „EOF“, който могат да се\n" +" срещнат самостоятелно на един ред, преди обвивката " +"да\n" +" завърши работа и излезе (стандартно е 10). Когато\n" +" променливата не е зададена, един „EOF“ означава край " +"на\n" +" входящите данни.\n" +" MACHTYPE Низ, който описва текущата система, на която работи " +"bash.\n" +" MAILCHECK Колко често, в секунди, да проверява bash за нови " +"писма.\n" +" MAILPATH Списък с файлове, които bash проверява за нови писма.\n" +" OSTYPE Версията на Юникс, на която работи bash.\n" +" PATH Списък с директории, които да се претърсват за команди.\n" +" PROMPTCOMMAND Команда, която да се изпълнява преди отпечатването на\n" +" основната подсказка на командния ред.\n" +" PS1 Низ за основната подсказка.\n" +" PS2 Низ за втората подсказка.\n" +" PWD Пълният път и име на текущата директория.\n" +" SHELLOPTS Списък с включените опции на обвивката, разделени с\n" +" двоеточие.\n" +" TERM Името на текущия вид терминал.\n" +" TIMEFORMAT Изходният формат за статистиката за времето за " +"изпълнение\n" +" на команда, който се използва от запазената дума " +"„time“.\n" +" autoresume Стойност, която не е „null“, означава, че командна дума, " +"която\n" +" се появява самостоятелно на ред, първо се проверява " +"в\n" +" списъка с текущо спрените задачи. Ако бъде открита " +"там,\n" +" задачата се пуска и се слага на преден план. " +"Стойност\n" +" „exact“ (строго съвпадение) означава, че командната\n" +" дума, трябва точно да съвпада с името на команда в\n" +" списъка със спрени задачи. Стойност „substring“\n" +" (съвпадение на подниз) означава, че командната дума\n" +" трябва да е подниз на задачата. Всяка друга " +"стойност\n" +" означава, че командата думата трябва да е началото " +"на\n" +" спряна задача.\n" +" histchars Знаци, които определят бързото заместване и това по " +"история.\n" +" Първият знак е за заместването по история, " +"обикновено е\n" +" „!“. Вторият е за бързото заместване, обикновено е " +"„^“.\n" +" Третият е за коментарите в историята, обикновено е " +"„#“.\n" +" HISTIGNORE Списък с шаблони, разделени с двоеточие, които указват " +"кои\n" +" команди да не се запазват в историята.\n" + +#: builtins.c:1733 +#, fuzzy +msgid "" +"Add directories to stack.\n" +" \n" +" Adds a directory to the top of the directory stack, or rotates\n" +" the stack, making the new top of the stack the current working\n" +" directory. With no arguments, exchanges the top two directories.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when adding\n" +" \tdirectories to the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the left of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" -N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the right of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" dir\tAdds DIR to the directory stack at the top, making it the\n" +" \tnew current working directory.\n" +" \n" +" The `dirs' builtin displays the directory stack.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid argument is supplied or the directory\n" +" change fails." +msgstr "" +" Добавя директория в стека на директориите или превърта стека\n" +" като най-горна директория става текущата директория. Без\n" +" аргументи сменя най-горните две директории.\n" +" \n" +" +N Превърта стека, така че N-тата директория (като се брои\n" +" от лявата страна на списъка, показан от командата „dirs“\n" +" като се почва от 0) да е най-отгоре.\n" +" \n" +" -N Превърта стека, така че N-тата директория (като се брои\n" +" от дясната страна на списъка, показан от командата „dirs“\n" +" като се почва от 0) да е най-отгоре.\n" +" \n" +" -n подтискане на нормалното преминаване към директория при\n" +" добавянето на директории към стека, така че се променя само той.\n" +"\n" +" dir добавя ДИР най-отгоре в стека на директориите, като я прави\n" +" новата текуща работна директория.\n" +" \n" +" Можете да изведете стека на директорията с командата „dirs“." + +#: builtins.c:1767 +#, fuzzy +msgid "" +"Remove directories from stack.\n" +" \n" +" Removes entries from the directory stack. With no arguments, removes\n" +" the top directory from the stack, and changes to the new top directory.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when removing\n" +" \tdirectories from the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRemoves the Nth entry counting from the left of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd +0'\n" +" \tremoves the first directory, `popd +1' the second.\n" +" \n" +" -N\tRemoves the Nth entry counting from the right of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd -0'\n" +" \tremoves the last directory, `popd -1' the next to last.\n" +" \n" +" The `dirs' builtin displays the directory stack.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid argument is supplied or the directory\n" +" change fails." +msgstr "" +" Маха директории от стека с тях. Без аргументи\n" +" премахва последната директория в стека и влиза в новата\n" +" последна директория.\n" +" \n" +" +N премахва N-тия елемент като се брои отляво в списъка\n" +" показван от командата „dirs“, като се брои от 0. Напр.: „popd +0“\n" +" премахва първата директория, „popd +1“ - втората.\n" +"\n" +" -N премахва N-тия елемент като се брои отдясно в списъка\n" +" показван от командата „dirs“, като се брои от 0. Напр.: „popd -0“\n" +" премахва последната директория, „popd -1“ - предпоследната.\n" +"\n" +" -n подтискане на нормалното преминаване към директория при добавянето " +"на\n" +" директории към стека, така че се променя само той.\n" +"\n" +" Стекът с директориите се визуализира с командата „dirs“." + +#: builtins.c:1797 +#, fuzzy +msgid "" +"Display directory stack.\n" +" \n" +" Display the list of currently remembered directories. Directories\n" +" find their way onto the list with the `pushd' command; you can get\n" +" back up through the list with the `popd' command.\n" +" \n" +" Options:\n" +" -c\tclear the directory stack by deleting all of the elements\n" +" -l\tdo not print tilde-prefixed versions of directories relative\n" +" \tto your home directory\n" +" -p\tprint the directory stack with one entry per line\n" +" -v\tprint the directory stack with one entry per line prefixed\n" +" \twith its position in the stack\n" +" \n" +" Arguments:\n" +" +N\tDisplays the Nth entry counting from the left of the list shown " +"by\n" +" \tdirs when invoked without options, starting with zero.\n" +" \n" +" -N\tDisplays the Nth entry counting from the right of the list shown " +"by\n" +" \tdirs when invoked without options, starting with zero.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" +" Показва списъка с текущо запомнените директории. Списъкът се попълва чрез\n" +" командата „pushd“. Можете да вадите директории от списъка с командата\n" +" „popd“.\n" +" \n" +" Опцията „-l“ кара командата „dirs“ да извежда пълните имена на " +"директориите,\n" +" а не съкратените спрямо домашната директория имена. Това означава, че\n" +" „~/bin“ може да се покаже като „/homes/pesho/bin“. Опцията „-v“ води " +"до\n" +" отпечатване на стека на директориите, като всеки елемент се извежда на " +"нов\n" +" ред и се предхожда от номера си в стека. Опцията „-p“ също води до " +"поредово\n" +" отпечатване, но без поредния номер в стека. Опцията „-c“ изчиства стека " +"на\n" +" директориите като изтрива всички елементи.\n" +" \n" +" +N показва N-тия елемент отляво в списъка показван от\n" +" командата „dirs“, когато е стартирана без опции. Брои се от 0.\n" +" \n" +" -N показва N-тия елемент отдясно в списъка показван от\n" +" командата „dirs“, когато е стартирана без опции. Брои се от 0." + +#: builtins.c:1826 +msgid "" +"Set and unset shell options.\n" +" \n" +" Change the setting of each shell option OPTNAME. Without any option\n" +" arguments, list all shell options with an indication of whether or not " +"each\n" +" is set.\n" +" \n" +" Options:\n" +" -o\trestrict OPTNAMEs to those defined for use with `set -o'\n" +" -p\tprint each shell option with an indication of its status\n" +" -q\tsuppress output\n" +" -s\tenable (set) each OPTNAME\n" +" -u\tdisable (unset) each OPTNAME\n" +" \n" +" Exit Status:\n" +" Returns success if OPTNAME is enabled; fails if an invalid option is\n" +" given or OPTNAME is disabled." +msgstr "" + +#: builtins.c:1847 +#, fuzzy +msgid "" +"Formats and prints ARGUMENTS under control of the FORMAT.\n" +" \n" +" Options:\n" +" -v var\tassign the output to shell variable VAR rather than\n" +" \t\tdisplay it on the standard output\n" +" \n" +" FORMAT is a character string which contains three types of objects: " +"plain\n" +" characters, which are simply copied to standard output; character " +"escape\n" +" sequences, which are converted and copied to the standard output; and\n" +" format specifications, each of which causes printing of the next " +"successive\n" +" argument.\n" +" \n" +" In addition to the standard format specifications described in printf" +"(1)\n" +" and printf(3), printf interprets:\n" +" \n" +" %b\texpand backslash escape sequences in the corresponding argument\n" +" %q\tquote the argument in a way that can be reused as shell input\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or a write or " +"assignment\n" +" error occurs." +msgstr "" +" printf форматира и отпечатва АРГУМЕНТИте според управлението на ФОРМАТа.\n" +" ФОРМАТът е последователност от знаци, която съдържа три вида обекти:\n" +" обикновени знаци, които биват отпечатани директно на стандартния изход;\n" +" екраниращи знакови последователности, които биват преобразувани и " +"отпечатани\n" +" на стандартния изход; и форматиращи знакови последователности, всяка от\n" +" които предизвиква отпечатването на следващ аргумент. Освен " +"стандартните\n" +" форматирания описани в ръководството на printf, „%b“ предизвиква " +"заместването\n" +" на екраниранията с обратно наклонени черти в съответния аргумент, а „%" +"q“\n" +" предизвиква цитирането на аргумента, така че да може да бъде използван " +"като\n" +" вход за обвивката. Ако е включена опцията „-v“, изходът се поставя в\n" +" променливата на обвивката VAR, вместо да се извежда на стандартния изход." + +#: builtins.c:1874 +msgid "" +"Specify how arguments are to be completed by Readline.\n" +" \n" +" For each NAME, specify how arguments are to be completed. If no " +"options\n" +" are supplied, existing completion specifications are printed in a way " +"that\n" +" allows them to be reused as input.\n" +" \n" +" Options:\n" +" -p\tprint existing completion specifications in a reusable format\n" +" -r\tremove a completion specification for each NAME, or, if no\n" +" \tNAMEs are supplied, all completion specifications\n" +" \n" +" When completion is attempted, the actions are applied in the order the\n" +" uppercase-letter options are listed above.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" + +#: builtins.c:1897 +#, fuzzy +msgid "" +"Display possible completions depending on the options.\n" +" \n" +" Intended to be used from within a shell function generating possible\n" +" completions. If the optional WORD argument is supplied, matches " +"against\n" +" WORD are generated.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" +" Показване на възможните дописвания на базата на възможностите. Целта е да " +"се\n" +" ползва в рамките функция на обвивката, която генерира възможните " +"дописвания.\n" +" Ако е зададен незадължителният аргумент ДУМА, генерират се напасванията " +"с\n" +" него." + +#: builtins.c:1912 +msgid "" +"Modify or display completion options.\n" +" \n" +" Modify the completion options for each NAME, or, if no NAMEs are " +"supplied,\n" +" the completion currently begin executed. If no OPTIONs are givenm, " +"print\n" +" the completion options for each NAME or the current completion " +"specification.\n" +" \n" +" Options:\n" +" \t-o option\tSet completion option OPTION for each NAME\n" +" \n" +" Using `+o' instead of `-o' turns off the specified option.\n" +" \n" +" Arguments:\n" +" \n" +" Each NAME refers to a command for which a completion specification must\n" +" have previously been defined using the `complete' builtin. If no NAMEs\n" +" are supplied, compopt must be called by a function currently generating\n" +" completions, and the options for that currently-executing completion\n" +" generator are modified.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or NAME does not\n" +" have a completion specification defined." +msgstr "" + +#: builtins.c:1940 +msgid "" +"Read lines from a file into an array variable.\n" +" \n" +" Read lines from the standard input into the array variable ARRAY, or " +"from\n" +" file descriptor FD if the -u option is supplied. The variable MAPFILE " +"is\n" +" the default ARRAY.\n" +" \n" +" Options:\n" +" -n count\tCopy at most COUNT lines. If COUNT is 0, all lines are " +"copied.\n" +" -O origin\tBegin assigning to ARRAY at index ORIGIN. The default " +"index is 0.\n" +" -s count \tDiscard the first COUNT lines read.\n" +" -t\t\tRemove a trailing newline from each line read.\n" +" -u fd\t\tRead lines from file descriptor FD instead of the standard " +"input.\n" +" -C callback\tEvaluate CALLBACK each time QUANTUM lines are read.\n" +" -c quantum\tSpecify the number of lines read between each call to " +"CALLBACK.\n" +" \n" +" Arguments:\n" +" ARRAY\t\tArray variable name to use for file data.\n" +" \n" +" If -C is supplied without -c, the default quantum is 5000.\n" +" \n" +" If not supplied with an explicit origin, mapfile will clear ARRAY " +"before\n" +" assigning to it.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or ARRAY is readonly." +msgstr "" + +#~ msgid " " +#~ msgstr " " + +#~ msgid "Without EXPR, returns returns \"$line $filename\". With EXPR," +#~ msgstr "Без ИЗРАЗ връща „$ред $име_на_файл“. С ИЗРАЗ връща" + +#~ msgid "returns \"$line $subroutine $filename\"; this extra information" +#~ msgstr "„$ред $функция $име_на_файл“. Тази допълнителна информация" + +#~ msgid "can be used used to provide a stack trace." +#~ msgstr "може да се използва да получаването на информация за стека." + +#~ msgid "" +#~ "The value of EXPR indicates how many call frames to go back before the" +#~ msgstr "Стойността на ИЗРАЗа показва колко извиквания преди текущото" + +#~ msgid "current one; the top frame is frame 0." +#~ msgstr "трябва да се върнат. Последното извикване е 0." + +#~ msgid "%s: invalid number" +#~ msgstr "%s: грешно число" + +#~ msgid "Shell commands matching keywords `" +#~ msgstr "Команди на обвивката, които напасват на ключовите думи „" + +#~ msgid "Display the list of currently remembered directories. Directories" +#~ msgstr "" +#~ "Показване на списъка с текущо запомнените директории. Те биват запомнени " +#~ "чрез" + +#~ msgid "find their way onto the list with the `pushd' command; you can get" +#~ msgstr "" +#~ "командата „pushd“. Можете да преминете в обратен ред в списъка чрез " +#~ "командата" + +#~ msgid "back up through the list with the `popd' command." +#~ msgstr "„popd“." + +#~ msgid "" +#~ "The -l flag specifies that `dirs' should not print shorthand versions" +#~ msgstr "" +#~ "Опцията „-l“ указва, че командата „dirs“ не трябва да извежда кратката " +#~ "версия на" + +#~ msgid "" +#~ "of directories which are relative to your home directory. This means" +#~ msgstr "" +#~ "на директориите, които са относителни спрямо домашната ви директория. " +#~ "Това" + +#~ msgid "that `~/bin' might be displayed as `/homes/bfox/bin'. The -v flag" +#~ msgstr "" +#~ "означава, че вместо „~/bin“ ще бъде изведено нещо подобно на „/homes/geek/" +#~ "bin“." + +#~ msgid "causes `dirs' to print the directory stack with one entry per line," +#~ msgstr "" +#~ "Опцията „-v“ кара „dirs“ да извежда стека с директориите по една на ред, " +#~ "като" + +#~ msgid "" +#~ "prepending the directory name with its position in the stack. The -p" +#~ msgstr "" +#~ "пред всяка се отпечатва мястото ѝ в стека. Опцията „-p“ прави същото, " +#~ "без да" + +#~ msgid "flag does the same thing, but the stack position is not prepended." +#~ msgstr "" +#~ "включва мястото на директорията в стека. Опцията „-c“ изчиства стека с" + +#~ msgid "" +#~ "The -c flag clears the directory stack by deleting all of the elements." +#~ msgstr "директориите като изтрива всичките му елементи." + +#~ msgid "" +#~ "+N displays the Nth entry counting from the left of the list shown by" +#~ msgstr "+N показва N-тия елемент отляво в списъка показван от" + +#~ msgid " dirs when invoked without options, starting with zero." +#~ msgstr "" +#~ " командата „dirs“, когато е стартирана без опции. Брои се от 0." + +#~ msgid "" +#~ "-N displays the Nth entry counting from the right of the list shown by" +#~ msgstr "-N показва N-тия елемент отдясно в списъка показван от" + +#~ msgid "Adds a directory to the top of the directory stack, or rotates" +#~ msgstr "Добавя директория в стека на директориите или превърта стека," + +#~ msgid "the stack, making the new top of the stack the current working" +#~ msgstr "като най-горна директория става текущата директория. Без" + +#~ msgid "directory. With no arguments, exchanges the top two directories." +#~ msgstr "аргументи сменя най-горните две директории." + +#~ msgid "+N Rotates the stack so that the Nth directory (counting" +#~ msgstr "+N Превърта стека, така че N-тата директория (като се брои" + +#~ msgid " from the left of the list shown by `dirs', starting with" +#~ msgstr " от лявата страна на списъка, показан от командата „dirs“" + +#~ msgid " zero) is at the top." +#~ msgstr " като се почва от 0) да е най-отгоре." + +#~ msgid "-N Rotates the stack so that the Nth directory (counting" +#~ msgstr "-N Превърта стека, така че N-тата директория (като се брои" + +#~ msgid " from the right of the list shown by `dirs', starting with" +#~ msgstr " от дясната страна на списъка, показан от командата „dirs“" + +#~ msgid "-n suppress the normal change of directory when adding directories" +#~ msgstr "-n подтискане на нормалното преминаване към директория при" + +#~ msgid " to the stack, so only the stack is manipulated." +#~ msgstr "" +#~ " добавянето на директории към стека, така че се променя само той." + +#~ msgid "dir adds DIR to the directory stack at the top, making it the" +#~ msgstr "dir добавя ДИР най-отгоре в стека на директориите, като я прави" + +#~ msgid " new current working directory." +#~ msgstr " новата текуща работна директория." + +#~ msgid "You can see the directory stack with the `dirs' command." +#~ msgstr "Можете да изведете стека на директорията с командата „dirs“." + +#~ msgid "Removes entries from the directory stack. With no arguments," +#~ msgstr "Маха директории от стека с тях. Без аргументи" + +#~ msgid "removes the top directory from the stack, and cd's to the new" +#~ msgstr "премахва последната директория в стека и влиза в новата" + +#~ msgid "top directory." +#~ msgstr "последна директория." + +#~ msgid "+N removes the Nth entry counting from the left of the list" +#~ msgstr "+N премахва N-тия елемент като се брои отляво в списъка" + +#~ msgid " shown by `dirs', starting with zero. For example: `popd +0'" +#~ msgstr "" +#~ " показван от командата „dirs“, като се брои от 0. Напр.: „popd +0“" + +#~ msgid " removes the first directory, `popd +1' the second." +#~ msgstr " премахва първата директория, „popd +1“ - втората." + +#~ msgid "-N removes the Nth entry counting from the right of the list" +#~ msgstr "-N премахва N-тия елемент като се брои отдясно в списъка" + +#~ msgid " shown by `dirs', starting with zero. For example: `popd -0'" +#~ msgstr "" +#~ " показван от командата „dirs“, като се брои от 0. Напр.: „popd -0“" + +#~ msgid " removes the last directory, `popd -1' the next to last." +#~ msgstr " премахва последната директория, „popd -1“ - предпоследната." + +#~ msgid "" +#~ "-n suppress the normal change of directory when removing directories" +#~ msgstr "" +#~ "-n подтискане на нормалното преминаване към директория при " +#~ "премахването на" + +#~ msgid " from the stack, so only the stack is manipulated." +#~ msgstr " директории от стека, така че се променя само той." + +#~ msgid "allocated" +#~ msgstr "заделени" + +#~ msgid "freed" +#~ msgstr "освободени" + +#~ msgid "requesting resize" +#~ msgstr "изисква се преоразмераване" + +#~ msgid "just resized" +#~ msgstr "току що преораземерени" + +#~ msgid "bug: unknown operation" +#~ msgstr "грешка: непозната операция" + +#~ msgid "malloc: watch alert: %p %s " +#~ msgstr "заделяне на памет: предупреждение при наблюдение: %p %s " + +#~ msgid "" +#~ " Exit from within a FOR, WHILE or UNTIL loop. If N is specified,\n" +#~ " break N levels." +#~ msgstr "" +#~ " Изход от цикъл ползващ FOR, WHILE или UNTIL. Ако е указан N, се излиза " +#~ "от N\n" +#~ " обхващащи цикъла." + +#~ msgid "" +#~ " Run a shell builtin. This is useful when you wish to rename a\n" +#~ " shell builtin to be a function, but need the functionality of the\n" +#~ " builtin within the function itself." +#~ msgstr "" +#~ " Изпълнение на команда вградена в обвивката. Това е полезно, когато " +#~ "искате да\n" +#~ " използвате името на команда вградена в обвивката за име на функция, " +#~ "но във\n" +#~ " функцията се нуждаете от командата." + +#~ msgid "" +#~ " Print the current working directory. With the -P option, pwd prints\n" +#~ " the physical directory, without any symbolic links; the -L option\n" +#~ " makes pwd follow symbolic links." +#~ msgstr "" +#~ " Отпечатва текущата работна директория. С опцията „-P“ командата „pwd“ " +#~ "извежда\n" +#~ " физическата директория - без символни връзки. Опцията „-L“ кара " +#~ "командата\n" +#~ " „pwd“ да следва физическите връзки." + +#~ msgid " Return a successful result." +#~ msgstr " Връща успешен резултат." + +#~ msgid " Return an unsuccessful result." +#~ msgstr " Връща неуспешен резултат." + +#~ msgid "" +#~ " Runs COMMAND with ARGS ignoring shell functions. If you have a shell\n" +#~ " function called `ls', and you wish to call the command `ls', you can\n" +#~ " say \"command ls\". If the -p option is given, a default value is " +#~ "used\n" +#~ " for PATH that is guaranteed to find all of the standard utilities. " +#~ "If\n" +#~ " the -V or -v option is given, a string is printed describing " +#~ "COMMAND.\n" +#~ " The -V option produces a more verbose description." +#~ msgstr "" +#~ " Изпълнение на КОМАНДА с АРГументи като се пренебрегват функциите в " +#~ "обвивката.\n" +#~ " Ако съществува функция на обвивката наречена „ls“, можете да " +#~ "извикате\n" +#~ " командата чрез „command ls“. Ако е зададена опцията „-p“ се " +#~ "използва\n" +#~ " стандартна стойност на променливата $PATH, която гарантирано открива " +#~ "всички\n" +#~ " стандартни програми. Ако е зададена някоя от опциите „-V“ или „-v“, " +#~ "се\n" +#~ "\t отпечатва описание на КОМАНДАта. Опцията „-V“ води до по-подробен " +#~ "изход." + +#~ msgid " Obsolete. See `declare'." +#~ msgstr " Остаряло, да не се използва. Виж „declare“." + +#~ msgid "" +#~ " Create a local variable called NAME, and give it VALUE. LOCAL\n" +#~ " can only be used within a function; it makes the variable NAME\n" +#~ " have a visible scope restricted to that function and its children." +#~ msgstr "" +#~ " Създаване на локална променлива с ИМЕ и присвояване на СТОЙНОСТ. " +#~ "ЛОКАЛНАта може\n" +#~ " да се използва само във функция. Тя кара променливата на ИМЕ да е с " +#~ "област\n" +#~ " на видимост, която е ограничена до тази функция и наследниците ѝ." + +#~ msgid "" +#~ " Output the ARGs. If -n is specified, the trailing newline is suppressed." +#~ msgstr "" +#~ " АРГУМЕНТите се извеждат. Ако е дадена опцията „-n“, се подтиска " +#~ "извеждането\n" +#~ "на нов ред." + +#~ msgid "" +#~ " Enable and disable builtin shell commands. This allows\n" +#~ " you to use a disk command which has the same name as a shell\n" +#~ " builtin without specifying a full pathname. If -n is used, the\n" +#~ " NAMEs become disabled; otherwise NAMEs are enabled. For example,\n" +#~ " to use the `test' found in $PATH instead of the shell builtin\n" +#~ " version, type `enable -n test'. On systems supporting dynamic\n" +#~ " loading, the -f option may be used to load new builtins from the\n" +#~ " shared object FILENAME. The -d option will delete a builtin\n" +#~ " previously loaded with -f. If no non-option names are given, or\n" +#~ " the -p option is supplied, a list of builtins is printed. The\n" +#~ " -a option means to print every builtin with an indication of whether\n" +#~ " or not it is enabled. The -s option restricts the output to the " +#~ "POSIX.2\n" +#~ " `special' builtins. The -n option displays a list of all disabled " +#~ "builtins." +#~ msgstr "" +#~ " Включване или изключване на вградените в обвивката команди. Това ви " +#~ "позволява\n" +#~ " да използвате външна команда, която има същото име като вградена в " +#~ "обвивката\n" +#~ " команда, без да указвате име съдържащо път. Ако използвате опцията „-" +#~ "n“\n" +#~ " ИМЕната се изключват, в противен случай се включват. Например, за " +#~ "да\n" +#~ " използвате командата „test“, която се намира в пътищата указани с " +#~ "$PATH, а\n" +#~ " не версията вградена в обвивката, използвайте „enable -n test“. При\n" +#~ " системите, които разполагат с динамично зареждане, опцията „-f“ може " +#~ "да се\n" +#~ " използва за зареждането на нова команда вградена в обвивката от " +#~ "споделен\n" +#~ " обект със съответното ИМЕ_НА_ФАЙЛ. Опцията „-d“ изтрива ресурса " +#~ "зареден с\n" +#~ " „-f“. Ако не са зададени имена, които да не са опции, или се " +#~ "използва\n" +#~ " опцията „-p“, се извеждат имената на вградените команди. Опцията „-" +#~ "a“\n" +#~ " означава всяка вградена команда да се изведе заедно с това дали е " +#~ "включена\n" +#~ " или изключена. Опцията „-s“ ограничава изхода до „специалните“ " +#~ "вградени\n" +#~ " команди на POSIX.2. Опцията „-s“ извежда списъка на всички " +#~ "изключени\n" +#~ " вградени команди." + +#~ msgid "" +#~ " Read ARGs as input to the shell and execute the resulting command(s)." +#~ msgstr "" +#~ " Изчитане на АРГУМЕНТите като вход за обвивката и изпълнение на " +#~ "получените\n" +#~ "команди." + +#~ msgid "" +#~ " Exec FILE, replacing this shell with the specified program.\n" +#~ " If FILE is not specified, the redirections take effect in this\n" +#~ " shell. If the first argument is `-l', then place a dash in the\n" +#~ " zeroth arg passed to FILE, as login does. If the `-c' option\n" +#~ " is supplied, FILE is executed with a null environment. The `-a'\n" +#~ " option means to make set argv[0] of the executed process to NAME.\n" +#~ " If the file cannot be executed and the shell is not interactive,\n" +#~ " then the shell exits, unless the shell option `execfail' is set." +#~ msgstr "" +#~ " Изпълнение на ФАЙЛ, като обвивката бива заменена с указаната програма. " +#~ "Ако\n" +#~ " ФАЙЛът не е указан, пренасочването се извършва в тази обвивка. Ако " +#~ "първата\n" +#~ " опция е „-l“, нулевият аргумент подаден на ФАЙЛа e тире - подобно на " +#~ "това,\n" +#~ " което се случва при влизане в системата. При подаването на опцията " +#~ "„-c“\n" +#~ " ФАЙЛът се изпълнява с празно обкръжение. Опцията „-a“ означава " +#~ "нулевият\n" +#~ " елемент от масива с аргументи (argv[0]) да е ИМЕ. Ако ФАЙЛът не може " +#~ "да се\n" +#~ " изпълни и обвивката не е интерактивна, обвивката завършва работа, " +#~ "освен ако\n" +#~ " не е зададена опцията на обвивката „execfail“." + +#~ msgid " Logout of a login shell." +#~ msgstr " Изход от входна обвивка" + +#~ msgid "" +#~ " For each NAME, the full pathname of the command is determined and\n" +#~ " remembered. If the -p option is supplied, PATHNAME is used as the\n" +#~ " full pathname of NAME, and no path search is performed. The -r\n" +#~ " option causes the shell to forget all remembered locations. The -d\n" +#~ " option causes the shell to forget the remembered location of each " +#~ "NAME.\n" +#~ " If the -t option is supplied the full pathname to which each NAME\n" +#~ " corresponds is printed. If multiple NAME arguments are supplied " +#~ "with\n" +#~ " -t, the NAME is printed before the hashed full pathname. The -l " +#~ "option\n" +#~ " causes output to be displayed in a format that may be reused as " +#~ "input.\n" +#~ " If no arguments are given, information about remembered commands is " +#~ "displayed." +#~ msgstr "" +#~ " За всяко ИМЕ се определя и запомня пълното име с пътя на командата.\n" +#~ " Когато е указана опцията „-p“, ПЪТят се използва като пълен път за " +#~ "името и\n" +#~ " не се търси в нормалния път. Опцията „-r“ кара обвивката да забрави " +#~ "всички\n" +#~ " запомнени места. Опцията „-d“ кара обвивката да забрави запомненото " +#~ "място\n" +#~ " на обекта със съответното ИМЕ. Ако е зададена опцията „-t“, извежда " +#~ "се\n" +#~ " цялото име с пътя на съответното ИМЕ. Ако на опцията „-t“ са " +#~ "подадени\n" +#~ " множество ИМЕна, те се отпечатват преди хешираното пълно име. " +#~ "Опцията „-l“\n" +#~ " форматира изхода по начин, който го прави удобен за вход. Ако не са\n" +#~ " подадени аргументи, се извежда информация за запомнените команди." + +#~ msgid "" +#~ " Display helpful information about builtin commands. If PATTERN is\n" +#~ " specified, gives detailed help on all commands matching PATTERN,\n" +#~ " otherwise a list of the builtins is printed. The -s option\n" +#~ " restricts the output for each builtin command matching PATTERN to\n" +#~ " a short usage synopsis." +#~ msgstr "" +#~ " Извеждане на полезна информация за вградените команди. Ако е указан " +#~ "ШАБЛОН,\n" +#~ " се извежда информация само за командите, които напасват, в противен " +#~ "случай\n" +#~ " се извежда информация за всички команди. Опцията „-s“ ограничава\n" +#~ " информацията за всяка вградена команда до кратко съобщение за\n" +#~ " предназначението ѝ." + +#~ msgid "" +#~ " By default, removes each JOBSPEC argument from the table of active " +#~ "jobs.\n" +#~ " If the -h option is given, the job is not removed from the table, but " +#~ "is\n" +#~ " marked so that SIGHUP is not sent to the job if the shell receives a\n" +#~ " SIGHUP. The -a option, when JOBSPEC is not supplied, means to remove " +#~ "all\n" +#~ " jobs from the job table; the -r option means to remove only running " +#~ "jobs." +#~ msgstr "" +#~ " По подразбиране премахва всеки аргумент ЗАДАЧА от таблицата на " +#~ "активните\n" +#~ " задачи. Когато е зададена опцията „-h“, задачата не се премахва от\n" +#~ " таблицата, но се отбелязва да не получава сигнал „SIGHUP“, когато " +#~ "обвивката\n" +#~ " получи такъв сигнал. Опцията „-а“, когато не е указана ЗАДАЧА, " +#~ "означава\n" +#~ " всички задачи да се извадят от таблицата със задачи. Опцията „-r“ " +#~ "кара да\n" +#~ " се махнат само вървящите задачи." + +#~ msgid "" +#~ " Causes a function to exit with the return value specified by N. If N\n" +#~ " is omitted, the return status is that of the last command." +#~ msgstr "" +#~ " Води до изход от функция с върнат код N. Ако не е указан N, връща се " +#~ "изходния\n" +#~ " код на последната команда." + +#~ msgid "" +#~ " For each NAME, remove the corresponding variable or function. Given\n" +#~ " the `-v', unset will only act on variables. Given the `-f' flag,\n" +#~ " unset will only act on functions. With neither flag, unset first\n" +#~ " tries to unset a variable, and if that fails, then tries to unset a\n" +#~ " function. Some variables cannot be unset; also see readonly." +#~ msgstr "" +#~ " За всяко ИМЕ се премахва съответната променлива или име. Когато е " +#~ "зададена\n" +#~ " опцията „-v“, „unset“ действа само на променливи. Когато е зададена " +#~ "опцията\n" +#~ " „-f“, „unset“ действа само на функции. Когато командата се използва " +#~ "без\n" +#~ " опции, първо се прави опита за премахване на променлива и след това " +#~ "на\n" +#~ " функция. Някои променливи не могат да се премахнат. Вижте " +#~ "вградената\n" +#~ " команда „readonly“." + +#~ msgid "" +#~ " NAMEs are marked for automatic export to the environment of\n" +#~ " subsequently executed commands. If the -f option is given,\n" +#~ " the NAMEs refer to functions. If no NAMEs are given, or if `-p'\n" +#~ " is given, a list of all names that are exported in this shell is\n" +#~ " printed. An argument of `-n' says to remove the export property\n" +#~ " from subsequent NAMEs. An argument of `--' disables further option\n" +#~ " processing." +#~ msgstr "" +#~ " ИМЕната се маркират за автоматично изнасяне към средата на последвалите\n" +#~ " команди. Ако е зададена опцията „-f“, ИМЕната са на функции. Ако не " +#~ "са\n" +#~ " дадени ИМЕна, или е използвана опцията „-p“, се извежда списък с " +#~ "всички\n" +#~ " имена, които са изнесени от тази обвивка. Опцията „-n“ указва " +#~ "следващите\n" +#~ " ИМЕна повече да не са изнесени. Аргументът „--“ изключва третирането " +#~ "на\n" +#~ " следващите аргументи като опции." + +#~ msgid "" +#~ " The given NAMEs are marked readonly and the values of these NAMEs may\n" +#~ " not be changed by subsequent assignment. If the -f option is given,\n" +#~ " then functions corresponding to the NAMEs are so marked. If no\n" +#~ " arguments are given, or if `-p' is given, a list of all readonly " +#~ "names\n" +#~ " is printed. The `-a' option means to treat each NAME as\n" +#~ " an array variable. An argument of `--' disables further option\n" +#~ " processing." +#~ msgstr "" +#~ " Премахва възможността за промяна на дадените ИМЕна при последващи " +#~ "присвоявания.\n" +#~ " Когато е използвана опцията „-f“, се премахва възможността за промяна " +#~ "на\n" +#~ " функциите с тези ИМЕна. Ако не са дадени аргументи или е използвана " +#~ "опцията\n" +#~ " „-p“, се извеждат имената, които са без възможност за промяна. " +#~ "Опцията „-a“\n" +#~ " означава всяко име да се интерпретира като променлива за масив. " +#~ "Аргументът\n" +#~ " „--“ изключва третирането на следващите аргументи като опции." + +#~ msgid "" +#~ " The positional parameters from $N+1 ... are renamed to $1 ... If N is\n" +#~ " not given, it is assumed to be 1." +#~ msgstr "" +#~ " Позиционните аргументи от $N+1 и нагоре съответно се преименуват на $1 " +#~ "и\n" +#~ " нагоре. Ако N не е зададен, приема се, че е 1." + +#~ msgid "" +#~ " Suspend the execution of this shell until it receives a SIGCONT\n" +#~ " signal. The `-f' if specified says not to complain about this\n" +#~ " being a login shell if it is; just suspend anyway." +#~ msgstr "" +#~ " Временно спиране на изпълнението на текущата обвивка до получаването на " +#~ "сигнала\n" +#~ " „SIGCONT“. Ако е зададена опцията „-f“, се подтиска " +#~ "предупреждението, че\n" +#~ " това е входна обвивка, изпълнението ѝ просто се спира." + +#~ msgid "" +#~ " Print the accumulated user and system times for processes run from\n" +#~ " the shell." +#~ msgstr "" +#~ " Отпечатване на натрупаното потребителско и системно време за процеси, " +#~ "които са\n" +#~ " стартирани през обвивката." + +#~ msgid "" +#~ " For each NAME, indicate how it would be interpreted if used as a\n" +#~ " command name.\n" +#~ " \n" +#~ " If the -t option is used, `type' outputs a single word which is one " +#~ "of\n" +#~ " `alias', `keyword', `function', `builtin', `file' or `', if NAME is " +#~ "an\n" +#~ " alias, shell reserved word, shell function, shell builtin, disk " +#~ "file,\n" +#~ " or unfound, respectively.\n" +#~ " \n" +#~ " If the -p flag is used, `type' either returns the name of the disk\n" +#~ " file that would be executed, or nothing if `type -t NAME' would not\n" +#~ " return `file'.\n" +#~ " \n" +#~ " If the -a flag is used, `type' displays all of the places that " +#~ "contain\n" +#~ " an executable named `file'. This includes aliases, builtins, and\n" +#~ " functions, if and only if the -p flag is not also used.\n" +#~ " \n" +#~ " The -f flag suppresses shell function lookup.\n" +#~ " \n" +#~ " The -P flag forces a PATH search for each NAME, even if it is an " +#~ "alias,\n" +#~ " builtin, or function, and returns the name of the disk file that " +#~ "would\n" +#~ " be executed." +#~ msgstr "" +#~ " За всяко ИМЕ се отпечатва как ще се интерпретира, ако се използва за име " +#~ "на\n" +#~ " команда.\n" +#~ " \n" +#~ " Ако се използва опцията „-t“, командата „type“ извежда единствена " +#~ "дума,\n" +#~ " която е някоя от „alias“, „keyword“, „function“, „builtin“, „file“ " +#~ "или „“,\n" +#~ " ако ИМЕто съответно е синоним, запазена дума на обвивката, функция " +#~ "на\n" +#~ " обвивката, вградена команда в обвивката, файл или не е намерено.\n" +#~ " \n" +#~ " Ако се използва опцията „-p“, командата „type“ или извежда името на " +#~ "файла,\n" +#~ " който ще се изпълни, или не извежда в нищо, в случаите, когато „type -" +#~ "t ИМЕ“\n" +#~ " не връща „file“.\n" +#~ " \n" +#~ " Ако се използва опцията „-a“, командата „type“ извежда всички места, " +#~ "които\n" +#~ " съдържат изпълним обект с такова ИМЕ. Това включва синонимите, " +#~ "вградените\n" +#~ " команди и функции, но само ако не се използва и опцията „-p“.\n" +#~ " \n" +#~ " Опцията „-f“ подтиска търсенето във функциите на обвивката.\n" +#~ " \n" +#~ " Опцията „-P“ кара ИМЕто да се търси в пътя $PATH, дори ИМЕто да е\n" +#~ " синоним, вградена команда или функция, и да се изведе името на файла, " +#~ "който\n" +#~ " би се изпълнил." + +#~ msgid "" +#~ " The user file-creation mask is set to MODE. If MODE is omitted, or if\n" +#~ " `-S' is supplied, the current value of the mask is printed. The `-" +#~ "S'\n" +#~ " option makes the output symbolic; otherwise an octal number is " +#~ "output.\n" +#~ " If `-p' is supplied, and MODE is omitted, the output is in a form\n" +#~ " that may be used as input. If MODE begins with a digit, it is\n" +#~ " interpreted as an octal number, otherwise it is a symbolic mode " +#~ "string\n" +#~ " like that accepted by chmod(1)." +#~ msgstr "" +#~ " Маската за създадените от потребителя файлове е зададена да е РЕЖИМ. " +#~ "Ако той\n" +#~ " е пропуснат или е дадена опцията „-S“, отпечатва се текущата стойност " +#~ "на\n" +#~ " маската. Опцията „-S“ води до описателен изход, в противен случай " +#~ "се\n" +#~ " отпечатва число в осмична бройна система. Ако е дадена опцията „-p“, " +#~ "а\n" +#~ " режимът е пропуснат, изходът може да се използва като вход. Ако " +#~ "РЕЖИМът\n" +#~ " започва с цифра, то той се интерпретира като осмично число, в " +#~ "противен\n" +#~ " случай е описателен низ, който се приема от командата „chmod“." + +#~ msgid "" +#~ " Wait for the specified process and report its termination status. If\n" +#~ " N is not given, all currently active child processes are waited for,\n" +#~ " and the return code is zero. N is a process ID; if it is not given,\n" +#~ " all child processes of the shell are waited for." +#~ msgstr "" +#~ " Изчакване на указания процес и докладване за изходния код. Ако не е " +#~ "зададен N,\n" +#~ " всички текущо активни дъщерни процеси се изчакват и изходният код е " +#~ "0. N\n" +#~ " е идентификатор на процес. Ако не е задача, изчакват се всички " +#~ "процеси в\n" +#~ " програмния канал на задачата." + +#~ msgid "" +#~ " Create a simple command invoked by NAME which runs COMMANDS.\n" +#~ " Arguments on the command line along with NAME are passed to the\n" +#~ " function as $0 .. $n." +#~ msgstr "" +#~ " Създаване на проста команда, която се извиква чрез ИМЕ, която стартира " +#~ "КОМАНДИ.\n" +#~ " Аргументите на командния ред, заедно с ИМЕто, се предават на " +#~ "функцията като\n" +#~ " $0 … $n." + +#~ msgid "" +#~ " Toggle the values of variables controlling optional behavior.\n" +#~ " The -s flag means to enable (set) each OPTNAME; the -u flag\n" +#~ " unsets each OPTNAME. The -q flag suppresses output; the exit\n" +#~ " status indicates whether each OPTNAME is set or unset. The -o\n" +#~ " option restricts the OPTNAMEs to those defined for use with\n" +#~ " `set -o'. With no options, or with the -p option, a list of all\n" +#~ " settable options is displayed, with an indication of whether or\n" +#~ " not each is set." +#~ msgstr "" +#~ " Превключва стойностите на променливите, които управляват допълнителното\n" +#~ " поведение. Опцията „-s“ позволява задаването на всяка ОПЦИЯ. " +#~ "Опцията „-q“\n" +#~ " премахва всяка ОПЦИЯ. Опцията „-q“ предотвратява извеждането на " +#~ "информация.\n" +#~ " Върнатият код показва дали всяка опция е зададена или премахната. " +#~ "Опцията\n" +#~ " „-o“ ограничава ОПЦИите до тези, които са дефинирани да се използват " +#~ "със\n" +#~ " „set -o“. Без опции или с опцията „-p“ се извежда списъка на всички " +#~ "опции\n" +#~ " като се показва дали са зададени или не." + +#~ msgid "" +#~ " For each NAME, specify how arguments are to be completed.\n" +#~ " If the -p option is supplied, or if no options are supplied, " +#~ "existing\n" +#~ " completion specifications are printed in a way that allows them to " +#~ "be\n" +#~ " reused as input. The -r option removes a completion specification " +#~ "for\n" +#~ " each NAME, or, if no NAMEs are supplied, all completion " +#~ "specifications." +#~ msgstr "" +#~ " За всяко ИМЕ посочва как да се дописват аргументите.\n" +#~ " Ако е зададена опцията -p или не са зададени никакви опции, " +#~ "съществуващите\n" +#~ " класове дописвания се отпечатват по начин, който позволява да се " +#~ "използват\n" +#~ " повторно за вход. Опцията -r премахва клас дописвания за всяко " +#~ "посочено\n" +#~ " ИМЕ, а ако не е дадено такова - махат се всички класове." diff --git a/po/ca.gmo b/po/ca.gmo new file mode 100644 index 0000000000000000000000000000000000000000..82d6012f11f43678865dd44797372ff3081a8ee9 GIT binary patch literal 10101 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 literal 0 Hc-jL100001 diff --git a/po/ca.po b/po/ca.po new file mode 100644 index 000000000..4fdd458f6 --- /dev/null +++ b/po/ca.po @@ -0,0 +1,6336 @@ +# Catalan messages for the GNU bash-2.0 +# Copyright (C) 2002, 2003 Free Software Foundation, Inc. +# Montxo Vicente i Sempere , 2003. +# Jordi Mas i Hern?ndez , 2004 (correccions). +# +msgid "" +msgstr "" +"Project-Id-Version: bash-2.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2009-01-06 11:56-0500\n" +"PO-Revision-Date: 2003-12-28 19:59+0100\n" +"Last-Translator: Montxo Vicente i Sempere \n" +"Language-Team: Catalan \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-1\n" +"Content-Transfer-Encoding: 8bit\n" + +#: arrayfunc.c:50 +msgid "bad array subscript" +msgstr "la matriu est? mal composta" + +#: arrayfunc.c:313 builtins/declare.def:474 +#, c-format +msgid "%s: cannot convert indexed to associative array" +msgstr "" + +#: arrayfunc.c:479 +#, fuzzy, c-format +msgid "%s: invalid associative array key" +msgstr "%c%c: opci? inv?lida" + +#: arrayfunc.c:481 +#, c-format +msgid "%s: cannot assign to non-numeric index" +msgstr "%s: no es pot assignar a un ?ndex que no ?s num?ric" + +#: arrayfunc.c:517 +#, c-format +msgid "%s: %s: must use subscript when assigning associative array" +msgstr "" + +#: bashhist.c:380 +#, c-format +msgid "%s: cannot create: %s" +msgstr "%s: no es pot crear: %s" + +#: bashline.c:3413 +msgid "bash_execute_unix_command: cannot find keymap for command" +msgstr "" + +#: bashline.c:3491 +#, c-format +msgid "%s: first non-whitespace character is not `\"'" +msgstr "" + +#: bashline.c:3520 +#, c-format +msgid "no closing `%c' in %s" +msgstr "" + +#: bashline.c:3554 +#, c-format +msgid "%s: missing colon separator" +msgstr "" + +#: builtins/bind.def:120 builtins/bind.def:123 +msgid "line editing not enabled" +msgstr "" + +#: builtins/bind.def:206 +#, c-format +msgid "`%s': invalid keymap name" +msgstr "" + +#: builtins/bind.def:245 +#, fuzzy, c-format +msgid "%s: cannot read: %s" +msgstr "%s: no es pot crear: %s" + +#: builtins/bind.def:260 +#, fuzzy, c-format +msgid "`%s': cannot unbind" +msgstr "%s: no s'ha trobat l'ordre" + +#: builtins/bind.def:295 builtins/bind.def:325 +#, fuzzy, c-format +msgid "`%s': unknown function name" +msgstr "%s: funci? nom?s de lectura" + +#: builtins/bind.def:303 +#, c-format +msgid "%s is not bound to any keys.\n" +msgstr "" + +#: builtins/bind.def:307 +#, c-format +msgid "%s can be invoked via " +msgstr "" + +#: builtins/break.def:77 builtins/break.def:117 +#, fuzzy +msgid "loop count" +msgstr "fi de sessi?" + +#: builtins/break.def:137 +msgid "only meaningful in a `for', `while', or `until' loop" +msgstr "" + +#: builtins/caller.def:133 +msgid "" +"Returns the context of the current subroutine call.\n" +" \n" +" Without EXPR, returns " +msgstr "" + +#: builtins/cd.def:215 +msgid "HOME not set" +msgstr "" + +#: builtins/cd.def:227 +msgid "OLDPWD not set" +msgstr "" + +#: builtins/common.c:101 +#, fuzzy, c-format +msgid "line %d: " +msgstr "encaix %3d:" + +#: builtins/common.c:139 error.c:260 +#, fuzzy, c-format +msgid "warning: " +msgstr "s'est? escrivint" + +#: builtins/common.c:153 +#, c-format +msgid "%s: usage: " +msgstr "" + +#: builtins/common.c:166 test.c:822 +msgid "too many arguments" +msgstr "nombre excessiu de par?metres" + +#: builtins/common.c:191 shell.c:493 shell.c:774 +#, fuzzy, c-format +msgid "%s: option requires an argument" +msgstr "cal un par?metre per a l'opci?: -" + +#: builtins/common.c:198 +#, c-format +msgid "%s: numeric argument required" +msgstr "" + +#: builtins/common.c:205 +#, fuzzy, c-format +msgid "%s: not found" +msgstr "%s: no s'ha trobat l'ordre" + +#: builtins/common.c:214 shell.c:787 +#, fuzzy, c-format +msgid "%s: invalid option" +msgstr "%c%c: opci? inv?lida" + +#: builtins/common.c:221 +#, fuzzy, c-format +msgid "%s: invalid option name" +msgstr "%c%c: opci? inv?lida" + +#: builtins/common.c:228 general.c:231 general.c:236 +#, fuzzy, c-format +msgid "`%s': not a valid identifier" +msgstr "'%s' no ?s un identificador v?lid" + +#: builtins/common.c:238 +#, fuzzy +msgid "invalid octal number" +msgstr "n?mero inv?lid de senyal" + +#: builtins/common.c:240 +#, fuzzy +msgid "invalid hex number" +msgstr "n?mero inv?lid de senyal" + +#: builtins/common.c:242 expr.c:1255 +#, fuzzy +msgid "invalid number" +msgstr "n?mero inv?lid de senyal" + +#: builtins/common.c:250 +#, c-format +msgid "%s: invalid signal specification" +msgstr "" + +#: builtins/common.c:257 +#, c-format +msgid "`%s': not a pid or valid job spec" +msgstr "" + +#: builtins/common.c:264 error.c:453 +#, c-format +msgid "%s: readonly variable" +msgstr "%s: ?s una variable nom?s de lectura" + +#: builtins/common.c:272 +#, c-format +msgid "%s: %s out of range" +msgstr "" + +#: builtins/common.c:272 builtins/common.c:274 +#, fuzzy +msgid "argument" +msgstr "s'esperava un par?metre" + +#: builtins/common.c:274 +#, c-format +msgid "%s out of range" +msgstr "" + +#: builtins/common.c:282 +#, c-format +msgid "%s: no such job" +msgstr "" + +#: builtins/common.c:290 +#, fuzzy, c-format +msgid "%s: no job control" +msgstr "no hi ha cap tasca de control dins d'aquest int?rpret" + +#: builtins/common.c:292 +#, fuzzy +msgid "no job control" +msgstr "no hi ha cap tasca de control dins d'aquest int?rpret" + +#: builtins/common.c:302 +#, fuzzy, c-format +msgid "%s: restricted" +msgstr "%s: s'ha finalitzat la tasca" + +#: builtins/common.c:304 +#, fuzzy +msgid "restricted" +msgstr "Terminat" + +#: builtins/common.c:312 +#, c-format +msgid "%s: not a shell builtin" +msgstr "" + +#: builtins/common.c:321 +#, fuzzy, c-format +msgid "write error: %s" +msgstr "error del conducte: %s" + +#: builtins/common.c:553 +#, c-format +msgid "%s: error retrieving current directory: %s: %s\n" +msgstr "" + +#: builtins/common.c:619 builtins/common.c:621 +#, fuzzy, c-format +msgid "%s: ambiguous job spec" +msgstr "%s: Redirecci? ambigua" + +#: builtins/complete.def:270 +#, c-format +msgid "%s: invalid action name" +msgstr "" + +#: builtins/complete.def:430 builtins/complete.def:615 +#: builtins/complete.def:813 +#, c-format +msgid "%s: no completion specification" +msgstr "" + +#: builtins/complete.def:667 +msgid "warning: -F option may not work as you expect" +msgstr "" + +#: builtins/complete.def:669 +msgid "warning: -C option may not work as you expect" +msgstr "" + +#: builtins/complete.def:786 +msgid "not currently executing completion function" +msgstr "" + +#: builtins/declare.def:122 +#, fuzzy +msgid "can only be used in a function" +msgstr "" +"servir LOCAL dins d'una funci?; a?? restringir? la magnitud visible de la" + +#: builtins/declare.def:353 +msgid "cannot use `-f' to make functions" +msgstr "" + +#: builtins/declare.def:365 execute_cmd.c:4731 +#, c-format +msgid "%s: readonly function" +msgstr "%s: funci? nom?s de lectura" + +#: builtins/declare.def:461 +#, fuzzy, c-format +msgid "%s: cannot destroy array variables in this way" +msgstr "$%s: no es pot assignar d'aquesta manera" + +#: builtins/declare.def:468 +#, c-format +msgid "%s: cannot convert associative to indexed array" +msgstr "" + +#: builtins/enable.def:137 builtins/enable.def:145 +msgid "dynamic loading not available" +msgstr "" + +#: builtins/enable.def:312 +#, fuzzy, c-format +msgid "cannot open shared object %s: %s" +msgstr "no es pot obrir el conducte anomenat %s per a %s: %s" + +#: builtins/enable.def:335 +#, c-format +msgid "cannot find %s in shared object %s: %s" +msgstr "" + +#: builtins/enable.def:459 +#, c-format +msgid "%s: not dynamically loaded" +msgstr "" + +#: builtins/enable.def:474 +#, fuzzy, c-format +msgid "%s: cannot delete: %s" +msgstr "%s: no es pot crear: %s" + +#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4588 +#: shell.c:1439 +#, c-format +msgid "%s: is a directory" +msgstr "%s: ?s un directori" + +#: builtins/evalfile.c:139 +#, fuzzy, c-format +msgid "%s: not a regular file" +msgstr "%s: no es pot executar el fitxer binari" + +#: builtins/evalfile.c:147 +#, c-format +msgid "%s: file is too large" +msgstr "" + +#: builtins/evalfile.c:185 execute_cmd.c:4658 shell.c:1449 +#, c-format +msgid "%s: cannot execute binary file" +msgstr "%s: no es pot executar el fitxer binari" + +#: builtins/exec.def:212 +#, fuzzy, c-format +msgid "%s: cannot execute: %s" +msgstr "%s: no es pot crear: %s" + +#: builtins/exit.def:65 +#, fuzzy, c-format +msgid "logout\n" +msgstr "fi de sessi?" + +#: builtins/exit.def:88 +msgid "not login shell: use `exit'" +msgstr "" + +#: builtins/exit.def:120 +#, c-format +msgid "There are stopped jobs.\n" +msgstr "" + +#: builtins/exit.def:122 +#, c-format +msgid "There are running jobs.\n" +msgstr "" + +#: builtins/fc.def:261 +#, fuzzy +msgid "no command found" +msgstr "%s: no s'ha trobat l'ordre" + +#: builtins/fc.def:341 +msgid "history specification" +msgstr "" + +#: builtins/fc.def:362 +#, fuzzy, c-format +msgid "%s: cannot open temp file: %s" +msgstr "%s: no es pot crear: %s" + +#: builtins/fg_bg.def:149 builtins/jobs.def:282 +msgid "current" +msgstr "" + +#: builtins/fg_bg.def:158 +#, c-format +msgid "job %d started without job control" +msgstr "" + +#: builtins/getopt.c:110 +#, fuzzy, c-format +msgid "%s: illegal option -- %c\n" +msgstr "opci? ilžlegal: -" + +#: builtins/getopt.c:111 +#, fuzzy, c-format +msgid "%s: option requires an argument -- %c\n" +msgstr "cal un par?metre per a l'opci?: -" + +#: builtins/hash.def:92 +msgid "hashing disabled" +msgstr "" + +#: builtins/hash.def:138 +#, c-format +msgid "%s: hash table empty\n" +msgstr "" + +#: builtins/hash.def:244 +#, fuzzy, c-format +msgid "hits\tcommand\n" +msgstr "si s'escriu \"r\" s'executar? la darrera ordre." + +#: builtins/help.def:130 +#, c-format +msgid "Shell commands matching keyword `" +msgid_plural "Shell commands matching keywords `" +msgstr[0] "" +msgstr[1] "" + +#: builtins/help.def:168 +#, c-format +msgid "" +"no help topics match `%s'. Try `help help' or `man -k %s' or `info %s'." +msgstr "" + +#: builtins/help.def:185 +#, fuzzy, c-format +msgid "%s: cannot open: %s" +msgstr "%s: no es pot crear: %s" + +#: builtins/help.def:337 +#, c-format +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:154 +msgid "cannot use more than one of -anrw" +msgstr "" + +#: builtins/history.def:186 +msgid "history position" +msgstr "" + +#: builtins/history.def:365 +#, fuzzy, c-format +msgid "%s: history expansion failed" +msgstr "%s: s'esperava una expressi? de nombre enter" + +#: builtins/inlib.def:71 +#, fuzzy, c-format +msgid "%s: inlib failed" +msgstr "%s: s'esperava una expressi? de nombre enter" + +#: builtins/jobs.def:109 +msgid "no other options allowed with `-x'" +msgstr "" + +#: builtins/kill.def:197 +#, c-format +msgid "%s: arguments must be process or job IDs" +msgstr "" + +#: builtins/kill.def:260 +#, fuzzy +msgid "Unknown error" +msgstr "Error desconegut %d" + +#: builtins/let.def:95 builtins/let.def:120 expr.c:501 expr.c:516 +msgid "expression expected" +msgstr "s'esperava una expressi?" + +#: builtins/mapfile.def:215 builtins/read.def:272 +#, c-format +msgid "%s: invalid file descriptor specification" +msgstr "" + +#: builtins/mapfile.def:223 builtins/read.def:279 +#, c-format +msgid "%d: invalid file descriptor: %s" +msgstr "" + +#: builtins/mapfile.def:232 builtins/mapfile.def:270 +#, fuzzy, c-format +msgid "%s: invalid line count" +msgstr "%c%c: opci? inv?lida" + +#: builtins/mapfile.def:243 +#, fuzzy, c-format +msgid "%s: invalid array origin" +msgstr "%c%c: opci? inv?lida" + +#: builtins/mapfile.def:260 +#, fuzzy, c-format +msgid "%s: invalid callback quantum" +msgstr "n?mero inv?lid de senyal" + +#: builtins/mapfile.def:292 +#, fuzzy +msgid "empty array variable name" +msgstr "%s: variable sense vincle" + +#: builtins/mapfile.def:313 +msgid "array variable support required" +msgstr "" + +#: builtins/printf.def:367 +#, c-format +msgid "`%s': missing format character" +msgstr "" + +#: builtins/printf.def:544 +#, c-format +msgid "`%c': invalid format character" +msgstr "" + +#: builtins/printf.def:571 +#, c-format +msgid "warning: %s: %s" +msgstr "" + +#: builtins/printf.def:750 +msgid "missing hex digit for \\x" +msgstr "" + +#: builtins/pushd.def:195 +#, fuzzy +msgid "no other directory" +msgstr "seguent entrada de la pila (o sia, la nova primera entrada)." + +#: builtins/pushd.def:462 +#, fuzzy +msgid "" +msgstr "\taquest ser? el nou directori actual de treball." + +#: builtins/pushd.def:506 +msgid "directory stack empty" +msgstr "" + +#: builtins/pushd.def:508 +#, fuzzy +msgid "directory stack index" +msgstr "S'ha desbordat la base de la pila." + +#: builtins/pushd.def:683 +msgid "" +"Display the list of currently remembered directories. Directories\n" +" find their way onto the list with the `pushd' command; you can get\n" +" back up through the list with the `popd' command.\n" +" \n" +" Options:\n" +" -c\tclear the directory stack by deleting all of the elements\n" +" -l\tdo not print tilde-prefixed versions of directories relative\n" +" \tto your home directory\n" +" -p\tprint the directory stack with one entry per line\n" +" -v\tprint the directory stack with one entry per line prefixed\n" +" \twith its position in the stack\n" +" \n" +" Arguments:\n" +" +N\tDisplays the Nth entry counting from the left of the list shown " +"by\n" +" \tdirs when invoked without options, starting with zero.\n" +" \n" +" -N\tDisplays the Nth entry counting from the right of the list shown " +"by\n" +"\tdirs when invoked without options, starting with zero." +msgstr "" + +#: builtins/pushd.def:705 +msgid "" +"Adds a directory to the top of the directory stack, or rotates\n" +" the stack, making the new top of the stack the current working\n" +" directory. With no arguments, exchanges the top two directories.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when adding\n" +" \tdirectories to the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the left of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" -N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the right of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" dir\tAdds DIR to the directory stack at the top, making it the\n" +" \tnew current working directory.\n" +" \n" +" The `dirs' builtin displays the directory stack." +msgstr "" + +#: builtins/pushd.def:730 +msgid "" +"Removes entries from the directory stack. With no arguments, removes\n" +" the top directory from the stack, and changes to the new top directory.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when removing\n" +" \tdirectories from the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRemoves the Nth entry counting from the left of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd +0'\n" +" \tremoves the first directory, `popd +1' the second.\n" +" \n" +" -N\tRemoves the Nth entry counting from the right of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd -0'\n" +" \tremoves the last directory, `popd -1' the next to last.\n" +" \n" +" The `dirs' builtin displays the directory stack." +msgstr "" + +#: builtins/read.def:248 +#, c-format +msgid "%s: invalid timeout specification" +msgstr "" + +#: builtins/read.def:574 +#, fuzzy, c-format +msgid "read error: %d: %s" +msgstr "error del conducte: %s" + +#: builtins/return.def:73 +msgid "can only `return' from a function or sourced script" +msgstr "" + +#: builtins/set.def:768 +#, fuzzy +msgid "cannot simultaneously unset a function and a variable" +msgstr "" +"servir LOCAL dins d'una funci?; a?? restringir? la magnitud visible de la" + +#: builtins/set.def:805 +#, fuzzy, c-format +msgid "%s: cannot unset" +msgstr "%s: no es pot crear: %s" + +#: builtins/set.def:812 +#, fuzzy, c-format +msgid "%s: cannot unset: readonly %s" +msgstr "%s: no es pot crear: %s" + +#: builtins/set.def:823 +#, fuzzy, c-format +msgid "%s: not an array variable" +msgstr "%s: variable sense vincle" + +#: builtins/setattr.def:186 +#, fuzzy, c-format +msgid "%s: not a function" +msgstr "%s: funci? nom?s de lectura" + +#: builtins/shift.def:71 builtins/shift.def:77 +#, fuzzy +msgid "shift count" +msgstr "shift [n]" + +#: builtins/shopt.def:254 +msgid "cannot set and unset shell options simultaneously" +msgstr "" + +#: builtins/shopt.def:319 +#, c-format +msgid "%s: invalid shell option name" +msgstr "" + +#: builtins/source.def:128 +msgid "filename argument required" +msgstr "" + +#: builtins/source.def:153 +#, fuzzy, c-format +msgid "%s: file not found" +msgstr "%s: no s'ha trobat l'ordre" + +#: builtins/suspend.def:101 +msgid "cannot suspend" +msgstr "" + +#: builtins/suspend.def:111 +#, fuzzy +msgid "cannot suspend a login shell" +msgstr "Finalitzar una sessi? de l'int?rpret d'ordres." + +#: builtins/type.def:234 +#, c-format +msgid "%s is aliased to `%s'\n" +msgstr "" + +#: builtins/type.def:255 +#, c-format +msgid "%s is a shell keyword\n" +msgstr "" + +#: builtins/type.def:274 +#, fuzzy, c-format +msgid "%s is a function\n" +msgstr "%s: funci? nom?s de lectura" + +#: builtins/type.def:296 +#, c-format +msgid "%s is a shell builtin\n" +msgstr "" + +#: builtins/type.def:317 builtins/type.def:391 +#, c-format +msgid "%s is %s\n" +msgstr "" + +#: builtins/type.def:337 +#, c-format +msgid "%s is hashed (%s)\n" +msgstr "" + +#: builtins/ulimit.def:372 +#, c-format +msgid "%s: invalid limit argument" +msgstr "" + +#: builtins/ulimit.def:398 +#, fuzzy, c-format +msgid "`%c': bad command" +msgstr "%c%c: opci? inv?lida" + +#: builtins/ulimit.def:427 +#, fuzzy, c-format +msgid "%s: cannot get limit: %s" +msgstr "%s: no es pot crear: %s" + +#: builtins/ulimit.def:453 +#, fuzzy +msgid "limit" +msgstr "L?mit de la UCP" + +#: builtins/ulimit.def:465 builtins/ulimit.def:765 +#, fuzzy, c-format +msgid "%s: cannot modify limit: %s" +msgstr "%s: no es pot crear: %s" + +#: builtins/umask.def:118 +#, fuzzy +msgid "octal number" +msgstr "n?mero inv?lid de senyal" + +#: builtins/umask.def:231 +#, c-format +msgid "`%c': invalid symbolic mode operator" +msgstr "" + +#: builtins/umask.def:286 +#, c-format +msgid "`%c': invalid symbolic mode character" +msgstr "" + +#: error.c:89 error.c:320 error.c:322 error.c:324 +msgid " line " +msgstr "" + +#: error.c:164 +#, fuzzy, c-format +msgid "last command: %s\n" +msgstr "si s'escriu \"r\" s'executar? la darrera ordre." + +#: error.c:172 +#, c-format +msgid "Aborting..." +msgstr "" + +#: error.c:405 +#, fuzzy +msgid "unknown command error" +msgstr "Error desconegut %d" + +#: error.c:406 +#, fuzzy +msgid "bad command type" +msgstr "un nom d'una ordre." + +#: error.c:407 +#, fuzzy +msgid "bad connector" +msgstr "connector inv?lid '%d'" + +#: error.c:408 +#, fuzzy +msgid "bad jump" +msgstr "Salt incorrecte %d" + +#: error.c:446 +#, c-format +msgid "%s: unbound variable" +msgstr "%s: variable sense vincle" + +#: eval.c:181 +#, fuzzy, c-format +msgid "\atimed out waiting for input: auto-logout\n" +msgstr "" +"%c ha excedit el temps d'espera per una entrada: fi autom?tica de sessi?\n" + +#: execute_cmd.c:491 +#, c-format +msgid "cannot redirect standard input from /dev/null: %s" +msgstr "" + +#: execute_cmd.c:1091 +#, c-format +msgid "TIMEFORMAT: `%c': invalid format character" +msgstr "" + +#: execute_cmd.c:1942 +#, fuzzy +msgid "pipe error" +msgstr "error del conducte: %s" + +#: execute_cmd.c:4276 +#, c-format +msgid "%s: restricted: cannot specify `/' in command names" +msgstr "%s: restringit: no es pot especificar '/' en noms d'ordres" + +#: execute_cmd.c:4367 +#, c-format +msgid "%s: command not found" +msgstr "%s: no s'ha trobat l'ordre" + +#: execute_cmd.c:4621 +#, fuzzy, c-format +msgid "%s: %s: bad interpreter" +msgstr "%s: ?s un directori" + +#: execute_cmd.c:4770 +#, fuzzy, c-format +msgid "cannot duplicate fd %d to fd %d" +msgstr "" +"no es pot copiar per duplicat el descriptor del fitxer df %d cap a df 0: %s" + +#: expr.c:241 +msgid "expression recursion level exceeded" +msgstr "s'ha excedit el nivell de recursivitat de l'expressi?" + +#: expr.c:265 +#, fuzzy +msgid "recursion stack underflow" +msgstr "S'ha desbordat la base de la pila." + +#: expr.c:379 +msgid "syntax error in expression" +msgstr "error de sintaxi a l'expressi?" + +#: expr.c:419 +msgid "attempted assignment to non-variable" +msgstr "s'ha intentat assignar una variable inexistent" + +#: expr.c:440 expr.c:445 expr.c:756 +msgid "division by 0" +msgstr "divisi? per 0" + +#: expr.c:471 +#, fuzzy +msgid "bug: bad expassign token" +msgstr "error de programaci?: pas incorrecte del senyal %d per a expassing()." + +#: expr.c:513 +msgid "`:' expected for conditional expression" +msgstr "s'esperava ':' per a l'expressi? condicional" + +#: expr.c:781 +msgid "exponent less than 0" +msgstr "" + +#: expr.c:826 +msgid "identifier expected after pre-increment or pre-decrement" +msgstr "" + +#: expr.c:854 +msgid "missing `)'" +msgstr "falta algun ')'" + +#: expr.c:897 expr.c:1175 +#, fuzzy +msgid "syntax error: operand expected" +msgstr "error de sintaxi: s'ha arribat inesperadament a la fi del fitxer" + +#: expr.c:1177 +msgid "syntax error: invalid arithmetic operator" +msgstr "" + +#: expr.c:1201 +#, fuzzy, c-format +msgid "%s%s%s: %s (error token is \"%s\")" +msgstr "%s: %s: %s (la prova d'error ?s \"%s\")\n" + +#: expr.c:1259 +msgid "invalid arithmetic base" +msgstr "" + +#: expr.c:1279 +msgid "value too great for base" +msgstr "valor massa gran per a la base de numeraci?" + +#: expr.c:1328 +#, fuzzy, c-format +msgid "%s: expression error\n" +msgstr "%s: s'esperava una expressi? de nombre enter" + +#: general.c:61 +#, fuzzy +msgid "getcwd: cannot access parent directories" +msgstr "getwd: no s'ha pogut accedir als directoris pares" + +#: input.c:94 subst.c:4559 +#, fuzzy, c-format +msgid "cannot reset nodelay mode for fd %d" +msgstr "" +"no es pot copiar per duplicat el descriptor del fitxer df %d cap a df 0: %s" + +#: input.c:258 +#, fuzzy, c-format +msgid "cannot allocate new file descriptor for bash input from fd %d" +msgstr "" +"no s'ha pogut assignar una nova descripci? de fitxer per a l'entrada de " +"bash\n" +"a partir del descriptor de fitxer %d: %s" + +#: input.c:266 +#, fuzzy, c-format +msgid "save_bash_input: buffer already exists for new fd %d" +msgstr "" +"check_bash_input: ja hi existeix mem?ria interm?dia per a la nova\n" +"descripci? de fitxer %d" + +#: jobs.c:466 +msgid "start_pipeline: pgrp pipe" +msgstr "" + +#: jobs.c:882 +#, c-format +msgid "forked pid %d appears in running job %d" +msgstr "" + +#: jobs.c:1000 +#, c-format +msgid "deleting stopped job %d with process group %ld" +msgstr "" + +#: jobs.c:1105 +#, c-format +msgid "add_process: process %5ld (%s) in the_pipeline" +msgstr "" + +#: jobs.c:1108 +#, c-format +msgid "add_process: pid %5ld (%s) marked as still alive" +msgstr "" + +#: jobs.c:1396 +#, fuzzy, c-format +msgid "describe_pid: %ld: no such pid" +msgstr "describe_pid: L'identificador de proc?s (pid) no existeix (%d)!\n" + +#: jobs.c:1411 +#, fuzzy, c-format +msgid "Signal %d" +msgstr "Senyal desconeguda #%d" + +#: jobs.c:1425 jobs.c:1450 +msgid "Done" +msgstr "Fet" + +#: jobs.c:1430 siglist.c:122 +msgid "Stopped" +msgstr "Aturat" + +#: jobs.c:1434 +#, fuzzy, c-format +msgid "Stopped(%s)" +msgstr "Aturat" + +#: jobs.c:1438 +msgid "Running" +msgstr "S'est? executant" + +#: jobs.c:1452 +#, c-format +msgid "Done(%d)" +msgstr "Fet (%d)" + +#: jobs.c:1454 +#, c-format +msgid "Exit %d" +msgstr "Fi d'execuci? amb l'estat %d" + +#: jobs.c:1457 +msgid "Unknown status" +msgstr "Estat desconegut" + +#: jobs.c:1544 +#, c-format +msgid "(core dumped) " +msgstr "(la imatge del nucli ha estat bolcada) " + +#: jobs.c:1563 +#, fuzzy, c-format +msgid " (wd: %s)" +msgstr "(wd ara: %s)\n" + +#: jobs.c:1766 +#, fuzzy, c-format +msgid "child setpgid (%ld to %ld)" +msgstr "error en l'execuci? de setpgid (%d a %d) en el proc?s fill %d: %s\n" + +#: jobs.c:2094 nojobs.c:576 +#, fuzzy, c-format +msgid "wait: pid %ld is not a child of this shell" +msgstr "" +"wait: l'identificador del proc?s (pid) %d no ?s un fill d'aquest int?rpret" + +#: jobs.c:2321 +#, c-format +msgid "wait_for: No record of process %ld" +msgstr "" + +#: jobs.c:2593 +#, c-format +msgid "wait_for_job: job %d is stopped" +msgstr "" + +#: jobs.c:2815 +#, c-format +msgid "%s: job has terminated" +msgstr "%s: s'ha finalitzat la tasca" + +#: jobs.c:2824 +#, c-format +msgid "%s: job %d already in background" +msgstr "" + +#: jobs.c:3487 +#, fuzzy, c-format +msgid "%s: line %d: " +msgstr "encaix %3d:" + +#: jobs.c:3501 nojobs.c:805 +#, c-format +msgid " (core dumped)" +msgstr " (bolcat de la imatge del nucli)" + +#: jobs.c:3513 jobs.c:3526 +#, c-format +msgid "(wd now: %s)\n" +msgstr "(wd ara: %s)\n" + +#: jobs.c:3558 +#, fuzzy +msgid "initialize_job_control: getpgrp failed" +msgstr "initialize_jobs: getpgrp ha fallat: %s" + +#: jobs.c:3618 +#, fuzzy +msgid "initialize_job_control: line discipline" +msgstr "initialize_jobs: disciplina de l?nia: %s" + +#: jobs.c:3628 +#, fuzzy +msgid "initialize_job_control: setpgid" +msgstr "initialize_jobs: getpgrp ha fallat: %s" + +#: jobs.c:3656 +#, c-format +msgid "cannot set terminal process group (%d)" +msgstr "" + +#: jobs.c:3661 +msgid "no job control in this shell" +msgstr "no hi ha cap tasca de control dins d'aquest int?rpret" + +#: lib/malloc/malloc.c:296 +#, c-format +msgid "malloc: failed assertion: %s\n" +msgstr "" + +#: lib/malloc/malloc.c:312 +#, c-format +msgid "" +"\r\n" +"malloc: %s:%d: assertion botched\r\n" +msgstr "" + +#: lib/malloc/malloc.c:313 +#, fuzzy +msgid "unknown" +msgstr "" + +#: lib/malloc/malloc.c:797 +msgid "malloc: block on free list clobbered" +msgstr "" + +#: lib/malloc/malloc.c:874 +msgid "free: called with already freed block argument" +msgstr "" + +#: lib/malloc/malloc.c:877 +msgid "free: called with unallocated block argument" +msgstr "" + +#: lib/malloc/malloc.c:896 +msgid "free: underflow detected; mh_nbytes out of range" +msgstr "" + +#: lib/malloc/malloc.c:902 +msgid "free: start and end chunk sizes differ" +msgstr "" + +#: lib/malloc/malloc.c:1001 +msgid "realloc: called with unallocated block argument" +msgstr "" + +#: lib/malloc/malloc.c:1016 +msgid "realloc: underflow detected; mh_nbytes out of range" +msgstr "" + +#: lib/malloc/malloc.c:1022 +msgid "realloc: start and end chunk sizes differ" +msgstr "" + +#: lib/malloc/table.c:177 +#, c-format +msgid "register_alloc: alloc table is full with FIND_ALLOC?\n" +msgstr "" + +#: lib/malloc/table.c:184 +#, c-format +msgid "register_alloc: %p already in table as allocated?\n" +msgstr "" + +#: lib/malloc/table.c:220 +#, c-format +msgid "register_free: %p already in table as free?\n" +msgstr "" + +#: lib/sh/fmtulong.c:101 +msgid "invalid base" +msgstr "" + +#: lib/sh/netopen.c:168 +#, fuzzy, c-format +msgid "%s: host unknown" +msgstr "desconegut" + +#: lib/sh/netopen.c:175 +#, c-format +msgid "%s: invalid service" +msgstr "" + +#: lib/sh/netopen.c:306 +#, c-format +msgid "%s: bad network path specification" +msgstr "" + +#: lib/sh/netopen.c:346 +msgid "network operations not supported" +msgstr "" + +#: mailcheck.c:433 +msgid "You have mail in $_" +msgstr "Teniu correu en $_" + +#: mailcheck.c:458 +msgid "You have new mail in $_" +msgstr "Teniu correu nou en $_" + +#: mailcheck.c:474 +#, c-format +msgid "The mail in %s has been read\n" +msgstr "S'ha llegit el correu a %s\n" + +#: make_cmd.c:322 +#, fuzzy +msgid "syntax error: arithmetic expression required" +msgstr "error de sintaxi a l'expressi?" + +#: make_cmd.c:324 +#, fuzzy +msgid "syntax error: `;' unexpected" +msgstr "error de sintaxi: s'ha arribat inesperadament a la fi del fitxer" + +#: make_cmd.c:325 +#, fuzzy, c-format +msgid "syntax error: `((%s))'" +msgstr "error de sintaxi" + +#: make_cmd.c:567 +#, c-format +msgid "make_here_document: bad instruction type %d" +msgstr "make_here_document: el tipus d'instrucci? %d ?s incorrecte" + +#: make_cmd.c:651 +#, c-format +msgid "here-document at line %d delimited by end-of-file (wanted `%s')" +msgstr "" + +#: make_cmd.c:746 +#, c-format +msgid "make_redirection: redirection instruction `%d' out of range" +msgstr "" + +#: parse.y:2986 parse.y:3218 +#, fuzzy, c-format +msgid "unexpected EOF while looking for matching `%c'" +msgstr "" +"s'ha arribat inesperadament a la fi del fitxer (EOF) mentre\n" +"es buscava per '%c'" + +#: parse.y:3722 +#, fuzzy +msgid "unexpected EOF while looking for `]]'" +msgstr "" +"s'ha arribat inesperadament a la fi del fitxer (EOF) mentre\n" +"es buscava per '%c'" + +#: parse.y:3727 +#, fuzzy, c-format +msgid "syntax error in conditional expression: unexpected token `%s'" +msgstr "hi ha un error inesperat de sintaxi prop del senyal '%s'" + +#: parse.y:3731 +#, fuzzy +msgid "syntax error in conditional expression" +msgstr "error de sintaxi a l'expressi?" + +#: parse.y:3809 +#, c-format +msgid "unexpected token `%s', expected `)'" +msgstr "" + +#: parse.y:3813 +#, fuzzy +msgid "expected `)'" +msgstr "s'esperava ')'" + +#: parse.y:3841 +#, c-format +msgid "unexpected argument `%s' to conditional unary operator" +msgstr "" + +#: parse.y:3845 +msgid "unexpected argument to conditional unary operator" +msgstr "" + +#: parse.y:3885 +#, fuzzy, c-format +msgid "unexpected token `%s', conditional binary operator expected" +msgstr "%s: s'esperava un operador binari" + +#: parse.y:3889 +#, fuzzy +msgid "conditional binary operator expected" +msgstr "%s: s'esperava un operador binari" + +#: parse.y:3906 +#, c-format +msgid "unexpected argument `%s' to conditional binary operator" +msgstr "" + +#: parse.y:3910 +msgid "unexpected argument to conditional binary operator" +msgstr "" + +#: parse.y:3921 +#, fuzzy, c-format +msgid "unexpected token `%c' in conditional command" +msgstr "s'esperava ':' per a l'expressi? condicional" + +#: parse.y:3924 +#, fuzzy, c-format +msgid "unexpected token `%s' in conditional command" +msgstr "s'esperava ':' per a l'expressi? condicional" + +#: parse.y:3928 +#, fuzzy, c-format +msgid "unexpected token %d in conditional command" +msgstr "s'esperava ':' per a l'expressi? condicional" + +#: parse.y:5195 +#, c-format +msgid "syntax error near unexpected token `%s'" +msgstr "hi ha un error inesperat de sintaxi prop del senyal '%s'" + +#: parse.y:5213 +#, fuzzy, c-format +msgid "syntax error near `%s'" +msgstr "hi ha un error inesperat de sintaxi prop del senyal '%s'" + +#: parse.y:5223 +msgid "syntax error: unexpected end of file" +msgstr "error de sintaxi: s'ha arribat inesperadament a la fi del fitxer" + +#: parse.y:5223 +msgid "syntax error" +msgstr "error de sintaxi" + +#: parse.y:5285 +#, c-format +msgid "Use \"%s\" to leave the shell.\n" +msgstr "Utilitzeu ?%s? per a eixir de l'int?rpret d'ordres.\n" + +#: parse.y:5447 +#, fuzzy +msgid "unexpected EOF while looking for matching `)'" +msgstr "" +"s'ha arribat inesperadament a la fi del fitxer (EOF) mentre\n" +"es buscava per '%c'" + +#: pcomplete.c:1016 +#, c-format +msgid "completion: function `%s' not found" +msgstr "" + +#: pcomplib.c:179 +#, c-format +msgid "progcomp_insert: %s: NULL COMPSPEC" +msgstr "" + +#: print_cmd.c:287 +#, c-format +msgid "print_command: bad connector `%d'" +msgstr "print_command: el connector '%d' ?s incorrecte" + +#: print_cmd.c:1347 +#, c-format +msgid "cprintf: `%c': invalid format character" +msgstr "" + +#: redir.c:105 +msgid "file descriptor out of range" +msgstr "" + +#: redir.c:148 +#, fuzzy, c-format +msgid "%s: ambiguous redirect" +msgstr "%s: Redirecci? ambigua" + +# No acabe d'entendre el significat de l'original "clobber" +#: redir.c:152 +#, fuzzy, c-format +msgid "%s: cannot overwrite existing file" +msgstr "%s: No s'ha pogut sobreescriure el fitxer existent" + +#: redir.c:157 +#, fuzzy, c-format +msgid "%s: restricted: cannot redirect output" +msgstr "%s: restringit: no es pot especificar '/' en noms d'ordres" + +#: redir.c:162 +#, fuzzy, c-format +msgid "cannot create temp file for here-document: %s" +msgstr "no es pot establir un conducte per a la substituci? del proc?s: %s" + +#: redir.c:517 +msgid "/dev/(tcp|udp)/host/port not supported without networking" +msgstr "" + +#: redir.c:1023 +#, fuzzy +msgid "redirection error: cannot duplicate fd" +msgstr "error de redirecci?" + +#: shell.c:328 +msgid "could not find /tmp, please create!" +msgstr "" + +#: shell.c:332 +msgid "/tmp must be a valid directory name" +msgstr "" + +#: shell.c:876 +#, fuzzy, c-format +msgid "%c%c: invalid option" +msgstr "%c%c: opci? inv?lida" + +#: shell.c:1638 +msgid "I have no name!" +msgstr "No tinc cap nom d'usuari!" + +#: shell.c:1778 +#, fuzzy, c-format +msgid "GNU bash, version %s-(%s)\n" +msgstr "GNU %s, versi? %s\n" + +#: shell.c:1779 +#, c-format +msgid "" +"Usage:\t%s [GNU long option] [option] ...\n" +"\t%s [GNU long option] [option] script-file ...\n" +msgstr "" +"Sintaxi:\t%s [opci?-format-llarg GNU] [opci?] ...\n" +"\t%s [opci?-format-llarg GNU] [opci?] fitxer_de_seq??ncies ...\n" + +#: shell.c:1781 +msgid "GNU long options:\n" +msgstr "opcions de formes llargues de GNU:\n" + +#: shell.c:1785 +msgid "Shell options:\n" +msgstr "Opcions de l'int?rpret d'ordres:\n" + +#: shell.c:1786 +#, fuzzy +msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n" +msgstr "\t-irsD o -c ordre\t\t(nom?s per a invocar)\n" + +#: shell.c:1801 +#, c-format +msgid "\t-%s or -o option\n" +msgstr "\t-%s o -o opci?\n" + +#: shell.c:1807 +#, c-format +msgid "Type `%s -c \"help set\"' for more information about shell options.\n" +msgstr "" +"Per a obtindre m?s informaci? sobre les opcions de l'int?rpret\n" +"d'ordres, teclegeu ?%s -c \"help set\"?.\n" + +#: shell.c:1808 +#, c-format +msgid "Type `%s -c help' for more information about shell builtin commands.\n" +msgstr "" +"Per a obtindre m?s informaci? sobre les ordres integrades de l'int?rpret,\n" +"teclegeu '%s -c help' .\n" + +#: shell.c:1809 +#, c-format +msgid "Use the `bashbug' command to report bugs.\n" +msgstr "" + +#: sig.c:583 +#, c-format +msgid "sigprocmask: %d: invalid operation" +msgstr "" + +#: siglist.c:47 +msgid "Bogus signal" +msgstr "Senyal falsa" + +#: siglist.c:50 +msgid "Hangup" +msgstr "Penjar" + +#: siglist.c:54 +msgid "Interrupt" +msgstr "Interrumpeix" + +#: siglist.c:58 +msgid "Quit" +msgstr "Eixir" + +#: siglist.c:62 +msgid "Illegal instruction" +msgstr "Instrucci? ilžlegal" + +#: siglist.c:66 +msgid "BPT trace/trap" +msgstr "BPT rastrejament/captura" + +#: siglist.c:74 +msgid "ABORT instruction" +msgstr "Instrucci? d'avortament (ABORT)" + +#: siglist.c:78 +msgid "EMT instruction" +msgstr "Instrucci? per a emular una captura EMT" + +#: siglist.c:82 +msgid "Floating point exception" +msgstr "Excepci? en operaci? amb coma flotant" + +#: siglist.c:86 +msgid "Killed" +msgstr "Finalitzat" + +#: siglist.c:90 +msgid "Bus error" +msgstr "Error de bus" + +#: siglist.c:94 +msgid "Segmentation fault" +msgstr "Violaci? de segment" + +#: siglist.c:98 +msgid "Bad system call" +msgstr "Crida inv?lida del sistema" + +#: siglist.c:102 +msgid "Broken pipe" +msgstr "Conducte trencat" + +#: siglist.c:106 +msgid "Alarm clock" +msgstr "Temporitzador" + +#: siglist.c:110 +#, fuzzy +msgid "Terminated" +msgstr "" +"opci? incorrecta, la funci? getopts() introdueix el signe '?' dins de\n" +"la variable NAME i esborra la variable OPTARG. Si no es troba una \n" +"opci? necess?ria, s'introdueix el signe '?' en la variable NAME, \n" +"s'esborra la variable OPTARG, i s'imprimir? un missatge de\n" +"diagn?stic." + +#: siglist.c:114 +msgid "Urgent IO condition" +msgstr "Condici? urgent d'Entrada/Eixida (En/Ei)" + +#: siglist.c:118 +msgid "Stopped (signal)" +msgstr "Aturat (senyal)" + +#: siglist.c:126 +msgid "Continue" +msgstr "Continua" + +#: siglist.c:134 +msgid "Child death or stop" +msgstr "S'ha mort o s'ha aturat el proc?s fill" + +#: siglist.c:138 +msgid "Stopped (tty input)" +msgstr "Aturat (entrada per terminal)" + +#: siglist.c:142 +msgid "Stopped (tty output)" +msgstr "Aturat (eixida per terminal)" + +#: siglist.c:146 +msgid "I/O ready" +msgstr "Entrada/Eixida preparades" + +#: siglist.c:150 +msgid "CPU limit" +msgstr "L?mit de la UCP" + +#: siglist.c:154 +msgid "File limit" +msgstr "L?mit de la grand?ria del fitxer" + +#: siglist.c:158 +msgid "Alarm (virtual)" +msgstr "Alarma (virtual)" + +#: siglist.c:162 +msgid "Alarm (profile)" +msgstr "Alarma (entorn)" + +#: siglist.c:166 +msgid "Window changed" +msgstr "S'ha canviat la finestra" + +#: siglist.c:170 +msgid "Record lock" +msgstr "Bloqueig de gravaci?" + +#: siglist.c:174 +msgid "User signal 1" +msgstr "Senyal 1 definida per l'usuari" + +#: siglist.c:178 +msgid "User signal 2" +msgstr "Senyal 2 definida per l'usuari" + +#: siglist.c:182 +msgid "HFT input data pending" +msgstr "pendent de l'entrada de dades HFT" + +#: siglist.c:186 +msgid "power failure imminent" +msgstr "fallida imminent d'energia" + +#: siglist.c:190 +msgid "system crash imminent" +msgstr "fallida imminent del sistema" + +#: siglist.c:194 +msgid "migrate process to another CPU" +msgstr "proc?s de migraci? cap a un altre UPC en curs" + +#: siglist.c:198 +msgid "programming error" +msgstr "error de programaci?" + +#: siglist.c:202 +msgid "HFT monitor mode granted" +msgstr "S'ha concedit el mode de monitor HFT" + +#: siglist.c:206 +msgid "HFT monitor mode retracted" +msgstr "S'ha rebutjat el mode de monitor HFT" + +#: siglist.c:210 +msgid "HFT sound sequence has completed" +msgstr "S'ha completat la seq??ncia de so HFT" + +#: siglist.c:214 +msgid "Information request" +msgstr "" + +#: siglist.c:222 +msgid "Unknown Signal #" +msgstr "Senyal desconeguda #" + +#: siglist.c:224 +#, c-format +msgid "Unknown Signal #%d" +msgstr "Senyal desconeguda #%d" + +#: subst.c:1181 subst.c:1302 +#, fuzzy, c-format +msgid "bad substitution: no closing `%s' in %s" +msgstr "substituci? inv?lida: no existeix '%s' en %s" + +#: subst.c:2458 +#, c-format +msgid "%s: cannot assign list to array member" +msgstr "%s: no es pot assignar la llista a un element de la matriu" + +#: subst.c:4456 subst.c:4472 +#, fuzzy +msgid "cannot make pipe for process substitution" +msgstr "no es pot establir un conducte per a la substituci? del proc?s: %s" + +#: subst.c:4504 +#, fuzzy +msgid "cannot make child for process substitution" +msgstr "no es pot establir un proc?s fill per a la substituci? del proc?s: %s" + +#: subst.c:4549 +#, fuzzy, c-format +msgid "cannot open named pipe %s for reading" +msgstr "no es pot obrir el conducte anomenat %s per a %s: %s" + +#: subst.c:4551 +#, fuzzy, c-format +msgid "cannot open named pipe %s for writing" +msgstr "no es pot obrir el conducte anomenat %s per a %s: %s" + +#: subst.c:4569 +#, fuzzy, c-format +msgid "cannot duplicate named pipe %s as fd %d" +msgstr "" +"no es pot duplicar el conducte anomenat %s\n" +"com a descripci? de fitxer %d: %s" + +#: subst.c:4765 +#, fuzzy +msgid "cannot make pipe for command substitution" +msgstr "no es poden establir conductes per a la substituci? de l'ordre: %s" + +#: subst.c:4799 +#, fuzzy +msgid "cannot make child for command substitution" +msgstr "no es pot crear un proc?s fill per a la substituci? del proc?s: %s" + +#: subst.c:4816 +#, fuzzy +msgid "command_substitute: cannot duplicate pipe as fd 1" +msgstr "" +"command_substitute(): el coducte no es pot duplicar\n" +"com a descripci? de fitxer 1: %s" + +#: subst.c:5318 +#, c-format +msgid "%s: parameter null or not set" +msgstr "%s: par?metre nul o no ajustat" + +#: subst.c:5608 +#, c-format +msgid "%s: substring expression < 0" +msgstr "%s: la sub-cadena de l'expressi? ?s < 0" + +#: subst.c:6660 +#, c-format +msgid "%s: bad substitution" +msgstr "%s: substituci? inv?lida" + +#: subst.c:6740 +#, c-format +msgid "$%s: cannot assign in this way" +msgstr "$%s: no es pot assignar d'aquesta manera" + +#: subst.c:7479 +#, fuzzy, c-format +msgid "bad substitution: no closing \"`\" in %s" +msgstr "substituci? inv?lida: no existeix '%s' en %s" + +#: subst.c:8354 +#, c-format +msgid "no match: %s" +msgstr "" + +#: test.c:145 +msgid "argument expected" +msgstr "s'esperava un par?metre" + +#: test.c:154 +#, c-format +msgid "%s: integer expression expected" +msgstr "%s: s'esperava una expressi? de nombre enter" + +#: test.c:262 +msgid "`)' expected" +msgstr "s'esperava ')'" + +#: test.c:264 +#, c-format +msgid "`)' expected, found %s" +msgstr "mentre es buscava ?)?, s'ha trobat %s" + +#: test.c:279 test.c:688 test.c:691 +#, c-format +msgid "%s: unary operator expected" +msgstr "%s: s'esperava un operador unari" + +#: test.c:444 test.c:731 +#, c-format +msgid "%s: binary operator expected" +msgstr "%s: s'esperava un operador binari" + +#: test.c:806 +msgid "missing `]'" +msgstr "s'ha perdut algun ']'" + +#: trap.c:201 +#, fuzzy +msgid "invalid signal number" +msgstr "n?mero inv?lid de senyal" + +#: trap.c:324 +#, c-format +msgid "run_pending_traps: bad value in trap_list[%d]: %p" +msgstr "" + +#: trap.c:328 +#, c-format +msgid "" +"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself" +msgstr "" + +#: trap.c:372 +#, fuzzy, c-format +msgid "trap_handler: bad signal %d" +msgstr "trap_handler: Senyal inv?lida %d" + +#: variables.c:358 +#, c-format +msgid "error importing function definition for `%s'" +msgstr "'%s': error en importar la definici? de la funci?" + +#: variables.c:736 +#, c-format +msgid "shell level (%d) too high, resetting to 1" +msgstr "" + +#: variables.c:1898 +msgid "make_local_variable: no function context at current scope" +msgstr "" + +#: variables.c:3127 +msgid "all_local_variables: no function context at current scope" +msgstr "" + +#: variables.c:3344 variables.c:3353 +#, c-format +msgid "invalid character %d in exportstr for %s" +msgstr "" + +#: variables.c:3359 +#, c-format +msgid "no `=' in exportstr for %s" +msgstr "" + +#: variables.c:3794 +msgid "pop_var_context: head of shell_variables not a function context" +msgstr "" + +#: variables.c:3807 +msgid "pop_var_context: no global_variables context" +msgstr "" + +#: variables.c:3881 +msgid "pop_scope: head of shell_variables not a temporary environment scope" +msgstr "" + +#: version.c:46 +msgid "Copyright (C) 2009 Free Software Foundation, Inc." +msgstr "" + +#: version.c:47 +msgid "" +"License GPLv3+: GNU GPL version 3 or later \n" +msgstr "" + +#: version.c:86 +#, fuzzy, c-format +msgid "GNU bash, version %s (%s)\n" +msgstr "GNU %s, versi? %s\n" + +#: version.c:91 +#, c-format +msgid "This is free software; you are free to change and redistribute it.\n" +msgstr "" + +#: version.c:92 +#, c-format +msgid "There is NO WARRANTY, to the extent permitted by law.\n" +msgstr "" + +#: xmalloc.c:92 +#, c-format +msgid "xmalloc: cannot allocate %lu bytes (%lu bytes allocated)" +msgstr "xmalloc: no es poden assignar %lu octets (%lu octets assignats)" + +#: xmalloc.c:94 +#, fuzzy, c-format +msgid "xmalloc: cannot allocate %lu bytes" +msgstr "xmalloc: no es poden assignar %lu octets (%lu octets assignats)" + +#: xmalloc.c:114 +#, c-format +msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)" +msgstr "xrealloc: no es poden reassignar %lu octets (%lu octets reassignats)" + +#: xmalloc.c:116 +#, fuzzy, c-format +msgid "xrealloc: cannot allocate %lu bytes" +msgstr "xrealloc: no es poden reassignar %lu octets (%lu octets reassignats)" + +#: xmalloc.c:150 +#, fuzzy, c-format +msgid "xmalloc: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)" +msgstr "xmalloc: no es poden assignar %lu octets (%lu octets assignats)" + +#: xmalloc.c:152 +#, fuzzy, c-format +msgid "xmalloc: %s:%d: cannot allocate %lu bytes" +msgstr "xmalloc: no es poden assignar %lu octets (%lu octets assignats)" + +#: xmalloc.c:174 +#, fuzzy, c-format +msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)" +msgstr "xrealloc: no es poden reassignar %lu octets (%lu octets reassignats)" + +#: xmalloc.c:176 +#, fuzzy, c-format +msgid "xrealloc: %s:%d: cannot allocate %lu bytes" +msgstr "xrealloc: no es poden reassignar %lu octets (%lu octets reassignats)" + +#: builtins.c:43 +msgid "alias [-p] [name[=value] ... ]" +msgstr "alias [-p] [nom[=valor] ... ]" + +#: builtins.c:47 +#, fuzzy +msgid "unalias [-a] name [name ...]" +msgstr "unalias [-a] [nom ...]" + +#: builtins.c:51 +#, fuzzy +msgid "" +"bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-" +"x keyseq:shell-command] [keyseq:readline-function or readline-command]" +msgstr "" +"bind [-lpvsPVS] [-m keymap] [-f fitxer] [-q nom] [-r keyseq] [keyseq:funci?-" +"readline] " + +#: builtins.c:54 +msgid "break [n]" +msgstr "break [n]" + +#: builtins.c:56 +msgid "continue [n]" +msgstr "continue [n]" + +#: builtins.c:58 +msgid "builtin [shell-builtin [arg ...]]" +msgstr "builtin [ordre-interna [arg ...]]" + +#: builtins.c:61 +#, fuzzy +msgid "caller [expr]" +msgstr "test [expressi?]" + +#: builtins.c:64 +#, fuzzy +msgid "cd [-L|-P] [dir]" +msgstr "cd [-PL] [directori]" + +#: builtins.c:66 +#, fuzzy +msgid "pwd [-LP]" +msgstr "pwd [-PL]" + +#: builtins.c:68 +msgid ":" +msgstr ":" + +#: builtins.c:70 +msgid "true" +msgstr "" + +#: builtins.c:72 +msgid "false" +msgstr "" + +#: builtins.c:74 +msgid "command [-pVv] command [arg ...]" +msgstr "command [-pVv] ordre [par?metre ...]" + +#: builtins.c:76 +#, fuzzy +msgid "declare [-aAfFilrtux] [-p] [name[=value] ...]" +msgstr "declare [-afFrxi] [-p] nom[=valor] ..." + +#: builtins.c:78 +#, fuzzy +msgid "typeset [-aAfFilrtux] [-p] name[=value] ..." +msgstr "typeset [-afFrxi] [-p] nom[=valor] ..." + +#: builtins.c:80 +#, fuzzy +msgid "local [option] name[=value] ..." +msgstr "local nom[=valor] ..." + +#: builtins.c:83 +msgid "echo [-neE] [arg ...]" +msgstr "echo [-neE] [par?metre ...]" + +#: builtins.c:87 +msgid "echo [-n] [arg ...]" +msgstr "echo [-n] [par?metre ...]" + +#: builtins.c:90 +#, fuzzy +msgid "enable [-a] [-dnps] [-f filename] [name ...]" +msgstr "enable [-pnds] [-a] [-f fitxer] [nom ...]" + +#: builtins.c:92 +msgid "eval [arg ...]" +msgstr "eval [par?metre ...]" + +#: builtins.c:94 +msgid "getopts optstring name [arg]" +msgstr "getopts cadena_opcions nom [par?metre]" + +#: builtins.c:96 +#, fuzzy +msgid "exec [-cl] [-a name] [command [arguments ...]] [redirection ...]" +msgstr "exec [-cl] [-a nom] fitxer [redireccionament ...]" + +#: builtins.c:98 +msgid "exit [n]" +msgstr "exit [n]" + +#: builtins.c:100 +#, fuzzy +msgid "logout [n]" +msgstr "fi de sessi?" + +#: builtins.c:103 +#, fuzzy +msgid "fc [-e ename] [-lnr] [first] [last] or fc -s [pat=rep] [command]" +msgstr "" +"fc [-e nom_e] [-nlr] [primer] [darrer]\n" +"o\n" +"fc -s [patr?=rep] [ordre]" + +#: builtins.c:107 +msgid "fg [job_spec]" +msgstr "fg [id_tasca]" + +#: builtins.c:111 +#, fuzzy +msgid "bg [job_spec ...]" +msgstr "bg [id_tasca]" + +#: builtins.c:114 +#, fuzzy +msgid "hash [-lr] [-p pathname] [-dt] [name ...]" +msgstr "hash [-r] [-p cam?] [nom ...]" + +#: builtins.c:117 +#, fuzzy +msgid "help [-ds] [pattern ...]" +msgstr "help [patr? ...]" + +#: builtins.c:121 +#, fuzzy +msgid "" +"history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg " +"[arg...]" +msgstr "" +"history [-c] [n]\n" +"o\n" +"history -awrn [fitxer]\n" +"o\n" +"history -ps par?metre [par?metre...]" + +#: builtins.c:125 +msgid "jobs [-lnprs] [jobspec ...] or jobs -x command [args]" +msgstr "" +"jobs [-lnprs] [id_tasca ...]\n" +"o\n" +"jobs -x ordre [par?metres]" + +#: builtins.c:129 +#, fuzzy +msgid "disown [-h] [-ar] [jobspec ...]" +msgstr "disown [id_tasca ...]" + +#: builtins.c:132 +#, fuzzy +msgid "" +"kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l " +"[sigspec]" +msgstr "" +"kill [-s id_senyal | -n n?m_senyal | -id_senyal] [id_proc?s | tasca]...\n" +"o\n" +"kill -l [id_senyal]" + +#: builtins.c:134 +msgid "let arg [arg ...]" +msgstr "let par?metres [par?metres ...]" + +#: builtins.c:136 +msgid "" +"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-p prompt] [-t " +"timeout] [-u fd] [name ...]" +msgstr "" + +#: builtins.c:138 +msgid "return [n]" +msgstr "return [n]" + +#: builtins.c:140 +#, fuzzy +msgid "set [--abefhkmnptuvxBCHP] [-o option-name] [arg ...]" +msgstr "set [--abefhkmnptuvxBCHP] [-o opci?] [par?metres ...]" + +#: builtins.c:142 +msgid "unset [-f] [-v] [name ...]" +msgstr "unset [-f] [-v] [nom ...]" + +#: builtins.c:144 +#, fuzzy +msgid "export [-fn] [name[=value] ...] or export -p" +msgstr "" +"export [-nf] [nom ...]\n" +"o\n" +"export -p" + +#: builtins.c:146 +#, fuzzy +msgid "readonly [-af] [name[=value] ...] or readonly -p" +msgstr "" +"readonly [-anf] [nom ...]\n" +"o\n" +"readonly -p" + +#: builtins.c:148 +#, fuzzy +msgid "shift [n]" +msgstr "exit [n]" + +#: builtins.c:150 +#, fuzzy +msgid "source filename [arguments]" +msgstr "nom del fitxer d'origen" + +#: builtins.c:152 +#, fuzzy +msgid ". filename [arguments]" +msgstr ". nom del fitxer" + +#: builtins.c:155 +msgid "suspend [-f]" +msgstr "suspend [-f]" + +#: builtins.c:158 +msgid "test [expr]" +msgstr "test [expressi?]" + +#: builtins.c:160 +msgid "[ arg... ]" +msgstr "[ par?metres... ]" + +#: builtins.c:162 +msgid "times" +msgstr "times" + +#: builtins.c:164 +#, fuzzy +msgid "trap [-lp] [[arg] signal_spec ...]" +msgstr "" +"trap [par?metres] [id_senyal], o \n" +"trap -l" + +#: builtins.c:166 +#, fuzzy +msgid "type [-afptP] name [name ...]" +msgstr "type [-apt] nom [nom ...]" + +#: builtins.c:169 +#, fuzzy +msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]" +msgstr "ulimit [-SHacdfmstpnuv] [l?mit]" + +#: builtins.c:172 +#, fuzzy +msgid "umask [-p] [-S] [mode]" +msgstr "umask [-S] [mode]" + +#: builtins.c:175 +#, fuzzy +msgid "wait [id]" +msgstr "wait [n]" + +#: builtins.c:179 +#, fuzzy +msgid "wait [pid]" +msgstr "wait [n]" + +#: builtins.c:182 +#, fuzzy +msgid "for NAME [in WORDS ... ] ; do COMMANDS; done" +msgstr "for NOM [in PARAULES ... ;] do ORDRES; done" + +#: builtins.c:184 +#, fuzzy +msgid "for (( exp1; exp2; exp3 )); do COMMANDS; done" +msgstr "for NOM [in PARAULES ... ;] do ORDRES; done" + +#: builtins.c:186 +msgid "select NAME [in WORDS ... ;] do COMMANDS; done" +msgstr "select NOM [in PARAULES ... ;] do ORDRES; done" + +#: builtins.c:188 +msgid "time [-p] pipeline" +msgstr "" + +#: builtins.c:190 +msgid "case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac" +msgstr "case PARAULES in [PATR? [| PATR?]...) ORDRES ;;]... esac" + +#: builtins.c:192 +msgid "" +"if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else " +"COMMANDS; ] fi" +msgstr "" +"if ORDRES; then ORDRES; [ elif ORDRES; then ORDRES; ]... [ else ORDRES; ] fi" + +#: builtins.c:194 +msgid "while COMMANDS; do COMMANDS; done" +msgstr "while ORDRES; do ORDRES; done" + +#: builtins.c:196 +msgid "until COMMANDS; do COMMANDS; done" +msgstr "until ORDRES; do ORDRES; done" + +#: builtins.c:198 +#, fuzzy +msgid "function name { COMMANDS ; } or name () { COMMANDS ; }" +msgstr "function NOM { ORDRES ; } or NOM () { ORDRES ; }" + +#: builtins.c:200 +#, fuzzy +msgid "{ COMMANDS ; }" +msgstr "{ ORDRES }" + +#: builtins.c:202 +#, fuzzy +msgid "job_spec [&]" +msgstr "fg [id_tasca]" + +#: builtins.c:204 +#, fuzzy +msgid "(( expression ))" +msgstr "s'esperava una expressi?" + +#: builtins.c:206 +#, fuzzy +msgid "[[ expression ]]" +msgstr "s'esperava una expressi?" + +#: builtins.c:208 +#, fuzzy +msgid "variables - Names and meanings of some shell variables" +msgstr "Es permeten les variables de l'int?rpret d'ordres com a operands. El" + +#: builtins.c:211 +#, fuzzy +msgid "pushd [-n] [+N | -N | dir]" +msgstr "pushd [directori | +N | -N] [-n]" + +#: builtins.c:215 +#, fuzzy +msgid "popd [-n] [+N | -N]" +msgstr "popd [+N | -N] [-n]" + +#: builtins.c:219 +msgid "dirs [-clpv] [+N] [-N]" +msgstr "dirs [-clpv] [+N] [-N]" + +#: builtins.c:222 +#, fuzzy +msgid "shopt [-pqsu] [-o] [optname ...]" +msgstr "shopt [-pqsu] [-o opci?_format_llarg] nom_opci? [nom_opci?...]" + +#: builtins.c:224 +msgid "printf [-v var] format [arguments]" +msgstr "" + +#: builtins.c:227 +msgid "" +"complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W " +"wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] " +"[name ...]" +msgstr "" + +#: builtins.c:231 +msgid "" +"compgen [-abcdefgjksuv] [-o option] [-A action] [-G globpat] [-W wordlist] " +"[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]" +msgstr "" + +#: builtins.c:235 +#, fuzzy +msgid "compopt [-o|+o option] [name ...]" +msgstr "type [-apt] nom [nom ...]" + +#: builtins.c:238 +msgid "" +"mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c " +"quantum] [array]" +msgstr "" + +#: builtins.c:250 +msgid "" +"Define or display aliases.\n" +" \n" +" Without arguments, `alias' prints the list of aliases in the reusable\n" +" form `alias NAME=VALUE' on standard output.\n" +" \n" +" Otherwise, an alias is defined for each NAME whose VALUE is given.\n" +" A trailing space in VALUE causes the next word to be checked for\n" +" alias substitution when the alias is expanded.\n" +" \n" +" Options:\n" +" -p\tPrint all defined aliases in a reusable format\n" +" \n" +" Exit Status:\n" +" alias returns true unless a NAME is supplied for which no alias has " +"been\n" +" defined." +msgstr "" + +#: builtins.c:272 +#, fuzzy +msgid "" +"Remove each NAME from the list of defined aliases.\n" +" \n" +" Options:\n" +" -a\tremove all alias definitions.\n" +" \n" +" Return success unless a NAME is not an existing alias." +msgstr "" +"Es treuen NOMs de la llista de les definicions d'?lies. Si s'especifica" + +#: builtins.c:285 +msgid "" +"Set Readline key bindings and variables.\n" +" \n" +" Bind a key sequence to a Readline function or a macro, or set a\n" +" Readline variable. The non-option argument syntax is equivalent to\n" +" that found in ~/.inputrc, but must be passed as a single argument:\n" +" e.g., bind '\"\\C-x\\C-r\": re-read-init-file'.\n" +" \n" +" Options:\n" +" -m keymap Use KEYMAP as the keymap for the duration of this\n" +" command. Acceptable keymap names are emacs,\n" +" emacs-standard, emacs-meta, emacs-ctlx, vi, vi-" +"move,\n" +" vi-command, and vi-insert.\n" +" -l List names of functions.\n" +" -P List function names and bindings.\n" +" -p List functions and bindings in a form that can be\n" +" reused as input.\n" +" -S List key sequences that invoke macros and their " +"values\n" +" -s List key sequences that invoke macros and their " +"values\n" +" in a form that can be reused as input.\n" +" -V List variable names and values\n" +" -v List variable names and values in a form that can\n" +" be reused as input.\n" +" -q function-name Query about which keys invoke the named function.\n" +" -u function-name Unbind all keys which are bound to the named " +"function.\n" +" -r keyseq Remove the binding for KEYSEQ.\n" +" -f filename Read key bindings from FILENAME.\n" +" -x keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n" +" \t\t\t\tKEYSEQ is entered.\n" +" \n" +" Exit Status:\n" +" bind returns 0 unless an unrecognized option is given or an error occurs." +msgstr "" + +#: builtins.c:322 +#, fuzzy +msgid "" +"Exit for, while, or until loops.\n" +" \n" +" Exit a FOR, WHILE or UNTIL loop. If N is specified, break N enclosing\n" +" loops.\n" +" \n" +" Exit Status:\n" +" The exit status is 0 unless N is not greater than or equal to 1." +msgstr "Repr?n la seg?ent iteraci? del bucle envoltant FOR, WHILE, o UNTIL." + +#: builtins.c:334 +#, fuzzy +msgid "" +"Resume for, while, or until loops.\n" +" \n" +" Resumes the next iteration of the enclosing FOR, WHILE or UNTIL loop.\n" +" If N is specified, resumes the Nth enclosing loop.\n" +" \n" +" Exit Status:\n" +" The exit status is 0 unless N is not greater than or equal to 1." +msgstr "Repr?n la seg?ent iteraci? del bucle envoltant FOR, WHILE, o UNTIL." + +#: builtins.c:346 +msgid "" +"Execute shell builtins.\n" +" \n" +" Execute SHELL-BUILTIN with arguments ARGs without performing command\n" +" lookup. This is useful when you wish to reimplement a shell builtin\n" +" as a shell function, but need to execute the builtin within the " +"function.\n" +" \n" +" Exit Status:\n" +" Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is\n" +" not a shell builtin.." +msgstr "" + +#: builtins.c:361 +msgid "" +"Return the context of the current subroutine call.\n" +" \n" +" Without EXPR, returns \"$line $filename\". With EXPR, returns\n" +" \"$line $subroutine $filename\"; this extra information can be used to\n" +" provide a stack trace.\n" +" \n" +" The value of EXPR indicates how many call frames to go back before the\n" +" current one; the top frame is frame 0.\n" +" \n" +" Exit Status:\n" +" Returns 0 unless the shell is not executing a shell function or EXPR\n" +" is invalid." +msgstr "" + +#: builtins.c:379 +msgid "" +"Change the shell working directory.\n" +" \n" +" Change the current directory to DIR. The default DIR is the value of " +"the\n" +" HOME shell variable.\n" +" \n" +" The variable CDPATH defines the search path for the directory " +"containing\n" +" DIR. Alternative directory names in CDPATH are separated by a colon " +"(:).\n" +" A null directory name is the same as the current directory. If DIR " +"begins\n" +" with a slash (/), then CDPATH is not used.\n" +" \n" +" If the directory is not found, and the shell option `cdable_vars' is " +"set,\n" +" the word is assumed to be a variable name. If that variable has a " +"value,\n" +" its value is used for DIR.\n" +" \n" +" Options:\n" +" -L\tforce symbolic links to be followed\n" +" -P\tuse the physical directory structure without following symbolic\n" +" \tlinks\n" +" \n" +" The default is to follow symbolic links, as if `-L' were specified.\n" +" \n" +" Exit Status:\n" +" Returns 0 if the directory is changed; non-zero otherwise." +msgstr "" + +#: builtins.c:407 +msgid "" +"Print the name of the current working directory.\n" +" \n" +" Options:\n" +" -L\tprint the value of $PWD if it names the current working\n" +" \tdirectory\n" +" -P\tprint the physical directory, without any symbolic links\n" +" \n" +" By default, `pwd' behaves as if `-L' were specified.\n" +" \n" +" Exit Status:\n" +" Returns 0 unless an invalid option is given or the current directory\n" +" cannot be read." +msgstr "" + +#: builtins.c:424 +#, fuzzy +msgid "" +"Null command.\n" +" \n" +" No effect; the command does nothing.\n" +" \n" +" Exit Status:\n" +" Always succeeds." +msgstr "Cap efecte; no es fa res. Es retorna amb el codi zero com a eixida." + +#: builtins.c:435 +msgid "" +"Return a successful result.\n" +" \n" +" Exit Status:\n" +" Always succeeds." +msgstr "" + +#: builtins.c:444 +msgid "" +"Return an unsuccessful result.\n" +" \n" +" Exit Status:\n" +" Always fails." +msgstr "" + +#: builtins.c:453 +msgid "" +"Execute a simple command or display information about commands.\n" +" \n" +" Runs COMMAND with ARGS suppressing shell function lookup, or display\n" +" information about the specified COMMANDs. Can be used to invoke " +"commands\n" +" on disk when a function with the same name exists.\n" +" \n" +" Options:\n" +" -p\tuse a default value for PATH that is guaranteed to find all of\n" +" \tthe standard utilities\n" +" -v\tprint a description of COMMAND similar to the `type' builtin\n" +" -V\tprint a more verbose description of each COMMAND\n" +" \n" +" Exit Status:\n" +" Returns exit status of COMMAND, or failure if COMMAND is not found." +msgstr "" + +#: builtins.c:472 +msgid "" +"Set variable values and attributes.\n" +" \n" +" Declare variables and give them attributes. If no NAMEs are given,\n" +" display the attributes and values of all variables.\n" +" \n" +" Options:\n" +" -f\trestrict action or display to function names and definitions\n" +" -F\trestrict display to function names only (plus line number and\n" +" \tsource file when debugging)\n" +" -p\tdisplay the attributes and value of each NAME\n" +" \n" +" Options which set attributes:\n" +" -a\tto make NAMEs indexed arrays (if supported)\n" +" -A\tto make NAMEs associative arrays (if supported)\n" +" -i\tto make NAMEs have the `integer' attribute\n" +" -l\tto convert NAMEs to lower case on assignment\n" +" -r\tto make NAMEs readonly\n" +" -t\tto make NAMEs have the `trace' attribute\n" +" -u\tto convert NAMEs to upper case on assignment\n" +" -x\tto make NAMEs export\n" +" \n" +" Using `+' instead of `-' turns off the given attribute.\n" +" \n" +" Variables with the integer attribute have arithmetic evaluation (see\n" +" the `let' command) performed when the variable is assigned a value.\n" +" \n" +" When used in a function, `declare' makes NAMEs local, as with the " +"`local'\n" +" command.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" + +#: builtins.c:508 +msgid "" +"Set variable values and attributes.\n" +" \n" +" Obsolete. See `help declare'." +msgstr "" + +#: builtins.c:516 +msgid "" +"Define local variables.\n" +" \n" +" Create a local variable called NAME, and give it VALUE. OPTION can\n" +" be any option accepted by `declare'.\n" +" \n" +" Local variables can only be used within a function; they are visible\n" +" only to the function where they are defined and its children.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied, an error occurs,\n" +" or the shell is not executing a function." +msgstr "" + +#: builtins.c:533 +msgid "" +"Write arguments to the standard output.\n" +" \n" +" Display the ARGs on the standard output followed by a newline.\n" +" \n" +" Options:\n" +" -n\tdo not append a newline\n" +" -e\tenable interpretation of the following backslash escapes\n" +" -E\texplicitly suppress interpretation of backslash escapes\n" +" \n" +" `echo' interprets the following backslash-escaped characters:\n" +" \\a\talert (bell)\n" +" \\b\tbackspace\n" +" \\c\tsuppress further output\n" +" \\e\tescape character\n" +" \\f\tform feed\n" +" \\n\tnew line\n" +" \\r\tcarriage return\n" +" \\t\thorizontal tab\n" +" \\v\tvertical tab\n" +" \\\\\tbackslash\n" +" \\0nnn\tthe character whose ASCII code is NNN (octal). NNN can be\n" +" \t0 to 3 octal digits\n" +" \\xHH\tthe eight-bit character whose value is HH (hexadecimal). HH\n" +" \tcan be one or two hex digits\n" +" \n" +" Exit Status:\n" +" Returns success unless a write error occurs." +msgstr "" + +#: builtins.c:567 +msgid "" +"Write arguments to the standard output.\n" +" \n" +" Display the ARGs on the standard output followed by a newline.\n" +" \n" +" Options:\n" +" -n\tdo not append a newline\n" +" \n" +" Exit Status:\n" +" Returns success unless a write error occurs." +msgstr "" + +#: builtins.c:582 +msgid "" +"Enable and disable shell builtins.\n" +" \n" +" Enables and disables builtin shell commands. Disabling allows you to\n" +" execute a disk command which has the same name as a shell builtin\n" +" without using a full pathname.\n" +" \n" +" Options:\n" +" -a\tprint a list of builtins showing whether or not each is enabled\n" +" -n\tdisable each NAME or display a list of disabled builtins\n" +" -p\tprint the list of builtins in a reusable format\n" +" -s\tprint only the names of Posix `special' builtins\n" +" \n" +" Options controlling dynamic loading:\n" +" -f\tLoad builtin NAME from shared object FILENAME\n" +" -d\tRemove a builtin loaded with -f\n" +" \n" +" Without options, each NAME is enabled.\n" +" \n" +" To use the `test' found in $PATH instead of the shell builtin\n" +" version, type `enable -n test'.\n" +" \n" +" Exit Status:\n" +" Returns success unless NAME is not a shell builtin or an error occurs." +msgstr "" + +#: builtins.c:610 +msgid "" +"Execute arguments as a shell command.\n" +" \n" +" Combine ARGs into a single string, use the result as input to the " +"shell,\n" +" and execute the resulting commands.\n" +" \n" +" Exit Status:\n" +" Returns exit status of command or success if command is null." +msgstr "" + +#: builtins.c:622 +msgid "" +"Parse option arguments.\n" +" \n" +" Getopts is used by shell procedures to parse positional parameters\n" +" as options.\n" +" \n" +" OPTSTRING contains the option letters to be recognized; if a letter\n" +" is followed by a colon, the option is expected to have an argument,\n" +" which should be separated from it by white space.\n" +" \n" +" Each time it is invoked, getopts will place the next option in the\n" +" shell variable $name, initializing name if it does not exist, and\n" +" the index of the next argument to be processed into the shell\n" +" variable OPTIND. OPTIND is initialized to 1 each time the shell or\n" +" a shell script is invoked. When an option requires an argument,\n" +" getopts places that argument into the shell variable OPTARG.\n" +" \n" +" getopts reports errors in one of two ways. If the first character\n" +" of OPTSTRING is a colon, getopts uses silent error reporting. In\n" +" this mode, no error messages are printed. If an invalid option is\n" +" seen, getopts places the option character found into OPTARG. If a\n" +" required argument is not found, getopts places a ':' into NAME and\n" +" sets OPTARG to the option character found. If getopts is not in\n" +" silent mode, and an invalid option is seen, getopts places '?' into\n" +" NAME and unsets OPTARG. If a required argument is not found, a '?'\n" +" is placed in NAME, OPTARG is unset, and a diagnostic message is\n" +" printed.\n" +" \n" +" If the shell variable OPTERR has the value 0, getopts disables the\n" +" printing of error messages, even if the first character of\n" +" OPTSTRING is not a colon. OPTERR has the value 1 by default.\n" +" \n" +" Getopts normally parses the positional parameters ($0 - $9), but if\n" +" more arguments are given, they are parsed instead.\n" +" \n" +" Exit Status:\n" +" Returns success if an option is found; fails if the end of options is\n" +" encountered or an error occurs." +msgstr "" + +#: builtins.c:664 +msgid "" +"Replace the shell with the given command.\n" +" \n" +" Execute COMMAND, replacing this shell with the specified program.\n" +" ARGUMENTS become the arguments to COMMAND. If COMMAND is not " +"specified,\n" +" any redirections take effect in the current shell.\n" +" \n" +" Options:\n" +" -a name\tpass NAME as the zeroth argument to COMMAND\n" +" -c\t\texecute COMMAND with an empty environment\n" +" -l\t\tplace a dash in the zeroth argument to COMMAND\n" +" \n" +" If the command cannot be executed, a non-interactive shell exits, " +"unless\n" +" the shell option `execfail' is set.\n" +" \n" +" Exit Status:\n" +" Returns success unless COMMAND is not found or a redirection error " +"occurs." +msgstr "" + +#: builtins.c:685 +#, fuzzy +msgid "" +"Exit the shell.\n" +" \n" +" Exits the shell with a status of N. If N is omitted, the exit status\n" +" is that of the last command executed." +msgstr "Finalitza l'int?rpret d'ordres amb l'estat d'N. Si s'ometeix N," + +#: builtins.c:694 +msgid "" +"Exit a login shell.\n" +" \n" +" Exits a login shell with exit status N. Returns an error if not " +"executed\n" +" in a login shell." +msgstr "" + +#: builtins.c:704 +msgid "" +"Display or execute commands from the history list.\n" +" \n" +" fc is used to list or edit and re-execute commands from the history " +"list.\n" +" FIRST and LAST can be numbers specifying the range, or FIRST can be a\n" +" string, which means the most recent command beginning with that\n" +" string.\n" +" \n" +" Options:\n" +" -e ENAME\tselect which editor to use. Default is FCEDIT, then " +"EDITOR,\n" +" \t\tthen vi\n" +" -l \tlist lines instead of editing\n" +" -n\tomit line numbers when listing\n" +" -r\treverse the order of the lines (newest listed first)\n" +" \n" +" With the `fc -s [pat=rep ...] [command]' format, COMMAND is\n" +" re-executed after the substitution OLD=NEW is performed.\n" +" \n" +" A useful alias to use with this is r='fc -s', so that typing `r cc'\n" +" runs the last command beginning with `cc' and typing `r' re-executes\n" +" the last command.\n" +" \n" +" Exit Status:\n" +" Returns success or status of executed command; non-zero if an error " +"occurs." +msgstr "" + +#: builtins.c:734 +#, fuzzy +msgid "" +"Move job to the foreground.\n" +" \n" +" Place the job identified by JOB_SPEC in the foreground, making it the\n" +" current job. If JOB_SPEC is not present, the shell's notion of the\n" +" current job is used.\n" +" \n" +" Exit Status:\n" +" Status of command placed in foreground, or failure if an error occurs." +msgstr "Ubica la ID_TASCA en primer pla, i l'activa com a la tasca actual." + +#: builtins.c:749 +msgid "" +"Move jobs to the background.\n" +" \n" +" Place the jobs identified by each JOB_SPEC in the background, as if " +"they\n" +" had been started with `&'. If JOB_SPEC is not present, the shell's " +"notion\n" +" of the current job is used.\n" +" \n" +" Exit Status:\n" +" Returns success unless job control is not enabled or an error occurs." +msgstr "" + +#: builtins.c:763 +msgid "" +"Remember or display program locations.\n" +" \n" +" Determine and remember the full pathname of each command NAME. If\n" +" no arguments are given, information about remembered commands is " +"displayed.\n" +" \n" +" Options:\n" +" -d\t\tforget the remembered location of each NAME\n" +" -l\t\tdisplay in a format that may be reused as input\n" +" -p pathname\tuse PATHNAME is the full pathname of NAME\n" +" -r\t\tforget all remembered locations\n" +" -t\t\tprint the remembered location of each NAME, preceding\n" +" \t\teach location with the corresponding NAME if multiple\n" +" \t\tNAMEs are given\n" +" Arguments:\n" +" NAME\t\tEach NAME is searched for in $PATH and added to the list\n" +" \t\tof remembered commands.\n" +" \n" +" Exit Status:\n" +" Returns success unless NAME is not found or an invalid option is given." +msgstr "" + +#: builtins.c:788 +msgid "" +"Display information about builtin commands.\n" +" \n" +" Displays brief summaries of builtin commands. If PATTERN is\n" +" specified, gives detailed help on all commands matching PATTERN,\n" +" otherwise the list of help topics is printed.\n" +" \n" +" Options:\n" +" -d\toutput short description for each topic\n" +" -m\tdisplay usage in pseudo-manpage format\n" +" -s\toutput only a short usage synopsis for each topic matching\n" +" \tPATTERN\n" +" \n" +" Arguments:\n" +" PATTERN\tPattern specifiying a help topic\n" +" \n" +" Exit Status:\n" +" Returns success unless PATTERN is not found or an invalid option is " +"given." +msgstr "" + +#: builtins.c:812 +msgid "" +"Display or manipulate the history list.\n" +" \n" +" Display the history list with line numbers, prefixing each modified\n" +" entry with a `*'. An argument of N lists only the last N entries.\n" +" \n" +" Options:\n" +" -c\tclear the history list by deleting all of the entries\n" +" -d offset\tdelete the history entry at offset OFFSET.\n" +" \n" +" -a\tappend history lines from this session to the history file\n" +" -n\tread all history lines not already read from the history file\n" +" -r\tread the history file and append the contents to the history\n" +" \tlist\n" +" -w\twrite the current history to the history file\n" +" \tand append them to the history list\n" +" \n" +" -p\tperform history expansion on each ARG and display the result\n" +" \twithout storing it in the history list\n" +" -s\tappend the ARGs to the history list as a single entry\n" +" \n" +" If FILENAME is given, it is used as the history file. Otherwise,\n" +" if $HISTFILE has a value, that is used, else ~/.bash_history.\n" +" \n" +" If the $HISTTIMEFORMAT variable is set and not null, its value is used\n" +" as a format string for strftime(3) to print the time stamp associated\n" +" with each displayed history entry. No time stamps are printed " +"otherwise.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or an error occurs." +msgstr "" + +#: builtins.c:848 +msgid "" +"Display status of jobs.\n" +" \n" +" Lists the active jobs. JOBSPEC restricts output to that job.\n" +" Without options, the status of all active jobs is displayed.\n" +" \n" +" Options:\n" +" -l\tlists process IDs in addition to the normal information\n" +" -n\tlist only processes that have changed status since the last\n" +" \tnotification\n" +" -p\tlists process IDs only\n" +" -r\trestrict output to running jobs\n" +" -s\trestrict output to stopped jobs\n" +" \n" +" If -x is supplied, COMMAND is run after all job specifications that\n" +" appear in ARGS have been replaced with the process ID of that job's\n" +" process group leader.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or an error occurs.\n" +" If -x is used, returns the exit status of COMMAND." +msgstr "" + +#: builtins.c:875 +msgid "" +"Remove jobs from current shell.\n" +" \n" +" Removes each JOBSPEC argument from the table of active jobs. Without\n" +" any JOBSPECs, the shell uses its notion of the current job.\n" +" \n" +" Options:\n" +" -a\tremove all jobs if JOBSPEC is not supplied\n" +" -h\tmark each JOBSPEC so that SIGHUP is not sent to the job if the\n" +" \tshell receives a SIGHUP\n" +" -r\tremove only running jobs\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option or JOBSPEC is given." +msgstr "" + +#: builtins.c:894 +msgid "" +"Send a signal to a job.\n" +" \n" +" Send the processes identified by PID or JOBSPEC the signal named by\n" +" SIGSPEC or SIGNUM. If neither SIGSPEC nor SIGNUM is present, then\n" +" SIGTERM is assumed.\n" +" \n" +" Options:\n" +" -s sig\tSIG is a signal name\n" +" -n sig\tSIG is a signal number\n" +" -l\tlist the signal names; if arguments follow `-l' they are\n" +" \tassumed to be signal numbers for which names should be listed\n" +" \n" +" Kill is a shell builtin for two reasons: it allows job IDs to be used\n" +" instead of process IDs, and allows processes to be killed if the limit\n" +" on processes that you can create is reached.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or an error occurs." +msgstr "" + +#: builtins.c:917 +msgid "" +"Evaluate arithmetic expressions.\n" +" \n" +" Evaluate each ARG as an arithmetic expression. Evaluation is done in\n" +" fixed-width integers with no check for overflow, though division by 0\n" +" is trapped and flagged as an error. The following list of operators is\n" +" grouped into levels of equal-precedence operators. The levels are " +"listed\n" +" in order of decreasing precedence.\n" +" \n" +" \tid++, id--\tvariable post-increment, post-decrement\n" +" \t++id, --id\tvariable pre-increment, pre-decrement\n" +" \t-, +\t\tunary minus, plus\n" +" \t!, ~\t\tlogical and bitwise negation\n" +" \t**\t\texponentiation\n" +" \t*, /, %\t\tmultiplication, division, remainder\n" +" \t+, -\t\taddition, subtraction\n" +" \t<<, >>\t\tleft and right bitwise shifts\n" +" \t<=, >=, <, >\tcomparison\n" +" \t==, !=\t\tequality, inequality\n" +" \t&\t\tbitwise AND\n" +" \t^\t\tbitwise XOR\n" +" \t|\t\tbitwise OR\n" +" \t&&\t\tlogical AND\n" +" \t||\t\tlogical OR\n" +" \texpr ? expr : expr\n" +" \t\t\tconditional operator\n" +" \t=, *=, /=, %=,\n" +" \t+=, -=, <<=, >>=,\n" +" \t&=, ^=, |=\tassignment\n" +" \n" +" Shell variables are allowed as operands. The name of the variable\n" +" is replaced by its value (coerced to a fixed-width integer) within\n" +" an expression. The variable need not have its integer attribute\n" +" turned on to be used in an expression.\n" +" \n" +" Operators are evaluated in order of precedence. Sub-expressions in\n" +" parentheses are evaluated first and may override the precedence\n" +" rules above.\n" +" \n" +" Exit Status:\n" +" If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise.." +msgstr "" + +#: builtins.c:962 +msgid "" +"Read a line from the standard input and split it into fields.\n" +" \n" +" Reads a single line from the standard input, or from file descriptor FD\n" +" if the -u option is supplied. The line is split into fields as with " +"word\n" +" splitting, and the first word is assigned to the first NAME, the second\n" +" word to the second NAME, and so on, with any leftover words assigned to\n" +" the last NAME. Only the characters found in $IFS are recognized as " +"word\n" +" delimiters.\n" +" \n" +" If no NAMEs are supplied, the line read is stored in the REPLY " +"variable.\n" +" \n" +" Options:\n" +" -a array\tassign the words read to sequential indices of the array\n" +" \t\tvariable ARRAY, starting at zero\n" +" -d delim\tcontinue until the first character of DELIM is read, rather\n" +" \t\tthan newline\n" +" -e\t\tuse Readline to obtain the line in an interactive shell\n" +" -i text\tUse TEXT as the initial text for Readline\n" +" -n nchars\treturn after reading NCHARS characters rather than waiting\n" +" \t\tfor a newline\n" +" -p prompt\toutput the string PROMPT without a trailing newline before\n" +" \t\tattempting to read\n" +" -r\t\tdo not allow backslashes to escape any characters\n" +" -s\t\tdo not echo input coming from a terminal\n" +" -t timeout\ttime out and return failure if a complete line of input " +"is\n" +" \t\tnot read withint TIMEOUT seconds. The value of the TMOUT\n" +" \t\tvariable is the default timeout. TIMEOUT may be a\n" +" \t\tfractional number. If TIMEOUT is 0, read returns success only\n" +" \t\tif input is available on the specified file descriptor. The\n" +" \t\texit status is greater than 128 if the timeout is exceeded\n" +" -u fd\t\tread from file descriptor FD instead of the standard input\n" +" \n" +" Exit Status:\n" +" The return code is zero, unless end-of-file is encountered, read times " +"out,\n" +" or an invalid file descriptor is supplied as the argument to -u." +msgstr "" + +#: builtins.c:1002 +msgid "" +"Return from a shell function.\n" +" \n" +" Causes a function or sourced script to exit with the return value\n" +" specified by N. If N is omitted, the return status is that of the\n" +" last command executed within the function or script.\n" +" \n" +" Exit Status:\n" +" Returns N, or failure if the shell is not executing a function or script." +msgstr "" + +#: builtins.c:1015 +msgid "" +"Set or unset values of shell options and positional parameters.\n" +" \n" +" Change the value of shell attributes and positional parameters, or\n" +" display the names and values of shell variables.\n" +" \n" +" Options:\n" +" -a Mark variables which are modified or created for export.\n" +" -b Notify of job termination immediately.\n" +" -e Exit immediately if a command exits with a non-zero status.\n" +" -f Disable file name generation (globbing).\n" +" -h Remember the location of commands as they are looked up.\n" +" -k All assignment arguments are placed in the environment for a\n" +" command, not just those that precede the command name.\n" +" -m Job control is enabled.\n" +" -n Read commands but do not execute them.\n" +" -o option-name\n" +" Set the variable corresponding to option-name:\n" +" allexport same as -a\n" +" braceexpand same as -B\n" +" emacs use an emacs-style line editing interface\n" +" errexit same as -e\n" +" errtrace same as -E\n" +" functrace same as -T\n" +" hashall same as -h\n" +" histexpand same as -H\n" +" history enable command history\n" +" ignoreeof the shell will not exit upon reading EOF\n" +" interactive-comments\n" +" allow comments to appear in interactive commands\n" +" keyword same as -k\n" +" monitor same as -m\n" +" noclobber same as -C\n" +" noexec same as -n\n" +" noglob same as -f\n" +" nolog currently accepted but ignored\n" +" notify same as -b\n" +" nounset same as -u\n" +" onecmd same as -t\n" +" physical same as -P\n" +" pipefail the return value of a pipeline is the status of\n" +" the last command to exit with a non-zero status,\n" +" or zero if no command exited with a non-zero " +"status\n" +" posix change the behavior of bash where the default\n" +" operation differs from the Posix standard to\n" +" match the standard\n" +" privileged same as -p\n" +" verbose same as -v\n" +" vi use a vi-style line editing interface\n" +" xtrace same as -x\n" +" -p Turned on whenever the real and effective user ids do not match.\n" +" Disables processing of the $ENV file and importing of shell\n" +" functions. Turning this option off causes the effective uid and\n" +" gid to be set to the real uid and gid.\n" +" -t Exit after reading and executing one command.\n" +" -u Treat unset variables as an error when substituting.\n" +" -v Print shell input lines as they are read.\n" +" -x Print commands and their arguments as they are executed.\n" +" -B the shell will perform brace expansion\n" +" -C If set, disallow existing regular files to be overwritten\n" +" by redirection of output.\n" +" -E If set, the ERR trap is inherited by shell functions.\n" +" -H Enable ! style history substitution. This flag is on\n" +" by default when the shell is interactive.\n" +" -P If set, do not follow symbolic links when executing commands\n" +" such as cd which change the current directory.\n" +" -T If set, the DEBUG trap is inherited by shell functions.\n" +" - Assign any remaining arguments to the positional parameters.\n" +" The -x and -v options are turned off.\n" +" \n" +" Using + rather than - causes these flags to be turned off. The\n" +" flags can also be used upon invocation of the shell. The current\n" +" set of flags may be found in $-. The remaining n ARGs are positional\n" +" parameters and are assigned, in order, to $1, $2, .. $n. If no\n" +" ARGs are given, all shell variables are printed.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given." +msgstr "" + +#: builtins.c:1097 +msgid "" +"Unset values and attributes of shell variables and functions.\n" +" \n" +" For each NAME, remove the corresponding variable or function.\n" +" \n" +" Options:\n" +" -f\ttreat each NAME as a shell function\n" +" -v\ttreat each NAME as a shell variable\n" +" \n" +" Without options, unset first tries to unset a variable, and if that " +"fails,\n" +" tries to unset a function.\n" +" \n" +" Some variables cannot be unset; also see `readonly'.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or a NAME is read-only." +msgstr "" + +#: builtins.c:1117 +msgid "" +"Set export attribute for shell variables.\n" +" \n" +" Marks each NAME for automatic export to the environment of subsequently\n" +" executed commands. If VALUE is supplied, assign VALUE before " +"exporting.\n" +" \n" +" Options:\n" +" -f\trefer to shell functions\n" +" -n\tremove the export property from each NAME\n" +" -p\tdisplay a list of all exported variables and functions\n" +" \n" +" An argument of `--' disables further option processing.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or NAME is invalid." +msgstr "" + +#: builtins.c:1136 +msgid "" +"Mark shell variables as unchangeable.\n" +" \n" +" Mark each NAME as read-only; the values of these NAMEs may not be\n" +" changed by subsequent assignment. If VALUE is supplied, assign VALUE\n" +" before marking as read-only.\n" +" \n" +" Options:\n" +" -a\trefer to indexed array variables\n" +" -A\trefer to associative array variables\n" +" -f\trefer to shell functions\n" +" -p\tdisplay a list of all readonly variables and functions\n" +" \n" +" An argument of `--' disables further option processing.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or NAME is invalid." +msgstr "" + +#: builtins.c:1157 +msgid "" +"Shift positional parameters.\n" +" \n" +" Rename the positional parameters $N+1,$N+2 ... to $1,$2 ... If N is\n" +" not given, it is assumed to be 1.\n" +" \n" +" Exit Status:\n" +" Returns success unless N is negative or greater than $#." +msgstr "" + +#: builtins.c:1169 builtins.c:1184 +msgid "" +"Execute commands from a file in the current shell.\n" +" \n" +" Read and execute commands from FILENAME in the current shell. The\n" +" entries in $PATH are used to find the directory containing FILENAME.\n" +" If any ARGUMENTS are supplied, they become the positional parameters\n" +" when FILENAME is executed.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed in FILENAME; fails if\n" +" FILENAME cannot be read." +msgstr "" + +#: builtins.c:1200 +msgid "" +"Suspend shell execution.\n" +" \n" +" Suspend the execution of this shell until it receives a SIGCONT signal.\n" +" Unless forced, login shells cannot be suspended.\n" +" \n" +" Options:\n" +" -f\tforce the suspend, even if the shell is a login shell\n" +" \n" +" Exit Status:\n" +" Returns success unless job control is not enabled or an error occurs." +msgstr "" + +#: builtins.c:1216 +msgid "" +"Evaluate conditional expression.\n" +" \n" +" Exits with a status of 0 (true) or 1 (false) depending on\n" +" the evaluation of EXPR. Expressions may be unary or binary. Unary\n" +" expressions are often used to examine the status of a file. There\n" +" are string operators as well, and numeric comparison operators.\n" +" \n" +" File operators:\n" +" \n" +" -a FILE True if file exists.\n" +" -b FILE True if file is block special.\n" +" -c FILE True if file is character special.\n" +" -d FILE True if file is a directory.\n" +" -e FILE True if file exists.\n" +" -f FILE True if file exists and is a regular file.\n" +" -g FILE True if file is set-group-id.\n" +" -h FILE True if file is a symbolic link.\n" +" -L FILE True if file is a symbolic link.\n" +" -k FILE True if file has its `sticky' bit set.\n" +" -p FILE True if file is a named pipe.\n" +" -r FILE True if file is readable by you.\n" +" -s FILE True if file exists and is not empty.\n" +" -S FILE True if file is a socket.\n" +" -t FD True if FD is opened on a terminal.\n" +" -u FILE True if the file is set-user-id.\n" +" -w FILE True if the file is writable by you.\n" +" -x FILE True if the file is executable by you.\n" +" -O FILE True if the file is effectively owned by you.\n" +" -G FILE True if the file is effectively owned by your group.\n" +" -N FILE True if the file has been modified since it was last " +"read.\n" +" \n" +" FILE1 -nt FILE2 True if file1 is newer than file2 (according to\n" +" modification date).\n" +" \n" +" FILE1 -ot FILE2 True if file1 is older than file2.\n" +" \n" +" FILE1 -ef FILE2 True if file1 is a hard link to file2.\n" +" \n" +" String operators:\n" +" \n" +" -z STRING True if string is empty.\n" +" \n" +" -n STRING\n" +" STRING True if string is not empty.\n" +" \n" +" STRING1 = STRING2\n" +" True if the strings are equal.\n" +" STRING1 != STRING2\n" +" True if the strings are not equal.\n" +" STRING1 < STRING2\n" +" True if STRING1 sorts before STRING2 " +"lexicographically.\n" +" STRING1 > STRING2\n" +" True if STRING1 sorts after STRING2 lexicographically.\n" +" \n" +" Other operators:\n" +" \n" +" -o OPTION True if the shell option OPTION is enabled.\n" +" ! EXPR True if expr is false.\n" +" EXPR1 -a EXPR2 True if both expr1 AND expr2 are true.\n" +" EXPR1 -o EXPR2 True if either expr1 OR expr2 is true.\n" +" \n" +" arg1 OP arg2 Arithmetic tests. OP is one of -eq, -ne,\n" +" -lt, -le, -gt, or -ge.\n" +" \n" +" Arithmetic binary operators return true if ARG1 is equal, not-equal,\n" +" less-than, less-than-or-equal, greater-than, or greater-than-or-equal\n" +" than ARG2.\n" +" \n" +" Exit Status:\n" +" Returns success if EXPR evaluates to true; fails if EXPR evaluates to\n" +" false or an invalid argument is given." +msgstr "" + +#: builtins.c:1292 +#, fuzzy +msgid "" +"Evaluate conditional expression.\n" +" \n" +" This is a synonym for the \"test\" builtin, but the last argument must\n" +" be a literal `]', to match the opening `['." +msgstr "" +"par?metre ha de ser el signe \"]\" perqu? es puga tancar l'expressi? que\n" +"comen?a pel signe \"[\"." + +#: builtins.c:1301 +msgid "" +"Display process times.\n" +" \n" +" Prints the accumulated user and system times for the shell and all of " +"its\n" +" child processes.\n" +" \n" +" Exit Status:\n" +" Always succeeds." +msgstr "" + +#: builtins.c:1313 +msgid "" +"Trap signals and other events.\n" +" \n" +" Defines and activates handlers to be run when the shell receives " +"signals\n" +" or other conditions.\n" +" \n" +" ARG is a command to be read and executed when the shell receives the\n" +" signal(s) SIGNAL_SPEC. If ARG is absent (and a single SIGNAL_SPEC\n" +" is supplied) or `-', each specified signal is reset to its original\n" +" value. If ARG is the null string each SIGNAL_SPEC is ignored by the\n" +" shell and by the commands it invokes.\n" +" \n" +" If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell. " +"If\n" +" a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command.\n" +" \n" +" If no arguments are supplied, trap prints the list of commands " +"associated\n" +" with each signal.\n" +" \n" +" Options:\n" +" -l\tprint a list of signal names and their corresponding numbers\n" +" -p\tdisplay the trap commands associated with each SIGNAL_SPEC\n" +" \n" +" Each SIGNAL_SPEC is either a signal name in or a signal " +"number.\n" +" Signal names are case insensitive and the SIG prefix is optional. A\n" +" signal may be sent to the shell with \"kill -signal $$\".\n" +" \n" +" Exit Status:\n" +" Returns success unless a SIGSPEC is invalid or an invalid option is " +"given." +msgstr "" + +#: builtins.c:1345 +msgid "" +"Display information about command type.\n" +" \n" +" For each NAME, indicate how it would be interpreted if used as a\n" +" command name.\n" +" \n" +" Options:\n" +" -a\tdisplay all locations containing an executable named NAME;\n" +" \tincludes aliases, builtins, and functions, if and only if\n" +" \tthe `-p' option is not also used\n" +" -f\tsuppress shell function lookup\n" +" -P\tforce a PATH search for each NAME, even if it is an alias,\n" +" \tbuiltin, or function, and returns the name of the disk file\n" +" \tthat would be executed\n" +" -p\treturns either the name of the disk file that would be executed,\n" +" \tor nothing if `type -t NAME' would not return `file'.\n" +" -t\toutput a single word which is one of `alias', `keyword',\n" +" \t`function', `builtin', `file' or `', if NAME is an alias, shell\n" +" \treserved word, shell function, shell builtin, disk file, or not\n" +" \tfound, respectively\n" +" \n" +" Arguments:\n" +" NAME\tCommand name to be interpreted.\n" +" \n" +" Exit Status:\n" +" Returns success if all of the NAMEs are found; fails if any are not " +"found." +msgstr "" + +#: builtins.c:1376 +msgid "" +"Modify shell resource limits.\n" +" \n" +" Provides control over the resources available to the shell and " +"processes\n" +" it creates, on systems that allow such control.\n" +" \n" +" Options:\n" +" -S\tuse the `soft' resource limit\n" +" -H\tuse the `hard' resource limit\n" +" -a\tall current limits are reported\n" +" -b\tthe socket buffer size\n" +" -c\tthe maximum size of core files created\n" +" -d\tthe maximum size of a process's data segment\n" +" -e\tthe maximum scheduling priority (`nice')\n" +" -f\tthe maximum size of files written by the shell and its children\n" +" -i\tthe maximum number of pending signals\n" +" -l\tthe maximum size a process may lock into memory\n" +" -m\tthe maximum resident set size\n" +" -n\tthe maximum number of open file descriptors\n" +" -p\tthe pipe buffer size\n" +" -q\tthe maximum number of bytes in POSIX message queues\n" +" -r\tthe maximum real-time scheduling priority\n" +" -s\tthe maximum stack size\n" +" -t\tthe maximum amount of cpu time in seconds\n" +" -u\tthe maximum number of user processes\n" +" -v\tthe size of virtual memory\n" +" -x\tthe maximum number of file locks\n" +" \n" +" If LIMIT is given, it is the new value of the specified resource; the\n" +" special LIMIT values `soft', `hard', and `unlimited' stand for the\n" +" current soft limit, the current hard limit, and no limit, respectively.\n" +" Otherwise, the current value of the specified resource is printed. If\n" +" no option is given, then -f is assumed.\n" +" \n" +" Values are in 1024-byte increments, except for -t, which is in seconds,\n" +" -p, which is in increments of 512 bytes, and -u, which is an unscaled\n" +" number of processes.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" + +#: builtins.c:1421 +msgid "" +"Display or set file mode mask.\n" +" \n" +" Sets the user file-creation mask to MODE. If MODE is omitted, prints\n" +" the current value of the mask.\n" +" \n" +" If MODE begins with a digit, it is interpreted as an octal number;\n" +" otherwise it is a symbolic mode string like that accepted by chmod(1).\n" +" \n" +" Options:\n" +" -p\tif MODE is omitted, output in a form that may be reused as input\n" +" -S\tmakes the output symbolic; otherwise an octal number is output\n" +" \n" +" Exit Status:\n" +" Returns success unless MODE is invalid or an invalid option is given." +msgstr "" + +#: builtins.c:1441 +msgid "" +"Wait for job completion and return exit status.\n" +" \n" +" Waits for the process identified by ID, which may be a process ID or a\n" +" job specification, and reports its termination status. If ID is not\n" +" given, waits for all currently active child processes, and the return\n" +" status is zero. If ID is a a job specification, waits for all " +"processes\n" +" in the job's pipeline.\n" +" \n" +" Exit Status:\n" +" Returns the status of ID; fails if ID is invalid or an invalid option " +"is\n" +" given." +msgstr "" + +#: builtins.c:1459 +msgid "" +"Wait for process completion and return exit status.\n" +" \n" +" Waits for the specified process and reports its termination status. If\n" +" PID is not given, all currently active child processes are waited for,\n" +" and the return code is zero. PID must be a process ID.\n" +" \n" +" Exit Status:\n" +" Returns the status of ID; fails if ID is invalid or an invalid option " +"is\n" +" given." +msgstr "" + +#: builtins.c:1474 +msgid "" +"Execute commands for each member in a list.\n" +" \n" +" The `for' loop executes a sequence of commands for each member in a\n" +" list of items. If `in WORDS ...;' is not present, then `in \"$@\"' is\n" +" assumed. For each element in WORDS, NAME is set to that element, and\n" +" the COMMANDS are executed.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" + +#: builtins.c:1488 +msgid "" +"Arithmetic for loop.\n" +" \n" +" Equivalent to\n" +" \t(( EXP1 ))\n" +" \twhile (( EXP2 )); do\n" +" \t\tCOMMANDS\n" +" \t\t(( EXP3 ))\n" +" \tdone\n" +" EXP1, EXP2, and EXP3 are arithmetic expressions. If any expression is\n" +" omitted, it behaves as if it evaluates to 1.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" + +#: builtins.c:1506 +msgid "" +"Select words from a list and execute commands.\n" +" \n" +" The WORDS are expanded, generating a list of words. The\n" +" set of expanded words is printed on the standard error, each\n" +" preceded by a number. If `in WORDS' is not present, `in \"$@\"'\n" +" is assumed. The PS3 prompt is then displayed and a line read\n" +" from the standard input. If the line consists of the number\n" +" corresponding to one of the displayed words, then NAME is set\n" +" to that word. If the line is empty, WORDS and the prompt are\n" +" redisplayed. If EOF is read, the command completes. Any other\n" +" value read causes NAME to be set to null. The line read is saved\n" +" in the variable REPLY. COMMANDS are executed after each selection\n" +" until a break command is executed.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" + +#: builtins.c:1527 +msgid "" +"Report time consumed by pipeline's execution.\n" +" \n" +" Execute PIPELINE and print a summary of the real time, user CPU time,\n" +" and system CPU time spent executing PIPELINE when it terminates.\n" +" \n" +" Options:\n" +" -p\tprint the timing summary in the portable Posix format\n" +" \n" +" The value of the TIMEFORMAT variable is used as the output format.\n" +" \n" +" Exit Status:\n" +" The return status is the return status of PIPELINE." +msgstr "" + +#: builtins.c:1544 +#, fuzzy +msgid "" +"Execute commands based on pattern matching.\n" +" \n" +" Selectively execute COMMANDS based upon WORD matching PATTERN. The\n" +" `|' is used to separate multiple patterns.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "Executa selectivament les ordres especificades en ORDRES seguint una " + +#: builtins.c:1556 +msgid "" +"Execute commands based on conditional.\n" +" \n" +" The `if COMMANDS' list is executed. If its exit status is zero, then " +"the\n" +" `then COMMANDS' list is executed. Otherwise, each `elif COMMANDS' list " +"is\n" +" executed in turn, and if its exit status is zero, the corresponding\n" +" `then COMMANDS' list is executed and the if command completes. " +"Otherwise,\n" +" the `else COMMANDS' list is executed, if present. The exit status of " +"the\n" +" entire construct is the exit status of the last command executed, or " +"zero\n" +" if no condition tested true.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" + +#: builtins.c:1573 +#, fuzzy +msgid "" +"Execute commands as long as a test succeeds.\n" +" \n" +" Expand and execute COMMANDS as long as the final command in the\n" +" `while' COMMANDS has an exit status of zero.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"Expandeix i executa les ordres especificades en ORDRES i els executa\n" +"de tal manera que la darrera ordre" + +#: builtins.c:1585 +#, fuzzy +msgid "" +"Execute commands as long as a test does not succeed.\n" +" \n" +" Expand and execute COMMANDS as long as the final command in the\n" +" `until' COMMANDS has an exit status which is not zero.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"Expandeix i executa les ordres especificades en ORDRES i els executa\n" +"de tal manera que la darrera ordre" + +#: builtins.c:1597 +msgid "" +"Define shell function.\n" +" \n" +" Create a shell function named NAME. When invoked as a simple command,\n" +" NAME runs COMMANDs in the calling shell's context. When NAME is " +"invoked,\n" +" the arguments are passed to the function as $1...$n, and the function's\n" +" name is in $FUNCNAME.\n" +" \n" +" Exit Status:\n" +" Returns success unless NAME is readonly." +msgstr "" + +#: builtins.c:1611 +#, fuzzy +msgid "" +"Group commands as a unit.\n" +" \n" +" Run a set of commands in a group. This is one way to redirect an\n" +" entire set of commands.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "Executa un conjunt d'ordres en un grup. A?? ?s una manera de" + +#: builtins.c:1623 +msgid "" +"Resume job in foreground.\n" +" \n" +" Equivalent to the JOB_SPEC argument to the `fg' command. Resume a\n" +" stopped or background job. JOB_SPEC can specify either a job name\n" +" or a job number. Following JOB_SPEC with a `&' places the job in\n" +" the background, as if the job specification had been supplied as an\n" +" argument to `bg'.\n" +" \n" +" Exit Status:\n" +" Returns the status of the resumed job." +msgstr "" + +#: builtins.c:1638 +msgid "" +"Evaluate arithmetic expression.\n" +" \n" +" The EXPRESSION is evaluated according to the rules for arithmetic\n" +" evaluation. Equivalent to \"let EXPRESSION\".\n" +" \n" +" Exit Status:\n" +" Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise." +msgstr "" + +#: builtins.c:1650 +msgid "" +"Execute conditional command.\n" +" \n" +" Returns a status of 0 or 1 depending on the evaluation of the " +"conditional\n" +" expression EXPRESSION. Expressions are composed of the same primaries " +"used\n" +" by the `test' builtin, and may be combined using the following " +"operators:\n" +" \n" +" ( EXPRESSION )\tReturns the value of EXPRESSION\n" +" ! EXPRESSION\t\tTrue if EXPRESSION is false; else false\n" +" EXPR1 && EXPR2\tTrue if both EXPR1 and EXPR2 are true; else false\n" +" EXPR1 || EXPR2\tTrue if either EXPR1 or EXPR2 is true; else false\n" +" \n" +" When the `==' and `!=' operators are used, the string to the right of\n" +" the operator is used as a pattern and pattern matching is performed.\n" +" When the `=~' operator is used, the string to the right of the operator\n" +" is matched as a regular expression.\n" +" \n" +" The && and || operators do not evaluate EXPR2 if EXPR1 is sufficient to\n" +" determine the expression's value.\n" +" \n" +" Exit Status:\n" +" 0 or 1 depending on value of EXPRESSION." +msgstr "" + +#: builtins.c:1676 +msgid "" +"Common shell variable names and usage.\n" +" \n" +" BASH_VERSION\tVersion information for this Bash.\n" +" CDPATH\tA colon-separated list of directories to search\n" +" \t\tfor directories given as arguments to `cd'.\n" +" GLOBIGNORE\tA colon-separated list of patterns describing filenames to\n" +" \t\tbe ignored by pathname expansion.\n" +" HISTFILE\tThe name of the file where your command history is stored.\n" +" HISTFILESIZE\tThe maximum number of lines this file can contain.\n" +" HISTSIZE\tThe maximum number of history lines that a running\n" +" \t\tshell can access.\n" +" HOME\tThe complete pathname to your login directory.\n" +" HOSTNAME\tThe name of the current host.\n" +" HOSTTYPE\tThe type of CPU this version of Bash is running under.\n" +" IGNOREEOF\tControls the action of the shell on receipt of an EOF\n" +" \t\tcharacter as the sole input. If set, then the value\n" +" \t\tof it is the number of EOF characters that can be seen\n" +" \t\tin a row on an empty line before the shell will exit\n" +" \t\t(default 10). When unset, EOF signifies the end of input.\n" +" MACHTYPE\tA string describing the current system Bash is running on.\n" +" MAILCHECK\tHow often, in seconds, Bash checks for new mail.\n" +" MAILPATH\tA colon-separated list of filenames which Bash checks\n" +" \t\tfor new mail.\n" +" OSTYPE\tThe version of Unix this version of Bash is running on.\n" +" PATH\tA colon-separated list of directories to search when\n" +" \t\tlooking for commands.\n" +" PROMPT_COMMAND\tA command to be executed before the printing of each\n" +" \t\tprimary prompt.\n" +" PS1\t\tThe primary prompt string.\n" +" PS2\t\tThe secondary prompt string.\n" +" PWD\t\tThe full pathname of the current directory.\n" +" SHELLOPTS\tA colon-separated list of enabled shell options.\n" +" TERM\tThe name of the current terminal type.\n" +" TIMEFORMAT\tThe output format for timing statistics displayed by the\n" +" \t\t`time' reserved word.\n" +" auto_resume\tNon-null means a command word appearing on a line by\n" +" \t\titself is first looked for in the list of currently\n" +" \t\tstopped jobs. If found there, that job is foregrounded.\n" +" \t\tA value of `exact' means that the command word must\n" +" \t\texactly match a command in the list of stopped jobs. A\n" +" \t\tvalue of `substring' means that the command word must\n" +" \t\tmatch a substring of the job. Any other value means that\n" +" \t\tthe command must be a prefix of a stopped job.\n" +" histchars\tCharacters controlling history expansion and quick\n" +" \t\tsubstitution. The first character is the history\n" +" \t\tsubstitution character, usually `!'. The second is\n" +" \t\tthe `quick substitution' character, usually `^'. The\n" +" \t\tthird is the `history comment' character, usually `#'.\n" +" HISTIGNORE\tA colon-separated list of patterns used to decide which\n" +" \t\tcommands should be saved on the history list.\n" +msgstr "" + +#: builtins.c:1733 +msgid "" +"Add directories to stack.\n" +" \n" +" Adds a directory to the top of the directory stack, or rotates\n" +" the stack, making the new top of the stack the current working\n" +" directory. With no arguments, exchanges the top two directories.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when adding\n" +" \tdirectories to the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the left of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" -N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the right of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" dir\tAdds DIR to the directory stack at the top, making it the\n" +" \tnew current working directory.\n" +" \n" +" The `dirs' builtin displays the directory stack.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid argument is supplied or the directory\n" +" change fails." +msgstr "" + +#: builtins.c:1767 +msgid "" +"Remove directories from stack.\n" +" \n" +" Removes entries from the directory stack. With no arguments, removes\n" +" the top directory from the stack, and changes to the new top directory.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when removing\n" +" \tdirectories from the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRemoves the Nth entry counting from the left of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd +0'\n" +" \tremoves the first directory, `popd +1' the second.\n" +" \n" +" -N\tRemoves the Nth entry counting from the right of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd -0'\n" +" \tremoves the last directory, `popd -1' the next to last.\n" +" \n" +" The `dirs' builtin displays the directory stack.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid argument is supplied or the directory\n" +" change fails." +msgstr "" + +#: builtins.c:1797 +msgid "" +"Display directory stack.\n" +" \n" +" Display the list of currently remembered directories. Directories\n" +" find their way onto the list with the `pushd' command; you can get\n" +" back up through the list with the `popd' command.\n" +" \n" +" Options:\n" +" -c\tclear the directory stack by deleting all of the elements\n" +" -l\tdo not print tilde-prefixed versions of directories relative\n" +" \tto your home directory\n" +" -p\tprint the directory stack with one entry per line\n" +" -v\tprint the directory stack with one entry per line prefixed\n" +" \twith its position in the stack\n" +" \n" +" Arguments:\n" +" +N\tDisplays the Nth entry counting from the left of the list shown " +"by\n" +" \tdirs when invoked without options, starting with zero.\n" +" \n" +" -N\tDisplays the Nth entry counting from the right of the list shown " +"by\n" +" \tdirs when invoked without options, starting with zero.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" + +#: builtins.c:1826 +msgid "" +"Set and unset shell options.\n" +" \n" +" Change the setting of each shell option OPTNAME. Without any option\n" +" arguments, list all shell options with an indication of whether or not " +"each\n" +" is set.\n" +" \n" +" Options:\n" +" -o\trestrict OPTNAMEs to those defined for use with `set -o'\n" +" -p\tprint each shell option with an indication of its status\n" +" -q\tsuppress output\n" +" -s\tenable (set) each OPTNAME\n" +" -u\tdisable (unset) each OPTNAME\n" +" \n" +" Exit Status:\n" +" Returns success if OPTNAME is enabled; fails if an invalid option is\n" +" given or OPTNAME is disabled." +msgstr "" + +#: builtins.c:1847 +msgid "" +"Formats and prints ARGUMENTS under control of the FORMAT.\n" +" \n" +" Options:\n" +" -v var\tassign the output to shell variable VAR rather than\n" +" \t\tdisplay it on the standard output\n" +" \n" +" FORMAT is a character string which contains three types of objects: " +"plain\n" +" characters, which are simply copied to standard output; character " +"escape\n" +" sequences, which are converted and copied to the standard output; and\n" +" format specifications, each of which causes printing of the next " +"successive\n" +" argument.\n" +" \n" +" In addition to the standard format specifications described in printf" +"(1)\n" +" and printf(3), printf interprets:\n" +" \n" +" %b\texpand backslash escape sequences in the corresponding argument\n" +" %q\tquote the argument in a way that can be reused as shell input\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or a write or " +"assignment\n" +" error occurs." +msgstr "" + +#: builtins.c:1874 +msgid "" +"Specify how arguments are to be completed by Readline.\n" +" \n" +" For each NAME, specify how arguments are to be completed. If no " +"options\n" +" are supplied, existing completion specifications are printed in a way " +"that\n" +" allows them to be reused as input.\n" +" \n" +" Options:\n" +" -p\tprint existing completion specifications in a reusable format\n" +" -r\tremove a completion specification for each NAME, or, if no\n" +" \tNAMEs are supplied, all completion specifications\n" +" \n" +" When completion is attempted, the actions are applied in the order the\n" +" uppercase-letter options are listed above.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" + +#: builtins.c:1897 +msgid "" +"Display possible completions depending on the options.\n" +" \n" +" Intended to be used from within a shell function generating possible\n" +" completions. If the optional WORD argument is supplied, matches " +"against\n" +" WORD are generated.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" + +#: builtins.c:1912 +msgid "" +"Modify or display completion options.\n" +" \n" +" Modify the completion options for each NAME, or, if no NAMEs are " +"supplied,\n" +" the completion currently begin executed. If no OPTIONs are givenm, " +"print\n" +" the completion options for each NAME or the current completion " +"specification.\n" +" \n" +" Options:\n" +" \t-o option\tSet completion option OPTION for each NAME\n" +" \n" +" Using `+o' instead of `-o' turns off the specified option.\n" +" \n" +" Arguments:\n" +" \n" +" Each NAME refers to a command for which a completion specification must\n" +" have previously been defined using the `complete' builtin. If no NAMEs\n" +" are supplied, compopt must be called by a function currently generating\n" +" completions, and the options for that currently-executing completion\n" +" generator are modified.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or NAME does not\n" +" have a completion specification defined." +msgstr "" + +#: builtins.c:1940 +msgid "" +"Read lines from a file into an array variable.\n" +" \n" +" Read lines from the standard input into the array variable ARRAY, or " +"from\n" +" file descriptor FD if the -u option is supplied. The variable MAPFILE " +"is\n" +" the default ARRAY.\n" +" \n" +" Options:\n" +" -n count\tCopy at most COUNT lines. If COUNT is 0, all lines are " +"copied.\n" +" -O origin\tBegin assigning to ARRAY at index ORIGIN. The default " +"index is 0.\n" +" -s count \tDiscard the first COUNT lines read.\n" +" -t\t\tRemove a trailing newline from each line read.\n" +" -u fd\t\tRead lines from file descriptor FD instead of the standard " +"input.\n" +" -C callback\tEvaluate CALLBACK each time QUANTUM lines are read.\n" +" -c quantum\tSpecify the number of lines read between each call to " +"CALLBACK.\n" +" \n" +" Arguments:\n" +" ARRAY\t\tArray variable name to use for file data.\n" +" \n" +" If -C is supplied without -c, the default quantum is 5000.\n" +" \n" +" If not supplied with an explicit origin, mapfile will clear ARRAY " +"before\n" +" assigning to it.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or ARRAY is readonly." +msgstr "" + +#~ msgid "Display the list of currently remembered directories. Directories" +#~ msgstr "" +#~ "Mostra la llista dels directoris actualment recordats. Els directoris " + +#~ msgid "find their way onto the list with the `pushd' command; you can get" +#~ msgstr "troben el seu cam? en la llista amb l'ordre ?pushd?; podeu anar cap" + +#~ msgid "back up through the list with the `popd' command." +#~ msgstr "endarrere a trav?s de la llista amb l'ordre ?popd?." + +#~ msgid "" +#~ "The -l flag specifies that `dirs' should not print shorthand versions" +#~ msgstr "" +#~ "Si s'especifica el senyalador \"-l\" no es mostrar? la forma abreviada" + +#~ msgid "" +#~ "of directories which are relative to your home directory. This means" +#~ msgstr "dels directoris que estiguen relacionats amb el vostre directori" + +#~ msgid "that `~/bin' might be displayed as `/homes/bfox/bin'. The -v flag" +#~ msgstr "d'usuari. Aix? vol dir que ?~/bin? pot ser exhibit com" + +#~ msgid "causes `dirs' to print the directory stack with one entry per line," +#~ msgstr "" +#~ "?/home/bfox/bin?. Amb el senyalador \"-v\" l'ordre ?dirs? mostrar? la" + +#~ msgid "" +#~ "prepending the directory name with its position in the stack. The -p" +#~ msgstr "" +#~ "pila de directoris amb una l?nia per a cada entrada, afegint el nom de" + +#~ msgid "flag does the same thing, but the stack position is not prepended." +#~ msgstr "directori amb la seua posici? en la pila. Amb el senyalador \"-p\"" + +#~ msgid "" +#~ "The -c flag clears the directory stack by deleting all of the elements." +#~ msgstr "" +#~ "esdevindr? el mateix, per? no mostrar? les posicions. El senyalador\n" +#~ "\"-c\" buidar? la pila de directoris esborrant tots els seus elements." + +#, fuzzy +#~ msgid "" +#~ "+N displays the Nth entry counting from the left of the list shown by" +#~ msgstr "" +#~ "+N\texhibeix l'entrada N?sima comptant des de l'esquerra de la llista " + +#, fuzzy +#~ msgid " dirs when invoked without options, starting with zero." +#~ msgstr "" +#~ "\tmostrada per ?dirs? quan se l'invoca sense opcions, comen?ant per\n" +#~ "\tzero." + +#, fuzzy +#~ msgid "" +#~ "-N displays the Nth entry counting from the right of the list shown by" +#~ msgstr "" +#~ "-N\texhibeix l'entrada N?sima comptant des de la dreta de la llista " + +#~ msgid "Adds a directory to the top of the directory stack, or rotates" +#~ msgstr "" +#~ "Afegeix un directori en el principi de la pila de dicrectoris, o gira " + +#~ msgid "the stack, making the new top of the stack the current working" +#~ msgstr "" +#~ "la pila fent que el primer directori de la pila siga l'actual. Sense" + +#~ msgid "directory. With no arguments, exchanges the top two directories." +#~ msgstr "cap par?metre, intercanvia els dos primers directoris." + +#, fuzzy +#~ msgid "+N Rotates the stack so that the Nth directory (counting" +#~ msgstr "" +#~ "+N\tGira la pila de tal manera que el directori N?sim (comptant des de" + +#, fuzzy +#~ msgid " from the left of the list shown by `dirs', starting with" +#~ msgstr "\tl'esquerra de la llista mostrada per \"dirs\") ?s al principi." + +#, fuzzy +#~ msgid " zero) is at the top." +#~ msgstr "\tla dreta) ?s el primer." + +#, fuzzy +#~ msgid "-N Rotates the stack so that the Nth directory (counting" +#~ msgstr "" +#~ "-N\tGira la pila de tal manera que el directori N?sim (comptant des de " + +#, fuzzy +#~ msgid " from the right of the list shown by `dirs', starting with" +#~ msgstr "\tl'esquerra de la llista mostrada per \"dirs\") ?s al principi." + +#, fuzzy +#~ msgid "-n suppress the normal change of directory when adding directories" +#~ msgstr "" +#~ "-n\tsuprimeix el canvi normal de directori quan se'n afegeix a la pila, " + +#, fuzzy +#~ msgid " to the stack, so only the stack is manipulated." +#~ msgstr "\tde tal manera que nom?s es manipula la pila." + +#, fuzzy +#~ msgid "dir adds DIR to the directory stack at the top, making it the" +#~ msgstr "" +#~ "dir\tafegeix DIR a la pila de directoris al principi, de tal manera que " + +#, fuzzy +#~ msgid " new current working directory." +#~ msgstr "\taquest ser? el nou directori actual de treball." + +#~ msgid "You can see the directory stack with the `dirs' command." +#~ msgstr "Podeu comprovar la pila de directori amb l'ordre ?dirs?." + +#~ msgid "Removes entries from the directory stack. With no arguments," +#~ msgstr "Esborra entrades de la pila de directoris. Sense cap par?metre," + +#~ msgid "removes the top directory from the stack, and cd's to the new" +#~ msgstr "esborra el primer directori de la pila, i canvia el directori a la" + +#~ msgid "top directory." +#~ msgstr "seguent entrada de la pila (o sia, la nova primera entrada)." + +#, fuzzy +#~ msgid "+N removes the Nth entry counting from the left of the list" +#~ msgstr "+N\ttreu l'entrada N?sima comptant des de l'esquerra de la llista" + +#, fuzzy +#~ msgid " shown by `dirs', starting with zero. For example: `popd +0'" +#~ msgstr "\tmostrada per ?dirs?, comen?ant per zero. Per exemple: ?popd +0?" + +#, fuzzy +#~ msgid " removes the first directory, `popd +1' the second." +#~ msgstr "\ttreu el primer directori, ?popd +1? el segon, etc..." + +#, fuzzy +#~ msgid "-N removes the Nth entry counting from the right of the list" +#~ msgstr "-N\ttreu l'entrada N?sima comptant des de la dreta de la llista" + +#, fuzzy +#~ msgid " shown by `dirs', starting with zero. For example: `popd -0'" +#~ msgstr "" +#~ "\tmostrada per ?dirs?, comen?ant per zero. Per exemple: ?popd -0? treu" + +#, fuzzy +#~ msgid " removes the last directory, `popd -1' the next to last." +#~ msgstr "\tel darrer directori, ?popd -1? treu el pen?ltim, etc..." + +#, fuzzy +#~ msgid "" +#~ "-n suppress the normal change of directory when removing directories" +#~ msgstr "" +#~ "-n\tsuprimeix el canvi normal de directori quan es treu cap directori " + +#, fuzzy +#~ msgid " from the stack, so only the stack is manipulated." +#~ msgstr "\tde la pila, de tal manera que nom?s es manipula la pila." + +#, fuzzy +#~ msgid "" +#~ "Exit from within a FOR, WHILE or UNTIL loop. If N is specified,\n" +#~ " break N levels." +#~ msgstr "Ix d'un bucle FOR, WHILE o UNTIL." + +#~ msgid "Obsolete. See `declare'." +#~ msgstr "Obsoleta. Llegiu ?declare?." + +#~ msgid "" +#~ "Output the ARGs. If -n is specified, the trailing newline is suppressed." +#~ msgstr "" +#~ "Mostra els PAR?METREs. Si especifiqueu -n, se suprimir? el car?cter\n" +#~ "d'inici de l?nia." + +#~ msgid "" +#~ "Read ARGs as input to the shell and execute the resulting command(s)." +#~ msgstr "" +#~ "Llegeix els PAR?METRES a l'entrada de l'int?rpret d'ordres i executa les\n" +#~ "ordres resultants." + +#~ msgid "Logout of a login shell." +#~ msgstr "Finalitzar una sessi? de l'int?rpret d'ordres." + +#, fuzzy +#~ msgid "" +#~ "Causes a function to exit with the return value specified by N. If N\n" +#~ " is omitted, the return status is that of the last command." +#~ msgstr "" +#~ "Provoca l'eixida d'una funci? amb un valor de retorn especificat per" + +#, fuzzy +#~ msgid "" +#~ "The positional parameters from $N+1 ... are renamed to $1 ... If N is\n" +#~ " not given, it is assumed to be 1." +#~ msgstr "" +#~ "Es reanomenen els par?metres posicionals des de $N+1 ... com a $1 ... " + +#, fuzzy +#~ msgid "" +#~ "Print the accumulated user and system times for processes run from\n" +#~ " the shell." +#~ msgstr "" +#~ "Mostra el temps acumulat per l'usuari i pel sistema d'haver executat " + +#~ msgid "Missing `}'" +#~ msgstr "S'ha perdut '}'" + +#~ msgid "brace_expand> " +#~ msgstr "clau_expansi?> " + +# Ac? vaig tindre dubtes sobre quina paraula fer servir +# per al terme "command". Mirant-me el diccionari auxiliar +# de Sebasti? Pla i Sanz, traductor del KDE, vaig trobar-ne tres +# de traduccions: ordre, comandament, i comanda. I vaig triar +# la paraula "comanda". +# +# No obstant aix?, no s? si la paraula "command" pot traduir-se +# tamb? amb els altres termes depenent del context. Reviseu +# sobre el terme "comanda". +# Mtx (12/10/2002). +# +# Llegint al TERMCAT, la paraula "comanda" no apareix enlloc. Al glossari +# de termes del Softcatal? si hi apareix. Encara no ho tinc clar. Mentre +# m'informe una mica m?s, per?, ho deixar? com a "ordre", tal com ho +# heu fet fins ara. El problema que t? el TERMCAT, a la meua opini?, ?s +# que s'apropa massa a l'espanyol. No en tinc res en contra d'aquesta +# llengua, per? algunes traduccions en catal?, per exemple, basant-se +# en l'espanyol, em semblen poc naturals, i n'he trobat d'altres basats +# en el franc?s que s? me'n semblen m?s naturals. +# Mtx (15/10/2002) +#~ msgid "Attempt to free unknown command type `%d'.\n" +#~ msgstr "Intenteu lliurar l'ordre de mena desconeguda '%d'.\n" + +#~ msgid "Report this to %s\n" +#~ msgstr "Informeu d'aix? a %s\n" + +#~ msgid "Stopping myself..." +#~ msgstr "Aturant-me..." + +#~ msgid "Tell %s to fix this someday.\n" +#~ msgstr "Digueu a %s que solucione aix? algun dia.\n" + +#~ msgid "execute_command: bad command type `%d'" +#~ msgstr "ordre_execuci?: el tipus d'ordre ?s inv?lid '%d'" + +#~ msgid "real\t" +#~ msgstr "real\t" + +#~ msgid "user\t" +#~ msgstr "usuari\t" + +#~ msgid "sys\t" +#~ msgstr "sistema\t" + +#~ msgid "" +#~ "real\t0m0.00s\n" +#~ "user\t0m0.00s\n" +#~ "sys\t0m0.00s\n" +#~ msgstr "" +#~ "real\t0m0.00s\n" +#~ "usuari\t0m0.00s\n" +#~ "sistema\t0m0.00s\n" + +#~ msgid "cannot duplicate fd %d to fd 1: %s" +#~ msgstr "" +#~ "no es pot copiar per duplicat el descriptor del fitxer df %d cap a df 1: %" +#~ "s" + +#~ msgid "%s: output redirection restricted" +#~ msgstr "%s: redirecci? d'eixida restringida" + +#~ msgid "Out of memory!" +#~ msgstr "Mem?ria esgotada!" + +#~ msgid "You have already added item `%s'\n" +#~ msgstr "Ja hi heu afegit l'element: '%s'\n" + +#~ msgid "You have entered %d (%d) items. The distribution is:\n" +#~ msgstr "Heu introdu?t %d (%d) elements. La distribuci? ?s:\n" + +#~ msgid "%s: bg background job?" +#~ msgstr "%s: suggeriment: voleu executar 'bg' en segon pla?" + +#~ msgid "" +#~ "Redirection instruction from yyparse () '%d' is\n" +#~ "out of range in make_redirection ()." +#~ msgstr "" +#~ "La instrucci? de redirecci? de la funci? yyparse () '%d' ?s fora\n" +#~ "de l'interval en la funci? make_redirection()." + +#~ msgid "clean_simple_command () got a command with type %d." +#~ msgstr "clean_simple_command () heu rebut un ordre del tipus %d." + +#~ msgid "got errno %d while waiting for %d" +#~ msgstr "s'ha rebut l'error %d mentre s'esperava per %d" + +#~ msgid "syntax error near unexpected token `%c'" +#~ msgstr "hi ha un error inesperat de sintaxi a prop del senyal '%c'" + +#~ msgid "print_command: bad command type `%d'" +#~ msgstr "print_command: tipus d'ordre inv?lid '%d'" + +#~ msgid "cprintf: bad `%%' argument (%c)" +#~ msgstr "crintf: el par?metre '%%' de l'opci? %c ?s inv?lid" + +#~ msgid "option `%s' requires an argument" +#~ msgstr "l'opci? '%s' requereix un par?metre" + +#~ msgid "%s: unrecognized option" +#~ msgstr "%s: l'opci? no ?s reconeguda" + +#~ msgid "`-c' requires an argument" +#~ msgstr "'-c' requereix un par?metre" + +#~ msgid "%s: cannot execute directories" +#~ msgstr "%s: no es poden executar els directoris" + +#~ msgid "Bad code in sig.c: sigprocmask" +#~ msgstr "Codi incorrecte a la rutina sig.c: sigprocmask" + +#~ msgid "bad substitution: no ending `}' in %s" +#~ msgstr "substituci? inv?lida: no s'ha tancat %s amb cap '}'" + +#~ msgid "%s: bad array subscript" +#~ msgstr "%s: la composici? de la matriu no ?s v?lida" + +#~ msgid "can't make pipes for process substitution: %s" +#~ msgstr "no es poden establir conductes per a la substituci? del proc?s: %s" + +#~ msgid "reading" +#~ msgstr "s'est? llegint" + +#~ msgid "process substitution" +#~ msgstr "proc?s de substituci? en curs" + +#~ msgid "command substitution" +#~ msgstr "substituci? de l'ordre" + +#~ msgid "Can't reopen pipe to command substitution (fd %d): %s" +#~ msgstr "" +#~ "El conducte no es pot reobrir per a substituir\n" +#~ "l'ordre (descripci? de fitxer%d): %s" + +#~ msgid "$%c: unbound variable" +#~ msgstr "$%c: variable sense vincle" + +#~ msgid "%s: bad arithmetic substitution" +#~ msgstr "%s: substituci? aritm?tica inv?lida" + +#~ msgid "-%s: binary operator expected" +#~ msgstr "-%s: s'esperava un operador binari" + +#~ msgid "%s[%s: bad subscript" +#~ msgstr "%s[%s: sub-?ndex inv?lid" + +#~ msgid "[%s: bad subscript" +#~ msgstr "[%s: sub-?ndex inv?lid" + +#~ msgid "digits occur in two different argv-elements.\n" +#~ msgstr "les xifres apareixen dins de dos par?metres diferents.\n" + +#~ msgid "option %c\n" +#~ msgstr "opci? %c\n" + +#~ msgid "option a\n" +#~ msgstr "opci? a\n" + +#~ msgid "option b\n" +#~ msgstr "opci? b\n" + +#~ msgid "option c with value `%s'\n" +#~ msgstr "opci? c amb el valor ?%s?\n" + +#~ msgid "?? sh_getopt returned character code 0%o ??\n" +#~ msgstr "sh_getopt() retorn? 0%o com a codi de car?cter??\n" + +#~ msgid "non-option ARGV-elements: " +#~ msgstr "elements d'ARGV que no s?n opcions: " + +#~ msgid "%s: Unknown flag %s.\n" +#~ msgstr "%s: Senyalador desconegut %s.\n" + +#~ msgid "Unknown directive `%s'" +#~ msgstr "Directiva desconeguda ?%s?" + +#~ msgid "%s requires an argument" +#~ msgstr "%s cal un par?metre" + +#~ msgid "%s must be inside of a $BUILTIN block" +#~ msgstr "%s ha d'estar dins d'un bloc $BUILTIN" + +#~ msgid "%s found before $END" +#~ msgstr "%s trobat abans de $END" + +#~ msgid "%s already has a function (%s)" +#~ msgstr "%s ja cont? la funci? definida: %s" + +#~ msgid "%s already had a docname (%s)" +#~ msgstr "%s ja t? un nom de document (%s)" + +#~ msgid "%s already has short documentation (%s)" +#~ msgstr "%s ja t? una documentaci? r?pida (%s)" + +#~ msgid "%s already has a %s definition" +#~ msgstr "%s ja t? una definici? %s" + +#~ msgid "mkbuiltins: Out of virtual memory!\n" +#~ msgstr "mkbuiltins(): S'ha esgotat la mem?ria virtual!\n" + +# Tot i que no he trobat cap traducci? t?cnica oficial al TERMCAT +# crec que la traducci? de "prompt" com a "apuntador" ?s prou +# ilustratiu i significatiu per al context, no?. +#~ msgid "read [-r] [-p prompt] [-a array] [-e] [name ...]" +#~ msgstr "read [-r] [-p apuntador] [-a matriu] [-e] [nom ...]" + +#~ msgid "%[DIGITS | WORD] [&]" +#~ msgstr "%[XIFRES | PARAULES] [&]" + +#~ msgid "variables - Some variable names and meanings" +#~ msgstr "variables - Algunes variables i els seus significats" + +#~ msgid "`alias' with no arguments or with the -p option prints the list" +#~ msgstr "" +#~ "Si 'alias' no porta arguments o porta l'opci? -p es mostra la llista" + +#~ msgid "of aliases in the form alias NAME=VALUE on standard output." +#~ msgstr "d'?lies en la forma 'alias NOM=VALOR' en l'eixida per defecte." + +#~ msgid "Otherwise, an alias is defined for each NAME whose VALUE is given." +#~ msgstr "" +#~ "Altrament, es defineix un ?lies per cada NOM que en d?na el seu VALOR." + +#~ msgid "A trailing space in VALUE causes the next word to be checked for" +#~ msgstr "" +#~ "Un salt de l?nia dins del VALOR for?a la substituci? de la seg?ent " +#~ "paraula per" + +#~ msgid "alias substitution when the alias is expanded. Alias returns" +#~ msgstr "substituci? de l'?lies quan aquest s'hi expandeix. L'?lies torna" + +#~ msgid "true unless a NAME is given for which no alias has been defined." +#~ msgstr "" +#~ "cert almenys que es d?ne un NOM pel qual no s'haja estat definit cap ?" +#~ "lies." + +#~ msgid "then remove all alias definitions." +#~ msgstr "l'opci? -a, aleshores se suprimeixen totes les definicions." + +#~ msgid "Bind a key sequence to a Readline function, or to a macro. The" +#~ msgstr "" +#~ "Vincula una seq??ncia de tecles cap una funci? de lectura, o a una macro." + +#~ msgid "syntax is equivalent to that found in ~/.inputrc, but must be" +#~ msgstr "" +#~ "La sintaxi ?s equivalent al que es troba a ~/.inputrc, per? ha s'ha de fer" + +#~ msgid "" +#~ "passed as a single argument: bind '\"\\C-x\\C-r\": re-read-init-file'." +#~ msgstr "" +#~ "el pas com a ?nic par?metre: bind '\"\\C-x\\C-r\": re-read-init-file'." + +#~ msgid "Arguments we accept:" +#~ msgstr "Els par?metres acceptats s?n:" + +#~ msgid "" +#~ " -m keymap Use `keymap' as the keymap for the duration of this" +#~ msgstr "" +#~ " -m mapa_tecles Fa servir 'keymap' com el mapa de car?cters " +#~ "durant" + +#~ msgid " command. Acceptable keymap names are emacs," +#~ msgstr "" +#~ " l'execuci? d'aquest ordre. S'accepten els noms emacs," + +#~ msgid "" +#~ " emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move," +#~ msgstr "" +#~ " emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move," + +#~ msgid " vi-command, and vi-insert." +#~ msgstr " vi-command, i vi-insert." + +#~ msgid " -l List names of functions." +#~ msgstr " -l Mostra la llista de noms de les funcions." + +#~ msgid " -P List function names and bindings." +#~ msgstr "" +#~ " -P Mostra la llista de noms i vincles de les funcions." + +#~ msgid "" +#~ " -p List functions and bindings in a form that can be" +#~ msgstr "" +#~ " -p Mostra la llista de funcions i vincles d'una manera" + +#~ msgid " reused as input." +#~ msgstr "" +#~ " que puga ser reutilitzada com a entrada de dades." + +#~ msgid " -r keyseq Remove the binding for KEYSEQ." +#~ msgstr "" +#~ " -r seq??ncia_tecles Treu els vincles de la seq??ncia de tecles." + +#~ msgid " -f filename Read key bindings from FILENAME." +#~ msgstr " -f fitxer Llegeix les assignacions de tecles d'un fitxer." + +#~ msgid "" +#~ " -q function-name Query about which keys invoke the named function." +#~ msgstr "" +#~ " -q nom_funci? Consultar quines tecles invoquen la funci? demanada." + +#~ msgid " -V List variable names and values" +#~ msgstr "" +#~ " -V Mostra la llista de noms i valors de les variables." + +#~ msgid "" +#~ " -v List variable names and values in a form that can" +#~ msgstr "" +#~ " -v Mostra la llista de noms i valors de variables de " +#~ "manera" + +#~ msgid " be reused as input." +#~ msgstr "" +#~ " que puga ser reutilitzada com a entrada de dades." + +#~ msgid "" +#~ " -S List key sequences that invoke macros and their " +#~ "values" +#~ msgstr "" +#~ " -S Mostra la llista de seq??ncies de tecles que criden\n" +#~ " macros i els seus valors." + +#~ msgid "" +#~ " -s List key sequences that invoke macros and their " +#~ "values in" +#~ msgstr "" +#~ " -s Mostra la llista de seq??ncies de tecles que criden" + +#~ msgid " a form that can be reused as input." +#~ msgstr "" +#~ " macros i els seus valors de manera que puga ser\n" +#~ " reutilitzada com a entrada de dades." + +#~ msgid "break N levels." +#~ msgstr "Si s'especifica N, s'ix despr?s de N iteracions." + +#~ msgid "If N is specified, resume at the N-th enclosing loop." +#~ msgstr "Si s'especifica N, es repr?n el bucle al N-?sim cicle." + +#~ msgid "Run a shell builtin. This is useful when you wish to rename a" +#~ msgstr "" +#~ "Executa una ordre integrada de l'int?rpret. Aix? ?s ?til quan desitgeu" + +#~ msgid "shell builtin to be a function, but need the functionality of the" +#~ msgstr "" +#~ "renomenar una ordre integrada de l'int?rpret perqu? siga una funci?, per?" + +#~ msgid "builtin within the function itself." +#~ msgstr "cal la funcionalitat de l'ordre integrada dins de la pr?pia funci?." + +#~ msgid "Change the current directory to DIR. The variable $HOME is the" +#~ msgstr "Fa servir DIR com el directori actual. La variable $HOME ?s el" + +#~ msgid "default DIR. The variable $CDPATH defines the search path for" +#~ msgstr "" +#~ "valor per defecte de DIR. La variable $CDPATH defineix el cam? de recerca" + +#~ msgid "the directory containing DIR. Alternative directory names in CDPATH" +#~ msgstr "" +#~ "per al directori que cont? DIR. Els noms de directoris alternatius que " +#~ "hi ha" + +#~ msgid "are separated by a colon (:). A null directory name is the same as" +#~ msgstr "" +#~ "en CDPATH s?n separats per dos punts. Un nom buit de directori ?s el " +#~ "mateix" + +#~ msgid "the current directory, i.e. `.'. If DIR begins with a slash (/)," +#~ msgstr "" +#~ "que el directori actual, p.e. ?.?. Si es comen?a en DIR amb una barra " +#~ "(/)," + +#~ msgid "then $CDPATH is not used. If the directory is not found, and the" +#~ msgstr "" +#~ "aleshores no es fa servir $CDPATH. Si no es troba el directori, i l'opci?" + +#~ msgid "shell option `cdable_vars' is set, then try the word as a variable" +#~ msgstr "" +#~ "de l'int?rpret ?cdable_vars? ?s activa, aleshores intenta fer servir la" + +#~ msgid "name. If that variable has a value, then cd to the value of that" +#~ msgstr "" +#~ "paraula com a nom de variable. Si aquesta variable ja tenia un valor," + +#~ msgid "" +#~ "variable. The -P option says to use the physical directory structure" +#~ msgstr "aleshores es canvia al directori d'aquest valor. L'opci? -P indica" + +#~ msgid "" +#~ "instead of following symbolic links; the -L option forces symbolic links" +#~ msgstr "" +#~ "l'emprament de l'estructura f?sica del directori en voltes d'enlla?os" + +#~ msgid "to be followed." +#~ msgstr "simb?lics; l'opci? -L for?a el seguiment d'enlla?os simb?lics." + +#~ msgid "Print the current working directory. With the -P option, pwd prints" +#~ msgstr "" +#~ "Mostra el directori actual de treball. Amb l'opci? -P, pwd mostra el" + +#~ msgid "the physical directory, without any symbolic links; the -L option" +#~ msgstr "" +#~ "directori f?sic, sense cap enlla? simb?lic; l'opci? -L fa que pwd seguisca" + +#~ msgid "makes pwd follow symbolic links." +#~ msgstr "els enlla?os simb?lics." + +#~ msgid "" +#~ "Runs COMMAND with ARGS ignoring shell functions. If you have a shell" +#~ msgstr "" +#~ "Executa ORDRE amb PAR?METRES ignorant les funcions de l'int?rpret. Si " +#~ "teniu" + +#~ msgid "function called `ls', and you wish to call the command `ls', you can" +#~ msgstr "" +#~ "una funci? de l'int?rpret anomenat ?ls?, i desitgeu cridar l'ordre ?ls?," + +#~ msgid "" +#~ "say \"command ls\". If the -p option is given, a default value is used" +#~ msgstr "" +#~ "podeu escriure ?command ls?. Si doneu l'opci? -p, es far? servir un valor" + +#~ msgid "" +#~ "for PATH that is guaranteed to find all of the standard utilities. If" +#~ msgstr "" +#~ "per defecte per al PATH, que garanteix la cerca de les eines est?ndard. " +#~ "Si hi" + +#~ msgid "" +#~ "the -V or -v option is given, a string is printed describing COMMAND." +#~ msgstr "" +#~ "indiqueu l'opci? -V o -v, es mostrar? una cadena de text descrivint " +#~ "l'ORDRE." + +#~ msgid "The -V option produces a more verbose description." +#~ msgstr "L'opci? -V produeix una descripci? m?s acurada." + +#~ msgid "Declare variables and/or give them attributes. If no NAMEs are" +#~ msgstr "" +#~ "Es declara les variables i/o se'ls d?na atributs. Si no es proporcionen " +#~ "NOMS," + +#~ msgid "given, then display the values of variables instead. The -p option" +#~ msgstr "" +#~ "aleshores mostra els valors de les variables. L'opci? -p mostrar? els" + +#~ msgid "will display the attributes and values of each NAME." +#~ msgstr "atributs i valors de cada NOM." + +#~ msgid "The flags are:" +#~ msgstr "Els senyaladors s?n:" + +#~ msgid " -a\tto make NAMEs arrays (if supported)" +#~ msgstr " -a\tper a fer matrius de NOMS (si n'?s suportat)" + +#~ msgid " -f\tto select from among function names only" +#~ msgstr " -f\ttriar nom?s entre els noms de les funcions" + +#~ msgid " -F\tto display function names without definitions" +#~ msgstr " -F\tmostrar noms de funcions ometent les seues definicions" + +#~ msgid " -r\tto make NAMEs readonly" +#~ msgstr " -r\tblocar l'acc?s d'escriptura de les variables NOMs" + +#~ msgid " -x\tto make NAMEs export" +#~ msgstr " -x\texportar les variables de NOMs" + +#~ msgid " -i\tto make NAMEs have the `integer' attribute set" +#~ msgstr " -i\tactivar l'atribut num?ric enter les variables NOMs" + +#~ msgid "Variables with the integer attribute have arithmetic evaluation (see" +#~ msgstr "" +#~ "Les variables que tinguen l'atribut num?ric enter tenen feta l'evaluaci?" + +#~ msgid "`let') done when the variable is assigned to." +#~ msgstr "aritm?tica (mirar ?let?) quan se'ls assigna la variable." + +#~ msgid "When displaying values of variables, -f displays a function's name" +#~ msgstr "" +#~ "Quan es mostra els valors de les variables, amb -f es mostra un nom de " +#~ "funci?" + +#~ msgid "and definition. The -F option restricts the display to function" +#~ msgstr "" +#~ "i la definici?. Amb l'opci? -F es limita nom?s en mostrar el nom de la" + +#~ msgid "name only." +#~ msgstr "funci?." + +#~ msgid "" +#~ "Using `+' instead of `-' turns off the given attribute instead. When" +#~ msgstr "" +#~ "Emprant \"+\" en voltes de \"-\" desactiva l'atribut especificat. Quan ?s" + +#~ msgid "used in a function, makes NAMEs local, as with the `local' command." +#~ msgstr "" +#~ "emprat en una funci?, converteix NOMs en variables locals, igual com es " +#~ "fa\n" +#~ "amb l'ordre ?local?." + +#~ msgid "Create a local variable called NAME, and give it VALUE. LOCAL" +#~ msgstr "" +#~ "Es crea una variable local anomenat NOM, i el d?na un VALOR. Nom?s es " +#~ "pot fer" + +#~ msgid "have a visible scope restricted to that function and its children." +#~ msgstr "variable NOM nom?s per a aquesta funci? i per als seus fills." + +#~ msgid "Output the ARGs. If -n is specified, the trailing newline is" +#~ msgstr "" +#~ "Mostra els PAR?METREs. Si especifiqueu -n, s'eliminar? el car?cter de " +#~ "salt" + +#~ msgid "suppressed. If the -e option is given, interpretation of the" +#~ msgstr "" +#~ "de l?nia. Si especifiqueu l'opci? -e, s'activar? la interpretaci? de les" + +#~ msgid "following backslash-escaped characters is turned on:" +#~ msgstr "seq??ncies d'escapada (barra inclinada inversa):" + +#~ msgid "\t\\a\talert (bell)" +#~ msgstr "\t\\a\talerta (camponada)" + +#~ msgid "\t\\b\tbackspace" +#~ msgstr "\t\\b\tesborrar cap enrere" + +#~ msgid "\t\\c\tsuppress trailing newline" +#~ msgstr "\t\\c\tsuprimeix el car?cter de salt de l?nia" + +#~ msgid "\t\\E\tescape character" +#~ msgstr "\t\\E\tcar?cter d'escapada" + +#~ msgid "\t\\f\tform feed" +#~ msgstr "\t\\f\talimentaci? manual de paper" + +#~ msgid "\t\\n\tnew line" +#~ msgstr "\t\\n\tl?nia nova" + +#~ msgid "\t\\r\tcarriage return" +#~ msgstr "\t\\r\ttecla de retorn de carro" + +#~ msgid "\t\\t\thorizontal tab" +#~ msgstr "\t\\t\tpestanya horitzontal" + +#~ msgid "\t\\v\tvertical tab" +#~ msgstr "\t\\v\tpestanya vertical" + +#~ msgid "\t\\\\\tbackslash" +#~ msgstr "\t\\\\\tbarra invertida" + +#~ msgid "\t\\num\tthe character whose ASCII code is NUM (octal)." +#~ msgstr "\t\\num\tcar?cter del qual codi ASCII ?s NUM (octal)." + +#~ msgid "" +#~ "You can explicitly turn off the interpretation of the above characters" +#~ msgstr "" +#~ "Podeu desactivar expl?citament la interpretaci? dels car?cters esmentats " +#~ "amb" + +#~ msgid "with the -E option." +#~ msgstr "l'opci? -E." + +#~ msgid "Enable and disable builtin shell commands. This allows" +#~ msgstr "" +#~ "Activa i desactiva les ordres integrades de l'int?rpret d'ordres. A?? us" + +#~ msgid "you to use a disk command which has the same name as a shell" +#~ msgstr "" +#~ "permet fer servir una ordre de disc que tinga el mateix nom d'una ordre " +#~ "interna" + +#~ msgid "builtin. If -n is used, the NAMEs become disabled; otherwise" +#~ msgstr "" +#~ "de l'int?rpret d'ordres. Si utilitzeu -n, els NOMs es desactiven; " +#~ "altrament" + +#~ msgid "NAMEs are enabled. For example, to use the `test' found on your" +#~ msgstr "" +#~ "s'activarien els NOMs. Per exemple, per a fer servir l'ordre ?test? del " +#~ "cam?" + +#~ msgid "path instead of the shell builtin version, type `enable -n test'." +#~ msgstr "" +#~ "d'acc?s (PATH) en voltes de la versi? integrada de l'int?rpret d'ordres," + +#~ msgid "On systems supporting dynamic loading, the -f option may be used" +#~ msgstr "" +#~ "teclegeu ?enable -n test?. En sistemes que suporten c?rrega din?mica, " +#~ "l'opci?" + +#~ msgid "to load new builtins from the shared object FILENAME. The -d" +#~ msgstr "" +#~ "-f es pot fer servir per a carregar noves ordres predefinides de l'objecte" + +#~ msgid "option will delete a builtin previously loaded with -f. If no" +#~ msgstr "" +#~ "de FITXER compartit. L'opci? -d esborrar? una ordre integrada carregada " + +#~ msgid "non-option names are given, or the -p option is supplied, a list" +#~ msgstr "" +#~ "pr?viament amb -f. Si no s'especifica cap opci?, o s'especifica l'opci? -" +#~ "p, es" + +#~ msgid "of builtins is printed. The -a option means to print every builtin" +#~ msgstr "" +#~ "mostra una llista d'ordres predefinides. L'opci? -a implica mostrar cada" + +#~ msgid "with an indication of whether or not it is enabled. The -s option" +#~ msgstr "" +#~ "ordre integrada amb una indicaci? de si est? activa o no. L'opci? -s " +#~ "impedeix" + +#~ msgid "restricts the output to the Posix.2 `special' builtins. The -n" +#~ msgstr "" +#~ "l'eixida de les ordres predefinides \"especials\" Posix.2. L'opci? -n " +#~ "mostra" + +#~ msgid "option displays a list of all disabled builtins." +#~ msgstr "una llista de totes les funcions internes desactivades." + +#~ msgid "Getopts is used by shell procedures to parse positional parameters." +#~ msgstr "" +#~ "La funci? getopts() ?s utilitzada pels procediments de l'int?rpret " +#~ "d'ordres\n" +#~ "per a analitzar par?metres posicionals." + +#~ msgid "OPTSTRING contains the option letters to be recognized; if a letter" +#~ msgstr "" +#~ "La variable OPTSTRING cont? les opcions de forma curta per a ser " +#~ "reconegudes;" + +#~ msgid "is followed by a colon, the option is expected to have an argument," +#~ msgstr "" +#~ "si una lletra ?s seguida per dos punts, s'ha de donar un par?metre que " +#~ "hauria" + +#~ msgid "which should be separated from it by white space." +#~ msgstr "d'estar separat per un espai en blanc." + +#~ msgid "Each time it is invoked, getopts will place the next option in the" +#~ msgstr "" +#~ "Cada vegada que se'l invoca, ?getops? posar? la seg?ent opci? en la " +#~ "variable" + +#~ msgid "shell variable $name, initializing name if it does not exist, and" +#~ msgstr "" +#~ "$name de l'int?rpret d'ordres, creant-lo si no existeix, i l'?ndex del " +#~ "seg?ent" + +#~ msgid "the index of the next argument to be processed into the shell" +#~ msgstr "" +#~ "par?metre per a processar-se dins de la variable OPTIND de l'int?rpret" + +#~ msgid "variable OPTIND. OPTIND is initialized to 1 each time the shell or" +#~ msgstr "" +#~ "d'ordres. OPTIND s'inicia amb 1 cada vegada que s'invoca l'int?rpret " +#~ "d'ordres" + +#~ msgid "a shell script is invoked. When an option requires an argument," +#~ msgstr "" +#~ "o una seq??ncia d'ordres. Quan una opci? requereix un par?metre, la funci?" + +#~ msgid "getopts places that argument into the shell variable OPTARG." +#~ msgstr "" +#~ "getopts() colžloca aquest par?metre dins de la variable OPTARG de l'int?" +#~ "rpret." + +#~ msgid "getopts reports errors in one of two ways. If the first character" +#~ msgstr "" +#~ "La funci? getopts() comunica errors en una de les dues maneres. Si el" + +#~ msgid "of OPTSTRING is a colon, getopts uses silent error reporting. In" +#~ msgstr "primer car?cter de la variable OPSTRING ?s el signe ':', la funci?" + +#~ msgid "this mode, no error messages are printed. If an illegal option is" +#~ msgstr "" +#~ "getopts() corre silenciosament. D'aquesta manera, no s'imprimir? cap" + +#~ msgid "seen, getopts places the option character found into OPTARG. If a" +#~ msgstr "missatge d'error. Si es troba una opci? incorrecta, la funci?" + +#~ msgid "required argument is not found, getopts places a ':' into NAME and" +#~ msgstr "colžloca aquesta opci? de forma curta dins de la variable OPTARG " + +#~ msgid "sets OPTARG to the option character found. If getopts is not in" +#~ msgstr "" +#~ "si no es troba un patr?metre esperat, la funci? getopts() introdueix" + +#~ msgid "silent mode, and an illegal option is seen, getopts places '?' into" +#~ msgstr "el signe ':' dins de la variable NAME i estableix el valor de la" + +#~ msgid "NAME and unsets OPTARG. If a required option is not found, a '?'" +#~ msgstr "" +#~ "variable OPTARG amb l'opci? de forma curta que s'hi haja trobada. Si" + +#~ msgid "is placed in NAME, OPTARG is unset, and a diagnostic message is" +#~ msgstr "la funci? getopts() no est? en mode silenci?s, i s'ha trobat una" + +#~ msgid "If the shell variable OPTERR has the value 0, getopts disables the" +#~ msgstr "Si la variable OPTERR de l'int?rpret d'ordres t? un valor nul, la" + +#~ msgid "printing of error messages, even if the first character of" +#~ msgstr "" +#~ "funci? getopts() desactiva la impressi? dels missatges d'error, tot i" + +#~ msgid "OPTSTRING is not a colon. OPTERR has the value 1 by default." +#~ msgstr "" +#~ "que el primer car?cter de OPSTRING no siga el signe ':'. La variable\n" +#~ "OPTERR t? el valor 1 com a defecte." + +#~ msgid "Getopts normally parses the positional parameters ($0 - $9), but if" +#~ msgstr "La funci? getopts() normalment analitza els par?metres posicionals" + +#~ msgid "more arguments are given, they are parsed instead." +#~ msgstr "" +#~ "($0-$9), per? si se'n d?na m?s arguments, se'ls analitza en voltes\n" +#~ "dels posicionals." + +#~ msgid "Exec FILE, replacing this shell with the specified program." +#~ msgstr "" +#~ "Executa el FITXER, reempla?ant aquest int?rpret d'ordres pel programa." + +#~ msgid "If FILE is not specified, the redirections take effect in this" +#~ msgstr "" +#~ "especificat. Si no s'especifica FITXER, els redre?aments tindran efecte" + +#~ msgid "shell. If the first argument is `-l', then place a dash in the" +#~ msgstr "en aquest int?rpret d'ordres. Si el primer par?metre ?s \"-l\"," + +#~ msgid "zeroth arg passed to FILE, as login does. If the `-c' option" +#~ msgstr "aleshores es reempla?a el par?metre 0 pel signe \"-\" referenciat a" + +#~ msgid "is supplied, FILE is executed with a null environment. The `-a'" +#~ msgstr "" +#~ "FITXER, com aix? es fa en l'inici de sessi?. Si s'especifica l'opci? \"-c" +#~ "\"," + +#~ msgid "option means to make set argv[0] of the executed process to NAME." +#~ msgstr "" +#~ "s'executa FITXER en un entorn nul. L'opci? \"-a\" estableix que el\n" +#~ "proc?s executat portar? aquest NOM." + +#~ msgid "If the file cannot be executed and the shell is not interactive," +#~ msgstr "Si no es pot executar el fitxer i l'int?rpret d'ordres no ?s" + +#~ msgid "then the shell exits, unless the variable \"no_exit_on_failed_exec\"" +#~ msgstr "interactiu, aleshores l'int?rpret finalitza la seua execuci?, a" + +#~ msgid "is set." +#~ msgstr "menys que s'inicialitze la variable \"no_exit_on_failed_exec\"." + +#~ msgid "is that of the last command executed." +#~ msgstr "l'estat d'eixida ?s el darrer ordre executat." + +#~ msgid "" +#~ "FIRST and LAST can be numbers specifying the range, or FIRST can be a" +#~ msgstr "PRIMER i ?LTIM poden ser n?meros que especifiquen el rang, o PRIMER" + +#~ msgid "string, which means the most recent command beginning with that" +#~ msgstr "" +#~ "pot ser una cadena, que representa l'ordre m?s recent el qual comen?a" + +#~ msgid "string." +#~ msgstr "amb eixa cadena." + +#~ msgid "" +#~ " -e ENAME selects which editor to use. Default is FCEDIT, then EDITOR," +#~ msgstr "" +#~ " -e ENAME tria quin editor emprar. FCEDIT ?s per defecte, despr?s ?s" + +#~ msgid "" +#~ " then the editor which corresponds to the current readline editing" +#~ msgstr "" +#~ " EDITOR, despr?s l'editor que correspon amb l'actual editor del " + +#~ msgid " mode, then vi." +#~ msgstr " mode de l?nia d'ordre, i per ?ltim ?vi?." + +#~ msgid " -l means list lines instead of editing." +#~ msgstr " -l mostra les l?nies en voltes d'editar-les." + +#~ msgid " -n means no line numbers listed." +#~ msgstr " -n no es mostraran els n?meros de l?nia." + +#~ msgid "" +#~ " -r means reverse the order of the lines (making it newest listed " +#~ "first)." +#~ msgstr "" +#~ " -r inverteix l'ordre de les l?nies (els m?s recents es llisten primer)." + +#~ msgid "With the `fc -s [pat=rep ...] [command]' format, the command is" +#~ msgstr "" +#~ "Amb el format ?fc -s [pat=rep ...] [command]?, es reexecuta l'ordre " + +#~ msgid "re-executed after the substitution OLD=NEW is performed." +#~ msgstr "despr?s de que es realitze la substituci? de ANTIC per NOU." + +#~ msgid "A useful alias to use with this is r='fc -s', so that typing `r cc'" +#~ msgstr "Un ?lies ?til per a usar-lo amb aix? ?s r='fc -s', per tant si" + +#~ msgid "runs the last command beginning with `cc' and typing `r' re-executes" +#~ msgstr "s'escriu ?r cc? s'executar? la darrera ordre que comen?a per ?cc? i" + +#~ msgid "JOB_SPEC is not present, the shell's notion of the current job is" +#~ msgstr "Si no s'especifica ID_TASCA, s'aplicaran els atributs d'execuci? de" + +#~ msgid "used." +#~ msgstr "l'int?rpret d'ordres de la tasca actual." + +#~ msgid "Place JOB_SPEC in the background, as if it had been started with" +#~ msgstr "Ubica ID_TASCA en segon pla, com si s'haguera iniciat amb \"&\"." + +#~ msgid "`&'. If JOB_SPEC is not present, the shell's notion of the current" +#~ msgstr "Si no s'especifica ID_TASCA, s'aplicaran els atributs d'execuci? de" + +#~ msgid "job is used." +#~ msgstr "l'int?rpret d'ordres de la tasca actual." + +#~ msgid "For each NAME, the full pathname of the command is determined and" +#~ msgstr "Per a cada NOM, es determina i es recorda el nom del cam? d'acc?s" + +#~ msgid "remembered. If the -p option is supplied, PATHNAME is used as the" +#~ msgstr "complet de l'ordre. Si s'especifica l'opci? -p , es fa servir" + +#~ msgid "full pathname of NAME, and no path search is performed. The -r" +#~ msgstr "CAM?_ACC?S com el nom del cam? complet de NOM, i no es realitzar?" + +#~ msgid "option causes the shell to forget all remembered locations. If no" +#~ msgstr "cap cerca de camins. L'opci? -r fa que l'int?rpret d'ordres oblide" + +#~ msgid "" +#~ "arguments are given, information about remembered commands is displayed." +#~ msgstr "" +#~ "totes les ubicacions del cam? d'acc?s. Si no s'hi d?na arguments, es\n" +#~ "mostrar? informaci? sobre els camins d'acc?s triats per les ordres." + +#~ msgid "Display helpful information about builtin commands. If PATTERN is" +#~ msgstr "Mostra informaci? d'utilitat sobre les ordres integrades. Si" + +#~ msgid "specified, gives detailed help on all commands matching PATTERN," +#~ msgstr "s'especifica PLANTILLA, s'hi d?na ajuda detallada sobre totes les" + +#~ msgid "otherwise a list of the builtins is printed." +#~ msgstr "" +#~ "ordres que coincidisquen amb PLANTILLA, altrament s'hi mostrar? una\n" +#~ "llista de les ordres integrades." + +#~ msgid "Display the history list with line numbers. Lines listed with" +#~ msgstr "Mostra el llistat de l'hist?ric de manera numerada. Les l?nies qu?" + +#~ msgid "with a `*' have been modified. Argument of N says to list only" +#~ msgstr "" +#~ "han sigut modificades s?n llistades amb el signe \"*\". El par?metre" + +#~ msgid "the last N lines. The -c option causes the history list to be" +#~ msgstr "" +#~ "N mostra les darreres N l?nies. L'opci? -c fa que es buide l'hist?ric" + +#~ msgid "" +#~ "cleared by deleting all of the entries. The `-w' option writes out the" +#~ msgstr "" +#~ "esborrant totes les seues entrades. L'opci? \"-w\" escriu l'hist?ric" + +#~ msgid "" +#~ "current history to the history file; `-r' means to read the file and" +#~ msgstr "" +#~ "actual al fitxer d'hist?ric; d'altra banda, l'opci? \"-r\" llegeix el" + +#~ msgid "append the contents to the history list instead. `-a' means" +#~ msgstr "" +#~ "fitxer i afegeix els continguts a l'hist?ric. L'opci? \"-a\" afegeix" + +#~ msgid "to append history lines from this session to the history file." +#~ msgstr "les l?nies de l'hist?ric d'aquesta sessi? al fitxer de l'hist?ric." + +#~ msgid "Argument `-n' means to read all history lines not already read" +#~ msgstr "" +#~ "Amb el par?metre \"-n\" es llegeix totes les l?nies de l'hist?ric que" + +#~ msgid "from the history file and append them to the history list. If" +#~ msgstr "encara no hagen sigut llegides del fitxer d'hist?ric i l'afegeix a" + +#~ msgid "FILENAME is given, then that is used as the history file else" +#~ msgstr "la llista de l'hist?ric. Si s'especifica FITXER, aquest es far?" + +#~ msgid "if $HISTFILE has a value, that is used, else ~/.bash_history." +#~ msgstr "" +#~ "servir com el fitxer d'hist?ric, altrament s'utilitzar? el valor de\n" +#~ "$HISTFILE, si en t?, i sin? es mirar? en ~/.bash_history." + +#~ msgid "If the -s option is supplied, the non-option ARGs are appended to" +#~ msgstr "Si s'especifica l'opci? \"-s\", els PAR?METRES que no s?n opcions" + +#~ msgid "the history list as a single entry. The -p option means to perform" +#~ msgstr "" +#~ "seran afegits a l'hist?ric com una entrada ?nica. Amb l'opci? \"-p\"" + +#~ msgid "" +#~ "history expansion on each ARG and display the result, without storing" +#~ msgstr "" +#~ "es realitza una expansi? de l'hist?ric en cada PAR?METRE i mostra el " + +#~ msgid "anything in the history list." +#~ msgstr "resultat, sense al?ar res en l'hist?ric." + +#~ msgid "Lists the active jobs. The -l option lists process id's in addition" +#~ msgstr "Llista les tasques actives. Amb l'opci? \"-l\" es llista els" + +#~ msgid "to the normal information; the -p option lists process id's only." +#~ msgstr "" +#~ "identificadors de proc?s a m?s de la informaci? normal; amb l'opci? \n" +#~ "\"-p\" es llista nom?s els identificadors de proc?s." + +#~ msgid "" +#~ "If -n is given, only processes that have changed status since the last" +#~ msgstr "Si s'especifica \"-n\", nom?s s'imprimeixen els processos que hagen" + +#~ msgid "" +#~ "notification are printed. JOBSPEC restricts output to that job. The" +#~ msgstr "" +#~ "canviat el seu estat despr?s del seu darrer av?s.\n" +#~ "ID_TASCA restringeix que es mostre una tasca particular." + +#~ msgid "-r and -s options restrict output to running and stopped jobs only," +#~ msgstr "" +#~ "Amb les opcions \"-r\" i \"-s\" es restringeix nom?s la impressi? de" + +#~ msgid "respectively. Without options, the status of all active jobs is" +#~ msgstr "les tasques actives i aturades, respectivamente. Sense cap opci?," + +#~ msgid "" +#~ "printed. If -x is given, COMMAND is run after all job specifications" +#~ msgstr "" +#~ "es mostren l'estat de totes les tasques actives Si s'especifica\n" +#~ "\"-X\" s'executa ORDRE despr?s de que totes les especificacions de" + +#~ msgid "" +#~ "that appear in ARGS have been replaced with the process ID of that job's" +#~ msgstr "" +#~ "tasca que apareixen en PAR?METRES hagen sigut reempla?ades pel proc?s" + +#~ msgid "process group leader." +#~ msgstr "ID del proc?s de la tasca mestressa del grup." + +#~ msgid "Removes each JOBSPEC argument from the table of active jobs." +#~ msgstr "" +#~ "Suprimeix cada par?metre de ID_TASCA de la taula de tasques actives." + +#~ msgid "Send the processes named by PID (or JOB) the signal SIGSPEC. If" +#~ msgstr "" +#~ "Envia el SENYAL als processos especificats pel seu PID o pel seu nom" + +#~ msgid "" +#~ "SIGSPEC is not present, then SIGTERM is assumed. An argument of `-l'" +#~ msgstr "de tasca. Si no s'especifica el SENYAL, aleshores s'assumeix" + +#~ msgid "lists the signal names; if arguments follow `-l' they are assumed to" +#~ msgstr "SIGTERM. Amb un par?metre de \"-l\" es llista els noms de les" + +#~ msgid "be signal numbers for which names should be listed. Kill is a shell" +#~ msgstr "" +#~ "senyals; si hi ha un par?metre despr?s de l'opci? \"-l\", es mostra\n" +#~ "el valor num?ric del n?mero de senyal. L'ordre ?kill? ?s " + +#~ msgid "builtin for two reasons: it allows job IDs to be used instead of" +#~ msgstr "integrada de l'int?rpret per dues raons: permet fer servir els" + +#~ msgid "process IDs, and, if you have reached the limit on processes that" +#~ msgstr "" +#~ "identificadors de tasca en voltes dels identificadors de proc?s i, si" + +#~ msgid "" +#~ "you can create, you don't have to start a process to kill another one." +#~ msgstr "" +#~ "no heu excedit el l?mit de processos que pots crear-hi, no heu\n" +#~ "d'iniciar un altre proc?s per a finalitzar un altre." + +#~ msgid "Each ARG is an arithmetic expression to be evaluated. Evaluation" +#~ msgstr "Cada PARAMETRE ?s una expressi? aritm?tica per a avaluar-se." + +#~ msgid "is done in long integers with no check for overflow, though division" +#~ msgstr "" +#~ "L'avaluaci? es fa amb enters long sense control de sobreeiximent, si" + +#~ msgid "by 0 is trapped and flagged as an error. The following list of" +#~ msgstr "" +#~ "b? la divisi? per 0 ?s capturada i marcada com un error. La seg?ent" + +#~ msgid "operators is grouped into levels of equal-precedence operators." +#~ msgstr "llista d'operadors s'agrupa dins del mateix nivell de preced?ncia." + +#~ msgid "The levels are listed in order of decreasing precedence." +#~ msgstr "La llista dels nivells est? ordenada de manera decreixent." + +#~ msgid "\t-, +\t\tunary minus, plus" +#~ msgstr "\t-, +\t\tunari minus, m?s" + +#~ msgid "\t!, ~\t\tlogical and bitwise negation" +#~ msgstr "\t!, ~\t\tnegaci? l?gica i bin?ria" + +#~ msgid "\t*, /, %\t\tmultiplication, division, remainder" +#~ msgstr "\t*, /, %\t\tmultiplicaci?, divisi?, restant" + +#~ msgid "\t+, -\t\taddition, subtraction" +#~ msgstr "\t+, -\t\taddici?, substracci?" + +#~ msgid "\t<<, >>\t\tleft and right bitwise shifts" +#~ msgstr "\t<<, >>\t\tdecalaments bin?ries dreta i esquerra" + +#~ msgid "\t<=, >=, <, >\tcomparison" +#~ msgstr "\t<=, >=, <, >\tcomparaci?" + +#~ msgid "\t==, !=\t\tequality, inequality" +#~ msgstr "\t==, !=\t\tequival?ncia, inequival?ncia" + +#~ msgid "\t&\t\tbitwise AND" +#~ msgstr "\t&\t\tAND binari" + +#~ msgid "\t^\t\tbitwise XOR" +#~ msgstr "\t^\t\tXOR binari" + +#~ msgid "\t|\t\tbitwise OR" +#~ msgstr "\t|\t\tOR binari" + +#~ msgid "\t&&\t\tlogical AND" +#~ msgstr "\t&&\t\tAND l?gic" + +#~ msgid "\t||\t\tlogical OR" +#~ msgstr "\t||\t\tOR l?gic" + +#~ msgid "\texpr ? expr : expr" +#~ msgstr "\texpr ? expr : expr" + +#~ msgid "\t\t\tconditional expression" +#~ msgstr "\t\t\texpressi? condicional" + +#~ msgid "\t=, *=, /=, %=," +#~ msgstr "\t=, *=, /=, %=," + +#~ msgid "\t+=, -=, <<=, >>=," +#~ msgstr "\t+=, -=, <<=, >>=," + +#~ msgid "\t&=, ^=, |=\tassignment" +#~ msgstr "\t&=, ^=, |=\tassignaci?" + +#~ msgid "is replaced by its value (coerced to a long integer) within" +#~ msgstr "" +#~ "nom de la variable ?s reempla?at pel seu valor (convertit for?osament" + +#~ msgid "an expression. The variable need not have its integer attribute" +#~ msgstr "" +#~ "en un enter long) dins d'una expressi?. No cal que la variable tinga" + +#~ msgid "turned on to be used in an expression." +#~ msgstr "" +#~ "activada el seu atribut d'enter per ser utilitzada en una expressi?." + +#~ msgid "Operators are evaluated in order of precedence. Sub-expressions in" +#~ msgstr "" +#~ "S'avaluen els operadors per ordre de preced?ncia. Les subexpressions" + +#~ msgid "parentheses are evaluated first and may override the precedence" +#~ msgstr "qu? que es troben dins dels par?ntesis s?n avaluades primer i poden" + +#~ msgid "rules above." +#~ msgstr "saltar-se les regles de preced?ncies esmentades." + +#~ msgid "If the last ARG evaluates to 0, let returns 1; 0 is returned" +#~ msgstr "Si el darrer PARAMETRE avalua a 0, let retorna 1; altrament, es" + +#~ msgid "otherwise." +#~ msgstr "retorna 1." + +#~ msgid "One line is read from the standard input, and the first word is" +#~ msgstr "" +#~ "Es llegeix una l?nia des de l'entrada de dades est?ndard, i s'assigna" + +#~ msgid "" +#~ "assigned to the first NAME, the second word to the second NAME, and so" +#~ msgstr "la primera paraula al primer NOM, la segona paraula al segon NOM, i" + +#~ msgid "" +#~ "on, with leftover words assigned to the last NAME. Only the characters" +#~ msgstr "aix? successivament, assignant-se les ?ltimes paraules als ?ltims" + +#~ msgid "found in $IFS are recognized as word delimiters. The return code is" +#~ msgstr "NOMs. Nom?s es reconeixen com a delimitadors els car?cters que es" + +#~ msgid "" +#~ "zero, unless end-of-file is encountered. If no NAMEs are supplied, the" +#~ msgstr "" +#~ "troben en $IFS. El codi de retorn ?s zero, mentre no es trobe el fi" + +#~ msgid "" +#~ "line read is stored in the REPLY variable. If the -r option is given," +#~ msgstr "" +#~ "de fitxer (EOF). Si no s'especifica NOMs, s'al?a la l?nia llegida en" + +#~ msgid "this signifies `raw' input, and backslash escaping is disabled. If" +#~ msgstr "" +#~ "la variable REPLY. Si s'especifica l'opci? \"-r\", aix? vol dir que es" + +#~ msgid "the `-p' option is supplied, the string supplied as an argument is" +#~ msgstr "" +#~ "tracta d'una entrada de dades directa (\"raw data\"), i es desactiva la" + +#~ msgid "" +#~ "output without a trailing newline before attempting to read. If -a is" +#~ msgstr "" +#~ "barra invertida d'escapada. Si s'especifica l'opci? \"-p\", la cadena" + +#~ msgid "" +#~ "supplied, the words read are assigned to sequential indices of ARRAY," +#~ msgstr "especificada com a par?metre es mostra sense salts de l?nia abans" + +#~ msgid "starting at zero. If -e is supplied and the shell is interactive," +#~ msgstr "" +#~ "d'intentar llegir-la. Si s'especifica l'opci? \"-a\", s'assignen les" + +#~ msgid "readline is used to obtain the line." +#~ msgstr "" +#~ "paraules llegides a ?n ?ndex seq?encial de MATRIU, incialitzant a\n" +#~ "zero. Si s'especifica l'opci? \"-e\" i l'int?rpret d'ordres ?s\n" +#~ "interactiu, es fa servir \"readline\" per a obtindre la l?nia." + +#~ msgid "is omitted, the return status is that of the last command." +#~ msgstr "N. Si s'omet N, l'estat del retorn ?s el de la darrera ordre." + +#~ msgid " -a Mark variables which are modified or created for export." +#~ msgstr "" +#~ " -a Marca les variables modificades o creades per a exportar-les." + +#~ msgid " -b Notify of job termination immediately." +#~ msgstr " -b Avisa immediatament de la finalitzaci? d'una tasca." + +#~ msgid " -e Exit immediately if a command exits with a non-zero status." +#~ msgstr "" +#~ " -e Ix immediatament si una ordre ix amb un estat distint de zero." + +#~ msgid " -f Disable file name generation (globbing)." +#~ msgstr " -f Desactiva la generaci? de noms de fitxer (globbing)." + +#~ msgid " -h Remember the location of commands as they are looked up." +#~ msgstr " -h Recorda la ubicaci? de les ordres quan siguen buscades." + +#~ msgid "" +#~ " -i Force the shell to be an \"interactive\" one. Interactive shells" +#~ msgstr "" +#~ " -i For?a l'int?rpret d'ordres el mode \"interactiu\". Aquest mode" + +#~ msgid " always read `~/.bashrc' on startup." +#~ msgstr " llegeix sempre ?~/.bashrc? en iniciar-se." + +#~ msgid " -k All assignment arguments are placed in the environment for a" +#~ msgstr "" +#~ " -k Ubica totes les assignacions de par?metres en l'entorn per una" + +#~ msgid " command, not just those that precede the command name." +#~ msgstr "" +#~ " ordre, no tan sols aquells que precedeix del nom de l'ordre." + +#~ msgid " -m Job control is enabled." +#~ msgstr " -m Activa el control de tasques." + +#~ msgid " -n Read commands but do not execute them." +#~ msgstr " -n Llegeix les ordres per? no els executa." + +#~ msgid " -o option-name" +#~ msgstr " -o nom-opci?" + +#~ msgid " Set the variable corresponding to option-name:" +#~ msgstr " Especifiqueu la variable corresponent per a nom-opci?:" + +#~ msgid " allexport same as -a" +#~ msgstr " allexport el mateix que -a" + +#~ msgid " braceexpand same as -B" +#~ msgstr " braceexpand el mateix que -B" + +#~ msgid " emacs use an emacs-style line editing interface" +#~ msgstr "" +#~ " emacs utilitza una interfa? d'edici? de l?nia de\n" +#~ " l'estil d'emacs." + +#~ msgid " errexit same as -e" +#~ msgstr " errexit el mateix que -e" + +#~ msgid " hashall same as -h" +#~ msgstr " hashall el mateix que -h" + +#~ msgid " histexpand same as -H" +#~ msgstr " histexpand el mateix que -H" + +#~ msgid " ignoreeof the shell will not exit upon reading EOF" +#~ msgstr "" +#~ " ignoreeof l'int?rpret d'ordres no terminar? fins llegir\n" +#~ " el fi de fitxer (EOF)." + +#~ msgid " interactive-comments" +#~ msgstr " interactive-comments" + +#~ msgid "" +#~ " allow comments to appear in interactive commands" +#~ msgstr "" +#~ " permet mostrar-se comentaris en les ordres\n" +#~ " interactives" + +#~ msgid " keyword same as -k" +#~ msgstr " keyword el mateix que -k" + +#~ msgid " monitor same as -m" +#~ msgstr " monitor el mateix que -m" + +#~ msgid " noclobber same as -C" +#~ msgstr " noclobber el mateix que -C" + +#~ msgid " noexec same as -n" +#~ msgstr " noexec el mateix que -n" + +#~ msgid " noglob same as -f" +#~ msgstr " noglob el mateix que -f" + +#~ msgid " notify save as -b" +#~ msgstr " notify el mateix que -b" + +#~ msgid " nounset same as -u" +#~ msgstr " nounset el mateix que -u" + +#~ msgid " onecmd same as -t" +#~ msgstr " onecmd el mateix que -t" + +#~ msgid " physical same as -P" +#~ msgstr " physical el mateix que -P" + +#~ msgid "" +#~ " posix change the behavior of bash where the default" +#~ msgstr "" +#~ " posix canvia el comportament de bash en l'operaci?" + +#~ msgid "" +#~ " operation differs from the 1003.2 standard to" +#~ msgstr " per defecte de l'est?ndard 1003.2 per a" + +#~ msgid " match the standard" +#~ msgstr " coincidir amb l'est?ndard" + +#~ msgid " privileged same as -p" +#~ msgstr " privileged el mateix que -p" + +#~ msgid " verbose same as -v" +#~ msgstr " verbose el mateix que -v" + +#~ msgid " vi use a vi-style line editing interface" +#~ msgstr "" +#~ " vi utilitza una intefa? d'edici? de l?nia de\n" +#~ " l'estil de ?vi?" + +#~ msgid " xtrace same as -x" +#~ msgstr " xtrace el mateix que -x" + +#~ msgid "" +#~ " -p Turned on whenever the real and effective user ids do not match." +#~ msgstr "" +#~ " -p S'activa quan no coincideixen els identificadors d'usuari real \n" +#~ " i efectiu." + +#~ msgid " Disables processing of the $ENV file and importing of shell" +#~ msgstr " Desactiva el proc?s del fitxer $ENV i la importaci? de les" + +#~ msgid "" +#~ " functions. Turning this option off causes the effective uid and" +#~ msgstr " funcions de l'int?rpret d'ordres. Si es desactiva aquesta" + +#~ msgid " gid to be set to the real uid and gid." +#~ msgstr "" +#~ " opci?, s'estableix l'identificador d'usuari (uid) i\n" +#~ " l'identificador de grup (gid) efectius per l'uid i gid reals." + +#~ msgid " -t Exit after reading and executing one command." +#~ msgstr " -t Ix despr?s de llegir i executar una ordre." + +#~ msgid " -u Treat unset variables as an error when substituting." +#~ msgstr "" +#~ " -u Considerar les variables no inicialitzades com un error quan\n" +#~ " se substitu?sca." + +#~ msgid " -v Print shell input lines as they are read." +#~ msgstr "" +#~ " -v Imprimeix les l?nies d'entrada de dades de l'int?rpret\n" +#~ " d'ordres mentre es llegeixen." + +#~ msgid " -x Print commands and their arguments as they are executed." +#~ msgstr "" +#~ " -x Imprimeix les ordres i els seus par?metres mentre s'executen." + +#~ msgid " -B the shell will perform brace expansion" +#~ msgstr " -B l'int?rpret d'ordres realitzar? una expansi? de claus." + +#~ msgid " -H Enable ! style history substitution. This flag is on" +#~ msgstr " -H Activa l'estil ! en la substituci? de l'hist?ric. Aquest" + +#~ msgid " by default." +#~ msgstr " senyalador est? marcat per defecte." + +#~ msgid " -C If set, disallow existing regular files to be overwritten" +#~ msgstr " -C Evita que els fitxers regulars siguen sobreescrits per la" + +#~ msgid " by redirection of output." +#~ msgstr " redirecci? de l'eixida de dades." + +#~ msgid " -P If set, do not follow symbolic links when executing commands" +#~ msgstr "" +#~ " -P No rastreja els enlla?os simb?lics quan s'executa ordres com " + +#~ msgid " such as cd which change the current directory." +#~ msgstr " per exemple cd que canvia el directori actual." + +#~ msgid "Using + rather than - causes these flags to be turned off. The" +#~ msgstr "" +#~ "Si feu servir el signe \"+\" en voltes del signe \"-\" desmarcareu els\n" +#~ "senyaladors. Tamb? es poden utilitzar els senyaladors des de la" + +#~ msgid "flags can also be used upon invocation of the shell. The current" +#~ msgstr "invocaci? de l'int?rpret d'ordres. Es pot trobar la configuraci?" + +#~ msgid "" +#~ "set of flags may be found in $-. The remaining n ARGs are positional" +#~ msgstr "actual dels senyaladors en $-. Els restants PAR?METRES n s?n" + +#~ msgid "parameters and are assigned, in order, to $1, $2, .. $n. If no" +#~ msgstr "" +#~ "par?metres posicionals i estan assignats, en ordre, a $1, $2, ... $n." + +#~ msgid "ARGs are given, all shell variables are printed." +#~ msgstr "" +#~ "Si no s'especifiquen els PAR?METRES, es mostraran totes les variables de\n" +#~ "l'int?rpret d'ordres." + +#~ msgid "For each NAME, remove the corresponding variable or function. Given" +#~ msgstr "" +#~ "Esborra la variable o funci? corresponent per a cada NOM. Amb l'opci? " + +#~ msgid "the `-v', unset will only act on variables. Given the `-f' flag," +#~ msgstr "" +#~ "\"-v\", ?unset? opera nom?s en les variables. Amb el senyalador \"-f\"," + +#~ msgid "unset will only act on functions. With neither flag, unset first" +#~ msgstr "nom?s en funcions. Amb cap dels dos senyaladors, ?unset? primer" + +#~ msgid "tries to unset a variable, and if that fails, then tries to unset a" +#~ msgstr "" +#~ "intentar? eliminar una variable, i si en falla, aleshores ho intenta" + +#~ msgid "" +#~ "function. Some variables (such as PATH and IFS) cannot be unset; also" +#~ msgstr "" +#~ "amb una funci?. Algunes variables (aix? com CAMI_ACCES i IFS) no es" + +#~ msgid "see readonly." +#~ msgstr "poden esborrar (veure l'opci? \"readonly\")." + +#~ msgid "NAMEs are marked for automatic export to the environment of" +#~ msgstr "" +#~ "S'assenyalen els NOMs per a exportar-los autom?ticament a l'entorn de " + +#~ msgid "subsequently executed commands. If the -f option is given," +#~ msgstr "" +#~ "les ordres executades subseq?entment. Si s'especifica l'opci? \"-f\", " + +#~ msgid "the NAMEs refer to functions. If no NAMEs are given, or if `-p'" +#~ msgstr "" +#~ "els NOMs fan refer?ncia a les funcions. Si no s'especifica NOMs, o si " + +#~ msgid "is given, a list of all names that are exported in this shell is" +#~ msgstr "" +#~ "s'especifica \"-p\", es mostra una llista de tots els noms exportats cap " + +#~ msgid "printed. An argument of `-n' says to remove the export property" +#~ msgstr "aquest int?rpret d'ordres. Amb \"-n\" s'esborra les propietats " + +#~ msgid "from subsequent NAMEs. An argument of `--' disables further option" +#~ msgstr "d'exportaci? per als NOMs subseq?ents. Amb \"--\" s'atura el " + +#~ msgid "processing." +#~ msgstr "tractament subseq?ent de les opcions." + +#~ msgid "" +#~ "The given NAMEs are marked readonly and the values of these NAMEs may" +#~ msgstr "" +#~ "Els NOMs especificats es marquen amb l'atribut de nom?s lectura, els" + +#~ msgid "not be changed by subsequent assignment. If the -f option is given," +#~ msgstr "" +#~ "valors dels quals no poden ser canviats per assignacions subseq?ents." + +#~ msgid "then functions corresponding to the NAMEs are so marked. If no" +#~ msgstr "" +#~ "Si s'especifica l'opci? \"-f\", aleshores les funcions corresponents als" + +#~ msgid "" +#~ "arguments are given, or if `-p' is given, a list of all readonly names" +#~ msgstr "NOMs tamb? se'n marquen. Si no s'especifica par?metres, o si" + +#~ msgid "" +#~ "is printed. An argument of `-n' says to remove the readonly property" +#~ msgstr "" +#~ "s'especifica \"-p\", es mostra una llista de tots els noms amb l'atribut" + +#~ msgid "from subsequent NAMEs. The `-a' option means to treat each NAME as" +#~ msgstr "de nom?s lectura. Amb l'opci? \"-n\" s'esborra l'atribut de nom?s" + +#~ msgid "an array variable. An argument of `--' disables further option" +#~ msgstr "" +#~ "lectura pels NOMs subseq?ents. Amb \"-a\" tracta cada NOM com una\n" +#~ "variable de matriu. Amb el par?metre \"--\" s'atura el tractament\n" +#~ "subseq?ent de les opcions." + +#~ msgid "not given, it is assumed to be 1." +#~ msgstr "Si no s'especifica N, s'assumeix el valor com a 1." + +#~ msgid "Read and execute commands from FILENAME and return. The pathnames" +#~ msgstr "Llegeix i executa ordres de FITXER i retorna. Es fan servir els" + +#~ msgid "in $PATH are used to find the directory containing FILENAME." +#~ msgstr "camins d'acc?s de $PATH per a trobar el directori que cont? FITXER." + +#~ msgid "Suspend the execution of this shell until it receives a SIGCONT" +#~ msgstr "" +#~ "Susp?n l'execuci? d'aquest int?rpret d'ordres fins que reba una senyal" + +#~ msgid "signal. The `-f' if specified says not to complain about this" +#~ msgstr "" +#~ "SIGCONT. Si s'especifica \"-f\" no es mostrar? cap missatge d'av?s de" + +#~ msgid "being a login shell if it is; just suspend anyway." +#~ msgstr "" +#~ "si l'int?rpret ?s un d'inici de sessi? (shell login); simplement ho susp?" +#~ "n de\n" +#~ "qualsevol manera." + +#~ msgid "Exits with a status of 0 (trueness) or 1 (falseness) depending on" +#~ msgstr "Ix amb l'estat de 0 (cert) o 1 (fals) depenent de l'avaluaci? de " + +#~ msgid "the evaluation of EXPR. Expressions may be unary or binary. Unary" +#~ msgstr "l'EXPRESSIO. Les expressions poden ser un?ries o bin?ries. Les" + +#~ msgid "expressions are often used to examine the status of a file. There" +#~ msgstr "" +#~ "expressions un?ries sovint es fan servir per a examinar l'estat d'un" + +#~ msgid "are string operators as well, and numeric comparison operators." +#~ msgstr "fitxer. Tamb? hi ha operadors de cadenes i de comparaci? num?rica." + +#~ msgid "File operators:" +#~ msgstr "Operadors de fitxer:" + +#~ msgid " -b FILE True if file is block special." +#~ msgstr " -b FITXER Cert si el fitxer ?s un bloc especial." + +#~ msgid " -c FILE True if file is character special." +#~ msgstr " -c FITXER Cert si el fitxer ?s un car?cter especial." + +#~ msgid " -d FILE True if file is a directory." +#~ msgstr " -d FITXER Cert si el fitxer ?s un directori." + +#~ msgid " -e FILE True if file exists." +#~ msgstr " -e FITXER Cert si el fitxer existeix." + +#~ msgid " -f FILE True if file exists and is a regular file." +#~ msgstr "" +#~ " -f FITXER Cert si el fitxer existeix i ?s un fitxer normal." + +#~ msgid " -g FILE True if file is set-group-id." +#~ msgstr " -g FITXER Cert si el fitxer ?s set-group-id." + +#~ msgid " -h FILE True if file is a symbolic link. Use \"-L\"." +#~ msgstr "" +#~ " -h FITXER Cert si el fitxer ?s un enlla? simb?lic.\n" +#~ " Utilitzeu \"-L\"." + +#~ msgid " -L FILE True if file is a symbolic link." +#~ msgstr " -L FITXER Cert si el fitxer ?s un enlla? simb?lic." + +#~ msgid " -k FILE True if file has its \"sticky\" bit set." +#~ msgstr "" +#~ " -k FITXER Cert si el fitxer t? activat el seu bit \"sticky\"." + +#~ msgid " -p FILE True if file is a named pipe." +#~ msgstr " -p FITXER Cert si el fitxer ?s un conducte anomenat." + +#~ msgid " -r FILE True if file is readable by you." +#~ msgstr " -r FITXER Cert si podeu llegir el fitxer." + +#~ msgid " -s FILE True if file exists and is not empty." +#~ msgstr " -s FITXER Cert si el fitxer existeix i no ?s buit." + +#~ msgid " -S FILE True if file is a socket." +#~ msgstr " -S FITXER Cert si el fitxer ?s un s?col." + +#~ msgid " -t FD True if FD is opened on a terminal." +#~ msgstr " -t FD Cert si FD ?s obert en una terminal." + +#~ msgid " -u FILE True if the file is set-user-id." +#~ msgstr " -u FITXER Cert si el fitxer ?s set-user-id." + +#~ msgid " -w FILE True if the file is writable by you." +#~ msgstr " -w FITXER Cert si podeu escriure el fitxer." + +#~ msgid " -x FILE True if the file is executable by you." +#~ msgstr " -w FITXER Cert si podeu escriure el fitxer." + +#~ msgid " -O FILE True if the file is effectively owned by you." +#~ msgstr " -O FITXER Cert si sou el propietari del fitxer." + +#~ msgid "" +#~ " -G FILE True if the file is effectively owned by your group." +#~ msgstr " -G FITXER Cert si sou del grup propietari del fitxer." + +#~ msgid " FILE1 -nt FILE2 True if file1 is newer than (according to" +#~ msgstr "" +#~ " FITXER1 -nt FITXER2\n" +#~ " Cert si fitxer1 ?s tan recent com fitxer2" + +#~ msgid " modification date) file2." +#~ msgstr " (d'acord amb les dates d'?ltima modificaci?)." + +#~ msgid " FILE1 -ot FILE2 True if file1 is older than file2." +#~ msgstr "" +#~ " FITXER1 -ot FITXER2\n" +#~ " Cert si fitxer1 ?s tan antic com fitxer2." + +#~ msgid " FILE1 -ef FILE2 True if file1 is a hard link to file2." +#~ msgstr "" +#~ " FITXER1 -ef FITXER2\n" +#~ " Cert si fitxer 1 ?s un enlla? fort cap a fitxer2." + +#~ msgid "String operators:" +#~ msgstr "Operadors de cadena:" + +#~ msgid " -z STRING True if string is empty." +#~ msgstr " -z CADENA Cert si la cadena ?s bu?da." + +#~ msgid " -n STRING" +#~ msgstr " -n CADENA" + +#~ msgid " STRING True if string is not empty." +#~ msgstr " CADENA Cert si la cadena no ?s bu?da." + +#~ msgid " STRING1 = STRING2" +#~ msgstr " CADENA1 = CADENA2" + +#~ msgid " True if the strings are equal." +#~ msgstr " Cert si les cadenes s?n iguals." + +#~ msgid " STRING1 != STRING2" +#~ msgstr " CADENA1 != CADENA2" + +#~ msgid " True if the strings are not equal." +#~ msgstr " Cert si les cadenes s?n diferents." + +#~ msgid " STRING1 < STRING2" +#~ msgstr " CADENA1 < CADENA2" + +#~ msgid "" +#~ " True if STRING1 sorts before STRING2 lexicographically" +#~ msgstr "" +#~ " Cert si CADENA1 precedeix alfab?ticament CADENA2." + +#~ msgid " STRING1 > STRING2" +#~ msgstr " CADENA1 > CADENA2" + +#~ msgid "" +#~ " True if STRING1 sorts after STRING2 lexicographically" +#~ msgstr "" +#~ " Cert si CADENA1 poscedeix alfab?ticament CADENA2." + +#~ msgid "Other operators:" +#~ msgstr "Altres operadors:" + +#~ msgid " ! EXPR True if expr is false." +#~ msgstr " ! EXPR Cert si l'expressi? ?s falsa." + +#~ msgid " EXPR1 -a EXPR2 True if both expr1 AND expr2 are true." +#~ msgstr " EXPR1 -a EXPR2 Cert si ambdues expressions s?n certes." + +#~ msgid " EXPR1 -o EXPR2 True if either expr1 OR expr2 is true." +#~ msgstr " EXPR1 -o EXPR2 Cert si cap d'ambdues expresi?ns s?n certes." + +#~ msgid " arg1 OP arg2 Arithmetic tests. OP is one of -eq, -ne," +#~ msgstr " arg1 OP arg2 C?lcul aritm?tic. OP ?s una de les seg?ents" + +#~ msgid " -lt, -le, -gt, or -ge." +#~ msgstr " opcions: -eq, -ne, -lt, -le, -gt, or -ge." + +#~ msgid "Arithmetic binary operators return true if ARG1 is equal, not-equal," +#~ msgstr "Els operadors aritm?tics binaris retornen un valor de cert si " + +#~ msgid "" +#~ "less-than, less-than-or-equal, greater-than, or greater-than-or-equal" +#~ msgstr "" +#~ "PARAMETRE1 ?s 'igual', 'diferent', 'menys que', 'menys o igual que'," + +#~ msgid "than ARG2." +#~ msgstr "'m?s que', o 'm?s o igual que', el PARAMETRE2." + +#~ msgid "This is a synonym for the \"test\" builtin, but the last" +#~ msgstr "Es tracta del sin?nim de l'ordre integrada ?test?, per? el darrer " + +#~ msgid "the shell." +#~ msgstr "processos des de l'int?rpret d'ordres." + +#~ msgid "The command ARG is to be read and executed when the shell receives" +#~ msgstr "L'ordre especificada en PARAMETRE s'ha de llegir i executar quan" + +#~ msgid "signal(s) SIGNAL_SPEC. If ARG is absent all specified signals are" +#~ msgstr "l'int?rpret d'ordres rep alguna senyal de SIGNAL_SPEC. Si s'omet" + +#~ msgid "reset to their original values. If ARG is the null string each" +#~ msgstr "PARAMETRE s'inicialitzen totes les senyals especificades als seus" + +#~ msgid "SIGNAL_SPEC is ignored by the shell and by the commands it invokes." +#~ msgstr "corresponents valors originals Si el PARAMETRE ?s una cadena buida" + +#~ msgid "If SIGNAL_SPEC is EXIT (0) the command ARG is executed on exit from" +#~ msgstr "" +#~ "l'int?rpret, i les ordres que els invoquen, ignoren cada SIGNAL_SPEC." + +#~ msgid "the shell. If SIGNAL_SPEC is DEBUG, ARG is executed after every" +#~ msgstr "Si s'especifica SIGNAL_SPEC com EXIT(0), s'executa l'ordre" + +#~ msgid "command. If ARG is `-p' then the trap commands associated with" +#~ msgstr "" +#~ "especificada en PARAMETRE despr?s de la finalitzaci? de la sessi? de\n" +#~ "l'int?rpret d'ordres. Si s'especifica DEBUG en SIGNAL_SPEC, s'executa" + +#~ msgid "each SIGNAL_SPEC are displayed. If no arguments are supplied or if" +#~ msgstr "" +#~ "l'ordre especificada en PARAMETRE despr?s de la finalitzaci? de la\n" +#~ "sessi? de l'int?rpret d'ordres. Si s'especifica \"-p\" en PARAMETRE" + +#~ msgid "only `-p' is given, trap prints the list of commands associated with" +#~ msgstr "" +#~ "aleshores es mostren les ordres de ?trap? associades amb cadascuna de\n" +#~ "les especificacions del SENYAL. Si no s'especifica cap par?metre," + +#~ msgid "" +#~ "each signal number. SIGNAL_SPEC is either a signal name in " +#~ msgstr "" +#~ "?trap? mostra una llista d'ordres associades amb cadascun dels n?meros\n" +#~ "de senyal. L'especificaci? del SENYAL pot ser b? un nom de senyal" + +#~ msgid "" +#~ "or a signal number. `trap -l' prints a list of signal names and their" +#~ msgstr "" +#~ "especificat en , b? tindre un valor num?ric. L'ordre ?trap\n" +#~ "-l? mostra una llista dels noms de senyal i els seus corresponents" + +#~ msgid "corresponding numbers. Note that a signal can be sent to the shell" +#~ msgstr "n?meros. Observeu que una senyal pot ser lliurada a l'int?rpret" + +#~ msgid "with \"kill -signal $$\"." +#~ msgstr "d'ordres amb ?kill -signal $$?." + +#~ msgid "For each NAME, indicate how it would be interpreted if used as a" +#~ msgstr "" +#~ "Per a cada NOM, indica com s'hauria d'interpretar si es fa servir com " + +#~ msgid "If the -t option is used, returns a single word which is one of" +#~ msgstr "" +#~ "Si es fa servir l'opci? \"-t\", retorna una paraula ?nica que pot ser" + +#~ msgid "" +#~ "`alias', `keyword', `function', `builtin', `file' or `', if NAME is an" +#~ msgstr "" +#~ "\"alias\", \"keyword\", \"function\", \"builtin\", \"file\" o \"\", si un " +#~ "NOM ?s" + +#~ msgid "" +#~ "alias, shell reserved word, shell function, shell builtin, disk file," +#~ msgstr "" +#~ "un ?lies, una paraula reservada, una funci?, una ordre integrada, un" + +#~ msgid "or unfound, respectively." +#~ msgstr "fitxer del disc o no trobat, respectivament." + +#~ msgid "If the -p flag is used, either returns the name of the disk file" +#~ msgstr "" +#~ "Si es fa servir l'opci? \"-p\", o b? retorna el nom del fitxer del disc" + +#~ msgid "that would be executed, or nothing if -t would not return `file'." +#~ msgstr "" +#~ "que es podria executar, o b? no retorna res si l'opci? \"-t\" no\n" +#~ "retornara \"file\"." + +#~ msgid "If the -a flag is used, displays all of the places that contain an" +#~ msgstr "" +#~ "Si es fa servir el senyalador \"-a\", mostra totes les ubicacions que" + +#~ msgid "" +#~ "executable named `file'. This includes aliases and functions, if and" +#~ msgstr "" +#~ "contenen un executable anomenat \"file\". Aix? inclou per a ?lies i" + +#~ msgid "only if the -p flag is not also used." +#~ msgstr "" +#~ "funcions si, i nom?s si, el senyalador \"-p\" tampoc no es fa servir." + +#~ msgid "Type accepts -all, -path, and -type in place of -a, -p, and -t," +#~ msgstr "" +#~ "L'ordre integrada ?type? accepta que s'especifique \"-all\", \"-path\", i" + +#~ msgid "respectively." +#~ msgstr "" +#~ "\"-type\", per a les opcions de \"-a\", \"-p\", i \"-t\", respectivament." + +#~ msgid "Ulimit provides control over the resources available to processes" +#~ msgstr "L'ordre integrada ?ulimit? inclou el control sobre els recursos" + +#~ msgid "started by the shell, on systems that allow such control. If an" +#~ msgstr "disponibles als processos iniciats per l'int?rpret, en sistemes que" + +#~ msgid "option is given, it is interpreted as follows:" +#~ msgstr "" +#~ "ho permeten. Si s'especifica una opci?, ser? especificada com\n" +#~ "segueix:" + +#~ msgid " -S\tuse the `soft' resource limit" +#~ msgstr " -S\tutilitza el l?mit dels recursos l?gics" + +#~ msgid " -H\tuse the `hard' resource limit" +#~ msgstr " -H\tutilitza el l?mit dels recursos de maquinari" + +#~ msgid " -a\tall current limits are reported" +#~ msgstr " -a\tmostra tots els l?mits actuals" + +#~ msgid " -c\tthe maximum size of core files created" +#~ msgstr "" +#~ " -c\tlimita la grand?ria m?xima dels fitxers de bolcat de mem?ria" + +#~ msgid " -d\tthe maximum size of a process's data segment" +#~ msgstr " -d\tlimita la grand?ria m?xima d'un segment de proc?s de dades" + +#~ msgid " -m\tthe maximum resident set size" +#~ msgstr " -m\tlimita la grand?ria m?xima d'una variable resident" + +#~ msgid " -s\tthe maximum stack size" +#~ msgstr " -s\tlimita la grand?ria m?xima de la pila" + +#~ msgid " -t\tthe maximum amount of cpu time in seconds" +#~ msgstr " -t\tlimita el temps m?xim d'an?lisi per la UCP en segons" + +#~ msgid " -f\tthe maximum size of files created by the shell" +#~ msgstr " -f\tlimita la grand?ria d'un fitxer creat per l'int?rpret" + +#~ msgid " -p\tthe pipe buffer size" +#~ msgstr " -p\tlimita la grand?ria de la mem?ria interm?dia d'un conducte" + +#~ msgid " -n\tthe maximum number of open file descriptors" +#~ msgstr " -n\tlimita el nombre m?xim utilitzable de descriptors de fitxer" + +#~ msgid " -u\tthe maximum number of user processes" +#~ msgstr " -u\tlimita el nombre m?xim de processos per usuari" + +#~ msgid " -v\tthe size of virtual memory" +#~ msgstr " -v\tlimita la grand?ria de la mem?ria virtual" + +#~ msgid "If LIMIT is given, it is the new value of the specified resource." +#~ msgstr "Si s'especifica LIMIT, aquest ser? el nou valor del recurs " + +#~ msgid "Otherwise, the current value of the specified resource is printed." +#~ msgstr "especificat. Altrament, mostra el valor actual del recurs" + +#~ msgid "If no option is given, then -f is assumed. Values are in 1k" +#~ msgstr "especificat. Si no s'especifica cap opci?, aleshores s'assumeix" + +#~ msgid "increments, except for -t, which is in seconds, -p, which is in" +#~ msgstr "" +#~ "l'opci? \"-f\". Els valors s'especifiquen en increments de 1k, tret del" + +#~ msgid "increments of 512 bytes, and -u, which is an unscaled number of" +#~ msgstr "" +#~ "cas de l'opci? \"-t\", que es en segons, de l'opci? \"-p\", que es tracta" + +#~ msgid "processes." +#~ msgstr "" +#~ "d'increments de 512 octets, i de l'opci? \"-u\", que ?s un recompte\n" +#~ "num?ric de processos." + +#~ msgid "" +#~ "The user file-creation mask is set to MODE. If MODE is omitted, or if" +#~ msgstr "" +#~ "La m?scara dels modes d'acc?s durant la creaci? d'un fitxer ?s MODE." + +#~ msgid "" +#~ "`-S' is supplied, the current value of the mask is printed. The `-S'" +#~ msgstr "" +#~ "Si s'omet MODE, o si s'especifica l'opci? \"-S\", es mostra el valor" + +#~ msgid "" +#~ "option makes the output symbolic; otherwise an octal number is output." +#~ msgstr "" +#~ "actual de la m?scara. Amb l'opci? \"-S\" es mostra de manera simb?lica;" + +#~ msgid "If MODE begins with a digit, it is interpreted as an octal number," +#~ msgstr "" +#~ "d'altra manera l'eixida de dades ?s n?meros octals. Si MODE comen?a" + +#~ msgid "" +#~ "otherwise it is a symbolic mode string like that accepted by chmod(1)." +#~ msgstr "" +#~ "per un d?git, aquest ser? interpretat com un n?mero octal, altrament" + +#~ msgid "" +#~ "Wait for the specified process and report its termination status. If" +#~ msgstr "s'accepten els valors simb?lics de ?chmod? (veure ?man?, secci? 1)." + +#~ msgid "N is not given, all currently active child processes are waited for," +#~ msgstr "Espera la fi d'execuci? d'un proc?s especificat i informa el seu" + +#~ msgid "and the return code is zero. N may be a process ID or a job" +#~ msgstr "" +#~ "estat de fi d'execuci?. Si no s'especifica N, s'espera per tots els" + +#~ msgid "specification; if a job spec is given, all processes in the job's" +#~ msgstr "" +#~ "processos fills actuals, i el codi de retorn ?s zero. La variable N" + +#~ msgid "pipeline are waited for." +#~ msgstr "" +#~ "pot ser un IDentificador de proc?s o l'especificaci? d'una tasca; si\n" +#~ "s'especifica una especificaci? de tasca, s'esperen per tots els\n" +#~ "processos dels conductes." + +#~ msgid "and the return code is zero. N is a process ID; if it is not given," +#~ msgstr "i el codi de retorn ?s zero. El par?metre N ?s un IDentificador de" + +#~ msgid "all child processes of the shell are waited for." +#~ msgstr "" +#~ "proc?s; si aquest no s'hi especifica, s'espera per tots els processos\n" +#~ "fills de l'int?rpret d'ordres." + +#~ msgid "The `for' loop executes a sequence of commands for each member in a" +#~ msgstr "" +#~ "L'ordre de repetici? ?for? executa una seq??ncia d'ordres per a cada" + +#~ msgid "" +#~ "list of items. If `in WORDS ...;' is not present, then `in \"$@\"' is" +#~ msgstr "" +#~ "item de la llista. Si no s'especifica l'expressi? \"in WORDS...;\"," + +#~ msgid "" +#~ "assumed. For each element in WORDS, NAME is set to that element, and" +#~ msgstr "" +#~ "aleshores es fa servir el contingut de \"$@\". Per a cada element que" + +#~ msgid "the COMMANDS are executed." +#~ msgstr "" +#~ "hi ha en PARAULES, s'inicialitza NOM a aquest element, i s'executen\n" +#~ "les ORDRES." + +#~ msgid "The WORDS are expanded, generating a list of words. The" +#~ msgstr "S'expandeix les PARAULES, generant-se una llista de paraules. Es" + +#~ msgid "set of expanded words is printed on the standard error, each" +#~ msgstr "mostra el conjunt de les paraules expandides per l'eixida d'error" + +#~ msgid "preceded by a number. If `in WORDS' is not present, `in \"$@\"'" +#~ msgstr "" +#~ "est?ndard, precedit d'un n?mero. Si no s'especifica l'expressi? \"in" + +#~ msgid "is assumed. The PS3 prompt is then displayed and a line read" +#~ msgstr "WORDS\", es fa servir el contingut de \"$@\". Aleshores s'exhibeix" + +#~ msgid "from the standard input. If the line consists of the number" +#~ msgstr "l'indicador de PS3 i es llegeix la l?nia des de l'entrada de dades" + +#~ msgid "corresponding to one of the displayed words, then NAME is set" +#~ msgstr "" +#~ "est?ndard. Si la l?nia consisteix d'un n?mero corresponent a una de" + +#~ msgid "to that word. If the line is empty, WORDS and the prompt are" +#~ msgstr "les paraules exhibides, aleshores el valor de la variable NOM" + +#~ msgid "redisplayed. If EOF is read, the command completes. Any other" +#~ msgstr "" +#~ "s'inicialitza amb aquesta paraula. Si la l?nia ?s buida, la variable" + +#~ msgid "value read causes NAME to be set to null. The line read is saved" +#~ msgstr "" +#~ "PARAULES i l'indicador s'exhibeixen una altra vegada. Si es detecta" + +#~ msgid "in the variable REPLY. COMMANDS are executed after each selection" +#~ msgstr "" +#~ "un la fi del fitxer (EOF), l'ordre termina. Si es llegeix qualsevol" + +#~ msgid "until a break or return command is executed." +#~ msgstr "" +#~ "altre valor, s'inicialitzar? el valor de NOM com nul. La l?nia\n" +#~ "llegida s'al?a en la variable REPLY. Les ordres al?ades en el\n" +#~ "par?metre ORDRES s'executa despr?s de cada selecci? fins que s'execute\n" +#~ "una ordre de ?break? o ?return?." + +#~ msgid "`|' is used to separate multiple patterns." +#~ msgstr "" +#~ "concord?ncia del valor en PARAULA amb del valor en PATRO. Es fa\n" +#~ "servir el signe \"|\" per a separar m?ltiples patrons." + +#~ msgid "" +#~ "The if COMMANDS are executed. If the exit status is zero, then the then" +#~ msgstr "S'executen els ORDRES ?if?. Si l'estat d'eixida ?s zero, aleshores" + +#~ msgid "" +#~ "COMMANDS are executed. Otherwise, each of the elif COMMANDS are executed" +#~ msgstr "" +#~ "s'executen les ORDRES ?then?. Altrament, s'executen cadascun de les" + +#~ msgid "" +#~ "in turn, and if the exit status is zero, the corresponding then COMMANDS" +#~ msgstr "ORDRES de ?elif?, i si l'estat d'eixida ?s zero, les corresponents" + +#~ msgid "" +#~ "are executed and the if command completes. Otherwise, the else COMMANDS" +#~ msgstr "ORDRES de ?else? s'executen, si n'hi han. L'estat d'eixida ?s el" + +#~ msgid "" +#~ "are executed, if present. The exit status is the exit status of the last" +#~ msgstr "corresponent de la darrera ordre executada, o zero si no hi ha cap" + +#~ msgid "command executed, or zero if no condition tested true." +#~ msgstr "condici? resolta com a certa." + +#~ msgid "`while' COMMANDS has an exit status of zero." +#~ msgstr "de la instrucci? ?while? tinga un estat d'eixida igual a zero." + +#~ msgid "`until' COMMANDS has an exit status which is not zero." +#~ msgstr "de la instrucci? ?until? tinga un estat d'eixida que no siga zero." + +#~ msgid "Create a simple command invoked by NAME which runs COMMANDS." +#~ msgstr "Crea una ordre simple invocada pel NOM que executa ORDRES. Els " + +#~ msgid "Arguments on the command line along with NAME are passed to the" +#~ msgstr "" +#~ "par?metres especificats al llarg de la l?nia de l'ordre es passen a la" + +#~ msgid "function as $0 .. $n." +#~ msgstr "funci? com a $0 ... $n." + +#~ msgid "entire set of commands." +#~ msgstr "redireccionar un conjunt sencer d'ordres." + +#~ msgid "This is similar to the `fg' command. Resume a stopped or background" +#~ msgstr "A?? ?s semblant amb qu? passa amb l'ordre ?fg?. Repr?n una tasca " + +#~ msgid "job. If you specifiy DIGITS, then that job is used. If you specify" +#~ msgstr "" +#~ "aturada o ubicada en segon pla. Si especifiqueu DIGITS, aleshores es" + +#~ msgid "" +#~ "WORD, then the job whose name begins with WORD is used. Following the" +#~ msgstr "fa servir aquesta tasca. Si especifiqueu PARAULES, aleshores es fa" + +#~ msgid "job specification with a `&' places the job in the background." +#~ msgstr "" +#~ "servir la tasca, el nom de la qual comence pel valor en PARAULA. Si\n" +#~ "s'especifica la tasca comen?ant pel signe \"&\" s'ubica la tasca en\n" +#~ "segon pla." + +#~ msgid "BASH_VERSION The version numbers of this Bash." +#~ msgstr "BASH_VERSION Cont? la versi? de Bash." + +#~ msgid "CDPATH A colon separated list of directories to search" +#~ msgstr "CDPATH Cont? una llista de directoris, separats" + +#~ msgid "\t\twhen the argument to `cd' is not found in the current" +#~ msgstr "" +#~ " pel signe de dos punts, per a cercar quan el par?metre" + +#~ msgid "\t\tdirectory." +#~ msgstr "" +#~ " especificat per a l'ordre ?cd? no es troba en el\n" +#~ " directori actual." + +#~ msgid "" +#~ "HISTFILE The name of the file where your command history is stored." +#~ msgstr "" +#~ "HISTFILE Cont? el nom del fitxer on ?s al?ada l'hist?ric\n" +#~ " d'ordres executades." + +#~ msgid "HISTFILESIZE The maximum number of lines this file can contain." +#~ msgstr "" +#~ "HISTFILESIZE Cont? el nombre m?xim de l?nies que un fitxer pot \n" +#~ " contindre." + +#~ msgid "HISTSIZE The maximum number of history lines that a running" +#~ msgstr "HISTSIZE Cont? el nombre m?xim de l?nies de l'hist?ric que " + +#~ msgid "\t\tshell can access." +#~ msgstr " l'int?rpret d'ordres pot accedir." + +#~ msgid "HOME The complete pathname to your login directory." +#~ msgstr "" +#~ "HOME Cont? el nom cam? d'acc?s cap el directori de la\n" +#~ " vostra sessi? d'usuari." + +#~ msgid "" +#~ "HOSTTYPE The type of CPU this version of Bash is running under." +#~ msgstr "" +#~ "HOSTTYPE Cont? la mena de CPU sota la qual aquesta versi?\n" +#~ " de bash est? corrent." + +#~ msgid "" +#~ "IGNOREEOF Controls the action of the shell on receipt of an EOF" +#~ msgstr "" +#~ "IGNOREOEOF Controla l'acci? de l'int?rpret d'ordres quan rep un" + +#~ msgid "\t\tcharacter as the sole input. If set, then the value" +#~ msgstr " car?cter de fi de fitxer (EOF) com a ?nica entrada." + +#~ msgid "\t\tof it is the number of EOF characters that can be seen" +#~ msgstr " Si s'activa, aleshores el seu valor ?s el nombre de" + +#~ msgid "\t\tin a row on an empty line before the shell will exit" +#~ msgstr "" +#~ " car?cters EOF que pot ser mostrat en un afilera d'una" + +#~ msgid "\t\t(default 10). When unset, EOF signifies the end of input." +#~ msgstr "" +#~ " l?nia bu?da despr?s de que l'int?rpret eixir? (per\n" +#~ " omissi? el valor ?s 10). Quan ?s desactivat, EOF vol\n" +#~ " dir que s'ha finalitzat l'entrada de dades." + +#~ msgid "MAILCHECK\tHow often, in seconds, Bash checks for new mail." +#~ msgstr "" +#~ "MAILCHECK Cont? el temps, en segons, pel qual bash cada vegada \n" +#~ " comprova si hi ha nou correu." + +#~ msgid "MAILPATH\tA colon-separated list of filenames which Bash checks" +#~ msgstr "MAILPATH Cont? una llista de noms de fitxers, separats pel " + +#~ msgid "\t\tfor new mail." +#~ msgstr " signe \":\", on Bash comprova si hi ha correu nou." + +#~ msgid "OSTYPE\t\tThe version of Unix this version of Bash is running on." +#~ msgstr "" +#~ "OSTYPE Cont? la versi? d'Unix sota la qual aquesta versi? de \n" +#~ " Bash est? corrent." + +#~ msgid "PATH A colon-separated list of directories to search when" +#~ msgstr "PATH Cont? una llista de directoris, separats pel signe " + +#~ msgid "\t\tlooking for commands." +#~ msgstr " \":\", per on es recorrer? quan es busca una ordre." + +#~ msgid "PROMPT_COMMAND A command to be executed before the printing of each" +#~ msgstr "" +#~ "PROMPT_COMMAND Cont? l'ordre que s'executar? despr?s de mostrar-se " + +#~ msgid "\t\tprimary prompt." +#~ msgstr " cada indicador primari." + +#~ msgid "PS1 The primary prompt string." +#~ msgstr "PS1 Cont? la cadena de l'indicador primari." + +#~ msgid "PS2 The secondary prompt string." +#~ msgstr "PS2 Cont? la cadena de l'indicador secundari." + +#~ msgid "TERM The name of the current terminal type." +#~ msgstr "TERM Cont? el nom de la mena de terminal actual." + +#~ msgid "auto_resume Non-null means a command word appearing on a line by" +#~ msgstr "auto_resume Cont? el nom de l'ordre que es buscar? primer d'una" + +#~ msgid "\t\titself is first looked for in the list of currently" +#~ msgstr "" +#~ " llista de tasques actualment aturades. Si se'n troba," + +#~ msgid "\t\tstopped jobs. If found there, that job is foregrounded." +#~ msgstr "" +#~ " aquesta tasca s'ubicar? en primer pla. Amb el valor" + +#~ msgid "\t\tA value of `exact' means that the command word must" +#~ msgstr " de \"exact\" el nom de l'ordre ha de coincidir" + +#~ msgid "\t\texactly match a command in the list of stopped jobs. A" +#~ msgstr " exactament una ordre qu? es trobe a la llista de" + +#~ msgid "\t\tvalue of `substring' means that the command word must" +#~ msgstr " tasques aturades. Amb \"substring\", la paraula de" + +#~ msgid "\t\tmatch a substring of the job. Any other value means that" +#~ msgstr "" +#~ " l'ordre ha de coincidir parcialment amb el nom de la" + +#~ msgid "\t\tthe command must be a prefix of a stopped job." +#~ msgstr "" +#~ " tasca (una subcadena d'aquesta). Altrament, amb\n" +#~ " qualsevol altre valor la paraula de l'ordre ha de\n" +#~ " coincidir amb un prefix de la tasca aturada." + +#~ msgid "command_oriented_history" +#~ msgstr "command_oriented_history" + +#~ msgid "" +#~ " Non-null means to save multiple-line commands together on" +#~ msgstr "" +#~ " Si no ?s buit, s'al?ar? juntament les ordres escrites" + +#~ msgid " a single history line." +#~ msgstr "" +#~ " en m?ltiples l?nies en una sola l?nia de l'hist?ric." + +#~ msgid "histchars Characters controlling history expansion and quick" +#~ msgstr "histchars Cont? els car?cters que controlen l'expansi? de " + +#~ msgid "\t\tsubstitution. The first character is the history" +#~ msgstr " l'hist?ric i la substituci? r?pida. El primer" + +#~ msgid "\t\tsubstitution character, usually `!'. The second is" +#~ msgstr " car?cter ?s el de substituci? de l'hist?ric," + +#~ msgid "\t\tthe `quick substitution' character, usually `^'. The" +#~ msgstr " normalment \"!\". El segon ?s el de \"substituci?" + +#~ msgid "\t\tthird is the `history comment' character, usually `#'." +#~ msgstr "" +#~ " r?pida\", normalment \"^\". El tercer ?s el de\n" +#~ " \"comentari de l'hist?ric\", normalment \"#\"." + +#~ msgid "HISTCONTROL\tSet to a value of `ignorespace', it means don't enter" +#~ msgstr "HISTCONTROL Si s'hi especifica \"ignorespace\", no s'introduir?" + +#~ msgid "\t\tlines which begin with a space or tab on the history" +#~ msgstr "" +#~ " l?nies que comencen amb un espai o de tabulaci? en la" + +#~ msgid "\t\tlist. Set to a value of `ignoredups', it means don't" +#~ msgstr "" +#~ " llista de l'hist?ric. Si s'activa amb \"ignoredups\"," + +#~ msgid "\t\tenter lines which match the last entered line. Set to" +#~ msgstr "" +#~ " no s'introduir? l?nies que concidisquen amb la darrera" + +#~ msgid "\t\t`ignoreboth' means to combine the two options. Unset," +#~ msgstr "" +#~ " l?nia executada. Amb \"ignoreboth\" s'actuar? amb els" + +#~ msgid "\t\tor set to any other value than those above means to save" +#~ msgstr " dos criteris anteriors alhora. Desactivada, o" + +#~ msgid "\t\tall lines on the history list." +#~ msgstr "" +#~ " especificant-se qualsevol altre valor, que no siga un\n" +#~ " dels esmentats anteriorment, al?a totes les l?nies a\n" +#~ " la llista de l'hist?ric." + +#~ msgid "Toggle the values of variables controlling optional behavior." +#~ msgstr "" +#~ "Commuta els valors de les variables, controlant els comportaments \n" +#~ "opcionals." + +#~ msgid "The -s flag means to enable (set) each OPTNAME; the -u flag" +#~ msgstr "" +#~ "El senyalador ?-s? activa cada variable de OPTNAME; el senyalador \"-u\" " + +#~ msgid "unsets each OPTNAME. The -q flag suppresses output; the exit" +#~ msgstr "desactiva cada OPTNAME. El senyalador \"-q\" suprimeix l'eixida de" + +#~ msgid "status indicates whether each OPTNAME is set or unset. The -o" +#~ msgstr "dades; l'estat d'eixida indica si cada OPTNAME ?s activat o no." + +#~ msgid "option restricts the OPTNAMEs to those defined for use with" +#~ msgstr "L'opci? \"o\" restringeix els OPTNAMEs d'aquells definits per a" + +#~ msgid "`set -o'. With no options, or with the -p option, a list of all" +#~ msgstr "utilitzar-ho amb l'ordre ?set -o?. Sense cap opci?, o amb l'opci?" + +#~ msgid "settable options is displayed, with an indication of whether or" +#~ msgstr "" +#~ "\"-p\", s'exhibeix una llista de totes les opcions activables, amb una" + +#~ msgid "not each is set." +#~ msgstr "indicaci? si ja ho ?s o no." diff --git a/po/cs.gmo b/po/cs.gmo new file mode 100644 index 0000000000000000000000000000000000000000..b14e605e8af4c9c5c06fcbc237bc21ed66de6086 GIT binary patch literal 153701 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

vM_yJN3IqZ4goZ~R==3sYa+S0MF=5eD zUQY!mua+4V{)&WDOJX_Tm@3djLm{vfdLn7y(-0q>{h{f?FdCASy^9VDoH84(6lOhE z;2wAnU!fN&zQ~5uggT~1dT4LcXE?(o1c8LYwN933Y;*U!e%4k`Y81@&*98v{rn*GE)QK#P4wAWe)QZ7V zi#`3`vj!|dK_q`PE`rxzZaDtD_M(PMpFL}k56@GES;p)r(U*vWLxX~E@RR%iTt3JI zUq;d|#aUqM>;wdDXt{>ZcBnm~h{bV1>!G1UIFvM*XsOHiP_P0b%7~TOY9qJ&jtb(LA#tATL2@&4g zri+EZZlp1kPT7*|VLX5_+@=R3nmWH%_X3gq=>XPB3%VGV7)9n{M8$Z$hw%t;dXZg= zcxjM=ZMtWt|BN=?|1@Dm++mmH4vovjPaTfLEhbZ8CkDy0hNLv1p=iJ0` zi7S|MkY<*Dm^(55*(K!N(6-7LH|S<>nO>RT~bQ5q>6Kj8W=;bzd?QfXus&dk-8ln4KU{( z4a!?1oPZ<(rr!A^NSQ{>KplFJfLxs4n9!7DsEVG2+Hz!-_@L6jnn)Uyk&mUccQ%k# zgE)9J&KaR_a3rE#JUTt@vDOczX|L#4>jBJQl=u3vBS~EF5Slh(-0?G&xq}A;edbYV zu+Q+;c(iUu8#@nyS3muIba(U77CLsSFy|cXk7+z*aa5TA{KuU`X#5LOPHjDFpdKG( z9D3o_Vv;7AA)g1r8lYYVkGlWt6fh~7{(8$8D!KiIgpe+N$9 zU0aPMrwjYU7nb@%Jb(m53^v;kV=*qX{ZW#2L7v%1ANIoE9rXdg=HQq80d)HGM)w)^ zSXWQML7d+=jDGvUC;Rt4e#il-BUF72@M*jurqu$YB^yONP4>xZN9g{*B9w=R7_^PE z!pCO8=5wQ~(U3_4$N{h@j$vH%`Q9p*eXPtvgRN*$m_;g}XBc`t*+)n;G#kRRgc1sBt!Is* zEO0kbyQ5@+vo0jzCw!AsW8>m&E>Q#rtRfmY0FoKf>$<3JpQIV_0XNN5+8^Zy1C;xG z?IphlT_P!=PRk|rNE5q)$8xpix61IL=m#~WLVb}D&_w&SI8D#D2j#tjxvq*8c4_;w z?&5eebR`^!QQko@EJ{ArF$VpMBv2$3dz{8k5)MzJ@mb;pxA1;p2p z3|Z#IpFLwP{qmLYtzUpx9hQ!FTzOG!4R_tv$_bcVGYuy*pk((eg*W1KZdp8> zVc0rDbXEb(MS%PwM#7N7J?Fnh`lmR84KxP>n~Z_84dUae=>8!(hn&4uluj4~hUevE zT_<;Ww5e%H)a>1kyf&<7Bei3kkz+!G4=8`2XPf!TIt#4bW$-X`wNDh74Y-7s%VkBr z@`H4F3m;#$1y1sN{s!{l5JycK`3u$Uz)YBnv2Hohjqd|HbrARPHMx9IV8F}=EcB}OmzYp}SzP|N?etQ;y=^yDo5}wJqu%wt literal 0 Hc-jL100001 diff --git a/po/cs.po b/po/cs.po new file mode 100644 index 000000000..054b9113c --- /dev/null +++ b/po/cs.po @@ -0,0 +1,5957 @@ +# Czech tranlation for bash. +# Copyright (C) 2008 Free Software Foundation, Inc. +# This file is distributed under the same license as the bash package. +# Petr Pisar , 2008. +# +msgid "" +msgstr "" +"Project-Id-Version: bash 4.0-pre1\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2009-01-06 11:56-0500\n" +"PO-Revision-Date: 2008-09-07 13:09+0200\n" +"Last-Translator: Petr Pisar \n" +"Language-Team: Czech \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" + +#: arrayfunc.c:50 +msgid "bad array subscript" +msgstr "chybný podskript pole" + +#: arrayfunc.c:313 builtins/declare.def:474 +#, c-format +msgid "%s: cannot convert indexed to associative array" +msgstr "%s: číslované pole nezle převést na pole asociativní" + +#: arrayfunc.c:479 +#, c-format +msgid "%s: invalid associative array key" +msgstr "%s: neplatný klíč asociativního pole" + +#: arrayfunc.c:481 +#, c-format +msgid "%s: cannot assign to non-numeric index" +msgstr "%s: přes nečíselný indexu nelze dosadit" + +# FIXME: subscript je klicove slovo bashe 4 nebo skutecne podprogram? +# přiřazuje se do pole nebo pole někam? +#: arrayfunc.c:517 +#, fuzzy, c-format +msgid "%s: %s: must use subscript when assigning associative array" +msgstr "%s: %s: při přiřazovaní asociativního pole se musí použít podprogram" + +#: bashhist.c:380 +#, c-format +msgid "%s: cannot create: %s" +msgstr "%s: nelze vytvořit: %s" + +#: bashline.c:3413 +msgid "bash_execute_unix_command: cannot find keymap for command" +msgstr "bash_execute_unix_command: pro příkaz nelze nalézt klávesovou mapu " + +#: bashline.c:3491 +#, c-format +msgid "%s: first non-whitespace character is not `\"'" +msgstr "%s: první nebílý znak není „\"“" + +#: bashline.c:3520 +#, c-format +msgid "no closing `%c' in %s" +msgstr "ne zavírající „%c“ v %s" + +#: bashline.c:3554 +#, c-format +msgid "%s: missing colon separator" +msgstr "%s: chybí dvojtečkový oddělovač" + +#: builtins/bind.def:120 builtins/bind.def:123 +msgid "line editing not enabled" +msgstr "" + +#: builtins/bind.def:206 +#, c-format +msgid "`%s': invalid keymap name" +msgstr "„%s“: chybný název klávesové mapy" + +#: builtins/bind.def:245 +#, c-format +msgid "%s: cannot read: %s" +msgstr "%s: nelze číst: %s" + +#: builtins/bind.def:260 +#, c-format +msgid "`%s': cannot unbind" +msgstr "„%s“: nelze zruÅ¡it vazbu" + +#: builtins/bind.def:295 builtins/bind.def:325 +#, c-format +msgid "`%s': unknown function name" +msgstr "„%s“: neznámé jméno funkce" + +#: builtins/bind.def:303 +#, c-format +msgid "%s is not bound to any keys.\n" +msgstr "%s není svázán s žádnou klávesou.\n" + +#: builtins/bind.def:307 +#, c-format +msgid "%s can be invoked via " +msgstr "%s lze vyvolat přes " + +#: builtins/break.def:77 builtins/break.def:117 +msgid "loop count" +msgstr "počet smyček" + +#: builtins/break.def:137 +msgid "only meaningful in a `for', `while', or `until' loop" +msgstr "má smysl jen ve smyčkách „for“, „while“ nebo „until“" + +#: builtins/caller.def:133 +#, fuzzy +msgid "" +"Returns the context of the current subroutine call.\n" +" \n" +" Without EXPR, returns " +msgstr "Vrací kontext aktuálního volání podrutiny." + +#: builtins/cd.def:215 +msgid "HOME not set" +msgstr "není nestavena HOME" + +#: builtins/cd.def:227 +msgid "OLDPWD not set" +msgstr "není nastaveno OLDPWD" + +#: builtins/common.c:101 +#, c-format +msgid "line %d: " +msgstr "řádek %d: " + +#: builtins/common.c:139 error.c:260 +#, c-format +msgid "warning: " +msgstr "varování: " + +#: builtins/common.c:153 +#, c-format +msgid "%s: usage: " +msgstr "%s: užití: " + +#: builtins/common.c:166 test.c:822 +msgid "too many arguments" +msgstr "příliÅ¡ mnoho argumentů" + +#: builtins/common.c:191 shell.c:493 shell.c:774 +#, c-format +msgid "%s: option requires an argument" +msgstr "%s: přepínač vyžaduje argument" + +#: builtins/common.c:198 +#, c-format +msgid "%s: numeric argument required" +msgstr "%s: vyžadován číselný argument" + +#: builtins/common.c:205 +#, c-format +msgid "%s: not found" +msgstr "%s: nenalezeno" + +#: builtins/common.c:214 shell.c:787 +#, c-format +msgid "%s: invalid option" +msgstr "%s: chybný přepínač" + +#: builtins/common.c:221 +#, c-format +msgid "%s: invalid option name" +msgstr "%s: chybný název přepínače" + +#: builtins/common.c:228 general.c:231 general.c:236 +#, c-format +msgid "`%s': not a valid identifier" +msgstr "„%s“: není platným identifikátorem" + +#: builtins/common.c:238 +msgid "invalid octal number" +msgstr "neplatné osmičkové číslo" + +#: builtins/common.c:240 +msgid "invalid hex number" +msgstr "chybné Å¡estnáctkové číslo" + +#: builtins/common.c:242 expr.c:1255 +msgid "invalid number" +msgstr "chybné číslo" + +#: builtins/common.c:250 +#, c-format +msgid "%s: invalid signal specification" +msgstr "%s: chybné určení signálu" + +#: builtins/common.c:257 +#, c-format +msgid "`%s': not a pid or valid job spec" +msgstr "„%s“: není PID ani platným označením úlohy" + +#: builtins/common.c:264 error.c:453 +#, c-format +msgid "%s: readonly variable" +msgstr "%s: proměnná pouze pro čtení" + +#: builtins/common.c:272 +#, c-format +msgid "%s: %s out of range" +msgstr "%s: %s mimo rozsah" + +#: builtins/common.c:272 builtins/common.c:274 +msgid "argument" +msgstr "argument" + +#: builtins/common.c:274 +#, c-format +msgid "%s out of range" +msgstr "%s mimo rozsah" + +#: builtins/common.c:282 +#, c-format +msgid "%s: no such job" +msgstr "%s: žádná taková úloha" + +#: builtins/common.c:290 +#, c-format +msgid "%s: no job control" +msgstr "%s: žádné řízení úloh" + +#: builtins/common.c:292 +msgid "no job control" +msgstr "žádné řízení úloh" + +#: builtins/common.c:302 +#, c-format +msgid "%s: restricted" +msgstr "%s: omezeno" + +#: builtins/common.c:304 +msgid "restricted" +msgstr "omezeno" + +#: builtins/common.c:312 +#, c-format +msgid "%s: not a shell builtin" +msgstr "%s: není vestavěným příkazem shellu" + +#: builtins/common.c:321 +#, c-format +msgid "write error: %s" +msgstr "chyba zápisu: %s" + +#: builtins/common.c:553 +#, c-format +msgid "%s: error retrieving current directory: %s: %s\n" +msgstr "%s: chyba při zjiÅ¡Å¥ování současného adresáře: %s: %s\n" + +#: builtins/common.c:619 builtins/common.c:621 +#, c-format +msgid "%s: ambiguous job spec" +msgstr "%s: nejednoznačné určení úlohy" + +#: builtins/complete.def:270 +#, c-format +msgid "%s: invalid action name" +msgstr "%s: neplatný název akce" + +#: builtins/complete.def:430 builtins/complete.def:615 +#: builtins/complete.def:813 +#, c-format +msgid "%s: no completion specification" +msgstr "%s: žádné doplňování neurčeno" + +#: builtins/complete.def:667 +msgid "warning: -F option may not work as you expect" +msgstr "varování: přepínač -F možná nebude dělat, co jste čekali" + +#: builtins/complete.def:669 +msgid "warning: -C option may not work as you expect" +msgstr "varování: přepínač -C možná nebude dělat, co jste čekali" + +#: builtins/complete.def:786 +msgid "not currently executing completion function" +msgstr "doplňovací funkce se právě nevykonává" + +#: builtins/declare.def:122 +msgid "can only be used in a function" +msgstr "může být použito jen ve funkci" + +#: builtins/declare.def:353 +msgid "cannot use `-f' to make functions" +msgstr "„-f“ nezle použít na výrobu funkce" + +#: builtins/declare.def:365 execute_cmd.c:4731 +#, c-format +msgid "%s: readonly function" +msgstr "%s: funkce jen pro čtení" + +#: builtins/declare.def:461 +#, c-format +msgid "%s: cannot destroy array variables in this way" +msgstr "%s: takto nelze likvidovat pole" + +#: builtins/declare.def:468 +#, c-format +msgid "%s: cannot convert associative to indexed array" +msgstr "%s: asociativní pole nelze převést na číslované pole" + +#: builtins/enable.def:137 builtins/enable.def:145 +msgid "dynamic loading not available" +msgstr "dynamické nahrávání není dostupné" + +#: builtins/enable.def:312 +#, c-format +msgid "cannot open shared object %s: %s" +msgstr "sdílený objekt %s nelze otevřít: %s" + +#: builtins/enable.def:335 +#, c-format +msgid "cannot find %s in shared object %s: %s" +msgstr "ve sdílením objektu %2$s nelze nalézt %1$s: %3$s" + +#: builtins/enable.def:459 +#, c-format +msgid "%s: not dynamically loaded" +msgstr "%s: není dynamicky nahráno" + +#: builtins/enable.def:474 +#, c-format +msgid "%s: cannot delete: %s" +msgstr "%s: nelze smazat: %s" + +#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4588 +#: shell.c:1439 +#, c-format +msgid "%s: is a directory" +msgstr "%s: je adresářem" + +#: builtins/evalfile.c:139 +#, c-format +msgid "%s: not a regular file" +msgstr "%s: není obyčejný soubor" + +#: builtins/evalfile.c:147 +#, c-format +msgid "%s: file is too large" +msgstr "%s: soubor je příliÅ¡ velký" + +#: builtins/evalfile.c:185 execute_cmd.c:4658 shell.c:1449 +#, c-format +msgid "%s: cannot execute binary file" +msgstr "%s: binární soubor nelze spustit" + +#: builtins/exec.def:212 +#, c-format +msgid "%s: cannot execute: %s" +msgstr "%s: nelze provést: %s" + +# FIXME: Toto je literál, jedná se o syntaxi příkazu, který nemá žádné +# parametry? Nebo se jedná o zprávu shellu při odhlášení? +#: builtins/exit.def:65 +#, fuzzy, c-format +msgid "logout\n" +msgstr "logout\n" + +#: builtins/exit.def:88 +msgid "not login shell: use `exit'" +msgstr "toto není login shell: použijte „exit“" + +#: builtins/exit.def:120 +#, c-format +msgid "There are stopped jobs.\n" +msgstr "Jsou zde pozastavení úlohy.\n" + +#: builtins/exit.def:122 +#, c-format +msgid "There are running jobs.\n" +msgstr "Jsou zde běžící úlohy.\n" + +#: builtins/fc.def:261 +msgid "no command found" +msgstr "žádný příkaz nenalezen" + +#: builtins/fc.def:341 +msgid "history specification" +msgstr "určení historie" + +#: builtins/fc.def:362 +#, c-format +msgid "%s: cannot open temp file: %s" +msgstr "%s: dočasný soubor nelze otevřít: %s" + +#: builtins/fg_bg.def:149 builtins/jobs.def:282 +msgid "current" +msgstr "současný" + +#: builtins/fg_bg.def:158 +#, c-format +msgid "job %d started without job control" +msgstr "úloha %d spuÅ¡těna bez správy úloh" + +#: builtins/getopt.c:110 +#, c-format +msgid "%s: illegal option -- %c\n" +msgstr "%s: chybný přepínač – %c\n" + +#: builtins/getopt.c:111 +#, c-format +msgid "%s: option requires an argument -- %c\n" +msgstr "%s: přepínač vyžaduje argument – %c\n" + +#: builtins/hash.def:92 +msgid "hashing disabled" +msgstr "hashování zakázáno" + +#: builtins/hash.def:138 +#, c-format +msgid "%s: hash table empty\n" +msgstr "%s: tabulka hashů je prázdná\n" + +#: builtins/hash.def:244 +#, c-format +msgid "hits\tcommand\n" +msgstr "zásahů\tpříkaz\n" + +#: builtins/help.def:130 +#, c-format +msgid "Shell commands matching keyword `" +msgid_plural "Shell commands matching keywords `" +msgstr[0] "Příkazy shellu shodující se s klíčovým slovem „" +msgstr[1] "Příkazy shellu shodující se s klíčovými slovy „" +msgstr[2] "Příkazy shellu shodující se s klíčovými slovy „" + +#: builtins/help.def:168 +#, c-format +msgid "" +"no help topics match `%s'. Try `help help' or `man -k %s' or `info %s'." +msgstr "" +"žádné téma nápovědy se nehodí pro „%s“. Zkuste „help help“ nebo „man -k %s“ " +"nebo „info %s“." + +#: builtins/help.def:185 +#, c-format +msgid "%s: cannot open: %s" +msgstr "%s: nelze otevřít: %s" + +#: builtins/help.def:337 +#, c-format +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 "" +"Tyto příkazy shellu jsou vnitřně definovány. NapiÅ¡te „help“, aby ste " +"získali\n" +"tento seznam. Podrobnosti o funkci „název“ získáte příkazem „help název“.\n" +"Příkazem „info bash“ získáte obecné informace o tomto shellu.\n" +"Použijte „man -k“ nebo „info“, chcete-li zjistit více o příkazech, které\n" +"na tomto seznamu nejsou.\n" +"\n" +"Hvězdička (*) vedle jména znamená, že příkaz je zakázán.\n" +"\n" + +#: builtins/history.def:154 +msgid "cannot use more than one of -anrw" +msgstr "nelze použít více jak jeden z -anrw" + +#: builtins/history.def:186 +msgid "history position" +msgstr "místo v historii" + +#: builtins/history.def:365 +#, c-format +msgid "%s: history expansion failed" +msgstr "%s: expanze historie selhala" + +#: builtins/inlib.def:71 +#, c-format +msgid "%s: inlib failed" +msgstr "%s: inlib selhala" + +#: builtins/jobs.def:109 +msgid "no other options allowed with `-x'" +msgstr "s „-x“ nejsou dovoleny další přepínače" + +#: builtins/kill.def:197 +#, c-format +msgid "%s: arguments must be process or job IDs" +msgstr "%s: argumenty musí být proces nebo identifikátor úlohy" + +#: builtins/kill.def:260 +msgid "Unknown error" +msgstr "Neznámá chyba" + +#: builtins/let.def:95 builtins/let.def:120 expr.c:501 expr.c:516 +msgid "expression expected" +msgstr "očekáván výraz" + +#: builtins/mapfile.def:215 builtins/read.def:272 +#, c-format +msgid "%s: invalid file descriptor specification" +msgstr "%s: chybné určení deskriptoru souboru" + +#: builtins/mapfile.def:223 builtins/read.def:279 +#, c-format +msgid "%d: invalid file descriptor: %s" +msgstr "%d: neplatný deskriptor souboru: %s" + +#: builtins/mapfile.def:232 builtins/mapfile.def:270 +#, c-format +msgid "%s: invalid line count" +msgstr "%s: chybný počet řádků" + +#: builtins/mapfile.def:243 +#, c-format +msgid "%s: invalid array origin" +msgstr "%s: chybný počátek pole" + +#: builtins/mapfile.def:260 +#, c-format +msgid "%s: invalid callback quantum" +msgstr "%s: neplatné množství mezi voláními" + +#: builtins/mapfile.def:292 +msgid "empty array variable name" +msgstr "prázdný název proměnné typu pole" + +#: builtins/mapfile.def:313 +msgid "array variable support required" +msgstr "je vyžadována podpora proměnných typu pole" + +#: builtins/printf.def:367 +#, c-format +msgid "`%s': missing format character" +msgstr "„%s“: postrádám formátovací znak" + +#: builtins/printf.def:544 +#, c-format +msgid "`%c': invalid format character" +msgstr "„%c“: neplatný formátovací znak" + +#: builtins/printf.def:571 +#, c-format +msgid "warning: %s: %s" +msgstr "varování: %s: %s" + +#: builtins/printf.def:750 +msgid "missing hex digit for \\x" +msgstr "u \\x chybí Å¡estnáctková číslovka" + +#: builtins/pushd.def:195 +msgid "no other directory" +msgstr "žádný další adresář" + +#: builtins/pushd.def:462 +msgid "" +msgstr "<žádný aktuální adresář>" + +#: builtins/pushd.def:506 +msgid "directory stack empty" +msgstr "prázdný zásobník adresářů" + +#: builtins/pushd.def:508 +msgid "directory stack index" +msgstr "pořadí v zásobníku adresářů" + +#: builtins/pushd.def:683 +msgid "" +"Display the list of currently remembered directories. Directories\n" +" find their way onto the list with the `pushd' command; you can get\n" +" back up through the list with the `popd' command.\n" +" \n" +" Options:\n" +" -c\tclear the directory stack by deleting all of the elements\n" +" -l\tdo not print tilde-prefixed versions of directories relative\n" +" \tto your home directory\n" +" -p\tprint the directory stack with one entry per line\n" +" -v\tprint the directory stack with one entry per line prefixed\n" +" \twith its position in the stack\n" +" \n" +" Arguments:\n" +" +N\tDisplays the Nth entry counting from the left of the list shown " +"by\n" +" \tdirs when invoked without options, starting with zero.\n" +" \n" +" -N\tDisplays the Nth entry counting from the right of the list shown " +"by\n" +"\tdirs when invoked without options, starting with zero." +msgstr "" +"Zobrazí seznam právě zapamatovaných adresářů. Adresáře si najdou svoji\n" +" cestu na seznam příkazem „pushd“ a procházet seznamem zpět lze příkazem\n" +" „popd“.\n" +" \n" +" Přepínače:\n" +" -c\tvyprázdní zásobník adresářů tím, že smaže vÅ¡echny jeho prvky\n" +" -l\tnevypisuje adresáře relativní vaÅ¡emu domovskému adresáři pomocí\n" +" \tvlnkové předpony\n" +" -p\tvypíše zásobník adresářů stylem jedna položka na jeden řádek\n" +" -v\tvypíše zásobník adresářů stylem jedna položka na jeden řádek\n" +" \tuvozená svojí pozicí na zásobníku\n" +" \n" +" Argumenty:\n" +" +N\tZobrazí N. položku počítáno zleva na seznamu, který zobrazuje\n" +" \tdirs, když je vyvolán bez přepínačů, počínaje nulou.\n" +" \n" +" -N\tZobrazí N. položku počítáno zprava na seznamu, který zobrazuje\n" +" \tdirs, když je vyvolán bez přepínačů, počínaje nulou." + +#: builtins/pushd.def:705 +msgid "" +"Adds a directory to the top of the directory stack, or rotates\n" +" the stack, making the new top of the stack the current working\n" +" directory. With no arguments, exchanges the top two directories.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when adding\n" +" \tdirectories to the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the left of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" -N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the right of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" dir\tAdds DIR to the directory stack at the top, making it the\n" +" \tnew current working directory.\n" +" \n" +" The `dirs' builtin displays the directory stack." +msgstr "" +"Přidá adresář na vrchol zásobníku adresářů nebo zásobník zrotuje tak,\n" +" že nový vrchol zásobníku se stane současným pracovním adresářem. Bez\n" +" argumentů prohodí dva vrchní adresáře.\n" +" \n" +" Přepínače:\n" +" -n\tPotlačí obvyklou změnu adresáře, když se na zásobník přidávají\n" +" \tadresáře, takže změněn bude pouze zásobník.\n" +" \n" +" Argumenty:\n" +" +N\tZrotuje zásobník tak, že N. adresář (počítáno zleva na seznamu\n" +" \tzobrazovaném pomocí „dirs“, počínaje nulou) se dostane na vrchol.\n" +" \n" +" -N\tZrotuje zásobník tak, že N. adresář (počítáno zprava na seznamu\n" +" \tzobrazovaném pomocí „dirs“, počínaje nulou) se dostane na vrchol.\n" +" \n" +" ADRESÁŘ\n" +" \tPřidá ADRESÁŘ na vrchol zásobníku adresářů a učiní jej novým\n" +" \tsoučasným pracovním adresářem.\n" +" \n" +" Zásobník adresářů si můžete prohlédnout příkazem „dirs“." + +#: builtins/pushd.def:730 +msgid "" +"Removes entries from the directory stack. With no arguments, removes\n" +" the top directory from the stack, and changes to the new top directory.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when removing\n" +" \tdirectories from the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRemoves the Nth entry counting from the left of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd +0'\n" +" \tremoves the first directory, `popd +1' the second.\n" +" \n" +" -N\tRemoves the Nth entry counting from the right of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd -0'\n" +" \tremoves the last directory, `popd -1' the next to last.\n" +" \n" +" The `dirs' builtin displays the directory stack." +msgstr "" +"Odstraní položku ze zásobníku adresářů. Bez argumentů odstraní adresář\n" +" z vrcholu zásobníku a přepne se do nového vrcholového adresáře.\n" +" \n" +" Přepínače:\n" +" -n\tPotlačí obvyklou změnu adresáře, když se ze zásobníku odebírají\n" +" \tadresáře, takže změněn bude pouze zásobník.\n" +" \n" +" Argumenty:\n" +" +N\tOdstraní N. položku počítáno zleva na seznamu zobrazovaném pomocí\n" +" \t„dirs“, počínaje nulou. Na příklad: „popd +0“ odstraní první\n" +" \tadresář, „popd -1“ druhý.\n" +" \n" +" -N\tOdstraní N. položku počítáno zprava na seznamu zobrazovaném " +"pomocí\n" +" \t„dirs“, počínaje nulou. Na příklad: „popd -0“ odstraní poslední\n" +" \tadresář, „popd -1“ další vedle posledního.\n" +" \n" +" Zásobník adresářů si můžete prohlédnout příkazem „dirs“." + +#: builtins/read.def:248 +#, c-format +msgid "%s: invalid timeout specification" +msgstr "%s: chybné určení časového limitu" + +#: builtins/read.def:574 +#, c-format +msgid "read error: %d: %s" +msgstr "chyba čtení: %d: %s" + +#: builtins/return.def:73 +msgid "can only `return' from a function or sourced script" +msgstr "„return“ lze provést jen z funkce nebo skriptu načteného přes „source“" + +#: builtins/set.def:768 +msgid "cannot simultaneously unset a function and a variable" +msgstr "funkci i proměnnou nelze ruÅ¡it současně" + +#: builtins/set.def:805 +#, c-format +msgid "%s: cannot unset" +msgstr "%s: nelze zruÅ¡it" + +#: builtins/set.def:812 +#, c-format +msgid "%s: cannot unset: readonly %s" +msgstr "%s: nelze zruÅ¡it: %s jen pro čtení" + +#: builtins/set.def:823 +#, c-format +msgid "%s: not an array variable" +msgstr "%s: není (proměnnou typu) pole" + +#: builtins/setattr.def:186 +#, c-format +msgid "%s: not a function" +msgstr "%s: není funkcí" + +#: builtins/shift.def:71 builtins/shift.def:77 +msgid "shift count" +msgstr "počet shiftů" + +#: builtins/shopt.def:254 +msgid "cannot set and unset shell options simultaneously" +msgstr "přepínač shellu nelze zároveň nastavit a zruÅ¡it" + +#: builtins/shopt.def:319 +#, c-format +msgid "%s: invalid shell option name" +msgstr "%s: chybný název přepínače shellu" + +#: builtins/source.def:128 +msgid "filename argument required" +msgstr "vyžadován argument s názvem souboru" + +#: builtins/source.def:153 +#, c-format +msgid "%s: file not found" +msgstr "%s: soubor nenalezen" + +#: builtins/suspend.def:101 +msgid "cannot suspend" +msgstr "nelze pozastavit" + +#: builtins/suspend.def:111 +msgid "cannot suspend a login shell" +msgstr "login shell nelze pozastavit" + +#: builtins/type.def:234 +#, c-format +msgid "%s is aliased to `%s'\n" +msgstr "%s je alias na „%s“\n" + +#: builtins/type.def:255 +#, c-format +msgid "%s is a shell keyword\n" +msgstr "%s je klíčové slovo shellu\n" + +#: builtins/type.def:274 +#, c-format +msgid "%s is a function\n" +msgstr "%s je funkce\n" + +#: builtins/type.def:296 +#, c-format +msgid "%s is a shell builtin\n" +msgstr "%s je součást shellu\n" + +#: builtins/type.def:317 builtins/type.def:391 +#, c-format +msgid "%s is %s\n" +msgstr "%s je %s\n" + +#: builtins/type.def:337 +#, c-format +msgid "%s is hashed (%s)\n" +msgstr "%s je zahashován (%s)\n" + +#: builtins/ulimit.def:372 +#, c-format +msgid "%s: invalid limit argument" +msgstr "%s: chybný argument s limitou" + +#: builtins/ulimit.def:398 +#, c-format +msgid "`%c': bad command" +msgstr "„%c“: chybný příkaz" + +#: builtins/ulimit.def:427 +#, c-format +msgid "%s: cannot get limit: %s" +msgstr "%s: limit nelze zjistit: %s" + +#: builtins/ulimit.def:453 +msgid "limit" +msgstr "limit" + +#: builtins/ulimit.def:465 builtins/ulimit.def:765 +#, c-format +msgid "%s: cannot modify limit: %s" +msgstr "%s: limit nelze změnit: %s" + +#: builtins/umask.def:118 +msgid "octal number" +msgstr "osmičkové číslo" + +#: builtins/umask.def:231 +#, c-format +msgid "`%c': invalid symbolic mode operator" +msgstr "„%c“: chybný operátor symbolických práv" + +#: builtins/umask.def:286 +#, c-format +msgid "`%c': invalid symbolic mode character" +msgstr "„%c“: chybný znak symbolický práv " + +#: error.c:89 error.c:320 error.c:322 error.c:324 +msgid " line " +msgstr " řádek " + +#: error.c:164 +#, c-format +msgid "last command: %s\n" +msgstr "poslední příkaz: %s\n" + +#: error.c:172 +#, c-format +msgid "Aborting..." +msgstr "Ukončuji…" + +#: error.c:405 +msgid "unknown command error" +msgstr "chyba neznámého příkazu" + +#: error.c:406 +msgid "bad command type" +msgstr "chybný druh příkazu" + +#: error.c:407 +msgid "bad connector" +msgstr "chybný konektor" + +#: error.c:408 +msgid "bad jump" +msgstr "chybný skok" + +#: error.c:446 +#, c-format +msgid "%s: unbound variable" +msgstr "%s: nevázaná proměnná" + +#: eval.c:181 +#, c-format +msgid "\atimed out waiting for input: auto-logout\n" +msgstr "\ačasový limit pro čekání na vstup vyprÅ¡el: automatické odhlášení\n" + +#: execute_cmd.c:491 +#, c-format +msgid "cannot redirect standard input from /dev/null: %s" +msgstr "standardní vstup nelze přesměrovat z /dev/null: %s" + +#: execute_cmd.c:1091 +#, c-format +msgid "TIMEFORMAT: `%c': invalid format character" +msgstr "TIMEFORMAT: „%c“: chybný formátovací znak" + +#: execute_cmd.c:1942 +msgid "pipe error" +msgstr "chyba v rouře" + +#: execute_cmd.c:4276 +#, c-format +msgid "%s: restricted: cannot specify `/' in command names" +msgstr "%s: omezeno: v názvu příkazu nesmí být „/“" + +#: execute_cmd.c:4367 +#, c-format +msgid "%s: command not found" +msgstr "%s: příkaz nenalezen" + +#: execute_cmd.c:4621 +#, c-format +msgid "%s: %s: bad interpreter" +msgstr "%s: %s: chybný interpretr" + +#: execute_cmd.c:4770 +#, c-format +msgid "cannot duplicate fd %d to fd %d" +msgstr "deskriptor souboru %d nelze duplikovat na deskriptor %d" + +#: expr.c:241 +msgid "expression recursion level exceeded" +msgstr "úroveň rekurze výrazu byla překročena" + +#: expr.c:265 +msgid "recursion stack underflow" +msgstr "zásobník rekurze podtekl" + +#: expr.c:379 +msgid "syntax error in expression" +msgstr "syntaktická chyba ve výrazu" + +#: expr.c:419 +msgid "attempted assignment to non-variable" +msgstr "pokus o přiřazení do ne-proměnné" + +#: expr.c:440 expr.c:445 expr.c:756 +msgid "division by 0" +msgstr "dělení nulou" + +#: expr.c:471 +msgid "bug: bad expassign token" +msgstr "chyba: chybný expassing token" + +#: expr.c:513 +msgid "`:' expected for conditional expression" +msgstr "v podmíněném výrazu očekávána „:“" + +#: expr.c:781 +msgid "exponent less than 0" +msgstr "mocnitel menší než 0" + +#: expr.c:826 +msgid "identifier expected after pre-increment or pre-decrement" +msgstr "po přednostním zvýšení nebo snížení očekáván identifikátor" + +#: expr.c:854 +msgid "missing `)'" +msgstr "postrádám „)“" + +#: expr.c:897 expr.c:1175 +msgid "syntax error: operand expected" +msgstr "syntaktická chyba: očekáván operand" + +#: expr.c:1177 +msgid "syntax error: invalid arithmetic operator" +msgstr "syntaktická chyba: chybný aritmetický operátor" + +#: expr.c:1201 +#, c-format +msgid "%s%s%s: %s (error token is \"%s\")" +msgstr "%s%s%s: %s (chybný token je „%s“)" + +#: expr.c:1259 +msgid "invalid arithmetic base" +msgstr "chybný aritmetický základ" + +#: expr.c:1279 +msgid "value too great for base" +msgstr "hodnot je pro základ příliÅ¡ velká" + +#: expr.c:1328 +#, c-format +msgid "%s: expression error\n" +msgstr "%s: chyba výrazu\n" + +#: general.c:61 +msgid "getcwd: cannot access parent directories" +msgstr "getcwd: rodičovské adresáře nejsou přístupné" + +#: input.c:94 subst.c:4559 +#, c-format +msgid "cannot reset nodelay mode for fd %d" +msgstr "na deskriptoru %d nelze resetovat režim nodelay" + +#: input.c:258 +#, c-format +msgid "cannot allocate new file descriptor for bash input from fd %d" +msgstr "nový deskriptor souboru pro vstup bashe z deskr. %d nelze alokovat" + +#: input.c:266 +#, c-format +msgid "save_bash_input: buffer already exists for new fd %d" +msgstr "save_bash_input: buffer již pro nový deskriptor %d existuje" + +#: jobs.c:466 +msgid "start_pipeline: pgrp pipe" +msgstr "start_pipeline: pgrp roury" + +#: jobs.c:882 +#, c-format +msgid "forked pid %d appears in running job %d" +msgstr "forknutý PID %d se objevil v běžící úloze %d" + +#: jobs.c:1000 +#, c-format +msgid "deleting stopped job %d with process group %ld" +msgstr "mažu pozastavenou úlohu %d se skupinou procesů %ld" + +# FIXME: in the_pipeline znamená do nebo v? +#: jobs.c:1105 +#, fuzzy, c-format +msgid "add_process: process %5ld (%s) in the_pipeline" +msgstr "add_process: proces %5ld (%s) do the_pipeline" + +#: jobs.c:1108 +#, c-format +msgid "add_process: pid %5ld (%s) marked as still alive" +msgstr "add_process: PID %5ld (%s) označen za stále živého" + +#: jobs.c:1396 +#, c-format +msgid "describe_pid: %ld: no such pid" +msgstr "describe_pid: %ld: žádný takový PID" + +#: jobs.c:1411 +#, c-format +msgid "Signal %d" +msgstr "Signál %d" + +# FIXME: rod a zkontrolovat následující +#: jobs.c:1425 jobs.c:1450 +msgid "Done" +msgstr "Dokonán" + +#: jobs.c:1430 siglist.c:122 +msgid "Stopped" +msgstr "Pozastaven" + +#: jobs.c:1434 +#, c-format +msgid "Stopped(%s)" +msgstr "Pozastaven (%s)" + +#: jobs.c:1438 +msgid "Running" +msgstr "Běží" + +#: jobs.c:1452 +#, c-format +msgid "Done(%d)" +msgstr "Dokonán (%d)" + +# FIXME: Jedná se o způsob ukončení zavoláním funkce exit(%d)? +#: jobs.c:1454 +#, fuzzy, c-format +msgid "Exit %d" +msgstr "Exit %d" + +#: jobs.c:1457 +msgid "Unknown status" +msgstr "Stav neznámý" + +#: jobs.c:1544 +#, c-format +msgid "(core dumped) " +msgstr "(core dumped [obraz paměti uložen]) " + +#: jobs.c:1563 +#, c-format +msgid " (wd: %s)" +msgstr " (cwd: %s)" + +#: jobs.c:1766 +#, c-format +msgid "child setpgid (%ld to %ld)" +msgstr "setpgid na potomku (z %ld na %ld)" + +#: jobs.c:2094 nojobs.c:576 +#, c-format +msgid "wait: pid %ld is not a child of this shell" +msgstr "wait: PID %ld není potomkem tohoto shellu" + +#: jobs.c:2321 +#, c-format +msgid "wait_for: No record of process %ld" +msgstr "wait_for: Žádný záznam o procesu %ld" + +#: jobs.c:2593 +#, c-format +msgid "wait_for_job: job %d is stopped" +msgstr "wait_for_job: úloha %d je pozastavena" + +#: jobs.c:2815 +#, c-format +msgid "%s: job has terminated" +msgstr "%s: úloha skončila" + +#: jobs.c:2824 +#, c-format +msgid "%s: job %d already in background" +msgstr "%s: úloha %d je již na pozadí" + +#: jobs.c:3487 +#, c-format +msgid "%s: line %d: " +msgstr "%s: řádek %d: " + +#: jobs.c:3501 nojobs.c:805 +#, c-format +msgid " (core dumped)" +msgstr " (core dumped [obraz paměti uložen])" + +#: jobs.c:3513 jobs.c:3526 +#, c-format +msgid "(wd now: %s)\n" +msgstr "(cwd nyní: %s)\n" + +#: jobs.c:3558 +msgid "initialize_job_control: getpgrp failed" +msgstr "initialize_job_control: getpgrp selhalo" + +#: jobs.c:3618 +msgid "initialize_job_control: line discipline" +msgstr "initialize_job_control: disciplína linky" + +#: jobs.c:3628 +msgid "initialize_job_control: setpgid" +msgstr "initialize_job_control: setpgid" + +#: jobs.c:3656 +#, c-format +msgid "cannot set terminal process group (%d)" +msgstr "nelze nastavit skupinu procesů terminálu (%d)" + +#: jobs.c:3661 +msgid "no job control in this shell" +msgstr "žádná správa úloh v tomto shellu" + +#: lib/malloc/malloc.c:296 +#, c-format +msgid "malloc: failed assertion: %s\n" +msgstr "malloc: předpoklad nesplněn: %s\n" + +#: lib/malloc/malloc.c:312 +#, c-format +msgid "" +"\r\n" +"malloc: %s:%d: assertion botched\r\n" +msgstr "" +"\r\n" +"malloc: %s:%d: zbabraný předpoklad\r\n" + +#: lib/malloc/malloc.c:313 +#, fuzzy +msgid "unknown" +msgstr "není známo" + +#: lib/malloc/malloc.c:797 +msgid "malloc: block on free list clobbered" +msgstr "malloc: blok v seznamu uvolněných zbit" + +#: lib/malloc/malloc.c:874 +msgid "free: called with already freed block argument" +msgstr "free: zavoláno s argumentem již uvolněného bloku" + +#: lib/malloc/malloc.c:877 +msgid "free: called with unallocated block argument" +msgstr "free: zavoláno s argumentem nenaalokovaného bloku" + +#: lib/malloc/malloc.c:896 +msgid "free: underflow detected; mh_nbytes out of range" +msgstr "free: zjiÅ¡těno podtečení, mh_nbytes mimo rozsah" + +#: lib/malloc/malloc.c:902 +msgid "free: start and end chunk sizes differ" +msgstr "free: velikosti počátečního a koncového kusu se liší" + +#: lib/malloc/malloc.c:1001 +msgid "realloc: called with unallocated block argument" +msgstr "realloc: zavoláno s argumentem nenaalokovaného bloku" + +#: lib/malloc/malloc.c:1016 +msgid "realloc: underflow detected; mh_nbytes out of range" +msgstr "realloc: zjiÅ¡těno podtečení, mh_nbytes mimo rozsah" + +#: lib/malloc/malloc.c:1022 +msgid "realloc: start and end chunk sizes differ" +msgstr "realloc: velikosti počátečního a koncového kusu se liší" + +#: lib/malloc/table.c:177 +#, c-format +msgid "register_alloc: alloc table is full with FIND_ALLOC?\n" +msgstr "register_alloc: tabulka alokací je plná FIND_ALLOC?\n" + +#: lib/malloc/table.c:184 +#, c-format +msgid "register_alloc: %p already in table as allocated?\n" +msgstr "register_alloc: %p již obsažen v tabulce jako alokovaný?\n" + +#: lib/malloc/table.c:220 +#, c-format +msgid "register_free: %p already in table as free?\n" +msgstr "register_free: %p již obsažen v tabulce jako volný?\n" + +#: lib/sh/fmtulong.c:101 +msgid "invalid base" +msgstr "chybný základ" + +#: lib/sh/netopen.c:168 +#, c-format +msgid "%s: host unknown" +msgstr "%s: stroj není znám" + +#: lib/sh/netopen.c:175 +#, c-format +msgid "%s: invalid service" +msgstr "%s: chybná služba" + +#: lib/sh/netopen.c:306 +#, c-format +msgid "%s: bad network path specification" +msgstr "%s: chybné určení síťové cesty" + +#: lib/sh/netopen.c:346 +msgid "network operations not supported" +msgstr "síťové operace nejsou podporovány" + +#: mailcheck.c:433 +msgid "You have mail in $_" +msgstr "V $_ máte poÅ¡tu" + +#: mailcheck.c:458 +msgid "You have new mail in $_" +msgstr "V $_ máte novou poÅ¡tu" + +#: mailcheck.c:474 +#, c-format +msgid "The mail in %s has been read\n" +msgstr "PoÅ¡ta v %s je přečtená\n" + +#: make_cmd.c:322 +msgid "syntax error: arithmetic expression required" +msgstr "chyba syntaxe: vyžadován aritmetický výraz" + +#: make_cmd.c:324 +msgid "syntax error: `;' unexpected" +msgstr "chyba syntaxe: neočekávaný „;“" + +#: make_cmd.c:325 +#, c-format +msgid "syntax error: `((%s))'" +msgstr "chyba syntaxe: „((%s))“" + +#: make_cmd.c:567 +#, c-format +msgid "make_here_document: bad instruction type %d" +msgstr "make_here_document: chybný druh instrukce %d" + +#: make_cmd.c:651 +#, c-format +msgid "here-document at line %d delimited by end-of-file (wanted `%s')" +msgstr "„here“ dokument na řádku %d ukončen koncem souboru (požadováno „%s“)" + +#: make_cmd.c:746 +#, c-format +msgid "make_redirection: redirection instruction `%d' out of range" +msgstr "make_redirection: instrukce přesměrování „%d“ mimo rozsah" + +#: parse.y:2986 parse.y:3218 +#, c-format +msgid "unexpected EOF while looking for matching `%c'" +msgstr "neočekávaný konec souboru při hledání znaku odpovídajícímu „%c“" + +#: parse.y:3722 +msgid "unexpected EOF while looking for `]]'" +msgstr "neočekávaný konec souboru při hledání „]]“" + +# XXX: Condional means condition (adj.) probably. Can English distinguish +# between the condition (podmínkový) and the code branch (podmíněný)? Check +# for all "conditional" string occurences. +#: parse.y:3727 +#, c-format +msgid "syntax error in conditional expression: unexpected token `%s'" +msgstr "chyba syntaxe ve výrazu podmínky: neočekávaný token „%s“" + +#: parse.y:3731 +msgid "syntax error in conditional expression" +msgstr "chyba syntaxe ve výrazu podmínky" + +#: parse.y:3809 +#, c-format +msgid "unexpected token `%s', expected `)'" +msgstr "neočekávaný token „%s“, očekávána „)“" + +#: parse.y:3813 +msgid "expected `)'" +msgstr "očekávána „)“" + +#: parse.y:3841 +#, c-format +msgid "unexpected argument `%s' to conditional unary operator" +msgstr "neočekávaný argument „%s“ u podmínkového unárního operátoru" + +#: parse.y:3845 +msgid "unexpected argument to conditional unary operator" +msgstr "neočekávaný argument u podmínkového unárního operátoru" + +#: parse.y:3885 +#, c-format +msgid "unexpected token `%s', conditional binary operator expected" +msgstr "neočekávaný token „%s“, očekáván podmínkový binární operátor" + +#: parse.y:3889 +msgid "conditional binary operator expected" +msgstr "očekáván podmínkový binární operátor" + +#: parse.y:3906 +#, c-format +msgid "unexpected argument `%s' to conditional binary operator" +msgstr "neočekávaný argument „%s„ u podmínkového binárního operátoru" + +#: parse.y:3910 +msgid "unexpected argument to conditional binary operator" +msgstr "neočekávaný argument u podmínkového binárního operátoru" + +#: parse.y:3921 +#, c-format +msgid "unexpected token `%c' in conditional command" +msgstr "neočekávaný token „%c“ v podmínkovém příkazu" + +#: parse.y:3924 +#, c-format +msgid "unexpected token `%s' in conditional command" +msgstr "neočekávaný token „%s“ v podmínkovém příkazu" + +#: parse.y:3928 +#, c-format +msgid "unexpected token %d in conditional command" +msgstr "neočekávaný token %d v podmínkovém příkazu" + +#: parse.y:5195 +#, c-format +msgid "syntax error near unexpected token `%s'" +msgstr "chyba syntaxe poblíž neočekávaného tokenu „%s“" + +#: parse.y:5213 +#, c-format +msgid "syntax error near `%s'" +msgstr "chyba syntaxe poblíž „%s“" + +#: parse.y:5223 +msgid "syntax error: unexpected end of file" +msgstr "chyba syntaxe: nenadálý konec souboru" + +#: parse.y:5223 +msgid "syntax error" +msgstr "chyba syntaxe" + +#: parse.y:5285 +#, c-format +msgid "Use \"%s\" to leave the shell.\n" +msgstr "Shell lze ukončit příkazem „%s“.\n" + +#: parse.y:5447 +msgid "unexpected EOF while looking for matching `)'" +msgstr "nenadálý konec souboru při hledání odpovídající „)“" + +#: pcomplete.c:1016 +#, c-format +msgid "completion: function `%s' not found" +msgstr "doplňování: funkce „%s“ nenalezena" + +#: pcomplib.c:179 +#, c-format +msgid "progcomp_insert: %s: NULL COMPSPEC" +msgstr "progcomp_insert: %s: NULLOVÝ COMPSPEC" + +#: print_cmd.c:287 +#, c-format +msgid "print_command: bad connector `%d'" +msgstr "print_command: chybná propojka „%d“" + +#: print_cmd.c:1347 +#, c-format +msgid "cprintf: `%c': invalid format character" +msgstr "cprintf: „%c“: chybný formátovací znak" + +#: redir.c:105 +msgid "file descriptor out of range" +msgstr "deskriptor souboru mimo rozsah" + +#: redir.c:148 +#, c-format +msgid "%s: ambiguous redirect" +msgstr "%s: nejednoznačné přesměrování" + +#: redir.c:152 +#, c-format +msgid "%s: cannot overwrite existing file" +msgstr "%s: existující soubor nelze přepsat" + +#: redir.c:157 +#, c-format +msgid "%s: restricted: cannot redirect output" +msgstr "%s: omezeno: výstup nelze přesměrovat" + +#: redir.c:162 +#, c-format +msgid "cannot create temp file for here-document: %s" +msgstr "pro „here“ dokument nelze vytvořit dočasný soubor: %s" + +#: redir.c:517 +msgid "/dev/(tcp|udp)/host/port not supported without networking" +msgstr "/dev/(tcp|udp)/host/port není bez síťování podporováno" + +#: redir.c:1023 +msgid "redirection error: cannot duplicate fd" +msgstr "chyba přesměrování: deskriptor souboru nelze duplikovat" + +#: shell.c:328 +msgid "could not find /tmp, please create!" +msgstr "nelze nalézt /tmp, vytvořte jej, prosím!" + +#: shell.c:332 +msgid "/tmp must be a valid directory name" +msgstr "/tmp musí být platným názvem pro adresář" + +#: shell.c:876 +#, c-format +msgid "%c%c: invalid option" +msgstr "%c%c: chybný přepínač" + +#: shell.c:1638 +msgid "I have no name!" +msgstr "Nemám žádné jméno!" + +#: shell.c:1778 +#, c-format +msgid "GNU bash, version %s-(%s)\n" +msgstr "GNU bash, verze %s-(%s)\n" + +#: shell.c:1779 +#, c-format +msgid "" +"Usage:\t%s [GNU long option] [option] ...\n" +"\t%s [GNU long option] [option] script-file ...\n" +msgstr "" +"Použití:\t%s [Dlouhý GNU přepínač] [přepínač]…\n" +"\t%s [Dlouhý GNU přepínač] [přepínač] skriptový_soubor…\n" + +#: shell.c:1781 +msgid "GNU long options:\n" +msgstr "Dlouhé GNU přepínače:\n" + +#: shell.c:1785 +msgid "Shell options:\n" +msgstr "Přepínače shellu:\n" + +#: shell.c:1786 +msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n" +msgstr "\t-irsD nebo -c příkaz nebo -O shopt_přepínač\t(pouze při vyvolání)\n" + +#: shell.c:1801 +#, c-format +msgid "\t-%s or -o option\n" +msgstr "\t-%s nebo -o přepínač\n" + +#: shell.c:1807 +#, c-format +msgid "Type `%s -c \"help set\"' for more information about shell options.\n" +msgstr "" +"Podrobnosti o přepínačích shellu získáte tím, že napíšete „%s -c \"help set" +"\"“.\n" + +#: shell.c:1808 +#, c-format +msgid "Type `%s -c help' for more information about shell builtin commands.\n" +msgstr "" +"Podrobnosti o příkazech vestavěných do shellu získáte tím, že\n" +"napiÅ¡te „%s -c help“.\n" + +#: shell.c:1809 +#, c-format +msgid "Use the `bashbug' command to report bugs.\n" +msgstr "Chyby nahlásíte příkazem „bashbug“.\n" + +#: sig.c:583 +#, c-format +msgid "sigprocmask: %d: invalid operation" +msgstr "sigprocmask: %d: neplatná operace" + +#: siglist.c:47 +msgid "Bogus signal" +msgstr "FaleÅ¡ný signál" + +# Překlady názvů signálů převzaty (s mírnými úpravami) z české překladu +# manuálové stránky signal(7). +#: siglist.c:50 +msgid "Hangup" +msgstr "Linka terminálu zavěšena" + +# FIXME: rod a následující +#: siglist.c:54 +#, fuzzy +msgid "Interrupt" +msgstr "PřeruÅ¡ení" + +#: siglist.c:58 +msgid "Quit" +msgstr "Ukončení" + +#: siglist.c:62 +msgid "Illegal instruction" +msgstr "Neplatní instrukce" + +#: siglist.c:66 +msgid "BPT trace/trap" +msgstr "PřeruÅ¡ení při ladění" + +#: siglist.c:74 +msgid "ABORT instruction" +msgstr "Ukončení funkcí abort()" + +#: siglist.c:78 +msgid "EMT instruction" +msgstr "Instrukce EMT" + +#: siglist.c:82 +msgid "Floating point exception" +msgstr "Výjimka při práci s pohyblivou řádovou čárkou" + +#: siglist.c:86 +msgid "Killed" +msgstr "Zabit" + +#: siglist.c:90 +msgid "Bus error" +msgstr "Chyba sběrnice" + +#: siglist.c:94 +msgid "Segmentation fault" +msgstr "Chyba segmentace" + +#: siglist.c:98 +msgid "Bad system call" +msgstr "Å patné volání systému" + +#: siglist.c:102 +msgid "Broken pipe" +msgstr "Z roury nikdo nečte" + +#: siglist.c:106 +msgid "Alarm clock" +msgstr "Signál časovače" + +#: siglist.c:110 +msgid "Terminated" +msgstr "Ukončit" + +#: siglist.c:114 +msgid "Urgent IO condition" +msgstr "Čekají urgentní I/O data" + +#: siglist.c:118 +msgid "Stopped (signal)" +msgstr "Pozastaveno (signálem)" + +#: siglist.c:126 +msgid "Continue" +msgstr "Pokračovat" + +#: siglist.c:134 +msgid "Child death or stop" +msgstr "Potomek byl pozastaven nebo zemřel" + +#: siglist.c:138 +msgid "Stopped (tty input)" +msgstr "Pozastaveno (vstupem TTY)" + +#: siglist.c:142 +msgid "Stopped (tty output)" +msgstr "Pozastaveno (výstupem na TTY)" + +#: siglist.c:146 +msgid "I/O ready" +msgstr "I/O je připraveno" + +#: siglist.c:150 +msgid "CPU limit" +msgstr "Dosažen limit procesorového času" + +#: siglist.c:154 +msgid "File limit" +msgstr "Dosažen limit velikosti souboru" + +#: siglist.c:158 +msgid "Alarm (virtual)" +msgstr "Časovač (virtuální)" + +#: siglist.c:162 +msgid "Alarm (profile)" +msgstr "Časovač (profilovací)" + +#: siglist.c:166 +msgid "Window changed" +msgstr "Změna okna" + +# FIXME: WTF? +# „Zámek záznamu“ nebo „Zaznamenej zámek“ +#: siglist.c:170 +#, fuzzy +msgid "Record lock" +msgstr "Zámek záznamu" + +#: siglist.c:174 +msgid "User signal 1" +msgstr "Uživatelský signal 1" + +#: siglist.c:178 +msgid "User signal 2" +msgstr "Uživatelský signál 2" + +# FIXME: HFT znamená High Frequency Timer? Zkontrolovat i další výskyty +#: siglist.c:182 +msgid "HFT input data pending" +msgstr "vstupní data HFT čekají" + +#: siglist.c:186 +msgid "power failure imminent" +msgstr "hrozí selhání napájení" + +#: siglist.c:190 +msgid "system crash imminent" +msgstr "hrozí selhání systému" + +#: siglist.c:194 +msgid "migrate process to another CPU" +msgstr "přesunout proces na jiný procesor" + +#: siglist.c:198 +msgid "programming error" +msgstr "chyba programování" + +#: siglist.c:202 +msgid "HFT monitor mode granted" +msgstr "Režim HFT sledování přidělen" + +#: siglist.c:206 +msgid "HFT monitor mode retracted" +msgstr "Režim HFT sledování odebrán" + +#: siglist.c:210 +msgid "HFT sound sequence has completed" +msgstr "HFT zvuková posloupnost byla dokončena" + +#: siglist.c:214 +msgid "Information request" +msgstr "Požadavek o informaci" + +#: siglist.c:222 +msgid "Unknown Signal #" +msgstr "Neznámé číslo signálu" + +#: siglist.c:224 +#, c-format +msgid "Unknown Signal #%d" +msgstr "Neznámý signál č. %d" + +#: subst.c:1181 subst.c:1302 +#, c-format +msgid "bad substitution: no closing `%s' in %s" +msgstr "chybná substituce: v %2$s chybí uzavírací „%1$s“" + +#: subst.c:2458 +#, c-format +msgid "%s: cannot assign list to array member" +msgstr "%s: seznam nelze přiřadit do prvku pole" + +#: subst.c:4456 subst.c:4472 +msgid "cannot make pipe for process substitution" +msgstr "nelze vyrobit rouru za účelem substituce procesu" + +#: subst.c:4504 +msgid "cannot make child for process substitution" +msgstr "nelze vytvořit potomka za účelem substituce procesu" + +#: subst.c:4549 +#, c-format +msgid "cannot open named pipe %s for reading" +msgstr "pojmenovanou rouru %s nelze otevřít pro čtení" + +#: subst.c:4551 +#, c-format +msgid "cannot open named pipe %s for writing" +msgstr "pojmenovanou rouru %s nelze otevřít pro zápis" + +#: subst.c:4569 +#, c-format +msgid "cannot duplicate named pipe %s as fd %d" +msgstr "pojmenovanou rouru %s nelze zdvojit jako deskriptor %d" + +#: subst.c:4765 +msgid "cannot make pipe for command substitution" +msgstr "nelze vytvořit rouru pro substituci příkazu" + +#: subst.c:4799 +msgid "cannot make child for command substitution" +msgstr "nelze vytvořit potomka pro substituci příkazu" + +#: subst.c:4816 +msgid "command_substitute: cannot duplicate pipe as fd 1" +msgstr "command_substitute: rouru nelze zdvojit jako deskriptor 1" + +#: subst.c:5318 +#, c-format +msgid "%s: parameter null or not set" +msgstr "%s: parametr null nebo nenastaven" + +#: subst.c:5608 +#, c-format +msgid "%s: substring expression < 0" +msgstr "%s: výraz podřetězce < 0" + +#: subst.c:6660 +#, c-format +msgid "%s: bad substitution" +msgstr "%s: chybná substituce" + +#: subst.c:6740 +#, c-format +msgid "$%s: cannot assign in this way" +msgstr "$%s: takto nelze přiřazovat" + +#: subst.c:7479 +#, c-format +msgid "bad substitution: no closing \"`\" in %s" +msgstr "chybná substituce: v %s chybí uzavírací „`“" + +#: subst.c:8354 +#, c-format +msgid "no match: %s" +msgstr "žádná shoda: %s" + +#: test.c:145 +msgid "argument expected" +msgstr "očekáván argument" + +#: test.c:154 +#, c-format +msgid "%s: integer expression expected" +msgstr "%s: očekáván celočíselný výraz" + +#: test.c:262 +msgid "`)' expected" +msgstr "očekávána „)“" + +#: test.c:264 +#, c-format +msgid "`)' expected, found %s" +msgstr "očekávána „)“, nalezeno %s" + +#: test.c:279 test.c:688 test.c:691 +#, c-format +msgid "%s: unary operator expected" +msgstr "%s: očekáván unární operátor" + +#: test.c:444 test.c:731 +#, c-format +msgid "%s: binary operator expected" +msgstr "%s: očekáván binární operátor" + +#: test.c:806 +msgid "missing `]'" +msgstr "postrádám „]“" + +#: trap.c:201 +msgid "invalid signal number" +msgstr "neplatné číslo signálu" + +#: trap.c:324 +#, c-format +msgid "run_pending_traps: bad value in trap_list[%d]: %p" +msgstr "run_pending_traps: chybná hodnota v trap_list[%d]: %p" + +#: trap.c:328 +#, c-format +msgid "" +"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself" +msgstr "run_pending_traps: obsluha signálu je SIG_DFL, přeposílám %d (%s) sobě" + +#: trap.c:372 +#, c-format +msgid "trap_handler: bad signal %d" +msgstr "trap_handler: chybný signál %d" + +#: variables.c:358 +#, c-format +msgid "error importing function definition for `%s'" +msgstr "chyba při importu definice „%s“" + +#: variables.c:736 +#, c-format +msgid "shell level (%d) too high, resetting to 1" +msgstr "úroveň shellu (%d) příliÅ¡ vysoká, resetuji na 1" + +#: variables.c:1898 +msgid "make_local_variable: no function context at current scope" +msgstr "make_local_variable: žádný kontext funkce v aktuálním rozsahu" + +#: variables.c:3127 +msgid "all_local_variables: no function context at current scope" +msgstr "all_local_variables: žádný kontext funkce v aktuálním rozsahu" + +#: variables.c:3344 variables.c:3353 +#, c-format +msgid "invalid character %d in exportstr for %s" +msgstr "neplatný znak %d v exportstr pro %s" + +#: variables.c:3359 +#, c-format +msgid "no `=' in exportstr for %s" +msgstr "v exportstr pro %s chybí „=“" + +#: variables.c:3794 +msgid "pop_var_context: head of shell_variables not a function context" +msgstr "pop_var_context: hlava shell_variables není kontextem funkce" + +#: variables.c:3807 +msgid "pop_var_context: no global_variables context" +msgstr "pop_var_context: chybí kontext global_variables" + +#: variables.c:3881 +msgid "pop_scope: head of shell_variables not a temporary environment scope" +msgstr "pop_scope: hlava shell_variables není dočasným rozsahem prostředí" + +#: version.c:46 +#, fuzzy +msgid "Copyright (C) 2009 Free Software Foundation, Inc." +msgstr "Copyright © 2008 Free Software Foundation, Inc." + +#: version.c:47 +msgid "" +"License GPLv3+: GNU GPL version 3 or later \n" +msgstr "" +"Licence GPLv3+: GNU GPL verze 3 nebo novější \n" + +#: version.c:86 +#, c-format +msgid "GNU bash, version %s (%s)\n" +msgstr "GNU bash, verze %s (%s)\n" + +#: version.c:91 +#, c-format +msgid "This is free software; you are free to change and redistribute it.\n" +msgstr "Toto je svobodné programové vybavení: máte právo jej měnit a šířit.\n" + +#: version.c:92 +#, c-format +msgid "There is NO WARRANTY, to the extent permitted by law.\n" +msgstr "VEÅ KERÉ ZÁRUKY chybí, jak jen zákon dovoluje.\n" + +#: xmalloc.c:92 +#, c-format +msgid "xmalloc: cannot allocate %lu bytes (%lu bytes allocated)" +msgstr "xmalloc: nelze alokovat %'lu bajtů (%'lu bajtů alokováno)" + +#: xmalloc.c:94 +#, c-format +msgid "xmalloc: cannot allocate %lu bytes" +msgstr "xmalloc: nezle alokovat %'lu bajtů" + +#: xmalloc.c:114 +#, c-format +msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)" +msgstr "xrealloc: nelze přealokovat %'lu bajtů (%'lu bajtů alokováno)" + +#: xmalloc.c:116 +#, c-format +msgid "xrealloc: cannot allocate %lu bytes" +msgstr "xrealloc: nelze alokovat %'lu bajtů" + +#: xmalloc.c:150 +#, c-format +msgid "xmalloc: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)" +msgstr "xmalloc: %s:%d: nelze alokovat %'lu bajtů (%'lu bajtů alokováno)" + +#: xmalloc.c:152 +#, c-format +msgid "xmalloc: %s:%d: cannot allocate %lu bytes" +msgstr "xmalloc: %s:%d: nelze alokovat %'lu bajtů" + +#: xmalloc.c:174 +#, c-format +msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)" +msgstr "xrealloc: %s:%d: nelze přealokovat %'lu bajtů (%'lu bajtů alokováno)" + +#: xmalloc.c:176 +#, c-format +msgid "xrealloc: %s:%d: cannot allocate %lu bytes" +msgstr "xrealloc: %s:%d: nelze alokovat %'lu bajtů" + +#: builtins.c:43 +msgid "alias [-p] [name[=value] ... ]" +msgstr "alias [-p] [název[=hodnota] …]" + +#: builtins.c:47 +msgid "unalias [-a] name [name ...]" +msgstr "unalias [-a] název [název…]" + +#: builtins.c:51 +msgid "" +"bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-" +"x keyseq:shell-command] [keyseq:readline-function or readline-command]" +msgstr "" +"bind [-lpvsPVS] [-m klávmapa] [-f soubor] [-q název] [-u název] [-r " +"klávposl] [-x klávposl:příkaz-shellu] [klávposl:readline-funkce nebo " +"readline-příkaz]" + +#: builtins.c:54 +msgid "break [n]" +msgstr "break [n]" + +#: builtins.c:56 +msgid "continue [n]" +msgstr "continue [n]" + +#: builtins.c:58 +msgid "builtin [shell-builtin [arg ...]]" +msgstr "builtin [vestavěný-příkaz-shellu [argument…]]" + +#: builtins.c:61 +msgid "caller [expr]" +msgstr "caller [výraz]" + +#: builtins.c:64 +msgid "cd [-L|-P] [dir]" +msgstr "cd [-L|-P] [adr]" + +#: builtins.c:66 +msgid "pwd [-LP]" +msgstr "pwd [-LP]" + +#: builtins.c:68 +msgid ":" +msgstr ":" + +#: builtins.c:70 +msgid "true" +msgstr "true" + +#: builtins.c:72 +msgid "false" +msgstr "false" + +#: builtins.c:74 +msgid "command [-pVv] command [arg ...]" +msgstr "command [-pVv] příkaz [argument…]" + +#: builtins.c:76 +msgid "declare [-aAfFilrtux] [-p] [name[=value] ...]" +msgstr "declare [-aAfFilrtux] [-p] [název[=hodnota]…]" + +#: builtins.c:78 +msgid "typeset [-aAfFilrtux] [-p] name[=value] ..." +msgstr "typeset [-aAfFilrtux] [-p] název[=hodnota]…" + +#: builtins.c:80 +msgid "local [option] name[=value] ..." +msgstr "local [přepínač] název[=hodnota]…" + +#: builtins.c:83 +msgid "echo [-neE] [arg ...]" +msgstr "echo [-neE] [argument…]" + +#: builtins.c:87 +msgid "echo [-n] [arg ...]" +msgstr "echo [-n] [argument…]" + +#: builtins.c:90 +msgid "enable [-a] [-dnps] [-f filename] [name ...]" +msgstr "enable [-a] [-dnps] [-f soubor] [název…]" + +#: builtins.c:92 +msgid "eval [arg ...]" +msgstr "eval [argument…]" + +#: builtins.c:94 +msgid "getopts optstring name [arg]" +msgstr "getopts optstring name [argument]" + +#: builtins.c:96 +msgid "exec [-cl] [-a name] [command [arguments ...]] [redirection ...]" +msgstr "exec [-cl] [-a název] [příkaz [argument…]] [přesměrování…]" + +#: builtins.c:98 +msgid "exit [n]" +msgstr "exit [n]" + +#: builtins.c:100 +msgid "logout [n]" +msgstr "logout [n]" + +#: builtins.c:103 +msgid "fc [-e ename] [-lnr] [first] [last] or fc -s [pat=rep] [command]" +msgstr "" +"fc [-e enázev] [-lnr] [první] [poslední] nebo fc -s [vzor=náhrada] [příkaz]" + +#: builtins.c:107 +msgid "fg [job_spec]" +msgstr "fg [úloha]" + +#: builtins.c:111 +msgid "bg [job_spec ...]" +msgstr "bg [úloha…]" + +#: builtins.c:114 +msgid "hash [-lr] [-p pathname] [-dt] [name ...]" +msgstr "hash [-lr] [-p název_cesty] [-dt] [název…]" + +#: builtins.c:117 +msgid "help [-ds] [pattern ...]" +msgstr "help [-ds] [vzorek…]" + +#: builtins.c:121 +msgid "" +"history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg " +"[arg...]" +msgstr "" +"history [-c] [-d pozice] [n] nebo history -anrw [jméno_souboru] nebo history " +"-ps argument [argument…]" + +#: builtins.c:125 +msgid "jobs [-lnprs] [jobspec ...] or jobs -x command [args]" +msgstr "jobs [-lnprs] [úloha…] nebo jobs -x příkaz [argumenty]" + +#: builtins.c:129 +msgid "disown [-h] [-ar] [jobspec ...]" +msgstr "disown [-h] [-ar] [úloha…]" + +#: builtins.c:132 +msgid "" +"kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l " +"[sigspec]" +msgstr "" +"kill [-s sigspec | -n číssig | -sigspec] pid | úloha … nebo kill -l [sigspec]" + +#: builtins.c:134 +msgid "let arg [arg ...]" +msgstr "let argument [argument…]" + +#: builtins.c:136 +msgid "" +"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-p prompt] [-t " +"timeout] [-u fd] [name ...]" +msgstr "" +"read [-ers] [-a pole] [-d oddělovač] [-i text] [-n p_znaků] [-p výzva] [-t " +"limit] [-u fd] [jméno…]" + +#: builtins.c:138 +msgid "return [n]" +msgstr "return [n]" + +#: builtins.c:140 +msgid "set [--abefhkmnptuvxBCHP] [-o option-name] [arg ...]" +msgstr "set [--abefhkmnptuvxBCHP] [-o název_přepínače] [argument…]" + +#: builtins.c:142 +msgid "unset [-f] [-v] [name ...]" +msgstr "unset [-f] [-v] [jméno…]" + +#: builtins.c:144 +msgid "export [-fn] [name[=value] ...] or export -p" +msgstr "export [-fn] [název[=hodnota] …] nebo export -p" + +#: builtins.c:146 +msgid "readonly [-af] [name[=value] ...] or readonly -p" +msgstr "readonly [-af] [název[=hodnota] …] nebo readonly -p" + +#: builtins.c:148 +msgid "shift [n]" +msgstr "shift [n]" + +#: builtins.c:150 +msgid "source filename [arguments]" +msgstr "source název_souboru [argumenty]" + +#: builtins.c:152 +msgid ". filename [arguments]" +msgstr ". název_souboru [argumenty]" + +#: builtins.c:155 +msgid "suspend [-f]" +msgstr "suspend [-f]" + +#: builtins.c:158 +msgid "test [expr]" +msgstr "test [výraz]" + +#: builtins.c:160 +msgid "[ arg... ]" +msgstr "[ argument… ]" + +#: builtins.c:162 +msgid "times" +msgstr "times" + +#: builtins.c:164 +msgid "trap [-lp] [[arg] signal_spec ...]" +msgstr "trap [-lp] [[argument] signal_spec…]" + +#: builtins.c:166 +msgid "type [-afptP] name [name ...]" +msgstr "type [-afptP] název [název…]" + +#: builtins.c:169 +msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]" +msgstr "ulimit [-SHacdefilmnpqrstuvx] [limit]" + +#: builtins.c:172 +msgid "umask [-p] [-S] [mode]" +msgstr "umask [-p] [-S] [mód]" + +#: builtins.c:175 +msgid "wait [id]" +msgstr "wait [id]" + +#: builtins.c:179 +msgid "wait [pid]" +msgstr "wait [pid]" + +#: builtins.c:182 +msgid "for NAME [in WORDS ... ] ; do COMMANDS; done" +msgstr "for NÁZEV [in SLOVECH…] ; do PŘÍKAZY; done" + +#: builtins.c:184 +msgid "for (( exp1; exp2; exp3 )); do COMMANDS; done" +msgstr "for (( výr1; výr2; výr3 )); do PŘÍKAZY; done" + +#: builtins.c:186 +msgid "select NAME [in WORDS ... ;] do COMMANDS; done" +msgstr "select NÁZEV [in SLOVA…;] do PŘÍKAZY; done" + +#: builtins.c:188 +msgid "time [-p] pipeline" +msgstr "time [-p] kolona" + +#: builtins.c:190 +msgid "case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac" +msgstr "case SLOVO in [VZOR [| VZOR]…) PŘÍKAZY ;;]… esac" + +#: builtins.c:192 +msgid "" +"if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else " +"COMMANDS; ] fi" +msgstr "" +"if PŘÍKAZY; then PŘÍKAZY; [ elif PŘÍKAZY; then PŘÍKAZY; ]… [ else PŘÍKAZY; ] " +"fi" + +#: builtins.c:194 +msgid "while COMMANDS; do COMMANDS; done" +msgstr "while PŘÍKAZY; do PŘÍKAZY; done" + +#: builtins.c:196 +msgid "until COMMANDS; do COMMANDS; done" +msgstr "until PŘÍKAZY; do PŘÍKAZY; done" + +#: builtins.c:198 +msgid "function name { COMMANDS ; } or name () { COMMANDS ; }" +msgstr "function jméno { PŘÍKAZY ; } nebo jméno () { PŘÍKAZY ; }" + +#: builtins.c:200 +msgid "{ COMMANDS ; }" +msgstr "{ PŘÍKAZY ; }" + +#: builtins.c:202 +msgid "job_spec [&]" +msgstr "úloha [&]" + +#: builtins.c:204 +msgid "(( expression ))" +msgstr "(( výraz ))" + +#: builtins.c:206 +msgid "[[ expression ]]" +msgstr "[[ výraz ]]" + +# XXX: "variable" je literál na seznamy vestavěných příkazů +#: builtins.c:208 +msgid "variables - Names and meanings of some shell variables" +msgstr "variables – názvy a významy některých proměnných shellu" + +#: builtins.c:211 +msgid "pushd [-n] [+N | -N | dir]" +msgstr "pushd [-n] [+N | -N | adresář]" + +#: builtins.c:215 +msgid "popd [-n] [+N | -N]" +msgstr "popd [-n] [+N | -N]" + +#: builtins.c:219 +msgid "dirs [-clpv] [+N] [-N]" +msgstr "dirs [-clpv] [+N] [-N]" + +#: builtins.c:222 +msgid "shopt [-pqsu] [-o] [optname ...]" +msgstr "shopt [-pqsu] [-o] [název_volby…]" + +#: builtins.c:224 +msgid "printf [-v var] format [arguments]" +msgstr "printf [-v proměnná] formát [argumenty]" + +#: builtins.c:227 +msgid "" +"complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W " +"wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] " +"[name ...]" +msgstr "" +"complete [-abcdefgjksuv] [-pr] [-o přepínač] [-A akce] [-G globvzor] [-W " +"seznam_slov] [-F funkce] [-C příkaz] [-X filtrvzor] [-P předpona] [-S " +"přípona] [název…]" + +#: builtins.c:231 +msgid "" +"compgen [-abcdefgjksuv] [-o option] [-A action] [-G globpat] [-W wordlist] " +"[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]" +msgstr "" +"compgen [-abcdefgjksuv] [-o přepínač] [-A akce] [-G globvzor] [-W " +"seznam_slov] [-F funkce] [-C příkaz] [-X filtrvzor] [-P předpona] [-S " +"přípona] [slovo]" + +#: builtins.c:235 +msgid "compopt [-o|+o option] [name ...]" +msgstr "compopt [-o|+o přepínač] [název…]" + +#: builtins.c:238 +msgid "" +"mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c " +"quantum] [array]" +msgstr "" +"mapfile [-n počet] [-O počátek] [-s počet] [-t] [-u fd] [-C volání] [-c " +"množství] [pole]" + +#: builtins.c:250 +msgid "" +"Define or display aliases.\n" +" \n" +" Without arguments, `alias' prints the list of aliases in the reusable\n" +" form `alias NAME=VALUE' on standard output.\n" +" \n" +" Otherwise, an alias is defined for each NAME whose VALUE is given.\n" +" A trailing space in VALUE causes the next word to be checked for\n" +" alias substitution when the alias is expanded.\n" +" \n" +" Options:\n" +" -p\tPrint all defined aliases in a reusable format\n" +" \n" +" Exit Status:\n" +" alias returns true unless a NAME is supplied for which no alias has " +"been\n" +" defined." +msgstr "" +"Definuje nebo zobrazí aliasy.\n" +" \n" +" „alias“ bez argumentů vypíše na standardní výstup seznam aliasů ve " +"znovu\n" +" použitelném formátu NÁZEV=HODNOTA.\n" +" \n" +" Jinak bude definován alias pro každý NÁZEV, který má zadanou HODNOTU.\n" +" Závěrečná mezera v HODNOTĚ způsobí, že při expanzi bude následující " +"slovo\n" +" zkontrolováno na substituci aliasů.\n" +" \n" +" Přepínače:\n" +" -p\tVypíše vÅ¡echny definované aliasy ve znovu použitelném formátu\n" +" \n" +" Návratový kód:\n" +" alias vrátí pravdu, pokud nebyl zadán NÁZEV, pro který není žádný alias\n" +" definován." + +#: builtins.c:272 +msgid "" +"Remove each NAME from the list of defined aliases.\n" +" \n" +" Options:\n" +" -a\tremove all alias definitions.\n" +" \n" +" Return success unless a NAME is not an existing alias." +msgstr "" +"Odstraní každý NÁZEV ze seznamů definovaných aliasů.\n" +" \n" +" Přepínače:\n" +" -a\todstraní vÅ¡echny definice aliasů. \n" +" Vrací úspěch, pokud NÁZEV není neexistující alias." + +#: builtins.c:285 +msgid "" +"Set Readline key bindings and variables.\n" +" \n" +" Bind a key sequence to a Readline function or a macro, or set a\n" +" Readline variable. The non-option argument syntax is equivalent to\n" +" that found in ~/.inputrc, but must be passed as a single argument:\n" +" e.g., bind '\"\\C-x\\C-r\": re-read-init-file'.\n" +" \n" +" Options:\n" +" -m keymap Use KEYMAP as the keymap for the duration of this\n" +" command. Acceptable keymap names are emacs,\n" +" emacs-standard, emacs-meta, emacs-ctlx, vi, vi-" +"move,\n" +" vi-command, and vi-insert.\n" +" -l List names of functions.\n" +" -P List function names and bindings.\n" +" -p List functions and bindings in a form that can be\n" +" reused as input.\n" +" -S List key sequences that invoke macros and their " +"values\n" +" -s List key sequences that invoke macros and their " +"values\n" +" in a form that can be reused as input.\n" +" -V List variable names and values\n" +" -v List variable names and values in a form that can\n" +" be reused as input.\n" +" -q function-name Query about which keys invoke the named function.\n" +" -u function-name Unbind all keys which are bound to the named " +"function.\n" +" -r keyseq Remove the binding for KEYSEQ.\n" +" -f filename Read key bindings from FILENAME.\n" +" -x keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n" +" \t\t\t\tKEYSEQ is entered.\n" +" \n" +" Exit Status:\n" +" bind returns 0 unless an unrecognized option is given or an error occurs." +msgstr "" +"Nastaví klávesové zkratky a proměnné Readline.\n" +" \n" +" Naváže posloupnost kláves na Readline funkci nebo makro nebo nastaví\n" +" Readline proměnnou. Syntaxe nepřepínačových argumentů je shodná se\n" +" syntaxí ~/.inputrc, ale musí být zadána jako jediný argument:\n" +" např. bind '\"\\C-x\\C-r\": re-read-init-file'.\n" +" \n" +" Přepínače:\n" +" -m klávmapa Použije KLÁVMAPU jako klávesovou mapu pro trvání\n" +" tohoto příkazu. Možné klávesové mapy jsou emacs,\n" +" emacs-standard, emacs-meta, emacs-ctlx, vi, vi-" +"move,\n" +" vi-command a vi-insert.\n" +" -l Vypíše seznam názvů funkcí.\n" +" -P Vypíše seznam názvů funkcí a klávesových vazeb.\n" +" -p Vypíše seznam funkcí a klávesových vazeb ve " +"formátu,\n" +" který lze použít jako vstup.\n" +" -S Vypíše seznam posloupností kláves,\n" +" které vyvolávají makra, a jejich hodnoty.\n" +" -s Vypíše seznam posloupností kláves,\n" +" která vyvolávají makra, a jejich hodnoty ve " +"formátu,\n" +" který lze použít jako vstup. -" +"V Vypíše seznam názvů proměnných a hodnot.\n" +" -v Vypíše seznam názvů proměnných a hodnot ve " +"formátu,\n" +" který lze použít jako vstup.\n" +" -q název-funkce Dotáže se, které klávesy vyvolají zadanou funkci.\n" +" -u název-funkce Zruší vÅ¡echny vazby na klávesy, které jsou " +"napojeny\n" +" na zadanou funkci.\n" +" -r klávposl Odstraní vazbu na KLÁVPOSL.\n" +" -f soubor Načte vazby kláves ze SOUBORU.\n" +" -x klávposl:příkaz-shellu\n" +" Způsobí, že bude vykonán PŘÍKAZ-SHELLU, když bude\n" +" zadána KLÁVPOSL.\n" +" \n" +" Návratový kód:\n" +" bind vrací 0, pokud není zadán nerozpoznaný přepínač nebo nedojde " +"k chybě." + +#: builtins.c:322 +msgid "" +"Exit for, while, or until loops.\n" +" \n" +" Exit a FOR, WHILE or UNTIL loop. If N is specified, break N enclosing\n" +" loops.\n" +" \n" +" Exit Status:\n" +" The exit status is 0 unless N is not greater than or equal to 1." +msgstr "" +"Ukončí smyčku for, whle nebo until.\n" +" \n" +" Ukončí smyčku FOR, WHILE nebo UNTIL. Je-li zadáno N, ukončí N\n" +" obklopujících smyček.\n" +" \n" +" Návratový kód:\n" +" Návratový kód je 0, pokud N je větší nebo rovno 1." + +#: builtins.c:334 +msgid "" +"Resume for, while, or until loops.\n" +" \n" +" Resumes the next iteration of the enclosing FOR, WHILE or UNTIL loop.\n" +" If N is specified, resumes the Nth enclosing loop.\n" +" \n" +" Exit Status:\n" +" The exit status is 0 unless N is not greater than or equal to 1." +msgstr "" +"Obnoví smyčku for, while nebo until.\n" +" \n" +" Přejde k další iteraci obklopující smyčky FOR, WHILE nebo UNTIL.\n" +" Je-li zadáno N, bude tak učiněno v N. obklopující smyčce. \n" +" Návratový kód:\n" +" Návratový kód je 0, pokud N je větší nebo rovno 1." + +#: builtins.c:346 +msgid "" +"Execute shell builtins.\n" +" \n" +" Execute SHELL-BUILTIN with arguments ARGs without performing command\n" +" lookup. This is useful when you wish to reimplement a shell builtin\n" +" as a shell function, but need to execute the builtin within the " +"function.\n" +" \n" +" Exit Status:\n" +" Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is\n" +" not a shell builtin.." +msgstr "" +"Provede vestavěný příkaz shellu.\n" +" \n" +" Provede VESTAVĚNÝ-PŘÍKAZ-SHELLU s argumenty ARGUMENTY, aniž by se " +"uplatnilo\n" +" vyhledávání příkazu. Toto se hodí, když si přejete reimplementovat\n" +" vestavěný příkaz shellu jako funkci shellu, avÅ¡ak potřebujete spustit\n" +" vestavěný příkaz uvnitř této funkce.\n" +" \n" +" Návratový kód:\n" +" Vrací návratový kód VESTAVĚNÉHO-PŘÍKAZU-SHELLU, nebo nepravdu, pokud\n" +" VESTAVĚNÝ-PŘÍKAZ-SHELLU není vestavěným příkazem shellu." + +#: builtins.c:361 +msgid "" +"Return the context of the current subroutine call.\n" +" \n" +" Without EXPR, returns \"$line $filename\". With EXPR, returns\n" +" \"$line $subroutine $filename\"; this extra information can be used to\n" +" provide a stack trace.\n" +" \n" +" The value of EXPR indicates how many call frames to go back before the\n" +" current one; the top frame is frame 0.\n" +" \n" +" Exit Status:\n" +" Returns 0 unless the shell is not executing a shell function or EXPR\n" +" is invalid." +msgstr "" +"Vrátí kontext aktuálního podprogramu.\n" +" \n" +" Bez VÝRAZU vrátí „$řádek $název_souboru“. S VÝRAZEM vrátí\n" +" „$řádek $podprogram $název_souboru“; tuto zvláštní informaci lze\n" +" využít pro výpis zásobníku volání.\n" +" \n" +" Hodnota VÝRAZU určuje, kolik rámců volání se má zpětně projít od toho\n" +" současného; vrcholový rámec má číslo 0.\n" +" \n" +" Návratový kód:\n" +" Vrací 0, pokud shell provádí shellovou funkci a VÝRAZ je platný." + +#: builtins.c:379 +msgid "" +"Change the shell working directory.\n" +" \n" +" Change the current directory to DIR. The default DIR is the value of " +"the\n" +" HOME shell variable.\n" +" \n" +" The variable CDPATH defines the search path for the directory " +"containing\n" +" DIR. Alternative directory names in CDPATH are separated by a colon " +"(:).\n" +" A null directory name is the same as the current directory. If DIR " +"begins\n" +" with a slash (/), then CDPATH is not used.\n" +" \n" +" If the directory is not found, and the shell option `cdable_vars' is " +"set,\n" +" the word is assumed to be a variable name. If that variable has a " +"value,\n" +" its value is used for DIR.\n" +" \n" +" Options:\n" +" -L\tforce symbolic links to be followed\n" +" -P\tuse the physical directory structure without following symbolic\n" +" \tlinks\n" +" \n" +" The default is to follow symbolic links, as if `-L' were specified.\n" +" \n" +" Exit Status:\n" +" Returns 0 if the directory is changed; non-zero otherwise." +msgstr "" +"Změní pracovní adresář shellu.\n" +" \n" +" Změní aktuální adresář na ADR. Implicitní ADR je hodnota proměnné " +"shellu\n" +" HOME.\n" +" \n" +" Proměnná CDPATH definuje vyhledávací cestu pro adresář obsahující ADR.\n" +" Názvy náhradních adresářů v CDPATH se oddělují dvojtečkou (:). Prázdný\n" +" název adresáře je stejný jako aktuální adresář. Začíná-li ADR na " +"lomítko\n" +" (/), nebude CDPATH použita.\n" +" \n" +" Nebude-li adresář nalezen a přepínač shellu „cdable_vars“ bude " +"nastaven,\n" +" pak se dané slovo zkusí jakožto název proměnné. Má-li taková proměnná\n" +" hodnotu, pak její hodnota se použije jako ADR.\n" +" \n" +" Přepínače:\n" +" -L\tvynutí následování symbolických odkazů\n" +" -P\tnařizuje použít fyzickou adresářovou strukturu namísto\n" +" \tnásledování symbolických odkazů\n" +" \n" +" Symbolické odkazy se implicitně následují, jako by bylo zadáno „-L“.\n" +" \n" +" Návratový kód:\n" +" Vrací 0, byl-li adresář změněn, jinak nenulovou hodnotu." + +#: builtins.c:407 +msgid "" +"Print the name of the current working directory.\n" +" \n" +" Options:\n" +" -L\tprint the value of $PWD if it names the current working\n" +" \tdirectory\n" +" -P\tprint the physical directory, without any symbolic links\n" +" \n" +" By default, `pwd' behaves as if `-L' were specified.\n" +" \n" +" Exit Status:\n" +" Returns 0 unless an invalid option is given or the current directory\n" +" cannot be read." +msgstr "" +"Vypíše název současného pracovního adresáře.\n" +" \n" +" Přepínače:\n" +" -L\tvypíše hodnotu $PWD, pokud pojmenovává současný pracovní\n" +" \tadresář\n" +" -P\tvypíše fyzický adresář prostý vÅ¡ech symbolických odkazů\n" +" \n" +" Implicitně se „pwd“ chová, jako by bylo zadáno „-L“.\n" +" \n" +" Návratový kód:\n" +" Vrací 0, nebyl-li zadán neplatný přepínač a mohl-li být současný\n" +" adresář přečten." + +#: builtins.c:424 +msgid "" +"Null command.\n" +" \n" +" No effect; the command does nothing.\n" +" \n" +" Exit Status:\n" +" Always succeeds." +msgstr "" +"Prázdný příkaz.\n" +" \n" +" Žádný účinek, tento příkaz nic nedělá.\n" +" \n" +" Návratový kód:\n" +" Vždy uspěje." + +#: builtins.c:435 +msgid "" +"Return a successful result.\n" +" \n" +" Exit Status:\n" +" Always succeeds." +msgstr "" +"Vrátí výsledek úspěchu.\n" +" \n" +" Návratový kód:\n" +" Vždy uspěje." + +#: builtins.c:444 +msgid "" +"Return an unsuccessful result.\n" +" \n" +" Exit Status:\n" +" Always fails." +msgstr "" +"Vrátí výsledek neúspěchu.\n" +" \n" +" Návratový kód:\n" +" Vždy selže." + +#: builtins.c:453 +msgid "" +"Execute a simple command or display information about commands.\n" +" \n" +" Runs COMMAND with ARGS suppressing shell function lookup, or display\n" +" information about the specified COMMANDs. Can be used to invoke " +"commands\n" +" on disk when a function with the same name exists.\n" +" \n" +" Options:\n" +" -p\tuse a default value for PATH that is guaranteed to find all of\n" +" \tthe standard utilities\n" +" -v\tprint a description of COMMAND similar to the `type' builtin\n" +" -V\tprint a more verbose description of each COMMAND\n" +" \n" +" Exit Status:\n" +" Returns exit status of COMMAND, or failure if COMMAND is not found." +msgstr "" +"Provede jednoduchý příkaz nebo zobrazí podrobnosti o příkazech.\n" +" \n" +" Spustí PŘÍKAZ s ARGUMENTY ignoruje funkce shellu, nebo zobrazí " +"informace\n" +" o zadaných PŘÍKAZECH. Lze využít, když je třeba vyvolat příkazy " +"z disku,\n" +" přičemž existuje funkce stejného jména.\n" +" \n" +" Přepínače:\n" +" -p\tpro PATH bude použita implicitní hodnota, která zaručuje,\n" +" \tže budou nalezeny vÅ¡echny standardní nástroje\n" +" -v\tzobrazí popis PŘÍKAZU podobný vestavěnému příkazu „type“\n" +" -V\tzobrazí podrobnější popis každého PŘÍKAZU\n" +" \n" +" Návratový kód:\n" +" Vrací návratový kód PŘÍKAZU, nebo selže, nebyl–li příkaz nalezen." + +#: builtins.c:472 +msgid "" +"Set variable values and attributes.\n" +" \n" +" Declare variables and give them attributes. If no NAMEs are given,\n" +" display the attributes and values of all variables.\n" +" \n" +" Options:\n" +" -f\trestrict action or display to function names and definitions\n" +" -F\trestrict display to function names only (plus line number and\n" +" \tsource file when debugging)\n" +" -p\tdisplay the attributes and value of each NAME\n" +" \n" +" Options which set attributes:\n" +" -a\tto make NAMEs indexed arrays (if supported)\n" +" -A\tto make NAMEs associative arrays (if supported)\n" +" -i\tto make NAMEs have the `integer' attribute\n" +" -l\tto convert NAMEs to lower case on assignment\n" +" -r\tto make NAMEs readonly\n" +" -t\tto make NAMEs have the `trace' attribute\n" +" -u\tto convert NAMEs to upper case on assignment\n" +" -x\tto make NAMEs export\n" +" \n" +" Using `+' instead of `-' turns off the given attribute.\n" +" \n" +" Variables with the integer attribute have arithmetic evaluation (see\n" +" the `let' command) performed when the variable is assigned a value.\n" +" \n" +" When used in a function, `declare' makes NAMEs local, as with the " +"`local'\n" +" command.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" +"Nastaví hodnoty a atributy proměnných.\n" +" \n" +" Deklaruje proměnné a nastaví jim atributy. Nejsou-li zadány NÁZVY,\n" +" zobrazí atributy a hodnoty vÅ¡ech proměnných.\n" +" \n" +" Přepínače:\n" +" -f\tomezí akce nebo výpis na názvy funkcí a deklarace\n" +" -F\tomezí výpis jen na názvy funkcí (a číslo řádku a název\n" +" \tzdrojového souboru, je-li zapnuto ladění)\n" +" -p zobrazí atributy a hodnotu každého NÁZVU\n" +" \n" +" Přepínače, které nastavují atributy:\n" +" -a\tučiní NÁZVY číslovanými poli (je-li podporováno)\n" +" -A\tučiní NÁZVY asociativními poli (je-li podporováno)\n" +" -i\tpřiřadí NÁZVÅ®M atribut „integer“ (číslo)\n" +" -l\tpřevede NÁZVY na malá písmena v době přiřazení\n" +" -r\tučiní NÁZVY jen pro čtení\n" +" -t\tpřiřadí NÁZVÅ®M atribut „trace“ (sledování)\n" +" -u\tpřevede NÁZVY na velká písmena v době přiřazení\n" +" -x\tvyexportuje NÁZVY\n" +" \n" +" Pomocí „+“ namísto „-“ daný atribut vypnete.\n" +" \n" +" Proměnné s atributem integer jsou aritmeticky vyhodnoceny (vizte příkaz\n" +" „let“), jakmile je do proměnné přiřazeno.\n" +" \n" +" Je-li použito uvnitř funkce, učiní „declare“ NÁZVY lokálními stejně " +"jako\n" +" příkaz „local“.\n" +" \n" +" Návratový kód:\n" +" Vrací úspěch, pokud nebyl zadán neplatný přepínač a nedoÅ¡lo k chybě." + +#: builtins.c:508 +msgid "" +"Set variable values and attributes.\n" +" \n" +" Obsolete. See `help declare'." +msgstr "" +"Nastaví hodnoty a atributy proměnných\n" +" \n" +" Příkaz je zastaralý. Vizte „help declare“." + +#: builtins.c:516 +msgid "" +"Define local variables.\n" +" \n" +" Create a local variable called NAME, and give it VALUE. OPTION can\n" +" be any option accepted by `declare'.\n" +" \n" +" Local variables can only be used within a function; they are visible\n" +" only to the function where they are defined and its children.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied, an error occurs,\n" +" or the shell is not executing a function." +msgstr "" +"Definuje lokální proměnné.\n" +" \n" +" Vytvoří lokální proměnnou pojmenovanou NÁZEV a přiřadí jí HODNOTU. " +"PŘEPÍNAČ\n" +" smí může být jakýkoliv přepínač přípustný u „declare“\n" +" \n" +" Lokální proměnné lze použít jen uvnitř funkcí, budou viditelné jen " +"v dané\n" +" funkci a jejich potomcích.\n" +" \n" +" Návratový kód:\n" +" Vrací úspěch, nebyl-li zadán neplatný přepínač, nenastala-li chyba a\n" +" vykonává-li shell funkci." + +#: builtins.c:533 +msgid "" +"Write arguments to the standard output.\n" +" \n" +" Display the ARGs on the standard output followed by a newline.\n" +" \n" +" Options:\n" +" -n\tdo not append a newline\n" +" -e\tenable interpretation of the following backslash escapes\n" +" -E\texplicitly suppress interpretation of backslash escapes\n" +" \n" +" `echo' interprets the following backslash-escaped characters:\n" +" \\a\talert (bell)\n" +" \\b\tbackspace\n" +" \\c\tsuppress further output\n" +" \\e\tescape character\n" +" \\f\tform feed\n" +" \\n\tnew line\n" +" \\r\tcarriage return\n" +" \\t\thorizontal tab\n" +" \\v\tvertical tab\n" +" \\\\\tbackslash\n" +" \\0nnn\tthe character whose ASCII code is NNN (octal). NNN can be\n" +" \t0 to 3 octal digits\n" +" \\xHH\tthe eight-bit character whose value is HH (hexadecimal). HH\n" +" \tcan be one or two hex digits\n" +" \n" +" Exit Status:\n" +" Returns success unless a write error occurs." +msgstr "" +"Vypíše své argumenty na standardní výstup.\n" +" \n" +" Zobrazí své ARGUMENTY na standardním výstupu a ukončí je z novým " +"řádkem.\n" +" \n" +" Přepínače:\n" +" -n\tnepřipojuje nový řádek\n" +" -e\tzapne interpretování následujících znaků uvozených zpětným " +"lomítkem\n" +" -E\texplicitně potlačí interpretování znaků uvozených zpětným " +"lomítkem\n" +" \n" +" „echo“ interpretuje následující znaky uvozené zpětným lomítkem:\n" +" \\a\tpoplach (zvonek)\n" +" \\b\tbackspace\n" +" \\c\tpotlačí další výstup\n" +" \\E\tznak escapu\n" +" \\f\tposun formuláře (form feed)\n" +" \\n\tnový řádek\n" +" \\r\tnávrat vozíku\n" +" \\t\tvodorovný tabulátor\n" +" \\v\tsvislý tabulátor\n" +" \\\\\tzpětné lomítko\n" +" \\0nnn\tznak, jehož ASCII kód je NNN (osmičkově). NNN smí být\n" +" \t0 až 3 osmičkové číslice\n" +" \\xHH\tosmibitový znak, jehož hodnota je HH (Å¡estnáctkově). HH smí\n" +" \tbýt jedna nebo dvě Å¡estnáctkové číslice\n" +" \n" +" Návratový kód:\n" +" Vrací úspěch, nedojde-li k chybě zápisu na výstup." + +#: builtins.c:567 +msgid "" +"Write arguments to the standard output.\n" +" \n" +" Display the ARGs on the standard output followed by a newline.\n" +" \n" +" Options:\n" +" -n\tdo not append a newline\n" +" \n" +" Exit Status:\n" +" Returns success unless a write error occurs." +msgstr "" +"Vypíše argumenty na standardní výstup.\n" +" \n" +" Na standardním výstupu zobrazí ARGUMENTY následované odřádkováním.\n" +" \n" +" Přepínače:\n" +" -n\tneodřádkovává\n" +" \n" +" Vrací úspěch, nedojte-li k chybě zápisu na výstup." + +#: builtins.c:582 +msgid "" +"Enable and disable shell builtins.\n" +" \n" +" Enables and disables builtin shell commands. Disabling allows you to\n" +" execute a disk command which has the same name as a shell builtin\n" +" without using a full pathname.\n" +" \n" +" Options:\n" +" -a\tprint a list of builtins showing whether or not each is enabled\n" +" -n\tdisable each NAME or display a list of disabled builtins\n" +" -p\tprint the list of builtins in a reusable format\n" +" -s\tprint only the names of Posix `special' builtins\n" +" \n" +" Options controlling dynamic loading:\n" +" -f\tLoad builtin NAME from shared object FILENAME\n" +" -d\tRemove a builtin loaded with -f\n" +" \n" +" Without options, each NAME is enabled.\n" +" \n" +" To use the `test' found in $PATH instead of the shell builtin\n" +" version, type `enable -n test'.\n" +" \n" +" Exit Status:\n" +" Returns success unless NAME is not a shell builtin or an error occurs." +msgstr "" +"Povoluje a zakazuje vestavěné příkazy shellu.\n" +" \n" +" Povoluje a zakazuje vestavěné příkazy shellu. Zakázání vám umožní\n" +" spustit program z disku, který má stejné jméno jako vestavěný příkaz\n" +" shellu, aniž byste museli zadávat celou cestu.\n" +" \n" +" Přepínače:\n" +" -a\tvypíše seznam vestavěných příkazů a vyznačí, který je a který " +"není\n" +" \tpovolen\n" +" -n\tzakáže každý NÁZEV nebo zobrazí seznam zakázaných vestavěných\n" +" \tpříkazů\n" +" -p\tvypíše seznam vestavěných příkazů ve znovu použitelné podobě\n" +" -s\tvypíše pouze názvy posixových „speciálních“ vestavěných příkazů\n" +" \n" +" Přepínače řídící dynamické nahrávání:\n" +" -f\tZavede vestavěný příkaz NÁZEV ze sdíleného objektu NÁZEV_SOUBORU\n" +" -d\tOdstraní vestavění příkaz zavedený pomocí –f\n" +" \n" +" Bez přepínačů povolí vÅ¡echny NÁZVY.\n" +" \n" +" Abyste používali „test“ z $PATH namísto verze vestavěné do shellu,\n" +" napiÅ¡te „enable -n test“.\n" +" \n" +" Návratový kód:\n" +" Vrací úspěch, je-li NÁZEV vestavěným příkazem shellu a nevyskytne-li\n" +" se chyba." + +#: builtins.c:610 +msgid "" +"Execute arguments as a shell command.\n" +" \n" +" Combine ARGs into a single string, use the result as input to the " +"shell,\n" +" and execute the resulting commands.\n" +" \n" +" Exit Status:\n" +" Returns exit status of command or success if command is null." +msgstr "" +"Spustí argumenty jako příkaz shellu.\n" +" \n" +" ARGUMENTY sloučí do jediného řetězce, použije jej jako vstup shellu\n" +" a vykoná výsledné příkazy.\n" +" Návratový kód:\n" +" Vrátí návratový kód příkazu, nebo úspěch, byl-li příkaz prázdný." + +#: builtins.c:622 +msgid "" +"Parse option arguments.\n" +" \n" +" Getopts is used by shell procedures to parse positional parameters\n" +" as options.\n" +" \n" +" OPTSTRING contains the option letters to be recognized; if a letter\n" +" is followed by a colon, the option is expected to have an argument,\n" +" which should be separated from it by white space.\n" +" \n" +" Each time it is invoked, getopts will place the next option in the\n" +" shell variable $name, initializing name if it does not exist, and\n" +" the index of the next argument to be processed into the shell\n" +" variable OPTIND. OPTIND is initialized to 1 each time the shell or\n" +" a shell script is invoked. When an option requires an argument,\n" +" getopts places that argument into the shell variable OPTARG.\n" +" \n" +" getopts reports errors in one of two ways. If the first character\n" +" of OPTSTRING is a colon, getopts uses silent error reporting. In\n" +" this mode, no error messages are printed. If an invalid option is\n" +" seen, getopts places the option character found into OPTARG. If a\n" +" required argument is not found, getopts places a ':' into NAME and\n" +" sets OPTARG to the option character found. If getopts is not in\n" +" silent mode, and an invalid option is seen, getopts places '?' into\n" +" NAME and unsets OPTARG. If a required argument is not found, a '?'\n" +" is placed in NAME, OPTARG is unset, and a diagnostic message is\n" +" printed.\n" +" \n" +" If the shell variable OPTERR has the value 0, getopts disables the\n" +" printing of error messages, even if the first character of\n" +" OPTSTRING is not a colon. OPTERR has the value 1 by default.\n" +" \n" +" Getopts normally parses the positional parameters ($0 - $9), but if\n" +" more arguments are given, they are parsed instead.\n" +" \n" +" Exit Status:\n" +" Returns success if an option is found; fails if the end of options is\n" +" encountered or an error occurs." +msgstr "" +"Rozebere přepínačové argumenty.\n" +" \n" +" Getopts se používá v shellových procedurách na rozebrání pozičních\n" +" parametrů jakožto přepínačů.\n" +" \n" +" OPTSTRING obsahuje písmena přepínačů, které mají být rozeznány, Je-li\n" +" písmeno následováno dvojtečkou, po přepínači se očekává argument, který\n" +" by měl být od přepínače oddělen bílým místem.\n" +" \n" +" Pokaždé když je getopts zavolán, je následující přepínač umístěn do\n" +" proměnné $name (proměnná je inicializována, neexistuje-li) a pořadí\n" +" dalšího argumentu, který čeká na zpracování, do proměnné shellu OPTIND.\n" +" OPTIND je inicializována na 1 vždy, když je zavolán shell nebo shellový\n" +" skript. Pokud přepínač vyžaduje argument, getopts umístí tento argument\n" +" do proměnné shellu OPTARG.\n" +" \n" +" getopts hlásí chyby jedním ze dvou způsobů. Pokud prvním znakem " +"OPTSTRING\n" +" je dvojtečka, getopts hlásí chyby tichým způsobem. V tomto režimu žádné\n" +" chybové zprávy nejsou vypisovány. Když se narazí na neplatný přepínač,\n" +" getopts umístí tento znak do OPTARG. Pokud není nalezen povinný " +"argument,\n" +" getopts umístí „:“ do NAME a OPTARG nastaví na znak nalezeného " +"přepínače.\n" +" Pokud getopts nepracuje v tomto tichém režimu a je nalezen neplatný\n" +" přepínač, getopts umístí „?“ do NAME a zruší OPTARG. Když nenajde " +"povinný\n" +" argument, je do NAME zapsán „?“, OPTARG zruÅ¡en a vytiÅ¡těna diagnostická\n" +" zpráva.\n" +" \n" +" Pokud proměnná shellu OPTERR má hodnotu 0, getopts vypne vypisování\n" +" chybových zpráv, dokonce i když první znak OPTSTRING není dvojtečka.\n" +" Implicitní hodnota OPTERR je 1.\n" +" \n" +" Normálně getopts zpracovává poziční parametry ($0–$9), avÅ¡ak následuje-" +"li\n" +" getopts více argumentů, budou rozebrány tyto namísto pozičních.\n" +" \n" +" Návratový kód:\n" +" Vrátí úspěch, byl-li nalezen nějaký přepínač. Neúspěch vrátí, když " +"dojde\n" +" na konec přepínačů nebo nastane-li chyba." + +#: builtins.c:664 +msgid "" +"Replace the shell with the given command.\n" +" \n" +" Execute COMMAND, replacing this shell with the specified program.\n" +" ARGUMENTS become the arguments to COMMAND. If COMMAND is not " +"specified,\n" +" any redirections take effect in the current shell.\n" +" \n" +" Options:\n" +" -a name\tpass NAME as the zeroth argument to COMMAND\n" +" -c\t\texecute COMMAND with an empty environment\n" +" -l\t\tplace a dash in the zeroth argument to COMMAND\n" +" \n" +" If the command cannot be executed, a non-interactive shell exits, " +"unless\n" +" the shell option `execfail' is set.\n" +" \n" +" Exit Status:\n" +" Returns success unless COMMAND is not found or a redirection error " +"occurs." +msgstr "" +"Nahradí shell zadaným příkazem.\n" +" \n" +" Vykoná PŘÍKAZ, přičemž nahradí tento shell zadaným programem. " +"ARGUMENTY\n" +" se stanou argumenty PŘÍKAZU. Není-li PŘÍKAZ zadán, přesměrování " +"zapůsobí\n" +" v tomto shellu.\n" +" \n" +" Přepínače:\n" +" -a název\tpředá název jakožto nultý argument PŘÍKAZU\n" +" -c\t\tspustí PŘÍKAZ s prázdným prostředím\n" +" -t\t\tdo nultého argumentu PŘÍKAZU umístí pomlčku\n" +" \n" +" Pokud příkaz nemůže být proveden, neinteraktivní shell bude ukončen,\n" +" pokud přepínač shellu „execfail“ není nastaven.\n" +" \n" +" Návratový kód:\n" +" Vrátí úspěch, pokud byl PŘÍKAZ nalezen a nedoÅ¡lo k chybě přesměrování." + +#: builtins.c:685 +msgid "" +"Exit the shell.\n" +" \n" +" Exits the shell with a status of N. If N is omitted, the exit status\n" +" is that of the last command executed." +msgstr "" +"Ukončí shell.\n" +" \n" +" Ukončí tento shell se stavem N. Bez N bude návratový kód roven kódu\n" +" posledně prováděného příkazu." + +#: builtins.c:694 +msgid "" +"Exit a login shell.\n" +" \n" +" Exits a login shell with exit status N. Returns an error if not " +"executed\n" +" in a login shell." +msgstr "" +"Ukončí přihlaÅ¡ovací shell.\n" +" \n" +" Ukončí přihlaÅ¡ovací (login) shell se stavem N. Nebyl-li příkaz zavolán\n" +" z přihlaÅ¡ovacího shellu, vrátí chybu." + +#: builtins.c:704 +msgid "" +"Display or execute commands from the history list.\n" +" \n" +" fc is used to list or edit and re-execute commands from the history " +"list.\n" +" FIRST and LAST can be numbers specifying the range, or FIRST can be a\n" +" string, which means the most recent command beginning with that\n" +" string.\n" +" \n" +" Options:\n" +" -e ENAME\tselect which editor to use. Default is FCEDIT, then " +"EDITOR,\n" +" \t\tthen vi\n" +" -l \tlist lines instead of editing\n" +" -n\tomit line numbers when listing\n" +" -r\treverse the order of the lines (newest listed first)\n" +" \n" +" With the `fc -s [pat=rep ...] [command]' format, COMMAND is\n" +" re-executed after the substitution OLD=NEW is performed.\n" +" \n" +" A useful alias to use with this is r='fc -s', so that typing `r cc'\n" +" runs the last command beginning with `cc' and typing `r' re-executes\n" +" the last command.\n" +" \n" +" Exit Status:\n" +" Returns success or status of executed command; non-zero if an error " +"occurs." +msgstr "" +"Zobrazí nebo vykoná příkazy ze seznamu historie.\n" +" \n" +" fc se používá na vypsání, úpravu a znovu provedení příkazů ze seznamu\n" +" historie. PRVNÍ a POSLEDNÍ mohou být čísla určující rozsah nebo PRVNÍ " +"může být\n" +" řetězec, což určuje nejnovější příkaz začínající na zadaný řetězec.\n" +" \n" +" Přepínače:\n" +" -e ENÁZEV\tvybere editor. Implicitní je FCEDIT, pak EDITOR, pak vi.\n" +" -l\tvypisuje řádky namísto jejich upravování\n" +" -n\tvypne číslování řádků při jejich vypisování\n" +" -r\tobrátí pořadí řádků (nejnovější budou první)\n" +" \n" +" Forma příkazu „fc -s [vzor=náhrada… [příkaz]“ znamená, že PŘÍKAZ bude\n" +" po nahrazení STARÝ=NOVÝ znovu vykonán.\n" +" \n" +" Užitečný alias je r='fc -s', takže napsání „r cc“ spustí poslední " +"příkaz\n" +" začínající na „cc“ a zadání „r“ znovu spustí poslední příkaz.\n" +" \n" +" Návratový kód:\n" +" Vrátí úspěch nebo kód provedeného příkazu. Nenulový kód, vyskytne-li se\n" +" chyba." + +#: builtins.c:734 +msgid "" +"Move job to the foreground.\n" +" \n" +" Place the job identified by JOB_SPEC in the foreground, making it the\n" +" current job. If JOB_SPEC is not present, the shell's notion of the\n" +" current job is used.\n" +" \n" +" Exit Status:\n" +" Status of command placed in foreground, or failure if an error occurs." +msgstr "" +"Přepne úlohu na popředí.\n" +" \n" +" Přesune úlohu určenou pomocí ÚLOHA na popředí a učiní ji aktuální " +"úlohou.\n" +" Není-li ÚLOHA zadána, použije se úloha, o které si shell myslí, že je\n" +" aktuální.\n" +" \n" +" Návratový kód:\n" +" Kód úlohy přesunuté do popředí, nebo doÅ¡lo-li k chybě, kód selhání." + +#: builtins.c:749 +msgid "" +"Move jobs to the background.\n" +" \n" +" Place the jobs identified by each JOB_SPEC in the background, as if " +"they\n" +" had been started with `&'. If JOB_SPEC is not present, the shell's " +"notion\n" +" of the current job is used.\n" +" \n" +" Exit Status:\n" +" Returns success unless job control is not enabled or an error occurs." +msgstr "" +"Přesune úlohy do pozadí.\n" +" \n" +" Přepne každou úlohu určenou pomocí ÚLOHA na pozadí, jako by byla\n" +" spuÅ¡těna s „&“. Ne-li ÚLOHA uvedena, použije se úloha, o které si shell\n" +" myslí, že je aktuální.\n" +" \n" +" Návratový kód:\n" +" Vrátí úspěch, pokud je správa úloh zapnuta a nedoÅ¡lo-li k nějaké chybě." + +#: builtins.c:763 +msgid "" +"Remember or display program locations.\n" +" \n" +" Determine and remember the full pathname of each command NAME. If\n" +" no arguments are given, information about remembered commands is " +"displayed.\n" +" \n" +" Options:\n" +" -d\t\tforget the remembered location of each NAME\n" +" -l\t\tdisplay in a format that may be reused as input\n" +" -p pathname\tuse PATHNAME is the full pathname of NAME\n" +" -r\t\tforget all remembered locations\n" +" -t\t\tprint the remembered location of each NAME, preceding\n" +" \t\teach location with the corresponding NAME if multiple\n" +" \t\tNAMEs are given\n" +" Arguments:\n" +" NAME\t\tEach NAME is searched for in $PATH and added to the list\n" +" \t\tof remembered commands.\n" +" \n" +" Exit Status:\n" +" Returns success unless NAME is not found or an invalid option is given." +msgstr "" +"Zapamatuje si nebo zobrazí umístění programu.\n" +" \n" +" Pro každý NÁZEV je určena plná cesta k příkazu a je zapamatována. Nejsou-" +"li\n" +" zadány žádné argumenty, budou vypsány informace o zapamatovaných " +"příkazech.\n" +" \n" +" Přepínače:\n" +" -d\t\tzapomene zapamatovaná umístění každého NÁZVU\n" +" -l\t\tvypíše v takové podobě, kterou lze opět použít jako vstup\n" +" -p cesta\tpoužije NÁZEV_CESTY jako plnou cestu k NÁZVU\n" +" -r\t\tzapomene vÅ¡echna zapamatovaná umístění\n" +" -t\t\tvypíše zapamatované umístění každého NÁZVU a každému umístění\n" +" \t\tpředepíše odpovídající NÁZEV, bylo zadáno více NÁZVÅ®\n" +" Argumenty:\n" +" NÁZEV\t\tKaždý NÁZEV je vyhledán v $PATH a přidán do seznamu\n" +" \t\tzapamatovaných příkazů.\n" +" \n" +" Návratový kód:\n" +" Vrátí úspěch, pokud byl NÁZEV nalezen a nebyl-li zadán neplatný přepínač." + +#: builtins.c:788 +msgid "" +"Display information about builtin commands.\n" +" \n" +" Displays brief summaries of builtin commands. If PATTERN is\n" +" specified, gives detailed help on all commands matching PATTERN,\n" +" otherwise the list of help topics is printed.\n" +" \n" +" Options:\n" +" -d\toutput short description for each topic\n" +" -m\tdisplay usage in pseudo-manpage format\n" +" -s\toutput only a short usage synopsis for each topic matching\n" +" \tPATTERN\n" +" \n" +" Arguments:\n" +" PATTERN\tPattern specifiying a help topic\n" +" \n" +" Exit Status:\n" +" Returns success unless PATTERN is not found or an invalid option is " +"given." +msgstr "" +"Zobrazí podrobnosti o vestavěných příkazech.\n" +" \n" +" Zobrazí stručný souhrn vestavěných příkazů. Je-li zadán VZOREK,\n" +" vrátí podrobnou nápovědu ke vÅ¡em příkazům odpovídajícím VZORKU, jinak " +"je\n" +" vytiÅ¡těn seznam syntaxe vestavěných příkazů.\n" +" \n" +" Přepínače:\n" +" -d\tvypíše krátké pojednání na každé téma\n" +" -m\tzobrazí použití v jakoby manuálovém formátu\n" +" -s\tvypíše pouze krátký popis použití o každém příkazu odpovídajícímu\n" +" \tVZORKU\n" +" \n" +" Argumenty:\n" +" VZOREK\tVzorek určující téma nápovědy\n" +" \n" +" Návratový kód:\n" +" Vrací úspěch, pokud byl nalezen VZOREK a nebyl zadán neplatný přepínač." + +# FIXME: bash-4.0-pre1: Orphaned line between -w and -p option. It belongs to -n. +#: builtins.c:812 +msgid "" +"Display or manipulate the history list.\n" +" \n" +" Display the history list with line numbers, prefixing each modified\n" +" entry with a `*'. An argument of N lists only the last N entries.\n" +" \n" +" Options:\n" +" -c\tclear the history list by deleting all of the entries\n" +" -d offset\tdelete the history entry at offset OFFSET.\n" +" \n" +" -a\tappend history lines from this session to the history file\n" +" -n\tread all history lines not already read from the history file\n" +" -r\tread the history file and append the contents to the history\n" +" \tlist\n" +" -w\twrite the current history to the history file\n" +" \tand append them to the history list\n" +" \n" +" -p\tperform history expansion on each ARG and display the result\n" +" \twithout storing it in the history list\n" +" -s\tappend the ARGs to the history list as a single entry\n" +" \n" +" If FILENAME is given, it is used as the history file. Otherwise,\n" +" if $HISTFILE has a value, that is used, else ~/.bash_history.\n" +" \n" +" If the $HISTTIMEFORMAT variable is set and not null, its value is used\n" +" as a format string for strftime(3) to print the time stamp associated\n" +" with each displayed history entry. No time stamps are printed " +"otherwise.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or an error occurs." +msgstr "" +"Zobrazí nebo upraví seznam historie.\n" +" \n" +" Zobrazí seznam historie s očíslovanými řádky. Řádky vypsané s „*“ byly\n" +" změněny. Argument N říká, že se vypíše pouze posledních N řádek.\n" +" \n" +" Přepínače:\n" +" -c\tvyprázdní seznam historie smazáním vÅ¡ech položek\n" +" -d pozice\tsmaže ze seznamu historie položku na pozici POZICE\n" +" \n" +" -a\tpřipojí řádky historie z této relace do souboru historie\n" +" -n\tnačte vÅ¡echny řádky historie, které jeÅ¡tě nebyly načteny,\n" +" \tze souboru historie a připojí je do seznamu historie\n" +" -r\tnačte soubor historie a obsah připojí do seznamu historie\n" +" -w\tzapíše současnou historii do souboru historie\n" +" \n" +" -p\tprovede expanzi historie na každém ARGUMENTU a výsledek zobrazí,\n" +" \taniž by cokoliv uložil do seznamu historie\n" +" -s\tpřipojí ARGUMENTY do seznamu historie jako jednu položku\n" +" \n" +" Je-li zadán JMÉNO_SOUBORU, tak ten je použit jako soubor historie. " +"Jinak\n" +" pokud $HISTFILE má hodnotu, tato je použita, jinak ~/.bash_history.\n" +" \n" +" Je-li proměnná $HISTTIMEFORMAT nastavena a není-li prázdná, její " +"hodnota\n" +" se použije jako formátovací řetězec pro strftime(3) při výpisu časových\n" +" razítek spojených s každou položkou historie. Jinak žádná časová " +"razítka\n" +" nebudou vypisována. \n" +" Návratový kód:\n" +" Vrátí úspěch, pokud nebyl zadán neplatný přepínač a nedoÅ¡lo k chybě." + +#: builtins.c:848 +msgid "" +"Display status of jobs.\n" +" \n" +" Lists the active jobs. JOBSPEC restricts output to that job.\n" +" Without options, the status of all active jobs is displayed.\n" +" \n" +" Options:\n" +" -l\tlists process IDs in addition to the normal information\n" +" -n\tlist only processes that have changed status since the last\n" +" \tnotification\n" +" -p\tlists process IDs only\n" +" -r\trestrict output to running jobs\n" +" -s\trestrict output to stopped jobs\n" +" \n" +" If -x is supplied, COMMAND is run after all job specifications that\n" +" appear in ARGS have been replaced with the process ID of that job's\n" +" process group leader.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or an error occurs.\n" +" If -x is used, returns the exit status of COMMAND." +msgstr "" +"Zobrazí stav úloh.\n" +" \n" +" Vypíše aktivní úlohy. ÚLOHA omezuje výstup na danou úlohu. Bez uvedení\n" +" přepínačů bude vypsán stav vÅ¡ech aktivních úloh.\n" +" \n" +" Přepínače:\n" +" -l\tvypíše navíc ID procesů\n" +" -n\tvypíše pouze procesy, které od minulého oznámení změnily stav\n" +" -p\tvypíše pouze ID procesů\n" +" -r\tzúží výstup jen na běžící úlohy\n" +" -s\tzúží výstup jen na pozastavené úlohy\n" +" \n" +" Je-li použito -x, bude spuÅ¡těn příkaz, jakmile vÅ¡echny úlohy uvedené " +"mezi\n" +" ARGUMENTY budou nahrazeny ID procesu, který je vedoucím skupiny dané " +"úlohy.\n" +" \n" +" Návratový kód:\n" +" Vrátí úspěch, pokud nebyl zadán neplatný přepínač a nevyskytla se " +"chyba.\n" +" Byl-ly použit přepínač -x, vrátí návratový kód PŘÍKAZU." + +#: builtins.c:875 +msgid "" +"Remove jobs from current shell.\n" +" \n" +" Removes each JOBSPEC argument from the table of active jobs. Without\n" +" any JOBSPECs, the shell uses its notion of the current job.\n" +" \n" +" Options:\n" +" -a\tremove all jobs if JOBSPEC is not supplied\n" +" -h\tmark each JOBSPEC so that SIGHUP is not sent to the job if the\n" +" \tshell receives a SIGHUP\n" +" -r\tremove only running jobs\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option or JOBSPEC is given." +msgstr "" +"Odstraní úlohy ze současného shellu.\n" +" \n" +" Z tabulky aktivních úloh odebere každou ÚLOHU. Nebudou-li ÚLOHY zadány,\n" +" shell použije vlastní představu o současné úloze.\n" +" \n" +" Přepínače:\n" +" -a\todstraní vÅ¡echny úlohy, pokud nebyla žádná ÚLOHA určena\n" +" -h\toznačí každou ÚLOHU tak, že jí nebude zaslán SIGHUP, až shell sám\n" +" \tobdrží tento signál\n" +" -r\todstraní jen běžící úlohy\n" +" \n" +" Návratový kód:\n" +" Vrátí úspěch, pokud nebyl zadán neplatný přepínač nebo ÚLOHA." + +#: builtins.c:894 +msgid "" +"Send a signal to a job.\n" +" \n" +" Send the processes identified by PID or JOBSPEC the signal named by\n" +" SIGSPEC or SIGNUM. If neither SIGSPEC nor SIGNUM is present, then\n" +" SIGTERM is assumed.\n" +" \n" +" Options:\n" +" -s sig\tSIG is a signal name\n" +" -n sig\tSIG is a signal number\n" +" -l\tlist the signal names; if arguments follow `-l' they are\n" +" \tassumed to be signal numbers for which names should be listed\n" +" \n" +" Kill is a shell builtin for two reasons: it allows job IDs to be used\n" +" instead of process IDs, and allows processes to be killed if the limit\n" +" on processes that you can create is reached.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or an error occurs." +msgstr "" +"ZaÅ¡le signál úloze.\n" +" \n" +" ZaÅ¡le procesu určeném PID (nebo ÚLOHOU) signál zadaný pomocí SIGSPEC\n" +" nebo ČÍSSIG. Není-li SIGSPEC ani ČÍSSIG zadán, pak se předpokládá " +"SIGTERM.\n" +" \n" +" Přepínače:\n" +" -s sig\tSIG je název signálu\n" +" -n sig\tSIG je číslo signálu\n" +" -l\tvypíše čísla signálů; pokud „-l“ následují argumenty, má\n" +" \tse za to, že se jedná o čísla signálů, pro které se mají vyspat\n" +" \tjejich názvy.\n" +" \n" +" Kill je vestavěný příkaz shellu ze dvou důvodů: umožňuje použít\n" +" identifikátory úloh namísto ID procesů a umožní zabíjet procesy i poté,\n" +" co jste dosáhli limitu počtu procesů, které smíte vytvořit.\n" +" \n" +" Návratový kód:\n" +" Vrátí úspěch, pokud nebyl zadán neplatný přepínač a nedoÅ¡lo k chybě." + +#: builtins.c:917 +msgid "" +"Evaluate arithmetic expressions.\n" +" \n" +" Evaluate each ARG as an arithmetic expression. Evaluation is done in\n" +" fixed-width integers with no check for overflow, though division by 0\n" +" is trapped and flagged as an error. The following list of operators is\n" +" grouped into levels of equal-precedence operators. The levels are " +"listed\n" +" in order of decreasing precedence.\n" +" \n" +" \tid++, id--\tvariable post-increment, post-decrement\n" +" \t++id, --id\tvariable pre-increment, pre-decrement\n" +" \t-, +\t\tunary minus, plus\n" +" \t!, ~\t\tlogical and bitwise negation\n" +" \t**\t\texponentiation\n" +" \t*, /, %\t\tmultiplication, division, remainder\n" +" \t+, -\t\taddition, subtraction\n" +" \t<<, >>\t\tleft and right bitwise shifts\n" +" \t<=, >=, <, >\tcomparison\n" +" \t==, !=\t\tequality, inequality\n" +" \t&\t\tbitwise AND\n" +" \t^\t\tbitwise XOR\n" +" \t|\t\tbitwise OR\n" +" \t&&\t\tlogical AND\n" +" \t||\t\tlogical OR\n" +" \texpr ? expr : expr\n" +" \t\t\tconditional operator\n" +" \t=, *=, /=, %=,\n" +" \t+=, -=, <<=, >>=,\n" +" \t&=, ^=, |=\tassignment\n" +" \n" +" Shell variables are allowed as operands. The name of the variable\n" +" is replaced by its value (coerced to a fixed-width integer) within\n" +" an expression. The variable need not have its integer attribute\n" +" turned on to be used in an expression.\n" +" \n" +" Operators are evaluated in order of precedence. Sub-expressions in\n" +" parentheses are evaluated first and may override the precedence\n" +" rules above.\n" +" \n" +" Exit Status:\n" +" If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise.." +msgstr "" +"Vyhodnotí aritmetický výraz.\n" +" \n" +" Vyhodnotí každý ARGUMENT jako aritmetický výraz. Vyhodnocení je\n" +" prováděno v celých číslech o pevné šířce bez kontrol přetečení, avÅ¡ak\n" +" dělení 0 je zachyceno a označeno za chybu. Následující seznam operátorů\n" +" je rozdělen do skupin podle úrovní přednosti. Skupiny jsou seřazeny\n" +" v sestupném pořadí přednosti.\n" +" \n" +" \tid++, id--\tnásledné zvýšení, snížení proměnné\n" +" \t++id, --id\tpřednostní zvýšení, snížení proměnné\n" +" \t-, +\t\tunární mínus, plus\n" +" \t!, ~\t\tlogická a bitová negace\n" +" \t**\t\tumocnění\n" +" \t*, /, %\t\tnásobení, dělení, zbytková třída\n" +" \t+, -\t\tsčítání, odečítání\n" +" \t<<, >>\t\tlevý a pravý bitový posun\n" +" \t<=, >=, <, >\tporovnání\n" +" \t==, !=\t\trovnost, nerovnost\n" +" \t&\t\tbitové a zároveň (AND)\n" +" \t^\t\tbitové vylučující nebo (XOR)\n" +" \t|\t\tbitové nebo (OR)\n" +" \t&&\t\tlogické a zároveň (AND)\n" +" \t||\t\tlogické nebo (OR)\n" +" \tVÝRAZ ? VÝRAZ : VÝRAZ\n" +" \t\t\tpodmíněný operátor\n" +" \t=, *=, /=, %=,\n" +" \t+=, -=, <<=, >>=,\n" +" \t&=, ^=, |=\tpřiřazení\n" +" \n" +" Proměnné shellu jsou povolené operandy. Název proměnné je uvnitř výrazu\n" +" nahrazen její hodnotou (s automatickým převodem na celé číslo pevné " +"šířky).\n" +" Proměnná nemusí mít atribut integer (číslo) zapnutý, aby byla " +"použitelná\n" +" ve výrazu.\n" +" \n" +" Operátory se vyhodnocují v pořadí přednosti. Podvýrazy v závorkách jsou\n" +" vyhodnoceny přednostně a smí přebít pravidla přednosti uvedená výše.\n" +" \n" +" Návratový kód:\n" +" Pokud poslední ARGUMENT je vyhodnocen na 0, let vrátí 1. Jinak je\n" +" navrácena 0." + +#: builtins.c:962 +#, fuzzy +msgid "" +"Read a line from the standard input and split it into fields.\n" +" \n" +" Reads a single line from the standard input, or from file descriptor FD\n" +" if the -u option is supplied. The line is split into fields as with " +"word\n" +" splitting, and the first word is assigned to the first NAME, the second\n" +" word to the second NAME, and so on, with any leftover words assigned to\n" +" the last NAME. Only the characters found in $IFS are recognized as " +"word\n" +" delimiters.\n" +" \n" +" If no NAMEs are supplied, the line read is stored in the REPLY " +"variable.\n" +" \n" +" Options:\n" +" -a array\tassign the words read to sequential indices of the array\n" +" \t\tvariable ARRAY, starting at zero\n" +" -d delim\tcontinue until the first character of DELIM is read, rather\n" +" \t\tthan newline\n" +" -e\t\tuse Readline to obtain the line in an interactive shell\n" +" -i text\tUse TEXT as the initial text for Readline\n" +" -n nchars\treturn after reading NCHARS characters rather than waiting\n" +" \t\tfor a newline\n" +" -p prompt\toutput the string PROMPT without a trailing newline before\n" +" \t\tattempting to read\n" +" -r\t\tdo not allow backslashes to escape any characters\n" +" -s\t\tdo not echo input coming from a terminal\n" +" -t timeout\ttime out and return failure if a complete line of input " +"is\n" +" \t\tnot read withint TIMEOUT seconds. The value of the TMOUT\n" +" \t\tvariable is the default timeout. TIMEOUT may be a\n" +" \t\tfractional number. If TIMEOUT is 0, read returns success only\n" +" \t\tif input is available on the specified file descriptor. The\n" +" \t\texit status is greater than 128 if the timeout is exceeded\n" +" -u fd\t\tread from file descriptor FD instead of the standard input\n" +" \n" +" Exit Status:\n" +" The return code is zero, unless end-of-file is encountered, read times " +"out,\n" +" or an invalid file descriptor is supplied as the argument to -u." +msgstr "" +"Načte ze standardního vstupu jeden řádek a rozdělí jej na pole.\n" +" \n" +" Ze standardního vstupu, nebo deskriptoru souboru FD, je-li zadán\n" +" přepínač -u, je načten jeden řádek. Řádek se rozdělí ba pole jako při\n" +" dělení na slova a první slovo je přiřazeno do prvního JMÉNA, druhé " +"slovo\n" +" do druhého JMÉNA a tak dále, přičemž přebývající slova se přiřadí do\n" +" posledního JMÉNA. Pouze znaky uvedené v $IFS jsou považovány za\n" +" oddělovače slov.\n" +" \n" +" Nejsou-li uvedeny žádná JMÉNA, načtený řádek bude uložen do proměnné " +"REPLY.\n" +" \n" +" Přepínače:\n" +" -a pole\tnačtená slova budou přiřazena do postupných prvků POLE\n" +" \t\tpočínaje nulou\n" +" -d oddělovač\tpokračuje, dokud se není načten první znak ODDĚLOVAČE\n" +" \t\tnamísto nového řádku\n" +" -e\t\tv interaktivním shellu bude řádek načten pomocí Readline\n" +" -i text\tpoužije TEXT jako prvotní text pro Readline\n" +" -n p_znaků\tvrátí řízení po načtení P_ZNAKÅ® znaků, aniž by čekal na\n" +" \t\tnový řádek\n" +" -p výzva\tvypíše řetězec VÝZVA bez závěrečného nového řádku,\n" +" \t\tdříve než se zahájí načítání\n" +" -r\t\tnepovolí zpětná lomítka pro escapování jakýchkoliv znaků\n" +" -s\t\tvstup pocházející z terminálu nebude zobrazován\n" +" -t limit\tumožní vyprÅ¡ení časového limitu a vrácení chyby, pokud\n" +" \t\tnebude načten celý řádek do LIMIT sekund. Hodnota proměnné\n" +" \t\tTMOUT představuje implicitní limit. TIMEOUT smí být desetinné\n" +" \t\tčíslo. Návratový kód bude větší než 128, pokud časový limit\n" +" \t\tvyprší.\n" +" -u fd\t\tčte z deskriptoru souboru FD namísto standardního vstupu\n" +" \n" +" Návratový kód:\n" +" Návratový kód je nula, pokud se nenarazí na konec souboru, časový limit\n" +" pro čtení nevyprší nebo není poskytnut neplatný deskriptor souboru jako\n" +" argument -u." + +#: builtins.c:1002 +msgid "" +"Return from a shell function.\n" +" \n" +" Causes a function or sourced script to exit with the return value\n" +" specified by N. If N is omitted, the return status is that of the\n" +" last command executed within the function or script.\n" +" \n" +" Exit Status:\n" +" Returns N, or failure if the shell is not executing a function or script." +msgstr "" +"Návrat z shellové funkce.\n" +" \n" +" Způsobí ukončení funkce nebo skriptu načteného přes „source“ " +"s návratovou\n" +" hodnotou určenou N. Je-li N vynecháno, návratový kód bude roven " +"poslednímu\n" +" příkazu vykonanému uvnitř dotyčné funkce nebo skriptu.\n" +" \n" +" Návratová hodnota:\n" +" Vrátí N, nebo selže, pokud shell neprovádí funkci nebo skript." + +#: builtins.c:1015 +msgid "" +"Set or unset values of shell options and positional parameters.\n" +" \n" +" Change the value of shell attributes and positional parameters, or\n" +" display the names and values of shell variables.\n" +" \n" +" Options:\n" +" -a Mark variables which are modified or created for export.\n" +" -b Notify of job termination immediately.\n" +" -e Exit immediately if a command exits with a non-zero status.\n" +" -f Disable file name generation (globbing).\n" +" -h Remember the location of commands as they are looked up.\n" +" -k All assignment arguments are placed in the environment for a\n" +" command, not just those that precede the command name.\n" +" -m Job control is enabled.\n" +" -n Read commands but do not execute them.\n" +" -o option-name\n" +" Set the variable corresponding to option-name:\n" +" allexport same as -a\n" +" braceexpand same as -B\n" +" emacs use an emacs-style line editing interface\n" +" errexit same as -e\n" +" errtrace same as -E\n" +" functrace same as -T\n" +" hashall same as -h\n" +" histexpand same as -H\n" +" history enable command history\n" +" ignoreeof the shell will not exit upon reading EOF\n" +" interactive-comments\n" +" allow comments to appear in interactive commands\n" +" keyword same as -k\n" +" monitor same as -m\n" +" noclobber same as -C\n" +" noexec same as -n\n" +" noglob same as -f\n" +" nolog currently accepted but ignored\n" +" notify same as -b\n" +" nounset same as -u\n" +" onecmd same as -t\n" +" physical same as -P\n" +" pipefail the return value of a pipeline is the status of\n" +" the last command to exit with a non-zero status,\n" +" or zero if no command exited with a non-zero " +"status\n" +" posix change the behavior of bash where the default\n" +" operation differs from the Posix standard to\n" +" match the standard\n" +" privileged same as -p\n" +" verbose same as -v\n" +" vi use a vi-style line editing interface\n" +" xtrace same as -x\n" +" -p Turned on whenever the real and effective user ids do not match.\n" +" Disables processing of the $ENV file and importing of shell\n" +" functions. Turning this option off causes the effective uid and\n" +" gid to be set to the real uid and gid.\n" +" -t Exit after reading and executing one command.\n" +" -u Treat unset variables as an error when substituting.\n" +" -v Print shell input lines as they are read.\n" +" -x Print commands and their arguments as they are executed.\n" +" -B the shell will perform brace expansion\n" +" -C If set, disallow existing regular files to be overwritten\n" +" by redirection of output.\n" +" -E If set, the ERR trap is inherited by shell functions.\n" +" -H Enable ! style history substitution. This flag is on\n" +" by default when the shell is interactive.\n" +" -P If set, do not follow symbolic links when executing commands\n" +" such as cd which change the current directory.\n" +" -T If set, the DEBUG trap is inherited by shell functions.\n" +" - Assign any remaining arguments to the positional parameters.\n" +" The -x and -v options are turned off.\n" +" \n" +" Using + rather than - causes these flags to be turned off. The\n" +" flags can also be used upon invocation of the shell. The current\n" +" set of flags may be found in $-. The remaining n ARGs are positional\n" +" parameters and are assigned, in order, to $1, $2, .. $n. If no\n" +" ARGs are given, all shell variables are printed.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given." +msgstr "" +"Nastaví nebo zruší hodnoty přepínačů shellu a pozičních parametrů.\n" +" \n" +" Změní hodnoty atributům shellu a pozičním parametrům, nebo zobrazí " +"názvy\n" +" a hodnoty proměnných shellu.\n" +" \n" +" Přepínače:\n" +" -a Označí měněné nebo vytvářené proměnné pro export.\n" +" -b Neprodleně oznámí ukončení úlohy.\n" +" -e Neprodleně skončí, pokud nějaký příkaz skončí s nenulovým kódem.\n" +" -f Zakáže vytváření jmen souborů (globbing).\n" +" -h Zapamatuje si umístění příkazů tehdy, když jsou vyhledány.\n" +" -k VÅ¡echny přiřazovací argumenty budou umístěny do prostředí\n" +" příkazu. Nejenom ty, co předchází název příkazu.\n" +" -m Správa úloh je zapnuta.\n" +" -n Příkazy načte, ale neprovede je.\n" +" -o NÁZEV_PŘEPÍNAČE\n" +" Nastaví proměnnou odpovídající NÁZVU_PŘEPÍNAČE:\n" +" allexport stejné jako -a\n" +" braceexpand stejné jako -B\n" +" emacs použije emacsový způsob editace na řádku\n" +" errexit stejné jako -e\n" +" errtrace stejné jako -E\n" +" functrace stejné jako -T\n" +" hashall stejné jako -h\n" +" histexpand stejné jako -H\n" +" history zapne historii příkazů\n" +" ignoreeof shell neskončí, když načte EOF (konec souboru)\n" +" interactive-comments\n" +" povolí, aby se v interaktivních příkazech\n" +" objevovaly komentáře\n" +" keyword stejné jako -k\n" +" monitor stejné jako -m\n" +" noclobber stejné jako -C\n" +" noexec stejné jako -n\n" +" noglob stejné jako -f\n" +" nolog v současnosti přijímáno, ale ignorováno\n" +" notify stejné jako -b\n" +" nounset stejné jako -u\n" +" onecmd stejné jako -t\n" +" physical stejné jako -P\n" +" pipefail návratová hodnota kolony je status posledního\n" +" příkazu, který skončil s nenulovým kódem.\n" +" Návratová hodnota je nula, pokud žádný z příkazů\n" +" neskončil s nenulovým kódem.\n" +" posix změní chování bashe tam, kde implicitní chování\n" +" se liší od standardu 1003.2, tak, aby bylo\n" +" v souladu se standardem\n" +" privileged stejné jako -p\n" +" verbose stejné jako -v\n" +" vi použije vi způsob editace na řádku\n" +" xtrace stejné jako -x\n" +" -p Zapnuto, kdykoliv reálné a efektivní ID uživatele se neshodují.\n" +" Vypne zpracování souboru $ENV a importování shellových funkcí.\n" +" Vypnutí tohoto přepínače způsobí, že efektivní UID a GID budou\n" +" nastavena na reálná UID a GID.\n" +" -t Skončí po načtení a provedení jednoho příkazu.\n" +" -u Při substituci považuje nenastavené proměnné za chybu.\n" +" -v Vstupní řádky shellu se budou vypisovat tak, jak budou načítány.\n" +" -x Vypisuje příkazy a jejich argumenty tak, jak jsou spouÅ¡těny.\n" +" -B Shell bude provádět závorkovou (brace) expanzi.\n" +" -C Je-li nastaveno, zakáže přepsání již existujících běžných souborů\n" +" při přesměrování výstupu.\n" +" -E Je-li nastaveno, trap ERR (zachytávání chyb) bude děděn do\n" +" funkcí shellu.\n" +" -H Zapne ! způsob nahrazování histore. Tento příznak je automaticky\n" +" zapnut při interaktivním shellu.\n" +" -P Je-li nastaveno, nebudou následovány symbolické odkazy při\n" +" provádění příkazů jako změna pracovního adresáře pomocí „cd“.\n" +" -T Je-li nastaveno, trap DEBUG (obsluha ladění) bude děděna do\n" +" funkcí shellu.\n" +" - Přiřadí jakékoliv zbývající argumenty do pozičních parametrů.\n" +" Přepínače -x a -v budou vypnuty.\n" +" \n" +" Použití + místo - způsobí, že tyto příznaky budou vypnuty. Příznaky lze " +"též\n" +" použít při volání shellu. Aktuální množinu příznaků je možno nalézt " +"v $-.\n" +" Přebývajících n ARGUMENTÅ® jsou poziční parametry a budou přiřazeny,\n" +" v pořadí, do $1, $2, … $n. Nejsou-li zadány žádné ARGUMENTY, budou\n" +" vytiÅ¡těny vÅ¡echny proměnné shellu.\n" +" \n" +" Návratový kód:\n" +" Vrátí úspěch, pokud nebyl zadán neplatný argument." + +#: builtins.c:1097 +msgid "" +"Unset values and attributes of shell variables and functions.\n" +" \n" +" For each NAME, remove the corresponding variable or function.\n" +" \n" +" Options:\n" +" -f\ttreat each NAME as a shell function\n" +" -v\ttreat each NAME as a shell variable\n" +" \n" +" Without options, unset first tries to unset a variable, and if that " +"fails,\n" +" tries to unset a function.\n" +" \n" +" Some variables cannot be unset; also see `readonly'.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or a NAME is read-only." +msgstr "" +"Odstraňuje hodnoty a atributy proměnných a funkcí shellu.\n" +" \n" +" Pro každé JMÉNO odstraní odpovídající proměnnou nebo funkci.\n" +" \n" +" Přepínače:\n" +" -f\tpovažuje každé JMÉNO za funkci shellu\n" +" -v\tpovažuje každé JMÉNO za proměnnou shellu\n" +" \n" +" Bez těchto dvou příznaků unset nejprve zkusí zruÅ¡it proměnnou a pokud " +"toto\n" +" selže, tak zkusí zruÅ¡it funkci.\n" +" \n" +" Některé proměnné nelze odstranit. Vizte příkaz „readonly“.\n" +" \n" +" Návratový kód:\n" +" Vrátí úspěch, pokud nebyl zadán neplatný přepínač a JMÉNO není jen pro\n" +" čtení." + +#: builtins.c:1117 +msgid "" +"Set export attribute for shell variables.\n" +" \n" +" Marks each NAME for automatic export to the environment of subsequently\n" +" executed commands. If VALUE is supplied, assign VALUE before " +"exporting.\n" +" \n" +" Options:\n" +" -f\trefer to shell functions\n" +" -n\tremove the export property from each NAME\n" +" -p\tdisplay a list of all exported variables and functions\n" +" \n" +" An argument of `--' disables further option processing.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or NAME is invalid." +msgstr "" +"Nastaví atribut exportovat proměnné shellu.\n" +" \n" +" Každý NÁZEV je označen pro automatické exportování do prostředí " +"následně\n" +" prováděných příkazů. Je-li zadána HODNOTA, před exportem přiřadí " +"HODNOTU.\n" +" \n" +" Přepínače:\n" +" -f\tvztahuje se na funkce shellu\n" +" -n\todstraní vlastnost exportovat každému NÁZVU\n" +" -p\tzobrazí seznam vÅ¡ech exportovaných proměnných a funkcí\n" +" \n" +" Argument „--“ zakazuje zpracování dalších přepínačů.\n" +" \n" +" Návratový kód:\n" +" Vrátí úspěch, pokud nebyl zadán neplatný přepínač nebo NÁZEV." + +#: builtins.c:1136 +msgid "" +"Mark shell variables as unchangeable.\n" +" \n" +" Mark each NAME as read-only; the values of these NAMEs may not be\n" +" changed by subsequent assignment. If VALUE is supplied, assign VALUE\n" +" before marking as read-only.\n" +" \n" +" Options:\n" +" -a\trefer to indexed array variables\n" +" -A\trefer to associative array variables\n" +" -f\trefer to shell functions\n" +" -p\tdisplay a list of all readonly variables and functions\n" +" \n" +" An argument of `--' disables further option processing.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or NAME is invalid." +msgstr "" +"Označí proměnné shellu za nezměnitelné.\n" +" \n" +" Označí každý NÁZEV jako jen pro čtení, hodnoty těchto NÁZVÅ® nebude " +"možné\n" +" změnit následným přiřazením. Je-li zadána HODNOTA, před označením za " +"jen\n" +" pro čtení přiřadí HODNOTU.\n" +" \n" +" Přepínače:\n" +" -a\tvztahuje se na proměnné typu číslované pole\n" +" -A\tvztahuje se na proměnné typu asociativní pole\n" +" -f\tvztahuje se funkce shellu\n" +" -p\tzobrazí seznam vÅ¡ech proměnných a funkcí jen pro čtení\n" +" \n" +" Argument „--“ zakáže zpracování dalších přepínačů.\n" +" \n" +" Návratový kód:\n" +" Vrátí úspěch, pokud nebyl zadán neplatný přepínač nebo NÁZEV." + +#: builtins.c:1157 +msgid "" +"Shift positional parameters.\n" +" \n" +" Rename the positional parameters $N+1,$N+2 ... to $1,$2 ... If N is\n" +" not given, it is assumed to be 1.\n" +" \n" +" Exit Status:\n" +" Returns success unless N is negative or greater than $#." +msgstr "" +"Posune poziční parametry.\n" +" \n" +" Přejmenuje poziční parametry $N+1, $N+2, … na $1, $2, …\n" +" Není-li zadáno N, předpokládá se 1.\n" +" \n" +" Návratový kód:\n" +" Vrátí úspěch, pokud N není záporný a není větší než $#." + +#: builtins.c:1169 builtins.c:1184 +msgid "" +"Execute commands from a file in the current shell.\n" +" \n" +" Read and execute commands from FILENAME in the current shell. The\n" +" entries in $PATH are used to find the directory containing FILENAME.\n" +" If any ARGUMENTS are supplied, they become the positional parameters\n" +" when FILENAME is executed.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed in FILENAME; fails if\n" +" FILENAME cannot be read." +msgstr "" +"Vykoná příkazy obsažené ze souboru v současném shellu.\n" +" \n" +" Načte a provede příkazy z NÁZEV_SOUBORU v tomto shellu. Položky v $PATH\n" +" jsou použity pro nalezení adresáře obsahujícího NÁZEV_SOUBORU. Jsou-li\n" +" zadány nějaké ARGUMENTY, stanou se pozičními parametry při běhu\n" +" NÁZVU_SOUBORU.\n" +" \n" +" Návratový kód:\n" +" Vrací návratový kód posledního provedeného příkazu z NÁZVU_SOUBORU.\n" +" Selže, pokud NÁZEV_SOUBORU nelze načíst." + +#: builtins.c:1200 +msgid "" +"Suspend shell execution.\n" +" \n" +" Suspend the execution of this shell until it receives a SIGCONT signal.\n" +" Unless forced, login shells cannot be suspended.\n" +" \n" +" Options:\n" +" -f\tforce the suspend, even if the shell is a login shell\n" +" \n" +" Exit Status:\n" +" Returns success unless job control is not enabled or an error occurs." +msgstr "" +"Pozastaví běh shellu.\n" +" \n" +" Pozastaví provádění tohoto shellu do doby, něž bude obdržen signál\n" +" SIGCONT. Není-li vynuceno, přihlaÅ¡ovací shell nelze pozastavit.\n" +" \n" +" Přepínače:\n" +" -f\tvynutí pozastavení, i když se jedná o přihlaÅ¡ovací (login) shellu\n" +" \n" +" Návratový kód:\n" +" Vrací úspěch, pokud je správa úloh zapnuta a nevyskytla se chyba." + +#: builtins.c:1216 +msgid "" +"Evaluate conditional expression.\n" +" \n" +" Exits with a status of 0 (true) or 1 (false) depending on\n" +" the evaluation of EXPR. Expressions may be unary or binary. Unary\n" +" expressions are often used to examine the status of a file. There\n" +" are string operators as well, and numeric comparison operators.\n" +" \n" +" File operators:\n" +" \n" +" -a FILE True if file exists.\n" +" -b FILE True if file is block special.\n" +" -c FILE True if file is character special.\n" +" -d FILE True if file is a directory.\n" +" -e FILE True if file exists.\n" +" -f FILE True if file exists and is a regular file.\n" +" -g FILE True if file is set-group-id.\n" +" -h FILE True if file is a symbolic link.\n" +" -L FILE True if file is a symbolic link.\n" +" -k FILE True if file has its `sticky' bit set.\n" +" -p FILE True if file is a named pipe.\n" +" -r FILE True if file is readable by you.\n" +" -s FILE True if file exists and is not empty.\n" +" -S FILE True if file is a socket.\n" +" -t FD True if FD is opened on a terminal.\n" +" -u FILE True if the file is set-user-id.\n" +" -w FILE True if the file is writable by you.\n" +" -x FILE True if the file is executable by you.\n" +" -O FILE True if the file is effectively owned by you.\n" +" -G FILE True if the file is effectively owned by your group.\n" +" -N FILE True if the file has been modified since it was last " +"read.\n" +" \n" +" FILE1 -nt FILE2 True if file1 is newer than file2 (according to\n" +" modification date).\n" +" \n" +" FILE1 -ot FILE2 True if file1 is older than file2.\n" +" \n" +" FILE1 -ef FILE2 True if file1 is a hard link to file2.\n" +" \n" +" String operators:\n" +" \n" +" -z STRING True if string is empty.\n" +" \n" +" -n STRING\n" +" STRING True if string is not empty.\n" +" \n" +" STRING1 = STRING2\n" +" True if the strings are equal.\n" +" STRING1 != STRING2\n" +" True if the strings are not equal.\n" +" STRING1 < STRING2\n" +" True if STRING1 sorts before STRING2 " +"lexicographically.\n" +" STRING1 > STRING2\n" +" True if STRING1 sorts after STRING2 lexicographically.\n" +" \n" +" Other operators:\n" +" \n" +" -o OPTION True if the shell option OPTION is enabled.\n" +" ! EXPR True if expr is false.\n" +" EXPR1 -a EXPR2 True if both expr1 AND expr2 are true.\n" +" EXPR1 -o EXPR2 True if either expr1 OR expr2 is true.\n" +" \n" +" arg1 OP arg2 Arithmetic tests. OP is one of -eq, -ne,\n" +" -lt, -le, -gt, or -ge.\n" +" \n" +" Arithmetic binary operators return true if ARG1 is equal, not-equal,\n" +" less-than, less-than-or-equal, greater-than, or greater-than-or-equal\n" +" than ARG2.\n" +" \n" +" Exit Status:\n" +" Returns success if EXPR evaluates to true; fails if EXPR evaluates to\n" +" false or an invalid argument is given." +msgstr "" +"Vyhodnotí podmínkový výraz.\n" +" \n" +" Skončí s kódem 0 (pravda) nebo 1 (nepravda) podle vyhodnocení VÝRAZU.\n" +" Výraz smí být unární nebo binární. Unární výrazy se často používají pro\n" +" zjiÅ¡tění stavu souboru. Rovněž jsou k dispozici řetězcové operátory a\n" +" operátory číselného porovnání.\n" +" \n" +" Souborové operátory:\n" +" \n" +" -a SOUBOR Pravda, pokud soubor existuje.\n" +" -b SOUBOR Pravda, pokud soubor je blokovým zařízením.\n" +" -c SOUBOR Pravda, pokud soubor je znakovým zařízením.\n" +" -d SOUBOR Pravda, pokud soubor je adresářem.\n" +" -e SOUBOR Pravda, pokud soubor existuje.\n" +" -f SOUBOR Pravda, pokud soubor existuje a je to běžný soubor.\n" +" -g SOUBOR Pravda, pokud soubor je SGID.\n" +" -h SOUBOR Pravda, pokud soubor je symbolickým odkazem.\n" +" -L SOUBOR Pravda, pokud soubor je symbolickým odkazem.\n" +" -k SOUBOR Pravda, pokud soubor má nastavený „sticky“ bit.\n" +" -p SOUBOR Pravda, pokud soubor je pojmenovanou rourou.\n" +" -r SOUBOR Pravda, pokud soubor je vámi čitelný.\n" +" -s SOUBOR Pravda, pokud soubor existuje a je neprázdný.\n" +" -S SOUBOR Pravda, pokud soubor je socketem.\n" +" -t FD Pravda, pokud FD (deskriptor souboru) je otevřený na\n" +" terminálu.\n" +" -u SOUBOR Pravda, pokud soubor je SUID.\n" +" -w SOUBOR Pravda, pokud soubor je vámi zapisovatelný.\n" +" -x SOUBOR Pravda, pokud soubor je vámi spustitelný.\n" +" -O SOUBOR Pravda, pokud soubor je vámi efektivně vlastněn.\n" +" -G SOUBOR Pravda, pokud soubor je efektivně vlastněn vaší\n" +" skupinou.\n" +" -N SOUBOR Pravda, pokud soubor byl změněn po posledním čtení.\n" +" \n" +" SOUBOR1 -nt SOUBOR2\n" +" Pravda, pokud je SOUBOR1 novější než SOUBOR2 (podle " +"času\n" +" změny obsahu).\n" +" \n" +" SOUBOR1 -ot SOUBOR2\n" +" Pravda, pokud SOUBOR1 je starší než SOUBOR2.\n" +" \n" +" SOUBOR1 -ef SOUBOR2\n" +" Pravda, pokud SOUBOR1 je pevným odkazem na SOUBOR2.\n" +" \n" +" Řetězcové operátory:\n" +" \n" +" -z ŘETĚZEC Pravda, pokud ŘETĚZEC je prázdný.\n" +" \n" +" -n ŘETĚZEC\n" +" ŘETĚZEC Pravda, pokud ŘETĚZEC není prázdný.\n" +" \n" +" ŘETĚZEC1 = ŘETĚZEC2\n" +" Pravda, pokud jsou řetězce shodné.\n" +" ŘETĚZEC1 != ŘETĚZEC2\n" +" Pravda, pokud se řetězce neshodují.\n" +" ŘETĚZEC1 < ŘETĚZEC2\n" +" Pravda, pokud se ŘETĚZEC1 řadí lexikograficky před\n" +" ŘETĚZEC2.\n" +" ŘETĚZEC1 > ŘETĚZEC2\n" +" Pravda, pokud se ŘETĚZEC1 řadí lexikograficky za\n" +" ŘETĚZEC2.\n" +" \n" +" Další operátory:\n" +" \n" +" -o PŘEPÍNAČ Pravda, pokud je přepínač shellu PŘEPÍNAČ zapnut.\n" +" ! VÝRAZ Pravda, pokud je VÝRAZ nepravdivý.\n" +" VÝRAZ1 -a VÝRAZ2\n" +" Pravda, pokud oba VÝRAZ1 I VÝRAZ2 jsou pravdivé.\n" +" VÝRAZ1 -o VÝRAZ2\n" +" Pravda, pokud VÝRAZ1 NEBO VÝRAZ2 je pravdivý.\n" +" \n" +" ARGUMENT1 OP ARGUMENT2\n" +" Aritmetické testy. OP je jeden z -eq, -ne, -lt,\n" +" -le, -gt nebo -ge.\n" +" \n" +" Aritmetické binární operátory vracejí pravdu, pokud ARGUMENT1 je roven,\n" +" neroven, menší než, menší než nebo roven, větší než, větší než nebo\n" +" roven ARGUMENTU2. \n" +" Návratový kód:\n" +" Vrací úspěch, je-li VÝRAZ vyhodnocen jako pravdivý. Selže, je-li VÝRAZ\n" +" vyhodnocen jako nepravdivý nebo je-li zadán neplatný argument." + +#: builtins.c:1292 +msgid "" +"Evaluate conditional expression.\n" +" \n" +" This is a synonym for the \"test\" builtin, but the last argument must\n" +" be a literal `]', to match the opening `['." +msgstr "" +"Vyhodnotí podmínkový výraz.\n" +" \n" +" Toto je synonymum pro vestavěný příkaz „test“, až na to, že poslední\n" +" argument musí být doslovně „]“, aby se shodoval s otevírající „[“." + +#: builtins.c:1301 +msgid "" +"Display process times.\n" +" \n" +" Prints the accumulated user and system times for the shell and all of " +"its\n" +" child processes.\n" +" \n" +" Exit Status:\n" +" Always succeeds." +msgstr "" +"Zobrazí časy procesu.\n" +" \n" +" Vypíše celkovou dobu procesu shellu a vÅ¡ech jeho potomků, kterou " +"strávili\n" +" v uživatelském a jaderném (system) prostoru.\n" +" \n" +" Návratový kód:\n" +" Vždy uspěje." + +#: builtins.c:1313 +msgid "" +"Trap signals and other events.\n" +" \n" +" Defines and activates handlers to be run when the shell receives " +"signals\n" +" or other conditions.\n" +" \n" +" ARG is a command to be read and executed when the shell receives the\n" +" signal(s) SIGNAL_SPEC. If ARG is absent (and a single SIGNAL_SPEC\n" +" is supplied) or `-', each specified signal is reset to its original\n" +" value. If ARG is the null string each SIGNAL_SPEC is ignored by the\n" +" shell and by the commands it invokes.\n" +" \n" +" If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell. " +"If\n" +" a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command.\n" +" \n" +" If no arguments are supplied, trap prints the list of commands " +"associated\n" +" with each signal.\n" +" \n" +" Options:\n" +" -l\tprint a list of signal names and their corresponding numbers\n" +" -p\tdisplay the trap commands associated with each SIGNAL_SPEC\n" +" \n" +" Each SIGNAL_SPEC is either a signal name in or a signal " +"number.\n" +" Signal names are case insensitive and the SIG prefix is optional. A\n" +" signal may be sent to the shell with \"kill -signal $$\".\n" +" \n" +" Exit Status:\n" +" Returns success unless a SIGSPEC is invalid or an invalid option is " +"given." +msgstr "" +"Zachytávání signálů a jiných událostí.\n" +" \n" +" Definuje a aktivuje obsluhy, které budou spuÅ¡těny, když shell obdrží\n" +" signály nebo nastanou určité podmínky.\n" +" \n" +" Příkaz ARGUMENT bude načten a proveden, až shell obdrží signál(y)\n" +" SIGNAL_SPEC. Pokud ARGUMENT chybí (a je zadán jeden SIGNAL_SPEC) nebo " +"je\n" +" „-“, každý určený signál bude přenastaven zpět na svoji původní " +"hodnotu.\n" +" Je-li ARGUMENT prázdný řetězec, každý SIGNAL_SPEC bude shellem a " +"příkazy\n" +" z něj spuÅ¡těnými ignorován.\n" +" \n" +" Je-li SIGNAL_SPEC „EXIT (0)“, bude ARGUMENT proveden při ukončování " +"tohoto\n" +" shellu. Je-li SIGNAL_SPEC „DEBUG“, bude ARGUMENT proveden před každým\n" +" jednoduchým příkazem.\n" +" \n" +" Nejsou-li poskytnuty žádné argumenty, trap vypíše seznam příkazů " +"navázaných\n" +" na vÅ¡echny signály.\n" +" \n" +" Přepínače:\n" +" -l\tvypíše seznam jmen signálů a jim odpovídajících čísel\n" +" -p\tzobrazí příkazy navázané na každý SIGNAL_SPEC\n" +" \n" +" Každý SIGNAL_SPEC je buďto jméno signálu ze , nebo číslo " +"signálu.\n" +" U jmen signálů nezáleží na velikosti písmen a předpona SIG je " +"nepovinná.\n" +" Aktuálnímu shellu lze zaslat signál pomocí „kill -signal $$“.\n" +" \n" +" Návratový kód:\n" +" Vrátí úspěch, pokud SIGSPEC a zadané přepínače jsou platné." + +#: builtins.c:1345 +msgid "" +"Display information about command type.\n" +" \n" +" For each NAME, indicate how it would be interpreted if used as a\n" +" command name.\n" +" \n" +" Options:\n" +" -a\tdisplay all locations containing an executable named NAME;\n" +" \tincludes aliases, builtins, and functions, if and only if\n" +" \tthe `-p' option is not also used\n" +" -f\tsuppress shell function lookup\n" +" -P\tforce a PATH search for each NAME, even if it is an alias,\n" +" \tbuiltin, or function, and returns the name of the disk file\n" +" \tthat would be executed\n" +" -p\treturns either the name of the disk file that would be executed,\n" +" \tor nothing if `type -t NAME' would not return `file'.\n" +" -t\toutput a single word which is one of `alias', `keyword',\n" +" \t`function', `builtin', `file' or `', if NAME is an alias, shell\n" +" \treserved word, shell function, shell builtin, disk file, or not\n" +" \tfound, respectively\n" +" \n" +" Arguments:\n" +" NAME\tCommand name to be interpreted.\n" +" \n" +" Exit Status:\n" +" Returns success if all of the NAMEs are found; fails if any are not " +"found." +msgstr "" +"Zobrazí informace o typu příkazu.\n" +" \n" +" O každém NÁZVU řekne, jak by byl interpretován, kdyby byl použit jako\n" +" název příkazu.\n" +" \n" +" Přepínače\n" +" -a\tzobrazí vÅ¡echna místa, kde se nalézá spustitelný program\n" +" \tpojmenovaný NÁZEV. To zahrnuje aliasy, vestavěné příkazy a funkce\n" +" \tjen a pouze tehdy, když není rovněž použit přepínač -p.\n" +" -f\tpotlačí hledání mezi funkcemi shellu\n" +" -P\tvynutí prohledání PATH na každý NÁZEV, dokonce i když se\n" +" \tjedná o alias, vestavěný příkaz nebo funkci, a vrátí název\n" +" \tsouboru na disku, který by byl spuÅ¡těn\n" +" -p\tbuď vrátí jméno souboru na disku, který by byl spuÅ¡těn,\n" +" \tnebo nic, pokud „type -t NÁZEV“ by nevrátil „file“ (soubor)\n" +" -t\tvypíše jedno slovo z těchto: „alias“, „keyword“, „function“,\n" +" \t„builtin“, „file“ nebo „“, je-li NÁZEV alias, klíčové slovo\n" +" \tshellu, shellová funkce, vestavěný příkaz shellu, soubor na\n" +" \tdisku nebo nenalezený příkaz\n" +" \n" +" Argumenty:\n" +" NÁZEV\tNázev příkazu určený k výkladu.\n" +" \n" +" Návratový kód:\n" +" Vrátí úspěch, pokud vÅ¡echny NÁZVY byly nalezeny. Selže, pokud některé\n" +" nalezeny nebyly." + +#: builtins.c:1376 +msgid "" +"Modify shell resource limits.\n" +" \n" +" Provides control over the resources available to the shell and " +"processes\n" +" it creates, on systems that allow such control.\n" +" \n" +" Options:\n" +" -S\tuse the `soft' resource limit\n" +" -H\tuse the `hard' resource limit\n" +" -a\tall current limits are reported\n" +" -b\tthe socket buffer size\n" +" -c\tthe maximum size of core files created\n" +" -d\tthe maximum size of a process's data segment\n" +" -e\tthe maximum scheduling priority (`nice')\n" +" -f\tthe maximum size of files written by the shell and its children\n" +" -i\tthe maximum number of pending signals\n" +" -l\tthe maximum size a process may lock into memory\n" +" -m\tthe maximum resident set size\n" +" -n\tthe maximum number of open file descriptors\n" +" -p\tthe pipe buffer size\n" +" -q\tthe maximum number of bytes in POSIX message queues\n" +" -r\tthe maximum real-time scheduling priority\n" +" -s\tthe maximum stack size\n" +" -t\tthe maximum amount of cpu time in seconds\n" +" -u\tthe maximum number of user processes\n" +" -v\tthe size of virtual memory\n" +" -x\tthe maximum number of file locks\n" +" \n" +" If LIMIT is given, it is the new value of the specified resource; the\n" +" special LIMIT values `soft', `hard', and `unlimited' stand for the\n" +" current soft limit, the current hard limit, and no limit, respectively.\n" +" Otherwise, the current value of the specified resource is printed. If\n" +" no option is given, then -f is assumed.\n" +" \n" +" Values are in 1024-byte increments, except for -t, which is in seconds,\n" +" -p, which is in increments of 512 bytes, and -u, which is an unscaled\n" +" number of processes.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" +"Upravuje omezení (limity) zdrojů shellu.\n" +" \n" +" Poskytuje kontrolu nad zdroji dostupnými shellu a procesům z něj\n" +" spuÅ¡těných (na systémech, které takovou kontrolu umožňují).\n" +" \n" +" Přepínače:\n" +" -S\tpoužije se „měkké“ (soft) omezení zdroje\n" +" -H\tpoužije se „tvrdé“ (hard) omezení zdroje\n" +" -a\tnahlásí vÅ¡echna současná omezení (limity)\n" +" -b\tvelikost vyrovnávací paměti socketů\n" +" -c\tmaximální velikost vytvářených core souborů (výpis paměti " +"programu)\n" +" -d\tmaximální velikost datového segmentu procesu\n" +" -e\tmaximální plánovací priorita („nice“)\n" +" -f\tmaximální velikost souborů zapsaných shellem a jeho potomky\n" +" -i\tmaximální počet čekajících signálů\n" +" -l\tmaximální velikost paměti, kterou může proces zamknout\n" +" -m\tmaximální velikost rezidentní paměti (resident set size)\n" +" -n\tmaximální počet otevřených deskriptorů souboru\n" +" -p\tvelikost vyrovnávací paměti rour\n" +" -q\tmaximální počet bajtů ve frontě posixových zpráv\n" +" -r\tmaximální priorita plánování v reálném čase\n" +" -s\tmaximální velikost zásobníku\n" +" -t\tmaximální množství procesorového času v sekundách\n" +" -u\tmaximální počet procesů uživatele\n" +" -v\tvelikost virtuální paměti\n" +" -x\tmaximální počet zámků na souborech\n" +" \n" +" Je-li zadán LIMIT, jedná se o novou hodnotu daného zdroje. Zvláštní\n" +" hodnoty LIMITU „soft“, „hard“ a „unlimited“ znamenají současný měkký\n" +" limit, současný tvrdý limit a žádný limit. V opačném případě bude\n" +" zobrazena současná hodnota limitu daného zdroje. Není-li zadán žádný\n" +" přepínač, pak se předpokládá -f.\n" +" \n" +" Hodnoty jsou v násobcích 1024 bajtů, kromě -t, která je v sekundách,\n" +" -p, která je v násobcích 512 bajtů, a -u, což je absolutní počet " +"procesů.\n" +" \n" +" Návratová hodnota:\n" +" Vrací úspěch, pokud nebyl zadán neplatný přepínač a nevyskytla se chyba." + +#: builtins.c:1421 +msgid "" +"Display or set file mode mask.\n" +" \n" +" Sets the user file-creation mask to MODE. If MODE is omitted, prints\n" +" the current value of the mask.\n" +" \n" +" If MODE begins with a digit, it is interpreted as an octal number;\n" +" otherwise it is a symbolic mode string like that accepted by chmod(1).\n" +" \n" +" Options:\n" +" -p\tif MODE is omitted, output in a form that may be reused as input\n" +" -S\tmakes the output symbolic; otherwise an octal number is output\n" +" \n" +" Exit Status:\n" +" Returns success unless MODE is invalid or an invalid option is given." +msgstr "" +"Zobrazí nebo nastaví uživatelskou masku práv.\n" +" \n" +" Nastaví Uživatelskou masku práv vytvářených souborů na MÓD. Je-li\n" +" MÓD vynechán, bude vytiÅ¡těna současná hodnota masky.\n" +" \n" +" Začíná-li MÓD číslicí, bude interpretován jako osmičkové číslo, jinak\n" +" jako řetězec symbolického zápisu práv tak, jak jej chápe chmod(1).\n" +" \n" +" Přepínače:\n" +" -p\tje-li MÓD vynechán, bude výstup v podobě, kterou lze použít\n" +" \tjako vstup\n" +" -S\tučiní výstup symbolický, jinak bude výstupem osmičkové číslo\n" +" \n" +" Návratový kód\n" +" Vrátí úspěch, pokud nebyl zadán neplatný MÓD nebo přepínač." + +#: builtins.c:1441 +msgid "" +"Wait for job completion and return exit status.\n" +" \n" +" Waits for the process identified by ID, which may be a process ID or a\n" +" job specification, and reports its termination status. If ID is not\n" +" given, waits for all currently active child processes, and the return\n" +" status is zero. If ID is a a job specification, waits for all " +"processes\n" +" in the job's pipeline.\n" +" \n" +" Exit Status:\n" +" Returns the status of ID; fails if ID is invalid or an invalid option " +"is\n" +" given." +msgstr "" +"Počká na dokončení úlohy a vrátí její návratový kód.\n" +" \n" +" Počká na proces určený ID, což může být ID procesu nebo identifikace\n" +" úlohy, a nahlásí jeho návratový kód. Není-li ID zadáno, počká na " +"vÅ¡echny\n" +" právě aktivní dětské procesy a návratovým kódem bude nula. Je-li ID\n" +" identifikátorem úlohy, počká na vÅ¡echny procesy z kolony úlohy.\n" +" \n" +" Návratový kód:\n" +" Vrátí kód ID, selže, pokud ID není platný nebo byl zadán neplatný " +"přepínač." + +#: builtins.c:1459 +msgid "" +"Wait for process completion and return exit status.\n" +" \n" +" Waits for the specified process and reports its termination status. If\n" +" PID is not given, all currently active child processes are waited for,\n" +" and the return code is zero. PID must be a process ID.\n" +" \n" +" Exit Status:\n" +" Returns the status of ID; fails if ID is invalid or an invalid option " +"is\n" +" given." +msgstr "" +"Počká na dokončení procesu a vrátí jeho návratový kód.\n" +" \n" +" Počká na zadaný proces a nahlásí jeho návratový kód. Není-li PID zadán,\n" +" bude se čekat na vÅ¡echny právě aktivní procesy potomků a návratová " +"hodnota\n" +" bude nula. PID musí být ID procesu.\n" +" \n" +" Návratový kód:\n" +" Vrátí kód ID, selže, pokud ID není platný nebo byl zadán neplatný " +"přepínač." + +#: builtins.c:1474 +msgid "" +"Execute commands for each member in a list.\n" +" \n" +" The `for' loop executes a sequence of commands for each member in a\n" +" list of items. If `in WORDS ...;' is not present, then `in \"$@\"' is\n" +" assumed. For each element in WORDS, NAME is set to that element, and\n" +" the COMMANDS are executed.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"Pro každý prvek seznamu vykoná příkazy.\n" +" \n" +" Smyčka „for“ provede posloupnost příkazů pro každý prvek v seznamu " +"položek.\n" +" Pokud „in SLOVECH…;“ není přítomno, pak se předpokládá „in \"$@\"“. " +"NÁZEV\n" +" bude postupně nastaven na každý prvek ve SLOVECH a PŘÍKAZY budou " +"provedeny.\n" +" \n" +" Návratový kód:\n" +" Vrátí kód naposledy provedeného příkazu." + +#: builtins.c:1488 +msgid "" +"Arithmetic for loop.\n" +" \n" +" Equivalent to\n" +" \t(( EXP1 ))\n" +" \twhile (( EXP2 )); do\n" +" \t\tCOMMANDS\n" +" \t\t(( EXP3 ))\n" +" \tdone\n" +" EXP1, EXP2, and EXP3 are arithmetic expressions. If any expression is\n" +" omitted, it behaves as if it evaluates to 1.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"Aritmetika smyček.\n" +" \n" +" Ekvivalentní k\n" +" \t(( VÝR1 ))\n" +" \twhile (( VÝR2 )); do\n" +" \t\tPŘÍKAZY\n" +" \t\t(( VÝR3 ))\n" +" \tdone\n" +" VÝR1, VÝR2 a VÝR3 jsou aritmetické výrazy. Chybí-li některý výraz,\n" +" chová se, jako by byl vyhodnocen na 1. \n" +" Návratový kód:\n" +" Vrátí kód naposledy vykonaného příkazu." + +#: builtins.c:1506 +msgid "" +"Select words from a list and execute commands.\n" +" \n" +" The WORDS are expanded, generating a list of words. The\n" +" set of expanded words is printed on the standard error, each\n" +" preceded by a number. If `in WORDS' is not present, `in \"$@\"'\n" +" is assumed. The PS3 prompt is then displayed and a line read\n" +" from the standard input. If the line consists of the number\n" +" corresponding to one of the displayed words, then NAME is set\n" +" to that word. If the line is empty, WORDS and the prompt are\n" +" redisplayed. If EOF is read, the command completes. Any other\n" +" value read causes NAME to be set to null. The line read is saved\n" +" in the variable REPLY. COMMANDS are executed after each selection\n" +" until a break command is executed.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"Vybere slova ze seznamu a vykoná příkazy.\n" +" \n" +" SLOVA jsou expandována a vytvoří seznam slov. Množina expandovaných " +"slov\n" +" je vytiÅ¡těna na standardní chybový výstup, každé předchází číslo. Není-" +"li\n" +" „in SLOVA“ přítomno, předpokládá se „in \"$@\"“. Pak je zobrazena výzva " +"PS3\n" +" a jeden řádek načten ze standardního vstupu. Pokud je řádek tvořen " +"číslem\n" +" odpovídajícím jednomu ze zobrazených slov, pak NÁZEV bude nastaven na " +"toto\n" +" slovo. Pokud je řádek prázdný, SLOVA a výzva budou znovu zobrazeny. Je-" +"li\n" +" načten EOF (konec souboru), příkaz končí. Načtení jakékoliv jiné " +"hodnoty\n" +" nastaví NÁZEV na prázdný řetězec. Načtený řádek bude uložen do proměnné\n" +" REPLY. Po každém výběru budou provedeny PŘÍKAZY, dokud nebude vykonán\n" +" příkaz „break“.\n" +" \n" +" Návratový kód:\n" +" Vrátí kód naposledy prováděného příkazu." + +#: builtins.c:1527 +msgid "" +"Report time consumed by pipeline's execution.\n" +" \n" +" Execute PIPELINE and print a summary of the real time, user CPU time,\n" +" and system CPU time spent executing PIPELINE when it terminates.\n" +" \n" +" Options:\n" +" -p\tprint the timing summary in the portable Posix format\n" +" \n" +" The value of the TIMEFORMAT variable is used as the output format.\n" +" \n" +" Exit Status:\n" +" The return status is the return status of PIPELINE." +msgstr "" +"Nahlásí čas spotřebovaný prováděním kolony.\n" +" \n" +" Vykoná KOLONU a zobrazí přehled reálného času, uživatelského\n" +" procesorového času a systémového procesorového času stráveného " +"prováděním\n" +" KOLONY poté, co skončí.\n" +" \n" +" Přepínače:\n" +" -p\tzobrazí přehled časů v přenositelném posixovém formátu\n" +" \n" +" Hodnota proměnné TIMEFORMAT se použije jako specifikace výstupního " +"formátu.\n" +" \n" +" Návratový kód:\n" +" Návratová hodnota je návratová hodnota KOLONY." + +#: builtins.c:1544 +msgid "" +"Execute commands based on pattern matching.\n" +" \n" +" Selectively execute COMMANDS based upon WORD matching PATTERN. The\n" +" `|' is used to separate multiple patterns.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"Provede příkazy podle shody se vzorem.\n" +" \n" +" Výběrově provede PŘÍKAZY na základě shody SLOVA se VZOREM. Znak „|“\n" +" se používá na oddělení násobných VZORÅ®.\n" +" \n" +" Návratový kód:\n" +" Vrátí kód naposledy provedeného příkazu." + +#: builtins.c:1556 +msgid "" +"Execute commands based on conditional.\n" +" \n" +" The `if COMMANDS' list is executed. If its exit status is zero, then " +"the\n" +" `then COMMANDS' list is executed. Otherwise, each `elif COMMANDS' list " +"is\n" +" executed in turn, and if its exit status is zero, the corresponding\n" +" `then COMMANDS' list is executed and the if command completes. " +"Otherwise,\n" +" the `else COMMANDS' list is executed, if present. The exit status of " +"the\n" +" entire construct is the exit status of the last command executed, or " +"zero\n" +" if no condition tested true.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"Vykoná příkazy na základě splnění podmínky.\n" +" \n" +" Provede seznam „if PŘÍKAZŮ“. Bude-li jeho návratový kód nula, pak bude\n" +" proveden seznam „then PŘÍKAZŮ“. Jinak bude proveden popořadě každý " +"seznam\n" +" „elif PŘÍKAZŮ“ a bude-li jeho návratový kód nula, odpovídající seznam\n" +" „then PŘÍKAZŮ“ bude proveden a příkaz if skončí. V opačném případě bude\n" +" proveden seznam „else PŘÍKAZŮ“, pokud existuje. Návratová hodnota celé\n" +" konstrukce je návratovou hodnotou posledního provedeného příkazu nebo " +"nula,\n" +" pokud žádná z testovaných podmínek není pravdivá.\n" +" \n" +" Návratový kód:\n" +" Vrátí kód naposledy provedeného příkazu." + +#: builtins.c:1573 +msgid "" +"Execute commands as long as a test succeeds.\n" +" \n" +" Expand and execute COMMANDS as long as the final command in the\n" +" `while' COMMANDS has an exit status of zero.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"Vykonává příkazy, dokud test úspěšně prochází.\n" +" \n" +" Expanduje a provádí PŘÍKAZY tak dlouho, dokud poslední příkaz ve " +"„while“\n" +" PŘÍKAZECH má nulový návratový kód.\n" +" \n" +" Návratový kód:\n" +" Vrátí kód naposledy provedeného příkazu." + +#: builtins.c:1585 +msgid "" +"Execute commands as long as a test does not succeed.\n" +" \n" +" Expand and execute COMMANDS as long as the final command in the\n" +" `until' COMMANDS has an exit status which is not zero.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"Vykonává příkazy, dokud test končí neúspěšně.\n" +" \n" +" Expanduje a provádí PŘÍKAZY tak dlouho, dokud poslední příkaz ve " +"„until“\n" +" PŘÍKAZECH má nenulový návratový kód. \n" +" Návratový kód:\n" +" Vrátí kód naposledy provedeného příkazu." + +#: builtins.c:1597 +msgid "" +"Define shell function.\n" +" \n" +" Create a shell function named NAME. When invoked as a simple command,\n" +" NAME runs COMMANDs in the calling shell's context. When NAME is " +"invoked,\n" +" the arguments are passed to the function as $1...$n, and the function's\n" +" name is in $FUNCNAME.\n" +" \n" +" Exit Status:\n" +" Returns success unless NAME is readonly." +msgstr "" +"Definuje funkci shellu.\n" +" \n" +" Vytvoří shellovou funkci pojmenovanou NÁZEV. Volána jakožto jednoduchý\n" +" příkaz spustí PŘÍKAZY v kontextu volajícího shellu. Je-li vyvolán " +"NÁZEV,\n" +" budou funkci předány argumenty jako $1…$n a název funkce bude umístěn " +"do\n" +" $FUNCNAME.\n" +" \n" +" Návratový kód:\n" +" Vrátí úspěch, pokud NÁZEV není jen pro čtení." + +#: builtins.c:1611 +msgid "" +"Group commands as a unit.\n" +" \n" +" Run a set of commands in a group. This is one way to redirect an\n" +" entire set of commands.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"Seskupí příkazy do jednotky.\n" +" \n" +" Spustí množinu příkazů v jedné skupině. Toto je jeden ze způsobů,\n" +" jak přesměrovat celou množinu příkazů. \n" +" Návratový kód:\n" +" Vrátí kód naposledy spuÅ¡těného příkazu." + +#: builtins.c:1623 +msgid "" +"Resume job in foreground.\n" +" \n" +" Equivalent to the JOB_SPEC argument to the `fg' command. Resume a\n" +" stopped or background job. JOB_SPEC can specify either a job name\n" +" or a job number. Following JOB_SPEC with a `&' places the job in\n" +" the background, as if the job specification had been supplied as an\n" +" argument to `bg'.\n" +" \n" +" Exit Status:\n" +" Returns the status of the resumed job." +msgstr "" +"Obnoví úlohu do popředí.\n" +" \n" +" Ekvivalent k argumentu ÚLOHA příkazu „fg“. Obnoví pozastavenou úlohu\n" +" nebo úlohu na pozadí. ÚLOHA může určovat buď název úlohy, nebo číslo " +"úlohy.\n" +" Přidání „&“ za ÚLOHU přesune úlohu na pozadí, jako by identifikátor " +"úlohy\n" +" byl argumentem příkazu „bg“.\n" +" \n" +" Návratový kód:\n" +" Vrátí kód obnovené úlohy." + +#: builtins.c:1638 +msgid "" +"Evaluate arithmetic expression.\n" +" \n" +" The EXPRESSION is evaluated according to the rules for arithmetic\n" +" evaluation. Equivalent to \"let EXPRESSION\".\n" +" \n" +" Exit Status:\n" +" Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise." +msgstr "" +"Vyhodnotí aritmetický výraz.\n" +" \n" +" VÝRAZ bude vyhodnocen podle pravidel aritmetického vyhodnocování.\n" +" Ekvivalentní k „let VÝRAZ“.\n" +" \n" +" Návratový kód:\n" +" Vrátí 1, pokud se VÝRAZ vyhodnotí na 0. Jinak vrátí 0." + +# XXX: „coniditional command“ znamená podmínka, výraz podmínky. Nikoliv +# příkaz, který by byl vykonán na základě splnění jiné podmínky. Tj. překlad +# „podmíněný příkaz“ je chybný. +# Toto je nápověda k vestavěnému příkazu „[“. +#: builtins.c:1650 +msgid "" +"Execute conditional command.\n" +" \n" +" Returns a status of 0 or 1 depending on the evaluation of the " +"conditional\n" +" expression EXPRESSION. Expressions are composed of the same primaries " +"used\n" +" by the `test' builtin, and may be combined using the following " +"operators:\n" +" \n" +" ( EXPRESSION )\tReturns the value of EXPRESSION\n" +" ! EXPRESSION\t\tTrue if EXPRESSION is false; else false\n" +" EXPR1 && EXPR2\tTrue if both EXPR1 and EXPR2 are true; else false\n" +" EXPR1 || EXPR2\tTrue if either EXPR1 or EXPR2 is true; else false\n" +" \n" +" When the `==' and `!=' operators are used, the string to the right of\n" +" the operator is used as a pattern and pattern matching is performed.\n" +" When the `=~' operator is used, the string to the right of the operator\n" +" is matched as a regular expression.\n" +" \n" +" The && and || operators do not evaluate EXPR2 if EXPR1 is sufficient to\n" +" determine the expression's value.\n" +" \n" +" Exit Status:\n" +" 0 or 1 depending on value of EXPRESSION." +msgstr "" +"Vykoná podmínkový příkaz.\n" +" \n" +" Vrátí status 0 nebo 1 podle vyhodnocení výrazu podmínky VÝRAZ. Výrazy\n" +" se skládají ze stejných primitiv jako u vestavěného příkazu „test“ a\n" +" mohou být kombinovány za pomoci následujících operátorů:\n" +" \n" +" ( VÝRAZ )\tVrátí hodnotu VÝRAZU\n" +" ! VÝRAZ\t\tPravda, pokud VÝRAZ je nepravdivý; jinak nepravda\n" +" VÝR1 && VÝR2\tPravda, pokud oba VÝR1 i VÝR2 jsou pravdivé;\n" +" \t\tjinak nepravda\n" +" VÝR1 || VÝR2\tPravda, pokud VÝR1 nebo VÝR2 je pravdivý; jinak " +"nepravda\n" +" \n" +" Jsou-li použity operátory „==“ a „!=“, řetězec napravo od operátoru je\n" +" použit jako vzor a bude uplatněno porovnávání proti vzoru. Je-li použit\n" +" operátor „=~, řetězec napravo do operátoru je uvažován jako regulární\n" +" výraz.\n" +" \n" +" Operátory && a || nevyhodnocují VÝR2, pokud VÝR1 je dostatečný na " +"určení\n" +" hodnoty výrazu.\n" +" \n" +" Návratový kód:\n" +" 0 nebo 1 podle hodnoty VÝRAZU." + +#: builtins.c:1676 +msgid "" +"Common shell variable names and usage.\n" +" \n" +" BASH_VERSION\tVersion information for this Bash.\n" +" CDPATH\tA colon-separated list of directories to search\n" +" \t\tfor directories given as arguments to `cd'.\n" +" GLOBIGNORE\tA colon-separated list of patterns describing filenames to\n" +" \t\tbe ignored by pathname expansion.\n" +" HISTFILE\tThe name of the file where your command history is stored.\n" +" HISTFILESIZE\tThe maximum number of lines this file can contain.\n" +" HISTSIZE\tThe maximum number of history lines that a running\n" +" \t\tshell can access.\n" +" HOME\tThe complete pathname to your login directory.\n" +" HOSTNAME\tThe name of the current host.\n" +" HOSTTYPE\tThe type of CPU this version of Bash is running under.\n" +" IGNOREEOF\tControls the action of the shell on receipt of an EOF\n" +" \t\tcharacter as the sole input. If set, then the value\n" +" \t\tof it is the number of EOF characters that can be seen\n" +" \t\tin a row on an empty line before the shell will exit\n" +" \t\t(default 10). When unset, EOF signifies the end of input.\n" +" MACHTYPE\tA string describing the current system Bash is running on.\n" +" MAILCHECK\tHow often, in seconds, Bash checks for new mail.\n" +" MAILPATH\tA colon-separated list of filenames which Bash checks\n" +" \t\tfor new mail.\n" +" OSTYPE\tThe version of Unix this version of Bash is running on.\n" +" PATH\tA colon-separated list of directories to search when\n" +" \t\tlooking for commands.\n" +" PROMPT_COMMAND\tA command to be executed before the printing of each\n" +" \t\tprimary prompt.\n" +" PS1\t\tThe primary prompt string.\n" +" PS2\t\tThe secondary prompt string.\n" +" PWD\t\tThe full pathname of the current directory.\n" +" SHELLOPTS\tA colon-separated list of enabled shell options.\n" +" TERM\tThe name of the current terminal type.\n" +" TIMEFORMAT\tThe output format for timing statistics displayed by the\n" +" \t\t`time' reserved word.\n" +" auto_resume\tNon-null means a command word appearing on a line by\n" +" \t\titself is first looked for in the list of currently\n" +" \t\tstopped jobs. If found there, that job is foregrounded.\n" +" \t\tA value of `exact' means that the command word must\n" +" \t\texactly match a command in the list of stopped jobs. A\n" +" \t\tvalue of `substring' means that the command word must\n" +" \t\tmatch a substring of the job. Any other value means that\n" +" \t\tthe command must be a prefix of a stopped job.\n" +" histchars\tCharacters controlling history expansion and quick\n" +" \t\tsubstitution. The first character is the history\n" +" \t\tsubstitution character, usually `!'. The second is\n" +" \t\tthe `quick substitution' character, usually `^'. The\n" +" \t\tthird is the `history comment' character, usually `#'.\n" +" HISTIGNORE\tA colon-separated list of patterns used to decide which\n" +" \t\tcommands should be saved on the history list.\n" +msgstr "" +"Názvu běžných proměnných shellu a jejich význam.\n" +" \n" +" BASH_VERSION\tInformace o verzi tohoto Bashe.\n" +" CDPATH\tDvojtečkou oddělený seznam adresářů, který se prohledává\n" +" \t\tna adresáře zadané jako argumenty u „cd“.\n" +" GLOBIGNORE\tDvojtečkou oddělený seznam vzorů popisujících jména " +"souborů,\n" +" \t\tkterá budou ignorována při expanzi cest.\n" +" HISTFILE\tJméno souboru, kde je uložena historie vaÅ¡ich příkazů.\n" +" HISTFILESIZE\tMaximální počet řádků, které tento soubor smí obsahovat.\n" +" HISTSIZE\tMaximální počet řádků historie, které jsou dostupné uvnitř\n" +" \t\tběžícího shellu.\n" +" HOME\tCelá cesta do vaÅ¡eho domovského adresáře.\n" +" HOSTNAME\tJméno současného stroje.\n" +" HOSTTYPE\tDruh CPU, na které tento Bash běží.\n" +" IGNOREEOF\tŘídí reakci shellu na přijetí znaku EOF (konec souboru)\n" +" \t\tpři samotném vstupu. Je-li nastaveno, pak její hodnota udává\n" +" \t\tpočet znaků EOF, které mohou bezprostředně následovat na prázdném\n" +" \t\třádku, dříve než shell skončí (implicitní hodnota je 10). Není-li\n" +" \t\tnastaveno, EOF značí konec vstupu.\n" +" MACHTYPE\tŘetězec popisující systém, na kterém tento Bash běží.\n" +" MAILCHECK\tJak často, v sekundách, kontroluje Bash novou poÅ¡tu.\n" +" MAILPATH\tDvojtečkou oddělený seznam názvů souborů, které Bash\n" +" \t\tkontroluje na novou poÅ¡tu.\n" +" OSTYPE\tVerze Unixu, na kterém tento Bash běží.\n" +" PATH\tDvojtečkou oddělený seznam adresářů, které jsou prohledávány\n" +" \t\tna příkazy.\n" +" PROMPT_COMMAND\tPříkaz, který je proveden před vytiÅ¡těním každé\n" +" \t\tprimární výzvy shellu.\n" +" PS1\t\tŘetězec prvotní výzvy shellu.\n" +" PS2\t\tŘetězec druhotné výzvy shellu.\n" +" PWD\t\tCelé jméno cesty do aktuálního adresáře.\n" +" SHELLOPTS\tDvojtečkou oddělený seznam zapnutých přepínačů shellu.\n" +" TERM\tNázev druhu současného terminálu.\n" +" TIMEFORMAT\tVýstupní formát časové statistiky zobrazované vyhrazeným\n" +" \t\tslovem „time“.\n" +" auto_resume\tNeprázdná hodnota znamená, že slovo příkazu objevující se\n" +" \t\tna řádce automaticky je nejprve vyhledáno v seznamu\n" +" \t\tprávě pozastavených úloh. Je-li tam nalezeno, daná úloha bude\n" +" \t\tpřepnuta na popředí. Hodnota „exact“ znamená, že slovo příkazu\n" +" \t\tse musí přesně shodovat s příkazem v seznamu pozastavených úloh.\n" +" \t\tHodnota „substring“ znamená, že slovo příkazu se musí shodovat\n" +" \t\ts podřetězcem úlohy. Jakákoliv jiná hodnota znamená, že příkaz\n" +" \t\tmusí být předponou pozastavené úlohy.\n" +" histchars\tZnaky řídící expanzi historie a rychlé nahrazování.\n" +" \t\tPrvní znak je znak nahrazení historie, obvykle „!“. Druhý je\n" +" \t\tznak „rychlého nahrazování“, obvykle „^“. Třetí je znak\n" +" \t\t„komentáře historie“, obvykle „#“.\n" +" HISTIGNORE\tDvojtečkou oddělený seznam vzorů používaný na\n" +" \t\trozliÅ¡ení, které příkazy by měly být uloženy do seznamu\n" +" \t\thistorie.\n" + +#: builtins.c:1733 +msgid "" +"Add directories to stack.\n" +" \n" +" Adds a directory to the top of the directory stack, or rotates\n" +" the stack, making the new top of the stack the current working\n" +" directory. With no arguments, exchanges the top two directories.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when adding\n" +" \tdirectories to the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the left of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" -N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the right of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" dir\tAdds DIR to the directory stack at the top, making it the\n" +" \tnew current working directory.\n" +" \n" +" The `dirs' builtin displays the directory stack.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid argument is supplied or the directory\n" +" change fails." +msgstr "" +"Přidá adresáře do zásobníku.\n" +" \n" +" Přidá adresář na vrchol zásobníku adresářů nebo zásobník zrotuje tak,\n" +" že nový vrchol zásobníku se stane současným pracovním adresářem. Bez\n" +" argumentů prohodí dva vrchní adresáře.\n" +" \n" +" Přepínače:\n" +" -n\tPotlačí obvyklou změnu adresáře, když se na zásobník přidávají\n" +" \tadresáře, takže změněn bude pouze zásobník.\n" +" \n" +" Argumenty:\n" +" +N\tZrotuje zásobník tak, že N. adresář (počítáno zleva na seznamu\n" +" \tzobrazovaném pomocí „dirs“, počínaje nulou) se dostane na vrchol.\n" +" \n" +" -N\tZrotuje zásobník tak, že N. adresář (počítáno zprava na seznamu\n" +" \tzobrazovaném pomocí „dirs“, počínaje nulou) se dostane na vrchol.\n" +" \n" +" adresář\n" +" \tPřidá ADRESÁŘ na vrchol zásobníku adresářů a učiní jej novým\n" +" \tsoučasným pracovním adresářem.\n" +" \n" +" Zásobník adresářů si můžete prohlédnout příkazem „dirs“.\n" +" \n" +" Návratový kód:\n" +" Vrátí úspěch, pokud nebyl zadán neplatný argument a změna adresáře\n" +" neselhala." + +#: builtins.c:1767 +msgid "" +"Remove directories from stack.\n" +" \n" +" Removes entries from the directory stack. With no arguments, removes\n" +" the top directory from the stack, and changes to the new top directory.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when removing\n" +" \tdirectories from the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRemoves the Nth entry counting from the left of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd +0'\n" +" \tremoves the first directory, `popd +1' the second.\n" +" \n" +" -N\tRemoves the Nth entry counting from the right of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd -0'\n" +" \tremoves the last directory, `popd -1' the next to last.\n" +" \n" +" The `dirs' builtin displays the directory stack.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid argument is supplied or the directory\n" +" change fails." +msgstr "" +"Odebere adresáře ze zásobníku.\n" +" \n" +" Odstraní položky ze zásobníku adresářů. Bez argumentů odstraní adresář\n" +" z vrcholu zásobníku a přepne do nového adresáře na vrchu zásobníku.\n" +" \n" +" Přepínače:\n" +" -n\tPotlačí obvyklou změnu adresáře, když se ze zásobníku odebírají\n" +" \tadresáře, takže změněn bude pouze zásobník.\n" +" \n" +" Argumenty:\n" +" +N\tOdstraní N. položku počítáno zleva na seznamu zobrazovaném\n" +" \tpomocí „dirs“, počínaje nulou. Na příklad: „popd +0“ odstraní\n" +" první adresář, „popd -1“ druhý.\n" +" \n" +" -N\tOdstraní N. položku počítáno zprava na seznamu zobrazovaném\n" +" \tpomocí „dirs“, počínaje nulou. Na příklad: „popd -0“ odstraní\n" +" poslední adresář, „popd -1“ další vedle posledního.\n" +" \n" +" Zásobník adresářů si můžete prohlédnout příkazem „dirs“.\n" +" \n" +" Návratový kód:\n" +" Vrátí úspěch, pokud nebyl zadán neplatný argument nebo neselhala změna\n" +" adresáře." + +#: builtins.c:1797 +msgid "" +"Display directory stack.\n" +" \n" +" Display the list of currently remembered directories. Directories\n" +" find their way onto the list with the `pushd' command; you can get\n" +" back up through the list with the `popd' command.\n" +" \n" +" Options:\n" +" -c\tclear the directory stack by deleting all of the elements\n" +" -l\tdo not print tilde-prefixed versions of directories relative\n" +" \tto your home directory\n" +" -p\tprint the directory stack with one entry per line\n" +" -v\tprint the directory stack with one entry per line prefixed\n" +" \twith its position in the stack\n" +" \n" +" Arguments:\n" +" +N\tDisplays the Nth entry counting from the left of the list shown " +"by\n" +" \tdirs when invoked without options, starting with zero.\n" +" \n" +" -N\tDisplays the Nth entry counting from the right of the list shown " +"by\n" +" \tdirs when invoked without options, starting with zero.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" +"Zobrazí zásobník adresářů.\n" +" \n" +" Zobrazí seznam právě pamatovaných adresářů. Adresáře si najdou cestu\n" +" na seznam příkazem „pushd“ a procházet seznamem zpět lze příkazem " +"„popd“.\n" +" \n" +" Přepínače:\n" +" -c\tvyprázdní zásobník adresářů tím, že smaže vÅ¡echny jeho prvky\n" +" -l\tnevypíše vlnkou zkrácené verze adresářů, které jsou relativní\n" +" \tvaÅ¡emu domovskému adresáři\n" +" -p\tvypíše zásobník adresářů po jedné položce na řádek\n" +" -v\tvypíše zásobník adresářů po jedné položce na řádek, přičemž\n" +" \tnázvu adresáře předřadí jeho umístění na zásobníku\n" +" \n" +" Argumenty:\n" +" +N\tzobrazí N. položku počítáno zleva na seznamu, který zobrazuje\n" +" \tdirs, když je vyvolán bez přepínačů, počínaje nulou.\n" +" \n" +" -N\tzobrazí N. položku počítáno zprava na seznamu, který zobrazuje\n" +" \tdirs, když je vyvolán bez přepínačů, počínaje nulou. \n" +" Návratový kód:\n" +" Vrátí úspěch, pokud nebyl zadán neplatný přepínač a nevyskytla se chyba." + +#: builtins.c:1826 +msgid "" +"Set and unset shell options.\n" +" \n" +" Change the setting of each shell option OPTNAME. Without any option\n" +" arguments, list all shell options with an indication of whether or not " +"each\n" +" is set.\n" +" \n" +" Options:\n" +" -o\trestrict OPTNAMEs to those defined for use with `set -o'\n" +" -p\tprint each shell option with an indication of its status\n" +" -q\tsuppress output\n" +" -s\tenable (set) each OPTNAME\n" +" -u\tdisable (unset) each OPTNAME\n" +" \n" +" Exit Status:\n" +" Returns success if OPTNAME is enabled; fails if an invalid option is\n" +" given or OPTNAME is disabled." +msgstr "" +"Zapne nebo vypne volby (přepínače) shellu.\n" +" \n" +" Změní nastavení každého přepínače shellu NÁZEV_VOLBY. Bez přepínačových\n" +" argumentů vypíše seznam vÅ¡ech přepínačů shellu s příznakem, zda je, " +"nebo\n" +" není nastaven.\n" +" Přepínače:\n" +" -o\tomezí NÁZVY_VOLEB na ty, které jsou definovány pro použití\n" +" \ts „set -o“\n" +" -p\tvypíše každou volbu shellu s určením jejího stavu\n" +" -q\tpotlačí výstup\n" +" -s\tzapne (nastaví) každý NÁZEV_VOLBY\n" +" -u\tvypne (odnastaví) každý NÁZEV_VOLBY\n" +" \n" +" Návratový kód:\n" +" Vrátí úspěch, je-li NÁZEV_VOLBY zapnut. Selže, byl-li zadán neplatný\n" +" přepínač nebo je-li NÁZEV_VOLBY vypnut." + +#: builtins.c:1847 +msgid "" +"Formats and prints ARGUMENTS under control of the FORMAT.\n" +" \n" +" Options:\n" +" -v var\tassign the output to shell variable VAR rather than\n" +" \t\tdisplay it on the standard output\n" +" \n" +" FORMAT is a character string which contains three types of objects: " +"plain\n" +" characters, which are simply copied to standard output; character " +"escape\n" +" sequences, which are converted and copied to the standard output; and\n" +" format specifications, each of which causes printing of the next " +"successive\n" +" argument.\n" +" \n" +" In addition to the standard format specifications described in printf" +"(1)\n" +" and printf(3), printf interprets:\n" +" \n" +" %b\texpand backslash escape sequences in the corresponding argument\n" +" %q\tquote the argument in a way that can be reused as shell input\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or a write or " +"assignment\n" +" error occurs." +msgstr "" +"Naformátuje a vypíše ARGUMENTY podle definice FORMÁTU.\n" +" \n" +" Přepínače:\n" +" -v proměnná\tvýstup umístí do proměnné shellu PROMĚNNÁ namísto\n" +" \t\todeslání na standardní výstup.\n" +" \n" +" FORMÁT je řetězec znaků, který obsahuje tři druhy objektů: obyčejné " +"znaky,\n" +" které jsou prostě zkopírovány na standardní výstup, posloupnosti " +"escapových\n" +" znaků, které jsou zkonvertovány a zkopírovány na standardní výstup a\n" +" formátovací definice, z nichž každá způsobí vytiÅ¡tění dalšího " +"argumentu.\n" +" \n" +" Tento printf interpretuje vedle standardních formátovacích definic\n" +" popsaných v printf(1) a printf(3) též:\n" +" \n" +" %b\texpanduje posloupnosti escapované zpětným lomítkem\n" +" \t\tv odpovídajícím argumentu\n" +" %q\toescapuje argument takovým způsobem, že jej bude možné\n" +" \t\tpoužít jako vstup shellu\n" +" \n" +" Návratový kód:\n" +" Vrátí úspěch, pokud nebyl zadán neplatný přepínač a nedoÅ¡lo k chybě\n" +" zápisu nebo přiřazení." + +#: builtins.c:1874 +msgid "" +"Specify how arguments are to be completed by Readline.\n" +" \n" +" For each NAME, specify how arguments are to be completed. If no " +"options\n" +" are supplied, existing completion specifications are printed in a way " +"that\n" +" allows them to be reused as input.\n" +" \n" +" Options:\n" +" -p\tprint existing completion specifications in a reusable format\n" +" -r\tremove a completion specification for each NAME, or, if no\n" +" \tNAMEs are supplied, all completion specifications\n" +" \n" +" When completion is attempted, the actions are applied in the order the\n" +" uppercase-letter options are listed above.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" +"Určuje, jak budou argumenty doplňovány pomocí knihovny Readline.\n" +" \n" +" Pro každý NÁZEV udává, jak se budou doplňovat argumenty. Nejsou-li\n" +" zadány žádné přepínače, budou vypsány existující pravidla doplňování\n" +" v podobě vhodné pro jejich znovu užití na vstupu.\n" +" \n" +" Přepínače:\n" +" -p\tvypíše existující pravidla doplňování v znovu použitelném tvaru\n" +" -r\todstraní pro každý NÁZEV doplňovací pravidlo, nebo není-li zadán\n" +" \tžádný NÁZEV, zruší vÅ¡echna pravidla\n" +" \n" +" Při doplňování se akce uplatňují v pořadí, v jakém by byla tímto " +"příkazem\n" +" vypsána pravidla psaná velkými písmeny.\n" +" \n" +" Návratový kód:\n" +" Vrátí úspěch, pokud nebyl zadán neplatný přepínač a nevyskytla se chyba." + +#: builtins.c:1897 +msgid "" +"Display possible completions depending on the options.\n" +" \n" +" Intended to be used from within a shell function generating possible\n" +" completions. If the optional WORD argument is supplied, matches " +"against\n" +" WORD are generated.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" +"Zobrazí možná doplnění v závislosti na přepínačích.\n" +" \n" +" Je zamýšleno pro použití uvnitř shellových funkcí generujících možná\n" +" doplnění. Je-li poskytnut volitelný argument SLOVO, budou vygenerovány\n" +" shody se SLOVEM.\n" +" \n" +" Návratový kód:\n" +" Vrátí úspěch, pokud nebyl zadán neplatný přepínač a nevyskytla se chyba." + +# FIXME: Příkaz compopt je ve verzi 4.0 zcela nový. Je třeba prozkoumat, co +# přesně dělá, aby bylo možné správně přeložit slovo „option“, tak aby se +# nepletlo s pomlčkovými přepínači příkazu. +# FIXME: Je třeba dohledat msgid pro řádek se syntaxí příkazu a patřičně ji +# opravit. +# TODO: Tento překlad je vemli kostrbatý a místy nedává smysl. Je třeba +# ujednotit pravidlo–pravidla doplnění–doplňování (completion specification). +#: builtins.c:1912 +#, fuzzy +msgid "" +"Modify or display completion options.\n" +" \n" +" Modify the completion options for each NAME, or, if no NAMEs are " +"supplied,\n" +" the completion currently begin executed. If no OPTIONs are givenm, " +"print\n" +" the completion options for each NAME or the current completion " +"specification.\n" +" \n" +" Options:\n" +" \t-o option\tSet completion option OPTION for each NAME\n" +" \n" +" Using `+o' instead of `-o' turns off the specified option.\n" +" \n" +" Arguments:\n" +" \n" +" Each NAME refers to a command for which a completion specification must\n" +" have previously been defined using the `complete' builtin. If no NAMEs\n" +" are supplied, compopt must be called by a function currently generating\n" +" completions, and the options for that currently-executing completion\n" +" generator are modified.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or NAME does not\n" +" have a completion specification defined." +msgstr "" +"Upraví nebo zobrazí možnosti doplňování.\n" +" \n" +" Pozmění volby doplňování u každého NÁZVU, nebo, není-li zadán žádný\n" +" NÁZEV, právě probíhající doplnění. Nejsou-li zadány žádné VOLBY, vypíše\n" +" volby doplňování pro každý NÁZEV nebo pravidlo současného doplnění.\n" +" \n" +" Přepínače:\n" +" \t-o volba\tNastaví volbu doplňování VOLBA u každého NÁZVU\n" +" \n" +" Pomocí „+o“ namísto „-o“ zadanou volbu vypnete.\n" +" \n" +" Argumenty:\n" +" Každý NÁZEV ukazuje na příkaz, pro který pravidlo doplnění musí být\n" +" předem definováno pomocí vestavěného příkazu „complete“. Nejsou-li " +"zadány\n" +" žádné NÁZVY, musí být compopt volán funkcí, která právě generuje " +"doplnění,\n" +" a změněny budou volby tohoto právě běžícího generátoru doplnění.\n" +" \n" +" Návratový kód:\n" +" Vrátí úspěch, pokud nebyl zadán neplatný přepínač a NÁZEV již měl\n" +" definováno pravidlo pro doplnění." + +#: builtins.c:1940 +#, fuzzy +msgid "" +"Read lines from a file into an array variable.\n" +" \n" +" Read lines from the standard input into the array variable ARRAY, or " +"from\n" +" file descriptor FD if the -u option is supplied. The variable MAPFILE " +"is\n" +" the default ARRAY.\n" +" \n" +" Options:\n" +" -n count\tCopy at most COUNT lines. If COUNT is 0, all lines are " +"copied.\n" +" -O origin\tBegin assigning to ARRAY at index ORIGIN. The default " +"index is 0.\n" +" -s count \tDiscard the first COUNT lines read.\n" +" -t\t\tRemove a trailing newline from each line read.\n" +" -u fd\t\tRead lines from file descriptor FD instead of the standard " +"input.\n" +" -C callback\tEvaluate CALLBACK each time QUANTUM lines are read.\n" +" -c quantum\tSpecify the number of lines read between each call to " +"CALLBACK.\n" +" \n" +" Arguments:\n" +" ARRAY\t\tArray variable name to use for file data.\n" +" \n" +" If -C is supplied without -c, the default quantum is 5000.\n" +" \n" +" If not supplied with an explicit origin, mapfile will clear ARRAY " +"before\n" +" assigning to it.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or ARRAY is readonly." +msgstr "" +"Načte řádky ze souboru do proměnné typu pole.\n" +" \n" +" Načte řádky ze standardního vstupu nebo z deskriptoru souboru FD, byl-" +"li\n" +" zadán přepínač -u, do proměnné POLE, která je typu pole. Implicitním " +"POLEM\n" +" je proměnná MAPFILE.\n" +" \n" +" Přepínače:\n" +" -n počet\tZkopíruje nejvýše POČET řádků. Je-li POČET 0,\n" +" \t\tzkopíruje vÅ¡echny řádky.\n" +" -O počátek\tPřiřazování do POLE začne na indexu POČÁTEK.\n" +" \t\tImplicitní index je 0.\n" +" -s počet\tZahodí prvních POČET načtených řádků.\n" +" -t\t\tOdstraní znaky konce řádku z každého načteného řádku.\n" +" -u fd\t\tŘádky čte z deskriptoru souboru FD namísto ze\n" +" \t\tstandardního vstupu.\n" +" -C volání\tVyhodnotí VOLÁNÍ pokaždé, když je načteno MNOŽSTVÍ\n" +" \t\třádků.\n" +" -c množství\tUdává počet řádků, které je třeba přečíst, mezi\n" +" \t\tkaždým zavoláním VOLÁNÍ.\n" +" \n" +" Argumenty:\n" +" POLE\t\tNázev proměnné typu pole, do které budou přiřazena data\n" +" \t\tze souboru.\n" +" \n" +" Je-li uvedeno -C bez -c, implicitní množství bude 5000.\n" +" \n" +" Nebude-li explicitně udán počátek, mapfile vyprázdní POLE před tím,\n" +" než do něj začne přiřazovat.\n" +" \n" +" Návratový kód:\n" +" Vrátí úspěch, pokud nebyl zadán neplatný přepínač a POLE nebylo jen pro\n" +" čtení." + +#~ msgid " " +#~ msgstr " " + +#~ msgid "Without EXPR, returns returns \"$line $filename\". With EXPR," +#~ msgstr "Bez VÝRAZU vrací „$line $filename“. S VÝRAZEM " + +#~ msgid "returns \"$line $subroutine $filename\"; this extra information" +#~ msgstr "vrací „$line $subroutine $filename“. Tyto údaje" + +#~ msgid "can be used used to provide a stack trace." +#~ msgstr "lze využít při výpisu zásobníku volání." + +#~ msgid "" +#~ "The value of EXPR indicates how many call frames to go back before the" +#~ msgstr "Hodnota VÝRAZ značí, kolik rámců volání se má jít zpět před" + +#~ msgid "current one; the top frame is frame 0." +#~ msgstr "současný rámec, vrcholový rámec má číslo 0." + +#~ msgid "%s: invalid number" +#~ msgstr "%s: chybné číslo" + +#~ msgid "Shell commands matching keywords `" +#~ msgstr "Příkazy shellu shodující se s klíčovými slovy „" + +#~ msgid "Display the list of currently remembered directories. Directories" +#~ msgstr "Zobrazí seznam právě zapamatovaných adresářů. Adresáře" + +#~ msgid "find their way onto the list with the `pushd' command; you can get" +#~ msgstr "se na seznam umisÅ¥ují příkazem „pushd“, předchozí stav seznamu lze" + +#~ msgid "back up through the list with the `popd' command." +#~ msgstr "vrátit příkazem „popd“." + +#~ msgid "" +#~ "The -l flag specifies that `dirs' should not print shorthand versions" +#~ msgstr "Příznak -l značí, že „dirs“ nemá vypisovat zkrácené verze adresářů," + +#~ msgid "" +#~ "of directories which are relative to your home directory. This means" +#~ msgstr "které leží pod vaším domovským adresářem. To znamená, že „~/bin“" + +#~ msgid "that `~/bin' might be displayed as `/homes/bfox/bin'. The -v flag" +#~ msgstr "smí být zobrazen jako „/homes/bfox/bin“. Příznak -v způsobí, že" + +#~ msgid "causes `dirs' to print the directory stack with one entry per line," +#~ msgstr "" +#~ "„dirs“ vypíše zásobník adresářů záznam po záznamu na samostatné řádky" + +#~ msgid "" +#~ "prepending the directory name with its position in the stack. The -p" +#~ msgstr "a před název adresáře uvede jeho pořadí v zásobníku. Příznak -p" + +#~ msgid "flag does the same thing, but the stack position is not prepended." +#~ msgstr "dělá to samé, ale bez informace o umístění na zásobníku." + +#~ msgid "" +#~ "The -c flag clears the directory stack by deleting all of the elements." +#~ msgstr "Příznak -c vyprázdní zásobník smazáním vÅ¡em prvků." + +#~ msgid "" +#~ "+N displays the Nth entry counting from the left of the list shown by" +#~ msgstr "+N zobrazí N. položku počítáno zleva na seznamu, který by ukázal" + +#~ msgid " dirs when invoked without options, starting with zero." +#~ msgstr " příkaz dirs bez jakýchkoliv přepínačů, počítáno od nuly." + +#~ msgid "" +#~ "-N displays the Nth entry counting from the right of the list shown by" +#~ msgstr "-N zobrazí N. položku počítáno zprava na seznamu, který by ukázal" + +#~ msgid "Adds a directory to the top of the directory stack, or rotates" +#~ msgstr "" +#~ "Přidá adresář na vrchol zásobníku adresářů, nebo rotuje zásobník tak," + +#~ msgid "the stack, making the new top of the stack the current working" +#~ msgstr "že nový vrchol zásobníku se stane pracovním adresářem." + +#~ msgid "directory. With no arguments, exchanges the top two directories." +#~ msgstr "Bez argumentů prohodí horní dva adresáře." + +#~ msgid "+N Rotates the stack so that the Nth directory (counting" +#~ msgstr "+N Zrotuje zásobník tak, že N. adresář (počítáno" + +#~ msgid " from the left of the list shown by `dirs', starting with" +#~ msgstr " zleva seznamu, který by ukázal „dirs“, počínaje od" + +#~ msgid " zero) is at the top." +#~ msgstr " nuly) se dostane na vrchol." + +#~ msgid "-N Rotates the stack so that the Nth directory (counting" +#~ msgstr "-N Zrotuje zásobník tak, že N. adresář (počítáno" + +#~ msgid " from the right of the list shown by `dirs', starting with" +#~ msgstr " zprava seznamu, který by ukázal „dirs“, počínaje od" + +#~ msgid "-n suppress the normal change of directory when adding directories" +#~ msgstr "" +#~ "-n potlačí obvyklou změnu pracovního adresáře při přidávání adresářů" + +#~ msgid " to the stack, so only the stack is manipulated." +#~ msgstr " na zásobník, takže se změní jen obsah zásobníku." + +#~ msgid "dir adds DIR to the directory stack at the top, making it the" +#~ msgstr "adr přidá ADR na vrchol zásobníku adresářů a učiní jej" + +#~ msgid " new current working directory." +#~ msgstr " novým pracovním adresářem." + +#~ msgid "You can see the directory stack with the `dirs' command." +#~ msgstr "Zásobník adresářů si lze prohlédnout příkazem „dirs“." + +#~ msgid "Removes entries from the directory stack. With no arguments," +#~ msgstr "Odstraní položky ze zásobníku adresářů. Bez argumentů" + +#~ msgid "removes the top directory from the stack, and cd's to the new" +#~ msgstr "odstraní adresář z vrcholu zásobníku a přepne se do nového" + +#~ msgid "top directory." +#~ msgstr "vrcholového adresáře." + +#~ msgid "+N removes the Nth entry counting from the left of the list" +#~ msgstr "+N odstraní N. položku počítáno zleva na seznamu," + +#~ msgid " shown by `dirs', starting with zero. For example: `popd +0'" +#~ msgstr " který by ukázal „dirs“, počínaje nulou. Například „popd +0“" + +#~ msgid " removes the first directory, `popd +1' the second." +#~ msgstr " odstraní první adresář, „popd +1“ druhý." + +#~ msgid "-N removes the Nth entry counting from the right of the list" +#~ msgstr "-N odstraní N. položku počítáno zprava na seznamu," + +#~ msgid " shown by `dirs', starting with zero. For example: `popd -0'" +#~ msgstr " který by ukázal „dirs“, počínaje nulou. Například: „popd -0“" + +#~ msgid " removes the last directory, `popd -1' the next to last." +#~ msgstr " odstraní poslední adresář, “popd -1“ předposlední." + +#~ msgid "" +#~ "-n suppress the normal change of directory when removing directories" +#~ msgstr "" +#~ "-n potlačí obvyklou změnu pracovního adresáře při odebírání adresářů" + +#~ msgid " from the stack, so only the stack is manipulated." +#~ msgstr " ze zásobníku, takže pouze zásobník dozná změny." + +#~ msgid "allocated" +#~ msgstr "alokováno" + +#~ msgid "freed" +#~ msgstr "uvolněno" + +#~ msgid "requesting resize" +#~ msgstr "požadující velikost" + +#~ msgid "just resized" +#~ msgstr "právě změněna velikost" + +#~ msgid "bug: unknown operation" +#~ msgstr "chyba: neznámá operace" + +#~ msgid "malloc: watch alert: %p %s " +#~ msgstr "malloc: výstraha sledování: %p %s" + +#~ msgid "" +#~ "Exit from within a FOR, WHILE or UNTIL loop. If N is specified,\n" +#~ " break N levels." +#~ msgstr "" +#~ "Ukončí smyčku FOR, WHILE nebo UNTIL. Je-li zadáno N, ukončí N úrovní." + +#~ msgid "" +#~ "Run a shell builtin. This is useful when you wish to rename a\n" +#~ " shell builtin to be a function, but need the functionality of the\n" +#~ " builtin within the function itself." +#~ msgstr "" +#~ "Spustí vestavěný příkaz shellu. Toto se hodí, přejete-li si přejmenovat\n" +#~ " vestavěný příkaz na funkci, avÅ¡ak funkcionalitu vestavěného příkazu\n" +#~ " potřebujete v téže funkci." + +#~ msgid "" +#~ "Print the current working directory. With the -P option, pwd prints\n" +#~ " the physical directory, without any symbolic links; the -L option\n" +#~ " makes pwd follow symbolic links." +#~ msgstr "" +#~ "Vypíše současný pracovní adresář. S přepínačem -P vypíše pwd fyzický\n" +#~ " adresář prostý vÅ¡ech symbolický odkazů; přepínač -L přinutí pwd\n" +#~ " následovat symbolické odkazy." + +#~ msgid "Return a successful result." +#~ msgstr "Vrací výsledek úspěchu." + +#~ msgid "" +#~ "Runs COMMAND with ARGS ignoring shell functions. If you have a shell\n" +#~ " function called `ls', and you wish to call the command `ls', you can\n" +#~ " say \"command ls\". If the -p option is given, a default value is " +#~ "used\n" +#~ " for PATH that is guaranteed to find all of the standard utilities. " +#~ "If\n" +#~ " the -V or -v option is given, a string is printed describing " +#~ "COMMAND.\n" +#~ " The -V option produces a more verbose description." +#~ msgstr "" +#~ "Spustí PŘÍKAZ s ARGUMENTY ignoruje funkce shellu. Máte-li shellovou\n" +#~ " funkci pojmenovanou „ls“, a chcete-li zavolat příkaz „ls“, použijte\n" +#~ " „command ls“. Je-li zadán přepínač -p, bude pro PATH použita " +#~ "implicitní\n" +#~ " hodnota, která zaručuje, že budou nalezeny vÅ¡echny standardní " +#~ "nástroje.\n" +#~ " Je-li zadán přepínač -V nebo -v, bude vytiÅ¡těn řetězec popisující " +#~ "PŘÍKAZ.\n" +#~ " Přepínač -V produkuje podrobnější popis." + +#~ msgid "" +#~ "Declare variables and/or give them attributes. If no NAMEs are\n" +#~ " given, then display the values of variables instead. The -p option\n" +#~ " will display the attributes and values of each NAME.\n" +#~ " \n" +#~ " The flags are:\n" +#~ " \n" +#~ " -a\tto make NAMEs arrays (if supported)\n" +#~ " -f\tto select from among function names only\n" +#~ " -F\tto display function names (and line number and source file name " +#~ "if\n" +#~ " \tdebugging) without definitions\n" +#~ " -i\tto make NAMEs have the `integer' attribute\n" +#~ " -r\tto make NAMEs readonly\n" +#~ " -t\tto make NAMEs have the `trace' attribute\n" +#~ " -x\tto make NAMEs export\n" +#~ " \n" +#~ " Variables with the integer attribute have arithmetic evaluation (see\n" +#~ " `let') done when the variable is assigned to.\n" +#~ " \n" +#~ " When displaying values of variables, -f displays a function's name\n" +#~ " and definition. The -F option restricts the display to function\n" +#~ " name only.\n" +#~ " \n" +#~ " Using `+' instead of `-' turns off the given attribute instead. " +#~ "When\n" +#~ " used in a function, makes NAMEs local, as with the `local' command." +#~ msgstr "" +#~ "Deklaruje proměnné a/nebo jim nastaví atributy. Nejsou-li zadány NÁZVY,\n" +#~ " tak místo toho zobrazí hodnoty proměnných. Přepínač -p zobrazí " +#~ "atributy\n" +#~ " a hodnoty pro každý NÁZEV.\n" +#~ " \n" +#~ " Příznaky jsou:\n" +#~ " \n" +#~ " -a\tučiní NÁZVY poli (je-li podporováno)\n" +#~ " -f\tvybírá pouze mezi názvy funkcí\n" +#~ " -F\tzobrazí názvy funkcí (a číslo řádku a název zdrojového " +#~ "souboru,\n" +#~ " \tje-li zapnuto ladění) bez definic\n" +#~ " -i\tpřiřadí NÁZVÅ®M atribut „integer“ (číslo)\n" +#~ " -r\tučiní NÁZVY jen pro čtení\n" +#~ " -t\tpřiřadí NÁZVÅ®M atribut „trace“ (sledování)\n" +#~ " -x\tvyexportuje NÁZVY\n" +#~ " \n" +#~ " Proměnné s atributem integer jsou aritmeticky vyhodnoceny (vizte " +#~ "„let“),\n" +#~ " když je do proměnné přiřazováno.\n" +#~ " \n" +#~ " Při zobrazování hodnot proměnných -f zobrazí názvy a definice " +#~ "funkcí.\n" +#~ " Přepínač -F omezí výpis jen na názvy funkcí.\n" +#~ " \n" +#~ " Pomocí „+“ namísto „-“ daný atribut odeberete. Je-li použito uvnitř\n" +#~ " funkce, učiní NÁZVY lokální stejně jako příkaz „local“." + +#~ msgid "Obsolete. See `declare'." +#~ msgstr "Zastaralé. Vizte „declare“." + +#~ msgid "" +#~ "Create a local variable called NAME, and give it VALUE. LOCAL\n" +#~ " can only be used within a function; it makes the variable NAME\n" +#~ " have a visible scope restricted to that function and its children." +#~ msgstr "" +#~ "Vytvoří lokální proměnnou pojmenovanou NÁZEV a přiřadí jí HODNOTU.\n" +#~ " LOCAL smí být použito jen uvnitř funkcí. Učiní proměnnou NÁZEV " +#~ "viditelnou\n" +#~ " jen v dané funkci a jejích potomcích." + +#~ msgid "" +#~ "Output the ARGs. If -n is specified, the trailing newline is suppressed." +#~ msgstr "" +#~ "Vypíše ARGUMENTY. Je-li zadáni -n, závěrečný konec řádku bude potlačen." + +#~ msgid "" +#~ "Enable and disable builtin shell commands. This allows\n" +#~ " you to use a disk command which has the same name as a shell\n" +#~ " builtin without specifying a full pathname. If -n is used, the\n" +#~ " NAMEs become disabled; otherwise NAMEs are enabled. For example,\n" +#~ " to use the `test' found in $PATH instead of the shell builtin\n" +#~ " version, type `enable -n test'. On systems supporting dynamic\n" +#~ " loading, the -f option may be used to load new builtins from the\n" +#~ " shared object FILENAME. The -d option will delete a builtin\n" +#~ " previously loaded with -f. If no non-option names are given, or\n" +#~ " the -p option is supplied, a list of builtins is printed. The\n" +#~ " -a option means to print every builtin with an indication of whether\n" +#~ " or not it is enabled. The -s option restricts the output to the " +#~ "POSIX.2\n" +#~ " `special' builtins. The -n option displays a list of all disabled " +#~ "builtins." +#~ msgstr "" +#~ "Povolí nebo zakáže vestavěný příkaz shellu. To vám umožňuje použít\n" +#~ " příkaz z disku, který má stejné jméno jako vestavěný příkaz shellu, " +#~ "aniž\n" +#~ " byste museli zadávat celou cestu. Je-li použito -n, NÁZVY se stanou\n" +#~ " zakázanými, jinak budou povoleny. Například „test“ z PATH namísto " +#~ "verze\n" +#~ " vestavěné do shellu lze používat tak, že napíšete „enable -n test“. " +#~ "Na\n" +#~ " systémech podporujících dynamické zavádění přepínač -f může být " +#~ "použit\n" +#~ " pro zavedení nových vestavěných příkazů ze sdíleného objektu " +#~ "NÁZEV_SOUBORU.\n" +#~ " Přepínač -d odstraní vestavěný příkaz zavedený přes -f. Není-li " +#~ "zadán\n" +#~ " žádný přepínač nebo je-li zadán přepínač -p, bude vypsán seznam " +#~ "vestavěných\n" +#~ " příkazů. Přepínač -a znamená, že budou vypsány vÅ¡echny vestavěné " +#~ "příkazy a\n" +#~ " u každého bude vyznačeno, zda je povolen nebo zakázán. Přepínač -s " +#~ "omezí\n" +#~ " výpis na příkazy uvedené v POSIX.2. Přepínač -n zobrazí seznam vÅ¡ech\n" +#~ " zakázaných vestavěných příkazů." + +#~ msgid "" +#~ "Read ARGs as input to the shell and execute the resulting command(s)." +#~ msgstr "Načte ARGUMENTY jako vstup shellu a výsledný příkaz(y) provede." + +#~ msgid "" +#~ "Exec FILE, replacing this shell with the specified program.\n" +#~ " If FILE is not specified, the redirections take effect in this\n" +#~ " shell. If the first argument is `-l', then place a dash in the\n" +#~ " zeroth arg passed to FILE, as login does. If the `-c' option\n" +#~ " is supplied, FILE is executed with a null environment. The `-a'\n" +#~ " option means to make set argv[0] of the executed process to NAME.\n" +#~ " If the file cannot be executed and the shell is not interactive,\n" +#~ " then the shell exits, unless the shell option `execfail' is set." +#~ msgstr "" +#~ "Provede SOUBOR, přičemž nahradí tento shell zadaným programem.\n" +#~ " Není-li SOUBOR zadán, přesměrování zapůsobí v tomto shellu. Je-li " +#~ "prvním\n" +#~ " argumentem „-l“, bude do nultého argumentu SOUBORU umístěna pomlčka " +#~ "tak,\n" +#~ " jak to dělá login. Je-li zadán přepínač „-c“, bude SOUBOR spuÅ¡těn\n" +#~ " s prázdným prostředím. Přepínač „-a“ znamená, že argv[0] prováděného\n" +#~ " procesu bude nastaven na NÁZEV. Pokud soubor nemůže být proveden a " +#~ "shell\n" +#~ " není interaktivní, pak shell bude ukončen, pokud přepínač shellu\n" +#~ " „execfail“ není nastaven." + +#~ msgid "Logout of a login shell." +#~ msgstr "Odhlásí z přihlaÅ¡ovacího (login) shellu." + +#~ msgid "" +#~ "For each NAME, the full pathname of the command is determined and\n" +#~ " remembered. If the -p option is supplied, PATHNAME is used as the\n" +#~ " full pathname of NAME, and no path search is performed. The -r\n" +#~ " option causes the shell to forget all remembered locations. The -d\n" +#~ " option causes the shell to forget the remembered location of each " +#~ "NAME.\n" +#~ " If the -t option is supplied the full pathname to which each NAME\n" +#~ " corresponds is printed. If multiple NAME arguments are supplied " +#~ "with\n" +#~ " -t, the NAME is printed before the hashed full pathname. The -l " +#~ "option\n" +#~ " causes output to be displayed in a format that may be reused as " +#~ "input.\n" +#~ " If no arguments are given, information about remembered commands is " +#~ "displayed." +#~ msgstr "" +#~ "Pro každý NÁZEV je určena plná cesta k příkazu a je zapamatována.\n" +#~ " Za použití přepínače -p se vezme NÁZEV_CESTY za plnou cestu k NÁZVU " +#~ "a\n" +#~ " žádné vyhledávání cesty se nekoná. Přepínač -r způsobí, že shell " +#~ "zapomene\n" +#~ " vÅ¡echny zapamatovaná umístění. Přepínač -d způsobí, že shell " +#~ "zapomene\n" +#~ " zapamatovaná umístění každého NÁZVU. Je-li zadán přepínač -t, bude " +#~ "vypsána\n" +#~ " plná cesta ke každému NÁZVU. Je-li s -t zadáno více NÁZVÅ®, NÁZEV " +#~ "bude\n" +#~ " vypsán před uloženou celou cestou. Přepínač -l vytvoří takový " +#~ "výstup,\n" +#~ " který lze opět použít jako vstup. Nejsou-li zadány žádné argumenty,\n" +#~ " budou vypsány informace o zapamatovaných příkazech." + +#~ msgid "" +#~ "Display helpful information about builtin commands. If PATTERN is\n" +#~ " specified, gives detailed help on all commands matching PATTERN,\n" +#~ " otherwise a list of the builtins is printed. The -s option\n" +#~ " restricts the output for each builtin command matching PATTERN to\n" +#~ " a short usage synopsis." +#~ msgstr "" +#~ "Zobrazí užitečné informace o vestavěných příkazech. Je-li zadán VZOREK,\n" +#~ " vrátí podrobnou nápovědu ke vÅ¡em příkazům odpovídajícím VZORKU, jinak " +#~ "je\n" +#~ " vytiÅ¡těn seznam vestavěných příkazů. Přepínač -s omezí výstup " +#~ "o každém\n" +#~ " vestavěném příkazu odpovídajícího VZORKU na stručný popis použití." + +#~ msgid "" +#~ "By default, removes each JOBSPEC argument from the table of active jobs.\n" +#~ " If the -h option is given, the job is not removed from the table, but " +#~ "is\n" +#~ " marked so that SIGHUP is not sent to the job if the shell receives a\n" +#~ " SIGHUP. The -a option, when JOBSPEC is not supplied, means to remove " +#~ "all\n" +#~ " jobs from the job table; the -r option means to remove only running " +#~ "jobs." +#~ msgstr "" +#~ "Implicitně odstraní každý argument ÚLOHA z tabulky aktivních úloh. Je-li\n" +#~ " zadán přepínač -h, úloha není odstraněna z tabulky, ale je označena " +#~ "tak.\n" +#~ " že úloze nebude zaslán SIGHUP, když shell obdrží SIGHUP. Přepínač -" +#~ "a,\n" +#~ " pokud není uvedena ÚLOHA, znamená, že vÅ¡echny úlohy budou odstraněny\n" +#~ " z tabulky úloh. Přepínač -r znamená, že pouze běžící úlohy budou\n" +#~ " odstraněny." + +#~ msgid "" +#~ "Causes a function to exit with the return value specified by N. If N\n" +#~ " is omitted, the return status is that of the last command." +#~ msgstr "" +#~ "Způsobí ukončení funkce s návratovou hodnotou uvedenou v N. Je-li\n" +#~ " N vynecháno, návratový kód je roven poslednímu příkazu." + +#~ msgid "" +#~ "For each NAME, remove the corresponding variable or function. Given\n" +#~ " the `-v', unset will only act on variables. Given the `-f' flag,\n" +#~ " unset will only act on functions. With neither flag, unset first\n" +#~ " tries to unset a variable, and if that fails, then tries to unset a\n" +#~ " function. Some variables cannot be unset; also see readonly." +#~ msgstr "" +#~ "Pro každé JMÉNO odstraní odpovídající proměnnou nebo funkci.\n" +#~ " Spolu s „-v“ bude unset fungovat jen na proměnné. S příznakem „-f“ " +#~ "bude\n" +#~ " unset fungovat jen na funkce. Bez těchto dvou příznaků unset nejprve " +#~ "zkusí\n" +#~ " zruÅ¡it proměnnou a pokud toto selže, tak zkusí zruÅ¡it funkci. " +#~ "Některé\n" +#~ " proměnné nelze odstranit. Taktéž vizte příkaz „readonly“." + +#~ msgid "" +#~ "NAMEs are marked for automatic export to the environment of\n" +#~ " subsequently executed commands. If the -f option is given,\n" +#~ " the NAMEs refer to functions. If no NAMEs are given, or if `-p'\n" +#~ " is given, a list of all names that are exported in this shell is\n" +#~ " printed. An argument of `-n' says to remove the export property\n" +#~ " from subsequent NAMEs. An argument of `--' disables further option\n" +#~ " processing." +#~ msgstr "" +#~ "NÁZVY jsou označeny pro automatické exportování do prostředí následně\n" +#~ " prováděných příkazů. Je-li zadán přepínač -f, NÁZVY se vztahují " +#~ "k funkcím.\n" +#~ " Nejsou-li zadány žádné NÁZVY nebo je-li zadáno „-p“, bude vytiÅ¡těn " +#~ "seznam\n" +#~ " vÅ¡ech názvů, které jsou v tomto shellu exportovány. Argument „-n“ " +#~ "nařizuje\n" +#~ " odstranit vlastnost exportovat z následujících NÁZVÅ®. Argument „--“\n" +#~ " zakazuje zpracování dalších přepínačů." + +#~ msgid "" +#~ "The given NAMEs are marked readonly and the values of these NAMEs may\n" +#~ " not be changed by subsequent assignment. If the -f option is given,\n" +#~ " then functions corresponding to the NAMEs are so marked. If no\n" +#~ " arguments are given, or if `-p' is given, a list of all readonly " +#~ "names\n" +#~ " is printed. The `-a' option means to treat each NAME as\n" +#~ " an array variable. An argument of `--' disables further option\n" +#~ " processing." +#~ msgstr "" +#~ "Zadané NÁZVY budou označeny jako jen pro čtení a hodnoty těchto NÁZVÅ®\n" +#~ " nebude možné změnit následným přiřazením. Je-li zadán přepínač -f, " +#~ "pak\n" +#~ " funkce těchto NÁZVÅ® budou takto označeny. Nejsou-li zadány žádné " +#~ "argumenty\n" +#~ " nebo je-li zadáno „-p“, bude vytiÅ¡těn seznam vÅ¡ech jmen jen pro " +#~ "čtení.\n" +#~ " Přepínač „-a“ znamená, že s každým NÁZVEM bude zacházeno jako " +#~ "s proměnnou\n" +#~ " typu pole. Argument „--“ zakáže zpracování dalších přepínačů." + +#~ msgid "" +#~ "The positional parameters from $N+1 ... are renamed to $1 ... If N is\n" +#~ " not given, it is assumed to be 1." +#~ msgstr "" +#~ "Poziční parametry budou přejmenovány z $N+1 na $1 atd. Není-li N zadáno,\n" +#~ " předpokládá se 1." + +#~ msgid "" +#~ "Suspend the execution of this shell until it receives a SIGCONT\n" +#~ " signal. The `-f' if specified says not to complain about this\n" +#~ " being a login shell if it is; just suspend anyway." +#~ msgstr "" +#~ "Pozastaví provádění tohoto shellu do doby, něž bude obdržen signál\n" +#~ " SIGCONT. „-f“, je-li zadán, potlačí stížnost na to, že se jedná\n" +#~ " o přihlaÅ¡ovací shell (pokud tomu tak je), a prostě pozastaví činnost." + +#~ msgid "" +#~ "Print the accumulated user and system times for processes run from\n" +#~ " the shell." +#~ msgstr "" +#~ "Vypíše celkovou dobu procesu spuÅ¡těného z shellu, kterou strávil\n" +#~ " v uživatelském a jaderném (system) prostoru." + +#~ msgid "" +#~ "For each NAME, indicate how it would be interpreted if used as a\n" +#~ " command name.\n" +#~ " \n" +#~ " If the -t option is used, `type' outputs a single word which is one " +#~ "of\n" +#~ " `alias', `keyword', `function', `builtin', `file' or `', if NAME is " +#~ "an\n" +#~ " alias, shell reserved word, shell function, shell builtin, disk " +#~ "file,\n" +#~ " or unfound, respectively.\n" +#~ " \n" +#~ " If the -p flag is used, `type' either returns the name of the disk\n" +#~ " file that would be executed, or nothing if `type -t NAME' would not\n" +#~ " return `file'.\n" +#~ " \n" +#~ " If the -a flag is used, `type' displays all of the places that " +#~ "contain\n" +#~ " an executable named `file'. This includes aliases, builtins, and\n" +#~ " functions, if and only if the -p flag is not also used.\n" +#~ " \n" +#~ " The -f flag suppresses shell function lookup.\n" +#~ " \n" +#~ " The -P flag forces a PATH search for each NAME, even if it is an " +#~ "alias,\n" +#~ " builtin, or function, and returns the name of the disk file that " +#~ "would\n" +#~ " be executed." +#~ msgstr "" +#~ "O každém NÁZVU řekne, jak by byl interpretován, kdyby byl použit jako\n" +#~ " název příkazu.\n" +#~ " \n" +#~ " Je-li použit přepínač -t, „type“ vypíše jedno slovo z těchto: " +#~ "„alias“,\n" +#~ " „keyword“, „function“, „builtin“, „file“ nebo „“, je-li NÁZEV alias,\n" +#~ " klíčové slovo shellu, shellová funkce, vestavěný příkaz shellu, " +#~ "soubor\n" +#~ " na disku nebo nenalezený soubor.\n" +#~ " \n" +#~ " Je-li použit přepínač -p, „type“ buď vrátí jméno souboru na disku, " +#~ "který\n" +#~ " by byl spuÅ¡těn, nebo nic, pokud „type -t NÁZEV“ by nevrátil „file“.\n" +#~ " \n" +#~ " Je-li použit přepínač -a, „type“ zobrazí vÅ¡echna místa, kde se " +#~ "nalézá\n" +#~ " spustitelný program pojmenovaný „soubor“. To zahrnuje aliasy, " +#~ "vestavěné\n" +#~ " příkazy a funkce jen a pouze tehdy, když není rovněž použit přepínač -" +#~ "p.\n" +#~ " \n" +#~ " Přepínač -f potlačí hledání mezi funkcemi shellu.\n" +#~ " \n" +#~ " Přepínač -P vynutí prohledání PATH na každý NÁZEV, dokonce i když se\n" +#~ " jedná o alias, vestavěný příkaz nebo funkci, a vrátí název souboru " +#~ "na\n" +#~ " disku, který by byl spuÅ¡těn." + +#~ msgid "" +#~ "The user file-creation mask is set to MODE. If MODE is omitted, or if\n" +#~ " `-S' is supplied, the current value of the mask is printed. The `-" +#~ "S'\n" +#~ " option makes the output symbolic; otherwise an octal number is " +#~ "output.\n" +#~ " If `-p' is supplied, and MODE is omitted, the output is in a form\n" +#~ " that may be used as input. If MODE begins with a digit, it is\n" +#~ " interpreted as an octal number, otherwise it is a symbolic mode " +#~ "string\n" +#~ " like that accepted by chmod(1)." +#~ msgstr "" +#~ "Uživatelská maska práv vytvářených souborů je nastavena na MÓD. Je-li\n" +#~ " MÓD vynechán nebo je-li uvedeno „-S“, bude vytiÅ¡těna současná " +#~ "hodnota\n" +#~ " masky. Přepínač „-S“ učiní výstup symbolický, jinak bude výstupem\n" +#~ " osmičkové číslo. Je-li zadáno „-p“ a MÓD je vynechán, bude výstup ve\n" +#~ " formátu, který lze použít jako vstup. Začíná-li MÓD číslicí, bude\n" +#~ " interpretován jako osmičkové číslo, jinak jako řetězec symbolického " +#~ "zápisu\n" +#~ " práv tak, jak jej chápe chmod(1)." + +#~ msgid "" +#~ "Wait for the specified process and report its termination status. If\n" +#~ " N is not given, all currently active child processes are waited for,\n" +#~ " and the return code is zero. N is a process ID; if it is not given,\n" +#~ " all child processes of the shell are waited for." +#~ msgstr "" +#~ "Počká na zadaný proces a nahlásí jeho návratový kód. Není-li N zadáno,\n" +#~ " bude se čekat na vÅ¡echny právě aktivní procesy potomků a návratová " +#~ "hodnota\n" +#~ " bude nula. N je ID procesu. Není-li zadáno, bude se čekat na vÅ¡echny\n" +#~ " procesy potomků tohoto shellu." + +#~ msgid "" +#~ "Create a simple command invoked by NAME which runs COMMANDS.\n" +#~ " Arguments on the command line along with NAME are passed to the\n" +#~ " function as $0 .. $n." +#~ msgstr "" +#~ "Vytvoří jednoduchý příkaz volaný JMÉNEM, který spustí PŘÍKAZY. Argumenty\n" +#~ " z příkazové řádky spolu se JMÉNEM budou předány do funkce jako $0…$n." + +#~ msgid "" +#~ "Toggle the values of variables controlling optional behavior.\n" +#~ " The -s flag means to enable (set) each OPTNAME; the -u flag\n" +#~ " unsets each OPTNAME. The -q flag suppresses output; the exit\n" +#~ " status indicates whether each OPTNAME is set or unset. The -o\n" +#~ " option restricts the OPTNAMEs to those defined for use with\n" +#~ " `set -o'. With no options, or with the -p option, a list of all\n" +#~ " settable options is displayed, with an indication of whether or\n" +#~ " not each is set." +#~ msgstr "" +#~ "Přepne hodnoty proměnných řídící volitelné chování. Přepínač -s znamená,\n" +#~ " že se každý NÁZEV_VOLBY zapne (nastaví). Přepínač -u každý " +#~ "NÁZEV_VOLBY\n" +#~ " vypne. Přepínač -q potlačí výstup. Zda je nebo není nastaven každý\n" +#~ " NÁZEV_VOLBY, indikuje návratový kód. Přepínač -o omezí NÁZVY_VOLEB na " +#~ "ty,\n" +#~ " které jsou definovány pro použití s „set -o“. Bez přepínačů nebo\n" +#~ " s přepínačem -p je zobrazen seznam vÅ¡ech nastavitelných voleb včetně\n" +#~ " indikace, zda je každá nastavena." + +#~ msgid "" +#~ "For each NAME, specify how arguments are to be completed.\n" +#~ " If the -p option is supplied, or if no options are supplied, " +#~ "existing\n" +#~ " completion specifications are printed in a way that allows them to " +#~ "be\n" +#~ " reused as input. The -r option removes a completion specification " +#~ "for\n" +#~ " each NAME, or, if no NAMEs are supplied, all completion " +#~ "specifications." +#~ msgstr "" +#~ "U každého NÁZVU sdělí, jak budou argumenty doplněny. Je-li zadán\n" +#~ " přepínač -p nebo není-li zadán přepínač žádný, budou existující " +#~ "definice\n" +#~ " doplňování vytiÅ¡těny tak. že je bude možné znovu použít jako vstup.\n" +#~ " Přepínač -r odstraní definici doplnění pro každý NÁZEV nebo chybí-li " +#~ "NÁZVY,\n" +#~ " odstraní vÅ¡echny definice." diff --git a/po/de.gmo b/po/de.gmo new file mode 100644 index 0000000000000000000000000000000000000000..8cfb60d28ab42771541c697e6cf16b88371f4328 GIT binary patch literal 35764 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 WU&N%B+T|i9zm!?O, 1996, 2008. +msgid "" +msgstr "" +"Project-Id-Version: bash 4.0-pre1\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2009-01-06 11:56-0500\n" +"PO-Revision-Date: 2008-12-20 16:56+0100\n" +"Last-Translator: Nils Naumann \n" +"Language-Team: German \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-1\n" +"Content-Transfer-Encoding: 8-bit\n" + +#: arrayfunc.c:50 +msgid "bad array subscript" +msgstr "Falscher Feldbezeichner." + +#: arrayfunc.c:313 builtins/declare.def:474 +#, c-format +msgid "%s: cannot convert indexed to associative array" +msgstr "%s: Kann nicht das indizierte in ein assoziatives Array umwandeln." + +#: arrayfunc.c:479 +#, c-format +msgid "%s: invalid associative array key" +msgstr "%s: Ungültiger Schlüssel für das assoziative Array." + +#: arrayfunc.c:481 +#, c-format +msgid "%s: cannot assign to non-numeric index" +msgstr "%s: Kann nicht auf einen nicht-numerischen Index zuweisen." + +#: arrayfunc.c:517 +#, c-format +msgid "%s: %s: must use subscript when assigning associative array" +msgstr "" + +#: bashhist.c:380 +#, c-format +msgid "%s: cannot create: %s" +msgstr "%s: Kann die Datei %s nicht erzeugen." + +#: bashline.c:3413 +msgid "bash_execute_unix_command: cannot find keymap for command" +msgstr "" + +#: bashline.c:3491 +#, c-format +msgid "%s: first non-whitespace character is not `\"'" +msgstr "%s: Das erste nicht Leerzeichen ist nicht `\\'." + +#: bashline.c:3520 +#, c-format +msgid "no closing `%c' in %s" +msgstr "fehlende schließende `%c' in %s." + +#: bashline.c:3554 +#, c-format +msgid "%s: missing colon separator" +msgstr "%s: Fehlender Doppelpunkt." + +#: builtins/bind.def:120 builtins/bind.def:123 +msgid "line editing not enabled" +msgstr "" + +#: builtins/bind.def:206 +#, c-format +msgid "`%s': invalid keymap name" +msgstr "`%s': Ungültiger KEYMAP Name." + +#: builtins/bind.def:245 +#, c-format +msgid "%s: cannot read: %s" +msgstr "%s: Nicht lesbar: %s" + +#: builtins/bind.def:260 +#, c-format +msgid "`%s': cannot unbind" +msgstr "`%s': Bindung kann nicht gelöst werden." + +#: builtins/bind.def:295 builtins/bind.def:325 +#, c-format +msgid "`%s': unknown function name" +msgstr "%s: Unbekannter Funktionsname." + +#: builtins/bind.def:303 +#, c-format +msgid "%s is not bound to any keys.\n" +msgstr "%s ist keiner Taste zugeordnet.\n" + +#: builtins/bind.def:307 +#, c-format +msgid "%s can be invoked via " +msgstr "%s kann aufgerufen werden durch " + +#: builtins/break.def:77 builtins/break.def:117 +msgid "loop count" +msgstr "Schleifen Zähler" + +#: builtins/break.def:137 +msgid "only meaningful in a `for', `while', or `until' loop" +msgstr "nur in einer `for', `while' oder `until' Schleife sinnvoll." + +#: builtins/caller.def:133 +msgid "" +"Returns the context of the current subroutine call.\n" +" \n" +" Without EXPR, returns " +msgstr "" + +#: builtins/cd.def:215 +msgid "HOME not set" +msgstr "HOME ist nicht zugewiesen." + +#: builtins/cd.def:227 +msgid "OLDPWD not set" +msgstr "OLDPWD ist nicht zugewiesen." + +# Debug Ausgabe +#: builtins/common.c:101 +#, c-format +msgid "line %d: " +msgstr "Zeile %d: " + +#: builtins/common.c:139 error.c:260 +#, c-format +msgid "warning: " +msgstr "Warnung: " + +#: builtins/common.c:153 +#, c-format +msgid "%s: usage: " +msgstr "%s: Gebrauch: " + +#: builtins/common.c:166 test.c:822 +msgid "too many arguments" +msgstr "Zu viele Argumente." + +#: builtins/common.c:191 shell.c:493 shell.c:774 +#, c-format +msgid "%s: option requires an argument" +msgstr "%s: Ein numerischer Paremeter ist erforderlich." + +#: builtins/common.c:198 +#, c-format +msgid "%s: numeric argument required" +msgstr "%s: Ein numerischer Parameter ist erforderlich." + +#: builtins/common.c:205 +#, c-format +msgid "%s: not found" +msgstr "%s: Nicht gefunden." + +#: builtins/common.c:214 shell.c:787 +#, c-format +msgid "%s: invalid option" +msgstr "%s: Ungültige Option" + +#: builtins/common.c:221 +#, c-format +msgid "%s: invalid option name" +msgstr "%s: Ungültiger Optionsname." + +#: builtins/common.c:228 general.c:231 general.c:236 +#, c-format +msgid "`%s': not a valid identifier" +msgstr "`%s': Ist kein gültiger Bezeichner." + +#: builtins/common.c:238 +msgid "invalid octal number" +msgstr "Ungültige Oktalzahl." + +#: builtins/common.c:240 +msgid "invalid hex number" +msgstr "Ungültige hexadezimale Zahl." + +#: builtins/common.c:242 expr.c:1255 +msgid "invalid number" +msgstr "Ungültige Zahl." + +#: builtins/common.c:250 +#, c-format +msgid "%s: invalid signal specification" +msgstr "%s: Ungültige Signalbezeichnung." + +#: builtins/common.c:257 +#, c-format +msgid "`%s': not a pid or valid job spec" +msgstr "`%s': Ist keine gültige Prozess- oder Jobbezeichnung." + +#: builtins/common.c:264 error.c:453 +#, c-format +msgid "%s: readonly variable" +msgstr "%s: Schreibgeschützte Variable." + +#: builtins/common.c:272 +#, c-format +msgid "%s: %s out of range" +msgstr "%s: %s ist außerhalb des Gültigkeitsbereiches." + +#: builtins/common.c:272 builtins/common.c:274 +msgid "argument" +msgstr "Argument" + +#: builtins/common.c:274 +#, c-format +msgid "%s out of range" +msgstr "%s ist außerhalb des Gültigkeitsbereiches." + +#: builtins/common.c:282 +#, c-format +msgid "%s: no such job" +msgstr "%s: Kein solche Job." + +#: builtins/common.c:290 +#, c-format +msgid "%s: no job control" +msgstr "%s: Keine Job Steuerung in dieser Shell." + +#: builtins/common.c:292 +msgid "no job control" +msgstr "Keine Job Steuerung in dieser Shell." + +#: builtins/common.c:302 +#, c-format +msgid "%s: restricted" +msgstr "%s: gesperrt" + +#: builtins/common.c:304 +msgid "restricted" +msgstr "gesperrt" + +#: builtins/common.c:312 +#, c-format +msgid "%s: not a shell builtin" +msgstr "%s: Ist kein Shell Kommando." + +#: builtins/common.c:321 +#, c-format +msgid "write error: %s" +msgstr "Schreibfehler: %s." + +#: builtins/common.c:553 +#, c-format +msgid "%s: error retrieving current directory: %s: %s\n" +msgstr "%s: Kann das nicht aktuelle Verzeichnis wiederfinden: %s: %s\n" + +#: builtins/common.c:619 builtins/common.c:621 +#, c-format +msgid "%s: ambiguous job spec" +msgstr "%s: Mehrdeutige Job Bezeichnung." + +#: builtins/complete.def:270 +#, c-format +msgid "%s: invalid action name" +msgstr "" + +#: builtins/complete.def:430 builtins/complete.def:615 +#: builtins/complete.def:813 +#, c-format +msgid "%s: no completion specification" +msgstr "" + +#: builtins/complete.def:667 +msgid "warning: -F option may not work as you expect" +msgstr "Warnung: Die -F Option könnte unerwartete Ergebnisse liefern." + +#: builtins/complete.def:669 +msgid "warning: -C option may not work as you expect" +msgstr "Warnung: Die -C Option könnte unerwartete Ergebnisse liefern." + +#: builtins/complete.def:786 +msgid "not currently executing completion function" +msgstr "" + +#: builtins/declare.def:122 +msgid "can only be used in a function" +msgstr "kann nur innerhalb einer Funktion benutzt werden." + +#: builtins/declare.def:353 +msgid "cannot use `-f' to make functions" +msgstr "Mit `-f' können keine Funktionen erzeugt werden." + +#: builtins/declare.def:365 execute_cmd.c:4731 +#, c-format +msgid "%s: readonly function" +msgstr "%s: Schreibgeschützte Funktion." + +#: builtins/declare.def:461 +#, c-format +msgid "%s: cannot destroy array variables in this way" +msgstr "%s: Kann Feldvariablen nicht auf diese Art löschen." + +#: builtins/declare.def:468 +#, c-format +msgid "%s: cannot convert associative to indexed array" +msgstr "" + +#: builtins/enable.def:137 builtins/enable.def:145 +msgid "dynamic loading not available" +msgstr "" + +#: builtins/enable.def:312 +#, c-format +msgid "cannot open shared object %s: %s" +msgstr "" + +#: builtins/enable.def:335 +#, c-format +msgid "cannot find %s in shared object %s: %s" +msgstr "" + +#: builtins/enable.def:459 +#, c-format +msgid "%s: not dynamically loaded" +msgstr "" + +#: builtins/enable.def:474 +#, c-format +msgid "%s: cannot delete: %s" +msgstr "%s: Kann nicht löschen: %s" + +#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4588 +#: shell.c:1439 +#, c-format +msgid "%s: is a directory" +msgstr "%s: ist ein Verzeichnis." + +#: builtins/evalfile.c:139 +#, c-format +msgid "%s: not a regular file" +msgstr "%s: Ist keine normale Datei." + +#: builtins/evalfile.c:147 +#, c-format +msgid "%s: file is too large" +msgstr "%s: Die Datei ist zu groß." + +#: builtins/evalfile.c:185 execute_cmd.c:4658 shell.c:1449 +#, c-format +msgid "%s: cannot execute binary file" +msgstr "%s: Kann die Datei nicht ausführen." + +#: builtins/exec.def:212 +#, c-format +msgid "%s: cannot execute: %s" +msgstr "%s: Kann nicht ausführen: %s" + +#: builtins/exit.def:65 +#, c-format +msgid "logout\n" +msgstr "Abgemeldet\n" + +#: builtins/exit.def:88 +msgid "not login shell: use `exit'" +msgstr "Keine Login Shell: Mit exit abmelden." + +#: builtins/exit.def:120 +#, c-format +msgid "There are stopped jobs.\n" +msgstr "Es gibt noch angehaltene Prozesse.\n" + +#: builtins/exit.def:122 +#, c-format +msgid "There are running jobs.\n" +msgstr "Es gibt noch laufende Prozesse.\n" + +#: builtins/fc.def:261 +msgid "no command found" +msgstr "Kein Kommando gefunden." + +#: builtins/fc.def:341 +msgid "history specification" +msgstr "" + +#: builtins/fc.def:362 +#, c-format +msgid "%s: cannot open temp file: %s" +msgstr "%s: Kann die tempräre Datei nicht öffnen: %s" + +#: builtins/fg_bg.def:149 builtins/jobs.def:282 +msgid "current" +msgstr "" + +#: builtins/fg_bg.def:158 +#, c-format +msgid "job %d started without job control" +msgstr "Job %d wurde ohne Jobsteuerung gestartet." + +#: builtins/getopt.c:110 +#, c-format +msgid "%s: illegal option -- %c\n" +msgstr "%s: Ungültige Option -- %c\n" + +#: builtins/getopt.c:111 +#, c-format +msgid "%s: option requires an argument -- %c\n" +msgstr "%s: Diese Option erfordert ein Argument -- %c\n" + +#: builtins/hash.def:92 +msgid "hashing disabled" +msgstr "" + +#: builtins/hash.def:138 +#, c-format +msgid "%s: hash table empty\n" +msgstr "" + +#: builtins/hash.def:244 +#, c-format +msgid "hits\tcommand\n" +msgstr "" + +#: builtins/help.def:130 +#, c-format +msgid "Shell commands matching keyword `" +msgid_plural "Shell commands matching keywords `" +msgstr[0] "" +msgstr[1] "" + +#: builtins/help.def:168 +#, c-format +msgid "" +"no help topics match `%s'. Try `help help' or `man -k %s' or `info %s'." +msgstr "" + +#: builtins/help.def:185 +#, c-format +msgid "%s: cannot open: %s" +msgstr "%s: Kann die Datei nicht öffnen: %s" + +#: builtins/help.def:337 +#, c-format +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 "" +"Die Shell Kommandos sind intern definiert. Mit `help' kann eine Liste\n" +"angesehen werden. Durch `help Name' wird eine Beschreibung der\n" +"Funktion `Name' angezeigt. Die Dokumentation ist mit `info bash'\n" +"einsehbar. Detaillierte Beschreibungen der Shellkommandos sind mit\n" +"`man -k' oder `info' abrufbar.\n" +"\n" +"Ein Stern (*) neben dem Namen kennzeichnet deaktivierte Kommandos.\n" +"\n" + +#: builtins/history.def:154 +msgid "cannot use more than one of -anrw" +msgstr "" + +#: builtins/history.def:186 +msgid "history position" +msgstr "" + +#: builtins/history.def:365 +#, c-format +msgid "%s: history expansion failed" +msgstr "%s: History Substitution gescheitert." + +#: builtins/inlib.def:71 +#, c-format +msgid "%s: inlib failed" +msgstr "%s: inlib gescheitert." + +#: builtins/jobs.def:109 +msgid "no other options allowed with `-x'" +msgstr "Keine weiteren Optionen mit `-x' erlaubt." + +#: builtins/kill.def:197 +#, c-format +msgid "%s: arguments must be process or job IDs" +msgstr "%s: Die Argumente müssen Prozess- oder Jobbezeichnungen sein." + +#: builtins/kill.def:260 +msgid "Unknown error" +msgstr "Unbekannter Fehler." + +#: builtins/let.def:95 builtins/let.def:120 expr.c:501 expr.c:516 +msgid "expression expected" +msgstr "Ausdruck erwartet." + +#: builtins/mapfile.def:215 builtins/read.def:272 +#, c-format +msgid "%s: invalid file descriptor specification" +msgstr "" + +#: builtins/mapfile.def:223 builtins/read.def:279 +#, c-format +msgid "%d: invalid file descriptor: %s" +msgstr "" + +#: builtins/mapfile.def:232 builtins/mapfile.def:270 +#, c-format +msgid "%s: invalid line count" +msgstr "" + +#: builtins/mapfile.def:243 +#, c-format +msgid "%s: invalid array origin" +msgstr "" + +#: builtins/mapfile.def:260 +#, c-format +msgid "%s: invalid callback quantum" +msgstr "" + +#: builtins/mapfile.def:292 +msgid "empty array variable name" +msgstr "" + +#: builtins/mapfile.def:313 +msgid "array variable support required" +msgstr "" + +#: builtins/printf.def:367 +#, c-format +msgid "`%s': missing format character" +msgstr "" + +#: builtins/printf.def:544 +#, c-format +msgid "`%c': invalid format character" +msgstr "" + +#: builtins/printf.def:571 +#, c-format +msgid "warning: %s: %s" +msgstr "Warnung: %s: %s" + +#: builtins/printf.def:750 +msgid "missing hex digit for \\x" +msgstr "" + +#: builtins/pushd.def:195 +msgid "no other directory" +msgstr "kein anderes Verzeichnis" + +#: builtins/pushd.def:462 +msgid "" +msgstr "" + +#: builtins/pushd.def:506 +msgid "directory stack empty" +msgstr "der Verzeichnisstapel ist leer" + +#: builtins/pushd.def:508 +msgid "directory stack index" +msgstr "" + +#: builtins/pushd.def:683 +msgid "" +"Display the list of currently remembered directories. Directories\n" +" find their way onto the list with the `pushd' command; you can get\n" +" back up through the list with the `popd' command.\n" +" \n" +" Options:\n" +" -c\tclear the directory stack by deleting all of the elements\n" +" -l\tdo not print tilde-prefixed versions of directories relative\n" +" \tto your home directory\n" +" -p\tprint the directory stack with one entry per line\n" +" -v\tprint the directory stack with one entry per line prefixed\n" +" \twith its position in the stack\n" +" \n" +" Arguments:\n" +" +N\tDisplays the Nth entry counting from the left of the list shown " +"by\n" +" \tdirs when invoked without options, starting with zero.\n" +" \n" +" -N\tDisplays the Nth entry counting from the right of the list shown " +"by\n" +"\tdirs when invoked without options, starting with zero." +msgstr "" + +#: builtins/pushd.def:705 +msgid "" +"Adds a directory to the top of the directory stack, or rotates\n" +" the stack, making the new top of the stack the current working\n" +" directory. With no arguments, exchanges the top two directories.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when adding\n" +" \tdirectories to the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the left of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" -N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the right of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" dir\tAdds DIR to the directory stack at the top, making it the\n" +" \tnew current working directory.\n" +" \n" +" The `dirs' builtin displays the directory stack." +msgstr "" +"Legt ein Verzeichniseintrag auf den Verzeichnisstapel ab oder rotiert\n" +"den Stapel so, dass das aktuelle Verzeichnis oben liegt. Ohne Argumente\n" +"werden die beiden oberen Einträge vertauscht.\n" +"\n" +" Optionen: \n" +" -n\tVermeidet das Wechseln des Verzeichnisses, so dass\n" +"\tnur der Verzeichnisstapel geändert wird.\n" +"\n" +" Argumente:\n" +" +N\tRotiert den Verzeichnisstapel, dass das N-te Verzeichnis\n" +"\tvon links, das von `dirs' angezeigt wird, nach oben kommt. Die Zählung\n" +"\tbeginnt dabei mit Null.\n" +"\n" +" -N\tRotiert den Verzeichnisstapel, dass das N-te Verzeichnis\n" +"\tvon rechts, das von `dirs' angezeigt wird, nach oben kommt. Die \n" +"\tZählung beginnt dabei mit Null.\n" +"\n" +" dir\tLegt DIR auf den Verzeichnisstapel und wechselt in dieses\n" +" Verzeichnis.\n" +" \n" +" Das `dirs' Kommando zeigt den Verueichnisstapel an." + +#: builtins/pushd.def:730 +msgid "" +"Removes entries from the directory stack. With no arguments, removes\n" +" the top directory from the stack, and changes to the new top directory.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when removing\n" +" \tdirectories from the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRemoves the Nth entry counting from the left of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd +0'\n" +" \tremoves the first directory, `popd +1' the second.\n" +" \n" +" -N\tRemoves the Nth entry counting from the right of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd -0'\n" +" \tremoves the last directory, `popd -1' the next to last.\n" +" \n" +" The `dirs' builtin displays the directory stack." +msgstr "" +"Erntfernt Einträge vom Stapel. Ohne Argumente wird der oberste Eintrag\n" +" gelöscht und anschließend in das das neue oben liegede Verzeichnis\n" +" gewechselt.\n" +" \n" +" Optionen:\n" +" -n\tVermeidet das Wechseln des Verzeichnisses, so dass\n" +"\tnur der Verzeichnisstapel geändert wird.\n" +" \n" +" Argumente:\n" +" +N\tEntfernt den N-ten Eintrag von links, der von `dirs'\n" +"\tangezeigt wird. Dabei beginnt die Zählung von Null. So\n" +"\tentfernt z.B. `popd +0' den ersten und `popd +1' den zweiten\n" +"\tEintrag.\n" +" \n" +" -N\tEntfernt den N-ten Eintrag von rechts, der von `dirs'\n" +"\tangezeigt wird. Dabei beginnt die Zählung von Null. So\n" +"\tentfernt z.B. `popd -0' den letzten und `popd +1' den vorletzten\n" +"\tEintrag.\n" +" \n" +" Das `dirs' Kommando zeigt den Verzeichnisstapel an." + +#: builtins/read.def:248 +#, c-format +msgid "%s: invalid timeout specification" +msgstr "" + +#: builtins/read.def:574 +#, c-format +msgid "read error: %d: %s" +msgstr "Lesefehler: %d: %s" + +#: builtins/return.def:73 +msgid "can only `return' from a function or sourced script" +msgstr "" + +#: builtins/set.def:768 +msgid "cannot simultaneously unset a function and a variable" +msgstr "" + +#: builtins/set.def:805 +#, c-format +msgid "%s: cannot unset" +msgstr "" + +#: builtins/set.def:812 +#, c-format +msgid "%s: cannot unset: readonly %s" +msgstr "" + +#: builtins/set.def:823 +#, c-format +msgid "%s: not an array variable" +msgstr "" + +#: builtins/setattr.def:186 +#, c-format +msgid "%s: not a function" +msgstr "" + +#: builtins/shift.def:71 builtins/shift.def:77 +msgid "shift count" +msgstr "" + +#: builtins/shopt.def:254 +msgid "cannot set and unset shell options simultaneously" +msgstr "" + +#: builtins/shopt.def:319 +#, c-format +msgid "%s: invalid shell option name" +msgstr "" + +#: builtins/source.def:128 +msgid "filename argument required" +msgstr "" + +#: builtins/source.def:153 +#, c-format +msgid "%s: file not found" +msgstr "%s: Datei nicht gefunden." + +#: builtins/suspend.def:101 +msgid "cannot suspend" +msgstr "" + +# logout +#: builtins/suspend.def:111 +msgid "cannot suspend a login shell" +msgstr "Kann die Loginshell nicht unterbrechen." + +#: builtins/type.def:234 +#, c-format +msgid "%s is aliased to `%s'\n" +msgstr "" + +#: builtins/type.def:255 +#, c-format +msgid "%s is a shell keyword\n" +msgstr "" + +#: builtins/type.def:274 +#, c-format +msgid "%s is a function\n" +msgstr "%s ist eine Funktion.\n" + +#: builtins/type.def:296 +#, c-format +msgid "%s is a shell builtin\n" +msgstr "" + +#: builtins/type.def:317 builtins/type.def:391 +#, c-format +msgid "%s is %s\n" +msgstr "" + +#: builtins/type.def:337 +#, c-format +msgid "%s is hashed (%s)\n" +msgstr "" + +#: builtins/ulimit.def:372 +#, c-format +msgid "%s: invalid limit argument" +msgstr "" + +#: builtins/ulimit.def:398 +#, c-format +msgid "`%c': bad command" +msgstr "`%c': Falsches Kommando." + +#: builtins/ulimit.def:427 +#, c-format +msgid "%s: cannot get limit: %s" +msgstr "" + +#: builtins/ulimit.def:453 +msgid "limit" +msgstr "Grenze" + +#: builtins/ulimit.def:465 builtins/ulimit.def:765 +#, c-format +msgid "%s: cannot modify limit: %s" +msgstr "%s: Kann die Grenze nicht ändern: %s" + +#: builtins/umask.def:118 +msgid "octal number" +msgstr "" + +#: builtins/umask.def:231 +#, c-format +msgid "`%c': invalid symbolic mode operator" +msgstr "" + +#: builtins/umask.def:286 +#, c-format +msgid "`%c': invalid symbolic mode character" +msgstr "" + +#: error.c:89 error.c:320 error.c:322 error.c:324 +msgid " line " +msgstr " Zeile " + +#: error.c:164 +#, c-format +msgid "last command: %s\n" +msgstr "Letztes Kommando: %s\n" + +#: error.c:172 +#, c-format +msgid "Aborting..." +msgstr "Abbruch..." + +#: error.c:405 +msgid "unknown command error" +msgstr "" + +#: error.c:406 +msgid "bad command type" +msgstr "" + +# Programmierfehler +#: error.c:407 +msgid "bad connector" +msgstr "" + +#: error.c:408 +#, fuzzy +msgid "bad jump" +msgstr "Falscher Sprung %d." + +#: error.c:446 +#, c-format +msgid "%s: unbound variable" +msgstr "%s ist nicht gesetzt." + +#: eval.c:181 +#, c-format +msgid "\atimed out waiting for input: auto-logout\n" +msgstr "\aZu lange keine Eingabe: Automatisch ausgeloggt.\n" + +#: execute_cmd.c:491 +#, c-format +msgid "cannot redirect standard input from /dev/null: %s" +msgstr "Kann nicht die Standardeingabe von /dev/null umleiten: %s" + +#: execute_cmd.c:1091 +#, c-format +msgid "TIMEFORMAT: `%c': invalid format character" +msgstr "TIMEFORMAT: `%c': Ungültiges Formatzeichen." + +#: execute_cmd.c:1942 +msgid "pipe error" +msgstr "Pipe-Fehler" + +#: execute_cmd.c:4276 +#, c-format +msgid "%s: restricted: cannot specify `/' in command names" +msgstr "%s: Verboten: `/' ist in Kommandonamen unzulässig." + +#: execute_cmd.c:4367 +#, c-format +msgid "%s: command not found" +msgstr "%s: Kommando nicht gefunden." + +#: execute_cmd.c:4621 +#, fuzzy, c-format +msgid "%s: %s: bad interpreter" +msgstr "%s: ist ein Verzeichnis." + +#: execute_cmd.c:4770 +#, fuzzy, c-format +msgid "cannot duplicate fd %d to fd %d" +msgstr "Kann fd %d nicht auf fd 0 verdoppeln: %s" + +#: expr.c:241 +msgid "expression recursion level exceeded" +msgstr "Zu viele Rekursionen in Ausdruck." + +#: expr.c:265 +#, fuzzy +msgid "recursion stack underflow" +msgstr "Rekursionsstapel leer." + +#: expr.c:379 +msgid "syntax error in expression" +msgstr "Syntaxfehler im Ausdruck." + +#: expr.c:419 +msgid "attempted assignment to non-variable" +msgstr "Zuweisung zu einer Nicht-Variablen versucht." + +#: expr.c:440 expr.c:445 expr.c:756 +msgid "division by 0" +msgstr "Division durch 0." + +#: expr.c:471 +#, fuzzy +msgid "bug: bad expassign token" +msgstr "Fehler: Falsches Zuweisungszeichen %d." + +#: expr.c:513 +msgid "`:' expected for conditional expression" +msgstr "`:' erwartet für ein bedingten Ausdruck." + +#: expr.c:781 +msgid "exponent less than 0" +msgstr "Der Exponent ist kleiner als 0." + +#: expr.c:826 +msgid "identifier expected after pre-increment or pre-decrement" +msgstr "" +"Nach einem Präinkrement oder Prädekrement wird ein Bezeichner erwartet." + +#: expr.c:854 +msgid "missing `)'" +msgstr "Fehlende `)'" + +#: expr.c:897 expr.c:1175 +#, fuzzy +msgid "syntax error: operand expected" +msgstr "Syntax Fehler: Unerwartetes Dateiende." + +#: expr.c:1177 +msgid "syntax error: invalid arithmetic operator" +msgstr "Syntaxfehler: Ungültiger arithmetischer Operator." + +#: expr.c:1201 +#, fuzzy, c-format +msgid "%s%s%s: %s (error token is \"%s\")" +msgstr "%s: %s: %s (Fehlerverursachendes Wort ist \\\"%s\\\").\n" + +#: expr.c:1259 +msgid "invalid arithmetic base" +msgstr "Ungültige Basis." + +#: expr.c:1279 +msgid "value too great for base" +msgstr "Der Wert ist zu groß für die aktuelle Basis." + +#: expr.c:1328 +#, fuzzy, c-format +msgid "%s: expression error\n" +msgstr "Umlenkfehler" + +#: general.c:61 +msgid "getcwd: cannot access parent directories" +msgstr "getwd: Kann nicht auf das übergeordnete Verzeichnis zugreifen." + +#: input.c:94 subst.c:4559 +#, c-format +msgid "cannot reset nodelay mode for fd %d" +msgstr "Konnte den No-Delay Modus für fd %d nicht wieder herstellen." + +#: input.c:258 +#, c-format +msgid "cannot allocate new file descriptor for bash input from fd %d" +msgstr "Kann keinen neuen Filedeskriptor für die Eingabe von fd %d zuweisen." + +# Debug Ausgabe +#: input.c:266 +#, fuzzy, c-format +msgid "save_bash_input: buffer already exists for new fd %d" +msgstr "check_bash_input: buffer already exists for new fd %d" + +#: jobs.c:466 +msgid "start_pipeline: pgrp pipe" +msgstr "start_pipeline: pgrp pipe" + +#: jobs.c:882 +#, c-format +msgid "forked pid %d appears in running job %d" +msgstr "" + +#: jobs.c:1000 +#, c-format +msgid "deleting stopped job %d with process group %ld" +msgstr "" + +#: jobs.c:1105 +#, c-format +msgid "add_process: process %5ld (%s) in the_pipeline" +msgstr "" + +#: jobs.c:1108 +#, c-format +msgid "add_process: pid %5ld (%s) marked as still alive" +msgstr "" + +# Programmierfehler +#: jobs.c:1396 +#, fuzzy, c-format +msgid "describe_pid: %ld: no such pid" +msgstr "describe_pid: Prozeß-Nummer existiert nicht (%d)!\n" + +#: jobs.c:1411 +#, c-format +msgid "Signal %d" +msgstr "Signal %d" + +#: jobs.c:1425 jobs.c:1450 +msgid "Done" +msgstr "Fertig" + +#: jobs.c:1430 siglist.c:122 +msgid "Stopped" +msgstr "Angehalten" + +#: jobs.c:1434 +#, c-format +msgid "Stopped(%s)" +msgstr "Angehalten(%s)" + +#: jobs.c:1438 +msgid "Running" +msgstr "Läuft" + +#: jobs.c:1452 +#, c-format +msgid "Done(%d)" +msgstr "Fertig(%d)" + +#: jobs.c:1454 +#, c-format +msgid "Exit %d" +msgstr "Exit %d" + +#: jobs.c:1457 +msgid "Unknown status" +msgstr "Unbekannter Status" + +#: jobs.c:1544 +#, c-format +msgid "(core dumped) " +msgstr "(Speicherabzug geschrieben) " + +#: jobs.c:1563 +#, c-format +msgid " (wd: %s)" +msgstr " (wd: %s)" + +# interner Fehler +#: jobs.c:1766 +#, c-format +msgid "child setpgid (%ld to %ld)" +msgstr "" + +#: jobs.c:2094 nojobs.c:576 +#, c-format +msgid "wait: pid %ld is not a child of this shell" +msgstr "wait: Prozeß %ld wurde nicht von dieser Shell gestartet." + +#: jobs.c:2321 +#, c-format +msgid "wait_for: No record of process %ld" +msgstr "" + +#: jobs.c:2593 +#, c-format +msgid "wait_for_job: job %d is stopped" +msgstr "" + +#: jobs.c:2815 +#, c-format +msgid "%s: job has terminated" +msgstr "%s: Programm ist beendet." + +#: jobs.c:2824 +#, c-format +msgid "%s: job %d already in background" +msgstr "" + +# Debug Ausgabe +#: jobs.c:3487 +#, c-format +msgid "%s: line %d: " +msgstr "%s: Zeile %d: " + +#: jobs.c:3501 nojobs.c:805 +#, c-format +msgid " (core dumped)" +msgstr " (Speicherabzug geschrieben)" + +#: jobs.c:3513 jobs.c:3526 +#, c-format +msgid "(wd now: %s)\n" +msgstr "(gegenwärtiges Arbeitsverzeichnis ist: %s)\n" + +# interner Fehler +#: jobs.c:3558 +msgid "initialize_job_control: getpgrp failed" +msgstr "initialize_jobs: getpgrp war nicht erfolgreich." + +# interner Fehler +#: jobs.c:3618 +msgid "initialize_job_control: line discipline" +msgstr "initialize_job_control: line discipline" + +# interner Fehler +#: jobs.c:3628 +msgid "initialize_job_control: setpgid" +msgstr "initialize_job_control: setpgid" + +#: jobs.c:3656 +#, c-format +msgid "cannot set terminal process group (%d)" +msgstr "" + +#: jobs.c:3661 +msgid "no job control in this shell" +msgstr "Keine Job Steuerung in dieser Shell." + +#: lib/malloc/malloc.c:296 +#, fuzzy, c-format +msgid "malloc: failed assertion: %s\n" +msgstr "malloc: Fehler bei Speicherzuweisung: %s\n" + +#: lib/malloc/malloc.c:312 +#, c-format +msgid "" +"\r\n" +"malloc: %s:%d: assertion botched\r\n" +msgstr "" + +#: lib/malloc/malloc.c:313 +msgid "unknown" +msgstr "Unbekannt" + +#: lib/malloc/malloc.c:797 +msgid "malloc: block on free list clobbered" +msgstr "" + +#: lib/malloc/malloc.c:874 +msgid "free: called with already freed block argument" +msgstr "" + +#: lib/malloc/malloc.c:877 +msgid "free: called with unallocated block argument" +msgstr "" + +#: lib/malloc/malloc.c:896 +msgid "free: underflow detected; mh_nbytes out of range" +msgstr "" + +#: lib/malloc/malloc.c:902 +msgid "free: start and end chunk sizes differ" +msgstr "" + +#: lib/malloc/malloc.c:1001 +msgid "realloc: called with unallocated block argument" +msgstr "" + +#: lib/malloc/malloc.c:1016 +msgid "realloc: underflow detected; mh_nbytes out of range" +msgstr "" + +#: lib/malloc/malloc.c:1022 +msgid "realloc: start and end chunk sizes differ" +msgstr "" + +#: lib/malloc/table.c:177 +#, c-format +msgid "register_alloc: alloc table is full with FIND_ALLOC?\n" +msgstr "" + +#: lib/malloc/table.c:184 +#, c-format +msgid "register_alloc: %p already in table as allocated?\n" +msgstr "" + +#: lib/malloc/table.c:220 +#, c-format +msgid "register_free: %p already in table as free?\n" +msgstr "" + +#: lib/sh/fmtulong.c:101 +msgid "invalid base" +msgstr "" + +#: lib/sh/netopen.c:168 +#, c-format +msgid "%s: host unknown" +msgstr "" + +#: lib/sh/netopen.c:175 +#, c-format +msgid "%s: invalid service" +msgstr "" + +#: lib/sh/netopen.c:306 +#, c-format +msgid "%s: bad network path specification" +msgstr "" + +#: lib/sh/netopen.c:346 +msgid "network operations not supported" +msgstr "" + +# Du oder Sie? +#: mailcheck.c:433 +msgid "You have mail in $_" +msgstr "Sie haben Post in $_." + +#: mailcheck.c:458 +msgid "You have new mail in $_" +msgstr "Sie haben neue Post in $_." + +#: mailcheck.c:474 +#, c-format +msgid "The mail in %s has been read\n" +msgstr "Die Post in %s wurde bereits gelesen.\n" + +#: make_cmd.c:322 +#, fuzzy +msgid "syntax error: arithmetic expression required" +msgstr "Syntaxfehler im Ausdruck." + +#: make_cmd.c:324 +#, fuzzy +msgid "syntax error: `;' unexpected" +msgstr "Syntax Fehler: Unerwartetes Dateiende." + +#: make_cmd.c:325 +#, fuzzy, c-format +msgid "syntax error: `((%s))'" +msgstr "Syntax Fehler" + +# interner Fehler +#: make_cmd.c:567 +#, c-format +msgid "make_here_document: bad instruction type %d" +msgstr "make_here_document: Falscher Befehlstyp %d." + +#: make_cmd.c:651 +#, c-format +msgid "here-document at line %d delimited by end-of-file (wanted `%s')" +msgstr "" + +#: make_cmd.c:746 +#, c-format +msgid "make_redirection: redirection instruction `%d' out of range" +msgstr "" + +#: parse.y:2986 parse.y:3218 +#, fuzzy, c-format +msgid "unexpected EOF while looking for matching `%c'" +msgstr "Dateiende beim Suchen nach `%c' erreicht." + +#: parse.y:3722 +#, fuzzy +msgid "unexpected EOF while looking for `]]'" +msgstr "Dateiende beim Suchen nach `%c' erreicht." + +#: parse.y:3727 +#, fuzzy, c-format +msgid "syntax error in conditional expression: unexpected token `%s'" +msgstr "Syntaxfehler beim unerwarteten Wort `%s'" + +#: parse.y:3731 +#, fuzzy +msgid "syntax error in conditional expression" +msgstr "Syntaxfehler im Ausdruck." + +#: parse.y:3809 +#, c-format +msgid "unexpected token `%s', expected `)'" +msgstr "" + +#: parse.y:3813 +#, fuzzy +msgid "expected `)'" +msgstr "`)' erwartet." + +#: parse.y:3841 +#, c-format +msgid "unexpected argument `%s' to conditional unary operator" +msgstr "" + +#: parse.y:3845 +msgid "unexpected argument to conditional unary operator" +msgstr "" + +#: parse.y:3885 +#, c-format +msgid "unexpected token `%s', conditional binary operator expected" +msgstr "" + +#: parse.y:3889 +msgid "conditional binary operator expected" +msgstr "" + +#: parse.y:3906 +#, c-format +msgid "unexpected argument `%s' to conditional binary operator" +msgstr "" + +#: parse.y:3910 +msgid "unexpected argument to conditional binary operator" +msgstr "" + +#: parse.y:3921 +#, c-format +msgid "unexpected token `%c' in conditional command" +msgstr "" + +#: parse.y:3924 +#, c-format +msgid "unexpected token `%s' in conditional command" +msgstr "" + +#: parse.y:3928 +#, c-format +msgid "unexpected token %d in conditional command" +msgstr "" + +#: parse.y:5195 +#, c-format +msgid "syntax error near unexpected token `%s'" +msgstr "Syntaxfehler beim unerwarteten Wort `%s'" + +#: parse.y:5213 +#, c-format +msgid "syntax error near `%s'" +msgstr "Syntaxfehler beim unerwarteten Wort `%s'" + +#: parse.y:5223 +msgid "syntax error: unexpected end of file" +msgstr "Syntax Fehler: Unerwartetes Dateiende." + +#: parse.y:5223 +msgid "syntax error" +msgstr "Syntax Fehler" + +# Du oder Sie? +#: parse.y:5285 +#, c-format +msgid "Use \"%s\" to leave the shell.\n" +msgstr "Benutze \"%s\" um die Shell zu verlassen.\n" + +#: parse.y:5447 +msgid "unexpected EOF while looking for matching `)'" +msgstr "Dateiende beim Suchen nach passender `)' erreicht." + +#: pcomplete.c:1016 +#, c-format +msgid "completion: function `%s' not found" +msgstr "" + +#: pcomplib.c:179 +#, c-format +msgid "progcomp_insert: %s: NULL COMPSPEC" +msgstr "" + +#: print_cmd.c:287 +#, c-format +msgid "print_command: bad connector `%d'" +msgstr "print_command: Falsches Verbindungszeichen `%d'." + +#: print_cmd.c:1347 +#, c-format +msgid "cprintf: `%c': invalid format character" +msgstr "" + +#: redir.c:105 +msgid "file descriptor out of range" +msgstr "" + +#: redir.c:148 +#, c-format +msgid "%s: ambiguous redirect" +msgstr "%s: Mehrdeutige Umlenkung." + +#: redir.c:152 +#, c-format +msgid "%s: cannot overwrite existing file" +msgstr "%s: Kann existierende Datei nicht überschreiben." + +#: redir.c:157 +#, c-format +msgid "%s: restricted: cannot redirect output" +msgstr "%s: Gesperrt: Die Ausgabe darf nicht umgeleitet werden." + +#: redir.c:162 +#, c-format +msgid "cannot create temp file for here-document: %s" +msgstr "" + +#: redir.c:517 +msgid "/dev/(tcp|udp)/host/port not supported without networking" +msgstr "" + +#: redir.c:1023 +msgid "redirection error: cannot duplicate fd" +msgstr "" + +#: shell.c:328 +msgid "could not find /tmp, please create!" +msgstr "Konnte das /tmp Verzeichnis nicht finden, bitte anlegen." + +#: shell.c:332 +msgid "/tmp must be a valid directory name" +msgstr "/tmp muß ein gültiger Verzeichnisname sein." + +#: shell.c:876 +#, c-format +msgid "%c%c: invalid option" +msgstr "%c%c: Ungültige Option" + +#: shell.c:1638 +msgid "I have no name!" +msgstr "Ich habe keinen Benutzernamen!" + +#: shell.c:1778 +#, c-format +msgid "GNU bash, version %s-(%s)\n" +msgstr "GNU bash, Version %s-(%s)\n" + +#: shell.c:1779 +#, c-format +msgid "" +"Usage:\t%s [GNU long option] [option] ...\n" +"\t%s [GNU long option] [option] script-file ...\n" +msgstr "" +"Benutzung:\t%s [Lange GNU Option] [Option] ...\n" +"\t\t%s [Lange GNU Option] [Option] Script-Datei ...\n" + +#: shell.c:1781 +msgid "GNU long options:\n" +msgstr "Lange GNU Optionen:\n" + +#: shell.c:1785 +msgid "Shell options:\n" +msgstr "Shell-Optionen:\n" + +#: shell.c:1786 +msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n" +msgstr "\t-irsD oder -c Kommando\t\t(Nur Aufruf)\n" + +#: shell.c:1801 +#, c-format +msgid "\t-%s or -o option\n" +msgstr "\t-%s oder Option -o\n" + +#: shell.c:1807 +#, c-format +msgid "Type `%s -c \"help set\"' for more information about shell options.\n" +msgstr "`%s -c \"help set\"' für mehr Informationen über Shell-Optionen.\n" + +#: shell.c:1808 +#, c-format +msgid "Type `%s -c help' for more information about shell builtin commands.\n" +msgstr "`%s -c help' für mehr Information über Shell-Kommandos.\n" + +#: shell.c:1809 +#, c-format +msgid "Use the `bashbug' command to report bugs.\n" +msgstr "Mit dem `bashbug' Kommando können Fehler gemeldet werden.\n" + +#: sig.c:583 +#, c-format +msgid "sigprocmask: %d: invalid operation" +msgstr "sigprocmask: %d: Ungültige Operation" + +#: siglist.c:47 +msgid "Bogus signal" +msgstr "Falsches Signal." + +#: siglist.c:50 +msgid "Hangup" +msgstr "Aufgelegt" + +#: siglist.c:54 +msgid "Interrupt" +msgstr "Unterbrochen" + +#: siglist.c:58 +msgid "Quit" +msgstr "Quit" + +#: siglist.c:62 +msgid "Illegal instruction" +msgstr "Ungültige Anweisung." + +# Was heisst das? +#: siglist.c:66 +#, fuzzy +msgid "BPT trace/trap" +msgstr "BPT trace/trap" + +#: siglist.c:74 +msgid "ABORT instruction" +msgstr "Abbruchkommando" + +#: siglist.c:78 +msgid "EMT instruction" +msgstr "EMT-Kommando" + +#: siglist.c:82 +msgid "Floating point exception" +msgstr "Gleitkommafehler" + +#: siglist.c:86 +msgid "Killed" +msgstr "Gekillt" + +#: siglist.c:90 +msgid "Bus error" +msgstr "Bus-Fehler" + +#: siglist.c:94 +msgid "Segmentation fault" +msgstr "Speicherzugriffsfehler" + +#: siglist.c:98 +msgid "Bad system call" +msgstr "Falscher Systemaufruf" + +#: siglist.c:102 +msgid "Broken pipe" +msgstr "Unterbrochene Pipe" + +#: siglist.c:106 +msgid "Alarm clock" +msgstr "Wecker" + +#: siglist.c:110 +msgid "Terminated" +msgstr "Beendet" + +#: siglist.c:114 +msgid "Urgent IO condition" +msgstr "Dringende IO-Bedingung" + +#: siglist.c:118 +msgid "Stopped (signal)" +msgstr "Angehalten (Signal)" + +#: siglist.c:126 +msgid "Continue" +msgstr "Prozeßbearbeitung wieder aufgenommen." + +#: siglist.c:134 +msgid "Child death or stop" +msgstr "Kindprozeß abgebrochen oder gestoppt." + +#: siglist.c:138 +msgid "Stopped (tty input)" +msgstr "Angehalten (Terminaleingabe)" + +#: siglist.c:142 +msgid "Stopped (tty output)" +msgstr "Angehalten (Terminalausgabe)" + +#: siglist.c:146 +msgid "I/O ready" +msgstr "E/A fertig" + +#: siglist.c:150 +msgid "CPU limit" +msgstr "Rechenzeitgrenze" + +#: siglist.c:154 +msgid "File limit" +msgstr "Grenze für Dateigröße" + +#: siglist.c:158 +msgid "Alarm (virtual)" +msgstr "Alarm (Virtuell)" + +#: siglist.c:162 +msgid "Alarm (profile)" +msgstr "Alarm (Profil)" + +#: siglist.c:166 +msgid "Window changed" +msgstr "Fenster geändert." + +#: siglist.c:170 +msgid "Record lock" +msgstr "Datei blockiert." + +#: siglist.c:174 +msgid "User signal 1" +msgstr "Nutzer-Signal 1" + +#: siglist.c:178 +msgid "User signal 2" +msgstr "Nutzer-Signal 2" + +#: siglist.c:182 +msgid "HFT input data pending" +msgstr "HFT Eingabedaten ausstehend." + +#: siglist.c:186 +msgid "power failure imminent" +msgstr "Spannungsausfall steht bevor." + +#: siglist.c:190 +msgid "system crash imminent" +msgstr "Systemausfall steht bevor." + +#: siglist.c:194 +msgid "migrate process to another CPU" +msgstr "Verlege den Prozeß auf einen anderen Prozessor." + +#: siglist.c:198 +msgid "programming error" +msgstr "Programmierfehler" + +#: siglist.c:202 +msgid "HFT monitor mode granted" +msgstr "HFT-Monitormodus erlaubt." + +#: siglist.c:206 +msgid "HFT monitor mode retracted" +msgstr "HFT-Monitormodus abgeschaltet." + +#: siglist.c:210 +msgid "HFT sound sequence has completed" +msgstr "HFT-Tonfolge beendet." + +#: siglist.c:214 +msgid "Information request" +msgstr "Informationsanforderung" + +#: siglist.c:222 +msgid "Unknown Signal #" +msgstr "Unbekannte Signalnummer." + +#: siglist.c:224 +#, c-format +msgid "Unknown Signal #%d" +msgstr "Unbekanntes Signal Nr.: %d." + +#: subst.c:1181 subst.c:1302 +#, c-format +msgid "bad substitution: no closing `%s' in %s" +msgstr "Falsche Ersetzung: Keine schließende `%s' in `%s' enthalten." + +#: subst.c:2458 +#, c-format +msgid "%s: cannot assign list to array member" +msgstr "%s: Kann einem Feldelement keine Liste zuweisen." + +#: subst.c:4456 subst.c:4472 +msgid "cannot make pipe for process substitution" +msgstr "Kann keine Pipe für die Prozeßersetzung erzeugen." + +#: subst.c:4504 +msgid "cannot make child for process substitution" +msgstr "" + +#: subst.c:4549 +#, c-format +msgid "cannot open named pipe %s for reading" +msgstr "Kann nicht die benannte Pipe %s zum lesen öffnen." + +#: subst.c:4551 +#, c-format +msgid "cannot open named pipe %s for writing" +msgstr "Kann nicht die benannte Pipe %s zum schreiben öffnen." + +#: subst.c:4569 +#, c-format +msgid "cannot duplicate named pipe %s as fd %d" +msgstr "Kann die benannte Pipe %s nicht auf fd %d." + +#: subst.c:4765 +msgid "cannot make pipe for command substitution" +msgstr "Kann keine Pipes für Kommandoersetzung erzeugen." + +#: subst.c:4799 +msgid "cannot make child for command substitution" +msgstr "Kann keinen Unterprozess für die Kommandoersetzung erzeugen." + +# interner Fehler +#: subst.c:4816 +msgid "command_substitute: cannot duplicate pipe as fd 1" +msgstr "Kommandoersetzung: Kann Pipe nicht als fd 1 duplizieren." + +#: subst.c:5318 +#, c-format +msgid "%s: parameter null or not set" +msgstr "%s: Parameter ist Null oder nicht gesetzt." + +# interner Fehler +#: subst.c:5608 +#, c-format +msgid "%s: substring expression < 0" +msgstr "%s: Teilstring-Ausdruck < 0." + +#: subst.c:6660 +#, c-format +msgid "%s: bad substitution" +msgstr "%s: Falsche Variablenersetzung." + +#: subst.c:6740 +#, c-format +msgid "$%s: cannot assign in this way" +msgstr "$%s: Kann so nicht zuweisen." + +#: subst.c:7479 +#, c-format +msgid "bad substitution: no closing \"`\" in %s" +msgstr "Falsche Ersetzung: Keine schließende \"`\" in %s." + +#: subst.c:8354 +#, c-format +msgid "no match: %s" +msgstr "Keine Entsprechung: %s" + +#: test.c:145 +msgid "argument expected" +msgstr "Argument erwartet." + +#: test.c:154 +#, c-format +msgid "%s: integer expression expected" +msgstr "%s: Ganzzahliger Ausdruck erwartet." + +#: test.c:262 +msgid "`)' expected" +msgstr "`)' erwartet." + +#: test.c:264 +#, c-format +msgid "`)' expected, found %s" +msgstr "`)' erwartet, %s gefunden." + +#: test.c:279 test.c:688 test.c:691 +#, c-format +msgid "%s: unary operator expected" +msgstr "%s: Einstelliger (unärer) Operator erwartet." + +#: test.c:444 test.c:731 +#, c-format +msgid "%s: binary operator expected" +msgstr "%s: Zweistelliger (binärer) Operator erwartet." + +#: test.c:806 +msgid "missing `]'" +msgstr "Fehlende `]'" + +#: trap.c:201 +msgid "invalid signal number" +msgstr "Ungültige Signalnummer." + +#: trap.c:324 +#, c-format +msgid "run_pending_traps: bad value in trap_list[%d]: %p" +msgstr "" + +#: trap.c:328 +#, c-format +msgid "" +"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself" +msgstr "" + +# Programmierfehler +#: trap.c:372 +#, c-format +msgid "trap_handler: bad signal %d" +msgstr "trap_handler: Falsches Signal %d." + +#: variables.c:358 +#, c-format +msgid "error importing function definition for `%s'" +msgstr "Fehler beim Importieren der Funktionsdefinition für `%s'." + +#: variables.c:736 +#, c-format +msgid "shell level (%d) too high, resetting to 1" +msgstr "" + +#: variables.c:1898 +msgid "make_local_variable: no function context at current scope" +msgstr "" + +#: variables.c:3127 +msgid "all_local_variables: no function context at current scope" +msgstr "" + +#: variables.c:3344 variables.c:3353 +#, c-format +msgid "invalid character %d in exportstr for %s" +msgstr "" + +#: variables.c:3359 +#, c-format +msgid "no `=' in exportstr for %s" +msgstr "" + +#: variables.c:3794 +msgid "pop_var_context: head of shell_variables not a function context" +msgstr "" + +#: variables.c:3807 +msgid "pop_var_context: no global_variables context" +msgstr "" + +#: variables.c:3881 +msgid "pop_scope: head of shell_variables not a temporary environment scope" +msgstr "" + +#: version.c:46 +#, fuzzy +msgid "Copyright (C) 2009 Free Software Foundation, Inc." +msgstr "Copyright (C) 2008 Free Software Foundation, Inc." + +#: version.c:47 +msgid "" +"License GPLv3+: GNU GPL version 3 or later \n" +msgstr "" +"Lizenz GPLv3+: GNU GPL Version 3 oder jünger \n" + +#: version.c:86 +#, c-format +msgid "GNU bash, version %s (%s)\n" +msgstr "GNU bash, Version %s (%s)\n" + +#: version.c:91 +#, c-format +msgid "This is free software; you are free to change and redistribute it.\n" +msgstr "Dies ist freie Software. Sie darf verändert und verteilt werden.\n" + +#: version.c:92 +#, c-format +msgid "There is NO WARRANTY, to the extent permitted by law.\n" +msgstr "Für dieses Programm besteht keinerlei Garantie.\n" + +#: xmalloc.c:92 +#, c-format +msgid "xmalloc: cannot allocate %lu bytes (%lu bytes allocated)" +msgstr "xmalloc: Kann %lu Bytes nicht reservieren (%lu bytes reserviert)." + +#: xmalloc.c:94 +#, c-format +msgid "xmalloc: cannot allocate %lu bytes" +msgstr "xmalloc: Kann nicht %lu Bytes reservieren." + +#: xmalloc.c:114 +#, c-format +msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)" +msgstr "xrealloc: Kann %lu Bytes nicht reservieren (%lu bytes reserviert)." + +#: xmalloc.c:116 +#, c-format +msgid "xrealloc: cannot allocate %lu bytes" +msgstr "xrealloc: Kann nicht %lu Bytes reservieren." + +#: xmalloc.c:150 +#, c-format +msgid "xmalloc: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)" +msgstr "" +"xmalloc: %s:%d: Kann nicht %lu Bytes reservieren (%lu bytes reserviert)." + +#: xmalloc.c:152 +#, c-format +msgid "xmalloc: %s:%d: cannot allocate %lu bytes" +msgstr "xmalloc: %s:%d: Kann nicht %lu Bytes reservieren." + +#: xmalloc.c:174 +#, c-format +msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)" +msgstr "" +"xrealloc: %s:%d: Kann nicht %lu Bytes reservieren (%lu bytes reserviert)." + +#: xmalloc.c:176 +#, c-format +msgid "xrealloc: %s:%d: cannot allocate %lu bytes" +msgstr "xrealloc: %s:%d: Kann nicht %lu Bytes reservieren." + +#: builtins.c:43 +msgid "alias [-p] [name[=value] ... ]" +msgstr "alias [-p] [Name[=Wert] ... ]" + +#: builtins.c:47 +msgid "unalias [-a] name [name ...]" +msgstr "unalias [-a] Name [Name ...]" + +#: builtins.c:51 +msgid "" +"bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-" +"x keyseq:shell-command] [keyseq:readline-function or readline-command]" +msgstr "" +"bind [-lpvsPVS] [-m Tastaturtabelle] [-f Dateiname] [-q Name] [-u Name] [-r " +"Tastenfolge:Shell Kommando] [Tastenfolge:readline Funktion oder Kommando]" + +#: builtins.c:54 +msgid "break [n]" +msgstr "break [n]" + +#: builtins.c:56 +msgid "continue [n]" +msgstr "continue [n]" + +#: builtins.c:58 +msgid "builtin [shell-builtin [arg ...]]" +msgstr "builtin [Shellkommando [Argument ...]]" + +#: builtins.c:61 +msgid "caller [expr]" +msgstr "caller [Ausdruck]" + +#: builtins.c:64 +msgid "cd [-L|-P] [dir]" +msgstr "cd [-L|-P] [Verzeichnis]" + +#: builtins.c:66 +msgid "pwd [-LP]" +msgstr "pwd [-LP]" + +#: builtins.c:68 +msgid ":" +msgstr ":" + +#: builtins.c:70 +msgid "true" +msgstr "Wahr" + +#: builtins.c:72 +msgid "false" +msgstr "Falsch" + +#: builtins.c:74 +msgid "command [-pVv] command [arg ...]" +msgstr "command [-pVv] Kommando [Argument ...]" + +#: builtins.c:76 +msgid "declare [-aAfFilrtux] [-p] [name[=value] ...]" +msgstr "declare [-aAfFilrtux] [-p] [Name[=Wert] ...]" + +# +#: builtins.c:78 +msgid "typeset [-aAfFilrtux] [-p] name[=value] ..." +msgstr "typeset [-aAfFilrtux] [-p] Name[=Wert] ..." + +#: builtins.c:80 +msgid "local [option] name[=value] ..." +msgstr "local [Option] Name[=Wert] ..." + +#: builtins.c:83 +msgid "echo [-neE] [arg ...]" +msgstr "echo [-neE] [Argument ...]" + +#: builtins.c:87 +msgid "echo [-n] [arg ...]" +msgstr "echo [-n] [Argument ...]" + +#: builtins.c:90 +msgid "enable [-a] [-dnps] [-f filename] [name ...]" +msgstr "enable [-a] [-dnps] [-f Dateiname] [Name ...]" + +#: builtins.c:92 +msgid "eval [arg ...]" +msgstr "eval [Argument ...]" + +#: builtins.c:94 +msgid "getopts optstring name [arg]" +msgstr "getopts Optionen Variable [Argumente]" + +#: builtins.c:96 +msgid "exec [-cl] [-a name] [command [arguments ...]] [redirection ...]" +msgstr "exec [-cl] [-a Name] [Kommando [Argumente ...]] [Umleitung ...]" + +#: builtins.c:98 +msgid "exit [n]" +msgstr "exit [n]" + +#: builtins.c:100 +msgid "logout [n]" +msgstr "logout [n]" + +#: builtins.c:103 +msgid "fc [-e ename] [-lnr] [first] [last] or fc -s [pat=rep] [command]" +msgstr "" +"fc [-e Editor] [-lnr] [Anfang] [Ende] oder fc -s [Muster=Ersetzung] " +"[Kommando]" + +#: builtins.c:107 +msgid "fg [job_spec]" +msgstr "fg [Jobbezeichnung]" + +#: builtins.c:111 +msgid "bg [job_spec ...]" +msgstr "bg [Jobbezeichnung ...]" + +#: builtins.c:114 +msgid "hash [-lr] [-p pathname] [-dt] [name ...]" +msgstr "hash [-lr] [-p Pfadname] [-dt] [Name ...]" + +#: builtins.c:117 +msgid "help [-ds] [pattern ...]" +msgstr "help [-ds] [Muster ...]" + +#: builtins.c:121 +msgid "" +"history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg " +"[arg...]" +msgstr "" +"history [-c] [-d Offset] [n] oder history -anrw [Dateiname] oder history -ps " +"Argument [Argument...]" + +#: builtins.c:125 +msgid "jobs [-lnprs] [jobspec ...] or jobs -x command [args]" +msgstr "jobs [-lnprs] [Jobbez. ...] or jobs -x Kommando [Arg]" + +#: builtins.c:129 +msgid "disown [-h] [-ar] [jobspec ...]" +msgstr "disown [-h] [-ar] [Jobbezeichnung ...]" + +#: builtins.c:132 +msgid "" +"kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l " +"[sigspec]" +msgstr "" +"kill [-s Signalname | -n Signalnummer | -Signalname] [pid | job] ... oder " +"kill -l [Signalname]" + +#: builtins.c:134 +msgid "let arg [arg ...]" +msgstr "let Argument [Argument ...]" + +#: builtins.c:136 +msgid "" +"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-p prompt] [-t " +"timeout] [-u fd] [name ...]" +msgstr "" +"read [-ers] [-a Feld] [-d Begrenzer] [-i Text] [-n Zeichenanzahl] [-p " +"Prompt] [-t Zeitlimit] [-u fd] [Name ...]" + +#: builtins.c:138 +msgid "return [n]" +msgstr "return [n]" + +#: builtins.c:140 +msgid "set [--abefhkmnptuvxBCHP] [-o option-name] [arg ...]" +msgstr "set [--abefhkmnptuvxBCHP] [-o Option] [ARG ...]" + +#: builtins.c:142 +msgid "unset [-f] [-v] [name ...]" +msgstr "unset [-f] [-v] [NAME ...]" + +#: builtins.c:144 +msgid "export [-fn] [name[=value] ...] or export -p" +msgstr "export [-fn] [Name[=Wert] ...] oder export -p" + +#: builtins.c:146 +msgid "readonly [-af] [name[=value] ...] or readonly -p" +msgstr "readonly [-af] [Name[=Wert] ...] oder readonly -p" + +#: builtins.c:148 +msgid "shift [n]" +msgstr "shift [n]" + +#: builtins.c:150 +msgid "source filename [arguments]" +msgstr "source Dateiname [Argumente]" + +#: builtins.c:152 +msgid ". filename [arguments]" +msgstr ". Dateiname [Argumente]" + +#: builtins.c:155 +msgid "suspend [-f]" +msgstr "suspend [-f]" + +#: builtins.c:158 +msgid "test [expr]" +msgstr "test [Ausdruck]" + +#: builtins.c:160 +msgid "[ arg... ]" +msgstr "[ Argument... ]" + +#: builtins.c:162 +msgid "times" +msgstr "times" + +#: builtins.c:164 +msgid "trap [-lp] [[arg] signal_spec ...]" +msgstr "trap [-lp] [[Argument] Signalbezeichnung ...]" + +#: builtins.c:166 +msgid "type [-afptP] name [name ...]" +msgstr "type [-afptP] Name [Name ...]" + +#: builtins.c:169 +msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]" +msgstr "ulimit [-SHacdefilmnpqrstuvx] [Grenzwert]" + +#: builtins.c:172 +msgid "umask [-p] [-S] [mode]" +msgstr "umask [-p] [-S] [Modus]" + +#: builtins.c:175 +msgid "wait [id]" +msgstr "wait [id]" + +#: builtins.c:179 +msgid "wait [pid]" +msgstr "wait [pid]" + +#: builtins.c:182 +msgid "for NAME [in WORDS ... ] ; do COMMANDS; done" +msgstr "for Name [in Wortliste ... ] ; do Kommandos; done" + +#: builtins.c:184 +msgid "for (( exp1; exp2; exp3 )); do COMMANDS; done" +msgstr "for (( Ausdr1; Ausdr2; Ausdr3 )); do Kommandos; done" + +#: builtins.c:186 +msgid "select NAME [in WORDS ... ;] do COMMANDS; done" +msgstr "select Name [in Wortliste ... ;] do Kommandos; done" + +#: builtins.c:188 +msgid "time [-p] pipeline" +msgstr "" + +#: builtins.c:190 +msgid "case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac" +msgstr "case Wort in [Muster [| Muster]...) Kommandos ;;]... esac" + +#: builtins.c:192 +msgid "" +"if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else " +"COMMANDS; ] fi" +msgstr "" +"if Kommandos; then Kommandos; [ elif Kommandos; then Kommandos; ]... \n" +"\t[ else Kommandos; ] fi" + +#: builtins.c:194 +msgid "while COMMANDS; do COMMANDS; done" +msgstr "while Kommandos; do Kommandos; done" + +#: builtins.c:196 +msgid "until COMMANDS; do COMMANDS; done" +msgstr "until Kommandos; do Kommandos; done" + +#: builtins.c:198 +msgid "function name { COMMANDS ; } or name () { COMMANDS ; }" +msgstr "function Name { Kommandos ; } oder Name () { Kommandos ; }" + +#: builtins.c:200 +msgid "{ COMMANDS ; }" +msgstr "{ Kommandos ; }" + +#: builtins.c:202 +msgid "job_spec [&]" +msgstr "Jobbezeichnung [&]" + +#: builtins.c:204 +msgid "(( expression ))" +msgstr "(( Ausdruck ))" + +#: builtins.c:206 +msgid "[[ expression ]]" +msgstr "[[ Ausdruck ]]" + +#: builtins.c:208 +msgid "variables - Names and meanings of some shell variables" +msgstr "variables - Namen und Bedeutung einiger Shell Variablen" + +#: builtins.c:211 +msgid "pushd [-n] [+N | -N | dir]" +msgstr "pushd [-n] [+N | -N | Verzeichnis]" + +#: builtins.c:215 +msgid "popd [-n] [+N | -N]" +msgstr "popd [-n] [+N | -N]" + +#: builtins.c:219 +msgid "dirs [-clpv] [+N] [-N]" +msgstr "dirs [-clpv] [+N] [-N]" + +#: builtins.c:222 +msgid "shopt [-pqsu] [-o] [optname ...]" +msgstr "shopt [-pqsu] [-o] [Optionsname ...]" + +#: builtins.c:224 +msgid "printf [-v var] format [arguments]" +msgstr "printf [-v var] Format [Argumente]" + +#: builtins.c:227 +msgid "" +"complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W " +"wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] " +"[name ...]" +msgstr "" +"complete [-abcdefgjksuv] [-pr] [-o Option] [-A Aktion] [-G Suchmuster] [-W " +"Wortliste] [-F Funktion] [-C Kommando] [-X Filtermuster] [-P Prefix] [-S " +"Suffix] [Name ...]" + +#: builtins.c:231 +msgid "" +"compgen [-abcdefgjksuv] [-o option] [-A action] [-G globpat] [-W wordlist] " +"[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]" +msgstr "" +"compgen [-abcdefgjksuv] [-o Option] [-A Aktion] [-G Suchmuster] [-W " +"Wortliste] [-F Funktion] [-C Kommando] [-X Filtermuster] [-P Prefix] [-S " +"Suffix] [Wort]" + +#: builtins.c:235 +msgid "compopt [-o|+o option] [name ...]" +msgstr "compopt [-o|+o Option] [Name ...]" + +#: builtins.c:238 +msgid "" +"mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c " +"quantum] [array]" +msgstr "" + +#: builtins.c:250 +msgid "" +"Define or display aliases.\n" +" \n" +" Without arguments, `alias' prints the list of aliases in the reusable\n" +" form `alias NAME=VALUE' on standard output.\n" +" \n" +" Otherwise, an alias is defined for each NAME whose VALUE is given.\n" +" A trailing space in VALUE causes the next word to be checked for\n" +" alias substitution when the alias is expanded.\n" +" \n" +" Options:\n" +" -p\tPrint all defined aliases in a reusable format\n" +" \n" +" Exit Status:\n" +" alias returns true unless a NAME is supplied for which no alias has " +"been\n" +" defined." +msgstr "" +"Definiert Aliase oder zeigt sie an.\n" +" \n" +" Ohne Argumente wird die Liste der Aliase (Synonyme) in der Form \n" +" `alias Name=Wert' auf die Standardausgabe gedruckt.\n" +"\n" +" Sonst wird ein Alias für jeden angegebenen Namen definiert, für den ein\n" +" Wert angegeben wurde. \n" +" A trailing space in VALUE causes the next word to be checked for\n" +" alias substitution when the alias is expanded.\n" +" \n" +" Options:\n" +" -p\tPrint all defined aliases in a reusable format\n" +" \n" +" Rückgabewert:\n" +" Meldet Erfolg, außer wenn NAME nicht existiert." + +#: builtins.c:272 +msgid "" +"Remove each NAME from the list of defined aliases.\n" +" \n" +" Options:\n" +" -a\tremove all alias definitions.\n" +" \n" +" Return success unless a NAME is not an existing alias." +msgstr "" +"Entferne jeden Namen von der Aliasliste.\n" +" \n" +" Optionen:\n" +" -a\tEnferne alle Alias Definitionen.\n" +" \n" +" Gibt immer Erfolg zurück, wenn der Name existiert." + +#: builtins.c:285 +msgid "" +"Set Readline key bindings and variables.\n" +" \n" +" Bind a key sequence to a Readline function or a macro, or set a\n" +" Readline variable. The non-option argument syntax is equivalent to\n" +" that found in ~/.inputrc, but must be passed as a single argument:\n" +" e.g., bind '\"\\C-x\\C-r\": re-read-init-file'.\n" +" \n" +" Options:\n" +" -m keymap Use KEYMAP as the keymap for the duration of this\n" +" command. Acceptable keymap names are emacs,\n" +" emacs-standard, emacs-meta, emacs-ctlx, vi, vi-" +"move,\n" +" vi-command, and vi-insert.\n" +" -l List names of functions.\n" +" -P List function names and bindings.\n" +" -p List functions and bindings in a form that can be\n" +" reused as input.\n" +" -S List key sequences that invoke macros and their " +"values\n" +" -s List key sequences that invoke macros and their " +"values\n" +" in a form that can be reused as input.\n" +" -V List variable names and values\n" +" -v List variable names and values in a form that can\n" +" be reused as input.\n" +" -q function-name Query about which keys invoke the named function.\n" +" -u function-name Unbind all keys which are bound to the named " +"function.\n" +" -r keyseq Remove the binding for KEYSEQ.\n" +" -f filename Read key bindings from FILENAME.\n" +" -x keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n" +" \t\t\t\tKEYSEQ is entered.\n" +" \n" +" Exit Status:\n" +" bind returns 0 unless an unrecognized option is given or an error occurs." +msgstr "" + +#: builtins.c:322 +msgid "" +"Exit for, while, or until loops.\n" +" \n" +" Exit a FOR, WHILE or UNTIL loop. If N is specified, break N enclosing\n" +" loops.\n" +" \n" +" Exit Status:\n" +" The exit status is 0 unless N is not greater than or equal to 1." +msgstr "" +"Beendet for, while oder until Schleifen.\n" +" \n" +" Break beendet eine FOR, WHILE oder UNTIL Schleife. Wenn N angegeben " +"ist, werden N geschachtelte\n" +" Schleifen beendet.\n" +" \n" +" Rückgabewert:\n" +" Der Rückgabewert ist 0, es sei den N ist größer oder gleich 1." + +#: builtins.c:334 +msgid "" +"Resume for, while, or until loops.\n" +" \n" +" Resumes the next iteration of the enclosing FOR, WHILE or UNTIL loop.\n" +" If N is specified, resumes the Nth enclosing loop.\n" +" \n" +" Exit Status:\n" +" The exit status is 0 unless N is not greater than or equal to 1." +msgstr "" +"Springt zum Schleifenanfang von for, while, oder until Schleifen.\n" +" \n" +" Continoue springt zum Schleifenanfang der aktuellen FOR, WHILE oder " +"UNTIL \n" +" Schleife. Wenn N angegeben ist, werden N wird zum Beginn der N-ten\n" +" übergeordneten Schleife gesprungen.\n" +" \n" +" Rückgabewert:\n" +" Der Rückgabewert ist 0, außer wenn N größer oder gleich 1 ist." + +#: builtins.c:346 +msgid "" +"Execute shell builtins.\n" +" \n" +" Execute SHELL-BUILTIN with arguments ARGs without performing command\n" +" lookup. This is useful when you wish to reimplement a shell builtin\n" +" as a shell function, but need to execute the builtin within the " +"function.\n" +" \n" +" Exit Status:\n" +" Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is\n" +" not a shell builtin.." +msgstr "" + +#: builtins.c:361 +msgid "" +"Return the context of the current subroutine call.\n" +" \n" +" Without EXPR, returns \"$line $filename\". With EXPR, returns\n" +" \"$line $subroutine $filename\"; this extra information can be used to\n" +" provide a stack trace.\n" +" \n" +" The value of EXPR indicates how many call frames to go back before the\n" +" current one; the top frame is frame 0.\n" +" \n" +" Exit Status:\n" +" Returns 0 unless the shell is not executing a shell function or EXPR\n" +" is invalid." +msgstr "" + +#: builtins.c:379 +msgid "" +"Change the shell working directory.\n" +" \n" +" Change the current directory to DIR. The default DIR is the value of " +"the\n" +" HOME shell variable.\n" +" \n" +" The variable CDPATH defines the search path for the directory " +"containing\n" +" DIR. Alternative directory names in CDPATH are separated by a colon " +"(:).\n" +" A null directory name is the same as the current directory. If DIR " +"begins\n" +" with a slash (/), then CDPATH is not used.\n" +" \n" +" If the directory is not found, and the shell option `cdable_vars' is " +"set,\n" +" the word is assumed to be a variable name. If that variable has a " +"value,\n" +" its value is used for DIR.\n" +" \n" +" Options:\n" +" -L\tforce symbolic links to be followed\n" +" -P\tuse the physical directory structure without following symbolic\n" +" \tlinks\n" +" \n" +" The default is to follow symbolic links, as if `-L' were specified.\n" +" \n" +" Exit Status:\n" +" Returns 0 if the directory is changed; non-zero otherwise." +msgstr "" + +#: builtins.c:407 +msgid "" +"Print the name of the current working directory.\n" +" \n" +" Options:\n" +" -L\tprint the value of $PWD if it names the current working\n" +" \tdirectory\n" +" -P\tprint the physical directory, without any symbolic links\n" +" \n" +" By default, `pwd' behaves as if `-L' were specified.\n" +" \n" +" Exit Status:\n" +" Returns 0 unless an invalid option is given or the current directory\n" +" cannot be read." +msgstr "" +"Gibt den Namen des aktuellen Arbeitsverzeichnis aus.\n" +" \n" +" Optionen:\n" +" -L\tGibt den Wert der $PWD Umgebungsvariable aus, wenn diese\n" +"\tauf das aktuelle Arbeitsverzeichnis verweist.\n" +"\n" +" -P\tGibt den wirklichen Verzeichnisnahen aus, ohne symbolische " +"Verweise.\n" +" \n" +" Standardmäßig wird die -L Option verwendet.\n" +" \n" +" Rückgabewert:\n" +" Der Rückgabewert ist 0, außer wenn eine ungültige Option angegeben oder " +"das aktuelle\n" +" Verzeichnis nicht gelesen werden kann." + +# colon +#: builtins.c:424 +msgid "" +"Null command.\n" +" \n" +" No effect; the command does nothing.\n" +" \n" +" Exit Status:\n" +" Always succeeds." +msgstr "" +"Leeranweisung.\n" +"\n" +" Leeranweisung; das Kommando hat keine Wirkung.\n" +"\n" +" Rückgabewert:\n" +" Das Kommando ist immer erfolgreich." + +#: builtins.c:435 +msgid "" +"Return a successful result.\n" +" \n" +" Exit Status:\n" +" Always succeeds." +msgstr "" + +#: builtins.c:444 +msgid "" +"Return an unsuccessful result.\n" +" \n" +" Exit Status:\n" +" Always fails." +msgstr "" + +#: builtins.c:453 +msgid "" +"Execute a simple command or display information about commands.\n" +" \n" +" Runs COMMAND with ARGS suppressing shell function lookup, or display\n" +" information about the specified COMMANDs. Can be used to invoke " +"commands\n" +" on disk when a function with the same name exists.\n" +" \n" +" Options:\n" +" -p\tuse a default value for PATH that is guaranteed to find all of\n" +" \tthe standard utilities\n" +" -v\tprint a description of COMMAND similar to the `type' builtin\n" +" -V\tprint a more verbose description of each COMMAND\n" +" \n" +" Exit Status:\n" +" Returns exit status of COMMAND, or failure if COMMAND is not found." +msgstr "" + +#: builtins.c:472 +msgid "" +"Set variable values and attributes.\n" +" \n" +" Declare variables and give them attributes. If no NAMEs are given,\n" +" display the attributes and values of all variables.\n" +" \n" +" Options:\n" +" -f\trestrict action or display to function names and definitions\n" +" -F\trestrict display to function names only (plus line number and\n" +" \tsource file when debugging)\n" +" -p\tdisplay the attributes and value of each NAME\n" +" \n" +" Options which set attributes:\n" +" -a\tto make NAMEs indexed arrays (if supported)\n" +" -A\tto make NAMEs associative arrays (if supported)\n" +" -i\tto make NAMEs have the `integer' attribute\n" +" -l\tto convert NAMEs to lower case on assignment\n" +" -r\tto make NAMEs readonly\n" +" -t\tto make NAMEs have the `trace' attribute\n" +" -u\tto convert NAMEs to upper case on assignment\n" +" -x\tto make NAMEs export\n" +" \n" +" Using `+' instead of `-' turns off the given attribute.\n" +" \n" +" Variables with the integer attribute have arithmetic evaluation (see\n" +" the `let' command) performed when the variable is assigned a value.\n" +" \n" +" When used in a function, `declare' makes NAMEs local, as with the " +"`local'\n" +" command.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" + +#: builtins.c:508 +msgid "" +"Set variable values and attributes.\n" +" \n" +" Obsolete. See `help declare'." +msgstr "" +"Setzt Variablen Werte und Eigenschaften\n" +"\n" +" Veraltet. Siehe `help declare'." + +#: builtins.c:516 +msgid "" +"Define local variables.\n" +" \n" +" Create a local variable called NAME, and give it VALUE. OPTION can\n" +" be any option accepted by `declare'.\n" +" \n" +" Local variables can only be used within a function; they are visible\n" +" only to the function where they are defined and its children.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied, an error occurs,\n" +" or the shell is not executing a function." +msgstr "" +"Definiert lokale Vatiablen.\n" +" \n" +" Erzeugt eine Lokale Variable NAME und weist ihr den Wert VALUE zu. " +"OPTION\n" +" kann eine beliebige von `declare' akzeptierte Option sein.\n" +"\n" +" Lokale Variablen können nur innerhalb einer Funktion benutzt werden. " +"Sie\n" +" sind nur in der sie erzeugenden Funktion und ihren Kindern " +"sichtbar. \n" +" \n" +" Rückgabewert:\n" +" Liefert \"Erfolg\" außer bei einer ungültigen Option, einem Fehler oder\n" +" die Shell führt keine Funktion aus." + +#: builtins.c:533 +msgid "" +"Write arguments to the standard output.\n" +" \n" +" Display the ARGs on the standard output followed by a newline.\n" +" \n" +" Options:\n" +" -n\tdo not append a newline\n" +" -e\tenable interpretation of the following backslash escapes\n" +" -E\texplicitly suppress interpretation of backslash escapes\n" +" \n" +" `echo' interprets the following backslash-escaped characters:\n" +" \\a\talert (bell)\n" +" \\b\tbackspace\n" +" \\c\tsuppress further output\n" +" \\e\tescape character\n" +" \\f\tform feed\n" +" \\n\tnew line\n" +" \\r\tcarriage return\n" +" \\t\thorizontal tab\n" +" \\v\tvertical tab\n" +" \\\\\tbackslash\n" +" \\0nnn\tthe character whose ASCII code is NNN (octal). NNN can be\n" +" \t0 to 3 octal digits\n" +" \\xHH\tthe eight-bit character whose value is HH (hexadecimal). HH\n" +" \tcan be one or two hex digits\n" +" \n" +" Exit Status:\n" +" Returns success unless a write error occurs." +msgstr "" + +#: builtins.c:567 +msgid "" +"Write arguments to the standard output.\n" +" \n" +" Display the ARGs on the standard output followed by a newline.\n" +" \n" +" Options:\n" +" -n\tdo not append a newline\n" +" \n" +" Exit Status:\n" +" Returns success unless a write error occurs." +msgstr "" + +#: builtins.c:582 +msgid "" +"Enable and disable shell builtins.\n" +" \n" +" Enables and disables builtin shell commands. Disabling allows you to\n" +" execute a disk command which has the same name as a shell builtin\n" +" without using a full pathname.\n" +" \n" +" Options:\n" +" -a\tprint a list of builtins showing whether or not each is enabled\n" +" -n\tdisable each NAME or display a list of disabled builtins\n" +" -p\tprint the list of builtins in a reusable format\n" +" -s\tprint only the names of Posix `special' builtins\n" +" \n" +" Options controlling dynamic loading:\n" +" -f\tLoad builtin NAME from shared object FILENAME\n" +" -d\tRemove a builtin loaded with -f\n" +" \n" +" Without options, each NAME is enabled.\n" +" \n" +" To use the `test' found in $PATH instead of the shell builtin\n" +" version, type `enable -n test'.\n" +" \n" +" Exit Status:\n" +" Returns success unless NAME is not a shell builtin or an error occurs." +msgstr "" + +#: builtins.c:610 +msgid "" +"Execute arguments as a shell command.\n" +" \n" +" Combine ARGs into a single string, use the result as input to the " +"shell,\n" +" and execute the resulting commands.\n" +" \n" +" Exit Status:\n" +" Returns exit status of command or success if command is null." +msgstr "" + +#: builtins.c:622 +msgid "" +"Parse option arguments.\n" +" \n" +" Getopts is used by shell procedures to parse positional parameters\n" +" as options.\n" +" \n" +" OPTSTRING contains the option letters to be recognized; if a letter\n" +" is followed by a colon, the option is expected to have an argument,\n" +" which should be separated from it by white space.\n" +" \n" +" Each time it is invoked, getopts will place the next option in the\n" +" shell variable $name, initializing name if it does not exist, and\n" +" the index of the next argument to be processed into the shell\n" +" variable OPTIND. OPTIND is initialized to 1 each time the shell or\n" +" a shell script is invoked. When an option requires an argument,\n" +" getopts places that argument into the shell variable OPTARG.\n" +" \n" +" getopts reports errors in one of two ways. If the first character\n" +" of OPTSTRING is a colon, getopts uses silent error reporting. In\n" +" this mode, no error messages are printed. If an invalid option is\n" +" seen, getopts places the option character found into OPTARG. If a\n" +" required argument is not found, getopts places a ':' into NAME and\n" +" sets OPTARG to the option character found. If getopts is not in\n" +" silent mode, and an invalid option is seen, getopts places '?' into\n" +" NAME and unsets OPTARG. If a required argument is not found, a '?'\n" +" is placed in NAME, OPTARG is unset, and a diagnostic message is\n" +" printed.\n" +" \n" +" If the shell variable OPTERR has the value 0, getopts disables the\n" +" printing of error messages, even if the first character of\n" +" OPTSTRING is not a colon. OPTERR has the value 1 by default.\n" +" \n" +" Getopts normally parses the positional parameters ($0 - $9), but if\n" +" more arguments are given, they are parsed instead.\n" +" \n" +" Exit Status:\n" +" Returns success if an option is found; fails if the end of options is\n" +" encountered or an error occurs." +msgstr "" + +#: builtins.c:664 +msgid "" +"Replace the shell with the given command.\n" +" \n" +" Execute COMMAND, replacing this shell with the specified program.\n" +" ARGUMENTS become the arguments to COMMAND. If COMMAND is not " +"specified,\n" +" any redirections take effect in the current shell.\n" +" \n" +" Options:\n" +" -a name\tpass NAME as the zeroth argument to COMMAND\n" +" -c\t\texecute COMMAND with an empty environment\n" +" -l\t\tplace a dash in the zeroth argument to COMMAND\n" +" \n" +" If the command cannot be executed, a non-interactive shell exits, " +"unless\n" +" the shell option `execfail' is set.\n" +" \n" +" Exit Status:\n" +" Returns success unless COMMAND is not found or a redirection error " +"occurs." +msgstr "" + +# exit +#: builtins.c:685 +msgid "" +"Exit the shell.\n" +" \n" +" Exits the shell with a status of N. If N is omitted, the exit status\n" +" is that of the last command executed." +msgstr "" +"Beendet die aktuelle Shell.\n" +"\n" +" Beendt die die aktuelle Shell mit dem Rückgabewert N. Wenn N nicht " +"angegeben ist,\n" +" wird der Rückgabewert des letzten ausgeführten Kommandos übernommen." + +#: builtins.c:694 +msgid "" +"Exit a login shell.\n" +" \n" +" Exits a login shell with exit status N. Returns an error if not " +"executed\n" +" in a login shell." +msgstr "" + +#: builtins.c:704 +msgid "" +"Display or execute commands from the history list.\n" +" \n" +" fc is used to list or edit and re-execute commands from the history " +"list.\n" +" FIRST and LAST can be numbers specifying the range, or FIRST can be a\n" +" string, which means the most recent command beginning with that\n" +" string.\n" +" \n" +" Options:\n" +" -e ENAME\tselect which editor to use. Default is FCEDIT, then " +"EDITOR,\n" +" \t\tthen vi\n" +" -l \tlist lines instead of editing\n" +" -n\tomit line numbers when listing\n" +" -r\treverse the order of the lines (newest listed first)\n" +" \n" +" With the `fc -s [pat=rep ...] [command]' format, COMMAND is\n" +" re-executed after the substitution OLD=NEW is performed.\n" +" \n" +" A useful alias to use with this is r='fc -s', so that typing `r cc'\n" +" runs the last command beginning with `cc' and typing `r' re-executes\n" +" the last command.\n" +" \n" +" Exit Status:\n" +" Returns success or status of executed command; non-zero if an error " +"occurs." +msgstr "" + +#: builtins.c:734 +msgid "" +"Move job to the foreground.\n" +" \n" +" Place the job identified by JOB_SPEC in the foreground, making it the\n" +" current job. If JOB_SPEC is not present, the shell's notion of the\n" +" current job is used.\n" +" \n" +" Exit Status:\n" +" Status of command placed in foreground, or failure if an error occurs." +msgstr "" + +#: builtins.c:749 +msgid "" +"Move jobs to the background.\n" +" \n" +" Place the jobs identified by each JOB_SPEC in the background, as if " +"they\n" +" had been started with `&'. If JOB_SPEC is not present, the shell's " +"notion\n" +" of the current job is used.\n" +" \n" +" Exit Status:\n" +" Returns success unless job control is not enabled or an error occurs." +msgstr "" + +#: builtins.c:763 +msgid "" +"Remember or display program locations.\n" +" \n" +" Determine and remember the full pathname of each command NAME. If\n" +" no arguments are given, information about remembered commands is " +"displayed.\n" +" \n" +" Options:\n" +" -d\t\tforget the remembered location of each NAME\n" +" -l\t\tdisplay in a format that may be reused as input\n" +" -p pathname\tuse PATHNAME is the full pathname of NAME\n" +" -r\t\tforget all remembered locations\n" +" -t\t\tprint the remembered location of each NAME, preceding\n" +" \t\teach location with the corresponding NAME if multiple\n" +" \t\tNAMEs are given\n" +" Arguments:\n" +" NAME\t\tEach NAME is searched for in $PATH and added to the list\n" +" \t\tof remembered commands.\n" +" \n" +" Exit Status:\n" +" Returns success unless NAME is not found or an invalid option is given." +msgstr "" + +#: builtins.c:788 +msgid "" +"Display information about builtin commands.\n" +" \n" +" Displays brief summaries of builtin commands. If PATTERN is\n" +" specified, gives detailed help on all commands matching PATTERN,\n" +" otherwise the list of help topics is printed.\n" +" \n" +" Options:\n" +" -d\toutput short description for each topic\n" +" -m\tdisplay usage in pseudo-manpage format\n" +" -s\toutput only a short usage synopsis for each topic matching\n" +" \tPATTERN\n" +" \n" +" Arguments:\n" +" PATTERN\tPattern specifiying a help topic\n" +" \n" +" Exit Status:\n" +" Returns success unless PATTERN is not found or an invalid option is " +"given." +msgstr "" + +#: builtins.c:812 +msgid "" +"Display or manipulate the history list.\n" +" \n" +" Display the history list with line numbers, prefixing each modified\n" +" entry with a `*'. An argument of N lists only the last N entries.\n" +" \n" +" Options:\n" +" -c\tclear the history list by deleting all of the entries\n" +" -d offset\tdelete the history entry at offset OFFSET.\n" +" \n" +" -a\tappend history lines from this session to the history file\n" +" -n\tread all history lines not already read from the history file\n" +" -r\tread the history file and append the contents to the history\n" +" \tlist\n" +" -w\twrite the current history to the history file\n" +" \tand append them to the history list\n" +" \n" +" -p\tperform history expansion on each ARG and display the result\n" +" \twithout storing it in the history list\n" +" -s\tappend the ARGs to the history list as a single entry\n" +" \n" +" If FILENAME is given, it is used as the history file. Otherwise,\n" +" if $HISTFILE has a value, that is used, else ~/.bash_history.\n" +" \n" +" If the $HISTTIMEFORMAT variable is set and not null, its value is used\n" +" as a format string for strftime(3) to print the time stamp associated\n" +" with each displayed history entry. No time stamps are printed " +"otherwise.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or an error occurs." +msgstr "" + +#: builtins.c:848 +msgid "" +"Display status of jobs.\n" +" \n" +" Lists the active jobs. JOBSPEC restricts output to that job.\n" +" Without options, the status of all active jobs is displayed.\n" +" \n" +" Options:\n" +" -l\tlists process IDs in addition to the normal information\n" +" -n\tlist only processes that have changed status since the last\n" +" \tnotification\n" +" -p\tlists process IDs only\n" +" -r\trestrict output to running jobs\n" +" -s\trestrict output to stopped jobs\n" +" \n" +" If -x is supplied, COMMAND is run after all job specifications that\n" +" appear in ARGS have been replaced with the process ID of that job's\n" +" process group leader.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or an error occurs.\n" +" If -x is used, returns the exit status of COMMAND." +msgstr "" + +#: builtins.c:875 +msgid "" +"Remove jobs from current shell.\n" +" \n" +" Removes each JOBSPEC argument from the table of active jobs. Without\n" +" any JOBSPECs, the shell uses its notion of the current job.\n" +" \n" +" Options:\n" +" -a\tremove all jobs if JOBSPEC is not supplied\n" +" -h\tmark each JOBSPEC so that SIGHUP is not sent to the job if the\n" +" \tshell receives a SIGHUP\n" +" -r\tremove only running jobs\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option or JOBSPEC is given." +msgstr "" + +#: builtins.c:894 +msgid "" +"Send a signal to a job.\n" +" \n" +" Send the processes identified by PID or JOBSPEC the signal named by\n" +" SIGSPEC or SIGNUM. If neither SIGSPEC nor SIGNUM is present, then\n" +" SIGTERM is assumed.\n" +" \n" +" Options:\n" +" -s sig\tSIG is a signal name\n" +" -n sig\tSIG is a signal number\n" +" -l\tlist the signal names; if arguments follow `-l' they are\n" +" \tassumed to be signal numbers for which names should be listed\n" +" \n" +" Kill is a shell builtin for two reasons: it allows job IDs to be used\n" +" instead of process IDs, and allows processes to be killed if the limit\n" +" on processes that you can create is reached.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or an error occurs." +msgstr "" + +#: builtins.c:917 +msgid "" +"Evaluate arithmetic expressions.\n" +" \n" +" Evaluate each ARG as an arithmetic expression. Evaluation is done in\n" +" fixed-width integers with no check for overflow, though division by 0\n" +" is trapped and flagged as an error. The following list of operators is\n" +" grouped into levels of equal-precedence operators. The levels are " +"listed\n" +" in order of decreasing precedence.\n" +" \n" +" \tid++, id--\tvariable post-increment, post-decrement\n" +" \t++id, --id\tvariable pre-increment, pre-decrement\n" +" \t-, +\t\tunary minus, plus\n" +" \t!, ~\t\tlogical and bitwise negation\n" +" \t**\t\texponentiation\n" +" \t*, /, %\t\tmultiplication, division, remainder\n" +" \t+, -\t\taddition, subtraction\n" +" \t<<, >>\t\tleft and right bitwise shifts\n" +" \t<=, >=, <, >\tcomparison\n" +" \t==, !=\t\tequality, inequality\n" +" \t&\t\tbitwise AND\n" +" \t^\t\tbitwise XOR\n" +" \t|\t\tbitwise OR\n" +" \t&&\t\tlogical AND\n" +" \t||\t\tlogical OR\n" +" \texpr ? expr : expr\n" +" \t\t\tconditional operator\n" +" \t=, *=, /=, %=,\n" +" \t+=, -=, <<=, >>=,\n" +" \t&=, ^=, |=\tassignment\n" +" \n" +" Shell variables are allowed as operands. The name of the variable\n" +" is replaced by its value (coerced to a fixed-width integer) within\n" +" an expression. The variable need not have its integer attribute\n" +" turned on to be used in an expression.\n" +" \n" +" Operators are evaluated in order of precedence. Sub-expressions in\n" +" parentheses are evaluated first and may override the precedence\n" +" rules above.\n" +" \n" +" Exit Status:\n" +" If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise.." +msgstr "" + +#: builtins.c:962 +msgid "" +"Read a line from the standard input and split it into fields.\n" +" \n" +" Reads a single line from the standard input, or from file descriptor FD\n" +" if the -u option is supplied. The line is split into fields as with " +"word\n" +" splitting, and the first word is assigned to the first NAME, the second\n" +" word to the second NAME, and so on, with any leftover words assigned to\n" +" the last NAME. Only the characters found in $IFS are recognized as " +"word\n" +" delimiters.\n" +" \n" +" If no NAMEs are supplied, the line read is stored in the REPLY " +"variable.\n" +" \n" +" Options:\n" +" -a array\tassign the words read to sequential indices of the array\n" +" \t\tvariable ARRAY, starting at zero\n" +" -d delim\tcontinue until the first character of DELIM is read, rather\n" +" \t\tthan newline\n" +" -e\t\tuse Readline to obtain the line in an interactive shell\n" +" -i text\tUse TEXT as the initial text for Readline\n" +" -n nchars\treturn after reading NCHARS characters rather than waiting\n" +" \t\tfor a newline\n" +" -p prompt\toutput the string PROMPT without a trailing newline before\n" +" \t\tattempting to read\n" +" -r\t\tdo not allow backslashes to escape any characters\n" +" -s\t\tdo not echo input coming from a terminal\n" +" -t timeout\ttime out and return failure if a complete line of input " +"is\n" +" \t\tnot read withint TIMEOUT seconds. The value of the TMOUT\n" +" \t\tvariable is the default timeout. TIMEOUT may be a\n" +" \t\tfractional number. If TIMEOUT is 0, read returns success only\n" +" \t\tif input is available on the specified file descriptor. The\n" +" \t\texit status is greater than 128 if the timeout is exceeded\n" +" -u fd\t\tread from file descriptor FD instead of the standard input\n" +" \n" +" Exit Status:\n" +" The return code is zero, unless end-of-file is encountered, read times " +"out,\n" +" or an invalid file descriptor is supplied as the argument to -u." +msgstr "" + +#: builtins.c:1002 +msgid "" +"Return from a shell function.\n" +" \n" +" Causes a function or sourced script to exit with the return value\n" +" specified by N. If N is omitted, the return status is that of the\n" +" last command executed within the function or script.\n" +" \n" +" Exit Status:\n" +" Returns N, or failure if the shell is not executing a function or script." +msgstr "" + +#: builtins.c:1015 +msgid "" +"Set or unset values of shell options and positional parameters.\n" +" \n" +" Change the value of shell attributes and positional parameters, or\n" +" display the names and values of shell variables.\n" +" \n" +" Options:\n" +" -a Mark variables which are modified or created for export.\n" +" -b Notify of job termination immediately.\n" +" -e Exit immediately if a command exits with a non-zero status.\n" +" -f Disable file name generation (globbing).\n" +" -h Remember the location of commands as they are looked up.\n" +" -k All assignment arguments are placed in the environment for a\n" +" command, not just those that precede the command name.\n" +" -m Job control is enabled.\n" +" -n Read commands but do not execute them.\n" +" -o option-name\n" +" Set the variable corresponding to option-name:\n" +" allexport same as -a\n" +" braceexpand same as -B\n" +" emacs use an emacs-style line editing interface\n" +" errexit same as -e\n" +" errtrace same as -E\n" +" functrace same as -T\n" +" hashall same as -h\n" +" histexpand same as -H\n" +" history enable command history\n" +" ignoreeof the shell will not exit upon reading EOF\n" +" interactive-comments\n" +" allow comments to appear in interactive commands\n" +" keyword same as -k\n" +" monitor same as -m\n" +" noclobber same as -C\n" +" noexec same as -n\n" +" noglob same as -f\n" +" nolog currently accepted but ignored\n" +" notify same as -b\n" +" nounset same as -u\n" +" onecmd same as -t\n" +" physical same as -P\n" +" pipefail the return value of a pipeline is the status of\n" +" the last command to exit with a non-zero status,\n" +" or zero if no command exited with a non-zero " +"status\n" +" posix change the behavior of bash where the default\n" +" operation differs from the Posix standard to\n" +" match the standard\n" +" privileged same as -p\n" +" verbose same as -v\n" +" vi use a vi-style line editing interface\n" +" xtrace same as -x\n" +" -p Turned on whenever the real and effective user ids do not match.\n" +" Disables processing of the $ENV file and importing of shell\n" +" functions. Turning this option off causes the effective uid and\n" +" gid to be set to the real uid and gid.\n" +" -t Exit after reading and executing one command.\n" +" -u Treat unset variables as an error when substituting.\n" +" -v Print shell input lines as they are read.\n" +" -x Print commands and their arguments as they are executed.\n" +" -B the shell will perform brace expansion\n" +" -C If set, disallow existing regular files to be overwritten\n" +" by redirection of output.\n" +" -E If set, the ERR trap is inherited by shell functions.\n" +" -H Enable ! style history substitution. This flag is on\n" +" by default when the shell is interactive.\n" +" -P If set, do not follow symbolic links when executing commands\n" +" such as cd which change the current directory.\n" +" -T If set, the DEBUG trap is inherited by shell functions.\n" +" - Assign any remaining arguments to the positional parameters.\n" +" The -x and -v options are turned off.\n" +" \n" +" Using + rather than - causes these flags to be turned off. The\n" +" flags can also be used upon invocation of the shell. The current\n" +" set of flags may be found in $-. The remaining n ARGs are positional\n" +" parameters and are assigned, in order, to $1, $2, .. $n. If no\n" +" ARGs are given, all shell variables are printed.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given." +msgstr "" + +#: builtins.c:1097 +msgid "" +"Unset values and attributes of shell variables and functions.\n" +" \n" +" For each NAME, remove the corresponding variable or function.\n" +" \n" +" Options:\n" +" -f\ttreat each NAME as a shell function\n" +" -v\ttreat each NAME as a shell variable\n" +" \n" +" Without options, unset first tries to unset a variable, and if that " +"fails,\n" +" tries to unset a function.\n" +" \n" +" Some variables cannot be unset; also see `readonly'.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or a NAME is read-only." +msgstr "" + +#: builtins.c:1117 +msgid "" +"Set export attribute for shell variables.\n" +" \n" +" Marks each NAME for automatic export to the environment of subsequently\n" +" executed commands. If VALUE is supplied, assign VALUE before " +"exporting.\n" +" \n" +" Options:\n" +" -f\trefer to shell functions\n" +" -n\tremove the export property from each NAME\n" +" -p\tdisplay a list of all exported variables and functions\n" +" \n" +" An argument of `--' disables further option processing.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or NAME is invalid." +msgstr "" + +#: builtins.c:1136 +msgid "" +"Mark shell variables as unchangeable.\n" +" \n" +" Mark each NAME as read-only; the values of these NAMEs may not be\n" +" changed by subsequent assignment. If VALUE is supplied, assign VALUE\n" +" before marking as read-only.\n" +" \n" +" Options:\n" +" -a\trefer to indexed array variables\n" +" -A\trefer to associative array variables\n" +" -f\trefer to shell functions\n" +" -p\tdisplay a list of all readonly variables and functions\n" +" \n" +" An argument of `--' disables further option processing.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or NAME is invalid." +msgstr "" + +#: builtins.c:1157 +msgid "" +"Shift positional parameters.\n" +" \n" +" Rename the positional parameters $N+1,$N+2 ... to $1,$2 ... If N is\n" +" not given, it is assumed to be 1.\n" +" \n" +" Exit Status:\n" +" Returns success unless N is negative or greater than $#." +msgstr "" + +#: builtins.c:1169 builtins.c:1184 +msgid "" +"Execute commands from a file in the current shell.\n" +" \n" +" Read and execute commands from FILENAME in the current shell. The\n" +" entries in $PATH are used to find the directory containing FILENAME.\n" +" If any ARGUMENTS are supplied, they become the positional parameters\n" +" when FILENAME is executed.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed in FILENAME; fails if\n" +" FILENAME cannot be read." +msgstr "" + +#: builtins.c:1200 +msgid "" +"Suspend shell execution.\n" +" \n" +" Suspend the execution of this shell until it receives a SIGCONT signal.\n" +" Unless forced, login shells cannot be suspended.\n" +" \n" +" Options:\n" +" -f\tforce the suspend, even if the shell is a login shell\n" +" \n" +" Exit Status:\n" +" Returns success unless job control is not enabled or an error occurs." +msgstr "" + +#: builtins.c:1216 +msgid "" +"Evaluate conditional expression.\n" +" \n" +" Exits with a status of 0 (true) or 1 (false) depending on\n" +" the evaluation of EXPR. Expressions may be unary or binary. Unary\n" +" expressions are often used to examine the status of a file. There\n" +" are string operators as well, and numeric comparison operators.\n" +" \n" +" File operators:\n" +" \n" +" -a FILE True if file exists.\n" +" -b FILE True if file is block special.\n" +" -c FILE True if file is character special.\n" +" -d FILE True if file is a directory.\n" +" -e FILE True if file exists.\n" +" -f FILE True if file exists and is a regular file.\n" +" -g FILE True if file is set-group-id.\n" +" -h FILE True if file is a symbolic link.\n" +" -L FILE True if file is a symbolic link.\n" +" -k FILE True if file has its `sticky' bit set.\n" +" -p FILE True if file is a named pipe.\n" +" -r FILE True if file is readable by you.\n" +" -s FILE True if file exists and is not empty.\n" +" -S FILE True if file is a socket.\n" +" -t FD True if FD is opened on a terminal.\n" +" -u FILE True if the file is set-user-id.\n" +" -w FILE True if the file is writable by you.\n" +" -x FILE True if the file is executable by you.\n" +" -O FILE True if the file is effectively owned by you.\n" +" -G FILE True if the file is effectively owned by your group.\n" +" -N FILE True if the file has been modified since it was last " +"read.\n" +" \n" +" FILE1 -nt FILE2 True if file1 is newer than file2 (according to\n" +" modification date).\n" +" \n" +" FILE1 -ot FILE2 True if file1 is older than file2.\n" +" \n" +" FILE1 -ef FILE2 True if file1 is a hard link to file2.\n" +" \n" +" String operators:\n" +" \n" +" -z STRING True if string is empty.\n" +" \n" +" -n STRING\n" +" STRING True if string is not empty.\n" +" \n" +" STRING1 = STRING2\n" +" True if the strings are equal.\n" +" STRING1 != STRING2\n" +" True if the strings are not equal.\n" +" STRING1 < STRING2\n" +" True if STRING1 sorts before STRING2 " +"lexicographically.\n" +" STRING1 > STRING2\n" +" True if STRING1 sorts after STRING2 lexicographically.\n" +" \n" +" Other operators:\n" +" \n" +" -o OPTION True if the shell option OPTION is enabled.\n" +" ! EXPR True if expr is false.\n" +" EXPR1 -a EXPR2 True if both expr1 AND expr2 are true.\n" +" EXPR1 -o EXPR2 True if either expr1 OR expr2 is true.\n" +" \n" +" arg1 OP arg2 Arithmetic tests. OP is one of -eq, -ne,\n" +" -lt, -le, -gt, or -ge.\n" +" \n" +" Arithmetic binary operators return true if ARG1 is equal, not-equal,\n" +" less-than, less-than-or-equal, greater-than, or greater-than-or-equal\n" +" than ARG2.\n" +" \n" +" Exit Status:\n" +" Returns success if EXPR evaluates to true; fails if EXPR evaluates to\n" +" false or an invalid argument is given." +msgstr "" + +#: builtins.c:1292 +msgid "" +"Evaluate conditional expression.\n" +" \n" +" This is a synonym for the \"test\" builtin, but the last argument must\n" +" be a literal `]', to match the opening `['." +msgstr "" + +#: builtins.c:1301 +msgid "" +"Display process times.\n" +" \n" +" Prints the accumulated user and system times for the shell and all of " +"its\n" +" child processes.\n" +" \n" +" Exit Status:\n" +" Always succeeds." +msgstr "" + +#: builtins.c:1313 +msgid "" +"Trap signals and other events.\n" +" \n" +" Defines and activates handlers to be run when the shell receives " +"signals\n" +" or other conditions.\n" +" \n" +" ARG is a command to be read and executed when the shell receives the\n" +" signal(s) SIGNAL_SPEC. If ARG is absent (and a single SIGNAL_SPEC\n" +" is supplied) or `-', each specified signal is reset to its original\n" +" value. If ARG is the null string each SIGNAL_SPEC is ignored by the\n" +" shell and by the commands it invokes.\n" +" \n" +" If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell. " +"If\n" +" a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command.\n" +" \n" +" If no arguments are supplied, trap prints the list of commands " +"associated\n" +" with each signal.\n" +" \n" +" Options:\n" +" -l\tprint a list of signal names and their corresponding numbers\n" +" -p\tdisplay the trap commands associated with each SIGNAL_SPEC\n" +" \n" +" Each SIGNAL_SPEC is either a signal name in or a signal " +"number.\n" +" Signal names are case insensitive and the SIG prefix is optional. A\n" +" signal may be sent to the shell with \"kill -signal $$\".\n" +" \n" +" Exit Status:\n" +" Returns success unless a SIGSPEC is invalid or an invalid option is " +"given." +msgstr "" + +#: builtins.c:1345 +msgid "" +"Display information about command type.\n" +" \n" +" For each NAME, indicate how it would be interpreted if used as a\n" +" command name.\n" +" \n" +" Options:\n" +" -a\tdisplay all locations containing an executable named NAME;\n" +" \tincludes aliases, builtins, and functions, if and only if\n" +" \tthe `-p' option is not also used\n" +" -f\tsuppress shell function lookup\n" +" -P\tforce a PATH search for each NAME, even if it is an alias,\n" +" \tbuiltin, or function, and returns the name of the disk file\n" +" \tthat would be executed\n" +" -p\treturns either the name of the disk file that would be executed,\n" +" \tor nothing if `type -t NAME' would not return `file'.\n" +" -t\toutput a single word which is one of `alias', `keyword',\n" +" \t`function', `builtin', `file' or `', if NAME is an alias, shell\n" +" \treserved word, shell function, shell builtin, disk file, or not\n" +" \tfound, respectively\n" +" \n" +" Arguments:\n" +" NAME\tCommand name to be interpreted.\n" +" \n" +" Exit Status:\n" +" Returns success if all of the NAMEs are found; fails if any are not " +"found." +msgstr "" + +#: builtins.c:1376 +msgid "" +"Modify shell resource limits.\n" +" \n" +" Provides control over the resources available to the shell and " +"processes\n" +" it creates, on systems that allow such control.\n" +" \n" +" Options:\n" +" -S\tuse the `soft' resource limit\n" +" -H\tuse the `hard' resource limit\n" +" -a\tall current limits are reported\n" +" -b\tthe socket buffer size\n" +" -c\tthe maximum size of core files created\n" +" -d\tthe maximum size of a process's data segment\n" +" -e\tthe maximum scheduling priority (`nice')\n" +" -f\tthe maximum size of files written by the shell and its children\n" +" -i\tthe maximum number of pending signals\n" +" -l\tthe maximum size a process may lock into memory\n" +" -m\tthe maximum resident set size\n" +" -n\tthe maximum number of open file descriptors\n" +" -p\tthe pipe buffer size\n" +" -q\tthe maximum number of bytes in POSIX message queues\n" +" -r\tthe maximum real-time scheduling priority\n" +" -s\tthe maximum stack size\n" +" -t\tthe maximum amount of cpu time in seconds\n" +" -u\tthe maximum number of user processes\n" +" -v\tthe size of virtual memory\n" +" -x\tthe maximum number of file locks\n" +" \n" +" If LIMIT is given, it is the new value of the specified resource; the\n" +" special LIMIT values `soft', `hard', and `unlimited' stand for the\n" +" current soft limit, the current hard limit, and no limit, respectively.\n" +" Otherwise, the current value of the specified resource is printed. If\n" +" no option is given, then -f is assumed.\n" +" \n" +" Values are in 1024-byte increments, except for -t, which is in seconds,\n" +" -p, which is in increments of 512 bytes, and -u, which is an unscaled\n" +" number of processes.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" + +#: builtins.c:1421 +msgid "" +"Display or set file mode mask.\n" +" \n" +" Sets the user file-creation mask to MODE. If MODE is omitted, prints\n" +" the current value of the mask.\n" +" \n" +" If MODE begins with a digit, it is interpreted as an octal number;\n" +" otherwise it is a symbolic mode string like that accepted by chmod(1).\n" +" \n" +" Options:\n" +" -p\tif MODE is omitted, output in a form that may be reused as input\n" +" -S\tmakes the output symbolic; otherwise an octal number is output\n" +" \n" +" Exit Status:\n" +" Returns success unless MODE is invalid or an invalid option is given." +msgstr "" + +#: builtins.c:1441 +msgid "" +"Wait for job completion and return exit status.\n" +" \n" +" Waits for the process identified by ID, which may be a process ID or a\n" +" job specification, and reports its termination status. If ID is not\n" +" given, waits for all currently active child processes, and the return\n" +" status is zero. If ID is a a job specification, waits for all " +"processes\n" +" in the job's pipeline.\n" +" \n" +" Exit Status:\n" +" Returns the status of ID; fails if ID is invalid or an invalid option " +"is\n" +" given." +msgstr "" + +#: builtins.c:1459 +msgid "" +"Wait for process completion and return exit status.\n" +" \n" +" Waits for the specified process and reports its termination status. If\n" +" PID is not given, all currently active child processes are waited for,\n" +" and the return code is zero. PID must be a process ID.\n" +" \n" +" Exit Status:\n" +" Returns the status of ID; fails if ID is invalid or an invalid option " +"is\n" +" given." +msgstr "" + +#: builtins.c:1474 +msgid "" +"Execute commands for each member in a list.\n" +" \n" +" The `for' loop executes a sequence of commands for each member in a\n" +" list of items. If `in WORDS ...;' is not present, then `in \"$@\"' is\n" +" assumed. For each element in WORDS, NAME is set to that element, and\n" +" the COMMANDS are executed.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" + +#: builtins.c:1488 +msgid "" +"Arithmetic for loop.\n" +" \n" +" Equivalent to\n" +" \t(( EXP1 ))\n" +" \twhile (( EXP2 )); do\n" +" \t\tCOMMANDS\n" +" \t\t(( EXP3 ))\n" +" \tdone\n" +" EXP1, EXP2, and EXP3 are arithmetic expressions. If any expression is\n" +" omitted, it behaves as if it evaluates to 1.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" + +#: builtins.c:1506 +msgid "" +"Select words from a list and execute commands.\n" +" \n" +" The WORDS are expanded, generating a list of words. The\n" +" set of expanded words is printed on the standard error, each\n" +" preceded by a number. If `in WORDS' is not present, `in \"$@\"'\n" +" is assumed. The PS3 prompt is then displayed and a line read\n" +" from the standard input. If the line consists of the number\n" +" corresponding to one of the displayed words, then NAME is set\n" +" to that word. If the line is empty, WORDS and the prompt are\n" +" redisplayed. If EOF is read, the command completes. Any other\n" +" value read causes NAME to be set to null. The line read is saved\n" +" in the variable REPLY. COMMANDS are executed after each selection\n" +" until a break command is executed.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" + +#: builtins.c:1527 +msgid "" +"Report time consumed by pipeline's execution.\n" +" \n" +" Execute PIPELINE and print a summary of the real time, user CPU time,\n" +" and system CPU time spent executing PIPELINE when it terminates.\n" +" \n" +" Options:\n" +" -p\tprint the timing summary in the portable Posix format\n" +" \n" +" The value of the TIMEFORMAT variable is used as the output format.\n" +" \n" +" Exit Status:\n" +" The return status is the return status of PIPELINE." +msgstr "" + +#: builtins.c:1544 +msgid "" +"Execute commands based on pattern matching.\n" +" \n" +" Selectively execute COMMANDS based upon WORD matching PATTERN. The\n" +" `|' is used to separate multiple patterns.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" + +#: builtins.c:1556 +msgid "" +"Execute commands based on conditional.\n" +" \n" +" The `if COMMANDS' list is executed. If its exit status is zero, then " +"the\n" +" `then COMMANDS' list is executed. Otherwise, each `elif COMMANDS' list " +"is\n" +" executed in turn, and if its exit status is zero, the corresponding\n" +" `then COMMANDS' list is executed and the if command completes. " +"Otherwise,\n" +" the `else COMMANDS' list is executed, if present. The exit status of " +"the\n" +" entire construct is the exit status of the last command executed, or " +"zero\n" +" if no condition tested true.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" + +#: builtins.c:1573 +msgid "" +"Execute commands as long as a test succeeds.\n" +" \n" +" Expand and execute COMMANDS as long as the final command in the\n" +" `while' COMMANDS has an exit status of zero.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" + +#: builtins.c:1585 +msgid "" +"Execute commands as long as a test does not succeed.\n" +" \n" +" Expand and execute COMMANDS as long as the final command in the\n" +" `until' COMMANDS has an exit status which is not zero.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" + +#: builtins.c:1597 +msgid "" +"Define shell function.\n" +" \n" +" Create a shell function named NAME. When invoked as a simple command,\n" +" NAME runs COMMANDs in the calling shell's context. When NAME is " +"invoked,\n" +" the arguments are passed to the function as $1...$n, and the function's\n" +" name is in $FUNCNAME.\n" +" \n" +" Exit Status:\n" +" Returns success unless NAME is readonly." +msgstr "" + +#: builtins.c:1611 +msgid "" +"Group commands as a unit.\n" +" \n" +" Run a set of commands in a group. This is one way to redirect an\n" +" entire set of commands.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" + +#: builtins.c:1623 +msgid "" +"Resume job in foreground.\n" +" \n" +" Equivalent to the JOB_SPEC argument to the `fg' command. Resume a\n" +" stopped or background job. JOB_SPEC can specify either a job name\n" +" or a job number. Following JOB_SPEC with a `&' places the job in\n" +" the background, as if the job specification had been supplied as an\n" +" argument to `bg'.\n" +" \n" +" Exit Status:\n" +" Returns the status of the resumed job." +msgstr "" + +#: builtins.c:1638 +msgid "" +"Evaluate arithmetic expression.\n" +" \n" +" The EXPRESSION is evaluated according to the rules for arithmetic\n" +" evaluation. Equivalent to \"let EXPRESSION\".\n" +" \n" +" Exit Status:\n" +" Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise." +msgstr "" + +#: builtins.c:1650 +msgid "" +"Execute conditional command.\n" +" \n" +" Returns a status of 0 or 1 depending on the evaluation of the " +"conditional\n" +" expression EXPRESSION. Expressions are composed of the same primaries " +"used\n" +" by the `test' builtin, and may be combined using the following " +"operators:\n" +" \n" +" ( EXPRESSION )\tReturns the value of EXPRESSION\n" +" ! EXPRESSION\t\tTrue if EXPRESSION is false; else false\n" +" EXPR1 && EXPR2\tTrue if both EXPR1 and EXPR2 are true; else false\n" +" EXPR1 || EXPR2\tTrue if either EXPR1 or EXPR2 is true; else false\n" +" \n" +" When the `==' and `!=' operators are used, the string to the right of\n" +" the operator is used as a pattern and pattern matching is performed.\n" +" When the `=~' operator is used, the string to the right of the operator\n" +" is matched as a regular expression.\n" +" \n" +" The && and || operators do not evaluate EXPR2 if EXPR1 is sufficient to\n" +" determine the expression's value.\n" +" \n" +" Exit Status:\n" +" 0 or 1 depending on value of EXPRESSION." +msgstr "" + +#: builtins.c:1676 +msgid "" +"Common shell variable names and usage.\n" +" \n" +" BASH_VERSION\tVersion information for this Bash.\n" +" CDPATH\tA colon-separated list of directories to search\n" +" \t\tfor directories given as arguments to `cd'.\n" +" GLOBIGNORE\tA colon-separated list of patterns describing filenames to\n" +" \t\tbe ignored by pathname expansion.\n" +" HISTFILE\tThe name of the file where your command history is stored.\n" +" HISTFILESIZE\tThe maximum number of lines this file can contain.\n" +" HISTSIZE\tThe maximum number of history lines that a running\n" +" \t\tshell can access.\n" +" HOME\tThe complete pathname to your login directory.\n" +" HOSTNAME\tThe name of the current host.\n" +" HOSTTYPE\tThe type of CPU this version of Bash is running under.\n" +" IGNOREEOF\tControls the action of the shell on receipt of an EOF\n" +" \t\tcharacter as the sole input. If set, then the value\n" +" \t\tof it is the number of EOF characters that can be seen\n" +" \t\tin a row on an empty line before the shell will exit\n" +" \t\t(default 10). When unset, EOF signifies the end of input.\n" +" MACHTYPE\tA string describing the current system Bash is running on.\n" +" MAILCHECK\tHow often, in seconds, Bash checks for new mail.\n" +" MAILPATH\tA colon-separated list of filenames which Bash checks\n" +" \t\tfor new mail.\n" +" OSTYPE\tThe version of Unix this version of Bash is running on.\n" +" PATH\tA colon-separated list of directories to search when\n" +" \t\tlooking for commands.\n" +" PROMPT_COMMAND\tA command to be executed before the printing of each\n" +" \t\tprimary prompt.\n" +" PS1\t\tThe primary prompt string.\n" +" PS2\t\tThe secondary prompt string.\n" +" PWD\t\tThe full pathname of the current directory.\n" +" SHELLOPTS\tA colon-separated list of enabled shell options.\n" +" TERM\tThe name of the current terminal type.\n" +" TIMEFORMAT\tThe output format for timing statistics displayed by the\n" +" \t\t`time' reserved word.\n" +" auto_resume\tNon-null means a command word appearing on a line by\n" +" \t\titself is first looked for in the list of currently\n" +" \t\tstopped jobs. If found there, that job is foregrounded.\n" +" \t\tA value of `exact' means that the command word must\n" +" \t\texactly match a command in the list of stopped jobs. A\n" +" \t\tvalue of `substring' means that the command word must\n" +" \t\tmatch a substring of the job. Any other value means that\n" +" \t\tthe command must be a prefix of a stopped job.\n" +" histchars\tCharacters controlling history expansion and quick\n" +" \t\tsubstitution. The first character is the history\n" +" \t\tsubstitution character, usually `!'. The second is\n" +" \t\tthe `quick substitution' character, usually `^'. The\n" +" \t\tthird is the `history comment' character, usually `#'.\n" +" HISTIGNORE\tA colon-separated list of patterns used to decide which\n" +" \t\tcommands should be saved on the history list.\n" +msgstr "" + +#: builtins.c:1733 +msgid "" +"Add directories to stack.\n" +" \n" +" Adds a directory to the top of the directory stack, or rotates\n" +" the stack, making the new top of the stack the current working\n" +" directory. With no arguments, exchanges the top two directories.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when adding\n" +" \tdirectories to the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the left of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" -N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the right of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" dir\tAdds DIR to the directory stack at the top, making it the\n" +" \tnew current working directory.\n" +" \n" +" The `dirs' builtin displays the directory stack.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid argument is supplied or the directory\n" +" change fails." +msgstr "" + +#: builtins.c:1767 +msgid "" +"Remove directories from stack.\n" +" \n" +" Removes entries from the directory stack. With no arguments, removes\n" +" the top directory from the stack, and changes to the new top directory.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when removing\n" +" \tdirectories from the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRemoves the Nth entry counting from the left of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd +0'\n" +" \tremoves the first directory, `popd +1' the second.\n" +" \n" +" -N\tRemoves the Nth entry counting from the right of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd -0'\n" +" \tremoves the last directory, `popd -1' the next to last.\n" +" \n" +" The `dirs' builtin displays the directory stack.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid argument is supplied or the directory\n" +" change fails." +msgstr "" + +#: builtins.c:1797 +msgid "" +"Display directory stack.\n" +" \n" +" Display the list of currently remembered directories. Directories\n" +" find their way onto the list with the `pushd' command; you can get\n" +" back up through the list with the `popd' command.\n" +" \n" +" Options:\n" +" -c\tclear the directory stack by deleting all of the elements\n" +" -l\tdo not print tilde-prefixed versions of directories relative\n" +" \tto your home directory\n" +" -p\tprint the directory stack with one entry per line\n" +" -v\tprint the directory stack with one entry per line prefixed\n" +" \twith its position in the stack\n" +" \n" +" Arguments:\n" +" +N\tDisplays the Nth entry counting from the left of the list shown " +"by\n" +" \tdirs when invoked without options, starting with zero.\n" +" \n" +" -N\tDisplays the Nth entry counting from the right of the list shown " +"by\n" +" \tdirs when invoked without options, starting with zero.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" + +#: builtins.c:1826 +msgid "" +"Set and unset shell options.\n" +" \n" +" Change the setting of each shell option OPTNAME. Without any option\n" +" arguments, list all shell options with an indication of whether or not " +"each\n" +" is set.\n" +" \n" +" Options:\n" +" -o\trestrict OPTNAMEs to those defined for use with `set -o'\n" +" -p\tprint each shell option with an indication of its status\n" +" -q\tsuppress output\n" +" -s\tenable (set) each OPTNAME\n" +" -u\tdisable (unset) each OPTNAME\n" +" \n" +" Exit Status:\n" +" Returns success if OPTNAME is enabled; fails if an invalid option is\n" +" given or OPTNAME is disabled." +msgstr "" + +#: builtins.c:1847 +msgid "" +"Formats and prints ARGUMENTS under control of the FORMAT.\n" +" \n" +" Options:\n" +" -v var\tassign the output to shell variable VAR rather than\n" +" \t\tdisplay it on the standard output\n" +" \n" +" FORMAT is a character string which contains three types of objects: " +"plain\n" +" characters, which are simply copied to standard output; character " +"escape\n" +" sequences, which are converted and copied to the standard output; and\n" +" format specifications, each of which causes printing of the next " +"successive\n" +" argument.\n" +" \n" +" In addition to the standard format specifications described in printf" +"(1)\n" +" and printf(3), printf interprets:\n" +" \n" +" %b\texpand backslash escape sequences in the corresponding argument\n" +" %q\tquote the argument in a way that can be reused as shell input\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or a write or " +"assignment\n" +" error occurs." +msgstr "" + +#: builtins.c:1874 +msgid "" +"Specify how arguments are to be completed by Readline.\n" +" \n" +" For each NAME, specify how arguments are to be completed. If no " +"options\n" +" are supplied, existing completion specifications are printed in a way " +"that\n" +" allows them to be reused as input.\n" +" \n" +" Options:\n" +" -p\tprint existing completion specifications in a reusable format\n" +" -r\tremove a completion specification for each NAME, or, if no\n" +" \tNAMEs are supplied, all completion specifications\n" +" \n" +" When completion is attempted, the actions are applied in the order the\n" +" uppercase-letter options are listed above.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" + +#: builtins.c:1897 +msgid "" +"Display possible completions depending on the options.\n" +" \n" +" Intended to be used from within a shell function generating possible\n" +" completions. If the optional WORD argument is supplied, matches " +"against\n" +" WORD are generated.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" + +#: builtins.c:1912 +msgid "" +"Modify or display completion options.\n" +" \n" +" Modify the completion options for each NAME, or, if no NAMEs are " +"supplied,\n" +" the completion currently begin executed. If no OPTIONs are givenm, " +"print\n" +" the completion options for each NAME or the current completion " +"specification.\n" +" \n" +" Options:\n" +" \t-o option\tSet completion option OPTION for each NAME\n" +" \n" +" Using `+o' instead of `-o' turns off the specified option.\n" +" \n" +" Arguments:\n" +" \n" +" Each NAME refers to a command for which a completion specification must\n" +" have previously been defined using the `complete' builtin. If no NAMEs\n" +" are supplied, compopt must be called by a function currently generating\n" +" completions, and the options for that currently-executing completion\n" +" generator are modified.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or NAME does not\n" +" have a completion specification defined." +msgstr "" + +#: builtins.c:1940 +msgid "" +"Read lines from a file into an array variable.\n" +" \n" +" Read lines from the standard input into the array variable ARRAY, or " +"from\n" +" file descriptor FD if the -u option is supplied. The variable MAPFILE " +"is\n" +" the default ARRAY.\n" +" \n" +" Options:\n" +" -n count\tCopy at most COUNT lines. If COUNT is 0, all lines are " +"copied.\n" +" -O origin\tBegin assigning to ARRAY at index ORIGIN. The default " +"index is 0.\n" +" -s count \tDiscard the first COUNT lines read.\n" +" -t\t\tRemove a trailing newline from each line read.\n" +" -u fd\t\tRead lines from file descriptor FD instead of the standard " +"input.\n" +" -C callback\tEvaluate CALLBACK each time QUANTUM lines are read.\n" +" -c quantum\tSpecify the number of lines read between each call to " +"CALLBACK.\n" +" \n" +" Arguments:\n" +" ARRAY\t\tArray variable name to use for file data.\n" +" \n" +" If -C is supplied without -c, the default quantum is 5000.\n" +" \n" +" If not supplied with an explicit origin, mapfile will clear ARRAY " +"before\n" +" assigning to it.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or ARRAY is readonly." +msgstr "" + +#~ msgid "Missing `}'" +#~ msgstr "Fehlende `}'." + +#~ msgid "brace_expand> " +#~ msgstr "Klammererweiterung>" + +#~ msgid "Attempt to free unknown command type `%d'.\n" +#~ msgstr "Versuche den unbekannten Kommandotyp `%d' zu freizugeben.\n" + +#~ msgid "Report this to %s\n" +#~ msgstr "Schicke eine Fehlermeldung an: %s\n" + +#~ msgid "Stopping myself..." +#~ msgstr "Abbruch ..." + +#~ msgid "Tell %s to fix this someday.\n" +#~ msgstr "Schicke eine Fehlermeldung an: %s\n" + +# Programmierfehler +#~ msgid "execute_command: bad command type `%d'" +#~ msgstr "execute_command: Falscher Kommandotyp `%d'." + +#~ msgid "real\t" +#~ msgstr "Gesamt\t" + +#~ msgid "user\t" +#~ msgstr "Nutzer\t" + +#~ msgid "sys\t" +#~ msgstr "System\t" + +#~ msgid "" +#~ "real\t0m0.00s\n" +#~ "user\t0m0.00s\n" +#~ "sys\t0m0.00s\n" +#~ msgstr "" +#~ "Gesamt\t0m0.00s\n" +#~ "Nutzer\t0m0.00s\n" +#~ "System\t0m0.00s\n" + +#~ msgid "cannot duplicate fd %d to fd 1: %s" +#~ msgstr "Kann fd %d nicht auf fd 1 verdoppeln: %s" + +#~ msgid "%s: output redirection restricted" +#~ msgstr "%s: Das Umlenken der Ausgabe ist verboten." + +#~ msgid "Out of memory!" +#~ msgstr "Arbeitsspeicher erschöpft!" + +# Debug Ausgabe +#~ msgid "You have already added item `%s'\n" +#~ msgstr "You have already added item `%s'.\n" + +# Debug Ausgabe +#~ msgid "You have entered %d (%d) items. The distribution is:\n" +#~ msgstr "You have entered %d (%d) items. The distribution is:\n" + +#~ msgid "" +#~ msgstr "" + +#~ msgid "%s: bg background job?" +#~ msgstr "%s: bg Hintergrundprozeß?" + +# Programmierfehler +#~ msgid "" +#~ "Redirection instruction from yyparse () '%d' is\n" +#~ "out of range in make_redirection ()." +#~ msgstr "" +#~ "Umlenkung von yyparse() `%d' in make_redirection\n" +#~ "ist außerhalb des zulässigen Bereichs." + +# Programmierfehler +#~ msgid "clean_simple_command () got a command with type %d." +#~ msgstr "clean_simple_command () erhielt ein Kommando vom Typ %d." + +#~ msgid "got errno %d while waiting for %d" +#~ msgstr "Erhielt Fehlernummer %d beim Warten auf %d." + +#~ msgid "syntax error near unexpected token `%c'" +#~ msgstr "Syntaxfehler beim unerwarteten Zeichen `%c'" + +#~ msgid "print_command: bad command type `%d'" +#~ msgstr "print_command: Falscher Kommandotyp `%d'." + +#~ msgid "cprintf: bad `%%' argument (%c)" +#~ msgstr "cprintf: Falsches `%%' Argument (%c)" + +#~ msgid "option `%s' requires an argument" +#~ msgstr "Option `%s' erfordert ein Argument." + +#~ msgid "%s: unrecognized option" +#~ msgstr "%s: Option nicht erkannt." + +#~ msgid "`-c' requires an argument" +#~ msgstr "`-c' erfordert ein Argument." + +#~ msgid "%s: cannot execute directories" +#~ msgstr "%s: Kann Verzeichnisse nicht ausführen." + +# interner Fehler +#~ msgid "Bad code in sig.c: sigprocmask" +#~ msgstr "Falscher Code in sig.c: Sigprocmask." + +#~ msgid "can't make pipes for process substitution: %s" +#~ msgstr "Kann keine Pipes für die Prozeßersetzung erzeugen: %s." + +#~ msgid "reading" +#~ msgstr "lese" + +#~ msgid "process substitution" +#~ msgstr "Prozeßersetzung" + +#~ msgid "command substitution" +#~ msgstr "Kommandoersetzung" + +# interner Fehler +#~ msgid "Can't reopen pipe to command substitution (fd %d): %s" +#~ msgstr "Kann Pipe für Kommandoersetzung nicht wieder öffnen (fd %d): %s." + +#~ msgid "$%c: unbound variable" +#~ msgstr "$%c ist nicht gesetzt." + +#~ msgid "%s: bad arithmetic substitution" +#~ msgstr "%s: Falsche arithmetische Ersetzung." + +#~ msgid "-%s: binary operator expected" +#~ msgstr "-%s: Zweistelliger (binärer) Operator erwartet." + +#~ msgid "%s[%s: bad subscript" +#~ msgstr "%s[%s: Falscher Index." + +#~ msgid "[%s: bad subscript" +#~ msgstr "[%s: Falscher Index." + +# Testprogramm für sh_getopts +#~ msgid "digits occur in two different argv-elements.\n" +#~ msgstr "Ziffer taucht in zwei verschiedenen Elementen von argv auf.\n" + +#~ msgid "option %c\n" +#~ msgstr "Option %c\n" + +#~ msgid "option a\n" +#~ msgstr "Option a\n" + +#~ msgid "option b\n" +#~ msgstr "Option b\n" + +#~ msgid "option c with value `%s'\n" +#~ msgstr "Option c mit Wert `%s'\n" + +# Testprogramm für sh_getopts +#~ msgid "?? sh_getopt returned character code 0%o ??\n" +#~ msgstr "?? sh_getopt gab Code 0%o zurück??\n" + +# Testprogramm für sh_getopts +#~ msgid "non-option ARGV-elements: " +#~ msgstr "Elemente von ARGV, die keine Optionen sind: " + +# mkbuilltins Hilfsprogramm +#~ msgid "%s: Unknown flag %s.\n" +#~ msgstr "%s: Unbekannter Schalter %s.\n" + +# mkbuiltins Hilfsprogramm +#~ msgid "Unknown directive `%s'" +#~ msgstr "Unbekannte Anweisung `%s'." + +#~ msgid "%s requires an argument" +#~ msgstr "%s erfordert ein Argument." + +#~ msgid "%s must be inside of a $BUILTIN block" +#~ msgstr "%s muß innerhalb eines $BUILTIN Blocks stehen." + +#~ msgid "%s found before $END" +#~ msgstr "%s vor $END gefunden." + +#~ msgid "%s already has a function (%s)" +#~ msgstr "%s hat schon eine Funktion (%s)." + +# docname --> Bezeichnung ?? +#~ msgid "%s already had a docname (%s)" +#~ msgstr "%s hat schon eine Bezeichnung (%s)." + +#~ msgid "%s already has short documentation (%s)" +#~ msgstr "%s hat schon eine Kurzbeschreibung (%s)." + +#~ msgid "%s already has a %s definition" +#~ msgstr "%s ist schon %s definiert." + +# mkbuildins Hilfsprogramm +#~ msgid "mkbuiltins: Out of virtual memory!\n" +#~ msgstr "mkbuiltins: Virtueller Speicher erschöpft!\n" + +#~ msgid "read [-r] [-p prompt] [-a array] [-e] [name ...]" +#~ msgstr "" +#~ "read [-r] [-p Eingabeaufforderung] [-a Feldvariable] [-e] [Name ...]" + +#~ msgid "%[DIGITS | WORD] [&]" +#~ msgstr "%[Ziffern | Wort] [&]" + +#~ msgid "variables - Some variable names and meanings" +#~ msgstr "Variablen - Einige Variablennamen und ihre Bedeutung" + +# alias +#~ msgid "`alias' with no arguments or with the -p option prints the list" +#~ msgstr "`alias' ohne Argumente oder mit der Option -p gibt die Liste der" + +#~ msgid "of aliases in the form alias NAME=VALUE on standard output." +#~ msgstr "Synonyme in der Form NAME=WERT auf die Standardausgabe aus." + +#~ msgid "Otherwise, an alias is defined for each NAME whose VALUE is given." +#~ msgstr "" +#~ "Sonst wird ein Synonym für jeden NAMEN definiert, dessen WERT angegeben " +#~ "wird." + +#~ msgid "A trailing space in VALUE causes the next word to be checked for" +#~ msgstr "" +#~ "Ein Leerzeichen nach WERT bewirkt, daß das nächste WORT auf ein Synonym" + +#~ msgid "alias substitution when the alias is expanded. Alias returns" +#~ msgstr "" +#~ "untersucht wird wenn SYNONYM ausgewertet wird. `Alias' gibt wahr zurück," + +#~ msgid "true unless a NAME is given for which no alias has been defined." +#~ msgstr "" +#~ "außer wenn ein NAME angegeben wurde, für den kein SYNONYM vorhanden ist." + +# unalias +#~ msgid "" +#~ "Remove NAMEs from the list of defined aliases. If the -a option is given," +#~ msgstr "Entfernt NAMEn aus der Liste der Synonyme. Wenn die Option -a" + +#~ msgid "then remove all alias definitions." +#~ msgstr "angegeben ist, werden alle Synonyme gelöscht." + +# readline +#~ msgid "Bind a key sequence to a Readline function, or to a macro. The" +#~ msgstr "" +#~ "Verbindet eine Tastenfolge mit einer Readline-Funktion oder einem Makro. " +#~ "Die" + +#~ msgid "syntax is equivalent to that found in ~/.inputrc, but must be" +#~ msgstr "" +#~ "Syntax entspricht der der Datei `~/.inputrc', sie muß jedoch als Argument" + +#~ msgid "" +#~ "passed as a single argument: bind '\"\\C-x\\C-r\": re-read-init-file'." +#~ msgstr "angegeben werden. Z.B.: bind '\"\\C-x\\C-r\": re-read-init-file'." + +#~ msgid "Arguments we accept:" +#~ msgstr "Gültige Argumente:" + +#~ msgid "" +#~ " -m keymap Use `keymap' as the keymap for the duration of this" +#~ msgstr "" +#~ " -m Tastaturtabelle wählt die Tastaturtabelle für die Dauer dieses " +#~ "Kommandos." + +#~ msgid " command. Acceptable keymap names are emacs," +#~ msgstr "" +#~ " Mögliche Namen für Tastaturtabellen sind: emacs" + +#~ msgid "" +#~ " emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move," +#~ msgstr "" +#~ " emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move," + +#~ msgid " vi-command, and vi-insert." +#~ msgstr " vi-command, und vi-insert." + +#~ msgid " -l List names of functions." +#~ msgstr " -l Listet die Namen der Funktionen." + +#~ msgid " -P List function names and bindings." +#~ msgstr "" +#~ " -P Listet die Namen der Funktion und deren " +#~ "Tastenzuordnung." + +#~ msgid "" +#~ " -p List functions and bindings in a form that can be" +#~ msgstr "" +#~ " -p Listet die Funktionsnamen und deren Tastenzuordnung " +#~ "so," + +#~ msgid " reused as input." +#~ msgstr "" +#~ " daß sie als Eingabe wiederverwendet werden können." + +#~ msgid " -r keyseq Remove the binding for KEYSEQ." +#~ msgstr " -r Tastenfolge Entfernt die Zuordnung für Tastenfolge." + +#~ msgid " -f filename Read key bindings from FILENAME." +#~ msgstr " -f Dateiname Liest die Tastenzuordnungen von Dateiname." + +#~ msgid "" +#~ " -q function-name Query about which keys invoke the named function." +#~ msgstr "" +#~ " -q Funktionsname Gibt die Tastenzuordnung für den Funktionsnamen aus." + +#~ msgid " -V List variable names and values" +#~ msgstr " -V Gibt Variablennamen und deren Werte aus." + +#~ msgid "" +#~ " -v List variable names and values in a form that can" +#~ msgstr "" +#~ " -v Gibt Variablennamen und deren Werte in einer Form " +#~ "aus," + +#~ msgid " be reused as input." +#~ msgstr " die als Eingabe wiederverwendet werden kann." + +#~ msgid "" +#~ " -S List key sequences that invoke macros and their " +#~ "values" +#~ msgstr " -S Gibt Tastenfolgen aus, die Makros aufrufen." + +#~ msgid "" +#~ " -s List key sequences that invoke macros and their " +#~ "values in" +#~ msgstr " -s Gibt Tastenfolgen aus, die Makros aufrufen." + +#~ msgid " a form that can be reused as input." +#~ msgstr "" +#~ " Die Ausgabe kann als Eingabe wiederverwendet werden." + +# break +#~ msgid "Exit from within a FOR, WHILE or UNTIL loop. If N is specified," +#~ msgstr "" +#~ "Bricht eine for, while oder until Schleife ab. Wenn N angegeben ist, dann" + +#~ msgid "break N levels." +#~ msgstr "werden N Schleifenebenen verlassen." + +# continue +#~ msgid "Resume the next iteration of the enclosing FOR, WHILE or UNTIL loop." +#~ msgstr "" +#~ "Springt zur nächsten Iteration der for, while oder until Schleife. Wenn N" + +#~ msgid "If N is specified, resume at the N-th enclosing loop." +#~ msgstr "" +#~ "angegeben ist, wird mit der N-ten übergeordneten Schleife fortgefahren." + +# builtin +#~ msgid "Run a shell builtin. This is useful when you wish to rename a" +#~ msgstr "" +#~ "Führt eine Shellfunktion aus. Das ist nützlich, wenn eine Shellfunktion" + +#~ msgid "shell builtin to be a function, but need the functionality of the" +#~ msgstr "umbenannt wurde, aber das ursprüngliche Verhalten benötigt wird." + +#~ msgid "builtin within the function itself." +#~ msgstr " " + +# cd +#~ msgid "Change the current directory to DIR. The variable $HOME is the" +#~ msgstr "" +#~ "Setzt das Arbeitsverzeichnis auf Verz. Wenn Verz. nicht angegeben ist, " +#~ "dann" + +#~ msgid "default DIR. The variable $CDPATH defines the search path for" +#~ msgstr "" +#~ "wird in das $HOME-Verzeichnis gewechselt. In der Variable $CDPATH kann " +#~ "eine" + +#~ msgid "the directory containing DIR. Alternative directory names in CDPATH" +#~ msgstr "" +#~ "durch Doppelpunkt (:) getrennte Liste angegeben werden, in denen Verz. " +#~ "gesucht" + +#~ msgid "are separated by a colon (:). A null directory name is the same as" +#~ msgstr "wird. Beginnt Verz. mit einem `/', wird $CDPATH nicht benutzt." + +#~ msgid "the current directory, i.e. `.'. If DIR begins with a slash (/)," +#~ msgstr "" +#~ "Wenn das Verzeichnis nicht gefunden wird und die Shelloption `cdable_vars'" + +#~ msgid "then $CDPATH is not used. If the directory is not found, and the" +#~ msgstr "" +#~ "gesetzt ist, dann wird Verz. als ein Variablenname interpretiert. Ergibt" + +#~ msgid "shell option `cdable_vars' is set, then try the word as a variable" +#~ msgstr "dies einen Wert für die Variable, dann wird das aktuelle" + +#~ msgid "name. If that variable has a value, then cd to the value of that" +#~ msgstr "" +#~ "Verzeichnis auf diesen Wert gesetzt. Option -P veranlaßt cd symbolische" + +#~ msgid "" +#~ "variable. The -P option says to use the physical directory structure" +#~ msgstr "Verweise zu ignorieren; -L erzwingt das Benutzen symbolischer" + +#~ msgid "" +#~ "instead of following symbolic links; the -L option forces symbolic links" +#~ msgstr "Verweise." + +#~ msgid "to be followed." +#~ msgstr " " + +# pwd +#~ msgid "Print the current working directory. With the -P option, pwd prints" +#~ msgstr "" +#~ "Gibt das Arbeitsverzeichnis aus. Die Angabe von -P ignoriert symbolische" + +#~ msgid "the physical directory, without any symbolic links; the -L option" +#~ msgstr "Verweise. Mit -L wird das Verwenden von symbolischen Verweisen" + +#~ msgid "makes pwd follow symbolic links." +#~ msgstr "erzwungen." + +# command +#~ msgid "" +#~ "Runs COMMAND with ARGS ignoring shell functions. If you have a shell" +#~ msgstr "" +#~ "Führt das Kommando mit den Argumenten aus, ohne die Shellfunktionen zu" + +#~ msgid "function called `ls', and you wish to call the command `ls', you can" +#~ msgstr "berücksichtigen. Wenn eine Shellfunktion `ls' definiert ist, führt" + +#~ msgid "" +#~ "say \"command ls\". If the -p option is given, a default value is used" +#~ msgstr "\"command ls\" das Kommando `ls' aus. Mit der Option -p wird ein" + +#~ msgid "" +#~ "for PATH that is guaranteed to find all of the standard utilities. If" +#~ msgstr "Standardwert für PATH verwendet. -v gibt eine kurze Beschreibung" + +#~ msgid "" +#~ "the -V or -v option is given, a string is printed describing COMMAND." +#~ msgstr "des Kommandos aus; -V eine ausführliche." + +#~ msgid "The -V option produces a more verbose description." +#~ msgstr " " + +# declare +#~ msgid "Declare variables and/or give them attributes. If no NAMEs are" +#~ msgstr "" +#~ "Deklariert Variablen oder weist ihnen Werte zu. Wenn kein Name angegeben" + +#~ msgid "given, then display the values of variables instead. The -p option" +#~ msgstr "" +#~ "ist, dann wird der Wert der Variablen ausgegeben. Option -p gibt die" + +#~ msgid "will display the attributes and values of each NAME." +#~ msgstr "Merkmale und Werte der Namen aus." + +#~ msgid "The flags are:" +#~ msgstr "Die Schalter sind:" + +#~ msgid " -a\tto make NAMEs arrays (if supported)" +#~ msgstr " -a\tDeklariert Name als Feldvariable (wenn unterstützt)." + +#~ msgid " -f\tto select from among function names only" +#~ msgstr " -f\tZeigt nur Funktionsnamen." + +#~ msgid " -F\tto display function names without definitions" +#~ msgstr " -F\tZeigt Funktionsnamen ohne Definition an." + +#~ msgid " -r\tto make NAMEs readonly" +#~ msgstr " -r\tSetzt Name auf `nur Lesen'-Status." + +#~ msgid " -x\tto make NAMEs export" +#~ msgstr " -x\tMarkiert Name für automatischen Export in alle Subshells." + +#~ msgid " -i\tto make NAMEs have the `integer' attribute set" +#~ msgstr " -i\tSetzt den Typ von Name auf Ganzzahl." + +#~ msgid "Variables with the integer attribute have arithmetic evaluation (see" +#~ msgstr "" +#~ "Wenn der Variablen ein Wert zugewiesen wird (siehe `let'), findet eine" + +#~ msgid "`let') done when the variable is assigned to." +#~ msgstr "arithmetische Auswertung statt." + +#~ msgid "When displaying values of variables, -f displays a function's name" +#~ msgstr "" +#~ "Wenn Variablenwerte angezeigt werden, gibt die Option -f Funktionsnamen" + +#~ msgid "and definition. The -F option restricts the display to function" +#~ msgstr "und -definitionen aus. Die Option -F beschränkt die Ausgabe auf" + +#~ msgid "name only." +#~ msgstr "Funktionsnamen." + +#~ msgid "" +#~ "Using `+' instead of `-' turns off the given attribute instead. When" +#~ msgstr "`+' statt `-' schaltet das angegebene Merkmal ab. `declare'" + +#~ msgid "used in a function, makes NAMEs local, as with the `local' command." +#~ msgstr "innerhalb einer Funktion wirkt wie `local'." + +# typset +#~ msgid "Obsolete. See `declare'." +#~ msgstr "Veraltet. Siehe `declare'." + +# local +#~ msgid "Create a local variable called NAME, and give it VALUE. LOCAL" +#~ msgstr "" +#~ "Erzeugt eine lokale Variable Name und weist ihr Wert zu. Die Anweisung " +#~ "kann" + +#~ msgid "have a visible scope restricted to that function and its children." +#~ msgstr "nur innerhalb dieser Funktion und allen Unterfunktionen zugänglich." + +# echo +#~ msgid "Output the ARGs. If -n is specified, the trailing newline is" +#~ msgstr "" +#~ "Gibt die Argumente aus. Wenn -n angegeben ist, wird kein Zeilenumbruch" + +#~ msgid "suppressed. If the -e option is given, interpretation of the" +#~ msgstr "" +#~ "angefügt. Die Option -e interpretiert folgende Sonderzeichen zur " +#~ "Formatierung" + +#~ msgid "following backslash-escaped characters is turned on:" +#~ msgstr "der Ausgabe:" + +#~ msgid "\t\\a\talert (bell)" +#~ msgstr "\t\\a\tAlarm (Glocke)." + +#~ msgid "\t\\b\tbackspace" +#~ msgstr "\t\\b\tSchritt zurück." + +#~ msgid "\t\\c\tsuppress trailing newline" +#~ msgstr "\t\\c\tKein Zeilenumbruch." + +#~ msgid "\t\\E\tescape character" +#~ msgstr "\t\\E\tEscape-Zeichen." + +#~ msgid "\t\\f\tform feed" +#~ msgstr "\t\\f\tSeitenvorschub." + +#~ msgid "\t\\n\tnew line" +#~ msgstr "\t\\n\tZeilenumbruch." + +#~ msgid "\t\\r\tcarriage return" +#~ msgstr "\t\\r\tWagenrücklauf." + +#~ msgid "\t\\t\thorizontal tab" +#~ msgstr "\t\\t\tHorizontaler Tabulator." + +#~ msgid "\t\\v\tvertical tab" +#~ msgstr "\t\\v\tVertikaler Tabulator." + +#~ msgid "\t\\\\\tbackslash" +#~ msgstr "\t\\\\\tDas Zeichen `\\'." + +#~ msgid "\t\\num\tthe character whose ASCII code is NUM (octal)." +#~ msgstr "\t\\num\tDas Zeichen mit dem (oktalen) ASCII-Code num." + +#~ msgid "" +#~ "You can explicitly turn off the interpretation of the above characters" +#~ msgstr "" +#~ "Die Option -E schaltet die Auswertung der oben angegebenen Sonderzeichen" + +#~ msgid "with the -E option." +#~ msgstr "ab." + +#~ msgid "" +#~ "Output the ARGs. If -n is specified, the trailing newline is suppressed." +#~ msgstr "" +#~ "Gibt ARGUMENTE aus. Die Option -n verhindert den abschließenden " +#~ "Zeilenumbruch." + +# enable +#~ msgid "Enable and disable builtin shell commands. This allows" +#~ msgstr "Schaltet Shellfunktionen ab und an. Damit kann ein gleichnamiges" + +#~ msgid "you to use a disk command which has the same name as a shell" +#~ msgstr "externes Kommando anstatt des Shellkommandos benutzt werden." + +#~ msgid "builtin. If -n is used, the NAMEs become disabled; otherwise" +#~ msgstr "-n schaltet Namen ab, sonst werden NAMEn angeschaltet." + +#~ msgid "NAMEs are enabled. For example, to use the `test' found on your" +#~ msgstr "Um z.B. die externe Funktion `test' zu verwenden," + +#~ msgid "path instead of the shell builtin version, type `enable -n test'." +#~ msgstr "" +#~ "muß `enable -n test' eingegeben werden. Auf Systemen, die Bibiliotheken" + +#~ msgid "On systems supporting dynamic loading, the -f option may be used" +#~ msgstr "" +#~ "dynamisch nachladen können, kann die Option -f genutzt werden, um neue" + +#~ msgid "to load new builtins from the shared object FILENAME. The -d" +#~ msgstr "" +#~ "Shellfunktionen aus der dynamischen Bibiliothek Dateiname zu laden. -d" + +#~ msgid "option will delete a builtin previously loaded with -f. If no" +#~ msgstr "entlädt dynamisch geladene Shellfunktionen wieder. Wenn" + +#~ msgid "non-option names are given, or the -p option is supplied, a list" +#~ msgstr "keine Option oder -p angegeben ist, wird eine Liste der" + +#~ msgid "of builtins is printed. The -a option means to print every builtin" +#~ msgstr "Shellfunktionen ausgegeben. -a gibt eine Liste der Shellfunktionen" + +#~ msgid "with an indication of whether or not it is enabled. The -s option" +#~ msgstr "" +#~ "aus, in der ein- und ausgeschaltete Funktionen gekennzeichnet sind; -s" + +#~ msgid "restricts the output to the Posix.2 `special' builtins. The -n" +#~ msgstr "beschränkt die Ausgabe auf Posix.2-Shellfunktionen. -n" + +#~ msgid "option displays a list of all disabled builtins." +#~ msgstr "zeigt eine Liste aller abgeschalteter Funktionen an." + +# eval +#~ msgid "" +#~ "Read ARGs as input to the shell and execute the resulting command(s)." +#~ msgstr "Verbindet die Argumente zu einer Kommandozeile und führt sie aus." + +# getopts +#~ msgid "Getopts is used by shell procedures to parse positional parameters." +#~ msgstr "Shellprozeduren benutzen getopts, um die Kommandozeole auszuwerten." + +#~ msgid "OPTSTRING contains the option letters to be recognized; if a letter" +#~ msgstr "" +#~ "Optstring enthält die zu erkennenden Buchstaben. Folgt einem Buchstaben " +#~ "ein" + +#~ msgid "is followed by a colon, the option is expected to have an argument," +#~ msgstr "Doppelpunkt, dann erwartet die Funktion ein Argument, das durch ein" + +#~ msgid "which should be separated from it by white space." +#~ msgstr "Leerzeichen vom Optionszeichen getrennt ist." + +#~ msgid "Each time it is invoked, getopts will place the next option in the" +#~ msgstr "" +#~ "Bei jedem Aufruf weist getopt die nächste Option der Shell-Variablen " +#~ "$name zu," + +#~ msgid "shell variable $name, initializing name if it does not exist, and" +#~ msgstr "erzeugt sie gegebenenfalls und setzt den Zeiger in der" + +#~ msgid "the index of the next argument to be processed into the shell" +#~ msgstr "Shellvariablen OPTIND auf die nächste abzuarbeitende Option." + +#~ msgid "variable OPTIND. OPTIND is initialized to 1 each time the shell or" +#~ msgstr "OPTIND wird beim Start der Shell mit 1 initialisiert." + +#~ msgid "a shell script is invoked. When an option requires an argument," +#~ msgstr "Erwartet eine Option ein Argument, wird dieses Argument in der" + +#~ msgid "getopts places that argument into the shell variable OPTARG." +#~ msgstr "Shellvariablen OPTARG zurückgegeben." + +#~ msgid "getopts reports errors in one of two ways. If the first character" +#~ msgstr "" +#~ "Es gibt zwei Möglichkeiten der Fehlerbehandlung. Wenn das erste Zeichen " +#~ "von" + +#~ msgid "of OPTSTRING is a colon, getopts uses silent error reporting. In" +#~ msgstr "" +#~ "OPTSTRING ein Doppelpunkt ist, wird keine Fehlermeldung angezeigt " +#~ "(\"stille" + +#~ msgid "this mode, no error messages are printed. If an illegal option is" +#~ msgstr "" +#~ "Fehlermeldung\") Wenn ein ungültiges Optionszeichen erkannt wird, dann " +#~ "wird" + +#~ msgid "seen, getopts places the option character found into OPTARG. If a" +#~ msgstr "" +#~ "es der Shellvariablen OPTARG zugewiesen. Wenn ein Argument fehlt, dann" + +#~ msgid "required argument is not found, getopts places a ':' into NAME and" +#~ msgstr "wird der Shellvariablen NAME ein ':' zugewiesen und an OPTARG das " + +#~ msgid "sets OPTARG to the option character found. If getopts is not in" +#~ msgstr "" +#~ "Optionszeichen übergeben. Wenn getopt sich nicht im \"stillen\" Modus" + +#~ msgid "silent mode, and an illegal option is seen, getopts places '?' into" +#~ msgstr "" +#~ "befindet und ein ungültiges Optionszeichen erkannt wird, weist getopt der" + +#~ msgid "NAME and unsets OPTARG. If a required option is not found, a '?'" +#~ msgstr "" +#~ "Variable Name '?' zu und löscht OPTARG. Wenn eine erforderliche Option " +#~ "nicht" + +#~ msgid "is placed in NAME, OPTARG is unset, and a diagnostic message is" +#~ msgstr "" +#~ "gefunden wurde, wird `?` an NAME zugewiesen, OPTARG gelöscht und eine " +#~ "Fehler-" + +#~ msgid "printed." +#~ msgstr "meldung ausgegeben." + +#~ msgid "If the shell variable OPTERR has the value 0, getopts disables the" +#~ msgstr "" +#~ "Wenn die Shellvariable OPTERR den Wert 0 besitzt, unterdrückt getopts die " +#~ "Aus-" + +#~ msgid "printing of error messages, even if the first character of" +#~ msgstr "" +#~ "gabe von Fehlermeldungen, auch dann, wenn das erste Zeichen von OPTSTRING " +#~ "kein" + +#~ msgid "OPTSTRING is not a colon. OPTERR has the value 1 by default." +#~ msgstr "Doppelpunkt ist. OPTERR hat standardmäßig den Wert 1." + +#~ msgid "Getopts normally parses the positional parameters ($0 - $9), but if" +#~ msgstr "" +#~ "Getopts wertet normalerweise die übergebenen Parameter $0 - $9 aus, aber " +#~ "wenn" + +#~ msgid "more arguments are given, they are parsed instead." +#~ msgstr "mehr Argumente angegeben sind, werden diese auch ausgewertet." + +# exec +#~ msgid "Exec FILE, replacing this shell with the specified program." +#~ msgstr "Fürt Datei aus und ersetzt die Shell durch das angegebene Programm." + +#~ msgid "If FILE is not specified, the redirections take effect in this" +#~ msgstr "" +#~ "Wenn kein Kommando angegeben ist, werden die Ein-/Ausgabeumleitungen auf " +#~ "die" + +#~ msgid "shell. If the first argument is `-l', then place a dash in the" +#~ msgstr "" +#~ "aufrufende Shell angewendet. Wenn das erste Argument -l ist, dann wird " +#~ "dieses" + +#~ msgid "zeroth arg passed to FILE, as login does. If the `-c' option" +#~ msgstr "" +#~ "als nulltes Argument an die Datei übergeben (wie login). Mit der -c " +#~ "Option" + +#~ msgid "is supplied, FILE is executed with a null environment. The `-a'" +#~ msgstr "" +#~ "wird die Datei ohne gesetzte Umgebungsvariablen ausgeführt. Die -a Option" + +#~ msgid "option means to make set argv[0] of the executed process to NAME." +#~ msgstr "setzt argv[0] des ausgeführten Prozeßes auf Name." + +#~ msgid "If the file cannot be executed and the shell is not interactive," +#~ msgstr "" +#~ "Wenn die Datei nicht ausgeführt werden kann und die Shell nicht " +#~ "interaktiv ist," + +#~ msgid "then the shell exits, unless the variable \"no_exit_on_failed_exec\"" +#~ msgstr "" +#~ "dann wird sie verlassen, außer die Variable \"no_exit_on_failed_exec\" ist" + +#~ msgid "is set." +#~ msgstr "gesetzt." + +#~ msgid "is that of the last command executed." +#~ msgstr "der Rückkehrstatus des zuletzt ausgeführten Kommandos verwendet." + +# fc +#~ msgid "" +#~ "FIRST and LAST can be numbers specifying the range, or FIRST can be a" +#~ msgstr "" +#~ "Anfang und Ende bezeichnen einen Bereich oder, wenn Anfang eine " +#~ "Zeichenkette" + +#~ msgid "string, which means the most recent command beginning with that" +#~ msgstr "ist, das letzte Kommando welches mit dieser Zeichkette beginnt." + +#~ msgid "string." +#~ msgstr " " + +#~ msgid "" +#~ " -e ENAME selects which editor to use. Default is FCEDIT, then EDITOR," +#~ msgstr "" +#~ " -e Editor ist der aufzurufende Texteditor. Standardmäßig wird FCEDIT, " +#~ "dann" + +#~ msgid "" +#~ " then the editor which corresponds to the current readline editing" +#~ msgstr "" +#~ " EDITOR, anschließend der dem readline Modus entsprechende Editor" + +#~ msgid " mode, then vi." +#~ msgstr " und sonst vi aufgerufen." + +#~ msgid " -l means list lines instead of editing." +#~ msgstr " -l zeigt nur die Zeilen an." + +#~ msgid " -n means no line numbers listed." +#~ msgstr " -n unterdrückt das Anzeigen von Zeilennummern." + +#~ msgid "" +#~ " -r means reverse the order of the lines (making it newest listed " +#~ "first)." +#~ msgstr "" +#~ " -r dreht die Sortierreihenfolge um (jüngster Eintrag wird zuerst " +#~ "angezeigt)." + +#~ msgid "With the `fc -s [pat=rep ...] [command]' format, the command is" +#~ msgstr "" +#~ "Mit `fc -s [Muster=Ersetzung ...] [command]' wird das Kommando wiederholt," + +#~ msgid "re-executed after the substitution OLD=NEW is performed." +#~ msgstr "nachdem die Substitution Alt=Neu durchgeführt wurde." + +#~ msgid "A useful alias to use with this is r='fc -s', so that typing `r cc'" +#~ msgstr "" +#~ "Eine nützliche Aliasersetzung kann r='fc -s' sein, mit der z.B. durch `r " +#~ "cc`" + +#~ msgid "runs the last command beginning with `cc' and typing `r' re-executes" +#~ msgstr "" +#~ "das letzte Kommando welches mit `cc' beginnt aufgerufen wird und die " +#~ "Eingabe" + +# fg +#~ msgid "Place JOB_SPEC in the foreground, and make it the current job. If" +#~ msgstr "Bringt den mit `^Z' angehaltenen Job in den Vordergrund. Wenn eine" + +#~ msgid "JOB_SPEC is not present, the shell's notion of the current job is" +#~ msgstr "" +#~ "Jobbezeichnung angegeben ist, dann wird der zuletzt angehaltene Job im" + +#~ msgid "used." +#~ msgstr "Vordergrund gestartet." + +# bg +#~ msgid "Place JOB_SPEC in the background, as if it had been started with" +#~ msgstr "" +#~ "Startet einen mit `^Z' angehaltenen Job im Hintergrund, als ob er mit `&'" + +#~ msgid "`&'. If JOB_SPEC is not present, the shell's notion of the current" +#~ msgstr "" +#~ "gestartet worden wäre. Ist keine Jobbezeichnung angegeben, wird der " +#~ "zuletzt" + +#~ msgid "job is used." +#~ msgstr "angehaltene Job im Hintergrund gestartet." + +# hash +#~ msgid "For each NAME, the full pathname of the command is determined and" +#~ msgstr "" +#~ "Für jeden angegebenen Namen wird der vollständige Pfadname des Kommandos" + +#~ msgid "remembered. If the -p option is supplied, PATHNAME is used as the" +#~ msgstr "" +#~ "ermittelt und gemerkt. Wenn die -p Option angegeben wird, dann wird der" + +#~ msgid "full pathname of NAME, and no path search is performed. The -r" +#~ msgstr "" +#~ "Pfadname verwendet und keine Suche durchgeführt. Die -r Option löscht die" + +#~ msgid "option causes the shell to forget all remembered locations. If no" +#~ msgstr "" +#~ "gespeicherten Pfade. Wenn keine Option angegeben ist, dann werden alle" + +#~ msgid "" +#~ "arguments are given, information about remembered commands is displayed." +#~ msgstr "gespeicherten Kommandos angezeigt." + +# help +#~ msgid "Display helpful information about builtin commands. If PATTERN is" +#~ msgstr "" +#~ "Gibt Hilfetexte für die eingebauten Kommandos aus. Wenn ein Muster " +#~ "angegeben" + +#~ msgid "specified, gives detailed help on all commands matching PATTERN," +#~ msgstr "" +#~ "ist, dann wird eine detailierte Beschreibung der Kommandos angezeigt, die " +#~ "dem" + +#~ msgid "otherwise a list of the builtins is printed." +#~ msgstr "" +#~ "Muster entsprechen. Sonst werden die eingebauten Kommandos gelistet." + +# history +#~ msgid "Display the history list with line numbers. Lines listed with" +#~ msgstr "" +#~ "Zeigt den Kommandozeilenspeicher mit Zeilennummern an. Mit `*' markierte" + +#~ msgid "with a `*' have been modified. Argument of N says to list only" +#~ msgstr "" +#~ "Zeilen wurden verändert. Mit einer Zahl als Argument wird nur die " +#~ "angegebene" + +#~ msgid "the last N lines. The -c option causes the history list to be" +#~ msgstr "" +#~ "Anzahl Zeilen ausgegeben. Mit der `-c' Option kann der " +#~ "Kommandozeilenspeicher" + +#~ msgid "" +#~ "cleared by deleting all of the entries. The `-w' option writes out the" +#~ msgstr "" +#~ "gelöscht werden. Ist die `-w' Option angegeben, wird der Kommandozeilen-" + +#~ msgid "" +#~ "current history to the history file; `-r' means to read the file and" +#~ msgstr "" +#~ "speicher in die history Datei geschrieben. `-r' liest diese Datei und fügt" + +#~ msgid "append the contents to the history list instead. `-a' means" +#~ msgstr "" +#~ "ihren Inhalt an den Kommandozeilenspeicher an. Durch die Option `-a' " +#~ "kann der" + +#~ msgid "to append history lines from this session to the history file." +#~ msgstr "" +#~ "Kommandozeilenspeicher der Sitzung an die history Datei angefügt werden." + +#~ msgid "Argument `-n' means to read all history lines not already read" +#~ msgstr "" +#~ "Das Argument `-n' bewirkt, daß alle Zeilen die noch nicht aus der history " +#~ "Datei" + +#~ msgid "from the history file and append them to the history list. If" +#~ msgstr "" +#~ "gelesen wurden an den Kommandozeilenspeicher angefügt werden. Wenn ein " +#~ "Datei-" + +#~ msgid "FILENAME is given, then that is used as the history file else" +#~ msgstr "" +#~ "name angegeben ist, dann wird dieser als Name der history Datei " +#~ "verwendet. Sonst" + +#~ msgid "if $HISTFILE has a value, that is used, else ~/.bash_history." +#~ msgstr "" +#~ "wird der Inhalt der Variablen $HISTFILE und anschließend ~/.bash_history " +#~ "verwendet." + +#~ msgid "If the -s option is supplied, the non-option ARGs are appended to" +#~ msgstr "" +#~ "Durch die -s Option wird bewirkt, daß die Nicht-Options-Argumente als " +#~ "eigene" + +#~ msgid "the history list as a single entry. The -p option means to perform" +#~ msgstr "" +#~ "Zeile an den Kommandospeicher angefügt werden. Mit -p wird für jedes " +#~ "Argument" + +#~ msgid "" +#~ "history expansion on each ARG and display the result, without storing" +#~ msgstr "" +#~ "die Kommandosubstitution durchgeführt und das Ergebnis angezeigt, ohne " +#~ "jedoch" + +#~ msgid "anything in the history list." +#~ msgstr "etwas im Kommandozeilenspeicher abzulegen." + +# jobs +#~ msgid "Lists the active jobs. The -l option lists process id's in addition" +#~ msgstr "" +#~ "Gibt eine Liste der aktiven Jobs aus. Mit der -l Option werden " +#~ "zusätzlich die" + +#~ msgid "to the normal information; the -p option lists process id's only." +#~ msgstr "" +#~ "Prozeßnummern und mit der -p Option nur die Prozeßnummern ausgsgegeben." + +#~ msgid "" +#~ "If -n is given, only processes that have changed status since the last" +#~ msgstr "" +#~ "Die Option -n bewirkt, daß nur Jobs angezeigt werden, die ihren Status " +#~ "seid dem" + +#~ msgid "" +#~ "notification are printed. JOBSPEC restricts output to that job. The" +#~ msgstr "" +#~ "letzten Aufruf geändert haben. Jobbez. beschränkt die Anzeige auf diesen " +#~ "Job." + +#~ msgid "-r and -s options restrict output to running and stopped jobs only," +#~ msgstr "" +#~ "-r zeigt nur laufende und -s nur gestoppte Jobs an. Wenn keine Optionen" + +#~ msgid "respectively. Without options, the status of all active jobs is" +#~ msgstr "angegeben sind, dann wird der Status aller aktiven Jobs angezeigt." + +#~ msgid "" +#~ "printed. If -x is given, COMMAND is run after all job specifications" +#~ msgstr "" +#~ "Wenn -x in der Kommandozeile angegeben ist, wird das Kommando ausgeführt " +#~ "und" + +#~ msgid "" +#~ "that appear in ARGS have been replaced with the process ID of that job's" +#~ msgstr "vorher alle vorkommenden Jobspezifikationen durch ihre Prozeßnummer" + +#~ msgid "process group leader." +#~ msgstr "ersetzt." + +# disown +#~ msgid "Removes each JOBSPEC argument from the table of active jobs." +#~ msgstr "Entfernt die angegebenen Jobs von der Liste der aktiven Jobs." + +# kill +#~ msgid "Send the processes named by PID (or JOB) the signal SIGSPEC. If" +#~ msgstr "" +#~ "Sendet den durch pid (oder job) angegebenen Prozessen das Signal " +#~ "SIGSPEC. Wenn" + +#~ msgid "" +#~ "SIGSPEC is not present, then SIGTERM is assumed. An argument of `-l'" +#~ msgstr "" +#~ "kein Signal angegeben ist wird SIGTERM gesendet. Mit der Option -l kann " +#~ "eine" + +#~ msgid "lists the signal names; if arguments follow `-l' they are assumed to" +#~ msgstr "" +#~ "Liste der möglichen Signalnamen angezeigt werden. Wenn Zahlen nach der " +#~ "Option" + +#~ msgid "be signal numbers for which names should be listed. Kill is a shell" +#~ msgstr "" +#~ "angegeben werden, wird deren Signalbezeichnung angezeigt. Kill ist aus " +#~ "zwei" + +#~ msgid "builtin for two reasons: it allows job IDs to be used instead of" +#~ msgstr "" +#~ "Gründen eine Shellfunktion: es können Jobbezeichnungen anstatt " +#~ "Prozeßnummern" + +#~ msgid "process IDs, and, if you have reached the limit on processes that" +#~ msgstr "" +#~ "genutzt werden und, wenn die maximale Anzahl laufender Prozesse erreicht " +#~ "ist" + +#~ msgid "" +#~ "you can create, you don't have to start a process to kill another one." +#~ msgstr "" +#~ "braucht kein weiterer Prozeß gestartet zu werden, um einen anderen zu " +#~ "beenden." + +# let +#~ msgid "Each ARG is an arithmetic expression to be evaluated. Evaluation" +#~ msgstr "" +#~ "Jedes Argument ist ein auszuwertender arithmetischer Ausdruck. Es werden " +#~ "long" + +#~ msgid "is done in long integers with no check for overflow, though division" +#~ msgstr "" +#~ "integer Variablen verwendet. Ein Überlauftest wird nicht ausgeführt, " +#~ "jedoch" + +#~ msgid "by 0 is trapped and flagged as an error. The following list of" +#~ msgstr "" +#~ "wird eine Division durch 0 erkannt und als Fehler gekennzeichnet. Die" + +#~ msgid "operators is grouped into levels of equal-precedence operators." +#~ msgstr "Liste von Operatoren ist in Gruppen gleichen Vorrangs geordnet." + +#~ msgid "The levels are listed in order of decreasing precedence." +#~ msgstr "Die Gruppen selbst sind nach abnehmendem Vorrang sortiert." + +#~ msgid "\t-, +\t\tunary minus, plus" +#~ msgstr "\t-, +\t\tVorzeichen." + +#~ msgid "\t!, ~\t\tlogical and bitwise negation" +#~ msgstr "\t!, ~\t\tLogische und bitweise Negation." + +#~ msgid "\t*, /, %\t\tmultiplication, division, remainder" +#~ msgstr "\t*, /, %\t\tMultiplikation, Division und Modulo." + +#~ msgid "\t+, -\t\taddition, subtraction" +#~ msgstr "\t+, -\t\tAddition und Subtraktion." + +#~ msgid "\t<<, >>\t\tleft and right bitwise shifts" +#~ msgstr "\t<<, >>\t\tBitweise Links- und Rechtsverschiebung." + +#~ msgid "\t<=, >=, <, >\tcomparison" +#~ msgstr "\t<=, >=, <, >\tVergleichsoperatoren." + +#~ msgid "\t==, !=\t\tequality, inequality" +#~ msgstr "\t==, !=\t\tGleich und ungleich." + +#~ msgid "\t&\t\tbitwise AND" +#~ msgstr "\t&\t\tBitweises UND." + +#~ msgid "\t^\t\tbitwise XOR" +#~ msgstr "\t^\t\tBitweises XOR." + +#~ msgid "\t|\t\tbitwise OR" +#~ msgstr "\t|\t\tBitweises OR." + +#~ msgid "\t&&\t\tlogical AND" +#~ msgstr "\t&&\t\tLogisches UND." + +#~ msgid "\t||\t\tlogical OR" +#~ msgstr "\t||\t\tLogisches ODER." + +#~ msgid "\texpr ? expr : expr" +#~ msgstr "\tAusdruck1 ? Ausdruck2 : Ausdruck3" + +#~ msgid "\t\t\tconditional expression" +#~ msgstr "\t\t\tBedingte Befehlsausführung." + +#~ msgid "\t=, *=, /=, %=," +#~ msgstr "\t=, *=, /=, %=," + +#~ msgid "\t+=, -=, <<=, >>=," +#~ msgstr "\t+=, -=, <<=, >>=," + +#~ msgid "\t&=, ^=, |=\tassignment" +#~ msgstr "\t&=, ^=, |=\tZuweisungen." + +#~ msgid "is replaced by its value (coerced to a long integer) within" +#~ msgstr "" +#~ "Ausdruck durch ihren in long integer umgewandelten Wert ersetzt. Um " + +#~ msgid "an expression. The variable need not have its integer attribute" +#~ msgstr "die Variable in einem Ausdruck verwenden zu können, muß ihr " + +#~ msgid "turned on to be used in an expression." +#~ msgstr "Integerattribut nicht aktiviert sein." + +#~ msgid "Operators are evaluated in order of precedence. Sub-expressions in" +#~ msgstr "Die Operatoren werden in Reihenfolge ihres Vorrangs ausgewertet." + +#~ msgid "parentheses are evaluated first and may override the precedence" +#~ msgstr "" +#~ "Geklammerte Teilausdrücke werden zuerst ausgewertet und können von den" + +#~ msgid "rules above." +#~ msgstr "oben angegebenen Vorrangregeln abweichen." + +#~ msgid "If the last ARG evaluates to 0, let returns 1; 0 is returned" +#~ msgstr "Wenn das zuletzt ausgewertete Argument 0 ergibt, liefert let " + +#~ msgid "otherwise." +#~ msgstr "1 als Rückgabewert, sonst 0." + +# read +#~ msgid "One line is read from the standard input, and the first word is" +#~ msgstr "" +#~ "Es wird eine Zeile von der Standardeingabe gelesen und das erste Wort der" + +#~ msgid "" +#~ "assigned to the first NAME, the second word to the second NAME, and so" +#~ msgstr "" +#~ "ersten Variablen NAME zugewiesen, das zweite Wort der zweiten Variablen " +#~ "und so" + +#~ msgid "" +#~ "on, with leftover words assigned to the last NAME. Only the characters" +#~ msgstr "" +#~ "weiter, bis ein Wort der letzten Variablen zugewiesen wurde. Nur die in " +#~ "$IFS" + +#~ msgid "found in $IFS are recognized as word delimiters. The return code is" +#~ msgstr "" +#~ "angegebenen Zeichen werden als Trennzeichen erkannt. Wenn kein EOF " +#~ "Zeichen" + +#~ msgid "" +#~ "zero, unless end-of-file is encountered. If no NAMEs are supplied, the" +#~ msgstr "" +#~ "aufgetreten ist, ist der Rückgabewert Null. Wenn kein NAME angegeben " +#~ "wurde," + +#~ msgid "" +#~ "line read is stored in the REPLY variable. If the -r option is given," +#~ msgstr "" +#~ "verwendet read die REPLY Variable. Durch die Option -r wird das " +#~ "Auswerten von" + +#~ msgid "this signifies `raw' input, and backslash escaping is disabled. If" +#~ msgstr "" +#~ "mit `\\' markierten Sonderzeichen unterdrückt. Wenn die Option -r " +#~ "angegeben" + +#~ msgid "the `-p' option is supplied, the string supplied as an argument is" +#~ msgstr "" +#~ "ist, dann wird die Eingabeaufforderung ohne einen abschließenden " +#~ "Zeilenumbruch" + +#~ msgid "" +#~ "output without a trailing newline before attempting to read. If -a is" +#~ msgstr "" +#~ "angezeigt. Wenn die Option -a angegeben ist, dann wird die Eingabe an die" + +#~ msgid "" +#~ "supplied, the words read are assigned to sequential indices of ARRAY," +#~ msgstr "" +#~ "Feldvariable ARRAY übergeben und für jeden Eintrag der Index von Null " +#~ "beginnend" + +#~ msgid "starting at zero. If -e is supplied and the shell is interactive," +#~ msgstr "" +#~ "um Eins erhöht wird. Mit der -e Option wird bei einer interaktiven Shell " +#~ "die" + +#~ msgid "readline is used to obtain the line." +#~ msgstr "" +#~ "die readline Funktionen aktiviert, um die Eingabezeile zu editieren." + +# return +#~ msgid "" +#~ "Causes a function to exit with the return value specified by N. If N" +#~ msgstr "" +#~ "Beendet eine Shellfunktion und setzt den Rückgabewert auf N. Wenn kein " +#~ "Rückga-" + +#~ msgid "is omitted, the return status is that of the last command." +#~ msgstr "" +#~ "bewert angegeben ist, wird der des zuletzt ausgeführten Kommandos " +#~ "verwendet." + +# set +#~ msgid " -a Mark variables which are modified or created for export." +#~ msgstr "" +#~ " -a Markiert erzeugte oder veränderte Variablen als exportierbar." + +#~ msgid " -b Notify of job termination immediately." +#~ msgstr " -b Zeigt das Beenden von Prozessen sofort an." + +#~ msgid " -e Exit immediately if a command exits with a non-zero status." +#~ msgstr "" +#~ " -e Beendet die Shell sofort, wenn ein Kommando ein Fehler " +#~ "zurückliefert." + +#~ msgid " -f Disable file name generation (globbing)." +#~ msgstr " -f Unterdrückt das Erzeugen von Dateinamen." + +#~ msgid " -h Remember the location of commands as they are looked up." +#~ msgstr " -h Speichert die eingegebenen Kommandos sofort." + +#~ msgid "" +#~ " -i Force the shell to be an \"interactive\" one. Interactive shells" +#~ msgstr "" +#~ " -i Erzwingt, daß die Shell interaktiv arbeitet. Interaktive Shells" + +#~ msgid " always read `~/.bashrc' on startup." +#~ msgstr "" +#~ " interpretieren beim Aufrufen den Inhalt der Datei `~/.bashrc'." + +#~ msgid " -k All assignment arguments are placed in the environment for a" +#~ msgstr "" +#~ " -k Die komplette Kommandozeile wird in die Umgebung der Funktion" + +#~ msgid " command, not just those that precede the command name." +#~ msgstr "" +#~ " geschrieben, nicht bloß die Argumente nach dem Funktionsnamen." + +#~ msgid " -m Job control is enabled." +#~ msgstr " -m Jobsteuerung wird aktiviert." + +#~ msgid " -n Read commands but do not execute them." +#~ msgstr " -n Kommandos werden gelesen aber nicht ausgeführt." + +#~ msgid " -o option-name" +#~ msgstr " -o Option" + +#~ msgid " Set the variable corresponding to option-name:" +#~ msgstr " Setzt die angegebene Option:" + +#~ msgid " allexport same as -a" +#~ msgstr " allexport Wie die Option -a." + +#~ msgid " braceexpand same as -B" +#~ msgstr " braceexpand Wie die Option -B." + +#~ msgid " emacs use an emacs-style line editing interface" +#~ msgstr "" +#~ " emacs Schaltet den Kommandozeileneditor in den emacs-" +#~ "Stil." + +#~ msgid " errexit same as -e" +#~ msgstr " errexit Wie die Option -e." + +#~ msgid " hashall same as -h" +#~ msgstr " hashall Wie die Option -h." + +#~ msgid " histexpand same as -H" +#~ msgstr " histexpand Wie die Option -H." + +#~ msgid " ignoreeof the shell will not exit upon reading EOF" +#~ msgstr "" +#~ " ignoreeof Shell wird nach dem Lesen von EOF nicht " +#~ "verlassen ." + +#~ msgid " interactive-comments" +#~ msgstr " interactive-comments" + +#~ msgid "" +#~ " allow comments to appear in interactive commands" +#~ msgstr "" +#~ " Kommentare werden auch in der Kommandozeile " +#~ "erlaubt." + +#~ msgid " keyword same as -k" +#~ msgstr " keyword Wie die Option -k." + +#~ msgid " monitor same as -m" +#~ msgstr " monitor Wie die Option -m." + +#~ msgid " noclobber same as -C" +#~ msgstr " noclobber Wie die Option -C." + +#~ msgid " noexec same as -n" +#~ msgstr " noexec Wie die Option -n." + +#~ msgid " noglob same as -f" +#~ msgstr " noglob Wie die Option -f." + +#~ msgid " notify save as -b" +#~ msgstr " notify Wie die Option -b." + +#~ msgid " nounset same as -u" +#~ msgstr " nounset Wie die Option -u." + +#~ msgid " onecmd same as -t" +#~ msgstr " onecmd Wie die Option -t." + +#~ msgid " physical same as -P" +#~ msgstr " physical Wie die Option -P." + +#~ msgid "" +#~ " posix change the behavior of bash where the default" +#~ msgstr "" +#~ " posix Ändert das Verhalten der Shell, wo sie vom," + +#~ msgid "" +#~ " operation differs from the 1003.2 standard to" +#~ msgstr " 1003.2 Standard abweicht, zu einem POSIX " + +#~ msgid " match the standard" +#~ msgstr " kompatibelen Verhalten." + +#~ msgid " privileged same as -p" +#~ msgstr " privileged Wie die Option -p." + +#~ msgid " verbose same as -v" +#~ msgstr " verbose Wie die Option -v." + +#~ msgid " vi use a vi-style line editing interface" +#~ msgstr "" +#~ " vi Schaltet den Kommandozeileneditor in den vi-Stil." + +#~ msgid " xtrace same as -x" +#~ msgstr " xtrace Wie die Option -x." + +#~ msgid "" +#~ " -p Turned on whenever the real and effective user ids do not match." +#~ msgstr "" +#~ " -p Ist aktiviert, wenn die reale und effektive Nutzer ID nicht " +#~ "überein-" + +#~ msgid " Disables processing of the $ENV file and importing of shell" +#~ msgstr "" +#~ " stimmen. Die $ENV Datei wird nicht ausgeführt und keine " +#~ "Shellfunk-" + +#~ msgid "" +#~ " functions. Turning this option off causes the effective uid and" +#~ msgstr "" +#~ " tionen importiert. Das Deaktivieren dieser Option setzt die " +#~ "Effektive" + +#~ msgid " gid to be set to the real uid and gid." +#~ msgstr " uid und gid auf die Reale uid und gid." + +#~ msgid " -t Exit after reading and executing one command." +#~ msgstr "" +#~ " -t Beendet die Shell sofort nach Ausfühern eines einzelnen Kommandos." + +#~ msgid " -u Treat unset variables as an error when substituting." +#~ msgstr "" +#~ " -u Der Versuch leere (ungesetzte) Variablen zu erweitern erzeugt " +#~ "einen Fehler." + +#~ msgid " -v Print shell input lines as they are read." +#~ msgstr " -v Gibt die Kommandozeilen aus wie sie gelesenen wurden." + +#~ msgid " -x Print commands and their arguments as they are executed." +#~ msgstr "" +#~ " -x Gibt die Kommandos mit ihren Argumenten aus wie es ausgeführt " +#~ "wird." + +#~ msgid " -B the shell will perform brace expansion" +#~ msgstr " -B Schaltet die Klammernerweiterung der Shell ein." + +#~ msgid " -H Enable ! style history substitution. This flag is on" +#~ msgstr "" +#~ " -H Schaltet den Zugriff auf den Kommandozeilenspeicher durch `!' ein." + +#~ msgid " by default." +#~ msgstr " Diese Option ist standardmäßig aktiviert." + +#~ msgid " -C If set, disallow existing regular files to be overwritten" +#~ msgstr "" +#~ " -C Verhindert das Überschreiben von existierenden Dateien durch" + +#~ msgid " by redirection of output." +#~ msgstr " Umleiten der Ausgabe (wie noclobber)." + +#~ msgid " -P If set, do not follow symbolic links when executing commands" +#~ msgstr "" +#~ " -P Symbolische Verweise werden beim Ausführen von Kommandos, wie z." +#~ "B. cd" + +#~ msgid " such as cd which change the current directory." +#~ msgstr " welches das aktuelle Arbeitsverzeichnis ändert, ignoriert." + +#~ msgid "Using + rather than - causes these flags to be turned off. The" +#~ msgstr "" +#~ "Durch `+' an Stelle von `-' kann eine Option deaktiviert werden. Die " +#~ "Optionen" + +#~ msgid "flags can also be used upon invocation of the shell. The current" +#~ msgstr "" +#~ "können auch beim Aufruf der Shell benutzt werden. Die gegenwärtig " +#~ "aktivierten" + +#~ msgid "" +#~ "set of flags may be found in $-. The remaining n ARGs are positional" +#~ msgstr "" +#~ "Optionen sind in der Variablen $- gespeichert. Die verbleibenden n " +#~ "Argumente" + +#~ msgid "parameters and are assigned, in order, to $1, $2, .. $n. If no" +#~ msgstr "" +#~ "sind Parameter und werden den Variablen $1, $2, .. $n zugewiesen. Wenn " +#~ "kein" + +#~ msgid "ARGs are given, all shell variables are printed." +#~ msgstr "Argument angegeben ist, dann werden alle Shellvariablen ausgegeben." + +# unset +#~ msgid "For each NAME, remove the corresponding variable or function. Given" +#~ msgstr "" +#~ "Für jeden angegebenen NAMEn wird die entsprechende Variable oder Funktion " +#~ "ge-" + +#~ msgid "the `-v', unset will only act on variables. Given the `-f' flag," +#~ msgstr "" +#~ "löscht. Mit `-v' werden nur Variablen und mit `-f' nur Funktionen " +#~ "gelöscht." + +#~ msgid "unset will only act on functions. With neither flag, unset first" +#~ msgstr "" +#~ "Wenn kein Schalter angegeben ist, wird zunächst eine Variable gesucht und " +#~ "wenn" + +#~ msgid "tries to unset a variable, and if that fails, then tries to unset a" +#~ msgstr "" +#~ "eine solche nicht gefunden wurde, dann wird versucht eine Funktion zu " +#~ "löschen." + +#~ msgid "" +#~ "function. Some variables (such as PATH and IFS) cannot be unset; also" +#~ msgstr "" +#~ "Einige Variablen (z.B. PATH und IFS) können nicht gelöscht werden. Siehe" + +#~ msgid "see readonly." +#~ msgstr "diesbezüglich auch die Hilfe der Funktion readonly." + +# export +#~ msgid "NAMEs are marked for automatic export to the environment of" +#~ msgstr "" +#~ "Die NAMEn werden für den automatischen Export in die Umgebung von der " +#~ "Shell" + +#~ msgid "subsequently executed commands. If the -f option is given," +#~ msgstr "" +#~ "gestarteten Prozesse markiert. Wenn die -f Option angegenen ist, dann " +#~ "bezeich-" + +#~ msgid "the NAMEs refer to functions. If no NAMEs are given, or if `-p'" +#~ msgstr "" +#~ "nen die NAME'n Funktionen. Wenn keine NAMEn angegeben sind, oder die `-p'" + +#~ msgid "is given, a list of all names that are exported in this shell is" +#~ msgstr "" +#~ "Option angegeben ist, dann wird eine Liste aller von der Shell " +#~ "exportierter" + +#~ msgid "printed. An argument of `-n' says to remove the export property" +#~ msgstr "" +#~ "Namen ausgegeben. Mit dem Argument `-n' wird die Exporteigenschaft des " +#~ "NAMENs" + +#~ msgid "from subsequent NAMEs. An argument of `--' disables further option" +#~ msgstr "" +#~ "gelöscht. Ein Argument `--' verhindert, daß nach diesem Zeichen weitere" + +#~ msgid "processing." +#~ msgstr "Optionen ausgewertet werden." + +# readonly +#~ msgid "" +#~ "The given NAMEs are marked readonly and the values of these NAMEs may" +#~ msgstr "" +#~ "Die angegebenen NAMEn werden als Nur-Lesen markiert. Deren Inhalte können" + +#~ msgid "not be changed by subsequent assignment. If the -f option is given," +#~ msgstr "" +#~ "nicht mehr geändert werden. Wenn die -f Option angegeben wird, dann " +#~ "werden nur" + +#~ msgid "then functions corresponding to the NAMEs are so marked. If no" +#~ msgstr "" +#~ "Funktionen markiert. Ohne oder mit dem `-p' Argument, werden alle auf " +#~ "Nur- " + +#~ msgid "" +#~ "arguments are given, or if `-p' is given, a list of all readonly names" +#~ msgstr "" +#~ "Lesen gesetzte Namen ausgegeben. Mit dem Argument `-n' kann die Nur-Lese" + +#~ msgid "" +#~ "is printed. An argument of `-n' says to remove the readonly property" +#~ msgstr "" +#~ "Eigenschaft für die angegebenen Namen entfernt werden. Der `-a' Schalter" + +#~ msgid "from subsequent NAMEs. The `-a' option means to treat each NAME as" +#~ msgstr "" +#~ "bewirkt, daß jeder Name als Feldvariable behandelt wird. Das Argument " +#~ "`--'" + +#~ msgid "an array variable. An argument of `--' disables further option" +#~ msgstr "unterdrückt das Auswerten weiterer Optionen." + +# shift +#~ msgid "" +#~ "The positional parameters from $N+1 ... are renamed to $1 ... If N is" +#~ msgstr "" +#~ "Die Positionsvariablen $N+1 ... werden nach $1 ... umbenannt. Wenn N " +#~ "nicht" + +#~ msgid "not given, it is assumed to be 1." +#~ msgstr "angegeben ist, dann wird 1 verwendet." + +# source +#~ msgid "Read and execute commands from FILENAME and return. The pathnames" +#~ msgstr "" +#~ "Liest und führt anschließend die Kommandos in DATEINAME aus. $PATH wird" + +#~ msgid "in $PATH are used to find the directory containing FILENAME." +#~ msgstr "als Suchpfad benutzt, um DATEINAME zu finden." + +# suspend +#~ msgid "Suspend the execution of this shell until it receives a SIGCONT" +#~ msgstr "" +#~ "Hält das Ausführen der Shell solange an, bis sie das Signal SIGCONT " +#~ "empfängt." + +#~ msgid "signal. The `-f' if specified says not to complain about this" +#~ msgstr "" +#~ "Die `-f' Option unterdrückt eine Warnung, wenn es sich um eine Login Shell" + +#~ msgid "being a login shell if it is; just suspend anyway." +#~ msgstr "handelt und hält auch deren Abarbeitung an." + +# test +#~ msgid "Exits with a status of 0 (trueness) or 1 (falseness) depending on" +#~ msgstr "" +#~ "Liefert den Rückgabewert 0 (wahr) oder 1 (falsch), abhängig vom Ergebnis " +#~ "des" + +#~ msgid "the evaluation of EXPR. Expressions may be unary or binary. Unary" +#~ msgstr "" +#~ "Ausdruckes EXPR. Die Ausdrücke können ein- (unär) oder zweistellig " +#~ "(binär) sein." + +#~ msgid "expressions are often used to examine the status of a file. There" +#~ msgstr "" +#~ "Einstellige Ausdrücke werden oft zum Ermitteln eines Dateizustandes " +#~ "verwendet." + +#~ msgid "are string operators as well, and numeric comparison operators." +#~ msgstr "" +#~ "Es gibt außerden Zeichenketten- und numerische Vergleichsoperatoren." + +#~ msgid "File operators:" +#~ msgstr "Datei Operatoren:" + +#~ msgid " -b FILE True if file is block special." +#~ msgstr "" +#~ " -b DATEI Wahr, wenn der Dateiname ein Blockgerät bezeichnet." + +#~ msgid " -c FILE True if file is character special." +#~ msgstr "" +#~ " -c DATEI Wahr, wenn der Dateiname ein sequentielles Gerät " +#~ "bezeichnet." + +#~ msgid " -d FILE True if file is a directory." +#~ msgstr " -d DATEI Wahr, wenn es ein Verzeichnis ist." + +#~ msgid " -e FILE True if file exists." +#~ msgstr " -e DATEI Wahr, wenn die Datei existiert." + +#~ msgid " -f FILE True if file exists and is a regular file." +#~ msgstr "" +#~ " -f DATEI Wahr, wenn die Datei existiert und eine reguläre Datei " +#~ "ist." + +#~ msgid " -g FILE True if file is set-group-id." +#~ msgstr " -g DATEI Wahr, wenn das SGID Bit gesetzt ist." + +#~ msgid " -h FILE True if file is a symbolic link. Use \"-L\"." +#~ msgstr "" +#~ " -h DATEI Wahr, wenn FILE symbolischer Verweis ist. (Besser -L " +#~ "verw.)" + +#~ msgid " -L FILE True if file is a symbolic link." +#~ msgstr " -L DATEI Wahr, wenn FIIE einen symbolischen Verweis ist." + +#~ msgid " -k FILE True if file has its \"sticky\" bit set." +#~ msgstr "" +#~ " -k DATEI Wahr, wenn nur der Besitzer die Datei ändern darf " +#~ "(sticky)." + +#~ msgid " -p FILE True if file is a named pipe." +#~ msgstr "" +#~ " -p DATEI Wahr, wenn FILE eine benannte Pipeline (named pipe) " +#~ "ist." + +#~ msgid " -r FILE True if file is readable by you." +#~ msgstr "" +#~ " -r DATEI Wahr, wenn die Datei vom aktuellen Benutzer lesbar ist." + +#~ msgid " -s FILE True if file exists and is not empty." +#~ msgstr "" +#~ " -s DATEI Wahr, wenn die Datei existiert und nicht leer ist." + +#~ msgid " -S FILE True if file is a socket." +#~ msgstr " -S DATEI Wahr, wenn die Datei ein \"Socket\" ist." + +#~ msgid " -t FD True if FD is opened on a terminal." +#~ msgstr "" +#~ " -t FD Wahr, wenn die Dateinummer FD für ein Terminal " +#~ "geöffnet ist." + +#~ msgid " -u FILE True if the file is set-user-id." +#~ msgstr "" +#~ " -u DATEI Wahr, wenn für diese Datei das SUID Bit gesetzt ist." + +#~ msgid " -w FILE True if the file is writable by you." +#~ msgstr "" +#~ " -w DATEI Wahr, wenn die Datei vom aktuellen Benutzer schreibbar " +#~ "ist." + +#~ msgid " -x FILE True if the file is executable by you." +#~ msgstr "" +#~ " -x DATEI Wahr, wenn die Datei vom aktuellen Benutzer ausführbar " +#~ "ist." + +#~ msgid " -O FILE True if the file is effectively owned by you." +#~ msgstr "" +#~ " -O DATEI Wahr, wenn der aktuelle Benutzer Eigentümer der Datei " +#~ "ist." + +#~ msgid "" +#~ " -G FILE True if the file is effectively owned by your group." +#~ msgstr "" +#~ " -G DATEI Wahr, wenn GID des Benutzers und der Datei " +#~ "übereinstimmen." + +#~ msgid " FILE1 -nt FILE2 True if file1 is newer than (according to" +#~ msgstr "" +#~ " DATEI1 -nt DATEI2 Wahr, wenn der letzte Änderungszeitpunkt von DATEI1 " +#~ "jünger" + +#~ msgid " modification date) file2." +#~ msgstr " ist als der von DATEI2." + +#~ msgid " FILE1 -ot FILE2 True if file1 is older than file2." +#~ msgstr " DATEI1 -ot DATEI2 Wahr, wenn DATEI1 älter ist als DATEI2." + +#~ msgid " FILE1 -ef FILE2 True if file1 is a hard link to file2." +#~ msgstr "" +#~ " DATEI1 -ef DATEI2 Wahr, wenn beide Inodes übereinstimmen (hard link)." + +#~ msgid "String operators:" +#~ msgstr "Operatoren für Zeichenketten (Strings):" + +#~ msgid " -z STRING True if string is empty." +#~ msgstr " -z STRING Wahr, wenn die Länge der Zeichenkette Null ist." + +#~ msgid " -n STRING" +#~ msgstr " -n STRING" + +#~ msgid " STRING True if string is not empty." +#~ msgstr "" +#~ " STRING Wahr, wenn die Länge der Zeichenkette größer als Null " +#~ "ist." + +#~ msgid " STRING1 = STRING2" +#~ msgstr " STRING1 = STRING2" + +#~ msgid " True if the strings are equal." +#~ msgstr " Wahr, wenn die Zeichenketten identisch sind." + +#~ msgid " STRING1 != STRING2" +#~ msgstr " STRING1 != STRING2" + +#~ msgid " True if the strings are not equal." +#~ msgstr "" +#~ " Wahr, wenn die Zeichenketten unterschiedlich sind." + +#~ msgid " STRING1 < STRING2" +#~ msgstr " STRING1 < STRING2" + +#~ msgid "" +#~ " True if STRING1 sorts before STRING2 lexicographically" +#~ msgstr "" +#~ " Wahr, wenn STRING1 vor STRING2 alphabetisch geordnet " +#~ "ist." + +#~ msgid " STRING1 > STRING2" +#~ msgstr " STRING1 > STRING2" + +#~ msgid "" +#~ " True if STRING1 sorts after STRING2 lexicographically" +#~ msgstr "" +#~ " Wahr, wenn STRING1 nach STRING2 alphabetisch geordnet " +#~ "ist." + +#~ msgid "Other operators:" +#~ msgstr "Andere Operatoren:" + +#~ msgid " ! EXPR True if expr is false." +#~ msgstr " ! EXPR Wahr, wenn der Ausdruck EXPR `falsch' liefert." + +#~ msgid " EXPR1 -a EXPR2 True if both expr1 AND expr2 are true." +#~ msgstr "" +#~ " EXPR1 -a EXPR2 Wahr, wenn die Ausdrücke EXPR1 und EXPR2 `wahr' " +#~ "liefern." + +#~ msgid " EXPR1 -o EXPR2 True if either expr1 OR expr2 is true." +#~ msgstr "" +#~ " EXPR1 -o EXPR2 Wahr, wenn entweder EXPR1 oder EXPR2 wahr liefern." + +#~ msgid " arg1 OP arg2 Arithmetic tests. OP is one of -eq, -ne," +#~ msgstr "" +#~ " arg1 OP arg2 Arithmetische Operatoren. OP kann -eq, -ne, -lt, -le, -" +#~ "gt" + +#~ msgid " -lt, -le, -gt, or -ge." +#~ msgstr " oder -ge sein." + +#~ msgid "Arithmetic binary operators return true if ARG1 is equal, not-equal," +#~ msgstr "" +#~ "Diese binären arithmetischen Operatoren liefern Wahr, wenn ARG1 gleich," + +#~ msgid "" +#~ "less-than, less-than-or-equal, greater-than, or greater-than-or-equal" +#~ msgstr "" +#~ "ungleich, kleiner als, kleiner gleich, größer als oder größer gleich" + +#~ msgid "than ARG2." +#~ msgstr "ARG2 ist." + +# [ +#~ msgid "This is a synonym for the \"test\" builtin, but the last" +#~ msgstr "" +#~ "Dies ist ein Synonym für die Shellfunktion test. Das letzte Argument muß " +#~ "ein" + +#~ msgid "argument must be a literal `]', to match the opening `['." +#~ msgstr "`]' sein, das mit dem öffnenden `[' korrespondiert." + +# times +#~ msgid "Print the accumulated user and system times for processes run from" +#~ msgstr "" +#~ "Gibt die verbrauchte Benutzer- und Systemzeit für die Shell und der von" + +#~ msgid "the shell." +#~ msgstr "ihr gestarteten Prozesse aus." + +# trap +#~ msgid "The command ARG is to be read and executed when the shell receives" +#~ msgstr "" +#~ "Die Shell fängt die in SIG_SPEC angegebenen Signale ab führt das Kommando " +#~ "ARG" + +#~ msgid "signal(s) SIGNAL_SPEC. If ARG is absent all specified signals are" +#~ msgstr "" +#~ "aus. Wenn kein ARG angegeben ist, werden alle bezeichneten Signale " +#~ "zurück-" + +#~ msgid "reset to their original values. If ARG is the null string each" +#~ msgstr "" +#~ "gesetzt. Ist ARG eine leere Zeichenkette, dann wird jedes angegebne Sig-" + +#~ msgid "SIGNAL_SPEC is ignored by the shell and by the commands it invokes." +#~ msgstr "" +#~ "nal von der Shell und den von ihr aufgerufenen Kommandos ignoriert. Wenn " +#~ "das" + +#~ msgid "If SIGNAL_SPEC is EXIT (0) the command ARG is executed on exit from" +#~ msgstr "" +#~ "Signal EXIT (0) abgefangen wird, dann wird ARG bei Verlassen der Shell " +#~ "ausge-" + +#~ msgid "the shell. If SIGNAL_SPEC is DEBUG, ARG is executed after every" +#~ msgstr "" +#~ "führt. Durch Abfangen des Signals DEBUG, wird ARG nach jedem Kommando" + +#~ msgid "command. If ARG is `-p' then the trap commands associated with" +#~ msgstr "" +#~ "aufgerufen. Mit `-p' werden Kommandos angezeigt, die für jedes " +#~ "abgefangene" + +#~ msgid "each SIGNAL_SPEC are displayed. If no arguments are supplied or if" +#~ msgstr "" +#~ "Signal ausgeführt werden. Wenn keine Argumente angegeben sind, oder wenn " +#~ "das" + +#~ msgid "only `-p' is given, trap prints the list of commands associated with" +#~ msgstr "" +#~ "Argument `-p' angegeben ist, wird eine Liste der Kommandos für jedes " +#~ "abgefan-" + +#~ msgid "" +#~ "each signal number. SIGNAL_SPEC is either a signal name in " +#~ msgstr "" +#~ "gene Signal angezeigt. SIGNAL_SPEC ist entweder ein Signalname (aus " +#~ "signal.h)" + +#~ msgid "" +#~ "or a signal number. `trap -l' prints a list of signal names and their" +#~ msgstr "" +#~ "oder eine Signalnummer. `trap -l' gibt eine Liste der Signalnamen und " +#~ "der ent-" + +#~ msgid "corresponding numbers. Note that a signal can be sent to the shell" +#~ msgstr "" +#~ "sprechenden Nummern aus. Ein Signal kann an eine Shell mit dem Befehl " +#~ "\"kill" + +#~ msgid "with \"kill -signal $$\"." +#~ msgstr "-signal $$\" gesendet werden." + +# type +#~ msgid "For each NAME, indicate how it would be interpreted if used as a" +#~ msgstr "" +#~ "Gibt aus, wie der angegebene NAME interpretiert würde, wenn er in der" + +#~ msgid "If the -t option is used, returns a single word which is one of" +#~ msgstr "" +#~ "Die Option -t bewirkt, daß eins der Worte: `alias', `keyword', `function'," + +#~ msgid "" +#~ "`alias', `keyword', `function', `builtin', `file' or `', if NAME is an" +#~ msgstr "" +#~ "`file' oder `' ausgegeben wird, wenn NAME ein Alias, ein in der Shell " +#~ "reser-" + +#~ msgid "" +#~ "alias, shell reserved word, shell function, shell builtin, disk file," +#~ msgstr "" +#~ "viertes Wort, eine Skriptfunktion, eine eingebaute Shellfunktion, eine " +#~ "Datei" + +#~ msgid "or unfound, respectively." +#~ msgstr "ist oder kein Kommandotyp gefunden wurde." + +#~ msgid "If the -p flag is used, either returns the name of the disk file" +#~ msgstr "" +#~ "Wenn der -p Schalter angegeben ist, dann wird, wenn eine entsprechende " +#~ "Datei" + +#~ msgid "that would be executed, or nothing if -t would not return `file'." +#~ msgstr "existiert, ihr Name ausgegegeben," + +#~ msgid "If the -a flag is used, displays all of the places that contain an" +#~ msgstr "" +#~ "Mit dem -a Schalter werden alle ausführbaren Dateien mit dem Namen `file'" + +#~ msgid "" +#~ "executable named `file'. This includes aliases and functions, if and" +#~ msgstr "" +#~ "angezeigt. Dieses schließt Aliase und Funktionen ein, aber nur dann" + +#~ msgid "only if the -p flag is not also used." +#~ msgstr "wenn nicht gleichzeitig der -p Schalter gesetzt ist." + +#~ msgid "Type accepts -all, -path, and -type in place of -a, -p, and -t," +#~ msgstr "" +#~ "Type akzeptiert auch die Argumente -all, -path und -type an Stelle von -a," + +#~ msgid "respectively." +#~ msgstr "-p und -t." + +# ulimit +#~ msgid "Ulimit provides control over the resources available to processes" +#~ msgstr "" +#~ "Ulimit steuert die Ressourcen, die den von der Shell aufgerufenen " +#~ "Prozessen" + +#~ msgid "started by the shell, on systems that allow such control. If an" +#~ msgstr "" +#~ "zur Verfügung stehen, wenn das System Ressourcensteuerung unterstützt. " +#~ "Wenn" + +#~ msgid "option is given, it is interpreted as follows:" +#~ msgstr "eine Option angegebe ist, dann wird sie wie folgt interpretiert:" + +#~ msgid " -S\tuse the `soft' resource limit" +#~ msgstr " -S\tNutze die `weiche (soft)' Ressourceneinstellung." + +#~ msgid " -H\tuse the `hard' resource limit" +#~ msgstr " -H\tNutze die `harte (hard)' Ressourceneinstellung." + +#~ msgid " -a\tall current limits are reported" +#~ msgstr " -a\tDie gegenwärtige Ressourceneinstellung wird ausgegeben." + +#~ msgid " -c\tthe maximum size of core files created" +#~ msgstr " -c\tDie maximale Größe der erzeugten core-Dateien." + +# für ein Prozeß oder für alle? +#~ msgid " -d\tthe maximum size of a process's data segment" +#~ msgstr " -d\tDie maximale Größe des Datensegmentes eines Prozesses." + +#~ msgid " -m\tthe maximum resident set size" +#~ msgstr "" +#~ " -m\tMaximale Größe des nicht auszulagenden (residenten) " +#~ "Prozeßspeichers." + +#~ msgid " -s\tthe maximum stack size" +#~ msgstr " -s\tDie maximale Größe des Stapelspeichers." + +#~ msgid " -t\tthe maximum amount of cpu time in seconds" +#~ msgstr " -t\tDie maximal verfügbare CPU-Zeit (in Sekunden)." + +#~ msgid " -f\tthe maximum size of files created by the shell" +#~ msgstr "" +#~ " -f\tDie maximal erlaubte Größe für von der Shell erzeugte Dateien." + +#~ msgid " -p\tthe pipe buffer size" +#~ msgstr " -p\tDie Größe des Pipeline-Puffers." + +#~ msgid " -n\tthe maximum number of open file descriptors" +#~ msgstr " -n\tDie maximale Anzahl gleichzeitig geöffneter Dateien." + +#~ msgid " -u\tthe maximum number of user processes" +#~ msgstr " -u\tDie maximale Anzahl von Prozessen des Benutzers." + +#~ msgid " -v\tthe size of virtual memory" +#~ msgstr " -v\tDie Größe des virtuellen Arbeitsspeichers." + +#~ msgid "If LIMIT is given, it is the new value of the specified resource." +#~ msgstr "" +#~ "Wenn eine Grenze angegeben ist, wird die Resouce auf diesen Wert gesetzt." + +#~ msgid "Otherwise, the current value of the specified resource is printed." +#~ msgstr "" +#~ "Sonst wird der gegenwärtig eingestellte Wert ausgegeben. Wenn keine " +#~ "Option" + +#~ msgid "If no option is given, then -f is assumed. Values are in 1k" +#~ msgstr "" +#~ "angegeben ist wird -f verwendet. Die Einheit ist 1k außer für -t, deren" + +#~ msgid "increments, except for -t, which is in seconds, -p, which is in" +#~ msgstr "" +#~ "Wert in Sekunden angegeben wird, -p, dessen Einheit 512 bytes ist und -u," + +#~ msgid "increments of 512 bytes, and -u, which is an unscaled number of" +#~ msgstr "für das die Anzahl der Prozesse verwendet" + +#~ msgid "processes." +#~ msgstr "wird." + +# umask +#~ msgid "" +#~ "The user file-creation mask is set to MODE. If MODE is omitted, or if" +#~ msgstr "" +#~ "Die Dateierzeugungsmaske wird auf MODE gesetzt. Wenn MODE nicht, oder -S" + +#~ msgid "" +#~ "`-S' is supplied, the current value of the mask is printed. The `-S'" +#~ msgstr "" +#~ "angegeben ist, dann wird die aktuelle Dateierzeugungsmaske ausgegeben." + +#~ msgid "" +#~ "option makes the output symbolic; otherwise an octal number is output." +#~ msgstr "" +#~ "Die `-S' Option bewirkt, daß die symbolische Entsprechung ausgegeben " +#~ "wird. " + +#~ msgid "If MODE begins with a digit, it is interpreted as an octal number," +#~ msgstr "" +#~ "Wenn MODE mit einer Ziffer beginnt, wird diese als Oktalzahl " +#~ "interpretiert." + +#~ msgid "" +#~ "otherwise it is a symbolic mode string like that accepted by chmod(1)." +#~ msgstr "" +#~ "Ansonsten wird eine symbolische Notation (analog chmod(1)) angenommen." + +# wait +#~ msgid "" +#~ "Wait for the specified process and report its termination status. If" +#~ msgstr "" +#~ "Wartet auf das Beenden der angegebenen Prozesse und gibt deren " +#~ "Rückgabewert" + +#~ msgid "N is not given, all currently active child processes are waited for," +#~ msgstr "aus. Wenn keine Prozesse angegeben sind, wird auf alle aktiven" + +#~ msgid "and the return code is zero. N may be a process ID or a job" +#~ msgstr "" +#~ "Hintergrundprozesse gewartet und Null zurückgegeben. An wait können" + +#~ msgid "specification; if a job spec is given, all processes in the job's" +#~ msgstr "" +#~ "Prozeßnummern und Jobbezeichnungen übergeben werden. Wenn " +#~ "Jobbezeichnungen" + +#~ msgid "pipeline are waited for." +#~ msgstr "" +#~ "angegeben sind, dann wird auf alle Prozesse in der Job-Pipeline gewartet " +#~ "und" + +#~ msgid "and the return code is zero. N is a process ID; if it is not given," +#~ msgstr "Null zurückgegeben." + +#~ msgid "all child processes of the shell are waited for." +#~ msgstr " " + +# for +#~ msgid "The `for' loop executes a sequence of commands for each member in a" +#~ msgstr "" +#~ "`for' führt eine Reihe von Kommandos für jeden Eintrag einer Liste aus." + +#~ msgid "" +#~ "list of items. If `in WORDS ...;' is not present, then `in \"$@\"' is" +#~ msgstr "Ohne `in WORTLISTE' wird als Argument `in \"$@\"' verwendet." + +#~ msgid "" +#~ "assumed. For each element in WORDS, NAME is set to that element, and" +#~ msgstr "NAME wird nacheinander ein Element aus WORTLISTE zugewiesen" + +#~ msgid "the COMMANDS are executed." +#~ msgstr "und die KOMMANDOS ausgeführt." + +# select +#~ msgid "The WORDS are expanded, generating a list of words. The" +#~ msgstr "" +#~ "Die WORTE werden erweitert und erzeugen eine Wortliste. Diese wird als" + +#~ msgid "set of expanded words is printed on the standard error, each" +#~ msgstr "numerierte Liste auf dem Standardfehlerkanal ausgegeben." + +#~ msgid "preceded by a number. If `in WORDS' is not present, `in \"$@\"'" +#~ msgstr "" +#~ "Wenn `in WORTE' nicht angegeben ist, dann wird `in \"$@\"' verwendet." + +#~ msgid "is assumed. The PS3 prompt is then displayed and a line read" +#~ msgstr "" +#~ "Das PS3-Promt wird angezeigt und eine Zeile von der Standardeingabe " +#~ "gelesen." + +#~ msgid "from the standard input. If the line consists of the number" +#~ msgstr "" +#~ "Wenn die gelesene Zeile eine Zeilennummer der angezeigten Liste enhält, " +#~ "dann" + +#~ msgid "corresponding to one of the displayed words, then NAME is set" +#~ msgstr "wird NAME entsprechend dem WORT in der bezeichneten Zeile gesetzt." + +#~ msgid "to that word. If the line is empty, WORDS and the prompt are" +#~ msgstr "" +#~ "Wird eine leere Zeichenkette gelesen, dann wird die Liste erneut " +#~ "angezeigt." + +#~ msgid "redisplayed. If EOF is read, the command completes. Any other" +#~ msgstr "" +#~ "Mir einem EOF Zeichen wird die Eingabe abgebrochen. Jeder andere Inhalt " +#~ "der" + +#~ msgid "value read causes NAME to be set to null. The line read is saved" +#~ msgstr "" +#~ "Zeichenkette bewirkt, daß NAME auf Null gesetzt wird. Die gelesene Zeile " +#~ "wird" + +#~ msgid "in the variable REPLY. COMMANDS are executed after each selection" +#~ msgstr "" +#~ "in der Variable REPLY gespeichert. Die KOMMANDOS werden so lange " +#~ "wiederholt," + +#~ msgid "until a break or return command is executed." +#~ msgstr "bis die Schleife mit break oder return verlassen wird." + +# case +#~ msgid "Selectively execute COMMANDS based upon WORD matching PATTERN. The" +#~ msgstr "Führt KOMMANDOS abhängig von einem WORT aus, das MUSTER entspricht." + +#~ msgid "`|' is used to separate multiple patterns." +#~ msgstr "Das Zeichen `|' trennt mehrere Muster." + +# if +#~ msgid "" +#~ "The if COMMANDS are executed. If the exit status is zero, then the then" +#~ msgstr "" +#~ "Die KOMMANDOS werden ausgewertet. Ist der Rückgabewert Null, dann werden " +#~ "die" + +#~ msgid "" +#~ "COMMANDS are executed. Otherwise, each of the elif COMMANDS are executed" +#~ msgstr "" +#~ "then KOMMANDOS ausgeführt. Ansonsten werden die elif KOMMANDOS der Reihe " +#~ "nach" + +#~ msgid "" +#~ "in turn, and if the exit status is zero, the corresponding then COMMANDS" +#~ msgstr "" +#~ "ausgewertet und bei einem Rückgabewert Null die dazugehörigen KOMMANDOS" + +#~ msgid "" +#~ "are executed and the if command completes. Otherwise, the else COMMANDS" +#~ msgstr "ausgeführt und if beendet. Sonst wird, wenn ein else Kommandozweig" + +#~ msgid "" +#~ "are executed, if present. The exit status is the exit status of the last" +#~ msgstr "" +#~ "existiert, dieser ausgeführt. Der Exitstatus ist der des letzten Kommandos" + +#~ msgid "command executed, or zero if no condition tested true." +#~ msgstr "oder Null, wenn keine Bedingung wahr ergab." + +# while +#~ msgid "Expand and execute COMMANDS as long as the final command in the" +#~ msgstr "" +#~ "Wiederholt den Schleifenkörper `do KOMMANDOS done' so lange die letzte" + +#~ msgid "`while' COMMANDS has an exit status of zero." +#~ msgstr "Kommando `while KOMMANDOS' einen Rückkehrstatus Null liefert." + +# until +#~ msgid "`until' COMMANDS has an exit status which is not zero." +#~ msgstr "" +#~ "Kommando in `until KOMMANDOS' einen Rückkehrstatus ungleich Null liefert." + +# function +#~ msgid "Create a simple command invoked by NAME which runs COMMANDS." +#~ msgstr "Erzeugt eine neue Shellfunktion NAME, die KOMMANDOS ausführt. " + +#~ msgid "Arguments on the command line along with NAME are passed to the" +#~ msgstr "NAME und Kommandozeilenagumente werden an die Funktion als $0 .. $n" + +#~ msgid "function as $0 .. $n." +#~ msgstr "übergeben." + +# grouping_braces +#~ msgid "Run a set of commands in a group. This is one way to redirect an" +#~ msgstr "" +#~ "Führt Kommandos in einer Gruppe aus. Das ist eine Möglichkeit die " +#~ "Ausgabe von" + +#~ msgid "entire set of commands." +#~ msgstr "einer Gruppe Kommandos umzuleiten." + +# fg_percent +#~ msgid "This is similar to the `fg' command. Resume a stopped or background" +#~ msgstr "" +#~ "Ist ähnlich dem `fg' Kommando. Nimmt einen angehaltenen oder hintergrund " +#~ "Job" + +#~ msgid "job. If you specifiy DIGITS, then that job is used. If you specify" +#~ msgstr "" +#~ "wieder auf. Wenn eine Jobnummer angegeben ist, dann wird dieser " +#~ "aufgenommen." + +#~ msgid "" +#~ "WORD, then the job whose name begins with WORD is used. Following the" +#~ msgstr "" +#~ "Wenn eine Zeichenkette angegeben ist, dann wird der Job der mit diesen " +#~ "Zeichen" + +#~ msgid "job specification with a `&' places the job in the background." +#~ msgstr "beginnt wieder aufgenommen. `&' bringt den Job in den Hintergrund." + +# variable_help +#~ msgid "BASH_VERSION The version numbers of this Bash." +#~ msgstr "BASH_VERSION Versionsnummer der Bash." + +#~ msgid "CDPATH A colon separated list of directories to search" +#~ msgstr "" +#~ "CDPATH Eine durch Doppelpunkt getrennte Liste von " +#~ "Verzeichnissen, die" + +#~ msgid "\t\twhen the argument to `cd' is not found in the current" +#~ msgstr "\t\tdurchsucht werden, wenn das Argument von `cd' nicht im" + +#~ msgid "\t\tdirectory." +#~ msgstr "\t\taktuellen Verzeichnis gefunden wird." + +#~ msgid "" +#~ "HISTFILE The name of the file where your command history is stored." +#~ msgstr "HISTFILE Datei, die den Kommandozeilenspeicher enthält. " + +#~ msgid "HISTFILESIZE The maximum number of lines this file can contain." +#~ msgstr "" +#~ "HISTFILESIZE Maximale Zeilenanzahl, die diese Datei enthalten darf." + +#~ msgid "HISTSIZE The maximum number of history lines that a running" +#~ msgstr "" +#~ "HISTSIZE Maximale Anzahl von Zeilen, auf die der Historymechanismus" + +#~ msgid "\t\tshell can access." +#~ msgstr "\t\tder Shell zurückgreifen kann." + +#~ msgid "HOME The complete pathname to your login directory." +#~ msgstr "HOME Heimatverzeichnis des aktuellen Benutzers." + +#~ msgid "" +#~ "HOSTTYPE The type of CPU this version of Bash is running under." +#~ msgstr "" +#~ "HOSTTYPE CPU-Typ des Rechners, auf dem die Bash gegenwärtig läuft." + +#~ msgid "" +#~ "IGNOREEOF Controls the action of the shell on receipt of an EOF" +#~ msgstr "" +#~ "IGNOREEOF Legt die Reaktion der Shell auf ein EOF-Zeichen fest." + +#~ msgid "\t\tcharacter as the sole input. If set, then the value" +#~ msgstr "\t\tWenn die Variable eine ganze Zahl enthält, wird diese Anzahl" + +#~ msgid "\t\tof it is the number of EOF characters that can be seen" +#~ msgstr "\t\tEOF Zeichen (Ctrl-D) abgewartet, bis die Shell verlassen wird." + +#~ msgid "\t\tin a row on an empty line before the shell will exit" +#~ msgstr "\t\tDer Vorgabewert ist 10. Ist IGNOREEOF nicht gesetzt," + +#~ msgid "\t\t(default 10). When unset, EOF signifies the end of input." +#~ msgstr "\t\tsignalisiert EOF das Ende der Eingabe." + +#~ msgid "MAILCHECK\tHow often, in seconds, Bash checks for new mail." +#~ msgstr "" +#~ "MAILCHECK\tZeitintervall [s], in dem nach angekommener Post gesucht wird." + +#~ msgid "MAILPATH\tA colon-separated list of filenames which Bash checks" +#~ msgstr "" +#~ "MAILPATH\tEine durch Doppelpunkt getrennte Liste von Dateien, die nach" + +#~ msgid "\t\tfor new mail." +#~ msgstr "\t\tneu angekommener Post durchsucht werden." + +#~ msgid "OSTYPE\t\tThe version of Unix this version of Bash is running on." +#~ msgstr "" +#~ "OSTYPE\t\tBetriebssystemversion, auf der die Bash gegenwärtig läuft." + +#~ msgid "PATH A colon-separated list of directories to search when" +#~ msgstr "PATH\t\tDurch Doppelpunkt getrennte Liste von Verzeichnissen, die " + +#~ msgid "\t\tlooking for commands." +#~ msgstr "\t\tnach Kommandos durchsucht werden." + +#~ msgid "PROMPT_COMMAND A command to be executed before the printing of each" +#~ msgstr "" +#~ "PROMPT_COMMAND Kommando, das vor der Anzeige einer primären " +#~ "Eingabeaufforderung" + +#~ msgid "\t\tprimary prompt." +#~ msgstr "\t\t(PS1) ausgeführt wird." + +#~ msgid "PS1 The primary prompt string." +#~ msgstr "" +#~ "PS1 Zeichenkette, die die primäre Eingabeaufforderung enthält." + +#~ msgid "PS2 The secondary prompt string." +#~ msgstr "" +#~ "PS2 Zeichenkette, die die sekundäre Eingabeaufforderung " +#~ "enthält." + +#~ msgid "TERM The name of the current terminal type." +#~ msgstr "TERM Name des aktuellen Terminaltyps." + +#~ msgid "auto_resume Non-null means a command word appearing on a line by" +#~ msgstr "" +#~ "auto_resume Ein Wert ungleich Null bewirkt, daß ein einzelnes " +#~ "Kommando auf" + +#~ msgid "\t\titself is first looked for in the list of currently" +#~ msgstr "\t\teiner Zeile zunächst in der Liste gegenwärtig gestoppter Jobs" + +#~ msgid "\t\tstopped jobs. If found there, that job is foregrounded." +#~ msgstr "\t\tgesucht und dieser in den Vordergrund geholt wird. `exact'" + +#~ msgid "\t\tA value of `exact' means that the command word must" +#~ msgstr "\t\tbewirkt, daß das Kommando genau dem Kommando in der" + +#~ msgid "\t\texactly match a command in the list of stopped jobs. A" +#~ msgstr "\t\tListe der gestoppten Jobs entsprechen muß. Wenn die Variable" + +#~ msgid "\t\tvalue of `substring' means that the command word must" +#~ msgstr "\t\tden Wert `substring' enthält, muß das Kommando einem Substring" + +#~ msgid "\t\tmatch a substring of the job. Any other value means that" +#~ msgstr "\t\tder Jobbezeichnung entsprechen. Bei einem anderen Wert müssen" + +#~ msgid "\t\tthe command must be a prefix of a stopped job." +#~ msgstr "\t\tdie ersten Zeichen übereinstimmen." + +#~ msgid "command_oriented_history" +#~ msgstr "command_oriented_history" + +#~ msgid "" +#~ " Non-null means to save multiple-line commands together on" +#~ msgstr "\t\tMehrzeilige Kommandos werden im Kommandozeilenspeicher in einer" + +#~ msgid " a single history line." +#~ msgstr "\t\tZeile abgelegt, wenn die Variable ungleich Null gesetzt ist." + +#~ msgid "histchars Characters controlling history expansion and quick" +#~ msgstr "" +#~ "histchars Zeichen, die die Befehlswiederholung und die " +#~ "Schnellersetzung" + +#~ msgid "\t\tsubstitution. The first character is the history" +#~ msgstr "\t\tsteuern. An erster Stelle steht das Befehlswiederholungszeichen" + +#~ msgid "\t\tsubstitution character, usually `!'. The second is" +#~ msgstr "\t\t(normalerweise `!'); an zweiter das `Schnell-Ersetzen-Zeichen'" + +#~ msgid "\t\tthe `quick substitution' character, usually `^'. The" +#~ msgstr "\t\t(normalerweise `^'). Das dritte Zeichen ist das" + +#~ msgid "\t\tthird is the `history comment' character, usually `#'." +#~ msgstr "\t\t`Kommentarzeichen' (normalerweise `#')." + +#~ msgid "HISTCONTROL\tSet to a value of `ignorespace', it means don't enter" +#~ msgstr "HISTCONTROL\tGesetzt auf `ignorespace' werden keine mit einem" + +#~ msgid "\t\tlines which begin with a space or tab on the history" +#~ msgstr "" +#~ "\t\tLeerzeichen oder Tabulator beginnenden Zeilen im Kommandospeicher" + +#~ msgid "\t\tlist. Set to a value of `ignoredups', it means don't" +#~ msgstr "\t\tabgelegt. Der Wert `ignoredups' verhindert das Speichern" + +#~ msgid "\t\tenter lines which match the last entered line. Set to" +#~ msgstr "\t\taufeinanderfolgender identischer Zeilen. `ignoreboth'" + +#~ msgid "\t\t`ignoreboth' means to combine the two options. Unset," +#~ msgstr "\t\tkombiniert beide Einstellungen. Wenn die Variable" + +#~ msgid "\t\tor set to any other value than those above means to save" +#~ msgstr "\t\tnicht oder auf einen anderen Wert gesetzt ist, werden alle" + +#~ msgid "\t\tall lines on the history list." +#~ msgstr "\t\teingegebenen Zeilen im Kommandospeicher abgelegt." + +# pushd +#~ msgid "Adds a directory to the top of the directory stack, or rotates" +#~ msgstr "" +#~ "Legt ein Verzeichnisnamen auf den Verzeichnisstapel oder rotiert diesen " +#~ "so," + +# Gibt's denn auch andere als "aktuelle" Arbeitsverzeichnisse? +# "Arbeit" impliziert .m.E. "aktuell" +# ck +#~ msgid "the stack, making the new top of the stack the current working" +#~ msgstr "daß das Arbeitsverzeichnis auf der Spitze des Stapels liegt. Ohne" + +#~ msgid "directory. With no arguments, exchanges the top two directories." +#~ msgstr "" +#~ "Argumente werden die obersten zwei Verzeichnisse auf dem Stapel " +#~ "vertauscht." + +#~ msgid "+N\tRotates the stack so that the Nth directory (counting" +#~ msgstr "" +#~ "+N\tRotiert den Stapel so, daß das N'te Verzeichnis (angezeigt von `dirs'," + +#~ msgid "\tfrom the left of the list shown by `dirs') is at the top." +#~ msgstr "gezählt von links) sich an der Spitze des Stapels befindet." + +#~ msgid "-N\tRotates the stack so that the Nth directory (counting" +#~ msgstr "" +#~ "-N\tRotiert den Stapel so, daß das N'te Verzeichnis (angezeigt von `dirs'," + +#~ msgid "\tfrom the right) is at the top." +#~ msgstr "gezählt von rechts) sich an der Spitze des Stapels befindet." + +#~ msgid "-n\tsuppress the normal change of directory when adding directories" +#~ msgstr "-n\tunterdrückt das Wechseln in das Verzeichnis beim Hinzufügen zum" + +#~ msgid "\tto the stack, so only the stack is manipulated." +#~ msgstr "\tStapel, so daß nur der Stapel verändert wird." + +#~ msgid "dir\tadds DIR to the directory stack at the top, making it the" +#~ msgstr "DIR\tLegt DIR auf die Spitze des Verzeichnisstapels und wechselt" + +#~ msgid "You can see the directory stack with the `dirs' command." +#~ msgstr "" +#~ "Der Verzeichnisstapel kann mit dem Kommando `dirs' angezeigt werden." + +# pushd +#~ msgid "Removes entries from the directory stack. With no arguments," +#~ msgstr "" +#~ "Entfernt Einträge vom Verzeichnisstapel. Ohne Argumente wird die Spitze " +#~ "des" + +#~ msgid "removes the top directory from the stack, and cd's to the new" +#~ msgstr "Stapels entfernt und in das Verzeichnis gewechselt, das dann an der" + +#~ msgid "+N\tremoves the Nth entry counting from the left of the list" +#~ msgstr "" +#~ "+N\tEntfernt den N'ten Eintrag vom Stapel, gezählt von Null von der " +#~ "Liste," + +#~ msgid "\tshown by `dirs', starting with zero. For example: `popd +0'" +#~ msgstr "\tdie `dirs' anzeigt. Beispielsweise entfernen `popd +0' das" + +#~ msgid "\tremoves the first directory, `popd +1' the second." +#~ msgstr "\terste Verzeichnis und `popd +1' das zweite." + +#~ msgid "-N\tremoves the Nth entry counting from the right of the list" +#~ msgstr "" +#~ "-N\tEntfernt den N'ten Eintrag vom Stapel, beginend rechts bei Null in der" + +#~ msgid "\tshown by `dirs', starting with zero. For example: `popd -0'" +#~ msgstr "\tListe, die `dirs' angeigt. Beispielsweise entfernen `popd -0'" + +#~ msgid "\tremoves the last directory, `popd -1' the next to last." +#~ msgstr "\tdas letzte Verzeichnis und `popd -1' das vorletzte." + +#~ msgid "" +#~ "-n\tsuppress the normal change of directory when removing directories" +#~ msgstr "" +#~ "-n\tVerhindert das Wechseln des Arbeitsverzeichnisses wenn Verzeichnisse" + +#~ msgid "\tfrom the stack, so only the stack is manipulated." +#~ msgstr "\tvom Stapel entfernt werden, so daß nur der Stapel verändert wird." + +# dirs +#~ msgid "Display the list of currently remembered directories. Directories" +#~ msgstr "" +#~ "Zeigt die Liste der gegenwärtig gespeicherten Verzeichnisse an. " +#~ "Gespeichert" + +#~ msgid "find their way onto the list with the `pushd' command; you can get" +#~ msgstr "" +#~ "werden die Verzeichnisse durch das `popd' Kommando und können durch das " +#~ "`pushd'" + +#~ msgid "back up through the list with the `popd' command." +#~ msgstr "Kommando wieder vom Stapel entfernt werden." + +#~ msgid "" +#~ "The -l flag specifies that `dirs' should not print shorthand versions" +#~ msgstr "" +#~ "Wenn die -l Option angegeben ist, dann werden keine Kurzversionen der " +#~ "Verzeich-" + +#~ msgid "" +#~ "of directories which are relative to your home directory. This means" +#~ msgstr "" +#~ "nisse angezeigt, die relativ zum Heimatverzeichnis sind. Es wird also an" + +#~ msgid "that `~/bin' might be displayed as `/homes/bfox/bin'. The -v flag" +#~ msgstr "" +#~ "Stelle von `~/bin' der absolute Pfad `/home/foo/bin' angezeigt. Mit der -" +#~ "v" + +#~ msgid "causes `dirs' to print the directory stack with one entry per line," +#~ msgstr "" +#~ "Option wird von `dirs' ein Eintrag pro Zeile ausgegeben. Die Position im" + +#~ msgid "" +#~ "prepending the directory name with its position in the stack. The -p" +#~ msgstr "" +#~ "Stapel wird vorangestellt. Die -p Option wirkt ähnlich, es wird " +#~ "allerdings" + +#~ msgid "flag does the same thing, but the stack position is not prepended." +#~ msgstr "" +#~ "nicht die Position im Stapel angezeigt. Wenn -c angegeben ist, damm " +#~ "werden" + +#~ msgid "" +#~ "The -c flag clears the directory stack by deleting all of the elements." +#~ msgstr "alle Einträge vom Verzeichnisstapel gelöscht." + +#~ msgid "" +#~ "+N\tdisplays the Nth entry counting from the left of the list shown by" +#~ msgstr "" +#~ "+N\tZeigt den N'ten Eintrag, gezählt von links begginnend bei Null, aus" + +#~ msgid "\tdirs when invoked without options, starting with zero." +#~ msgstr "\tder Liste, die von `dirs' ohne Optionen angezeigt wird." + +#~ msgid "" +#~ "-N\tdisplays the Nth entry counting from the right of the list shown by" +#~ msgstr "" +#~ "-N\tZeigt den N'ten Eintrag, gezählt von rechts begginnend bei Null, aus" + +# shopt_builtin +#~ msgid "Toggle the values of variables controlling optional behavior." +#~ msgstr "" +#~ "Ändert die Werte von Variablen die zusätzliche Eigenschaften der Shell " +#~ "steuern." + +#~ msgid "The -s flag means to enable (set) each OPTNAME; the -u flag" +#~ msgstr "" +#~ "Mit der -s Option wird jeder OPTIONSMAME gesetzt. Die -u Option setzt " +#~ "jeden" + +#~ msgid "unsets each OPTNAME. The -q flag suppresses output; the exit" +#~ msgstr "" +#~ "OPTIONSNAMEN zurück. Die -q Option unterdrückt Ausgaben. Der " +#~ "Rückgabewert" + +#~ msgid "status indicates whether each OPTNAME is set or unset. The -o" +#~ msgstr "" +#~ "des Kommandos gibt an ob der OPTIONSNAME ein- oder ausgeschalten wurde. " +#~ "Die" + +#~ msgid "option restricts the OPTNAMEs to those defined for use with" +#~ msgstr "" +#~ "Option beschränkt die OPTIONSNAMEN auf jene die mit `set -o' benutzt " +#~ "werden" + +#~ msgid "`set -o'. With no options, or with the -p option, a list of all" +#~ msgstr "" +#~ "können. Ohne oder mit der -p Option wird eine Liste aller `settable' " +#~ "Optionen" + +#~ msgid "settable options is displayed, with an indication of whether or" +#~ msgstr "" +#~ "mit einer Markierung ob die angegebene Option gesetzt oder nicht gesetzt" + +#~ msgid "not each is set." +#~ msgstr "ist angezeigt." diff --git a/po/en@boldquot.gmo b/po/en@boldquot.gmo index dd5008ca86da0242330a153a970288c645f2c55e..17bb207c16c2a8ea8711c420a13814f8b5d56ddc 100644 GIT binary patch literal 154201 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 G{eJ=L=zZG& literal 118280 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" msgstr "" -#: builtins/pushd.def:657 -msgid "Display the list of currently remembered directories. Directories" -msgstr "Display the list of currently remembered directories. Directories" - -#: builtins/pushd.def:658 -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:659 -msgid "back up through the list with the `popd' command." -msgstr "back up through the list with the ‘popd’ command." - -#: builtins/pushd.def:661 -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:662 -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:663 -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:664 -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:665 -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:666 -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:667 -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:669 -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:506 +msgid "directory stack empty" +msgstr "directory stack empty" -#: builtins/pushd.def:670 builtins/pushd.def:673 -msgid " dirs when invoked without options, starting with zero." -msgstr " dirs when invoked without options, starting with zero." +#: builtins/pushd.def:508 +msgid "directory stack index" +msgstr "directory stack index" -#: builtins/pushd.def:672 +#: builtins/pushd.def:683 msgid "" -"-N displays the Nth entry counting from the right of the list shown by" +"Display the list of currently remembered directories. Directories\n" +" find their way onto the list with the `pushd' command; you can get\n" +" back up through the list with the `popd' command.\n" +" \n" +" Options:\n" +" -c\tclear the directory stack by deleting all of the elements\n" +" -l\tdo not print tilde-prefixed versions of directories relative\n" +" \tto your home directory\n" +" -p\tprint the directory stack with one entry per line\n" +" -v\tprint the directory stack with one entry per line prefixed\n" +" \twith its position in the stack\n" +" \n" +" Arguments:\n" +" +N\tDisplays the Nth entry counting from the left of the list shown " +"by\n" +" \tdirs when invoked without options, starting with zero.\n" +" \n" +" -N\tDisplays the Nth entry counting from the right of the list shown " +"by\n" +"\tdirs when invoked without options, starting with zero." msgstr "" -"-N displays the Nth entry counting from the right of the list shown by" - -#: builtins/pushd.def:678 -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:679 -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:680 -msgid "directory. With no arguments, exchanges the top two directories." -msgstr "directory. With no arguments, exchanges the top two directories." - -#: builtins/pushd.def:682 -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:683 -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:684 builtins/pushd.def:688 -msgid " zero) is at the top." -msgstr " zero) is at the top." - -#: builtins/pushd.def:686 -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:687 -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:690 -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:691 -msgid " to the stack, so only the stack is manipulated." -msgstr " to the stack, so only the stack is manipulated." - -#: builtins/pushd.def:693 -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:694 -msgid " new current working directory." -msgstr " new current working directory." - -#: builtins/pushd.def:696 builtins/pushd.def:716 -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:701 -msgid "Removes entries from the directory stack. With no arguments," -msgstr "Removes entries from the directory stack. With no arguments," - -#: builtins/pushd.def:702 -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:703 -msgid "top directory." -msgstr "top directory." +"Display the list of currently remembered directories. Directories\n" +" find their way onto the list with the ‘pushd’ command; you can " +"get\n" +" back up through the list with the ‘popd’ command.\n" +" \n" +" Options:\n" +" -c\tclear the directory stack by deleting all of the elements\n" +" -l\tdo not print tilde-prefixed versions of directories relative\n" +" \tto your home directory\n" +" -p\tprint the directory stack with one entry per line\n" +" -v\tprint the directory stack with one entry per line prefixed\n" +" \twith its position in the stack\n" +" \n" +" Arguments:\n" +" +N\tDisplays the Nth entry counting from the left of the list shown " +"by\n" +" \tdirs when invoked without options, starting with zero.\n" +" \n" +" -N\tDisplays the Nth entry counting from the right of the list shown " +"by\n" +"\tdirs when invoked without options, starting with zero." #: builtins/pushd.def:705 -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:706 -msgid " shown by `dirs', starting with zero. For example: `popd +0'" +msgid "" +"Adds a directory to the top of the directory stack, or rotates\n" +" the stack, making the new top of the stack the current working\n" +" directory. With no arguments, exchanges the top two directories.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when adding\n" +" \tdirectories to the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the left of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" -N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the right of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" dir\tAdds DIR to the directory stack at the top, making it the\n" +" \tnew current working directory.\n" +" \n" +" The `dirs' builtin displays the directory stack." msgstr "" -" shown by ‘dirs’, starting with zero. For example: ‘popd +0’" - -#: builtins/pushd.def:707 -msgid " removes the first directory, `popd +1' the second." -msgstr " removes the first directory, ‘popd +1’ the second." - -#: builtins/pushd.def:709 -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" +"Adds a directory to the top of the directory stack, or rotates\n" +" the stack, making the new top of the stack the current working\n" +" directory. With no arguments, exchanges the top two directories.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when adding\n" +" \tdirectories to the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the left of the list shown by ‘dirs’, starting with\n" +" \tzero) is at the top.\n" +" \n" +" -N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the right of the list shown by ‘dirs’, starting with\n" +" \tzero) is at the top.\n" +" \n" +" dir\tAdds DIR to the directory stack at the top, making it the\n" +" \tnew current working directory.\n" +" \n" +" The ‘dirs’ builtin displays the directory stack." -#: builtins/pushd.def:710 -msgid " shown by `dirs', starting with zero. For example: `popd -0'" +#: builtins/pushd.def:730 +msgid "" +"Removes entries from the directory stack. With no arguments, removes\n" +" the top directory from the stack, and changes to the new top directory.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when removing\n" +" \tdirectories from the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRemoves the Nth entry counting from the left of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd +0'\n" +" \tremoves the first directory, `popd +1' the second.\n" +" \n" +" -N\tRemoves the Nth entry counting from the right of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd -0'\n" +" \tremoves the last directory, `popd -1' the next to last.\n" +" \n" +" The `dirs' builtin displays the directory stack." msgstr "" -" shown by ‘dirs’, starting with zero. For example: ‘popd -0’" - -#: builtins/pushd.def:711 -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:713 -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:714 -msgid " from the stack, so only the stack is manipulated." -msgstr " from the stack, so only the stack is manipulated." +"Removes entries from the directory stack. With no arguments, removes\n" +" the top directory from the stack, and changes to the new top directory.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when removing\n" +" \tdirectories from the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRemoves the Nth entry counting from the left of the list\n" +" \tshown by ‘dirs’, starting with zero. For example: ‘popd +0" +"[0m’\n" +" \tremoves the first directory, ‘popd +1’ the second.\n" +" \n" +" -N\tRemoves the Nth entry counting from the right of the list\n" +" \tshown by ‘dirs’, starting with zero. For example: ‘popd -0" +"[0m’\n" +" \tremoves the last directory, ‘popd -1’ the next to last.\n" +" \n" +" The ‘dirs’ builtin displays the directory stack." -#: builtins/read.def:211 +#: builtins/read.def:248 #, c-format msgid "%s: invalid timeout specification" msgstr "%s: invalid timeout specification" -#: builtins/read.def:234 -#, c-format -msgid "%s: invalid file descriptor specification" -msgstr "%s: invalid file descriptor specification" - -#: builtins/read.def:241 -#, c-format -msgid "%d: invalid file descriptor: %s" -msgstr "%d: invalid file descriptor: %s" - -#: builtins/read.def:474 +#: builtins/read.def:574 #, c-format msgid "read error: %d: %s" msgstr "read error: %d: %s" -#: builtins/return.def:63 +#: builtins/return.def:73 msgid "can only `return' from a function or sourced script" msgstr "can only ‘return’ from a function or sourced script" -#: builtins/set.def:745 +#: builtins/set.def:768 msgid "cannot simultaneously unset a function and a variable" msgstr "cannot simultaneously unset a function and a variable" -#: builtins/set.def:782 +#: builtins/set.def:805 #, c-format msgid "%s: cannot unset" msgstr "%s: cannot unset" -#: builtins/set.def:789 +#: builtins/set.def:812 #, c-format msgid "%s: cannot unset: readonly %s" msgstr "%s: cannot unset: readonly %s" -#: builtins/set.def:800 +#: builtins/set.def:823 #, c-format msgid "%s: not an array variable" msgstr "%s: not an array variable" -#: builtins/setattr.def:166 +#: builtins/setattr.def:186 #, c-format msgid "%s: not a function" msgstr "%s: not a function" -#: builtins/shift.def:66 builtins/shift.def:72 +#: builtins/shift.def:71 builtins/shift.def:77 msgid "shift count" msgstr "shift count" -#: builtins/shopt.def:227 +#: builtins/shopt.def:254 msgid "cannot set and unset shell options simultaneously" msgstr "cannot set and unset shell options simultaneously" -#: builtins/shopt.def:292 +#: builtins/shopt.def:319 #, c-format msgid "%s: invalid shell option name" msgstr "%s: invalid shell option name" -#: builtins/source.def:117 +#: builtins/source.def:128 msgid "filename argument required" msgstr "filename argument required" -#: builtins/source.def:137 +#: builtins/source.def:153 #, c-format msgid "%s: file not found" msgstr "%s: file not found" -#: builtins/suspend.def:93 +#: builtins/suspend.def:101 msgid "cannot suspend" msgstr "cannot suspend" -#: builtins/suspend.def:103 +#: builtins/suspend.def:111 msgid "cannot suspend a login shell" msgstr "cannot suspend a login shell" -#: builtins/type.def:232 +#: builtins/type.def:234 #, c-format msgid "%s is aliased to `%s'\n" msgstr "%s is aliased to ‘%s’\n" -#: builtins/type.def:253 +#: builtins/type.def:255 #, c-format msgid "%s is a shell keyword\n" msgstr "%s is a shell keyword\n" -#: builtins/type.def:273 +#: builtins/type.def:274 #, c-format msgid "%s is a function\n" msgstr "%s is a function\n" -#: builtins/type.def:298 +#: builtins/type.def:296 #, c-format msgid "%s is a shell builtin\n" msgstr "%s is a shell builtin\n" -#: builtins/type.def:319 +#: builtins/type.def:317 builtins/type.def:391 #, c-format msgid "%s is %s\n" msgstr "%s is %s\n" -#: builtins/type.def:339 +#: builtins/type.def:337 #, c-format msgid "%s is hashed (%s)\n" msgstr "%s is hashed (%s)\n" -#: builtins/ulimit.def:344 +#: builtins/ulimit.def:372 #, c-format msgid "%s: invalid limit argument" msgstr "%s: invalid limit argument" -#: builtins/ulimit.def:370 +#: builtins/ulimit.def:398 #, c-format msgid "`%c': bad command" msgstr "‘%c’: bad command" -#: builtins/ulimit.def:399 +#: builtins/ulimit.def:427 #, c-format msgid "%s: cannot get limit: %s" msgstr "%s: cannot get limit: %s" -#: builtins/ulimit.def:437 +#: builtins/ulimit.def:453 +msgid "limit" +msgstr "limit" + +#: builtins/ulimit.def:465 builtins/ulimit.def:765 #, c-format msgid "%s: cannot modify limit: %s" msgstr "%s: cannot modify limit: %s" -#: builtins/umask.def:112 +#: builtins/umask.def:118 msgid "octal number" msgstr "octal number" -#: builtins/umask.def:226 +#: builtins/umask.def:231 #, c-format msgid "`%c': invalid symbolic mode operator" msgstr "‘%c’: invalid symbolic mode operator" -#: builtins/umask.def:281 +#: builtins/umask.def:286 #, c-format msgid "`%c': invalid symbolic mode character" msgstr "‘%c’: invalid symbolic mode character" -#: error.c:165 +#: error.c:89 error.c:320 error.c:322 error.c:324 +msgid " line " +msgstr " line " + +#: error.c:164 #, c-format msgid "last command: %s\n" msgstr "last command: %s\n" -#: error.c:173 +#: error.c:172 +#, c-format 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" @@ -812,160 +889,277 @@ msgstr "bad jump" msgid "%s: unbound variable" msgstr "%s: unbound variable" -#: eval.c:176 -msgid "timed out waiting for input: auto-logout\n" -msgstr "timed out waiting for input: auto-logout\n" +#: eval.c:181 +#, c-format +msgid "\atimed out waiting for input: auto-logout\n" +msgstr "\atimed out waiting for input: auto-logout\n" -#: execute_cmd.c:471 +#: execute_cmd.c:491 #, c-format msgid "cannot redirect standard input from /dev/null: %s" msgstr "cannot redirect standard input from /dev/null: %s" -#: execute_cmd.c:1036 +#: execute_cmd.c:1091 #, c-format msgid "TIMEFORMAT: `%c': invalid format character" msgstr "TIMEFORMAT: ‘%c’: invalid format character" -#: execute_cmd.c:3551 +#: execute_cmd.c:1942 +msgid "pipe error" +msgstr "pipe error" + +#: execute_cmd.c:4276 #, c-format msgid "%s: restricted: cannot specify `/' in command names" msgstr "%s: restricted: cannot specify ‘/’ in command names" -#: execute_cmd.c:3639 +#: execute_cmd.c:4367 #, c-format msgid "%s: command not found" msgstr "%s: command not found" -#: execute_cmd.c:3876 +#: execute_cmd.c:4621 #, c-format msgid "%s: %s: bad interpreter" msgstr "%s: %s: bad interpreter" -#: execute_cmd.c:3913 -#, c-format -msgid "%s: cannot execute binary file" -msgstr "%s: cannot execute binary file" - -#: execute_cmd.c:4025 +#: execute_cmd.c:4770 #, c-format msgid "cannot duplicate fd %d to fd %d" msgstr "cannot duplicate fd %d to fd %d" -#: expr.c:240 +#: expr.c:241 msgid "expression recursion level exceeded" msgstr "expression recursion level exceeded" -#: expr.c:264 +#: expr.c:265 msgid "recursion stack underflow" msgstr "recursion stack underflow" -#: expr.c:375 +#: expr.c:379 msgid "syntax error in expression" msgstr "syntax error in expression" -#: expr.c:415 +#: expr.c:419 msgid "attempted assignment to non-variable" msgstr "attempted assignment to non-variable" -#: expr.c:436 expr.c:441 expr.c:751 +#: expr.c:440 expr.c:445 expr.c:756 msgid "division by 0" msgstr "division by 0" -#: expr.c:467 +#: expr.c:471 msgid "bug: bad expassign token" msgstr "bug: bad expassign token" -#: expr.c:509 +#: expr.c:513 msgid "`:' expected for conditional expression" msgstr "‘:’ expected for conditional expression" -#: expr.c:776 +#: expr.c:781 msgid "exponent less than 0" msgstr "exponent less than 0" -#: expr.c:821 +#: expr.c:826 msgid "identifier expected after pre-increment or pre-decrement" msgstr "identifier expected after pre-increment or pre-decrement" -#: expr.c:849 +#: expr.c:854 msgid "missing `)'" msgstr "missing ‘)’" -#: expr.c:892 +#: expr.c:897 expr.c:1175 msgid "syntax error: operand expected" msgstr "syntax error: operand expected" -#: expr.c:1178 -msgid "invalid number" -msgstr "invalid number" +#: expr.c:1177 +msgid "syntax error: invalid arithmetic operator" +msgstr "syntax error: invalid arithmetic operator" + +#: expr.c:1201 +#, c-format +msgid "%s%s%s: %s (error token is \"%s\")" +msgstr "%s%s%s: %s (error token is “%s”)" -#: expr.c:1182 +#: expr.c:1259 msgid "invalid arithmetic base" msgstr "invalid arithmetic base" -#: expr.c:1202 +#: expr.c:1279 msgid "value too great for base" msgstr "value too great for base" -#: general.c:62 +#: expr.c:1328 +#, c-format +msgid "%s: expression error\n" +msgstr "%s: expression error\n" + +#: general.c:61 msgid "getcwd: cannot access parent directories" msgstr "getcwd: cannot access parent directories" -#: input.c:231 +#: input.c:94 subst.c:4559 +#, c-format +msgid "cannot reset nodelay mode for fd %d" +msgstr "cannot reset nodelay mode for fd %d" + +#: input.c:258 #, 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 +#: input.c:266 #, 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:923 +#: jobs.c:466 +msgid "start_pipeline: pgrp pipe" +msgstr "start_pipeline: pgrp pipe" + +#: jobs.c:882 +#, c-format +msgid "forked pid %d appears in running job %d" +msgstr "forked pid %d appears in running job %d" + +#: jobs.c:1000 #, c-format msgid "deleting stopped job %d with process group %ld" msgstr "deleting stopped job %d with process group %ld" -#: jobs.c:1308 +#: jobs.c:1105 +#, c-format +msgid "add_process: process %5ld (%s) in the_pipeline" +msgstr "add_process: process %5ld (%s) in the_pipeline" + +#: jobs.c:1108 +#, c-format +msgid "add_process: pid %5ld (%s) marked as still alive" +msgstr "add_process: pid %5ld (%s) marked as still alive" + +#: jobs.c:1396 #, c-format msgid "describe_pid: %ld: no such pid" msgstr "describe_pid: %ld: no such pid" -#: jobs.c:1981 nojobs.c:648 +#: jobs.c:1411 +#, c-format +msgid "Signal %d" +msgstr "Signal %d" + +#: jobs.c:1425 jobs.c:1450 +msgid "Done" +msgstr "Done" + +#: jobs.c:1430 siglist.c:122 +msgid "Stopped" +msgstr "Stopped" + +#: jobs.c:1434 +#, c-format +msgid "Stopped(%s)" +msgstr "Stopped(%s)" + +#: jobs.c:1438 +msgid "Running" +msgstr "Running" + +#: jobs.c:1452 +#, c-format +msgid "Done(%d)" +msgstr "Done(%d)" + +#: jobs.c:1454 +#, c-format +msgid "Exit %d" +msgstr "Exit %d" + +#: jobs.c:1457 +msgid "Unknown status" +msgstr "Unknown status" + +#: jobs.c:1544 +#, c-format +msgid "(core dumped) " +msgstr "(core dumped) " + +#: jobs.c:1563 +#, c-format +msgid " (wd: %s)" +msgstr " (wd: %s)" + +#: jobs.c:1766 +#, c-format +msgid "child setpgid (%ld to %ld)" +msgstr "child setpgid (%ld to %ld)" + +#: jobs.c:2094 nojobs.c:576 #, 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:2180 +#: jobs.c:2321 #, c-format msgid "wait_for: No record of process %ld" msgstr "wait_for: No record of process %ld" -#: jobs.c:2435 +#: jobs.c:2593 #, c-format msgid "wait_for_job: job %d is stopped" msgstr "wait_for_job: job %d is stopped" -#: jobs.c:2657 +#: jobs.c:2815 #, c-format msgid "%s: job has terminated" msgstr "%s: job has terminated" -#: jobs.c:2666 +#: jobs.c:2824 #, c-format msgid "%s: job %d already in background" msgstr "%s: job %d already in background" -#: jobs.c:3452 +#: jobs.c:3487 +#, c-format +msgid "%s: line %d: " +msgstr "%s: line %d: " + +#: jobs.c:3501 nojobs.c:805 +#, c-format +msgid " (core dumped)" +msgstr " (core dumped)" + +#: jobs.c:3513 jobs.c:3526 +#, c-format +msgid "(wd now: %s)\n" +msgstr "(wd now: %s)\n" + +#: jobs.c:3558 +msgid "initialize_job_control: getpgrp failed" +msgstr "initialize_job_control: getpgrp failed" + +#: jobs.c:3618 +msgid "initialize_job_control: line discipline" +msgstr "initialize_job_control: line discipline" + +#: jobs.c:3628 +msgid "initialize_job_control: setpgid" +msgstr "initialize_job_control: setpgid" + +#: jobs.c:3656 +#, c-format +msgid "cannot set terminal process group (%d)" +msgstr "cannot set terminal process group (%d)" + +#: jobs.c:3661 msgid "no job control in this shell" msgstr "no job control in this shell" -#: lib/malloc/malloc.c:298 +#: lib/malloc/malloc.c:296 #, c-format msgid "malloc: failed assertion: %s\n" msgstr "malloc: failed assertion: %s\n" -#: lib/malloc/malloc.c:314 +#: lib/malloc/malloc.c:312 #, c-format msgid "" "\r\n" @@ -974,109 +1168,89 @@ msgstr "" "\r\n" "malloc: %s:%d: assertion botched\r\n" -#: lib/malloc/malloc.c:740 +#: lib/malloc/malloc.c:313 +msgid "unknown" +msgstr "unknown" + +#: lib/malloc/malloc.c:797 msgid "malloc: block on free list clobbered" msgstr "malloc: block on free list clobbered" -#: lib/malloc/malloc.c:817 +#: lib/malloc/malloc.c:874 msgid "free: called with already freed block argument" msgstr "free: called with already freed block argument" -#: lib/malloc/malloc.c:820 +#: lib/malloc/malloc.c:877 msgid "free: called with unallocated block argument" msgstr "free: called with unallocated block argument" -#: lib/malloc/malloc.c:839 +#: lib/malloc/malloc.c:896 msgid "free: underflow detected; mh_nbytes out of range" msgstr "free: underflow detected; mh_nbytes out of range" -#: lib/malloc/malloc.c:845 +#: lib/malloc/malloc.c:902 msgid "free: start and end chunk sizes differ" msgstr "free: start and end chunk sizes differ" -#: lib/malloc/malloc.c:942 +#: lib/malloc/malloc.c:1001 msgid "realloc: called with unallocated block argument" msgstr "realloc: called with unallocated block argument" -#: lib/malloc/malloc.c:957 +#: lib/malloc/malloc.c:1016 msgid "realloc: underflow detected; mh_nbytes out of range" msgstr "realloc: underflow detected; mh_nbytes out of range" -#: lib/malloc/malloc.c:963 +#: lib/malloc/malloc.c:1022 msgid "realloc: start and end chunk sizes differ" msgstr "realloc: start and end chunk sizes differ" -#: lib/malloc/table.c:175 +#: lib/malloc/table.c:177 +#, c-format 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 +#: lib/malloc/table.c:184 #, 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 +#: lib/malloc/table.c:220 #, 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 +#: lib/sh/netopen.c:168 #, c-format msgid "%s: host unknown" msgstr "%s: host unknown" -#: lib/sh/netopen.c:165 +#: lib/sh/netopen.c:175 #, c-format msgid "%s: invalid service" msgstr "%s: invalid service" -#: lib/sh/netopen.c:296 +#: lib/sh/netopen.c:306 #, c-format msgid "%s: bad network path specification" msgstr "%s: bad network path specification" -#: lib/sh/netopen.c:336 +#: lib/sh/netopen.c:346 msgid "network operations not supported" msgstr "network operations not supported" -#: mailcheck.c:386 +#: mailcheck.c:433 msgid "You have mail in $_" msgstr "You have mail in $_" -#: mailcheck.c:411 +#: mailcheck.c:458 msgid "You have new mail in $_" msgstr "You have new mail in $_" -#: mailcheck.c:427 +#: mailcheck.c:474 #, c-format msgid "The mail in %s has been read\n" msgstr "The mail in %s has been read\n" @@ -1094,113 +1268,118 @@ msgstr "syntax error: ‘;’ unexpected" msgid "syntax error: `((%s))'" msgstr "syntax error: ‘((%s))’" -#: make_cmd.c:566 +#: make_cmd.c:567 #, c-format msgid "make_here_document: bad instruction type %d" msgstr "make_here_document: bad instruction type %d" -#: make_cmd.c:736 +#: make_cmd.c:651 +#, c-format +msgid "here-document at line %d delimited by end-of-file (wanted `%s')" +msgstr "here-document at line %d delimited by end-of-file (wanted ‘%s’)" + +#: make_cmd.c:746 #, c-format msgid "make_redirection: redirection instruction `%d' out of range" msgstr "make_redirection: redirection instruction ‘%d’ out of range" -#: parse.y:2747 +#: parse.y:2986 parse.y:3218 #, c-format msgid "unexpected EOF while looking for matching `%c'" msgstr "unexpected EOF while looking for matching ‘%c’" -#: parse.y:3043 +#: parse.y:3722 msgid "unexpected EOF while looking for `]]'" msgstr "unexpected EOF while looking for ‘]]’" -#: parse.y:3048 +#: parse.y:3727 #, c-format msgid "syntax error in conditional expression: unexpected token `%s'" msgstr "syntax error in conditional expression: unexpected token ‘%s’" -#: parse.y:3052 +#: parse.y:3731 msgid "syntax error in conditional expression" msgstr "syntax error in conditional expression" -#: parse.y:3130 +#: parse.y:3809 #, c-format msgid "unexpected token `%s', expected `)'" msgstr "unexpected token ‘%s’, expected ‘)’" -#: parse.y:3134 +#: parse.y:3813 msgid "expected `)'" msgstr "expected ‘)’" -#: parse.y:3162 +#: parse.y:3841 #, c-format msgid "unexpected argument `%s' to conditional unary operator" msgstr "unexpected argument ‘%s’ to conditional unary operator" -#: parse.y:3166 +#: parse.y:3845 msgid "unexpected argument to conditional unary operator" msgstr "unexpected argument to conditional unary operator" -#: parse.y:3203 +#: parse.y:3885 #, c-format msgid "unexpected token `%s', conditional binary operator expected" msgstr "unexpected token ‘%s’, conditional binary operator expected" -#: parse.y:3207 +#: parse.y:3889 msgid "conditional binary operator expected" msgstr "conditional binary operator expected" -#: parse.y:3223 +#: parse.y:3906 #, c-format msgid "unexpected argument `%s' to conditional binary operator" msgstr "unexpected argument ‘%s’ to conditional binary operator" -#: parse.y:3227 +#: parse.y:3910 msgid "unexpected argument to conditional binary operator" msgstr "unexpected argument to conditional binary operator" -#: parse.y:3238 +#: parse.y:3921 #, c-format msgid "unexpected token `%c' in conditional command" msgstr "unexpected token ‘%c’ in conditional command" -#: parse.y:3241 +#: parse.y:3924 #, c-format msgid "unexpected token `%s' in conditional command" msgstr "unexpected token ‘%s’ in conditional command" -#: parse.y:3245 +#: parse.y:3928 #, c-format msgid "unexpected token %d in conditional command" msgstr "unexpected token %d in conditional command" -#: parse.y:4461 +#: parse.y:5195 #, c-format msgid "syntax error near unexpected token `%s'" msgstr "syntax error near unexpected token ‘%s’" -#: parse.y:4479 +#: parse.y:5213 #, c-format msgid "syntax error near `%s'" msgstr "syntax error near ‘%s’" -#: parse.y:4489 +#: parse.y:5223 msgid "syntax error: unexpected end of file" msgstr "syntax error: unexpected end of file" -#: parse.y:4489 +#: parse.y:5223 msgid "syntax error" msgstr "syntax error" -#: parse.y:4551 +#: parse.y:5285 #, c-format msgid "Use \"%s\" to leave the shell.\n" msgstr "Use “%s” to leave the shell.\n" -#: parse.y:4710 +#: parse.y:5447 msgid "unexpected EOF while looking for matching `)'" msgstr "unexpected EOF while looking for matching ‘)’" -#: pcomplete.c:1001 +#: pcomplete.c:1016 #, c-format msgid "completion: function `%s' not found" msgstr "completion: function ‘%s’ not found" @@ -1210,66 +1389,71 @@ msgstr "completion: function ‘%s’ not found" msgid "progcomp_insert: %s: NULL COMPSPEC" msgstr "progcomp_insert: %s: NULL COMPSPEC" -#: print_cmd.c:264 +#: print_cmd.c:287 #, c-format msgid "print_command: bad connector `%d'" msgstr "print_command: bad connector ‘%d’" -#: print_cmd.c:1236 +#: print_cmd.c:1347 #, c-format msgid "cprintf: `%c': invalid format character" msgstr "cprintf: ‘%c’: invalid format character" -#: redir.c:99 +#: redir.c:105 msgid "file descriptor out of range" msgstr "file descriptor out of range" -#: redir.c:141 +#: redir.c:148 #, c-format msgid "%s: ambiguous redirect" msgstr "%s: ambiguous redirect" -#: redir.c:145 +#: redir.c:152 #, c-format msgid "%s: cannot overwrite existing file" msgstr "%s: cannot overwrite existing file" -#: redir.c:150 +#: redir.c:157 #, c-format msgid "%s: restricted: cannot redirect output" msgstr "%s: restricted: cannot redirect output" -#: redir.c:155 +#: redir.c:162 #, c-format -msgid "cannot create temp file for here document: %s" -msgstr "cannot create temp file for here document: %s" +msgid "cannot create temp file for here-document: %s" +msgstr "cannot create temp file for here-document: %s" -#: redir.c:509 +#: redir.c:517 msgid "/dev/(tcp|udp)/host/port not supported without networking" msgstr "/dev/(tcp|udp)/host/port not supported without networking" -#: redir.c:956 +#: redir.c:1023 msgid "redirection error: cannot duplicate fd" msgstr "redirection error: cannot duplicate fd" -#: shell.c:309 +#: shell.c:328 msgid "could not find /tmp, please create!" msgstr "could not find /tmp, please create!" -#: shell.c:313 +#: shell.c:332 msgid "/tmp must be a valid directory name" msgstr "/tmp must be a valid directory name" -#: shell.c:849 +#: shell.c:876 #, c-format msgid "%c%c: invalid option" msgstr "%c%c: invalid option" -#: shell.c:1598 +#: shell.c:1638 msgid "I have no name!" msgstr "I have no name!" -#: shell.c:1733 +#: shell.c:1778 +#, c-format +msgid "GNU bash, version %s-(%s)\n" +msgstr "GNU bash, version %s-(%s)\n" + +#: shell.c:1779 #, c-format msgid "" "Usage:\t%s [GNU long option] [option] ...\n" @@ -1278,290 +1462,852 @@ msgstr "" "Usage:\t%s [GNU long option] [option] ...\n" "\t%s [GNU long option] [option] script-file ...\n" -#: shell.c:1735 +#: shell.c:1781 msgid "GNU long options:\n" msgstr "GNU long options:\n" -#: shell.c:1739 +#: shell.c:1785 msgid "Shell options:\n" msgstr "Shell options:\n" -#: shell.c:1740 +#: shell.c:1786 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:1755 +#: shell.c:1801 #, c-format msgid "\t-%s or -o option\n" msgstr "\t-%s or -o option\n" -#: shell.c:1761 +#: shell.c:1807 #, 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:1762 +#: shell.c:1808 #, 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:1763 +#: shell.c:1809 +#, c-format msgid "Use the `bashbug' command to report bugs.\n" msgstr "Use the ‘bashbug’ command to report bugs.\n" -#: sig.c:494 +#: sig.c:583 #, c-format msgid "sigprocmask: %d: invalid operation" msgstr "sigprocmask: %d: invalid operation" -#: subst.c:1123 -#, c-format -msgid "bad substitution: no closing `%s' in %s" -msgstr "bad substitution: no closing ‘%s’ in %s" +#: siglist.c:47 +msgid "Bogus signal" +msgstr "Bogus signal" -#: subst.c:2269 -#, c-format -msgid "%s: cannot assign list to array member" -msgstr "%s: cannot assign list to array member" +#: siglist.c:50 +msgid "Hangup" +msgstr "Hangup" -#: subst.c:4208 subst.c:4224 -msgid "cannot make pipe for process substitution" -msgstr "cannot make pipe for process substitution" +#: siglist.c:54 +msgid "Interrupt" +msgstr "Interrupt" -#: subst.c:4255 -msgid "cannot make child for process substitution" +#: siglist.c:58 +msgid "Quit" +msgstr "Quit" + +#: siglist.c:62 +msgid "Illegal instruction" +msgstr "Illegal instruction" + +#: siglist.c:66 +msgid "BPT trace/trap" +msgstr "BPT trace/trap" + +#: siglist.c:74 +msgid "ABORT instruction" +msgstr "ABORT instruction" + +#: siglist.c:78 +msgid "EMT instruction" +msgstr "EMT instruction" + +#: siglist.c:82 +msgid "Floating point exception" +msgstr "Floating point exception" + +#: siglist.c:86 +msgid "Killed" +msgstr "Killed" + +#: siglist.c:90 +msgid "Bus error" +msgstr "Bus error" + +#: siglist.c:94 +msgid "Segmentation fault" +msgstr "Segmentation fault" + +#: siglist.c:98 +msgid "Bad system call" +msgstr "Bad system call" + +#: siglist.c:102 +msgid "Broken pipe" +msgstr "Broken pipe" + +#: siglist.c:106 +msgid "Alarm clock" +msgstr "Alarm clock" + +#: siglist.c:110 +msgid "Terminated" +msgstr "Terminated" + +#: siglist.c:114 +msgid "Urgent IO condition" +msgstr "Urgent IO condition" + +#: siglist.c:118 +msgid "Stopped (signal)" +msgstr "Stopped (signal)" + +#: siglist.c:126 +msgid "Continue" +msgstr "Continue" + +#: siglist.c:134 +msgid "Child death or stop" +msgstr "Child death or stop" + +#: siglist.c:138 +msgid "Stopped (tty input)" +msgstr "Stopped (tty input)" + +#: siglist.c:142 +msgid "Stopped (tty output)" +msgstr "Stopped (tty output)" + +#: siglist.c:146 +msgid "I/O ready" +msgstr "I/O ready" + +#: siglist.c:150 +msgid "CPU limit" +msgstr "CPU limit" + +#: siglist.c:154 +msgid "File limit" +msgstr "File limit" + +#: siglist.c:158 +msgid "Alarm (virtual)" +msgstr "Alarm (virtual)" + +#: siglist.c:162 +msgid "Alarm (profile)" +msgstr "Alarm (profile)" + +#: siglist.c:166 +msgid "Window changed" +msgstr "Window changed" + +#: siglist.c:170 +msgid "Record lock" +msgstr "Record lock" + +#: siglist.c:174 +msgid "User signal 1" +msgstr "User signal 1" + +#: siglist.c:178 +msgid "User signal 2" +msgstr "User signal 2" + +#: siglist.c:182 +msgid "HFT input data pending" +msgstr "HFT input data pending" + +#: siglist.c:186 +msgid "power failure imminent" +msgstr "power failure imminent" + +#: siglist.c:190 +msgid "system crash imminent" +msgstr "system crash imminent" + +#: siglist.c:194 +msgid "migrate process to another CPU" +msgstr "migrate process to another CPU" + +#: siglist.c:198 +msgid "programming error" +msgstr "programming error" + +#: siglist.c:202 +msgid "HFT monitor mode granted" +msgstr "HFT monitor mode granted" + +#: siglist.c:206 +msgid "HFT monitor mode retracted" +msgstr "HFT monitor mode retracted" + +#: siglist.c:210 +msgid "HFT sound sequence has completed" +msgstr "HFT sound sequence has completed" + +#: siglist.c:214 +msgid "Information request" +msgstr "Information request" + +#: siglist.c:222 +msgid "Unknown Signal #" +msgstr "Unknown Signal #" + +#: siglist.c:224 +#, c-format +msgid "Unknown Signal #%d" +msgstr "Unknown Signal #%d" + +#: subst.c:1181 subst.c:1302 +#, c-format +msgid "bad substitution: no closing `%s' in %s" +msgstr "bad substitution: no closing ‘%s’ in %s" + +#: subst.c:2458 +#, c-format +msgid "%s: cannot assign list to array member" +msgstr "%s: cannot assign list to array member" + +#: subst.c:4456 subst.c:4472 +msgid "cannot make pipe for process substitution" +msgstr "cannot make pipe for process substitution" + +#: subst.c:4504 +msgid "cannot make child for process substitution" msgstr "cannot make child for process substitution" -#: subst.c:4300 +#: subst.c:4549 #, c-format msgid "cannot open named pipe %s for reading" msgstr "cannot open named pipe %s for reading" -#: subst.c:4302 +#: subst.c:4551 #, c-format msgid "cannot open named pipe %s for writing" msgstr "cannot open named pipe %s for writing" -#: subst.c:4310 -#, c-format -msgid "cannout reset nodelay mode for fd %d" -msgstr "cannout reset nodelay mode for fd %d" - -#: subst.c:4320 +#: subst.c:4569 #, c-format msgid "cannot duplicate named pipe %s as fd %d" msgstr "cannot duplicate named pipe %s as fd %d" -#: subst.c:4495 +#: subst.c:4765 msgid "cannot make pipe for command substitution" msgstr "cannot make pipe for command substitution" -#: subst.c:4531 +#: subst.c:4799 msgid "cannot make child for command substitution" msgstr "cannot make child for command substitution" -#: subst.c:4548 +#: subst.c:4816 msgid "command_substitute: cannot duplicate pipe as fd 1" msgstr "command_substitute: cannot duplicate pipe as fd 1" -#: subst.c:5013 +#: subst.c:5318 #, c-format msgid "%s: parameter null or not set" msgstr "%s: parameter null or not set" -#: subst.c:5287 +#: subst.c:5608 #, c-format msgid "%s: substring expression < 0" msgstr "%s: substring expression < 0" -#: subst.c:6058 +#: subst.c:6660 #, c-format msgid "%s: bad substitution" msgstr "%s: bad substitution" -#: subst.c:6134 +#: subst.c:6740 #, c-format msgid "$%s: cannot assign in this way" msgstr "$%s: cannot assign in this way" -#: subst.c:7687 +#: subst.c:7479 +#, c-format +msgid "bad substitution: no closing \"`\" in %s" +msgstr "bad substitution: no closing “`” in %s" + +#: subst.c:8354 #, c-format msgid "no match: %s" msgstr "no match: %s" -#: test.c:154 +#: test.c:145 msgid "argument expected" msgstr "argument expected" -#: test.c:163 +#: test.c:154 #, c-format msgid "%s: integer expression expected" msgstr "%s: integer expression expected" -#: test.c:361 +#: test.c:262 msgid "`)' expected" msgstr "‘)’ expected" -#: test.c:363 +#: test.c:264 #, c-format msgid "`)' expected, found %s" msgstr "‘)’ expected, found %s" -#: test.c:378 test.c:787 test.c:790 +#: test.c:279 test.c:688 test.c:691 #, c-format msgid "%s: unary operator expected" msgstr "%s: unary operator expected" -#: test.c:543 test.c:830 +#: test.c:444 test.c:731 #, c-format msgid "%s: binary operator expected" msgstr "%s: binary operator expected" -#: test.c:905 +#: test.c:806 msgid "missing `]'" msgstr "missing ‘]’" -#: trap.c:194 +#: trap.c:201 msgid "invalid signal number" msgstr "invalid signal number" -#: trap.c:309 +#: trap.c:324 #, 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 +#: trap.c:328 #, 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 +#: trap.c:372 #, c-format msgid "trap_handler: bad signal %d" msgstr "trap_handler: bad signal %d" -#: variables.c:320 +#: variables.c:358 #, c-format msgid "error importing function definition for `%s'" msgstr "error importing function definition for ‘%s’" -#: variables.c:692 +#: variables.c:736 #, c-format msgid "shell level (%d) too high, resetting to 1" msgstr "shell level (%d) too high, resetting to 1" -#: variables.c:1651 +#: variables.c:1898 msgid "make_local_variable: no function context at current scope" msgstr "make_local_variable: no function context at current scope" -#: variables.c:2807 +#: variables.c:3127 msgid "all_local_variables: no function context at current scope" msgstr "all_local_variables: no function context at current scope" -#: variables.c:3021 variables.c:3030 +#: variables.c:3344 variables.c:3353 #, c-format msgid "invalid character %d in exportstr for %s" msgstr "invalid character %d in exportstr for %s" -#: variables.c:3036 +#: variables.c:3359 #, c-format msgid "no `=' in exportstr for %s" msgstr "no ‘=’ in exportstr for %s" -#: variables.c:3463 +#: variables.c:3794 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:3476 +#: variables.c:3807 msgid "pop_var_context: no global_variables context" msgstr "pop_var_context: no global_variables context" -#: variables.c:3548 +#: variables.c:3881 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) 2005 Free Software Foundation, Inc.\n" -msgstr "Copyright (C) 2005 Free Software Foundation, Inc.\n" +#: version.c:46 +msgid "Copyright (C) 2009 Free Software Foundation, Inc." +msgstr "Copyright (C) 2009 Free Software Foundation, Inc." + +#: version.c:47 +msgid "" +"License GPLv3+: GNU GPL version 3 or later \n" +msgstr "" +"License GPLv3+: GNU GPL version 3 or later \n" + +#: version.c:86 +#, c-format +msgid "GNU bash, version %s (%s)\n" +msgstr "GNU bash, version %s (%s)\n" + +#: version.c:91 +#, c-format +msgid "This is free software; you are free to change and redistribute it.\n" +msgstr "This is free software; you are free to change and redistribute it.\n" + +#: version.c:92 +#, c-format +msgid "There is NO WARRANTY, to the extent permitted by law.\n" +msgstr "There is NO WARRANTY, to the extent permitted by law.\n" -#: xmalloc.c:93 +#: xmalloc.c:92 #, c-format msgid "xmalloc: cannot allocate %lu bytes (%lu bytes allocated)" msgstr "xmalloc: cannot allocate %lu bytes (%lu bytes allocated)" -#: xmalloc.c:95 +#: xmalloc.c:94 #, c-format msgid "xmalloc: cannot allocate %lu bytes" msgstr "xmalloc: cannot allocate %lu bytes" -#: xmalloc.c:115 +#: xmalloc.c:114 #, c-format msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)" msgstr "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)" -#: xmalloc.c:117 +#: xmalloc.c:116 #, c-format msgid "xrealloc: cannot allocate %lu bytes" msgstr "xrealloc: cannot allocate %lu bytes" -#: xmalloc.c:151 +#: xmalloc.c:150 #, 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 +#: xmalloc.c:152 #, c-format msgid "xmalloc: %s:%d: cannot allocate %lu bytes" msgstr "xmalloc: %s:%d: cannot allocate %lu bytes" -#: xmalloc.c:175 +#: xmalloc.c:174 #, 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 +#: xmalloc.c:176 #, c-format msgid "xrealloc: %s:%d: cannot allocate %lu bytes" msgstr "xrealloc: %s:%d: cannot allocate %lu bytes" -#: builtins.c:244 +#: builtins.c:43 +msgid "alias [-p] [name[=value] ... ]" +msgstr "alias [-p] [name[=value] ... ]" + +#: builtins.c:47 +msgid "unalias [-a] name [name ...]" +msgstr "unalias [-a] name [name ...]" + +#: builtins.c:51 +msgid "" +"bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-" +"x keyseq:shell-command] [keyseq:readline-function or readline-command]" +msgstr "" +"bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-" +"x keyseq:shell-command] [keyseq:readline-function or readline-command]" + +#: builtins.c:54 +msgid "break [n]" +msgstr "break [n]" + +#: builtins.c:56 +msgid "continue [n]" +msgstr "continue [n]" + +#: builtins.c:58 +msgid "builtin [shell-builtin [arg ...]]" +msgstr "builtin [shell-builtin [arg ...]]" + +#: builtins.c:61 +msgid "caller [expr]" +msgstr "caller [expr]" + +#: builtins.c:64 +msgid "cd [-L|-P] [dir]" +msgstr "cd [-L|-P] [dir]" + +#: builtins.c:66 +msgid "pwd [-LP]" +msgstr "pwd [-LP]" + +#: builtins.c:68 +msgid ":" +msgstr ":" + +#: builtins.c:70 +msgid "true" +msgstr "true" + +#: builtins.c:72 +msgid "false" +msgstr "false" + +#: builtins.c:74 +msgid "command [-pVv] command [arg ...]" +msgstr "command [-pVv] command [arg ...]" + +#: builtins.c:76 +msgid "declare [-aAfFilrtux] [-p] [name[=value] ...]" +msgstr "declare [-aAfFilrtux] [-p] [name[=value] ...]" + +#: builtins.c:78 +msgid "typeset [-aAfFilrtux] [-p] name[=value] ..." +msgstr "typeset [-aAfFilrtux] [-p] name[=value] ..." + +#: builtins.c:80 +msgid "local [option] name[=value] ..." +msgstr "local [option] name[=value] ..." + +#: builtins.c:83 +msgid "echo [-neE] [arg ...]" +msgstr "echo [-neE] [arg ...]" + +#: builtins.c:87 +msgid "echo [-n] [arg ...]" +msgstr "echo [-n] [arg ...]" + +#: builtins.c:90 +msgid "enable [-a] [-dnps] [-f filename] [name ...]" +msgstr "enable [-a] [-dnps] [-f filename] [name ...]" + +#: builtins.c:92 +msgid "eval [arg ...]" +msgstr "eval [arg ...]" + +#: builtins.c:94 +msgid "getopts optstring name [arg]" +msgstr "getopts optstring name [arg]" + +#: builtins.c:96 +msgid "exec [-cl] [-a name] [command [arguments ...]] [redirection ...]" +msgstr "exec [-cl] [-a name] [command [arguments ...]] [redirection ...]" + +#: builtins.c:98 +msgid "exit [n]" +msgstr "exit [n]" + +#: builtins.c:100 +msgid "logout [n]" +msgstr "logout [n]" + +#: builtins.c:103 +msgid "fc [-e ename] [-lnr] [first] [last] or fc -s [pat=rep] [command]" +msgstr "fc [-e ename] [-lnr] [first] [last] or fc -s [pat=rep] [command]" + +#: builtins.c:107 +msgid "fg [job_spec]" +msgstr "fg [job_spec]" + +#: builtins.c:111 +msgid "bg [job_spec ...]" +msgstr "bg [job_spec ...]" + +#: builtins.c:114 +msgid "hash [-lr] [-p pathname] [-dt] [name ...]" +msgstr "hash [-lr] [-p pathname] [-dt] [name ...]" + +#: builtins.c:117 +msgid "help [-ds] [pattern ...]" +msgstr "help [-ds] [pattern ...]" + +#: builtins.c:121 +msgid "" +"history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg " +"[arg...]" +msgstr "" +"history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg " +"[arg...]" + +#: builtins.c:125 +msgid "jobs [-lnprs] [jobspec ...] or jobs -x command [args]" +msgstr "jobs [-lnprs] [jobspec ...] or jobs -x command [args]" + +#: builtins.c:129 +msgid "disown [-h] [-ar] [jobspec ...]" +msgstr "disown [-h] [-ar] [jobspec ...]" + +#: builtins.c:132 +msgid "" +"kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l " +"[sigspec]" +msgstr "" +"kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l " +"[sigspec]" + +#: builtins.c:134 +msgid "let arg [arg ...]" +msgstr "let arg [arg ...]" + +#: builtins.c:136 +msgid "" +"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-p prompt] [-t " +"timeout] [-u fd] [name ...]" +msgstr "" +"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-p prompt] [-t " +"timeout] [-u fd] [name ...]" + +#: builtins.c:138 +msgid "return [n]" +msgstr "return [n]" + +#: builtins.c:140 +msgid "set [--abefhkmnptuvxBCHP] [-o option-name] [arg ...]" +msgstr "set [--abefhkmnptuvxBCHP] [-o option-name] [arg ...]" + +#: builtins.c:142 +msgid "unset [-f] [-v] [name ...]" +msgstr "unset [-f] [-v] [name ...]" + +#: builtins.c:144 +msgid "export [-fn] [name[=value] ...] or export -p" +msgstr "export [-fn] [name[=value] ...] or export -p" + +#: builtins.c:146 +msgid "readonly [-af] [name[=value] ...] or readonly -p" +msgstr "readonly [-af] [name[=value] ...] or readonly -p" + +#: builtins.c:148 +msgid "shift [n]" +msgstr "shift [n]" + +#: builtins.c:150 +msgid "source filename [arguments]" +msgstr "source filename [arguments]" + +#: builtins.c:152 +msgid ". filename [arguments]" +msgstr ". filename [arguments]" + +#: builtins.c:155 +msgid "suspend [-f]" +msgstr "suspend [-f]" + +#: builtins.c:158 +msgid "test [expr]" +msgstr "test [expr]" + +#: builtins.c:160 +msgid "[ arg... ]" +msgstr "[ arg... ]" + +#: builtins.c:162 +msgid "times" +msgstr "times" + +#: builtins.c:164 +msgid "trap [-lp] [[arg] signal_spec ...]" +msgstr "trap [-lp] [[arg] signal_spec ...]" + +#: builtins.c:166 +msgid "type [-afptP] name [name ...]" +msgstr "type [-afptP] name [name ...]" + +#: builtins.c:169 +msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]" +msgstr "ulimit [-SHacdefilmnpqrstuvx] [limit]" + +#: builtins.c:172 +msgid "umask [-p] [-S] [mode]" +msgstr "umask [-p] [-S] [mode]" + +#: builtins.c:175 +msgid "wait [id]" +msgstr "wait [id]" + +#: builtins.c:179 +msgid "wait [pid]" +msgstr "wait [pid]" + +#: builtins.c:182 +msgid "for NAME [in WORDS ... ] ; do COMMANDS; done" +msgstr "for NAME [in WORDS ... ] ; do COMMANDS; done" + +#: builtins.c:184 +msgid "for (( exp1; exp2; exp3 )); do COMMANDS; done" +msgstr "for (( exp1; exp2; exp3 )); do COMMANDS; done" + +#: builtins.c:186 +msgid "select NAME [in WORDS ... ;] do COMMANDS; done" +msgstr "select NAME [in WORDS ... ;] do COMMANDS; done" + +#: builtins.c:188 +msgid "time [-p] pipeline" +msgstr "time [-p] pipeline" + +#: builtins.c:190 +msgid "case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac" +msgstr "case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac" + +#: builtins.c:192 +msgid "" +"if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else " +"COMMANDS; ] fi" +msgstr "" +"if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else " +"COMMANDS; ] fi" + +#: builtins.c:194 +msgid "while COMMANDS; do COMMANDS; done" +msgstr "while COMMANDS; do COMMANDS; done" + +#: builtins.c:196 +msgid "until COMMANDS; do COMMANDS; done" +msgstr "until COMMANDS; do COMMANDS; done" + +#: builtins.c:198 +msgid "function name { COMMANDS ; } or name () { COMMANDS ; }" +msgstr "function name { COMMANDS ; } or name () { COMMANDS ; }" + +#: builtins.c:200 +msgid "{ COMMANDS ; }" +msgstr "{ COMMANDS ; }" + +#: builtins.c:202 +msgid "job_spec [&]" +msgstr "job_spec [&]" + +#: builtins.c:204 +msgid "(( expression ))" +msgstr "(( expression ))" + +#: builtins.c:206 +msgid "[[ expression ]]" +msgstr "[[ expression ]]" + +#: builtins.c:208 +msgid "variables - Names and meanings of some shell variables" +msgstr "variables - Names and meanings of some shell variables" + +#: builtins.c:211 +msgid "pushd [-n] [+N | -N | dir]" +msgstr "pushd [-n] [+N | -N | dir]" + +#: builtins.c:215 +msgid "popd [-n] [+N | -N]" +msgstr "popd [-n] [+N | -N]" + +#: builtins.c:219 +msgid "dirs [-clpv] [+N] [-N]" +msgstr "dirs [-clpv] [+N] [-N]" + +#: builtins.c:222 +msgid "shopt [-pqsu] [-o] [optname ...]" +msgstr "shopt [-pqsu] [-o] [optname ...]" + +#: builtins.c:224 +msgid "printf [-v var] format [arguments]" +msgstr "printf [-v var] format [arguments]" + +#: builtins.c:227 +msgid "" +"complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W " +"wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] " +"[name ...]" +msgstr "" +"complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W " +"wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] " +"[name ...]" + +#: builtins.c:231 msgid "" -" `alias' with no arguments or with the -p option prints the list\n" -" of aliases in the form alias NAME=VALUE on standard output.\n" +"compgen [-abcdefgjksuv] [-o option] [-A action] [-G globpat] [-W wordlist] " +"[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]" +msgstr "" +"compgen [-abcdefgjksuv] [-o option] [-A action] [-G globpat] [-W wordlist] " +"[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]" + +#: builtins.c:235 +msgid "compopt [-o|+o option] [name ...]" +msgstr "compopt [-o|+o option] [name ...]" + +#: builtins.c:238 +msgid "" +"mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c " +"quantum] [array]" +msgstr "" +"mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c " +"quantum] [array]" + +#: builtins.c:250 +msgid "" +"Define or display aliases.\n" +" \n" +" Without arguments, `alias' prints the list of aliases in the reusable\n" +" form `alias NAME=VALUE' on standard output.\n" +" \n" " Otherwise, an alias is defined for each NAME whose VALUE is given.\n" " A trailing space in VALUE causes the next word to be checked for\n" -" alias substitution when the alias is expanded. Alias returns\n" -" true unless a NAME is given for which no alias has been defined." +" alias substitution when the alias is expanded.\n" +" \n" +" Options:\n" +" -p\tPrint all defined aliases in a reusable format\n" +" \n" +" Exit Status:\n" +" alias returns true unless a NAME is supplied for which no alias has " +"been\n" +" defined." msgstr "" -" ‘alias’ with no arguments or with the -p option prints the list\n" -" of aliases in the form alias NAME=VALUE on standard output.\n" +"Define or display aliases.\n" +" \n" +" Without arguments, ‘alias’ prints the list of aliases in the " +"reusable\n" +" form ‘alias NAME=VALUE’ on standard output.\n" +" \n" " Otherwise, an alias is defined for each NAME whose VALUE is given.\n" " A trailing space in VALUE causes the next word to be checked for\n" -" alias substitution when the alias is expanded. Alias returns\n" -" true unless a NAME is given for which no alias has been defined." +" alias substitution when the alias is expanded.\n" +" \n" +" Options:\n" +" -p\tPrint all defined aliases in a reusable format\n" +" \n" +" Exit Status:\n" +" alias returns true unless a NAME is supplied for which no alias has " +"been\n" +" defined." -#: builtins.c:257 +#: builtins.c:272 msgid "" -" Remove NAMEs from the list of defined aliases. If the -a option is given,\n" -" then remove all alias definitions." +"Remove each NAME from the list of defined aliases.\n" +" \n" +" Options:\n" +" -a\tremove all alias definitions.\n" +" \n" +" Return success unless a NAME is not an existing alias." msgstr "" -" Remove NAMEs from the list of defined aliases. If the -a option is given,\n" -" then remove all alias definitions." +"Remove each NAME from the list of defined aliases.\n" +" \n" +" Options:\n" +" -a\tremove all alias definitions.\n" +" \n" +" Return success unless a NAME is not an existing alias." -#: builtins.c:266 +#: builtins.c:285 msgid "" -" Bind a key sequence to a Readline function or a macro, or set\n" -" a Readline variable. The non-option argument syntax is equivalent\n" -" to that found in ~/.inputrc, but must be passed as a single argument:\n" -" bind '\"\\C-x\\C-r\": re-read-init-file'.\n" -" bind accepts the following options:\n" -" -m keymap Use `keymap' as the keymap for the duration of " -"this\n" +"Set Readline key bindings and variables.\n" +" \n" +" Bind a key sequence to a Readline function or a macro, or set a\n" +" Readline variable. The non-option argument syntax is equivalent to\n" +" that found in ~/.inputrc, but must be passed as a single argument:\n" +" e.g., bind '\"\\C-x\\C-r\": re-read-init-file'.\n" +" \n" +" Options:\n" +" -m keymap Use KEYMAP as the keymap for the duration of this\n" " command. Acceptable keymap names are emacs,\n" " emacs-standard, emacs-meta, emacs-ctlx, vi, vi-" "move,\n" @@ -1570,29 +2316,34 @@ msgid "" " -P List function names and bindings.\n" " -p List functions and bindings in a form that can be\n" " reused as input.\n" -" -r keyseq Remove the binding for KEYSEQ.\n" -" -x keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n" -" \t\t\t\tKEYSEQ is entered.\n" -" -f filename Read key bindings from FILENAME.\n" -" -q function-name Query about which keys invoke the named function.\n" -" -u function-name Unbind all keys which are bound to the named " -"function.\n" -" -V List variable names and values\n" -" -v List variable names and values in a form that can\n" -" be reused as input.\n" " -S List key sequences that invoke macros and their " "values\n" " -s List key sequences that invoke macros and their " "values\n" -" in a form that can be reused as input." -msgstr "" -" Bind a key sequence to a Readline function or a macro, or set\n" -" a Readline variable. The non-option argument syntax is equivalent\n" -" to that found in ~/.inputrc, but must be passed as a single argument:\n" -" bind '“\\C-x\\C-r”: re-read-init-file'.\n" -" bind accepts the following options:\n" -" -m keymap Use ‘keymap’ as the keymap for the duration " -"of this\n" +" in a form that can be reused as input.\n" +" -V List variable names and values\n" +" -v List variable names and values in a form that can\n" +" be reused as input.\n" +" -q function-name Query about which keys invoke the named function.\n" +" -u function-name Unbind all keys which are bound to the named " +"function.\n" +" -r keyseq Remove the binding for KEYSEQ.\n" +" -f filename Read key bindings from FILENAME.\n" +" -x keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n" +" \t\t\t\tKEYSEQ is entered.\n" +" \n" +" Exit Status:\n" +" bind returns 0 unless an unrecognized option is given or an error occurs." +msgstr "" +"Set Readline key bindings and variables.\n" +" \n" +" Bind a key sequence to a Readline function or a macro, or set a\n" +" Readline variable. The non-option argument syntax is equivalent to\n" +" that found in ~/.inputrc, but must be passed as a single argument:\n" +" e.g., bind '“\\C-x\\C-r”: re-read-init-file'.\n" +" \n" +" Options:\n" +" -m keymap Use KEYMAP as the keymap for the duration of this\n" " command. Acceptable keymap names are emacs,\n" " emacs-standard, emacs-meta, emacs-ctlx, vi, vi-" "move,\n" @@ -1601,294 +2352,544 @@ msgstr "" " -P List function names and bindings.\n" " -p List functions and bindings in a form that can be\n" " reused as input.\n" -" -r keyseq Remove the binding for KEYSEQ.\n" -" -x keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n" -" \t\t\t\tKEYSEQ is entered.\n" -" -f filename Read key bindings from FILENAME.\n" -" -q function-name Query about which keys invoke the named function.\n" -" -u function-name Unbind all keys which are bound to the named " -"function.\n" -" -V List variable names and values\n" -" -v List variable names and values in a form that can\n" -" be reused as input.\n" " -S List key sequences that invoke macros and their " "values\n" " -s List key sequences that invoke macros and their " "values\n" -" in a form that can be reused as input." +" in a form that can be reused as input.\n" +" -V List variable names and values\n" +" -v List variable names and values in a form that can\n" +" be reused as input.\n" +" -q function-name Query about which keys invoke the named function.\n" +" -u function-name Unbind all keys which are bound to the named " +"function.\n" +" -r keyseq Remove the binding for KEYSEQ.\n" +" -f filename Read key bindings from FILENAME.\n" +" -x keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n" +" \t\t\t\tKEYSEQ is entered.\n" +" \n" +" Exit Status:\n" +" bind returns 0 unless an unrecognized option is given or an error occurs." -#: builtins.c:297 +#: builtins.c:322 msgid "" -" Exit from within a FOR, WHILE or UNTIL loop. If N is specified,\n" -" break N levels." +"Exit for, while, or until loops.\n" +" \n" +" Exit a FOR, WHILE or UNTIL loop. If N is specified, break N enclosing\n" +" loops.\n" +" \n" +" Exit Status:\n" +" The exit status is 0 unless N is not greater than or equal to 1." msgstr "" -" Exit from within a FOR, WHILE or UNTIL loop. If N is specified,\n" -" break N levels." +"Exit for, while, or until loops.\n" +" \n" +" Exit a FOR, WHILE or UNTIL loop. If N is specified, break N enclosing\n" +" loops.\n" +" \n" +" Exit Status:\n" +" The exit status is 0 unless N is not greater than or equal to 1." -#: builtins.c:304 +#: builtins.c:334 msgid "" -" Resume the next iteration of the enclosing FOR, WHILE or UNTIL loop.\n" -" If N is specified, resume at the N-th enclosing loop." +"Resume for, while, or until loops.\n" +" \n" +" Resumes the next iteration of the enclosing FOR, WHILE or UNTIL loop.\n" +" If N is specified, resumes the Nth enclosing loop.\n" +" \n" +" Exit Status:\n" +" The exit status is 0 unless N is not greater than or equal to 1." msgstr "" -" Resume the next iteration of the enclosing FOR, WHILE or UNTIL loop.\n" -" If N is specified, resume at the N-th enclosing loop." +"Resume for, while, or until loops.\n" +" \n" +" Resumes the next iteration of the enclosing FOR, WHILE or UNTIL loop.\n" +" If N is specified, resumes the Nth enclosing loop.\n" +" \n" +" Exit Status:\n" +" The exit status is 0 unless N is not greater than or equal to 1." -#: builtins.c:311 +#: builtins.c:346 msgid "" -" Run a shell builtin. This is useful when you wish to rename a\n" -" shell builtin to be a function, but need the functionality of the\n" -" builtin within the function itself." +"Execute shell builtins.\n" +" \n" +" Execute SHELL-BUILTIN with arguments ARGs without performing command\n" +" lookup. This is useful when you wish to reimplement a shell builtin\n" +" as a shell function, but need to execute the builtin within the " +"function.\n" +" \n" +" Exit Status:\n" +" Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is\n" +" not a shell builtin.." msgstr "" -" Run a shell builtin. This is useful when you wish to rename a\n" -" shell builtin to be a function, but need the functionality of the\n" -" builtin within the function itself." +"Execute shell builtins.\n" +" \n" +" Execute SHELL-BUILTIN with arguments ARGs without performing command\n" +" lookup. This is useful when you wish to reimplement a shell builtin\n" +" as a shell function, but need to execute the builtin within the " +"function.\n" +" \n" +" Exit Status:\n" +" Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is\n" +" not a shell builtin.." -#: builtins.c:320 +#: builtins.c:361 msgid "" -" Returns the context of the current subroutine call.\n" +"Return the context of the current subroutine call.\n" " \n" -" Without EXPR, returns returns \"$line $filename\". With EXPR,\n" -" returns \"$line $subroutine $filename\"; this extra information\n" -" can be used used to provide a stack trace.\n" +" Without EXPR, returns \"$line $filename\". With EXPR, returns\n" +" \"$line $subroutine $filename\"; this extra information can be used to\n" +" provide a stack trace.\n" " \n" " The value of EXPR indicates how many call frames to go back before the\n" -" current one; the top frame is frame 0." +" current one; the top frame is frame 0.\n" +" \n" +" Exit Status:\n" +" Returns 0 unless the shell is not executing a shell function or EXPR\n" +" is invalid." msgstr "" -" Returns the context of the current subroutine call.\n" +"Return the context of the current subroutine call.\n" " \n" -" Without EXPR, returns returns “$line $filename”. With EXPR,\n" -" returns “$line $subroutine $filename”; this extra information\n" -" can be used used to provide a stack trace.\n" +" Without EXPR, returns “$line $filename”. With EXPR, returns\n" +" “$line $subroutine $filename”; this extra information can be used " +"to\n" +" provide a stack trace.\n" " \n" " The value of EXPR indicates how many call frames to go back before the\n" -" current one; the top frame is frame 0." - -#: builtins.c:334 -msgid "" -" Change the current directory to DIR. The variable $HOME is the\n" -" default DIR. The variable CDPATH defines the search path for\n" -" the directory containing DIR. Alternative directory names in CDPATH\n" -" are separated by a colon (:). A null directory name is the same as\n" -" the current directory, i.e. `.'. If DIR begins with a slash (/),\n" -" then CDPATH is not used. If the directory is not found, and the\n" -" shell option `cdable_vars' is set, then try the word as a variable\n" -" name. If that variable has a value, then cd to the value of that\n" -" variable. The -P option says to use the physical directory structure\n" -" instead of following symbolic links; the -L option forces symbolic " -"links\n" -" to be followed." -msgstr "" -" Change the current directory to DIR. The variable $HOME is the\n" -" default DIR. The variable CDPATH defines the search path for\n" -" the directory containing DIR. Alternative directory names in CDPATH\n" -" are separated by a colon (:). A null directory name is the same as\n" -" the current directory, i.e. ‘.’. If DIR begins with a slash (/),\n" -" then CDPATH is not used. If the directory is not found, and the\n" -" shell option ‘cdable_vars’ is set, then try the word as a " -"variable\n" -" name. If that variable has a value, then cd to the value of that\n" -" variable. The -P option says to use the physical directory structure\n" -" instead of following symbolic links; the -L option forces symbolic " -"links\n" -" to be followed." - -#: builtins.c:350 -msgid "" -" Print the current working directory. With the -P option, pwd prints\n" -" the physical directory, without any symbolic links; the -L option\n" -" makes pwd follow symbolic links." -msgstr "" -" Print the current working directory. With the -P option, pwd prints\n" -" the physical directory, without any symbolic links; the -L option\n" -" 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\n" -" function called `ls', and you wish to call the command `ls', you can\n" -" say \"command ls\". If the -p option is given, a default value is used\n" -" for PATH that is guaranteed to find all of the standard utilities. If\n" -" the -V or -v option is given, a string is printed describing COMMAND.\n" -" The -V option produces a more verbose description." -msgstr "" -" Runs COMMAND with ARGS ignoring shell functions. If you have a shell\n" -" function called ‘ls’, and you wish to call the command ‘ls’, " -"you can\n" -" say “command ls”. If the -p option is given, a default value is " -"used\n" -" for PATH that is guaranteed to find all of the standard utilities. If\n" -" the -V or -v option is given, a string is printed describing COMMAND.\n" -" The -V option produces a more verbose description." +" current one; the top frame is frame 0.\n" +" \n" +" Exit Status:\n" +" Returns 0 unless the shell is not executing a shell function or EXPR\n" +" is invalid." -#: builtins.c:387 +#: builtins.c:379 msgid "" -" Declare variables and/or give them attributes. If no NAMEs are\n" -" given, then display the values of variables instead. The -p option\n" -" will display the attributes and values of each NAME.\n" +"Change the shell working directory.\n" " \n" -" The flags are:\n" +" Change the current directory to DIR. The default DIR is the value of " +"the\n" +" HOME shell variable.\n" " \n" -" -a\tto make NAMEs arrays (if supported)\n" -" -f\tto select from among function names only\n" -" -F\tto display function names (and line number and source file name " -"if\n" -" \tdebugging) without definitions\n" -" -i\tto make NAMEs have the `integer' attribute\n" -" -r\tto make NAMEs readonly\n" -" -t\tto make NAMEs have the `trace' attribute\n" -" -x\tto make NAMEs export\n" +" The variable CDPATH defines the search path for the directory " +"containing\n" +" DIR. Alternative directory names in CDPATH are separated by a colon " +"(:).\n" +" A null directory name is the same as the current directory. If DIR " +"begins\n" +" with a slash (/), then CDPATH is not used.\n" " \n" -" Variables with the integer attribute have arithmetic evaluation (see\n" -" `let') done when the variable is assigned to.\n" +" If the directory is not found, and the shell option `cdable_vars' is " +"set,\n" +" the word is assumed to be a variable name. If that variable has a " +"value,\n" +" its value is used for DIR.\n" +" \n" +" Options:\n" +" -L\tforce symbolic links to be followed\n" +" -P\tuse the physical directory structure without following symbolic\n" +" \tlinks\n" " \n" -" When displaying values of variables, -f displays a function's name\n" -" and definition. The -F option restricts the display to function\n" -" name only.\n" +" The default is to follow symbolic links, as if `-L' were specified.\n" " \n" -" Using `+' instead of `-' turns off the given attribute instead. When\n" -" used in a function, makes NAMEs local, as with the `local' command." +" Exit Status:\n" +" Returns 0 if the directory is changed; non-zero otherwise." msgstr "" -" Declare variables and/or give them attributes. If no NAMEs are\n" -" given, then display the values of variables instead. The -p option\n" -" will display the attributes and values of each NAME.\n" +"Change the shell working directory.\n" " \n" -" The flags are:\n" +" Change the current directory to DIR. The default DIR is the value of " +"the\n" +" HOME shell variable.\n" " \n" -" -a\tto make NAMEs arrays (if supported)\n" -" -f\tto select from among function names only\n" -" -F\tto display function names (and line number and source file name " -"if\n" -" \tdebugging) without definitions\n" -" -i\tto make NAMEs have the ‘integer’ attribute\n" -" -r\tto make NAMEs readonly\n" -" -t\tto make NAMEs have the ‘trace’ attribute\n" -" -x\tto make NAMEs export\n" +" The variable CDPATH defines the search path for the directory " +"containing\n" +" DIR. Alternative directory names in CDPATH are separated by a colon " +"(:).\n" +" A null directory name is the same as the current directory. If DIR " +"begins\n" +" with a slash (/), then CDPATH is not used.\n" " \n" -" Variables with the integer attribute have arithmetic evaluation (see\n" -" ‘let’) done when the variable is assigned to.\n" -" \n" -" When displaying values of variables, -f displays a function's name\n" -" and definition. The -F option restricts the display to function\n" -" name only.\n" -" \n" -" Using ‘+’ instead of ‘-’ turns off the given attribute " -"instead. When\n" -" 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\n" -" can only be used within a function; it makes the variable NAME\n" -" have a visible scope restricted to that function and its children." -msgstr "" -" Create a local variable called NAME, and give it VALUE. LOCAL\n" -" can only be used within a function; it makes the variable NAME\n" -" 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\n" -" suppressed. If the -e option is given, interpretation of the\n" -" following backslash-escaped characters is turned on:\n" -" \t\\a\talert (bell)\n" -" \t\\b\tbackspace\n" -" \t\\c\tsuppress trailing newline\n" -" \t\\E\tescape character\n" -" \t\\f\tform feed\n" -" \t\\n\tnew line\n" -" \t\\r\tcarriage return\n" -" \t\\t\thorizontal tab\n" -" \t\\v\tvertical tab\n" -" \t\\\\\tbackslash\n" -" \t\\num\tthe character whose ASCII code is NUM (octal).\n" -" \n" -" You can explicitly turn off the interpretation of the above characters\n" -" with the -E option." -msgstr "" -" Output the ARGs. If -n is specified, the trailing newline is\n" -" suppressed. If the -e option is given, interpretation of the\n" -" following backslash-escaped characters is turned on:\n" -" \t\\a\talert (bell)\n" -" \t\\b\tbackspace\n" -" \t\\c\tsuppress trailing newline\n" -" \t\\E\tescape character\n" -" \t\\f\tform feed\n" -" \t\\n\tnew line\n" -" \t\\r\tcarriage return\n" -" \t\\t\thorizontal tab\n" -" \t\\v\tvertical tab\n" -" \t\\\\\tbackslash\n" -" \t\\num\tthe character whose ASCII code is NUM (octal).\n" -" \n" -" You can explicitly turn off the interpretation of the above characters\n" -" 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\n" -" you to use a disk command which has the same name as a shell\n" -" builtin without specifying a full pathname. If -n is used, the\n" -" NAMEs become disabled; otherwise NAMEs are enabled. For example,\n" -" to use the `test' found in $PATH instead of the shell builtin\n" -" version, type `enable -n test'. On systems supporting dynamic\n" -" loading, the -f option may be used to load new builtins from the\n" -" shared object FILENAME. The -d option will delete a builtin\n" -" previously loaded with -f. If no non-option names are given, or\n" -" the -p option is supplied, a list of builtins is printed. The\n" -" -a option means to print every builtin with an indication of whether\n" -" or not it is enabled. The -s option restricts the output to the " -"POSIX.2\n" -" `special' builtins. The -n option displays a list of all disabled " -"builtins." -msgstr "" -" Enable and disable builtin shell commands. This allows\n" -" you to use a disk command which has the same name as a shell\n" -" builtin without specifying a full pathname. If -n is used, the\n" -" NAMEs become disabled; otherwise NAMEs are enabled. For example,\n" -" to use the ‘test’ found in $PATH instead of the shell builtin\n" -" version, type ‘enable -n test’. On systems supporting dynamic\n" -" loading, the -f option may be used to load new builtins from the\n" -" shared object FILENAME. The -d option will delete a builtin\n" -" previously loaded with -f. If no non-option names are given, or\n" -" the -p option is supplied, a list of builtins is printed. The\n" -" -a option means to print every builtin with an indication of whether\n" -" or not it is enabled. The -s option restricts the output to the " -"POSIX.2\n" -" ‘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.\n" +" If the directory is not found, and the shell option ‘cdable_vars’ " +"is set,\n" +" the word is assumed to be a variable name. If that variable has a " +"value,\n" +" its value is used for DIR.\n" " \n" -" OPTSTRING contains the option letters to be recognized; if a letter\n" -" is followed by a colon, the option is expected to have an argument,\n" +" Options:\n" +" -L\tforce symbolic links to be followed\n" +" -P\tuse the physical directory structure without following symbolic\n" +" \tlinks\n" +" \n" +" The default is to follow symbolic links, as if ‘-L’ were " +"specified.\n" +" \n" +" Exit Status:\n" +" Returns 0 if the directory is changed; non-zero otherwise." + +#: builtins.c:407 +msgid "" +"Print the name of the current working directory.\n" +" \n" +" Options:\n" +" -L\tprint the value of $PWD if it names the current working\n" +" \tdirectory\n" +" -P\tprint the physical directory, without any symbolic links\n" +" \n" +" By default, `pwd' behaves as if `-L' were specified.\n" +" \n" +" Exit Status:\n" +" Returns 0 unless an invalid option is given or the current directory\n" +" cannot be read." +msgstr "" +"Print the name of the current working directory.\n" +" \n" +" Options:\n" +" -L\tprint the value of $PWD if it names the current working\n" +" \tdirectory\n" +" -P\tprint the physical directory, without any symbolic links\n" +" \n" +" By default, ‘pwd’ behaves as if ‘-L’ were specified.\n" +" \n" +" Exit Status:\n" +" Returns 0 unless an invalid option is given or the current directory\n" +" cannot be read." + +#: builtins.c:424 +msgid "" +"Null command.\n" +" \n" +" No effect; the command does nothing.\n" +" \n" +" Exit Status:\n" +" Always succeeds." +msgstr "" +"Null command.\n" +" \n" +" No effect; the command does nothing.\n" +" \n" +" Exit Status:\n" +" Always succeeds." + +#: builtins.c:435 +msgid "" +"Return a successful result.\n" +" \n" +" Exit Status:\n" +" Always succeeds." +msgstr "" +"Return a successful result.\n" +" \n" +" Exit Status:\n" +" Always succeeds." + +#: builtins.c:444 +msgid "" +"Return an unsuccessful result.\n" +" \n" +" Exit Status:\n" +" Always fails." +msgstr "" +"Return an unsuccessful result.\n" +" \n" +" Exit Status:\n" +" Always fails." + +#: builtins.c:453 +msgid "" +"Execute a simple command or display information about commands.\n" +" \n" +" Runs COMMAND with ARGS suppressing shell function lookup, or display\n" +" information about the specified COMMANDs. Can be used to invoke " +"commands\n" +" on disk when a function with the same name exists.\n" +" \n" +" Options:\n" +" -p\tuse a default value for PATH that is guaranteed to find all of\n" +" \tthe standard utilities\n" +" -v\tprint a description of COMMAND similar to the `type' builtin\n" +" -V\tprint a more verbose description of each COMMAND\n" +" \n" +" Exit Status:\n" +" Returns exit status of COMMAND, or failure if COMMAND is not found." +msgstr "" +"Execute a simple command or display information about commands.\n" +" \n" +" Runs COMMAND with ARGS suppressing shell function lookup, or display\n" +" information about the specified COMMANDs. Can be used to invoke " +"commands\n" +" on disk when a function with the same name exists.\n" +" \n" +" Options:\n" +" -p\tuse a default value for PATH that is guaranteed to find all of\n" +" \tthe standard utilities\n" +" -v\tprint a description of COMMAND similar to the ‘type’ " +"builtin\n" +" -V\tprint a more verbose description of each COMMAND\n" +" \n" +" Exit Status:\n" +" Returns exit status of COMMAND, or failure if COMMAND is not found." + +#: builtins.c:472 +msgid "" +"Set variable values and attributes.\n" +" \n" +" Declare variables and give them attributes. If no NAMEs are given,\n" +" display the attributes and values of all variables.\n" +" \n" +" Options:\n" +" -f\trestrict action or display to function names and definitions\n" +" -F\trestrict display to function names only (plus line number and\n" +" \tsource file when debugging)\n" +" -p\tdisplay the attributes and value of each NAME\n" +" \n" +" Options which set attributes:\n" +" -a\tto make NAMEs indexed arrays (if supported)\n" +" -A\tto make NAMEs associative arrays (if supported)\n" +" -i\tto make NAMEs have the `integer' attribute\n" +" -l\tto convert NAMEs to lower case on assignment\n" +" -r\tto make NAMEs readonly\n" +" -t\tto make NAMEs have the `trace' attribute\n" +" -u\tto convert NAMEs to upper case on assignment\n" +" -x\tto make NAMEs export\n" +" \n" +" Using `+' instead of `-' turns off the given attribute.\n" +" \n" +" Variables with the integer attribute have arithmetic evaluation (see\n" +" the `let' command) performed when the variable is assigned a value.\n" +" \n" +" When used in a function, `declare' makes NAMEs local, as with the " +"`local'\n" +" command.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" +"Set variable values and attributes.\n" +" \n" +" Declare variables and give them attributes. If no NAMEs are given,\n" +" display the attributes and values of all variables.\n" +" \n" +" Options:\n" +" -f\trestrict action or display to function names and definitions\n" +" -F\trestrict display to function names only (plus line number and\n" +" \tsource file when debugging)\n" +" -p\tdisplay the attributes and value of each NAME\n" +" \n" +" Options which set attributes:\n" +" -a\tto make NAMEs indexed arrays (if supported)\n" +" -A\tto make NAMEs associative arrays (if supported)\n" +" -i\tto make NAMEs have the ‘integer’ attribute\n" +" -l\tto convert NAMEs to lower case on assignment\n" +" -r\tto make NAMEs readonly\n" +" -t\tto make NAMEs have the ‘trace’ attribute\n" +" -u\tto convert NAMEs to upper case on assignment\n" +" -x\tto make NAMEs export\n" +" \n" +" Using ‘+’ instead of ‘-’ turns off the given attribute.\n" +" \n" +" Variables with the integer attribute have arithmetic evaluation (see\n" +" the ‘let’ command) performed when the variable is assigned a " +"value.\n" +" \n" +" When used in a function, ‘declare’ makes NAMEs local, as with the " +"‘local’\n" +" command.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." + +#: builtins.c:508 +msgid "" +"Set variable values and attributes.\n" +" \n" +" Obsolete. See `help declare'." +msgstr "" +"Set variable values and attributes.\n" +" \n" +" Obsolete. See ‘help declare’." + +#: builtins.c:516 +msgid "" +"Define local variables.\n" +" \n" +" Create a local variable called NAME, and give it VALUE. OPTION can\n" +" be any option accepted by `declare'.\n" +" \n" +" Local variables can only be used within a function; they are visible\n" +" only to the function where they are defined and its children.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied, an error occurs,\n" +" or the shell is not executing a function." +msgstr "" +"Define local variables.\n" +" \n" +" Create a local variable called NAME, and give it VALUE. OPTION can\n" +" be any option accepted by ‘declare’.\n" +" \n" +" Local variables can only be used within a function; they are visible\n" +" only to the function where they are defined and its children.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied, an error occurs,\n" +" or the shell is not executing a function." + +#: builtins.c:533 +msgid "" +"Write arguments to the standard output.\n" +" \n" +" Display the ARGs on the standard output followed by a newline.\n" +" \n" +" Options:\n" +" -n\tdo not append a newline\n" +" -e\tenable interpretation of the following backslash escapes\n" +" -E\texplicitly suppress interpretation of backslash escapes\n" +" \n" +" `echo' interprets the following backslash-escaped characters:\n" +" \\a\talert (bell)\n" +" \\b\tbackspace\n" +" \\c\tsuppress further output\n" +" \\e\tescape character\n" +" \\f\tform feed\n" +" \\n\tnew line\n" +" \\r\tcarriage return\n" +" \\t\thorizontal tab\n" +" \\v\tvertical tab\n" +" \\\\\tbackslash\n" +" \\0nnn\tthe character whose ASCII code is NNN (octal). NNN can be\n" +" \t0 to 3 octal digits\n" +" \\xHH\tthe eight-bit character whose value is HH (hexadecimal). HH\n" +" \tcan be one or two hex digits\n" +" \n" +" Exit Status:\n" +" Returns success unless a write error occurs." +msgstr "" +"Write arguments to the standard output.\n" +" \n" +" Display the ARGs on the standard output followed by a newline.\n" +" \n" +" Options:\n" +" -n\tdo not append a newline\n" +" -e\tenable interpretation of the following backslash escapes\n" +" -E\texplicitly suppress interpretation of backslash escapes\n" +" \n" +" ‘echo’ interprets the following backslash-escaped characters:\n" +" \\a\talert (bell)\n" +" \\b\tbackspace\n" +" \\c\tsuppress further output\n" +" \\e\tescape character\n" +" \\f\tform feed\n" +" \\n\tnew line\n" +" \\r\tcarriage return\n" +" \\t\thorizontal tab\n" +" \\v\tvertical tab\n" +" \\\\\tbackslash\n" +" \\0nnn\tthe character whose ASCII code is NNN (octal). NNN can be\n" +" \t0 to 3 octal digits\n" +" \\xHH\tthe eight-bit character whose value is HH (hexadecimal). HH\n" +" \tcan be one or two hex digits\n" +" \n" +" Exit Status:\n" +" Returns success unless a write error occurs." + +#: builtins.c:567 +msgid "" +"Write arguments to the standard output.\n" +" \n" +" Display the ARGs on the standard output followed by a newline.\n" +" \n" +" Options:\n" +" -n\tdo not append a newline\n" +" \n" +" Exit Status:\n" +" Returns success unless a write error occurs." +msgstr "" +"Write arguments to the standard output.\n" +" \n" +" Display the ARGs on the standard output followed by a newline.\n" +" \n" +" Options:\n" +" -n\tdo not append a newline\n" +" \n" +" Exit Status:\n" +" Returns success unless a write error occurs." + +#: builtins.c:582 +msgid "" +"Enable and disable shell builtins.\n" +" \n" +" Enables and disables builtin shell commands. Disabling allows you to\n" +" execute a disk command which has the same name as a shell builtin\n" +" without using a full pathname.\n" +" \n" +" Options:\n" +" -a\tprint a list of builtins showing whether or not each is enabled\n" +" -n\tdisable each NAME or display a list of disabled builtins\n" +" -p\tprint the list of builtins in a reusable format\n" +" -s\tprint only the names of Posix `special' builtins\n" +" \n" +" Options controlling dynamic loading:\n" +" -f\tLoad builtin NAME from shared object FILENAME\n" +" -d\tRemove a builtin loaded with -f\n" +" \n" +" Without options, each NAME is enabled.\n" +" \n" +" To use the `test' found in $PATH instead of the shell builtin\n" +" version, type `enable -n test'.\n" +" \n" +" Exit Status:\n" +" Returns success unless NAME is not a shell builtin or an error occurs." +msgstr "" +"Enable and disable shell builtins.\n" +" \n" +" Enables and disables builtin shell commands. Disabling allows you to\n" +" execute a disk command which has the same name as a shell builtin\n" +" without using a full pathname.\n" +" \n" +" Options:\n" +" -a\tprint a list of builtins showing whether or not each is enabled\n" +" -n\tdisable each NAME or display a list of disabled builtins\n" +" -p\tprint the list of builtins in a reusable format\n" +" -s\tprint only the names of Posix ‘special’ builtins\n" +" \n" +" Options controlling dynamic loading:\n" +" -f\tLoad builtin NAME from shared object FILENAME\n" +" -d\tRemove a builtin loaded with -f\n" +" \n" +" Without options, each NAME is enabled.\n" +" \n" +" To use the ‘test’ found in $PATH instead of the shell builtin\n" +" version, type ‘enable -n test’.\n" +" \n" +" Exit Status:\n" +" Returns success unless NAME is not a shell builtin or an error occurs." + +#: builtins.c:610 +msgid "" +"Execute arguments as a shell command.\n" +" \n" +" Combine ARGs into a single string, use the result as input to the " +"shell,\n" +" and execute the resulting commands.\n" +" \n" +" Exit Status:\n" +" Returns exit status of command or success if command is null." +msgstr "" +"Execute arguments as a shell command.\n" +" \n" +" Combine ARGs into a single string, use the result as input to the " +"shell,\n" +" and execute the resulting commands.\n" +" \n" +" Exit Status:\n" +" Returns exit status of command or success if command is null." + +#: builtins.c:622 +msgid "" +"Parse option arguments.\n" +" \n" +" Getopts is used by shell procedures to parse positional parameters\n" +" as options.\n" +" \n" +" OPTSTRING contains the option letters to be recognized; if a letter\n" +" is followed by a colon, the option is expected to have an argument,\n" " which should be separated from it by white space.\n" " \n" " Each time it is invoked, getopts will place the next option in the\n" @@ -1914,9 +2915,16 @@ msgid "" " OPTSTRING is not a colon. OPTERR has the value 1 by default.\n" " \n" " Getopts normally parses the positional parameters ($0 - $9), but if\n" -" more arguments are given, they are parsed instead." +" more arguments are given, they are parsed instead.\n" +" \n" +" Exit Status:\n" +" Returns success if an option is found; fails if the end of options is\n" +" encountered or an error occurs." msgstr "" -" Getopts is used by shell procedures to parse positional parameters.\n" +"Parse option arguments.\n" +" \n" +" Getopts is used by shell procedures to parse positional parameters\n" +" as options.\n" " \n" " OPTSTRING contains the option letters to be recognized; if a letter\n" " is followed by a colon, the option is expected to have an argument,\n" @@ -1948,264 +2956,455 @@ msgstr "" " OPTSTRING is not a colon. OPTERR has the value 1 by default.\n" " \n" " Getopts normally parses the positional parameters ($0 - $9), but if\n" -" more arguments are given, they are parsed instead." - -#: builtins.c:521 -msgid "" -" Exec FILE, replacing this shell with the specified program.\n" -" If FILE is not specified, the redirections take effect in this\n" -" shell. If the first argument is `-l', then place a dash in the\n" -" zeroth arg passed to FILE, as login does. If the `-c' option\n" -" is supplied, FILE is executed with a null environment. The `-a'\n" -" option means to make set argv[0] of the executed process to NAME.\n" -" If the file cannot be executed and the shell is not interactive,\n" -" then the shell exits, unless the shell option `execfail' is set." -msgstr "" -" Exec FILE, replacing this shell with the specified program.\n" -" If FILE is not specified, the redirections take effect in this\n" -" shell. If the first argument is ‘-l’, then place a dash in the\n" -" zeroth arg passed to FILE, as login does. If the ‘-c’ option\n" -" is supplied, FILE is executed with a null environment. The ‘-a’\n" -" option means to make set argv[0] of the executed process to NAME.\n" -" If the file cannot be executed and the shell is not interactive,\n" -" 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\n" +" more arguments are given, they are parsed instead.\n" +" \n" +" Exit Status:\n" +" Returns success if an option is found; fails if the end of options is\n" +" encountered or an error occurs." + +#: builtins.c:664 +msgid "" +"Replace the shell with the given command.\n" +" \n" +" Execute COMMAND, replacing this shell with the specified program.\n" +" ARGUMENTS become the arguments to COMMAND. If COMMAND is not " +"specified,\n" +" any redirections take effect in the current shell.\n" +" \n" +" Options:\n" +" -a name\tpass NAME as the zeroth argument to COMMAND\n" +" -c\t\texecute COMMAND with an empty environment\n" +" -l\t\tplace a dash in the zeroth argument to COMMAND\n" +" \n" +" If the command cannot be executed, a non-interactive shell exits, " +"unless\n" +" the shell option `execfail' is set.\n" +" \n" +" Exit Status:\n" +" Returns success unless COMMAND is not found or a redirection error " +"occurs." +msgstr "" +"Replace the shell with the given command.\n" +" \n" +" Execute COMMAND, replacing this shell with the specified program.\n" +" ARGUMENTS become the arguments to COMMAND. If COMMAND is not " +"specified,\n" +" any redirections take effect in the current shell.\n" +" \n" +" Options:\n" +" -a name\tpass NAME as the zeroth argument to COMMAND\n" +" -c\t\texecute COMMAND with an empty environment\n" +" -l\t\tplace a dash in the zeroth argument to COMMAND\n" +" \n" +" If the command cannot be executed, a non-interactive shell exits, " +"unless\n" +" the shell option ‘execfail’ is set.\n" +" \n" +" Exit Status:\n" +" Returns success unless COMMAND is not found or a redirection error " +"occurs." + +#: builtins.c:685 +msgid "" +"Exit the shell.\n" +" \n" +" Exits the shell with a status of N. If N is omitted, the exit status\n" " is that of the last command executed." msgstr "" -" Exit the shell with a status of N. If N is omitted, the exit status\n" +"Exit the shell.\n" +" \n" +" Exits the shell with a status of N. If N is omitted, the exit status\n" " is that of the last command executed." -#: builtins.c:541 -msgid " Logout of a login shell." -msgstr " Logout of a login shell." +#: builtins.c:694 +msgid "" +"Exit a login shell.\n" +" \n" +" Exits a login shell with exit status N. Returns an error if not " +"executed\n" +" in a login shell." +msgstr "" +"Exit a login shell.\n" +" \n" +" Exits a login shell with exit status N. Returns an error if not " +"executed\n" +" in a login shell." -#: builtins.c:548 +#: builtins.c:704 msgid "" -" fc is used to list or edit and re-execute commands from the history list.\n" +"Display or execute commands from the history list.\n" +" \n" +" fc is used to list or edit and re-execute commands from the history " +"list.\n" " FIRST and LAST can be numbers specifying the range, or FIRST can be a\n" " string, which means the most recent command beginning with that\n" " string.\n" " \n" -" -e ENAME selects which editor to use. Default is FCEDIT, then " +" Options:\n" +" -e ENAME\tselect which editor to use. Default is FCEDIT, then " "EDITOR,\n" -" then vi.\n" -" \n" -" -l means list lines instead of editing.\n" -" -n means no line numbers listed.\n" -" -r means reverse the order of the lines (making it newest listed " -"first).\n" +" \t\tthen vi\n" +" -l \tlist lines instead of editing\n" +" -n\tomit line numbers when listing\n" +" -r\treverse the order of the lines (newest listed first)\n" " \n" -" With the `fc -s [pat=rep ...] [command]' format, the command is\n" +" With the `fc -s [pat=rep ...] [command]' format, COMMAND is\n" " re-executed after the substitution OLD=NEW is performed.\n" " \n" " A useful alias to use with this is r='fc -s', so that typing `r cc'\n" " runs the last command beginning with `cc' and typing `r' re-executes\n" -" the last command." +" the last command.\n" +" \n" +" Exit Status:\n" +" Returns success or status of executed command; non-zero if an error " +"occurs." msgstr "" -" fc is used to list or edit and re-execute commands from the history list.\n" +"Display or execute commands from the history list.\n" +" \n" +" fc is used to list or edit and re-execute commands from the history " +"list.\n" " FIRST and LAST can be numbers specifying the range, or FIRST can be a\n" " string, which means the most recent command beginning with that\n" " string.\n" " \n" -" -e ENAME selects which editor to use. Default is FCEDIT, then " +" Options:\n" +" -e ENAME\tselect which editor to use. Default is FCEDIT, then " "EDITOR,\n" -" then vi.\n" +" \t\tthen vi\n" +" -l \tlist lines instead of editing\n" +" -n\tomit line numbers when listing\n" +" -r\treverse the order of the lines (newest listed first)\n" " \n" -" -l means list lines instead of editing.\n" -" -n means no line numbers listed.\n" -" -r means reverse the order of the lines (making it newest listed " -"first).\n" -" \n" -" With the ‘fc -s [pat=rep ...] [command]’ format, the command is\n" +" With the ‘fc -s [pat=rep ...] [command]’ format, COMMAND is\n" " re-executed after the substitution OLD=NEW is performed.\n" " \n" " A useful alias to use with this is r='fc -s', so that typing ‘r cc" "[0m’\n" " runs the last command beginning with ‘cc’ and typing ‘r’ re-" "executes\n" -" the last command." - -#: builtins.c:573 -msgid "" -" Place JOB_SPEC in the foreground, and make it the current job. If\n" -" JOB_SPEC is not present, the shell's notion of the current job is\n" -" used." -msgstr "" -" Place JOB_SPEC in the foreground, and make it the current job. If\n" -" JOB_SPEC is not present, the shell's notion of the current job is\n" -" used." - -#: builtins.c:583 -msgid "" -" Place each JOB_SPEC in the background, as if it had been started with\n" -" `&'. If JOB_SPEC is not present, the shell's notion of the current\n" -" job is used." -msgstr "" -" Place each JOB_SPEC in the background, as if it had been started with\n" -" ‘&’. If JOB_SPEC is not present, the shell's notion of the " -"current\n" -" job is used." - -#: builtins.c:592 -msgid "" -" For each NAME, the full pathname of the command is determined and\n" -" remembered. If the -p option is supplied, PATHNAME is used as the\n" -" full pathname of NAME, and no path search is performed. The -r\n" -" option causes the shell to forget all remembered locations. The -d\n" -" option causes the shell to forget the remembered location of each NAME.\n" -" If the -t option is supplied the full pathname to which each NAME\n" -" corresponds is printed. If multiple NAME arguments are supplied with\n" -" -t, the NAME is printed before the hashed full pathname. The -l option\n" -" causes output to be displayed in a format that may be reused as input.\n" -" If no arguments are given, information about remembered commands is " -"displayed." -msgstr "" -" For each NAME, the full pathname of the command is determined and\n" -" remembered. If the -p option is supplied, PATHNAME is used as the\n" -" full pathname of NAME, and no path search is performed. The -r\n" -" option causes the shell to forget all remembered locations. The -d\n" -" option causes the shell to forget the remembered location of each NAME.\n" -" If the -t option is supplied the full pathname to which each NAME\n" -" corresponds is printed. If multiple NAME arguments are supplied with\n" -" -t, the NAME is printed before the hashed full pathname. The -l option\n" -" causes output to be displayed in a format that may be reused as input.\n" -" If no arguments are given, information about remembered commands is " -"displayed." - -#: builtins.c:608 -msgid "" -" Display helpful information about builtin commands. If PATTERN is\n" +" the last command.\n" +" \n" +" Exit Status:\n" +" Returns success or status of executed command; non-zero if an error " +"occurs." + +#: builtins.c:734 +msgid "" +"Move job to the foreground.\n" +" \n" +" Place the job identified by JOB_SPEC in the foreground, making it the\n" +" current job. If JOB_SPEC is not present, the shell's notion of the\n" +" current job is used.\n" +" \n" +" Exit Status:\n" +" Status of command placed in foreground, or failure if an error occurs." +msgstr "" +"Move job to the foreground.\n" +" \n" +" Place the job identified by JOB_SPEC in the foreground, making it the\n" +" current job. If JOB_SPEC is not present, the shell's notion of the\n" +" current job is used.\n" +" \n" +" Exit Status:\n" +" Status of command placed in foreground, or failure if an error occurs." + +#: builtins.c:749 +msgid "" +"Move jobs to the background.\n" +" \n" +" Place the jobs identified by each JOB_SPEC in the background, as if " +"they\n" +" had been started with `&'. If JOB_SPEC is not present, the shell's " +"notion\n" +" of the current job is used.\n" +" \n" +" Exit Status:\n" +" Returns success unless job control is not enabled or an error occurs." +msgstr "" +"Move jobs to the background.\n" +" \n" +" Place the jobs identified by each JOB_SPEC in the background, as if " +"they\n" +" had been started with ‘&’. If JOB_SPEC is not present, the " +"shell's notion\n" +" of the current job is used.\n" +" \n" +" Exit Status:\n" +" Returns success unless job control is not enabled or an error occurs." + +#: builtins.c:763 +msgid "" +"Remember or display program locations.\n" +" \n" +" Determine and remember the full pathname of each command NAME. If\n" +" no arguments are given, information about remembered commands is " +"displayed.\n" +" \n" +" Options:\n" +" -d\t\tforget the remembered location of each NAME\n" +" -l\t\tdisplay in a format that may be reused as input\n" +" -p pathname\tuse PATHNAME is the full pathname of NAME\n" +" -r\t\tforget all remembered locations\n" +" -t\t\tprint the remembered location of each NAME, preceding\n" +" \t\teach location with the corresponding NAME if multiple\n" +" \t\tNAMEs are given\n" +" Arguments:\n" +" NAME\t\tEach NAME is searched for in $PATH and added to the list\n" +" \t\tof remembered commands.\n" +" \n" +" Exit Status:\n" +" Returns success unless NAME is not found or an invalid option is given." +msgstr "" +"Remember or display program locations.\n" +" \n" +" Determine and remember the full pathname of each command NAME. If\n" +" no arguments are given, information about remembered commands is " +"displayed.\n" +" \n" +" Options:\n" +" -d\t\tforget the remembered location of each NAME\n" +" -l\t\tdisplay in a format that may be reused as input\n" +" -p pathname\tuse PATHNAME is the full pathname of NAME\n" +" -r\t\tforget all remembered locations\n" +" -t\t\tprint the remembered location of each NAME, preceding\n" +" \t\teach location with the corresponding NAME if multiple\n" +" \t\tNAMEs are given\n" +" Arguments:\n" +" NAME\t\tEach NAME is searched for in $PATH and added to the list\n" +" \t\tof remembered commands.\n" +" \n" +" Exit Status:\n" +" Returns success unless NAME is not found or an invalid option is given." + +#: builtins.c:788 +msgid "" +"Display information about builtin commands.\n" +" \n" +" Displays brief summaries of builtin commands. If PATTERN is\n" " specified, gives detailed help on all commands matching PATTERN,\n" -" otherwise a list of the builtins is printed. The -s option\n" -" restricts the output for each builtin command matching PATTERN to\n" -" a short usage synopsis." +" otherwise the list of help topics is printed.\n" +" \n" +" Options:\n" +" -d\toutput short description for each topic\n" +" -m\tdisplay usage in pseudo-manpage format\n" +" -s\toutput only a short usage synopsis for each topic matching\n" +" \tPATTERN\n" +" \n" +" Arguments:\n" +" PATTERN\tPattern specifiying a help topic\n" +" \n" +" Exit Status:\n" +" Returns success unless PATTERN is not found or an invalid option is " +"given." msgstr "" -" Display helpful information about builtin commands. If PATTERN is\n" +"Display information about builtin commands.\n" +" \n" +" Displays brief summaries of builtin commands. If PATTERN is\n" " specified, gives detailed help on all commands matching PATTERN,\n" -" otherwise a list of the builtins is printed. The -s option\n" -" restricts the output for each builtin command matching PATTERN to\n" -" a short usage synopsis." - -#: builtins.c:620 -msgid "" -" Display the history list with line numbers. Lines listed with\n" -" with a `*' have been modified. Argument of N says to list only\n" -" the last N lines. The `-c' option causes the history list to be\n" -" cleared by deleting all of the entries. The `-d' option deletes\n" -" the history entry at offset OFFSET. The `-w' option writes out the\n" -" current history to the history file; `-r' means to read the file and\n" -" append the contents to the history list instead. `-a' means\n" -" to append history lines from this session to the history file.\n" -" Argument `-n' means to read all history lines not already read\n" -" from the history file and append them to the history list.\n" -" \n" -" If FILENAME is given, then that is used as the history file else\n" +" otherwise the list of help topics is printed.\n" +" \n" +" Options:\n" +" -d\toutput short description for each topic\n" +" -m\tdisplay usage in pseudo-manpage format\n" +" -s\toutput only a short usage synopsis for each topic matching\n" +" \tPATTERN\n" +" \n" +" Arguments:\n" +" PATTERN\tPattern specifiying a help topic\n" +" \n" +" Exit Status:\n" +" Returns success unless PATTERN is not found or an invalid option is " +"given." + +#: builtins.c:812 +msgid "" +"Display or manipulate the history list.\n" +" \n" +" Display the history list with line numbers, prefixing each modified\n" +" entry with a `*'. An argument of N lists only the last N entries.\n" +" \n" +" Options:\n" +" -c\tclear the history list by deleting all of the entries\n" +" -d offset\tdelete the history entry at offset OFFSET.\n" +" \n" +" -a\tappend history lines from this session to the history file\n" +" -n\tread all history lines not already read from the history file\n" +" -r\tread the history file and append the contents to the history\n" +" \tlist\n" +" -w\twrite the current history to the history file\n" +" \tand append them to the history list\n" +" \n" +" -p\tperform history expansion on each ARG and display the result\n" +" \twithout storing it in the history list\n" +" -s\tappend the ARGs to the history list as a single entry\n" +" \n" +" If FILENAME is given, it is used as the history file. Otherwise,\n" " if $HISTFILE has a value, that is used, else ~/.bash_history.\n" -" If the -s option is supplied, the non-option ARGs are appended to\n" -" the history list as a single entry. The -p option means to perform\n" -" history expansion on each ARG and display the result, without storing\n" -" anything in the history list.\n" " \n" " If the $HISTTIMEFORMAT variable is set and not null, its value is used\n" " as a format string for strftime(3) to print the time stamp associated\n" -" with each displayed history entry. No time stamps are printed otherwise." +" with each displayed history entry. No time stamps are printed " +"otherwise.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or an error occurs." msgstr "" -" Display the history list with line numbers. Lines listed with\n" -" with a ‘*’ have been modified. Argument of N says to list only\n" -" the last N lines. The ‘-c’ option causes the history list to be\n" -" cleared by deleting all of the entries. The ‘-d’ option deletes\n" -" the history entry at offset OFFSET. The ‘-w’ option writes out " -"the\n" -" current history to the history file; ‘-r’ means to read the file " -"and\n" -" append the contents to the history list instead. ‘-a’ means\n" -" to append history lines from this session to the history file.\n" -" Argument ‘-n’ means to read all history lines not already read\n" -" from the history file and append them to the history list.\n" +"Display or manipulate the history list.\n" +" \n" +" Display the history list with line numbers, prefixing each modified\n" +" entry with a ‘*’. An argument of N lists only the last N " +"entries.\n" " \n" -" If FILENAME is given, then that is used as the history file else\n" +" Options:\n" +" -c\tclear the history list by deleting all of the entries\n" +" -d offset\tdelete the history entry at offset OFFSET.\n" +" \n" +" -a\tappend history lines from this session to the history file\n" +" -n\tread all history lines not already read from the history file\n" +" -r\tread the history file and append the contents to the history\n" +" \tlist\n" +" -w\twrite the current history to the history file\n" +" \tand append them to the history list\n" +" \n" +" -p\tperform history expansion on each ARG and display the result\n" +" \twithout storing it in the history list\n" +" -s\tappend the ARGs to the history list as a single entry\n" +" \n" +" If FILENAME is given, it is used as the history file. Otherwise,\n" " if $HISTFILE has a value, that is used, else ~/.bash_history.\n" -" If the -s option is supplied, the non-option ARGs are appended to\n" -" the history list as a single entry. The -p option means to perform\n" -" history expansion on each ARG and display the result, without storing\n" -" anything in the history list.\n" " \n" " If the $HISTTIMEFORMAT variable is set and not null, its value is used\n" " as a format string for strftime(3) to print the time stamp associated\n" -" with each displayed history entry. No time stamps are printed otherwise." - -#: builtins.c:648 -msgid "" -" Lists the active jobs. The -l option lists process id's in addition\n" -" to the normal information; the -p option lists process id's only.\n" -" If -n is given, only processes that have changed status since the last\n" -" notification are printed. JOBSPEC restricts output to that job. The\n" -" -r and -s options restrict output to running and stopped jobs only,\n" -" respectively. Without options, the status of all active jobs is\n" -" printed. If -x is given, COMMAND is run after all job specifications\n" -" that appear in ARGS have been replaced with the process ID of that " -"job's\n" -" process group leader." -msgstr "" -" Lists the active jobs. The -l option lists process id's in addition\n" -" to the normal information; the -p option lists process id's only.\n" -" If -n is given, only processes that have changed status since the last\n" -" notification are printed. JOBSPEC restricts output to that job. The\n" -" -r and -s options restrict output to running and stopped jobs only,\n" -" respectively. Without options, the status of all active jobs is\n" -" printed. If -x is given, COMMAND is run after all job specifications\n" -" that appear in ARGS have been replaced with the process ID of that " -"job's\n" -" process group leader." +" with each displayed history entry. No time stamps are printed " +"otherwise.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or an error occurs." -#: builtins.c:664 +#: builtins.c:848 msgid "" -" By default, removes each JOBSPEC argument from the table of active jobs.\n" -" If the -h option is given, the job is not removed from the table, but " -"is\n" -" marked so that SIGHUP is not sent to the job if the shell receives a\n" -" SIGHUP. The -a option, when JOBSPEC is not supplied, means to remove " -"all\n" -" jobs from the job table; the -r option means to remove only running jobs." +"Display status of jobs.\n" +" \n" +" Lists the active jobs. JOBSPEC restricts output to that job.\n" +" Without options, the status of all active jobs is displayed.\n" +" \n" +" Options:\n" +" -l\tlists process IDs in addition to the normal information\n" +" -n\tlist only processes that have changed status since the last\n" +" \tnotification\n" +" -p\tlists process IDs only\n" +" -r\trestrict output to running jobs\n" +" -s\trestrict output to stopped jobs\n" +" \n" +" If -x is supplied, COMMAND is run after all job specifications that\n" +" appear in ARGS have been replaced with the process ID of that job's\n" +" process group leader.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or an error occurs.\n" +" If -x is used, returns the exit status of COMMAND." msgstr "" -" By default, removes each JOBSPEC argument from the table of active jobs.\n" -" If the -h option is given, the job is not removed from the table, but " -"is\n" -" marked so that SIGHUP is not sent to the job if the shell receives a\n" -" SIGHUP. The -a option, when JOBSPEC is not supplied, means to remove " -"all\n" -" 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 JOBSPEC) the signal SIGSPEC. If\n" -" SIGSPEC is not present, then SIGTERM is assumed. An argument of `-l'\n" -" lists the signal names; if arguments follow `-l' they are assumed to\n" -" be signal numbers for which names should be listed. Kill is a shell\n" -" builtin for two reasons: it allows job IDs to be used instead of\n" -" process IDs, and, if you have reached the limit on processes that\n" -" you can create, you don't have to start a process to kill another one." -msgstr "" -" Send the processes named by PID (or JOBSPEC) the signal SIGSPEC. If\n" -" SIGSPEC is not present, then SIGTERM is assumed. An argument of ‘-l" -"[0m’\n" -" lists the signal names; if arguments follow ‘-l’ they are assumed " -"to\n" -" be signal numbers for which names should be listed. Kill is a shell\n" -" builtin for two reasons: it allows job IDs to be used instead of\n" -" process IDs, and, if you have reached the limit on processes that\n" -" you can create, you don't have to start a process to kill another one." +"Display status of jobs.\n" +" \n" +" Lists the active jobs. JOBSPEC restricts output to that job.\n" +" Without options, the status of all active jobs is displayed.\n" +" \n" +" Options:\n" +" -l\tlists process IDs in addition to the normal information\n" +" -n\tlist only processes that have changed status since the last\n" +" \tnotification\n" +" -p\tlists process IDs only\n" +" -r\trestrict output to running jobs\n" +" -s\trestrict output to stopped jobs\n" +" \n" +" If -x is supplied, COMMAND is run after all job specifications that\n" +" appear in ARGS have been replaced with the process ID of that job's\n" +" process group leader.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or an error occurs.\n" +" If -x is used, returns the exit status of COMMAND." + +#: builtins.c:875 +msgid "" +"Remove jobs from current shell.\n" +" \n" +" Removes each JOBSPEC argument from the table of active jobs. Without\n" +" any JOBSPECs, the shell uses its notion of the current job.\n" +" \n" +" Options:\n" +" -a\tremove all jobs if JOBSPEC is not supplied\n" +" -h\tmark each JOBSPEC so that SIGHUP is not sent to the job if the\n" +" \tshell receives a SIGHUP\n" +" -r\tremove only running jobs\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option or JOBSPEC is given." +msgstr "" +"Remove jobs from current shell.\n" +" \n" +" Removes each JOBSPEC argument from the table of active jobs. Without\n" +" any JOBSPECs, the shell uses its notion of the current job.\n" +" \n" +" Options:\n" +" -a\tremove all jobs if JOBSPEC is not supplied\n" +" -h\tmark each JOBSPEC so that SIGHUP is not sent to the job if the\n" +" \tshell receives a SIGHUP\n" +" -r\tremove only running jobs\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option or JOBSPEC is given." -#: builtins.c:687 +#: builtins.c:894 msgid "" -" Each ARG is an arithmetic expression to be evaluated. Evaluation\n" -" is done in fixed-width integers with no check for overflow, though\n" -" division by 0 is trapped and flagged as an error. The following\n" -" list of operators is grouped into levels of equal-precedence operators.\n" -" The levels are listed in order of decreasing precedence.\n" +"Send a signal to a job.\n" +" \n" +" Send the processes identified by PID or JOBSPEC the signal named by\n" +" SIGSPEC or SIGNUM. If neither SIGSPEC nor SIGNUM is present, then\n" +" SIGTERM is assumed.\n" +" \n" +" Options:\n" +" -s sig\tSIG is a signal name\n" +" -n sig\tSIG is a signal number\n" +" -l\tlist the signal names; if arguments follow `-l' they are\n" +" \tassumed to be signal numbers for which names should be listed\n" +" \n" +" Kill is a shell builtin for two reasons: it allows job IDs to be used\n" +" instead of process IDs, and allows processes to be killed if the limit\n" +" on processes that you can create is reached.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or an error occurs." +msgstr "" +"Send a signal to a job.\n" +" \n" +" Send the processes identified by PID or JOBSPEC the signal named by\n" +" SIGSPEC or SIGNUM. If neither SIGSPEC nor SIGNUM is present, then\n" +" SIGTERM is assumed.\n" +" \n" +" Options:\n" +" -s sig\tSIG is a signal name\n" +" -n sig\tSIG is a signal number\n" +" -l\tlist the signal names; if arguments follow ‘-l’ they are\n" +" \tassumed to be signal numbers for which names should be listed\n" +" \n" +" Kill is a shell builtin for two reasons: it allows job IDs to be used\n" +" instead of process IDs, and allows processes to be killed if the limit\n" +" on processes that you can create is reached.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or an error occurs." + +#: builtins.c:917 +msgid "" +"Evaluate arithmetic expressions.\n" +" \n" +" Evaluate each ARG as an arithmetic expression. Evaluation is done in\n" +" fixed-width integers with no check for overflow, though division by 0\n" +" is trapped and flagged as an error. The following list of operators is\n" +" grouped into levels of equal-precedence operators. The levels are " +"listed\n" +" in order of decreasing precedence.\n" " \n" " \tid++, id--\tvariable post-increment, post-decrement\n" " \t++id, --id\tvariable pre-increment, pre-decrement\n" @@ -2237,14 +3436,17 @@ msgid "" " parentheses are evaluated first and may override the precedence\n" " rules above.\n" " \n" -" If the last ARG evaluates to 0, let returns 1; 0 is returned\n" -" otherwise." +" Exit Status:\n" +" If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise.." msgstr "" -" Each ARG is an arithmetic expression to be evaluated. Evaluation\n" -" is done in fixed-width integers with no check for overflow, though\n" -" division by 0 is trapped and flagged as an error. The following\n" -" list of operators is grouped into levels of equal-precedence operators.\n" -" The levels are listed in order of decreasing precedence.\n" +"Evaluate arithmetic expressions.\n" +" \n" +" Evaluate each ARG as an arithmetic expression. Evaluation is done in\n" +" fixed-width integers with no check for overflow, though division by 0\n" +" is trapped and flagged as an error. The following list of operators is\n" +" grouped into levels of equal-precedence operators. The levels are " +"listed\n" +" in order of decreasing precedence.\n" " \n" " \tid++, id--\tvariable post-increment, post-decrement\n" " \t++id, --id\tvariable pre-increment, pre-decrement\n" @@ -2276,357 +3478,477 @@ msgstr "" " parentheses are evaluated first and may override the precedence\n" " rules above.\n" " \n" -" If the last ARG evaluates to 0, let returns 1; 0 is returned\n" -" otherwise." +" Exit Status:\n" +" If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise.." -#: builtins.c:730 +#: builtins.c:962 msgid "" -" One line is read from the standard input, or from file descriptor FD if " -"the\n" -" -u option is supplied, and the first word is assigned to the first " -"NAME,\n" -" the second word to the second NAME, and so on, with leftover words " -"assigned\n" -" to the last NAME. Only the characters found in $IFS are recognized as " +"Read a line from the standard input and split it into fields.\n" +" \n" +" Reads a single line from the standard input, or from file descriptor FD\n" +" if the -u option is supplied. The line is split into fields as with " "word\n" -" delimiters. If no NAMEs are supplied, the line read is stored in the " -"REPLY\n" -" variable. If the -r option is given, this signifies `raw' input, and\n" -" backslash escaping is disabled. The -d option causes read to continue\n" -" until the first character of DELIM is read, rather than newline. If the " -"-p\n" -" option is supplied, the string PROMPT is output without a trailing " -"newline\n" -" before attempting to read. If -a is supplied, the words read are " -"assigned\n" -" to sequential indices of ARRAY, starting at zero. If -e is supplied " -"and\n" -" the shell is interactive, readline is used to obtain the line. If -n " +" splitting, and the first word is assigned to the first NAME, the second\n" +" word to the second NAME, and so on, with any leftover words assigned to\n" +" the last NAME. Only the characters found in $IFS are recognized as " +"word\n" +" delimiters.\n" +" \n" +" If no NAMEs are supplied, the line read is stored in the REPLY " +"variable.\n" +" \n" +" Options:\n" +" -a array\tassign the words read to sequential indices of the array\n" +" \t\tvariable ARRAY, starting at zero\n" +" -d delim\tcontinue until the first character of DELIM is read, rather\n" +" \t\tthan newline\n" +" -e\t\tuse Readline to obtain the line in an interactive shell\n" +" -i text\tUse TEXT as the initial text for Readline\n" +" -n nchars\treturn after reading NCHARS characters rather than waiting\n" +" \t\tfor a newline\n" +" -p prompt\toutput the string PROMPT without a trailing newline before\n" +" \t\tattempting to read\n" +" -r\t\tdo not allow backslashes to escape any characters\n" +" -s\t\tdo not echo input coming from a terminal\n" +" -t timeout\ttime out and return failure if a complete line of input " "is\n" -" supplied with a non-zero NCHARS argument, read returns after NCHARS\n" -" characters have been read. The -s option causes input coming from a\n" -" terminal to not be echoed.\n" +" \t\tnot read withint TIMEOUT seconds. The value of the TMOUT\n" +" \t\tvariable is the default timeout. TIMEOUT may be a\n" +" \t\tfractional number. If TIMEOUT is 0, read returns success only\n" +" \t\tif input is available on the specified file descriptor. The\n" +" \t\texit status is greater than 128 if the timeout is exceeded\n" +" -u fd\t\tread from file descriptor FD instead of the standard input\n" " \n" -" The -t option causes read to time out and return failure if a complete " -"line\n" -" of input is not read within TIMEOUT seconds. If the TMOUT variable is " -"set,\n" -" its value is the default timeout. The return code is zero, unless end-" -"of-file\n" -" is encountered, read times out, or an invalid file descriptor is " -"supplied as\n" -" the argument to -u." +" Exit Status:\n" +" The return code is zero, unless end-of-file is encountered, read times " +"out,\n" +" or an invalid file descriptor is supplied as the argument to -u." msgstr "" -" One line is read from the standard input, or from file descriptor FD if " -"the\n" -" -u option is supplied, and the first word is assigned to the first " -"NAME,\n" -" the second word to the second NAME, and so on, with leftover words " -"assigned\n" -" to the last NAME. Only the characters found in $IFS are recognized as " +"Read a line from the standard input and split it into fields.\n" +" \n" +" Reads a single line from the standard input, or from file descriptor FD\n" +" if the -u option is supplied. The line is split into fields as with " "word\n" -" delimiters. If no NAMEs are supplied, the line read is stored in the " -"REPLY\n" -" variable. If the -r option is given, this signifies ‘raw’ input, " -"and\n" -" backslash escaping is disabled. The -d option causes read to continue\n" -" until the first character of DELIM is read, rather than newline. If the " -"-p\n" -" option is supplied, the string PROMPT is output without a trailing " -"newline\n" -" before attempting to read. If -a is supplied, the words read are " -"assigned\n" -" to sequential indices of ARRAY, starting at zero. If -e is supplied " -"and\n" -" the shell is interactive, readline is used to obtain the line. If -n " +" splitting, and the first word is assigned to the first NAME, the second\n" +" word to the second NAME, and so on, with any leftover words assigned to\n" +" the last NAME. Only the characters found in $IFS are recognized as " +"word\n" +" delimiters.\n" +" \n" +" If no NAMEs are supplied, the line read is stored in the REPLY " +"variable.\n" +" \n" +" Options:\n" +" -a array\tassign the words read to sequential indices of the array\n" +" \t\tvariable ARRAY, starting at zero\n" +" -d delim\tcontinue until the first character of DELIM is read, rather\n" +" \t\tthan newline\n" +" -e\t\tuse Readline to obtain the line in an interactive shell\n" +" -i text\tUse TEXT as the initial text for Readline\n" +" -n nchars\treturn after reading NCHARS characters rather than waiting\n" +" \t\tfor a newline\n" +" -p prompt\toutput the string PROMPT without a trailing newline before\n" +" \t\tattempting to read\n" +" -r\t\tdo not allow backslashes to escape any characters\n" +" -s\t\tdo not echo input coming from a terminal\n" +" -t timeout\ttime out and return failure if a complete line of input " "is\n" -" supplied with a non-zero NCHARS argument, read returns after NCHARS\n" -" characters have been read. The -s option causes input coming from a\n" -" terminal to not be echoed.\n" +" \t\tnot read withint TIMEOUT seconds. The value of the TMOUT\n" +" \t\tvariable is the default timeout. TIMEOUT may be a\n" +" \t\tfractional number. If TIMEOUT is 0, read returns success only\n" +" \t\tif input is available on the specified file descriptor. The\n" +" \t\texit status is greater than 128 if the timeout is exceeded\n" +" -u fd\t\tread from file descriptor FD instead of the standard input\n" +" \n" +" Exit Status:\n" +" The return code is zero, unless end-of-file is encountered, read times " +"out,\n" +" or an invalid file descriptor is supplied as the argument to -u." + +#: builtins.c:1002 +msgid "" +"Return from a shell function.\n" +" \n" +" Causes a function or sourced script to exit with the return value\n" +" specified by N. If N is omitted, the return status is that of the\n" +" last command executed within the function or script.\n" +" \n" +" Exit Status:\n" +" Returns N, or failure if the shell is not executing a function or script." +msgstr "" +"Return from a shell function.\n" +" \n" +" Causes a function or sourced script to exit with the return value\n" +" specified by N. If N is omitted, the return status is that of the\n" +" last command executed within the function or script.\n" +" \n" +" Exit Status:\n" +" Returns N, or failure if the shell is not executing a function or script." + +#: builtins.c:1015 +msgid "" +"Set or unset values of shell options and positional parameters.\n" +" \n" +" Change the value of shell attributes and positional parameters, or\n" +" display the names and values of shell variables.\n" +" \n" +" Options:\n" +" -a Mark variables which are modified or created for export.\n" +" -b Notify of job termination immediately.\n" +" -e Exit immediately if a command exits with a non-zero status.\n" +" -f Disable file name generation (globbing).\n" +" -h Remember the location of commands as they are looked up.\n" +" -k All assignment arguments are placed in the environment for a\n" +" command, not just those that precede the command name.\n" +" -m Job control is enabled.\n" +" -n Read commands but do not execute them.\n" +" -o option-name\n" +" Set the variable corresponding to option-name:\n" +" allexport same as -a\n" +" braceexpand same as -B\n" +" emacs use an emacs-style line editing interface\n" +" errexit same as -e\n" +" errtrace same as -E\n" +" functrace same as -T\n" +" hashall same as -h\n" +" histexpand same as -H\n" +" history enable command history\n" +" ignoreeof the shell will not exit upon reading EOF\n" +" interactive-comments\n" +" allow comments to appear in interactive commands\n" +" keyword same as -k\n" +" monitor same as -m\n" +" noclobber same as -C\n" +" noexec same as -n\n" +" noglob same as -f\n" +" nolog currently accepted but ignored\n" +" notify same as -b\n" +" nounset same as -u\n" +" onecmd same as -t\n" +" physical same as -P\n" +" pipefail the return value of a pipeline is the status of\n" +" the last command to exit with a non-zero status,\n" +" or zero if no command exited with a non-zero " +"status\n" +" posix change the behavior of bash where the default\n" +" operation differs from the Posix standard to\n" +" match the standard\n" +" privileged same as -p\n" +" verbose same as -v\n" +" vi use a vi-style line editing interface\n" +" xtrace same as -x\n" +" -p Turned on whenever the real and effective user ids do not match.\n" +" Disables processing of the $ENV file and importing of shell\n" +" functions. Turning this option off causes the effective uid and\n" +" gid to be set to the real uid and gid.\n" +" -t Exit after reading and executing one command.\n" +" -u Treat unset variables as an error when substituting.\n" +" -v Print shell input lines as they are read.\n" +" -x Print commands and their arguments as they are executed.\n" +" -B the shell will perform brace expansion\n" +" -C If set, disallow existing regular files to be overwritten\n" +" by redirection of output.\n" +" -E If set, the ERR trap is inherited by shell functions.\n" +" -H Enable ! style history substitution. This flag is on\n" +" by default when the shell is interactive.\n" +" -P If set, do not follow symbolic links when executing commands\n" +" such as cd which change the current directory.\n" +" -T If set, the DEBUG trap is inherited by shell functions.\n" +" - Assign any remaining arguments to the positional parameters.\n" +" The -x and -v options are turned off.\n" +" \n" +" Using + rather than - causes these flags to be turned off. The\n" +" flags can also be used upon invocation of the shell. The current\n" +" set of flags may be found in $-. The remaining n ARGs are positional\n" +" parameters and are assigned, in order, to $1, $2, .. $n. If no\n" +" ARGs are given, all shell variables are printed.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given." +msgstr "" +"Set or unset values of shell options and positional parameters.\n" +" \n" +" Change the value of shell attributes and positional parameters, or\n" +" display the names and values of shell variables.\n" +" \n" +" Options:\n" +" -a Mark variables which are modified or created for export.\n" +" -b Notify of job termination immediately.\n" +" -e Exit immediately if a command exits with a non-zero status.\n" +" -f Disable file name generation (globbing).\n" +" -h Remember the location of commands as they are looked up.\n" +" -k All assignment arguments are placed in the environment for a\n" +" command, not just those that precede the command name.\n" +" -m Job control is enabled.\n" +" -n Read commands but do not execute them.\n" +" -o option-name\n" +" Set the variable corresponding to option-name:\n" +" allexport same as -a\n" +" braceexpand same as -B\n" +" emacs use an emacs-style line editing interface\n" +" errexit same as -e\n" +" errtrace same as -E\n" +" functrace same as -T\n" +" hashall same as -h\n" +" histexpand same as -H\n" +" history enable command history\n" +" ignoreeof the shell will not exit upon reading EOF\n" +" interactive-comments\n" +" allow comments to appear in interactive commands\n" +" keyword same as -k\n" +" monitor same as -m\n" +" noclobber same as -C\n" +" noexec same as -n\n" +" noglob same as -f\n" +" nolog currently accepted but ignored\n" +" notify same as -b\n" +" nounset same as -u\n" +" onecmd same as -t\n" +" physical same as -P\n" +" pipefail the return value of a pipeline is the status of\n" +" the last command to exit with a non-zero status,\n" +" or zero if no command exited with a non-zero " +"status\n" +" posix change the behavior of bash where the default\n" +" operation differs from the Posix standard to\n" +" match the standard\n" +" privileged same as -p\n" +" verbose same as -v\n" +" vi use a vi-style line editing interface\n" +" xtrace same as -x\n" +" -p Turned on whenever the real and effective user ids do not match.\n" +" Disables processing of the $ENV file and importing of shell\n" +" functions. Turning this option off causes the effective uid and\n" +" gid to be set to the real uid and gid.\n" +" -t Exit after reading and executing one command.\n" +" -u Treat unset variables as an error when substituting.\n" +" -v Print shell input lines as they are read.\n" +" -x Print commands and their arguments as they are executed.\n" +" -B the shell will perform brace expansion\n" +" -C If set, disallow existing regular files to be overwritten\n" +" by redirection of output.\n" +" -E If set, the ERR trap is inherited by shell functions.\n" +" -H Enable ! style history substitution. This flag is on\n" +" by default when the shell is interactive.\n" +" -P If set, do not follow symbolic links when executing commands\n" +" such as cd which change the current directory.\n" +" -T If set, the DEBUG trap is inherited by shell functions.\n" +" - Assign any remaining arguments to the positional parameters.\n" +" The -x and -v options are turned off.\n" +" \n" +" Using + rather than - causes these flags to be turned off. The\n" +" flags can also be used upon invocation of the shell. The current\n" +" set of flags may be found in $-. The remaining n ARGs are positional\n" +" parameters and are assigned, in order, to $1, $2, .. $n. If no\n" +" ARGs are given, all shell variables are printed.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given." + +#: builtins.c:1097 +msgid "" +"Unset values and attributes of shell variables and functions.\n" +" \n" +" For each NAME, remove the corresponding variable or function.\n" +" \n" +" Options:\n" +" -f\ttreat each NAME as a shell function\n" +" -v\ttreat each NAME as a shell variable\n" +" \n" +" Without options, unset first tries to unset a variable, and if that " +"fails,\n" +" tries to unset a function.\n" +" \n" +" Some variables cannot be unset; also see `readonly'.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or a NAME is read-only." +msgstr "" +"Unset values and attributes of shell variables and functions.\n" +" \n" +" For each NAME, remove the corresponding variable or function.\n" +" \n" +" Options:\n" +" -f\ttreat each NAME as a shell function\n" +" -v\ttreat each NAME as a shell variable\n" +" \n" +" Without options, unset first tries to unset a variable, and if that " +"fails,\n" +" tries to unset a function.\n" +" \n" +" Some variables cannot be unset; also see ‘readonly’.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or a NAME is read-only." + +#: builtins.c:1117 +msgid "" +"Set export attribute for shell variables.\n" +" \n" +" Marks each NAME for automatic export to the environment of subsequently\n" +" executed commands. If VALUE is supplied, assign VALUE before " +"exporting.\n" +" \n" +" Options:\n" +" -f\trefer to shell functions\n" +" -n\tremove the export property from each NAME\n" +" -p\tdisplay a list of all exported variables and functions\n" +" \n" +" An argument of `--' disables further option processing.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or NAME is invalid." +msgstr "" +"Set export attribute for shell variables.\n" +" \n" +" Marks each NAME for automatic export to the environment of subsequently\n" +" executed commands. If VALUE is supplied, assign VALUE before " +"exporting.\n" +" \n" +" Options:\n" +" -f\trefer to shell functions\n" +" -n\tremove the export property from each NAME\n" +" -p\tdisplay a list of all exported variables and functions\n" +" \n" +" An argument of ‘--’ disables further option processing.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or NAME is invalid." + +#: builtins.c:1136 +msgid "" +"Mark shell variables as unchangeable.\n" +" \n" +" Mark each NAME as read-only; the values of these NAMEs may not be\n" +" changed by subsequent assignment. If VALUE is supplied, assign VALUE\n" +" before marking as read-only.\n" +" \n" +" Options:\n" +" -a\trefer to indexed array variables\n" +" -A\trefer to associative array variables\n" +" -f\trefer to shell functions\n" +" -p\tdisplay a list of all readonly variables and functions\n" +" \n" +" An argument of `--' disables further option processing.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or NAME is invalid." +msgstr "" +"Mark shell variables as unchangeable.\n" +" \n" +" Mark each NAME as read-only; the values of these NAMEs may not be\n" +" changed by subsequent assignment. If VALUE is supplied, assign VALUE\n" +" before marking as read-only.\n" +" \n" +" Options:\n" +" -a\trefer to indexed array variables\n" +" -A\trefer to associative array variables\n" +" -f\trefer to shell functions\n" +" -p\tdisplay a list of all readonly variables and functions\n" +" \n" +" An argument of ‘--’ disables further option processing.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or NAME is invalid." + +#: builtins.c:1157 +msgid "" +"Shift positional parameters.\n" +" \n" +" Rename the positional parameters $N+1,$N+2 ... to $1,$2 ... If N is\n" +" not given, it is assumed to be 1.\n" +" \n" +" Exit Status:\n" +" Returns success unless N is negative or greater than $#." +msgstr "" +"Shift positional parameters.\n" +" \n" +" Rename the positional parameters $N+1,$N+2 ... to $1,$2 ... If N is\n" +" not given, it is assumed to be 1.\n" +" \n" +" Exit Status:\n" +" Returns success unless N is negative or greater than $#." + +#: builtins.c:1169 builtins.c:1184 +msgid "" +"Execute commands from a file in the current shell.\n" +" \n" +" Read and execute commands from FILENAME in the current shell. The\n" +" entries in $PATH are used to find the directory containing FILENAME.\n" +" If any ARGUMENTS are supplied, they become the positional parameters\n" +" when FILENAME is executed.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed in FILENAME; fails if\n" +" FILENAME cannot be read." +msgstr "" +"Execute commands from a file in the current shell.\n" +" \n" +" Read and execute commands from FILENAME in the current shell. The\n" +" entries in $PATH are used to find the directory containing FILENAME.\n" +" If any ARGUMENTS are supplied, they become the positional parameters\n" +" when FILENAME is executed.\n" " \n" -" The -t option causes read to time out and return failure if a complete " -"line\n" -" of input is not read within TIMEOUT seconds. If the TMOUT variable is " -"set,\n" -" its value is the default timeout. The return code is zero, unless end-" -"of-file\n" -" is encountered, read times out, or an invalid file descriptor is " -"supplied as\n" -" the argument to -u." +" Exit Status:\n" +" Returns the status of the last command executed in FILENAME; fails if\n" +" FILENAME cannot be read." -#: builtins.c:756 +#: builtins.c:1200 msgid "" -" Causes a function to exit with the return value specified by N. If N\n" -" is omitted, the return status is that of the last command." +"Suspend shell execution.\n" +" \n" +" Suspend the execution of this shell until it receives a SIGCONT signal.\n" +" Unless forced, login shells cannot be suspended.\n" +" \n" +" Options:\n" +" -f\tforce the suspend, even if the shell is a login shell\n" +" \n" +" Exit Status:\n" +" Returns success unless job control is not enabled or an error occurs." msgstr "" -" Causes a function to exit with the return value specified by N. If N\n" -" is omitted, the return status is that of the last command." +"Suspend shell execution.\n" +" \n" +" Suspend the execution of this shell until it receives a SIGCONT signal.\n" +" Unless forced, login shells cannot be suspended.\n" +" \n" +" Options:\n" +" -f\tforce the suspend, even if the shell is a login shell\n" +" \n" +" Exit Status:\n" +" Returns success unless job control is not enabled or an error occurs." -#: builtins.c:763 +#: builtins.c:1216 msgid "" -" -a Mark variables which are modified or created for export.\n" -" -b Notify of job termination immediately.\n" -" -e Exit immediately if a command exits with a non-zero status.\n" -" -f Disable file name generation (globbing).\n" -" -h Remember the location of commands as they are looked up.\n" -" -k All assignment arguments are placed in the environment for a\n" -" command, not just those that precede the command name.\n" -" -m Job control is enabled.\n" -" -n Read commands but do not execute them.\n" -" -o option-name\n" -" Set the variable corresponding to option-name:\n" -" allexport same as -a\n" -" braceexpand same as -B\n" -" emacs use an emacs-style line editing interface\n" -" errexit same as -e\n" -" errtrace same as -E\n" -" functrace same as -T\n" -" hashall same as -h\n" -" histexpand same as -H\n" -" history enable command history\n" -" ignoreeof the shell will not exit upon reading EOF\n" -" interactive-comments\n" -" allow comments to appear in interactive " -"commands\n" -" keyword same as -k\n" -" monitor same as -m\n" -" noclobber same as -C\n" -" noexec same as -n\n" -" noglob same as -f\n" -" nolog currently accepted but ignored\n" -" notify same as -b\n" -" nounset same as -u\n" -" onecmd same as -t\n" -" physical same as -P\n" -" pipefail the return value of a pipeline is the status " -"of\n" -" the last command to exit with a non-zero " -"status,\n" -" or zero if no command exited with a non-zero " -"status\n" -" posix change the behavior of bash where the default\n" -" operation differs from the 1003.2 standard to\n" -" match the standard\n" -" privileged same as -p\n" -" verbose same as -v\n" -" vi use a vi-style line editing interface\n" -" xtrace same as -x\n" -" -p Turned on whenever the real and effective user ids do not " -"match.\n" -" Disables processing of the $ENV file and importing of shell\n" -" functions. Turning this option off causes the effective uid " -"and\n" -" gid to be set to the real uid and gid.\n" -" -t Exit after reading and executing one command.\n" -" -u Treat unset variables as an error when substituting.\n" -" -v Print shell input lines as they are read.\n" -" -x Print commands and their arguments as they are executed.\n" -" -B the shell will perform brace expansion\n" -" -C If set, disallow existing regular files to be overwritten\n" -" by redirection of output.\n" -" -E If set, the ERR trap is inherited by shell functions.\n" -" -H Enable ! style history substitution. This flag is on\n" -" by default when the shell is interactive.\n" -" -P If set, do not follow symbolic links when executing commands\n" -" such as cd which change the current directory.\n" -" -T If set, the DEBUG trap is inherited by shell functions.\n" -" - Assign any remaining arguments to the positional parameters.\n" -" The -x and -v options are turned off.\n" -" \n" -" Using + rather than - causes these flags to be turned off. The\n" -" flags can also be used upon invocation of the shell. The current\n" -" set of flags may be found in $-. The remaining n ARGs are positional\n" -" parameters and are assigned, in order, to $1, $2, .. $n. If no\n" -" ARGs are given, all shell variables are printed." -msgstr "" -" -a Mark variables which are modified or created for export.\n" -" -b Notify of job termination immediately.\n" -" -e Exit immediately if a command exits with a non-zero status.\n" -" -f Disable file name generation (globbing).\n" -" -h Remember the location of commands as they are looked up.\n" -" -k All assignment arguments are placed in the environment for a\n" -" command, not just those that precede the command name.\n" -" -m Job control is enabled.\n" -" -n Read commands but do not execute them.\n" -" -o option-name\n" -" Set the variable corresponding to option-name:\n" -" allexport same as -a\n" -" braceexpand same as -B\n" -" emacs use an emacs-style line editing interface\n" -" errexit same as -e\n" -" errtrace same as -E\n" -" functrace same as -T\n" -" hashall same as -h\n" -" histexpand same as -H\n" -" history enable command history\n" -" ignoreeof the shell will not exit upon reading EOF\n" -" interactive-comments\n" -" allow comments to appear in interactive " -"commands\n" -" keyword same as -k\n" -" monitor same as -m\n" -" noclobber same as -C\n" -" noexec same as -n\n" -" noglob same as -f\n" -" nolog currently accepted but ignored\n" -" notify same as -b\n" -" nounset same as -u\n" -" onecmd same as -t\n" -" physical same as -P\n" -" pipefail the return value of a pipeline is the status " -"of\n" -" the last command to exit with a non-zero " -"status,\n" -" or zero if no command exited with a non-zero " -"status\n" -" posix change the behavior of bash where the default\n" -" operation differs from the 1003.2 standard to\n" -" match the standard\n" -" privileged same as -p\n" -" verbose same as -v\n" -" vi use a vi-style line editing interface\n" -" xtrace same as -x\n" -" -p Turned on whenever the real and effective user ids do not " -"match.\n" -" Disables processing of the $ENV file and importing of shell\n" -" functions. Turning this option off causes the effective uid " -"and\n" -" gid to be set to the real uid and gid.\n" -" -t Exit after reading and executing one command.\n" -" -u Treat unset variables as an error when substituting.\n" -" -v Print shell input lines as they are read.\n" -" -x Print commands and their arguments as they are executed.\n" -" -B the shell will perform brace expansion\n" -" -C If set, disallow existing regular files to be overwritten\n" -" by redirection of output.\n" -" -E If set, the ERR trap is inherited by shell functions.\n" -" -H Enable ! style history substitution. This flag is on\n" -" by default when the shell is interactive.\n" -" -P If set, do not follow symbolic links when executing commands\n" -" such as cd which change the current directory.\n" -" -T If set, the DEBUG trap is inherited by shell functions.\n" -" - Assign any remaining arguments to the positional parameters.\n" -" The -x and -v options are turned off.\n" +"Evaluate conditional expression.\n" " \n" -" Using + rather than - causes these flags to be turned off. The\n" -" flags can also be used upon invocation of the shell. The current\n" -" set of flags may be found in $-. The remaining n ARGs are positional\n" -" parameters and are assigned, in order, to $1, $2, .. $n. If no\n" -" ARGs are given, all shell variables are printed." - -#: builtins.c:836 -msgid "" -" For each NAME, remove the corresponding variable or function. Given\n" -" the `-v', unset will only act on variables. Given the `-f' flag,\n" -" unset will only act on functions. With neither flag, unset first\n" -" tries to unset a variable, and if that fails, then tries to unset a\n" -" function. Some variables cannot be unset; also see readonly." -msgstr "" -" For each NAME, remove the corresponding variable or function. Given\n" -" the ‘-v’, unset will only act on variables. Given the ‘-f’ " -"flag,\n" -" unset will only act on functions. With neither flag, unset first\n" -" tries to unset a variable, and if that fails, then tries to unset a\n" -" function. Some variables cannot be unset; also see readonly." - -#: builtins.c:846 -msgid "" -" NAMEs are marked for automatic export to the environment of\n" -" subsequently executed commands. If the -f option is given,\n" -" the NAMEs refer to functions. If no NAMEs are given, or if `-p'\n" -" is given, a list of all names that are exported in this shell is\n" -" printed. An argument of `-n' says to remove the export property\n" -" from subsequent NAMEs. An argument of `--' disables further option\n" -" processing." -msgstr "" -" NAMEs are marked for automatic export to the environment of\n" -" subsequently executed commands. If the -f option is given,\n" -" the NAMEs refer to functions. If no NAMEs are given, or if ‘-p’\n" -" is given, a list of all names that are exported in this shell is\n" -" printed. An argument of ‘-n’ says to remove the export property\n" -" from subsequent NAMEs. An argument of ‘--’ disables further " -"option\n" -" processing." - -#: builtins.c:858 -msgid "" -" The given NAMEs are marked readonly and the values of these NAMEs may\n" -" not be changed by subsequent assignment. If the -f option is given,\n" -" then functions corresponding to the NAMEs are so marked. If no\n" -" arguments are given, or if `-p' is given, a list of all readonly names\n" -" is printed. The `-a' option means to treat each NAME as\n" -" an array variable. An argument of `--' disables further option\n" -" processing." -msgstr "" -" The given NAMEs are marked readonly and the values of these NAMEs may\n" -" not be changed by subsequent assignment. If the -f option is given,\n" -" then functions corresponding to the NAMEs are so marked. If no\n" -" arguments are given, or if ‘-p’ is given, a list of all readonly " -"names\n" -" is printed. The ‘-a’ option means to treat each NAME as\n" -" an array variable. An argument of ‘--’ disables further option\n" -" processing." - -#: builtins.c:870 -msgid "" -" The positional parameters from $N+1 ... are renamed to $1 ... If N is\n" -" not given, it is assumed to be 1." -msgstr "" -" The positional parameters from $N+1 ... are renamed to $1 ... If N is\n" -" not given, it is assumed to be 1." - -#: builtins.c:877 builtins.c:886 -msgid "" -" Read and execute commands from FILENAME and return. The pathnames\n" -" in $PATH are used to find the directory containing FILENAME. If any\n" -" ARGUMENTS are supplied, they become the positional parameters when\n" -" FILENAME is executed." -msgstr "" -" Read and execute commands from FILENAME and return. The pathnames\n" -" in $PATH are used to find the directory containing FILENAME. If any\n" -" ARGUMENTS are supplied, they become the positional parameters when\n" -" FILENAME is executed." - -#: builtins.c:896 -msgid "" -" Suspend the execution of this shell until it receives a SIGCONT\n" -" signal. The `-f' if specified says not to complain about this\n" -" being a login shell if it is; just suspend anyway." -msgstr "" -" Suspend the execution of this shell until it receives a SIGCONT\n" -" signal. The ‘-f’ if specified says not to complain about this\n" -" being a login shell if it is; just suspend anyway." - -#: builtins.c:905 -msgid "" -" Exits with a status of 0 (true) or 1 (false) depending on\n" +" Exits with a status of 0 (true) or 1 (false) depending on\n" " the evaluation of EXPR. Expressions may be unary or binary. Unary\n" " expressions are often used to examine the status of a file. There\n" " are string operators as well, and numeric comparison operators.\n" " \n" " File operators:\n" " \n" -" -a FILE True if file exists.\n" -" -b FILE True if file is block special.\n" -" -c FILE True if file is character special.\n" -" -d FILE True if file is a directory.\n" -" -e FILE True if file exists.\n" -" -f FILE True if file exists and is a regular file.\n" -" -g FILE True if file is set-group-id.\n" -" -h FILE True if file is a symbolic link.\n" -" -L FILE True if file is a symbolic link.\n" -" -k FILE True if file has its `sticky' bit set.\n" -" -p FILE True if file is a named pipe.\n" -" -r FILE True if file is readable by you.\n" -" -s FILE True if file exists and is not empty.\n" -" -S FILE True if file is a socket.\n" -" -t FD True if FD is opened on a terminal.\n" -" -u FILE True if the file is set-user-id.\n" -" -w FILE True if the file is writable by you.\n" -" -x FILE True if the file is executable by you.\n" -" -O FILE True if the file is effectively owned by you.\n" -" -G FILE True if the file is effectively owned by your group.\n" -" -N FILE True if the file has been modified since it was last " +" -a FILE True if file exists.\n" +" -b FILE True if file is block special.\n" +" -c FILE True if file is character special.\n" +" -d FILE True if file is a directory.\n" +" -e FILE True if file exists.\n" +" -f FILE True if file exists and is a regular file.\n" +" -g FILE True if file is set-group-id.\n" +" -h FILE True if file is a symbolic link.\n" +" -L FILE True if file is a symbolic link.\n" +" -k FILE True if file has its `sticky' bit set.\n" +" -p FILE True if file is a named pipe.\n" +" -r FILE True if file is readable by you.\n" +" -s FILE True if file exists and is not empty.\n" +" -S FILE True if file is a socket.\n" +" -t FD True if FD is opened on a terminal.\n" +" -u FILE True if the file is set-user-id.\n" +" -w FILE True if the file is writable by you.\n" +" -x FILE True if the file is executable by you.\n" +" -O FILE True if the file is effectively owned by you.\n" +" -G FILE True if the file is effectively owned by your group.\n" +" -N FILE True if the file has been modified since it was last " "read.\n" " \n" " FILE1 -nt FILE2 True if file1 is newer than file2 (according to\n" @@ -2638,64 +3960,69 @@ msgid "" " \n" " String operators:\n" " \n" -" -z STRING True if string is empty.\n" +" -z STRING True if string is empty.\n" " \n" -" -n STRING\n" -" STRING True if string is not empty.\n" +" -n STRING\n" +" STRING True if string is not empty.\n" " \n" -" STRING1 = STRING2\n" -" True if the strings are equal.\n" -" STRING1 != STRING2\n" -" True if the strings are not equal.\n" -" STRING1 < STRING2\n" -" True if STRING1 sorts before STRING2 " -"lexicographically.\n" -" STRING1 > STRING2\n" -" True if STRING1 sorts after STRING2 " +" STRING1 = STRING2\n" +" True if the strings are equal.\n" +" STRING1 != STRING2\n" +" True if the strings are not equal.\n" +" STRING1 < STRING2\n" +" True if STRING1 sorts before STRING2 " "lexicographically.\n" +" STRING1 > STRING2\n" +" True if STRING1 sorts after STRING2 lexicographically.\n" " \n" " Other operators:\n" " \n" -" -o OPTION True if the shell option OPTION is enabled.\n" -" ! EXPR True if expr is false.\n" -" EXPR1 -a EXPR2 True if both expr1 AND expr2 are true.\n" -" EXPR1 -o EXPR2 True if either expr1 OR expr2 is true.\n" +" -o OPTION True if the shell option OPTION is enabled.\n" +" ! EXPR True if expr is false.\n" +" EXPR1 -a EXPR2 True if both expr1 AND expr2 are true.\n" +" EXPR1 -o EXPR2 True if either expr1 OR expr2 is true.\n" " \n" -" arg1 OP arg2 Arithmetic tests. OP is one of -eq, -ne,\n" -" -lt, -le, -gt, or -ge.\n" +" arg1 OP arg2 Arithmetic tests. OP is one of -eq, -ne,\n" +" -lt, -le, -gt, or -ge.\n" " \n" " Arithmetic binary operators return true if ARG1 is equal, not-equal,\n" " less-than, less-than-or-equal, greater-than, or greater-than-or-equal\n" -" than ARG2." +" than ARG2.\n" +" \n" +" Exit Status:\n" +" Returns success if EXPR evaluates to true; fails if EXPR evaluates to\n" +" false or an invalid argument is given." msgstr "" -" Exits with a status of 0 (true) or 1 (false) depending on\n" +"Evaluate conditional expression.\n" +" \n" +" Exits with a status of 0 (true) or 1 (false) depending on\n" " the evaluation of EXPR. Expressions may be unary or binary. Unary\n" " expressions are often used to examine the status of a file. There\n" " are string operators as well, and numeric comparison operators.\n" " \n" " File operators:\n" " \n" -" -a FILE True if file exists.\n" -" -b FILE True if file is block special.\n" -" -c FILE True if file is character special.\n" -" -d FILE True if file is a directory.\n" -" -e FILE True if file exists.\n" -" -f FILE True if file exists and is a regular file.\n" -" -g FILE True if file is set-group-id.\n" -" -h FILE True if file is a symbolic link.\n" -" -L FILE True if file is a symbolic link.\n" -" -k FILE True if file has its ‘sticky’ bit set.\n" -" -p FILE True if file is a named pipe.\n" -" -r FILE True if file is readable by you.\n" -" -s FILE True if file exists and is not empty.\n" -" -S FILE True if file is a socket.\n" -" -t FD True if FD is opened on a terminal.\n" -" -u FILE True if the file is set-user-id.\n" -" -w FILE True if the file is writable by you.\n" -" -x FILE True if the file is executable by you.\n" -" -O FILE True if the file is effectively owned by you.\n" -" -G FILE True if the file is effectively owned by your group.\n" -" -N FILE True if the file has been modified since it was last " +" -a FILE True if file exists.\n" +" -b FILE True if file is block special.\n" +" -c FILE True if file is character special.\n" +" -d FILE True if file is a directory.\n" +" -e FILE True if file exists.\n" +" -f FILE True if file exists and is a regular file.\n" +" -g FILE True if file is set-group-id.\n" +" -h FILE True if file is a symbolic link.\n" +" -L FILE True if file is a symbolic link.\n" +" -k FILE True if file has its ‘sticky’ bit set.\n" +" -p FILE True if file is a named pipe.\n" +" -r FILE True if file is readable by you.\n" +" -s FILE True if file exists and is not empty.\n" +" -S FILE True if file is a socket.\n" +" -t FD True if FD is opened on a terminal.\n" +" -u FILE True if the file is set-user-id.\n" +" -w FILE True if the file is writable by you.\n" +" -x FILE True if the file is executable by you.\n" +" -O FILE True if the file is effectively owned by you.\n" +" -G FILE True if the file is effectively owned by your group.\n" +" -N FILE True if the file has been modified since it was last " "read.\n" " \n" " FILE1 -nt FILE2 True if file1 is newer than file2 (according to\n" @@ -2707,290 +4034,429 @@ msgstr "" " \n" " String operators:\n" " \n" -" -z STRING True if string is empty.\n" +" -z STRING True if string is empty.\n" " \n" -" -n STRING\n" -" STRING True if string is not empty.\n" +" -n STRING\n" +" STRING True if string is not empty.\n" " \n" -" STRING1 = STRING2\n" -" True if the strings are equal.\n" -" STRING1 != STRING2\n" -" True if the strings are not equal.\n" -" STRING1 < STRING2\n" -" True if STRING1 sorts before STRING2 " -"lexicographically.\n" -" STRING1 > STRING2\n" -" True if STRING1 sorts after STRING2 " +" STRING1 = STRING2\n" +" True if the strings are equal.\n" +" STRING1 != STRING2\n" +" True if the strings are not equal.\n" +" STRING1 < STRING2\n" +" True if STRING1 sorts before STRING2 " "lexicographically.\n" +" STRING1 > STRING2\n" +" True if STRING1 sorts after STRING2 lexicographically.\n" " \n" " Other operators:\n" " \n" -" -o OPTION True if the shell option OPTION is enabled.\n" -" ! EXPR True if expr is false.\n" -" EXPR1 -a EXPR2 True if both expr1 AND expr2 are true.\n" -" EXPR1 -o EXPR2 True if either expr1 OR expr2 is true.\n" +" -o OPTION True if the shell option OPTION is enabled.\n" +" ! EXPR True if expr is false.\n" +" EXPR1 -a EXPR2 True if both expr1 AND expr2 are true.\n" +" EXPR1 -o EXPR2 True if either expr1 OR expr2 is true.\n" " \n" -" arg1 OP arg2 Arithmetic tests. OP is one of -eq, -ne,\n" -" -lt, -le, -gt, or -ge.\n" +" arg1 OP arg2 Arithmetic tests. OP is one of -eq, -ne,\n" +" -lt, -le, -gt, or -ge.\n" " \n" " Arithmetic binary operators return true if ARG1 is equal, not-equal,\n" " less-than, less-than-or-equal, greater-than, or greater-than-or-equal\n" -" than ARG2." +" than ARG2.\n" +" \n" +" Exit Status:\n" +" Returns success if EXPR evaluates to true; fails if EXPR evaluates to\n" +" false or an invalid argument is given." -#: builtins.c:975 +#: builtins.c:1292 msgid "" -" This is a synonym for the \"test\" builtin, but the last\n" -" argument must be a literal `]', to match the opening `['." +"Evaluate conditional expression.\n" +" \n" +" This is a synonym for the \"test\" builtin, but the last argument must\n" +" be a literal `]', to match the opening `['." msgstr "" -" This is a synonym for the “test” builtin, but the last\n" -" argument must be a literal ‘]’, to match the opening ‘[’." +"Evaluate conditional expression.\n" +" \n" +" This is a synonym for the “test” builtin, but the last argument " +"must\n" +" be a literal ‘]’, to match the opening ‘[’." -#: builtins.c:982 +#: builtins.c:1301 msgid "" -" Print the accumulated user and system times for processes run from\n" -" the shell." +"Display process times.\n" +" \n" +" Prints the accumulated user and system times for the shell and all of " +"its\n" +" child processes.\n" +" \n" +" Exit Status:\n" +" Always succeeds." msgstr "" -" Print the accumulated user and system times for processes run from\n" -" the shell." +"Display process times.\n" +" \n" +" Prints the accumulated user and system times for the shell and all of " +"its\n" +" child processes.\n" +" \n" +" Exit Status:\n" +" Always succeeds." -#: builtins.c:989 +#: builtins.c:1313 msgid "" -" The command ARG is to be read and executed when the shell receives\n" +"Trap signals and other events.\n" +" \n" +" Defines and activates handlers to be run when the shell receives " +"signals\n" +" or other conditions.\n" +" \n" +" ARG is a command to be read and executed when the shell receives the\n" " signal(s) SIGNAL_SPEC. If ARG is absent (and a single SIGNAL_SPEC\n" " is supplied) or `-', each specified signal is reset to its original\n" " value. If ARG is the null string each SIGNAL_SPEC is ignored by the\n" -" shell and by the commands it invokes. If a SIGNAL_SPEC is EXIT (0)\n" -" the command ARG is executed on exit from the shell. If a SIGNAL_SPEC\n" -" is DEBUG, ARG is executed after every simple command. If the`-p' " -"option\n" -" is supplied then the trap commands associated with each SIGNAL_SPEC are\n" -" displayed. If no arguments are supplied or if only `-p' is given, trap\n" -" prints the list of commands associated with each signal. Each " -"SIGNAL_SPEC\n" -" is either a signal name in or a signal number. Signal names\n" -" are case insensitive and the SIG prefix is optional. `trap -l' prints\n" -" a list of signal names and their corresponding numbers. Note that a\n" -" signal can be sent to the shell with \"kill -signal $$\"." -msgstr "" -" The command ARG is to be read and executed when the shell receives\n" +" shell and by the commands it invokes.\n" +" \n" +" If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell. " +"If\n" +" a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command.\n" +" \n" +" If no arguments are supplied, trap prints the list of commands " +"associated\n" +" with each signal.\n" +" \n" +" Options:\n" +" -l\tprint a list of signal names and their corresponding numbers\n" +" -p\tdisplay the trap commands associated with each SIGNAL_SPEC\n" +" \n" +" Each SIGNAL_SPEC is either a signal name in or a signal " +"number.\n" +" Signal names are case insensitive and the SIG prefix is optional. A\n" +" signal may be sent to the shell with \"kill -signal $$\".\n" +" \n" +" Exit Status:\n" +" Returns success unless a SIGSPEC is invalid or an invalid option is " +"given." +msgstr "" +"Trap signals and other events.\n" +" \n" +" Defines and activates handlers to be run when the shell receives " +"signals\n" +" or other conditions.\n" +" \n" +" ARG is a command to be read and executed when the shell receives the\n" " signal(s) SIGNAL_SPEC. If ARG is absent (and a single SIGNAL_SPEC\n" " is supplied) or ‘-’, each specified signal is reset to its " "original\n" " value. If ARG is the null string each SIGNAL_SPEC is ignored by the\n" -" shell and by the commands it invokes. If a SIGNAL_SPEC is EXIT (0)\n" -" the command ARG is executed on exit from the shell. If a SIGNAL_SPEC\n" -" is DEBUG, ARG is executed after every simple command. If the‘-p’ " -"option\n" -" is supplied then the trap commands associated with each SIGNAL_SPEC are\n" -" displayed. If no arguments are supplied or if only ‘-p’ is given, " -"trap\n" -" prints the list of commands associated with each signal. Each " -"SIGNAL_SPEC\n" -" is either a signal name in or a signal number. Signal names\n" -" are case insensitive and the SIG prefix is optional. ‘trap -l’ " -"prints\n" -" a list of signal names and their corresponding numbers. Note that a\n" -" signal can be sent to the shell with “kill -signal $$”." - -#: builtins.c:1008 -msgid "" -" For each NAME, indicate how it would be interpreted if used as a\n" -" command name.\n" +" shell and by the commands it invokes.\n" +" \n" +" If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell. " +"If\n" +" a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command.\n" +" \n" +" If no arguments are supplied, trap prints the list of commands " +"associated\n" +" with each signal.\n" " \n" -" If the -t option is used, `type' outputs a single word which is one of\n" -" `alias', `keyword', `function', `builtin', `file' or `', if NAME is an\n" -" alias, shell reserved word, shell function, shell builtin, disk file,\n" -" or unfound, respectively.\n" +" Options:\n" +" -l\tprint a list of signal names and their corresponding numbers\n" +" -p\tdisplay the trap commands associated with each SIGNAL_SPEC\n" " \n" -" If the -p flag is used, `type' either returns the name of the disk\n" -" file that would be executed, or nothing if `type -t NAME' would not\n" -" return `file'.\n" +" Each SIGNAL_SPEC is either a signal name in or a signal " +"number.\n" +" Signal names are case insensitive and the SIG prefix is optional. A\n" +" signal may be sent to the shell with “kill -signal $$”.\n" " \n" -" If the -a flag is used, `type' displays all of the places that contain\n" -" an executable named `file'. This includes aliases, builtins, and\n" -" functions, if and only if the -p flag is not also used.\n" +" Exit Status:\n" +" Returns success unless a SIGSPEC is invalid or an invalid option is " +"given." + +#: builtins.c:1345 +msgid "" +"Display information about command type.\n" +" \n" +" For each NAME, indicate how it would be interpreted if used as a\n" +" command name.\n" " \n" -" The -f flag suppresses shell function lookup.\n" +" Options:\n" +" -a\tdisplay all locations containing an executable named NAME;\n" +" \tincludes aliases, builtins, and functions, if and only if\n" +" \tthe `-p' option is not also used\n" +" -f\tsuppress shell function lookup\n" +" -P\tforce a PATH search for each NAME, even if it is an alias,\n" +" \tbuiltin, or function, and returns the name of the disk file\n" +" \tthat would be executed\n" +" -p\treturns either the name of the disk file that would be executed,\n" +" \tor nothing if `type -t NAME' would not return `file'.\n" +" -t\toutput a single word which is one of `alias', `keyword',\n" +" \t`function', `builtin', `file' or `', if NAME is an alias, shell\n" +" \treserved word, shell function, shell builtin, disk file, or not\n" +" \tfound, respectively\n" " \n" -" The -P flag forces a PATH search for each NAME, even if it is an alias,\n" -" builtin, or function, and returns the name of the disk file that would\n" -" be executed." +" Arguments:\n" +" NAME\tCommand name to be interpreted.\n" +" \n" +" Exit Status:\n" +" Returns success if all of the NAMEs are found; fails if any are not " +"found." msgstr "" -" For each NAME, indicate how it would be interpreted if used as a\n" +"Display information about command type.\n" +" \n" +" For each NAME, indicate how it would be interpreted if used as a\n" " command name.\n" " \n" -" If the -t option is used, ‘type’ outputs a single word which is " -"one of\n" -" ‘alias’, ‘keyword’, ‘function’, ‘builtin’, " -"‘file’ or ‘’, if NAME is an\n" -" alias, shell reserved word, shell function, shell builtin, disk file,\n" -" or unfound, respectively.\n" -" \n" -" If the -p flag is used, ‘type’ either returns the name of the " -"disk\n" -" file that would be executed, or nothing if ‘type -t NAME’ would " -"not\n" -" return ‘file’.\n" -" \n" -" If the -a flag is used, ‘type’ displays all of the places that " -"contain\n" -" an executable named ‘file’. This includes aliases, builtins, and\n" -" functions, if and only if the -p flag is not also used.\n" -" \n" -" The -f flag suppresses shell function lookup.\n" -" \n" -" The -P flag forces a PATH search for each NAME, even if it is an alias,\n" -" builtin, or function, and returns the name of the disk file that would\n" -" be executed." - -#: builtins.c:1035 -msgid "" -" Ulimit provides control over the resources available to processes\n" -" started by the shell, on systems that allow such control. If an\n" -" option is given, it is interpreted as follows:\n" -" \n" -" -S\tuse the `soft' resource limit\n" -" -H\tuse the `hard' resource limit\n" -" -a\tall current limits are reported\n" -" -c\tthe maximum size of core files created\n" -" -d\tthe maximum size of a process's data segment\n" -" -f\tthe maximum size of files created by the shell\n" -" -i the maximum number of pending signals\n" -" -l\tthe maximum size a process may lock into memory\n" -" -m\tthe maximum resident set size\n" -" -n\tthe maximum number of open file descriptors\n" -" -p\tthe pipe buffer size\n" -" -q the maximum number of bytes in POSIX message queues\n" -" -s\tthe maximum stack size\n" -" -t\tthe maximum amount of cpu time in seconds\n" -" -u\tthe maximum number of user processes\n" -" -v\tthe size of virtual memory\n" -" -x the maximum number of file locks\n" -" \n" -" If LIMIT is given, it is the new value of the specified resource;\n" -" the special LIMIT values `soft', `hard', and `unlimited' stand for\n" -" the current soft limit, the current hard limit, and no limit, " -"respectively.\n" -" Otherwise, the current value of the specified resource is printed.\n" -" If no option is given, then -f is assumed. Values are in 1024-byte\n" -" increments, except for -t, which is in seconds, -p, which is in\n" -" increments of 512 bytes, and -u, which is an unscaled number of\n" -" processes." -msgstr "" -" Ulimit provides control over the resources available to processes\n" -" started by the shell, on systems that allow such control. If an\n" -" option is given, it is interpreted as follows:\n" -" \n" -" -S\tuse the ‘soft’ resource limit\n" -" -H\tuse the ‘hard’ resource limit\n" -" -a\tall current limits are reported\n" -" -c\tthe maximum size of core files created\n" -" -d\tthe maximum size of a process's data segment\n" -" -f\tthe maximum size of files created by the shell\n" -" -i the maximum number of pending signals\n" -" -l\tthe maximum size a process may lock into memory\n" -" -m\tthe maximum resident set size\n" -" -n\tthe maximum number of open file descriptors\n" -" -p\tthe pipe buffer size\n" -" -q the maximum number of bytes in POSIX message queues\n" -" -s\tthe maximum stack size\n" -" -t\tthe maximum amount of cpu time in seconds\n" -" -u\tthe maximum number of user processes\n" -" -v\tthe size of virtual memory\n" -" -x the maximum number of file locks\n" -" \n" -" If LIMIT is given, it is the new value of the specified resource;\n" -" the special LIMIT values ‘soft’, ‘hard’, and ‘unlimited" -"[0m’ stand for\n" -" the current soft limit, the current hard limit, and no limit, " -"respectively.\n" -" Otherwise, the current value of the specified resource is printed.\n" -" If no option is given, then -f is assumed. Values are in 1024-byte\n" -" increments, except for -t, which is in seconds, -p, which is in\n" -" increments of 512 bytes, and -u, which is an unscaled number of\n" -" processes." - -#: builtins.c:1071 -msgid "" -" The user file-creation mask is set to MODE. If MODE is omitted, or if\n" -" `-S' is supplied, the current value of the mask is printed. The `-S'\n" -" option makes the output symbolic; otherwise an octal number is output.\n" -" If `-p' is supplied, and MODE is omitted, the output is in a form\n" -" that may be used as input. If MODE begins with a digit, it is\n" -" interpreted as an octal number, otherwise it is a symbolic mode string\n" -" like that accepted by chmod(1)." -msgstr "" -" The user file-creation mask is set to MODE. If MODE is omitted, or if\n" -" ‘-S’ is supplied, the current value of the mask is printed. The " -"‘-S’\n" -" option makes the output symbolic; otherwise an octal number is output.\n" -" If ‘-p’ is supplied, and MODE is omitted, the output is in a form\n" -" that may be used as input. If MODE begins with a digit, it is\n" -" interpreted as an octal number, otherwise it is a symbolic mode string\n" -" like that accepted by chmod(1)." - -#: builtins.c:1084 -msgid "" -" Wait for the specified process and report its termination status. If\n" -" N is not given, all currently active child processes are waited for,\n" -" and the return code is zero. N may be a process ID or a job\n" -" specification; if a job spec is given, all processes in the job's\n" -" pipeline are waited for." -msgstr "" -" Wait for the specified process and report its termination status. If\n" -" N is not given, all currently active child processes are waited for,\n" -" and the return code is zero. N may be a process ID or a job\n" -" specification; if a job spec is given, all processes in the job's\n" -" pipeline are waited for." - -#: builtins.c:1096 -msgid "" -" Wait for the specified process and report its termination status. If\n" -" N is not given, all currently active child processes are waited for,\n" -" and the return code is zero. N is a process ID; if it is not given,\n" -" all child processes of the shell are waited for." -msgstr "" -" Wait for the specified process and report its termination status. If\n" -" N is not given, all currently active child processes are waited for,\n" -" and the return code is zero. N is a process ID; if it is not given,\n" -" all child processes of the shell are waited for." - -#: builtins.c:1106 -msgid "" -" The `for' loop executes a sequence of commands for each member in a\n" +" Options:\n" +" -a\tdisplay all locations containing an executable named NAME;\n" +" \tincludes aliases, builtins, and functions, if and only if\n" +" \tthe ‘-p’ option is not also used\n" +" -f\tsuppress shell function lookup\n" +" -P\tforce a PATH search for each NAME, even if it is an alias,\n" +" \tbuiltin, or function, and returns the name of the disk file\n" +" \tthat would be executed\n" +" -p\treturns either the name of the disk file that would be executed,\n" +" \tor nothing if ‘type -t NAME’ would not return ‘file’.\n" +" -t\toutput a single word which is one of ‘alias’, ‘keyword" +"[0m’,\n" +" \t‘function’, ‘builtin’, ‘file’ or ‘’, if NAME " +"is an alias, shell\n" +" \treserved word, shell function, shell builtin, disk file, or not\n" +" \tfound, respectively\n" +" \n" +" Arguments:\n" +" NAME\tCommand name to be interpreted.\n" +" \n" +" Exit Status:\n" +" Returns success if all of the NAMEs are found; fails if any are not " +"found." + +#: builtins.c:1376 +msgid "" +"Modify shell resource limits.\n" +" \n" +" Provides control over the resources available to the shell and " +"processes\n" +" it creates, on systems that allow such control.\n" +" \n" +" Options:\n" +" -S\tuse the `soft' resource limit\n" +" -H\tuse the `hard' resource limit\n" +" -a\tall current limits are reported\n" +" -b\tthe socket buffer size\n" +" -c\tthe maximum size of core files created\n" +" -d\tthe maximum size of a process's data segment\n" +" -e\tthe maximum scheduling priority (`nice')\n" +" -f\tthe maximum size of files written by the shell and its children\n" +" -i\tthe maximum number of pending signals\n" +" -l\tthe maximum size a process may lock into memory\n" +" -m\tthe maximum resident set size\n" +" -n\tthe maximum number of open file descriptors\n" +" -p\tthe pipe buffer size\n" +" -q\tthe maximum number of bytes in POSIX message queues\n" +" -r\tthe maximum real-time scheduling priority\n" +" -s\tthe maximum stack size\n" +" -t\tthe maximum amount of cpu time in seconds\n" +" -u\tthe maximum number of user processes\n" +" -v\tthe size of virtual memory\n" +" -x\tthe maximum number of file locks\n" +" \n" +" If LIMIT is given, it is the new value of the specified resource; the\n" +" special LIMIT values `soft', `hard', and `unlimited' stand for the\n" +" current soft limit, the current hard limit, and no limit, respectively.\n" +" Otherwise, the current value of the specified resource is printed. If\n" +" no option is given, then -f is assumed.\n" +" \n" +" Values are in 1024-byte increments, except for -t, which is in seconds,\n" +" -p, which is in increments of 512 bytes, and -u, which is an unscaled\n" +" number of processes.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" +"Modify shell resource limits.\n" +" \n" +" Provides control over the resources available to the shell and " +"processes\n" +" it creates, on systems that allow such control.\n" +" \n" +" Options:\n" +" -S\tuse the ‘soft’ resource limit\n" +" -H\tuse the ‘hard’ resource limit\n" +" -a\tall current limits are reported\n" +" -b\tthe socket buffer size\n" +" -c\tthe maximum size of core files created\n" +" -d\tthe maximum size of a process's data segment\n" +" -e\tthe maximum scheduling priority (‘nice’)\n" +" -f\tthe maximum size of files written by the shell and its children\n" +" -i\tthe maximum number of pending signals\n" +" -l\tthe maximum size a process may lock into memory\n" +" -m\tthe maximum resident set size\n" +" -n\tthe maximum number of open file descriptors\n" +" -p\tthe pipe buffer size\n" +" -q\tthe maximum number of bytes in POSIX message queues\n" +" -r\tthe maximum real-time scheduling priority\n" +" -s\tthe maximum stack size\n" +" -t\tthe maximum amount of cpu time in seconds\n" +" -u\tthe maximum number of user processes\n" +" -v\tthe size of virtual memory\n" +" -x\tthe maximum number of file locks\n" +" \n" +" If LIMIT is given, it is the new value of the specified resource; the\n" +" special LIMIT values ‘soft’, ‘hard’, and ‘unlimited’ " +"stand for the\n" +" current soft limit, the current hard limit, and no limit, respectively.\n" +" Otherwise, the current value of the specified resource is printed. If\n" +" no option is given, then -f is assumed.\n" +" \n" +" Values are in 1024-byte increments, except for -t, which is in seconds,\n" +" -p, which is in increments of 512 bytes, and -u, which is an unscaled\n" +" number of processes.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." + +#: builtins.c:1421 +msgid "" +"Display or set file mode mask.\n" +" \n" +" Sets the user file-creation mask to MODE. If MODE is omitted, prints\n" +" the current value of the mask.\n" +" \n" +" If MODE begins with a digit, it is interpreted as an octal number;\n" +" otherwise it is a symbolic mode string like that accepted by chmod(1).\n" +" \n" +" Options:\n" +" -p\tif MODE is omitted, output in a form that may be reused as input\n" +" -S\tmakes the output symbolic; otherwise an octal number is output\n" +" \n" +" Exit Status:\n" +" Returns success unless MODE is invalid or an invalid option is given." +msgstr "" +"Display or set file mode mask.\n" +" \n" +" Sets the user file-creation mask to MODE. If MODE is omitted, prints\n" +" the current value of the mask.\n" +" \n" +" If MODE begins with a digit, it is interpreted as an octal number;\n" +" otherwise it is a symbolic mode string like that accepted by chmod(1).\n" +" \n" +" Options:\n" +" -p\tif MODE is omitted, output in a form that may be reused as input\n" +" -S\tmakes the output symbolic; otherwise an octal number is output\n" +" \n" +" Exit Status:\n" +" Returns success unless MODE is invalid or an invalid option is given." + +#: builtins.c:1441 +msgid "" +"Wait for job completion and return exit status.\n" +" \n" +" Waits for the process identified by ID, which may be a process ID or a\n" +" job specification, and reports its termination status. If ID is not\n" +" given, waits for all currently active child processes, and the return\n" +" status is zero. If ID is a a job specification, waits for all " +"processes\n" +" in the job's pipeline.\n" +" \n" +" Exit Status:\n" +" Returns the status of ID; fails if ID is invalid or an invalid option " +"is\n" +" given." +msgstr "" +"Wait for job completion and return exit status.\n" +" \n" +" Waits for the process identified by ID, which may be a process ID or a\n" +" job specification, and reports its termination status. If ID is not\n" +" given, waits for all currently active child processes, and the return\n" +" status is zero. If ID is a a job specification, waits for all " +"processes\n" +" in the job's pipeline.\n" +" \n" +" Exit Status:\n" +" Returns the status of ID; fails if ID is invalid or an invalid option " +"is\n" +" given." + +#: builtins.c:1459 +msgid "" +"Wait for process completion and return exit status.\n" +" \n" +" Waits for the specified process and reports its termination status. If\n" +" PID is not given, all currently active child processes are waited for,\n" +" and the return code is zero. PID must be a process ID.\n" +" \n" +" Exit Status:\n" +" Returns the status of ID; fails if ID is invalid or an invalid option " +"is\n" +" given." +msgstr "" +"Wait for process completion and return exit status.\n" +" \n" +" Waits for the specified process and reports its termination status. If\n" +" PID is not given, all currently active child processes are waited for,\n" +" and the return code is zero. PID must be a process ID.\n" +" \n" +" Exit Status:\n" +" Returns the status of ID; fails if ID is invalid or an invalid option " +"is\n" +" given." + +#: builtins.c:1474 +msgid "" +"Execute commands for each member in a list.\n" +" \n" +" The `for' loop executes a sequence of commands for each member in a\n" " list of items. If `in WORDS ...;' is not present, then `in \"$@\"' is\n" " assumed. For each element in WORDS, NAME is set to that element, and\n" -" the COMMANDS are executed." +" the COMMANDS are executed.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." msgstr "" -" The ‘for’ loop executes a sequence of commands for each member in a\n" +"Execute commands for each member in a list.\n" +" \n" +" The ‘for’ loop executes a sequence of commands for each member in " +"a\n" " list of items. If ‘in WORDS ...;’ is not present, then ‘in “" "$@”’ is\n" " assumed. For each element in WORDS, NAME is set to that element, and\n" -" the COMMANDS are executed." +" the COMMANDS are executed.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." -#: builtins.c:1115 +#: builtins.c:1488 msgid "" -" Equivalent to\n" +"Arithmetic for loop.\n" +" \n" +" Equivalent to\n" " \t(( EXP1 ))\n" " \twhile (( EXP2 )); do\n" " \t\tCOMMANDS\n" " \t\t(( EXP3 ))\n" " \tdone\n" " EXP1, EXP2, and EXP3 are arithmetic expressions. If any expression is\n" -" omitted, it behaves as if it evaluates to 1." +" omitted, it behaves as if it evaluates to 1.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." msgstr "" -" Equivalent to\n" +"Arithmetic for loop.\n" +" \n" +" Equivalent to\n" " \t(( EXP1 ))\n" " \twhile (( EXP2 )); do\n" " \t\tCOMMANDS\n" " \t\t(( EXP3 ))\n" " \tdone\n" " EXP1, EXP2, and EXP3 are arithmetic expressions. If any expression is\n" -" omitted, it behaves as if it evaluates to 1." +" omitted, it behaves as if it evaluates to 1.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." -#: builtins.c:1128 +#: builtins.c:1506 msgid "" -" The WORDS are expanded, generating a list of words. The\n" +"Select words from a list and execute commands.\n" +" \n" +" The WORDS are expanded, generating a list of words. The\n" " set of expanded words is printed on the standard error, each\n" " preceded by a number. If `in WORDS' is not present, `in \"$@\"'\n" " is assumed. The PS3 prompt is then displayed and a line read\n" @@ -3000,9 +4466,14 @@ msgid "" " redisplayed. If EOF is read, the command completes. Any other\n" " value read causes NAME to be set to null. The line read is saved\n" " in the variable REPLY. COMMANDS are executed after each selection\n" -" until a break command is executed." +" until a break command is executed.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." msgstr "" -" The WORDS are expanded, generating a list of words. The\n" +"Select words from a list and execute commands.\n" +" \n" +" The WORDS are expanded, generating a list of words. The\n" " set of expanded words is printed on the standard error, each\n" " preceded by a number. If ‘in WORDS’ is not present, ‘in “$@" "[0m”’\n" @@ -3013,34 +4484,63 @@ msgstr "" " redisplayed. If EOF is read, the command completes. Any other\n" " value read causes NAME to be set to null. The line read is saved\n" " in the variable REPLY. COMMANDS are executed after each selection\n" -" until a break command is executed." +" until a break command is executed.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." -#: builtins.c:1144 +#: builtins.c:1527 msgid "" -" Execute PIPELINE and print a summary of the real time, user CPU time,\n" +"Report time consumed by pipeline's execution.\n" +" \n" +" Execute PIPELINE and print a summary of the real time, user CPU time,\n" " and system CPU time spent executing PIPELINE when it terminates.\n" -" The return status is the return status of PIPELINE. The `-p' option\n" -" prints the timing summary in a slightly different format. This uses\n" -" the value of the TIMEFORMAT variable as the output format." +" \n" +" Options:\n" +" -p\tprint the timing summary in the portable Posix format\n" +" \n" +" The value of the TIMEFORMAT variable is used as the output format.\n" +" \n" +" Exit Status:\n" +" The return status is the return status of PIPELINE." msgstr "" -" Execute PIPELINE and print a summary of the real time, user CPU time,\n" +"Report time consumed by pipeline's execution.\n" +" \n" +" Execute PIPELINE and print a summary of the real time, user CPU time,\n" " and system CPU time spent executing PIPELINE when it terminates.\n" -" The return status is the return status of PIPELINE. The ‘-p’ " -"option\n" -" prints the timing summary in a slightly different format. This uses\n" -" the value of the TIMEFORMAT variable as the output format." +" \n" +" Options:\n" +" -p\tprint the timing summary in the portable Posix format\n" +" \n" +" The value of the TIMEFORMAT variable is used as the output format.\n" +" \n" +" Exit Status:\n" +" The return status is the return status of PIPELINE." -#: builtins.c:1154 +#: builtins.c:1544 msgid "" -" Selectively execute COMMANDS based upon WORD matching PATTERN. The\n" -" `|' is used to separate multiple patterns." +"Execute commands based on pattern matching.\n" +" \n" +" Selectively execute COMMANDS based upon WORD matching PATTERN. The\n" +" `|' is used to separate multiple patterns.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." msgstr "" -" Selectively execute COMMANDS based upon WORD matching PATTERN. The\n" -" ‘|’ is used to separate multiple patterns." +"Execute commands based on pattern matching.\n" +" \n" +" Selectively execute COMMANDS based upon WORD matching PATTERN. The\n" +" ‘|’ is used to separate multiple patterns.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." -#: builtins.c:1161 +#: builtins.c:1556 msgid "" -" The `if COMMANDS' list is executed. If its exit status is zero, then the\n" +"Execute commands based on conditional.\n" +" \n" +" The `if COMMANDS' list is executed. If its exit status is zero, then " +"the\n" " `then COMMANDS' list is executed. Otherwise, each `elif COMMANDS' list " "is\n" " executed in turn, and if its exit status is zero, the corresponding\n" @@ -3050,10 +4550,15 @@ msgid "" "the\n" " entire construct is the exit status of the last command executed, or " "zero\n" -" if no condition tested true." +" if no condition tested true.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." msgstr "" -" The ‘if COMMANDS’ list is executed. If its exit status is zero, then " -"the\n" +"Execute commands based on conditional.\n" +" \n" +" The ‘if COMMANDS’ list is executed. If its exit status is zero, " +"then the\n" " ‘then COMMANDS’ list is executed. Otherwise, each ‘elif " "COMMANDS’ list is\n" " executed in turn, and if its exit status is zero, the corresponding\n" @@ -3063,116 +4568,203 @@ msgstr "" "of the\n" " entire construct is the exit status of the last command executed, or " "zero\n" -" if no condition tested true." +" if no condition tested true.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." -#: builtins.c:1173 +#: builtins.c:1573 msgid "" -" Expand and execute COMMANDS as long as the final command in the\n" -" `while' COMMANDS has an exit status of zero." +"Execute commands as long as a test succeeds.\n" +" \n" +" Expand and execute COMMANDS as long as the final command in the\n" +" `while' COMMANDS has an exit status of zero.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." msgstr "" -" Expand and execute COMMANDS as long as the final command in the\n" -" ‘while’ COMMANDS has an exit status of zero." +"Execute commands as long as a test succeeds.\n" +" \n" +" Expand and execute COMMANDS as long as the final command in the\n" +" ‘while’ COMMANDS has an exit status of zero.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." -#: builtins.c:1180 +#: builtins.c:1585 msgid "" -" Expand and execute COMMANDS as long as the final command in the\n" -" `until' COMMANDS has an exit status which is not zero." +"Execute commands as long as a test does not succeed.\n" +" \n" +" Expand and execute COMMANDS as long as the final command in the\n" +" `until' COMMANDS has an exit status which is not zero.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." msgstr "" -" Expand and execute COMMANDS as long as the final command in the\n" -" ‘until’ COMMANDS has an exit status which is not zero." +"Execute commands as long as a test does not succeed.\n" +" \n" +" Expand and execute COMMANDS as long as the final command in the\n" +" ‘until’ COMMANDS has an exit status which is not zero.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." -#: builtins.c:1187 +#: builtins.c:1597 msgid "" -" Create a simple command invoked by NAME which runs COMMANDS.\n" -" Arguments on the command line along with NAME are passed to the\n" -" function as $0 .. $n." +"Define shell function.\n" +" \n" +" Create a shell function named NAME. When invoked as a simple command,\n" +" NAME runs COMMANDs in the calling shell's context. When NAME is " +"invoked,\n" +" the arguments are passed to the function as $1...$n, and the function's\n" +" name is in $FUNCNAME.\n" +" \n" +" Exit Status:\n" +" Returns success unless NAME is readonly." msgstr "" -" Create a simple command invoked by NAME which runs COMMANDS.\n" -" Arguments on the command line along with NAME are passed to the\n" -" function as $0 .. $n." +"Define shell function.\n" +" \n" +" Create a shell function named NAME. When invoked as a simple command,\n" +" NAME runs COMMANDs in the calling shell's context. When NAME is " +"invoked,\n" +" the arguments are passed to the function as $1...$n, and the function's\n" +" name is in $FUNCNAME.\n" +" \n" +" Exit Status:\n" +" Returns success unless NAME is readonly." -#: builtins.c:1195 +#: builtins.c:1611 msgid "" -" Run a set of commands in a group. This is one way to redirect an\n" -" entire set of commands." +"Group commands as a unit.\n" +" \n" +" Run a set of commands in a group. This is one way to redirect an\n" +" entire set of commands.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." msgstr "" -" Run a set of commands in a group. This is one way to redirect an\n" -" entire set of commands." +"Group commands as a unit.\n" +" \n" +" Run a set of commands in a group. This is one way to redirect an\n" +" entire set of commands.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." -#: builtins.c:1202 +#: builtins.c:1623 msgid "" -" Equivalent to the JOB_SPEC argument to the `fg' command. Resume a\n" +"Resume job in foreground.\n" +" \n" +" Equivalent to the JOB_SPEC argument to the `fg' command. Resume a\n" " stopped or background job. JOB_SPEC can specify either a job name\n" " or a job number. Following JOB_SPEC with a `&' places the job in\n" " the background, as if the job specification had been supplied as an\n" -" argument to `bg'." +" argument to `bg'.\n" +" \n" +" Exit Status:\n" +" Returns the status of the resumed job." msgstr "" -" Equivalent to the JOB_SPEC argument to the ‘fg’ command. Resume a\n" +"Resume job in foreground.\n" +" \n" +" Equivalent to the JOB_SPEC argument to the ‘fg’ command. Resume " +"a\n" " stopped or background job. JOB_SPEC can specify either a job name\n" " or a job number. Following JOB_SPEC with a ‘&’ places the job in\n" " the background, as if the job specification had been supplied as an\n" -" argument to ‘bg’." +" argument to ‘bg’.\n" +" \n" +" Exit Status:\n" +" Returns the status of the resumed job." -#: builtins.c:1212 +#: builtins.c:1638 msgid "" -" The EXPRESSION is evaluated according to the rules for arithmetic\n" -" evaluation. Equivalent to \"let EXPRESSION\"." +"Evaluate arithmetic expression.\n" +" \n" +" The EXPRESSION is evaluated according to the rules for arithmetic\n" +" evaluation. Equivalent to \"let EXPRESSION\".\n" +" \n" +" Exit Status:\n" +" Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise." msgstr "" -" The EXPRESSION is evaluated according to the rules for arithmetic\n" -" evaluation. Equivalent to “let EXPRESSION”." +"Evaluate arithmetic expression.\n" +" \n" +" The EXPRESSION is evaluated according to the rules for arithmetic\n" +" evaluation. Equivalent to “let EXPRESSION”.\n" +" \n" +" Exit Status:\n" +" Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise." -#: builtins.c:1219 +#: builtins.c:1650 msgid "" -" Returns a status of 0 or 1 depending on the evaluation of the conditional\n" +"Execute conditional command.\n" +" \n" +" Returns a status of 0 or 1 depending on the evaluation of the " +"conditional\n" " expression EXPRESSION. Expressions are composed of the same primaries " "used\n" " by the `test' builtin, and may be combined using the following " -"operators\n" +"operators:\n" " \n" -" \t( EXPRESSION )\tReturns the value of EXPRESSION\n" -" \t! EXPRESSION\tTrue if EXPRESSION is false; else false\n" -" \tEXPR1 && EXPR2\tTrue if both EXPR1 and EXPR2 are true; else false\n" -" \tEXPR1 || EXPR2\tTrue if either EXPR1 or EXPR2 is true; else false\n" +" ( EXPRESSION )\tReturns the value of EXPRESSION\n" +" ! EXPRESSION\t\tTrue if EXPRESSION is false; else false\n" +" EXPR1 && EXPR2\tTrue if both EXPR1 and EXPR2 are true; else false\n" +" EXPR1 || EXPR2\tTrue if either EXPR1 or EXPR2 is true; else false\n" " \n" -" When the `==' and `!=' operators are used, the string to the right of " -"the\n" -" operator is used as a pattern and pattern matching is performed. The\n" -" && and || operators do not evaluate EXPR2 if EXPR1 is sufficient to\n" -" determine the expression's value." +" When the `==' and `!=' operators are used, the string to the right of\n" +" the operator is used as a pattern and pattern matching is performed.\n" +" When the `=~' operator is used, the string to the right of the operator\n" +" is matched as a regular expression.\n" +" \n" +" The && and || operators do not evaluate EXPR2 if EXPR1 is sufficient to\n" +" determine the expression's value.\n" +" \n" +" Exit Status:\n" +" 0 or 1 depending on value of EXPRESSION." msgstr "" -" Returns a status of 0 or 1 depending on the evaluation of the conditional\n" +"Execute conditional command.\n" +" \n" +" Returns a status of 0 or 1 depending on the evaluation of the " +"conditional\n" " expression EXPRESSION. Expressions are composed of the same primaries " "used\n" " by the ‘test’ builtin, and may be combined using the following " -"operators\n" +"operators:\n" " \n" -" \t( EXPRESSION )\tReturns the value of EXPRESSION\n" -" \t! EXPRESSION\tTrue if EXPRESSION is false; else false\n" -" \tEXPR1 && EXPR2\tTrue if both EXPR1 and EXPR2 are true; else false\n" -" \tEXPR1 || EXPR2\tTrue if either EXPR1 or EXPR2 is true; else false\n" +" ( EXPRESSION )\tReturns the value of EXPRESSION\n" +" ! EXPRESSION\t\tTrue if EXPRESSION is false; else false\n" +" EXPR1 && EXPR2\tTrue if both EXPR1 and EXPR2 are true; else false\n" +" EXPR1 || EXPR2\tTrue if either EXPR1 or EXPR2 is true; else false\n" " \n" " When the ‘==’ and ‘!=’ operators are used, the string to the " -"right of the\n" -" operator is used as a pattern and pattern matching is performed. The\n" -" && and || operators do not evaluate EXPR2 if EXPR1 is sufficient to\n" -" determine the expression's value." +"right of\n" +" the operator is used as a pattern and pattern matching is performed.\n" +" When the ‘=~’ operator is used, the string to the right of the " +"operator\n" +" is matched as a regular expression.\n" +" \n" +" The && and || operators do not evaluate EXPR2 if EXPR1 is sufficient to\n" +" determine the expression's value.\n" +" \n" +" Exit Status:\n" +" 0 or 1 depending on value of EXPRESSION." -#: builtins.c:1237 +#: builtins.c:1676 msgid "" -" BASH_VERSION Version information for this Bash.\n" -" CDPATH A colon-separated list of directories to search\n" -" \t\tfor directries given as arguments to `cd'.\n" +"Common shell variable names and usage.\n" +" \n" +" BASH_VERSION\tVersion information for this Bash.\n" +" CDPATH\tA colon-separated list of directories to search\n" +" \t\tfor directories given as arguments to `cd'.\n" " GLOBIGNORE\tA colon-separated list of patterns describing filenames to\n" " \t\tbe ignored by pathname expansion.\n" -" HISTFILE The name of the file where your command history is " -"stored.\n" -" HISTFILESIZE The maximum number of lines this file can contain.\n" -" HISTSIZE The maximum number of history lines that a running\n" +" HISTFILE\tThe name of the file where your command history is stored.\n" +" HISTFILESIZE\tThe maximum number of lines this file can contain.\n" +" HISTSIZE\tThe maximum number of history lines that a running\n" " \t\tshell can access.\n" -" HOME The complete pathname to your login directory.\n" +" HOME\tThe complete pathname to your login directory.\n" " HOSTNAME\tThe name of the current host.\n" -" HOSTTYPE The type of CPU this version of Bash is running under.\n" -" IGNOREEOF Controls the action of the shell on receipt of an EOF\n" +" HOSTTYPE\tThe type of CPU this version of Bash is running under.\n" +" IGNOREEOF\tControls the action of the shell on receipt of an EOF\n" " \t\tcharacter as the sole input. If set, then the value\n" " \t\tof it is the number of EOF characters that can be seen\n" " \t\tin a row on an empty line before the shell will exit\n" @@ -3181,19 +4773,19 @@ msgid "" " MAILCHECK\tHow often, in seconds, Bash checks for new mail.\n" " MAILPATH\tA colon-separated list of filenames which Bash checks\n" " \t\tfor new mail.\n" -" OSTYPE\t\tThe version of Unix this version of Bash is running on.\n" -" PATH A colon-separated list of directories to search when\n" +" OSTYPE\tThe version of Unix this version of Bash is running on.\n" +" PATH\tA colon-separated list of directories to search when\n" " \t\tlooking for commands.\n" -" PROMPT_COMMAND A command to be executed before the printing of each\n" +" PROMPT_COMMAND\tA command to be executed before the printing of each\n" " \t\tprimary prompt.\n" -" PS1 The primary prompt string.\n" -" PS2 The secondary prompt string.\n" +" PS1\t\tThe primary prompt string.\n" +" PS2\t\tThe secondary prompt string.\n" " PWD\t\tThe full pathname of the current directory.\n" " SHELLOPTS\tA colon-separated list of enabled shell options.\n" -" TERM The name of the current terminal type.\n" +" TERM\tThe name of the current terminal type.\n" " TIMEFORMAT\tThe output format for timing statistics displayed by the\n" " \t\t`time' reserved word.\n" -" auto_resume Non-null means a command word appearing on a line by\n" +" auto_resume\tNon-null means a command word appearing on a line by\n" " \t\titself is first looked for in the list of currently\n" " \t\tstopped jobs. If found there, that job is foregrounded.\n" " \t\tA value of `exact' means that the command word must\n" @@ -3201,7 +4793,7 @@ msgid "" " \t\tvalue of `substring' means that the command word must\n" " \t\tmatch a substring of the job. Any other value means that\n" " \t\tthe command must be a prefix of a stopped job.\n" -" histchars Characters controlling history expansion and quick\n" +" histchars\tCharacters controlling history expansion and quick\n" " \t\tsubstitution. The first character is the history\n" " \t\tsubstitution character, usually `!'. The second is\n" " \t\tthe `quick substitution' character, usually `^'. The\n" @@ -3209,20 +4801,21 @@ msgid "" " HISTIGNORE\tA colon-separated list of patterns used to decide which\n" " \t\tcommands should be saved on the history list.\n" msgstr "" -" BASH_VERSION Version information for this Bash.\n" -" CDPATH A colon-separated list of directories to search\n" -" \t\tfor directries given as arguments to ‘cd’.\n" +"Common shell variable names and usage.\n" +" \n" +" BASH_VERSION\tVersion information for this Bash.\n" +" CDPATH\tA colon-separated list of directories to search\n" +" \t\tfor directories given as arguments to ‘cd’.\n" " GLOBIGNORE\tA colon-separated list of patterns describing filenames to\n" " \t\tbe ignored by pathname expansion.\n" -" HISTFILE The name of the file where your command history is " -"stored.\n" -" HISTFILESIZE The maximum number of lines this file can contain.\n" -" HISTSIZE The maximum number of history lines that a running\n" +" HISTFILE\tThe name of the file where your command history is stored.\n" +" HISTFILESIZE\tThe maximum number of lines this file can contain.\n" +" HISTSIZE\tThe maximum number of history lines that a running\n" " \t\tshell can access.\n" -" HOME The complete pathname to your login directory.\n" +" HOME\tThe complete pathname to your login directory.\n" " HOSTNAME\tThe name of the current host.\n" -" HOSTTYPE The type of CPU this version of Bash is running under.\n" -" IGNOREEOF Controls the action of the shell on receipt of an EOF\n" +" HOSTTYPE\tThe type of CPU this version of Bash is running under.\n" +" IGNOREEOF\tControls the action of the shell on receipt of an EOF\n" " \t\tcharacter as the sole input. If set, then the value\n" " \t\tof it is the number of EOF characters that can be seen\n" " \t\tin a row on an empty line before the shell will exit\n" @@ -3231,19 +4824,19 @@ msgstr "" " MAILCHECK\tHow often, in seconds, Bash checks for new mail.\n" " MAILPATH\tA colon-separated list of filenames which Bash checks\n" " \t\tfor new mail.\n" -" OSTYPE\t\tThe version of Unix this version of Bash is running on.\n" -" PATH A colon-separated list of directories to search when\n" +" OSTYPE\tThe version of Unix this version of Bash is running on.\n" +" PATH\tA colon-separated list of directories to search when\n" " \t\tlooking for commands.\n" -" PROMPT_COMMAND A command to be executed before the printing of each\n" +" PROMPT_COMMAND\tA command to be executed before the printing of each\n" " \t\tprimary prompt.\n" -" PS1 The primary prompt string.\n" -" PS2 The secondary prompt string.\n" +" PS1\t\tThe primary prompt string.\n" +" PS2\t\tThe secondary prompt string.\n" " PWD\t\tThe full pathname of the current directory.\n" " SHELLOPTS\tA colon-separated list of enabled shell options.\n" -" TERM The name of the current terminal type.\n" +" TERM\tThe name of the current terminal type.\n" " TIMEFORMAT\tThe output format for timing statistics displayed by the\n" " \t\t‘time’ reserved word.\n" -" auto_resume Non-null means a command word appearing on a line by\n" +" auto_resume\tNon-null means a command word appearing on a line by\n" " \t\titself is first looked for in the list of currently\n" " \t\tstopped jobs. If found there, that job is foregrounded.\n" " \t\tA value of ‘exact’ means that the command word must\n" @@ -3251,7 +4844,7 @@ msgstr "" " \t\tvalue of ‘substring’ means that the command word must\n" " \t\tmatch a substring of the job. Any other value means that\n" " \t\tthe command must be a prefix of a stopped job.\n" -" histchars Characters controlling history expansion and quick\n" +" histchars\tCharacters controlling history expansion and quick\n" " \t\tsubstitution. The first character is the history\n" " \t\tsubstitution character, usually ‘!’. The second is\n" " \t\tthe ‘quick substitution’ character, usually ‘^’. The\n" @@ -3259,202 +4852,446 @@ msgstr "" " HISTIGNORE\tA colon-separated list of patterns used to decide which\n" " \t\tcommands should be saved on the history list.\n" -#: builtins.c:1292 +#: builtins.c:1733 msgid "" -" Adds a directory to the top of the directory stack, or rotates\n" +"Add directories to stack.\n" +" \n" +" Adds a directory to the top of the directory stack, or rotates\n" " the stack, making the new top of the stack the current working\n" " directory. With no arguments, exchanges the top two directories.\n" " \n" -" +N\tRotates the stack so that the Nth directory (counting\n" +" Options:\n" +" -n\tSuppresses the normal change of directory when adding\n" +" \tdirectories to the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRotates the stack so that the Nth directory (counting\n" " \tfrom the left of the list shown by `dirs', starting with\n" " \tzero) is at the top.\n" " \n" -" -N\tRotates the stack so that the Nth directory (counting\n" +" -N\tRotates the stack so that the Nth directory (counting\n" " \tfrom the right of the list shown by `dirs', starting with\n" " \tzero) is at the top.\n" " \n" -" -n\tsuppress the normal change of directory when adding directories\n" -" \tto the stack, so only the stack is manipulated.\n" -" \n" -" dir\tadds DIR to the directory stack at the top, making it the\n" +" dir\tAdds DIR to the directory stack at the top, making it the\n" " \tnew current working directory.\n" " \n" -" You can see the directory stack with the `dirs' command." +" The `dirs' builtin displays the directory stack.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid argument is supplied or the directory\n" +" change fails." msgstr "" -" Adds a directory to the top of the directory stack, or rotates\n" +"Add directories to stack.\n" +" \n" +" Adds a directory to the top of the directory stack, or rotates\n" " the stack, making the new top of the stack the current working\n" " directory. With no arguments, exchanges the top two directories.\n" " \n" -" +N\tRotates the stack so that the Nth directory (counting\n" +" Options:\n" +" -n\tSuppresses the normal change of directory when adding\n" +" \tdirectories to the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRotates the stack so that the Nth directory (counting\n" " \tfrom the left of the list shown by ‘dirs’, starting with\n" " \tzero) is at the top.\n" " \n" -" -N\tRotates the stack so that the Nth directory (counting\n" +" -N\tRotates the stack so that the Nth directory (counting\n" " \tfrom the right of the list shown by ‘dirs’, starting with\n" " \tzero) is at the top.\n" " \n" -" -n\tsuppress the normal change of directory when adding directories\n" -" \tto the stack, so only the stack is manipulated.\n" -" \n" -" dir\tadds DIR to the directory stack at the top, making it the\n" +" dir\tAdds DIR to the directory stack at the top, making it the\n" " \tnew current working directory.\n" " \n" -" You can see the directory stack with the ‘dirs’ command." +" The ‘dirs’ builtin displays the directory stack.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid argument is supplied or the directory\n" +" change fails." -#: builtins.c:1318 +#: builtins.c:1767 msgid "" -" Removes entries from the directory stack. With no arguments,\n" -" removes the top directory from the stack, and cd's to the new\n" -" top directory.\n" +"Remove directories from stack.\n" " \n" -" +N\tremoves the Nth entry counting from the left of the list\n" +" Removes entries from the directory stack. With no arguments, removes\n" +" the top directory from the stack, and changes to the new top directory.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when removing\n" +" \tdirectories from the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRemoves the Nth entry counting from the left of the list\n" " \tshown by `dirs', starting with zero. For example: `popd +0'\n" " \tremoves the first directory, `popd +1' the second.\n" " \n" -" -N\tremoves the Nth entry counting from the right of the list\n" +" -N\tRemoves the Nth entry counting from the right of the list\n" " \tshown by `dirs', starting with zero. For example: `popd -0'\n" " \tremoves the last directory, `popd -1' the next to last.\n" " \n" -" -n\tsuppress the normal change of directory when removing directories\n" -" \tfrom the stack, so only the stack is manipulated.\n" +" The `dirs' builtin displays the directory stack.\n" " \n" -" You can see the directory stack with the `dirs' command." +" Exit Status:\n" +" Returns success unless an invalid argument is supplied or the directory\n" +" change fails." msgstr "" -" Removes entries from the directory stack. With no arguments,\n" -" removes the top directory from the stack, and cd's to the new\n" -" top directory.\n" +"Remove directories from stack.\n" +" \n" +" Removes entries from the directory stack. With no arguments, removes\n" +" the top directory from the stack, and changes to the new top directory.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when removing\n" +" \tdirectories from the stack, so only the stack is manipulated.\n" " \n" -" +N\tremoves the Nth entry counting from the left of the list\n" +" Arguments:\n" +" +N\tRemoves the Nth entry counting from the left of the list\n" " \tshown by ‘dirs’, starting with zero. For example: ‘popd +0" "[0m’\n" " \tremoves the first directory, ‘popd +1’ the second.\n" " \n" -" -N\tremoves the Nth entry counting from the right of the list\n" +" -N\tRemoves the Nth entry counting from the right of the list\n" " \tshown by ‘dirs’, starting with zero. For example: ‘popd -0" "[0m’\n" " \tremoves the last directory, ‘popd -1’ the next to last.\n" " \n" -" -n\tsuppress the normal change of directory when removing directories\n" -" \tfrom the stack, so only the stack is manipulated.\n" +" The ‘dirs’ builtin displays the directory stack.\n" " \n" -" You can see the directory stack with the ‘dirs’ command." +" Exit Status:\n" +" Returns success unless an invalid argument is supplied or the directory\n" +" change fails." -#: builtins.c:1341 +#: builtins.c:1797 msgid "" -" Display the list of currently remembered directories. Directories\n" +"Display directory stack.\n" +" \n" +" Display the list of currently remembered directories. Directories\n" " find their way onto the list with the `pushd' command; you can get\n" " back up through the list with the `popd' command.\n" " \n" -" The -l flag specifies that `dirs' should not print shorthand versions\n" -" of directories which are relative to your home directory. This means\n" -" that `~/bin' might be displayed as `/homes/bfox/bin'. The -v flag\n" -" causes `dirs' to print the directory stack with one entry per line,\n" -" prepending the directory name with its position in the stack. The -p\n" -" flag does the same thing, but the stack position is not prepended.\n" -" The -c flag clears the directory stack by deleting all of the elements.\n" +" Options:\n" +" -c\tclear the directory stack by deleting all of the elements\n" +" -l\tdo not print tilde-prefixed versions of directories relative\n" +" \tto your home directory\n" +" -p\tprint the directory stack with one entry per line\n" +" -v\tprint the directory stack with one entry per line prefixed\n" +" \twith its position in the stack\n" +" \n" +" Arguments:\n" +" +N\tDisplays the Nth entry counting from the left of the list shown " +"by\n" +" \tdirs when invoked without options, starting with zero.\n" " \n" -" +N\tdisplays the Nth entry counting from the left of the list shown by\n" +" -N\tDisplays the Nth entry counting from the right of the list shown " +"by\n" " \tdirs when invoked without options, starting with zero.\n" " \n" -" -N\tdisplays the Nth entry counting from the right of the list shown by\n" -" \tdirs when invoked without options, starting with zero." +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." msgstr "" -" Display the list of currently remembered directories. Directories\n" +"Display directory stack.\n" +" \n" +" Display the list of currently remembered directories. Directories\n" " find their way onto the list with the ‘pushd’ command; you can " "get\n" " back up through the list with the ‘popd’ command.\n" " \n" -" The -l flag specifies that ‘dirs’ should not print shorthand " -"versions\n" -" of directories which are relative to your home directory. This means\n" -" that ‘~/bin’ might be displayed as ‘/homes/bfox/bin’. The -" -"v flag\n" -" causes ‘dirs’ to print the directory stack with one entry per " -"line,\n" -" prepending the directory name with its position in the stack. The -p\n" -" flag does the same thing, but the stack position is not prepended.\n" -" The -c flag clears the directory stack by deleting all of the elements.\n" -" \n" -" +N\tdisplays the Nth entry counting from the left of the list shown by\n" +" Options:\n" +" -c\tclear the directory stack by deleting all of the elements\n" +" -l\tdo not print tilde-prefixed versions of directories relative\n" +" \tto your home directory\n" +" -p\tprint the directory stack with one entry per line\n" +" -v\tprint the directory stack with one entry per line prefixed\n" +" \twith its position in the stack\n" +" \n" +" Arguments:\n" +" +N\tDisplays the Nth entry counting from the left of the list shown " +"by\n" +" \tdirs when invoked without options, starting with zero.\n" +" \n" +" -N\tDisplays the Nth entry counting from the right of the list shown " +"by\n" " \tdirs when invoked without options, starting with zero.\n" " \n" -" -N\tdisplays the Nth entry counting from the right of the list shown by\n" -" \tdirs when invoked without options, starting with zero." - -#: builtins.c:1364 -msgid "" -" Toggle the values of variables controlling optional behavior.\n" -" The -s flag means to enable (set) each OPTNAME; the -u flag\n" -" unsets each OPTNAME. The -q flag suppresses output; the exit\n" -" status indicates whether each OPTNAME is set or unset. The -o\n" -" option restricts the OPTNAMEs to those defined for use with\n" -" `set -o'. With no options, or with the -p option, a list of all\n" -" settable options is displayed, with an indication of whether or\n" -" not each is set." -msgstr "" -" Toggle the values of variables controlling optional behavior.\n" -" The -s flag means to enable (set) each OPTNAME; the -u flag\n" -" unsets each OPTNAME. The -q flag suppresses output; the exit\n" -" status indicates whether each OPTNAME is set or unset. The -o\n" -" option restricts the OPTNAMEs to those defined for use with\n" -" ‘set -o’. With no options, or with the -p option, a list of all\n" -" settable options is displayed, with an indication of whether or\n" -" not each is set." - -#: builtins.c:1377 -msgid "" -" printf formats and prints ARGUMENTS under control of the FORMAT. FORMAT\n" -" is a character string which contains three types of objects: plain\n" -" characters, which are simply copied to standard output, character " +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." + +#: builtins.c:1826 +msgid "" +"Set and unset shell options.\n" +" \n" +" Change the setting of each shell option OPTNAME. Without any option\n" +" arguments, list all shell options with an indication of whether or not " +"each\n" +" is set.\n" +" \n" +" Options:\n" +" -o\trestrict OPTNAMEs to those defined for use with `set -o'\n" +" -p\tprint each shell option with an indication of its status\n" +" -q\tsuppress output\n" +" -s\tenable (set) each OPTNAME\n" +" -u\tdisable (unset) each OPTNAME\n" +" \n" +" Exit Status:\n" +" Returns success if OPTNAME is enabled; fails if an invalid option is\n" +" given or OPTNAME is disabled." +msgstr "" +"Set and unset shell options.\n" +" \n" +" Change the setting of each shell option OPTNAME. Without any option\n" +" arguments, list all shell options with an indication of whether or not " +"each\n" +" is set.\n" +" \n" +" Options:\n" +" -o\trestrict OPTNAMEs to those defined for use with ‘set -o’\n" +" -p\tprint each shell option with an indication of its status\n" +" -q\tsuppress output\n" +" -s\tenable (set) each OPTNAME\n" +" -u\tdisable (unset) each OPTNAME\n" +" \n" +" Exit Status:\n" +" Returns success if OPTNAME is enabled; fails if an invalid option is\n" +" given or OPTNAME is disabled." + +#: builtins.c:1847 +msgid "" +"Formats and prints ARGUMENTS under control of the FORMAT.\n" +" \n" +" Options:\n" +" -v var\tassign the output to shell variable VAR rather than\n" +" \t\tdisplay it on the standard output\n" +" \n" +" FORMAT is a character string which contains three types of objects: " +"plain\n" +" characters, which are simply copied to standard output; character " "escape\n" -" sequences which are converted and copied to the standard output, and\n" +" sequences, which are converted and copied to the standard output; and\n" " format specifications, each of which causes printing of the next " "successive\n" -" argument. In addition to the standard printf(1) formats, %b means to\n" -" expand backslash escape sequences in the corresponding argument, and %q\n" -" means to quote the argument in a way that can be reused as shell input.\n" -" If the -v option is supplied, the output is placed into the value of " -"the\n" -" shell variable VAR rather than being sent to the standard output." +" argument.\n" +" \n" +" In addition to the standard format specifications described in printf" +"(1)\n" +" and printf(3), printf interprets:\n" +" \n" +" %b\texpand backslash escape sequences in the corresponding argument\n" +" %q\tquote the argument in a way that can be reused as shell input\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or a write or " +"assignment\n" +" error occurs." msgstr "" -" printf formats and prints ARGUMENTS under control of the FORMAT. FORMAT\n" -" is a character string which contains three types of objects: plain\n" -" characters, which are simply copied to standard output, character " +"Formats and prints ARGUMENTS under control of the FORMAT.\n" +" \n" +" Options:\n" +" -v var\tassign the output to shell variable VAR rather than\n" +" \t\tdisplay it on the standard output\n" +" \n" +" FORMAT is a character string which contains three types of objects: " +"plain\n" +" characters, which are simply copied to standard output; character " "escape\n" -" sequences which are converted and copied to the standard output, and\n" +" sequences, which are converted and copied to the standard output; and\n" " format specifications, each of which causes printing of the next " "successive\n" -" argument. In addition to the standard printf(1) formats, %b means to\n" -" expand backslash escape sequences in the corresponding argument, and %q\n" -" means to quote the argument in a way that can be reused as shell input.\n" -" If the -v option is supplied, the output is placed into the value of " -"the\n" -" shell variable VAR rather than being sent to the standard output." - -#: builtins.c:1393 -msgid "" -" For each NAME, specify how arguments are to be completed.\n" -" If the -p option is supplied, or if no options are supplied, existing\n" -" completion specifications are printed in a way that allows them to be\n" -" reused as input. The -r option removes a completion specification for\n" -" each NAME, or, if no NAMEs are supplied, all completion specifications." -msgstr "" -" For each NAME, specify how arguments are to be completed.\n" -" If the -p option is supplied, or if no options are supplied, existing\n" -" completion specifications are printed in a way that allows them to be\n" -" reused as input. The -r option removes a completion specification for\n" -" each NAME, or, if no NAMEs are supplied, all completion specifications." - -#: builtins.c:1405 -msgid "" -" Display the possible completions depending on the options. Intended\n" -" to be used from within a shell function generating possible " -"completions.\n" -" If the optional WORD argument is supplied, matches against WORD are\n" -" generated." -msgstr "" -" Display the possible completions depending on the options. Intended\n" -" to be used from within a shell function generating possible " -"completions.\n" -" If the optional WORD argument is supplied, matches against WORD are\n" -" generated." +" argument.\n" +" \n" +" In addition to the standard format specifications described in printf" +"(1)\n" +" and printf(3), printf interprets:\n" +" \n" +" %b\texpand backslash escape sequences in the corresponding argument\n" +" %q\tquote the argument in a way that can be reused as shell input\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or a write or " +"assignment\n" +" error occurs." + +#: builtins.c:1874 +msgid "" +"Specify how arguments are to be completed by Readline.\n" +" \n" +" For each NAME, specify how arguments are to be completed. If no " +"options\n" +" are supplied, existing completion specifications are printed in a way " +"that\n" +" allows them to be reused as input.\n" +" \n" +" Options:\n" +" -p\tprint existing completion specifications in a reusable format\n" +" -r\tremove a completion specification for each NAME, or, if no\n" +" \tNAMEs are supplied, all completion specifications\n" +" \n" +" When completion is attempted, the actions are applied in the order the\n" +" uppercase-letter options are listed above.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" +"Specify how arguments are to be completed by Readline.\n" +" \n" +" For each NAME, specify how arguments are to be completed. If no " +"options\n" +" are supplied, existing completion specifications are printed in a way " +"that\n" +" allows them to be reused as input.\n" +" \n" +" Options:\n" +" -p\tprint existing completion specifications in a reusable format\n" +" -r\tremove a completion specification for each NAME, or, if no\n" +" \tNAMEs are supplied, all completion specifications\n" +" \n" +" When completion is attempted, the actions are applied in the order the\n" +" uppercase-letter options are listed above.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." + +#: builtins.c:1897 +msgid "" +"Display possible completions depending on the options.\n" +" \n" +" Intended to be used from within a shell function generating possible\n" +" completions. If the optional WORD argument is supplied, matches " +"against\n" +" WORD are generated.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" +"Display possible completions depending on the options.\n" +" \n" +" Intended to be used from within a shell function generating possible\n" +" completions. If the optional WORD argument is supplied, matches " +"against\n" +" WORD are generated.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." + +#: builtins.c:1912 +msgid "" +"Modify or display completion options.\n" +" \n" +" Modify the completion options for each NAME, or, if no NAMEs are " +"supplied,\n" +" the completion currently begin executed. If no OPTIONs are givenm, " +"print\n" +" the completion options for each NAME or the current completion " +"specification.\n" +" \n" +" Options:\n" +" \t-o option\tSet completion option OPTION for each NAME\n" +" \n" +" Using `+o' instead of `-o' turns off the specified option.\n" +" \n" +" Arguments:\n" +" \n" +" Each NAME refers to a command for which a completion specification must\n" +" have previously been defined using the `complete' builtin. If no NAMEs\n" +" are supplied, compopt must be called by a function currently generating\n" +" completions, and the options for that currently-executing completion\n" +" generator are modified.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or NAME does not\n" +" have a completion specification defined." +msgstr "" +"Modify or display completion options.\n" +" \n" +" Modify the completion options for each NAME, or, if no NAMEs are " +"supplied,\n" +" the completion currently begin executed. If no OPTIONs are givenm, " +"print\n" +" the completion options for each NAME or the current completion " +"specification.\n" +" \n" +" Options:\n" +" \t-o option\tSet completion option OPTION for each NAME\n" +" \n" +" Using ‘+o’ instead of ‘-o’ turns off the specified option.\n" +" \n" +" Arguments:\n" +" \n" +" Each NAME refers to a command for which a completion specification must\n" +" have previously been defined using the ‘complete’ builtin. If no " +"NAMEs\n" +" are supplied, compopt must be called by a function currently generating\n" +" completions, and the options for that currently-executing completion\n" +" generator are modified.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or NAME does not\n" +" have a completion specification defined." + +#: builtins.c:1940 +msgid "" +"Read lines from a file into an array variable.\n" +" \n" +" Read lines from the standard input into the array variable ARRAY, or " +"from\n" +" file descriptor FD if the -u option is supplied. The variable MAPFILE " +"is\n" +" the default ARRAY.\n" +" \n" +" Options:\n" +" -n count\tCopy at most COUNT lines. If COUNT is 0, all lines are " +"copied.\n" +" -O origin\tBegin assigning to ARRAY at index ORIGIN. The default " +"index is 0.\n" +" -s count \tDiscard the first COUNT lines read.\n" +" -t\t\tRemove a trailing newline from each line read.\n" +" -u fd\t\tRead lines from file descriptor FD instead of the standard " +"input.\n" +" -C callback\tEvaluate CALLBACK each time QUANTUM lines are read.\n" +" -c quantum\tSpecify the number of lines read between each call to " +"CALLBACK.\n" +" \n" +" Arguments:\n" +" ARRAY\t\tArray variable name to use for file data.\n" +" \n" +" If -C is supplied without -c, the default quantum is 5000.\n" +" \n" +" If not supplied with an explicit origin, mapfile will clear ARRAY " +"before\n" +" assigning to it.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or ARRAY is readonly." +msgstr "" +"Read lines from a file into an array variable.\n" +" \n" +" Read lines from the standard input into the array variable ARRAY, or " +"from\n" +" file descriptor FD if the -u option is supplied. The variable MAPFILE " +"is\n" +" the default ARRAY.\n" +" \n" +" Options:\n" +" -n count\tCopy at most COUNT lines. If COUNT is 0, all lines are " +"copied.\n" +" -O origin\tBegin assigning to ARRAY at index ORIGIN. The default " +"index is 0.\n" +" -s count \tDiscard the first COUNT lines read.\n" +" -t\t\tRemove a trailing newline from each line read.\n" +" -u fd\t\tRead lines from file descriptor FD instead of the standard " +"input.\n" +" -C callback\tEvaluate CALLBACK each time QUANTUM lines are read.\n" +" -c quantum\tSpecify the number of lines read between each call to " +"CALLBACK.\n" +" \n" +" Arguments:\n" +" ARRAY\t\tArray variable name to use for file data.\n" +" \n" +" If -C is supplied without -c, the default quantum is 5000.\n" +" \n" +" If not supplied with an explicit origin, mapfile will clear ARRAY " +"before\n" +" assigning to it.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or ARRAY is readonly." diff --git a/po/en@quot.gmo b/po/en@quot.gmo index 9dc7c43ebb6c2330661bbed556deabcd092d72ed..0d9f13d638abf172ef29bc1d3877a036c04dda9c 100644 GIT binary patch literal 152713 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

tNQ19 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 literal 116592 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 diff --git a/po/en@quot.po b/po/en@quot.po index fd0407c1d..3ff764e11 100644 --- a/po/en@quot.po +++ b/po/en@quot.po @@ -1,7 +1,7 @@ # English translations for GNU bash package. -# Copyright (C) 2005 Free Software Foundation, Inc. +# Copyright (C) 2009 Free Software Foundation, Inc. # This file is distributed under the same license as the GNU bash package. -# Automatically generated, 2005. +# Automatically generated, 2009. # # All this catalog "translates" are quotation characters. # The msgids must be ASCII and therefore cannot contain real quotation @@ -27,9 +27,10 @@ # msgid "" msgstr "" -"Project-Id-Version: GNU bash 3.1-beta1\n" -"POT-Creation-Date: 2005-10-03 17:31-0400\n" -"PO-Revision-Date: 2005-10-03 17:31-0400\n" +"Project-Id-Version: GNU bash 4.0-rc1\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2009-01-06 11:56-0500\n" +"PO-Revision-Date: 2009-01-06 11:56-0500\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" "MIME-Version: 1.0\n" @@ -37,370 +38,429 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: arrayfunc.c:48 +#: arrayfunc.c:50 msgid "bad array subscript" msgstr "bad array subscript" -#: arrayfunc.c:360 +#: arrayfunc.c:313 builtins/declare.def:474 +#, c-format +msgid "%s: cannot convert indexed to associative array" +msgstr "%s: cannot convert indexed to associative array" + +#: arrayfunc.c:479 +#, c-format +msgid "%s: invalid associative array key" +msgstr "%s: invalid associative array key" + +#: arrayfunc.c:481 #, c-format msgid "%s: cannot assign to non-numeric index" msgstr "%s: cannot assign to non-numeric index" -#: bashhist.c:328 +#: arrayfunc.c:517 +#, c-format +msgid "%s: %s: must use subscript when assigning associative array" +msgstr "%s: %s: must use subscript when assigning associative array" + +#: bashhist.c:380 #, c-format msgid "%s: cannot create: %s" msgstr "%s: cannot create: %s" -#: bashline.c:2947 +#: bashline.c:3413 msgid "bash_execute_unix_command: cannot find keymap for command" msgstr "bash_execute_unix_command: cannot find keymap for command" -#: bashline.c:2996 +#: bashline.c:3491 #, c-format msgid "%s: first non-whitespace character is not `\"'" msgstr "%s: first non-whitespace character is not ‘\"’" -#: bashline.c:3025 +#: bashline.c:3520 #, c-format msgid "no closing `%c' in %s" msgstr "no closing ‘%c’ in %s" -#: bashline.c:3059 +#: bashline.c:3554 #, c-format msgid "%s: missing colon separator" msgstr "%s: missing colon separator" -#: builtins/bind.def:194 +#: builtins/bind.def:120 builtins/bind.def:123 +msgid "line editing not enabled" +msgstr "line editing not enabled" + +#: builtins/bind.def:206 #, c-format msgid "`%s': invalid keymap name" msgstr "‘%s’: invalid keymap name" -#: builtins/bind.def:233 +#: builtins/bind.def:245 #, c-format msgid "%s: cannot read: %s" msgstr "%s: cannot read: %s" -#: builtins/bind.def:248 +#: builtins/bind.def:260 #, c-format msgid "`%s': cannot unbind" msgstr "‘%s’: cannot unbind" -#: builtins/bind.def:283 +#: builtins/bind.def:295 builtins/bind.def:325 #, c-format msgid "`%s': unknown function name" msgstr "‘%s’: unknown function name" -#: builtins/bind.def:291 +#: builtins/bind.def:303 #, c-format msgid "%s is not bound to any keys.\n" msgstr "%s is not bound to any keys.\n" -#: builtins/bind.def:295 +#: builtins/bind.def:307 #, c-format msgid "%s can be invoked via " msgstr "%s can be invoked via " -#: builtins/break.def:128 +#: builtins/break.def:77 builtins/break.def:117 +msgid "loop count" +msgstr "loop count" + +#: builtins/break.def:137 msgid "only meaningful in a `for', `while', or `until' loop" msgstr "only meaningful in a ‘for’, ‘while’, or ‘until’ loop" -#: builtins/caller.def:132 -msgid "Returns the context of the current subroutine call." -msgstr "Returns the context of the current subroutine call." - -#: builtins/caller.def:133 builtins/caller.def:137 builtins/pushd.def:660 -#: builtins/pushd.def:668 builtins/pushd.def:671 builtins/pushd.def:681 -#: builtins/pushd.def:685 builtins/pushd.def:689 builtins/pushd.def:692 -#: builtins/pushd.def:695 builtins/pushd.def:704 builtins/pushd.def:708 -#: builtins/pushd.def:712 builtins/pushd.def:715 -msgid " " -msgstr " " - -#: builtins/caller.def:134 -msgid "Without EXPR, returns returns \"$line $filename\". With EXPR," -msgstr "Without EXPR, returns returns “$line $filename”. With EXPR," - -#: builtins/caller.def:135 -msgid "returns \"$line $subroutine $filename\"; this extra information" -msgstr "returns “$line $subroutine $filename”; this extra information" - -#: builtins/caller.def:136 -msgid "can be used used to provide a stack trace." -msgstr "can be used used to provide a stack trace." - -#: builtins/caller.def:138 -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:139 -msgid "current one; the top frame is frame 0." -msgstr "current one; the top frame is frame 0." +#: builtins/caller.def:133 +msgid "" +"Returns the context of the current subroutine call.\n" +" \n" +" Without EXPR, returns " +msgstr "" +"Returns the context of the current subroutine call.\n" +" \n" +" Without EXPR, returns " -#: builtins/cd.def:203 +#: builtins/cd.def:215 msgid "HOME not set" msgstr "HOME not set" -#: builtins/cd.def:215 +#: builtins/cd.def:227 msgid "OLDPWD not set" msgstr "OLDPWD not set" -#: builtins/common.c:133 test.c:921 +#: builtins/common.c:101 +#, c-format +msgid "line %d: " +msgstr "line %d: " + +#: builtins/common.c:139 error.c:260 +#, c-format +msgid "warning: " +msgstr "warning: " + +#: builtins/common.c:153 +#, c-format +msgid "%s: usage: " +msgstr "%s: usage: " + +#: builtins/common.c:166 test.c:822 msgid "too many arguments" msgstr "too many arguments" -#: builtins/common.c:157 shell.c:474 shell.c:747 +#: builtins/common.c:191 shell.c:493 shell.c:774 #, c-format msgid "%s: option requires an argument" msgstr "%s: option requires an argument" -#: builtins/common.c:164 +#: builtins/common.c:198 #, c-format msgid "%s: numeric argument required" msgstr "%s: numeric argument required" -#: builtins/common.c:171 +#: builtins/common.c:205 #, c-format msgid "%s: not found" msgstr "%s: not found" -#: builtins/common.c:180 shell.c:760 +#: builtins/common.c:214 shell.c:787 #, c-format msgid "%s: invalid option" msgstr "%s: invalid option" -#: builtins/common.c:187 +#: builtins/common.c:221 #, c-format msgid "%s: invalid option name" msgstr "%s: invalid option name" -#: builtins/common.c:194 general.c:231 general.c:236 +#: builtins/common.c:228 general.c:231 general.c:236 #, 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:238 +msgid "invalid octal number" +msgstr "invalid octal number" + +#: builtins/common.c:240 +msgid "invalid hex number" +msgstr "invalid hex number" + +#: builtins/common.c:242 expr.c:1255 +msgid "invalid number" +msgstr "invalid number" -#: builtins/common.c:208 +#: builtins/common.c:250 #, c-format msgid "%s: invalid signal specification" msgstr "%s: invalid signal specification" -#: builtins/common.c:215 +#: builtins/common.c:257 #, 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 +#: builtins/common.c:264 error.c:453 #, c-format msgid "%s: readonly variable" msgstr "%s: readonly variable" -#: builtins/common.c:230 +#: builtins/common.c:272 #, c-format msgid "%s: %s out of range" msgstr "%s: %s out of range" -#: builtins/common.c:230 builtins/common.c:232 +#: builtins/common.c:272 builtins/common.c:274 msgid "argument" msgstr "argument" -#: builtins/common.c:232 +#: builtins/common.c:274 #, c-format msgid "%s out of range" msgstr "%s out of range" -#: builtins/common.c:240 +#: builtins/common.c:282 #, c-format msgid "%s: no such job" msgstr "%s: no such job" -#: builtins/common.c:248 +#: builtins/common.c:290 #, c-format msgid "%s: no job control" msgstr "%s: no job control" -#: builtins/common.c:250 +#: builtins/common.c:292 msgid "no job control" msgstr "no job control" -#: builtins/common.c:260 +#: builtins/common.c:302 #, c-format msgid "%s: restricted" msgstr "%s: restricted" -#: builtins/common.c:262 +#: builtins/common.c:304 msgid "restricted" msgstr "restricted" -#: builtins/common.c:270 +#: builtins/common.c:312 #, c-format msgid "%s: not a shell builtin" msgstr "%s: not a shell builtin" -#: builtins/common.c:276 +#: builtins/common.c:321 #, c-format msgid "write error: %s" msgstr "write error: %s" -#: builtins/common.c:484 +#: builtins/common.c:553 #, c-format msgid "%s: error retrieving current directory: %s: %s\n" msgstr "%s: error retrieving current directory: %s: %s\n" -#: builtins/common.c:550 builtins/common.c:552 +#: builtins/common.c:619 builtins/common.c:621 #, c-format msgid "%s: ambiguous job spec" msgstr "%s: ambiguous job spec" -#: builtins/complete.def:251 +#: builtins/complete.def:270 #, c-format msgid "%s: invalid action name" msgstr "%s: invalid action name" -#: builtins/complete.def:381 builtins/complete.def:524 +#: builtins/complete.def:430 builtins/complete.def:615 +#: builtins/complete.def:813 #, c-format msgid "%s: no completion specification" msgstr "%s: no completion specification" -#: builtins/complete.def:571 +#: builtins/complete.def:667 msgid "warning: -F option may not work as you expect" msgstr "warning: -F option may not work as you expect" -#: builtins/complete.def:573 +#: builtins/complete.def:669 msgid "warning: -C option may not work as you expect" msgstr "warning: -C option may not work as you expect" -#: builtins/declare.def:105 +#: builtins/complete.def:786 +msgid "not currently executing completion function" +msgstr "not currently executing completion function" + +#: builtins/declare.def:122 msgid "can only be used in a function" msgstr "can only be used in a function" -#: builtins/declare.def:301 +#: builtins/declare.def:353 msgid "cannot use `-f' to make functions" msgstr "cannot use ‘-f’ to make functions" -#: builtins/declare.def:313 execute_cmd.c:3986 +#: builtins/declare.def:365 execute_cmd.c:4731 #, c-format msgid "%s: readonly function" msgstr "%s: readonly function" -#: builtins/declare.def:401 +#: builtins/declare.def:461 #, 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 +#: builtins/declare.def:468 +#, c-format +msgid "%s: cannot convert associative to indexed array" +msgstr "%s: cannot convert associative to indexed array" + +#: builtins/enable.def:137 builtins/enable.def:145 msgid "dynamic loading not available" msgstr "dynamic loading not available" -#: builtins/enable.def:303 +#: builtins/enable.def:312 #, c-format msgid "cannot open shared object %s: %s" msgstr "cannot open shared object %s: %s" -#: builtins/enable.def:326 +#: builtins/enable.def:335 #, c-format msgid "cannot find %s in shared object %s: %s" msgstr "cannot find %s in shared object %s: %s" -#: builtins/enable.def:450 +#: builtins/enable.def:459 #, c-format msgid "%s: not dynamically loaded" msgstr "%s: not dynamically loaded" -#: builtins/enable.def:465 +#: builtins/enable.def:474 #, c-format msgid "%s: cannot delete: %s" msgstr "%s: cannot delete: %s" -#: builtins/evalfile.c:129 execute_cmd.c:3852 shell.c:1408 +#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4588 +#: shell.c:1439 #, c-format msgid "%s: is a directory" msgstr "%s: is a directory" -#: builtins/evalfile.c:134 +#: builtins/evalfile.c:139 #, c-format msgid "%s: not a regular file" msgstr "%s: not a regular file" -#: builtins/evalfile.c:142 +#: builtins/evalfile.c:147 #, c-format msgid "%s: file is too large" msgstr "%s: file is too large" -#: builtins/exec.def:205 +#: builtins/evalfile.c:185 execute_cmd.c:4658 shell.c:1449 +#, c-format +msgid "%s: cannot execute binary file" +msgstr "%s: cannot execute binary file" + +#: builtins/exec.def:212 #, c-format msgid "%s: cannot execute: %s" msgstr "%s: cannot execute: %s" -#: builtins/exit.def:83 +#: builtins/exit.def:65 +#, c-format +msgid "logout\n" +msgstr "logout\n" + +#: builtins/exit.def:88 msgid "not login shell: use `exit'" msgstr "not login shell: use ‘exit’" -#: builtins/exit.def:111 +#: builtins/exit.def:120 +#, c-format msgid "There are stopped jobs.\n" msgstr "There are stopped jobs.\n" -#: builtins/fc.def:259 +#: builtins/exit.def:122 +#, c-format +msgid "There are running jobs.\n" +msgstr "There are running jobs.\n" + +#: builtins/fc.def:261 msgid "no command found" msgstr "no command found" -#: builtins/fc.def:329 +#: builtins/fc.def:341 msgid "history specification" msgstr "history specification" -#: builtins/fc.def:350 +#: builtins/fc.def:362 #, c-format msgid "%s: cannot open temp file: %s" msgstr "%s: cannot open temp file: %s" -#: builtins/fg_bg.def:149 +#: builtins/fg_bg.def:149 builtins/jobs.def:282 +msgid "current" +msgstr "current" + +#: builtins/fg_bg.def:158 #, c-format msgid "job %d started without job control" msgstr "job %d started without job control" -#: builtins/getopt.c:109 +#: builtins/getopt.c:110 #, c-format msgid "%s: illegal option -- %c\n" msgstr "%s: illegal option -- %c\n" -#: builtins/getopt.c:110 +#: builtins/getopt.c:111 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "%s: option requires an argument -- %c\n" -#: builtins/hash.def:83 +#: builtins/hash.def:92 msgid "hashing disabled" msgstr "hashing disabled" -#: builtins/hash.def:128 +#: builtins/hash.def:138 #, 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/hash.def:244 +#, c-format +msgid "hits\tcommand\n" +msgstr "hits\tcommand\n" -#: builtins/help.def:110 +#: builtins/help.def:130 +#, c-format msgid "Shell commands matching keyword `" -msgstr "Shell commands matching keyword `" +msgid_plural "Shell commands matching keywords `" +msgstr[0] "Shell commands matching keyword `" +msgstr[1] "Shell commands matching keywords `" -#: builtins/help.def:138 +#: builtins/help.def:168 #, 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 +#: builtins/help.def:185 #, c-format msgid "%s: cannot open: %s" msgstr "%s: cannot open: %s" -#: builtins/help.def:182 +#: builtins/help.def:337 +#, c-format 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" @@ -418,366 +478,387 @@ msgstr "" "A star (*) next to a name means that the command is disabled.\n" "\n" -#: builtins/history.def:150 +#: builtins/history.def:154 msgid "cannot use more than one of -anrw" msgstr "cannot use more than one of -anrw" -#: builtins/history.def:182 +#: builtins/history.def:186 msgid "history position" msgstr "history position" -#: builtins/history.def:400 +#: builtins/history.def:365 #, c-format msgid "%s: history expansion failed" msgstr "%s: history expansion failed" -#: builtins/jobs.def:99 +#: builtins/inlib.def:71 +#, c-format +msgid "%s: inlib failed" +msgstr "%s: inlib failed" + +#: builtins/jobs.def:109 msgid "no other options allowed with `-x'" msgstr "no other options allowed with ‘-x’" -#: builtins/kill.def:187 +#: builtins/kill.def:197 #, c-format msgid "%s: arguments must be process or job IDs" msgstr "%s: arguments must be process or job IDs" -#: builtins/kill.def:250 +#: builtins/kill.def:260 msgid "Unknown error" msgstr "Unknown error" -#: builtins/let.def:94 builtins/let.def:119 expr.c:497 expr.c:512 +#: builtins/let.def:95 builtins/let.def:120 expr.c:501 expr.c:516 msgid "expression expected" msgstr "expression expected" -#: builtins/printf.def:327 +#: builtins/mapfile.def:215 builtins/read.def:272 +#, c-format +msgid "%s: invalid file descriptor specification" +msgstr "%s: invalid file descriptor specification" + +#: builtins/mapfile.def:223 builtins/read.def:279 +#, c-format +msgid "%d: invalid file descriptor: %s" +msgstr "%d: invalid file descriptor: %s" + +#: builtins/mapfile.def:232 builtins/mapfile.def:270 +#, c-format +msgid "%s: invalid line count" +msgstr "%s: invalid line count" + +#: builtins/mapfile.def:243 +#, c-format +msgid "%s: invalid array origin" +msgstr "%s: invalid array origin" + +#: builtins/mapfile.def:260 +#, c-format +msgid "%s: invalid callback quantum" +msgstr "%s: invalid callback quantum" + +#: builtins/mapfile.def:292 +msgid "empty array variable name" +msgstr "empty array variable name" + +#: builtins/mapfile.def:313 +msgid "array variable support required" +msgstr "array variable support required" + +#: builtins/printf.def:367 #, c-format msgid "`%s': missing format character" msgstr "‘%s’: missing format character" -#: builtins/printf.def:502 +#: builtins/printf.def:544 #, c-format msgid "`%c': invalid format character" msgstr "‘%c’: invalid format character" -#: builtins/printf.def:708 +#: builtins/printf.def:571 +#, c-format +msgid "warning: %s: %s" +msgstr "warning: %s: %s" + +#: builtins/printf.def:750 msgid "missing hex digit for \\x" msgstr "missing hex digit for \\x" -#: builtins/pushd.def:173 +#: builtins/pushd.def:195 msgid "no other directory" msgstr "no other directory" -#: builtins/pushd.def:440 +#: builtins/pushd.def:462 msgid "" msgstr "" -#: builtins/pushd.def:657 -msgid "Display the list of currently remembered directories. Directories" -msgstr "Display the list of currently remembered directories. Directories" - -#: builtins/pushd.def:658 -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:659 -msgid "back up through the list with the `popd' command." -msgstr "back up through the list with the ‘popd’ command." - -#: builtins/pushd.def:661 -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:662 -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:663 -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:664 -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:665 -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:506 +msgid "directory stack empty" +msgstr "directory stack empty" -#: builtins/pushd.def:666 -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:508 +msgid "directory stack index" +msgstr "directory stack index" -#: builtins/pushd.def:667 -msgid "The -c flag clears the directory stack by deleting all of the elements." +#: builtins/pushd.def:683 +msgid "" +"Display the list of currently remembered directories. Directories\n" +" find their way onto the list with the `pushd' command; you can get\n" +" back up through the list with the `popd' command.\n" +" \n" +" Options:\n" +" -c\tclear the directory stack by deleting all of the elements\n" +" -l\tdo not print tilde-prefixed versions of directories relative\n" +" \tto your home directory\n" +" -p\tprint the directory stack with one entry per line\n" +" -v\tprint the directory stack with one entry per line prefixed\n" +" \twith its position in the stack\n" +" \n" +" Arguments:\n" +" +N\tDisplays the Nth entry counting from the left of the list shown " +"by\n" +" \tdirs when invoked without options, starting with zero.\n" +" \n" +" -N\tDisplays the Nth entry counting from the right of the list shown " +"by\n" +"\tdirs when invoked without options, starting with zero." msgstr "" -"The -c flag clears the directory stack by deleting all of the elements." +"Display the list of currently remembered directories. Directories\n" +" find their way onto the list with the ‘pushd’ command; you can get\n" +" back up through the list with the ‘popd’ command.\n" +" \n" +" Options:\n" +" -c\tclear the directory stack by deleting all of the elements\n" +" -l\tdo not print tilde-prefixed versions of directories relative\n" +" \tto your home directory\n" +" -p\tprint the directory stack with one entry per line\n" +" -v\tprint the directory stack with one entry per line prefixed\n" +" \twith its position in the stack\n" +" \n" +" Arguments:\n" +" +N\tDisplays the Nth entry counting from the left of the list shown " +"by\n" +" \tdirs when invoked without options, starting with zero.\n" +" \n" +" -N\tDisplays the Nth entry counting from the right of the list shown " +"by\n" +"\tdirs when invoked without options, starting with zero." -#: builtins/pushd.def:669 -msgid "+N displays the Nth entry counting from the left of the list shown by" +#: builtins/pushd.def:705 +msgid "" +"Adds a directory to the top of the directory stack, or rotates\n" +" the stack, making the new top of the stack the current working\n" +" directory. With no arguments, exchanges the top two directories.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when adding\n" +" \tdirectories to the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the left of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" -N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the right of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" dir\tAdds DIR to the directory stack at the top, making it the\n" +" \tnew current working directory.\n" +" \n" +" The `dirs' builtin displays the directory stack." msgstr "" -"+N displays the Nth entry counting from the left of the list shown by" - -#: builtins/pushd.def:670 builtins/pushd.def:673 -msgid " dirs when invoked without options, starting with zero." -msgstr " dirs when invoked without options, starting with zero." +"Adds a directory to the top of the directory stack, or rotates\n" +" the stack, making the new top of the stack the current working\n" +" directory. With no arguments, exchanges the top two directories.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when adding\n" +" \tdirectories to the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the left of the list shown by ‘dirs’, starting with\n" +" \tzero) is at the top.\n" +" \n" +" -N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the right of the list shown by ‘dirs’, starting with\n" +" \tzero) is at the top.\n" +" \n" +" dir\tAdds DIR to the directory stack at the top, making it the\n" +" \tnew current working directory.\n" +" \n" +" The ‘dirs’ builtin displays the directory stack." -#: builtins/pushd.def:672 +#: builtins/pushd.def:730 msgid "" -"-N displays the Nth entry counting from the right of the list shown by" +"Removes entries from the directory stack. With no arguments, removes\n" +" the top directory from the stack, and changes to the new top directory.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when removing\n" +" \tdirectories from the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRemoves the Nth entry counting from the left of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd +0'\n" +" \tremoves the first directory, `popd +1' the second.\n" +" \n" +" -N\tRemoves the Nth entry counting from the right of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd -0'\n" +" \tremoves the last directory, `popd -1' the next to last.\n" +" \n" +" The `dirs' builtin displays the directory stack." msgstr "" -"-N displays the Nth entry counting from the right of the list shown by" - -#: builtins/pushd.def:678 -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:679 -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:680 -msgid "directory. With no arguments, exchanges the top two directories." -msgstr "directory. With no arguments, exchanges the top two directories." - -#: builtins/pushd.def:682 -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:683 -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:684 builtins/pushd.def:688 -msgid " zero) is at the top." -msgstr " zero) is at the top." - -#: builtins/pushd.def:686 -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:687 -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:690 -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:691 -msgid " to the stack, so only the stack is manipulated." -msgstr " to the stack, so only the stack is manipulated." - -#: builtins/pushd.def:693 -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:694 -msgid " new current working directory." -msgstr " new current working directory." - -#: builtins/pushd.def:696 builtins/pushd.def:716 -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:701 -msgid "Removes entries from the directory stack. With no arguments," -msgstr "Removes entries from the directory stack. With no arguments," - -#: builtins/pushd.def:702 -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:703 -msgid "top directory." -msgstr "top directory." - -#: builtins/pushd.def:705 -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:706 -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:707 -msgid " removes the first directory, `popd +1' the second." -msgstr " removes the first directory, ‘popd +1’ the second." - -#: builtins/pushd.def:709 -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:710 -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:711 -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:713 -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:714 -msgid " from the stack, so only the stack is manipulated." -msgstr " from the stack, so only the stack is manipulated." +"Removes entries from the directory stack. With no arguments, removes\n" +" the top directory from the stack, and changes to the new top directory.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when removing\n" +" \tdirectories from the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRemoves the Nth entry counting from the left of the list\n" +" \tshown by ‘dirs’, starting with zero. For example: ‘popd +0’\n" +" \tremoves the first directory, ‘popd +1’ the second.\n" +" \n" +" -N\tRemoves the Nth entry counting from the right of the list\n" +" \tshown by ‘dirs’, starting with zero. For example: ‘popd -0’\n" +" \tremoves the last directory, ‘popd -1’ the next to last.\n" +" \n" +" The ‘dirs’ builtin displays the directory stack." -#: builtins/read.def:211 +#: builtins/read.def:248 #, c-format msgid "%s: invalid timeout specification" msgstr "%s: invalid timeout specification" -#: builtins/read.def:234 -#, c-format -msgid "%s: invalid file descriptor specification" -msgstr "%s: invalid file descriptor specification" - -#: builtins/read.def:241 -#, c-format -msgid "%d: invalid file descriptor: %s" -msgstr "%d: invalid file descriptor: %s" - -#: builtins/read.def:474 +#: builtins/read.def:574 #, c-format msgid "read error: %d: %s" msgstr "read error: %d: %s" -#: builtins/return.def:63 +#: builtins/return.def:73 msgid "can only `return' from a function or sourced script" msgstr "can only ‘return’ from a function or sourced script" -#: builtins/set.def:745 +#: builtins/set.def:768 msgid "cannot simultaneously unset a function and a variable" msgstr "cannot simultaneously unset a function and a variable" -#: builtins/set.def:782 +#: builtins/set.def:805 #, c-format msgid "%s: cannot unset" msgstr "%s: cannot unset" -#: builtins/set.def:789 +#: builtins/set.def:812 #, c-format msgid "%s: cannot unset: readonly %s" msgstr "%s: cannot unset: readonly %s" -#: builtins/set.def:800 +#: builtins/set.def:823 #, c-format msgid "%s: not an array variable" msgstr "%s: not an array variable" -#: builtins/setattr.def:166 +#: builtins/setattr.def:186 #, c-format msgid "%s: not a function" msgstr "%s: not a function" -#: builtins/shift.def:66 builtins/shift.def:72 +#: builtins/shift.def:71 builtins/shift.def:77 msgid "shift count" msgstr "shift count" -#: builtins/shopt.def:227 +#: builtins/shopt.def:254 msgid "cannot set and unset shell options simultaneously" msgstr "cannot set and unset shell options simultaneously" -#: builtins/shopt.def:292 +#: builtins/shopt.def:319 #, c-format msgid "%s: invalid shell option name" msgstr "%s: invalid shell option name" -#: builtins/source.def:117 +#: builtins/source.def:128 msgid "filename argument required" msgstr "filename argument required" -#: builtins/source.def:137 +#: builtins/source.def:153 #, c-format msgid "%s: file not found" msgstr "%s: file not found" -#: builtins/suspend.def:93 +#: builtins/suspend.def:101 msgid "cannot suspend" msgstr "cannot suspend" -#: builtins/suspend.def:103 +#: builtins/suspend.def:111 msgid "cannot suspend a login shell" msgstr "cannot suspend a login shell" -#: builtins/type.def:232 +#: builtins/type.def:234 #, c-format msgid "%s is aliased to `%s'\n" msgstr "%s is aliased to ‘%s’\n" -#: builtins/type.def:253 +#: builtins/type.def:255 #, c-format msgid "%s is a shell keyword\n" msgstr "%s is a shell keyword\n" -#: builtins/type.def:273 +#: builtins/type.def:274 #, c-format msgid "%s is a function\n" msgstr "%s is a function\n" -#: builtins/type.def:298 +#: builtins/type.def:296 #, c-format msgid "%s is a shell builtin\n" msgstr "%s is a shell builtin\n" -#: builtins/type.def:319 +#: builtins/type.def:317 builtins/type.def:391 #, c-format msgid "%s is %s\n" msgstr "%s is %s\n" -#: builtins/type.def:339 +#: builtins/type.def:337 #, c-format msgid "%s is hashed (%s)\n" msgstr "%s is hashed (%s)\n" -#: builtins/ulimit.def:344 +#: builtins/ulimit.def:372 #, c-format msgid "%s: invalid limit argument" msgstr "%s: invalid limit argument" -#: builtins/ulimit.def:370 +#: builtins/ulimit.def:398 #, c-format msgid "`%c': bad command" msgstr "‘%c’: bad command" -#: builtins/ulimit.def:399 +#: builtins/ulimit.def:427 #, c-format msgid "%s: cannot get limit: %s" msgstr "%s: cannot get limit: %s" -#: builtins/ulimit.def:437 +#: builtins/ulimit.def:453 +msgid "limit" +msgstr "limit" + +#: builtins/ulimit.def:465 builtins/ulimit.def:765 #, c-format msgid "%s: cannot modify limit: %s" msgstr "%s: cannot modify limit: %s" -#: builtins/umask.def:112 +#: builtins/umask.def:118 msgid "octal number" msgstr "octal number" -#: builtins/umask.def:226 +#: builtins/umask.def:231 #, c-format msgid "`%c': invalid symbolic mode operator" msgstr "‘%c’: invalid symbolic mode operator" -#: builtins/umask.def:281 +#: builtins/umask.def:286 #, c-format msgid "`%c': invalid symbolic mode character" msgstr "‘%c’: invalid symbolic mode character" -#: error.c:165 +#: error.c:89 error.c:320 error.c:322 error.c:324 +msgid " line " +msgstr " line " + +#: error.c:164 #, c-format msgid "last command: %s\n" msgstr "last command: %s\n" -#: error.c:173 +#: error.c:172 +#, c-format 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" @@ -799,160 +880,277 @@ msgstr "bad jump" msgid "%s: unbound variable" msgstr "%s: unbound variable" -#: eval.c:176 -msgid "timed out waiting for input: auto-logout\n" -msgstr "timed out waiting for input: auto-logout\n" +#: eval.c:181 +#, c-format +msgid "\atimed out waiting for input: auto-logout\n" +msgstr "\atimed out waiting for input: auto-logout\n" -#: execute_cmd.c:471 +#: execute_cmd.c:491 #, c-format msgid "cannot redirect standard input from /dev/null: %s" msgstr "cannot redirect standard input from /dev/null: %s" -#: execute_cmd.c:1036 +#: execute_cmd.c:1091 #, c-format msgid "TIMEFORMAT: `%c': invalid format character" msgstr "TIMEFORMAT: ‘%c’: invalid format character" -#: execute_cmd.c:3551 +#: execute_cmd.c:1942 +msgid "pipe error" +msgstr "pipe error" + +#: execute_cmd.c:4276 #, c-format msgid "%s: restricted: cannot specify `/' in command names" msgstr "%s: restricted: cannot specify ‘/’ in command names" -#: execute_cmd.c:3639 +#: execute_cmd.c:4367 #, c-format msgid "%s: command not found" msgstr "%s: command not found" -#: execute_cmd.c:3876 +#: execute_cmd.c:4621 #, c-format msgid "%s: %s: bad interpreter" msgstr "%s: %s: bad interpreter" -#: execute_cmd.c:3913 -#, c-format -msgid "%s: cannot execute binary file" -msgstr "%s: cannot execute binary file" - -#: execute_cmd.c:4025 +#: execute_cmd.c:4770 #, c-format msgid "cannot duplicate fd %d to fd %d" msgstr "cannot duplicate fd %d to fd %d" -#: expr.c:240 +#: expr.c:241 msgid "expression recursion level exceeded" msgstr "expression recursion level exceeded" -#: expr.c:264 +#: expr.c:265 msgid "recursion stack underflow" msgstr "recursion stack underflow" -#: expr.c:375 +#: expr.c:379 msgid "syntax error in expression" msgstr "syntax error in expression" -#: expr.c:415 +#: expr.c:419 msgid "attempted assignment to non-variable" msgstr "attempted assignment to non-variable" -#: expr.c:436 expr.c:441 expr.c:751 +#: expr.c:440 expr.c:445 expr.c:756 msgid "division by 0" msgstr "division by 0" -#: expr.c:467 +#: expr.c:471 msgid "bug: bad expassign token" msgstr "bug: bad expassign token" -#: expr.c:509 +#: expr.c:513 msgid "`:' expected for conditional expression" msgstr "‘:’ expected for conditional expression" -#: expr.c:776 +#: expr.c:781 msgid "exponent less than 0" msgstr "exponent less than 0" -#: expr.c:821 +#: expr.c:826 msgid "identifier expected after pre-increment or pre-decrement" msgstr "identifier expected after pre-increment or pre-decrement" -#: expr.c:849 +#: expr.c:854 msgid "missing `)'" msgstr "missing ‘)’" -#: expr.c:892 +#: expr.c:897 expr.c:1175 msgid "syntax error: operand expected" msgstr "syntax error: operand expected" -#: expr.c:1178 -msgid "invalid number" -msgstr "invalid number" +#: expr.c:1177 +msgid "syntax error: invalid arithmetic operator" +msgstr "syntax error: invalid arithmetic operator" -#: expr.c:1182 +#: expr.c:1201 +#, c-format +msgid "%s%s%s: %s (error token is \"%s\")" +msgstr "%s%s%s: %s (error token is “%s”)" + +#: expr.c:1259 msgid "invalid arithmetic base" msgstr "invalid arithmetic base" -#: expr.c:1202 +#: expr.c:1279 msgid "value too great for base" msgstr "value too great for base" -#: general.c:62 +#: expr.c:1328 +#, c-format +msgid "%s: expression error\n" +msgstr "%s: expression error\n" + +#: general.c:61 msgid "getcwd: cannot access parent directories" msgstr "getcwd: cannot access parent directories" -#: input.c:231 +#: input.c:94 subst.c:4559 +#, c-format +msgid "cannot reset nodelay mode for fd %d" +msgstr "cannot reset nodelay mode for fd %d" + +#: input.c:258 #, 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 +#: input.c:266 #, 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:923 +#: jobs.c:466 +msgid "start_pipeline: pgrp pipe" +msgstr "start_pipeline: pgrp pipe" + +#: jobs.c:882 +#, c-format +msgid "forked pid %d appears in running job %d" +msgstr "forked pid %d appears in running job %d" + +#: jobs.c:1000 #, c-format msgid "deleting stopped job %d with process group %ld" msgstr "deleting stopped job %d with process group %ld" -#: jobs.c:1308 +#: jobs.c:1105 +#, c-format +msgid "add_process: process %5ld (%s) in the_pipeline" +msgstr "add_process: process %5ld (%s) in the_pipeline" + +#: jobs.c:1108 +#, c-format +msgid "add_process: pid %5ld (%s) marked as still alive" +msgstr "add_process: pid %5ld (%s) marked as still alive" + +#: jobs.c:1396 #, c-format msgid "describe_pid: %ld: no such pid" msgstr "describe_pid: %ld: no such pid" -#: jobs.c:1981 nojobs.c:648 +#: jobs.c:1411 +#, c-format +msgid "Signal %d" +msgstr "Signal %d" + +#: jobs.c:1425 jobs.c:1450 +msgid "Done" +msgstr "Done" + +#: jobs.c:1430 siglist.c:122 +msgid "Stopped" +msgstr "Stopped" + +#: jobs.c:1434 +#, c-format +msgid "Stopped(%s)" +msgstr "Stopped(%s)" + +#: jobs.c:1438 +msgid "Running" +msgstr "Running" + +#: jobs.c:1452 +#, c-format +msgid "Done(%d)" +msgstr "Done(%d)" + +#: jobs.c:1454 +#, c-format +msgid "Exit %d" +msgstr "Exit %d" + +#: jobs.c:1457 +msgid "Unknown status" +msgstr "Unknown status" + +#: jobs.c:1544 +#, c-format +msgid "(core dumped) " +msgstr "(core dumped) " + +#: jobs.c:1563 +#, c-format +msgid " (wd: %s)" +msgstr " (wd: %s)" + +#: jobs.c:1766 +#, c-format +msgid "child setpgid (%ld to %ld)" +msgstr "child setpgid (%ld to %ld)" + +#: jobs.c:2094 nojobs.c:576 #, 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:2180 +#: jobs.c:2321 #, c-format msgid "wait_for: No record of process %ld" msgstr "wait_for: No record of process %ld" -#: jobs.c:2435 +#: jobs.c:2593 #, c-format msgid "wait_for_job: job %d is stopped" msgstr "wait_for_job: job %d is stopped" -#: jobs.c:2657 +#: jobs.c:2815 #, c-format msgid "%s: job has terminated" msgstr "%s: job has terminated" -#: jobs.c:2666 +#: jobs.c:2824 #, c-format msgid "%s: job %d already in background" msgstr "%s: job %d already in background" -#: jobs.c:3452 +#: jobs.c:3487 +#, c-format +msgid "%s: line %d: " +msgstr "%s: line %d: " + +#: jobs.c:3501 nojobs.c:805 +#, c-format +msgid " (core dumped)" +msgstr " (core dumped)" + +#: jobs.c:3513 jobs.c:3526 +#, c-format +msgid "(wd now: %s)\n" +msgstr "(wd now: %s)\n" + +#: jobs.c:3558 +msgid "initialize_job_control: getpgrp failed" +msgstr "initialize_job_control: getpgrp failed" + +#: jobs.c:3618 +msgid "initialize_job_control: line discipline" +msgstr "initialize_job_control: line discipline" + +#: jobs.c:3628 +msgid "initialize_job_control: setpgid" +msgstr "initialize_job_control: setpgid" + +#: jobs.c:3656 +#, c-format +msgid "cannot set terminal process group (%d)" +msgstr "cannot set terminal process group (%d)" + +#: jobs.c:3661 msgid "no job control in this shell" msgstr "no job control in this shell" -#: lib/malloc/malloc.c:298 +#: lib/malloc/malloc.c:296 #, c-format msgid "malloc: failed assertion: %s\n" msgstr "malloc: failed assertion: %s\n" -#: lib/malloc/malloc.c:314 +#: lib/malloc/malloc.c:312 #, c-format msgid "" "\r\n" @@ -961,109 +1159,89 @@ msgstr "" "\r\n" "malloc: %s:%d: assertion botched\r\n" -#: lib/malloc/malloc.c:740 +#: lib/malloc/malloc.c:313 +msgid "unknown" +msgstr "unknown" + +#: lib/malloc/malloc.c:797 msgid "malloc: block on free list clobbered" msgstr "malloc: block on free list clobbered" -#: lib/malloc/malloc.c:817 +#: lib/malloc/malloc.c:874 msgid "free: called with already freed block argument" msgstr "free: called with already freed block argument" -#: lib/malloc/malloc.c:820 +#: lib/malloc/malloc.c:877 msgid "free: called with unallocated block argument" msgstr "free: called with unallocated block argument" -#: lib/malloc/malloc.c:839 +#: lib/malloc/malloc.c:896 msgid "free: underflow detected; mh_nbytes out of range" msgstr "free: underflow detected; mh_nbytes out of range" -#: lib/malloc/malloc.c:845 +#: lib/malloc/malloc.c:902 msgid "free: start and end chunk sizes differ" msgstr "free: start and end chunk sizes differ" -#: lib/malloc/malloc.c:942 +#: lib/malloc/malloc.c:1001 msgid "realloc: called with unallocated block argument" msgstr "realloc: called with unallocated block argument" -#: lib/malloc/malloc.c:957 +#: lib/malloc/malloc.c:1016 msgid "realloc: underflow detected; mh_nbytes out of range" msgstr "realloc: underflow detected; mh_nbytes out of range" -#: lib/malloc/malloc.c:963 +#: lib/malloc/malloc.c:1022 msgid "realloc: start and end chunk sizes differ" msgstr "realloc: start and end chunk sizes differ" -#: lib/malloc/table.c:175 +#: lib/malloc/table.c:177 +#, c-format 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 +#: lib/malloc/table.c:184 #, 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 +#: lib/malloc/table.c:220 #, 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 +#: lib/sh/netopen.c:168 #, c-format msgid "%s: host unknown" msgstr "%s: host unknown" -#: lib/sh/netopen.c:165 +#: lib/sh/netopen.c:175 #, c-format msgid "%s: invalid service" msgstr "%s: invalid service" -#: lib/sh/netopen.c:296 +#: lib/sh/netopen.c:306 #, c-format msgid "%s: bad network path specification" msgstr "%s: bad network path specification" -#: lib/sh/netopen.c:336 +#: lib/sh/netopen.c:346 msgid "network operations not supported" msgstr "network operations not supported" -#: mailcheck.c:386 +#: mailcheck.c:433 msgid "You have mail in $_" msgstr "You have mail in $_" -#: mailcheck.c:411 +#: mailcheck.c:458 msgid "You have new mail in $_" msgstr "You have new mail in $_" -#: mailcheck.c:427 +#: mailcheck.c:474 #, c-format msgid "The mail in %s has been read\n" msgstr "The mail in %s has been read\n" @@ -1081,113 +1259,118 @@ msgstr "syntax error: ‘;’ unexpected" msgid "syntax error: `((%s))'" msgstr "syntax error: ‘((%s))’" -#: make_cmd.c:566 +#: make_cmd.c:567 #, c-format msgid "make_here_document: bad instruction type %d" msgstr "make_here_document: bad instruction type %d" -#: make_cmd.c:736 +#: make_cmd.c:651 +#, c-format +msgid "here-document at line %d delimited by end-of-file (wanted `%s')" +msgstr "here-document at line %d delimited by end-of-file (wanted ‘%s’)" + +#: make_cmd.c:746 #, c-format msgid "make_redirection: redirection instruction `%d' out of range" msgstr "make_redirection: redirection instruction ‘%d’ out of range" -#: parse.y:2747 +#: parse.y:2986 parse.y:3218 #, c-format msgid "unexpected EOF while looking for matching `%c'" msgstr "unexpected EOF while looking for matching ‘%c’" -#: parse.y:3043 +#: parse.y:3722 msgid "unexpected EOF while looking for `]]'" msgstr "unexpected EOF while looking for ‘]]’" -#: parse.y:3048 +#: parse.y:3727 #, c-format msgid "syntax error in conditional expression: unexpected token `%s'" msgstr "syntax error in conditional expression: unexpected token ‘%s’" -#: parse.y:3052 +#: parse.y:3731 msgid "syntax error in conditional expression" msgstr "syntax error in conditional expression" -#: parse.y:3130 +#: parse.y:3809 #, c-format msgid "unexpected token `%s', expected `)'" msgstr "unexpected token ‘%s’, expected ‘)’" -#: parse.y:3134 +#: parse.y:3813 msgid "expected `)'" msgstr "expected ‘)’" -#: parse.y:3162 +#: parse.y:3841 #, c-format msgid "unexpected argument `%s' to conditional unary operator" msgstr "unexpected argument ‘%s’ to conditional unary operator" -#: parse.y:3166 +#: parse.y:3845 msgid "unexpected argument to conditional unary operator" msgstr "unexpected argument to conditional unary operator" -#: parse.y:3203 +#: parse.y:3885 #, c-format msgid "unexpected token `%s', conditional binary operator expected" msgstr "unexpected token ‘%s’, conditional binary operator expected" -#: parse.y:3207 +#: parse.y:3889 msgid "conditional binary operator expected" msgstr "conditional binary operator expected" -#: parse.y:3223 +#: parse.y:3906 #, c-format msgid "unexpected argument `%s' to conditional binary operator" msgstr "unexpected argument ‘%s’ to conditional binary operator" -#: parse.y:3227 +#: parse.y:3910 msgid "unexpected argument to conditional binary operator" msgstr "unexpected argument to conditional binary operator" -#: parse.y:3238 +#: parse.y:3921 #, c-format msgid "unexpected token `%c' in conditional command" msgstr "unexpected token ‘%c’ in conditional command" -#: parse.y:3241 +#: parse.y:3924 #, c-format msgid "unexpected token `%s' in conditional command" msgstr "unexpected token ‘%s’ in conditional command" -#: parse.y:3245 +#: parse.y:3928 #, c-format msgid "unexpected token %d in conditional command" msgstr "unexpected token %d in conditional command" -#: parse.y:4461 +#: parse.y:5195 #, c-format msgid "syntax error near unexpected token `%s'" msgstr "syntax error near unexpected token ‘%s’" -#: parse.y:4479 +#: parse.y:5213 #, c-format msgid "syntax error near `%s'" msgstr "syntax error near ‘%s’" -#: parse.y:4489 +#: parse.y:5223 msgid "syntax error: unexpected end of file" msgstr "syntax error: unexpected end of file" -#: parse.y:4489 +#: parse.y:5223 msgid "syntax error" msgstr "syntax error" -#: parse.y:4551 +#: parse.y:5285 #, c-format msgid "Use \"%s\" to leave the shell.\n" msgstr "Use “%s” to leave the shell.\n" -#: parse.y:4710 +#: parse.y:5447 msgid "unexpected EOF while looking for matching `)'" msgstr "unexpected EOF while looking for matching ‘)’" -#: pcomplete.c:1001 +#: pcomplete.c:1016 #, c-format msgid "completion: function `%s' not found" msgstr "completion: function ‘%s’ not found" @@ -1197,66 +1380,71 @@ msgstr "completion: function ‘%s’ not found" msgid "progcomp_insert: %s: NULL COMPSPEC" msgstr "progcomp_insert: %s: NULL COMPSPEC" -#: print_cmd.c:264 +#: print_cmd.c:287 #, c-format msgid "print_command: bad connector `%d'" msgstr "print_command: bad connector ‘%d’" -#: print_cmd.c:1236 +#: print_cmd.c:1347 #, c-format msgid "cprintf: `%c': invalid format character" msgstr "cprintf: ‘%c’: invalid format character" -#: redir.c:99 +#: redir.c:105 msgid "file descriptor out of range" msgstr "file descriptor out of range" -#: redir.c:141 +#: redir.c:148 #, c-format msgid "%s: ambiguous redirect" msgstr "%s: ambiguous redirect" -#: redir.c:145 +#: redir.c:152 #, c-format msgid "%s: cannot overwrite existing file" msgstr "%s: cannot overwrite existing file" -#: redir.c:150 +#: redir.c:157 #, c-format msgid "%s: restricted: cannot redirect output" msgstr "%s: restricted: cannot redirect output" -#: redir.c:155 +#: redir.c:162 #, c-format -msgid "cannot create temp file for here document: %s" -msgstr "cannot create temp file for here document: %s" +msgid "cannot create temp file for here-document: %s" +msgstr "cannot create temp file for here-document: %s" -#: redir.c:509 +#: redir.c:517 msgid "/dev/(tcp|udp)/host/port not supported without networking" msgstr "/dev/(tcp|udp)/host/port not supported without networking" -#: redir.c:956 +#: redir.c:1023 msgid "redirection error: cannot duplicate fd" msgstr "redirection error: cannot duplicate fd" -#: shell.c:309 +#: shell.c:328 msgid "could not find /tmp, please create!" msgstr "could not find /tmp, please create!" -#: shell.c:313 +#: shell.c:332 msgid "/tmp must be a valid directory name" msgstr "/tmp must be a valid directory name" -#: shell.c:849 +#: shell.c:876 #, c-format msgid "%c%c: invalid option" msgstr "%c%c: invalid option" -#: shell.c:1598 +#: shell.c:1638 msgid "I have no name!" msgstr "I have no name!" -#: shell.c:1733 +#: shell.c:1778 +#, c-format +msgid "GNU bash, version %s-(%s)\n" +msgstr "GNU bash, version %s-(%s)\n" + +#: shell.c:1779 #, c-format msgid "" "Usage:\t%s [GNU long option] [option] ...\n" @@ -1265,287 +1453,848 @@ msgstr "" "Usage:\t%s [GNU long option] [option] ...\n" "\t%s [GNU long option] [option] script-file ...\n" -#: shell.c:1735 +#: shell.c:1781 msgid "GNU long options:\n" msgstr "GNU long options:\n" -#: shell.c:1739 +#: shell.c:1785 msgid "Shell options:\n" msgstr "Shell options:\n" -#: shell.c:1740 +#: shell.c:1786 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:1755 +#: shell.c:1801 #, c-format msgid "\t-%s or -o option\n" msgstr "\t-%s or -o option\n" -#: shell.c:1761 +#: shell.c:1807 #, 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:1762 +#: shell.c:1808 #, 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:1763 +#: shell.c:1809 +#, c-format msgid "Use the `bashbug' command to report bugs.\n" msgstr "Use the ‘bashbug’ command to report bugs.\n" -#: sig.c:494 +#: sig.c:583 #, c-format msgid "sigprocmask: %d: invalid operation" msgstr "sigprocmask: %d: invalid operation" -#: subst.c:1123 -#, c-format -msgid "bad substitution: no closing `%s' in %s" -msgstr "bad substitution: no closing ‘%s’ in %s" +#: siglist.c:47 +msgid "Bogus signal" +msgstr "Bogus signal" -#: subst.c:2269 -#, c-format -msgid "%s: cannot assign list to array member" -msgstr "%s: cannot assign list to array member" +#: siglist.c:50 +msgid "Hangup" +msgstr "Hangup" -#: subst.c:4208 subst.c:4224 -msgid "cannot make pipe for process substitution" -msgstr "cannot make pipe for process substitution" +#: siglist.c:54 +msgid "Interrupt" +msgstr "Interrupt" -#: subst.c:4255 -msgid "cannot make child for process substitution" -msgstr "cannot make child for process substitution" +#: siglist.c:58 +msgid "Quit" +msgstr "Quit" -#: subst.c:4300 -#, c-format -msgid "cannot open named pipe %s for reading" -msgstr "cannot open named pipe %s for reading" +#: siglist.c:62 +msgid "Illegal instruction" +msgstr "Illegal instruction" -#: subst.c:4302 -#, c-format -msgid "cannot open named pipe %s for writing" -msgstr "cannot open named pipe %s for writing" +#: siglist.c:66 +msgid "BPT trace/trap" +msgstr "BPT trace/trap" -#: subst.c:4310 +#: siglist.c:74 +msgid "ABORT instruction" +msgstr "ABORT instruction" + +#: siglist.c:78 +msgid "EMT instruction" +msgstr "EMT instruction" + +#: siglist.c:82 +msgid "Floating point exception" +msgstr "Floating point exception" + +#: siglist.c:86 +msgid "Killed" +msgstr "Killed" + +#: siglist.c:90 +msgid "Bus error" +msgstr "Bus error" + +#: siglist.c:94 +msgid "Segmentation fault" +msgstr "Segmentation fault" + +#: siglist.c:98 +msgid "Bad system call" +msgstr "Bad system call" + +#: siglist.c:102 +msgid "Broken pipe" +msgstr "Broken pipe" + +#: siglist.c:106 +msgid "Alarm clock" +msgstr "Alarm clock" + +#: siglist.c:110 +msgid "Terminated" +msgstr "Terminated" + +#: siglist.c:114 +msgid "Urgent IO condition" +msgstr "Urgent IO condition" + +#: siglist.c:118 +msgid "Stopped (signal)" +msgstr "Stopped (signal)" + +#: siglist.c:126 +msgid "Continue" +msgstr "Continue" + +#: siglist.c:134 +msgid "Child death or stop" +msgstr "Child death or stop" + +#: siglist.c:138 +msgid "Stopped (tty input)" +msgstr "Stopped (tty input)" + +#: siglist.c:142 +msgid "Stopped (tty output)" +msgstr "Stopped (tty output)" + +#: siglist.c:146 +msgid "I/O ready" +msgstr "I/O ready" + +#: siglist.c:150 +msgid "CPU limit" +msgstr "CPU limit" + +#: siglist.c:154 +msgid "File limit" +msgstr "File limit" + +#: siglist.c:158 +msgid "Alarm (virtual)" +msgstr "Alarm (virtual)" + +#: siglist.c:162 +msgid "Alarm (profile)" +msgstr "Alarm (profile)" + +#: siglist.c:166 +msgid "Window changed" +msgstr "Window changed" + +#: siglist.c:170 +msgid "Record lock" +msgstr "Record lock" + +#: siglist.c:174 +msgid "User signal 1" +msgstr "User signal 1" + +#: siglist.c:178 +msgid "User signal 2" +msgstr "User signal 2" + +#: siglist.c:182 +msgid "HFT input data pending" +msgstr "HFT input data pending" + +#: siglist.c:186 +msgid "power failure imminent" +msgstr "power failure imminent" + +#: siglist.c:190 +msgid "system crash imminent" +msgstr "system crash imminent" + +#: siglist.c:194 +msgid "migrate process to another CPU" +msgstr "migrate process to another CPU" + +#: siglist.c:198 +msgid "programming error" +msgstr "programming error" + +#: siglist.c:202 +msgid "HFT monitor mode granted" +msgstr "HFT monitor mode granted" + +#: siglist.c:206 +msgid "HFT monitor mode retracted" +msgstr "HFT monitor mode retracted" + +#: siglist.c:210 +msgid "HFT sound sequence has completed" +msgstr "HFT sound sequence has completed" + +#: siglist.c:214 +msgid "Information request" +msgstr "Information request" + +#: siglist.c:222 +msgid "Unknown Signal #" +msgstr "Unknown Signal #" + +#: siglist.c:224 +#, c-format +msgid "Unknown Signal #%d" +msgstr "Unknown Signal #%d" + +#: subst.c:1181 subst.c:1302 +#, c-format +msgid "bad substitution: no closing `%s' in %s" +msgstr "bad substitution: no closing ‘%s’ in %s" + +#: subst.c:2458 +#, c-format +msgid "%s: cannot assign list to array member" +msgstr "%s: cannot assign list to array member" + +#: subst.c:4456 subst.c:4472 +msgid "cannot make pipe for process substitution" +msgstr "cannot make pipe for process substitution" + +#: subst.c:4504 +msgid "cannot make child for process substitution" +msgstr "cannot make child for process substitution" + +#: subst.c:4549 +#, c-format +msgid "cannot open named pipe %s for reading" +msgstr "cannot open named pipe %s for reading" + +#: subst.c:4551 #, c-format -msgid "cannout reset nodelay mode for fd %d" -msgstr "cannout reset nodelay mode for fd %d" +msgid "cannot open named pipe %s for writing" +msgstr "cannot open named pipe %s for writing" -#: subst.c:4320 +#: subst.c:4569 #, c-format msgid "cannot duplicate named pipe %s as fd %d" msgstr "cannot duplicate named pipe %s as fd %d" -#: subst.c:4495 +#: subst.c:4765 msgid "cannot make pipe for command substitution" msgstr "cannot make pipe for command substitution" -#: subst.c:4531 +#: subst.c:4799 msgid "cannot make child for command substitution" msgstr "cannot make child for command substitution" -#: subst.c:4548 +#: subst.c:4816 msgid "command_substitute: cannot duplicate pipe as fd 1" msgstr "command_substitute: cannot duplicate pipe as fd 1" -#: subst.c:5013 +#: subst.c:5318 #, c-format msgid "%s: parameter null or not set" msgstr "%s: parameter null or not set" -#: subst.c:5287 +#: subst.c:5608 #, c-format msgid "%s: substring expression < 0" msgstr "%s: substring expression < 0" -#: subst.c:6058 +#: subst.c:6660 #, c-format msgid "%s: bad substitution" msgstr "%s: bad substitution" -#: subst.c:6134 +#: subst.c:6740 #, c-format msgid "$%s: cannot assign in this way" msgstr "$%s: cannot assign in this way" -#: subst.c:7687 +#: subst.c:7479 +#, c-format +msgid "bad substitution: no closing \"`\" in %s" +msgstr "bad substitution: no closing “`” in %s" + +#: subst.c:8354 #, c-format msgid "no match: %s" msgstr "no match: %s" -#: test.c:154 +#: test.c:145 msgid "argument expected" msgstr "argument expected" -#: test.c:163 +#: test.c:154 #, c-format msgid "%s: integer expression expected" msgstr "%s: integer expression expected" -#: test.c:361 +#: test.c:262 msgid "`)' expected" msgstr "‘)’ expected" -#: test.c:363 +#: test.c:264 #, c-format msgid "`)' expected, found %s" msgstr "‘)’ expected, found %s" -#: test.c:378 test.c:787 test.c:790 +#: test.c:279 test.c:688 test.c:691 #, c-format msgid "%s: unary operator expected" msgstr "%s: unary operator expected" -#: test.c:543 test.c:830 +#: test.c:444 test.c:731 #, c-format msgid "%s: binary operator expected" msgstr "%s: binary operator expected" -#: test.c:905 +#: test.c:806 msgid "missing `]'" msgstr "missing ‘]’" -#: trap.c:194 +#: trap.c:201 msgid "invalid signal number" msgstr "invalid signal number" -#: trap.c:309 +#: trap.c:324 #, 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 +#: trap.c:328 #, 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 +#: trap.c:372 #, c-format msgid "trap_handler: bad signal %d" msgstr "trap_handler: bad signal %d" -#: variables.c:320 +#: variables.c:358 #, c-format msgid "error importing function definition for `%s'" msgstr "error importing function definition for ‘%s’" -#: variables.c:692 +#: variables.c:736 #, c-format msgid "shell level (%d) too high, resetting to 1" msgstr "shell level (%d) too high, resetting to 1" -#: variables.c:1651 +#: variables.c:1898 msgid "make_local_variable: no function context at current scope" msgstr "make_local_variable: no function context at current scope" -#: variables.c:2807 +#: variables.c:3127 msgid "all_local_variables: no function context at current scope" msgstr "all_local_variables: no function context at current scope" -#: variables.c:3021 variables.c:3030 +#: variables.c:3344 variables.c:3353 #, c-format msgid "invalid character %d in exportstr for %s" msgstr "invalid character %d in exportstr for %s" -#: variables.c:3036 +#: variables.c:3359 #, c-format msgid "no `=' in exportstr for %s" msgstr "no ‘=’ in exportstr for %s" -#: variables.c:3463 +#: variables.c:3794 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:3476 +#: variables.c:3807 msgid "pop_var_context: no global_variables context" msgstr "pop_var_context: no global_variables context" -#: variables.c:3548 +#: variables.c:3881 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) 2005 Free Software Foundation, Inc.\n" -msgstr "Copyright (C) 2005 Free Software Foundation, Inc.\n" +#: version.c:46 +msgid "Copyright (C) 2009 Free Software Foundation, Inc." +msgstr "Copyright (C) 2009 Free Software Foundation, Inc." + +#: version.c:47 +msgid "" +"License GPLv3+: GNU GPL version 3 or later \n" +msgstr "" +"License GPLv3+: GNU GPL version 3 or later \n" + +#: version.c:86 +#, c-format +msgid "GNU bash, version %s (%s)\n" +msgstr "GNU bash, version %s (%s)\n" + +#: version.c:91 +#, c-format +msgid "This is free software; you are free to change and redistribute it.\n" +msgstr "This is free software; you are free to change and redistribute it.\n" + +#: version.c:92 +#, c-format +msgid "There is NO WARRANTY, to the extent permitted by law.\n" +msgstr "There is NO WARRANTY, to the extent permitted by law.\n" -#: xmalloc.c:93 +#: xmalloc.c:92 #, c-format msgid "xmalloc: cannot allocate %lu bytes (%lu bytes allocated)" msgstr "xmalloc: cannot allocate %lu bytes (%lu bytes allocated)" -#: xmalloc.c:95 +#: xmalloc.c:94 #, c-format msgid "xmalloc: cannot allocate %lu bytes" msgstr "xmalloc: cannot allocate %lu bytes" -#: xmalloc.c:115 +#: xmalloc.c:114 #, c-format msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)" msgstr "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)" -#: xmalloc.c:117 +#: xmalloc.c:116 #, c-format msgid "xrealloc: cannot allocate %lu bytes" msgstr "xrealloc: cannot allocate %lu bytes" -#: xmalloc.c:151 +#: xmalloc.c:150 #, 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 +#: xmalloc.c:152 #, c-format msgid "xmalloc: %s:%d: cannot allocate %lu bytes" msgstr "xmalloc: %s:%d: cannot allocate %lu bytes" -#: xmalloc.c:175 +#: xmalloc.c:174 #, 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 +#: xmalloc.c:176 #, c-format msgid "xrealloc: %s:%d: cannot allocate %lu bytes" msgstr "xrealloc: %s:%d: cannot allocate %lu bytes" -#: builtins.c:244 +#: builtins.c:43 +msgid "alias [-p] [name[=value] ... ]" +msgstr "alias [-p] [name[=value] ... ]" + +#: builtins.c:47 +msgid "unalias [-a] name [name ...]" +msgstr "unalias [-a] name [name ...]" + +#: builtins.c:51 +msgid "" +"bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-" +"x keyseq:shell-command] [keyseq:readline-function or readline-command]" +msgstr "" +"bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-" +"x keyseq:shell-command] [keyseq:readline-function or readline-command]" + +#: builtins.c:54 +msgid "break [n]" +msgstr "break [n]" + +#: builtins.c:56 +msgid "continue [n]" +msgstr "continue [n]" + +#: builtins.c:58 +msgid "builtin [shell-builtin [arg ...]]" +msgstr "builtin [shell-builtin [arg ...]]" + +#: builtins.c:61 +msgid "caller [expr]" +msgstr "caller [expr]" + +#: builtins.c:64 +msgid "cd [-L|-P] [dir]" +msgstr "cd [-L|-P] [dir]" + +#: builtins.c:66 +msgid "pwd [-LP]" +msgstr "pwd [-LP]" + +#: builtins.c:68 +msgid ":" +msgstr ":" + +#: builtins.c:70 +msgid "true" +msgstr "true" + +#: builtins.c:72 +msgid "false" +msgstr "false" + +#: builtins.c:74 +msgid "command [-pVv] command [arg ...]" +msgstr "command [-pVv] command [arg ...]" + +#: builtins.c:76 +msgid "declare [-aAfFilrtux] [-p] [name[=value] ...]" +msgstr "declare [-aAfFilrtux] [-p] [name[=value] ...]" + +#: builtins.c:78 +msgid "typeset [-aAfFilrtux] [-p] name[=value] ..." +msgstr "typeset [-aAfFilrtux] [-p] name[=value] ..." + +#: builtins.c:80 +msgid "local [option] name[=value] ..." +msgstr "local [option] name[=value] ..." + +#: builtins.c:83 +msgid "echo [-neE] [arg ...]" +msgstr "echo [-neE] [arg ...]" + +#: builtins.c:87 +msgid "echo [-n] [arg ...]" +msgstr "echo [-n] [arg ...]" + +#: builtins.c:90 +msgid "enable [-a] [-dnps] [-f filename] [name ...]" +msgstr "enable [-a] [-dnps] [-f filename] [name ...]" + +#: builtins.c:92 +msgid "eval [arg ...]" +msgstr "eval [arg ...]" + +#: builtins.c:94 +msgid "getopts optstring name [arg]" +msgstr "getopts optstring name [arg]" + +#: builtins.c:96 +msgid "exec [-cl] [-a name] [command [arguments ...]] [redirection ...]" +msgstr "exec [-cl] [-a name] [command [arguments ...]] [redirection ...]" + +#: builtins.c:98 +msgid "exit [n]" +msgstr "exit [n]" + +#: builtins.c:100 +msgid "logout [n]" +msgstr "logout [n]" + +#: builtins.c:103 +msgid "fc [-e ename] [-lnr] [first] [last] or fc -s [pat=rep] [command]" +msgstr "fc [-e ename] [-lnr] [first] [last] or fc -s [pat=rep] [command]" + +#: builtins.c:107 +msgid "fg [job_spec]" +msgstr "fg [job_spec]" + +#: builtins.c:111 +msgid "bg [job_spec ...]" +msgstr "bg [job_spec ...]" + +#: builtins.c:114 +msgid "hash [-lr] [-p pathname] [-dt] [name ...]" +msgstr "hash [-lr] [-p pathname] [-dt] [name ...]" + +#: builtins.c:117 +msgid "help [-ds] [pattern ...]" +msgstr "help [-ds] [pattern ...]" + +#: builtins.c:121 +msgid "" +"history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg " +"[arg...]" +msgstr "" +"history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg " +"[arg...]" + +#: builtins.c:125 +msgid "jobs [-lnprs] [jobspec ...] or jobs -x command [args]" +msgstr "jobs [-lnprs] [jobspec ...] or jobs -x command [args]" + +#: builtins.c:129 +msgid "disown [-h] [-ar] [jobspec ...]" +msgstr "disown [-h] [-ar] [jobspec ...]" + +#: builtins.c:132 +msgid "" +"kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l " +"[sigspec]" +msgstr "" +"kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l " +"[sigspec]" + +#: builtins.c:134 +msgid "let arg [arg ...]" +msgstr "let arg [arg ...]" + +#: builtins.c:136 +msgid "" +"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-p prompt] [-t " +"timeout] [-u fd] [name ...]" +msgstr "" +"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-p prompt] [-t " +"timeout] [-u fd] [name ...]" + +#: builtins.c:138 +msgid "return [n]" +msgstr "return [n]" + +#: builtins.c:140 +msgid "set [--abefhkmnptuvxBCHP] [-o option-name] [arg ...]" +msgstr "set [--abefhkmnptuvxBCHP] [-o option-name] [arg ...]" + +#: builtins.c:142 +msgid "unset [-f] [-v] [name ...]" +msgstr "unset [-f] [-v] [name ...]" + +#: builtins.c:144 +msgid "export [-fn] [name[=value] ...] or export -p" +msgstr "export [-fn] [name[=value] ...] or export -p" + +#: builtins.c:146 +msgid "readonly [-af] [name[=value] ...] or readonly -p" +msgstr "readonly [-af] [name[=value] ...] or readonly -p" + +#: builtins.c:148 +msgid "shift [n]" +msgstr "shift [n]" + +#: builtins.c:150 +msgid "source filename [arguments]" +msgstr "source filename [arguments]" + +#: builtins.c:152 +msgid ". filename [arguments]" +msgstr ". filename [arguments]" + +#: builtins.c:155 +msgid "suspend [-f]" +msgstr "suspend [-f]" + +#: builtins.c:158 +msgid "test [expr]" +msgstr "test [expr]" + +#: builtins.c:160 +msgid "[ arg... ]" +msgstr "[ arg... ]" + +#: builtins.c:162 +msgid "times" +msgstr "times" + +#: builtins.c:164 +msgid "trap [-lp] [[arg] signal_spec ...]" +msgstr "trap [-lp] [[arg] signal_spec ...]" + +#: builtins.c:166 +msgid "type [-afptP] name [name ...]" +msgstr "type [-afptP] name [name ...]" + +#: builtins.c:169 +msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]" +msgstr "ulimit [-SHacdefilmnpqrstuvx] [limit]" + +#: builtins.c:172 +msgid "umask [-p] [-S] [mode]" +msgstr "umask [-p] [-S] [mode]" + +#: builtins.c:175 +msgid "wait [id]" +msgstr "wait [id]" + +#: builtins.c:179 +msgid "wait [pid]" +msgstr "wait [pid]" + +#: builtins.c:182 +msgid "for NAME [in WORDS ... ] ; do COMMANDS; done" +msgstr "for NAME [in WORDS ... ] ; do COMMANDS; done" + +#: builtins.c:184 +msgid "for (( exp1; exp2; exp3 )); do COMMANDS; done" +msgstr "for (( exp1; exp2; exp3 )); do COMMANDS; done" + +#: builtins.c:186 +msgid "select NAME [in WORDS ... ;] do COMMANDS; done" +msgstr "select NAME [in WORDS ... ;] do COMMANDS; done" + +#: builtins.c:188 +msgid "time [-p] pipeline" +msgstr "time [-p] pipeline" + +#: builtins.c:190 +msgid "case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac" +msgstr "case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac" + +#: builtins.c:192 +msgid "" +"if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else " +"COMMANDS; ] fi" +msgstr "" +"if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else " +"COMMANDS; ] fi" + +#: builtins.c:194 +msgid "while COMMANDS; do COMMANDS; done" +msgstr "while COMMANDS; do COMMANDS; done" + +#: builtins.c:196 +msgid "until COMMANDS; do COMMANDS; done" +msgstr "until COMMANDS; do COMMANDS; done" + +#: builtins.c:198 +msgid "function name { COMMANDS ; } or name () { COMMANDS ; }" +msgstr "function name { COMMANDS ; } or name () { COMMANDS ; }" + +#: builtins.c:200 +msgid "{ COMMANDS ; }" +msgstr "{ COMMANDS ; }" + +#: builtins.c:202 +msgid "job_spec [&]" +msgstr "job_spec [&]" + +#: builtins.c:204 +msgid "(( expression ))" +msgstr "(( expression ))" + +#: builtins.c:206 +msgid "[[ expression ]]" +msgstr "[[ expression ]]" + +#: builtins.c:208 +msgid "variables - Names and meanings of some shell variables" +msgstr "variables - Names and meanings of some shell variables" + +#: builtins.c:211 +msgid "pushd [-n] [+N | -N | dir]" +msgstr "pushd [-n] [+N | -N | dir]" + +#: builtins.c:215 +msgid "popd [-n] [+N | -N]" +msgstr "popd [-n] [+N | -N]" + +#: builtins.c:219 +msgid "dirs [-clpv] [+N] [-N]" +msgstr "dirs [-clpv] [+N] [-N]" + +#: builtins.c:222 +msgid "shopt [-pqsu] [-o] [optname ...]" +msgstr "shopt [-pqsu] [-o] [optname ...]" + +#: builtins.c:224 +msgid "printf [-v var] format [arguments]" +msgstr "printf [-v var] format [arguments]" + +#: builtins.c:227 +msgid "" +"complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W " +"wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] " +"[name ...]" +msgstr "" +"complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W " +"wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] " +"[name ...]" + +#: builtins.c:231 +msgid "" +"compgen [-abcdefgjksuv] [-o option] [-A action] [-G globpat] [-W wordlist] " +"[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]" +msgstr "" +"compgen [-abcdefgjksuv] [-o option] [-A action] [-G globpat] [-W wordlist] " +"[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]" + +#: builtins.c:235 +msgid "compopt [-o|+o option] [name ...]" +msgstr "compopt [-o|+o option] [name ...]" + +#: builtins.c:238 +msgid "" +"mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c " +"quantum] [array]" +msgstr "" +"mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c " +"quantum] [array]" + +#: builtins.c:250 msgid "" -" `alias' with no arguments or with the -p option prints the list\n" -" of aliases in the form alias NAME=VALUE on standard output.\n" +"Define or display aliases.\n" +" \n" +" Without arguments, `alias' prints the list of aliases in the reusable\n" +" form `alias NAME=VALUE' on standard output.\n" +" \n" " Otherwise, an alias is defined for each NAME whose VALUE is given.\n" " A trailing space in VALUE causes the next word to be checked for\n" -" alias substitution when the alias is expanded. Alias returns\n" -" true unless a NAME is given for which no alias has been defined." +" alias substitution when the alias is expanded.\n" +" \n" +" Options:\n" +" -p\tPrint all defined aliases in a reusable format\n" +" \n" +" Exit Status:\n" +" alias returns true unless a NAME is supplied for which no alias has " +"been\n" +" defined." msgstr "" -" ‘alias’ with no arguments or with the -p option prints the list\n" -" of aliases in the form alias NAME=VALUE on standard output.\n" +"Define or display aliases.\n" +" \n" +" Without arguments, ‘alias’ prints the list of aliases in the reusable\n" +" form ‘alias NAME=VALUE’ on standard output.\n" +" \n" " Otherwise, an alias is defined for each NAME whose VALUE is given.\n" " A trailing space in VALUE causes the next word to be checked for\n" -" alias substitution when the alias is expanded. Alias returns\n" -" true unless a NAME is given for which no alias has been defined." +" alias substitution when the alias is expanded.\n" +" \n" +" Options:\n" +" -p\tPrint all defined aliases in a reusable format\n" +" \n" +" Exit Status:\n" +" alias returns true unless a NAME is supplied for which no alias has " +"been\n" +" defined." -#: builtins.c:257 +#: builtins.c:272 msgid "" -" Remove NAMEs from the list of defined aliases. If the -a option is given,\n" -" then remove all alias definitions." +"Remove each NAME from the list of defined aliases.\n" +" \n" +" Options:\n" +" -a\tremove all alias definitions.\n" +" \n" +" Return success unless a NAME is not an existing alias." msgstr "" -" Remove NAMEs from the list of defined aliases. If the -a option is given,\n" -" then remove all alias definitions." +"Remove each NAME from the list of defined aliases.\n" +" \n" +" Options:\n" +" -a\tremove all alias definitions.\n" +" \n" +" Return success unless a NAME is not an existing alias." -#: builtins.c:266 +#: builtins.c:285 msgid "" -" Bind a key sequence to a Readline function or a macro, or set\n" -" a Readline variable. The non-option argument syntax is equivalent\n" -" to that found in ~/.inputrc, but must be passed as a single argument:\n" -" bind '\"\\C-x\\C-r\": re-read-init-file'.\n" -" bind accepts the following options:\n" -" -m keymap Use `keymap' as the keymap for the duration of " -"this\n" +"Set Readline key bindings and variables.\n" +" \n" +" Bind a key sequence to a Readline function or a macro, or set a\n" +" Readline variable. The non-option argument syntax is equivalent to\n" +" that found in ~/.inputrc, but must be passed as a single argument:\n" +" e.g., bind '\"\\C-x\\C-r\": re-read-init-file'.\n" +" \n" +" Options:\n" +" -m keymap Use KEYMAP as the keymap for the duration of this\n" " command. Acceptable keymap names are emacs,\n" " emacs-standard, emacs-meta, emacs-ctlx, vi, vi-" "move,\n" @@ -1554,29 +2303,34 @@ msgid "" " -P List function names and bindings.\n" " -p List functions and bindings in a form that can be\n" " reused as input.\n" -" -r keyseq Remove the binding for KEYSEQ.\n" -" -x keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n" -" \t\t\t\tKEYSEQ is entered.\n" -" -f filename Read key bindings from FILENAME.\n" -" -q function-name Query about which keys invoke the named function.\n" -" -u function-name Unbind all keys which are bound to the named " -"function.\n" -" -V List variable names and values\n" -" -v List variable names and values in a form that can\n" -" be reused as input.\n" " -S List key sequences that invoke macros and their " "values\n" " -s List key sequences that invoke macros and their " "values\n" -" in a form that can be reused as input." -msgstr "" -" Bind a key sequence to a Readline function or a macro, or set\n" -" a Readline variable. The non-option argument syntax is equivalent\n" -" to that found in ~/.inputrc, but must be passed as a single argument:\n" -" bind '“\\C-x\\C-r”: re-read-init-file'.\n" -" bind accepts the following options:\n" -" -m keymap Use ‘keymap’ as the keymap for the duration of " -"this\n" +" in a form that can be reused as input.\n" +" -V List variable names and values\n" +" -v List variable names and values in a form that can\n" +" be reused as input.\n" +" -q function-name Query about which keys invoke the named function.\n" +" -u function-name Unbind all keys which are bound to the named " +"function.\n" +" -r keyseq Remove the binding for KEYSEQ.\n" +" -f filename Read key bindings from FILENAME.\n" +" -x keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n" +" \t\t\t\tKEYSEQ is entered.\n" +" \n" +" Exit Status:\n" +" bind returns 0 unless an unrecognized option is given or an error occurs." +msgstr "" +"Set Readline key bindings and variables.\n" +" \n" +" Bind a key sequence to a Readline function or a macro, or set a\n" +" Readline variable. The non-option argument syntax is equivalent to\n" +" that found in ~/.inputrc, but must be passed as a single argument:\n" +" e.g., bind '“\\C-x\\C-r”: re-read-init-file'.\n" +" \n" +" Options:\n" +" -m keymap Use KEYMAP as the keymap for the duration of this\n" " command. Acceptable keymap names are emacs,\n" " emacs-standard, emacs-meta, emacs-ctlx, vi, vi-" "move,\n" @@ -1585,287 +2339,537 @@ msgstr "" " -P List function names and bindings.\n" " -p List functions and bindings in a form that can be\n" " reused as input.\n" -" -r keyseq Remove the binding for KEYSEQ.\n" -" -x keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n" -" \t\t\t\tKEYSEQ is entered.\n" -" -f filename Read key bindings from FILENAME.\n" -" -q function-name Query about which keys invoke the named function.\n" -" -u function-name Unbind all keys which are bound to the named " -"function.\n" -" -V List variable names and values\n" -" -v List variable names and values in a form that can\n" -" be reused as input.\n" " -S List key sequences that invoke macros and their " "values\n" " -s List key sequences that invoke macros and their " "values\n" -" in a form that can be reused as input." +" in a form that can be reused as input.\n" +" -V List variable names and values\n" +" -v List variable names and values in a form that can\n" +" be reused as input.\n" +" -q function-name Query about which keys invoke the named function.\n" +" -u function-name Unbind all keys which are bound to the named " +"function.\n" +" -r keyseq Remove the binding for KEYSEQ.\n" +" -f filename Read key bindings from FILENAME.\n" +" -x keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n" +" \t\t\t\tKEYSEQ is entered.\n" +" \n" +" Exit Status:\n" +" bind returns 0 unless an unrecognized option is given or an error occurs." -#: builtins.c:297 +#: builtins.c:322 msgid "" -" Exit from within a FOR, WHILE or UNTIL loop. If N is specified,\n" -" break N levels." +"Exit for, while, or until loops.\n" +" \n" +" Exit a FOR, WHILE or UNTIL loop. If N is specified, break N enclosing\n" +" loops.\n" +" \n" +" Exit Status:\n" +" The exit status is 0 unless N is not greater than or equal to 1." msgstr "" -" Exit from within a FOR, WHILE or UNTIL loop. If N is specified,\n" -" break N levels." +"Exit for, while, or until loops.\n" +" \n" +" Exit a FOR, WHILE or UNTIL loop. If N is specified, break N enclosing\n" +" loops.\n" +" \n" +" Exit Status:\n" +" The exit status is 0 unless N is not greater than or equal to 1." -#: builtins.c:304 +#: builtins.c:334 msgid "" -" Resume the next iteration of the enclosing FOR, WHILE or UNTIL loop.\n" -" If N is specified, resume at the N-th enclosing loop." +"Resume for, while, or until loops.\n" +" \n" +" Resumes the next iteration of the enclosing FOR, WHILE or UNTIL loop.\n" +" If N is specified, resumes the Nth enclosing loop.\n" +" \n" +" Exit Status:\n" +" The exit status is 0 unless N is not greater than or equal to 1." msgstr "" -" Resume the next iteration of the enclosing FOR, WHILE or UNTIL loop.\n" -" If N is specified, resume at the N-th enclosing loop." +"Resume for, while, or until loops.\n" +" \n" +" Resumes the next iteration of the enclosing FOR, WHILE or UNTIL loop.\n" +" If N is specified, resumes the Nth enclosing loop.\n" +" \n" +" Exit Status:\n" +" The exit status is 0 unless N is not greater than or equal to 1." -#: builtins.c:311 +#: builtins.c:346 msgid "" -" Run a shell builtin. This is useful when you wish to rename a\n" -" shell builtin to be a function, but need the functionality of the\n" -" builtin within the function itself." +"Execute shell builtins.\n" +" \n" +" Execute SHELL-BUILTIN with arguments ARGs without performing command\n" +" lookup. This is useful when you wish to reimplement a shell builtin\n" +" as a shell function, but need to execute the builtin within the " +"function.\n" +" \n" +" Exit Status:\n" +" Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is\n" +" not a shell builtin.." msgstr "" -" Run a shell builtin. This is useful when you wish to rename a\n" -" shell builtin to be a function, but need the functionality of the\n" -" builtin within the function itself." +"Execute shell builtins.\n" +" \n" +" Execute SHELL-BUILTIN with arguments ARGs without performing command\n" +" lookup. This is useful when you wish to reimplement a shell builtin\n" +" as a shell function, but need to execute the builtin within the " +"function.\n" +" \n" +" Exit Status:\n" +" Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is\n" +" not a shell builtin.." -#: builtins.c:320 +#: builtins.c:361 msgid "" -" Returns the context of the current subroutine call.\n" +"Return the context of the current subroutine call.\n" " \n" -" Without EXPR, returns returns \"$line $filename\". With EXPR,\n" -" returns \"$line $subroutine $filename\"; this extra information\n" -" can be used used to provide a stack trace.\n" +" Without EXPR, returns \"$line $filename\". With EXPR, returns\n" +" \"$line $subroutine $filename\"; this extra information can be used to\n" +" provide a stack trace.\n" " \n" " The value of EXPR indicates how many call frames to go back before the\n" -" current one; the top frame is frame 0." +" current one; the top frame is frame 0.\n" +" \n" +" Exit Status:\n" +" Returns 0 unless the shell is not executing a shell function or EXPR\n" +" is invalid." msgstr "" -" Returns the context of the current subroutine call.\n" +"Return the context of the current subroutine call.\n" " \n" -" Without EXPR, returns returns “$line $filename”. With EXPR,\n" -" returns “$line $subroutine $filename”; this extra information\n" -" can be used used to provide a stack trace.\n" +" Without EXPR, returns “$line $filename”. With EXPR, returns\n" +" “$line $subroutine $filename”; this extra information can be used to\n" +" provide a stack trace.\n" " \n" " The value of EXPR indicates how many call frames to go back before the\n" -" current one; the top frame is frame 0." +" current one; the top frame is frame 0.\n" +" \n" +" Exit Status:\n" +" Returns 0 unless the shell is not executing a shell function or EXPR\n" +" is invalid." -#: builtins.c:334 +#: builtins.c:379 msgid "" -" Change the current directory to DIR. The variable $HOME is the\n" -" default DIR. The variable CDPATH defines the search path for\n" -" the directory containing DIR. Alternative directory names in CDPATH\n" -" are separated by a colon (:). A null directory name is the same as\n" -" the current directory, i.e. `.'. If DIR begins with a slash (/),\n" -" then CDPATH is not used. If the directory is not found, and the\n" -" shell option `cdable_vars' is set, then try the word as a variable\n" -" name. If that variable has a value, then cd to the value of that\n" -" variable. The -P option says to use the physical directory structure\n" -" instead of following symbolic links; the -L option forces symbolic " -"links\n" -" to be followed." -msgstr "" -" Change the current directory to DIR. The variable $HOME is the\n" -" default DIR. The variable CDPATH defines the search path for\n" -" the directory containing DIR. Alternative directory names in CDPATH\n" -" are separated by a colon (:). A null directory name is the same as\n" -" the current directory, i.e. ‘.’. If DIR begins with a slash (/),\n" -" then CDPATH is not used. If the directory is not found, and the\n" -" shell option ‘cdable_vars’ is set, then try the word as a variable\n" -" name. If that variable has a value, then cd to the value of that\n" -" variable. The -P option says to use the physical directory structure\n" -" instead of following symbolic links; the -L option forces symbolic " -"links\n" -" to be followed." - -#: builtins.c:350 -msgid "" -" Print the current working directory. With the -P option, pwd prints\n" -" the physical directory, without any symbolic links; the -L option\n" -" makes pwd follow symbolic links." -msgstr "" -" Print the current working directory. With the -P option, pwd prints\n" -" the physical directory, without any symbolic links; the -L option\n" -" 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\n" -" function called `ls', and you wish to call the command `ls', you can\n" -" say \"command ls\". If the -p option is given, a default value is used\n" -" for PATH that is guaranteed to find all of the standard utilities. If\n" -" the -V or -v option is given, a string is printed describing COMMAND.\n" -" The -V option produces a more verbose description." -msgstr "" -" Runs COMMAND with ARGS ignoring shell functions. If you have a shell\n" -" function called ‘ls’, and you wish to call the command ‘ls’, you can\n" -" say “command ls”. If the -p option is given, a default value is used\n" -" for PATH that is guaranteed to find all of the standard utilities. If\n" -" the -V or -v option is given, a string is printed describing COMMAND.\n" -" The -V option produces a more verbose description." - -#: builtins.c:387 -msgid "" -" Declare variables and/or give them attributes. If no NAMEs are\n" -" given, then display the values of variables instead. The -p option\n" -" will display the attributes and values of each NAME.\n" -" \n" -" The flags are:\n" -" \n" -" -a\tto make NAMEs arrays (if supported)\n" -" -f\tto select from among function names only\n" -" -F\tto display function names (and line number and source file name " -"if\n" -" \tdebugging) without definitions\n" -" -i\tto make NAMEs have the `integer' attribute\n" -" -r\tto make NAMEs readonly\n" -" -t\tto make NAMEs have the `trace' attribute\n" -" -x\tto make NAMEs export\n" +"Change the shell working directory.\n" " \n" -" Variables with the integer attribute have arithmetic evaluation (see\n" -" `let') done when the variable is assigned to.\n" +" Change the current directory to DIR. The default DIR is the value of " +"the\n" +" HOME shell variable.\n" +" \n" +" The variable CDPATH defines the search path for the directory " +"containing\n" +" DIR. Alternative directory names in CDPATH are separated by a colon " +"(:).\n" +" A null directory name is the same as the current directory. If DIR " +"begins\n" +" with a slash (/), then CDPATH is not used.\n" +" \n" +" If the directory is not found, and the shell option `cdable_vars' is " +"set,\n" +" the word is assumed to be a variable name. If that variable has a " +"value,\n" +" its value is used for DIR.\n" " \n" -" When displaying values of variables, -f displays a function's name\n" -" and definition. The -F option restricts the display to function\n" -" name only.\n" +" Options:\n" +" -L\tforce symbolic links to be followed\n" +" -P\tuse the physical directory structure without following symbolic\n" +" \tlinks\n" " \n" -" Using `+' instead of `-' turns off the given attribute instead. When\n" -" used in a function, makes NAMEs local, as with the `local' command." +" The default is to follow symbolic links, as if `-L' were specified.\n" +" \n" +" Exit Status:\n" +" Returns 0 if the directory is changed; non-zero otherwise." msgstr "" -" Declare variables and/or give them attributes. If no NAMEs are\n" -" given, then display the values of variables instead. The -p option\n" -" will display the attributes and values of each NAME.\n" +"Change the shell working directory.\n" " \n" -" The flags are:\n" +" Change the current directory to DIR. The default DIR is the value of " +"the\n" +" HOME shell variable.\n" " \n" -" -a\tto make NAMEs arrays (if supported)\n" -" -f\tto select from among function names only\n" -" -F\tto display function names (and line number and source file name " -"if\n" -" \tdebugging) without definitions\n" -" -i\tto make NAMEs have the ‘integer’ attribute\n" -" -r\tto make NAMEs readonly\n" -" -t\tto make NAMEs have the ‘trace’ attribute\n" -" -x\tto make NAMEs export\n" +" The variable CDPATH defines the search path for the directory " +"containing\n" +" DIR. Alternative directory names in CDPATH are separated by a colon " +"(:).\n" +" A null directory name is the same as the current directory. If DIR " +"begins\n" +" with a slash (/), then CDPATH is not used.\n" " \n" -" Variables with the integer attribute have arithmetic evaluation (see\n" -" ‘let’) done when the variable is assigned to.\n" -" \n" -" When displaying values of variables, -f displays a function's name\n" -" and definition. The -F option restricts the display to function\n" -" name only.\n" -" \n" -" Using ‘+’ instead of ‘-’ turns off the given attribute instead. When\n" -" 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\n" -" can only be used within a function; it makes the variable NAME\n" -" have a visible scope restricted to that function and its children." -msgstr "" -" Create a local variable called NAME, and give it VALUE. LOCAL\n" -" can only be used within a function; it makes the variable NAME\n" -" 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\n" -" suppressed. If the -e option is given, interpretation of the\n" -" following backslash-escaped characters is turned on:\n" -" \t\\a\talert (bell)\n" -" \t\\b\tbackspace\n" -" \t\\c\tsuppress trailing newline\n" -" \t\\E\tescape character\n" -" \t\\f\tform feed\n" -" \t\\n\tnew line\n" -" \t\\r\tcarriage return\n" -" \t\\t\thorizontal tab\n" -" \t\\v\tvertical tab\n" -" \t\\\\\tbackslash\n" -" \t\\num\tthe character whose ASCII code is NUM (octal).\n" -" \n" -" You can explicitly turn off the interpretation of the above characters\n" -" with the -E option." -msgstr "" -" Output the ARGs. If -n is specified, the trailing newline is\n" -" suppressed. If the -e option is given, interpretation of the\n" -" following backslash-escaped characters is turned on:\n" -" \t\\a\talert (bell)\n" -" \t\\b\tbackspace\n" -" \t\\c\tsuppress trailing newline\n" -" \t\\E\tescape character\n" -" \t\\f\tform feed\n" -" \t\\n\tnew line\n" -" \t\\r\tcarriage return\n" -" \t\\t\thorizontal tab\n" -" \t\\v\tvertical tab\n" -" \t\\\\\tbackslash\n" -" \t\\num\tthe character whose ASCII code is NUM (octal).\n" -" \n" -" You can explicitly turn off the interpretation of the above characters\n" -" 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\n" -" you to use a disk command which has the same name as a shell\n" -" builtin without specifying a full pathname. If -n is used, the\n" -" NAMEs become disabled; otherwise NAMEs are enabled. For example,\n" -" to use the `test' found in $PATH instead of the shell builtin\n" -" version, type `enable -n test'. On systems supporting dynamic\n" -" loading, the -f option may be used to load new builtins from the\n" -" shared object FILENAME. The -d option will delete a builtin\n" -" previously loaded with -f. If no non-option names are given, or\n" -" the -p option is supplied, a list of builtins is printed. The\n" -" -a option means to print every builtin with an indication of whether\n" -" or not it is enabled. The -s option restricts the output to the " -"POSIX.2\n" -" `special' builtins. The -n option displays a list of all disabled " -"builtins." -msgstr "" -" Enable and disable builtin shell commands. This allows\n" -" you to use a disk command which has the same name as a shell\n" -" builtin without specifying a full pathname. If -n is used, the\n" -" NAMEs become disabled; otherwise NAMEs are enabled. For example,\n" -" to use the ‘test’ found in $PATH instead of the shell builtin\n" -" version, type ‘enable -n test’. On systems supporting dynamic\n" -" loading, the -f option may be used to load new builtins from the\n" -" shared object FILENAME. The -d option will delete a builtin\n" -" previously loaded with -f. If no non-option names are given, or\n" -" the -p option is supplied, a list of builtins is printed. The\n" -" -a option means to print every builtin with an indication of whether\n" -" or not it is enabled. The -s option restricts the output to the " -"POSIX.2\n" -" ‘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.\n" +" If the directory is not found, and the shell option ‘cdable_vars’ is " +"set,\n" +" the word is assumed to be a variable name. If that variable has a " +"value,\n" +" its value is used for DIR.\n" +" \n" +" Options:\n" +" -L\tforce symbolic links to be followed\n" +" -P\tuse the physical directory structure without following symbolic\n" +" \tlinks\n" +" \n" +" The default is to follow symbolic links, as if ‘-L’ were specified.\n" +" \n" +" Exit Status:\n" +" Returns 0 if the directory is changed; non-zero otherwise." + +#: builtins.c:407 +msgid "" +"Print the name of the current working directory.\n" +" \n" +" Options:\n" +" -L\tprint the value of $PWD if it names the current working\n" +" \tdirectory\n" +" -P\tprint the physical directory, without any symbolic links\n" +" \n" +" By default, `pwd' behaves as if `-L' were specified.\n" +" \n" +" Exit Status:\n" +" Returns 0 unless an invalid option is given or the current directory\n" +" cannot be read." +msgstr "" +"Print the name of the current working directory.\n" +" \n" +" Options:\n" +" -L\tprint the value of $PWD if it names the current working\n" +" \tdirectory\n" +" -P\tprint the physical directory, without any symbolic links\n" +" \n" +" By default, ‘pwd’ behaves as if ‘-L’ were specified.\n" +" \n" +" Exit Status:\n" +" Returns 0 unless an invalid option is given or the current directory\n" +" cannot be read." + +#: builtins.c:424 +msgid "" +"Null command.\n" +" \n" +" No effect; the command does nothing.\n" +" \n" +" Exit Status:\n" +" Always succeeds." +msgstr "" +"Null command.\n" +" \n" +" No effect; the command does nothing.\n" +" \n" +" Exit Status:\n" +" Always succeeds." + +#: builtins.c:435 +msgid "" +"Return a successful result.\n" +" \n" +" Exit Status:\n" +" Always succeeds." +msgstr "" +"Return a successful result.\n" +" \n" +" Exit Status:\n" +" Always succeeds." + +#: builtins.c:444 +msgid "" +"Return an unsuccessful result.\n" +" \n" +" Exit Status:\n" +" Always fails." +msgstr "" +"Return an unsuccessful result.\n" +" \n" +" Exit Status:\n" +" Always fails." + +#: builtins.c:453 +msgid "" +"Execute a simple command or display information about commands.\n" +" \n" +" Runs COMMAND with ARGS suppressing shell function lookup, or display\n" +" information about the specified COMMANDs. Can be used to invoke " +"commands\n" +" on disk when a function with the same name exists.\n" +" \n" +" Options:\n" +" -p\tuse a default value for PATH that is guaranteed to find all of\n" +" \tthe standard utilities\n" +" -v\tprint a description of COMMAND similar to the `type' builtin\n" +" -V\tprint a more verbose description of each COMMAND\n" +" \n" +" Exit Status:\n" +" Returns exit status of COMMAND, or failure if COMMAND is not found." +msgstr "" +"Execute a simple command or display information about commands.\n" +" \n" +" Runs COMMAND with ARGS suppressing shell function lookup, or display\n" +" information about the specified COMMANDs. Can be used to invoke " +"commands\n" +" on disk when a function with the same name exists.\n" +" \n" +" Options:\n" +" -p\tuse a default value for PATH that is guaranteed to find all of\n" +" \tthe standard utilities\n" +" -v\tprint a description of COMMAND similar to the ‘type’ builtin\n" +" -V\tprint a more verbose description of each COMMAND\n" +" \n" +" Exit Status:\n" +" Returns exit status of COMMAND, or failure if COMMAND is not found." + +#: builtins.c:472 +msgid "" +"Set variable values and attributes.\n" +" \n" +" Declare variables and give them attributes. If no NAMEs are given,\n" +" display the attributes and values of all variables.\n" +" \n" +" Options:\n" +" -f\trestrict action or display to function names and definitions\n" +" -F\trestrict display to function names only (plus line number and\n" +" \tsource file when debugging)\n" +" -p\tdisplay the attributes and value of each NAME\n" +" \n" +" Options which set attributes:\n" +" -a\tto make NAMEs indexed arrays (if supported)\n" +" -A\tto make NAMEs associative arrays (if supported)\n" +" -i\tto make NAMEs have the `integer' attribute\n" +" -l\tto convert NAMEs to lower case on assignment\n" +" -r\tto make NAMEs readonly\n" +" -t\tto make NAMEs have the `trace' attribute\n" +" -u\tto convert NAMEs to upper case on assignment\n" +" -x\tto make NAMEs export\n" +" \n" +" Using `+' instead of `-' turns off the given attribute.\n" +" \n" +" Variables with the integer attribute have arithmetic evaluation (see\n" +" the `let' command) performed when the variable is assigned a value.\n" +" \n" +" When used in a function, `declare' makes NAMEs local, as with the " +"`local'\n" +" command.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" +"Set variable values and attributes.\n" +" \n" +" Declare variables and give them attributes. If no NAMEs are given,\n" +" display the attributes and values of all variables.\n" +" \n" +" Options:\n" +" -f\trestrict action or display to function names and definitions\n" +" -F\trestrict display to function names only (plus line number and\n" +" \tsource file when debugging)\n" +" -p\tdisplay the attributes and value of each NAME\n" +" \n" +" Options which set attributes:\n" +" -a\tto make NAMEs indexed arrays (if supported)\n" +" -A\tto make NAMEs associative arrays (if supported)\n" +" -i\tto make NAMEs have the ‘integer’ attribute\n" +" -l\tto convert NAMEs to lower case on assignment\n" +" -r\tto make NAMEs readonly\n" +" -t\tto make NAMEs have the ‘trace’ attribute\n" +" -u\tto convert NAMEs to upper case on assignment\n" +" -x\tto make NAMEs export\n" +" \n" +" Using ‘+’ instead of ‘-’ turns off the given attribute.\n" +" \n" +" Variables with the integer attribute have arithmetic evaluation (see\n" +" the ‘let’ command) performed when the variable is assigned a value.\n" +" \n" +" When used in a function, ‘declare’ makes NAMEs local, as with the " +"‘local’\n" +" command.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." + +#: builtins.c:508 +msgid "" +"Set variable values and attributes.\n" +" \n" +" Obsolete. See `help declare'." +msgstr "" +"Set variable values and attributes.\n" +" \n" +" Obsolete. See ‘help declare’." + +#: builtins.c:516 +msgid "" +"Define local variables.\n" +" \n" +" Create a local variable called NAME, and give it VALUE. OPTION can\n" +" be any option accepted by `declare'.\n" +" \n" +" Local variables can only be used within a function; they are visible\n" +" only to the function where they are defined and its children.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied, an error occurs,\n" +" or the shell is not executing a function." +msgstr "" +"Define local variables.\n" +" \n" +" Create a local variable called NAME, and give it VALUE. OPTION can\n" +" be any option accepted by ‘declare’.\n" +" \n" +" Local variables can only be used within a function; they are visible\n" +" only to the function where they are defined and its children.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied, an error occurs,\n" +" or the shell is not executing a function." + +#: builtins.c:533 +msgid "" +"Write arguments to the standard output.\n" +" \n" +" Display the ARGs on the standard output followed by a newline.\n" +" \n" +" Options:\n" +" -n\tdo not append a newline\n" +" -e\tenable interpretation of the following backslash escapes\n" +" -E\texplicitly suppress interpretation of backslash escapes\n" +" \n" +" `echo' interprets the following backslash-escaped characters:\n" +" \\a\talert (bell)\n" +" \\b\tbackspace\n" +" \\c\tsuppress further output\n" +" \\e\tescape character\n" +" \\f\tform feed\n" +" \\n\tnew line\n" +" \\r\tcarriage return\n" +" \\t\thorizontal tab\n" +" \\v\tvertical tab\n" +" \\\\\tbackslash\n" +" \\0nnn\tthe character whose ASCII code is NNN (octal). NNN can be\n" +" \t0 to 3 octal digits\n" +" \\xHH\tthe eight-bit character whose value is HH (hexadecimal). HH\n" +" \tcan be one or two hex digits\n" +" \n" +" Exit Status:\n" +" Returns success unless a write error occurs." +msgstr "" +"Write arguments to the standard output.\n" +" \n" +" Display the ARGs on the standard output followed by a newline.\n" +" \n" +" Options:\n" +" -n\tdo not append a newline\n" +" -e\tenable interpretation of the following backslash escapes\n" +" -E\texplicitly suppress interpretation of backslash escapes\n" +" \n" +" ‘echo’ interprets the following backslash-escaped characters:\n" +" \\a\talert (bell)\n" +" \\b\tbackspace\n" +" \\c\tsuppress further output\n" +" \\e\tescape character\n" +" \\f\tform feed\n" +" \\n\tnew line\n" +" \\r\tcarriage return\n" +" \\t\thorizontal tab\n" +" \\v\tvertical tab\n" +" \\\\\tbackslash\n" +" \\0nnn\tthe character whose ASCII code is NNN (octal). NNN can be\n" +" \t0 to 3 octal digits\n" +" \\xHH\tthe eight-bit character whose value is HH (hexadecimal). HH\n" +" \tcan be one or two hex digits\n" +" \n" +" Exit Status:\n" +" Returns success unless a write error occurs." + +#: builtins.c:567 +msgid "" +"Write arguments to the standard output.\n" +" \n" +" Display the ARGs on the standard output followed by a newline.\n" +" \n" +" Options:\n" +" -n\tdo not append a newline\n" +" \n" +" Exit Status:\n" +" Returns success unless a write error occurs." +msgstr "" +"Write arguments to the standard output.\n" +" \n" +" Display the ARGs on the standard output followed by a newline.\n" +" \n" +" Options:\n" +" -n\tdo not append a newline\n" +" \n" +" Exit Status:\n" +" Returns success unless a write error occurs." + +#: builtins.c:582 +msgid "" +"Enable and disable shell builtins.\n" +" \n" +" Enables and disables builtin shell commands. Disabling allows you to\n" +" execute a disk command which has the same name as a shell builtin\n" +" without using a full pathname.\n" +" \n" +" Options:\n" +" -a\tprint a list of builtins showing whether or not each is enabled\n" +" -n\tdisable each NAME or display a list of disabled builtins\n" +" -p\tprint the list of builtins in a reusable format\n" +" -s\tprint only the names of Posix `special' builtins\n" +" \n" +" Options controlling dynamic loading:\n" +" -f\tLoad builtin NAME from shared object FILENAME\n" +" -d\tRemove a builtin loaded with -f\n" +" \n" +" Without options, each NAME is enabled.\n" +" \n" +" To use the `test' found in $PATH instead of the shell builtin\n" +" version, type `enable -n test'.\n" +" \n" +" Exit Status:\n" +" Returns success unless NAME is not a shell builtin or an error occurs." +msgstr "" +"Enable and disable shell builtins.\n" +" \n" +" Enables and disables builtin shell commands. Disabling allows you to\n" +" execute a disk command which has the same name as a shell builtin\n" +" without using a full pathname.\n" +" \n" +" Options:\n" +" -a\tprint a list of builtins showing whether or not each is enabled\n" +" -n\tdisable each NAME or display a list of disabled builtins\n" +" -p\tprint the list of builtins in a reusable format\n" +" -s\tprint only the names of Posix ‘special’ builtins\n" +" \n" +" Options controlling dynamic loading:\n" +" -f\tLoad builtin NAME from shared object FILENAME\n" +" -d\tRemove a builtin loaded with -f\n" +" \n" +" Without options, each NAME is enabled.\n" +" \n" +" To use the ‘test’ found in $PATH instead of the shell builtin\n" +" version, type ‘enable -n test’.\n" +" \n" +" Exit Status:\n" +" Returns success unless NAME is not a shell builtin or an error occurs." + +#: builtins.c:610 +msgid "" +"Execute arguments as a shell command.\n" +" \n" +" Combine ARGs into a single string, use the result as input to the " +"shell,\n" +" and execute the resulting commands.\n" +" \n" +" Exit Status:\n" +" Returns exit status of command or success if command is null." +msgstr "" +"Execute arguments as a shell command.\n" +" \n" +" Combine ARGs into a single string, use the result as input to the " +"shell,\n" +" and execute the resulting commands.\n" +" \n" +" Exit Status:\n" +" Returns exit status of command or success if command is null." + +#: builtins.c:622 +msgid "" +"Parse option arguments.\n" +" \n" +" Getopts is used by shell procedures to parse positional parameters\n" +" as options.\n" " \n" " OPTSTRING contains the option letters to be recognized; if a letter\n" " is followed by a colon, the option is expected to have an argument,\n" @@ -1894,9 +2898,16 @@ msgid "" " OPTSTRING is not a colon. OPTERR has the value 1 by default.\n" " \n" " Getopts normally parses the positional parameters ($0 - $9), but if\n" -" more arguments are given, they are parsed instead." +" more arguments are given, they are parsed instead.\n" +" \n" +" Exit Status:\n" +" Returns success if an option is found; fails if the end of options is\n" +" encountered or an error occurs." msgstr "" -" Getopts is used by shell procedures to parse positional parameters.\n" +"Parse option arguments.\n" +" \n" +" Getopts is used by shell procedures to parse positional parameters\n" +" as options.\n" " \n" " OPTSTRING contains the option letters to be recognized; if a letter\n" " is followed by a colon, the option is expected to have an argument,\n" @@ -1925,257 +2936,452 @@ msgstr "" " OPTSTRING is not a colon. OPTERR has the value 1 by default.\n" " \n" " Getopts normally parses the positional parameters ($0 - $9), but if\n" -" more arguments are given, they are parsed instead." - -#: builtins.c:521 -msgid "" -" Exec FILE, replacing this shell with the specified program.\n" -" If FILE is not specified, the redirections take effect in this\n" -" shell. If the first argument is `-l', then place a dash in the\n" -" zeroth arg passed to FILE, as login does. If the `-c' option\n" -" is supplied, FILE is executed with a null environment. The `-a'\n" -" option means to make set argv[0] of the executed process to NAME.\n" -" If the file cannot be executed and the shell is not interactive,\n" -" then the shell exits, unless the shell option `execfail' is set." -msgstr "" -" Exec FILE, replacing this shell with the specified program.\n" -" If FILE is not specified, the redirections take effect in this\n" -" shell. If the first argument is ‘-l’, then place a dash in the\n" -" zeroth arg passed to FILE, as login does. If the ‘-c’ option\n" -" is supplied, FILE is executed with a null environment. The ‘-a’\n" -" option means to make set argv[0] of the executed process to NAME.\n" -" If the file cannot be executed and the shell is not interactive,\n" -" 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\n" +" more arguments are given, they are parsed instead.\n" +" \n" +" Exit Status:\n" +" Returns success if an option is found; fails if the end of options is\n" +" encountered or an error occurs." + +#: builtins.c:664 +msgid "" +"Replace the shell with the given command.\n" +" \n" +" Execute COMMAND, replacing this shell with the specified program.\n" +" ARGUMENTS become the arguments to COMMAND. If COMMAND is not " +"specified,\n" +" any redirections take effect in the current shell.\n" +" \n" +" Options:\n" +" -a name\tpass NAME as the zeroth argument to COMMAND\n" +" -c\t\texecute COMMAND with an empty environment\n" +" -l\t\tplace a dash in the zeroth argument to COMMAND\n" +" \n" +" If the command cannot be executed, a non-interactive shell exits, " +"unless\n" +" the shell option `execfail' is set.\n" +" \n" +" Exit Status:\n" +" Returns success unless COMMAND is not found or a redirection error " +"occurs." +msgstr "" +"Replace the shell with the given command.\n" +" \n" +" Execute COMMAND, replacing this shell with the specified program.\n" +" ARGUMENTS become the arguments to COMMAND. If COMMAND is not " +"specified,\n" +" any redirections take effect in the current shell.\n" +" \n" +" Options:\n" +" -a name\tpass NAME as the zeroth argument to COMMAND\n" +" -c\t\texecute COMMAND with an empty environment\n" +" -l\t\tplace a dash in the zeroth argument to COMMAND\n" +" \n" +" If the command cannot be executed, a non-interactive shell exits, " +"unless\n" +" the shell option ‘execfail’ is set.\n" +" \n" +" Exit Status:\n" +" Returns success unless COMMAND is not found or a redirection error " +"occurs." + +#: builtins.c:685 +msgid "" +"Exit the shell.\n" +" \n" +" Exits the shell with a status of N. If N is omitted, the exit status\n" " is that of the last command executed." msgstr "" -" Exit the shell with a status of N. If N is omitted, the exit status\n" +"Exit the shell.\n" +" \n" +" Exits the shell with a status of N. If N is omitted, the exit status\n" " is that of the last command executed." -#: builtins.c:541 -msgid " Logout of a login shell." -msgstr " Logout of a login shell." +#: builtins.c:694 +msgid "" +"Exit a login shell.\n" +" \n" +" Exits a login shell with exit status N. Returns an error if not " +"executed\n" +" in a login shell." +msgstr "" +"Exit a login shell.\n" +" \n" +" Exits a login shell with exit status N. Returns an error if not " +"executed\n" +" in a login shell." -#: builtins.c:548 +#: builtins.c:704 msgid "" -" fc is used to list or edit and re-execute commands from the history list.\n" +"Display or execute commands from the history list.\n" +" \n" +" fc is used to list or edit and re-execute commands from the history " +"list.\n" " FIRST and LAST can be numbers specifying the range, or FIRST can be a\n" " string, which means the most recent command beginning with that\n" " string.\n" " \n" -" -e ENAME selects which editor to use. Default is FCEDIT, then " +" Options:\n" +" -e ENAME\tselect which editor to use. Default is FCEDIT, then " "EDITOR,\n" -" then vi.\n" -" \n" -" -l means list lines instead of editing.\n" -" -n means no line numbers listed.\n" -" -r means reverse the order of the lines (making it newest listed " -"first).\n" +" \t\tthen vi\n" +" -l \tlist lines instead of editing\n" +" -n\tomit line numbers when listing\n" +" -r\treverse the order of the lines (newest listed first)\n" " \n" -" With the `fc -s [pat=rep ...] [command]' format, the command is\n" +" With the `fc -s [pat=rep ...] [command]' format, COMMAND is\n" " re-executed after the substitution OLD=NEW is performed.\n" " \n" " A useful alias to use with this is r='fc -s', so that typing `r cc'\n" " runs the last command beginning with `cc' and typing `r' re-executes\n" -" the last command." +" the last command.\n" +" \n" +" Exit Status:\n" +" Returns success or status of executed command; non-zero if an error " +"occurs." msgstr "" -" fc is used to list or edit and re-execute commands from the history list.\n" +"Display or execute commands from the history list.\n" +" \n" +" fc is used to list or edit and re-execute commands from the history " +"list.\n" " FIRST and LAST can be numbers specifying the range, or FIRST can be a\n" " string, which means the most recent command beginning with that\n" " string.\n" " \n" -" -e ENAME selects which editor to use. Default is FCEDIT, then " +" Options:\n" +" -e ENAME\tselect which editor to use. Default is FCEDIT, then " "EDITOR,\n" -" then vi.\n" +" \t\tthen vi\n" +" -l \tlist lines instead of editing\n" +" -n\tomit line numbers when listing\n" +" -r\treverse the order of the lines (newest listed first)\n" " \n" -" -l means list lines instead of editing.\n" -" -n means no line numbers listed.\n" -" -r means reverse the order of the lines (making it newest listed " -"first).\n" -" \n" -" With the ‘fc -s [pat=rep ...] [command]’ format, the command is\n" +" With the ‘fc -s [pat=rep ...] [command]’ format, COMMAND is\n" " re-executed after the substitution OLD=NEW is performed.\n" " \n" " A useful alias to use with this is r='fc -s', so that typing ‘r cc’\n" " runs the last command beginning with ‘cc’ and typing ‘r’ re-executes\n" -" the last command." - -#: builtins.c:573 -msgid "" -" Place JOB_SPEC in the foreground, and make it the current job. If\n" -" JOB_SPEC is not present, the shell's notion of the current job is\n" -" used." -msgstr "" -" Place JOB_SPEC in the foreground, and make it the current job. If\n" -" JOB_SPEC is not present, the shell's notion of the current job is\n" -" used." - -#: builtins.c:583 -msgid "" -" Place each JOB_SPEC in the background, as if it had been started with\n" -" `&'. If JOB_SPEC is not present, the shell's notion of the current\n" -" job is used." -msgstr "" -" Place each JOB_SPEC in the background, as if it had been started with\n" -" ‘&’. If JOB_SPEC is not present, the shell's notion of the current\n" -" job is used." - -#: builtins.c:592 -msgid "" -" For each NAME, the full pathname of the command is determined and\n" -" remembered. If the -p option is supplied, PATHNAME is used as the\n" -" full pathname of NAME, and no path search is performed. The -r\n" -" option causes the shell to forget all remembered locations. The -d\n" -" option causes the shell to forget the remembered location of each NAME.\n" -" If the -t option is supplied the full pathname to which each NAME\n" -" corresponds is printed. If multiple NAME arguments are supplied with\n" -" -t, the NAME is printed before the hashed full pathname. The -l option\n" -" causes output to be displayed in a format that may be reused as input.\n" -" If no arguments are given, information about remembered commands is " -"displayed." -msgstr "" -" For each NAME, the full pathname of the command is determined and\n" -" remembered. If the -p option is supplied, PATHNAME is used as the\n" -" full pathname of NAME, and no path search is performed. The -r\n" -" option causes the shell to forget all remembered locations. The -d\n" -" option causes the shell to forget the remembered location of each NAME.\n" -" If the -t option is supplied the full pathname to which each NAME\n" -" corresponds is printed. If multiple NAME arguments are supplied with\n" -" -t, the NAME is printed before the hashed full pathname. The -l option\n" -" causes output to be displayed in a format that may be reused as input.\n" -" If no arguments are given, information about remembered commands is " -"displayed." - -#: builtins.c:608 -msgid "" -" Display helpful information about builtin commands. If PATTERN is\n" +" the last command.\n" +" \n" +" Exit Status:\n" +" Returns success or status of executed command; non-zero if an error " +"occurs." + +#: builtins.c:734 +msgid "" +"Move job to the foreground.\n" +" \n" +" Place the job identified by JOB_SPEC in the foreground, making it the\n" +" current job. If JOB_SPEC is not present, the shell's notion of the\n" +" current job is used.\n" +" \n" +" Exit Status:\n" +" Status of command placed in foreground, or failure if an error occurs." +msgstr "" +"Move job to the foreground.\n" +" \n" +" Place the job identified by JOB_SPEC in the foreground, making it the\n" +" current job. If JOB_SPEC is not present, the shell's notion of the\n" +" current job is used.\n" +" \n" +" Exit Status:\n" +" Status of command placed in foreground, or failure if an error occurs." + +#: builtins.c:749 +msgid "" +"Move jobs to the background.\n" +" \n" +" Place the jobs identified by each JOB_SPEC in the background, as if " +"they\n" +" had been started with `&'. If JOB_SPEC is not present, the shell's " +"notion\n" +" of the current job is used.\n" +" \n" +" Exit Status:\n" +" Returns success unless job control is not enabled or an error occurs." +msgstr "" +"Move jobs to the background.\n" +" \n" +" Place the jobs identified by each JOB_SPEC in the background, as if " +"they\n" +" had been started with ‘&’. If JOB_SPEC is not present, the shell's " +"notion\n" +" of the current job is used.\n" +" \n" +" Exit Status:\n" +" Returns success unless job control is not enabled or an error occurs." + +#: builtins.c:763 +msgid "" +"Remember or display program locations.\n" +" \n" +" Determine and remember the full pathname of each command NAME. If\n" +" no arguments are given, information about remembered commands is " +"displayed.\n" +" \n" +" Options:\n" +" -d\t\tforget the remembered location of each NAME\n" +" -l\t\tdisplay in a format that may be reused as input\n" +" -p pathname\tuse PATHNAME is the full pathname of NAME\n" +" -r\t\tforget all remembered locations\n" +" -t\t\tprint the remembered location of each NAME, preceding\n" +" \t\teach location with the corresponding NAME if multiple\n" +" \t\tNAMEs are given\n" +" Arguments:\n" +" NAME\t\tEach NAME is searched for in $PATH and added to the list\n" +" \t\tof remembered commands.\n" +" \n" +" Exit Status:\n" +" Returns success unless NAME is not found or an invalid option is given." +msgstr "" +"Remember or display program locations.\n" +" \n" +" Determine and remember the full pathname of each command NAME. If\n" +" no arguments are given, information about remembered commands is " +"displayed.\n" +" \n" +" Options:\n" +" -d\t\tforget the remembered location of each NAME\n" +" -l\t\tdisplay in a format that may be reused as input\n" +" -p pathname\tuse PATHNAME is the full pathname of NAME\n" +" -r\t\tforget all remembered locations\n" +" -t\t\tprint the remembered location of each NAME, preceding\n" +" \t\teach location with the corresponding NAME if multiple\n" +" \t\tNAMEs are given\n" +" Arguments:\n" +" NAME\t\tEach NAME is searched for in $PATH and added to the list\n" +" \t\tof remembered commands.\n" +" \n" +" Exit Status:\n" +" Returns success unless NAME is not found or an invalid option is given." + +#: builtins.c:788 +msgid "" +"Display information about builtin commands.\n" +" \n" +" Displays brief summaries of builtin commands. If PATTERN is\n" " specified, gives detailed help on all commands matching PATTERN,\n" -" otherwise a list of the builtins is printed. The -s option\n" -" restricts the output for each builtin command matching PATTERN to\n" -" a short usage synopsis." +" otherwise the list of help topics is printed.\n" +" \n" +" Options:\n" +" -d\toutput short description for each topic\n" +" -m\tdisplay usage in pseudo-manpage format\n" +" -s\toutput only a short usage synopsis for each topic matching\n" +" \tPATTERN\n" +" \n" +" Arguments:\n" +" PATTERN\tPattern specifiying a help topic\n" +" \n" +" Exit Status:\n" +" Returns success unless PATTERN is not found or an invalid option is " +"given." msgstr "" -" Display helpful information about builtin commands. If PATTERN is\n" +"Display information about builtin commands.\n" +" \n" +" Displays brief summaries of builtin commands. If PATTERN is\n" " specified, gives detailed help on all commands matching PATTERN,\n" -" otherwise a list of the builtins is printed. The -s option\n" -" restricts the output for each builtin command matching PATTERN to\n" -" a short usage synopsis." - -#: builtins.c:620 -msgid "" -" Display the history list with line numbers. Lines listed with\n" -" with a `*' have been modified. Argument of N says to list only\n" -" the last N lines. The `-c' option causes the history list to be\n" -" cleared by deleting all of the entries. The `-d' option deletes\n" -" the history entry at offset OFFSET. The `-w' option writes out the\n" -" current history to the history file; `-r' means to read the file and\n" -" append the contents to the history list instead. `-a' means\n" -" to append history lines from this session to the history file.\n" -" Argument `-n' means to read all history lines not already read\n" -" from the history file and append them to the history list.\n" -" \n" -" If FILENAME is given, then that is used as the history file else\n" +" otherwise the list of help topics is printed.\n" +" \n" +" Options:\n" +" -d\toutput short description for each topic\n" +" -m\tdisplay usage in pseudo-manpage format\n" +" -s\toutput only a short usage synopsis for each topic matching\n" +" \tPATTERN\n" +" \n" +" Arguments:\n" +" PATTERN\tPattern specifiying a help topic\n" +" \n" +" Exit Status:\n" +" Returns success unless PATTERN is not found or an invalid option is " +"given." + +#: builtins.c:812 +msgid "" +"Display or manipulate the history list.\n" +" \n" +" Display the history list with line numbers, prefixing each modified\n" +" entry with a `*'. An argument of N lists only the last N entries.\n" +" \n" +" Options:\n" +" -c\tclear the history list by deleting all of the entries\n" +" -d offset\tdelete the history entry at offset OFFSET.\n" +" \n" +" -a\tappend history lines from this session to the history file\n" +" -n\tread all history lines not already read from the history file\n" +" -r\tread the history file and append the contents to the history\n" +" \tlist\n" +" -w\twrite the current history to the history file\n" +" \tand append them to the history list\n" +" \n" +" -p\tperform history expansion on each ARG and display the result\n" +" \twithout storing it in the history list\n" +" -s\tappend the ARGs to the history list as a single entry\n" +" \n" +" If FILENAME is given, it is used as the history file. Otherwise,\n" " if $HISTFILE has a value, that is used, else ~/.bash_history.\n" -" If the -s option is supplied, the non-option ARGs are appended to\n" -" the history list as a single entry. The -p option means to perform\n" -" history expansion on each ARG and display the result, without storing\n" -" anything in the history list.\n" " \n" " If the $HISTTIMEFORMAT variable is set and not null, its value is used\n" " as a format string for strftime(3) to print the time stamp associated\n" -" with each displayed history entry. No time stamps are printed otherwise." -msgstr "" -" Display the history list with line numbers. Lines listed with\n" -" with a ‘*’ have been modified. Argument of N says to list only\n" -" the last N lines. The ‘-c’ option causes the history list to be\n" -" cleared by deleting all of the entries. The ‘-d’ option deletes\n" -" the history entry at offset OFFSET. The ‘-w’ option writes out the\n" -" current history to the history file; ‘-r’ means to read the file and\n" -" append the contents to the history list instead. ‘-a’ means\n" -" to append history lines from this session to the history file.\n" -" Argument ‘-n’ means to read all history lines not already read\n" -" from the history file and append them to the history list.\n" -" \n" -" If FILENAME is given, then that is used as the history file else\n" +" with each displayed history entry. No time stamps are printed " +"otherwise.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or an error occurs." +msgstr "" +"Display or manipulate the history list.\n" +" \n" +" Display the history list with line numbers, prefixing each modified\n" +" entry with a ‘*’. An argument of N lists only the last N entries.\n" +" \n" +" Options:\n" +" -c\tclear the history list by deleting all of the entries\n" +" -d offset\tdelete the history entry at offset OFFSET.\n" +" \n" +" -a\tappend history lines from this session to the history file\n" +" -n\tread all history lines not already read from the history file\n" +" -r\tread the history file and append the contents to the history\n" +" \tlist\n" +" -w\twrite the current history to the history file\n" +" \tand append them to the history list\n" +" \n" +" -p\tperform history expansion on each ARG and display the result\n" +" \twithout storing it in the history list\n" +" -s\tappend the ARGs to the history list as a single entry\n" +" \n" +" If FILENAME is given, it is used as the history file. Otherwise,\n" " if $HISTFILE has a value, that is used, else ~/.bash_history.\n" -" If the -s option is supplied, the non-option ARGs are appended to\n" -" the history list as a single entry. The -p option means to perform\n" -" history expansion on each ARG and display the result, without storing\n" -" anything in the history list.\n" " \n" " If the $HISTTIMEFORMAT variable is set and not null, its value is used\n" " as a format string for strftime(3) to print the time stamp associated\n" -" with each displayed history entry. No time stamps are printed otherwise." - -#: builtins.c:648 -msgid "" -" Lists the active jobs. The -l option lists process id's in addition\n" -" to the normal information; the -p option lists process id's only.\n" -" If -n is given, only processes that have changed status since the last\n" -" notification are printed. JOBSPEC restricts output to that job. The\n" -" -r and -s options restrict output to running and stopped jobs only,\n" -" respectively. Without options, the status of all active jobs is\n" -" printed. If -x is given, COMMAND is run after all job specifications\n" -" that appear in ARGS have been replaced with the process ID of that " -"job's\n" -" process group leader." -msgstr "" -" Lists the active jobs. The -l option lists process id's in addition\n" -" to the normal information; the -p option lists process id's only.\n" -" If -n is given, only processes that have changed status since the last\n" -" notification are printed. JOBSPEC restricts output to that job. The\n" -" -r and -s options restrict output to running and stopped jobs only,\n" -" respectively. Without options, the status of all active jobs is\n" -" printed. If -x is given, COMMAND is run after all job specifications\n" -" that appear in ARGS have been replaced with the process ID of that " -"job's\n" -" process group leader." +" with each displayed history entry. No time stamps are printed " +"otherwise.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or an error occurs." -#: builtins.c:664 +#: builtins.c:848 msgid "" -" By default, removes each JOBSPEC argument from the table of active jobs.\n" -" If the -h option is given, the job is not removed from the table, but " -"is\n" -" marked so that SIGHUP is not sent to the job if the shell receives a\n" -" SIGHUP. The -a option, when JOBSPEC is not supplied, means to remove " -"all\n" -" jobs from the job table; the -r option means to remove only running jobs." +"Display status of jobs.\n" +" \n" +" Lists the active jobs. JOBSPEC restricts output to that job.\n" +" Without options, the status of all active jobs is displayed.\n" +" \n" +" Options:\n" +" -l\tlists process IDs in addition to the normal information\n" +" -n\tlist only processes that have changed status since the last\n" +" \tnotification\n" +" -p\tlists process IDs only\n" +" -r\trestrict output to running jobs\n" +" -s\trestrict output to stopped jobs\n" +" \n" +" If -x is supplied, COMMAND is run after all job specifications that\n" +" appear in ARGS have been replaced with the process ID of that job's\n" +" process group leader.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or an error occurs.\n" +" If -x is used, returns the exit status of COMMAND." msgstr "" -" By default, removes each JOBSPEC argument from the table of active jobs.\n" -" If the -h option is given, the job is not removed from the table, but " -"is\n" -" marked so that SIGHUP is not sent to the job if the shell receives a\n" -" SIGHUP. The -a option, when JOBSPEC is not supplied, means to remove " -"all\n" -" 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 JOBSPEC) the signal SIGSPEC. If\n" -" SIGSPEC is not present, then SIGTERM is assumed. An argument of `-l'\n" -" lists the signal names; if arguments follow `-l' they are assumed to\n" -" be signal numbers for which names should be listed. Kill is a shell\n" -" builtin for two reasons: it allows job IDs to be used instead of\n" -" process IDs, and, if you have reached the limit on processes that\n" -" you can create, you don't have to start a process to kill another one." -msgstr "" -" Send the processes named by PID (or JOBSPEC) the signal SIGSPEC. If\n" -" SIGSPEC is not present, then SIGTERM is assumed. An argument of ‘-l’\n" -" lists the signal names; if arguments follow ‘-l’ they are assumed to\n" -" be signal numbers for which names should be listed. Kill is a shell\n" -" builtin for two reasons: it allows job IDs to be used instead of\n" -" process IDs, and, if you have reached the limit on processes that\n" -" 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\n" -" is done in fixed-width integers with no check for overflow, though\n" -" division by 0 is trapped and flagged as an error. The following\n" -" list of operators is grouped into levels of equal-precedence operators.\n" -" The levels are listed in order of decreasing precedence.\n" +"Display status of jobs.\n" +" \n" +" Lists the active jobs. JOBSPEC restricts output to that job.\n" +" Without options, the status of all active jobs is displayed.\n" +" \n" +" Options:\n" +" -l\tlists process IDs in addition to the normal information\n" +" -n\tlist only processes that have changed status since the last\n" +" \tnotification\n" +" -p\tlists process IDs only\n" +" -r\trestrict output to running jobs\n" +" -s\trestrict output to stopped jobs\n" +" \n" +" If -x is supplied, COMMAND is run after all job specifications that\n" +" appear in ARGS have been replaced with the process ID of that job's\n" +" process group leader.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or an error occurs.\n" +" If -x is used, returns the exit status of COMMAND." + +#: builtins.c:875 +msgid "" +"Remove jobs from current shell.\n" +" \n" +" Removes each JOBSPEC argument from the table of active jobs. Without\n" +" any JOBSPECs, the shell uses its notion of the current job.\n" +" \n" +" Options:\n" +" -a\tremove all jobs if JOBSPEC is not supplied\n" +" -h\tmark each JOBSPEC so that SIGHUP is not sent to the job if the\n" +" \tshell receives a SIGHUP\n" +" -r\tremove only running jobs\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option or JOBSPEC is given." +msgstr "" +"Remove jobs from current shell.\n" +" \n" +" Removes each JOBSPEC argument from the table of active jobs. Without\n" +" any JOBSPECs, the shell uses its notion of the current job.\n" +" \n" +" Options:\n" +" -a\tremove all jobs if JOBSPEC is not supplied\n" +" -h\tmark each JOBSPEC so that SIGHUP is not sent to the job if the\n" +" \tshell receives a SIGHUP\n" +" -r\tremove only running jobs\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option or JOBSPEC is given." + +#: builtins.c:894 +msgid "" +"Send a signal to a job.\n" +" \n" +" Send the processes identified by PID or JOBSPEC the signal named by\n" +" SIGSPEC or SIGNUM. If neither SIGSPEC nor SIGNUM is present, then\n" +" SIGTERM is assumed.\n" +" \n" +" Options:\n" +" -s sig\tSIG is a signal name\n" +" -n sig\tSIG is a signal number\n" +" -l\tlist the signal names; if arguments follow `-l' they are\n" +" \tassumed to be signal numbers for which names should be listed\n" +" \n" +" Kill is a shell builtin for two reasons: it allows job IDs to be used\n" +" instead of process IDs, and allows processes to be killed if the limit\n" +" on processes that you can create is reached.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or an error occurs." +msgstr "" +"Send a signal to a job.\n" +" \n" +" Send the processes identified by PID or JOBSPEC the signal named by\n" +" SIGSPEC or SIGNUM. If neither SIGSPEC nor SIGNUM is present, then\n" +" SIGTERM is assumed.\n" +" \n" +" Options:\n" +" -s sig\tSIG is a signal name\n" +" -n sig\tSIG is a signal number\n" +" -l\tlist the signal names; if arguments follow ‘-l’ they are\n" +" \tassumed to be signal numbers for which names should be listed\n" +" \n" +" Kill is a shell builtin for two reasons: it allows job IDs to be used\n" +" instead of process IDs, and allows processes to be killed if the limit\n" +" on processes that you can create is reached.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or an error occurs." + +#: builtins.c:917 +msgid "" +"Evaluate arithmetic expressions.\n" +" \n" +" Evaluate each ARG as an arithmetic expression. Evaluation is done in\n" +" fixed-width integers with no check for overflow, though division by 0\n" +" is trapped and flagged as an error. The following list of operators is\n" +" grouped into levels of equal-precedence operators. The levels are " +"listed\n" +" in order of decreasing precedence.\n" " \n" " \tid++, id--\tvariable post-increment, post-decrement\n" " \t++id, --id\tvariable pre-increment, pre-decrement\n" @@ -2207,14 +3413,17 @@ msgid "" " parentheses are evaluated first and may override the precedence\n" " rules above.\n" " \n" -" If the last ARG evaluates to 0, let returns 1; 0 is returned\n" -" otherwise." +" Exit Status:\n" +" If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise.." msgstr "" -" Each ARG is an arithmetic expression to be evaluated. Evaluation\n" -" is done in fixed-width integers with no check for overflow, though\n" -" division by 0 is trapped and flagged as an error. The following\n" -" list of operators is grouped into levels of equal-precedence operators.\n" -" The levels are listed in order of decreasing precedence.\n" +"Evaluate arithmetic expressions.\n" +" \n" +" Evaluate each ARG as an arithmetic expression. Evaluation is done in\n" +" fixed-width integers with no check for overflow, though division by 0\n" +" is trapped and flagged as an error. The following list of operators is\n" +" grouped into levels of equal-precedence operators. The levels are " +"listed\n" +" in order of decreasing precedence.\n" " \n" " \tid++, id--\tvariable post-increment, post-decrement\n" " \t++id, --id\tvariable pre-increment, pre-decrement\n" @@ -2246,353 +3455,477 @@ msgstr "" " parentheses are evaluated first and may override the precedence\n" " rules above.\n" " \n" -" If the last ARG evaluates to 0, let returns 1; 0 is returned\n" -" otherwise." +" Exit Status:\n" +" If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise.." -#: builtins.c:730 +#: builtins.c:962 msgid "" -" One line is read from the standard input, or from file descriptor FD if " -"the\n" -" -u option is supplied, and the first word is assigned to the first " -"NAME,\n" -" the second word to the second NAME, and so on, with leftover words " -"assigned\n" -" to the last NAME. Only the characters found in $IFS are recognized as " +"Read a line from the standard input and split it into fields.\n" +" \n" +" Reads a single line from the standard input, or from file descriptor FD\n" +" if the -u option is supplied. The line is split into fields as with " +"word\n" +" splitting, and the first word is assigned to the first NAME, the second\n" +" word to the second NAME, and so on, with any leftover words assigned to\n" +" the last NAME. Only the characters found in $IFS are recognized as " "word\n" -" delimiters. If no NAMEs are supplied, the line read is stored in the " -"REPLY\n" -" variable. If the -r option is given, this signifies `raw' input, and\n" -" backslash escaping is disabled. The -d option causes read to continue\n" -" until the first character of DELIM is read, rather than newline. If the " -"-p\n" -" option is supplied, the string PROMPT is output without a trailing " -"newline\n" -" before attempting to read. If -a is supplied, the words read are " -"assigned\n" -" to sequential indices of ARRAY, starting at zero. If -e is supplied " -"and\n" -" the shell is interactive, readline is used to obtain the line. If -n " +" delimiters.\n" +" \n" +" If no NAMEs are supplied, the line read is stored in the REPLY " +"variable.\n" +" \n" +" Options:\n" +" -a array\tassign the words read to sequential indices of the array\n" +" \t\tvariable ARRAY, starting at zero\n" +" -d delim\tcontinue until the first character of DELIM is read, rather\n" +" \t\tthan newline\n" +" -e\t\tuse Readline to obtain the line in an interactive shell\n" +" -i text\tUse TEXT as the initial text for Readline\n" +" -n nchars\treturn after reading NCHARS characters rather than waiting\n" +" \t\tfor a newline\n" +" -p prompt\toutput the string PROMPT without a trailing newline before\n" +" \t\tattempting to read\n" +" -r\t\tdo not allow backslashes to escape any characters\n" +" -s\t\tdo not echo input coming from a terminal\n" +" -t timeout\ttime out and return failure if a complete line of input " "is\n" -" supplied with a non-zero NCHARS argument, read returns after NCHARS\n" -" characters have been read. The -s option causes input coming from a\n" -" terminal to not be echoed.\n" +" \t\tnot read withint TIMEOUT seconds. The value of the TMOUT\n" +" \t\tvariable is the default timeout. TIMEOUT may be a\n" +" \t\tfractional number. If TIMEOUT is 0, read returns success only\n" +" \t\tif input is available on the specified file descriptor. The\n" +" \t\texit status is greater than 128 if the timeout is exceeded\n" +" -u fd\t\tread from file descriptor FD instead of the standard input\n" " \n" -" The -t option causes read to time out and return failure if a complete " -"line\n" -" of input is not read within TIMEOUT seconds. If the TMOUT variable is " -"set,\n" -" its value is the default timeout. The return code is zero, unless end-" -"of-file\n" -" is encountered, read times out, or an invalid file descriptor is " -"supplied as\n" -" the argument to -u." +" Exit Status:\n" +" The return code is zero, unless end-of-file is encountered, read times " +"out,\n" +" or an invalid file descriptor is supplied as the argument to -u." msgstr "" -" One line is read from the standard input, or from file descriptor FD if " -"the\n" -" -u option is supplied, and the first word is assigned to the first " -"NAME,\n" -" the second word to the second NAME, and so on, with leftover words " -"assigned\n" -" to the last NAME. Only the characters found in $IFS are recognized as " +"Read a line from the standard input and split it into fields.\n" +" \n" +" Reads a single line from the standard input, or from file descriptor FD\n" +" if the -u option is supplied. The line is split into fields as with " "word\n" -" delimiters. If no NAMEs are supplied, the line read is stored in the " -"REPLY\n" -" variable. If the -r option is given, this signifies ‘raw’ input, and\n" -" backslash escaping is disabled. The -d option causes read to continue\n" -" until the first character of DELIM is read, rather than newline. If the " -"-p\n" -" option is supplied, the string PROMPT is output without a trailing " -"newline\n" -" before attempting to read. If -a is supplied, the words read are " -"assigned\n" -" to sequential indices of ARRAY, starting at zero. If -e is supplied " -"and\n" -" the shell is interactive, readline is used to obtain the line. If -n " +" splitting, and the first word is assigned to the first NAME, the second\n" +" word to the second NAME, and so on, with any leftover words assigned to\n" +" the last NAME. Only the characters found in $IFS are recognized as " +"word\n" +" delimiters.\n" +" \n" +" If no NAMEs are supplied, the line read is stored in the REPLY " +"variable.\n" +" \n" +" Options:\n" +" -a array\tassign the words read to sequential indices of the array\n" +" \t\tvariable ARRAY, starting at zero\n" +" -d delim\tcontinue until the first character of DELIM is read, rather\n" +" \t\tthan newline\n" +" -e\t\tuse Readline to obtain the line in an interactive shell\n" +" -i text\tUse TEXT as the initial text for Readline\n" +" -n nchars\treturn after reading NCHARS characters rather than waiting\n" +" \t\tfor a newline\n" +" -p prompt\toutput the string PROMPT without a trailing newline before\n" +" \t\tattempting to read\n" +" -r\t\tdo not allow backslashes to escape any characters\n" +" -s\t\tdo not echo input coming from a terminal\n" +" -t timeout\ttime out and return failure if a complete line of input " "is\n" -" supplied with a non-zero NCHARS argument, read returns after NCHARS\n" -" characters have been read. The -s option causes input coming from a\n" -" terminal to not be echoed.\n" +" \t\tnot read withint TIMEOUT seconds. The value of the TMOUT\n" +" \t\tvariable is the default timeout. TIMEOUT may be a\n" +" \t\tfractional number. If TIMEOUT is 0, read returns success only\n" +" \t\tif input is available on the specified file descriptor. The\n" +" \t\texit status is greater than 128 if the timeout is exceeded\n" +" -u fd\t\tread from file descriptor FD instead of the standard input\n" +" \n" +" Exit Status:\n" +" The return code is zero, unless end-of-file is encountered, read times " +"out,\n" +" or an invalid file descriptor is supplied as the argument to -u." + +#: builtins.c:1002 +msgid "" +"Return from a shell function.\n" +" \n" +" Causes a function or sourced script to exit with the return value\n" +" specified by N. If N is omitted, the return status is that of the\n" +" last command executed within the function or script.\n" +" \n" +" Exit Status:\n" +" Returns N, or failure if the shell is not executing a function or script." +msgstr "" +"Return from a shell function.\n" +" \n" +" Causes a function or sourced script to exit with the return value\n" +" specified by N. If N is omitted, the return status is that of the\n" +" last command executed within the function or script.\n" +" \n" +" Exit Status:\n" +" Returns N, or failure if the shell is not executing a function or script." + +#: builtins.c:1015 +msgid "" +"Set or unset values of shell options and positional parameters.\n" +" \n" +" Change the value of shell attributes and positional parameters, or\n" +" display the names and values of shell variables.\n" +" \n" +" Options:\n" +" -a Mark variables which are modified or created for export.\n" +" -b Notify of job termination immediately.\n" +" -e Exit immediately if a command exits with a non-zero status.\n" +" -f Disable file name generation (globbing).\n" +" -h Remember the location of commands as they are looked up.\n" +" -k All assignment arguments are placed in the environment for a\n" +" command, not just those that precede the command name.\n" +" -m Job control is enabled.\n" +" -n Read commands but do not execute them.\n" +" -o option-name\n" +" Set the variable corresponding to option-name:\n" +" allexport same as -a\n" +" braceexpand same as -B\n" +" emacs use an emacs-style line editing interface\n" +" errexit same as -e\n" +" errtrace same as -E\n" +" functrace same as -T\n" +" hashall same as -h\n" +" histexpand same as -H\n" +" history enable command history\n" +" ignoreeof the shell will not exit upon reading EOF\n" +" interactive-comments\n" +" allow comments to appear in interactive commands\n" +" keyword same as -k\n" +" monitor same as -m\n" +" noclobber same as -C\n" +" noexec same as -n\n" +" noglob same as -f\n" +" nolog currently accepted but ignored\n" +" notify same as -b\n" +" nounset same as -u\n" +" onecmd same as -t\n" +" physical same as -P\n" +" pipefail the return value of a pipeline is the status of\n" +" the last command to exit with a non-zero status,\n" +" or zero if no command exited with a non-zero " +"status\n" +" posix change the behavior of bash where the default\n" +" operation differs from the Posix standard to\n" +" match the standard\n" +" privileged same as -p\n" +" verbose same as -v\n" +" vi use a vi-style line editing interface\n" +" xtrace same as -x\n" +" -p Turned on whenever the real and effective user ids do not match.\n" +" Disables processing of the $ENV file and importing of shell\n" +" functions. Turning this option off causes the effective uid and\n" +" gid to be set to the real uid and gid.\n" +" -t Exit after reading and executing one command.\n" +" -u Treat unset variables as an error when substituting.\n" +" -v Print shell input lines as they are read.\n" +" -x Print commands and their arguments as they are executed.\n" +" -B the shell will perform brace expansion\n" +" -C If set, disallow existing regular files to be overwritten\n" +" by redirection of output.\n" +" -E If set, the ERR trap is inherited by shell functions.\n" +" -H Enable ! style history substitution. This flag is on\n" +" by default when the shell is interactive.\n" +" -P If set, do not follow symbolic links when executing commands\n" +" such as cd which change the current directory.\n" +" -T If set, the DEBUG trap is inherited by shell functions.\n" +" - Assign any remaining arguments to the positional parameters.\n" +" The -x and -v options are turned off.\n" +" \n" +" Using + rather than - causes these flags to be turned off. The\n" +" flags can also be used upon invocation of the shell. The current\n" +" set of flags may be found in $-. The remaining n ARGs are positional\n" +" parameters and are assigned, in order, to $1, $2, .. $n. If no\n" +" ARGs are given, all shell variables are printed.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given." +msgstr "" +"Set or unset values of shell options and positional parameters.\n" +" \n" +" Change the value of shell attributes and positional parameters, or\n" +" display the names and values of shell variables.\n" +" \n" +" Options:\n" +" -a Mark variables which are modified or created for export.\n" +" -b Notify of job termination immediately.\n" +" -e Exit immediately if a command exits with a non-zero status.\n" +" -f Disable file name generation (globbing).\n" +" -h Remember the location of commands as they are looked up.\n" +" -k All assignment arguments are placed in the environment for a\n" +" command, not just those that precede the command name.\n" +" -m Job control is enabled.\n" +" -n Read commands but do not execute them.\n" +" -o option-name\n" +" Set the variable corresponding to option-name:\n" +" allexport same as -a\n" +" braceexpand same as -B\n" +" emacs use an emacs-style line editing interface\n" +" errexit same as -e\n" +" errtrace same as -E\n" +" functrace same as -T\n" +" hashall same as -h\n" +" histexpand same as -H\n" +" history enable command history\n" +" ignoreeof the shell will not exit upon reading EOF\n" +" interactive-comments\n" +" allow comments to appear in interactive commands\n" +" keyword same as -k\n" +" monitor same as -m\n" +" noclobber same as -C\n" +" noexec same as -n\n" +" noglob same as -f\n" +" nolog currently accepted but ignored\n" +" notify same as -b\n" +" nounset same as -u\n" +" onecmd same as -t\n" +" physical same as -P\n" +" pipefail the return value of a pipeline is the status of\n" +" the last command to exit with a non-zero status,\n" +" or zero if no command exited with a non-zero " +"status\n" +" posix change the behavior of bash where the default\n" +" operation differs from the Posix standard to\n" +" match the standard\n" +" privileged same as -p\n" +" verbose same as -v\n" +" vi use a vi-style line editing interface\n" +" xtrace same as -x\n" +" -p Turned on whenever the real and effective user ids do not match.\n" +" Disables processing of the $ENV file and importing of shell\n" +" functions. Turning this option off causes the effective uid and\n" +" gid to be set to the real uid and gid.\n" +" -t Exit after reading and executing one command.\n" +" -u Treat unset variables as an error when substituting.\n" +" -v Print shell input lines as they are read.\n" +" -x Print commands and their arguments as they are executed.\n" +" -B the shell will perform brace expansion\n" +" -C If set, disallow existing regular files to be overwritten\n" +" by redirection of output.\n" +" -E If set, the ERR trap is inherited by shell functions.\n" +" -H Enable ! style history substitution. This flag is on\n" +" by default when the shell is interactive.\n" +" -P If set, do not follow symbolic links when executing commands\n" +" such as cd which change the current directory.\n" +" -T If set, the DEBUG trap is inherited by shell functions.\n" +" - Assign any remaining arguments to the positional parameters.\n" +" The -x and -v options are turned off.\n" +" \n" +" Using + rather than - causes these flags to be turned off. The\n" +" flags can also be used upon invocation of the shell. The current\n" +" set of flags may be found in $-. The remaining n ARGs are positional\n" +" parameters and are assigned, in order, to $1, $2, .. $n. If no\n" +" ARGs are given, all shell variables are printed.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given." + +#: builtins.c:1097 +msgid "" +"Unset values and attributes of shell variables and functions.\n" +" \n" +" For each NAME, remove the corresponding variable or function.\n" +" \n" +" Options:\n" +" -f\ttreat each NAME as a shell function\n" +" -v\ttreat each NAME as a shell variable\n" +" \n" +" Without options, unset first tries to unset a variable, and if that " +"fails,\n" +" tries to unset a function.\n" +" \n" +" Some variables cannot be unset; also see `readonly'.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or a NAME is read-only." +msgstr "" +"Unset values and attributes of shell variables and functions.\n" +" \n" +" For each NAME, remove the corresponding variable or function.\n" +" \n" +" Options:\n" +" -f\ttreat each NAME as a shell function\n" +" -v\ttreat each NAME as a shell variable\n" +" \n" +" Without options, unset first tries to unset a variable, and if that " +"fails,\n" +" tries to unset a function.\n" +" \n" +" Some variables cannot be unset; also see ‘readonly’.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or a NAME is read-only." + +#: builtins.c:1117 +msgid "" +"Set export attribute for shell variables.\n" +" \n" +" Marks each NAME for automatic export to the environment of subsequently\n" +" executed commands. If VALUE is supplied, assign VALUE before " +"exporting.\n" +" \n" +" Options:\n" +" -f\trefer to shell functions\n" +" -n\tremove the export property from each NAME\n" +" -p\tdisplay a list of all exported variables and functions\n" +" \n" +" An argument of `--' disables further option processing.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or NAME is invalid." +msgstr "" +"Set export attribute for shell variables.\n" +" \n" +" Marks each NAME for automatic export to the environment of subsequently\n" +" executed commands. If VALUE is supplied, assign VALUE before " +"exporting.\n" +" \n" +" Options:\n" +" -f\trefer to shell functions\n" +" -n\tremove the export property from each NAME\n" +" -p\tdisplay a list of all exported variables and functions\n" +" \n" +" An argument of ‘--’ disables further option processing.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or NAME is invalid." + +#: builtins.c:1136 +msgid "" +"Mark shell variables as unchangeable.\n" +" \n" +" Mark each NAME as read-only; the values of these NAMEs may not be\n" +" changed by subsequent assignment. If VALUE is supplied, assign VALUE\n" +" before marking as read-only.\n" +" \n" +" Options:\n" +" -a\trefer to indexed array variables\n" +" -A\trefer to associative array variables\n" +" -f\trefer to shell functions\n" +" -p\tdisplay a list of all readonly variables and functions\n" +" \n" +" An argument of `--' disables further option processing.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or NAME is invalid." +msgstr "" +"Mark shell variables as unchangeable.\n" +" \n" +" Mark each NAME as read-only; the values of these NAMEs may not be\n" +" changed by subsequent assignment. If VALUE is supplied, assign VALUE\n" +" before marking as read-only.\n" +" \n" +" Options:\n" +" -a\trefer to indexed array variables\n" +" -A\trefer to associative array variables\n" +" -f\trefer to shell functions\n" +" -p\tdisplay a list of all readonly variables and functions\n" +" \n" +" An argument of ‘--’ disables further option processing.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or NAME is invalid." + +#: builtins.c:1157 +msgid "" +"Shift positional parameters.\n" +" \n" +" Rename the positional parameters $N+1,$N+2 ... to $1,$2 ... If N is\n" +" not given, it is assumed to be 1.\n" +" \n" +" Exit Status:\n" +" Returns success unless N is negative or greater than $#." +msgstr "" +"Shift positional parameters.\n" +" \n" +" Rename the positional parameters $N+1,$N+2 ... to $1,$2 ... If N is\n" +" not given, it is assumed to be 1.\n" +" \n" +" Exit Status:\n" +" Returns success unless N is negative or greater than $#." + +#: builtins.c:1169 builtins.c:1184 +msgid "" +"Execute commands from a file in the current shell.\n" +" \n" +" Read and execute commands from FILENAME in the current shell. The\n" +" entries in $PATH are used to find the directory containing FILENAME.\n" +" If any ARGUMENTS are supplied, they become the positional parameters\n" +" when FILENAME is executed.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed in FILENAME; fails if\n" +" FILENAME cannot be read." +msgstr "" +"Execute commands from a file in the current shell.\n" " \n" -" The -t option causes read to time out and return failure if a complete " -"line\n" -" of input is not read within TIMEOUT seconds. If the TMOUT variable is " -"set,\n" -" its value is the default timeout. The return code is zero, unless end-" -"of-file\n" -" is encountered, read times out, or an invalid file descriptor is " -"supplied as\n" -" the argument to -u." +" Read and execute commands from FILENAME in the current shell. The\n" +" entries in $PATH are used to find the directory containing FILENAME.\n" +" If any ARGUMENTS are supplied, they become the positional parameters\n" +" when FILENAME is executed.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed in FILENAME; fails if\n" +" FILENAME cannot be read." -#: builtins.c:756 +#: builtins.c:1200 msgid "" -" Causes a function to exit with the return value specified by N. If N\n" -" is omitted, the return status is that of the last command." +"Suspend shell execution.\n" +" \n" +" Suspend the execution of this shell until it receives a SIGCONT signal.\n" +" Unless forced, login shells cannot be suspended.\n" +" \n" +" Options:\n" +" -f\tforce the suspend, even if the shell is a login shell\n" +" \n" +" Exit Status:\n" +" Returns success unless job control is not enabled or an error occurs." msgstr "" -" Causes a function to exit with the return value specified by N. If N\n" -" is omitted, the return status is that of the last command." +"Suspend shell execution.\n" +" \n" +" Suspend the execution of this shell until it receives a SIGCONT signal.\n" +" Unless forced, login shells cannot be suspended.\n" +" \n" +" Options:\n" +" -f\tforce the suspend, even if the shell is a login shell\n" +" \n" +" Exit Status:\n" +" Returns success unless job control is not enabled or an error occurs." -#: builtins.c:763 +#: builtins.c:1216 msgid "" -" -a Mark variables which are modified or created for export.\n" -" -b Notify of job termination immediately.\n" -" -e Exit immediately if a command exits with a non-zero status.\n" -" -f Disable file name generation (globbing).\n" -" -h Remember the location of commands as they are looked up.\n" -" -k All assignment arguments are placed in the environment for a\n" -" command, not just those that precede the command name.\n" -" -m Job control is enabled.\n" -" -n Read commands but do not execute them.\n" -" -o option-name\n" -" Set the variable corresponding to option-name:\n" -" allexport same as -a\n" -" braceexpand same as -B\n" -" emacs use an emacs-style line editing interface\n" -" errexit same as -e\n" -" errtrace same as -E\n" -" functrace same as -T\n" -" hashall same as -h\n" -" histexpand same as -H\n" -" history enable command history\n" -" ignoreeof the shell will not exit upon reading EOF\n" -" interactive-comments\n" -" allow comments to appear in interactive " -"commands\n" -" keyword same as -k\n" -" monitor same as -m\n" -" noclobber same as -C\n" -" noexec same as -n\n" -" noglob same as -f\n" -" nolog currently accepted but ignored\n" -" notify same as -b\n" -" nounset same as -u\n" -" onecmd same as -t\n" -" physical same as -P\n" -" pipefail the return value of a pipeline is the status " -"of\n" -" the last command to exit with a non-zero " -"status,\n" -" or zero if no command exited with a non-zero " -"status\n" -" posix change the behavior of bash where the default\n" -" operation differs from the 1003.2 standard to\n" -" match the standard\n" -" privileged same as -p\n" -" verbose same as -v\n" -" vi use a vi-style line editing interface\n" -" xtrace same as -x\n" -" -p Turned on whenever the real and effective user ids do not " -"match.\n" -" Disables processing of the $ENV file and importing of shell\n" -" functions. Turning this option off causes the effective uid " -"and\n" -" gid to be set to the real uid and gid.\n" -" -t Exit after reading and executing one command.\n" -" -u Treat unset variables as an error when substituting.\n" -" -v Print shell input lines as they are read.\n" -" -x Print commands and their arguments as they are executed.\n" -" -B the shell will perform brace expansion\n" -" -C If set, disallow existing regular files to be overwritten\n" -" by redirection of output.\n" -" -E If set, the ERR trap is inherited by shell functions.\n" -" -H Enable ! style history substitution. This flag is on\n" -" by default when the shell is interactive.\n" -" -P If set, do not follow symbolic links when executing commands\n" -" such as cd which change the current directory.\n" -" -T If set, the DEBUG trap is inherited by shell functions.\n" -" - Assign any remaining arguments to the positional parameters.\n" -" The -x and -v options are turned off.\n" -" \n" -" Using + rather than - causes these flags to be turned off. The\n" -" flags can also be used upon invocation of the shell. The current\n" -" set of flags may be found in $-. The remaining n ARGs are positional\n" -" parameters and are assigned, in order, to $1, $2, .. $n. If no\n" -" ARGs are given, all shell variables are printed." -msgstr "" -" -a Mark variables which are modified or created for export.\n" -" -b Notify of job termination immediately.\n" -" -e Exit immediately if a command exits with a non-zero status.\n" -" -f Disable file name generation (globbing).\n" -" -h Remember the location of commands as they are looked up.\n" -" -k All assignment arguments are placed in the environment for a\n" -" command, not just those that precede the command name.\n" -" -m Job control is enabled.\n" -" -n Read commands but do not execute them.\n" -" -o option-name\n" -" Set the variable corresponding to option-name:\n" -" allexport same as -a\n" -" braceexpand same as -B\n" -" emacs use an emacs-style line editing interface\n" -" errexit same as -e\n" -" errtrace same as -E\n" -" functrace same as -T\n" -" hashall same as -h\n" -" histexpand same as -H\n" -" history enable command history\n" -" ignoreeof the shell will not exit upon reading EOF\n" -" interactive-comments\n" -" allow comments to appear in interactive " -"commands\n" -" keyword same as -k\n" -" monitor same as -m\n" -" noclobber same as -C\n" -" noexec same as -n\n" -" noglob same as -f\n" -" nolog currently accepted but ignored\n" -" notify same as -b\n" -" nounset same as -u\n" -" onecmd same as -t\n" -" physical same as -P\n" -" pipefail the return value of a pipeline is the status " -"of\n" -" the last command to exit with a non-zero " -"status,\n" -" or zero if no command exited with a non-zero " -"status\n" -" posix change the behavior of bash where the default\n" -" operation differs from the 1003.2 standard to\n" -" match the standard\n" -" privileged same as -p\n" -" verbose same as -v\n" -" vi use a vi-style line editing interface\n" -" xtrace same as -x\n" -" -p Turned on whenever the real and effective user ids do not " -"match.\n" -" Disables processing of the $ENV file and importing of shell\n" -" functions. Turning this option off causes the effective uid " -"and\n" -" gid to be set to the real uid and gid.\n" -" -t Exit after reading and executing one command.\n" -" -u Treat unset variables as an error when substituting.\n" -" -v Print shell input lines as they are read.\n" -" -x Print commands and their arguments as they are executed.\n" -" -B the shell will perform brace expansion\n" -" -C If set, disallow existing regular files to be overwritten\n" -" by redirection of output.\n" -" -E If set, the ERR trap is inherited by shell functions.\n" -" -H Enable ! style history substitution. This flag is on\n" -" by default when the shell is interactive.\n" -" -P If set, do not follow symbolic links when executing commands\n" -" such as cd which change the current directory.\n" -" -T If set, the DEBUG trap is inherited by shell functions.\n" -" - Assign any remaining arguments to the positional parameters.\n" -" The -x and -v options are turned off.\n" +"Evaluate conditional expression.\n" " \n" -" Using + rather than - causes these flags to be turned off. The\n" -" flags can also be used upon invocation of the shell. The current\n" -" set of flags may be found in $-. The remaining n ARGs are positional\n" -" parameters and are assigned, in order, to $1, $2, .. $n. If no\n" -" ARGs are given, all shell variables are printed." - -#: builtins.c:836 -msgid "" -" For each NAME, remove the corresponding variable or function. Given\n" -" the `-v', unset will only act on variables. Given the `-f' flag,\n" -" unset will only act on functions. With neither flag, unset first\n" -" tries to unset a variable, and if that fails, then tries to unset a\n" -" function. Some variables cannot be unset; also see readonly." -msgstr "" -" For each NAME, remove the corresponding variable or function. Given\n" -" the ‘-v’, unset will only act on variables. Given the ‘-f’ flag,\n" -" unset will only act on functions. With neither flag, unset first\n" -" tries to unset a variable, and if that fails, then tries to unset a\n" -" function. Some variables cannot be unset; also see readonly." - -#: builtins.c:846 -msgid "" -" NAMEs are marked for automatic export to the environment of\n" -" subsequently executed commands. If the -f option is given,\n" -" the NAMEs refer to functions. If no NAMEs are given, or if `-p'\n" -" is given, a list of all names that are exported in this shell is\n" -" printed. An argument of `-n' says to remove the export property\n" -" from subsequent NAMEs. An argument of `--' disables further option\n" -" processing." -msgstr "" -" NAMEs are marked for automatic export to the environment of\n" -" subsequently executed commands. If the -f option is given,\n" -" the NAMEs refer to functions. If no NAMEs are given, or if ‘-p’\n" -" is given, a list of all names that are exported in this shell is\n" -" printed. An argument of ‘-n’ says to remove the export property\n" -" from subsequent NAMEs. An argument of ‘--’ disables further option\n" -" processing." - -#: builtins.c:858 -msgid "" -" The given NAMEs are marked readonly and the values of these NAMEs may\n" -" not be changed by subsequent assignment. If the -f option is given,\n" -" then functions corresponding to the NAMEs are so marked. If no\n" -" arguments are given, or if `-p' is given, a list of all readonly names\n" -" is printed. The `-a' option means to treat each NAME as\n" -" an array variable. An argument of `--' disables further option\n" -" processing." -msgstr "" -" The given NAMEs are marked readonly and the values of these NAMEs may\n" -" not be changed by subsequent assignment. If the -f option is given,\n" -" then functions corresponding to the NAMEs are so marked. If no\n" -" arguments are given, or if ‘-p’ is given, a list of all readonly names\n" -" is printed. The ‘-a’ option means to treat each NAME as\n" -" an array variable. An argument of ‘--’ disables further option\n" -" processing." - -#: builtins.c:870 -msgid "" -" The positional parameters from $N+1 ... are renamed to $1 ... If N is\n" -" not given, it is assumed to be 1." -msgstr "" -" The positional parameters from $N+1 ... are renamed to $1 ... If N is\n" -" not given, it is assumed to be 1." - -#: builtins.c:877 builtins.c:886 -msgid "" -" Read and execute commands from FILENAME and return. The pathnames\n" -" in $PATH are used to find the directory containing FILENAME. If any\n" -" ARGUMENTS are supplied, they become the positional parameters when\n" -" FILENAME is executed." -msgstr "" -" Read and execute commands from FILENAME and return. The pathnames\n" -" in $PATH are used to find the directory containing FILENAME. If any\n" -" ARGUMENTS are supplied, they become the positional parameters when\n" -" FILENAME is executed." - -#: builtins.c:896 -msgid "" -" Suspend the execution of this shell until it receives a SIGCONT\n" -" signal. The `-f' if specified says not to complain about this\n" -" being a login shell if it is; just suspend anyway." -msgstr "" -" Suspend the execution of this shell until it receives a SIGCONT\n" -" signal. The ‘-f’ if specified says not to complain about this\n" -" being a login shell if it is; just suspend anyway." - -#: builtins.c:905 -msgid "" -" Exits with a status of 0 (true) or 1 (false) depending on\n" +" Exits with a status of 0 (true) or 1 (false) depending on\n" " the evaluation of EXPR. Expressions may be unary or binary. Unary\n" " expressions are often used to examine the status of a file. There\n" " are string operators as well, and numeric comparison operators.\n" " \n" " File operators:\n" " \n" -" -a FILE True if file exists.\n" -" -b FILE True if file is block special.\n" -" -c FILE True if file is character special.\n" -" -d FILE True if file is a directory.\n" -" -e FILE True if file exists.\n" -" -f FILE True if file exists and is a regular file.\n" -" -g FILE True if file is set-group-id.\n" -" -h FILE True if file is a symbolic link.\n" -" -L FILE True if file is a symbolic link.\n" -" -k FILE True if file has its `sticky' bit set.\n" -" -p FILE True if file is a named pipe.\n" -" -r FILE True if file is readable by you.\n" -" -s FILE True if file exists and is not empty.\n" -" -S FILE True if file is a socket.\n" -" -t FD True if FD is opened on a terminal.\n" -" -u FILE True if the file is set-user-id.\n" -" -w FILE True if the file is writable by you.\n" -" -x FILE True if the file is executable by you.\n" -" -O FILE True if the file is effectively owned by you.\n" -" -G FILE True if the file is effectively owned by your group.\n" -" -N FILE True if the file has been modified since it was last " +" -a FILE True if file exists.\n" +" -b FILE True if file is block special.\n" +" -c FILE True if file is character special.\n" +" -d FILE True if file is a directory.\n" +" -e FILE True if file exists.\n" +" -f FILE True if file exists and is a regular file.\n" +" -g FILE True if file is set-group-id.\n" +" -h FILE True if file is a symbolic link.\n" +" -L FILE True if file is a symbolic link.\n" +" -k FILE True if file has its `sticky' bit set.\n" +" -p FILE True if file is a named pipe.\n" +" -r FILE True if file is readable by you.\n" +" -s FILE True if file exists and is not empty.\n" +" -S FILE True if file is a socket.\n" +" -t FD True if FD is opened on a terminal.\n" +" -u FILE True if the file is set-user-id.\n" +" -w FILE True if the file is writable by you.\n" +" -x FILE True if the file is executable by you.\n" +" -O FILE True if the file is effectively owned by you.\n" +" -G FILE True if the file is effectively owned by your group.\n" +" -N FILE True if the file has been modified since it was last " "read.\n" " \n" " FILE1 -nt FILE2 True if file1 is newer than file2 (according to\n" @@ -2604,64 +3937,69 @@ msgid "" " \n" " String operators:\n" " \n" -" -z STRING True if string is empty.\n" +" -z STRING True if string is empty.\n" " \n" -" -n STRING\n" -" STRING True if string is not empty.\n" +" -n STRING\n" +" STRING True if string is not empty.\n" " \n" -" STRING1 = STRING2\n" -" True if the strings are equal.\n" -" STRING1 != STRING2\n" -" True if the strings are not equal.\n" -" STRING1 < STRING2\n" -" True if STRING1 sorts before STRING2 " -"lexicographically.\n" -" STRING1 > STRING2\n" -" True if STRING1 sorts after STRING2 " +" STRING1 = STRING2\n" +" True if the strings are equal.\n" +" STRING1 != STRING2\n" +" True if the strings are not equal.\n" +" STRING1 < STRING2\n" +" True if STRING1 sorts before STRING2 " "lexicographically.\n" +" STRING1 > STRING2\n" +" True if STRING1 sorts after STRING2 lexicographically.\n" " \n" " Other operators:\n" " \n" -" -o OPTION True if the shell option OPTION is enabled.\n" -" ! EXPR True if expr is false.\n" -" EXPR1 -a EXPR2 True if both expr1 AND expr2 are true.\n" -" EXPR1 -o EXPR2 True if either expr1 OR expr2 is true.\n" +" -o OPTION True if the shell option OPTION is enabled.\n" +" ! EXPR True if expr is false.\n" +" EXPR1 -a EXPR2 True if both expr1 AND expr2 are true.\n" +" EXPR1 -o EXPR2 True if either expr1 OR expr2 is true.\n" " \n" -" arg1 OP arg2 Arithmetic tests. OP is one of -eq, -ne,\n" -" -lt, -le, -gt, or -ge.\n" +" arg1 OP arg2 Arithmetic tests. OP is one of -eq, -ne,\n" +" -lt, -le, -gt, or -ge.\n" " \n" " Arithmetic binary operators return true if ARG1 is equal, not-equal,\n" " less-than, less-than-or-equal, greater-than, or greater-than-or-equal\n" -" than ARG2." +" than ARG2.\n" +" \n" +" Exit Status:\n" +" Returns success if EXPR evaluates to true; fails if EXPR evaluates to\n" +" false or an invalid argument is given." msgstr "" -" Exits with a status of 0 (true) or 1 (false) depending on\n" +"Evaluate conditional expression.\n" +" \n" +" Exits with a status of 0 (true) or 1 (false) depending on\n" " the evaluation of EXPR. Expressions may be unary or binary. Unary\n" " expressions are often used to examine the status of a file. There\n" " are string operators as well, and numeric comparison operators.\n" " \n" " File operators:\n" " \n" -" -a FILE True if file exists.\n" -" -b FILE True if file is block special.\n" -" -c FILE True if file is character special.\n" -" -d FILE True if file is a directory.\n" -" -e FILE True if file exists.\n" -" -f FILE True if file exists and is a regular file.\n" -" -g FILE True if file is set-group-id.\n" -" -h FILE True if file is a symbolic link.\n" -" -L FILE True if file is a symbolic link.\n" -" -k FILE True if file has its ‘sticky’ bit set.\n" -" -p FILE True if file is a named pipe.\n" -" -r FILE True if file is readable by you.\n" -" -s FILE True if file exists and is not empty.\n" -" -S FILE True if file is a socket.\n" -" -t FD True if FD is opened on a terminal.\n" -" -u FILE True if the file is set-user-id.\n" -" -w FILE True if the file is writable by you.\n" -" -x FILE True if the file is executable by you.\n" -" -O FILE True if the file is effectively owned by you.\n" -" -G FILE True if the file is effectively owned by your group.\n" -" -N FILE True if the file has been modified since it was last " +" -a FILE True if file exists.\n" +" -b FILE True if file is block special.\n" +" -c FILE True if file is character special.\n" +" -d FILE True if file is a directory.\n" +" -e FILE True if file exists.\n" +" -f FILE True if file exists and is a regular file.\n" +" -g FILE True if file is set-group-id.\n" +" -h FILE True if file is a symbolic link.\n" +" -L FILE True if file is a symbolic link.\n" +" -k FILE True if file has its ‘sticky’ bit set.\n" +" -p FILE True if file is a named pipe.\n" +" -r FILE True if file is readable by you.\n" +" -s FILE True if file exists and is not empty.\n" +" -S FILE True if file is a socket.\n" +" -t FD True if FD is opened on a terminal.\n" +" -u FILE True if the file is set-user-id.\n" +" -w FILE True if the file is writable by you.\n" +" -x FILE True if the file is executable by you.\n" +" -O FILE True if the file is effectively owned by you.\n" +" -G FILE True if the file is effectively owned by your group.\n" +" -N FILE True if the file has been modified since it was last " "read.\n" " \n" " FILE1 -nt FILE2 True if file1 is newer than file2 (according to\n" @@ -2673,279 +4011,422 @@ msgstr "" " \n" " String operators:\n" " \n" -" -z STRING True if string is empty.\n" +" -z STRING True if string is empty.\n" " \n" -" -n STRING\n" -" STRING True if string is not empty.\n" +" -n STRING\n" +" STRING True if string is not empty.\n" " \n" -" STRING1 = STRING2\n" -" True if the strings are equal.\n" -" STRING1 != STRING2\n" -" True if the strings are not equal.\n" -" STRING1 < STRING2\n" -" True if STRING1 sorts before STRING2 " -"lexicographically.\n" -" STRING1 > STRING2\n" -" True if STRING1 sorts after STRING2 " +" STRING1 = STRING2\n" +" True if the strings are equal.\n" +" STRING1 != STRING2\n" +" True if the strings are not equal.\n" +" STRING1 < STRING2\n" +" True if STRING1 sorts before STRING2 " "lexicographically.\n" +" STRING1 > STRING2\n" +" True if STRING1 sorts after STRING2 lexicographically.\n" " \n" " Other operators:\n" " \n" -" -o OPTION True if the shell option OPTION is enabled.\n" -" ! EXPR True if expr is false.\n" -" EXPR1 -a EXPR2 True if both expr1 AND expr2 are true.\n" -" EXPR1 -o EXPR2 True if either expr1 OR expr2 is true.\n" +" -o OPTION True if the shell option OPTION is enabled.\n" +" ! EXPR True if expr is false.\n" +" EXPR1 -a EXPR2 True if both expr1 AND expr2 are true.\n" +" EXPR1 -o EXPR2 True if either expr1 OR expr2 is true.\n" " \n" -" arg1 OP arg2 Arithmetic tests. OP is one of -eq, -ne,\n" -" -lt, -le, -gt, or -ge.\n" +" arg1 OP arg2 Arithmetic tests. OP is one of -eq, -ne,\n" +" -lt, -le, -gt, or -ge.\n" " \n" " Arithmetic binary operators return true if ARG1 is equal, not-equal,\n" " less-than, less-than-or-equal, greater-than, or greater-than-or-equal\n" -" than ARG2." +" than ARG2.\n" +" \n" +" Exit Status:\n" +" Returns success if EXPR evaluates to true; fails if EXPR evaluates to\n" +" false or an invalid argument is given." -#: builtins.c:975 +#: builtins.c:1292 msgid "" -" This is a synonym for the \"test\" builtin, but the last\n" -" argument must be a literal `]', to match the opening `['." +"Evaluate conditional expression.\n" +" \n" +" This is a synonym for the \"test\" builtin, but the last argument must\n" +" be a literal `]', to match the opening `['." msgstr "" -" This is a synonym for the “test” builtin, but the last\n" -" argument must be a literal ‘]’, to match the opening ‘[’." +"Evaluate conditional expression.\n" +" \n" +" This is a synonym for the “test” builtin, but the last argument must\n" +" be a literal ‘]’, to match the opening ‘[’." -#: builtins.c:982 +#: builtins.c:1301 msgid "" -" Print the accumulated user and system times for processes run from\n" -" the shell." +"Display process times.\n" +" \n" +" Prints the accumulated user and system times for the shell and all of " +"its\n" +" child processes.\n" +" \n" +" Exit Status:\n" +" Always succeeds." msgstr "" -" Print the accumulated user and system times for processes run from\n" -" the shell." +"Display process times.\n" +" \n" +" Prints the accumulated user and system times for the shell and all of " +"its\n" +" child processes.\n" +" \n" +" Exit Status:\n" +" Always succeeds." -#: builtins.c:989 +#: builtins.c:1313 msgid "" -" The command ARG is to be read and executed when the shell receives\n" +"Trap signals and other events.\n" +" \n" +" Defines and activates handlers to be run when the shell receives " +"signals\n" +" or other conditions.\n" +" \n" +" ARG is a command to be read and executed when the shell receives the\n" " signal(s) SIGNAL_SPEC. If ARG is absent (and a single SIGNAL_SPEC\n" " is supplied) or `-', each specified signal is reset to its original\n" " value. If ARG is the null string each SIGNAL_SPEC is ignored by the\n" -" shell and by the commands it invokes. If a SIGNAL_SPEC is EXIT (0)\n" -" the command ARG is executed on exit from the shell. If a SIGNAL_SPEC\n" -" is DEBUG, ARG is executed after every simple command. If the`-p' " -"option\n" -" is supplied then the trap commands associated with each SIGNAL_SPEC are\n" -" displayed. If no arguments are supplied or if only `-p' is given, trap\n" -" prints the list of commands associated with each signal. Each " -"SIGNAL_SPEC\n" -" is either a signal name in or a signal number. Signal names\n" -" are case insensitive and the SIG prefix is optional. `trap -l' prints\n" -" a list of signal names and their corresponding numbers. Note that a\n" -" signal can be sent to the shell with \"kill -signal $$\"." -msgstr "" -" The command ARG is to be read and executed when the shell receives\n" +" shell and by the commands it invokes.\n" +" \n" +" If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell. " +"If\n" +" a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command.\n" +" \n" +" If no arguments are supplied, trap prints the list of commands " +"associated\n" +" with each signal.\n" +" \n" +" Options:\n" +" -l\tprint a list of signal names and their corresponding numbers\n" +" -p\tdisplay the trap commands associated with each SIGNAL_SPEC\n" +" \n" +" Each SIGNAL_SPEC is either a signal name in or a signal " +"number.\n" +" Signal names are case insensitive and the SIG prefix is optional. A\n" +" signal may be sent to the shell with \"kill -signal $$\".\n" +" \n" +" Exit Status:\n" +" Returns success unless a SIGSPEC is invalid or an invalid option is " +"given." +msgstr "" +"Trap signals and other events.\n" +" \n" +" Defines and activates handlers to be run when the shell receives " +"signals\n" +" or other conditions.\n" +" \n" +" ARG is a command to be read and executed when the shell receives the\n" " signal(s) SIGNAL_SPEC. If ARG is absent (and a single SIGNAL_SPEC\n" " is supplied) or ‘-’, each specified signal is reset to its original\n" " value. If ARG is the null string each SIGNAL_SPEC is ignored by the\n" -" shell and by the commands it invokes. If a SIGNAL_SPEC is EXIT (0)\n" -" the command ARG is executed on exit from the shell. If a SIGNAL_SPEC\n" -" is DEBUG, ARG is executed after every simple command. If the‘-p’ " -"option\n" -" is supplied then the trap commands associated with each SIGNAL_SPEC are\n" -" displayed. If no arguments are supplied or if only ‘-p’ is given, trap\n" -" prints the list of commands associated with each signal. Each " -"SIGNAL_SPEC\n" -" is either a signal name in or a signal number. Signal names\n" -" are case insensitive and the SIG prefix is optional. ‘trap -l’ prints\n" -" a list of signal names and their corresponding numbers. Note that a\n" -" signal can be sent to the shell with “kill -signal $$”." - -#: builtins.c:1008 -msgid "" -" For each NAME, indicate how it would be interpreted if used as a\n" -" command name.\n" +" shell and by the commands it invokes.\n" +" \n" +" If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell. " +"If\n" +" a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command.\n" +" \n" +" If no arguments are supplied, trap prints the list of commands " +"associated\n" +" with each signal.\n" " \n" -" If the -t option is used, `type' outputs a single word which is one of\n" -" `alias', `keyword', `function', `builtin', `file' or `', if NAME is an\n" -" alias, shell reserved word, shell function, shell builtin, disk file,\n" -" or unfound, respectively.\n" +" Options:\n" +" -l\tprint a list of signal names and their corresponding numbers\n" +" -p\tdisplay the trap commands associated with each SIGNAL_SPEC\n" " \n" -" If the -p flag is used, `type' either returns the name of the disk\n" -" file that would be executed, or nothing if `type -t NAME' would not\n" -" return `file'.\n" +" Each SIGNAL_SPEC is either a signal name in or a signal " +"number.\n" +" Signal names are case insensitive and the SIG prefix is optional. A\n" +" signal may be sent to the shell with “kill -signal $$”.\n" " \n" -" If the -a flag is used, `type' displays all of the places that contain\n" -" an executable named `file'. This includes aliases, builtins, and\n" -" functions, if and only if the -p flag is not also used.\n" +" Exit Status:\n" +" Returns success unless a SIGSPEC is invalid or an invalid option is " +"given." + +#: builtins.c:1345 +msgid "" +"Display information about command type.\n" +" \n" +" For each NAME, indicate how it would be interpreted if used as a\n" +" command name.\n" " \n" -" The -f flag suppresses shell function lookup.\n" +" Options:\n" +" -a\tdisplay all locations containing an executable named NAME;\n" +" \tincludes aliases, builtins, and functions, if and only if\n" +" \tthe `-p' option is not also used\n" +" -f\tsuppress shell function lookup\n" +" -P\tforce a PATH search for each NAME, even if it is an alias,\n" +" \tbuiltin, or function, and returns the name of the disk file\n" +" \tthat would be executed\n" +" -p\treturns either the name of the disk file that would be executed,\n" +" \tor nothing if `type -t NAME' would not return `file'.\n" +" -t\toutput a single word which is one of `alias', `keyword',\n" +" \t`function', `builtin', `file' or `', if NAME is an alias, shell\n" +" \treserved word, shell function, shell builtin, disk file, or not\n" +" \tfound, respectively\n" " \n" -" The -P flag forces a PATH search for each NAME, even if it is an alias,\n" -" builtin, or function, and returns the name of the disk file that would\n" -" be executed." +" Arguments:\n" +" NAME\tCommand name to be interpreted.\n" +" \n" +" Exit Status:\n" +" Returns success if all of the NAMEs are found; fails if any are not " +"found." msgstr "" -" For each NAME, indicate how it would be interpreted if used as a\n" +"Display information about command type.\n" +" \n" +" For each NAME, indicate how it would be interpreted if used as a\n" " command name.\n" " \n" -" If the -t option is used, ‘type’ outputs a single word which is one of\n" -" ‘alias’, ‘keyword’, ‘function’, ‘builtin’, ‘file’ or ‘’, if NAME is an\n" -" alias, shell reserved word, shell function, shell builtin, disk file,\n" -" or unfound, respectively.\n" -" \n" -" If the -p flag is used, ‘type’ either returns the name of the disk\n" -" file that would be executed, or nothing if ‘type -t NAME’ would not\n" -" return ‘file’.\n" -" \n" -" If the -a flag is used, ‘type’ displays all of the places that contain\n" -" an executable named ‘file’. This includes aliases, builtins, and\n" -" functions, if and only if the -p flag is not also used.\n" -" \n" -" The -f flag suppresses shell function lookup.\n" -" \n" -" The -P flag forces a PATH search for each NAME, even if it is an alias,\n" -" builtin, or function, and returns the name of the disk file that would\n" -" be executed." - -#: builtins.c:1035 -msgid "" -" Ulimit provides control over the resources available to processes\n" -" started by the shell, on systems that allow such control. If an\n" -" option is given, it is interpreted as follows:\n" -" \n" -" -S\tuse the `soft' resource limit\n" -" -H\tuse the `hard' resource limit\n" -" -a\tall current limits are reported\n" -" -c\tthe maximum size of core files created\n" -" -d\tthe maximum size of a process's data segment\n" -" -f\tthe maximum size of files created by the shell\n" -" -i the maximum number of pending signals\n" -" -l\tthe maximum size a process may lock into memory\n" -" -m\tthe maximum resident set size\n" -" -n\tthe maximum number of open file descriptors\n" -" -p\tthe pipe buffer size\n" -" -q the maximum number of bytes in POSIX message queues\n" -" -s\tthe maximum stack size\n" -" -t\tthe maximum amount of cpu time in seconds\n" -" -u\tthe maximum number of user processes\n" -" -v\tthe size of virtual memory\n" -" -x the maximum number of file locks\n" -" \n" -" If LIMIT is given, it is the new value of the specified resource;\n" -" the special LIMIT values `soft', `hard', and `unlimited' stand for\n" -" the current soft limit, the current hard limit, and no limit, " -"respectively.\n" -" Otherwise, the current value of the specified resource is printed.\n" -" If no option is given, then -f is assumed. Values are in 1024-byte\n" -" increments, except for -t, which is in seconds, -p, which is in\n" -" increments of 512 bytes, and -u, which is an unscaled number of\n" -" processes." -msgstr "" -" Ulimit provides control over the resources available to processes\n" -" started by the shell, on systems that allow such control. If an\n" -" option is given, it is interpreted as follows:\n" -" \n" -" -S\tuse the ‘soft’ resource limit\n" -" -H\tuse the ‘hard’ resource limit\n" -" -a\tall current limits are reported\n" -" -c\tthe maximum size of core files created\n" -" -d\tthe maximum size of a process's data segment\n" -" -f\tthe maximum size of files created by the shell\n" -" -i the maximum number of pending signals\n" -" -l\tthe maximum size a process may lock into memory\n" -" -m\tthe maximum resident set size\n" -" -n\tthe maximum number of open file descriptors\n" -" -p\tthe pipe buffer size\n" -" -q the maximum number of bytes in POSIX message queues\n" -" -s\tthe maximum stack size\n" -" -t\tthe maximum amount of cpu time in seconds\n" -" -u\tthe maximum number of user processes\n" -" -v\tthe size of virtual memory\n" -" -x the maximum number of file locks\n" -" \n" -" If LIMIT is given, it is the new value of the specified resource;\n" -" the special LIMIT values ‘soft’, ‘hard’, and ‘unlimited’ stand for\n" -" the current soft limit, the current hard limit, and no limit, " -"respectively.\n" -" Otherwise, the current value of the specified resource is printed.\n" -" If no option is given, then -f is assumed. Values are in 1024-byte\n" -" increments, except for -t, which is in seconds, -p, which is in\n" -" increments of 512 bytes, and -u, which is an unscaled number of\n" -" processes." - -#: builtins.c:1071 -msgid "" -" The user file-creation mask is set to MODE. If MODE is omitted, or if\n" -" `-S' is supplied, the current value of the mask is printed. The `-S'\n" -" option makes the output symbolic; otherwise an octal number is output.\n" -" If `-p' is supplied, and MODE is omitted, the output is in a form\n" -" that may be used as input. If MODE begins with a digit, it is\n" -" interpreted as an octal number, otherwise it is a symbolic mode string\n" -" like that accepted by chmod(1)." -msgstr "" -" The user file-creation mask is set to MODE. If MODE is omitted, or if\n" -" ‘-S’ is supplied, the current value of the mask is printed. The ‘-S’\n" -" option makes the output symbolic; otherwise an octal number is output.\n" -" If ‘-p’ is supplied, and MODE is omitted, the output is in a form\n" -" that may be used as input. If MODE begins with a digit, it is\n" -" interpreted as an octal number, otherwise it is a symbolic mode string\n" -" like that accepted by chmod(1)." - -#: builtins.c:1084 -msgid "" -" Wait for the specified process and report its termination status. If\n" -" N is not given, all currently active child processes are waited for,\n" -" and the return code is zero. N may be a process ID or a job\n" -" specification; if a job spec is given, all processes in the job's\n" -" pipeline are waited for." -msgstr "" -" Wait for the specified process and report its termination status. If\n" -" N is not given, all currently active child processes are waited for,\n" -" and the return code is zero. N may be a process ID or a job\n" -" specification; if a job spec is given, all processes in the job's\n" -" pipeline are waited for." - -#: builtins.c:1096 -msgid "" -" Wait for the specified process and report its termination status. If\n" -" N is not given, all currently active child processes are waited for,\n" -" and the return code is zero. N is a process ID; if it is not given,\n" -" all child processes of the shell are waited for." -msgstr "" -" Wait for the specified process and report its termination status. If\n" -" N is not given, all currently active child processes are waited for,\n" -" and the return code is zero. N is a process ID; if it is not given,\n" -" all child processes of the shell are waited for." - -#: builtins.c:1106 -msgid "" -" The `for' loop executes a sequence of commands for each member in a\n" +" Options:\n" +" -a\tdisplay all locations containing an executable named NAME;\n" +" \tincludes aliases, builtins, and functions, if and only if\n" +" \tthe ‘-p’ option is not also used\n" +" -f\tsuppress shell function lookup\n" +" -P\tforce a PATH search for each NAME, even if it is an alias,\n" +" \tbuiltin, or function, and returns the name of the disk file\n" +" \tthat would be executed\n" +" -p\treturns either the name of the disk file that would be executed,\n" +" \tor nothing if ‘type -t NAME’ would not return ‘file’.\n" +" -t\toutput a single word which is one of ‘alias’, ‘keyword’,\n" +" \t‘function’, ‘builtin’, ‘file’ or ‘’, if NAME is an alias, shell\n" +" \treserved word, shell function, shell builtin, disk file, or not\n" +" \tfound, respectively\n" +" \n" +" Arguments:\n" +" NAME\tCommand name to be interpreted.\n" +" \n" +" Exit Status:\n" +" Returns success if all of the NAMEs are found; fails if any are not " +"found." + +#: builtins.c:1376 +msgid "" +"Modify shell resource limits.\n" +" \n" +" Provides control over the resources available to the shell and " +"processes\n" +" it creates, on systems that allow such control.\n" +" \n" +" Options:\n" +" -S\tuse the `soft' resource limit\n" +" -H\tuse the `hard' resource limit\n" +" -a\tall current limits are reported\n" +" -b\tthe socket buffer size\n" +" -c\tthe maximum size of core files created\n" +" -d\tthe maximum size of a process's data segment\n" +" -e\tthe maximum scheduling priority (`nice')\n" +" -f\tthe maximum size of files written by the shell and its children\n" +" -i\tthe maximum number of pending signals\n" +" -l\tthe maximum size a process may lock into memory\n" +" -m\tthe maximum resident set size\n" +" -n\tthe maximum number of open file descriptors\n" +" -p\tthe pipe buffer size\n" +" -q\tthe maximum number of bytes in POSIX message queues\n" +" -r\tthe maximum real-time scheduling priority\n" +" -s\tthe maximum stack size\n" +" -t\tthe maximum amount of cpu time in seconds\n" +" -u\tthe maximum number of user processes\n" +" -v\tthe size of virtual memory\n" +" -x\tthe maximum number of file locks\n" +" \n" +" If LIMIT is given, it is the new value of the specified resource; the\n" +" special LIMIT values `soft', `hard', and `unlimited' stand for the\n" +" current soft limit, the current hard limit, and no limit, respectively.\n" +" Otherwise, the current value of the specified resource is printed. If\n" +" no option is given, then -f is assumed.\n" +" \n" +" Values are in 1024-byte increments, except for -t, which is in seconds,\n" +" -p, which is in increments of 512 bytes, and -u, which is an unscaled\n" +" number of processes.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" +"Modify shell resource limits.\n" +" \n" +" Provides control over the resources available to the shell and " +"processes\n" +" it creates, on systems that allow such control.\n" +" \n" +" Options:\n" +" -S\tuse the ‘soft’ resource limit\n" +" -H\tuse the ‘hard’ resource limit\n" +" -a\tall current limits are reported\n" +" -b\tthe socket buffer size\n" +" -c\tthe maximum size of core files created\n" +" -d\tthe maximum size of a process's data segment\n" +" -e\tthe maximum scheduling priority (‘nice’)\n" +" -f\tthe maximum size of files written by the shell and its children\n" +" -i\tthe maximum number of pending signals\n" +" -l\tthe maximum size a process may lock into memory\n" +" -m\tthe maximum resident set size\n" +" -n\tthe maximum number of open file descriptors\n" +" -p\tthe pipe buffer size\n" +" -q\tthe maximum number of bytes in POSIX message queues\n" +" -r\tthe maximum real-time scheduling priority\n" +" -s\tthe maximum stack size\n" +" -t\tthe maximum amount of cpu time in seconds\n" +" -u\tthe maximum number of user processes\n" +" -v\tthe size of virtual memory\n" +" -x\tthe maximum number of file locks\n" +" \n" +" If LIMIT is given, it is the new value of the specified resource; the\n" +" special LIMIT values ‘soft’, ‘hard’, and ‘unlimited’ stand for the\n" +" current soft limit, the current hard limit, and no limit, respectively.\n" +" Otherwise, the current value of the specified resource is printed. If\n" +" no option is given, then -f is assumed.\n" +" \n" +" Values are in 1024-byte increments, except for -t, which is in seconds,\n" +" -p, which is in increments of 512 bytes, and -u, which is an unscaled\n" +" number of processes.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." + +#: builtins.c:1421 +msgid "" +"Display or set file mode mask.\n" +" \n" +" Sets the user file-creation mask to MODE. If MODE is omitted, prints\n" +" the current value of the mask.\n" +" \n" +" If MODE begins with a digit, it is interpreted as an octal number;\n" +" otherwise it is a symbolic mode string like that accepted by chmod(1).\n" +" \n" +" Options:\n" +" -p\tif MODE is omitted, output in a form that may be reused as input\n" +" -S\tmakes the output symbolic; otherwise an octal number is output\n" +" \n" +" Exit Status:\n" +" Returns success unless MODE is invalid or an invalid option is given." +msgstr "" +"Display or set file mode mask.\n" +" \n" +" Sets the user file-creation mask to MODE. If MODE is omitted, prints\n" +" the current value of the mask.\n" +" \n" +" If MODE begins with a digit, it is interpreted as an octal number;\n" +" otherwise it is a symbolic mode string like that accepted by chmod(1).\n" +" \n" +" Options:\n" +" -p\tif MODE is omitted, output in a form that may be reused as input\n" +" -S\tmakes the output symbolic; otherwise an octal number is output\n" +" \n" +" Exit Status:\n" +" Returns success unless MODE is invalid or an invalid option is given." + +#: builtins.c:1441 +msgid "" +"Wait for job completion and return exit status.\n" +" \n" +" Waits for the process identified by ID, which may be a process ID or a\n" +" job specification, and reports its termination status. If ID is not\n" +" given, waits for all currently active child processes, and the return\n" +" status is zero. If ID is a a job specification, waits for all " +"processes\n" +" in the job's pipeline.\n" +" \n" +" Exit Status:\n" +" Returns the status of ID; fails if ID is invalid or an invalid option " +"is\n" +" given." +msgstr "" +"Wait for job completion and return exit status.\n" +" \n" +" Waits for the process identified by ID, which may be a process ID or a\n" +" job specification, and reports its termination status. If ID is not\n" +" given, waits for all currently active child processes, and the return\n" +" status is zero. If ID is a a job specification, waits for all " +"processes\n" +" in the job's pipeline.\n" +" \n" +" Exit Status:\n" +" Returns the status of ID; fails if ID is invalid or an invalid option " +"is\n" +" given." + +#: builtins.c:1459 +msgid "" +"Wait for process completion and return exit status.\n" +" \n" +" Waits for the specified process and reports its termination status. If\n" +" PID is not given, all currently active child processes are waited for,\n" +" and the return code is zero. PID must be a process ID.\n" +" \n" +" Exit Status:\n" +" Returns the status of ID; fails if ID is invalid or an invalid option " +"is\n" +" given." +msgstr "" +"Wait for process completion and return exit status.\n" +" \n" +" Waits for the specified process and reports its termination status. If\n" +" PID is not given, all currently active child processes are waited for,\n" +" and the return code is zero. PID must be a process ID.\n" +" \n" +" Exit Status:\n" +" Returns the status of ID; fails if ID is invalid or an invalid option " +"is\n" +" given." + +#: builtins.c:1474 +msgid "" +"Execute commands for each member in a list.\n" +" \n" +" The `for' loop executes a sequence of commands for each member in a\n" " list of items. If `in WORDS ...;' is not present, then `in \"$@\"' is\n" " assumed. For each element in WORDS, NAME is set to that element, and\n" -" the COMMANDS are executed." +" the COMMANDS are executed.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." msgstr "" -" The ‘for’ loop executes a sequence of commands for each member in a\n" +"Execute commands for each member in a list.\n" +" \n" +" The ‘for’ loop executes a sequence of commands for each member in a\n" " list of items. If ‘in WORDS ...;’ is not present, then ‘in “$@”’ is\n" " assumed. For each element in WORDS, NAME is set to that element, and\n" -" the COMMANDS are executed." +" the COMMANDS are executed.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." -#: builtins.c:1115 +#: builtins.c:1488 msgid "" -" Equivalent to\n" +"Arithmetic for loop.\n" +" \n" +" Equivalent to\n" " \t(( EXP1 ))\n" " \twhile (( EXP2 )); do\n" " \t\tCOMMANDS\n" " \t\t(( EXP3 ))\n" " \tdone\n" " EXP1, EXP2, and EXP3 are arithmetic expressions. If any expression is\n" -" omitted, it behaves as if it evaluates to 1." +" omitted, it behaves as if it evaluates to 1.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." msgstr "" -" Equivalent to\n" +"Arithmetic for loop.\n" +" \n" +" Equivalent to\n" " \t(( EXP1 ))\n" " \twhile (( EXP2 )); do\n" " \t\tCOMMANDS\n" " \t\t(( EXP3 ))\n" " \tdone\n" " EXP1, EXP2, and EXP3 are arithmetic expressions. If any expression is\n" -" omitted, it behaves as if it evaluates to 1." +" omitted, it behaves as if it evaluates to 1.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." -#: builtins.c:1128 +#: builtins.c:1506 msgid "" -" The WORDS are expanded, generating a list of words. The\n" +"Select words from a list and execute commands.\n" +" \n" +" The WORDS are expanded, generating a list of words. The\n" " set of expanded words is printed on the standard error, each\n" " preceded by a number. If `in WORDS' is not present, `in \"$@\"'\n" " is assumed. The PS3 prompt is then displayed and a line read\n" @@ -2955,9 +4436,14 @@ msgid "" " redisplayed. If EOF is read, the command completes. Any other\n" " value read causes NAME to be set to null. The line read is saved\n" " in the variable REPLY. COMMANDS are executed after each selection\n" -" until a break command is executed." +" until a break command is executed.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." msgstr "" -" The WORDS are expanded, generating a list of words. The\n" +"Select words from a list and execute commands.\n" +" \n" +" The WORDS are expanded, generating a list of words. The\n" " set of expanded words is printed on the standard error, each\n" " preceded by a number. If ‘in WORDS’ is not present, ‘in “$@”’\n" " is assumed. The PS3 prompt is then displayed and a line read\n" @@ -2967,33 +4453,63 @@ msgstr "" " redisplayed. If EOF is read, the command completes. Any other\n" " value read causes NAME to be set to null. The line read is saved\n" " in the variable REPLY. COMMANDS are executed after each selection\n" -" until a break command is executed." +" until a break command is executed.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." -#: builtins.c:1144 +#: builtins.c:1527 msgid "" -" Execute PIPELINE and print a summary of the real time, user CPU time,\n" +"Report time consumed by pipeline's execution.\n" +" \n" +" Execute PIPELINE and print a summary of the real time, user CPU time,\n" " and system CPU time spent executing PIPELINE when it terminates.\n" -" The return status is the return status of PIPELINE. The `-p' option\n" -" prints the timing summary in a slightly different format. This uses\n" -" the value of the TIMEFORMAT variable as the output format." +" \n" +" Options:\n" +" -p\tprint the timing summary in the portable Posix format\n" +" \n" +" The value of the TIMEFORMAT variable is used as the output format.\n" +" \n" +" Exit Status:\n" +" The return status is the return status of PIPELINE." msgstr "" -" Execute PIPELINE and print a summary of the real time, user CPU time,\n" +"Report time consumed by pipeline's execution.\n" +" \n" +" Execute PIPELINE and print a summary of the real time, user CPU time,\n" " and system CPU time spent executing PIPELINE when it terminates.\n" -" The return status is the return status of PIPELINE. The ‘-p’ option\n" -" prints the timing summary in a slightly different format. This uses\n" -" the value of the TIMEFORMAT variable as the output format." +" \n" +" Options:\n" +" -p\tprint the timing summary in the portable Posix format\n" +" \n" +" The value of the TIMEFORMAT variable is used as the output format.\n" +" \n" +" Exit Status:\n" +" The return status is the return status of PIPELINE." -#: builtins.c:1154 +#: builtins.c:1544 msgid "" -" Selectively execute COMMANDS based upon WORD matching PATTERN. The\n" -" `|' is used to separate multiple patterns." +"Execute commands based on pattern matching.\n" +" \n" +" Selectively execute COMMANDS based upon WORD matching PATTERN. The\n" +" `|' is used to separate multiple patterns.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." msgstr "" -" Selectively execute COMMANDS based upon WORD matching PATTERN. The\n" -" ‘|’ is used to separate multiple patterns." +"Execute commands based on pattern matching.\n" +" \n" +" Selectively execute COMMANDS based upon WORD matching PATTERN. The\n" +" ‘|’ is used to separate multiple patterns.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." -#: builtins.c:1161 +#: builtins.c:1556 msgid "" -" The `if COMMANDS' list is executed. If its exit status is zero, then the\n" +"Execute commands based on conditional.\n" +" \n" +" The `if COMMANDS' list is executed. If its exit status is zero, then " +"the\n" " `then COMMANDS' list is executed. Otherwise, each `elif COMMANDS' list " "is\n" " executed in turn, and if its exit status is zero, the corresponding\n" @@ -3003,9 +4519,15 @@ msgid "" "the\n" " entire construct is the exit status of the last command executed, or " "zero\n" -" if no condition tested true." +" if no condition tested true.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." msgstr "" -" The ‘if COMMANDS’ list is executed. If its exit status is zero, then the\n" +"Execute commands based on conditional.\n" +" \n" +" The ‘if COMMANDS’ list is executed. If its exit status is zero, then " +"the\n" " ‘then COMMANDS’ list is executed. Otherwise, each ‘elif COMMANDS’ list " "is\n" " executed in turn, and if its exit status is zero, the corresponding\n" @@ -3015,116 +4537,200 @@ msgstr "" "the\n" " entire construct is the exit status of the last command executed, or " "zero\n" -" if no condition tested true." +" if no condition tested true.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." -#: builtins.c:1173 +#: builtins.c:1573 msgid "" -" Expand and execute COMMANDS as long as the final command in the\n" -" `while' COMMANDS has an exit status of zero." +"Execute commands as long as a test succeeds.\n" +" \n" +" Expand and execute COMMANDS as long as the final command in the\n" +" `while' COMMANDS has an exit status of zero.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." msgstr "" -" Expand and execute COMMANDS as long as the final command in the\n" -" ‘while’ COMMANDS has an exit status of zero." +"Execute commands as long as a test succeeds.\n" +" \n" +" Expand and execute COMMANDS as long as the final command in the\n" +" ‘while’ COMMANDS has an exit status of zero.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." -#: builtins.c:1180 +#: builtins.c:1585 msgid "" -" Expand and execute COMMANDS as long as the final command in the\n" -" `until' COMMANDS has an exit status which is not zero." +"Execute commands as long as a test does not succeed.\n" +" \n" +" Expand and execute COMMANDS as long as the final command in the\n" +" `until' COMMANDS has an exit status which is not zero.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." msgstr "" -" Expand and execute COMMANDS as long as the final command in the\n" -" ‘until’ COMMANDS has an exit status which is not zero." +"Execute commands as long as a test does not succeed.\n" +" \n" +" Expand and execute COMMANDS as long as the final command in the\n" +" ‘until’ COMMANDS has an exit status which is not zero.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." -#: builtins.c:1187 +#: builtins.c:1597 msgid "" -" Create a simple command invoked by NAME which runs COMMANDS.\n" -" Arguments on the command line along with NAME are passed to the\n" -" function as $0 .. $n." +"Define shell function.\n" +" \n" +" Create a shell function named NAME. When invoked as a simple command,\n" +" NAME runs COMMANDs in the calling shell's context. When NAME is " +"invoked,\n" +" the arguments are passed to the function as $1...$n, and the function's\n" +" name is in $FUNCNAME.\n" +" \n" +" Exit Status:\n" +" Returns success unless NAME is readonly." msgstr "" -" Create a simple command invoked by NAME which runs COMMANDS.\n" -" Arguments on the command line along with NAME are passed to the\n" -" function as $0 .. $n." +"Define shell function.\n" +" \n" +" Create a shell function named NAME. When invoked as a simple command,\n" +" NAME runs COMMANDs in the calling shell's context. When NAME is " +"invoked,\n" +" the arguments are passed to the function as $1...$n, and the function's\n" +" name is in $FUNCNAME.\n" +" \n" +" Exit Status:\n" +" Returns success unless NAME is readonly." -#: builtins.c:1195 +#: builtins.c:1611 msgid "" -" Run a set of commands in a group. This is one way to redirect an\n" -" entire set of commands." +"Group commands as a unit.\n" +" \n" +" Run a set of commands in a group. This is one way to redirect an\n" +" entire set of commands.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." msgstr "" -" Run a set of commands in a group. This is one way to redirect an\n" -" entire set of commands." +"Group commands as a unit.\n" +" \n" +" Run a set of commands in a group. This is one way to redirect an\n" +" entire set of commands.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." -#: builtins.c:1202 +#: builtins.c:1623 msgid "" -" Equivalent to the JOB_SPEC argument to the `fg' command. Resume a\n" +"Resume job in foreground.\n" +" \n" +" Equivalent to the JOB_SPEC argument to the `fg' command. Resume a\n" " stopped or background job. JOB_SPEC can specify either a job name\n" " or a job number. Following JOB_SPEC with a `&' places the job in\n" " the background, as if the job specification had been supplied as an\n" -" argument to `bg'." +" argument to `bg'.\n" +" \n" +" Exit Status:\n" +" Returns the status of the resumed job." msgstr "" -" Equivalent to the JOB_SPEC argument to the ‘fg’ command. Resume a\n" +"Resume job in foreground.\n" +" \n" +" Equivalent to the JOB_SPEC argument to the ‘fg’ command. Resume a\n" " stopped or background job. JOB_SPEC can specify either a job name\n" " or a job number. Following JOB_SPEC with a ‘&’ places the job in\n" " the background, as if the job specification had been supplied as an\n" -" argument to ‘bg’." +" argument to ‘bg’.\n" +" \n" +" Exit Status:\n" +" Returns the status of the resumed job." -#: builtins.c:1212 +#: builtins.c:1638 msgid "" -" The EXPRESSION is evaluated according to the rules for arithmetic\n" -" evaluation. Equivalent to \"let EXPRESSION\"." +"Evaluate arithmetic expression.\n" +" \n" +" The EXPRESSION is evaluated according to the rules for arithmetic\n" +" evaluation. Equivalent to \"let EXPRESSION\".\n" +" \n" +" Exit Status:\n" +" Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise." msgstr "" -" The EXPRESSION is evaluated according to the rules for arithmetic\n" -" evaluation. Equivalent to “let EXPRESSION”." +"Evaluate arithmetic expression.\n" +" \n" +" The EXPRESSION is evaluated according to the rules for arithmetic\n" +" evaluation. Equivalent to “let EXPRESSION”.\n" +" \n" +" Exit Status:\n" +" Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise." -#: builtins.c:1219 +#: builtins.c:1650 msgid "" -" Returns a status of 0 or 1 depending on the evaluation of the conditional\n" +"Execute conditional command.\n" +" \n" +" Returns a status of 0 or 1 depending on the evaluation of the " +"conditional\n" " expression EXPRESSION. Expressions are composed of the same primaries " "used\n" " by the `test' builtin, and may be combined using the following " -"operators\n" +"operators:\n" " \n" -" \t( EXPRESSION )\tReturns the value of EXPRESSION\n" -" \t! EXPRESSION\tTrue if EXPRESSION is false; else false\n" -" \tEXPR1 && EXPR2\tTrue if both EXPR1 and EXPR2 are true; else false\n" -" \tEXPR1 || EXPR2\tTrue if either EXPR1 or EXPR2 is true; else false\n" +" ( EXPRESSION )\tReturns the value of EXPRESSION\n" +" ! EXPRESSION\t\tTrue if EXPRESSION is false; else false\n" +" EXPR1 && EXPR2\tTrue if both EXPR1 and EXPR2 are true; else false\n" +" EXPR1 || EXPR2\tTrue if either EXPR1 or EXPR2 is true; else false\n" " \n" -" When the `==' and `!=' operators are used, the string to the right of " -"the\n" -" operator is used as a pattern and pattern matching is performed. The\n" -" && and || operators do not evaluate EXPR2 if EXPR1 is sufficient to\n" -" determine the expression's value." +" When the `==' and `!=' operators are used, the string to the right of\n" +" the operator is used as a pattern and pattern matching is performed.\n" +" When the `=~' operator is used, the string to the right of the operator\n" +" is matched as a regular expression.\n" +" \n" +" The && and || operators do not evaluate EXPR2 if EXPR1 is sufficient to\n" +" determine the expression's value.\n" +" \n" +" Exit Status:\n" +" 0 or 1 depending on value of EXPRESSION." msgstr "" -" Returns a status of 0 or 1 depending on the evaluation of the conditional\n" +"Execute conditional command.\n" +" \n" +" Returns a status of 0 or 1 depending on the evaluation of the " +"conditional\n" " expression EXPRESSION. Expressions are composed of the same primaries " "used\n" " by the ‘test’ builtin, and may be combined using the following " -"operators\n" +"operators:\n" " \n" -" \t( EXPRESSION )\tReturns the value of EXPRESSION\n" -" \t! EXPRESSION\tTrue if EXPRESSION is false; else false\n" -" \tEXPR1 && EXPR2\tTrue if both EXPR1 and EXPR2 are true; else false\n" -" \tEXPR1 || EXPR2\tTrue if either EXPR1 or EXPR2 is true; else false\n" +" ( EXPRESSION )\tReturns the value of EXPRESSION\n" +" ! EXPRESSION\t\tTrue if EXPRESSION is false; else false\n" +" EXPR1 && EXPR2\tTrue if both EXPR1 and EXPR2 are true; else false\n" +" EXPR1 || EXPR2\tTrue if either EXPR1 or EXPR2 is true; else false\n" " \n" -" When the ‘==’ and ‘!=’ operators are used, the string to the right of " -"the\n" -" operator is used as a pattern and pattern matching is performed. The\n" -" && and || operators do not evaluate EXPR2 if EXPR1 is sufficient to\n" -" determine the expression's value." +" When the ‘==’ and ‘!=’ operators are used, the string to the right of\n" +" the operator is used as a pattern and pattern matching is performed.\n" +" When the ‘=~’ operator is used, the string to the right of the operator\n" +" is matched as a regular expression.\n" +" \n" +" The && and || operators do not evaluate EXPR2 if EXPR1 is sufficient to\n" +" determine the expression's value.\n" +" \n" +" Exit Status:\n" +" 0 or 1 depending on value of EXPRESSION." -#: builtins.c:1237 +#: builtins.c:1676 msgid "" -" BASH_VERSION Version information for this Bash.\n" -" CDPATH A colon-separated list of directories to search\n" -" \t\tfor directries given as arguments to `cd'.\n" +"Common shell variable names and usage.\n" +" \n" +" BASH_VERSION\tVersion information for this Bash.\n" +" CDPATH\tA colon-separated list of directories to search\n" +" \t\tfor directories given as arguments to `cd'.\n" " GLOBIGNORE\tA colon-separated list of patterns describing filenames to\n" " \t\tbe ignored by pathname expansion.\n" -" HISTFILE The name of the file where your command history is " -"stored.\n" -" HISTFILESIZE The maximum number of lines this file can contain.\n" -" HISTSIZE The maximum number of history lines that a running\n" +" HISTFILE\tThe name of the file where your command history is stored.\n" +" HISTFILESIZE\tThe maximum number of lines this file can contain.\n" +" HISTSIZE\tThe maximum number of history lines that a running\n" " \t\tshell can access.\n" -" HOME The complete pathname to your login directory.\n" +" HOME\tThe complete pathname to your login directory.\n" " HOSTNAME\tThe name of the current host.\n" -" HOSTTYPE The type of CPU this version of Bash is running under.\n" -" IGNOREEOF Controls the action of the shell on receipt of an EOF\n" +" HOSTTYPE\tThe type of CPU this version of Bash is running under.\n" +" IGNOREEOF\tControls the action of the shell on receipt of an EOF\n" " \t\tcharacter as the sole input. If set, then the value\n" " \t\tof it is the number of EOF characters that can be seen\n" " \t\tin a row on an empty line before the shell will exit\n" @@ -3133,19 +4739,19 @@ msgid "" " MAILCHECK\tHow often, in seconds, Bash checks for new mail.\n" " MAILPATH\tA colon-separated list of filenames which Bash checks\n" " \t\tfor new mail.\n" -" OSTYPE\t\tThe version of Unix this version of Bash is running on.\n" -" PATH A colon-separated list of directories to search when\n" +" OSTYPE\tThe version of Unix this version of Bash is running on.\n" +" PATH\tA colon-separated list of directories to search when\n" " \t\tlooking for commands.\n" -" PROMPT_COMMAND A command to be executed before the printing of each\n" +" PROMPT_COMMAND\tA command to be executed before the printing of each\n" " \t\tprimary prompt.\n" -" PS1 The primary prompt string.\n" -" PS2 The secondary prompt string.\n" +" PS1\t\tThe primary prompt string.\n" +" PS2\t\tThe secondary prompt string.\n" " PWD\t\tThe full pathname of the current directory.\n" " SHELLOPTS\tA colon-separated list of enabled shell options.\n" -" TERM The name of the current terminal type.\n" +" TERM\tThe name of the current terminal type.\n" " TIMEFORMAT\tThe output format for timing statistics displayed by the\n" " \t\t`time' reserved word.\n" -" auto_resume Non-null means a command word appearing on a line by\n" +" auto_resume\tNon-null means a command word appearing on a line by\n" " \t\titself is first looked for in the list of currently\n" " \t\tstopped jobs. If found there, that job is foregrounded.\n" " \t\tA value of `exact' means that the command word must\n" @@ -3153,7 +4759,7 @@ msgid "" " \t\tvalue of `substring' means that the command word must\n" " \t\tmatch a substring of the job. Any other value means that\n" " \t\tthe command must be a prefix of a stopped job.\n" -" histchars Characters controlling history expansion and quick\n" +" histchars\tCharacters controlling history expansion and quick\n" " \t\tsubstitution. The first character is the history\n" " \t\tsubstitution character, usually `!'. The second is\n" " \t\tthe `quick substitution' character, usually `^'. The\n" @@ -3161,20 +4767,21 @@ msgid "" " HISTIGNORE\tA colon-separated list of patterns used to decide which\n" " \t\tcommands should be saved on the history list.\n" msgstr "" -" BASH_VERSION Version information for this Bash.\n" -" CDPATH A colon-separated list of directories to search\n" -" \t\tfor directries given as arguments to ‘cd’.\n" +"Common shell variable names and usage.\n" +" \n" +" BASH_VERSION\tVersion information for this Bash.\n" +" CDPATH\tA colon-separated list of directories to search\n" +" \t\tfor directories given as arguments to ‘cd’.\n" " GLOBIGNORE\tA colon-separated list of patterns describing filenames to\n" " \t\tbe ignored by pathname expansion.\n" -" HISTFILE The name of the file where your command history is " -"stored.\n" -" HISTFILESIZE The maximum number of lines this file can contain.\n" -" HISTSIZE The maximum number of history lines that a running\n" +" HISTFILE\tThe name of the file where your command history is stored.\n" +" HISTFILESIZE\tThe maximum number of lines this file can contain.\n" +" HISTSIZE\tThe maximum number of history lines that a running\n" " \t\tshell can access.\n" -" HOME The complete pathname to your login directory.\n" +" HOME\tThe complete pathname to your login directory.\n" " HOSTNAME\tThe name of the current host.\n" -" HOSTTYPE The type of CPU this version of Bash is running under.\n" -" IGNOREEOF Controls the action of the shell on receipt of an EOF\n" +" HOSTTYPE\tThe type of CPU this version of Bash is running under.\n" +" IGNOREEOF\tControls the action of the shell on receipt of an EOF\n" " \t\tcharacter as the sole input. If set, then the value\n" " \t\tof it is the number of EOF characters that can be seen\n" " \t\tin a row on an empty line before the shell will exit\n" @@ -3183,19 +4790,19 @@ msgstr "" " MAILCHECK\tHow often, in seconds, Bash checks for new mail.\n" " MAILPATH\tA colon-separated list of filenames which Bash checks\n" " \t\tfor new mail.\n" -" OSTYPE\t\tThe version of Unix this version of Bash is running on.\n" -" PATH A colon-separated list of directories to search when\n" +" OSTYPE\tThe version of Unix this version of Bash is running on.\n" +" PATH\tA colon-separated list of directories to search when\n" " \t\tlooking for commands.\n" -" PROMPT_COMMAND A command to be executed before the printing of each\n" +" PROMPT_COMMAND\tA command to be executed before the printing of each\n" " \t\tprimary prompt.\n" -" PS1 The primary prompt string.\n" -" PS2 The secondary prompt string.\n" +" PS1\t\tThe primary prompt string.\n" +" PS2\t\tThe secondary prompt string.\n" " PWD\t\tThe full pathname of the current directory.\n" " SHELLOPTS\tA colon-separated list of enabled shell options.\n" -" TERM The name of the current terminal type.\n" +" TERM\tThe name of the current terminal type.\n" " TIMEFORMAT\tThe output format for timing statistics displayed by the\n" " \t\t‘time’ reserved word.\n" -" auto_resume Non-null means a command word appearing on a line by\n" +" auto_resume\tNon-null means a command word appearing on a line by\n" " \t\titself is first looked for in the list of currently\n" " \t\tstopped jobs. If found there, that job is foregrounded.\n" " \t\tA value of ‘exact’ means that the command word must\n" @@ -3203,7 +4810,7 @@ msgstr "" " \t\tvalue of ‘substring’ means that the command word must\n" " \t\tmatch a substring of the job. Any other value means that\n" " \t\tthe command must be a prefix of a stopped job.\n" -" histchars Characters controlling history expansion and quick\n" +" histchars\tCharacters controlling history expansion and quick\n" " \t\tsubstitution. The first character is the history\n" " \t\tsubstitution character, usually ‘!’. The second is\n" " \t\tthe ‘quick substitution’ character, usually ‘^’. The\n" @@ -3211,196 +4818,442 @@ msgstr "" " HISTIGNORE\tA colon-separated list of patterns used to decide which\n" " \t\tcommands should be saved on the history list.\n" -#: builtins.c:1292 +#: builtins.c:1733 msgid "" -" Adds a directory to the top of the directory stack, or rotates\n" +"Add directories to stack.\n" +" \n" +" Adds a directory to the top of the directory stack, or rotates\n" " the stack, making the new top of the stack the current working\n" " directory. With no arguments, exchanges the top two directories.\n" " \n" -" +N\tRotates the stack so that the Nth directory (counting\n" +" Options:\n" +" -n\tSuppresses the normal change of directory when adding\n" +" \tdirectories to the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRotates the stack so that the Nth directory (counting\n" " \tfrom the left of the list shown by `dirs', starting with\n" " \tzero) is at the top.\n" " \n" -" -N\tRotates the stack so that the Nth directory (counting\n" +" -N\tRotates the stack so that the Nth directory (counting\n" " \tfrom the right of the list shown by `dirs', starting with\n" " \tzero) is at the top.\n" " \n" -" -n\tsuppress the normal change of directory when adding directories\n" -" \tto the stack, so only the stack is manipulated.\n" -" \n" -" dir\tadds DIR to the directory stack at the top, making it the\n" +" dir\tAdds DIR to the directory stack at the top, making it the\n" " \tnew current working directory.\n" " \n" -" You can see the directory stack with the `dirs' command." +" The `dirs' builtin displays the directory stack.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid argument is supplied or the directory\n" +" change fails." msgstr "" -" Adds a directory to the top of the directory stack, or rotates\n" +"Add directories to stack.\n" +" \n" +" Adds a directory to the top of the directory stack, or rotates\n" " the stack, making the new top of the stack the current working\n" " directory. With no arguments, exchanges the top two directories.\n" " \n" -" +N\tRotates the stack so that the Nth directory (counting\n" +" Options:\n" +" -n\tSuppresses the normal change of directory when adding\n" +" \tdirectories to the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRotates the stack so that the Nth directory (counting\n" " \tfrom the left of the list shown by ‘dirs’, starting with\n" " \tzero) is at the top.\n" " \n" -" -N\tRotates the stack so that the Nth directory (counting\n" +" -N\tRotates the stack so that the Nth directory (counting\n" " \tfrom the right of the list shown by ‘dirs’, starting with\n" " \tzero) is at the top.\n" " \n" -" -n\tsuppress the normal change of directory when adding directories\n" -" \tto the stack, so only the stack is manipulated.\n" -" \n" -" dir\tadds DIR to the directory stack at the top, making it the\n" +" dir\tAdds DIR to the directory stack at the top, making it the\n" " \tnew current working directory.\n" " \n" -" You can see the directory stack with the ‘dirs’ command." +" The ‘dirs’ builtin displays the directory stack.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid argument is supplied or the directory\n" +" change fails." -#: builtins.c:1318 +#: builtins.c:1767 msgid "" -" Removes entries from the directory stack. With no arguments,\n" -" removes the top directory from the stack, and cd's to the new\n" -" top directory.\n" +"Remove directories from stack.\n" +" \n" +" Removes entries from the directory stack. With no arguments, removes\n" +" the top directory from the stack, and changes to the new top directory.\n" " \n" -" +N\tremoves the Nth entry counting from the left of the list\n" +" Options:\n" +" -n\tSuppresses the normal change of directory when removing\n" +" \tdirectories from the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRemoves the Nth entry counting from the left of the list\n" " \tshown by `dirs', starting with zero. For example: `popd +0'\n" " \tremoves the first directory, `popd +1' the second.\n" " \n" -" -N\tremoves the Nth entry counting from the right of the list\n" +" -N\tRemoves the Nth entry counting from the right of the list\n" " \tshown by `dirs', starting with zero. For example: `popd -0'\n" " \tremoves the last directory, `popd -1' the next to last.\n" " \n" -" -n\tsuppress the normal change of directory when removing directories\n" -" \tfrom the stack, so only the stack is manipulated.\n" +" The `dirs' builtin displays the directory stack.\n" " \n" -" You can see the directory stack with the `dirs' command." +" Exit Status:\n" +" Returns success unless an invalid argument is supplied or the directory\n" +" change fails." msgstr "" -" Removes entries from the directory stack. With no arguments,\n" -" removes the top directory from the stack, and cd's to the new\n" -" top directory.\n" +"Remove directories from stack.\n" +" \n" +" Removes entries from the directory stack. With no arguments, removes\n" +" the top directory from the stack, and changes to the new top directory.\n" " \n" -" +N\tremoves the Nth entry counting from the left of the list\n" +" Options:\n" +" -n\tSuppresses the normal change of directory when removing\n" +" \tdirectories from the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRemoves the Nth entry counting from the left of the list\n" " \tshown by ‘dirs’, starting with zero. For example: ‘popd +0’\n" " \tremoves the first directory, ‘popd +1’ the second.\n" " \n" -" -N\tremoves the Nth entry counting from the right of the list\n" +" -N\tRemoves the Nth entry counting from the right of the list\n" " \tshown by ‘dirs’, starting with zero. For example: ‘popd -0’\n" " \tremoves the last directory, ‘popd -1’ the next to last.\n" " \n" -" -n\tsuppress the normal change of directory when removing directories\n" -" \tfrom the stack, so only the stack is manipulated.\n" +" The ‘dirs’ builtin displays the directory stack.\n" " \n" -" You can see the directory stack with the ‘dirs’ command." +" Exit Status:\n" +" Returns success unless an invalid argument is supplied or the directory\n" +" change fails." -#: builtins.c:1341 +#: builtins.c:1797 msgid "" -" Display the list of currently remembered directories. Directories\n" +"Display directory stack.\n" +" \n" +" Display the list of currently remembered directories. Directories\n" " find their way onto the list with the `pushd' command; you can get\n" " back up through the list with the `popd' command.\n" " \n" -" The -l flag specifies that `dirs' should not print shorthand versions\n" -" of directories which are relative to your home directory. This means\n" -" that `~/bin' might be displayed as `/homes/bfox/bin'. The -v flag\n" -" causes `dirs' to print the directory stack with one entry per line,\n" -" prepending the directory name with its position in the stack. The -p\n" -" flag does the same thing, but the stack position is not prepended.\n" -" The -c flag clears the directory stack by deleting all of the elements.\n" +" Options:\n" +" -c\tclear the directory stack by deleting all of the elements\n" +" -l\tdo not print tilde-prefixed versions of directories relative\n" +" \tto your home directory\n" +" -p\tprint the directory stack with one entry per line\n" +" -v\tprint the directory stack with one entry per line prefixed\n" +" \twith its position in the stack\n" +" \n" +" Arguments:\n" +" +N\tDisplays the Nth entry counting from the left of the list shown " +"by\n" +" \tdirs when invoked without options, starting with zero.\n" " \n" -" +N\tdisplays the Nth entry counting from the left of the list shown by\n" +" -N\tDisplays the Nth entry counting from the right of the list shown " +"by\n" " \tdirs when invoked without options, starting with zero.\n" " \n" -" -N\tdisplays the Nth entry counting from the right of the list shown by\n" -" \tdirs when invoked without options, starting with zero." +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." msgstr "" -" Display the list of currently remembered directories. Directories\n" +"Display directory stack.\n" +" \n" +" Display the list of currently remembered directories. Directories\n" " find their way onto the list with the ‘pushd’ command; you can get\n" " back up through the list with the ‘popd’ command.\n" " \n" -" The -l flag specifies that ‘dirs’ should not print shorthand versions\n" -" of directories which are relative to your home directory. This means\n" -" that ‘~/bin’ might be displayed as ‘/homes/bfox/bin’. The -v flag\n" -" causes ‘dirs’ to print the directory stack with one entry per line,\n" -" prepending the directory name with its position in the stack. The -p\n" -" flag does the same thing, but the stack position is not prepended.\n" -" The -c flag clears the directory stack by deleting all of the elements.\n" +" Options:\n" +" -c\tclear the directory stack by deleting all of the elements\n" +" -l\tdo not print tilde-prefixed versions of directories relative\n" +" \tto your home directory\n" +" -p\tprint the directory stack with one entry per line\n" +" -v\tprint the directory stack with one entry per line prefixed\n" +" \twith its position in the stack\n" +" \n" +" Arguments:\n" +" +N\tDisplays the Nth entry counting from the left of the list shown " +"by\n" +" \tdirs when invoked without options, starting with zero.\n" " \n" -" +N\tdisplays the Nth entry counting from the left of the list shown by\n" +" -N\tDisplays the Nth entry counting from the right of the list shown " +"by\n" " \tdirs when invoked without options, starting with zero.\n" " \n" -" -N\tdisplays the Nth entry counting from the right of the list shown by\n" -" \tdirs when invoked without options, starting with zero." - -#: builtins.c:1364 -msgid "" -" Toggle the values of variables controlling optional behavior.\n" -" The -s flag means to enable (set) each OPTNAME; the -u flag\n" -" unsets each OPTNAME. The -q flag suppresses output; the exit\n" -" status indicates whether each OPTNAME is set or unset. The -o\n" -" option restricts the OPTNAMEs to those defined for use with\n" -" `set -o'. With no options, or with the -p option, a list of all\n" -" settable options is displayed, with an indication of whether or\n" -" not each is set." -msgstr "" -" Toggle the values of variables controlling optional behavior.\n" -" The -s flag means to enable (set) each OPTNAME; the -u flag\n" -" unsets each OPTNAME. The -q flag suppresses output; the exit\n" -" status indicates whether each OPTNAME is set or unset. The -o\n" -" option restricts the OPTNAMEs to those defined for use with\n" -" ‘set -o’. With no options, or with the -p option, a list of all\n" -" settable options is displayed, with an indication of whether or\n" -" not each is set." - -#: builtins.c:1377 -msgid "" -" printf formats and prints ARGUMENTS under control of the FORMAT. FORMAT\n" -" is a character string which contains three types of objects: plain\n" -" characters, which are simply copied to standard output, character " +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." + +#: builtins.c:1826 +msgid "" +"Set and unset shell options.\n" +" \n" +" Change the setting of each shell option OPTNAME. Without any option\n" +" arguments, list all shell options with an indication of whether or not " +"each\n" +" is set.\n" +" \n" +" Options:\n" +" -o\trestrict OPTNAMEs to those defined for use with `set -o'\n" +" -p\tprint each shell option with an indication of its status\n" +" -q\tsuppress output\n" +" -s\tenable (set) each OPTNAME\n" +" -u\tdisable (unset) each OPTNAME\n" +" \n" +" Exit Status:\n" +" Returns success if OPTNAME is enabled; fails if an invalid option is\n" +" given or OPTNAME is disabled." +msgstr "" +"Set and unset shell options.\n" +" \n" +" Change the setting of each shell option OPTNAME. Without any option\n" +" arguments, list all shell options with an indication of whether or not " +"each\n" +" is set.\n" +" \n" +" Options:\n" +" -o\trestrict OPTNAMEs to those defined for use with ‘set -o’\n" +" -p\tprint each shell option with an indication of its status\n" +" -q\tsuppress output\n" +" -s\tenable (set) each OPTNAME\n" +" -u\tdisable (unset) each OPTNAME\n" +" \n" +" Exit Status:\n" +" Returns success if OPTNAME is enabled; fails if an invalid option is\n" +" given or OPTNAME is disabled." + +#: builtins.c:1847 +msgid "" +"Formats and prints ARGUMENTS under control of the FORMAT.\n" +" \n" +" Options:\n" +" -v var\tassign the output to shell variable VAR rather than\n" +" \t\tdisplay it on the standard output\n" +" \n" +" FORMAT is a character string which contains three types of objects: " +"plain\n" +" characters, which are simply copied to standard output; character " "escape\n" -" sequences which are converted and copied to the standard output, and\n" +" sequences, which are converted and copied to the standard output; and\n" " format specifications, each of which causes printing of the next " "successive\n" -" argument. In addition to the standard printf(1) formats, %b means to\n" -" expand backslash escape sequences in the corresponding argument, and %q\n" -" means to quote the argument in a way that can be reused as shell input.\n" -" If the -v option is supplied, the output is placed into the value of " -"the\n" -" shell variable VAR rather than being sent to the standard output." +" argument.\n" +" \n" +" In addition to the standard format specifications described in printf" +"(1)\n" +" and printf(3), printf interprets:\n" +" \n" +" %b\texpand backslash escape sequences in the corresponding argument\n" +" %q\tquote the argument in a way that can be reused as shell input\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or a write or " +"assignment\n" +" error occurs." msgstr "" -" printf formats and prints ARGUMENTS under control of the FORMAT. FORMAT\n" -" is a character string which contains three types of objects: plain\n" -" characters, which are simply copied to standard output, character " +"Formats and prints ARGUMENTS under control of the FORMAT.\n" +" \n" +" Options:\n" +" -v var\tassign the output to shell variable VAR rather than\n" +" \t\tdisplay it on the standard output\n" +" \n" +" FORMAT is a character string which contains three types of objects: " +"plain\n" +" characters, which are simply copied to standard output; character " "escape\n" -" sequences which are converted and copied to the standard output, and\n" +" sequences, which are converted and copied to the standard output; and\n" " format specifications, each of which causes printing of the next " "successive\n" -" argument. In addition to the standard printf(1) formats, %b means to\n" -" expand backslash escape sequences in the corresponding argument, and %q\n" -" means to quote the argument in a way that can be reused as shell input.\n" -" If the -v option is supplied, the output is placed into the value of " -"the\n" -" shell variable VAR rather than being sent to the standard output." - -#: builtins.c:1393 -msgid "" -" For each NAME, specify how arguments are to be completed.\n" -" If the -p option is supplied, or if no options are supplied, existing\n" -" completion specifications are printed in a way that allows them to be\n" -" reused as input. The -r option removes a completion specification for\n" -" each NAME, or, if no NAMEs are supplied, all completion specifications." -msgstr "" -" For each NAME, specify how arguments are to be completed.\n" -" If the -p option is supplied, or if no options are supplied, existing\n" -" completion specifications are printed in a way that allows them to be\n" -" reused as input. The -r option removes a completion specification for\n" -" each NAME, or, if no NAMEs are supplied, all completion specifications." - -#: builtins.c:1405 -msgid "" -" Display the possible completions depending on the options. Intended\n" -" to be used from within a shell function generating possible " -"completions.\n" -" If the optional WORD argument is supplied, matches against WORD are\n" -" generated." -msgstr "" -" Display the possible completions depending on the options. Intended\n" -" to be used from within a shell function generating possible " -"completions.\n" -" If the optional WORD argument is supplied, matches against WORD are\n" -" generated." +" argument.\n" +" \n" +" In addition to the standard format specifications described in printf" +"(1)\n" +" and printf(3), printf interprets:\n" +" \n" +" %b\texpand backslash escape sequences in the corresponding argument\n" +" %q\tquote the argument in a way that can be reused as shell input\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or a write or " +"assignment\n" +" error occurs." + +#: builtins.c:1874 +msgid "" +"Specify how arguments are to be completed by Readline.\n" +" \n" +" For each NAME, specify how arguments are to be completed. If no " +"options\n" +" are supplied, existing completion specifications are printed in a way " +"that\n" +" allows them to be reused as input.\n" +" \n" +" Options:\n" +" -p\tprint existing completion specifications in a reusable format\n" +" -r\tremove a completion specification for each NAME, or, if no\n" +" \tNAMEs are supplied, all completion specifications\n" +" \n" +" When completion is attempted, the actions are applied in the order the\n" +" uppercase-letter options are listed above.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" +"Specify how arguments are to be completed by Readline.\n" +" \n" +" For each NAME, specify how arguments are to be completed. If no " +"options\n" +" are supplied, existing completion specifications are printed in a way " +"that\n" +" allows them to be reused as input.\n" +" \n" +" Options:\n" +" -p\tprint existing completion specifications in a reusable format\n" +" -r\tremove a completion specification for each NAME, or, if no\n" +" \tNAMEs are supplied, all completion specifications\n" +" \n" +" When completion is attempted, the actions are applied in the order the\n" +" uppercase-letter options are listed above.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." + +#: builtins.c:1897 +msgid "" +"Display possible completions depending on the options.\n" +" \n" +" Intended to be used from within a shell function generating possible\n" +" completions. If the optional WORD argument is supplied, matches " +"against\n" +" WORD are generated.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" +"Display possible completions depending on the options.\n" +" \n" +" Intended to be used from within a shell function generating possible\n" +" completions. If the optional WORD argument is supplied, matches " +"against\n" +" WORD are generated.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." + +#: builtins.c:1912 +msgid "" +"Modify or display completion options.\n" +" \n" +" Modify the completion options for each NAME, or, if no NAMEs are " +"supplied,\n" +" the completion currently begin executed. If no OPTIONs are givenm, " +"print\n" +" the completion options for each NAME or the current completion " +"specification.\n" +" \n" +" Options:\n" +" \t-o option\tSet completion option OPTION for each NAME\n" +" \n" +" Using `+o' instead of `-o' turns off the specified option.\n" +" \n" +" Arguments:\n" +" \n" +" Each NAME refers to a command for which a completion specification must\n" +" have previously been defined using the `complete' builtin. If no NAMEs\n" +" are supplied, compopt must be called by a function currently generating\n" +" completions, and the options for that currently-executing completion\n" +" generator are modified.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or NAME does not\n" +" have a completion specification defined." +msgstr "" +"Modify or display completion options.\n" +" \n" +" Modify the completion options for each NAME, or, if no NAMEs are " +"supplied,\n" +" the completion currently begin executed. If no OPTIONs are givenm, " +"print\n" +" the completion options for each NAME or the current completion " +"specification.\n" +" \n" +" Options:\n" +" \t-o option\tSet completion option OPTION for each NAME\n" +" \n" +" Using ‘+o’ instead of ‘-o’ turns off the specified option.\n" +" \n" +" Arguments:\n" +" \n" +" Each NAME refers to a command for which a completion specification must\n" +" have previously been defined using the ‘complete’ builtin. If no NAMEs\n" +" are supplied, compopt must be called by a function currently generating\n" +" completions, and the options for that currently-executing completion\n" +" generator are modified.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or NAME does not\n" +" have a completion specification defined." + +#: builtins.c:1940 +msgid "" +"Read lines from a file into an array variable.\n" +" \n" +" Read lines from the standard input into the array variable ARRAY, or " +"from\n" +" file descriptor FD if the -u option is supplied. The variable MAPFILE " +"is\n" +" the default ARRAY.\n" +" \n" +" Options:\n" +" -n count\tCopy at most COUNT lines. If COUNT is 0, all lines are " +"copied.\n" +" -O origin\tBegin assigning to ARRAY at index ORIGIN. The default " +"index is 0.\n" +" -s count \tDiscard the first COUNT lines read.\n" +" -t\t\tRemove a trailing newline from each line read.\n" +" -u fd\t\tRead lines from file descriptor FD instead of the standard " +"input.\n" +" -C callback\tEvaluate CALLBACK each time QUANTUM lines are read.\n" +" -c quantum\tSpecify the number of lines read between each call to " +"CALLBACK.\n" +" \n" +" Arguments:\n" +" ARRAY\t\tArray variable name to use for file data.\n" +" \n" +" If -C is supplied without -c, the default quantum is 5000.\n" +" \n" +" If not supplied with an explicit origin, mapfile will clear ARRAY " +"before\n" +" assigning to it.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or ARRAY is readonly." +msgstr "" +"Read lines from a file into an array variable.\n" +" \n" +" Read lines from the standard input into the array variable ARRAY, or " +"from\n" +" file descriptor FD if the -u option is supplied. The variable MAPFILE " +"is\n" +" the default ARRAY.\n" +" \n" +" Options:\n" +" -n count\tCopy at most COUNT lines. If COUNT is 0, all lines are " +"copied.\n" +" -O origin\tBegin assigning to ARRAY at index ORIGIN. The default " +"index is 0.\n" +" -s count \tDiscard the first COUNT lines read.\n" +" -t\t\tRemove a trailing newline from each line read.\n" +" -u fd\t\tRead lines from file descriptor FD instead of the standard " +"input.\n" +" -C callback\tEvaluate CALLBACK each time QUANTUM lines are read.\n" +" -c quantum\tSpecify the number of lines read between each call to " +"CALLBACK.\n" +" \n" +" Arguments:\n" +" ARRAY\t\tArray variable name to use for file data.\n" +" \n" +" If -C is supplied without -c, the default quantum is 5000.\n" +" \n" +" If not supplied with an explicit origin, mapfile will clear ARRAY " +"before\n" +" assigning to it.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or ARRAY is readonly." diff --git a/po/eo.gmo b/po/eo.gmo new file mode 100644 index 0000000000000000000000000000000000000000..525d3624fefcfec75fe17b3ad45148867f3599dc GIT binary patch literal 25421 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 D=6pMA literal 0 Hc-jL100001 diff --git a/po/eo.po b/po/eo.po new file mode 100644 index 000000000..65476c3bb --- /dev/null +++ b/po/eo.po @@ -0,0 +1,5234 @@ +# Esperanto language file for GNU Bash. +# Copyright (C) 1996 Free Software Foundation, Inc. +# Sergio Pokrovskij , 1998, 2006. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU bash 3.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2009-01-06 11:56-0500\n" +"PO-Revision-Date: 2006-11-24 09:19+0600\n" +"Last-Translator: Sergio Pokrovskij \n" +"Language-Team: Esperanto \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8-bit\n" + +#: arrayfunc.c:50 +msgid "bad array subscript" +msgstr "Misa tabel-indico" + +#: arrayfunc.c:313 builtins/declare.def:474 +#, c-format +msgid "%s: cannot convert indexed to associative array" +msgstr "" + +#: arrayfunc.c:479 +#, fuzzy, c-format +msgid "%s: invalid associative array key" +msgstr "%s: Misa nomo de ago" + +#: arrayfunc.c:481 +#, c-format +msgid "%s: cannot assign to non-numeric index" +msgstr "%s: Valorizato havu nombran indicon" + +#: arrayfunc.c:517 +#, c-format +msgid "%s: %s: must use subscript when assigning associative array" +msgstr "" + +#: bashhist.c:380 +#, c-format +msgid "%s: cannot create: %s" +msgstr "%s: Ne prosperis krei: %s" + +# XXX: internal_error +#: bashline.c:3413 +msgid "bash_execute_unix_command: cannot find keymap for command" +msgstr "bash_execute_unix_command: Mankas klavartabelo por komando" + +#: bashline.c:3491 +#, c-format +msgid "%s: first non-whitespace character is not `\"'" +msgstr "%s: La unua ne-blankspaca signo ne estas „\"‟" + +#: bashline.c:3520 +#, c-format +msgid "no closing `%c' in %s" +msgstr "Mankas ferma „%c‟ en %s" + +#: bashline.c:3554 +#, c-format +msgid "%s: missing colon separator" +msgstr "%s: Mankas disiga dupunkto" + +#: builtins/bind.def:120 builtins/bind.def:123 +msgid "line editing not enabled" +msgstr "" + +#: builtins/bind.def:206 +#, c-format +msgid "`%s': invalid keymap name" +msgstr "„%s‟: Misa nomo por klavartabelo" + +#: builtins/bind.def:245 +#, c-format +msgid "%s: cannot read: %s" +msgstr "%s: Ne eblas legi: %s" + +#: builtins/bind.def:260 +#, c-format +msgid "`%s': cannot unbind" +msgstr "%s: Ne eblas malligi" + +#: builtins/bind.def:295 builtins/bind.def:325 +#, c-format +msgid "`%s': unknown function name" +msgstr "%s: Nekonata funkcinomo" + +#: builtins/bind.def:303 +#, c-format +msgid "%s is not bound to any keys.\n" +msgstr "%s malhavas klavligon\n" + +#: builtins/bind.def:307 +#, c-format +msgid "%s can be invoked via " +msgstr "%s vokeblas per " + +#: builtins/break.def:77 builtins/break.def:117 +msgid "loop count" +msgstr "" + +#: builtins/break.def:137 +msgid "only meaningful in a `for', `while', or `until' loop" +msgstr "Sencas nur en iteracio „for‟, „while‟ aÅ­ „until‟" + +#: builtins/caller.def:133 +#, fuzzy +msgid "" +"Returns the context of the current subroutine call.\n" +" \n" +" Without EXPR, returns " +msgstr "Liveras la kuntekston de la kuranta procedurvoko." + +#: builtins/cd.def:215 +msgid "HOME not set" +msgstr "HOME malhavas valoron" + +#: builtins/cd.def:227 +msgid "OLDPWD not set" +msgstr "OLDPWD malhavas valoron" + +#: builtins/common.c:101 +#, c-format +msgid "line %d: " +msgstr "" + +#: builtins/common.c:139 error.c:260 +#, fuzzy, c-format +msgid "warning: " +msgstr "%s: Averto: " + +#: builtins/common.c:153 +#, fuzzy, c-format +msgid "%s: usage: " +msgstr "%s: Averto: " + +#: builtins/common.c:166 test.c:822 +msgid "too many arguments" +msgstr "Tro multe da argumentoj" + +#: builtins/common.c:191 shell.c:493 shell.c:774 +#, c-format +msgid "%s: option requires an argument" +msgstr "%s: La opcio bezonas argumenton" + +#: builtins/common.c:198 +#, c-format +msgid "%s: numeric argument required" +msgstr "%s: Necesas nombra argumento" + +#: builtins/common.c:205 +#, c-format +msgid "%s: not found" +msgstr "%s: Ne trovita" + +#: builtins/common.c:214 shell.c:787 +#, c-format +msgid "%s: invalid option" +msgstr "%s: Misa opcio" + +#: builtins/common.c:221 +#, c-format +msgid "%s: invalid option name" +msgstr "%s: Misa opcinomo" + +#: builtins/common.c:228 general.c:231 general.c:236 +#, c-format +msgid "`%s': not a valid identifier" +msgstr "„%s‟ ne estas taÅ­ga nomo" + +#: builtins/common.c:238 +#, fuzzy +msgid "invalid octal number" +msgstr "Misa signalnumero" + +#: builtins/common.c:240 +#, fuzzy +msgid "invalid hex number" +msgstr "Misa nombro" + +#: builtins/common.c:242 expr.c:1255 +msgid "invalid number" +msgstr "Misa nombro" + +#: builtins/common.c:250 +#, c-format +msgid "%s: invalid signal specification" +msgstr "%s: Misa signalindiko" + +#: builtins/common.c:257 +#, c-format +msgid "`%s': not a pid or valid job spec" +msgstr "„%s‟: Nek proceznumero, nek taÅ­ga laborindiko" + +#: builtins/common.c:264 error.c:453 +#, c-format +msgid "%s: readonly variable" +msgstr "%s: Nurlega variablo" + +#: builtins/common.c:272 +#, c-format +msgid "%s: %s out of range" +msgstr "%s: %s estas ekster sia variejo" + +#: builtins/common.c:272 builtins/common.c:274 +msgid "argument" +msgstr "argumento" + +#: builtins/common.c:274 +#, c-format +msgid "%s out of range" +msgstr "%s estas ekster sia variejo" + +#: builtins/common.c:282 +#, c-format +msgid "%s: no such job" +msgstr "%s: Ne estas tia laboro" + +#: builtins/common.c:290 +#, c-format +msgid "%s: no job control" +msgstr "%s: Ĉi tiu ŝelo ne disponigas laborregadon" + +#: builtins/common.c:292 +msgid "no job control" +msgstr "Laborregado ne disponeblas" + +#: builtins/common.c:302 +#, c-format +msgid "%s: restricted" +msgstr "%s: Limigita" + +#: builtins/common.c:304 +msgid "restricted" +msgstr "limigita" + +#: builtins/common.c:312 +#, c-format +msgid "%s: not a shell builtin" +msgstr "„%s‟ ne estas primitiva komando ŝela" + +#: builtins/common.c:321 +#, c-format +msgid "write error: %s" +msgstr "Eraro ĉe skribo: %s" + +#: builtins/common.c:553 +#, c-format +msgid "%s: error retrieving current directory: %s: %s\n" +msgstr "%s: Eraro ĉe provo determini la kurantan dosierujon: %s: %s\n" + +#: builtins/common.c:619 builtins/common.c:621 +#, c-format +msgid "%s: ambiguous job spec" +msgstr "%s: Ambigua laborindiko" + +#: builtins/complete.def:270 +#, c-format +msgid "%s: invalid action name" +msgstr "%s: Misa nomo de ago" + +#: builtins/complete.def:430 builtins/complete.def:615 +#: builtins/complete.def:813 +#, c-format +msgid "%s: no completion specification" +msgstr "%s: Kompletigo ne estas specifita" + +#: builtins/complete.def:667 +msgid "warning: -F option may not work as you expect" +msgstr "Averto: La opcio -F povas funkcii alie ol vi eble supozas" + +#: builtins/complete.def:669 +msgid "warning: -C option may not work as you expect" +msgstr "Averto: La opcio -C povas funkcii alie ol vi eble supozas" + +#: builtins/complete.def:786 +msgid "not currently executing completion function" +msgstr "" + +#: builtins/declare.def:122 +msgid "can only be used in a function" +msgstr "Uzeblas nur ene de funkcio" + +#: builtins/declare.def:353 +msgid "cannot use `-f' to make functions" +msgstr "„-f‟ ne estas uzebla por fari funkciojn" + +#: builtins/declare.def:365 execute_cmd.c:4731 +#, c-format +msgid "%s: readonly function" +msgstr "%s: Nurlega funkcio" + +#: builtins/declare.def:461 +#, c-format +msgid "%s: cannot destroy array variables in this way" +msgstr "$%s: ĉi tiel ne eblas neniigi variablojn" + +#: builtins/declare.def:468 +#, c-format +msgid "%s: cannot convert associative to indexed array" +msgstr "" + +#: builtins/enable.def:137 builtins/enable.def:145 +msgid "dynamic loading not available" +msgstr "Rultempa ŝargo ne disponeblas" + +#: builtins/enable.def:312 +#, c-format +msgid "cannot open shared object %s: %s" +msgstr "Ne malfermiĝis dinamika biblioteko %s: %s" + +#: builtins/enable.def:335 +#, c-format +msgid "cannot find %s in shared object %s: %s" +msgstr "Mankas %s en la dinamika biblioteko%s: %s" + +#: builtins/enable.def:459 +#, c-format +msgid "%s: not dynamically loaded" +msgstr "%s: Ne ŝargita dinamike" + +#: builtins/enable.def:474 +#, c-format +msgid "%s: cannot delete: %s" +msgstr "%s: Ne eblas forigi: %s" + +#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4588 +#: shell.c:1439 +#, c-format +msgid "%s: is a directory" +msgstr "%s estas dosierujo" + +#: builtins/evalfile.c:139 +#, c-format +msgid "%s: not a regular file" +msgstr "%s: Ne ordinara dosiero" + +#: builtins/evalfile.c:147 +#, c-format +msgid "%s: file is too large" +msgstr "%s: Tro granda dosiero" + +#: builtins/evalfile.c:185 execute_cmd.c:4658 shell.c:1449 +#, c-format +msgid "%s: cannot execute binary file" +msgstr "%s: Neplenumebla duuma dosiero" + +#: builtins/exec.def:212 +#, c-format +msgid "%s: cannot execute: %s" +msgstr "%s: Maleblas plenumi: %s" + +#: builtins/exit.def:65 +#, c-format +msgid "logout\n" +msgstr "" + +#: builtins/exit.def:88 +msgid "not login shell: use `exit'" +msgstr "La ŝelo ne estas saluta; eliru per «exit»" + +#: builtins/exit.def:120 +#, c-format +msgid "There are stopped jobs.\n" +msgstr "Restas haltigitaj laboroj.\n" + +#: builtins/exit.def:122 +#, fuzzy, c-format +msgid "There are running jobs.\n" +msgstr "Restas haltigitaj laboroj.\n" + +#: builtins/fc.def:261 +msgid "no command found" +msgstr "Komando ne trovita" + +#: builtins/fc.def:341 +msgid "history specification" +msgstr "Historia indiko" + +#: builtins/fc.def:362 +#, c-format +msgid "%s: cannot open temp file: %s" +msgstr "%s: Ne malfermiĝis labordosiero: %s" + +#: builtins/fg_bg.def:149 builtins/jobs.def:282 +msgid "current" +msgstr "" + +#: builtins/fg_bg.def:158 +#, c-format +msgid "job %d started without job control" +msgstr "La laboro %d estas lanĉita sen laborregado" + +#: builtins/getopt.c:110 +#, c-format +msgid "%s: illegal option -- %c\n" +msgstr "%s: Misa opcio -- %c\n" + +#: builtins/getopt.c:111 +#, c-format +msgid "%s: option requires an argument -- %c\n" +msgstr "%s: La opcio bezonas argumenton -- %c\n" + +#: builtins/hash.def:92 +msgid "hashing disabled" +msgstr "Nomkonservado (haketado, «hashing») estas malŝaltita" + +#: builtins/hash.def:138 +#, c-format +msgid "%s: hash table empty\n" +msgstr "%s: Hakettabelo estas malplena\n" + +#: builtins/hash.def:244 +#, fuzzy, c-format +msgid "hits\tcommand\n" +msgstr "La ĵusa komando: %s\n" + +# ZZZ: aĉaj citiloj +#: builtins/help.def:130 +#, fuzzy, c-format +msgid "Shell commands matching keyword `" +msgid_plural "Shell commands matching keywords `" +msgstr[0] "Ŝelaj komandoj kongruaj kun la ŝlosilvorto `" +msgstr[1] "Ŝelaj komandoj kongruaj kun la ŝlosilvorto `" + +#: builtins/help.def:168 +#, c-format +msgid "" +"no help topics match `%s'. Try `help help' or `man -k %s' or `info %s'." +msgstr "" +"Helpaĵo pri „%s‟ malestas.\n" +"Provu «help help» aÅ­ «man -k %s» aÅ­ «info %s»." + +#: builtins/help.def:185 +#, c-format +msgid "%s: cannot open: %s" +msgstr "%s: Fiaskis malfermo de %s" + +#: builtins/help.def:337 +#, c-format +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 "" +"Jenaj komandoj estas enkonstruitaj. Tajpu „help‟ por eligi la liston.\n" +"Tajpu «help NOMO» por informoj pri la funkcio NOMO.\n" +"Uzu «info bash» por la ĝenerala informo pri la ŝelo.\n" +"Uzu «man -k» aÅ­ «info» por informo pri komandoj ĉi tie ne listigitaj.\n" +"\n" +"Steleto (*) tuj post nomo indikas, ke la komando estas malebligita.\n" +"\n" + +#: builtins/history.def:154 +msgid "cannot use more than one of -anrw" +msgstr "Ne pli ol unu el -anrw estas uzebla" + +#: builtins/history.def:186 +msgid "history position" +msgstr "pozicio en la historio" + +#: builtins/history.def:365 +#, c-format +msgid "%s: history expansion failed" +msgstr "%s: Historia malvolvo fiaskis" + +#: builtins/inlib.def:71 +#, fuzzy, c-format +msgid "%s: inlib failed" +msgstr "%s: Historia malvolvo fiaskis" + +#: builtins/jobs.def:109 +msgid "no other options allowed with `-x'" +msgstr "La uzo de „-x‟ malebligas aliajn opciojn" + +#: builtins/kill.def:197 +#, c-format +msgid "%s: arguments must be process or job IDs" +msgstr "%s: Argumento estu proceznumero aÅ­ laborindiko" + +#: builtins/kill.def:260 +msgid "Unknown error" +msgstr "Nekonata eraro" + +#: builtins/let.def:95 builtins/let.def:120 expr.c:501 expr.c:516 +msgid "expression expected" +msgstr "Mankas esprimo" + +#: builtins/mapfile.def:215 builtins/read.def:272 +#, c-format +msgid "%s: invalid file descriptor specification" +msgstr "%s: Misa indiko de dosiernumero" + +#: builtins/mapfile.def:223 builtins/read.def:279 +#, c-format +msgid "%d: invalid file descriptor: %s" +msgstr "„%d‟: Misa dosiernumero: %s" + +#: builtins/mapfile.def:232 builtins/mapfile.def:270 +#, fuzzy, c-format +msgid "%s: invalid line count" +msgstr "%s: Misa opcio" + +#: builtins/mapfile.def:243 +#, fuzzy, c-format +msgid "%s: invalid array origin" +msgstr "%s: Misa opcio" + +#: builtins/mapfile.def:260 +#, fuzzy, c-format +msgid "%s: invalid callback quantum" +msgstr "%s: Misa nomo de ago" + +#: builtins/mapfile.def:292 +#, fuzzy +msgid "empty array variable name" +msgstr "%s: Ne tabela variablo" + +#: builtins/mapfile.def:313 +msgid "array variable support required" +msgstr "" + +#: builtins/printf.def:367 +#, c-format +msgid "`%s': missing format character" +msgstr "„%s‟: Mankas formata signo" + +#: builtins/printf.def:544 +#, c-format +msgid "`%c': invalid format character" +msgstr "„%c‟: Misa signo formata" + +#: builtins/printf.def:571 +#, fuzzy, c-format +msgid "warning: %s: %s" +msgstr "%s: Averto: " + +#: builtins/printf.def:750 +msgid "missing hex digit for \\x" +msgstr "Mankas 16uma cifero por \\x" + +#: builtins/pushd.def:195 +msgid "no other directory" +msgstr "Ne estas alia dosierujo" + +#: builtins/pushd.def:462 +msgid "" +msgstr "" + +#: builtins/pushd.def:506 +msgid "directory stack empty" +msgstr "" + +#: builtins/pushd.def:508 +#, fuzzy +msgid "directory stack index" +msgstr "Rekursistako elĉerpita" + +# dirs [-clpv] [+N] [-N] +#: builtins/pushd.def:683 +#, fuzzy +msgid "" +"Display the list of currently remembered directories. Directories\n" +" find their way onto the list with the `pushd' command; you can get\n" +" back up through the list with the `popd' command.\n" +" \n" +" Options:\n" +" -c\tclear the directory stack by deleting all of the elements\n" +" -l\tdo not print tilde-prefixed versions of directories relative\n" +" \tto your home directory\n" +" -p\tprint the directory stack with one entry per line\n" +" -v\tprint the directory stack with one entry per line prefixed\n" +" \twith its position in the stack\n" +" \n" +" Arguments:\n" +" +N\tDisplays the Nth entry counting from the left of the list shown " +"by\n" +" \tdirs when invoked without options, starting with zero.\n" +" \n" +" -N\tDisplays the Nth entry counting from the right of the list shown " +"by\n" +"\tdirs when invoked without options, starting with zero." +msgstr "" +"Listigu la kurantan dosierujstakon. La dosierujoj trafas en\n" +" la stakon per la komando „pushd‟ kaj estas forigeblaj per la\n" +" komando „popd‟.\n" +"\n" +" La opcio -l indikas ke „dirs‟ ne eligu mallongajn formojn de\n" +" dosierujnomoj relative al via hejma dosierujo. T.e. anstataÅ­\n" +" «~/bin» aperos nomo kun absoluta vojo, ekz-e «/homes/bfox/bin».\n" +" La opcio -v igas komandon „dirs‟ eligi po unu eron de la dosierujstako\n" +" en linio, metante antaÅ­ la dosierujnomo ĝian numeron en la stako.\n" +" La opcio -p faras simile, tamen ne numeras la poziciojn.\n" +" La opcio -c malplenigas la dosierujstakon forigante el ĝi ĉiujn erojn.\n" +"\n" +" +N\teligu la Nan eron nombrante de maldekstre en la listo eligebla\n" +"\tper „dirs‟ sen opcioj, numerante ekde 0.\n" +"\n" +" -N\teligu la Nan eron nombrante de dekstre en la listo eligebla\n" +"\tper „dirs‟ sen opcioj, numerante ekde 0." + +# pushd [dir | +N | -N] [-n] +#: builtins/pushd.def:705 +#, fuzzy +msgid "" +"Adds a directory to the top of the directory stack, or rotates\n" +" the stack, making the new top of the stack the current working\n" +" directory. With no arguments, exchanges the top two directories.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when adding\n" +" \tdirectories to the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the left of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" -N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the right of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" dir\tAdds DIR to the directory stack at the top, making it the\n" +" \tnew current working directory.\n" +" \n" +" The `dirs' builtin displays the directory stack." +msgstr "" +"Surstakigu dosierujon sur la stakon da dosierujoj, aÅ­ cikle ŝovu\n" +" la stakon tiel, ke la nova stakpinto iĝu la kuranta dosierujo.\n" +" Senargumente, permutu la du plej suprajn dosierujojn de la stako.\n" +"\n" +" +N\tCikle ŝovu la stakon tiel ke la Na dosierujo (nombrante de\n" +" \tmaldekstre en la listo eligebla per „dirs‟, numerante de 0)\n" +" iĝu la pinta.\n" +"\n" +" -N\tCikle ŝovu la stakon tiel ke la Na dosierujo (nombrante de\n" +" \tdekstre en la listo eligebla per „dirs‟, numerante de 0) iĝu\n" +" la pinta.\n" +"\n" +" -n\tNe ŝanĝu la kurantan dosierujon surstakigante dosierujon sur\n" +" \tla stakon; do, nur la stakon ŝanĝu.\n" +"\n" +" dir\tsurstakigu la dosierujon dir kaj faru ĝin la nova kuranta\n" +" \tdosierujo labora.\n" +"\n" +" Vi povas vidigi la stakon da dosierujoj per la komando „dirs‟." + +# popd [+N | -N] [-n] +#: builtins/pushd.def:730 +#, fuzzy +msgid "" +"Removes entries from the directory stack. With no arguments, removes\n" +" the top directory from the stack, and changes to the new top directory.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when removing\n" +" \tdirectories from the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRemoves the Nth entry counting from the left of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd +0'\n" +" \tremoves the first directory, `popd +1' the second.\n" +" \n" +" -N\tRemoves the Nth entry counting from the right of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd -0'\n" +" \tremoves the last directory, `popd -1' the next to last.\n" +" \n" +" The `dirs' builtin displays the directory stack." +msgstr "" +"Elstakigu erojn el la stako de dosierujoj. Senargumente, forigu la\n" +" pintan dosierujon kaj iru (cd) en la novan pintan dosierujon.\n" +"\n" +" +N\tforigu la Nan eron de maldekstre de la listo eligebla per\n" +"\t„dirs‟, numerante ekde 0. Ekz-e: «popd +0» forigas la plej\n" +"\tmaldekstran dosierujon; «popd +1», ĝian najbaron.\n" +"\n" +" -N\tforigu la Nan eron de dekstre de la listo eligebla per „dirs‟,\n" +"\tnumerante ekde 0. Ekz-e: «popd -0» forigas la lastan\n" +"\tdosierujon; «popd -1», la antaÅ­lastan.\n" +"\n" +" -n\tNe ŝanĝu la kurantan dosierujon demetante dosierujon el la\n" +"\tstako; do, nur la stakon ŝanĝu.\n" +"\n" +" Vi povas vidigi la stakon da dosierujoj per la komando „dirs‟." + +#: builtins/read.def:248 +#, c-format +msgid "%s: invalid timeout specification" +msgstr "%s: Misa indiko de atendotempo" + +#: builtins/read.def:574 +#, c-format +msgid "read error: %d: %s" +msgstr "Lega (read) eraro: %d: %s" + +#: builtins/return.def:73 +msgid "can only `return' from a function or sourced script" +msgstr "" +"„return‟ sencas nur en funkcio aÅ­ punkte vokita („.‟, „source‟) skripto" + +#: builtins/set.def:768 +msgid "cannot simultaneously unset a function and a variable" +msgstr "Ne eblas samtempe malaktivigi funkcion kaj variablon" + +#: builtins/set.def:805 +#, c-format +msgid "%s: cannot unset" +msgstr "%s: Malaktivigo fiaskis" + +#: builtins/set.def:812 +#, c-format +msgid "%s: cannot unset: readonly %s" +msgstr "%s: Malaktivigo fiaskis: nurlega %s" + +#: builtins/set.def:823 +#, c-format +msgid "%s: not an array variable" +msgstr "%s: Ne tabela variablo" + +#: builtins/setattr.def:186 +#, c-format +msgid "%s: not a function" +msgstr "%s: Ne funkcio" + +#: builtins/shift.def:71 builtins/shift.def:77 +msgid "shift count" +msgstr "Nombrilo de „shift‟" + +#: builtins/shopt.def:254 +msgid "cannot set and unset shell options simultaneously" +msgstr "Maleblas samtempe ŝalti kaj malŝalti ŝelan opcion" + +#: builtins/shopt.def:319 +#, c-format +msgid "%s: invalid shell option name" +msgstr "%s: Misa nomo de ŝela opcio" + +#: builtins/source.def:128 +msgid "filename argument required" +msgstr "Necesas dosiernoma argumento" + +#: builtins/source.def:153 +#, c-format +msgid "%s: file not found" +msgstr "%s: Dosiero ne trovita" + +#: builtins/suspend.def:101 +msgid "cannot suspend" +msgstr "Ne eblas halteti" + +#: builtins/suspend.def:111 +msgid "cannot suspend a login shell" +msgstr "Ne eblas haltetigi salutan ŝelon" + +#: builtins/type.def:234 +#, c-format +msgid "%s is aliased to `%s'\n" +msgstr "„%s‟ alinomas jenon: «%s»\n" + +#: builtins/type.def:255 +#, c-format +msgid "%s is a shell keyword\n" +msgstr "„%s‟ estas ŝlosilvorto de la ŝelo\n" + +#: builtins/type.def:274 +#, c-format +msgid "%s is a function\n" +msgstr "%s estas funkcio\n" + +#: builtins/type.def:296 +#, c-format +msgid "%s is a shell builtin\n" +msgstr "„%s‟ estas primitiva komando de la ŝelo\n" + +#: builtins/type.def:317 builtins/type.def:391 +#, c-format +msgid "%s is %s\n" +msgstr "„%s‟ estas „%s‟\n" + +#: builtins/type.def:337 +#, c-format +msgid "%s is hashed (%s)\n" +msgstr "„%s‟ estas metita en hakettabelon (%s)\n" + +#: builtins/ulimit.def:372 +#, c-format +msgid "%s: invalid limit argument" +msgstr "%s: MaltaÅ­ga argumento por limo" + +#: builtins/ulimit.def:398 +#, c-format +msgid "`%c': bad command" +msgstr "„%c‟: Misa komando" + +#: builtins/ulimit.def:427 +#, c-format +msgid "%s: cannot get limit: %s" +msgstr "%s: Fiaskis provo legi limon: %s" + +#: builtins/ulimit.def:453 +msgid "limit" +msgstr "" + +#: builtins/ulimit.def:465 builtins/ulimit.def:765 +#, c-format +msgid "%s: cannot modify limit: %s" +msgstr "%s: Malprosperis ŝanĝi limon: %s" + +#: builtins/umask.def:118 +msgid "octal number" +msgstr "Okuma nombro" + +# Misa modifilo: «umask Z-w» aÅ­ «umask aZw» +#: builtins/umask.def:231 +#, c-format +msgid "`%c': invalid symbolic mode operator" +msgstr "„%c‟: MaltaÅ­ga simbolo por atingorajta modifilo" + +# Misa kategorio: ne [rw] ktp +#: builtins/umask.def:286 +#, c-format +msgid "`%c': invalid symbolic mode character" +msgstr "„%c‟: La signo ne estas simbolo de atingorajta kategorio" + +#: error.c:89 error.c:320 error.c:322 error.c:324 +msgid " line " +msgstr "" + +#: error.c:164 +#, c-format +msgid "last command: %s\n" +msgstr "La ĵusa komando: %s\n" + +#: error.c:172 +#, c-format +msgid "Aborting..." +msgstr "Ĉesigado ..." + +#: error.c:405 +msgid "unknown command error" +msgstr "Nekonata komand-eraro" + +#: error.c:406 +msgid "bad command type" +msgstr "Misa komandotipo" + +#: error.c:407 +msgid "bad connector" +msgstr "Misa stir-operacio" + +#: error.c:408 +msgid "bad jump" +msgstr "Misa salto" + +#: error.c:446 +#, c-format +msgid "%s: unbound variable" +msgstr "%s: Neligita variablo" + +#: eval.c:181 +#, c-format +msgid "\atimed out waiting for input: auto-logout\n" +msgstr "\aTro longe sen enigo: AÅ­tomata seancofino\n" + +# XXX: internal error: +#: execute_cmd.c:491 +#, c-format +msgid "cannot redirect standard input from /dev/null: %s" +msgstr "Fiaskis provo nomumi la disponaĵon «/dev/null» ĉefenigujo: %s" + +# XXX: internal error: +#: execute_cmd.c:1091 +#, c-format +msgid "TIMEFORMAT: `%c': invalid format character" +msgstr "TIMEFORMAT: „%c‟: Misa formatsigno" + +#: execute_cmd.c:1942 +#, fuzzy +msgid "pipe error" +msgstr "Eraro ĉe skribo: %s" + +#: execute_cmd.c:4276 +#, c-format +msgid "%s: restricted: cannot specify `/' in command names" +msgstr "%s: Malpermesitas uzi „/‟ en komandonomoj" + +#: execute_cmd.c:4367 +#, c-format +msgid "%s: command not found" +msgstr "%s: Komando ne trovita" + +#: execute_cmd.c:4621 +#, c-format +msgid "%s: %s: bad interpreter" +msgstr "%s: %s: Misa interpretilo" + +#: execute_cmd.c:4770 +#, c-format +msgid "cannot duplicate fd %d to fd %d" +msgstr "Ne eblas kunnomumi al dosiernumero %d la dosiernumeron %d" + +#: expr.c:241 +msgid "expression recursion level exceeded" +msgstr "Tro profunda rekursio en esprimo" + +#: expr.c:265 +msgid "recursion stack underflow" +msgstr "Rekursistako elĉerpita" + +#: expr.c:379 +msgid "syntax error in expression" +msgstr "Sintaksa eraro en esprimo" + +#: expr.c:419 +msgid "attempted assignment to non-variable" +msgstr "Provo valorizi ne-variablon" + +#: expr.c:440 expr.c:445 expr.c:756 +msgid "division by 0" +msgstr "Divido per 0" + +#: expr.c:471 +msgid "bug: bad expassign token" +msgstr "CIMO: Misa operacisigno en kombinita valorizsimbolo" + +#: expr.c:513 +msgid "`:' expected for conditional expression" +msgstr "„:‟ mankas kondiĉa esprimo" + +#: expr.c:781 +msgid "exponent less than 0" +msgstr "Negativa eksponento" + +#: expr.c:826 +msgid "identifier expected after pre-increment or pre-decrement" +msgstr "Post antaÅ­kremento aperu nomo de variablo" + +#: expr.c:854 +msgid "missing `)'" +msgstr "Mankas „)‟" + +#: expr.c:897 expr.c:1175 +msgid "syntax error: operand expected" +msgstr "Sintaksa eraro: Mankas operando" + +#: expr.c:1177 +msgid "syntax error: invalid arithmetic operator" +msgstr "Sintaksa eraro: Misa operacisimbolo aritmetika" + +#: expr.c:1201 +#, c-format +msgid "%s%s%s: %s (error token is \"%s\")" +msgstr "" + +#: expr.c:1259 +msgid "invalid arithmetic base" +msgstr "MaltaÅ­ga bazo nombrosistema" + +#: expr.c:1279 +msgid "value too great for base" +msgstr "Tro granda valoro por bazo de nombrosistemo" + +#: expr.c:1328 +#, fuzzy, c-format +msgid "%s: expression error\n" +msgstr "%s: Mankas entjera esprimo" + +#: general.c:61 +msgid "getcwd: cannot access parent directories" +msgstr "getwd: Ne eblas atingi patrajn dosierujojn" + +#: input.c:94 subst.c:4559 +#, fuzzy, c-format +msgid "cannot reset nodelay mode for fd %d" +msgstr "Ne eblas reŝalti senprokrastan reĝimon por dosiero n-ro %d" + +#: input.c:258 +#, c-format +msgid "cannot allocate new file descriptor for bash input from fd %d" +msgstr "Maleblas disponigi novan dosiernumeron por Baŝa enigo el n-ro %d" + +#: input.c:266 +#, c-format +msgid "save_bash_input: buffer already exists for new fd %d" +msgstr "save_bash_input: La nova dosiernumero (fd %d) jam havas bufron" + +#: jobs.c:466 +msgid "start_pipeline: pgrp pipe" +msgstr "" + +#: jobs.c:882 +#, c-format +msgid "forked pid %d appears in running job %d" +msgstr "Forke farita proceznumero %d aperas en rulata laboro %d" + +#: jobs.c:1000 +#, c-format +msgid "deleting stopped job %d with process group %ld" +msgstr "Haltigita laboro %d kun procezgrupo %ld estas forigata" + +#: jobs.c:1105 +#, c-format +msgid "add_process: process %5ld (%s) in the_pipeline" +msgstr "" + +#: jobs.c:1108 +#, c-format +msgid "add_process: pid %5ld (%s) marked as still alive" +msgstr "" + +#: jobs.c:1396 +#, c-format +msgid "describe_pid: %ld: no such pid" +msgstr "describe_pid: Ne estas tia proceznumero (%ld)!" + +#: jobs.c:1411 +#, c-format +msgid "Signal %d" +msgstr "" + +#: jobs.c:1425 jobs.c:1450 +msgid "Done" +msgstr "" + +#: jobs.c:1430 siglist.c:122 +msgid "Stopped" +msgstr "" + +#: jobs.c:1434 +#, c-format +msgid "Stopped(%s)" +msgstr "" + +#: jobs.c:1438 +msgid "Running" +msgstr "" + +#: jobs.c:1452 +#, c-format +msgid "Done(%d)" +msgstr "" + +#: jobs.c:1454 +#, c-format +msgid "Exit %d" +msgstr "" + +#: jobs.c:1457 +msgid "Unknown status" +msgstr "" + +#: jobs.c:1544 +#, c-format +msgid "(core dumped) " +msgstr "" + +#: jobs.c:1563 +#, c-format +msgid " (wd: %s)" +msgstr "" + +#: jobs.c:1766 +#, c-format +msgid "child setpgid (%ld to %ld)" +msgstr "" + +#: jobs.c:2094 nojobs.c:576 +#, c-format +msgid "wait: pid %ld is not a child of this shell" +msgstr "wait: La procezo %ld ne estas ido de ĉi tiu ŝelo" + +#: jobs.c:2321 +#, c-format +msgid "wait_for: No record of process %ld" +msgstr "wait_for: Malestas informoj pri procezo %ld" + +#: jobs.c:2593 +#, c-format +msgid "wait_for_job: job %d is stopped" +msgstr "wait_for_job: La laboro %d estas haltigita" + +#: jobs.c:2815 +#, c-format +msgid "%s: job has terminated" +msgstr "%s: La laboro finiĝis" + +#: jobs.c:2824 +#, c-format +msgid "%s: job %d already in background" +msgstr "%s: La laboro %d jam estas fona" + +#: jobs.c:3487 +#, fuzzy, c-format +msgid "%s: line %d: " +msgstr "%s: Averto: " + +#: jobs.c:3501 nojobs.c:805 +#, c-format +msgid " (core dumped)" +msgstr "" + +#: jobs.c:3513 jobs.c:3526 +#, c-format +msgid "(wd now: %s)\n" +msgstr "" + +#: jobs.c:3558 +msgid "initialize_job_control: getpgrp failed" +msgstr "" + +#: jobs.c:3618 +msgid "initialize_job_control: line discipline" +msgstr "" + +#: jobs.c:3628 +msgid "initialize_job_control: setpgid" +msgstr "" + +#: jobs.c:3656 +#, c-format +msgid "cannot set terminal process group (%d)" +msgstr "" + +#: jobs.c:3661 +msgid "no job control in this shell" +msgstr "Ĉi tiu ŝelo ne disponigas laborregadon" + +#: lib/malloc/malloc.c:296 +#, c-format +msgid "malloc: failed assertion: %s\n" +msgstr "malloc: Malveras la aserto: %s\n" + +# XXX: debug? +#: lib/malloc/malloc.c:312 +#, c-format +msgid "" +"\r\n" +"malloc: %s:%d: assertion botched\r\n" +msgstr "" +"\r\n" +"malloc: %s:%d: aserto sufokita\r\n" + +# XXX: internal error +#: lib/malloc/malloc.c:313 +#, fuzzy +msgid "unknown" +msgstr "%s: Nekonata retnodo" + +# XXX: debug? +#: lib/malloc/malloc.c:797 +msgid "malloc: block on free list clobbered" +msgstr "malloc: Skribdifektita bloko en malokupa listo (free list)" + +# XXX: debug? +#: lib/malloc/malloc.c:874 +msgid "free: called with already freed block argument" +msgstr "free: La argumento montras blokon jam malokupitan" + +# XXX: debug? +#: lib/malloc/malloc.c:877 +msgid "free: called with unallocated block argument" +msgstr "free: La argumento ne montras generitan memoron" + +# XXX: debug? +#: lib/malloc/malloc.c:896 +msgid "free: underflow detected; mh_nbytes out of range" +msgstr "free: Okazis maltroo; mh_nbytes estas ekster sia variejo" + +# XXX: debug? +#: lib/malloc/malloc.c:902 +msgid "free: start and end chunk sizes differ" +msgstr "free: La ĉapa kaj vosta longoj de memorpeco ne estas egalaj" + +# XXX: debug? +#: lib/malloc/malloc.c:1001 +msgid "realloc: called with unallocated block argument" +msgstr "realloc: La argumento ne montras generitan memoron" + +# XXX: debug? +#: lib/malloc/malloc.c:1016 +msgid "realloc: underflow detected; mh_nbytes out of range" +msgstr "realloc: Okazis maltroo; mh_nbytes estas ekster sia variejo" + +# XXX: debug? +#: lib/malloc/malloc.c:1022 +msgid "realloc: start and end chunk sizes differ" +msgstr "realloc: La ĉapa kaj vosta longoj de memorpeco ne estas egalaj" + +# XXX: debug? +#: lib/malloc/table.c:177 +#, c-format +msgid "register_alloc: alloc table is full with FIND_ALLOC?\n" +msgstr "register_alloc: „alloc‟-tabelo elĉerpiĝis je FIND_ALLOC?\n" + +# XXX: debug? +#: lib/malloc/table.c:184 +#, c-format +msgid "register_alloc: %p already in table as allocated?\n" +msgstr "register_alloc: %p jam en la tabelo kvazaÅ­ kreita (?)\n" + +# XXX: debug? +#: lib/malloc/table.c:220 +#, c-format +msgid "register_free: %p already in table as free?\n" +msgstr "register_free: %p jam en la tabelo kvazaÅ­ malokupita (?)\n" + +#: lib/sh/fmtulong.c:101 +msgid "invalid base" +msgstr "Misa bazo nombrosistema" + +# XXX: internal error +#: lib/sh/netopen.c:168 +#, c-format +msgid "%s: host unknown" +msgstr "%s: Nekonata retnodo" + +# XXX: internal error +#: lib/sh/netopen.c:175 +#, c-format +msgid "%s: invalid service" +msgstr "%s: Misa servo-indiko" + +# XXX: internal error +#: lib/sh/netopen.c:306 +#, c-format +msgid "%s: bad network path specification" +msgstr "%s: Misa retvojo-indiko" + +# XXX: internal error +#: lib/sh/netopen.c:346 +msgid "network operations not supported" +msgstr "Reta funkciado ne disponeblas" + +#: mailcheck.c:433 +msgid "You have mail in $_" +msgstr "Vi havas poŝton en $_" + +#: mailcheck.c:458 +msgid "You have new mail in $_" +msgstr "Nova poŝto en $_" + +#: mailcheck.c:474 +#, c-format +msgid "The mail in %s has been read\n" +msgstr "La poŝto en %s estas jam legita\n" + +#: make_cmd.c:322 +msgid "syntax error: arithmetic expression required" +msgstr "Sintaksa eraro: Necesas aritmetika esprimo" + +#: make_cmd.c:324 +msgid "syntax error: `;' unexpected" +msgstr "Sintaksa eraro: Neatendita „;‟" + +#: make_cmd.c:325 +#, c-format +msgid "syntax error: `((%s))'" +msgstr "Sintaksa eraro: „((%s))‟" + +#: make_cmd.c:567 +#, c-format +msgid "make_here_document: bad instruction type %d" +msgstr "make_here_document: Misa ordontipo %d" + +#: make_cmd.c:651 +#, c-format +msgid "here-document at line %d delimited by end-of-file (wanted `%s')" +msgstr "" + +# XXX: programming_error +#: make_cmd.c:746 +#, c-format +msgid "make_redirection: redirection instruction `%d' out of range" +msgstr "make_redirection: Alidirektada komando „%d‟ ekster sia variejo" + +#: parse.y:2986 parse.y:3218 +#, c-format +msgid "unexpected EOF while looking for matching `%c'" +msgstr "Neatendita dosierfino dum serĉo de responda „%c‟" + +#: parse.y:3722 +msgid "unexpected EOF while looking for `]]'" +msgstr "Neatendita dosierfino dum serĉo de „]]‟" + +#: parse.y:3727 +#, c-format +msgid "syntax error in conditional expression: unexpected token `%s'" +msgstr "Sintaksa eraro en kondiĉa esprimo: Neatendita simbolo „%s‟" + +#: parse.y:3731 +msgid "syntax error in conditional expression" +msgstr "Sintaksa eraro en kondiĉa esprimo" + +#: parse.y:3809 +#, c-format +msgid "unexpected token `%s', expected `)'" +msgstr "Nekonvena simbolo „%s‟ anstataÅ­ „)‟" + +#: parse.y:3813 +msgid "expected `)'" +msgstr "Mankas „)‟" + +#: parse.y:3841 +#, c-format +msgid "unexpected argument `%s' to conditional unary operator" +msgstr "La argumento „%s‟ ne konvenas por unuloka kondiĉa operacisimbolo" + +#: parse.y:3845 +msgid "unexpected argument to conditional unary operator" +msgstr "MaltaÅ­ga argumento por unuloka kondiĉa operacisimbolo" + +#: parse.y:3885 +#, c-format +msgid "unexpected token `%s', conditional binary operator expected" +msgstr "Misa simbolo „%s‟ anstataÅ­ duloka kondiĉa operacisigno" + +#: parse.y:3889 +msgid "conditional binary operator expected" +msgstr "ĉi tie devas esti duloka kondiĉa operacisigno" + +#: parse.y:3906 +#, c-format +msgid "unexpected argument `%s' to conditional binary operator" +msgstr "La argumento „%s‟ ne konvenas por duloka kondiĉa operacisimbolo" + +#: parse.y:3910 +msgid "unexpected argument to conditional binary operator" +msgstr ">\t\tleft and right bitwise shifts\n" +" \t<=, >=, <, >\tcomparison\n" +" \t==, !=\t\tequality, inequality\n" +" \t&\t\tbitwise AND\n" +" \t^\t\tbitwise XOR\n" +" \t|\t\tbitwise OR\n" +" \t&&\t\tlogical AND\n" +" \t||\t\tlogical OR\n" +" \texpr ? expr : expr\n" +" \t\t\tconditional operator\n" +" \t=, *=, /=, %=,\n" +" \t+=, -=, <<=, >>=,\n" +" \t&=, ^=, |=\tassignment\n" +" \n" +" Shell variables are allowed as operands. The name of the variable\n" +" is replaced by its value (coerced to a fixed-width integer) within\n" +" an expression. The variable need not have its integer attribute\n" +" turned on to be used in an expression.\n" +" \n" +" Operators are evaluated in order of precedence. Sub-expressions in\n" +" parentheses are evaluated first and may override the precedence\n" +" rules above.\n" +" \n" +" Exit Status:\n" +" If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise.." +msgstr "" +"Ĉiu arg estas komputenda aritmetika esprimo. La komputado uzas\n" +" longajn entjerojn sen kontrolo pri trooj; tamen divido per 0\n" +" estas kaptata kaj raportata kiel eraro. En la sekvanta listo\n" +" da operacioj la samprioritataj operacisimboloj aperas kune.\n" +" La grupoj estas aranĝitaj laÅ­ malkresko de prioritato.\n" +"\n" +"\tnomo++, nomo--\tpostkrementoj de variablo\n" +"\t-, +\t\tunulokaj minus, plus\n" +"\t!, ~\t\tlogika kaj laÅ­bita negoj\n" +"\t*, /, %\t\tmultipliko, divido, resto\n" +"\t+, -\t\tadicio, subtraho\n" +"\t<<, >>\t\tlaÅ­bitaj ŝovoj maldekstren kaj dekstren\n" +"\t<=, >=, <, >\tkomparaj operacioj\n" +"\t==, !=\t\tegalo, neegalo\n" +"\t&\t\tlaÅ­bita KAJ\n" +"\t^\t\tlaÅ­bita DISAŬ\n" +"\t|\t\tlaÅ­bita AŬ\n" +"\t&&\t\tlogika KAJ\n" +"\t||\t\tlogika AŬ\n" +"\tesprimo ? esprimo : esprimo\n" +"\t\t\tkondiĉa esprimo\n" +"\t=, *=, /=, %=,\n" +"\t+=, -=, <<=, >>=,\n" +"\t&=, ^=, |=\tvalorizo\n" +"\n" +" La ŝelvariabloj uzeblas kiel operandoj. En esprimo la nomon de\n" +" variablo anstataÅ­as ĝia valoro (altipigita al longa entjero).\n" +" Por tia uzo en esprimo variablo ne bezonas havi ŝaltita sian\n" +" atributon integer (entjera).\n" +"\n" +" La operacioj plenumiĝas laÅ­ siaj prioritatoj. La enkrampigitaj\n" +" subesprimoj plenumiĝas unue, kaj tio ebligas ĉirkaÅ­iri la supre\n" +" priskribitajn regulojn pri la prioritatoj.\n" +"\n" +" Se la komputo de la lasta arg donas 0, la komando „let‟\n" +" liveras 1; alie ĝi liveras 0." + +# read [-ers] [-u fd] [-t timeout] [-p prompt] [-a array] [-n nchars] +# [-d delim] [name ...] +#: builtins.c:962 +#, fuzzy +msgid "" +"Read a line from the standard input and split it into fields.\n" +" \n" +" Reads a single line from the standard input, or from file descriptor FD\n" +" if the -u option is supplied. The line is split into fields as with " +"word\n" +" splitting, and the first word is assigned to the first NAME, the second\n" +" word to the second NAME, and so on, with any leftover words assigned to\n" +" the last NAME. Only the characters found in $IFS are recognized as " +"word\n" +" delimiters.\n" +" \n" +" If no NAMEs are supplied, the line read is stored in the REPLY " +"variable.\n" +" \n" +" Options:\n" +" -a array\tassign the words read to sequential indices of the array\n" +" \t\tvariable ARRAY, starting at zero\n" +" -d delim\tcontinue until the first character of DELIM is read, rather\n" +" \t\tthan newline\n" +" -e\t\tuse Readline to obtain the line in an interactive shell\n" +" -i text\tUse TEXT as the initial text for Readline\n" +" -n nchars\treturn after reading NCHARS characters rather than waiting\n" +" \t\tfor a newline\n" +" -p prompt\toutput the string PROMPT without a trailing newline before\n" +" \t\tattempting to read\n" +" -r\t\tdo not allow backslashes to escape any characters\n" +" -s\t\tdo not echo input coming from a terminal\n" +" -t timeout\ttime out and return failure if a complete line of input " +"is\n" +" \t\tnot read withint TIMEOUT seconds. The value of the TMOUT\n" +" \t\tvariable is the default timeout. TIMEOUT may be a\n" +" \t\tfractional number. If TIMEOUT is 0, read returns success only\n" +" \t\tif input is available on the specified file descriptor. The\n" +" \t\texit status is greater than 128 if the timeout is exceeded\n" +" -u fd\t\tread from file descriptor FD instead of the standard input\n" +" \n" +" Exit Status:\n" +" The return code is zero, unless end-of-file is encountered, read times " +"out,\n" +" or an invalid file descriptor is supplied as the argument to -u." +msgstr "" +"Legu unu linion el la ĉefenigujo, aÅ­ el la dosiero indikita\n" +" per dosiernumero fd, se la opcio -u estas donita; la unuan\n" +" vorton ricevu la unua argumento name; la duan, la dua name ktp;\n" +" la lasta name ricevu ĉiujn restantajn vortojn. Nur la signoj\n" +" troveblaj en la variablo $IFS rolas kiel vortodisigiloj. Se\n" +" nenia name estas donita, konservu la legitan linion en la\n" +" variablo REPLY.\n" +"\n" +" La opcio -r indikas «krudan legadon», ke la deklivo „\\‟ estas\n" +" ordinara signo kiu ne rolas kiel eskapsigno.\n" +" La opcio -d enkondukas finilon delim, ĉe kies unua signo la\n" +" legado ĉesu (anstataÅ­ ĉe la normala linifinilo).\n" +" La opcio -p kaÅ­zas eligon de la invitĉeno prompt sen liniavanco\n" +" antaÅ­ la atendata enigo.\n" +" La opcio -a igas konservi la legatajn vortojn en sinsekvaj\n" +" elementoj de tabelo array, komencante per la nula.\n" +" Se la opcio -e estas donita kaj la ŝelo estas dialoga, la\n" +" linio estas legata per la funkcio readline().\n" +" Se la opcio -n estas donita kun argumento nchars ne egala al 0,\n" +" read finiĝas leginte nchars da signoj.\n" +" La opcio -s silentigas la eÄ¥on de la terminala enigo.\n" +"\n" +" La opcio -t igas la komandon read ĉesiĝi kun fiaska elirstato se\n" +" kompleta linio da enigaĵo ne estas ricevita dum timeout da\n" +" sekundoj. Se la variablo TMOUT havas valoron, ĉi tiu estas\n" +" uzata kiel defaÅ­lta atendolimo. La elirstato estas 0, krom se\n" +" renkontiĝas dosierfino, atendolimo estas atingita, aÅ­ nevalida\n" +" dosiernumero estas indikita ĉe -u." + +#: builtins.c:1002 +msgid "" +"Return from a shell function.\n" +" \n" +" Causes a function or sourced script to exit with the return value\n" +" specified by N. If N is omitted, the return status is that of the\n" +" last command executed within the function or script.\n" +" \n" +" Exit Status:\n" +" Returns N, or failure if the shell is not executing a function or script." +msgstr "" + +# set [--abefhkmnptuvxBCHP] [-o option] [arg ...] +#: builtins.c:1015 +#, fuzzy +msgid "" +"Set or unset values of shell options and positional parameters.\n" +" \n" +" Change the value of shell attributes and positional parameters, or\n" +" display the names and values of shell variables.\n" +" \n" +" Options:\n" +" -a Mark variables which are modified or created for export.\n" +" -b Notify of job termination immediately.\n" +" -e Exit immediately if a command exits with a non-zero status.\n" +" -f Disable file name generation (globbing).\n" +" -h Remember the location of commands as they are looked up.\n" +" -k All assignment arguments are placed in the environment for a\n" +" command, not just those that precede the command name.\n" +" -m Job control is enabled.\n" +" -n Read commands but do not execute them.\n" +" -o option-name\n" +" Set the variable corresponding to option-name:\n" +" allexport same as -a\n" +" braceexpand same as -B\n" +" emacs use an emacs-style line editing interface\n" +" errexit same as -e\n" +" errtrace same as -E\n" +" functrace same as -T\n" +" hashall same as -h\n" +" histexpand same as -H\n" +" history enable command history\n" +" ignoreeof the shell will not exit upon reading EOF\n" +" interactive-comments\n" +" allow comments to appear in interactive commands\n" +" keyword same as -k\n" +" monitor same as -m\n" +" noclobber same as -C\n" +" noexec same as -n\n" +" noglob same as -f\n" +" nolog currently accepted but ignored\n" +" notify same as -b\n" +" nounset same as -u\n" +" onecmd same as -t\n" +" physical same as -P\n" +" pipefail the return value of a pipeline is the status of\n" +" the last command to exit with a non-zero status,\n" +" or zero if no command exited with a non-zero " +"status\n" +" posix change the behavior of bash where the default\n" +" operation differs from the Posix standard to\n" +" match the standard\n" +" privileged same as -p\n" +" verbose same as -v\n" +" vi use a vi-style line editing interface\n" +" xtrace same as -x\n" +" -p Turned on whenever the real and effective user ids do not match.\n" +" Disables processing of the $ENV file and importing of shell\n" +" functions. Turning this option off causes the effective uid and\n" +" gid to be set to the real uid and gid.\n" +" -t Exit after reading and executing one command.\n" +" -u Treat unset variables as an error when substituting.\n" +" -v Print shell input lines as they are read.\n" +" -x Print commands and their arguments as they are executed.\n" +" -B the shell will perform brace expansion\n" +" -C If set, disallow existing regular files to be overwritten\n" +" by redirection of output.\n" +" -E If set, the ERR trap is inherited by shell functions.\n" +" -H Enable ! style history substitution. This flag is on\n" +" by default when the shell is interactive.\n" +" -P If set, do not follow symbolic links when executing commands\n" +" such as cd which change the current directory.\n" +" -T If set, the DEBUG trap is inherited by shell functions.\n" +" - Assign any remaining arguments to the positional parameters.\n" +" The -x and -v options are turned off.\n" +" \n" +" Using + rather than - causes these flags to be turned off. The\n" +" flags can also be used upon invocation of the shell. The current\n" +" set of flags may be found in $-. The remaining n ARGs are positional\n" +" parameters and are assigned, in order, to $1, $2, .. $n. If no\n" +" ARGs are given, all shell variables are printed.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given." +msgstr "" +"-a\tMarku eksportendaj la variablojn ŝanĝitajn aÅ­ kreitajn.\n" +" -b\tTuj sciigu pri finiĝo de fonaj laboroj.\n" +" -e\tEliru tuj se iu komando finiĝis kun elirstato alia ol 0.\n" +" -f\tNe malvolvu ĵokerojn en dosiernomoj.\n" +" -h\tRegistru en hakettabelo la situon de komandoj serĉataj.\n" +" -k\tĈiujn valorizojn en ajna parto de komandolinio rigardu\n" +" kiel valorizojn de ŝelvariabloj por la medio de la komando,\n" +"\tne nur la valorizojn antaÅ­antajn la komandonomon.\n" +" -m\tAktivigu la laborregadon.\n" +" -n\tLegu la komandojn sen plenumi ilin.\n" +" -o option\n" +"\tAktivigu la variablon respondan al la opcionomo option:\n" +"\t allexport\tsame kiel -a\n" +"\t braceexpand\tsame kiel -B\n" +"\t emacs\tuzu emakseskan interfacon por liniredaktado\n" +"\t errexit\tsame kiel -e\n" +"\t errtrace\tsame kiel -E\n" +"\t functrace\tsame kiel -T\n" +"\t hashall\tsame kiel -h\n" +"\t histexpand\tsame kiel -H\n" +"\t history\tebligu komandohistorion\n" +"\t ignoreeof\tla ŝelo ne finiĝos leginte dosierfinilon\n" +"\t interactive-comments\n" +"\t\t\ttoleru komentojn en dialogaj komandoj\n" +"\t keyword\tsame kiel -k\n" +"\t monitor\tsame kiel -m\n" +"\t noclobber\tsame kiel -C\n" +"\t noexec\tsame kiel -n\n" +"\t noglob\tsame kiel -f\n" +"\t notify\tsame kiel -b\n" +"\t nounset\tsame kiel -u\n" +"\t onecmd\tsame kiel -t\n" +"\t physical\tsame kiel -P\n" +"\t pipefail\tla elirstato de dukto estu la elirstato\n" +"\t\t\tde la lasta komando finiĝinta nenule, aÅ­\n" +"\t\t\t0, se neniu komando alie finiĝis\n" +"\t posix\tŝanĝu la konduton de Baŝo ĉie kie ĝia defaÅ­lta\n" +"\t\t\tfunkciado devias disde Pozikso 1003.2 tiel\n" +"\t\t\tke ĝi konformu al tiu normo\n" +"\t privileged\tsame kiel -p\n" +"\t verbose\tsame kiel -v\n" +"\t vi\t\tuzu vi-eskan interfacon por liniredaktado\n" +"\t xtrace\tsame kiel -x\n" +" -p\tPrivilegia reĝimo, aktiviĝas meme kiam la reala kaj efektiva\n" +"\tidentoj de la uzanto malkongruas. La dosiero $ENV ne estas\n" +"\ttraktata nek la ŝelfunkcioj, importataj el la medio.\n" +"\tMalaktivigo de tiu opcio ŝanĝas la efektivajn uid kaj gid\n" +"\tlaÅ­ la realaj uid kaj gid.\n" +" -t\tFinu la ŝelon leginte kaj plenuminte unu komandon.\n" +" -u\tProvo anstataÅ­igi senvaloran variablon estu eraro.\n" +" -v\tEligu la komandoliniojn legatajn.\n" +" -x\tEligu la plenumotajn komandojn kaj iliajn argumentojn.\n" +" -B\tLa ŝelo faru vinkulmalvolvon\n" +" -C\tSe aktiva, malebligu skribdifekti ekzistantajn ordinarajn\n" +"\tdosierojn per alidirektado de la eligo.\n" +" -E\tSe aktiva, la ERR-kaptilon (ERR trap) heredas la ŝelaj\n" +"\tfunkcioj\n" +" -H\tEbligu atingi la protokolon !-stile. DefaÅ­lte la opcio estas\n" +"\taktiva en la dialogaj ŝeloj.\n" +" -P\tNe sekvu simbolajn ligilojn plenumante tiajn komandojn, kiel\n" +"\t„cd‟ por ŝanĝi la kurantan dosierujon.\n" +" -T\tSe aktiva, la DEBUG-kaptilon (DEBUG trap) heredas la ŝelaj\n" +"\tfunkcioj\n" +" -\tLa restantajn argumentojn uzu por valorizi la poziciajn\n" +"\tparametrojn. La opcioj -x kaj -v malaktiviĝas.\n" +"\n" +" Uzante la signon + anstataÅ­ - vi povas malŝalti la opcion. La opciojn\n" +" ankaÅ­ eblas uzi ĉe la voko de la ŝelo. La kuranta aro da aktivaj\n" +" opcioj troveblas en $-. La restantaj n argumentoj arg estas\n" +" poziciaj, kaj per ili estas valorizataj, respektive, $1, $2 ... $n.\n" +" Se nenia arg estas donita, ĉiuj ŝelvariabloj estas eligataj." + +#: builtins.c:1097 +msgid "" +"Unset values and attributes of shell variables and functions.\n" +" \n" +" For each NAME, remove the corresponding variable or function.\n" +" \n" +" Options:\n" +" -f\ttreat each NAME as a shell function\n" +" -v\ttreat each NAME as a shell variable\n" +" \n" +" Without options, unset first tries to unset a variable, and if that " +"fails,\n" +" tries to unset a function.\n" +" \n" +" Some variables cannot be unset; also see `readonly'.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or a NAME is read-only." +msgstr "" + +#: builtins.c:1117 +msgid "" +"Set export attribute for shell variables.\n" +" \n" +" Marks each NAME for automatic export to the environment of subsequently\n" +" executed commands. If VALUE is supplied, assign VALUE before " +"exporting.\n" +" \n" +" Options:\n" +" -f\trefer to shell functions\n" +" -n\tremove the export property from each NAME\n" +" -p\tdisplay a list of all exported variables and functions\n" +" \n" +" An argument of `--' disables further option processing.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or NAME is invalid." +msgstr "" + +#: builtins.c:1136 +msgid "" +"Mark shell variables as unchangeable.\n" +" \n" +" Mark each NAME as read-only; the values of these NAMEs may not be\n" +" changed by subsequent assignment. If VALUE is supplied, assign VALUE\n" +" before marking as read-only.\n" +" \n" +" Options:\n" +" -a\trefer to indexed array variables\n" +" -A\trefer to associative array variables\n" +" -f\trefer to shell functions\n" +" -p\tdisplay a list of all readonly variables and functions\n" +" \n" +" An argument of `--' disables further option processing.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or NAME is invalid." +msgstr "" + +#: builtins.c:1157 +msgid "" +"Shift positional parameters.\n" +" \n" +" Rename the positional parameters $N+1,$N+2 ... to $1,$2 ... If N is\n" +" not given, it is assumed to be 1.\n" +" \n" +" Exit Status:\n" +" Returns success unless N is negative or greater than $#." +msgstr "" + +# source filename [arguments] +#: builtins.c:1169 builtins.c:1184 +#, fuzzy +msgid "" +"Execute commands from a file in the current shell.\n" +" \n" +" Read and execute commands from FILENAME in the current shell. The\n" +" entries in $PATH are used to find the directory containing FILENAME.\n" +" If any ARGUMENTS are supplied, they become the positional parameters\n" +" when FILENAME is executed.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed in FILENAME; fails if\n" +" FILENAME cannot be read." +msgstr "" +"Legu kaj plenumu la komandojn el dosiernomo filename kaj\n" +" revenu. La vojoj el la variablo $PATH estas uzataj por trovi\n" +" la dosierujon de filename. La eventualaj argumentoj\n" +" arguments iĝas la poziciaj parametroj por plenumo de filename." + +#: builtins.c:1200 +msgid "" +"Suspend shell execution.\n" +" \n" +" Suspend the execution of this shell until it receives a SIGCONT signal.\n" +" Unless forced, login shells cannot be suspended.\n" +" \n" +" Options:\n" +" -f\tforce the suspend, even if the shell is a login shell\n" +" \n" +" Exit Status:\n" +" Returns success unless job control is not enabled or an error occurs." +msgstr "" + +# test [expr] +#: builtins.c:1216 +#, fuzzy +msgid "" +"Evaluate conditional expression.\n" +" \n" +" Exits with a status of 0 (true) or 1 (false) depending on\n" +" the evaluation of EXPR. Expressions may be unary or binary. Unary\n" +" expressions are often used to examine the status of a file. There\n" +" are string operators as well, and numeric comparison operators.\n" +" \n" +" File operators:\n" +" \n" +" -a FILE True if file exists.\n" +" -b FILE True if file is block special.\n" +" -c FILE True if file is character special.\n" +" -d FILE True if file is a directory.\n" +" -e FILE True if file exists.\n" +" -f FILE True if file exists and is a regular file.\n" +" -g FILE True if file is set-group-id.\n" +" -h FILE True if file is a symbolic link.\n" +" -L FILE True if file is a symbolic link.\n" +" -k FILE True if file has its `sticky' bit set.\n" +" -p FILE True if file is a named pipe.\n" +" -r FILE True if file is readable by you.\n" +" -s FILE True if file exists and is not empty.\n" +" -S FILE True if file is a socket.\n" +" -t FD True if FD is opened on a terminal.\n" +" -u FILE True if the file is set-user-id.\n" +" -w FILE True if the file is writable by you.\n" +" -x FILE True if the file is executable by you.\n" +" -O FILE True if the file is effectively owned by you.\n" +" -G FILE True if the file is effectively owned by your group.\n" +" -N FILE True if the file has been modified since it was last " +"read.\n" +" \n" +" FILE1 -nt FILE2 True if file1 is newer than file2 (according to\n" +" modification date).\n" +" \n" +" FILE1 -ot FILE2 True if file1 is older than file2.\n" +" \n" +" FILE1 -ef FILE2 True if file1 is a hard link to file2.\n" +" \n" +" String operators:\n" +" \n" +" -z STRING True if string is empty.\n" +" \n" +" -n STRING\n" +" STRING True if string is not empty.\n" +" \n" +" STRING1 = STRING2\n" +" True if the strings are equal.\n" +" STRING1 != STRING2\n" +" True if the strings are not equal.\n" +" STRING1 < STRING2\n" +" True if STRING1 sorts before STRING2 " +"lexicographically.\n" +" STRING1 > STRING2\n" +" True if STRING1 sorts after STRING2 lexicographically.\n" +" \n" +" Other operators:\n" +" \n" +" -o OPTION True if the shell option OPTION is enabled.\n" +" ! EXPR True if expr is false.\n" +" EXPR1 -a EXPR2 True if both expr1 AND expr2 are true.\n" +" EXPR1 -o EXPR2 True if either expr1 OR expr2 is true.\n" +" \n" +" arg1 OP arg2 Arithmetic tests. OP is one of -eq, -ne,\n" +" -lt, -le, -gt, or -ge.\n" +" \n" +" Arithmetic binary operators return true if ARG1 is equal, not-equal,\n" +" less-than, less-than-or-equal, greater-than, or greater-than-or-equal\n" +" than ARG2.\n" +" \n" +" Exit Status:\n" +" Returns success if EXPR evaluates to true; fails if EXPR evaluates to\n" +" false or an invalid argument is given." +msgstr "" +"Liveru elirstaton 0 (vera) aÅ­ 1 (malvera) laÅ­ la rezulto de\n" +" komputado de la esprimo expr. La esprimoj povas esti unulokaj\n" +" aÅ­ dulokaj. La unulokaj plejparte servas por determini la\n" +" staton de dosiero. Krome, estas operacioj super ĉenoj kaj la\n" +" nombrokomparaj operacioj.\n" +"\n" +" Operacioj super dosieroj:\n" +"\n" +"\t-a DOSIERO\tVera se DOSIERO ekzistas.\n" +"\t-b DOSIERO\tVera se DOSIERO estas por bloka eneligo.\n" +"\t-c DOSIERO\tVera se DOSIERO estas por bajta eneligo.\n" +"\t-d DOSIERO\tVera se DOSIERO estas dosierujo.\n" +"\t-e DOSIERO\tVera se DOSIERO ekzistas.\n" +"\t-f DOSIERO\tVera se DOSIERO ekzistas kaj estas ordinara.\n" +"\t-g DOSIERO\tVera se DOSIERO havas set-group-id = 1.\n" +"\t-h DOSIERO\tVera se DOSIERO estas simbola ligilo.\n" +"\t-L DOSIERO\tVera se DOSIERO estas simbola ligilo.\n" +"\t-k DOSIERO\tVera se la DOSIERO havas sticky = 1.\n" +"\t-p DOSIERO\tVera se DOSIERO estas nomhava dukto.\n" +"\t-r DOSIERO\tVera se vi rajtas legi DOSIEROn.\n" +"\t-s DOSIERO\tVera se DOSIERO ekzistas kaj longas pli ol 0.\n" +"\t-S DOSIERO\tVera se DOSIERO estas kontaktingo („socket‟).\n" +"\t-t DNUMERO\tVera se la dosiero DNUMERO estas terminala.\n" +"\t-u DOSIERO\tVera se DOSIERO havas set-user-id = 1.\n" +"\t-w DOSIERO\tVera se vi rajtas skribi en DOSIEROn.\n" +"\t-x DOSIERO\tVera se vi rajtas lanĉi DOSIEROn.\n" +"\t-O DOSIERO\tVera se DOSIERO estas via dosiero.\n" +"\t-G DOSIERO\tVera se DOSIERO apartenas al via grupo.\n" +"\t-N DOSIERO\tVera se DOSIERO ŝanĝiĝis post la lasta lego.\n" +"\n" +"\tD_RO1 -nt D_RO2\tVera se la dosiero D_RO1 estas pli freŝa\n" +"\t\t\t(laÅ­ la ŝanĝodato) ol la dosiero D_RO2.\n" +"\tD_RO1 -ot D_RO2\tVera se D_RO1 estas malpli freŝas ol D_RO2.\n" +"\tD_RO1 -ef D_RO2\tVera se D_RO1 estas rekta ligilo al D_RO2.\n" +"\n" +" Operacioj super ĉenoj:\n" +"\n" +"\t-z ĈENO\t\tVera se la ĈENO estas vakua.\n" +"\t-n ĈENO\t\tVera se la ĈENO ne estas vakua\n" +"\tĈENO\t\tVera se la ĈENO ne estas vakua\n" +"\tĈENO1 = ĈENO2\tVera se la ĉenoj estas egalaj.\n" +"\tĈENO1 != ĈENO2\tVera se la ĉenoj ne estas egalaj.\n" +"\tĈENO1 < ĈENO2\tVera se ĈENO1 leksikografie antaÅ­as la\n" +"\t\t\tĉenon ĈENO2.\n" +"\tĈENO1 > ĈENO2\tVera se ĈENO1 leksikografie sekvas la\n" +"\t\t\tĉenon ĈENO2.\n" +"\n" +" Diversaj operacioj:\n" +"\n" +"\t! ESPR\t\tVera se la esprimo ESPR estas falsa.\n" +"\tESPR1 -a ESPR2\tVera se ambaÅ­ esprimoj estas veraj.\n" +"\tESPR1 -o ESPR2\tVera se ajna el la esprimoj estas vera.\n" +"\n" +"\targ1 KP arg2\tAritmetikaj komparoj. KP estas iu el la\n" +"\t\t\trilatoj -eq, -ne, -lt, -le, -gt, -ge.\n" +"\n" +" La aritmetikaj komparoj liveras veron se arg1 estas respektive\n" +" egala, neegala, malplia ol, malplia aÅ­ egala al, plia ol,\n" +" plia aÅ­ egala al arg2." + +# [ arg... ] +#: builtins.c:1292 +#, fuzzy +msgid "" +"Evaluate conditional expression.\n" +" \n" +" This is a synonym for the \"test\" builtin, but the last argument must\n" +" be a literal `]', to match the opening `['." +msgstr "" +"Ĉi tiu estas sinonimo de la primitivo „test‟; tamen la lasta\n" +" argumento devas esti „]‟ fermanta la esprimon komencitan per „[‟." + +#: builtins.c:1301 +msgid "" +"Display process times.\n" +" \n" +" Prints the accumulated user and system times for the shell and all of " +"its\n" +" child processes.\n" +" \n" +" Exit Status:\n" +" Always succeeds." +msgstr "" + +# ZZZ: trap [arg] [signal_spec ...] or +# trap -l +#: builtins.c:1313 +#, fuzzy +msgid "" +"Trap signals and other events.\n" +" \n" +" Defines and activates handlers to be run when the shell receives " +"signals\n" +" or other conditions.\n" +" \n" +" ARG is a command to be read and executed when the shell receives the\n" +" signal(s) SIGNAL_SPEC. If ARG is absent (and a single SIGNAL_SPEC\n" +" is supplied) or `-', each specified signal is reset to its original\n" +" value. If ARG is the null string each SIGNAL_SPEC is ignored by the\n" +" shell and by the commands it invokes.\n" +" \n" +" If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell. " +"If\n" +" a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command.\n" +" \n" +" If no arguments are supplied, trap prints the list of commands " +"associated\n" +" with each signal.\n" +" \n" +" Options:\n" +" -l\tprint a list of signal names and their corresponding numbers\n" +" -p\tdisplay the trap commands associated with each SIGNAL_SPEC\n" +" \n" +" Each SIGNAL_SPEC is either a signal name in or a signal " +"number.\n" +" Signal names are case insensitive and the SIG prefix is optional. A\n" +" signal may be sent to the shell with \"kill -signal $$\".\n" +" \n" +" Exit Status:\n" +" Returns success unless a SIGSPEC is invalid or an invalid option is " +"given." +msgstr "" +"La komando arg estas legota kaj plenumota kiam la ŝelo ricevos\n" +" (iun) signalon signal_spec. Se nenia arg estas donita, ĉiuj\n" +" sian komencan valoron. Se ARG estas vakua ĉeno, ĉiuj signaloj\n" +" signal_spec estos malatentataj de la ŝelo kaj de la komandoj\n" +" kiujn ĝi vokas.\n" +"\n" +" Se inter la signaloj signal_spec estas „EXIT‟ (0), tiam arg de\n" +" la komando plenumiĝos ĉe la eliro el la ŝelo.\n" +" Se signal_spec estas DEBUG, arg plenumiĝos post ĉiu komando.\n" +" La opcio „-p‟ ebligas eligi la komandojn plenumotajn laÅ­ ĉiu\n" +" signalo signal_spec. Se estas donita neniu argumento aÅ­ nura\n" +" „-p‟, trap listigas la komandojn por trakti ĉiun kaptendan\n" +" signalon.\n" +"\n" +" Ĉiu signal_spec estas aÅ­ signalnomo el , aÅ­\n" +" signalnumero. „trap -l‟ listigas la signalnomojn kun la numeroj.\n" +" Signalon signalindiko eblas sendi al la ŝelo per la komando\n" +" «kill -signalindiko $$»." + +#: builtins.c:1345 +msgid "" +"Display information about command type.\n" +" \n" +" For each NAME, indicate how it would be interpreted if used as a\n" +" command name.\n" +" \n" +" Options:\n" +" -a\tdisplay all locations containing an executable named NAME;\n" +" \tincludes aliases, builtins, and functions, if and only if\n" +" \tthe `-p' option is not also used\n" +" -f\tsuppress shell function lookup\n" +" -P\tforce a PATH search for each NAME, even if it is an alias,\n" +" \tbuiltin, or function, and returns the name of the disk file\n" +" \tthat would be executed\n" +" -p\treturns either the name of the disk file that would be executed,\n" +" \tor nothing if `type -t NAME' would not return `file'.\n" +" -t\toutput a single word which is one of `alias', `keyword',\n" +" \t`function', `builtin', `file' or `', if NAME is an alias, shell\n" +" \treserved word, shell function, shell builtin, disk file, or not\n" +" \tfound, respectively\n" +" \n" +" Arguments:\n" +" NAME\tCommand name to be interpreted.\n" +" \n" +" Exit Status:\n" +" Returns success if all of the NAMEs are found; fails if any are not " +"found." +msgstr "" + +# ulimit [-SHacdflmnpstuv] [limit] +#: builtins.c:1376 +#, fuzzy +msgid "" +"Modify shell resource limits.\n" +" \n" +" Provides control over the resources available to the shell and " +"processes\n" +" it creates, on systems that allow such control.\n" +" \n" +" Options:\n" +" -S\tuse the `soft' resource limit\n" +" -H\tuse the `hard' resource limit\n" +" -a\tall current limits are reported\n" +" -b\tthe socket buffer size\n" +" -c\tthe maximum size of core files created\n" +" -d\tthe maximum size of a process's data segment\n" +" -e\tthe maximum scheduling priority (`nice')\n" +" -f\tthe maximum size of files written by the shell and its children\n" +" -i\tthe maximum number of pending signals\n" +" -l\tthe maximum size a process may lock into memory\n" +" -m\tthe maximum resident set size\n" +" -n\tthe maximum number of open file descriptors\n" +" -p\tthe pipe buffer size\n" +" -q\tthe maximum number of bytes in POSIX message queues\n" +" -r\tthe maximum real-time scheduling priority\n" +" -s\tthe maximum stack size\n" +" -t\tthe maximum amount of cpu time in seconds\n" +" -u\tthe maximum number of user processes\n" +" -v\tthe size of virtual memory\n" +" -x\tthe maximum number of file locks\n" +" \n" +" If LIMIT is given, it is the new value of the specified resource; the\n" +" special LIMIT values `soft', `hard', and `unlimited' stand for the\n" +" current soft limit, the current hard limit, and no limit, respectively.\n" +" Otherwise, the current value of the specified resource is printed. If\n" +" no option is given, then -f is assumed.\n" +" \n" +" Values are in 1024-byte increments, except for -t, which is in seconds,\n" +" -p, which is in increments of 512 bytes, and -u, which is an unscaled\n" +" number of processes.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" +"La komando „ulimit‟ ebligas mastrumi la risurcojn disponeblajn al la\n" +" procezoj lanĉataj el la ŝelo (se la operaciumo ebligas tian\n" +" mastrumadon). Se opcio estas donita, ĝi havas jenan sencon:\n" +"\n" +"\t-S ŝanĝebla („soft‟) limo\n" +"\t-H firma („hard‟) limo\n" +"\t-a eligu ĉiujn kurantajn risurcolimaĵojn\n" +"\t-c maksimuma longo de nekropsia dosiero („core‟)\n" +"\t-d maksimuma longo de datumsegmento de procezo\n" +"\t-e maksimuma viciga prioritato („nice‟)\n" +"\t-f maksimuma longo de dosieroj skribataj de la ŝelo kaj ĝiaj idoj\n" +"\t-l maksimuma longo de ŝlosebla procezmemoro (mlock)\n" +"\t-m maksimuma longo de rezida procezmemoro\n" +"\t-n maksimuma nombro de malfermitaj dosiernumeroj\n" +"\t-p longo de dukta bufro (pipe)\n" +"\t-q maksimuma nombro da bajtoj en atendovicoj de Poziksaj mesaĝoj\n" +"\t-s maksimuma longo de stako\n" +"\t-t maksimuma tempo ĉefprocesora (en sekundoj)\n" +"\t-u maksimuma nombro de procezoj de la uzanto\n" +"\t-v longo de la virtuala memoro\n" +"\t-x maksimuma nombro de dosierŝlosoj\n" +"\n" +" Se limo limit estas indikita, ĝia valoro limigas la koncernan\n" +" risurcon; la specialaj vortoj por limit: „soft‟, „hard‟,\n" +" „unlimited‟ signifas, respektive: «la kuranta ŝanĝebla limo»,\n" +" «la kuranta firma limo», «sen limo».\n" +"\n" +" Alie estas eligata la kuranta valoro de la koncerna risurco.\n" +" Manko de opcioj implicas -f. La valoroj estas en obloj de\n" +" 1024 bajtoj, krom por la opcio -t kiu estas en sekundoj;\n" +" por -p kiu estas en obloj de 512 bajtoj; kaj por -u, kiu estas\n" +" sendimensia nombro de procezoj." + +#: builtins.c:1421 +msgid "" +"Display or set file mode mask.\n" +" \n" +" Sets the user file-creation mask to MODE. If MODE is omitted, prints\n" +" the current value of the mask.\n" +" \n" +" If MODE begins with a digit, it is interpreted as an octal number;\n" +" otherwise it is a symbolic mode string like that accepted by chmod(1).\n" +" \n" +" Options:\n" +" -p\tif MODE is omitted, output in a form that may be reused as input\n" +" -S\tmakes the output symbolic; otherwise an octal number is output\n" +" \n" +" Exit Status:\n" +" Returns success unless MODE is invalid or an invalid option is given." +msgstr "" + +#: builtins.c:1441 +msgid "" +"Wait for job completion and return exit status.\n" +" \n" +" Waits for the process identified by ID, which may be a process ID or a\n" +" job specification, and reports its termination status. If ID is not\n" +" given, waits for all currently active child processes, and the return\n" +" status is zero. If ID is a a job specification, waits for all " +"processes\n" +" in the job's pipeline.\n" +" \n" +" Exit Status:\n" +" Returns the status of ID; fails if ID is invalid or an invalid option " +"is\n" +" given." +msgstr "" + +# wait [n] +#: builtins.c:1459 +#, fuzzy +msgid "" +"Wait for process completion and return exit status.\n" +" \n" +" Waits for the specified process and reports its termination status. If\n" +" PID is not given, all currently active child processes are waited for,\n" +" and the return code is zero. PID must be a process ID.\n" +" \n" +" Exit Status:\n" +" Returns the status of ID; fails if ID is invalid or an invalid option " +"is\n" +" given." +msgstr "" +"Atendu finiĝon de la indikita procezo kaj liveru ĝian elirstaton.\n" +" Se n malestas, atendu ĉiujn aktivajn procezidojn, kaj liveru\n" +" la elirstaton 0. n povas esti proceznumero aÅ­ laborindiko;\n" +" se ĝi estas laborindiko, la atendo koncernas ĉiujn procezojn de la\n" +" dukto de la laboro." + +# for NAME [in WORDS ... ;] do COMMANDS; done +#: builtins.c:1474 +#, fuzzy +msgid "" +"Execute commands for each member in a list.\n" +" \n" +" The `for' loop executes a sequence of commands for each member in a\n" +" list of items. If `in WORDS ...;' is not present, then `in \"$@\"' is\n" +" assumed. For each element in WORDS, NAME is set to that element, and\n" +" the COMMANDS are executed.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"La iteracio „for‟ plenumas la komandojn COMMANDS por ĉiu ero\n" +" de sia listo. Se la parto «in WORDS ...;» malestas, «in \"$@\"»\n" +" estas uzata anstataÅ­e. Por ĉiu ero aperanta en WORDS, la nomo\n" +" NAME estas valorizata per tiu ero kaj la komandoj COMMANDS\n" +" estas plenumataj." + +# for ((: for (( exp1; exp2; exp3 )); do COMMANDS; done +#: builtins.c:1488 +#, fuzzy +msgid "" +"Arithmetic for loop.\n" +" \n" +" Equivalent to\n" +" \t(( EXP1 ))\n" +" \twhile (( EXP2 )); do\n" +" \t\tCOMMANDS\n" +" \t\t(( EXP3 ))\n" +" \tdone\n" +" EXP1, EXP2, and EXP3 are arithmetic expressions. If any expression is\n" +" omitted, it behaves as if it evaluates to 1.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"Ekvivalentas al\n" +"\t(( EXP1 ))\n" +"\twhile (( EXP2 )); do\n" +"\t COMMANDS\n" +"\t (( EXP3 ))\n" +"\tdone\n" +" kie EXP1, EXP2 kaj EXP3 estas aritmetikaj esprimoj. Se iu el\n" +" ili malestas, 1 estas uzata anstataÅ­e." + +# select NAME [in WORDS ... ;] do COMMANDS; done +#: builtins.c:1506 +#, fuzzy +msgid "" +"Select words from a list and execute commands.\n" +" \n" +" The WORDS are expanded, generating a list of words. The\n" +" set of expanded words is printed on the standard error, each\n" +" preceded by a number. If `in WORDS' is not present, `in \"$@\"'\n" +" is assumed. The PS3 prompt is then displayed and a line read\n" +" from the standard input. If the line consists of the number\n" +" corresponding to one of the displayed words, then NAME is set\n" +" to that word. If the line is empty, WORDS and the prompt are\n" +" redisplayed. If EOF is read, the command completes. Any other\n" +" value read causes NAME to be set to null. The line read is saved\n" +" in the variable REPLY. COMMANDS are executed after each selection\n" +" until a break command is executed.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"WORDS ... estas malvolvataj, generante liston da vortoj. Tiuj\n" +" vortoj estas eligataj en la ĉeferarujon, ĉiu antaÅ­ate de sia\n" +" numero. Se „in WORDS‟ ne estas indikita, la enhavo de \"$@\"\n" +" estas uzata anstataÅ­e. La invito entenata en la variablo PS3\n" +" estas eligata kaj linio estas legata el la ĉefenigujo. Se linio\n" +" konsistas el numero responda al iu el la vortoj eligataj, la\n" +" nomo NAME ricevas ĝin kiel sian valoron. Se la linio entenas\n" +" nenion, WORDS kaj la invito ripetiĝas. Ĉe la dosierfino la\n" +" komando finiĝas. Ajna alia enigaĵo vakuigas la variablon NAME.\n" +" La legita linio konserviĝas en la variablo REPLY. COMMANDS\n" +" estas plenumataj post ĉiu elekto, ĝis renkontiĝos komando de\n" +" eliro (break)." + +# time [-p] PIPELINE +#: builtins.c:1527 +#, fuzzy +msgid "" +"Report time consumed by pipeline's execution.\n" +" \n" +" Execute PIPELINE and print a summary of the real time, user CPU time,\n" +" and system CPU time spent executing PIPELINE when it terminates.\n" +" \n" +" Options:\n" +" -p\tprint the timing summary in the portable Posix format\n" +" \n" +" The value of the TIMEFORMAT variable is used as the output format.\n" +" \n" +" Exit Status:\n" +" The return status is the return status of PIPELINE." +msgstr "" +"Plenumu la dukton PIPELINE kaj poste eligu tabelon el la reala tempo,\n" +" la ĉefprocesora tempo de la uzanto, kaj la ĉefprocesora tempo\n" +" sistema, konsumitaj por plenumo de PIPELINE.\n" +" La opcio „-p‟ iom ŝanĝas la prezenton de la tabelo.\n" +" La variablo TIMEFORMAT difinas la formaton de la eligaĵo." + +# case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac +#: builtins.c:1544 +#, fuzzy +msgid "" +"Execute commands based on pattern matching.\n" +" \n" +" Selectively execute COMMANDS based upon WORD matching PATTERN. The\n" +" `|' is used to separate multiple patterns.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"Plenumu komandojn COMMANDS kondiĉe ke WORD kongruas kun ŝablono PATTERN.\n" +" La streko „|‟ servas por disigi ŝablonojn (se pluraj)." + +# if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... +# [ else COMMANDS; ] fi +#: builtins.c:1556 +#, fuzzy +msgid "" +"Execute commands based on conditional.\n" +" \n" +" The `if COMMANDS' list is executed. If its exit status is zero, then " +"the\n" +" `then COMMANDS' list is executed. Otherwise, each `elif COMMANDS' list " +"is\n" +" executed in turn, and if its exit status is zero, the corresponding\n" +" `then COMMANDS' list is executed and the if command completes. " +"Otherwise,\n" +" the `else COMMANDS' list is executed, if present. The exit status of " +"the\n" +" entire construct is the exit status of the last command executed, or " +"zero\n" +" if no condition tested true.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"La komandoj el «if COMMANDS» estas plenumataj. Se la elirstato estas 0,\n" +" tiam la komandoj el «then COMMANDS» estas plenumataj. Alie, laÅ­vice,\n" +" komandoj el «elif COMMANDS» estas plenumataj, kaj se la elirstato\n" +" estas 0, la komandoj de ties «elif COMMANDS» iĝas plenumataj post kio\n" +" la komando „if‟ finiĝas. Alie, la komandoj el «else COMMANDS» iĝas\n" +" plenumataj (se tiuj enestas). La elirstato estas tiu de la lasta\n" +" komando plenumita, aÅ­ 0 se neniu el la kondiĉoj estis vera." + +# while COMMANDS; do COMMANDS; done +#: builtins.c:1573 +#, fuzzy +msgid "" +"Execute commands as long as a test succeeds.\n" +" \n" +" Expand and execute COMMANDS as long as the final command in the\n" +" `while' COMMANDS has an exit status of zero.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"Ripete malvolvu kaj plenumu la komandojn dum la lasta el la komandoj\n" +" COMMANDS de la „while‟-parto liveras elirstaton 0." + +# until COMMANDS; do COMMANDS; done +#: builtins.c:1585 +#, fuzzy +msgid "" +"Execute commands as long as a test does not succeed.\n" +" \n" +" Expand and execute COMMANDS as long as the final command in the\n" +" `until' COMMANDS has an exit status which is not zero.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"Ripete malvolvu kaj plenumu la komandojn dum la lasta el la komandoj\n" +" COMMANDS de la „until‟-parto liveras elirstaton alian ol 0." + +#: builtins.c:1597 +msgid "" +"Define shell function.\n" +" \n" +" Create a shell function named NAME. When invoked as a simple command,\n" +" NAME runs COMMANDs in the calling shell's context. When NAME is " +"invoked,\n" +" the arguments are passed to the function as $1...$n, and the function's\n" +" name is in $FUNCNAME.\n" +" \n" +" Exit Status:\n" +" Returns success unless NAME is readonly." +msgstr "" + +# grouping_braces: { COMMANDS ; } +#: builtins.c:1611 +#, fuzzy +msgid "" +"Group commands as a unit.\n" +" \n" +" Run a set of commands in a group. This is one way to redirect an\n" +" entire set of commands.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"Plenumu la komandojn grupe. Tiel eblas apliki alidirektadon al\n" +" tuta grupo da komandoj." + +#: builtins.c:1623 +#, fuzzy +msgid "" +"Resume job in foreground.\n" +" \n" +" Equivalent to the JOB_SPEC argument to the `fg' command. Resume a\n" +" stopped or background job. JOB_SPEC can specify either a job name\n" +" or a job number. Following JOB_SPEC with a `&' places the job in\n" +" the background, as if the job specification had been supplied as an\n" +" argument to `bg'.\n" +" \n" +" Exit Status:\n" +" Returns the status of the resumed job." +msgstr "" +"Samkiel la argumento JOB_SPEC en komando „fg‟. Reaktivigu\n" +" haltigitan aÅ­ fonan laboron. JOB_SPEC povas esti labornomo aÅ­\n" +" labornumero. Postmetita „&‟ sendas la laboron en la fonon,\n" +" samkiel se la komando „bg‟ estus aplikita al laborindiko." + +#: builtins.c:1638 +#, fuzzy +msgid "" +"Evaluate arithmetic expression.\n" +" \n" +" The EXPRESSION is evaluated according to the rules for arithmetic\n" +" evaluation. Equivalent to \"let EXPRESSION\".\n" +" \n" +" Exit Status:\n" +" Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise." +msgstr "" +"La esprimo EXPRESSION komputiĝas laÅ­ la aritmetikaj reguloj.\n" +" Ekvivalenta al «let EXPRESSION»." + +# [[ expression ]] +#: builtins.c:1650 +#, fuzzy +msgid "" +"Execute conditional command.\n" +" \n" +" Returns a status of 0 or 1 depending on the evaluation of the " +"conditional\n" +" expression EXPRESSION. Expressions are composed of the same primaries " +"used\n" +" by the `test' builtin, and may be combined using the following " +"operators:\n" +" \n" +" ( EXPRESSION )\tReturns the value of EXPRESSION\n" +" ! EXPRESSION\t\tTrue if EXPRESSION is false; else false\n" +" EXPR1 && EXPR2\tTrue if both EXPR1 and EXPR2 are true; else false\n" +" EXPR1 || EXPR2\tTrue if either EXPR1 or EXPR2 is true; else false\n" +" \n" +" When the `==' and `!=' operators are used, the string to the right of\n" +" the operator is used as a pattern and pattern matching is performed.\n" +" When the `=~' operator is used, the string to the right of the operator\n" +" is matched as a regular expression.\n" +" \n" +" The && and || operators do not evaluate EXPR2 if EXPR1 is sufficient to\n" +" determine the expression's value.\n" +" \n" +" Exit Status:\n" +" 0 or 1 depending on value of EXPRESSION." +msgstr "" +"Liveras elirstaton 0 aÅ­ 1 laÅ­ la rezulto de komputado de kondiĉa\n" +" esprimo expression. Esprimoj konsistas el bazaj esprimoj, kiajn\n" +" uzas la primitivaĵo „test‟, kaj komponiĝas per sekvaj operacioj:\n" +"\n" +"\t( ESPRIMO )\tLiveras la valoron de ESPRIMO\n" +"\t! ESPRIMO\tVera, se ESPRIMO estas malvera; alie malvera\n" +"\tESP1 && ESP2\tVera, se veras ambaÅ­ ESP1 kaj ESP2; alie malvera\n" +"\tESP1 || ESP2\tVera, se veras ajna el ESP1 kaj ESP2; alie malvera\n" +"\n" +" En la operacioj „==‟ kaj „!=‟ la signoĉeno dekstre de la operacisigno\n" +" rolas kiel ŝablono, kongrueco al kiu estas testata. En la operacioj\n" +" && kaj || la duaj subesprimoj ESP2 ne estas komputataj se ESP1 jam\n" +" sufiĉas por determini la rezulton." + +# help var +#: builtins.c:1676 +#, fuzzy +msgid "" +"Common shell variable names and usage.\n" +" \n" +" BASH_VERSION\tVersion information for this Bash.\n" +" CDPATH\tA colon-separated list of directories to search\n" +" \t\tfor directories given as arguments to `cd'.\n" +" GLOBIGNORE\tA colon-separated list of patterns describing filenames to\n" +" \t\tbe ignored by pathname expansion.\n" +" HISTFILE\tThe name of the file where your command history is stored.\n" +" HISTFILESIZE\tThe maximum number of lines this file can contain.\n" +" HISTSIZE\tThe maximum number of history lines that a running\n" +" \t\tshell can access.\n" +" HOME\tThe complete pathname to your login directory.\n" +" HOSTNAME\tThe name of the current host.\n" +" HOSTTYPE\tThe type of CPU this version of Bash is running under.\n" +" IGNOREEOF\tControls the action of the shell on receipt of an EOF\n" +" \t\tcharacter as the sole input. If set, then the value\n" +" \t\tof it is the number of EOF characters that can be seen\n" +" \t\tin a row on an empty line before the shell will exit\n" +" \t\t(default 10). When unset, EOF signifies the end of input.\n" +" MACHTYPE\tA string describing the current system Bash is running on.\n" +" MAILCHECK\tHow often, in seconds, Bash checks for new mail.\n" +" MAILPATH\tA colon-separated list of filenames which Bash checks\n" +" \t\tfor new mail.\n" +" OSTYPE\tThe version of Unix this version of Bash is running on.\n" +" PATH\tA colon-separated list of directories to search when\n" +" \t\tlooking for commands.\n" +" PROMPT_COMMAND\tA command to be executed before the printing of each\n" +" \t\tprimary prompt.\n" +" PS1\t\tThe primary prompt string.\n" +" PS2\t\tThe secondary prompt string.\n" +" PWD\t\tThe full pathname of the current directory.\n" +" SHELLOPTS\tA colon-separated list of enabled shell options.\n" +" TERM\tThe name of the current terminal type.\n" +" TIMEFORMAT\tThe output format for timing statistics displayed by the\n" +" \t\t`time' reserved word.\n" +" auto_resume\tNon-null means a command word appearing on a line by\n" +" \t\titself is first looked for in the list of currently\n" +" \t\tstopped jobs. If found there, that job is foregrounded.\n" +" \t\tA value of `exact' means that the command word must\n" +" \t\texactly match a command in the list of stopped jobs. A\n" +" \t\tvalue of `substring' means that the command word must\n" +" \t\tmatch a substring of the job. Any other value means that\n" +" \t\tthe command must be a prefix of a stopped job.\n" +" histchars\tCharacters controlling history expansion and quick\n" +" \t\tsubstitution. The first character is the history\n" +" \t\tsubstitution character, usually `!'. The second is\n" +" \t\tthe `quick substitution' character, usually `^'. The\n" +" \t\tthird is the `history comment' character, usually `#'.\n" +" HISTIGNORE\tA colon-separated list of patterns used to decide which\n" +" \t\tcommands should be saved on the history list.\n" +msgstr "" +"BASH_VERSION\tInformo pri la versio de ĉi tiu Baŝo.\n" +" CDPATH\tListo da dosierujoj (disigitaj per dupunkto) en\n" +"\t\tkiuj argumenta dosierujo de „cd‟ estu serĉata.\n" +" GLOBIGNORE\tListo da ŝablonoj (disigitaj per dupunkto) difinanta\n" +"\t\tdosiernomojn ignorendajn ĉe malvolvo de dosierindikoj.\n" +" HISTFILE\tNomo de la dosiero por via komandohistorio.\n" +" HISTFILESIZE Maksimuma nombro de linioj konserveblaj en HISTFILE.\n" +" HISTSIZE\tMaksimuma nombro de linioj el komandohistorio\n" +"\t\tatingeblaj el plenumata ŝelo.\n" +" HOME\tPlena dosierindiko pri via hejma dosierujo.\n" +" HOSTNAME\tNomo de la rulanta komputilo.\n" +" HOSTTYPE\tTipo de la ĉefprocesoro rulanta ĉi tiun Baŝon.\n" +" IGNOREEOF\tDeterminas la konduton de la ŝelo kiam ĝi ricevas\n" +"\t\tdosierfinilon (^D, \\004) kiel nuran enigaĵon. Se ĝi\n" +"\t\tekzistas kaj havas nombran valoron, tiam ĉi tiu\n" +"\t\tindikas, kiom da sinsekvaj dosierfinilojn toleri\n" +"\t\tantaÅ­ ol la ŝelo finiĝu (defaÅ­lte, 10). Se la\n" +"\t\tvariablo ne ekzistas, ^D signifas finon de enigo.\n" +" MACHTYPE\tSignoĉeno priskribanta la komputosistemon rulantan\n" +"\t\tĉi tiun Baŝon.\n" +" MAILCHECK\tKiom ofte (post kiom da sekundoj) Baŝo kontrolu\n" +"\t\tricevon de nova retpoŝta mesaĝo.\n" +" MAILPATH\tListo da dosiernomoj (disigitaj per dupunkto) kiujn\n" +"\t\tBaŝo testu pri nova retpoŝtaĵo.\n" +" OSTYPE\tVersio de Unikso sur kiu ĉi tiu Baŝo ruliĝas.\n" +" PATH\tListo da dosierujoj (disigitaj per dupunkto) kie serĉi\n" +"\t\tkomandojn.\n" +" PROMPT_COMMAND Komando plenumenda antaÅ­ ĉiu unuaranga invito.\n" +" PS1\t\tSignoĉeno de la unuaranga invito.\n" +" PS2\t\tSignoĉeno de la duaranga invito.\n" +" PWD\t\tPlena dosierindiko de la kuranta dosierujo.\n" +" SHELLOPTS\tListo da aktivaj ŝelaj opcioj (disigitaj per dupunktoj).\n" +" TERM\tTipo de la uzata terminalo.\n" +" TIMEFORMAT\tFormato por eligi tempostatistikon per la komando „time‟.\n" +" auto_resume\tSe ne vakua, indikas ke komandan vorton sole aperanta\n" +"\t\ten linio la ŝelo unue serĉu en la listo de haltetintaj\n" +"\t\tlaboroj. Se trovita tie, la laboro iĝu dialoga.\n" +"\t\tLa valoro „exact‟ postulas ekzaktan kongruon de la\n" +"\t\tkomanda vorto kun la komando el la laborlisto. La valoro\n" +"\t\t„substring‟ indikas ke la komanda vorto kongruu kun\n" +"\t\tsubĉeno de la laboro. Ĉia alia valoro indikas ke la\n" +"\t\tkomando estu komenca parto de la labornomo.\n" +" histchars\tSignoj regantaj reuzon de komandohistorio kaj rapidan\n" +"\t\tanstataÅ­igon. Unue estas la reuziga signo, kutime „!‟.\n" +"\t\tDue estas la signo de „rapida anstataÅ­igo‟, kutime „^‟.\n" +"\t\tTrie estas la signo de „historia komentilo‟,\n" +"\t\tkutime „#‟.\n" +" HISTIGNORE\tListo da ŝablonoj (disigitaj per dupunkto) difinanta\n" +"\t\tkiujn komandojn konservi en la historilisto.\n" + +# pushd [dir | +N | -N] [-n] +#: builtins.c:1733 +#, fuzzy +msgid "" +"Add directories to stack.\n" +" \n" +" Adds a directory to the top of the directory stack, or rotates\n" +" the stack, making the new top of the stack the current working\n" +" directory. With no arguments, exchanges the top two directories.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when adding\n" +" \tdirectories to the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the left of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" -N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the right of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" dir\tAdds DIR to the directory stack at the top, making it the\n" +" \tnew current working directory.\n" +" \n" +" The `dirs' builtin displays the directory stack.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid argument is supplied or the directory\n" +" change fails." +msgstr "" +"Surstakigu dosierujon sur la stakon da dosierujoj, aÅ­ cikle ŝovu\n" +" la stakon tiel, ke la nova stakpinto iĝu la kuranta dosierujo.\n" +" Senargumente, permutu la du plej suprajn dosierujojn de la stako.\n" +"\n" +" +N\tCikle ŝovu la stakon tiel ke la Na dosierujo (nombrante de\n" +" \tmaldekstre en la listo eligebla per „dirs‟, numerante de 0)\n" +" iĝu la pinta.\n" +"\n" +" -N\tCikle ŝovu la stakon tiel ke la Na dosierujo (nombrante de\n" +" \tdekstre en la listo eligebla per „dirs‟, numerante de 0) iĝu\n" +" la pinta.\n" +"\n" +" -n\tNe ŝanĝu la kurantan dosierujon surstakigante dosierujon sur\n" +" \tla stakon; do, nur la stakon ŝanĝu.\n" +"\n" +" dir\tsurstakigu la dosierujon dir kaj faru ĝin la nova kuranta\n" +" \tdosierujo labora.\n" +"\n" +" Vi povas vidigi la stakon da dosierujoj per la komando „dirs‟." + +# popd [+N | -N] [-n] +#: builtins.c:1767 +#, fuzzy +msgid "" +"Remove directories from stack.\n" +" \n" +" Removes entries from the directory stack. With no arguments, removes\n" +" the top directory from the stack, and changes to the new top directory.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when removing\n" +" \tdirectories from the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRemoves the Nth entry counting from the left of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd +0'\n" +" \tremoves the first directory, `popd +1' the second.\n" +" \n" +" -N\tRemoves the Nth entry counting from the right of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd -0'\n" +" \tremoves the last directory, `popd -1' the next to last.\n" +" \n" +" The `dirs' builtin displays the directory stack.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid argument is supplied or the directory\n" +" change fails." +msgstr "" +"Elstakigu erojn el la stako de dosierujoj. Senargumente, forigu la\n" +" pintan dosierujon kaj iru (cd) en la novan pintan dosierujon.\n" +"\n" +" +N\tforigu la Nan eron de maldekstre de la listo eligebla per\n" +"\t„dirs‟, numerante ekde 0. Ekz-e: «popd +0» forigas la plej\n" +"\tmaldekstran dosierujon; «popd +1», ĝian najbaron.\n" +"\n" +" -N\tforigu la Nan eron de dekstre de la listo eligebla per „dirs‟,\n" +"\tnumerante ekde 0. Ekz-e: «popd -0» forigas la lastan\n" +"\tdosierujon; «popd -1», la antaÅ­lastan.\n" +"\n" +" -n\tNe ŝanĝu la kurantan dosierujon demetante dosierujon el la\n" +"\tstako; do, nur la stakon ŝanĝu.\n" +"\n" +" Vi povas vidigi la stakon da dosierujoj per la komando „dirs‟." + +# dirs [-clpv] [+N] [-N] +#: builtins.c:1797 +#, fuzzy +msgid "" +"Display directory stack.\n" +" \n" +" Display the list of currently remembered directories. Directories\n" +" find their way onto the list with the `pushd' command; you can get\n" +" back up through the list with the `popd' command.\n" +" \n" +" Options:\n" +" -c\tclear the directory stack by deleting all of the elements\n" +" -l\tdo not print tilde-prefixed versions of directories relative\n" +" \tto your home directory\n" +" -p\tprint the directory stack with one entry per line\n" +" -v\tprint the directory stack with one entry per line prefixed\n" +" \twith its position in the stack\n" +" \n" +" Arguments:\n" +" +N\tDisplays the Nth entry counting from the left of the list shown " +"by\n" +" \tdirs when invoked without options, starting with zero.\n" +" \n" +" -N\tDisplays the Nth entry counting from the right of the list shown " +"by\n" +" \tdirs when invoked without options, starting with zero.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" +"Listigu la kurantan dosierujstakon. La dosierujoj trafas en\n" +" la stakon per la komando „pushd‟ kaj estas forigeblaj per la\n" +" komando „popd‟.\n" +"\n" +" La opcio -l indikas ke „dirs‟ ne eligu mallongajn formojn de\n" +" dosierujnomoj relative al via hejma dosierujo. T.e. anstataÅ­\n" +" «~/bin» aperos nomo kun absoluta vojo, ekz-e «/homes/bfox/bin».\n" +" La opcio -v igas komandon „dirs‟ eligi po unu eron de la dosierujstako\n" +" en linio, metante antaÅ­ la dosierujnomo ĝian numeron en la stako.\n" +" La opcio -p faras simile, tamen ne numeras la poziciojn.\n" +" La opcio -c malplenigas la dosierujstakon forigante el ĝi ĉiujn erojn.\n" +"\n" +" +N\teligu la Nan eron nombrante de maldekstre en la listo eligebla\n" +"\tper „dirs‟ sen opcioj, numerante ekde 0.\n" +"\n" +" -N\teligu la Nan eron nombrante de dekstre en la listo eligebla\n" +"\tper „dirs‟ sen opcioj, numerante ekde 0." + +#: builtins.c:1826 +msgid "" +"Set and unset shell options.\n" +" \n" +" Change the setting of each shell option OPTNAME. Without any option\n" +" arguments, list all shell options with an indication of whether or not " +"each\n" +" is set.\n" +" \n" +" Options:\n" +" -o\trestrict OPTNAMEs to those defined for use with `set -o'\n" +" -p\tprint each shell option with an indication of its status\n" +" -q\tsuppress output\n" +" -s\tenable (set) each OPTNAME\n" +" -u\tdisable (unset) each OPTNAME\n" +" \n" +" Exit Status:\n" +" Returns success if OPTNAME is enabled; fails if an invalid option is\n" +" given or OPTNAME is disabled." +msgstr "" + +# printf [-v var] format [arguments] +#: builtins.c:1847 +#, fuzzy +msgid "" +"Formats and prints ARGUMENTS under control of the FORMAT.\n" +" \n" +" Options:\n" +" -v var\tassign the output to shell variable VAR rather than\n" +" \t\tdisplay it on the standard output\n" +" \n" +" FORMAT is a character string which contains three types of objects: " +"plain\n" +" characters, which are simply copied to standard output; character " +"escape\n" +" sequences, which are converted and copied to the standard output; and\n" +" format specifications, each of which causes printing of the next " +"successive\n" +" argument.\n" +" \n" +" In addition to the standard format specifications described in printf" +"(1)\n" +" and printf(3), printf interprets:\n" +" \n" +" %b\texpand backslash escape sequences in the corresponding argument\n" +" %q\tquote the argument in a way that can be reused as shell input\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or a write or " +"assignment\n" +" error occurs." +msgstr "" +"„printf‟ aranĝas kaj eligas la argumentojn arguments laÅ­ la formato\n" +" format. Ci tiu estas signoĉeno entenanta 3 tipojn da objektoj:\n" +" ordinaraj signoj, simple kopiataj en la ĉefeligujon;\n" +" eskapsekvencoj por signo, konvertataj kaj kopiataj en la ĉefeligujon; \n" +" kaj formataj specifoj, ĉiu el kiuj kaÅ­zas eligon de vica argumento.\n" +" Aldone al la normaj specifiloj laÅ­ „printf(1)‟,\n" +" „%b‟ igas malvolvi deklivajn (\\) eskapsekvencojn en sia argumento, kaj\n" +" „%q‟ ordonas ke la argumento eliĝu en formo taÅ­ga por ŝela re-enigo.\n" +" Se ĉeestas la opcio „-v‟, la eligo trafas en ties variablon var kaj\n" +" ne en la ĉefeligujon." + +#: builtins.c:1874 +msgid "" +"Specify how arguments are to be completed by Readline.\n" +" \n" +" For each NAME, specify how arguments are to be completed. If no " +"options\n" +" are supplied, existing completion specifications are printed in a way " +"that\n" +" allows them to be reused as input.\n" +" \n" +" Options:\n" +" -p\tprint existing completion specifications in a reusable format\n" +" -r\tremove a completion specification for each NAME, or, if no\n" +" \tNAMEs are supplied, all completion specifications\n" +" \n" +" When completion is attempted, the actions are applied in the order the\n" +" uppercase-letter options are listed above.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" + +# compgen [-abcdefgjksuv] [-o option] [-A action] [-G globpat] +# [-W wordlist] [-P prefix] [-S suffix] [-X filterpat] +# [-F function] [-C command] [word] +#: builtins.c:1897 +#, fuzzy +msgid "" +"Display possible completions depending on the options.\n" +" \n" +" Intended to be used from within a shell function generating possible\n" +" completions. If the optional WORD argument is supplied, matches " +"against\n" +" WORD are generated.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" +"Montru la eblajn kompletigojn depende je la opcioj. Destinita\n" +" por uzo en ŝelfunkcio generanta eblajn kompletigojn.\n" +" Se eventuala argumento word estas donita, generu ĝiajn kongruaĵojn." + +#: builtins.c:1912 +msgid "" +"Modify or display completion options.\n" +" \n" +" Modify the completion options for each NAME, or, if no NAMEs are " +"supplied,\n" +" the completion currently begin executed. If no OPTIONs are givenm, " +"print\n" +" the completion options for each NAME or the current completion " +"specification.\n" +" \n" +" Options:\n" +" \t-o option\tSet completion option OPTION for each NAME\n" +" \n" +" Using `+o' instead of `-o' turns off the specified option.\n" +" \n" +" Arguments:\n" +" \n" +" Each NAME refers to a command for which a completion specification must\n" +" have previously been defined using the `complete' builtin. If no NAMEs\n" +" are supplied, compopt must be called by a function currently generating\n" +" completions, and the options for that currently-executing completion\n" +" generator are modified.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or NAME does not\n" +" have a completion specification defined." +msgstr "" + +#: builtins.c:1940 +msgid "" +"Read lines from a file into an array variable.\n" +" \n" +" Read lines from the standard input into the array variable ARRAY, or " +"from\n" +" file descriptor FD if the -u option is supplied. The variable MAPFILE " +"is\n" +" the default ARRAY.\n" +" \n" +" Options:\n" +" -n count\tCopy at most COUNT lines. If COUNT is 0, all lines are " +"copied.\n" +" -O origin\tBegin assigning to ARRAY at index ORIGIN. The default " +"index is 0.\n" +" -s count \tDiscard the first COUNT lines read.\n" +" -t\t\tRemove a trailing newline from each line read.\n" +" -u fd\t\tRead lines from file descriptor FD instead of the standard " +"input.\n" +" -C callback\tEvaluate CALLBACK each time QUANTUM lines are read.\n" +" -c quantum\tSpecify the number of lines read between each call to " +"CALLBACK.\n" +" \n" +" Arguments:\n" +" ARRAY\t\tArray variable name to use for file data.\n" +" \n" +" If -C is supplied without -c, the default quantum is 5000.\n" +" \n" +" If not supplied with an explicit origin, mapfile will clear ARRAY " +"before\n" +" assigning to it.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or ARRAY is readonly." +msgstr "" + +#~ msgid " " +#~ msgstr " " + +# caller [EXPR] +#~ msgid "Without EXPR, returns returns \"$line $filename\". With EXPR," +#~ msgstr "Se EXPR malestas, liveriĝas «$line $filename». Se EXPR ĉeestas," + +#~ msgid "returns \"$line $subroutine $filename\"; this extra information" +#~ msgstr "Liveriĝas «$line $subroutine $filename»; ĉi tiu krominformo" + +#~ msgid "can be used used to provide a stack trace." +#~ msgstr "Uzeblas por vidigi la vok-stakon." + +#~ msgid "" +#~ "The value of EXPR indicates how many call frames to go back before the" +#~ msgstr "La valoro de EXPR indikas, kiom da vokkadroj retroiri disde la" + +#~ msgid "current one; the top frame is frame 0." +#~ msgstr "kuranta; la pinta kadro havas la numeron 0." + +#~ msgid "%s: invalid number" +#~ msgstr "%s: Misa nombro aÅ­ numero" + +#~ msgid "Shell commands matching keywords `" +#~ msgstr "Ŝelaj komandoj kongruaj kun la ŝlosilvortoj `" + +# dirs +#~ msgid "Display the list of currently remembered directories. Directories" +#~ msgstr "Listigu la kurantan dosierujstakon. La dosierujoj trafas en" + +#~ msgid "find their way onto the list with the `pushd' command; you can get" +#~ msgstr "la stakon per la komando „pushd‟ kaj estas forigeblaj per la" + +#~ msgid "back up through the list with the `popd' command." +#~ msgstr "komando „popd‟." + +#~ msgid "" +#~ "The -l flag specifies that `dirs' should not print shorthand versions" +#~ msgstr "" +#~ "La opcio -l indikas ke la komando „dirs‟ ne eligu mallongajn formojn" + +#~ msgid "" +#~ "of directories which are relative to your home directory. This means" +#~ msgstr "de dosierujnomoj rilate al via hejma dosierujo. T.e. anstataÅ­ ~/bin" + +#~ msgid "that `~/bin' might be displayed as `/homes/bfox/bin'. The -v flag" +#~ msgstr "aperos nomo kun absoluta vojo, ekz-e „/homes/bfox/bin‟. La opcio -v" + +#~ msgid "causes `dirs' to print the directory stack with one entry per line," +#~ msgstr "igas „dirs‟ eligi po unu eron de la dosierujstako en linio," + +#~ msgid "" +#~ "prepending the directory name with its position in the stack. The -p" +#~ msgstr "metante antaÅ­ la dosierujnomo ĝian numeron en la stako. La opcio -p" + +#~ msgid "flag does the same thing, but the stack position is not prepended." +#~ msgstr "faras la samon sed sen numeri la poziciojn." + +#~ msgid "" +#~ "The -c flag clears the directory stack by deleting all of the elements." +#~ msgstr "" +#~ "La opcio -c malplenigas la dosierujstakon forigante el ĝi ĉiujn erojn." + +#~ msgid "" +#~ "+N displays the Nth entry counting from the left of the list shown by" +#~ msgstr "+N\teligu la Nan eron nombrante de maldekstre en la listo" + +#~ msgid " dirs when invoked without options, starting with zero." +#~ msgstr "\teligebla per „dirs‟ sen opcioj, komencante per 0." + +#~ msgid "" +#~ "-N displays the Nth entry counting from the right of the list shown by" +#~ msgstr "-N\teligu la Nan eron nombrante de dekstre en la listo" + +# pushd +#~ msgid "Adds a directory to the top of the directory stack, or rotates" +#~ msgstr "Surstakigu dosierujon sur la stakon de dosierujoj, aÅ­ cikle ŝovu" + +#~ msgid "the stack, making the new top of the stack the current working" +#~ msgstr "la stakon tiel, ke la nova stakpinto iĝu la kuranta dosierujo." + +#~ msgid "directory. With no arguments, exchanges the top two directories." +#~ msgstr "Senargumente, permutu la du plej suprajn dosierujojn de la stako." + +#~ msgid "+N Rotates the stack so that the Nth directory (counting" +#~ msgstr "+N\tCikle ŝovu la stakon tiel ke la Na dosierujo (nombrante de" + +#~ msgid " from the left of the list shown by `dirs', starting with" +#~ msgstr "\tmaldekstre en la listo eligebla per „dirs‟, numerante ekde" + +#~ msgid " zero) is at the top." +#~ msgstr "\t0) iĝu la pinta." + +#~ msgid "-N Rotates the stack so that the Nth directory (counting" +#~ msgstr "-N\tCikle ŝovu la stakon tiel ke la Na dosierujo (nombrante de" + +#~ msgid " from the right of the list shown by `dirs', starting with" +#~ msgstr "\tmaldekstre en la listo eligebla per „dirs‟, numerante ekde" + +#~ msgid "-n suppress the normal change of directory when adding directories" +#~ msgstr "-n\tNe ŝanĝu la kurantan dosierujon surstakigante dosierujon sur" + +#~ msgid " to the stack, so only the stack is manipulated." +#~ msgstr "\tla stakon; do, nur la stakon ŝanĝu." + +#~ msgid "dir adds DIR to the directory stack at the top, making it the" +#~ msgstr "dir\tSurstakigu la dosierujon dir kaj faru ĝin la" + +#~ msgid " new current working directory." +#~ msgstr "\tnova kuranta dosierujo labora." + +#~ msgid "You can see the directory stack with the `dirs' command." +#~ msgstr "Vi povas vidigi la stakon de dosierujoj per la komando „dirs‟." + +# popd +#~ msgid "Removes entries from the directory stack. With no arguments," +#~ msgstr "Elstakigu erojn el la stako de dosierujoj. Senargumente," + +#~ msgid "removes the top directory from the stack, and cd's to the new" +#~ msgstr "forigu la pintan dosierujon kaj iru (cd) en la novan pintan" + +#~ msgid "top directory." +#~ msgstr "dosierujon." + +#~ msgid "+N removes the Nth entry counting from the left of the list" +#~ msgstr "+N\tforigu la Nan eron nombrante de maldekstre de la listo" + +#~ msgid " shown by `dirs', starting with zero. For example: `popd +0'" +#~ msgstr "\teligebla per „dirs‟, numerante ekde 0. Ekz-e: „popd +0‟" + +#~ msgid " removes the first directory, `popd +1' the second." +#~ msgstr "\tforigas la plej maldekstran dosierujon; „popd +1‟, ĝian najbaron." + +#~ msgid "-N removes the Nth entry counting from the right of the list" +#~ msgstr "-N\tforigu la Nan eron nombrante de dekstre de la listo" + +#~ msgid " shown by `dirs', starting with zero. For example: `popd -0'" +#~ msgstr "\teligebla per „dirs‟, nombrante ekde 0. Ekz-e: «popd -0»" + +#~ msgid " removes the last directory, `popd -1' the next to last." +#~ msgstr "\tforigas la lastan dosierujon; «popd -1», ĝian najbaron." + +#~ msgid "" +#~ "-n suppress the normal change of directory when removing directories" +#~ msgstr "-n\tNe ŝanĝu la kurantan dosierujon demetante dosierujon" + +#~ msgid " from the stack, so only the stack is manipulated." +#~ msgstr "\tel la stako; do, nur la stakon ŝanĝu." + +# XXX: stat? debug? +#~ msgid "allocated" +#~ msgstr "okupita" + +# XXX: stat? debug? +#~ msgid "freed" +#~ msgstr "malokupita" + +# XXX: stat?? +#~ msgid "requesting resize" +#~ msgstr "bezonas retranĉon" + +# XXX: debug? Ĉu «ĵus» aÅ­ «ĝuste»? Pri kio temas?? +#~ msgid "just resized" +#~ msgstr "ĵus retranĉita" + +# XXX: debug? +#~ msgid "bug: unknown operation" +#~ msgstr "cimo: Nekonata operacio" + +# XXX: debug? +#~ msgid "malloc: watch alert: %p %s " +#~ msgstr "malloc: Gvat-raporto: %p %s " + +#~ msgid "" +#~ "Exit from within a FOR, WHILE or UNTIL loop. If N is specified,\n" +#~ " break N levels." +#~ msgstr "" +#~ "Eliru ekster iteracion FOR, WHILE aÅ­ UNTIL. Se N estas indikita,\n" +#~ " iru N nivelojn eksteren." + +#~ msgid "" +#~ "Run a shell builtin. This is useful when you wish to rename a\n" +#~ " shell builtin to be a function, but need the functionality of the\n" +#~ " builtin within the function itself." +#~ msgstr "" +#~ "Rulu primitivan ŝelkomandon. Tio utilas se oni volas uzi la nomon\n" +#~ " de ŝelaĵo por nomi funkcion, sed bezonas la koncernan\n" +#~ " primitivon en la funkcio mem." + +#~ msgid "" +#~ "Print the current working directory. With the -P option, pwd prints\n" +#~ " the physical directory, without any symbolic links; the -L option\n" +#~ " makes pwd follow symbolic links." +#~ msgstr "" +#~ "Eligu la nomon de kuranta dosierujo. Kun la opcio -P, la komando\n" +#~ " „pwd‟ eligas la nomon de la fizika dosierujo, sen ajna eventuala " +#~ "simbola\n" +#~ " ligilo; la opcio -L igas la komandon pwd sekvi simbolajn ligojn." + +#~ msgid "Return a successful result." +#~ msgstr "Liveru sukcesan rezulton." + +# ZZZ: command [-pVv] command [arg ...] +#~ msgid "" +#~ "Runs COMMAND with ARGS ignoring shell functions. If you have a shell\n" +#~ " function called `ls', and you wish to call the command `ls', you can\n" +#~ " say \"command ls\". If the -p option is given, a default value is " +#~ "used\n" +#~ " for PATH that is guaranteed to find all of the standard utilities. " +#~ "If\n" +#~ " the -V or -v option is given, a string is printed describing " +#~ "COMMAND.\n" +#~ " The -V option produces a more verbose description." +#~ msgstr "" +#~ "Plenumu komandon kun ARGoj sen atenti la ŝelajn funkciojn. Ekz-e se,\n" +#~ " havante ŝelan funkcion „ls‟, oni volas voki la komandon „ls‟, oni\n" +#~ " povas fari tion per «command ls». La opcio -p neprigas uzi la\n" +#~ " norman valoron de la de la variablo $PATH, ebliganta trovi ĉiujn\n" +#~ " normajn utilaĵojn.\n" +#~ " La opcio -V aÅ­ -v provizas eligon de ĉeno priskribanta la komandon;\n" +#~ " la opcio -V provizas pli detalan priskribon." + +#~ msgid "Obsolete. See `declare'." +#~ msgstr "Arkaika. Vd „declare‟." + +#~ msgid "" +#~ "Create a local variable called NAME, and give it VALUE. LOCAL\n" +#~ " can only be used within a function; it makes the variable NAME\n" +#~ " have a visible scope restricted to that function and its children." +#~ msgstr "" +#~ "Kreu lokan variablon NOMO kaj ĝin valorizu per VALORO.\n" +#~ " „local‟ uzeblas nur ene de funkcio; ĝi igas la variablon NOMO\n" +#~ " videbla en la regiono konstistanta el la funkcio kaj ties idoj." + +#~ msgid "" +#~ "Output the ARGs. If -n is specified, the trailing newline is suppressed." +#~ msgstr "Eligu la ARGojn. La opcio -n evitigas la postan liniavancon." + +# enable [-pnds] [-a] [-f filename] [name ...] +#~ msgid "" +#~ "Enable and disable builtin shell commands. This allows\n" +#~ " you to use a disk command which has the same name as a shell\n" +#~ " builtin without specifying a full pathname. If -n is used, the\n" +#~ " NAMEs become disabled; otherwise NAMEs are enabled. For example,\n" +#~ " to use the `test' found in $PATH instead of the shell builtin\n" +#~ " version, type `enable -n test'. On systems supporting dynamic\n" +#~ " loading, the -f option may be used to load new builtins from the\n" +#~ " shared object FILENAME. The -d option will delete a builtin\n" +#~ " previously loaded with -f. If no non-option names are given, or\n" +#~ " the -p option is supplied, a list of builtins is printed. The\n" +#~ " -a option means to print every builtin with an indication of whether\n" +#~ " or not it is enabled. The -s option restricts the output to the " +#~ "POSIX.2\n" +#~ " `special' builtins. The -n option displays a list of all disabled " +#~ "builtins." +#~ msgstr "" +#~ "Aktivigu aÅ­ malaktivigu primitivajn ŝelkomandojn. Tio ebligas\n" +#~ " uzi eksteran komandon, samnoman kun primitivaĵo, sen indiki\n" +#~ " ĝian plenan vojon.\n" +#~ " La opcio -n malaktivigas la nomojn name ..., sen ĝi la nomoj\n" +#~ " aktiviĝas. Ekz-e, por uzi la „test‟on troveblan en $PATH anstataÅ­\n" +#~ " la samnoman primitivan ŝelkomandon, diru: «enable -n test».\n" +#~ " En sistemo ebliganta dinamikan ŝargadon, la opcio -f uzeblas\n" +#~ " por ŝargi novajn primitivaĵojn el la dinamika biblioteko filename.\n" +#~ " La opcio -d forigos ŝelkomandon dinamike ŝargitan per -f.\n" +#~ " Se malestas neopciaj nomoj, aÅ­ ĉeestas la opcio -p, eligu la\n" +#~ " liston de primitivaĵoj.\n" +#~ " La opcio -a donas liston de ĉiuj primitivaĵoj kun indiko, ĉu ili\n" +#~ " estas aktivaj aÅ­ ne. La opcio -s eligas nur la «specialajn»\n" +#~ " ŝelfunkciojn de Posix.2. La opcio -n montras la liston de ĉiuj\n" +#~ " malaktivaj primitivaĵoj." + +#~ msgid "" +#~ "Read ARGs as input to the shell and execute the resulting command(s)." +#~ msgstr "" +#~ "Legu la ARGojn kiel enigaĵon de la ŝelo kaj plenumu la\n" +#~ " legita(j)n komando(j)n." + +# exec [-cl] [-a name] file [redirection ...] +#~ msgid "" +#~ "Exec FILE, replacing this shell with the specified program.\n" +#~ " If FILE is not specified, the redirections take effect in this\n" +#~ " shell. If the first argument is `-l', then place a dash in the\n" +#~ " zeroth arg passed to FILE, as login does. If the `-c' option\n" +#~ " is supplied, FILE is executed with a null environment. The `-a'\n" +#~ " option means to make set argv[0] of the executed process to NAME.\n" +#~ " If the file cannot be executed and the shell is not interactive,\n" +#~ " then the shell exits, unless the shell option `execfail' is set." +#~ msgstr "" +#~ "Plenumu la dosieron file anstataÅ­igante la ŝelon je la donita\n" +#~ " programo. Se file ne estas indikita, la alidirektadoj okazu en\n" +#~ " la kuranta ŝelo. Se la unua argumento estas „-l‟, minuso\n" +#~ " enŝoviĝas antaÅ­ la nula argumento pasigata al file (kiel\n" +#~ " ĉe „login‟). Ĉe la opcio -c, la plenumo de file estu en\n" +#~ " vakua medio. Per la opcio -a la argumento argv[0] de la\n" +#~ " plenumota procezo ricevas la valoron name. Se la dosieron ne\n" +#~ " eblas plenumi kaj la ŝelo ne estas dialoga, tiam la ŝelo finiĝas,\n" +#~ " krom se la opcio „execfail‟ estas aktiva." + +#~ msgid "Logout of a login shell." +#~ msgstr "AdiaÅ­, saluta ŝelo!" + +# hash [-lr] [-p pathname] [-dt] [name ...] +#~ msgid "" +#~ "For each NAME, the full pathname of the command is determined and\n" +#~ " remembered. If the -p option is supplied, PATHNAME is used as the\n" +#~ " full pathname of NAME, and no path search is performed. The -r\n" +#~ " option causes the shell to forget all remembered locations. The -d\n" +#~ " option causes the shell to forget the remembered location of each " +#~ "NAME.\n" +#~ " If the -t option is supplied the full pathname to which each NAME\n" +#~ " corresponds is printed. If multiple NAME arguments are supplied " +#~ "with\n" +#~ " -t, the NAME is printed before the hashed full pathname. The -l " +#~ "option\n" +#~ " causes output to be displayed in a format that may be reused as " +#~ "input.\n" +#~ " If no arguments are given, information about remembered commands is " +#~ "displayed." +#~ msgstr "" +#~ "Por ĉiu nomo name, trovu kaj registru en hakettabelo la kompletan\n" +#~ " vojon al tiu komando (komanda dosiero).\n" +#~ " Se ĉeestas la opcio -p, la vojo pathname servas kiel kompleta vojo\n" +#~ " por la nomoj, sen plua vojserĉo.\n" +#~ " La opcio -r forgesigas ĉiujn registritajn vojojn.\n" +#~ " La opcio -d forgesigas la registritajn vojojn por ĉiu nomo name.\n" +#~ " La opcio -t kaÅ­zas eligon de kompleta vojo responda al ĉiu name.\n" +#~ " Se pluraj nomoj aperas kun -t, la koncerna nomo aperos antaÅ­ ĝia\n" +#~ " kompleta serĉvojo registrita. La opcio -l donas al la eligaĵo\n" +#~ " la formon reuzeblan por enigo. Se nenia opcio estas donita, eligu\n" +#~ " la informojn pri la memorataj komandoj." + +# help [-s] [pattern ...] +#~ msgid "" +#~ "Display helpful information about builtin commands. If PATTERN is\n" +#~ " specified, gives detailed help on all commands matching PATTERN,\n" +#~ " otherwise a list of the builtins is printed. The -s option\n" +#~ " restricts the output for each builtin command matching PATTERN to\n" +#~ " a short usage synopsis." +#~ msgstr "" +#~ "Eligu helpan informon pri primitivaj komandoj. Se la ŝablono\n" +#~ " pattern estas donita, eligu detalan helpon pri la komandoj\n" +#~ " kongruaj kun la ŝablono; alie eligu nur liston de la primitivaj\n" +#~ " komandoj. La opcio -s reduktas la eligaĵon pri ĉiu trovita\n" +#~ " kongruaĵo ĝis mallonga resumo." + +# disown [-h] [-ar] [jobspec ...] +#~ msgid "" +#~ "By default, removes each JOBSPEC argument from the table of active jobs.\n" +#~ " If the -h option is given, the job is not removed from the table, but " +#~ "is\n" +#~ " marked so that SIGHUP is not sent to the job if the shell receives a\n" +#~ " SIGHUP. The -a option, when JOBSPEC is not supplied, means to remove " +#~ "all\n" +#~ " jobs from the job table; the -r option means to remove only running " +#~ "jobs." +#~ msgstr "" +#~ "Senopcie: forigu ĉiun laboron indikitan per argumento jobspec el\n" +#~ " la tabelo de aktivaj laboroj.\n" +#~ "\n" +#~ " Ĉe la opcio -h, anstataÅ­ forigi la laboron el la tabelo, marku ĝin\n" +#~ " tiel, ke la signalo SIGHUP ne estu plusendita al la laboro(j) kiam\n" +#~ " tian signalon ricevas la ŝelo.\n" +#~ "\n" +#~ " Se nenia laboro jobspec estas indikita, la opcio -a preskribas\n" +#~ " forigi ĉiujn laborojn el la labortabelo; la opcio -r preskribas\n" +#~ " forigi nur la rulatajn laborojn." + +# return [n] +#~ msgid "" +#~ "Causes a function to exit with the return value specified by N. If N\n" +#~ " is omitted, the return status is that of the last command." +#~ msgstr "" +#~ "Igas la funkcion finiĝi kaj liveri la donitan valoron n kiel\n" +#~ " elirstaton. Se n mankas, la elirstato estas tiu de la ĵusa\n" +#~ " komando." + +# unset [-f] [-v] [name ...] +#~ msgid "" +#~ "For each NAME, remove the corresponding variable or function. Given\n" +#~ " the `-v', unset will only act on variables. Given the `-f' flag,\n" +#~ " unset will only act on functions. With neither flag, unset first\n" +#~ " tries to unset a variable, and if that fails, then tries to unset a\n" +#~ " function. Some variables cannot be unset; also see readonly." +#~ msgstr "" +#~ "Por ĉiu nomo name, forigu la respondan variablon aÅ­ funkcion.\n" +#~ " Ĉe la opcio „-v‟ forigu nur la variablojn.\n" +#~ " Ĉe la opcio „-f‟ forigu nur la funkciojn.\n" +#~ " Se neniu el la du opcioj estas indikita, „unset‟ unue provos\n" +#~ " forigi variablon, kaj se tia ne troviĝos, funkcion. Iujn\n" +#~ " variablojn ne eblas forigi. Vd ankaÅ­ la helpon pri „readonly‟." + +# ZZZ: export [-nf] [name[=value] ...] or +# export -p +#~ msgid "" +#~ "NAMEs are marked for automatic export to the environment of\n" +#~ " subsequently executed commands. If the -f option is given,\n" +#~ " the NAMEs refer to functions. If no NAMEs are given, or if `-p'\n" +#~ " is given, a list of all names that are exported in this shell is\n" +#~ " printed. An argument of `-n' says to remove the export property\n" +#~ " from subsequent NAMEs. An argument of `--' disables further option\n" +#~ " processing." +#~ msgstr "" +#~ "Marku la nomojn name por aÅ­tomata eksporto en la medion de\n" +#~ " la plenumotaj komandoj.\n" +#~ " Se la opcio -f estas donita, la nomoj rilatas al funkcioj.\n" +#~ " Se nenia nomo name ĉeestas, aÅ­ se la opcio „-p‟ estas donita, \n" +#~ " eligu la liston de ĉiuj nomoj eksportataj de ĉi tiu ŝelo.\n" +#~ " La opcio -n forviŝas la eksportomarkon de la ĝin sekvantaj nomoj.\n" +#~ " La opcio „--‟ ĉesigas pluan opcitraktadon en sia linio." + +# ZZZ: readonly [-af] [name[=value] ...] or +# readonly -p +#~ msgid "" +#~ "The given NAMEs are marked readonly and the values of these NAMEs may\n" +#~ " not be changed by subsequent assignment. If the -f option is given,\n" +#~ " then functions corresponding to the NAMEs are so marked. If no\n" +#~ " arguments are given, or if `-p' is given, a list of all readonly " +#~ "names\n" +#~ " is printed. The `-a' option means to treat each NAME as\n" +#~ " an array variable. An argument of `--' disables further option\n" +#~ " processing." +#~ msgstr "" +#~ "La donitaj nomoj name iĝas nurlegaj kaj la valorojn de tiuj nomoj\n" +#~ " ne povas ŝanĝi posta valorizo. Se la opcio „-f‟ estas donita,\n" +#~ " tio aplikiĝas nur al la funkcioj respondaj al la nomoj. Se\n" +#~ " argumentoj mankas, aÅ­ se la opcio „-p‟ estas uzita, la listo de\n" +#~ " ĉiuj nurlegaj nomoj estas eligata. La opcio „-a‟ indikas, ke\n" +#~ " ĉiun nomon name oni rigardu tabela variablo.\n" +#~ " La opcio „--‟ ĉesigas pluan opcitraktadon." + +# shift [n] +#~ msgid "" +#~ "The positional parameters from $N+1 ... are renamed to $1 ... If N is\n" +#~ " not given, it is assumed to be 1." +#~ msgstr "" +#~ "La poziciaj parametroj ekde $n+1 renomiĝas $1 ... ktp.\n" +#~ " Se n ne estas indikita, 1 estas uzata anstataÅ­e." + +# suspend [-f] +#~ msgid "" +#~ "Suspend the execution of this shell until it receives a SIGCONT\n" +#~ " signal. The `-f' if specified says not to complain about this\n" +#~ " being a login shell if it is; just suspend anyway." +#~ msgstr "" +#~ "Haltetigu la plenumon de la ŝelo ĝis ĝi ricevos la signalon SIGCONT.\n" +#~ " Se la ŝelo estas saluta, la opcio „-f‟ silentigas la averton ke\n" +#~ " ĝi estas saluta ŝelo; la ŝelo simple haltetas." + +# times +#~ msgid "" +#~ "Print the accumulated user and system times for processes run from\n" +#~ " the shell." +#~ msgstr "" +#~ "Eligu la tempojn akumulitajn de la uzanto kaj de la kerno\n" +#~ " por la procezoj lanĉitaj el la ŝelo." + +# type [-afptP] name [name ...] +#~ msgid "" +#~ "For each NAME, indicate how it would be interpreted if used as a\n" +#~ " command name.\n" +#~ " \n" +#~ " If the -t option is used, `type' outputs a single word which is one " +#~ "of\n" +#~ " `alias', `keyword', `function', `builtin', `file' or `', if NAME is " +#~ "an\n" +#~ " alias, shell reserved word, shell function, shell builtin, disk " +#~ "file,\n" +#~ " or unfound, respectively.\n" +#~ " \n" +#~ " If the -p flag is used, `type' either returns the name of the disk\n" +#~ " file that would be executed, or nothing if `type -t NAME' would not\n" +#~ " return `file'.\n" +#~ " \n" +#~ " If the -a flag is used, `type' displays all of the places that " +#~ "contain\n" +#~ " an executable named `file'. This includes aliases, builtins, and\n" +#~ " functions, if and only if the -p flag is not also used.\n" +#~ " \n" +#~ " The -f flag suppresses shell function lookup.\n" +#~ " \n" +#~ " The -P flag forces a PATH search for each NAME, even if it is an " +#~ "alias,\n" +#~ " builtin, or function, and returns the name of the disk file that " +#~ "would\n" +#~ " be executed." +#~ msgstr "" +#~ "Por ĉiu nomo name, montru kion ĝi signifus en la pozicio de\n" +#~ " komadonomo.\n" +#~ "\n" +#~ " Kun la opcio -t eligu unu vorton, iun el la sekvaj:\n" +#~ " „alias‟, „keyword‟, „function‟, „builtin‟, „file‟ aÅ­ „‟ -- se\n" +#~ " name estas, respektive, alinomo, ŝela ŝlosilvorto, ŝelfunkcio,\n" +#~ " ŝela primitivo, dosiero aÅ­ nenio konata.\n" +#~ "\n" +#~ " Kun la opcio -p eligu la nomon de dosiero kiu iĝus plenumata;\n" +#~ " aÅ­ nenion, se la «type -t name» ne eligus „file‟.\n" +#~ "\n" +#~ " Ĉe -a listigu ĉiujn lokojn entenantajn plenumeblan dosieron\n" +#~ " kun koncerna nomo name. La listo inkludas alinomojn kaj\n" +#~ " funkciojn, se kaj nur se malestas la opcio -p.\n" +#~ "\n" +#~ " La opcio -f ekskludas el la serĉo la ŝelfunkciojn.\n" +#~ "\n" +#~ " La opcio -f igas serĉi ĉiun nomon name laÅ­ PATH, eĉ se ekzistas\n" +#~ " alinomo, primitiva komando aÅ­ funkcio name, kaj eligi la nomon de\n" +#~ " koncerna plenumebla dosiero." + +# umask [-p] [-S] [mode] +#~ msgid "" +#~ "The user file-creation mask is set to MODE. If MODE is omitted, or if\n" +#~ " `-S' is supplied, the current value of the mask is printed. The `-" +#~ "S'\n" +#~ " option makes the output symbolic; otherwise an octal number is " +#~ "output.\n" +#~ " If `-p' is supplied, and MODE is omitted, the output is in a form\n" +#~ " that may be used as input. If MODE begins with a digit, it is\n" +#~ " interpreted as an octal number, otherwise it is a symbolic mode " +#~ "string\n" +#~ " like that accepted by chmod(1)." +#~ msgstr "" +#~ "La dosierkrea masko de la uzanto havu la valoron de la argumento\n" +#~ " mode. Se mode mankas aÅ­ se ĉeestas la opcio -S, eligu la\n" +#~ " kurantan valoron de la masko. Kun la opcio -S la eligo estas\n" +#~ " simbola, alie ĝi estas okuma. Se estas donita „-p‟ sen\n" +#~ " argumento mode, la eligaĵo havos formon taÅ­gan por enigo.\n" +#~ " Se la argumento mode komenciĝas per cifero, ĝi estas\n" +#~ " interpretata kiel okuma nombro, alie kiel simbola signoĉeno\n" +#~ " laÅ­ chmod(1)." + +#~ msgid "" +#~ "Wait for the specified process and report its termination status. If\n" +#~ " N is not given, all currently active child processes are waited for,\n" +#~ " and the return code is zero. N is a process ID; if it is not given,\n" +#~ " all child processes of the shell are waited for." +#~ msgstr "" +#~ "Atendu finiĝon de la indikita procezo kaj liveru ĝian elirstaton.\n" +#~ " Se n malestas, atendu ĉiujn aktivajn procezidojn, kaj liveru\n" +#~ " la elirstaton 0. n estas proceznumero; se ĝi malestas, atendu\n" +#~ " ĉiujn procezidojn de la ŝelo." + +# ZZZ: function NAME { COMMANDS ; } or +# NAME () { COMMANDS ; } +#~ msgid "" +#~ "Create a simple command invoked by NAME which runs COMMANDS.\n" +#~ " Arguments on the command line along with NAME are passed to the\n" +#~ " function as $0 .. $n." +#~ msgstr "" +#~ "Kreu simplan komandon vokeblan per la nomo NAME, plenumantan la\n" +#~ " komandojn COMMANDS. La nomo kaj la komandoliniaj argumentoj\n" +#~ " estas pasigataj al tiu funkcio jene: $0 ... $n." + +# shopt [-pqsu] [-o long-option] optname [optname...] +#~ msgid "" +#~ "Toggle the values of variables controlling optional behavior.\n" +#~ " The -s flag means to enable (set) each OPTNAME; the -u flag\n" +#~ " unsets each OPTNAME. The -q flag suppresses output; the exit\n" +#~ " status indicates whether each OPTNAME is set or unset. The -o\n" +#~ " option restricts the OPTNAMEs to those defined for use with\n" +#~ " `set -o'. With no options, or with the -p option, a list of all\n" +#~ " settable options is displayed, with an indication of whether or\n" +#~ " not each is set." +#~ msgstr "" +#~ "Ŝanĝu la valoron de variabloj regantaj la konduton de ŝelaj opcioj.\n" +#~ " La opcio -s aktivigas (set) ĉiun opcinomon optname.\n" +#~ " La opcio -u malaktivigas (unset) ĉiun opcinomon optname.\n" +#~ " La opcio -q silentigas eligon de normalaj mesaĝoj; se ĝin akompanas\n" +#~ " pluraj opcinomoj, la elirstato indikas, ĉu ĉiuj donitaj optname\n" +#~ " estas aktivaj.\n" +#~ " La opcio -o limigas la opcinomojn ĝis tiuj uzeblaj ĉe „set -o‟.\n" +#~ " Senopcie aÅ­ kun la opcio -p la listo de ĉiuj ŝalteblaj opcioj\n" +#~ " estas eligata, kun indiko ĉu ĉiu el ili estas ŝaltita aÅ­ ne." + +# complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] +# [-W wordlist] [-P prefix] [-S suffix] [-X filterpat] +# [-F function] [-C command] [name ...] +#~ msgid "" +#~ "For each NAME, specify how arguments are to be completed.\n" +#~ " If the -p option is supplied, or if no options are supplied, " +#~ "existing\n" +#~ " completion specifications are printed in a way that allows them to " +#~ "be\n" +#~ " reused as input. The -r option removes a completion specification " +#~ "for\n" +#~ " each NAME, or, if no NAMEs are supplied, all completion " +#~ "specifications." +#~ msgstr "" +#~ "Por ĉiu nomo name difinu, kiel la argumentoj estu kompletigotaj.\n" +#~ " Se ĉeestas la opcio -p, aÅ­ senopcie, eligu la ekzistantajn\n" +#~ " kompletigajn specifojn en formo reuzebla por enigo en la ŝelon.\n" +#~ " La opcio -r forigas la kompletigajn specifojn por ĉiu nomo name,\n" +#~ " aÅ­, se nenia tia nomo estas donita, ĉiujn kompletigajn specifojn." diff --git a/po/es.gmo b/po/es.gmo new file mode 100644 index 0000000000000000000000000000000000000000..1696e1825f671fa91dc02dae612c7a28965cd825 GIT binary patch literal 31030 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 GbNvet{nL{G literal 0 Hc-jL100001 diff --git a/po/es.po b/po/es.po new file mode 100644 index 000000000..e0d65c47f --- /dev/null +++ b/po/es.po @@ -0,0 +1,7590 @@ +# Mensajes en español para GNU bash-3.2. +# Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +# Cristian Othón Martínez Vera , 2000, 2001, 2002, 2003, 2004, 2005, 2006. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU bash 3.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2009-01-06 11:56-0500\n" +"PO-Revision-Date: 2006-10-31 23:36-0600\n" +"Last-Translator: Cristian Othón Martínez Vera \n" +"Language-Team: Spanish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-1\n" +"Content-Transfer-Encoding: 8-bit\n" + +#: arrayfunc.c:50 +msgid "bad array subscript" +msgstr "subíndice de matriz incorrecto" + +#: arrayfunc.c:313 builtins/declare.def:474 +#, c-format +msgid "%s: cannot convert indexed to associative array" +msgstr "" + +#: arrayfunc.c:479 +#, fuzzy, c-format +msgid "%s: invalid associative array key" +msgstr "%s: nombre de acción inválido" + +#: arrayfunc.c:481 +#, c-format +msgid "%s: cannot assign to non-numeric index" +msgstr "%s: no se puede asignar a un índice que no es numérico" + +#: arrayfunc.c:517 +#, c-format +msgid "%s: %s: must use subscript when assigning associative array" +msgstr "" + +#: bashhist.c:380 +#, c-format +msgid "%s: cannot create: %s" +msgstr "%s: no se puede crear: %s" + +#: bashline.c:3413 +msgid "bash_execute_unix_command: cannot find keymap for command" +msgstr "" +"bash_execute_unix_command: no se puede encontrar la combinación de teclas " +"para la orden" + +#: bashline.c:3491 +#, c-format +msgid "%s: first non-whitespace character is not `\"'" +msgstr "%s: el primer carácter que no es espacio en blanco no es `\"'" + +#: bashline.c:3520 +#, c-format +msgid "no closing `%c' in %s" +msgstr "no hay un `%c' que cierre en %s" + +#: bashline.c:3554 +#, c-format +msgid "%s: missing colon separator" +msgstr "%s: falta un `:' separador" + +#: builtins/bind.def:120 builtins/bind.def:123 +msgid "line editing not enabled" +msgstr "" + +#: builtins/bind.def:206 +#, c-format +msgid "`%s': invalid keymap name" +msgstr "`%s': nombre de combinación de teclas inválido" + +#: builtins/bind.def:245 +#, c-format +msgid "%s: cannot read: %s" +msgstr "%s: no se puede leer: %s" + +#: builtins/bind.def:260 +#, c-format +msgid "`%s': cannot unbind" +msgstr "%s: no se puede desenlazar" + +#: builtins/bind.def:295 builtins/bind.def:325 +#, c-format +msgid "`%s': unknown function name" +msgstr "`%s': nombre de función desconocido" + +#: builtins/bind.def:303 +#, c-format +msgid "%s is not bound to any keys.\n" +msgstr "%s no está enlazado a ninguna tecla.\n" + +#: builtins/bind.def:307 +#, c-format +msgid "%s can be invoked via " +msgstr "%s se puede invocar a través de " + +#: builtins/break.def:77 builtins/break.def:117 +#, fuzzy +msgid "loop count" +msgstr "logout" + +#: builtins/break.def:137 +msgid "only meaningful in a `for', `while', or `until' loop" +msgstr "sólo tiene significado en un ciclo `for', `while' o `until'" + +#: builtins/caller.def:133 +#, fuzzy +msgid "" +"Returns the context of the current subroutine call.\n" +" \n" +" Without EXPR, returns " +msgstr "Devuelve el contexto de la llamada a subrutina actual." + +#: builtins/cd.def:215 +msgid "HOME not set" +msgstr "HOME no está definido" + +#: builtins/cd.def:227 +msgid "OLDPWD not set" +msgstr "OLDPWD no está definido" + +#: builtins/common.c:101 +#, fuzzy, c-format +msgid "line %d: " +msgstr "ranura %3d: " + +#: builtins/common.c:139 error.c:260 +#, fuzzy, c-format +msgid "warning: " +msgstr "%s: aviso: " + +#: builtins/common.c:153 +#, fuzzy, c-format +msgid "%s: usage: " +msgstr "%s: aviso: " + +#: builtins/common.c:166 test.c:822 +msgid "too many arguments" +msgstr "demasiados argumentos" + +#: builtins/common.c:191 shell.c:493 shell.c:774 +#, c-format +msgid "%s: option requires an argument" +msgstr "%s: la opción requiere un argumento" + +#: builtins/common.c:198 +#, c-format +msgid "%s: numeric argument required" +msgstr "%s: se requiere un argumento numérico" + +#: builtins/common.c:205 +#, c-format +msgid "%s: not found" +msgstr "%s: no se encontró" + +#: builtins/common.c:214 shell.c:787 +#, c-format +msgid "%s: invalid option" +msgstr "%s: opción inválida" + +#: builtins/common.c:221 +#, c-format +msgid "%s: invalid option name" +msgstr "%s: nombre de opción inválido" + +#: builtins/common.c:228 general.c:231 general.c:236 +#, c-format +msgid "`%s': not a valid identifier" +msgstr "`%s': no es un identificador válido" + +#: builtins/common.c:238 +#, fuzzy +msgid "invalid octal number" +msgstr "número de señal inválido" + +#: builtins/common.c:240 +#, fuzzy +msgid "invalid hex number" +msgstr "número inválido" + +#: builtins/common.c:242 expr.c:1255 +msgid "invalid number" +msgstr "número inválido" + +#: builtins/common.c:250 +#, c-format +msgid "%s: invalid signal specification" +msgstr "%s: especificación de señal inválida" + +#: builtins/common.c:257 +#, c-format +msgid "`%s': not a pid or valid job spec" +msgstr "`%s': no es un pid o una especificación válida de trabajo" + +#: builtins/common.c:264 error.c:453 +#, c-format +msgid "%s: readonly variable" +msgstr "%s: variable de sólo lectura" + +#: builtins/common.c:272 +#, c-format +msgid "%s: %s out of range" +msgstr "%s: %s fuera de rango" + +#: builtins/common.c:272 builtins/common.c:274 +msgid "argument" +msgstr "argumento" + +#: builtins/common.c:274 +#, c-format +msgid "%s out of range" +msgstr "%s fuera de rango" + +#: builtins/common.c:282 +#, c-format +msgid "%s: no such job" +msgstr "%s: no existe ese trabajo" + +#: builtins/common.c:290 +#, c-format +msgid "%s: no job control" +msgstr "%s: no hay control de trabajos" + +#: builtins/common.c:292 +msgid "no job control" +msgstr "no hay control de trabajos" + +#: builtins/common.c:302 +#, c-format +msgid "%s: restricted" +msgstr "%s: restringido" + +#: builtins/common.c:304 +msgid "restricted" +msgstr "restringido" + +#: builtins/common.c:312 +#, c-format +msgid "%s: not a shell builtin" +msgstr "%s: no es una orden interna del shell" + +#: builtins/common.c:321 +#, c-format +msgid "write error: %s" +msgstr "error de escritura: %s" + +#: builtins/common.c:553 +#, c-format +msgid "%s: error retrieving current directory: %s: %s\n" +msgstr "%s: error al obtener el directorio actual: %s: %s\n" + +#: builtins/common.c:619 builtins/common.c:621 +#, c-format +msgid "%s: ambiguous job spec" +msgstr "%s: especificación de trabajo ambigua" + +#: builtins/complete.def:270 +#, c-format +msgid "%s: invalid action name" +msgstr "%s: nombre de acción inválido" + +#: builtins/complete.def:430 builtins/complete.def:615 +#: builtins/complete.def:813 +#, c-format +msgid "%s: no completion specification" +msgstr "%s: no hay completado de especificación" + +#: builtins/complete.def:667 +msgid "warning: -F option may not work as you expect" +msgstr "aviso: es posible que la opción -F no funcione como se espera" + +#: builtins/complete.def:669 +msgid "warning: -C option may not work as you expect" +msgstr "aviso: es posible que la opción -C no funcione como se espera" + +#: builtins/complete.def:786 +msgid "not currently executing completion function" +msgstr "" + +# sólo se puede usar. sv +# De acuerdo. cfuga +#: builtins/declare.def:122 +msgid "can only be used in a function" +msgstr "sólo se puede usar dentro de una función" + +#: builtins/declare.def:353 +msgid "cannot use `-f' to make functions" +msgstr "no se puede usar `-f' para hacer funciones" + +#: builtins/declare.def:365 execute_cmd.c:4731 +#, c-format +msgid "%s: readonly function" +msgstr "%s: función de sólo lectura" + +#: builtins/declare.def:461 +#, c-format +msgid "%s: cannot destroy array variables in this way" +msgstr "%s: no se pueden destruir variables de matriz de esta forma" + +#: builtins/declare.def:468 +#, c-format +msgid "%s: cannot convert associative to indexed array" +msgstr "" + +#: builtins/enable.def:137 builtins/enable.def:145 +msgid "dynamic loading not available" +msgstr "la carga dinámica no está disponible" + +#: builtins/enable.def:312 +#, c-format +msgid "cannot open shared object %s: %s" +msgstr "no se puede abrir el objeto compartido %s: %s" + +#: builtins/enable.def:335 +#, c-format +msgid "cannot find %s in shared object %s: %s" +msgstr "no se puede encontrar %s en el objeto compartido %s: %s" + +#: builtins/enable.def:459 +#, c-format +msgid "%s: not dynamically loaded" +msgstr "%s: no se cargó dinámicamente" + +#: builtins/enable.def:474 +#, c-format +msgid "%s: cannot delete: %s" +msgstr "%s: no se puede borrar: %s" + +#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4588 +#: shell.c:1439 +#, c-format +msgid "%s: is a directory" +msgstr "%s: es un directorio" + +#: builtins/evalfile.c:139 +#, c-format +msgid "%s: not a regular file" +msgstr "%s: no es un fichero regular" + +#: builtins/evalfile.c:147 +#, c-format +msgid "%s: file is too large" +msgstr "%s: el fichero es demasiado grande" + +# file=fichero. archive=archivo. Si no, es imposible traducir tar. sv +# De acuerdo. Corregido en todo el fichero. cfuga +#: builtins/evalfile.c:185 execute_cmd.c:4658 shell.c:1449 +#, c-format +msgid "%s: cannot execute binary file" +msgstr "%s: no se puede ejecutar el fichero binario" + +#: builtins/exec.def:212 +#, c-format +msgid "%s: cannot execute: %s" +msgstr "%s: no se puede ejecutar: %s" + +#: builtins/exit.def:65 +#, fuzzy, c-format +msgid "logout\n" +msgstr "logout" + +#: builtins/exit.def:88 +msgid "not login shell: use `exit'" +msgstr "no es un shell de entrada: use `exit'" + +#: builtins/exit.def:120 +#, c-format +msgid "There are stopped jobs.\n" +msgstr "Hay trabajos detenidos.\n" + +#: builtins/exit.def:122 +#, fuzzy, c-format +msgid "There are running jobs.\n" +msgstr "Hay trabajos detenidos.\n" + +#: builtins/fc.def:261 +msgid "no command found" +msgstr "no se encontró la orden" + +#: builtins/fc.def:341 +msgid "history specification" +msgstr "especificación de historia" + +#: builtins/fc.def:362 +#, c-format +msgid "%s: cannot open temp file: %s" +msgstr "%s: no se puede abrir el fichero temporal: %s" + +#: builtins/fg_bg.def:149 builtins/jobs.def:282 +msgid "current" +msgstr "" + +#: builtins/fg_bg.def:158 +#, c-format +msgid "job %d started without job control" +msgstr "el trabajo %d inició sin control de trabajo" + +#: builtins/getopt.c:110 +#, c-format +msgid "%s: illegal option -- %c\n" +msgstr "%s: opción ilegal -- %c\n" + +#: builtins/getopt.c:111 +#, c-format +msgid "%s: option requires an argument -- %c\n" +msgstr "%s: la opción requiere un argumento -- %c\n" + +#: builtins/hash.def:92 +msgid "hashing disabled" +msgstr "hashing desactivado" + +#: builtins/hash.def:138 +#, c-format +msgid "%s: hash table empty\n" +msgstr "%s: tabla de asociación vacía\n" + +#: builtins/hash.def:244 +#, fuzzy, c-format +msgid "hits\tcommand\n" +msgstr "última orden: %s\n" + +#: builtins/help.def:130 +#, fuzzy, c-format +msgid "Shell commands matching keyword `" +msgid_plural "Shell commands matching keywords `" +msgstr[0] "Órdenes del shell que coinciden con la palabra `" +msgstr[1] "Órdenes del shell que coinciden con la palabra `" + +#: builtins/help.def:168 +#, c-format +msgid "" +"no help topics match `%s'. Try `help help' or `man -k %s' or `info %s'." +msgstr "" +"no hay temas de ayuda que coincidan con `%s'. Pruebe `help help' o `man -k %" +"s' o `info %s'." + +#: builtins/help.def:185 +#, c-format +msgid "%s: cannot open: %s" +msgstr "%s: no se puede abrir: %s" + +#: builtins/help.def:337 +#, c-format +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 "" +"Estas órdenes del shell están definidas internamente. Teclee `help' para\n" +"ver esta lista.\n" +"Teclee `help nombre' para saber más sobre la función `nombre'.\n" +"Use `info bash' para saber más sobre el shell en general.\n" +"Use `man -k' o `info' para saber más sobre las órdenes que no están en\n" +"esta lista.\n" +"\n" +"Un asterisco (*) junto a un nombre significa que el comando está " +"desactivado.\n" +"\n" + +#: builtins/history.def:154 +msgid "cannot use more than one of -anrw" +msgstr "no se puede usar más de uno de -anrw" + +#: builtins/history.def:186 +msgid "history position" +msgstr "posición en la historia" + +#: builtins/history.def:365 +#, c-format +msgid "%s: history expansion failed" +msgstr "%s: falló la expansión de la historia" + +#: builtins/inlib.def:71 +#, fuzzy, c-format +msgid "%s: inlib failed" +msgstr "%s: falló la expansión de la historia" + +#: builtins/jobs.def:109 +msgid "no other options allowed with `-x'" +msgstr "no se permiten otras opciones con `-x'" + +#: builtins/kill.def:197 +#, c-format +msgid "%s: arguments must be process or job IDs" +msgstr "%s: los argumentos deben ser procesos o IDs de trabajos" + +#: builtins/kill.def:260 +msgid "Unknown error" +msgstr "Error desconocido" + +#: builtins/let.def:95 builtins/let.def:120 expr.c:501 expr.c:516 +msgid "expression expected" +msgstr "se esperaba una expresión" + +#: builtins/mapfile.def:215 builtins/read.def:272 +#, c-format +msgid "%s: invalid file descriptor specification" +msgstr "%s: especificación de descriptor de fichero inválida" + +#: builtins/mapfile.def:223 builtins/read.def:279 +#, c-format +msgid "%d: invalid file descriptor: %s" +msgstr "%d: descriptor de fichero inválido: %s" + +#: builtins/mapfile.def:232 builtins/mapfile.def:270 +#, fuzzy, c-format +msgid "%s: invalid line count" +msgstr "%s: opción inválida" + +#: builtins/mapfile.def:243 +#, fuzzy, c-format +msgid "%s: invalid array origin" +msgstr "%s: opción inválida" + +#: builtins/mapfile.def:260 +#, fuzzy, c-format +msgid "%s: invalid callback quantum" +msgstr "%s: nombre de acción inválido" + +#: builtins/mapfile.def:292 +#, fuzzy +msgid "empty array variable name" +msgstr "%s: no es una variable de matriz" + +#: builtins/mapfile.def:313 +msgid "array variable support required" +msgstr "" + +#: builtins/printf.def:367 +#, c-format +msgid "`%s': missing format character" +msgstr "`%s': falta el carácter de formato" + +#: builtins/printf.def:544 +#, c-format +msgid "`%c': invalid format character" +msgstr "`%c': carácter de formato inválido" + +#: builtins/printf.def:571 +#, fuzzy, c-format +msgid "warning: %s: %s" +msgstr "%s: aviso: " + +#: builtins/printf.def:750 +msgid "missing hex digit for \\x" +msgstr "falta el dígito hexadecimal para \\x" + +#: builtins/pushd.def:195 +msgid "no other directory" +msgstr "no hay otro directorio" + +#: builtins/pushd.def:462 +msgid "" +msgstr "" + +#: builtins/pushd.def:506 +msgid "directory stack empty" +msgstr "" + +#: builtins/pushd.def:508 +#, fuzzy +msgid "directory stack index" +msgstr "desbordamiento de la base de la pila de recursión" + +#: builtins/pushd.def:683 +#, fuzzy +msgid "" +"Display the list of currently remembered directories. Directories\n" +" find their way onto the list with the `pushd' command; you can get\n" +" back up through the list with the `popd' command.\n" +" \n" +" Options:\n" +" -c\tclear the directory stack by deleting all of the elements\n" +" -l\tdo not print tilde-prefixed versions of directories relative\n" +" \tto your home directory\n" +" -p\tprint the directory stack with one entry per line\n" +" -v\tprint the directory stack with one entry per line prefixed\n" +" \twith its position in the stack\n" +" \n" +" Arguments:\n" +" +N\tDisplays the Nth entry counting from the left of the list shown " +"by\n" +" \tdirs when invoked without options, starting with zero.\n" +" \n" +" -N\tDisplays the Nth entry counting from the right of the list shown " +"by\n" +"\tdirs when invoked without options, starting with zero." +msgstr "" +"Muestra la lista de directorios actualmente grabados. Los directorios\n" +" se guardan en la lista con la orden `pushd'; pueden ir saliendo de\n" +" la lista con la orden `popd'.\n" +" \n" +" La opción -l especifica que `dirs' no debe mostrar versiones\n" +" abreviadas de los directorios que son relativos a su directorio\n" +" inicial. Esto significa que `~/bin' se mostrará como `/home/bfox/bin'.\n" +" La opción -v causa que `dirs' muestre la pila de directorios con\n" +" una entrada por línea, anteponiendo la posición en la pila al nombre\n" +" del directorio. La opción -p hace lo mismo, pero no antepone la\n" +" posición en la pila. La opción -c limpia la pila de directorios\n" +" borrando todos sus elementos.\n" +" \n" +" +N\tmuestra la N-ésima entrada contando desde la izquierda de la lista\n" +" mostrada por dirs cuando se invoca sin opciones, empezando de cero.\n" +" \n" +" -N\tmuestra la N-ésima entrada contando desde la derecha de la lista\n" +" mostrada por dirs cuando se invoca sin opciones, empezando de cero." + +#: builtins/pushd.def:705 +#, fuzzy +msgid "" +"Adds a directory to the top of the directory stack, or rotates\n" +" the stack, making the new top of the stack the current working\n" +" directory. With no arguments, exchanges the top two directories.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when adding\n" +" \tdirectories to the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the left of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" -N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the right of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" dir\tAdds DIR to the directory stack at the top, making it the\n" +" \tnew current working directory.\n" +" \n" +" The `dirs' builtin displays the directory stack." +msgstr "" +"Agrega un directorio al tope de la pila de directorios, o rota\n" +" la pila, haciendo que el nuevo tope de la pila sea el\n" +" directorio de trabajo actual. Sin argumentos, intercambia\n" +" los dos directorios del tope.\n" +" \n" +" +N\tRota la pila para que el N-ésimo directorio (contando\n" +" \tde la izquierda de la lista mostrada por `dirs',\n" +" \tcomenzando desde cero) esté en el tope.\n" +" -N\tRota la pila para que el N-ésimo directorio (contando\n" +" \tde la derecha de la lista mostrada por `dirs',\n" +" \tcomenzando desde cero) esté en el tope.\n" +" \n" +" -n\tsuprime el cambio normal de directorio cuando se agregan\n" +" \tdirectorios a la pila, así sólo se manipula la pila.\n" +" \n" +" dir\tagrega DIR a la pila de directorios en el tope,\n" +" \thaciéndolo el nuevo directorio de trabajo actual.\n" +" \n" +" Puede ver la pila de directorios con la orden `dirs'." + +#: builtins/pushd.def:730 +#, fuzzy +msgid "" +"Removes entries from the directory stack. With no arguments, removes\n" +" the top directory from the stack, and changes to the new top directory.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when removing\n" +" \tdirectories from the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRemoves the Nth entry counting from the left of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd +0'\n" +" \tremoves the first directory, `popd +1' the second.\n" +" \n" +" -N\tRemoves the Nth entry counting from the right of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd -0'\n" +" \tremoves the last directory, `popd -1' the next to last.\n" +" \n" +" The `dirs' builtin displays the directory stack." +msgstr "" +"Borra entradas de la pila de directorios. Sin argumentos,\n" +" borra el directorio del tope de la pila, y cambia al\n" +" nuevo directorio tope.\n" +" \n" +" +N\tBorra la N-ésima entrada contando de la izquierda de\n" +" \tla lista mostrada por `dirs', comenzando desde cero.\n" +" \tPor ejemplo: `popd +0' borra el primer directorio, `popd +1'\n" +" \tel segundo.\n" +" \n" +" -N\tBorra la N-ésima entrada contando de la derecha de\n" +" \tla lista mostrada por `dirs', comenzando desde cero.\n" +" \tPor ejemplo: `popd -0' borra el último directorio, `popd -1'\n" +" \tel penúltimo.\n" +" \n" +" -n\tsuprime el cambio normal de directorio cuando se borran\n" +" \tdirectorios de la pila, así sólo se manipula la pila.\n" +" \n" +" Puede ver la pila de directorios con la orden `dirs'." + +#: builtins/read.def:248 +#, c-format +msgid "%s: invalid timeout specification" +msgstr "%s: especificación de tiempo de expiración inválida" + +#: builtins/read.def:574 +#, c-format +msgid "read error: %d: %s" +msgstr "error de lectura: %d: %s" + +#: builtins/return.def:73 +msgid "can only `return' from a function or sourced script" +msgstr "" +"sólo se puede usar `return' en una función o un guión leído con `source'" + +#: builtins/set.def:768 +msgid "cannot simultaneously unset a function and a variable" +msgstr "no se puede borrar al mismo tiempo una función y una variable" + +#: builtins/set.def:805 +#, c-format +msgid "%s: cannot unset" +msgstr "%s: no se puede borrar" + +#: builtins/set.def:812 +#, c-format +msgid "%s: cannot unset: readonly %s" +msgstr "%s: no se puede borrar: %s es de solo lectura" + +#: builtins/set.def:823 +#, c-format +msgid "%s: not an array variable" +msgstr "%s: no es una variable de matriz" + +#: builtins/setattr.def:186 +#, c-format +msgid "%s: not a function" +msgstr "%s: no es una función" + +#: builtins/shift.def:71 builtins/shift.def:77 +msgid "shift count" +msgstr "cuenta de shift" + +#: builtins/shopt.def:254 +msgid "cannot set and unset shell options simultaneously" +msgstr "no se pueden activar y desactivar opciones del shell simultáneamente" + +#: builtins/shopt.def:319 +#, c-format +msgid "%s: invalid shell option name" +msgstr "%s: nombre de opción del shell inválido" + +#: builtins/source.def:128 +msgid "filename argument required" +msgstr "se requiere un argumento de nombre de fichero" + +#: builtins/source.def:153 +#, c-format +msgid "%s: file not found" +msgstr "%s: no se encontró el fichero" + +#: builtins/suspend.def:101 +msgid "cannot suspend" +msgstr "no se puede suspender" + +#: builtins/suspend.def:111 +msgid "cannot suspend a login shell" +msgstr "no se puede suspender un shell de entrada" + +#: builtins/type.def:234 +#, c-format +msgid "%s is aliased to `%s'\n" +msgstr "%s es un alias de `%s'\n" + +#: builtins/type.def:255 +#, c-format +msgid "%s is a shell keyword\n" +msgstr "%s es una palabra clave del shell\n" + +#: builtins/type.def:274 +#, c-format +msgid "%s is a function\n" +msgstr "%s: es una función\n" + +#: builtins/type.def:296 +#, c-format +msgid "%s is a shell builtin\n" +msgstr "%s es una orden interna del shell\n" + +#: builtins/type.def:317 builtins/type.def:391 +#, c-format +msgid "%s is %s\n" +msgstr "%s is %s\n" + +#: builtins/type.def:337 +#, c-format +msgid "%s is hashed (%s)\n" +msgstr "%s está asociado (%s)\n" + +#: builtins/ulimit.def:372 +#, c-format +msgid "%s: invalid limit argument" +msgstr "%s: límite de argumento inválido" + +#: builtins/ulimit.def:398 +#, c-format +msgid "`%c': bad command" +msgstr "`%c': orden errónea" + +#: builtins/ulimit.def:427 +#, c-format +msgid "%s: cannot get limit: %s" +msgstr "%s: no se puede obtener el límite: %s" + +#: builtins/ulimit.def:453 +#, fuzzy +msgid "limit" +msgstr "Límite de CPU" + +#: builtins/ulimit.def:465 builtins/ulimit.def:765 +#, c-format +msgid "%s: cannot modify limit: %s" +msgstr "%s: no se puede modificar el límite: %s" + +#: builtins/umask.def:118 +msgid "octal number" +msgstr "número octal" + +#: builtins/umask.def:231 +#, c-format +msgid "`%c': invalid symbolic mode operator" +msgstr "`%c': operador de modo simbólico inválido" + +#: builtins/umask.def:286 +#, c-format +msgid "`%c': invalid symbolic mode character" +msgstr "`%c': carácter de modo simbólico inválido" + +#: error.c:89 error.c:320 error.c:322 error.c:324 +msgid " line " +msgstr "" + +#: error.c:164 +#, c-format +msgid "last command: %s\n" +msgstr "última orden: %s\n" + +#: error.c:172 +#, c-format +msgid "Aborting..." +msgstr "Abortando..." + +#: error.c:405 +msgid "unknown command error" +msgstr "error de orden desconocido" + +#: error.c:406 +msgid "bad command type" +msgstr "tipo de orden erróneo" + +#: error.c:407 +msgid "bad connector" +msgstr "conector erróneo" + +#: error.c:408 +msgid "bad jump" +msgstr "salto erróneo" + +#: error.c:446 +#, c-format +msgid "%s: unbound variable" +msgstr "%s: variable desenlazada" + +#: eval.c:181 +#, c-format +msgid "\atimed out waiting for input: auto-logout\n" +msgstr "\aha expirado mientras esperaba alguna entrada: auto-logout\n" + +#: execute_cmd.c:491 +#, c-format +msgid "cannot redirect standard input from /dev/null: %s" +msgstr "no se puede redirigir la salida estándard de /dev/null: %s" + +#: execute_cmd.c:1091 +#, c-format +msgid "TIMEFORMAT: `%c': invalid format character" +msgstr "TIMEFORMAT: `%c': carácter de formato inválido" + +#: execute_cmd.c:1942 +#, fuzzy +msgid "pipe error" +msgstr "error de escritura: %s" + +#: execute_cmd.c:4276 +#, c-format +msgid "%s: restricted: cannot specify `/' in command names" +msgstr "%s: restringido: no se puede especificar `/' en nombres de órdenes" + +#: execute_cmd.c:4367 +#, c-format +msgid "%s: command not found" +msgstr "%s: no se encontró la orden" + +#: execute_cmd.c:4621 +#, c-format +msgid "%s: %s: bad interpreter" +msgstr "%s: %s: intérprete erróneo" + +#: execute_cmd.c:4770 +#, c-format +msgid "cannot duplicate fd %d to fd %d" +msgstr "no se puede duplicar el df %d al df %d" + +#: expr.c:241 +msgid "expression recursion level exceeded" +msgstr "se ha excedido el nivel de recursión de la expresión" + +#: expr.c:265 +msgid "recursion stack underflow" +msgstr "desbordamiento de la base de la pila de recursión" + +#: expr.c:379 +msgid "syntax error in expression" +msgstr "error sintáctico en la expresión" + +#: expr.c:419 +msgid "attempted assignment to non-variable" +msgstr "se intentó asignar a algo que no es una variable" + +#: expr.c:440 expr.c:445 expr.c:756 +msgid "division by 0" +msgstr "división por 0" + +# token en bison fue traducido como terminal. ¿Lo traducimos igual aquí +# o lo dejamos como 'unidad' o 'elemento'? cfuga +#: expr.c:471 +msgid "bug: bad expassign token" +msgstr "bicho: unidad de asignación de símbolo erróneo" + +#: expr.c:513 +msgid "`:' expected for conditional expression" +msgstr "se esperaba `:' para la expresión condicional" + +#: expr.c:781 +msgid "exponent less than 0" +msgstr "exponente menor que 0" + +#: expr.c:826 +msgid "identifier expected after pre-increment or pre-decrement" +msgstr "" +"se esperaba un identificador después del pre-incremento o pre-decremento" + +# falta , singular em+ +# mmmh, puede faltar más de un paréntesis cfuga +# tiene razón Enrique, es singular. cfuga +#: expr.c:854 +msgid "missing `)'" +msgstr "falta `)'" + +#: expr.c:897 expr.c:1175 +msgid "syntax error: operand expected" +msgstr "error sintáctico: se esperaba un operando" + +#: expr.c:1177 +msgid "syntax error: invalid arithmetic operator" +msgstr "error sintáctico: operador aritmético inválido" + +#: expr.c:1201 +#, fuzzy, c-format +msgid "%s%s%s: %s (error token is \"%s\")" +msgstr "%s: %s: %s (símbolo de error es \"%s\")\n" + +#: expr.c:1259 +msgid "invalid arithmetic base" +msgstr "base aritmética inválida" + +#: expr.c:1279 +msgid "value too great for base" +msgstr "valor demasiado grande para la base" + +#: expr.c:1328 +#, fuzzy, c-format +msgid "%s: expression error\n" +msgstr "%s: se esperaba una expresión entera" + +#: general.c:61 +msgid "getcwd: cannot access parent directories" +msgstr "getcwd: no se puede acceder a los directorios padres" + +#: input.c:94 subst.c:4559 +#, fuzzy, c-format +msgid "cannot reset nodelay mode for fd %d" +msgstr "no se puede reestablecer el modo nodelay para el df %d" + +#: input.c:258 +#, c-format +msgid "cannot allocate new file descriptor for bash input from fd %d" +msgstr "" +"no se puede asignar un nuevo descriptor de fichero para la entrada de bash " +"desde el df %d" + +# buffer: espacio intermedio , alojamiento intermedio ( me gusta menos ) +# em+ +# almacenamiento interrmedio. cfuga +#: input.c:266 +#, c-format +msgid "save_bash_input: buffer already exists for new fd %d" +msgstr "" +"save_bash_input: el almacenamiento intermedio ya existe para el nuevo df %d" + +#: jobs.c:466 +msgid "start_pipeline: pgrp pipe" +msgstr "" + +#: jobs.c:882 +#, c-format +msgid "forked pid %d appears in running job %d" +msgstr "el pid `forked' %d aparece en el trabajo en ejecución %d" + +#: jobs.c:1000 +#, c-format +msgid "deleting stopped job %d with process group %ld" +msgstr "borrando el trabajo detenido %d con grupo de proceso %ld" + +#: jobs.c:1105 +#, c-format +msgid "add_process: process %5ld (%s) in the_pipeline" +msgstr "" + +#: jobs.c:1108 +#, c-format +msgid "add_process: pid %5ld (%s) marked as still alive" +msgstr "" + +# Cambiaría 'hay' por 'existe' em+ +#: jobs.c:1396 +#, c-format +msgid "describe_pid: %ld: no such pid" +msgstr "describe_pid: %ld: no existe tal pid" + +#: jobs.c:1411 +#, fuzzy, c-format +msgid "Signal %d" +msgstr "Señal Desconocida #%d" + +#: jobs.c:1425 jobs.c:1450 +msgid "Done" +msgstr "Hecho" + +#: jobs.c:1430 siglist.c:122 +msgid "Stopped" +msgstr "Detenido" + +#: jobs.c:1434 +#, fuzzy, c-format +msgid "Stopped(%s)" +msgstr "Detenido" + +#: jobs.c:1438 +msgid "Running" +msgstr "Ejecutando" + +#: jobs.c:1452 +#, c-format +msgid "Done(%d)" +msgstr "Hecho(%d)" + +#: jobs.c:1454 +#, c-format +msgid "Exit %d" +msgstr "Salida %d" + +#: jobs.c:1457 +msgid "Unknown status" +msgstr "Estado desconocido" + +#: jobs.c:1544 +#, c-format +msgid "(core dumped) " +msgstr "(`core' generado) " + +#: jobs.c:1563 +#, fuzzy, c-format +msgid " (wd: %s)" +msgstr "(dir ahora: %s)\n" + +#: jobs.c:1766 +#, fuzzy, c-format +msgid "child setpgid (%ld to %ld)" +msgstr "error en la ejecución de setpgid (%d a %d) en el proceso hijo %d: %s\n" + +#: jobs.c:2094 nojobs.c:576 +#, c-format +msgid "wait: pid %ld is not a child of this shell" +msgstr "wait: pid %ld no es un proceso hijo de este shell" + +#: jobs.c:2321 +#, c-format +msgid "wait_for: No record of process %ld" +msgstr "wait_for: No hay un registro del proceso %ld" + +#: jobs.c:2593 +#, c-format +msgid "wait_for_job: job %d is stopped" +msgstr "wait_for_job: el trabajo %d está detenido" + +#: jobs.c:2815 +#, c-format +msgid "%s: job has terminated" +msgstr "%s: el trabajo ha terminado" + +#: jobs.c:2824 +#, c-format +msgid "%s: job %d already in background" +msgstr "%s: el trabajo %d ya está en segundo plano" + +#: jobs.c:3487 +#, fuzzy, c-format +msgid "%s: line %d: " +msgstr "%s: aviso: " + +#: jobs.c:3501 nojobs.c:805 +#, c-format +msgid " (core dumped)" +msgstr " (`core' generado)" + +#: jobs.c:3513 jobs.c:3526 +#, c-format +msgid "(wd now: %s)\n" +msgstr "(dir ahora: %s)\n" + +#: jobs.c:3558 +#, fuzzy +msgid "initialize_job_control: getpgrp failed" +msgstr "initialize_jobs: falló getpgrp: %s" + +#: jobs.c:3618 +#, fuzzy +msgid "initialize_job_control: line discipline" +msgstr "initialize_jobs: disciplina de línea: %s" + +#: jobs.c:3628 +#, fuzzy +msgid "initialize_job_control: setpgid" +msgstr "initialize_jobs: falló getpgrp: %s" + +#: jobs.c:3656 +#, c-format +msgid "cannot set terminal process group (%d)" +msgstr "" + +#: jobs.c:3661 +msgid "no job control in this shell" +msgstr "no hay control de trabajos en este shell" + +#: lib/malloc/malloc.c:296 +#, c-format +msgid "malloc: failed assertion: %s\n" +msgstr "malloc: falló la aserción: %s\n" + +#: lib/malloc/malloc.c:312 +#, c-format +msgid "" +"\r\n" +"malloc: %s:%d: assertion botched\r\n" +msgstr "" +"\r\n" +"malloc: %s:%d: aserción arruinada\r\n" + +#: lib/malloc/malloc.c:313 +#, fuzzy +msgid "unknown" +msgstr "" + +#: lib/malloc/malloc.c:797 +msgid "malloc: block on free list clobbered" +msgstr "malloc: bloque en la lista libre sobreescrito" + +#: lib/malloc/malloc.c:874 +msgid "free: called with already freed block argument" +msgstr "free: se llamó con un argumento de bloque previamente liberado" + +#: lib/malloc/malloc.c:877 +msgid "free: called with unallocated block argument" +msgstr "free: se llamó con un argumento de bloque sin asignar" + +#: lib/malloc/malloc.c:896 +msgid "free: underflow detected; mh_nbytes out of range" +msgstr "" +"free: se detectó un desbordamiento por debajo; mh_nbytes fuera de rango" + +#: lib/malloc/malloc.c:902 +msgid "free: start and end chunk sizes differ" +msgstr "free: los tamaños de los pedazos de inicio y fin son diferentes" + +#: lib/malloc/malloc.c:1001 +msgid "realloc: called with unallocated block argument" +msgstr "realloc: se llamó con un argumento de bloque sin asignar" + +#: lib/malloc/malloc.c:1016 +msgid "realloc: underflow detected; mh_nbytes out of range" +msgstr "" +"realloc: se detectó un desbordamiento por debajo; mh_nbytes fuera de rango" + +#: lib/malloc/malloc.c:1022 +msgid "realloc: start and end chunk sizes differ" +msgstr "realloc: los tamaños de los pedazos de inicio y fin son diferentes" + +#: lib/malloc/table.c:177 +#, c-format +msgid "register_alloc: alloc table is full with FIND_ALLOC?\n" +msgstr "register_alloc: ¿la tabla alloc está llena con FIND_ALLOC?\n" + +#: lib/malloc/table.c:184 +#, c-format +msgid "register_alloc: %p already in table as allocated?\n" +msgstr "register_alloc: ¿%p ya está en la tabla como asignado?\n" + +#: lib/malloc/table.c:220 +#, c-format +msgid "register_free: %p already in table as free?\n" +msgstr "register_free: ¿%p ya está en la tabla como libre?\n" + +#: lib/sh/fmtulong.c:101 +msgid "invalid base" +msgstr "base inválida" + +#: lib/sh/netopen.c:168 +#, c-format +msgid "%s: host unknown" +msgstr "%s: anfitrión desconocido" + +#: lib/sh/netopen.c:175 +#, c-format +msgid "%s: invalid service" +msgstr "%s: servicio inválido" + +#: lib/sh/netopen.c:306 +#, c-format +msgid "%s: bad network path specification" +msgstr "%s: especificación de ruta de red errónea" + +#: lib/sh/netopen.c:346 +msgid "network operations not supported" +msgstr "no hay soporte para operaciones de red" + +#: mailcheck.c:433 +msgid "You have mail in $_" +msgstr "Tiene correo en $_" + +#: mailcheck.c:458 +msgid "You have new mail in $_" +msgstr "Tiene correo nuevo en $_" + +#: mailcheck.c:474 +#, c-format +msgid "The mail in %s has been read\n" +msgstr "El correo en %s fue leído\n" + +#: make_cmd.c:322 +msgid "syntax error: arithmetic expression required" +msgstr "error sintáctico: se requiere una expresión aritmética" + +#: make_cmd.c:324 +msgid "syntax error: `;' unexpected" +msgstr "error sintáctico: `;' inesperado" + +#: make_cmd.c:325 +#, c-format +msgid "syntax error: `((%s))'" +msgstr "error sintáctico: `((%s))'" + +#: make_cmd.c:567 +#, c-format +msgid "make_here_document: bad instruction type %d" +msgstr "make_here_document: tipo de instrucción erróneo %d" + +#: make_cmd.c:651 +#, c-format +msgid "here-document at line %d delimited by end-of-file (wanted `%s')" +msgstr "" + +#: make_cmd.c:746 +#, c-format +msgid "make_redirection: redirection instruction `%d' out of range" +msgstr "" +"make_redirection: la instrucción de redirección `%d' está fuera de rango" + +#: parse.y:2986 parse.y:3218 +#, c-format +msgid "unexpected EOF while looking for matching `%c'" +msgstr "EOF inesperado mientras se buscaba un `%c' coincidente" + +#: parse.y:3722 +msgid "unexpected EOF while looking for `]]'" +msgstr "EOF inesperado mientras se buscaba `]]'" + +#: parse.y:3727 +#, c-format +msgid "syntax error in conditional expression: unexpected token `%s'" +msgstr "error sintáctico en la expresión condicional: elemento inesperado `%s'" + +#: parse.y:3731 +msgid "syntax error in conditional expression" +msgstr "error sintáctico en la expresión condicional" + +#: parse.y:3809 +#, c-format +msgid "unexpected token `%s', expected `)'" +msgstr "elemento inesperado `%s', se esperaba `)'" + +#: parse.y:3813 +msgid "expected `)'" +msgstr "se esperaba `)'" + +#: parse.y:3841 +#, c-format +msgid "unexpected argument `%s' to conditional unary operator" +msgstr "argumento inesperado `%s' para el operador unario condicional" + +#: parse.y:3845 +msgid "unexpected argument to conditional unary operator" +msgstr "argumento inesperado para el operador unario condicional" + +#: parse.y:3885 +#, c-format +msgid "unexpected token `%s', conditional binary operator expected" +msgstr "elemento inesperado `%s', se esperaba un operador binario condicional" + +#: parse.y:3889 +msgid "conditional binary operator expected" +msgstr "se esperaba un operador binario condicional" + +#: parse.y:3906 +#, c-format +msgid "unexpected argument `%s' to conditional binary operator" +msgstr "argumento inesperado `%s' para el operador binario condicional" + +#: parse.y:3910 +msgid "unexpected argument to conditional binary operator" +msgstr "argumento inesperado para el operador binario condicional" + +#: parse.y:3921 +#, c-format +msgid "unexpected token `%c' in conditional command" +msgstr "elemento inesperado `%c' en la orden condicional" + +#: parse.y:3924 +#, c-format +msgid "unexpected token `%s' in conditional command" +msgstr "elemento inesperado `%s' en la orden condicional" + +#: parse.y:3928 +#, c-format +msgid "unexpected token %d in conditional command" +msgstr "elemento inesperado %d en la orden condicional" + +# Token: elemento ? +# error sintáctico, no se esperaba el símbolo `%c' em+ +# No puedo tomar tal cual la corrección. El error puede no ser +# provocado por el símbolo. Simplemente estar cerca del mismo. cfuga +# Por consistencia con el siguiente, yo borraría la coma. sv +# Cierto. Coma borrada. cfuga +#: parse.y:5195 +#, c-format +msgid "syntax error near unexpected token `%s'" +msgstr "error sintáctico cerca del elemento inesperado `%s'" + +#: parse.y:5213 +#, c-format +msgid "syntax error near `%s'" +msgstr "error sintáctico cerca de `%s'" + +# Propongo cambio de orden: +# no se esperaba el final de la línea em+ +# Ojo, que end of file es fin de fichero, no de línea. sv +# Se hicieron ambos cambios. cfuga +#: parse.y:5223 +msgid "syntax error: unexpected end of file" +msgstr "error sintáctico: no se esperaba el final del fichero" + +#: parse.y:5223 +msgid "syntax error" +msgstr "error sintáctico" + +#: parse.y:5285 +#, c-format +msgid "Use \"%s\" to leave the shell.\n" +msgstr "Use \"%s\" para dejar el shell.\n" + +#: parse.y:5447 +msgid "unexpected EOF while looking for matching `)'" +msgstr "EOF inesperado mientras se buscaba un `)' coincidente" + +#: pcomplete.c:1016 +#, c-format +msgid "completion: function `%s' not found" +msgstr "completion: no se encuentra la función `%s'" + +#: pcomplib.c:179 +#, c-format +msgid "progcomp_insert: %s: NULL COMPSPEC" +msgstr "progcomp_insert: %s: COMPSPEC nulo" + +#: print_cmd.c:287 +#, c-format +msgid "print_command: bad connector `%d'" +msgstr "print_command: conector erróneo `%d'" + +#: print_cmd.c:1347 +#, c-format +msgid "cprintf: `%c': invalid format character" +msgstr "cprintf: `%c': carácter de formato inválido" + +#: redir.c:105 +msgid "file descriptor out of range" +msgstr "descriptor de fichero fuera de rango" + +#: redir.c:148 +#, c-format +msgid "%s: ambiguous redirect" +msgstr "%s: redireccionamiento ambiguo" + +#: redir.c:152 +#, c-format +msgid "%s: cannot overwrite existing file" +msgstr "%s: no se puede sobreescribir un fichero existente" + +#: redir.c:157 +#, c-format +msgid "%s: restricted: cannot redirect output" +msgstr "%s: restringido: no se puede redirigir la salida" + +#: redir.c:162 +#, fuzzy, c-format +msgid "cannot create temp file for here-document: %s" +msgstr "no se puede crear un fichero temporal para el documento here: %s" + +#: redir.c:517 +msgid "/dev/(tcp|udp)/host/port not supported without networking" +msgstr "/dev/(tcp|udp)/anfitrion/puerto no tiene soporte sin red" + +#: redir.c:1023 +msgid "redirection error: cannot duplicate fd" +msgstr "error de redirección: no se puede duplicar el df" + +#: shell.c:328 +msgid "could not find /tmp, please create!" +msgstr "¡no se puede encontrar /tmp, crear por favor!" + +#: shell.c:332 +msgid "/tmp must be a valid directory name" +msgstr "/tmp debe ser un nombre de directorio válido" + +#: shell.c:876 +#, c-format +msgid "%c%c: invalid option" +msgstr "%c%c: opción inválida" + +# Yo pondría "no tengo ningún nombre". sv +# Revisé el código fuente de bash. Es un mensaje de error cuando no se +# encuentra el nombre del usuario que ejecuta el shell. cfuga +#: shell.c:1638 +msgid "I have no name!" +msgstr "¡No tengo nombre de usuario!" + +#: shell.c:1778 +#, fuzzy, c-format +msgid "GNU bash, version %s-(%s)\n" +msgstr "GNU %s, versión %s\n" + +# En la lista spanglish se discutió mucho sobre script, +# no sé en que quedó, ni puedo decirte ahora cómo lo hemos +# traducido en otras ocasiones. Sehll script lo henmos traducido +# como guión del shell , eso es seguro ... así que puede estar +# bien así , ya lo verán otros em+ +#: shell.c:1779 +#, c-format +msgid "" +"Usage:\t%s [GNU long option] [option] ...\n" +"\t%s [GNU long option] [option] script-file ...\n" +msgstr "" +"Modo de empleo:\t%s [opción GNU larga] [opción] ...\n" +"\t%s [opción GNU larga] [opción] guión-del-shell\n" + +#: shell.c:1781 +msgid "GNU long options:\n" +msgstr "Opciones GNU largas:\n" + +#: shell.c:1785 +msgid "Shell options:\n" +msgstr "Opciones del shell:\n" + +#: shell.c:1786 +msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n" +msgstr "\t-irsD o -c orden o -O opcion_shopt\t\t(sólo invocación)\n" + +#: shell.c:1801 +#, c-format +msgid "\t-%s or -o option\n" +msgstr "\t-%s o -o opción\n" + +#: shell.c:1807 +#, c-format +msgid "Type `%s -c \"help set\"' for more information about shell options.\n" +msgstr "" +"Teclee `%s -c \"help set\"' para más información sobre las opciones del " +"shell.\n" + +#: shell.c:1808 +#, c-format +msgid "Type `%s -c help' for more information about shell builtin commands.\n" +msgstr "" +"Teclee `%s -c help' para más información sobre las órdenes internas del " +"shell.\n" + +#: shell.c:1809 +#, c-format +msgid "Use the `bashbug' command to report bugs.\n" +msgstr "Use la orden `bashbug' para reportar bichos.\n" + +#: sig.c:583 +#, c-format +msgid "sigprocmask: %d: invalid operation" +msgstr "sigprocmask: %d: operación inválida" + +#: siglist.c:47 +msgid "Bogus signal" +msgstr "Señal ambigua" + +#: siglist.c:50 +msgid "Hangup" +msgstr "Colgar" + +#: siglist.c:54 +msgid "Interrupt" +msgstr "Interrumpir" + +#: siglist.c:58 +msgid "Quit" +msgstr "Salir" + +#: siglist.c:62 +msgid "Illegal instruction" +msgstr "Instrucción ilegal" + +#: siglist.c:66 +msgid "BPT trace/trap" +msgstr "BPT rastreo/captura" + +#: siglist.c:74 +msgid "ABORT instruction" +msgstr "instrucción ABORT" + +#: siglist.c:78 +msgid "EMT instruction" +msgstr "instrucción EMT" + +#: siglist.c:82 +msgid "Floating point exception" +msgstr "Excepción de coma flotante" + +#: siglist.c:86 +msgid "Killed" +msgstr "Matado" + +#: siglist.c:90 +msgid "Bus error" +msgstr "Error en el bus" + +#: siglist.c:94 +msgid "Segmentation fault" +msgstr "Violación de segmento" + +# llamada del sistema em+ +# Es una llamada a una función del sistema em+ +# De acuerdo, pero lo que está mal es la forma de invocar la +# llamada a la función del sistema, no la llamada en sí cfuga +#: siglist.c:98 +msgid "Bad system call" +msgstr "Llamada al sistema errónea" + +# (pipe) no, por favor. Esto ya está traducido en libc, así que a estas +# alturas, la gente ya debería saber qué es eso de la tubería. sv +# De acuerdo. cfuga +#: siglist.c:102 +msgid "Broken pipe" +msgstr "Tubería rota" + +#: siglist.c:106 +msgid "Alarm clock" +msgstr "Temporizador" + +#: siglist.c:110 +#, fuzzy +msgid "Terminated" +msgstr "y se muestra un mensaje de diagnóstico." + +#: siglist.c:114 +msgid "Urgent IO condition" +msgstr "Condición de E/S urgente" + +#: siglist.c:118 +msgid "Stopped (signal)" +msgstr "Detenido (señal)" + +#: siglist.c:126 +msgid "Continue" +msgstr "Continúa" + +#: siglist.c:134 +msgid "Child death or stop" +msgstr "El proceso hijo ha muerto o está parado" + +#: siglist.c:138 +msgid "Stopped (tty input)" +msgstr "Detenido (entrada por terminal)" + +#: siglist.c:142 +msgid "Stopped (tty output)" +msgstr "Detenido (salida por terminal)" + +#: siglist.c:146 +msgid "I/O ready" +msgstr "E/S listas" + +#: siglist.c:150 +msgid "CPU limit" +msgstr "Límite de CPU" + +#: siglist.c:154 +msgid "File limit" +msgstr "Límite de ficheros" + +#: siglist.c:158 +msgid "Alarm (virtual)" +msgstr "Alarma (virtual)" + +#: siglist.c:162 +msgid "Alarm (profile)" +msgstr "Alarma (entorno)" + +#: siglist.c:166 +msgid "Window changed" +msgstr "Ventana cambiada" + +#: siglist.c:170 +msgid "Record lock" +msgstr "Bloqueo de grabación" + +#: siglist.c:174 +msgid "User signal 1" +msgstr "Señal de usuario 1" + +#: siglist.c:178 +msgid "User signal 2" +msgstr "Señal de usuario 2" + +#: siglist.c:182 +msgid "HFT input data pending" +msgstr "entrada de datos HFT pendiente" + +# falla: fallo em+ +# Suscribo lo anterior. falla suena muy raro. +# Yo lo pondría además al revés: fallo de energía inminente. sv +# Me gusta como lo sugieres. Cambio hecho. cfuga +#: siglist.c:186 +msgid "power failure imminent" +msgstr "fallo de energía inminente" + +#: siglist.c:190 +msgid "system crash imminent" +msgstr "inminente caída del sistema" + +#: siglist.c:194 +msgid "migrate process to another CPU" +msgstr "migrando el proceso a otra CPU" + +#: siglist.c:198 +msgid "programming error" +msgstr "error de programación" + +#: siglist.c:202 +msgid "HFT monitor mode granted" +msgstr "el modo monitor HFT ha sido concedido" + +#: siglist.c:206 +msgid "HFT monitor mode retracted" +msgstr "el modo monitor HTF ha sido retirado" + +#: siglist.c:210 +msgid "HFT sound sequence has completed" +msgstr "la secuencia de sonido HFT ha sido completado" + +#: siglist.c:214 +msgid "Information request" +msgstr "" + +#: siglist.c:222 +msgid "Unknown Signal #" +msgstr "Señal Desconocida #" + +#: siglist.c:224 +#, c-format +msgid "Unknown Signal #%d" +msgstr "Señal Desconocida #%d" + +#: subst.c:1181 subst.c:1302 +#, c-format +msgid "bad substitution: no closing `%s' in %s" +msgstr "sustitución errónea: no hay un `%s' que cierre en %s" + +#: subst.c:2458 +#, c-format +msgid "%s: cannot assign list to array member" +msgstr "%s: no se puede asignar una lista a un miembro de la matriz" + +#: subst.c:4456 subst.c:4472 +msgid "cannot make pipe for process substitution" +msgstr "no se puede crear la tubería para la sustitución del proceso" + +#: subst.c:4504 +msgid "cannot make child for process substitution" +msgstr "no se puede crear un proceso hijo para la sustitución del proceso" + +#: subst.c:4549 +#, c-format +msgid "cannot open named pipe %s for reading" +msgstr "no se puede abrir la tubería llamada %s para lectura" + +#: subst.c:4551 +#, c-format +msgid "cannot open named pipe %s for writing" +msgstr "no se puede abrir la tubería llamada %s para escritura" + +#: subst.c:4569 +#, c-format +msgid "cannot duplicate named pipe %s as fd %d" +msgstr "no se puede duplicar la tubería llamada %s como df %d" + +#: subst.c:4765 +msgid "cannot make pipe for command substitution" +msgstr "no se pueden crear la tubería para la sustitución de la orden" + +#: subst.c:4799 +msgid "cannot make child for command substitution" +msgstr "no se puede crear un proceso hijo para la sustitución de la orden" + +#: subst.c:4816 +msgid "command_substitute: cannot duplicate pipe as fd 1" +msgstr "command_substitute: no se puede duplicar la tubería como df 1" + +#: subst.c:5318 +#, c-format +msgid "%s: parameter null or not set" +msgstr "%s: parámetro nulo o no establecido" + +#: subst.c:5608 +#, c-format +msgid "%s: substring expression < 0" +msgstr "%s: expresión de subcadena < 0" + +#: subst.c:6660 +#, c-format +msgid "%s: bad substitution" +msgstr "%s: sustitución errónea" + +#: subst.c:6740 +#, c-format +msgid "$%s: cannot assign in this way" +msgstr "$%s: no se puede asignar de esta forma" + +#: subst.c:7479 +#, fuzzy, c-format +msgid "bad substitution: no closing \"`\" in %s" +msgstr "sustitución errónea: no hay un `%s' que cierre en %s" + +#: subst.c:8354 +#, c-format +msgid "no match: %s" +msgstr "no hay coincidencia: %s" + +#: test.c:145 +msgid "argument expected" +msgstr "se esperaba un argumento" + +#: test.c:154 +#, c-format +msgid "%s: integer expression expected" +msgstr "%s: se esperaba una expresión entera" + +#: test.c:262 +msgid "`)' expected" +msgstr "se esperaba `)'" + +#: test.c:264 +#, c-format +msgid "`)' expected, found %s" +msgstr "se esperaba `)', se encontró %s" + +#: test.c:279 test.c:688 test.c:691 +#, c-format +msgid "%s: unary operator expected" +msgstr "%s: se esperaba un operador unario" + +#: test.c:444 test.c:731 +#, c-format +msgid "%s: binary operator expected" +msgstr "%s: se esperaba un operador binario" + +# Singular em+ +# Puede faltar más de un ] cfuga +# Cierto, pero al menos uno seguro que falta. +# Yo creo que no hace falta el (n). sv +# Abreviando "falta [al menos] un `]'" saldría: "falta un `]'". +# ¿No es mejor "falta algún `]'"? cfuga +# Tiene razón Enrique: singular. cfuga +#: test.c:806 +msgid "missing `]'" +msgstr "falta `]'" + +#: trap.c:201 +msgid "invalid signal number" +msgstr "número de señal inválido" + +#: trap.c:324 +#, c-format +msgid "run_pending_traps: bad value in trap_list[%d]: %p" +msgstr "run_pending_traps: valor erróneo en trap_list[%d]: %p" + +#: trap.c:328 +#, c-format +msgid "" +"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself" +msgstr "" +"run_pending_traps: el manejador de señal es SIG_DFL, reenviando %d (%s) a mí " +"mismo" + +#: trap.c:372 +#, c-format +msgid "trap_handler: bad signal %d" +msgstr "trap_handler: señal errónea %d" + +#: variables.c:358 +#, c-format +msgid "error importing function definition for `%s'" +msgstr "error al importar la definición de la función para `%s'" + +#: variables.c:736 +#, c-format +msgid "shell level (%d) too high, resetting to 1" +msgstr "el nivel de shell (%d) es demasiado alto, se reestablece a 1" + +#: variables.c:1898 +msgid "make_local_variable: no function context at current scope" +msgstr "make_local_variable: no hay contexto de función en el ámbito actual" + +#: variables.c:3127 +msgid "all_local_variables: no function context at current scope" +msgstr "all_local_variables: no hay contexto de función en el ámbito actual" + +#: variables.c:3344 variables.c:3353 +#, c-format +msgid "invalid character %d in exportstr for %s" +msgstr "carácter inválido %d en exportstr para %s" + +#: variables.c:3359 +#, c-format +msgid "no `=' in exportstr for %s" +msgstr "no hay `=' en exportstr para %s" + +#: variables.c:3794 +msgid "pop_var_context: head of shell_variables not a function context" +msgstr "" +"pop_var_context: la cabeza de shell_variables no es un contexto de función" + +#: variables.c:3807 +msgid "pop_var_context: no global_variables context" +msgstr "pop_var_context: no es un contexto global_variables" + +#: variables.c:3881 +msgid "pop_scope: head of shell_variables not a temporary environment scope" +msgstr "" +"pop_scope: la cabeza de shell_variables no es un ámbito de ambiente temporal" + +#: version.c:46 +#, fuzzy +msgid "Copyright (C) 2009 Free Software Foundation, Inc." +msgstr "Copyright (C) 2006 Free Software Foundation, Inc.\n" + +#: version.c:47 +msgid "" +"License GPLv3+: GNU GPL version 3 or later \n" +msgstr "" + +#: version.c:86 +#, fuzzy, c-format +msgid "GNU bash, version %s (%s)\n" +msgstr "GNU %s, versión %s\n" + +#: version.c:91 +#, c-format +msgid "This is free software; you are free to change and redistribute it.\n" +msgstr "" + +#: version.c:92 +#, c-format +msgid "There is NO WARRANTY, to the extent permitted by law.\n" +msgstr "" + +#: xmalloc.c:92 +#, c-format +msgid "xmalloc: cannot allocate %lu bytes (%lu bytes allocated)" +msgstr "xmalloc: no se pueden asignar %lu bytes (%lu bytes asignados)" + +#: xmalloc.c:94 +#, c-format +msgid "xmalloc: cannot allocate %lu bytes" +msgstr "xmalloc: no se pueden asignar %lu bytes" + +#: xmalloc.c:114 +#, c-format +msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)" +msgstr "xrealloc: no se pueden reasignar %lu bytes (%lu bytes asignados)" + +#: xmalloc.c:116 +#, c-format +msgid "xrealloc: cannot allocate %lu bytes" +msgstr "xrealloc: no se pueden reasignar %lu bytes" + +#: xmalloc.c:150 +#, c-format +msgid "xmalloc: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)" +msgstr "xmalloc: %s:%d: no se pueden asignar %lu bytes (%lu bytes asignados)" + +#: xmalloc.c:152 +#, c-format +msgid "xmalloc: %s:%d: cannot allocate %lu bytes" +msgstr "xmalloc: %s:%d: no se pueden asignar %lu bytes" + +#: xmalloc.c:174 +#, c-format +msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)" +msgstr "" +"xrealloc: %s:%d: no se pueden reasignar %lu bytes (%lu bytes asignados)" + +#: xmalloc.c:176 +#, c-format +msgid "xrealloc: %s:%d: cannot allocate %lu bytes" +msgstr "xrealloc: %s:%d: no se pueden reasignar %lu bytes" + +#: builtins.c:43 +msgid "alias [-p] [name[=value] ... ]" +msgstr "alias [-p] [nombre[=valor] ... ]" + +#: builtins.c:47 +#, fuzzy +msgid "unalias [-a] name [name ...]" +msgstr "unalias [-a] [nombre ...]" + +#: builtins.c:51 +#, fuzzy +msgid "" +"bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-" +"x keyseq:shell-command] [keyseq:readline-function or readline-command]" +msgstr "" +"bind [-lpvsPVS] [-m mapa_teclado] [-f fichero] [-q nombre] [-r " +"secuencia_teclas] [keyseq:función-readline]" + +#: builtins.c:54 +msgid "break [n]" +msgstr "break [n]" + +#: builtins.c:56 +msgid "continue [n]" +msgstr "continue [n]" + +#: builtins.c:58 +msgid "builtin [shell-builtin [arg ...]]" +msgstr "builtin [shell-interno [arg ...]]" + +#: builtins.c:61 +#, fuzzy +msgid "caller [expr]" +msgstr "test [expresión]" + +#: builtins.c:64 +#, fuzzy +msgid "cd [-L|-P] [dir]" +msgstr "cd [-PL] [directorio]" + +#: builtins.c:66 +#, fuzzy +msgid "pwd [-LP]" +msgstr "pwd [-PL]" + +#: builtins.c:68 +msgid ":" +msgstr ":" + +#: builtins.c:70 +msgid "true" +msgstr "" + +#: builtins.c:72 +msgid "false" +msgstr "" + +#: builtins.c:74 +msgid "command [-pVv] command [arg ...]" +msgstr "command [-pVv] orden [arg ...]" + +#: builtins.c:76 +#, fuzzy +msgid "declare [-aAfFilrtux] [-p] [name[=value] ...]" +msgstr "declare [-afFrxi] [-p] nombre[=valor] ..." + +#: builtins.c:78 +#, fuzzy +msgid "typeset [-aAfFilrtux] [-p] name[=value] ..." +msgstr "typeset [-afFrxi] [-p] nombre[=valor] ..." + +#: builtins.c:80 +#, fuzzy +msgid "local [option] name[=value] ..." +msgstr "local nombre[=valor] ..." + +#: builtins.c:83 +msgid "echo [-neE] [arg ...]" +msgstr "echo [-neE] [arg ...]" + +#: builtins.c:87 +msgid "echo [-n] [arg ...]" +msgstr "echo [-n] [arg ...]" + +#: builtins.c:90 +#, fuzzy +msgid "enable [-a] [-dnps] [-f filename] [name ...]" +msgstr "enable [-pnds] [-a] [-f fichero] [nombre ...]" + +#: builtins.c:92 +msgid "eval [arg ...]" +msgstr "eval [arg ...]" + +#: builtins.c:94 +msgid "getopts optstring name [arg]" +msgstr "getopts cadena_opciones nombre [arg]" + +#: builtins.c:96 +#, fuzzy +msgid "exec [-cl] [-a name] [command [arguments ...]] [redirection ...]" +msgstr "exec [-cl] [-a nombre] fichero [redirección ...]" + +#: builtins.c:98 +msgid "exit [n]" +msgstr "exit [n]" + +#: builtins.c:100 +#, fuzzy +msgid "logout [n]" +msgstr "logout" + +#: builtins.c:103 +#, fuzzy +msgid "fc [-e ename] [-lnr] [first] [last] or fc -s [pat=rep] [command]" +msgstr "fc [-e nombre_e] [-nlr] [primero] [último] o fc -s [pat=rep] [orden]" + +#: builtins.c:107 +msgid "fg [job_spec]" +msgstr "fg [id_trabajo]" + +#: builtins.c:111 +#, fuzzy +msgid "bg [job_spec ...]" +msgstr "bg [id_trabajo]" + +#: builtins.c:114 +#, fuzzy +msgid "hash [-lr] [-p pathname] [-dt] [name ...]" +msgstr "hash [-r] [-p ruta_de_acceso] [nombre ...]" + +#: builtins.c:117 +#, fuzzy +msgid "help [-ds] [pattern ...]" +msgstr "help [expresión_regular ...]" + +#: builtins.c:121 +#, fuzzy +msgid "" +"history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg " +"[arg...]" +msgstr "history [-c] [n] ó history -awrn [fichero] o history -ps arg [arg...]" + +# jobspec no es sólo el pid del proceso, puede ser tambien +# el nombre de la orden que se creo con el proceso em+ +# por eso es idtrabajo, no pidtrabajo. De cualquier forma, no me agrada +# mucho. ¿Sugerencias? cfuga +#: builtins.c:125 +msgid "jobs [-lnprs] [jobspec ...] or jobs -x command [args]" +msgstr "jobs [-lnprs] [idtrabajo ...] ó jobs -x orden [args]" + +# lo mismo em+ +#: builtins.c:129 +#, fuzzy +msgid "disown [-h] [-ar] [jobspec ...]" +msgstr "disown [idtrabajo ...]" + +#: builtins.c:132 +#, fuzzy +msgid "" +"kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l " +"[sigspec]" +msgstr "" +"kill [-s id_señal | -n num_señal | -id_señal] [pid | trabajo]... ó kill -l " +"[id_señal]" + +#: builtins.c:134 +msgid "let arg [arg ...]" +msgstr "let arg [arg ...]" + +#: builtins.c:136 +msgid "" +"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-p prompt] [-t " +"timeout] [-u fd] [name ...]" +msgstr "" + +#: builtins.c:138 +msgid "return [n]" +msgstr "return [n]" + +#: builtins.c:140 +#, fuzzy +msgid "set [--abefhkmnptuvxBCHP] [-o option-name] [arg ...]" +msgstr "set [--abefhkmnptuvxBCHP] [-o opción] [arg ...]" + +#: builtins.c:142 +msgid "unset [-f] [-v] [name ...]" +msgstr "unset [-f] [-v] [nombre ...]" + +#: builtins.c:144 +#, fuzzy +msgid "export [-fn] [name[=value] ...] or export -p" +msgstr "export [-nf] [nombre ...] ó export -p" + +#: builtins.c:146 +#, fuzzy +msgid "readonly [-af] [name[=value] ...] or readonly -p" +msgstr "readonly [-anf] [nombre ...] ó readonly -p" + +#: builtins.c:148 +#, fuzzy +msgid "shift [n]" +msgstr "exit [n]" + +#: builtins.c:150 +#, fuzzy +msgid "source filename [arguments]" +msgstr "source fichero" + +#: builtins.c:152 +#, fuzzy +msgid ". filename [arguments]" +msgstr "se requiere un argumento de nombre de fichero" + +#: builtins.c:155 +msgid "suspend [-f]" +msgstr "suspend [-f]" + +#: builtins.c:158 +msgid "test [expr]" +msgstr "test [expresión]" + +#: builtins.c:160 +msgid "[ arg... ]" +msgstr "[ arg... ]" + +# Esto podría ser "veces". Mirar el contexto. sv +# No es veces. times es una orden interna del shell. cfuga +#: builtins.c:162 +msgid "times" +msgstr "times" + +#: builtins.c:164 +#, fuzzy +msgid "trap [-lp] [[arg] signal_spec ...]" +msgstr "trap [arg] [id_señal] ó trap -l" + +#: builtins.c:166 +#, fuzzy +msgid "type [-afptP] name [name ...]" +msgstr "type [-apt] nombre [nombre ...]" + +#: builtins.c:169 +#, fuzzy +msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]" +msgstr "ulimit [-SHacdfmstpnuv] [límite]" + +#: builtins.c:172 +#, fuzzy +msgid "umask [-p] [-S] [mode]" +msgstr "umask [-S] [modo]" + +#: builtins.c:175 +#, fuzzy +msgid "wait [id]" +msgstr "wait [n]" + +#: builtins.c:179 +#, fuzzy +msgid "wait [pid]" +msgstr "wait [n]" + +#: builtins.c:182 +#, fuzzy +msgid "for NAME [in WORDS ... ] ; do COMMANDS; done" +msgstr "for NOMBRE [in PALABRAS ... ;] do ÓRDENES; done" + +#: builtins.c:184 +#, fuzzy +msgid "for (( exp1; exp2; exp3 )); do COMMANDS; done" +msgstr "for NOMBRE [in PALABRAS ... ;] do ÓRDENES; done" + +#: builtins.c:186 +msgid "select NAME [in WORDS ... ;] do COMMANDS; done" +msgstr "select NOMBRE [in PALABRAS ... ;] do ÓRDENES; done" + +#: builtins.c:188 +msgid "time [-p] pipeline" +msgstr "" + +#: builtins.c:190 +msgid "case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac" +msgstr "case PALABRA in [PLANTILLA [| PLANTILLA]...) ÓRDENES ;;]... esac" + +#: builtins.c:192 +msgid "" +"if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else " +"COMMANDS; ] fi" +msgstr "" +"if ÓRDENES; then ÓRDENES; [ elif ÓRDENES; then ÓRDENES; ]...[ else " +"ÓRDENES; ] fi" + +#: builtins.c:194 +msgid "while COMMANDS; do COMMANDS; done" +msgstr "while ÓRDENES; do ÓRDENES; done" + +#: builtins.c:196 +msgid "until COMMANDS; do COMMANDS; done" +msgstr "until ÓRDENES; do ÓRDENES; done" + +#: builtins.c:198 +#, fuzzy +msgid "function name { COMMANDS ; } or name () { COMMANDS ; }" +msgstr "function NOMBRE { ÓRDENES ; } o NOMBRE () { ÓRDENES ; }" + +#: builtins.c:200 +#, fuzzy +msgid "{ COMMANDS ; }" +msgstr "{ ÓRDENES }" + +#: builtins.c:202 +#, fuzzy +msgid "job_spec [&]" +msgstr "fg [id_trabajo]" + +#: builtins.c:204 +#, fuzzy +msgid "(( expression ))" +msgstr "se esperaba una expresión" + +#: builtins.c:206 +#, fuzzy +msgid "[[ expression ]]" +msgstr "se esperaba una expresión" + +#: builtins.c:208 +#, fuzzy +msgid "variables - Names and meanings of some shell variables" +msgstr "" +"Se permiten las variables de shell como operandos. Se reemplaza el nombre" + +#: builtins.c:211 +#, fuzzy +msgid "pushd [-n] [+N | -N | dir]" +msgstr "pushd [dir | +N | -N] [-n]" + +#: builtins.c:215 +#, fuzzy +msgid "popd [-n] [+N | -N]" +msgstr "popd [+N | -N] [-n]" + +#: builtins.c:219 +msgid "dirs [-clpv] [+N] [-N]" +msgstr "dirs [-clpv] [+N] [-N]" + +#: builtins.c:222 +#, fuzzy +msgid "shopt [-pqsu] [-o] [optname ...]" +msgstr "shopt [-pqsu] [-o opción-larga] nombre_opción [nombre_opción...]" + +#: builtins.c:224 +msgid "printf [-v var] format [arguments]" +msgstr "" + +#: builtins.c:227 +msgid "" +"complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W " +"wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] " +"[name ...]" +msgstr "" + +#: builtins.c:231 +msgid "" +"compgen [-abcdefgjksuv] [-o option] [-A action] [-G globpat] [-W wordlist] " +"[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]" +msgstr "" + +#: builtins.c:235 +#, fuzzy +msgid "compopt [-o|+o option] [name ...]" +msgstr "type [-apt] nombre [nombre ...]" + +#: builtins.c:238 +msgid "" +"mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c " +"quantum] [array]" +msgstr "" + +# Más en español sería: se define un alias por cada NOMBRE cuyo VALOR se da. sv +# Lo mismo de antes: el alias es expandido -> el alias se expande. sv +# no alias -> ningún alias. sv +# De acuerdo. cfuga +#: builtins.c:250 +#, fuzzy +msgid "" +"Define or display aliases.\n" +" \n" +" Without arguments, `alias' prints the list of aliases in the reusable\n" +" form `alias NAME=VALUE' on standard output.\n" +" \n" +" Otherwise, an alias is defined for each NAME whose VALUE is given.\n" +" A trailing space in VALUE causes the next word to be checked for\n" +" alias substitution when the alias is expanded.\n" +" \n" +" Options:\n" +" -p\tPrint all defined aliases in a reusable format\n" +" \n" +" Exit Status:\n" +" alias returns true unless a NAME is supplied for which no alias has " +"been\n" +" defined." +msgstr "" +"`alias' sin argumentos o con la opción -p muestra la lista de\n" +" aliases en la forma alias NAME=VALUE en la salida estándard.\n" +" De otra manera, se define un alias por cada NAME cuyo VALUE se\n" +" proporcione.\n" +" Un espacio final en VALUE causa que se revise la siguiente palabra\n" +" para sustitución de alias cuando se expande el alias. Alias devuelve\n" +" verdadero a menos que se de un NAME para el cual no se haya definido\n" +" ningún alias." + +#: builtins.c:272 +#, fuzzy +msgid "" +"Remove each NAME from the list of defined aliases.\n" +" \n" +" Options:\n" +" -a\tremove all alias definitions.\n" +" \n" +" Return success unless a NAME is not an existing alias." +msgstr "" +"Borra NAMEs de la lista de alias definidos. Si se especifica la opción -a ,\n" +" entonces elimina todas las definiciones de alias." + +# lee 'la'... em+ +# Corregido. Además, es plural: lee las asignaciones... cfuga +#: builtins.c:285 +#, fuzzy +msgid "" +"Set Readline key bindings and variables.\n" +" \n" +" Bind a key sequence to a Readline function or a macro, or set a\n" +" Readline variable. The non-option argument syntax is equivalent to\n" +" that found in ~/.inputrc, but must be passed as a single argument:\n" +" e.g., bind '\"\\C-x\\C-r\": re-read-init-file'.\n" +" \n" +" Options:\n" +" -m keymap Use KEYMAP as the keymap for the duration of this\n" +" command. Acceptable keymap names are emacs,\n" +" emacs-standard, emacs-meta, emacs-ctlx, vi, vi-" +"move,\n" +" vi-command, and vi-insert.\n" +" -l List names of functions.\n" +" -P List function names and bindings.\n" +" -p List functions and bindings in a form that can be\n" +" reused as input.\n" +" -S List key sequences that invoke macros and their " +"values\n" +" -s List key sequences that invoke macros and their " +"values\n" +" in a form that can be reused as input.\n" +" -V List variable names and values\n" +" -v List variable names and values in a form that can\n" +" be reused as input.\n" +" -q function-name Query about which keys invoke the named function.\n" +" -u function-name Unbind all keys which are bound to the named " +"function.\n" +" -r keyseq Remove the binding for KEYSEQ.\n" +" -f filename Read key bindings from FILENAME.\n" +" -x keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n" +" \t\t\t\tKEYSEQ is entered.\n" +" \n" +" Exit Status:\n" +" bind returns 0 unless an unrecognized option is given or an error occurs." +msgstr "" +"Asigna una secuencia de teclas a una función Readline o a una macro, o\n" +" establece una variable Readline. La sintaxis de los argumentos que no " +"son\n" +" opciones es equivalente a la que se encuentra en ~/.inputrc, pero se " +"debe\n" +" pasar como un solo argumento:\n" +" bind '\"\\C-x\\C-r\": re-read-init-file'.\n" +" bind acepta las siguientes opciones:\n" +" -m mapateclas Usa el `mapateclas' como el mapa de teclas por la\n" +" duración de esta orden. Los nombres aceptables de\n" +" mapas de teclas son emacs, emacs-standard, emacs-" +"meta,\n" +" emacs-ctlx, vi, vi-move, vi-command y vi-insert.\n" +" -l Enlista los nombres de las funciones.\n" +" -P Enlista los nombres de las funciones y " +"asignaciones.\n" +" -p Enlista las funciones y asignaciones en una forma " +"que\n" +" se puede reusar como entrada.\n" +" -r seqtecl Borra la asignación para la SEQTECL.\n" +" -x seqtecl:orden-shell\tCausa que se ejecute la ORDEN-SHELL cuando\n" +" \t\t\t\tse introduce la SEQTECL.\n" +" -f nombrefichero Lee las asignaciones de teclas del NOMBREFICHERO.\n" +" -q nombre-funcion Pregunta qué teclas invocan la función nombrada.\n" +" -u nombre-función Borra la asignación de todas las teclas que están\n" +" ligadas a la función nombrada.\n" +" -V Enlista los nombres de variables y valores.\n" +" -v Enlista los nombres de variables y valores en una\n" +" forma que se pueden reusar como entrada.\n" +" -S Enlista las secuencias de teclas que invocan " +"macros\n" +" y sus valores.\n" +" -s Enlista las secuencias de teclas que invocan " +"macros\n" +" y sus valores en una forma que se pueden reusar " +"como\n" +" entrada." + +#: builtins.c:322 +#, fuzzy +msgid "" +"Exit for, while, or until loops.\n" +" \n" +" Exit a FOR, WHILE or UNTIL loop. If N is specified, break N enclosing\n" +" loops.\n" +" \n" +" Exit Status:\n" +" The exit status is 0 unless N is not greater than or equal to 1." +msgstr "" +"Retoma la siguiente iteración del ciclo FOR, WHILE o UNTIL incluido.\n" +" Si se especifica N, retoma en el N-ésimo ciclo incluido." + +#: builtins.c:334 +#, fuzzy +msgid "" +"Resume for, while, or until loops.\n" +" \n" +" Resumes the next iteration of the enclosing FOR, WHILE or UNTIL loop.\n" +" If N is specified, resumes the Nth enclosing loop.\n" +" \n" +" Exit Status:\n" +" The exit status is 0 unless N is not greater than or equal to 1." +msgstr "" +"Retoma la siguiente iteración del ciclo FOR, WHILE o UNTIL incluido.\n" +" Si se especifica N, retoma en el N-ésimo ciclo incluido." + +#: builtins.c:346 +msgid "" +"Execute shell builtins.\n" +" \n" +" Execute SHELL-BUILTIN with arguments ARGs without performing command\n" +" lookup. This is useful when you wish to reimplement a shell builtin\n" +" as a shell function, but need to execute the builtin within the " +"function.\n" +" \n" +" Exit Status:\n" +" Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is\n" +" not a shell builtin.." +msgstr "" + +#: builtins.c:361 +#, fuzzy +msgid "" +"Return the context of the current subroutine call.\n" +" \n" +" Without EXPR, returns \"$line $filename\". With EXPR, returns\n" +" \"$line $subroutine $filename\"; this extra information can be used to\n" +" provide a stack trace.\n" +" \n" +" The value of EXPR indicates how many call frames to go back before the\n" +" current one; the top frame is frame 0.\n" +" \n" +" Exit Status:\n" +" Returns 0 unless the shell is not executing a shell function or EXPR\n" +" is invalid." +msgstr "" +"Devuelve el contexto de la llamada a subrutina actual.\n" +" \n" +" Sin EXPR, devuelve \"$linea $nombrefichero\". Con EXPR,\n" +" devuelve \"$linea $subrutina $nombrefichero\"; esta información\n" +" adicional se puede usar para proveer un volcado de pila.\n" +"\n" +" El valor de EXPR indica cuántos marcos de llamada se debe retroceder\n" +" antes del actual; el marco inicial es el marco 0." + +# Slash lo venimos traduciendo por barra inclinada , y backslash +# por barra invertida em++ +# Corregido en toda la traducción. cfuga +#: builtins.c:379 +#, fuzzy +msgid "" +"Change the shell working directory.\n" +" \n" +" Change the current directory to DIR. The default DIR is the value of " +"the\n" +" HOME shell variable.\n" +" \n" +" The variable CDPATH defines the search path for the directory " +"containing\n" +" DIR. Alternative directory names in CDPATH are separated by a colon " +"(:).\n" +" A null directory name is the same as the current directory. If DIR " +"begins\n" +" with a slash (/), then CDPATH is not used.\n" +" \n" +" If the directory is not found, and the shell option `cdable_vars' is " +"set,\n" +" the word is assumed to be a variable name. If that variable has a " +"value,\n" +" its value is used for DIR.\n" +" \n" +" Options:\n" +" -L\tforce symbolic links to be followed\n" +" -P\tuse the physical directory structure without following symbolic\n" +" \tlinks\n" +" \n" +" The default is to follow symbolic links, as if `-L' were specified.\n" +" \n" +" Exit Status:\n" +" Returns 0 if the directory is changed; non-zero otherwise." +msgstr "" +"Cambia el directorio actual a DIR. La variable $HOME es el directorio\n" +" por defecto. La variable CDPATH define la ruta de búsqueda por el\n" +" directorio que contiene DIR. Los nombres alternativos de directorio\n" +" en CDPATH se separan con dos puntos (:). Un nombre de directorio nulo\n" +" es igual que el directorio actual, p.e. `.' Si DIR comienza con una\n" +" diagonal (/), entonces no se usa CDPATH. Si no se encuentra el\n" +" directorio, y la opción del shell `cdable_vars' está activa, entonces\n" +" trata la palabra como un nombre de variable. Si la variable tiene un\n" +" valor, entonces cd cambia al valor de esa variable. La opción -P " +"indica\n" +" usar la estructura física de directorios en lugar de seguir los enlaces\n" +" simbólicos; la opción -L fuerza que se sigan los enlaces simbólicos." + +#: builtins.c:407 +msgid "" +"Print the name of the current working directory.\n" +" \n" +" Options:\n" +" -L\tprint the value of $PWD if it names the current working\n" +" \tdirectory\n" +" -P\tprint the physical directory, without any symbolic links\n" +" \n" +" By default, `pwd' behaves as if `-L' were specified.\n" +" \n" +" Exit Status:\n" +" Returns 0 unless an invalid option is given or the current directory\n" +" cannot be read." +msgstr "" + +#: builtins.c:424 +#, fuzzy +msgid "" +"Null command.\n" +" \n" +" No effect; the command does nothing.\n" +" \n" +" Exit Status:\n" +" Always succeeds." +msgstr "Sin efecto; la orden no hace nada. Devuelve un código de estado cero." + +#: builtins.c:435 +msgid "" +"Return a successful result.\n" +" \n" +" Exit Status:\n" +" Always succeeds." +msgstr "" + +#: builtins.c:444 +#, fuzzy +msgid "" +"Return an unsuccessful result.\n" +" \n" +" Exit Status:\n" +" Always fails." +msgstr "Devuelve un resultado sin éxito." + +#: builtins.c:453 +msgid "" +"Execute a simple command or display information about commands.\n" +" \n" +" Runs COMMAND with ARGS suppressing shell function lookup, or display\n" +" information about the specified COMMANDs. Can be used to invoke " +"commands\n" +" on disk when a function with the same name exists.\n" +" \n" +" Options:\n" +" -p\tuse a default value for PATH that is guaranteed to find all of\n" +" \tthe standard utilities\n" +" -v\tprint a description of COMMAND similar to the `type' builtin\n" +" -V\tprint a more verbose description of each COMMAND\n" +" \n" +" Exit Status:\n" +" Returns exit status of COMMAND, or failure if COMMAND is not found." +msgstr "" + +# apaga -> desactiva em+ +# Corregido en toda la traducción. cfuga +#: builtins.c:472 +#, fuzzy +msgid "" +"Set variable values and attributes.\n" +" \n" +" Declare variables and give them attributes. If no NAMEs are given,\n" +" display the attributes and values of all variables.\n" +" \n" +" Options:\n" +" -f\trestrict action or display to function names and definitions\n" +" -F\trestrict display to function names only (plus line number and\n" +" \tsource file when debugging)\n" +" -p\tdisplay the attributes and value of each NAME\n" +" \n" +" Options which set attributes:\n" +" -a\tto make NAMEs indexed arrays (if supported)\n" +" -A\tto make NAMEs associative arrays (if supported)\n" +" -i\tto make NAMEs have the `integer' attribute\n" +" -l\tto convert NAMEs to lower case on assignment\n" +" -r\tto make NAMEs readonly\n" +" -t\tto make NAMEs have the `trace' attribute\n" +" -u\tto convert NAMEs to upper case on assignment\n" +" -x\tto make NAMEs export\n" +" \n" +" Using `+' instead of `-' turns off the given attribute.\n" +" \n" +" Variables with the integer attribute have arithmetic evaluation (see\n" +" the `let' command) performed when the variable is assigned a value.\n" +" \n" +" When used in a function, `declare' makes NAMEs local, as with the " +"`local'\n" +" command.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" +"Declara variables y/o les asigna atributos. Si no se propociona\n" +" ningún NAME, entonces muestra los valores de las variables.\n" +" La opción -p mostrará los atributos y valores de cada NAME.\n" +" \n" +" Las opciones son:\n" +" \n" +" -a\thace a los NAMEs matrices (si tiene soporte)\n" +" -f\tselecciona solamente nombres de funciones\n" +" -F\tmuestra nombres de funciones (y número de línea y nombre de\n" +" \tfichero fuente si se está depurando) sin definiciones\n" +" -i\tasigna a los NAMEs el atributo `integer'\n" +" -r\thace a los NAMEs de sólo lectura\n" +" -t\tasigna a los NAMEs el atributo `trace'\n" +" -x\thace a los NAMEs exportables\n" +" \n" +" Las variables con el atributo integer se les evalúa aritméticamente\n" +" (vea `let') cuando se asigna la variable.\n" +" \n" +" Cuando se muestran los valores de las variables, -f muestra\n" +" el nombre de una función y su definición. La opción -F restringe\n" +" a mostrar solamente el nombre de la función.\n" +" \n" +" Al usar `+' en lugar de `-' desactiva el atributo dado. Cuando se\n" +" usa en una función, hace a los NAMEs locales, como sucede con la\n" +" orden `local'." + +#: builtins.c:508 +msgid "" +"Set variable values and attributes.\n" +" \n" +" Obsolete. See `help declare'." +msgstr "" + +#: builtins.c:516 +msgid "" +"Define local variables.\n" +" \n" +" Create a local variable called NAME, and give it VALUE. OPTION can\n" +" be any option accepted by `declare'.\n" +" \n" +" Local variables can only be used within a function; they are visible\n" +" only to the function where they are defined and its children.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied, an error occurs,\n" +" or the shell is not executing a function." +msgstr "" + +#: builtins.c:533 +#, fuzzy +msgid "" +"Write arguments to the standard output.\n" +" \n" +" Display the ARGs on the standard output followed by a newline.\n" +" \n" +" Options:\n" +" -n\tdo not append a newline\n" +" -e\tenable interpretation of the following backslash escapes\n" +" -E\texplicitly suppress interpretation of backslash escapes\n" +" \n" +" `echo' interprets the following backslash-escaped characters:\n" +" \\a\talert (bell)\n" +" \\b\tbackspace\n" +" \\c\tsuppress further output\n" +" \\e\tescape character\n" +" \\f\tform feed\n" +" \\n\tnew line\n" +" \\r\tcarriage return\n" +" \\t\thorizontal tab\n" +" \\v\tvertical tab\n" +" \\\\\tbackslash\n" +" \\0nnn\tthe character whose ASCII code is NNN (octal). NNN can be\n" +" \t0 to 3 octal digits\n" +" \\xHH\tthe eight-bit character whose value is HH (hexadecimal). HH\n" +" \tcan be one or two hex digits\n" +" \n" +" Exit Status:\n" +" Returns success unless a write error occurs." +msgstr "" +"Muestra los ARGs. Si se especifica -n, se suprime el carácter final de\n" +" fin de línea. Si se especifica la opción -e, se activa la\n" +" interpretación de los siguientes caracteres de escape con\n" +" barra invertida:\n" +" \t\\a\talerta (timbre)\n" +" \t\\b\tespacio hacia atrás\n" +" \t\\c\tsuprime el carácter final de fin de línea\n" +" \t\\E\tcarácter de escape\n" +" \t\\f\talimentación de papel\n" +" \t\\n\tlínea nueva\n" +" \t\\r\tretorno de carro\n" +" \t\\t\ttabulador horizontal\n" +" \t\\v\ttabulador vertical\n" +" \t\\\\\tbarra invertida\n" +" \t\\0nnn\tel carácter cuyo código ASCII es NNN (octal). NNN puede ser\n" +" \t\tde 0 a 3 dígitos octales\n" +" \n" +" Puede desactivar explícitamente la interpretación de los caracteres\n" +" arriba mencionados con la opción -E." + +#: builtins.c:567 +msgid "" +"Write arguments to the standard output.\n" +" \n" +" Display the ARGs on the standard output followed by a newline.\n" +" \n" +" Options:\n" +" -n\tdo not append a newline\n" +" \n" +" Exit Status:\n" +" Returns success unless a write error occurs." +msgstr "" + +#: builtins.c:582 +msgid "" +"Enable and disable shell builtins.\n" +" \n" +" Enables and disables builtin shell commands. Disabling allows you to\n" +" execute a disk command which has the same name as a shell builtin\n" +" without using a full pathname.\n" +" \n" +" Options:\n" +" -a\tprint a list of builtins showing whether or not each is enabled\n" +" -n\tdisable each NAME or display a list of disabled builtins\n" +" -p\tprint the list of builtins in a reusable format\n" +" -s\tprint only the names of Posix `special' builtins\n" +" \n" +" Options controlling dynamic loading:\n" +" -f\tLoad builtin NAME from shared object FILENAME\n" +" -d\tRemove a builtin loaded with -f\n" +" \n" +" Without options, each NAME is enabled.\n" +" \n" +" To use the `test' found in $PATH instead of the shell builtin\n" +" version, type `enable -n test'.\n" +" \n" +" Exit Status:\n" +" Returns success unless NAME is not a shell builtin or an error occurs." +msgstr "" + +#: builtins.c:610 +msgid "" +"Execute arguments as a shell command.\n" +" \n" +" Combine ARGs into a single string, use the result as input to the " +"shell,\n" +" and execute the resulting commands.\n" +" \n" +" Exit Status:\n" +" Returns exit status of command or success if command is null." +msgstr "" + +# "a ser reconocidas" no está en español. +# Yo pondría "las letras de opción que se reconocen". sv +# en una de dos formas -> en una de las dos formas siguientes em+ +# dar argumentos -> especificar em+ +# De acuerdo. cfuga +#: builtins.c:622 +#, fuzzy +msgid "" +"Parse option arguments.\n" +" \n" +" Getopts is used by shell procedures to parse positional parameters\n" +" as options.\n" +" \n" +" OPTSTRING contains the option letters to be recognized; if a letter\n" +" is followed by a colon, the option is expected to have an argument,\n" +" which should be separated from it by white space.\n" +" \n" +" Each time it is invoked, getopts will place the next option in the\n" +" shell variable $name, initializing name if it does not exist, and\n" +" the index of the next argument to be processed into the shell\n" +" variable OPTIND. OPTIND is initialized to 1 each time the shell or\n" +" a shell script is invoked. When an option requires an argument,\n" +" getopts places that argument into the shell variable OPTARG.\n" +" \n" +" getopts reports errors in one of two ways. If the first character\n" +" of OPTSTRING is a colon, getopts uses silent error reporting. In\n" +" this mode, no error messages are printed. If an invalid option is\n" +" seen, getopts places the option character found into OPTARG. If a\n" +" required argument is not found, getopts places a ':' into NAME and\n" +" sets OPTARG to the option character found. If getopts is not in\n" +" silent mode, and an invalid option is seen, getopts places '?' into\n" +" NAME and unsets OPTARG. If a required argument is not found, a '?'\n" +" is placed in NAME, OPTARG is unset, and a diagnostic message is\n" +" printed.\n" +" \n" +" If the shell variable OPTERR has the value 0, getopts disables the\n" +" printing of error messages, even if the first character of\n" +" OPTSTRING is not a colon. OPTERR has the value 1 by default.\n" +" \n" +" Getopts normally parses the positional parameters ($0 - $9), but if\n" +" more arguments are given, they are parsed instead.\n" +" \n" +" Exit Status:\n" +" Returns success if an option is found; fails if the end of options is\n" +" encountered or an error occurs." +msgstr "" +"Getopts se usa para decodificar parámetros posicionales en guiones de " +"shell.\n" +" \n" +" OPTSTRING contiene las letras de opción para reconocer; si una letra\n" +" es seguida por dos puntos, se espera que la opción tenga un\n" +" argumento, del cual se debe separar con espacios en blanco.\n" +" \n" +" Cada vez que se invoca, getopts colocará la siguiente opción en la\n" +" variable de shell $name, inicializando name si no existe, y el\n" +" índice del siguente argumento a ser procesado en la variable de\n" +" shell OPTIND. OPTIND se inicializa a 1 cada vez que se invoca al\n" +" shell, o a un guión de shell. Cuando una opción requiere un\n" +" argumento, getopts coloca ese argumento en la variable de shell\n" +" OPTARG.\n" +" \n" +" getopts reporta errores en una de las dos formas siguientes. Si\n" +" el primer carácter de OPTSTRING es dos puntos, getopts usa el\n" +" aviso de errores silencioso. En este modo, no se muestran\n" +" mensajes de error. Si se encuentra una opción inválida, getopts\n" +" coloca el carácter de opción encontrado en OPTARG. Si no se\n" +" encuentra un argumento necesario, getopts coloca ':' en NAME y\n" +" define OPTARG como el carácter de opción encontrado. Si getopts no\n" +" está en modo silencioso, y se encuentra una opción inválida, getopts\n" +" coloca '?' en NAME y borra OPTARG. Si no se encuentra un argumento\n" +" necesario, se coloca un '?' en NAME, se borra OPTARG, y se muestra\n" +" un mensaje de diagnóstico.\n" +" \n" +" Si la variable de shell OPTERR tiene el valor 0, getopts desactiva\n" +" la notificación de mensajes de error, aún si el primer carácter de\n" +" OPTSTRING no es ':'. OPTERR tiene el valor 1 por defecto.\n" +" \n" +" Getopts normalmente compara los parámetros de posición ($0 - $9),\n" +" pero si se especifican más argumentos, éstos se comparan en lugar\n" +" de los primeros." + +#: builtins.c:664 +msgid "" +"Replace the shell with the given command.\n" +" \n" +" Execute COMMAND, replacing this shell with the specified program.\n" +" ARGUMENTS become the arguments to COMMAND. If COMMAND is not " +"specified,\n" +" any redirections take effect in the current shell.\n" +" \n" +" Options:\n" +" -a name\tpass NAME as the zeroth argument to COMMAND\n" +" -c\t\texecute COMMAND with an empty environment\n" +" -l\t\tplace a dash in the zeroth argument to COMMAND\n" +" \n" +" If the command cannot be executed, a non-interactive shell exits, " +"unless\n" +" the shell option `execfail' is set.\n" +" \n" +" Exit Status:\n" +" Returns success unless COMMAND is not found or a redirection error " +"occurs." +msgstr "" + +#: builtins.c:685 +#, fuzzy +msgid "" +"Exit the shell.\n" +" \n" +" Exits the shell with a status of N. If N is omitted, the exit status\n" +" is that of the last command executed." +msgstr "" +"Termina el shell con un estado de N. Si se omite N, el estado de salida\n" +" es el mismo de la última orden ejecutada." + +#: builtins.c:694 +msgid "" +"Exit a login shell.\n" +" \n" +" Exits a login shell with exit status N. Returns an error if not " +"executed\n" +" in a login shell." +msgstr "" + +#: builtins.c:704 +#, fuzzy +msgid "" +"Display or execute commands from the history list.\n" +" \n" +" fc is used to list or edit and re-execute commands from the history " +"list.\n" +" FIRST and LAST can be numbers specifying the range, or FIRST can be a\n" +" string, which means the most recent command beginning with that\n" +" string.\n" +" \n" +" Options:\n" +" -e ENAME\tselect which editor to use. Default is FCEDIT, then " +"EDITOR,\n" +" \t\tthen vi\n" +" -l \tlist lines instead of editing\n" +" -n\tomit line numbers when listing\n" +" -r\treverse the order of the lines (newest listed first)\n" +" \n" +" With the `fc -s [pat=rep ...] [command]' format, COMMAND is\n" +" re-executed after the substitution OLD=NEW is performed.\n" +" \n" +" A useful alias to use with this is r='fc -s', so that typing `r cc'\n" +" runs the last command beginning with `cc' and typing `r' re-executes\n" +" the last command.\n" +" \n" +" Exit Status:\n" +" Returns success or status of executed command; non-zero if an error " +"occurs." +msgstr "" +"fc se usa para listar o editar y reejecutar órdenes de la lista de " +"historia.\n" +" FIRST y LAST pueden ser números que especifican el rango, o FIRST puede\n" +" ser una cadena, que significa la orden más reciente que comience con\n" +" esa cadena.\n" +" \n" +" -e ENAME selecciona el editor a usar. Por defecto es FCEDIT,\n" +" después EDITOR, después vi.\n" +" \n" +" -l significa lista líneas en lugar de editar.\n" +" -n significa que no se listan números de línea.\n" +" -r significa invertir el orden de las líneas (mostrando primero\n" +" las más recientes).\n" +" \n" +" Con el formato `fc -s [pat=rep ...] [orden]', la orden se\n" +" ejecuta de nuevo después de realizar ls sustitución ANT=NUEVO.\n" +" \n" +" Un alias útil para usar con esto es r='fc -s', así que al teclear\n" +" `r cc' ejecuta la última orden que comience con `cc' y al teclear\n" +" `r' re-ejecuta la última orden." + +#: builtins.c:734 +#, fuzzy +msgid "" +"Move job to the foreground.\n" +" \n" +" Place the job identified by JOB_SPEC in the foreground, making it the\n" +" current job. If JOB_SPEC is not present, the shell's notion of the\n" +" current job is used.\n" +" \n" +" Exit Status:\n" +" Status of command placed in foreground, or failure if an error occurs." +msgstr "" +"Ubica al JOB_SPEC en el primer plano, y lo hace el trabajo actual. Si\n" +" JOB_SPEC no está presente, se usa la noción del shell del trabajo\n" +" actual." + +#: builtins.c:749 +#, fuzzy +msgid "" +"Move jobs to the background.\n" +" \n" +" Place the jobs identified by each JOB_SPEC in the background, as if " +"they\n" +" had been started with `&'. If JOB_SPEC is not present, the shell's " +"notion\n" +" of the current job is used.\n" +" \n" +" Exit Status:\n" +" Returns success unless job control is not enabled or an error occurs." +msgstr "" +"Coloca cada JOB_SPEC en segundo plano, como si se hubieran iniciado con\n" +" `&'. Si JOB_SPEC no está presente, se usa la noción del shell del\n" +" trabajo actual." + +#: builtins.c:763 +msgid "" +"Remember or display program locations.\n" +" \n" +" Determine and remember the full pathname of each command NAME. If\n" +" no arguments are given, information about remembered commands is " +"displayed.\n" +" \n" +" Options:\n" +" -d\t\tforget the remembered location of each NAME\n" +" -l\t\tdisplay in a format that may be reused as input\n" +" -p pathname\tuse PATHNAME is the full pathname of NAME\n" +" -r\t\tforget all remembered locations\n" +" -t\t\tprint the remembered location of each NAME, preceding\n" +" \t\teach location with the corresponding NAME if multiple\n" +" \t\tNAMEs are given\n" +" Arguments:\n" +" NAME\t\tEach NAME is searched for in $PATH and added to the list\n" +" \t\tof remembered commands.\n" +" \n" +" Exit Status:\n" +" Returns success unless NAME is not found or an invalid option is given." +msgstr "" + +#: builtins.c:788 +msgid "" +"Display information about builtin commands.\n" +" \n" +" Displays brief summaries of builtin commands. If PATTERN is\n" +" specified, gives detailed help on all commands matching PATTERN,\n" +" otherwise the list of help topics is printed.\n" +" \n" +" Options:\n" +" -d\toutput short description for each topic\n" +" -m\tdisplay usage in pseudo-manpage format\n" +" -s\toutput only a short usage synopsis for each topic matching\n" +" \tPATTERN\n" +" \n" +" Arguments:\n" +" PATTERN\tPattern specifiying a help topic\n" +" \n" +" Exit Status:\n" +" Returns success unless PATTERN is not found or an invalid option is " +"given." +msgstr "" + +#: builtins.c:812 +#, fuzzy +msgid "" +"Display or manipulate the history list.\n" +" \n" +" Display the history list with line numbers, prefixing each modified\n" +" entry with a `*'. An argument of N lists only the last N entries.\n" +" \n" +" Options:\n" +" -c\tclear the history list by deleting all of the entries\n" +" -d offset\tdelete the history entry at offset OFFSET.\n" +" \n" +" -a\tappend history lines from this session to the history file\n" +" -n\tread all history lines not already read from the history file\n" +" -r\tread the history file and append the contents to the history\n" +" \tlist\n" +" -w\twrite the current history to the history file\n" +" \tand append them to the history list\n" +" \n" +" -p\tperform history expansion on each ARG and display the result\n" +" \twithout storing it in the history list\n" +" -s\tappend the ARGs to the history list as a single entry\n" +" \n" +" If FILENAME is given, it is used as the history file. Otherwise,\n" +" if $HISTFILE has a value, that is used, else ~/.bash_history.\n" +" \n" +" If the $HISTTIMEFORMAT variable is set and not null, its value is used\n" +" as a format string for strftime(3) to print the time stamp associated\n" +" with each displayed history entry. No time stamps are printed " +"otherwise.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or an error occurs." +msgstr "" +"Muestra la lista de la historia con números de línea. Las líneas\n" +" mostradas con un `*' han sido modificadas. El argumento N indica\n" +" mostrar solamente las últimas N líneas. La opción `-c' borra la\n" +" lista de histora eliminando todas sus entradas. La opción `-d' borra\n" +" la entrada de historia en la posición OFFSET. La opción `-w' escribe\n" +" la historia actual en el fichero de historia; `-r' lee el fichero y\n" +" agrega los contenidos a la lista de historia. `-a' agrega las líneas\n" +" de historia de esta sesión al fichero de historia. El argumento `-n'\n" +" lee todas las líneas de historia que no se han leído del fichero de\n" +" historia y las agrega al fichero de historia.\n" +" \n" +" Si se proporciona FILENAME, entonces se usa como el fichero de\n" +" historia, si no, si $HISTFILE tien un valor, éste se usa, si no\n" +" ~/.bash_history. Si se proporciona la opción -s, los ARGs que no son\n" +" opciones se agregan a la lista de historia como una sola entrada.\n" +" La opción -p hace expansión de historia en cada ARG y muestra el\n" +" resultado, sin guardar nada en el fichero de historia.\n" +" \n" +" Si la variable $HISTTIMEFORMAT está definida y no es nula, se usa su\n" +" valor como una cadena de formato strftime(3) para mostrar la marca de\n" +" tiempo asociada con cada entrada de historia mostrada. No se muestra\n" +" ninguna marca de tiempo de otra forma." + +#: builtins.c:848 +#, fuzzy +msgid "" +"Display status of jobs.\n" +" \n" +" Lists the active jobs. JOBSPEC restricts output to that job.\n" +" Without options, the status of all active jobs is displayed.\n" +" \n" +" Options:\n" +" -l\tlists process IDs in addition to the normal information\n" +" -n\tlist only processes that have changed status since the last\n" +" \tnotification\n" +" -p\tlists process IDs only\n" +" -r\trestrict output to running jobs\n" +" -s\trestrict output to stopped jobs\n" +" \n" +" If -x is supplied, COMMAND is run after all job specifications that\n" +" appear in ARGS have been replaced with the process ID of that job's\n" +" process group leader.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or an error occurs.\n" +" If -x is used, returns the exit status of COMMAND." +msgstr "" +"Muestra los trabajos activos. La opción -l muestra los id's de los " +"procesos\n" +" además de la información normal; la opción -p sólo muestra los id's de\n" +" los procesos. Si se especifica -n, sólo se muestran los procesos que\n" +" han cambiado de estado desde la última notificación. JOBSPEC restringe\n" +" la salida a ese trabajo. Las opciones -r y -s restringen la salida a\n" +" mostrar sólo trabajos en ejecución y detenidos, respectivamente. Sin\n" +" opciones, se muestra el estado de todos los trabajos activos. Si se\n" +" especifica -x, COMMAND se ejecuta después de que todas las\n" +" especificaciones de trabajo que aparecen en ARGS se han reemplazado\n" +" con el ID de proceso del líder del grupo de procesos de dicho trabajo." + +#: builtins.c:875 +msgid "" +"Remove jobs from current shell.\n" +" \n" +" Removes each JOBSPEC argument from the table of active jobs. Without\n" +" any JOBSPECs, the shell uses its notion of the current job.\n" +" \n" +" Options:\n" +" -a\tremove all jobs if JOBSPEC is not supplied\n" +" -h\tmark each JOBSPEC so that SIGHUP is not sent to the job if the\n" +" \tshell receives a SIGHUP\n" +" -r\tremove only running jobs\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option or JOBSPEC is given." +msgstr "" + +#: builtins.c:894 +#, fuzzy +msgid "" +"Send a signal to a job.\n" +" \n" +" Send the processes identified by PID or JOBSPEC the signal named by\n" +" SIGSPEC or SIGNUM. If neither SIGSPEC nor SIGNUM is present, then\n" +" SIGTERM is assumed.\n" +" \n" +" Options:\n" +" -s sig\tSIG is a signal name\n" +" -n sig\tSIG is a signal number\n" +" -l\tlist the signal names; if arguments follow `-l' they are\n" +" \tassumed to be signal numbers for which names should be listed\n" +" \n" +" Kill is a shell builtin for two reasons: it allows job IDs to be used\n" +" instead of process IDs, and allows processes to be killed if the limit\n" +" on processes that you can create is reached.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or an error occurs." +msgstr "" +"Envía a los procesos nombrados por PID (o JOBSPEC) la señal SIGSPEC. Si\n" +" no está presente SIGSPEC, se asume SIGTERM. El argumento `-l'\n" +" muestra los nombres de señales; si hay argumentos a continuación de\n" +" `-l' se asume que son números de señal para las cuales se debe\n" +" mostrar el nombre. Kill es una orden interna del shell por dos\n" +" razones: permite que se puedan usar IDs de trabajo en lugar de\n" +" IDs de proceso, y, si ha alcanzado el límite de procesos que puede\n" +" crear, no tiene que iniciar un proceso para matar a otro." + +# "a ser evaluada" no está en español. sv +# Cierto. ¿Así está mejor? cfuga +# overflow -> desbordamiento o sobrepasamiento. nunca lo he visto +# traducido como sobreflujo. sv +# Corregido. cfuga +# No sé si existe precedencia en español, pero me suena fatal. +# Yo pondría simplemente "prioridad". sv +# Creo que si existe, pero tu sugerencia es mejor. cfuga +#: builtins.c:917 +#, fuzzy +msgid "" +"Evaluate arithmetic expressions.\n" +" \n" +" Evaluate each ARG as an arithmetic expression. Evaluation is done in\n" +" fixed-width integers with no check for overflow, though division by 0\n" +" is trapped and flagged as an error. The following list of operators is\n" +" grouped into levels of equal-precedence operators. The levels are " +"listed\n" +" in order of decreasing precedence.\n" +" \n" +" \tid++, id--\tvariable post-increment, post-decrement\n" +" \t++id, --id\tvariable pre-increment, pre-decrement\n" +" \t-, +\t\tunary minus, plus\n" +" \t!, ~\t\tlogical and bitwise negation\n" +" \t**\t\texponentiation\n" +" \t*, /, %\t\tmultiplication, division, remainder\n" +" \t+, -\t\taddition, subtraction\n" +" \t<<, >>\t\tleft and right bitwise shifts\n" +" \t<=, >=, <, >\tcomparison\n" +" \t==, !=\t\tequality, inequality\n" +" \t&\t\tbitwise AND\n" +" \t^\t\tbitwise XOR\n" +" \t|\t\tbitwise OR\n" +" \t&&\t\tlogical AND\n" +" \t||\t\tlogical OR\n" +" \texpr ? expr : expr\n" +" \t\t\tconditional operator\n" +" \t=, *=, /=, %=,\n" +" \t+=, -=, <<=, >>=,\n" +" \t&=, ^=, |=\tassignment\n" +" \n" +" Shell variables are allowed as operands. The name of the variable\n" +" is replaced by its value (coerced to a fixed-width integer) within\n" +" an expression. The variable need not have its integer attribute\n" +" turned on to be used in an expression.\n" +" \n" +" Operators are evaluated in order of precedence. Sub-expressions in\n" +" parentheses are evaluated first and may override the precedence\n" +" rules above.\n" +" \n" +" Exit Status:\n" +" If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise.." +msgstr "" +"Cada ARG es una expresión aritmética para evaluarse. La evaluación\n" +" se hace con enteros de longitud fija, sin revisar desbordamientos,\n" +" aunque la división por 0 se captura y se marca como un error.\n" +" La siguiente lista de operadores está agrupada en niveles de\n" +" operadores de la misma prioridad. Se muestran los niveles\n" +" en orden de prioridad decreciente.\n" +" \n" +" \tid++, id--\tpost-incremento, post-decremento de variable\n" +" \t++id, --id\tpre-incremento, pre-decremento de variable\n" +" \t-, +\t\tmenos, más unario\n" +" \t!, ~\t\tnegación lógica y basada en bits\n" +" \t**\t\texponenciación\n" +" \t*, /, %\t\tmultiplicación, división, residuo\n" +" \t+, -\t\tadición, sustracción\n" +" \t<<, >>\t\tdesplazamientos de bits izquierdo y derecho\n" +" \t<=, >=, <, >\tcomparación\n" +" \t==, !=\t\tequivalencia, inequivalencia\n" +" \t&\t\tAND de bits\n" +" \t^\t\tXOR de bits\n" +" \t|\t\tOR de bits\n" +" \t&&\t\tAND lógico\n" +" \t||\t\tOR lógico\n" +" \texpr ? expr : expr\n" +" \t\t\toperador condicional\n" +" \t=, *=, /=, %=,\n" +" \t+=, -=, <<=, >>=,\n" +" \t&=, ^=, |=\tasignación\n" +" \n" +" Se permiten las variables de shell como operandos. Se\n" +" reemplaza el nombre de la variable por su valor (coercionado\n" +" a un entero de longitud fija) dentro de una expresión. La\n" +" La variable no necesita tener activado su atributo integer\n" +" para ser usada en una expresión.\n" +" \n" +" Los operadores se evalúan en orden de prioridad. Primero\n" +" se evalúan las sub-expresiones en paréntesis y pueden\n" +" sobrepasar las reglas de prioridad anteriores.\n" +" \n" +" Si el último ARG se evalúa como 0, let devuelve 1; si no se\n" +" devuelve 0." + +#: builtins.c:962 +#, fuzzy +msgid "" +"Read a line from the standard input and split it into fields.\n" +" \n" +" Reads a single line from the standard input, or from file descriptor FD\n" +" if the -u option is supplied. The line is split into fields as with " +"word\n" +" splitting, and the first word is assigned to the first NAME, the second\n" +" word to the second NAME, and so on, with any leftover words assigned to\n" +" the last NAME. Only the characters found in $IFS are recognized as " +"word\n" +" delimiters.\n" +" \n" +" If no NAMEs are supplied, the line read is stored in the REPLY " +"variable.\n" +" \n" +" Options:\n" +" -a array\tassign the words read to sequential indices of the array\n" +" \t\tvariable ARRAY, starting at zero\n" +" -d delim\tcontinue until the first character of DELIM is read, rather\n" +" \t\tthan newline\n" +" -e\t\tuse Readline to obtain the line in an interactive shell\n" +" -i text\tUse TEXT as the initial text for Readline\n" +" -n nchars\treturn after reading NCHARS characters rather than waiting\n" +" \t\tfor a newline\n" +" -p prompt\toutput the string PROMPT without a trailing newline before\n" +" \t\tattempting to read\n" +" -r\t\tdo not allow backslashes to escape any characters\n" +" -s\t\tdo not echo input coming from a terminal\n" +" -t timeout\ttime out and return failure if a complete line of input " +"is\n" +" \t\tnot read withint TIMEOUT seconds. The value of the TMOUT\n" +" \t\tvariable is the default timeout. TIMEOUT may be a\n" +" \t\tfractional number. If TIMEOUT is 0, read returns success only\n" +" \t\tif input is available on the specified file descriptor. The\n" +" \t\texit status is greater than 128 if the timeout is exceeded\n" +" -u fd\t\tread from file descriptor FD instead of the standard input\n" +" \n" +" Exit Status:\n" +" The return code is zero, unless end-of-file is encountered, read times " +"out,\n" +" or an invalid file descriptor is supplied as the argument to -u." +msgstr "" +"Se lee una línea de la entrada estándard, o del descriptor de fichero FD si " +"se\n" +" proporciona la opción -u, y la primera palabra se asigna al primer " +"NAME,\n" +" la segunda palabra al segundo NAME, y así sucesivamente, con las " +"palabras\n" +" restantes asignadas al último NAME. Sólo los caracteres que se " +"encuentran en\n" +" $IFS se reconocen como delimitadores de palabras. Si no se proporciona\n" +" ningún NAME, la línea leída se guarda en la variable REPLY. Si se\n" +" proporciona la opción -r, esto significa entrada `textual', y se\n" +" desactiva el escape de la barra invertida. La opción -d causa que read\n" +" continúe hasta que se lea el primer carácter de DELIM, en lugar de\n" +" línea nueva. Si se proporciona la opción -p, se muestra la cadena\n" +" PROMPT sin un caractér de línea nuevo al final, antes de intentar leer.\n" +" Si se propociona -a, las palabras leídas se asignan a índices\n" +" consecutivos de ARRAY, empezando en cero. Si se proporciona -e y\n" +" el shell es interactivo, se usa readline para leer la línea. Si se\n" +" propociona -n con un argumento NCHARS diferente de cero, read termina\n" +" después de leer NCHARS caracteres. La opción -s causa que no se " +"muestre\n" +" la entrada que provenga de una terminal.\n" +" \n" +" La opción -t causa que read expire y devuelva falla si no se lee una " +"línea\n" +" completa de entrada en TIMEOUT segundos. Si la variable TMOUT está " +"activa,\n" +" su valor es el tiempo de expiración por defecto. El código de " +"devolución es\n" +" cero, a menos que se encuentre un final de línea, read expire, o se\n" +" proporcione un descriptor de fichero inválido como el argumento de -u." + +#: builtins.c:1002 +msgid "" +"Return from a shell function.\n" +" \n" +" Causes a function or sourced script to exit with the return value\n" +" specified by N. If N is omitted, the return status is that of the\n" +" last command executed within the function or script.\n" +" \n" +" Exit Status:\n" +" Returns N, or failure if the shell is not executing a function or script." +msgstr "" + +#: builtins.c:1015 +#, fuzzy +msgid "" +"Set or unset values of shell options and positional parameters.\n" +" \n" +" Change the value of shell attributes and positional parameters, or\n" +" display the names and values of shell variables.\n" +" \n" +" Options:\n" +" -a Mark variables which are modified or created for export.\n" +" -b Notify of job termination immediately.\n" +" -e Exit immediately if a command exits with a non-zero status.\n" +" -f Disable file name generation (globbing).\n" +" -h Remember the location of commands as they are looked up.\n" +" -k All assignment arguments are placed in the environment for a\n" +" command, not just those that precede the command name.\n" +" -m Job control is enabled.\n" +" -n Read commands but do not execute them.\n" +" -o option-name\n" +" Set the variable corresponding to option-name:\n" +" allexport same as -a\n" +" braceexpand same as -B\n" +" emacs use an emacs-style line editing interface\n" +" errexit same as -e\n" +" errtrace same as -E\n" +" functrace same as -T\n" +" hashall same as -h\n" +" histexpand same as -H\n" +" history enable command history\n" +" ignoreeof the shell will not exit upon reading EOF\n" +" interactive-comments\n" +" allow comments to appear in interactive commands\n" +" keyword same as -k\n" +" monitor same as -m\n" +" noclobber same as -C\n" +" noexec same as -n\n" +" noglob same as -f\n" +" nolog currently accepted but ignored\n" +" notify same as -b\n" +" nounset same as -u\n" +" onecmd same as -t\n" +" physical same as -P\n" +" pipefail the return value of a pipeline is the status of\n" +" the last command to exit with a non-zero status,\n" +" or zero if no command exited with a non-zero " +"status\n" +" posix change the behavior of bash where the default\n" +" operation differs from the Posix standard to\n" +" match the standard\n" +" privileged same as -p\n" +" verbose same as -v\n" +" vi use a vi-style line editing interface\n" +" xtrace same as -x\n" +" -p Turned on whenever the real and effective user ids do not match.\n" +" Disables processing of the $ENV file and importing of shell\n" +" functions. Turning this option off causes the effective uid and\n" +" gid to be set to the real uid and gid.\n" +" -t Exit after reading and executing one command.\n" +" -u Treat unset variables as an error when substituting.\n" +" -v Print shell input lines as they are read.\n" +" -x Print commands and their arguments as they are executed.\n" +" -B the shell will perform brace expansion\n" +" -C If set, disallow existing regular files to be overwritten\n" +" by redirection of output.\n" +" -E If set, the ERR trap is inherited by shell functions.\n" +" -H Enable ! style history substitution. This flag is on\n" +" by default when the shell is interactive.\n" +" -P If set, do not follow symbolic links when executing commands\n" +" such as cd which change the current directory.\n" +" -T If set, the DEBUG trap is inherited by shell functions.\n" +" - Assign any remaining arguments to the positional parameters.\n" +" The -x and -v options are turned off.\n" +" \n" +" Using + rather than - causes these flags to be turned off. The\n" +" flags can also be used upon invocation of the shell. The current\n" +" set of flags may be found in $-. The remaining n ARGs are positional\n" +" parameters and are assigned, in order, to $1, $2, .. $n. If no\n" +" ARGs are given, all shell variables are printed.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given." +msgstr "" +" -a Marca las variables que se modifican o crean para exportación.\n" +" -b Notifica el término de trabajos inmediatamente.\n" +" -e Termina inmediatamente si una orden termina con un estado\n" +" diferente a cero.\n" +" -f Desactiva la generación de nombres de ficheros (englobamiento).\n" +" -h Recuerda la ubicación de las órdenes como fueron localizadas.\n" +" -k Todos los argumentos de asignación se colocan en el ambiente " +"para una\n" +" orden, no solo aquellos que preceden al nombre de la orden.\n" +" -m Activa el control de trabajos.\n" +" -n Lee órdenes pero no las ejecuta.\n" +" -o nombre-opcion\n" +" Establece la variable correspondiente a nombre-opcion:\n" +" allexport igual que -a\n" +" braceexpand igual que -B\n" +" emacs usa una interfaz de edición de línea estilo " +"emacs\n" +" errexit igual que -e\n" +" errtrace igual que -E\n" +" functrace igual que -T\n" +" hashall igual que -h\n" +" histexpand igual que -H\n" +" history activa la historia de órdenes\n" +" ignoreeof el shell no terminará después de leer EOF\n" +" interactive-comments\n" +" permite que haya comentarios en órdenes " +"interactivas\n" +" keyword igual que -k\n" +" monitor igual que -m\n" +" noclobber igual que -C\n" +" noexec igual que -n\n" +" noglob igual que -f\n" +" nolog actualmente se acepta pero se ignora\n" +" notify igual que -b\n" +" nounset igual que -u\n" +" onecmd igual que -t\n" +" physical igual que -P\n" +" pipefail el valor de devolución de una tubería es el " +"estado\n" +" del último comando en salir con un estado " +"diferente\n" +" de cero, o cero si ninguna orden termina con " +"un\n" +" estado diferente de cero\n" +" posix cambia el comportamiento de bash donde la " +"operación\n" +" por omisión difiere del estándard 1003.2 para " +"que\n" +" coincida con el estándard\n" +" privileged igual que -p\n" +" verbose igual que -v\n" +" vi usa una interfaz de edición de línea estilo vi\n" +" xtrace igual que -x\n" +" -p Encendido cuando los ids real y efectivo del usuario no " +"coinciden.\n" +" Desactiva el procesamiento del fichero $ENV y la importación de\n" +" funciones de shell. Si se desactiva esta opción causa que el " +"uid y\n" +" el gid efectivos sean iguales al uid y el gid real.\n" +" -t Termina después de leer y ejecutar una orden.\n" +" -u Trata las variables sin definir como un error al ser " +"sustituidas.\n" +" -v Muestra las líneas de entrada del shell mientras se leen.\n" +" -x Muestra las órdenes y sus argumentos mientras se ejecutan.\n" +" -B el shell realizará expansión de llaves.\n" +" -C Si se activa, no permite que los ficheros regulares existentes\n" +" se sobreescriban por redirección de la salida.\n" +" -E Si se activa, las funciones del shell heredan la trampa ERR.\n" +" -H Activa el estilo de sustitución de historia ! . Esta opción " +"está\n" +" activa por defecto cuando el shell es interactivo.\n" +" -P Si se activa, no sigue enlaces simbólicos cuando se ejecutan " +"órdenes\n" +" como cd, el cual cambia el directorio actual.\n" +" -T Si se activa, las funciones del shell heredan la trampa DEBUG.\n" +" - Asigna cualquier argumento restante a los parámetros " +"posicionales.\n" +" Las opciones -x y -v se desactivan.\n" +" \n" +" Si se usa + en lugar de - causa que estas opciones se desactiven. Las\n" +" opciones también se pueden usar en la invocación del shell. El " +"conjunto\n" +" actual de opciones se puede encontrar en $-. Los n ARGs restantes son\n" +" parámetros posicionales que se asignan, en orden, a $1, $2, .. $n. Si " +"no\n" +" se proporciona ningún ARG, se muestran todas las variables del shell." + +#: builtins.c:1097 +msgid "" +"Unset values and attributes of shell variables and functions.\n" +" \n" +" For each NAME, remove the corresponding variable or function.\n" +" \n" +" Options:\n" +" -f\ttreat each NAME as a shell function\n" +" -v\ttreat each NAME as a shell variable\n" +" \n" +" Without options, unset first tries to unset a variable, and if that " +"fails,\n" +" tries to unset a function.\n" +" \n" +" Some variables cannot be unset; also see `readonly'.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or a NAME is read-only." +msgstr "" + +#: builtins.c:1117 +msgid "" +"Set export attribute for shell variables.\n" +" \n" +" Marks each NAME for automatic export to the environment of subsequently\n" +" executed commands. If VALUE is supplied, assign VALUE before " +"exporting.\n" +" \n" +" Options:\n" +" -f\trefer to shell functions\n" +" -n\tremove the export property from each NAME\n" +" -p\tdisplay a list of all exported variables and functions\n" +" \n" +" An argument of `--' disables further option processing.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or NAME is invalid." +msgstr "" + +#: builtins.c:1136 +msgid "" +"Mark shell variables as unchangeable.\n" +" \n" +" Mark each NAME as read-only; the values of these NAMEs may not be\n" +" changed by subsequent assignment. If VALUE is supplied, assign VALUE\n" +" before marking as read-only.\n" +" \n" +" Options:\n" +" -a\trefer to indexed array variables\n" +" -A\trefer to associative array variables\n" +" -f\trefer to shell functions\n" +" -p\tdisplay a list of all readonly variables and functions\n" +" \n" +" An argument of `--' disables further option processing.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or NAME is invalid." +msgstr "" + +#: builtins.c:1157 +msgid "" +"Shift positional parameters.\n" +" \n" +" Rename the positional parameters $N+1,$N+2 ... to $1,$2 ... If N is\n" +" not given, it is assumed to be 1.\n" +" \n" +" Exit Status:\n" +" Returns success unless N is negative or greater than $#." +msgstr "" + +#: builtins.c:1169 builtins.c:1184 +#, fuzzy +msgid "" +"Execute commands from a file in the current shell.\n" +" \n" +" Read and execute commands from FILENAME in the current shell. The\n" +" entries in $PATH are used to find the directory containing FILENAME.\n" +" If any ARGUMENTS are supplied, they become the positional parameters\n" +" when FILENAME is executed.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed in FILENAME; fails if\n" +" FILENAME cannot be read." +msgstr "" +"Lee y ejecuta órdenes de FILENAME y regresa. Se utilizan los nombres\n" +" de rutas en $PATH para encontrar el directorio que contiene a FILENAME.\n" +" Si se proporciona cualquier ARGUMENTS, se convierten en los parámetros\n" +" posicionales cuando se ejecuta FILENAME." + +#: builtins.c:1200 +msgid "" +"Suspend shell execution.\n" +" \n" +" Suspend the execution of this shell until it receives a SIGCONT signal.\n" +" Unless forced, login shells cannot be suspended.\n" +" \n" +" Options:\n" +" -f\tforce the suspend, even if the shell is a login shell\n" +" \n" +" Exit Status:\n" +" Returns success unless job control is not enabled or an error occurs." +msgstr "" + +#: builtins.c:1216 +#, fuzzy +msgid "" +"Evaluate conditional expression.\n" +" \n" +" Exits with a status of 0 (true) or 1 (false) depending on\n" +" the evaluation of EXPR. Expressions may be unary or binary. Unary\n" +" expressions are often used to examine the status of a file. There\n" +" are string operators as well, and numeric comparison operators.\n" +" \n" +" File operators:\n" +" \n" +" -a FILE True if file exists.\n" +" -b FILE True if file is block special.\n" +" -c FILE True if file is character special.\n" +" -d FILE True if file is a directory.\n" +" -e FILE True if file exists.\n" +" -f FILE True if file exists and is a regular file.\n" +" -g FILE True if file is set-group-id.\n" +" -h FILE True if file is a symbolic link.\n" +" -L FILE True if file is a symbolic link.\n" +" -k FILE True if file has its `sticky' bit set.\n" +" -p FILE True if file is a named pipe.\n" +" -r FILE True if file is readable by you.\n" +" -s FILE True if file exists and is not empty.\n" +" -S FILE True if file is a socket.\n" +" -t FD True if FD is opened on a terminal.\n" +" -u FILE True if the file is set-user-id.\n" +" -w FILE True if the file is writable by you.\n" +" -x FILE True if the file is executable by you.\n" +" -O FILE True if the file is effectively owned by you.\n" +" -G FILE True if the file is effectively owned by your group.\n" +" -N FILE True if the file has been modified since it was last " +"read.\n" +" \n" +" FILE1 -nt FILE2 True if file1 is newer than file2 (according to\n" +" modification date).\n" +" \n" +" FILE1 -ot FILE2 True if file1 is older than file2.\n" +" \n" +" FILE1 -ef FILE2 True if file1 is a hard link to file2.\n" +" \n" +" String operators:\n" +" \n" +" -z STRING True if string is empty.\n" +" \n" +" -n STRING\n" +" STRING True if string is not empty.\n" +" \n" +" STRING1 = STRING2\n" +" True if the strings are equal.\n" +" STRING1 != STRING2\n" +" True if the strings are not equal.\n" +" STRING1 < STRING2\n" +" True if STRING1 sorts before STRING2 " +"lexicographically.\n" +" STRING1 > STRING2\n" +" True if STRING1 sorts after STRING2 lexicographically.\n" +" \n" +" Other operators:\n" +" \n" +" -o OPTION True if the shell option OPTION is enabled.\n" +" ! EXPR True if expr is false.\n" +" EXPR1 -a EXPR2 True if both expr1 AND expr2 are true.\n" +" EXPR1 -o EXPR2 True if either expr1 OR expr2 is true.\n" +" \n" +" arg1 OP arg2 Arithmetic tests. OP is one of -eq, -ne,\n" +" -lt, -le, -gt, or -ge.\n" +" \n" +" Arithmetic binary operators return true if ARG1 is equal, not-equal,\n" +" less-than, less-than-or-equal, greater-than, or greater-than-or-equal\n" +" than ARG2.\n" +" \n" +" Exit Status:\n" +" Returns success if EXPR evaluates to true; fails if EXPR evaluates to\n" +" false or an invalid argument is given." +msgstr "" +"Termina con un estado de 0 (verdadero) o 1 (falso) dependiendo de\n" +" la evaluación de EXPR. Las expresiones pueden ser unarias o binarias.\n" +" Las expresiones unarias se usan generalmente para examinar el estado\n" +" de un fichero. Hay también operadores de cadenas, y operadores de\n" +" comparación numérica.\n" +" \n" +" Operadores de fichero:\n" +" \n" +" -a FILE Verdadero si el fichero existe.\n" +" -b FILE Verdadero si el fichero es especial de bloques.\n" +" -c FILE Verdadero si el fichero es especial de caracteres.\n" +" -d FILE Verdadero si el fichero es un directorio.\n" +" -e FILE Verdadero si el fichero existe.\n" +" -f FILE Verdadero si el fichero existe y es un fichero " +"regular.\n" +" -g FILE Verdadero si el fichero tiene activado el set-group-" +"id.\n" +" -h FILE Verdadero si el fichero es un enlace simbólico.\n" +" -L FILE Verdadero si el fichero es un enlace simbólico.\n" +" -k FILE Verdadero si el fichero tiene el bit \"sticky\" " +"activado.\n" +" -p FILE Verdadero si el fichero es una tubería nombrada.\n" +" -r FILE Verdadero si el fichero es legible para usted.\n" +" -s FILE Verdadero si el fichero existe y no está vacío.\n" +" -S FILE Verdadero si el fichero es un \"socket\".\n" +" -t FD Verdadero si el FD está abierto en una terminal.\n" +" -u FILE Verdadero si el fichero tiene activado el set-user-" +"id.\n" +" -w FILE Verdadero si usted puede modificar el fichero.\n" +" -x FILE Verdadero si usted puede ejecutar el fichero.\n" +" -O FILE Verdadero si usted efectivamente posee el fichero.\n" +" -G FILE Verdadero si su grupo efectivamente posee el " +"fichero.\n" +" -N FILE Verdadero si el fichero se modificó desde la última " +"lectura.\n" +" \n" +" FILE1 -nt FILE2 Verdadero si file1 es más reciente que file2\n" +" (de acuerdo a la fecha de modificación).\n" +" \n" +" FILE1 -ot FILE2 Verdadero si file1 es más antiguo que file2.\n" +" \n" +" FILE1 -ef FILE2 Verdadero si file1 es un enlace duro a file2.\n" +" \n" +" Operadores de cadenas:\n" +" \n" +" -z STRING Verdadero si la cadena está vacía.\n" +" \n" +" -n STRING\n" +" STRING Verdadero si la cadena no está vacía.\n" +" \n" +" STRING1 = STRING2\n" +" Verdadero si las cadenas son iguales.\n" +" STRING1 != STRING2\n" +" Verdadero si las cadenas no son iguales.\n" +" STRING1 < STRING2\n" +" Verdadero si STRING1 se ordena antes que STRING2\n" +" lexicográficamente.\n" +" STRING1 > STRING2\n" +" Verdadero si STRING1 se ordena después que STRING2\n" +" lexicográficamente.\n" +" \n" +" Otros operadores:\n" +" \n" +" -o OPTION Verdadero si la opción del shell OPTION está " +"activada.\n" +" ! EXPR Verdadero si expr es falso.\n" +" EXPR1 -a EXPR2 Verdadero si expr1 Y expr2 are son verdaderas.\n" +" EXPR1 -o EXPR2 Verdadero si cualquiera de expr1 O expr2 es " +"verdadera.\n" +" \n" +" arg1 OP arg2 Pruebas aritméticas. OP es uno de -eq, -ne,\n" +" -lt, -le, -gt, or -ge.\n" +" \n" +" Los operadores binarios aritméticos devuelven verdadero si ARG1 es\n" +" igual, no igual, menor, menor o igual, mayor, mayor o igual que ARG2." + +#: builtins.c:1292 +#, fuzzy +msgid "" +"Evaluate conditional expression.\n" +" \n" +" This is a synonym for the \"test\" builtin, but the last argument must\n" +" be a literal `]', to match the opening `['." +msgstr "" +"Este es un sinónimo para la orden interna \"test\", pero el último\n" +" argumento debe ser un `]' literal, que coincida con el `[' inicial." + +#: builtins.c:1301 +msgid "" +"Display process times.\n" +" \n" +" Prints the accumulated user and system times for the shell and all of " +"its\n" +" child processes.\n" +" \n" +" Exit Status:\n" +" Always succeeds." +msgstr "" + +#: builtins.c:1313 +#, fuzzy +msgid "" +"Trap signals and other events.\n" +" \n" +" Defines and activates handlers to be run when the shell receives " +"signals\n" +" or other conditions.\n" +" \n" +" ARG is a command to be read and executed when the shell receives the\n" +" signal(s) SIGNAL_SPEC. If ARG is absent (and a single SIGNAL_SPEC\n" +" is supplied) or `-', each specified signal is reset to its original\n" +" value. If ARG is the null string each SIGNAL_SPEC is ignored by the\n" +" shell and by the commands it invokes.\n" +" \n" +" If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell. " +"If\n" +" a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command.\n" +" \n" +" If no arguments are supplied, trap prints the list of commands " +"associated\n" +" with each signal.\n" +" \n" +" Options:\n" +" -l\tprint a list of signal names and their corresponding numbers\n" +" -p\tdisplay the trap commands associated with each SIGNAL_SPEC\n" +" \n" +" Each SIGNAL_SPEC is either a signal name in or a signal " +"number.\n" +" Signal names are case insensitive and the SIG prefix is optional. A\n" +" signal may be sent to the shell with \"kill -signal $$\".\n" +" \n" +" Exit Status:\n" +" Returns success unless a SIGSPEC is invalid or an invalid option is " +"given." +msgstr "" +"La orden ARG se lee y ejecuta cuando el shell recibe la(s) señal(es)\n" +" SIGNAL_SPEC. Si ARG no está presente (y sólo se proporciona una sola\n" +" SIGNAL_SPEC) o se proporciona `-', cada señal especificada se\n" +" reestablece a su valor original. Si ARG es la cadena nula, cada\n" +" SIGNAL_SPEC es ignorada por el shell y por las órdenes que invoque.\n" +" Si una SIGNAL_SPEC es EXIT (0) se ejecuta la orden ARG al salir del\n" +" shell. Si una SIGNAL_SPEC es DEBUG, se ejecuta ARG después de cada\n" +" orden simple. Si se especifica la opción `-p' entonces se muestran\n" +" las órdenes de trampa asociadas con cada SIGNAL_SPEC. Si no se\n" +" proporcionan argumentos o si sólo se especifica `-p', trap muestra\n" +" la lista de órdenes asociadas a cada señal. Cada SIGNAL_SPEC es un\n" +" nombre de señal en o un número de señal. Los nombres de\n" +" señal no son sensibles a mayúsculas y minúsculas y el prefijo SIG\n" +" es opcional. `trap -l' muestra una lista de nombres de señal y sus\n" +" números correspondientes. Note que se puede enviar una señal al shell " +"con\n" +" \"kill -signal $$\"." + +#: builtins.c:1345 +msgid "" +"Display information about command type.\n" +" \n" +" For each NAME, indicate how it would be interpreted if used as a\n" +" command name.\n" +" \n" +" Options:\n" +" -a\tdisplay all locations containing an executable named NAME;\n" +" \tincludes aliases, builtins, and functions, if and only if\n" +" \tthe `-p' option is not also used\n" +" -f\tsuppress shell function lookup\n" +" -P\tforce a PATH search for each NAME, even if it is an alias,\n" +" \tbuiltin, or function, and returns the name of the disk file\n" +" \tthat would be executed\n" +" -p\treturns either the name of the disk file that would be executed,\n" +" \tor nothing if `type -t NAME' would not return `file'.\n" +" -t\toutput a single word which is one of `alias', `keyword',\n" +" \t`function', `builtin', `file' or `', if NAME is an alias, shell\n" +" \treserved word, shell function, shell builtin, disk file, or not\n" +" \tfound, respectively\n" +" \n" +" Arguments:\n" +" NAME\tCommand name to be interpreted.\n" +" \n" +" Exit Status:\n" +" Returns success if all of the NAMEs are found; fails if any are not " +"found." +msgstr "" + +#: builtins.c:1376 +#, fuzzy +msgid "" +"Modify shell resource limits.\n" +" \n" +" Provides control over the resources available to the shell and " +"processes\n" +" it creates, on systems that allow such control.\n" +" \n" +" Options:\n" +" -S\tuse the `soft' resource limit\n" +" -H\tuse the `hard' resource limit\n" +" -a\tall current limits are reported\n" +" -b\tthe socket buffer size\n" +" -c\tthe maximum size of core files created\n" +" -d\tthe maximum size of a process's data segment\n" +" -e\tthe maximum scheduling priority (`nice')\n" +" -f\tthe maximum size of files written by the shell and its children\n" +" -i\tthe maximum number of pending signals\n" +" -l\tthe maximum size a process may lock into memory\n" +" -m\tthe maximum resident set size\n" +" -n\tthe maximum number of open file descriptors\n" +" -p\tthe pipe buffer size\n" +" -q\tthe maximum number of bytes in POSIX message queues\n" +" -r\tthe maximum real-time scheduling priority\n" +" -s\tthe maximum stack size\n" +" -t\tthe maximum amount of cpu time in seconds\n" +" -u\tthe maximum number of user processes\n" +" -v\tthe size of virtual memory\n" +" -x\tthe maximum number of file locks\n" +" \n" +" If LIMIT is given, it is the new value of the specified resource; the\n" +" special LIMIT values `soft', `hard', and `unlimited' stand for the\n" +" current soft limit, the current hard limit, and no limit, respectively.\n" +" Otherwise, the current value of the specified resource is printed. If\n" +" no option is given, then -f is assumed.\n" +" \n" +" Values are in 1024-byte increments, except for -t, which is in seconds,\n" +" -p, which is in increments of 512 bytes, and -u, which is an unscaled\n" +" number of processes.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" +"Ulimit provee control sobre los recursos disponibles para los\n" +" procesos iniciados por el shell, en sistemas que permiten dicho\n" +" control. Si se proporciona una opción, se interpreta así:\n" +" \n" +" -S\tusa el límite de recurso `soft'\n" +" -H\tusa el límite de recurso `hard'\n" +" -a\tse muestran todos los límites actuales\n" +" -c\tel tamaño máximo de los ficheros `core' creados\n" +" -d\tel tamaño máximo del segmento de datos de un proceso\n" +" -e\tla prioridad máxima de calendarización (`nice')\n" +" -f\tel tamaño máximo de los ficheros escritos por el shell y\n" +" \tsus hijos\n" +" -i\tel número máximo de señales pendientes\n" +" -l\tel tamaño máximo que un proceso puede bloquear en memoria\n" +" -m\tel tamaño máximo para las variables residentes\n" +" -n\tel número máximo de descriptores de fichero abiertos\n" +" -p\tel tamaño de almacenamiento intermedio para tuberías\n" +" -q\tel tamaño máximo de bytes en las colas de mensajes POSIX\n" +" -r\tla prioridad máxima de calendarización en tiempo real\n" +" -s\tel tamaño máximo de pila\n" +" -t\tla cantidad máxima de tiempo de cpu en segundos\n" +" -u\tel número máximo de procesos de usuario\n" +" -v\tel tamaño de la memoria virtual\n" +" -x\tel número máximo de bloqueos de ficheros\n" +" \n" +" Si se establece LIMIT, éste es el nuevo valor del recurso especificado;\n" +" los valores especiales de de LIMIT `soft', `hard' y `unlimited'\n" +" corresponden al límite suave actual, el límite duro actual, y\n" +" sin límite, respectivamente. De otra forma, se muestra el valor actual\n" +" de los recursos especificados. Si no se proporciona una opción, se\n" +" asume -f. Los valores son en incrementos de 1024 bytes, excepto para\n" +" -t, el cual es en segundos, -p, el cual es en incrementos de 512 bytes,\n" +" y -u, el cual es un número de procesos sin escala." + +#: builtins.c:1421 +msgid "" +"Display or set file mode mask.\n" +" \n" +" Sets the user file-creation mask to MODE. If MODE is omitted, prints\n" +" the current value of the mask.\n" +" \n" +" If MODE begins with a digit, it is interpreted as an octal number;\n" +" otherwise it is a symbolic mode string like that accepted by chmod(1).\n" +" \n" +" Options:\n" +" -p\tif MODE is omitted, output in a form that may be reused as input\n" +" -S\tmakes the output symbolic; otherwise an octal number is output\n" +" \n" +" Exit Status:\n" +" Returns success unless MODE is invalid or an invalid option is given." +msgstr "" + +#: builtins.c:1441 +msgid "" +"Wait for job completion and return exit status.\n" +" \n" +" Waits for the process identified by ID, which may be a process ID or a\n" +" job specification, and reports its termination status. If ID is not\n" +" given, waits for all currently active child processes, and the return\n" +" status is zero. If ID is a a job specification, waits for all " +"processes\n" +" in the job's pipeline.\n" +" \n" +" Exit Status:\n" +" Returns the status of ID; fails if ID is invalid or an invalid option " +"is\n" +" given." +msgstr "" + +#: builtins.c:1459 +#, fuzzy +msgid "" +"Wait for process completion and return exit status.\n" +" \n" +" Waits for the specified process and reports its termination status. If\n" +" PID is not given, all currently active child processes are waited for,\n" +" and the return code is zero. PID must be a process ID.\n" +" \n" +" Exit Status:\n" +" Returns the status of ID; fails if ID is invalid or an invalid option " +"is\n" +" given." +msgstr "" +"Espera al proceso especificado y reporta su estado final. Si no se\n" +" proporciona N, espera a todos los procesos hijo activos actualmente,\n" +" y el código de devolución es cero. N puede ser un ID de proceso o\n" +" una especificación de trabajo; si se proporciona una especificación\n" +" de trabajo, se espera a todos los procesos en la línea de ejecución\n" +" del trabajo." + +#: builtins.c:1474 +#, fuzzy +msgid "" +"Execute commands for each member in a list.\n" +" \n" +" The `for' loop executes a sequence of commands for each member in a\n" +" list of items. If `in WORDS ...;' is not present, then `in \"$@\"' is\n" +" assumed. For each element in WORDS, NAME is set to that element, and\n" +" the COMMANDS are executed.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"El ciclo `for' ejecuta una secuencia de órdenes para cada miembro\n" +" lista de elementos. Si `in WORDS ...;' no está presente, entonces\n" +" se asume `in \"$@\"'. Para cada elemento en WORDS, se define NAME\n" +" como ese elemento, y se ejecutan COMMANDS." + +#: builtins.c:1488 +#, fuzzy +msgid "" +"Arithmetic for loop.\n" +" \n" +" Equivalent to\n" +" \t(( EXP1 ))\n" +" \twhile (( EXP2 )); do\n" +" \t\tCOMMANDS\n" +" \t\t(( EXP3 ))\n" +" \tdone\n" +" EXP1, EXP2, and EXP3 are arithmetic expressions. If any expression is\n" +" omitted, it behaves as if it evaluates to 1.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"Equivalente a\n" +" \t(( EXP1 ))\n" +" \twhile (( EXP2 )); do\n" +" \t\tCOMMANDS\n" +" \t\t(( EXP3 ))\n" +" \tdone\n" +" EXP1, EXP2, y EXP3 son expresiones aritméticas. Si se omite\n" +" cualquier expresión, se comporta como si se evaluara a 1." + +#: builtins.c:1506 +#, fuzzy +msgid "" +"Select words from a list and execute commands.\n" +" \n" +" The WORDS are expanded, generating a list of words. The\n" +" set of expanded words is printed on the standard error, each\n" +" preceded by a number. If `in WORDS' is not present, `in \"$@\"'\n" +" is assumed. The PS3 prompt is then displayed and a line read\n" +" from the standard input. If the line consists of the number\n" +" corresponding to one of the displayed words, then NAME is set\n" +" to that word. If the line is empty, WORDS and the prompt are\n" +" redisplayed. If EOF is read, the command completes. Any other\n" +" value read causes NAME to be set to null. The line read is saved\n" +" in the variable REPLY. COMMANDS are executed after each selection\n" +" until a break command is executed.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"Se expanden WORDS, generando una lista de palabras. El\n" +" conjunto de palabras expandidas se muestra en la salida\n" +" de error estándard, cada una precedida por un número. Si\n" +" `in WORDS' no está presente, se asume `in \"$@\"'. Entonces\n" +" se muestra el prompt PS3 y se lee una línea de la entrada\n" +" estándard. Si la línea consiste en el número correspondiente\n" +" a una de las palabras mostradas, entonces se define NAME como\n" +" esa palabra. Si la linea está vacía, WORDS y el prompt se\n" +" muestran de nuevo. Si se lee EOF, se completa la orden.\n" +" Cualquier otro valor leído causa que NAME se defina como null.\n" +" La línea leída se guarda en la variable REPLY. Se ejecutan\n" +" COMMANDS después de cada selección hasta que se ejecuta\n" +" una orden break." + +#: builtins.c:1527 +#, fuzzy +msgid "" +"Report time consumed by pipeline's execution.\n" +" \n" +" Execute PIPELINE and print a summary of the real time, user CPU time,\n" +" and system CPU time spent executing PIPELINE when it terminates.\n" +" \n" +" Options:\n" +" -p\tprint the timing summary in the portable Posix format\n" +" \n" +" The value of the TIMEFORMAT variable is used as the output format.\n" +" \n" +" Exit Status:\n" +" The return status is the return status of PIPELINE." +msgstr "" +"Ejecuta PIPELINE y muestra un resumen del tiempo real, el tiempo de\n" +" CPU del usuario, y el tiempo de CPU del sistema utilizado por\n" +" la ejecución de PIPELINE cuando termina. El estado de devolución\n" +" es el estado de devolución de PIPELINE. La opción `-p' muestra\n" +" el resumen de tiempos en un formato ligeramente diferente, usando\n" +" el valor de la variable TIMEFORMAT como el formato de salida." + +#: builtins.c:1544 +#, fuzzy +msgid "" +"Execute commands based on pattern matching.\n" +" \n" +" Selectively execute COMMANDS based upon WORD matching PATTERN. The\n" +" `|' is used to separate multiple patterns.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"Ejecuta ÓRDENES selectivamente basado en coincidencias de la PALABRA con\n" +" el PATRÓN. Se utiliza `|' para separar patrones múltiples." + +#: builtins.c:1556 +#, fuzzy +msgid "" +"Execute commands based on conditional.\n" +" \n" +" The `if COMMANDS' list is executed. If its exit status is zero, then " +"the\n" +" `then COMMANDS' list is executed. Otherwise, each `elif COMMANDS' list " +"is\n" +" executed in turn, and if its exit status is zero, the corresponding\n" +" `then COMMANDS' list is executed and the if command completes. " +"Otherwise,\n" +" the `else COMMANDS' list is executed, if present. The exit status of " +"the\n" +" entire construct is the exit status of the last command executed, or " +"zero\n" +" if no condition tested true.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"Se ejecuta la lista `if COMMANDS'. Si su estado de salida es cero,\n" +" entonces se ejecuta la lista `then COMMANDS`. De otra forma, cada " +"lista\n" +" `elif COMMANDS' se ejecuta en su lugar, y si su estado de salida es " +"cero,\n" +" se ejecuta la lista correspondiente `then COMMANDS' y se completa la\n" +" orden if. De otra forma, se ejecuta la lista `else COMMANDS', si está\n" +" presente. El estado de salida de toda la construcción es el estado de\n" +" salida de la última orden ejecutada, o cero si ninguna condición " +"resultó\n" +" verdadera." + +#: builtins.c:1573 +#, fuzzy +msgid "" +"Execute commands as long as a test succeeds.\n" +" \n" +" Expand and execute COMMANDS as long as the final command in the\n" +" `while' COMMANDS has an exit status of zero.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"Expande y ejecuta ÓRDENES mientras la orden final en las ÓRDENES\n" +" `while' tenga un estado de salida de cero." + +#: builtins.c:1585 +#, fuzzy +msgid "" +"Execute commands as long as a test does not succeed.\n" +" \n" +" Expand and execute COMMANDS as long as the final command in the\n" +" `until' COMMANDS has an exit status which is not zero.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"Expande y ejecuta ÓRDENES mientras la orden final en las ÓRDENES\n" +" `until' tengan un estado de salida que no sea cero." + +#: builtins.c:1597 +msgid "" +"Define shell function.\n" +" \n" +" Create a shell function named NAME. When invoked as a simple command,\n" +" NAME runs COMMANDs in the calling shell's context. When NAME is " +"invoked,\n" +" the arguments are passed to the function as $1...$n, and the function's\n" +" name is in $FUNCNAME.\n" +" \n" +" Exit Status:\n" +" Returns success unless NAME is readonly." +msgstr "" + +#: builtins.c:1611 +#, fuzzy +msgid "" +"Group commands as a unit.\n" +" \n" +" Run a set of commands in a group. This is one way to redirect an\n" +" entire set of commands.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"Corre un conjunto de órdenes en un grupo. Esta es una forma de redirigir\n" +" un conjunto completo de órdenes." + +#: builtins.c:1623 +#, fuzzy +msgid "" +"Resume job in foreground.\n" +" \n" +" Equivalent to the JOB_SPEC argument to the `fg' command. Resume a\n" +" stopped or background job. JOB_SPEC can specify either a job name\n" +" or a job number. Following JOB_SPEC with a `&' places the job in\n" +" the background, as if the job specification had been supplied as an\n" +" argument to `bg'.\n" +" \n" +" Exit Status:\n" +" Returns the status of the resumed job." +msgstr "" +"Equivalente al argumento JOB_SPEC de la orden `fg'. Reinicia un\n" +" trabajo detenido o en segundo plano. JOB_SPEC puede especificar\n" +" un nombre de trabajo o un número de trabajo. Un `&' a continuación\n" +" de JOB_SPEC colocal al trabajo en segundo plano, como si la\n" +" especificación del trabajo se hubiera proporcionado como\n" +" un argumento de `bg'." + +#: builtins.c:1638 +#, fuzzy +msgid "" +"Evaluate arithmetic expression.\n" +" \n" +" The EXPRESSION is evaluated according to the rules for arithmetic\n" +" evaluation. Equivalent to \"let EXPRESSION\".\n" +" \n" +" Exit Status:\n" +" Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise." +msgstr "" +"Se evalua EXPRESSION de acuerdo a las reglas de evaluación\n" +" aritmética. Equivalente a \"let EXPRESSION\"." + +#: builtins.c:1650 +#, fuzzy +msgid "" +"Execute conditional command.\n" +" \n" +" Returns a status of 0 or 1 depending on the evaluation of the " +"conditional\n" +" expression EXPRESSION. Expressions are composed of the same primaries " +"used\n" +" by the `test' builtin, and may be combined using the following " +"operators:\n" +" \n" +" ( EXPRESSION )\tReturns the value of EXPRESSION\n" +" ! EXPRESSION\t\tTrue if EXPRESSION is false; else false\n" +" EXPR1 && EXPR2\tTrue if both EXPR1 and EXPR2 are true; else false\n" +" EXPR1 || EXPR2\tTrue if either EXPR1 or EXPR2 is true; else false\n" +" \n" +" When the `==' and `!=' operators are used, the string to the right of\n" +" the operator is used as a pattern and pattern matching is performed.\n" +" When the `=~' operator is used, the string to the right of the operator\n" +" is matched as a regular expression.\n" +" \n" +" The && and || operators do not evaluate EXPR2 if EXPR1 is sufficient to\n" +" determine the expression's value.\n" +" \n" +" Exit Status:\n" +" 0 or 1 depending on value of EXPRESSION." +msgstr "" +"Devuelve un estado de 0 ó 1 dependiendo de la evaluación de la expresión\n" +" condicional EXPRESSION. Las expresiones se componen de los mismos\n" +" elementos primarios usados por la orden interna `test', y se pueden\n" +" combinar usando los siguientes operadores\n" +" \n" +" \t( EXPRESSION )\tDevuelve el valor de EXPRESSION\n" +" \t! EXPRESSION\tVerdadero si EXPRESSION es falso; de otra forma es " +"falso\n" +" \tEXPR1 && EXPR2\tVerdadero si EXPR1 y EXPR2 son verdaderos; de\n" +" \t \totra forma es falso\n" +" \tEXPR1 || EXPR2\tVerdadero si EXPR1 o EXPR2 es verdadero; de\n" +" \t \totra forma es falso\n" +" \n" +" Cuando se usan los operadores `==' y `!=', se usa la cadena a la\n" +" derecha del operador como un patrón y se realiza una coincidencia de\n" +" patrón. Los operadores && y || no evalúan EXPR2 si EXPR1 es\n" +" suficiente para determinar el valor de una expresión." + +#: builtins.c:1676 +#, fuzzy +msgid "" +"Common shell variable names and usage.\n" +" \n" +" BASH_VERSION\tVersion information for this Bash.\n" +" CDPATH\tA colon-separated list of directories to search\n" +" \t\tfor directories given as arguments to `cd'.\n" +" GLOBIGNORE\tA colon-separated list of patterns describing filenames to\n" +" \t\tbe ignored by pathname expansion.\n" +" HISTFILE\tThe name of the file where your command history is stored.\n" +" HISTFILESIZE\tThe maximum number of lines this file can contain.\n" +" HISTSIZE\tThe maximum number of history lines that a running\n" +" \t\tshell can access.\n" +" HOME\tThe complete pathname to your login directory.\n" +" HOSTNAME\tThe name of the current host.\n" +" HOSTTYPE\tThe type of CPU this version of Bash is running under.\n" +" IGNOREEOF\tControls the action of the shell on receipt of an EOF\n" +" \t\tcharacter as the sole input. If set, then the value\n" +" \t\tof it is the number of EOF characters that can be seen\n" +" \t\tin a row on an empty line before the shell will exit\n" +" \t\t(default 10). When unset, EOF signifies the end of input.\n" +" MACHTYPE\tA string describing the current system Bash is running on.\n" +" MAILCHECK\tHow often, in seconds, Bash checks for new mail.\n" +" MAILPATH\tA colon-separated list of filenames which Bash checks\n" +" \t\tfor new mail.\n" +" OSTYPE\tThe version of Unix this version of Bash is running on.\n" +" PATH\tA colon-separated list of directories to search when\n" +" \t\tlooking for commands.\n" +" PROMPT_COMMAND\tA command to be executed before the printing of each\n" +" \t\tprimary prompt.\n" +" PS1\t\tThe primary prompt string.\n" +" PS2\t\tThe secondary prompt string.\n" +" PWD\t\tThe full pathname of the current directory.\n" +" SHELLOPTS\tA colon-separated list of enabled shell options.\n" +" TERM\tThe name of the current terminal type.\n" +" TIMEFORMAT\tThe output format for timing statistics displayed by the\n" +" \t\t`time' reserved word.\n" +" auto_resume\tNon-null means a command word appearing on a line by\n" +" \t\titself is first looked for in the list of currently\n" +" \t\tstopped jobs. If found there, that job is foregrounded.\n" +" \t\tA value of `exact' means that the command word must\n" +" \t\texactly match a command in the list of stopped jobs. A\n" +" \t\tvalue of `substring' means that the command word must\n" +" \t\tmatch a substring of the job. Any other value means that\n" +" \t\tthe command must be a prefix of a stopped job.\n" +" histchars\tCharacters controlling history expansion and quick\n" +" \t\tsubstitution. The first character is the history\n" +" \t\tsubstitution character, usually `!'. The second is\n" +" \t\tthe `quick substitution' character, usually `^'. The\n" +" \t\tthird is the `history comment' character, usually `#'.\n" +" HISTIGNORE\tA colon-separated list of patterns used to decide which\n" +" \t\tcommands should be saved on the history list.\n" +msgstr "" +"BASH_VERSION\tInformación de versión para este Bash.\n" +" CDPATH\tUna lista de directorios separada por dos puntos\n" +" \t\tpara buscar directorios dados como argumentos para `cd'.\n" +" GLOBIGNORE\tUna lista de patrones separada por dos puntos\n" +" \t\tque describe nombres de fichero a ignorar por la expansión\n" +" \t\tde rutas de nombre.\n" +" HISTFILE\tEl nombre del fichero donde se almacena su historia\n" +" \t\tde órdenes.\n" +" HISTFILESIZE\tEl número máximo de líneas que puede contener\n" +" \t\teste fichero.\n" +" HISTSIZE\tEl número máximo de líneas de líneas de historia que\n" +" \t\tun shell en ejecución puede acceder.\n" +" HOME\tLa ruta completa a su directorio de entrada.\n" +" HOSTNAME\tEl nombre del anfitrión actual.\n" +" HOSTTYPE\tEl tipo de CPU bajo el cual se ejecuta esta versión de\n" +" \t\tBash.\n" +" IGNOREEOF\tControla la acción del shell al recibir un carácter\n" +" \t\tEOF como la única entrada. Si está definida, entonces su\n" +" \t\tvalor es el número de caracteres EOF que se deben leer de\n" +" \t\tforma consecutiva en una línea vacía antes de que el shell\n" +" \t\ttermine (por defecto 10). Cuando no está definida, EOF\n" +" \t\tsignifica el fin de la entrada.\n" +" MACHTYPE\tUna cadena que describe el sistema actual donde se\n" +" \t\tejecuta Bash.\n" +" MAILCHECK\tLa frecuencia, en segundos, que Bash busca correo nuevo.\n" +" MAILPATH\tUna lista de nombres de ficheros separada por dos puntos\n" +" \t\ten la cual Bash busca correo nuevo.\n" +" OSTYPE\tla versión de Unix en la que se ejecuta esta versión\n" +" \t\tde Bash.\n" +" PATH\tUna lista de directorios separada por dos puntos en la que\n" +" \t\tse buscan órdenes.\n" +" PROMPT_COMMAND\tUna orden a ejecutar antes de mostrar cada prompt\n" +" \t\tprimario.\n" +" PS1\t\tLa cadena primaria de prompt.\n" +" PS2\t\tLa cadena secundaria de prompt.\n" +" PWD\t\tLa ruta completa del directorio actual.\n" +" SHELLOPTS\tUna lista separada por dos puntos de las opciones\n" +" \t\tde shell activadas.\n" +" TERM\tEl nombre del tipo actual de terminal.\n" +" TIMEFORMAT\tEl formato de salida para las estadísticas de tiempo\n" +" \t\tmostradas por la palabra reservada `time'.\n" +" auto_resume\tSi no es nulo significa que una palabra de orden que\n" +" \t\taparece en una línea por sí sola se busca primero en la lista\n" +" \t\tactual de trabajos detenidos. Si se encuentra ahí, ese\n" +" \t\ttrabajo se coloca en primer plano. Un valor `exact' significa\n" +" \t\tque la palabra de orden debe coincidir exactamente con una\n" +" \t\torden en la lista de trabajos detenidos. Un valor `substring'\n" +" \t\tsignifica que la palabra de orden debe coincidir con una\n" +" \t\tsubcadena del trabajo. Cualquier otro valor significa que\n" +" \t\tla orden debe ser un prefijo de un trabajo detenido.\n" +" histchars\tLos caracteres que controlan la expansión de historia\n" +" \t\ty la sustitución rápida. El primer carácter es el\n" +" \t\tcarácter de sustitución de historia, generalmente `!'. El\n" +" \t\tsegundo es el carácter de `sustitución rápida', generalmente\n" +" \t\t`^'. El tercero es el carácter `comentario de historia',\n" +" \t\tgeneralmente `#'.\n" +" HISTIGNORE\tUna lista separada por dos puntos de patrones usados\n" +" \t\tpara decidir cuáles órdenes se deben guardar en la lista de\n" +" \t\thistoria.\n" + +#: builtins.c:1733 +#, fuzzy +msgid "" +"Add directories to stack.\n" +" \n" +" Adds a directory to the top of the directory stack, or rotates\n" +" the stack, making the new top of the stack the current working\n" +" directory. With no arguments, exchanges the top two directories.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when adding\n" +" \tdirectories to the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the left of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" -N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the right of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" dir\tAdds DIR to the directory stack at the top, making it the\n" +" \tnew current working directory.\n" +" \n" +" The `dirs' builtin displays the directory stack.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid argument is supplied or the directory\n" +" change fails." +msgstr "" +"Agrega un directorio al tope de la pila de directorios, o rota\n" +" la pila, haciendo que el nuevo tope de la pila sea el\n" +" directorio de trabajo actual. Sin argumentos, intercambia\n" +" los dos directorios del tope.\n" +" \n" +" +N\tRota la pila para que el N-ésimo directorio (contando\n" +" \tde la izquierda de la lista mostrada por `dirs',\n" +" \tcomenzando desde cero) esté en el tope.\n" +" -N\tRota la pila para que el N-ésimo directorio (contando\n" +" \tde la derecha de la lista mostrada por `dirs',\n" +" \tcomenzando desde cero) esté en el tope.\n" +" \n" +" -n\tsuprime el cambio normal de directorio cuando se agregan\n" +" \tdirectorios a la pila, así sólo se manipula la pila.\n" +" \n" +" dir\tagrega DIR a la pila de directorios en el tope,\n" +" \thaciéndolo el nuevo directorio de trabajo actual.\n" +" \n" +" Puede ver la pila de directorios con la orden `dirs'." + +#: builtins.c:1767 +#, fuzzy +msgid "" +"Remove directories from stack.\n" +" \n" +" Removes entries from the directory stack. With no arguments, removes\n" +" the top directory from the stack, and changes to the new top directory.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when removing\n" +" \tdirectories from the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRemoves the Nth entry counting from the left of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd +0'\n" +" \tremoves the first directory, `popd +1' the second.\n" +" \n" +" -N\tRemoves the Nth entry counting from the right of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd -0'\n" +" \tremoves the last directory, `popd -1' the next to last.\n" +" \n" +" The `dirs' builtin displays the directory stack.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid argument is supplied or the directory\n" +" change fails." +msgstr "" +"Borra entradas de la pila de directorios. Sin argumentos,\n" +" borra el directorio del tope de la pila, y cambia al\n" +" nuevo directorio tope.\n" +" \n" +" +N\tBorra la N-ésima entrada contando de la izquierda de\n" +" \tla lista mostrada por `dirs', comenzando desde cero.\n" +" \tPor ejemplo: `popd +0' borra el primer directorio, `popd +1'\n" +" \tel segundo.\n" +" \n" +" -N\tBorra la N-ésima entrada contando de la derecha de\n" +" \tla lista mostrada por `dirs', comenzando desde cero.\n" +" \tPor ejemplo: `popd -0' borra el último directorio, `popd -1'\n" +" \tel penúltimo.\n" +" \n" +" -n\tsuprime el cambio normal de directorio cuando se borran\n" +" \tdirectorios de la pila, así sólo se manipula la pila.\n" +" \n" +" Puede ver la pila de directorios con la orden `dirs'." + +#: builtins.c:1797 +#, fuzzy +msgid "" +"Display directory stack.\n" +" \n" +" Display the list of currently remembered directories. Directories\n" +" find their way onto the list with the `pushd' command; you can get\n" +" back up through the list with the `popd' command.\n" +" \n" +" Options:\n" +" -c\tclear the directory stack by deleting all of the elements\n" +" -l\tdo not print tilde-prefixed versions of directories relative\n" +" \tto your home directory\n" +" -p\tprint the directory stack with one entry per line\n" +" -v\tprint the directory stack with one entry per line prefixed\n" +" \twith its position in the stack\n" +" \n" +" Arguments:\n" +" +N\tDisplays the Nth entry counting from the left of the list shown " +"by\n" +" \tdirs when invoked without options, starting with zero.\n" +" \n" +" -N\tDisplays the Nth entry counting from the right of the list shown " +"by\n" +" \tdirs when invoked without options, starting with zero.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" +"Muestra la lista de directorios actualmente grabados. Los directorios\n" +" se guardan en la lista con la orden `pushd'; pueden ir saliendo de\n" +" la lista con la orden `popd'.\n" +" \n" +" La opción -l especifica que `dirs' no debe mostrar versiones\n" +" abreviadas de los directorios que son relativos a su directorio\n" +" inicial. Esto significa que `~/bin' se mostrará como `/home/bfox/bin'.\n" +" La opción -v causa que `dirs' muestre la pila de directorios con\n" +" una entrada por línea, anteponiendo la posición en la pila al nombre\n" +" del directorio. La opción -p hace lo mismo, pero no antepone la\n" +" posición en la pila. La opción -c limpia la pila de directorios\n" +" borrando todos sus elementos.\n" +" \n" +" +N\tmuestra la N-ésima entrada contando desde la izquierda de la lista\n" +" mostrada por dirs cuando se invoca sin opciones, empezando de cero.\n" +" \n" +" -N\tmuestra la N-ésima entrada contando desde la derecha de la lista\n" +" mostrada por dirs cuando se invoca sin opciones, empezando de cero." + +#: builtins.c:1826 +msgid "" +"Set and unset shell options.\n" +" \n" +" Change the setting of each shell option OPTNAME. Without any option\n" +" arguments, list all shell options with an indication of whether or not " +"each\n" +" is set.\n" +" \n" +" Options:\n" +" -o\trestrict OPTNAMEs to those defined for use with `set -o'\n" +" -p\tprint each shell option with an indication of its status\n" +" -q\tsuppress output\n" +" -s\tenable (set) each OPTNAME\n" +" -u\tdisable (unset) each OPTNAME\n" +" \n" +" Exit Status:\n" +" Returns success if OPTNAME is enabled; fails if an invalid option is\n" +" given or OPTNAME is disabled." +msgstr "" + +#: builtins.c:1847 +#, fuzzy +msgid "" +"Formats and prints ARGUMENTS under control of the FORMAT.\n" +" \n" +" Options:\n" +" -v var\tassign the output to shell variable VAR rather than\n" +" \t\tdisplay it on the standard output\n" +" \n" +" FORMAT is a character string which contains three types of objects: " +"plain\n" +" characters, which are simply copied to standard output; character " +"escape\n" +" sequences, which are converted and copied to the standard output; and\n" +" format specifications, each of which causes printing of the next " +"successive\n" +" argument.\n" +" \n" +" In addition to the standard format specifications described in printf" +"(1)\n" +" and printf(3), printf interprets:\n" +" \n" +" %b\texpand backslash escape sequences in the corresponding argument\n" +" %q\tquote the argument in a way that can be reused as shell input\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or a write or " +"assignment\n" +" error occurs." +msgstr "" +"printf da formato y muestra ARGUMENTS bajo el control de FORMAT. FORMAT\n" +" es una cadena de caracteres la cual contiene tres tipos de objetos:\n" +" caracteres normales, los cuales simplemente se copian a la salida\n" +" estándard, secuencias de escape de caracteres que se convierten y\n" +" se copian a la salida estándard, y especificaciones de formato,\n" +" cada una de las cuales causa la muestra del siguiente argumento\n" +" consecutivo. Además de los formatos printf(1) estándard, %b significa\n" +" expandir las secuencias de escape de barra invertida en su argumento\n" +" correspondiente, y %q significa citar el argumento de tal forma que\n" +" se pueda reusar como entrada del shell. Si se proporciona la opción\n" +" -v, la salida se coloca en el valor de la variable de shell VAR\n" +" en lugar de enviarla a la salida estándard." + +#: builtins.c:1874 +msgid "" +"Specify how arguments are to be completed by Readline.\n" +" \n" +" For each NAME, specify how arguments are to be completed. If no " +"options\n" +" are supplied, existing completion specifications are printed in a way " +"that\n" +" allows them to be reused as input.\n" +" \n" +" Options:\n" +" -p\tprint existing completion specifications in a reusable format\n" +" -r\tremove a completion specification for each NAME, or, if no\n" +" \tNAMEs are supplied, all completion specifications\n" +" \n" +" When completion is attempted, the actions are applied in the order the\n" +" uppercase-letter options are listed above.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" + +#: builtins.c:1897 +#, fuzzy +msgid "" +"Display possible completions depending on the options.\n" +" \n" +" Intended to be used from within a shell function generating possible\n" +" completions. If the optional WORD argument is supplied, matches " +"against\n" +" WORD are generated.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" +"Muestra los posibles complementos dependiendo de las opciones. Sirve\n" +" para usarse desde una función de shell que genere complementos " +"posibles.\n" +" Si se proporciona el argumento opcional WORD, se generan las " +"coincidencias\n" +" contra WORD." + +#: builtins.c:1912 +msgid "" +"Modify or display completion options.\n" +" \n" +" Modify the completion options for each NAME, or, if no NAMEs are " +"supplied,\n" +" the completion currently begin executed. If no OPTIONs are givenm, " +"print\n" +" the completion options for each NAME or the current completion " +"specification.\n" +" \n" +" Options:\n" +" \t-o option\tSet completion option OPTION for each NAME\n" +" \n" +" Using `+o' instead of `-o' turns off the specified option.\n" +" \n" +" Arguments:\n" +" \n" +" Each NAME refers to a command for which a completion specification must\n" +" have previously been defined using the `complete' builtin. If no NAMEs\n" +" are supplied, compopt must be called by a function currently generating\n" +" completions, and the options for that currently-executing completion\n" +" generator are modified.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or NAME does not\n" +" have a completion specification defined." +msgstr "" + +#: builtins.c:1940 +msgid "" +"Read lines from a file into an array variable.\n" +" \n" +" Read lines from the standard input into the array variable ARRAY, or " +"from\n" +" file descriptor FD if the -u option is supplied. The variable MAPFILE " +"is\n" +" the default ARRAY.\n" +" \n" +" Options:\n" +" -n count\tCopy at most COUNT lines. If COUNT is 0, all lines are " +"copied.\n" +" -O origin\tBegin assigning to ARRAY at index ORIGIN. The default " +"index is 0.\n" +" -s count \tDiscard the first COUNT lines read.\n" +" -t\t\tRemove a trailing newline from each line read.\n" +" -u fd\t\tRead lines from file descriptor FD instead of the standard " +"input.\n" +" -C callback\tEvaluate CALLBACK each time QUANTUM lines are read.\n" +" -c quantum\tSpecify the number of lines read between each call to " +"CALLBACK.\n" +" \n" +" Arguments:\n" +" ARRAY\t\tArray variable name to use for file data.\n" +" \n" +" If -C is supplied without -c, the default quantum is 5000.\n" +" \n" +" If not supplied with an explicit origin, mapfile will clear ARRAY " +"before\n" +" assigning to it.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or ARRAY is readonly." +msgstr "" + +#~ msgid " " +#~ msgstr " " + +#~ msgid "Without EXPR, returns returns \"$line $filename\". With EXPR," +#~ msgstr "Sin EXPR, returns devuelve \"$linea $nombrefichero\". Con EXPR," + +#~ msgid "returns \"$line $subroutine $filename\"; this extra information" +#~ msgstr "devuelve \"$linea $subrutina $nombrefichero\"; esta información" + +#~ msgid "can be used used to provide a stack trace." +#~ msgstr "adicional se puede usar para proveer un volcado de pila." + +#~ msgid "" +#~ "The value of EXPR indicates how many call frames to go back before the" +#~ msgstr "" +#~ "El valor de EXPR indica cuántos marcos de llamada se debe retroceder" + +#~ msgid "current one; the top frame is frame 0." +#~ msgstr "antes del actual; el marco inicial es el marco 0." + +#~ msgid "%s: invalid number" +#~ msgstr "%s: número inválido" + +#~ msgid "Shell commands matching keywords `" +#~ msgstr "Órdenes del shell que coinciden con las palabras `" + +#~ msgid "Display the list of currently remembered directories. Directories" +#~ msgstr "" +#~ "Muestra la lista de directorios actualmente grabados. Los directorios" + +#~ msgid "find their way onto the list with the `pushd' command; you can get" +#~ msgstr "se guardan en la lista con la orden `pushd'; pueden ir saliendo de" + +#~ msgid "back up through the list with the `popd' command." +#~ msgstr "la lista con la orden `popd'." + +#~ msgid "" +#~ "The -l flag specifies that `dirs' should not print shorthand versions" +#~ msgstr "" +#~ "La opción -l especifica que `dirs' no debe mostrar versiones abreviadas" + +#~ msgid "" +#~ "of directories which are relative to your home directory. This means" +#~ msgstr "" +#~ "de los directorios que son relativos a su directorio inicial. Esto " +#~ "significa" + +#~ msgid "that `~/bin' might be displayed as `/homes/bfox/bin'. The -v flag" +#~ msgstr "que `~/bin' se mostrará como `/homes/bfox/bin'. La opción -v" + +#~ msgid "causes `dirs' to print the directory stack with one entry per line," +#~ msgstr "" +#~ "causa que `dirs' imprima la pila de directorios con una entrada por línea," + +#~ msgid "" +#~ "prepending the directory name with its position in the stack. The -p" +#~ msgstr "" +#~ "anteponiendo la posición en la pila al nombre del directorio. La opción" + +#~ msgid "flag does the same thing, but the stack position is not prepended." +#~ msgstr "-p hace lo mismo, pero no antepone la posición en la pila." + +#~ msgid "" +#~ "The -c flag clears the directory stack by deleting all of the elements." +#~ msgstr "" +#~ "La opción -c limpia la pila de directorios borrando todos sus elementos." + +#~ msgid "" +#~ "+N displays the Nth entry counting from the left of the list shown by" +#~ msgstr "" +#~ "+N muestra la N-ésima entrada contando desde la izquierda de la lista" + +#~ msgid " dirs when invoked without options, starting with zero." +#~ msgstr "" +#~ " mostrada por dirs cuando se invoca sin opciones, empezando de cero." + +#~ msgid "" +#~ "-N displays the Nth entry counting from the right of the list shown by" +#~ msgstr "" +#~ "-N muestra la N-ésima entrada contando desde la derecha de la lista" + +#~ msgid "Adds a directory to the top of the directory stack, or rotates" +#~ msgstr "Agrega un directorio al tope de la pila de directorios, o rota" + +#~ msgid "the stack, making the new top of the stack the current working" +#~ msgstr "la pila, haciendo que el nuevo tope de la pila sea el directorio de" + +#~ msgid "directory. With no arguments, exchanges the top two directories." +#~ msgstr "" +#~ "trabajo actual. Sin argumentos, intercambia los dos directorios del tope." + +#~ msgid "+N Rotates the stack so that the Nth directory (counting" +#~ msgstr "+N Rota la pila para que el N-ésimo directorio (contando" + +#~ msgid " from the left of the list shown by `dirs', starting with" +#~ msgstr "" +#~ " de la izquierda de la lista mostrada por `dirs', comenzando desde" + +#~ msgid " zero) is at the top." +#~ msgstr " cero) esté en el tope." + +#~ msgid "-N Rotates the stack so that the Nth directory (counting" +#~ msgstr "-N Rota la pila para que el N-ésimo directory (contando" + +#~ msgid " from the right of the list shown by `dirs', starting with" +#~ msgstr "" +#~ " de la derecha de la lista mostrada por `dirs', comenzando desde" + +#~ msgid "-n suppress the normal change of directory when adding directories" +#~ msgstr "" +#~ "-n suprime el cambio normal de directorio cuando se agregan directorios" + +#~ msgid " to the stack, so only the stack is manipulated." +#~ msgstr " a la pila, así sólo se manipula la pila." + +#~ msgid "dir adds DIR to the directory stack at the top, making it the" +#~ msgstr "dir agrega DIR a la pila de directorios en el tope, haciéndolo el" + +#~ msgid " new current working directory." +#~ msgstr " nuevo directorio de trabajo actual." + +#~ msgid "You can see the directory stack with the `dirs' command." +#~ msgstr "Puede ver la pila de directorios con la orden `dirs'." + +#~ msgid "Removes entries from the directory stack. With no arguments," +#~ msgstr "Borra entradas de la pila de directorios. Sin argumentos," + +#~ msgid "removes the top directory from the stack, and cd's to the new" +#~ msgstr "borra el directorio del tope de la pila, y cambia al nuevo" + +#~ msgid "top directory." +#~ msgstr "directorio tope." + +#~ msgid "+N removes the Nth entry counting from the left of the list" +#~ msgstr "" +#~ "+N borra la N-ésima entrada contando desde la izquierda de la lista" + +#~ msgid " shown by `dirs', starting with zero. For example: `popd +0'" +#~ msgstr "" +#~ " mostrada por `dirs', comenzando desde cero. Por ejemplo: `popd +0'" + +#~ msgid " removes the first directory, `popd +1' the second." +#~ msgstr " borra el primer directorio, `popd +1' el segundo." + +#~ msgid "-N removes the Nth entry counting from the right of the list" +#~ msgstr "-N borra la N-ésima entrada contando desde la derecha de la lista" + +#~ msgid " shown by `dirs', starting with zero. For example: `popd -0'" +#~ msgstr "" +#~ " mostrada por `dirs', comenzando desde cero. Por ejemplo: `popd -0'" + +#~ msgid " removes the last directory, `popd -1' the next to last." +#~ msgstr " borra el último directorio, `popd -1' el penúltimo." + +#~ msgid "" +#~ "-n suppress the normal change of directory when removing directories" +#~ msgstr "" +#~ "-n suprime el cambio normal de directorio cuando se borran directorios" + +#~ msgid " from the stack, so only the stack is manipulated." +#~ msgstr " de la pila, así sólo se manipula la pila." + +#~ msgid "allocated" +#~ msgstr "asignado" + +#~ msgid "freed" +#~ msgstr "liberado" + +#~ msgid "requesting resize" +#~ msgstr "solicitando cambio de tamaño" + +#~ msgid "just resized" +#~ msgstr "terminó cambio de tamaño" + +#~ msgid "bug: unknown operation" +#~ msgstr "bicho: operación desconocida" + +#~ msgid "malloc: watch alert: %p %s " +#~ msgstr "malloc: alerta de observación: %p %s " + +#~ msgid "" +#~ "Exit from within a FOR, WHILE or UNTIL loop. If N is specified,\n" +#~ " break N levels." +#~ msgstr "" +#~ "Sale de un ciclo FOR, WHILE o UNTIL. Si se especifica N,\n" +#~ " sale N niveles." + +#~ msgid "" +#~ "Run a shell builtin. This is useful when you wish to rename a\n" +#~ " shell builtin to be a function, but need the functionality of the\n" +#~ " builtin within the function itself." +#~ msgstr "" +#~ "Ejecuta una orden interna del shell. Esto es útil cuando desea " +#~ "renombrar\n" +#~ " una orden interna del shell para que sea una función, pero necesita\n" +#~ " la funcionalidad de la orden interna dentro de la misma función." + +#~ msgid "" +#~ "Print the current working directory. With the -P option, pwd prints\n" +#~ " the physical directory, without any symbolic links; the -L option\n" +#~ " makes pwd follow symbolic links." +#~ msgstr "" +#~ "Muestra el directorio de trabajo actual. Con la opción -P, pwd muestra\n" +#~ " el directorio físico, sin enlaces simbólicos; la opción -L hace que\n" +#~ " pwd siga los enlaces simbólicos." + +#~ msgid "Return a successful result." +#~ msgstr "Devuelve un resultado exitoso." + +# es usado -> se usa. sv +# es impresa -> se muestra una cadena em+ +# "Si se da la opción -V o -v,..." sv +# De acuerdo. cfuga +#~ msgid "" +#~ "Runs COMMAND with ARGS ignoring shell functions. If you have a shell\n" +#~ " function called `ls', and you wish to call the command `ls', you can\n" +#~ " say \"command ls\". If the -p option is given, a default value is " +#~ "used\n" +#~ " for PATH that is guaranteed to find all of the standard utilities. " +#~ "If\n" +#~ " the -V or -v option is given, a string is printed describing " +#~ "COMMAND.\n" +#~ " The -V option produces a more verbose description." +#~ msgstr "" +#~ "Ejecuta COMMAND con ARGS ignorando las funciones del shell. Si tiene " +#~ "una\n" +#~ " función de shell llamada `ls', y desea llamar a la orden `ls', puede\n" +#~ " decir \"command ls\". Si se da la opción -p, se usa un valor por\n" +#~ " defecto para PATH que garantiza encontrar todas las herramientas\n" +#~ " estándard. Si se da la opción -V o -v, se muestra una cadena que\n" +#~ " describe COMMAND. La opción -V produce una descripción más detallada." + +#~ msgid "Obsolete. See `declare'." +#~ msgstr "Obsoleto. Ver `declare'." + +# y le da -> y le asigna em+ +# sólo se puede usar. sv +# tenga un alcance visible -> sea visible solo para la función y sus los hijos em+ +# De acuerdo. cfuga +#~ msgid "" +#~ "Create a local variable called NAME, and give it VALUE. LOCAL\n" +#~ " can only be used within a function; it makes the variable NAME\n" +#~ " have a visible scope restricted to that function and its children." +#~ msgstr "" +#~ "Crea una variable local llamada NAME, y le asigna un VALUE. LOCAL\n" +#~ " sólo se puede usar dentro de una función; hace que la variable NAME\n" +#~ " solamente sea visible a esa función y sus hijos." + +#~ msgid "" +#~ "Output the ARGs. If -n is specified, the trailing newline is suppressed." +#~ msgstr "" +#~ "Muestra los ARGs. Si se especifica -n, se elimina el carácter\n" +#~ " de fin de línea." + +# se puede usar. sv +# Se muestra una lista de órdenes internas. sv +# Hay muchos más mensajes que están en "pasiva" que quedarían mejor en +# forma "reflexiva". No comento más y te dejo que los mires despacio. +# Gracias por la observación. cfuga +#~ msgid "" +#~ "Enable and disable builtin shell commands. This allows\n" +#~ " you to use a disk command which has the same name as a shell\n" +#~ " builtin without specifying a full pathname. If -n is used, the\n" +#~ " NAMEs become disabled; otherwise NAMEs are enabled. For example,\n" +#~ " to use the `test' found in $PATH instead of the shell builtin\n" +#~ " version, type `enable -n test'. On systems supporting dynamic\n" +#~ " loading, the -f option may be used to load new builtins from the\n" +#~ " shared object FILENAME. The -d option will delete a builtin\n" +#~ " previously loaded with -f. If no non-option names are given, or\n" +#~ " the -p option is supplied, a list of builtins is printed. The\n" +#~ " -a option means to print every builtin with an indication of whether\n" +#~ " or not it is enabled. The -s option restricts the output to the " +#~ "POSIX.2\n" +#~ " `special' builtins. The -n option displays a list of all disabled " +#~ "builtins." +#~ msgstr "" +#~ "Activa y desactiva las órdenes internas del shell. Esto le permite\n" +#~ " usar una orden del sistema que tenga el mismo nombre que una orden\n" +#~ " interna del shell sin especificar una ruta completa. Si se usa -n, " +#~ "los\n" +#~ " NAMEs se desactivan; de otra forma los NAMEs se activan. Por " +#~ "ejemplo,\n" +#~ " para usar `test' que se encuentra en $PATH en lugar de la versión " +#~ "interna\n" +#~ " del shell, teclee `enable -n test'. En sistemas que soportan\n" +#~ " carga dinámica, se puede usar la opción -f para cargar nuevas " +#~ "órdenes\n" +#~ " internas desde el objeto compartido FILENAME. La opción -d borrará " +#~ "una\n" +#~ " orden interna cargada previamente con -f. Si no se propocionan " +#~ "nombres\n" +#~ " que no sean opciones, o se especifica la opción -p, se muestra una " +#~ "lista\n" +#~ " de órdenes internas. La opción -a es para mostrar cada orden " +#~ "interna\n" +#~ " con una indicación si está o no activada. La opción -s restringe la\n" +#~ " salida a las órdenes internas `especiales' de POSIX.2. La opción -n\n" +#~ " muestra una lista de todas las órdenes internas desactivadas." + +#~ msgid "" +#~ "Read ARGs as input to the shell and execute the resulting command(s)." +#~ msgstr "" +#~ "Lee ARGs como entrada del shell y ejecuta el(los) comando(s) resultantes." + +#~ msgid "" +#~ "Exec FILE, replacing this shell with the specified program.\n" +#~ " If FILE is not specified, the redirections take effect in this\n" +#~ " shell. If the first argument is `-l', then place a dash in the\n" +#~ " zeroth arg passed to FILE, as login does. If the `-c' option\n" +#~ " is supplied, FILE is executed with a null environment. The `-a'\n" +#~ " option means to make set argv[0] of the executed process to NAME.\n" +#~ " If the file cannot be executed and the shell is not interactive,\n" +#~ " then the shell exits, unless the shell option `execfail' is set." +#~ msgstr "" +#~ "Ejecuta FILE, reemplazando este shell con el programa especificado.\n" +#~ " Si no se especifica FILE, las redirecciones toman efecto en este\n" +#~ " shell. Si el primer argumento es `-l' entonces coloca un guión\n" +#~ " en el argumento cero que pasa a FILE, como lo hace login. Si se\n" +#~ " proporciona la opción `-c', se ejecuta FILE con un ambiente nulo.\n" +#~ " La opción `-a' establece el argv[0] del proceso ejecutado a NOMBRE.\n" +#~ " Si no se puede ejecutar el fichero, y el shell no es intercativo,\n" +#~ " entonces el shell termina, a menos que esté activa la opción\n" +#~ " `execfail'." + +#~ msgid "Logout of a login shell." +#~ msgstr "Se desconecta de un shell de entrada." + +#~ msgid "" +#~ "For each NAME, the full pathname of the command is determined and\n" +#~ " remembered. If the -p option is supplied, PATHNAME is used as the\n" +#~ " full pathname of NAME, and no path search is performed. The -r\n" +#~ " option causes the shell to forget all remembered locations. The -d\n" +#~ " option causes the shell to forget the remembered location of each " +#~ "NAME.\n" +#~ " If the -t option is supplied the full pathname to which each NAME\n" +#~ " corresponds is printed. If multiple NAME arguments are supplied " +#~ "with\n" +#~ " -t, the NAME is printed before the hashed full pathname. The -l " +#~ "option\n" +#~ " causes output to be displayed in a format that may be reused as " +#~ "input.\n" +#~ " If no arguments are given, information about remembered commands is " +#~ "displayed." +#~ msgstr "" +#~ "Por cada NOMBRE, se determina la ruta completa de la orden y se graba.\n" +#~ " Si se especifica la opción -p, se usa PATHNAME como la ruta completa\n" +#~ " de NAME, y no se realiza la búsqueda de ruta. La opción -r hace que\n" +#~ " el shell olvide todas las ubicaciones grabadas. La opción -d hace " +#~ "que\n" +#~ " el shell olvide las ubicaciones grabadas de cada NAME. Si se\n" +#~ " proporciona la opción -t se muestra la ruta completa para cada NAME\n" +#~ " correspondiente. Si se proporcionan múltiples argumentos NAME con\n" +#~ " -t, NAME se muestra antes de la ruta completa. La opción -l hace\n" +#~ " que la salida se muestre en un formato que se puede reusar como\n" +#~ " entrada. Si no se proporcionan argumentos, se muestra la " +#~ "información\n" +#~ " de las órdenes grabadas." + +#~ msgid "" +#~ "Display helpful information about builtin commands. If PATTERN is\n" +#~ " specified, gives detailed help on all commands matching PATTERN,\n" +#~ " otherwise a list of the builtins is printed. The -s option\n" +#~ " restricts the output for each builtin command matching PATTERN to\n" +#~ " a short usage synopsis." +#~ msgstr "" +#~ "Muestra información útil sobre las órdenes internas del shell. Si se\n" +#~ " especifica un PATRÓN, proporciona ayuda detallada sobre todas las\n" +#~ " órdenes que coinciden con el PATRÓN, de otra forma se muestra una\n" +#~ " lista de las órdenes internas. La opción -s restringe la salida\n" +#~ " de cada orden interna que concida con el PATRÓN a una breve\n" +#~ " sinopsis de uso." + +#~ msgid "" +#~ "By default, removes each JOBSPEC argument from the table of active jobs.\n" +#~ " If the -h option is given, the job is not removed from the table, but " +#~ "is\n" +#~ " marked so that SIGHUP is not sent to the job if the shell receives a\n" +#~ " SIGHUP. The -a option, when JOBSPEC is not supplied, means to remove " +#~ "all\n" +#~ " jobs from the job table; the -r option means to remove only running " +#~ "jobs." +#~ msgstr "" +#~ "Por defecto, elimina cada argumento JOBSPEC de la tabla de trabajos " +#~ "activos.\n" +#~ " Si se especifica la opción -h, el trabajo no se elimina de la tabla,\n" +#~ " pero se marca de forma que no se envía SIGHUP al trabajo si el shell\n" +#~ " recibe un SIGHUP. La opción -a, cuando no se proporciona JOBSPEC, " +#~ "borra\n" +#~ " todos los trabajos de la tabla de trabajos; la opción -r borra sólo\n" +#~ " los trabajos activos." + +#~ msgid "" +#~ "Causes a function to exit with the return value specified by N. If N\n" +#~ " is omitted, the return status is that of the last command." +#~ msgstr "" +#~ "Causa la salida de una función con el valor de devolución especificado " +#~ "por N.\n" +#~ " Si se omite N, el estado de devolución será el de la última orden." + +#~ msgid "" +#~ "For each NAME, remove the corresponding variable or function. Given\n" +#~ " the `-v', unset will only act on variables. Given the `-f' flag,\n" +#~ " unset will only act on functions. With neither flag, unset first\n" +#~ " tries to unset a variable, and if that fails, then tries to unset a\n" +#~ " function. Some variables cannot be unset; also see readonly." +#~ msgstr "" +#~ "Para cada NAME, se borra la variable o función correspondiente. Al usar\n" +#~ " `-v', unset sólo actuará sobre variables. Al usar la opción `-f',\n" +#~ " unset sólo actuará sobre funciones. Sin ninguna opción, unset " +#~ "primero\n" +#~ " intenta borrar una variable, y si esto falla, entonces intenta " +#~ "borrar\n" +#~ " una función. Algunas variables no se pueden borrar; vea también " +#~ "readonly." + +#~ msgid "" +#~ "NAMEs are marked for automatic export to the environment of\n" +#~ " subsequently executed commands. If the -f option is given,\n" +#~ " the NAMEs refer to functions. If no NAMEs are given, or if `-p'\n" +#~ " is given, a list of all names that are exported in this shell is\n" +#~ " printed. An argument of `-n' says to remove the export property\n" +#~ " from subsequent NAMEs. An argument of `--' disables further option\n" +#~ " processing." +#~ msgstr "" +#~ "Se marcan NAMEs para exportación automática al ambiente de las\n" +#~ " órdenes ejecutadas subsecuentemente. Si se establece la opción -f,\n" +#~ " NAMEs se refieren a funciones. Si no se proporciona ningún NAME,\n" +#~ " o si se proporciona `-p', se muestra una lista de todos los nombres\n" +#~ " que se exportan en este shell. Un argumento `-n' indica eliminar\n" +#~ " la propiedad de exportación para los NAMEs subsecuentes. Un " +#~ "argumento\n" +#~ " `--' desactiva el procesamiento posterior de opciones." + +#~ msgid "" +#~ "The given NAMEs are marked readonly and the values of these NAMEs may\n" +#~ " not be changed by subsequent assignment. If the -f option is given,\n" +#~ " then functions corresponding to the NAMEs are so marked. If no\n" +#~ " arguments are given, or if `-p' is given, a list of all readonly " +#~ "names\n" +#~ " is printed. The `-a' option means to treat each NAME as\n" +#~ " an array variable. An argument of `--' disables further option\n" +#~ " processing." +#~ msgstr "" +#~ "Los NAMEs dados se marcan como sólo lectura y los valores de esos NAMEs\n" +#~ " no se pueden cambiar por asignaciones posteriores. Si se propociona\n" +#~ " la opción -f, entonces también se marcan las funciones que " +#~ "correspondan\n" +#~ " a los NAMEs. Si no se proporcionan argumentos, o si se especifica\n" +#~ " `-p', se muestra una lista de todos los nombres de sólo lectura.\n" +#~ " La opción `-a' trata cada NAME como una variable de matriz.\n" +#~ " Un argumento `--' desactiva opciones posteriores." + +#~ msgid "" +#~ "The positional parameters from $N+1 ... are renamed to $1 ... If N is\n" +#~ " not given, it is assumed to be 1." +#~ msgstr "" +#~ "Los parámetros posicionales de $N+1 ... se renombran a $1 ... Si no se\n" +#~ " proporciona N, se asume que es 1." + +#~ msgid "" +#~ "Suspend the execution of this shell until it receives a SIGCONT\n" +#~ " signal. The `-f' if specified says not to complain about this\n" +#~ " being a login shell if it is; just suspend anyway." +#~ msgstr "" +#~ "Suspende la ejecución de este shell hasta que recibe una señal\n" +#~ " SIGCONT. Si se especifica `-f' indica que no se queje si es\n" +#~ " un shell de login; y se suspende de cualquier forma." + +#~ msgid "" +#~ "Print the accumulated user and system times for processes run from\n" +#~ " the shell." +#~ msgstr "" +#~ "Muestra los tiempos de usuario y de sistema acumulados para los procesos\n" +#~ " ejecutados desde el shell." + +#~ msgid "" +#~ "For each NAME, indicate how it would be interpreted if used as a\n" +#~ " command name.\n" +#~ " \n" +#~ " If the -t option is used, `type' outputs a single word which is one " +#~ "of\n" +#~ " `alias', `keyword', `function', `builtin', `file' or `', if NAME is " +#~ "an\n" +#~ " alias, shell reserved word, shell function, shell builtin, disk " +#~ "file,\n" +#~ " or unfound, respectively.\n" +#~ " \n" +#~ " If the -p flag is used, `type' either returns the name of the disk\n" +#~ " file that would be executed, or nothing if `type -t NAME' would not\n" +#~ " return `file'.\n" +#~ " \n" +#~ " If the -a flag is used, `type' displays all of the places that " +#~ "contain\n" +#~ " an executable named `file'. This includes aliases, builtins, and\n" +#~ " functions, if and only if the -p flag is not also used.\n" +#~ " \n" +#~ " The -f flag suppresses shell function lookup.\n" +#~ " \n" +#~ " The -P flag forces a PATH search for each NAME, even if it is an " +#~ "alias,\n" +#~ " builtin, or function, and returns the name of the disk file that " +#~ "would\n" +#~ " be executed." +#~ msgstr "" +#~ "Para cada NAME, se indica cómo se interpretaría se se usara como\n" +#~ " el nombre de una orden.\n" +#~ " \n" +#~ " Si se usa la opción -t, `type' muestra una sola palabra que es una\n" +#~ " de `alias', `keyword', `function', `builtin', `file' ó `', si NAME\n" +#~ " es un alias, palabra reservada del shell, función del shell, orden\n" +#~ " interna del shell, fichero del disco, o no encontrado, " +#~ "respectivamente.\n" +#~ " \n" +#~ " Si se usa la opción -p, `type' devuelve el nombre del fichero del\n" +#~ " sistema que sería ejecutado, o nada, si `type -t NAME' no devuelve\n" +#~ " `file'.\n" +#~ " \n" +#~ " Si se usa la opción -a, `type' muestra todos los lugares que " +#~ "contienen\n" +#~ " un ejecutable llamado `file'. Esto incluye a aliases, órdenes\n" +#~ " internas, y funciones, si y solo si no se usa la opción -p.\n" +#~ " \n" +#~ " La opción -f suprime la búsqueda de funciones de shell.\n" +#~ " \n" +#~ " La opción -P fuerza una búsqueda en PATH por cada NAME, aún si es un\n" +#~ " alias, orden interna, o función, y devuelve el nombre del fichero " +#~ "del\n" +#~ " disco que se puede ejecutar." + +#~ msgid "" +#~ "The user file-creation mask is set to MODE. If MODE is omitted, or if\n" +#~ " `-S' is supplied, the current value of the mask is printed. The `-" +#~ "S'\n" +#~ " option makes the output symbolic; otherwise an octal number is " +#~ "output.\n" +#~ " If `-p' is supplied, and MODE is omitted, the output is in a form\n" +#~ " that may be used as input. If MODE begins with a digit, it is\n" +#~ " interpreted as an octal number, otherwise it is a symbolic mode " +#~ "string\n" +#~ " like that accepted by chmod(1)." +#~ msgstr "" +#~ "La máscara de creación de ficheros se establece a MODE. Si se omite " +#~ "MODE,\n" +#~ " o si se proporciona `-S', se muestra el valor actual de la máscara. " +#~ "La\n" +#~ " opción `-S' hace la salida simbólica; de otra forma la salida es un\n" +#~ " número octal. Si se proporciona `-p', y se omite MODE, la salida es\n" +#~ " en una forma que se puede usar como entrada. Si MODE empieza con un\n" +#~ " dígito, se interpreta como un número octal, de otra forma es una " +#~ "cadena\n" +#~ " de modo simbólico como la que acepta chmod(1)." + +#~ msgid "" +#~ "Wait for the specified process and report its termination status. If\n" +#~ " N is not given, all currently active child processes are waited for,\n" +#~ " and the return code is zero. N is a process ID; if it is not given,\n" +#~ " all child processes of the shell are waited for." +#~ msgstr "" +#~ "Espera al proceso especificado y reporta su estado final. Si no se\n" +#~ " proporciona N, espera a todos los procesos hijo activos actualmente,\n" +#~ " y el código de devolución es cero. N es un ID de proceso; si no se\n" +#~ " proporciona, se espera a todos los procesos hijo del shell." + +#~ msgid "" +#~ "Create a simple command invoked by NAME which runs COMMANDS.\n" +#~ " Arguments on the command line along with NAME are passed to the\n" +#~ " function as $0 .. $n." +#~ msgstr "" +#~ "Crea una orden simple invocada por NAME que ejecuta COMMMANDS.\n" +#~ " Se pasan a la función los argumentos en la línea de órdenes\n" +#~ " junto con NAME como $0 .. $n." + +#~ msgid "" +#~ "Toggle the values of variables controlling optional behavior.\n" +#~ " The -s flag means to enable (set) each OPTNAME; the -u flag\n" +#~ " unsets each OPTNAME. The -q flag suppresses output; the exit\n" +#~ " status indicates whether each OPTNAME is set or unset. The -o\n" +#~ " option restricts the OPTNAMEs to those defined for use with\n" +#~ " `set -o'. With no options, or with the -p option, a list of all\n" +#~ " settable options is displayed, with an indication of whether or\n" +#~ " not each is set." +#~ msgstr "" +#~ "Cambia los valores de las variables que controlan conductas opcionales.\n" +#~ " La opción -s activa (define) cada OPTNAME; la opción -u desactiva\n" +#~ " cada OPTNAME. La opción -q suprime la salida; el estado de salida\n" +#~ " indica si cada OPTNAME se definió o no. La opción -o restringe\n" +#~ " que OPTNAMEs sean aquéllos definidos para usarse con `set -o'.\n" +#~ " Sin opciones, o con la opción -p, se muestra una lista de todas\n" +#~ " las opciones definibles, con una indicación si están o no activas." + +#~ msgid "" +#~ "For each NAME, specify how arguments are to be completed.\n" +#~ " If the -p option is supplied, or if no options are supplied, " +#~ "existing\n" +#~ " completion specifications are printed in a way that allows them to " +#~ "be\n" +#~ " reused as input. The -r option removes a completion specification " +#~ "for\n" +#~ " each NAME, or, if no NAMEs are supplied, all completion " +#~ "specifications." +#~ msgstr "" +#~ "Por cada NAME, especifica cómo se deben completar los argumentos.\n" +#~ " Si se proporciona la opción -p, o si no se proporcionan opciones, se\n" +#~ " muestran las especificaciones existentes de completado en una forma\n" +#~ " que permite que se reusen como entrada. La opción -r borra una\n" +#~ " especificación de completado para cada NAME, o, si no se proporciona\n" +#~ " ningún NAMEs, todas las especificaciones de completado." + +#~ msgid "Missing `}'" +#~ msgstr "Faltan `}'" + +#~ msgid "brace_expand> " +#~ msgstr "expansión_llave> " + +# ¿ a qué se refiere ? em+ +# También podría ser la orden de tipo desconocido. sv +# Tiene razón Santiago. Las órdenes se guardan en matrices de caracteres +# en bash. Si bash intenta borrar uno de estos comandos y el tipo del dato +# NO es matriz de caracter, emitiría este mensaje. cfuga +#~ msgid "Attempt to free unknown command type `%d'.\n" +#~ msgstr "Intentando liberar la orden de tipo desconocido `%d'.\n" + +#~ msgid "Report this to %s\n" +#~ msgstr "Comunique esto a %s\n" + +#~ msgid "Stopping myself..." +#~ msgstr "Deteniéndome..." + +#~ msgid "Tell %s to fix this someday.\n" +#~ msgstr "Decir a %s que arregle esto algún día.\n" + +#~ msgid "execute_command: bad command type `%d'" +#~ msgstr "execute_command: tipo de orden erróneo `%d'" + +#~ msgid "real\t" +#~ msgstr "real\t" + +#~ msgid "user\t" +#~ msgstr "usuario\t" + +#~ msgid "sys\t" +#~ msgstr "sistema\t" + +#~ msgid "" +#~ "real\t0m0.00s\n" +#~ "user\t0m0.00s\n" +#~ "sys\t0m0.00s\n" +#~ msgstr "" +#~ "real\t0m0.00s\n" +#~ "usuario\t0m0.00s\n" +#~ "sistema\t0m0.00s\n" + +#~ msgid "cannot duplicate fd %d to fd 1: %s" +#~ msgstr "no se puede duplicar el df %d al df 1: %s" + +#~ msgid "%s: output redirection restricted" +#~ msgstr "%s: la redirección de salida está restringida" + +#~ msgid "Out of memory!" +#~ msgstr "¡Memoria agotada!" + +#~ msgid "You have already added item `%s'\n" +#~ msgstr "Ya se había añadido el elemento `%s'\n" + +# Han sido introducidos o quizá , Vd, introdujo em+ +#~ msgid "You have entered %d (%d) items. The distribution is:\n" +#~ msgstr "Introdujo %d (%d) elementos. La distribución es:\n" + +#~ msgid "%s: bg background job?" +#~ msgstr "%s: ¿bg trabajo en background?" + +#~ msgid "" +#~ "Redirection instruction from yyparse () '%d' is\n" +#~ "out of range in make_redirection ()." +#~ msgstr "" +#~ "La instrucción de redirección de yyparse () '%d' está fuera de rango en \n" +#~ "make_redirection ()." + +#~ msgid "clean_simple_command () got a command with type %d." +#~ msgstr "clean_simple_command () tiene una orden del tipo %d." + +#~ msgid "got errno %d while waiting for %d" +#~ msgstr "se obtuvo errno %d mientras esperaba a %d" + +# algo por el estilo em+ +#~ msgid "syntax error near unexpected token `%c'" +#~ msgstr "error sintáctico cerca del elemento inesperado `%c'" + +# Por consistencia con mensajes anteriores, sería erróneo (el tipo). sv +# De acuerdo. Corregido. cfuga +#~ msgid "print_command: bad command type `%d'" +#~ msgstr "print_command: tipo de dato de orden `%d' erróneo" + +#~ msgid "cprintf: bad `%%' argument (%c)" +#~ msgstr "cprintf: argumento `%%' erróneo (%c)" + +#~ msgid "option `%s' requires an argument" +#~ msgstr "la opción `%s' requiere un argumento" + +#~ msgid "%s: unrecognized option" +#~ msgstr "%s: la opción no es reconocida" + +#~ msgid "`-c' requires an argument" +#~ msgstr "`-c' requiere un argumento" + +#~ msgid "%s: cannot execute directories" +#~ msgstr "%s: no se pueden ejecutar directorios" + +#~ msgid "Bad code in sig.c: sigprocmask" +#~ msgstr "Código erróneo en sig.c: sigprocmask" + +#~ msgid "bad substitution: no ending `}' in %s" +#~ msgstr "sustitución errónea: no hay `}' final en %s" + +#~ msgid "%s: bad array subscript" +#~ msgstr "%s: subíndice de matriz erróneo" + +#~ msgid "can't make pipes for process substitution: %s" +#~ msgstr "" +#~ "no se pueden crear las tuberías (pipes) para la sustitución del proceso: %" +#~ "s" + +#~ msgid "reading" +#~ msgstr "leyendo" + +#~ msgid "writing" +#~ msgstr "escribiendo" + +# del proceso em+ +#~ msgid "process substitution" +#~ msgstr "sustitución de proceso" + +#~ msgid "command substitution" +#~ msgstr "sustitución de la orden" + +#~ msgid "Can't reopen pipe to command substitution (fd %d): %s" +#~ msgstr "" +#~ "No se puede reabrir la tubería para la sustitución de la orden (df %d): %s" + +#~ msgid "$%c: unbound variable" +#~ msgstr "$%c: variable desligada" + +#~ msgid "%s: bad arithmetic substitution" +#~ msgstr "%s: sustitución aritmética errónea" + +#~ msgid "-%s: binary operator expected" +#~ msgstr "-%s: se esperaba un operador binario" + +#~ msgid "%s[%s: bad subscript" +#~ msgstr "%s[%s: subíndice erróneo" + +#~ msgid "[%s: bad subscript" +#~ msgstr "[%s: subíndice erróneo" + +# Yo pondría "hay dígitos en dos elementos diferentes de argv". sv +# De acuerdo. cfuga +#~ msgid "digits occur in two different argv-elements.\n" +#~ msgstr "hay dígitos en dos elementos diferentes de argv.\n" + +#~ msgid "option %c\n" +#~ msgstr "opción %c\n" + +#~ msgid "option a\n" +#~ msgstr "opción a\n" + +#~ msgid "option b\n" +#~ msgstr "opción b\n" + +#~ msgid "option c with value `%s'\n" +#~ msgstr "opción c con el valor `%s'\n" + +#~ msgid "?? sh_getopt returned character code 0%o ??\n" +#~ msgstr "?? sh_getopt devolvió el código de carácter 0%o ??\n" + +#~ msgid "non-option ARGV-elements: " +#~ msgstr "elementos de ARGV que no son opciones: " + +#~ msgid "%s: Unknown flag %s.\n" +#~ msgstr "%s: Indicador desconocido %s.\n" + +#~ msgid "Unknown directive `%s'" +#~ msgstr "Directiva desconocida `%s'" + +#~ msgid "%s requires an argument" +#~ msgstr "%s requiere un argumento" + +#~ msgid "%s must be inside of a $BUILTIN block" +#~ msgstr "%s debe estar dentro de un bloque $BUILTIN" + +#~ msgid "%s found before $END" +#~ msgstr "%s encontrado antes de $END" + +#~ msgid "%s already has a function (%s)" +#~ msgstr "%s ya tiene una función (%s)" + +#~ msgid "%s already had a docname (%s)" +#~ msgstr "%s ya tiene un nombre de documento (%s)" + +#~ msgid "%s already has short documentation (%s)" +#~ msgstr "% ya tiene documentación corta (%s)" + +# Si traducimos con la gramática española, probablemente sería: +# ...una definición %s". sv +# De acuerdo. cfuga +#~ msgid "%s already has a %s definition" +#~ msgstr "%s ya tiene una definición %s" + +#~ msgid "mkbuiltins: Out of virtual memory!\n" +#~ msgstr "mkbuiltins: ¡Memoria agotada!\n" + +#~ msgid "read [-r] [-p prompt] [-a array] [-e] [name ...]" +#~ msgstr "read [-r] [-p prompt] [-a matriz] [-e] [nombre ...]" + +#~ msgid ". filename" +#~ msgstr ". fichero" + +#~ msgid "%[DIGITS | WORD] [&]" +#~ msgstr "%[DÍGITOS | PALABRAS] [&]" + +#~ msgid "variables - Some variable names and meanings" +#~ msgstr "variables - Algunos nombres de variables y sus significados" + +#~ msgid "`alias' with no arguments or with the -p option prints the list" +#~ msgstr "`alias' sin argumentos o con la opción -p muestra la lista" + +#~ msgid "of aliases in the form alias NAME=VALUE on standard output." +#~ msgstr "de aliases en la forma alias NOMBRE=VALOR por la entrada estándar." + +# Más en español sería: se define un alias por cada NOMBRE cuyo VALOR se da. sv +# De acuerdo. cfuga +#~ msgid "Otherwise, an alias is defined for each NAME whose VALUE is given." +#~ msgstr "" +#~ "De otra manera, se define un alias por cada NOMBRE cuyo VALOR se da." + +#~ msgid "A trailing space in VALUE causes the next word to be checked for" +#~ msgstr "" +#~ "Un espacio final en VALOR causa que la siguiente palabra sea revisada para" + +# Lo mismo de antes: el alias es expandido -> el alias se expande. sv +# De acuerdo. cfuga +#~ msgid "alias substitution when the alias is expanded. Alias returns" +#~ msgstr "la sustitución del alias cuando el alias se expande. Alias devuelve" + +# no alias -> ningún alias. sv +# De acuerdo. cfuga +#~ msgid "true unless a NAME is given for which no alias has been defined." +#~ msgstr "" +#~ "verdadero a menos que para un NOMBRE dado no se haya definido ningún " +#~ "alias." + +#~ msgid "then remove all alias definitions." +#~ msgstr "entonces borra todas las definiciones de alias." + +#~ msgid "Bind a key sequence to a Readline function, or to a macro. The" +#~ msgstr "" +#~ "Asigna una secuencia de teclas a una función Readline, o a una macro. La" + +#~ msgid "syntax is equivalent to that found in ~/.inputrc, but must be" +#~ msgstr "" +#~ "sintaxis es equivalente a la encontrada en ~/.inputrc, pero debe ser" + +#~ msgid "" +#~ "passed as a single argument: bind '\"\\C-x\\C-r\": re-read-init-file'." +#~ msgstr "" +#~ "pasada como un solo argumento: bind '\"\\C-x\\C-r\": re-read-init-file'." + +#~ msgid "Arguments we accept:" +#~ msgstr "Argumentos que se aceptan:" + +#~ msgid "" +#~ " -m keymap Use `keymap' as the keymap for the duration of this" +#~ msgstr "" +#~ " -m mapa_teclas Usa `mapa_teclas' como el mapa de teclas durante esta" + +#~ msgid " command. Acceptable keymap names are emacs," +#~ msgstr "" +#~ " orden. Los nombres de mapas de teclas aceptables son" + +#~ msgid "" +#~ " emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move," +#~ msgstr "" +#~ " emacs, emacs-standard, emacs-meta, emacs-ctlx, vi," + +#~ msgid " vi-command, and vi-insert." +#~ msgstr " vi-move, vi-command y vi-insert." + +#~ msgid " -l List names of functions." +#~ msgstr " -l Muestra los nombres de las funciones." + +#~ msgid " -P List function names and bindings." +#~ msgstr "" +#~ " -P Muestra los nombres de funciones y asignaciones." + +#~ msgid "" +#~ " -p List functions and bindings in a form that can be" +#~ msgstr "" +#~ " -p Muestra las funciones y asignaciones en un formato " +#~ "que" + +#~ msgid " reused as input." +#~ msgstr " puede reusarse como entrada." + +#~ msgid " -r keyseq Remove the binding for KEYSEQ." +#~ msgstr " -r sec_teclas Borra la asignación para SEC_TECLAS" + +# lee 'la'... em+ +#~ msgid " -f filename Read key bindings from FILENAME." +#~ msgstr " -f fichero Lee la asignación de teclas de FICHERO." + +#~ msgid "" +#~ " -q function-name Query about which keys invoke the named function." +#~ msgstr "" +#~ " -q nombre-función Pregunta sobre qué teclas invocan la función " +#~ "nombrada." + +#~ msgid " -V List variable names and values" +#~ msgstr " -V Muestra los nombres de variables y valores" + +#~ msgid "" +#~ " -v List variable names and values in a form that can" +#~ msgstr "" +#~ " -v Muestra los nombres de variables y valores de una " +#~ "forma que" + +#~ msgid " be reused as input." +#~ msgstr " puede reusarse como entrada." + +#~ msgid "" +#~ " -S List key sequences that invoke macros and their " +#~ "values" +#~ msgstr "" +#~ " -S Muestra las secuencias de teclas que invocan macros " +#~ "y sus\n" +#~ " valores" + +#~ msgid "" +#~ " -s List key sequences that invoke macros and their " +#~ "values in" +#~ msgstr "" +#~ " -s Muestra las secuencias de teclas que invocan macros " +#~ "y sus" + +#~ msgid " a form that can be reused as input." +#~ msgstr "" +#~ " valores en una forma que puede reusarse como entrada." + +#~ msgid "break N levels." +#~ msgstr "sale N niveles." + +#~ msgid "If N is specified, resume at the N-th enclosing loop." +#~ msgstr "Si se especifica N, retoma en el N-ésimo ciclo." + +#~ msgid "Run a shell builtin. This is useful when you wish to rename a" +#~ msgstr "Ejecuta un shell interno. Esto es útil cuando desea renombrar un" + +#~ msgid "shell builtin to be a function, but need the functionality of the" +#~ msgstr "" +#~ "shell interno para que sea una función, pero necesita la funcionalidad" + +#~ msgid "builtin within the function itself." +#~ msgstr "interna dentro de la misma función." + +#~ msgid "Change the current directory to DIR. The variable $HOME is the" +#~ msgstr "Cambia el directorio actual a DIR. La variable $HOME es el DIR" + +#~ msgid "default DIR. The variable $CDPATH defines the search path for" +#~ msgstr "por omisión. La variable $CDPATH define la ruta de búsqueda para" + +#~ msgid "the directory containing DIR. Alternative directory names in CDPATH" +#~ msgstr "" +#~ "el directorio que contiene DIR. Los nombres alternativos de directorio en" + +#~ msgid "are separated by a colon (:). A null directory name is the same as" +#~ msgstr "" +#~ "CDPATH son separados por dos puntos (:). Un nombre de directorio nulo es" + +# Slash lo venimos traduciendo por barra inclinada , y backslash +# por barra invertida em++ +#~ msgid "the current directory, i.e. `.'. If DIR begins with a slash (/)," +#~ msgstr "" +#~ "igual al directorio actual, p.e. `.'. Si DIR comienza con una barra " +#~ "inclinada" + +#~ msgid "then $CDPATH is not used. If the directory is not found, and the" +#~ msgstr "" +#~ "(/), entonces $CDPATH no se usa. Si el directorio no se encuentra, y" + +#~ msgid "shell option `cdable_vars' is set, then try the word as a variable" +#~ msgstr "" +#~ "la opción de shell `cdable_vars' está activa, entonces intenta la palabra" + +#~ msgid "name. If that variable has a value, then cd to the value of that" +#~ msgstr "" +#~ "como nombre de variable. Si esa variable tiene un valor, entonces se " +#~ "cambia al" + +#~ msgid "" +#~ "variable. The -P option says to use the physical directory structure" +#~ msgstr "" +#~ "valor de esa variable. La opción -P indica el uso de la estructura física" + +#~ msgid "" +#~ "instead of following symbolic links; the -L option forces symbolic links" +#~ msgstr "del directorio en lugar de seguir enlaces simbólicos; la opción -L" + +# forza -> fuerza? cfuga +#~ msgid "to be followed." +#~ msgstr "fuerza que los vínculos simbólicos sean seguidos." + +#~ msgid "Print the current working directory. With the -P option, pwd prints" +#~ msgstr "" +#~ "Imprime el directorio actual de trabajo. Con la opción -P, pwd imprime" + +#~ msgid "the physical directory, without any symbolic links; the -L option" +#~ msgstr "el directorio físico, sin ningún enlace simbólico; la opción -L" + +#~ msgid "makes pwd follow symbolic links." +#~ msgstr "hace que pwd siga los enlaces simbólicos." + +#~ msgid "" +#~ "Runs COMMAND with ARGS ignoring shell functions. If you have a shell" +#~ msgstr "Ejecuta ORDEN con ARGUMENTOS ignorando las funciones del shell. Si" + +#~ msgid "function called `ls', and you wish to call the command `ls', you can" +#~ msgstr "" +#~ "tiene una función de shell llamada `ls', y desea llamar a la orden `ls'," + +#~ msgid "" +#~ "say \"command ls\". If the -p option is given, a default value is used" +#~ msgstr "" +#~ "se puede decir \"command ls\". Si se especifica la opción -p, se usa un " +#~ "valor" + +# es usado -> se usa. sv +# De acuerdo. La corrección incluye también la línea anterior. cfuga +#~ msgid "" +#~ "for PATH that is guaranteed to find all of the standard utilities. If" +#~ msgstr "" +#~ "por omisión para PATH que garantiza encontrar todas las herramientas " +#~ "estándar." + +# es impresa -> se muestra una cadena em+ +# "Si se da la opcón -V o -v,..." sv +# De acuerdo. cfuga +#~ msgid "" +#~ "the -V or -v option is given, a string is printed describing COMMAND." +#~ msgstr "" +#~ "Si se da la opción -V o -v, se muestra una cadena describiendo la ORDEN." + +#~ msgid "The -V option produces a more verbose description." +#~ msgstr "La opción -V produce una descripción más completa." + +#~ msgid "Declare variables and/or give them attributes. If no NAMEs are" +#~ msgstr "" +#~ "Declara variables y/o les da atributos. Si no se proporcionan NOMBREs," + +#~ msgid "given, then display the values of variables instead. The -p option" +#~ msgstr "entonces muestra los valores de las variables. La opción -p" + +#~ msgid "will display the attributes and values of each NAME." +#~ msgstr "mostrará los atributos y valores de cada NOMBRE." + +#~ msgid "The flags are:" +#~ msgstr "Los indicadores son:" + +#~ msgid " -a\tto make NAMEs arrays (if supported)" +#~ msgstr " -a\thacer los NOMBREs matrices (si está soportado)" + +#~ msgid " -f\tto select from among function names only" +#~ msgstr " -f\tseleccionar sólo entre los nombres de funciones" + +#~ msgid " -F\tto display function names without definitions" +#~ msgstr " -F\tmostrar los nombres de funciones sin definiciones" + +#~ msgid " -r\tto make NAMEs readonly" +#~ msgstr " -r\thacer los NOMBREs de sólo lectura" + +#~ msgid " -x\tto make NAMEs export" +#~ msgstr " -x\thacer los NOMBREs exportables" + +#~ msgid " -i\tto make NAMEs have the `integer' attribute set" +#~ msgstr " -i\thacer que los NOMBREs tengan el atributo `entero' activado" + +#~ msgid "Variables with the integer attribute have arithmetic evaluation (see" +#~ msgstr "Las variables con el atributo entero tienen evaluación aritmética" + +#~ msgid "`let') done when the variable is assigned to." +#~ msgstr "(ver `let') cuando la variable es asignada." + +#~ msgid "When displaying values of variables, -f displays a function's name" +#~ msgstr "Cuando se muestran valores de variables, -f muestra el nombre y" + +#~ msgid "and definition. The -F option restricts the display to function" +#~ msgstr "la definición de la función. La opción -F evita que se muestre" + +#~ msgid "name only." +#~ msgstr "solamente el nombre de la función." + +# apaga -> desactiva em+ +#~ msgid "" +#~ "Using `+' instead of `-' turns off the given attribute instead. When" +#~ msgstr "" +#~ "Usar `+' en lugar de `-' desactiva el atributo dado. Cuando es usado" + +#~ msgid "used in a function, makes NAMEs local, as with the `local' command." +#~ msgstr "" +#~ "en una función, hace los NOMBREs locales, como con la orden `local'." + +# y le da -> y le asigna em+ +#~ msgid "Create a local variable called NAME, and give it VALUE. LOCAL" +#~ msgstr "Crea una variable local llamada NOMBRE, y le asigna un VALOR. LOCAL" + +# tenga un alcance visible -> sea visible solo para la función y sus los hijos em+ +#~ msgid "have a visible scope restricted to that function and its children." +#~ msgstr "tenga visible sólo para la función y sus hijos." + +#~ msgid "Output the ARGs. If -n is specified, the trailing newline is" +#~ msgstr "Muestra los ARGumentos. Si -n es especificado, el carácter final de" + +#~ msgid "suppressed. If the -e option is given, interpretation of the" +#~ msgstr "" +#~ "fin de línea es eliminado. Si se especifica la opción -e, se activa la" + +#~ msgid "following backslash-escaped characters is turned on:" +#~ msgstr "interpretación de estos caracteres de escape con barras invertidas:" + +#~ msgid "\t\\a\talert (bell)" +#~ msgstr "\t\\a\talerta (campana)" + +#~ msgid "\t\\b\tbackspace" +#~ msgstr "\t\\b\tespacio hacia atrás" + +#~ msgid "\t\\c\tsuppress trailing newline" +#~ msgstr "\t\\c\tsuprime el carácter de fin de línea restante" + +#~ msgid "\t\\E\tescape character" +#~ msgstr "\t\\E\tcarácter de escape" + +#~ msgid "\t\\f\tform feed" +#~ msgstr "\t\\f\talimentación de papel" + +#~ msgid "\t\\n\tnew line" +#~ msgstr "\t\\n\tnueva línea" + +#~ msgid "\t\\r\tcarriage return" +#~ msgstr "\t\\r\tretorno de carro" + +#~ msgid "\t\\t\thorizontal tab" +#~ msgstr "\t\\t\ttabulador horizontal" + +#~ msgid "\t\\v\tvertical tab" +#~ msgstr "\t\\v\ttabulador vertical" + +#~ msgid "\t\\\\\tbackslash" +#~ msgstr "\t\\\\\tbarra invertida" + +#~ msgid "\t\\num\tthe character whose ASCII code is NUM (octal)." +#~ msgstr "\t\\num\tel carácter cuyo código ASCII es NÚM (octal)." + +#~ msgid "" +#~ "You can explicitly turn off the interpretation of the above characters" +#~ msgstr "Puede desactivar explícitamente la interpretación de los siguientes" + +#~ msgid "with the -E option." +#~ msgstr "caracteres con la opción -E ." + +#~ msgid "Enable and disable builtin shell commands. This allows" +#~ msgstr "Activa y desactiva las órdenes internas del shell. Esto permite" + +#~ msgid "you to use a disk command which has the same name as a shell" +#~ msgstr "" +#~ "que use una orden del sistema que tenga el mismo nombre de una orden" + +#~ msgid "builtin. If -n is used, the NAMEs become disabled; otherwise" +#~ msgstr "interna. Si se usa -n , los NOMBREs se desactivan; de otra forma" + +#~ msgid "NAMEs are enabled. For example, to use the `test' found on your" +#~ msgstr "se activan los NOMBREs. Por ejemplo, para usar `test' de la" + +#~ msgid "path instead of the shell builtin version, type `enable -n test'." +#~ msgstr "" +#~ "ruta de acceso en lugar de la versión interna del shell, teclee\n" +#~ "`enable -n test'." + +# se puede usar. sv +#~ msgid "On systems supporting dynamic loading, the -f option may be used" +#~ msgstr "En sistemas que soportan carga dinámica, la opción -f se puede usar" + +#~ msgid "to load new builtins from the shared object FILENAME. The -d" +#~ msgstr "para cargar nuevas órdenes internas del objeto FICHERO compartido." + +#~ msgid "option will delete a builtin previously loaded with -f. If no" +#~ msgstr "La opción -d borrará una orden interna cargada con -f. Si no" + +#~ msgid "non-option names are given, or the -p option is supplied, a list" +#~ msgstr "" +#~ "se especifica ninguna opción, o se especifica la opción -p, se muestra " +#~ "una lista" + +# Se muestra una lista de órdenes internas. sv +# Hay muchos más mensajes que están en "pasiva" que quedarían mejor en +# forma "reflexiva". No comento más y te dejo que los mires despacio. +# Gracias por la observación. cfuga +#~ msgid "of builtins is printed. The -a option means to print every builtin" +#~ msgstr "" +#~ "de órdenes internas. La opción -a implica mostrar cada orden interno" + +#~ msgid "with an indication of whether or not it is enabled. The -s option" +#~ msgstr "con una indicación de si está activa o no. La opción -s impide" + +#~ msgid "restricts the output to the Posix.2 `special' builtins. The -n" +#~ msgstr "la salida a las órdenes internas `especiales' Posix.2. La opción -n" + +#~ msgid "option displays a list of all disabled builtins." +#~ msgstr "muestra una lista de todos las órdenes internas desactivadas." + +#~ msgid "Getopts is used by shell procedures to parse positional parameters." +#~ msgstr "" +#~ "Los procedimientos de shell usan getopts para decodificar parámetros\n" +#~ "de posición." + +# "a ser reconocidas" no está en español. +# Yo pondría "las letras de opción que se reconocen". sv +# De acuerdo. cfuga +#~ msgid "OPTSTRING contains the option letters to be recognized; if a letter" +#~ msgstr "" +#~ "La CADENA_OPCIONES contiene las letras de opción que se reconocen; si una" + +#~ msgid "is followed by a colon, the option is expected to have an argument," +#~ msgstr "" +#~ "letra es seguida de dos puntos, se espera que la opción tenga un " +#~ "argumento," + +#~ msgid "which should be separated from it by white space." +#~ msgstr "que debe estar separado por espacios." + +#~ msgid "Each time it is invoked, getopts will place the next option in the" +#~ msgstr "Cada vez que se llama, getopts colocará la siguiente opción en" + +#~ msgid "shell variable $name, initializing name if it does not exist, and" +#~ msgstr "" +#~ "la variable de shell $nombre, creando nombre si no existe, y el índice" + +#~ msgid "the index of the next argument to be processed into the shell" +#~ msgstr "" +#~ "del siguiente argumento para procesarse dentro de la variable del shell" + +#~ msgid "variable OPTIND. OPTIND is initialized to 1 each time the shell or" +#~ msgstr "OPTIND. OPTIND inicia con 1 cada vez que el shell o un guión de" + +#~ msgid "a shell script is invoked. When an option requires an argument," +#~ msgstr "shell es llamado. Cuando una opción requiere un argumento," + +#~ msgid "getopts places that argument into the shell variable OPTARG." +#~ msgstr "getopts coloca ese argumento en la variable de shell OPTARG." + +# en una de dos formas -> en una de las dos formas siguientes em+ +#~ msgid "getopts reports errors in one of two ways. If the first character" +#~ msgstr "" +#~ "getopts comunica errores en una de las dos formas siguientes. Si el " +#~ "primer carácter" + +#~ msgid "of OPTSTRING is a colon, getopts uses silent error reporting. In" +#~ msgstr "" +#~ "de OPTSTRING es dos puntos, getopts usa el aviso de error silencioso." + +#~ msgid "this mode, no error messages are printed. If an illegal option is" +#~ msgstr "" +#~ "En este modo, no se muestran mensajes de error. Si se encuentra una " +#~ "opción" + +#~ msgid "seen, getopts places the option character found into OPTARG. If a" +#~ msgstr "ilegal, getopts coloca el carácter de opción encontrado en OPTARG." + +#~ msgid "required argument is not found, getopts places a ':' into NAME and" +#~ msgstr "" +#~ "Si un argumento necesario no se encuentra, getopts coloca ':' en NOMBRE" + +#~ msgid "sets OPTARG to the option character found. If getopts is not in" +#~ msgstr "y establece a OPTARG con el carácter de opción encontrado. Si" + +#~ msgid "silent mode, and an illegal option is seen, getopts places '?' into" +#~ msgstr "" +#~ "getopts no está en modo silencioso, y se encuentra una opción ilegal," + +#~ msgid "NAME and unsets OPTARG. If a required option is not found, a '?'" +#~ msgstr "getopts coloca '?' en NOMBRE y borra OPTARG. Si no se encuentra" + +#~ msgid "is placed in NAME, OPTARG is unset, and a diagnostic message is" +#~ msgstr "una opción necesaria, se coloca un '?' en NOMBRE, se borra OPTARG," + +#~ msgid "If the shell variable OPTERR has the value 0, getopts disables the" +#~ msgstr "" +#~ "Si la variable de shell OPTERR tiene el valor 0, getopts deshabilita" + +#~ msgid "printing of error messages, even if the first character of" +#~ msgstr "la notificación de mensajes de error, aún si el primer carácter de" + +#~ msgid "OPTSTRING is not a colon. OPTERR has the value 1 by default." +#~ msgstr "OPTSTRING no es ':'. OPTERR tiene el valor de 1 por omisión." + +#~ msgid "Getopts normally parses the positional parameters ($0 - $9), but if" +#~ msgstr "" +#~ "Getopts normalmente compara los parámetros de posición ($0 - $9), pero" + +# dar argumentos -> especificar em+ +#~ msgid "more arguments are given, they are parsed instead." +#~ msgstr "" +#~ "si se especifican más argumentos, se comparan en lugar de los primeros." + +#~ msgid "Exec FILE, replacing this shell with the specified program." +#~ msgstr "" +#~ "Ejecuta el FICHERO, reemplazando este shell con el programa especificado." + +#~ msgid "If FILE is not specified, the redirections take effect in this" +#~ msgstr "" +#~ "Si no se especifica un FICHERO, las redirecciones toman efecto en este" + +#~ msgid "shell. If the first argument is `-l', then place a dash in the" +#~ msgstr "shell. Si el primer argumento es `-l', entonces coloca un guión en" + +#~ msgid "zeroth arg passed to FILE, as login does. If the `-c' option" +#~ msgstr "" +#~ "el argumento 0 pasado al FICHERO, como lo hace login. Si se especifica la " +#~ "opción" + +#~ msgid "is supplied, FILE is executed with a null environment. The `-a'" +#~ msgstr "`-c', el FICHERO se ejecuta en un entorno nulo. La opción `-a'" + +#~ msgid "option means to make set argv[0] of the executed process to NAME." +#~ msgstr "hace que cambie el argv[0] del proceso ejecutado a NOMBRE." + +#~ msgid "If the file cannot be executed and the shell is not interactive," +#~ msgstr "Si el fichero no se puede ejecutar y el shell no es interactivo," + +#~ msgid "then the shell exits, unless the variable \"no_exit_on_failed_exec\"" +#~ msgstr "entonces el shell termina, a menos que la variable" + +#~ msgid "is set." +#~ msgstr "\"no_exit_on_failed_exec\" esté activada." + +#~ msgid "is that of the last command executed." +#~ msgstr "es el del último comando ejecutado." + +#~ msgid "" +#~ "FIRST and LAST can be numbers specifying the range, or FIRST can be a" +#~ msgstr "" +#~ "PRIMERO y ÚLTIMO pueden ser números especificando el rango, o PRIMERO" + +#~ msgid "string, which means the most recent command beginning with that" +#~ msgstr "puede ser una cadena, que representa el comando más reciente que" + +#~ msgid "string." +#~ msgstr "comience con dicha cadena." + +#~ msgid "" +#~ " -e ENAME selects which editor to use. Default is FCEDIT, then EDITOR," +#~ msgstr "" +#~ " -e NOMBRE_E escoge qué editor emplear. Por omisión es FCEDIT, después" + +#~ msgid "" +#~ " then the editor which corresponds to the current readline editing" +#~ msgstr " EDITOR, después el editor que corresponde a la edición actual" + +#~ msgid " mode, then vi." +#~ msgstr " del modo de línea de comando, y finalmente vi." + +#~ msgid " -l means list lines instead of editing." +#~ msgstr " -l significa mostrar líneas en lugar de editarlas." + +#~ msgid " -n means no line numbers listed." +#~ msgstr " -n significa que no sean mostrados los números de línea." + +#~ msgid "" +#~ " -r means reverse the order of the lines (making it newest listed " +#~ "first)." +#~ msgstr "" +#~ " -r significa invertir el orden de las líneas (líneas nuevas primero)." + +#~ msgid "With the `fc -s [pat=rep ...] [command]' format, the command is" +#~ msgstr "Con el formato `fc -s [pat=rep ...] [orden]', la orden es" + +#~ msgid "re-executed after the substitution OLD=NEW is performed." +#~ msgstr "" +#~ "re-ejecutado después de que se realiza la sustitución ANTIGUA=NUEVA." + +#~ msgid "A useful alias to use with this is r='fc -s', so that typing `r cc'" +#~ msgstr "" +#~ "Un alias útil para usar con esto es r='fc -s', así que al teclear `r cc'" + +#~ msgid "runs the last command beginning with `cc' and typing `r' re-executes" +#~ msgstr "" +#~ "ejecuta la última orden que comenzó con `cc' y tecleando `r' re-ejecuta" + +#~ msgid "JOB_SPEC is not present, the shell's notion of the current job is" +#~ msgstr "" +#~ "Si el ID_TRABAJO no se encuentra, se usa la noción del shell de trabajo" + +#~ msgid "used." +#~ msgstr "actual." + +#~ msgid "Place JOB_SPEC in the background, as if it had been started with" +#~ msgstr "" +#~ "Ubica al ID_TRABAJO en el background, como si hubiera sido iniciado con" + +#~ msgid "`&'. If JOB_SPEC is not present, the shell's notion of the current" +#~ msgstr "`&'. Si el ID_TRABAJO no se encuentra, se usa la noción del shell" + +#~ msgid "job is used." +#~ msgstr "de trabajo actual." + +#~ msgid "For each NAME, the full pathname of the command is determined and" +#~ msgstr "Para cada NOMBRE, se determina la ruta completa de la orden y se" + +#~ msgid "remembered. If the -p option is supplied, PATHNAME is used as the" +#~ msgstr "recuerda. Si se especifica la opción -p, se usa la RUTA_DE_ACCESO" + +#~ msgid "full pathname of NAME, and no path search is performed. The -r" +#~ msgstr "" +#~ "como la ruta completa de NOMBRE y no se realiza la búsqueda de ruta." + +#~ msgid "option causes the shell to forget all remembered locations. If no" +#~ msgstr "" +#~ " La opción -r hace que el shell olvide todas las ubicaciones recordadas." + +#~ msgid "" +#~ "arguments are given, information about remembered commands is displayed." +#~ msgstr "" +#~ " Si no se especifican argumentos, se muestra la información sobre las " +#~ "órdenes recordadas." + +#~ msgid "Display helpful information about builtin commands. If PATTERN is" +#~ msgstr "Muestra información de ayuda acerca de las órdenes internas. Si se" + +#~ msgid "specified, gives detailed help on all commands matching PATTERN," +#~ msgstr "" +#~ "especifica la PLANTILLA, da ayuda detallada de todas las órdenes que" + +#~ msgid "otherwise a list of the builtins is printed." +#~ msgstr "" +#~ "coinciden con la PLANTILLA, de otra forma se muestra una lista de las " +#~ "órdenes internas." + +#~ msgid "Display the history list with line numbers. Lines listed with" +#~ msgstr "" +#~ "Muestra la lista de la historia con números de línea. Las líneas " +#~ "mostradas" + +#~ msgid "with a `*' have been modified. Argument of N says to list only" +#~ msgstr "" +#~ "con un `*' han sido modificadas. Un argumento de N indica que solo se" + +#~ msgid "the last N lines. The -c option causes the history list to be" +#~ msgstr "" +#~ "muestren las últimas N líneas. La opción -c hace que la lista de la " +#~ "historia" + +#~ msgid "" +#~ "cleared by deleting all of the entries. The `-w' option writes out the" +#~ msgstr "" +#~ "sea borrada eliminando todas las entradas. La opción `-w' escribe la " +#~ "historia" + +#~ msgid "" +#~ "current history to the history file; `-r' means to read the file and" +#~ msgstr "" +#~ "actual al fichero de historia; `-r' al contrario, lee el fichero y agrega" + +#~ msgid "append the contents to the history list instead. `-a' means" +#~ msgstr "el contenido a la lista de la historia. `-a' agrega las" + +#~ msgid "to append history lines from this session to the history file." +#~ msgstr "líneas de la historia de esta sesión al fichero de historia." + +#~ msgid "Argument `-n' means to read all history lines not already read" +#~ msgstr "El argumento `-n' lee todas las líneas de historia que no han sido" + +#~ msgid "from the history file and append them to the history list. If" +#~ msgstr "" +#~ "leídas aún del fichero de historia y las agrega a la lista de historia." + +#~ msgid "FILENAME is given, then that is used as the history file else" +#~ msgstr "" +#~ " Si se especifica un FICHERO, entonces se usa como el fichero de historia" + +#~ msgid "if $HISTFILE has a value, that is used, else ~/.bash_history." +#~ msgstr "" +#~ "de otra manera si $HISTFILE tiene un valor, se utiliza, de otra forma se " +#~ "usa ~/.bash_history." + +#~ msgid "If the -s option is supplied, the non-option ARGs are appended to" +#~ msgstr "" +#~ "Si se especifica la opción -s, los ARGumentos que no son opciones se" + +#~ msgid "the history list as a single entry. The -p option means to perform" +#~ msgstr "" +#~ "agregan a la lista de historia como una sola entrada. La opción -p " +#~ "realiza" + +#~ msgid "" +#~ "history expansion on each ARG and display the result, without storing" +#~ msgstr "" +#~ "una expansión de historia en cada ARGumento y muestra el resultado, sin " +#~ "guardar" + +#~ msgid "anything in the history list." +#~ msgstr "nada en la lista de historia." + +#~ msgid "Lists the active jobs. The -l option lists process id's in addition" +#~ msgstr "" +#~ "Muestra los trabajos activos. La opción -l muestra los id's de los " +#~ "procesos además" + +#~ msgid "to the normal information; the -p option lists process id's only." +#~ msgstr "" +#~ "de la información normal; la opción -p solamente muestra los id's de los " +#~ "procesos." + +#~ msgid "" +#~ "If -n is given, only processes that have changed status since the last" +#~ msgstr "" +#~ "Si se especifica -n, solamente se muestran los procesos que han cambiado" + +#~ msgid "" +#~ "notification are printed. JOBSPEC restricts output to that job. The" +#~ msgstr "" +#~ "de estado desde la última notificación. IDJOB limita la salida a ese " +#~ "trabajo. Las" + +#~ msgid "-r and -s options restrict output to running and stopped jobs only," +#~ msgstr "" +#~ "opciones -r y -s limitan la salida a mostrar sólo trabajos corriendo y " +#~ "detenidos," + +#~ msgid "respectively. Without options, the status of all active jobs is" +#~ msgstr "respectivamente. Sin opciones, se muestra el estado de todos los" + +#~ msgid "" +#~ "printed. If -x is given, COMMAND is run after all job specifications" +#~ msgstr "" +#~ "trabajos activos. Si se especifica -x, la ORDEN se ejecuta después de " +#~ "que todas las especificaciones de trabajos" + +#~ msgid "" +#~ "that appear in ARGS have been replaced with the process ID of that job's" +#~ msgstr "que aparecen en ARGS han sido reemplazadas por el ID de proceso del" + +#~ msgid "process group leader." +#~ msgstr "líder del grupo de procesos de dicho trabajo." + +#~ msgid "Removes each JOBSPEC argument from the table of active jobs." +#~ msgstr "Elimina cada argumento IDJOBS de la tabla de trabajos activos." + +#~ msgid "Send the processes named by PID (or JOB) the signal SIGSPEC. If" +#~ msgstr "" +#~ "Manda a los procesos nombrados por PID (o TRABAJO) la señal SIGSPEC. Si" + +#~ msgid "" +#~ "SIGSPEC is not present, then SIGTERM is assumed. An argument of `-l'" +#~ msgstr "" +#~ "no se especifica SIGSPEC, entonces se asume SIGTERM. El argumento `-l'" + +#~ msgid "lists the signal names; if arguments follow `-l' they are assumed to" +#~ msgstr "" +#~ "muestra los nombres de señales; si hay argumentos después de `-l', se" + +#~ msgid "be signal numbers for which names should be listed. Kill is a shell" +#~ msgstr "" +#~ "asume que son números de señales cuyos nombres deben mostrarse. Kill es " +#~ "una orden" + +#~ msgid "builtin for two reasons: it allows job IDs to be used instead of" +#~ msgstr "" +#~ "interna de shell por dos razones: permite que los IDs de trabajos sean " +#~ "usados en lugar de " + +#~ msgid "process IDs, and, if you have reached the limit on processes that" +#~ msgstr "IDs de procesos, y, si ha alcanzado el límite de procesos que" + +#~ msgid "" +#~ "you can create, you don't have to start a process to kill another one." +#~ msgstr "puede crear, no tiene que iniciar un proceso para eliminar a otro." + +# "a ser evaluada" no está en español. sv +# Cierto. ¿Así está mejor? cfuga +#~ msgid "Each ARG is an arithmetic expression to be evaluated. Evaluation" +#~ msgstr "" +#~ "Cada ARGumento es una expresión aritmética para evaluarse. La evaluación" + +# overflow -> desbordamiento o sobrepasamiento. nunca lo he visto +# traducido como sobreflujo. sv +# Corregido. cfuga +#~ msgid "is done in long integers with no check for overflow, though division" +#~ msgstr "" +#~ "se hace en enteros long sin revisar desbordamientos, aunque la división" + +#~ msgid "by 0 is trapped and flagged as an error. The following list of" +#~ msgstr "por 0 es capturada y marcada como un error. La siguiente lista de" + +# No sé si existe precedencia en español, pero me suena fatal. +# Yo pondría simplemente "prioridad". sv +# Creo que si existe, pero tu sugerencia es mejor. cfuga +#~ msgid "operators is grouped into levels of equal-precedence operators." +#~ msgstr "" +#~ "operadores está agrupada en niveles de operadores de la misma prioridad." + +#~ msgid "The levels are listed in order of decreasing precedence." +#~ msgstr "Se muestran los niveles en orden de prioridad decreciente." + +#~ msgid "\t-, +\t\tunary minus, plus" +#~ msgstr "\t-, +\t\tmenos unario, más" + +#~ msgid "\t!, ~\t\tlogical and bitwise negation" +#~ msgstr "\t!, ~\t\tnegación lógica y basada en bits" + +#~ msgid "\t*, /, %\t\tmultiplication, division, remainder" +#~ msgstr "\t*, /, %\t\tmultiplicación, división, residuo" + +#~ msgid "\t+, -\t\taddition, subtraction" +#~ msgstr "\t+, -\t\tadición, sustracción" + +#~ msgid "\t<<, >>\t\tleft and right bitwise shifts" +#~ msgstr "\t<<, >>\t\tdesplazamientos de bits izquierdo y derecho" + +#~ msgid "\t<=, >=, <, >\tcomparison" +#~ msgstr "\t<=, >=, <, >\tcomparación" + +#~ msgid "\t==, !=\t\tequality, inequality" +#~ msgstr "\t==, !=\t\tequivalencia, inequivalencia" + +#~ msgid "\t&\t\tbitwise AND" +#~ msgstr "\t&\t\tAND de bits" + +#~ msgid "\t^\t\tbitwise XOR" +#~ msgstr "\t^\t\tXOR de bits" + +#~ msgid "\t|\t\tbitwise OR" +#~ msgstr "\t|\t\tOR de bits" + +#~ msgid "\t&&\t\tlogical AND" +#~ msgstr "\t&&\t\tAND lógico" + +#~ msgid "\t||\t\tlogical OR" +#~ msgstr "\t||\t\tOR lógico" + +#~ msgid "\texpr ? expr : expr" +#~ msgstr "\texpr ? expr : expr" + +#~ msgid "\t\t\tconditional expression" +#~ msgstr "\t\t\texpresión condicional" + +#~ msgid "\t=, *=, /=, %=," +#~ msgstr "\t=, *=, /=, %=," + +#~ msgid "\t+=, -=, <<=, >>=," +#~ msgstr "\t+=, -=, <<=, >>=," + +#~ msgid "\t&=, ^=, |=\tassignment" +#~ msgstr "asignaciones\t&=, ^=, |=" + +#~ msgid "is replaced by its value (coerced to a long integer) within" +#~ msgstr "de la variable por su valor (asignado a un entero long) dentro de" + +#~ msgid "an expression. The variable need not have its integer attribute" +#~ msgstr "una expresión. La variable no necesita tener activado su atributo" + +#~ msgid "turned on to be used in an expression." +#~ msgstr "entero para que se use en una expresión." + +#~ msgid "Operators are evaluated in order of precedence. Sub-expressions in" +#~ msgstr "" +#~ "Los operadores se evalúan en orden de prioridad. Se evalúan en primer" + +#~ msgid "parentheses are evaluated first and may override the precedence" +#~ msgstr "lugar las sub-expresiones en paréntesis y pueden sobrepasar las" + +#~ msgid "rules above." +#~ msgstr "reglas de prioridad anteriores." + +#~ msgid "If the last ARG evaluates to 0, let returns 1; 0 is returned" +#~ msgstr "Si el último ARGumento evalua a 0, let regresa 1; de otra manera" + +#~ msgid "otherwise." +#~ msgstr "se regresa 0." + +#~ msgid "One line is read from the standard input, and the first word is" +#~ msgstr "Una línea se lee de la entrada estándar, y la primera palabra se" + +#~ msgid "" +#~ "assigned to the first NAME, the second word to the second NAME, and so" +#~ msgstr "" +#~ "asigna al primer NOMBRE, la segunda palabra al segundo NOMBRE, y así" + +#~ msgid "" +#~ "on, with leftover words assigned to the last NAME. Only the characters" +#~ msgstr "" +#~ "con las palabras restantes asignadas al último NOMBRE. Solo los " +#~ "caracteres" + +#~ msgid "found in $IFS are recognized as word delimiters. The return code is" +#~ msgstr "" +#~ "que se encuentran en $IFS se reconocen como delimitadores de palabras. El" + +#~ msgid "" +#~ "zero, unless end-of-file is encountered. If no NAMEs are supplied, the" +#~ msgstr "" +#~ "código de retorno es cero, a menos que se encuentre un fin-de-fichero. " +#~ "Si no" + +#~ msgid "" +#~ "line read is stored in the REPLY variable. If the -r option is given," +#~ msgstr "" +#~ "se establece ningún NOMBRE, la línea leída se guarda en la variable " +#~ "REPLY. Si" + +#~ msgid "this signifies `raw' input, and backslash escaping is disabled. If" +#~ msgstr "" +#~ "se proporciona la opción -r, esto significa entrada `textual', y se " +#~ "desactiva" + +#~ msgid "the `-p' option is supplied, the string supplied as an argument is" +#~ msgstr "el escape de la barra invertida. Si se proporciona la opción `-p'," + +#~ msgid "" +#~ "output without a trailing newline before attempting to read. If -a is" +#~ msgstr "" +#~ "se muestra la cadena proporcionada como argumento sin un fín de línea " +#~ "terminal antes de intentar leerla." + +#~ msgid "" +#~ "supplied, the words read are assigned to sequential indices of ARRAY," +#~ msgstr "" +#~ "Si se da -a, se asignan las palabras leídas a índices secuenciales de " +#~ "MATRIZ" + +#~ msgid "starting at zero. If -e is supplied and the shell is interactive," +#~ msgstr "iniciando en cero. Si se da -e y el shell es interactivo," + +#~ msgid "readline is used to obtain the line." +#~ msgstr "se usa readline para obtener la línea." + +#~ msgid "is omitted, the return status is that of the last command." +#~ msgstr "se omite N, se utiliza el código de estado de la última orden." + +#~ msgid " -a Mark variables which are modified or created for export." +#~ msgstr "" +#~ " -a Marca las variables que se modifican o crean para exportación." + +#~ msgid " -b Notify of job termination immediately." +#~ msgstr " -b Notifica el término de trabajos inmediatamente." + +#~ msgid " -e Exit immediately if a command exits with a non-zero status." +#~ msgstr "" +#~ " -e Termina inmediatamente si una orden termina con un estado " +#~ "diferente a cero." + +#~ msgid " -f Disable file name generation (globbing)." +#~ msgstr "" +#~ " -f Desactiva la generación de nombres de ficheros (englobamiento)." + +#~ msgid " -h Remember the location of commands as they are looked up." +#~ msgstr "" +#~ " -h Recuerda la ubicación de las órdenes como fueron localizadas." + +#~ msgid "" +#~ " -i Force the shell to be an \"interactive\" one. Interactive shells" +#~ msgstr "" +#~ " -i Fuerza que el shell sea \"interactive\". Los shells interactivos" + +#~ msgid " always read `~/.bashrc' on startup." +#~ msgstr " siempre leen `~/.bashrc' al inicio." + +#~ msgid " -k All assignment arguments are placed in the environment for a" +#~ msgstr "" +#~ " -k Todos los argumentos de asignación se ubican en el ambiente para " +#~ "una" + +#~ msgid " command, not just those that precede the command name." +#~ msgstr "" +#~ " orden, no solamente aquéllos que preceden al nombre de la orden." + +#~ msgid " -m Job control is enabled." +#~ msgstr " -m Se activa el control de trabajos." + +#~ msgid " -n Read commands but do not execute them." +#~ msgstr " -n Lee órdenes pero no las ejecuta." + +#~ msgid " -o option-name" +#~ msgstr " -o nombre-opción" + +#~ msgid " Set the variable corresponding to option-name:" +#~ msgstr " Establece la variable correspondiente a nombre-opción:" + +#~ msgid " allexport same as -a" +#~ msgstr " allexport igual que -a" + +#~ msgid " braceexpand same as -B" +#~ msgstr " braceexpand igual que -B" + +#~ msgid " emacs use an emacs-style line editing interface" +#~ msgstr "" +#~ " emacs usa una interfaz de edición de línea estilo emacs" + +#~ msgid " errexit same as -e" +#~ msgstr " errexit igual que -e" + +#~ msgid " hashall same as -h" +#~ msgstr " hashall igual que -h" + +#~ msgid " histexpand same as -H" +#~ msgstr " histexpand igual que -H" + +#~ msgid " ignoreeof the shell will not exit upon reading EOF" +#~ msgstr " ignoreeof el shell no terminará después de leer EOF" + +#~ msgid " interactive-comments" +#~ msgstr " interactive-comments" + +#~ msgid "" +#~ " allow comments to appear in interactive commands" +#~ msgstr "" +#~ " permite que los comentarios se muestren en " +#~ "órdenes interactivas" + +#~ msgid " keyword same as -k" +#~ msgstr " keyword igual que -k" + +#~ msgid " monitor same as -m" +#~ msgstr " monitor igual que -m" + +#~ msgid " noclobber same as -C" +#~ msgstr " noclobber igual que -C" + +#~ msgid " noexec same as -n" +#~ msgstr " noexec igual que -n" + +#~ msgid " noglob same as -f" +#~ msgstr " noglob igual que -f" + +#~ msgid " notify save as -b" +#~ msgstr " notify igual que -b" + +#~ msgid " nounset same as -u" +#~ msgstr " nounset igual que -u" + +#~ msgid " onecmd same as -t" +#~ msgstr " onecmd same as -t" + +#~ msgid " physical same as -P" +#~ msgstr " physical same as -P" + +#~ msgid "" +#~ " posix change the behavior of bash where the default" +#~ msgstr "" +#~ " posix cambia la conducta de bash donde por omisión" + +#~ msgid "" +#~ " operation differs from the 1003.2 standard to" +#~ msgstr "" +#~ " la operación difiere del estándard 1003.2 para" + +#~ msgid " match the standard" +#~ msgstr " cumplir el estándard" + +#~ msgid " privileged same as -p" +#~ msgstr " privileged igual que -p" + +#~ msgid " verbose same as -v" +#~ msgstr " verbose igual que -v" + +#~ msgid " vi use a vi-style line editing interface" +#~ msgstr "" +#~ " vi usa una interfaz de edición de línea estilo vi" + +#~ msgid " xtrace same as -x" +#~ msgstr " xtrace igual que -x" + +#~ msgid "" +#~ " -p Turned on whenever the real and effective user ids do not match." +#~ msgstr "" +#~ " -p Se activa cada vez que los ids real y efectivo no coinciden." + +# FIXME: $ENV es variable, no fichero. cfuga +#~ msgid " Disables processing of the $ENV file and importing of shell" +#~ msgstr "" +#~ " Desactiva el procesamiento del fichero $ENV y la importación de " +#~ "funciones" + +#~ msgid "" +#~ " functions. Turning this option off causes the effective uid and" +#~ msgstr " de shell. Desactivar esta opción causa que el uid y el gid" + +#~ msgid " gid to be set to the real uid and gid." +#~ msgstr " efectivos sean iguales al uid y al gid reales." + +#~ msgid " -t Exit after reading and executing one command." +#~ msgstr " -t Terminar después de leer y ejecutar una orden." + +#~ msgid " -u Treat unset variables as an error when substituting." +#~ msgstr "" +#~ " -u Tratar las variables no establecidas como un error cuando se hace " +#~ "sustitución." + +#~ msgid " -v Print shell input lines as they are read." +#~ msgstr " -v Muestra las líneas de entrada del shell mientras se leen." + +#~ msgid " -x Print commands and their arguments as they are executed." +#~ msgstr " -x Muestra las órdenes y sus argumentos mientras se ejecutan." + +#~ msgid " -B the shell will perform brace expansion" +#~ msgstr " -B el shell hará expansión de llaves" + +#~ msgid " -H Enable ! style history substitution. This flag is on" +#~ msgstr "" +#~ " -H Activa el estilo ! de sustitución de la historia. Este indicador" + +#~ msgid " by default." +#~ msgstr " está activado por omisión." + +#~ msgid " -C If set, disallow existing regular files to be overwritten" +#~ msgstr "" +#~ " -C Si está establecido, evita que los ficheros regulares existentes " +#~ "sean sobreescritos" + +#~ msgid " by redirection of output." +#~ msgstr " por una redirección de salida." + +#~ msgid " -P If set, do not follow symbolic links when executing commands" +#~ msgstr "" +#~ " -P Si está establecido, no se siguen los enlaces simbólicos cuando " +#~ "se ejecutan órdenes" + +#~ msgid " such as cd which change the current directory." +#~ msgstr " como cuando cd cambia al directorio actual." + +#~ msgid "Using + rather than - causes these flags to be turned off. The" +#~ msgstr "" +#~ "Usar + en lugar de - causa que estos indicadores sean desactivados. Los" + +#~ msgid "flags can also be used upon invocation of the shell. The current" +#~ msgstr "" +#~ "indicadores también se pueden usar durante la invocación del shell. El " +#~ "conjunto" + +#~ msgid "" +#~ "set of flags may be found in $-. The remaining n ARGs are positional" +#~ msgstr "" +#~ "actual de indicadores se encuentra en $-. Los ARGumentos n restantes son " +#~ "parámetros" + +#~ msgid "parameters and are assigned, in order, to $1, $2, .. $n. If no" +#~ msgstr "posicionales y se asignan, en orden, a $1, $2, .. $n. Si no" + +#~ msgid "ARGs are given, all shell variables are printed." +#~ msgstr "" +#~ "se establecen ARGumentos, se muestran todas las variables del shell." + +#~ msgid "For each NAME, remove the corresponding variable or function. Given" +#~ msgstr "" +#~ "Para cada NOMBRE, se borra la variable o función correspondiente. Al usar" + +#~ msgid "the `-v', unset will only act on variables. Given the `-f' flag," +#~ msgstr "`-v', unset sólo actuará en variables. Al usar el indicador `-f'," + +#~ msgid "unset will only act on functions. With neither flag, unset first" +#~ msgstr "" +#~ "unset sólo actuará en funciones. Sin ningún indicador, unset primero" + +#~ msgid "tries to unset a variable, and if that fails, then tries to unset a" +#~ msgstr "" +#~ "intenta borrar una variable, y si eso falla, entonces intenta borrar una" + +#~ msgid "" +#~ "function. Some variables (such as PATH and IFS) cannot be unset; also" +#~ msgstr "" +#~ "función. Algunas variables (como PATH e IFS) no se pueden borrar; vea" + +#~ msgid "see readonly." +#~ msgstr "también readonly." + +#~ msgid "NAMEs are marked for automatic export to the environment of" +#~ msgstr "los NOMBREs se marcan para exportación automática al ambiente de" + +#~ msgid "subsequently executed commands. If the -f option is given," +#~ msgstr "" +#~ "las órdenes ejecutadas subsecuentemente. Si se establece el indicador -f," + +#~ msgid "the NAMEs refer to functions. If no NAMEs are given, or if `-p'" +#~ msgstr "" +#~ "los NOMBREs se refieren a funciones. Si no se establecen NOMBREs, o si `-" +#~ "p'" + +#~ msgid "is given, a list of all names that are exported in this shell is" +#~ msgstr "" +#~ "se establece, se muestra una lista de todos los nombres que se exportan" + +#~ msgid "printed. An argument of `-n' says to remove the export property" +#~ msgstr "" +#~ "en este shell. Un argumento `-n' indica que se borre la propiedad de " +#~ "exportación" + +#~ msgid "from subsequent NAMEs. An argument of `--' disables further option" +#~ msgstr "" +#~ "de NOMBREs subsecuentes. Un argumento `--' desactiva el procesamiento" + +#~ msgid "processing." +#~ msgstr "posterior de opciones." + +#~ msgid "" +#~ "The given NAMEs are marked readonly and the values of these NAMEs may" +#~ msgstr "" +#~ "Los NOMBREs dados se marcan como sólo-lectura y los valores de esos " +#~ "NOMBREs" + +#~ msgid "not be changed by subsequent assignment. If the -f option is given," +#~ msgstr "" +#~ "no se pueden cambiar por asignaciones posteriores. Si se establece el " +#~ "indicador -f," + +#~ msgid "then functions corresponding to the NAMEs are so marked. If no" +#~ msgstr "" +#~ "entonces también se marcan las funciones correspondientes a los NOMBREs. " +#~ "Si no" + +#~ msgid "" +#~ "arguments are given, or if `-p' is given, a list of all readonly names" +#~ msgstr "" +#~ "se establecen argumentos, o si se establece `-p', se muestra una lista de " +#~ "todos los nombres" + +#~ msgid "" +#~ "is printed. An argument of `-n' says to remove the readonly property" +#~ msgstr "" +#~ "de sólo-lectura. Un argumento `-n' indica que se borre la propiedad de " +#~ "sólo-lectura" + +#~ msgid "from subsequent NAMEs. The `-a' option means to treat each NAME as" +#~ msgstr "de los NOMBREs subsecuentes. La opción `-a' trata cada NOMBRE como" + +#~ msgid "an array variable. An argument of `--' disables further option" +#~ msgstr "" +#~ "una variable de matriz. Un argumento de `--' desactiva opciones " +#~ "posteriores" + +#~ msgid "not given, it is assumed to be 1." +#~ msgstr "establece N, se asume que es 1." + +#~ msgid "Read and execute commands from FILENAME and return. The pathnames" +#~ msgstr "Lee y ejecuta órdenes del FICHERO y regresa. Los nombres de ruta" + +#~ msgid "in $PATH are used to find the directory containing FILENAME." +#~ msgstr "" +#~ "en $PATH se utilizan para encontrar al directorio que contiene el FICHERO." + +#~ msgid "Suspend the execution of this shell until it receives a SIGCONT" +#~ msgstr "Suspende la ejecución de este shell hasta que recive una señal" + +#~ msgid "signal. The `-f' if specified says not to complain about this" +#~ msgstr "SIGCONT. Si se especifica `-f' indica que no se queje si" + +#~ msgid "being a login shell if it is; just suspend anyway." +#~ msgstr "es un shell de login; y solo suspender de cualquier forma." + +#~ msgid "Exits with a status of 0 (trueness) or 1 (falseness) depending on" +#~ msgstr "Termina con un estado de 0 (verdad) ó 1 (falsedad) dependiendo de" + +#~ msgid "the evaluation of EXPR. Expressions may be unary or binary. Unary" +#~ msgstr "" +#~ "la evaluación de EXPR. Las expresiones pueden ser unarias o binarias. " +#~ "Las expresiones" + +#~ msgid "expressions are often used to examine the status of a file. There" +#~ msgstr "" +#~ "unarias se utilizan con frecuencia para examinar el estado de un fichero." + +#~ msgid "are string operators as well, and numeric comparison operators." +#~ msgstr "" +#~ "Hay operadores de cadenas también, y operadores de comparación numérica." + +#~ msgid "File operators:" +#~ msgstr "Operadores de fichero:" + +#~ msgid " -b FILE True if file is block special." +#~ msgstr " -b FICHERO Verdadero si el fichero es especial de bloques." + +#~ msgid " -c FILE True if file is character special." +#~ msgstr "" +#~ " -c FICHERO Verdadero si el fichero es especial de caracteres." + +#~ msgid " -d FILE True if file is a directory." +#~ msgstr " -d FICHERO Verdadero si el fichero es un directorio." + +#~ msgid " -e FILE True if file exists." +#~ msgstr " -e FICHERO Verdadero si el fichero existe." + +#~ msgid " -f FILE True if file exists and is a regular file." +#~ msgstr "" +#~ " -f FICHERO Verdadero si el fichero existe y es un fichero regular." + +#~ msgid " -g FILE True if file is set-group-id." +#~ msgstr "" +#~ " -g FICHERO Verdadero si el fichero tiene activado el set-group-id." + +#~ msgid " -h FILE True if file is a symbolic link. Use \"-L\"." +#~ msgstr "" +#~ " -h FICHERO Verdadero si el fichero es un enlace simbólico. Use " +#~ "\"-L\"." + +#~ msgid " -L FILE True if file is a symbolic link." +#~ msgstr " -L FICHERO Verdadero si el fichero es un enlace simbólico." + +#~ msgid " -k FILE True if file has its \"sticky\" bit set." +#~ msgstr "" +#~ " -k FICHERO Verdadero si el fichero tiene el bit \"sticky\" " +#~ "activado." + +#~ msgid " -p FILE True if file is a named pipe." +#~ msgstr " -p FICHERO Verdadero si el fichero es una tubería nombrada." + +#~ msgid " -r FILE True if file is readable by you." +#~ msgstr " -r FICHERO Verdadero si usted puede leer el fichero." + +#~ msgid " -s FILE True if file exists and is not empty." +#~ msgstr " -s FICHERO Verdadero si el fichero existe y no está vacío." + +#~ msgid " -S FILE True if file is a socket." +#~ msgstr " -S FICHERO Verdadero si el fichero es un `socket'." + +#~ msgid " -t FD True if FD is opened on a terminal." +#~ msgstr " -t DF Verdadero si DF está abierto en una terminal." + +#~ msgid " -u FILE True if the file is set-user-id." +#~ msgstr "" +#~ " -u FICHERO Verdadero si el fichero tiene activado el set-user-id." + +#~ msgid " -w FILE True if the file is writable by you." +#~ msgstr " -w FICHERO Verdadero si usted puede modificar el fichero." + +#~ msgid " -x FILE True if the file is executable by you." +#~ msgstr " -x FICHERO Verdadero si usted puede ejecutar el fichero." + +#~ msgid " -O FILE True if the file is effectively owned by you." +#~ msgstr "" +#~ " -O FICHERO Verdadero si usted efectivamente posee el fichero." + +#~ msgid "" +#~ " -G FILE True if the file is effectively owned by your group." +#~ msgstr "" +#~ " -G FICHERO Verdadero si su grupo efectivamente posee el fichero." + +#~ msgid " FILE1 -nt FILE2 True if file1 is newer than (according to" +#~ msgstr "" +#~ " FICH1 -nt FICH2 Verdadero si fich1 es más nuevo que (de acuerdo a" + +#~ msgid " modification date) file2." +#~ msgstr " la fecha de modificación) el fich2." + +#~ msgid " FILE1 -ot FILE2 True if file1 is older than file2." +#~ msgstr " FICH1 -ot FICH2 Verdadero si fich1 es más viejo que fich2." + +#~ msgid " FILE1 -ef FILE2 True if file1 is a hard link to file2." +#~ msgstr " FICH1 -ef FICH2 Verdadero si fich1 es un enlace duro a fich2." + +#~ msgid "String operators:" +#~ msgstr "Operadores de cadenas:" + +#~ msgid " -z STRING True if string is empty." +#~ msgstr " -z CADENA Verdadero si la cadena está vacía." + +#~ msgid " -n STRING" +#~ msgstr " -n CADENA" + +#~ msgid " STRING True if string is not empty." +#~ msgstr " CADENA Verdadero si la cadena no está vacía." + +#~ msgid " STRING1 = STRING2" +#~ msgstr " CADENA1 = CADENA2" + +#~ msgid " True if the strings are equal." +#~ msgstr " Verdadero si las cadenas son iguales." + +#~ msgid " STRING1 != STRING2" +#~ msgstr " CADENA1 != CADENA2" + +#~ msgid " True if the strings are not equal." +#~ msgstr " Verdadero si las cadenas no son iguales." + +#~ msgid " STRING1 < STRING2" +#~ msgstr " CADENA1 < CADENA2" + +#~ msgid "" +#~ " True if STRING1 sorts before STRING2 lexicographically" +#~ msgstr "" +#~ " Verdadero si la CADENA1 se ordena antes que la CADENA2 " +#~ "lexicográficamente" + +#~ msgid " STRING1 > STRING2" +#~ msgstr " CADENA1 > CADENA2" + +#~ msgid "" +#~ " True if STRING1 sorts after STRING2 lexicographically" +#~ msgstr "" +#~ " Verdadero si la CADENA1 se ordena después que la " +#~ "CADENA2 lexicográficamente" + +#~ msgid "Other operators:" +#~ msgstr "Otros operadores:" + +#~ msgid " ! EXPR True if expr is false." +#~ msgstr " ! EXPR Verdadero si la expr es falsa" + +#~ msgid " EXPR1 -a EXPR2 True if both expr1 AND expr2 are true." +#~ msgstr " EXPR1 -a EXPR2 Verdadero si ambas expr1 Y expr2 son verdaderas." + +#~ msgid " EXPR1 -o EXPR2 True if either expr1 OR expr2 is true." +#~ msgstr "" +#~ " EXPR1 -o EXPR2 Verdadero si cualquiera de expr1 O expr2 es verdadera." + +#~ msgid " arg1 OP arg2 Arithmetic tests. OP is one of -eq, -ne," +#~ msgstr " arg1 OP arg2 Pruebas aritméticas. OP es uno de -eq, -ne," + +#~ msgid " -lt, -le, -gt, or -ge." +#~ msgstr " -lt, -le, -gt, ó -ge." + +#~ msgid "Arithmetic binary operators return true if ARG1 is equal, not-equal," +#~ msgstr "" +#~ "Los operadores binarios aritméticos devuelven verdadero si ARG1 es igual, " +#~ "no igual," + +#~ msgid "" +#~ "less-than, less-than-or-equal, greater-than, or greater-than-or-equal" +#~ msgstr "menor, menor o igual, mayor, ó mayor o igual" + +#~ msgid "than ARG2." +#~ msgstr "que ARG2." + +#~ msgid "This is a synonym for the \"test\" builtin, but the last" +#~ msgstr "Es un sinónimo para la orden interna \"test\", pero el último" + +#~ msgid "the shell." +#~ msgstr "ejecutados desde el shell." + +#~ msgid "The command ARG is to be read and executed when the shell receives" +#~ msgstr "La orden ARG se lee y ejecuta cuando el shell recibe la(s)" + +#~ msgid "signal(s) SIGNAL_SPEC. If ARG is absent all specified signals are" +#~ msgstr "" +#~ "señal(es) ID_SEÑAL. Si ARG no está, todas las señales especificadas son" + +#~ msgid "reset to their original values. If ARG is the null string each" +#~ msgstr "" +#~ "establecidas a sus valores originales. Si ARG es la cadena nula cada" + +#~ msgid "SIGNAL_SPEC is ignored by the shell and by the commands it invokes." +#~ msgstr "ID_SEÑAL es ignorada por el shell y por las órdenes que invoque." + +#~ msgid "If SIGNAL_SPEC is EXIT (0) the command ARG is executed on exit from" +#~ msgstr "Si ID_SEÑAL es EXIT (0) la orden ARG se ejecuta al terminar el" + +#~ msgid "the shell. If SIGNAL_SPEC is DEBUG, ARG is executed after every" +#~ msgstr "shell. Si ID_SEÑAL es DEBUG, ARG se ejecuta después de cada" + +#~ msgid "command. If ARG is `-p' then the trap commands associated with" +#~ msgstr "orden. Si ARG es `-p' entonces se muestran las órdenes de captura" + +#~ msgid "each SIGNAL_SPEC are displayed. If no arguments are supplied or if" +#~ msgstr "asociadas con cada ID_SEÑAL. Si no se proporcionan argumentos o si" + +#~ msgid "only `-p' is given, trap prints the list of commands associated with" +#~ msgstr "" +#~ "sólo se proporciona `-p', trap muestra la lista de órdenes asociadas" + +#~ msgid "" +#~ "each signal number. SIGNAL_SPEC is either a signal name in " +#~ msgstr "" +#~ "con cada número de señal. ID_SEÑAL es un nombre de señal en " + +#~ msgid "" +#~ "or a signal number. `trap -l' prints a list of signal names and their" +#~ msgstr "" +#~ "o un número de señal. `trap -l' muestra una lista de nombres de señal y " +#~ "sus" + +#~ msgid "corresponding numbers. Note that a signal can be sent to the shell" +#~ msgstr "" +#~ "números correspondientes. Note que una señal se puede enviar al shell" + +#~ msgid "with \"kill -signal $$\"." +#~ msgstr "con \"kill -signal $$\"." + +#~ msgid "For each NAME, indicate how it would be interpreted if used as a" +#~ msgstr "Para cada NOMBRE, indica cómo sería interpretada si se usara como" + +#~ msgid "If the -t option is used, returns a single word which is one of" +#~ msgstr "Si se usa la opción -t, regresa una sola palabra que es una de" + +#~ msgid "" +#~ "`alias', `keyword', `function', `builtin', `file' or `', if NAME is an" +#~ msgstr "" +#~ "`alias', `keyword', `function', `builtin', `file' ó `', si el NOMBRE es un" + +#~ msgid "" +#~ "alias, shell reserved word, shell function, shell builtin, disk file," +#~ msgstr "" +#~ "alias, palabra reservada del shell, función del shell, orden interna del " +#~ "shell, fichero del disco," + +#~ msgid "or unfound, respectively." +#~ msgstr "o no encontrada, respectivamente." + +#~ msgid "If the -p flag is used, either returns the name of the disk file" +#~ msgstr "" +#~ "Si se usa el indicador -p, regresa el nombre del fichero del sistema" + +#~ msgid "that would be executed, or nothing if -t would not return `file'." +#~ msgstr "que sería ejecutado, o nada si -t no regresa algún `fichero'." + +#~ msgid "If the -a flag is used, displays all of the places that contain an" +#~ msgstr "" +#~ "Si se usa el indicador -a, muestra todos los lugares que contienen un" + +#~ msgid "" +#~ "executable named `file'. This includes aliases and functions, if and" +#~ msgstr "" +#~ "ejecutable llamado `fichero' Esto incluye a aliases y funciones, si y" + +#~ msgid "only if the -p flag is not also used." +#~ msgstr "sólo si el indicador -p no se especifica también." + +#~ msgid "Type accepts -all, -path, and -type in place of -a, -p, and -t," +#~ msgstr "Type acepta -all, -path, y -type en lugar de -a, -p, y -t," + +#~ msgid "respectively." +#~ msgstr "respectivamente." + +#~ msgid "Ulimit provides control over the resources available to processes" +#~ msgstr "" +#~ "ulimit provee control sobre los recursos disponibles para los procesos" + +#~ msgid "started by the shell, on systems that allow such control. If an" +#~ msgstr "" +#~ "iniciados por el shell, en sistemas que permiten dicho control. Si se" + +#~ msgid "option is given, it is interpreted as follows:" +#~ msgstr "establece una opción, se interpreta como sigue:" + +#~ msgid " -S\tuse the `soft' resource limit" +#~ msgstr " -S\tusa el límite de recurso `suave'" + +#~ msgid " -H\tuse the `hard' resource limit" +#~ msgstr " -H\tusa el límite de recurso `duro'" + +#~ msgid " -a\tall current limits are reported" +#~ msgstr " -a\tse muestran todos los límites actuales" + +#~ msgid " -c\tthe maximum size of core files created" +#~ msgstr " -c\tel tamaño máximo de los ficheros `core' creados" + +#~ msgid " -d\tthe maximum size of a process's data segment" +#~ msgstr " -d\tel tamaño máximo del segmento de datos de un proceso" + +#~ msgid " -m\tthe maximum resident set size" +#~ msgstr " -m\tel tamaño máximo para las variables residentes" + +#~ msgid " -s\tthe maximum stack size" +#~ msgstr " -s\tel tamaño máximo de la pila" + +#~ msgid " -t\tthe maximum amount of cpu time in seconds" +#~ msgstr " -t\tla cantidad máxima de tiempo de cpu en segundos" + +#~ msgid " -f\tthe maximum size of files created by the shell" +#~ msgstr " -f\tel número máximo de ficheros creados por el shell" + +#~ msgid " -p\tthe pipe buffer size" +#~ msgstr " -p\tel tamaño del almacenamiento intermedio para tuberías" + +#~ msgid " -n\tthe maximum number of open file descriptors" +#~ msgstr " -n\tel número máximo de descriptores de fichero abiertos" + +#~ msgid " -u\tthe maximum number of user processes" +#~ msgstr " -u\tel número máximo de procesos de usuario" + +#~ msgid " -v\tthe size of virtual memory" +#~ msgstr " -v\tel tamaño de la memoria virtual" + +#~ msgid "If LIMIT is given, it is the new value of the specified resource." +#~ msgstr "" +#~ "Si se establece el LÍMITE, este es el nuevo valor del recurso " +#~ "especificado." + +#~ msgid "Otherwise, the current value of the specified resource is printed." +#~ msgstr "" +#~ "De otra forma, se muestra la lista actual de los recursos especificados." + +#~ msgid "If no option is given, then -f is assumed. Values are in 1k" +#~ msgstr "" +#~ "Si no se establece una opción, entonces se asume -f. Los valores son en " +#~ "incrementos" + +#~ msgid "increments, except for -t, which is in seconds, -p, which is in" +#~ msgstr "de 1k, excepto para -t, que es en segundos, -p, que es en" + +#~ msgid "increments of 512 bytes, and -u, which is an unscaled number of" +#~ msgstr "incrementos de 512 bytes, y -u, que es un número no escalado de" + +#~ msgid "processes." +#~ msgstr "procesos." + +#~ msgid "" +#~ "The user file-creation mask is set to MODE. If MODE is omitted, or if" +#~ msgstr "" +#~ "La máscara de creación de ficheros del usuario se establece a MODO. Si " +#~ "se omite el MODO, o si" + +#~ msgid "" +#~ "`-S' is supplied, the current value of the mask is printed. The `-S'" +#~ msgstr "" +#~ "se proporciona `-S', se muestra el valor actual de la máscara. La opción" + +#~ msgid "" +#~ "option makes the output symbolic; otherwise an octal number is output." +#~ msgstr "" +#~ "`-S' logra una salida simbólica; de otra forma la salida es un número " +#~ "octal." + +#~ msgid "If MODE begins with a digit, it is interpreted as an octal number," +#~ msgstr "" +#~ "Si el MODO comienza con un dígito, se interpreta como un número octal," + +#~ msgid "" +#~ "otherwise it is a symbolic mode string like that accepted by chmod(1)." +#~ msgstr "" +#~ "de otra forma es una cadena de modo simbólico como la aceptada por chmod" +#~ "(1)." + +#~ msgid "" +#~ "Wait for the specified process and report its termination status. If" +#~ msgstr "Espera al proceso especificado y reporta su estado final. Si no se" + +#~ msgid "N is not given, all currently active child processes are waited for," +#~ msgstr "" +#~ "proporciona N, espera a todos los procesos hijo activos actualmente," + +#~ msgid "and the return code is zero. N may be a process ID or a job" +#~ msgstr "" +#~ "y el código de regreso es cero. N puede ser un ID de proceso o una " +#~ "especificación" + +#~ msgid "specification; if a job spec is given, all processes in the job's" +#~ msgstr "" +#~ "de trabajo; si se proporciona una especificación de trabajo, se espera a " +#~ "todos los procesos en la" + +#~ msgid "pipeline are waited for." +#~ msgstr "línea de ejecución del trabajo." + +#~ msgid "and the return code is zero. N is a process ID; if it is not given," +#~ msgstr "" +#~ "y el código de regreso es cero. N es un ID de proceso; si no se " +#~ "proporcioan," + +#~ msgid "all child processes of the shell are waited for." +#~ msgstr "espera a todos los procesos hijos del shell." + +#~ msgid "The `for' loop executes a sequence of commands for each member in a" +#~ msgstr "" +#~ "El ciclo `for' ejecuta una secuencia de órdenes para cada miembro en una" + +#~ msgid "" +#~ "list of items. If `in WORDS ...;' is not present, then `in \"$@\"' is" +#~ msgstr "" +#~ "lista de elementos. Si `in PALABRAS ...;' no se encuentra, entonces se " +#~ "asume" + +#~ msgid "" +#~ "assumed. For each element in WORDS, NAME is set to that element, and" +#~ msgstr "" +#~ "`in \"$@\"'. Para cada elemento en PALABRAS, se establece NOMBRE a ese " +#~ "elemento y" + +#~ msgid "the COMMANDS are executed." +#~ msgstr "se ejecutan las ÓRDENES." + +#~ msgid "The WORDS are expanded, generating a list of words. The" +#~ msgstr "Las PALABRAS se expanden, generando una lista de palabras. El" + +#~ msgid "set of expanded words is printed on the standard error, each" +#~ msgstr "" +#~ "conjunto de palabras expandidas se muestra en la salida de error estándard" + +#~ msgid "preceded by a number. If `in WORDS' is not present, `in \"$@\"'" +#~ msgstr "" +#~ "cada una precedida por un número. Si `in PALABRAS' no se encuentra, se " +#~ "asume" + +#~ msgid "is assumed. The PS3 prompt is then displayed and a line read" +#~ msgstr "`in \"$@\"'. El prompt PS3 se muestra y se lee una línea de" + +#~ msgid "from the standard input. If the line consists of the number" +#~ msgstr "la entrada estándard. Si la línea consiste del número" + +#~ msgid "corresponding to one of the displayed words, then NAME is set" +#~ msgstr "" +#~ "correspondiente a una de las palabras mostradas, entonces se establece " +#~ "NOMBRE" + +#~ msgid "to that word. If the line is empty, WORDS and the prompt are" +#~ msgstr "a esa palabra. Si la línea está vacía, se muestran de nuevo" + +#~ msgid "redisplayed. If EOF is read, the command completes. Any other" +#~ msgstr "" +#~ "las PALABRAS y el prompt. Si se lee EOF, la orden se completa. Cualquier " +#~ "otro" + +#~ msgid "value read causes NAME to be set to null. The line read is saved" +#~ msgstr "valor leído causa que NOMBRE sea nulo. La línea leída se salva en" + +#~ msgid "in the variable REPLY. COMMANDS are executed after each selection" +#~ msgstr "" +#~ "la variable REPLY. Las ÓRDENES se ejecutan después de cada selección" + +#~ msgid "until a break or return command is executed." +#~ msgstr "hasta que se ejecute una orden break ó return." + +#~ msgid "`|' is used to separate multiple patterns." +#~ msgstr "`|' se usa para separar plantillas múltiples." + +#~ msgid "" +#~ "The if COMMANDS are executed. If the exit status is zero, then the then" +#~ msgstr "" +#~ "Las ÓRDENES if se ejecutan. Si el código de regreso es cero, entonces " +#~ "las ÓRDENES" + +#~ msgid "" +#~ "COMMANDS are executed. Otherwise, each of the elif COMMANDS are executed" +#~ msgstr "" +#~ "then se ejecutan. De otra forma, cada uno de las ÓRDENES elif se ejecutan" + +#~ msgid "" +#~ "in turn, and if the exit status is zero, the corresponding then COMMANDS" +#~ msgstr "" +#~ "en turno, y si el código de regreso es cero, las ÓRDENES then " +#~ "correspondientes" + +#~ msgid "" +#~ "are executed and the if command completes. Otherwise, the else COMMANDS" +#~ msgstr "" +#~ "se ejecutan y la orden if se completa. De otra forma, las ÓRDENES else" + +#~ msgid "" +#~ "are executed, if present. The exit status is the exit status of the last" +#~ msgstr "" +#~ "se ejecutan, si se encuentran. El código de salida es el código de " +#~ "salida de la última" + +#~ msgid "command executed, or zero if no condition tested true." +#~ msgstr "orden ejecutada, o cero si ninguna condición probada fue verdadera." + +#~ msgid "`while' COMMANDS has an exit status of zero." +#~ msgstr "`while' tenga un código de salida de cero." + +#~ msgid "`until' COMMANDS has an exit status which is not zero." +#~ msgstr "`until' tenga un código de salida que no sea cero." + +#~ msgid "Create a simple command invoked by NAME which runs COMMANDS." +#~ msgstr "" +#~ "Crea un comando simple invocado por el NOMBRE que ejecuta las ÓRDENES." + +#~ msgid "Arguments on the command line along with NAME are passed to the" +#~ msgstr "" +#~ "Los argumentos en la línea de comando junto con el NOMBRE se pasan a la" + +#~ msgid "function as $0 .. $n." +#~ msgstr "función como $0 .. $n." + +#~ msgid "entire set of commands." +#~ msgstr "conjunto completo de órdenes" + +#~ msgid "This is similar to the `fg' command. Resume a stopped or background" +#~ msgstr "" +#~ "Esto es similar a la orden `fg'. Reinicia un trabajo detenido o en el" + +#~ msgid "job. If you specifiy DIGITS, then that job is used. If you specify" +#~ msgstr "" +#~ "background. Si especifica DÍGITOS, entonces se usa ese trabajo. Si " +#~ "proporciona" + +#~ msgid "" +#~ "WORD, then the job whose name begins with WORD is used. Following the" +#~ msgstr "" +#~ "una PALABRA, entonces se usa el trabajo cuyo nombre comience con PALABRA." + +#~ msgid "job specification with a `&' places the job in the background." +#~ msgstr "" +#~ "Al colocar una especificación de trabajo seguido de un `&', se coloca al " +#~ "trabajo en el background. " + +#~ msgid "BASH_VERSION The version numbers of this Bash." +#~ msgstr "BASH_VERSION Los números de versión de este Bash." + +#~ msgid "CDPATH A colon separated list of directories to search" +#~ msgstr "CDPATH Una lista separada por `:' de directorios a buscar" + +#~ msgid "\t\twhen the argument to `cd' is not found in the current" +#~ msgstr "\t\tcuando el argumento para `cd' no se encuentra en el directorio" + +#~ msgid "\t\tdirectory." +#~ msgstr "\t\tactual." + +#~ msgid "" +#~ "HISTFILE The name of the file where your command history is stored." +#~ msgstr "" +#~ "HISTFILE El nombre del fichero donde se guarda la historia de " +#~ "órdenes." + +#~ msgid "HISTFILESIZE The maximum number of lines this file can contain." +#~ msgstr "" +#~ "HISTFILESIZE El número máximo de líneas que este fichero puede " +#~ "contener." + +#~ msgid "HISTSIZE The maximum number of history lines that a running" +#~ msgstr "HISTSIZE El número máximo de líneas de historia que un shell" + +#~ msgid "\t\tshell can access." +#~ msgstr "\t\ten ejecución puede acceder." + +#~ msgid "HOME The complete pathname to your login directory." +#~ msgstr "" +#~ "HOME La ruta completa a su directorio de entrada (login)." + +#~ msgid "" +#~ "HOSTTYPE The type of CPU this version of Bash is running under." +#~ msgstr "" +#~ "HOSTTYPE El tipo de CPU bajo el cual esta versión de Bash corre." + +#~ msgid "" +#~ "IGNOREEOF Controls the action of the shell on receipt of an EOF" +#~ msgstr "" +#~ "IGNOREEOF Controla la acción del shell al recibir un carácter EOF" + +#~ msgid "\t\tcharacter as the sole input. If set, then the value" +#~ msgstr "\t\tcomo la única entrada. Si se establece, entonces el valor" + +#~ msgid "\t\tof it is the number of EOF characters that can be seen" +#~ msgstr "" +#~ "\t\tde esta variable es el número de caracteres EOF que se pueden recibir" + +#~ msgid "\t\tin a row on an empty line before the shell will exit" +#~ msgstr "" +#~ "\t\ten forma seguida en una línea vacía antes de que el shell termine" + +#~ msgid "\t\t(default 10). When unset, EOF signifies the end of input." +#~ msgstr "" +#~ "\t\t(10 por omisión). Cuando se desactiva, EOF significa el fin de la " +#~ "entrada." + +#~ msgid "MAILCHECK\tHow often, in seconds, Bash checks for new mail." +#~ msgstr "" +#~ "MAILCHECK\tQue tan seguido, en segundos, Bash revisa si hay correo nuevo." + +#~ msgid "MAILPATH\tA colon-separated list of filenames which Bash checks" +#~ msgstr "" +#~ "MAILPATH\tUna lista de nombres de fichero separados por dos puntos que " +#~ "Bash revisa" + +#~ msgid "\t\tfor new mail." +#~ msgstr "\t\tpor correo nuevo." + +#~ msgid "OSTYPE\t\tThe version of Unix this version of Bash is running on." +#~ msgstr "" +#~ "OSTYPE\t\tLa versión de Unix bajo la cual esta versión de Bash se ejecuta." + +#~ msgid "PATH A colon-separated list of directories to search when" +#~ msgstr "" +#~ "PATH Una lista de directorios separada por dos puntos para " +#~ "buscar" + +#~ msgid "\t\tlooking for commands." +#~ msgstr "\t\tcuando se requieren órdenes." + +#~ msgid "PROMPT_COMMAND A command to be executed before the printing of each" +#~ msgstr "PROMPT_COMMAND Una orden a ejecutar antes de mostrar cada" + +#~ msgid "\t\tprimary prompt." +#~ msgstr "\t\tprompt primario." + +#~ msgid "PS1 The primary prompt string." +#~ msgstr "PS1 La cadena primaria de prompt." + +#~ msgid "PS2 The secondary prompt string." +#~ msgstr "PS2 La cadena secundaria de prompt." + +#~ msgid "TERM The name of the current terminal type." +#~ msgstr "TERM El nombre del tipo de terminal actual." + +#~ msgid "auto_resume Non-null means a command word appearing on a line by" +#~ msgstr "" +#~ "auto_resume Si no es nulo significa que una palabra de orden que " +#~ "aparece en una línea" + +#~ msgid "\t\titself is first looked for in the list of currently" +#~ msgstr "\t\tpor sí mismo se busca primero en la lista de trabajos detenidos" + +#~ msgid "\t\tstopped jobs. If found there, that job is foregrounded." +#~ msgstr "" +#~ "\t\tactualmente. Si se encuentra ahí, ese trabajo se trae a primer plano." + +#~ msgid "\t\tA value of `exact' means that the command word must" +#~ msgstr "\t\tEl valor `exact' significa que la palabra de la orden debe" + +#~ msgid "\t\texactly match a command in the list of stopped jobs. A" +#~ msgstr "" +#~ "\t\tcoincidir exactamente con una orden en la lista de trabajos " +#~ "detenidos. El" + +#~ msgid "\t\tvalue of `substring' means that the command word must" +#~ msgstr "\t\tvalor `substring' significa que la palabra de la orden debe" + +#~ msgid "\t\tmatch a substring of the job. Any other value means that" +#~ msgstr "" +#~ "\t\tcoincidir con una subcadena del trabajo. Cualquier otro valor " +#~ "significa que" + +#~ msgid "\t\tthe command must be a prefix of a stopped job." +#~ msgstr "\t\tla orden debe ser un prefijo de un trabajo detenido." + +#~ msgid "command_oriented_history" +#~ msgstr "command_oriented_history" + +#~ msgid "" +#~ " Non-null means to save multiple-line commands together on" +#~ msgstr "" +#~ " Si no es nulo significa que debe guardar órdenes de " +#~ "varias líneas juntas en" + +#~ msgid " a single history line." +#~ msgstr " una sola línea de historia." + +#~ msgid "histchars Characters controlling history expansion and quick" +#~ msgstr "" +#~ "histchars Caracteres que controlan la expansión de la historia y la" + +#~ msgid "\t\tsubstitution. The first character is the history" +#~ msgstr "\t\tsustitución rápida. El primer carácter es el carácter de" + +#~ msgid "\t\tsubstitution character, usually `!'. The second is" +#~ msgstr "\t\tsustutución de historia, generalmente `!'. El segundo es" + +#~ msgid "\t\tthe `quick substitution' character, usually `^'. The" +#~ msgstr "\t\tel carácter de `sustitución rápida', generalmente `^'. El" + +#~ msgid "\t\tthird is the `history comment' character, usually `#'." +#~ msgstr "" +#~ "\t\ttercero es el carácter de `comentario de historia', generalmente `#'." + +#~ msgid "HISTCONTROL\tSet to a value of `ignorespace', it means don't enter" +#~ msgstr "" +#~ "HISTCONTROL\tEstablecido con el valor `ignorespace', significa que no " +#~ "agrega" + +#~ msgid "\t\tlines which begin with a space or tab on the history" +#~ msgstr "\t\tlíneas que inicien con un espacio o tabulador a la lista de" + +#~ msgid "\t\tlist. Set to a value of `ignoredups', it means don't" +#~ msgstr "\t\thistoria. Con el valor `ignoredups', significa que no agrega" + +#~ msgid "\t\tenter lines which match the last entered line. Set to" +#~ msgstr "\t\tlíneas que coincidan con la última línea introducida. Con" + +#~ msgid "\t\t`ignoreboth' means to combine the two options. Unset," +#~ msgstr "" +#~ "\t\t`ignoreboth' significa que combina las dos opciones. Sin establecer," + +#~ msgid "\t\tor set to any other value than those above means to save" +#~ msgstr "" +#~ "\t\to con cualquier otro valor diferente a los arriba mencionados " +#~ "significa" + +#~ msgid "\t\tall lines on the history list." +#~ msgstr "\t\tguardar todas las líneas en la lista de la historia." + +#~ msgid "Toggle the values of variables controlling optional behavior." +#~ msgstr "" +#~ "Cambia los valores de las variables que controlan conductas opcionales." + +#~ msgid "The -s flag means to enable (set) each OPTNAME; the -u flag" +#~ msgstr "" +#~ "El indicador -s significa establecer cada NOMBRE_OPCIÓN; el indicador -u" + +#~ msgid "unsets each OPTNAME. The -q flag suppresses output; the exit" +#~ msgstr "" +#~ "borra cada NOMBRE_OPCIÓN. El indicador -q suprime la salida; el estado" + +#~ msgid "status indicates whether each OPTNAME is set or unset. The -o" +#~ msgstr "de salida indica cuál NOMBRE_OPCIÓN está activado o no. La opción" + +#~ msgid "option restricts the OPTNAMEs to those defined for use with" +#~ msgstr "" +#~ "-o restringe a los NOMBRE_OPCIONes a aquéllos definidos para su uso con" + +#~ msgid "`set -o'. With no options, or with the -p option, a list of all" +#~ msgstr "" +#~ "`set -o'. Sin opciones, o con la opción -p, se muestra una lista de" + +#~ msgid "settable options is displayed, with an indication of whether or" +#~ msgstr "todas las opciones activables, con una indicación de si se puede" + +#~ msgid "not each is set." +#~ msgstr "o no activar cada una." diff --git a/po/et.gmo b/po/et.gmo new file mode 100644 index 0000000000000000000000000000000000000000..131eeaf1647c939465ec8cdfedf3dc07935a2643 GIT binary patch literal 12257 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, 2006. +# +msgid "" +msgstr "" +"Project-Id-Version: bash 3.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2009-01-06 11:56-0500\n" +"PO-Revision-Date: 2006-11-11 16:38+0200\n" +"Last-Translator: Toomas Soome \n" +"Language-Team: Estonian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-15\n" +"Content-Transfer-Encoding: 8-bit\n" + +#: arrayfunc.c:50 +msgid "bad array subscript" +msgstr "vigane massiivi indeks" + +#: arrayfunc.c:313 builtins/declare.def:474 +#, c-format +msgid "%s: cannot convert indexed to associative array" +msgstr "" + +#: arrayfunc.c:479 +#, fuzzy, c-format +msgid "%s: invalid associative array key" +msgstr "%s: vigane tegevuse nimi" + +#: arrayfunc.c:481 +#, c-format +msgid "%s: cannot assign to non-numeric index" +msgstr "%s: mitte-numbrilisele indeksile ei saa omistada" + +#: arrayfunc.c:517 +#, c-format +msgid "%s: %s: must use subscript when assigning associative array" +msgstr "" + +#: bashhist.c:380 +#, c-format +msgid "%s: cannot create: %s" +msgstr "%s: ei saa luua: %s" + +#: bashline.c:3413 +msgid "bash_execute_unix_command: cannot find keymap for command" +msgstr "" + +#: bashline.c:3491 +#, c-format +msgid "%s: first non-whitespace character is not `\"'" +msgstr "%s: esimine mitte-tühemik sümbol pole `\"'" + +#: bashline.c:3520 +#, c-format +msgid "no closing `%c' in %s" +msgstr "sulgev `%c' puudub %s sees" + +#: bashline.c:3554 +#, c-format +msgid "%s: missing colon separator" +msgstr "%s: puudub eraldav koolon" + +#: builtins/bind.def:120 builtins/bind.def:123 +msgid "line editing not enabled" +msgstr "" + +#: builtins/bind.def:206 +#, c-format +msgid "`%s': invalid keymap name" +msgstr "" + +#: builtins/bind.def:245 +#, c-format +msgid "%s: cannot read: %s" +msgstr "%s: ei saa lugeda: %s" + +#: builtins/bind.def:260 +#, c-format +msgid "`%s': cannot unbind" +msgstr "`%s': ei saa lahti siduda" + +#: builtins/bind.def:295 builtins/bind.def:325 +#, c-format +msgid "`%s': unknown function name" +msgstr "`%s': tundmatu funktsiooni nimi" + +#: builtins/bind.def:303 +#, c-format +msgid "%s is not bound to any keys.\n" +msgstr "%s ei ole seotud ühegi klahviga.\n" + +#: builtins/bind.def:307 +#, c-format +msgid "%s can be invoked via " +msgstr "%s saab kasutada läbi " + +#: builtins/break.def:77 builtins/break.def:117 +msgid "loop count" +msgstr "" + +#: builtins/break.def:137 +msgid "only meaningful in a `for', `while', or `until' loop" +msgstr "omab mõtet ainult `for', `while' või `until' tsüklis" + +#: builtins/caller.def:133 +#, fuzzy +msgid "" +"Returns the context of the current subroutine call.\n" +" \n" +" Without EXPR, returns " +msgstr "Tagastab jooksva alamprotseduuri konteksti." + +#: builtins/cd.def:215 +msgid "HOME not set" +msgstr "HOME pole seatud" + +#: builtins/cd.def:227 +msgid "OLDPWD not set" +msgstr "OLDPWD pole seatud" + +#: builtins/common.c:101 +#, c-format +msgid "line %d: " +msgstr "" + +#: builtins/common.c:139 error.c:260 +#, fuzzy, c-format +msgid "warning: " +msgstr "%s: hoiatus: " + +#: builtins/common.c:153 +#, fuzzy, c-format +msgid "%s: usage: " +msgstr "%s: hoiatus: " + +#: builtins/common.c:166 test.c:822 +msgid "too many arguments" +msgstr "liiga palju argumente" + +#: builtins/common.c:191 shell.c:493 shell.c:774 +#, c-format +msgid "%s: option requires an argument" +msgstr "%s: võti nõuab argumenti" + +#: builtins/common.c:198 +#, c-format +msgid "%s: numeric argument required" +msgstr "%s: nõutakse numbrilist argumenti" + +#: builtins/common.c:205 +#, c-format +msgid "%s: not found" +msgstr "%s: ei leitud" + +#: builtins/common.c:214 shell.c:787 +#, c-format +msgid "%s: invalid option" +msgstr "%s: vigane võti" + +#: builtins/common.c:221 +#, c-format +msgid "%s: invalid option name" +msgstr "%s: vigane võtme nimi" + +#: builtins/common.c:228 general.c:231 general.c:236 +#, c-format +msgid "`%s': not a valid identifier" +msgstr "`%s': ei ole lubatud identifikaator" + +#: builtins/common.c:238 +#, fuzzy +msgid "invalid octal number" +msgstr "vigane signaali number" + +#: builtins/common.c:240 +#, fuzzy +msgid "invalid hex number" +msgstr "vigane number" + +#: builtins/common.c:242 expr.c:1255 +msgid "invalid number" +msgstr "vigane number" + +#: builtins/common.c:250 +#, c-format +msgid "%s: invalid signal specification" +msgstr "%s: vigane signaali spetsifikatsioon" + +#: builtins/common.c:257 +#, c-format +msgid "`%s': not a pid or valid job spec" +msgstr "`%s': ei ole pid ega korrektne töö spetsifikatsioon" + +#: builtins/common.c:264 error.c:453 +#, c-format +msgid "%s: readonly variable" +msgstr "%s: mittemuudetav muutuja" + +#: builtins/common.c:272 +#, c-format +msgid "%s: %s out of range" +msgstr "%s: %s on piiridest väljas" + +#: builtins/common.c:272 builtins/common.c:274 +msgid "argument" +msgstr "argument" + +#: builtins/common.c:274 +#, c-format +msgid "%s out of range" +msgstr "%s on piiridest väljas" + +#: builtins/common.c:282 +#, c-format +msgid "%s: no such job" +msgstr "%s: sellist tööd pole" + +#: builtins/common.c:290 +#, c-format +msgid "%s: no job control" +msgstr "%s: töökontroll puudub" + +#: builtins/common.c:292 +msgid "no job control" +msgstr "töökontroll puudub" + +#: builtins/common.c:302 +#, c-format +msgid "%s: restricted" +msgstr "%s: piiratud" + +#: builtins/common.c:304 +msgid "restricted" +msgstr "piiratud" + +#: builtins/common.c:312 +#, c-format +msgid "%s: not a shell builtin" +msgstr "%s: ei ole sisekäsk" + +#: builtins/common.c:321 +#, c-format +msgid "write error: %s" +msgstr "kirjutamise viga: %s" + +#: builtins/common.c:553 +#, c-format +msgid "%s: error retrieving current directory: %s: %s\n" +msgstr "" + +#: builtins/common.c:619 builtins/common.c:621 +#, c-format +msgid "%s: ambiguous job spec" +msgstr "%s: segane töö" + +#: builtins/complete.def:270 +#, c-format +msgid "%s: invalid action name" +msgstr "%s: vigane tegevuse nimi" + +#: builtins/complete.def:430 builtins/complete.def:615 +#: builtins/complete.def:813 +#, c-format +msgid "%s: no completion specification" +msgstr "" + +#: builtins/complete.def:667 +msgid "warning: -F option may not work as you expect" +msgstr "hoiatus: võti -F ei pruugi töötada nagu te ootate" + +#: builtins/complete.def:669 +msgid "warning: -C option may not work as you expect" +msgstr "hoiatus: võti -C ei pruugi töötada nagu te ootate" + +#: builtins/complete.def:786 +msgid "not currently executing completion function" +msgstr "" + +#: builtins/declare.def:122 +msgid "can only be used in a function" +msgstr "saab kasutada ainult funktsioonis" + +#: builtins/declare.def:353 +msgid "cannot use `-f' to make functions" +msgstr "võtit `-f' ei saa funktsiooni loomiseks kasutada" + +#: builtins/declare.def:365 execute_cmd.c:4731 +#, c-format +msgid "%s: readonly function" +msgstr "%s: funktsioon ei ole muudetav" + +#: builtins/declare.def:461 +#, c-format +msgid "%s: cannot destroy array variables in this way" +msgstr "%s: masiivi muutujaid ei saa nii kustutada" + +#: builtins/declare.def:468 +#, c-format +msgid "%s: cannot convert associative to indexed array" +msgstr "" + +#: builtins/enable.def:137 builtins/enable.def:145 +msgid "dynamic loading not available" +msgstr "dünaamilist laadimist et saa kasutada" + +#: builtins/enable.def:312 +#, c-format +msgid "cannot open shared object %s: %s" +msgstr "jagatud objekti %s ei saa avada: %s" + +#: builtins/enable.def:335 +#, c-format +msgid "cannot find %s in shared object %s: %s" +msgstr "%s puudub jagatud objektis %s: %s" + +#: builtins/enable.def:459 +#, c-format +msgid "%s: not dynamically loaded" +msgstr "%s: pole dünaamiliselt laetud" + +#: builtins/enable.def:474 +#, c-format +msgid "%s: cannot delete: %s" +msgstr "%s: ei saa kustutada: %s" + +#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4588 +#: shell.c:1439 +#, c-format +msgid "%s: is a directory" +msgstr "%s: on kataloog" + +#: builtins/evalfile.c:139 +#, c-format +msgid "%s: not a regular file" +msgstr "%s: ei ole tavaline fail" + +#: builtins/evalfile.c:147 +#, c-format +msgid "%s: file is too large" +msgstr "%s: fail on liiga suur" + +#: builtins/evalfile.c:185 execute_cmd.c:4658 shell.c:1449 +#, c-format +msgid "%s: cannot execute binary file" +msgstr "%s: kahendfaili ei õnnestu käivitada" + +#: builtins/exec.def:212 +#, c-format +msgid "%s: cannot execute: %s" +msgstr "%s: ei saa käivitada: %s" + +#: builtins/exit.def:65 +#, c-format +msgid "logout\n" +msgstr "" + +#: builtins/exit.def:88 +msgid "not login shell: use `exit'" +msgstr "pole login shell: kasutage `exit'" + +#: builtins/exit.def:120 +#, c-format +msgid "There are stopped jobs.\n" +msgstr "Teil on peatatud töid.\n" + +#: builtins/exit.def:122 +#, fuzzy, c-format +msgid "There are running jobs.\n" +msgstr "Teil on peatatud töid.\n" + +#: builtins/fc.def:261 +msgid "no command found" +msgstr "käsku ei ole" + +#: builtins/fc.def:341 +msgid "history specification" +msgstr "" + +#: builtins/fc.def:362 +#, c-format +msgid "%s: cannot open temp file: %s" +msgstr "%s: ajutist faili ei saa avada: %s" + +#: builtins/fg_bg.def:149 builtins/jobs.def:282 +msgid "current" +msgstr "" + +#: builtins/fg_bg.def:158 +#, c-format +msgid "job %d started without job control" +msgstr "" + +#: builtins/getopt.c:110 +#, c-format +msgid "%s: illegal option -- %c\n" +msgstr "%s: lubamatu võti -- %c\n" + +#: builtins/getopt.c:111 +#, c-format +msgid "%s: option requires an argument -- %c\n" +msgstr "%s: võti nõuab argumenti -- %c\n" + +#: builtins/hash.def:92 +msgid "hashing disabled" +msgstr "" + +#: builtins/hash.def:138 +#, c-format +msgid "%s: hash table empty\n" +msgstr "" + +#: builtins/hash.def:244 +#, fuzzy, c-format +msgid "hits\tcommand\n" +msgstr "viimane käsklus: %s\n" + +#: builtins/help.def:130 +#, c-format +msgid "Shell commands matching keyword `" +msgid_plural "Shell commands matching keywords `" +msgstr[0] "" +msgstr[1] "" + +#: builtins/help.def:168 +#, c-format +msgid "" +"no help topics match `%s'. Try `help help' or `man -k %s' or `info %s'." +msgstr "" + +#: builtins/help.def:185 +#, c-format +msgid "%s: cannot open: %s" +msgstr "%s: ei saa avada: %s" + +#: builtins/help.def:337 +#, c-format +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:154 +msgid "cannot use more than one of -anrw" +msgstr "" + +#: builtins/history.def:186 +msgid "history position" +msgstr "" + +#: builtins/history.def:365 +#, c-format +msgid "%s: history expansion failed" +msgstr "" + +#: builtins/inlib.def:71 +#, fuzzy, c-format +msgid "%s: inlib failed" +msgstr "%s: vigane teenus" + +#: builtins/jobs.def:109 +msgid "no other options allowed with `-x'" +msgstr "" + +#: builtins/kill.def:197 +#, c-format +msgid "%s: arguments must be process or job IDs" +msgstr "" + +#: builtins/kill.def:260 +msgid "Unknown error" +msgstr "Tundmatu viga" + +#: builtins/let.def:95 builtins/let.def:120 expr.c:501 expr.c:516 +msgid "expression expected" +msgstr "oodati avaldist" + +#: builtins/mapfile.def:215 builtins/read.def:272 +#, c-format +msgid "%s: invalid file descriptor specification" +msgstr "" + +#: builtins/mapfile.def:223 builtins/read.def:279 +#, c-format +msgid "%d: invalid file descriptor: %s" +msgstr "" + +#: builtins/mapfile.def:232 builtins/mapfile.def:270 +#, fuzzy, c-format +msgid "%s: invalid line count" +msgstr "%s: vigane võti" + +#: builtins/mapfile.def:243 +#, fuzzy, c-format +msgid "%s: invalid array origin" +msgstr "%s: vigane võti" + +#: builtins/mapfile.def:260 +#, fuzzy, c-format +msgid "%s: invalid callback quantum" +msgstr "%s: vigane tegevuse nimi" + +#: builtins/mapfile.def:292 +#, fuzzy +msgid "empty array variable name" +msgstr "%s: pole massiiv" + +#: builtins/mapfile.def:313 +msgid "array variable support required" +msgstr "" + +#: builtins/printf.def:367 +#, c-format +msgid "`%s': missing format character" +msgstr "" + +#: builtins/printf.def:544 +#, c-format +msgid "`%c': invalid format character" +msgstr "" + +#: builtins/printf.def:571 +#, fuzzy, c-format +msgid "warning: %s: %s" +msgstr "%s: hoiatus: " + +#: builtins/printf.def:750 +msgid "missing hex digit for \\x" +msgstr "" + +#: builtins/pushd.def:195 +msgid "no other directory" +msgstr "teist kataloogi pole" + +#: builtins/pushd.def:462 +msgid "" +msgstr "" + +#: builtins/pushd.def:506 +msgid "directory stack empty" +msgstr "" + +#: builtins/pushd.def:508 +msgid "directory stack index" +msgstr "" + +#: builtins/pushd.def:683 +msgid "" +"Display the list of currently remembered directories. Directories\n" +" find their way onto the list with the `pushd' command; you can get\n" +" back up through the list with the `popd' command.\n" +" \n" +" Options:\n" +" -c\tclear the directory stack by deleting all of the elements\n" +" -l\tdo not print tilde-prefixed versions of directories relative\n" +" \tto your home directory\n" +" -p\tprint the directory stack with one entry per line\n" +" -v\tprint the directory stack with one entry per line prefixed\n" +" \twith its position in the stack\n" +" \n" +" Arguments:\n" +" +N\tDisplays the Nth entry counting from the left of the list shown " +"by\n" +" \tdirs when invoked without options, starting with zero.\n" +" \n" +" -N\tDisplays the Nth entry counting from the right of the list shown " +"by\n" +"\tdirs when invoked without options, starting with zero." +msgstr "" + +#: builtins/pushd.def:705 +msgid "" +"Adds a directory to the top of the directory stack, or rotates\n" +" the stack, making the new top of the stack the current working\n" +" directory. With no arguments, exchanges the top two directories.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when adding\n" +" \tdirectories to the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the left of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" -N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the right of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" dir\tAdds DIR to the directory stack at the top, making it the\n" +" \tnew current working directory.\n" +" \n" +" The `dirs' builtin displays the directory stack." +msgstr "" + +#: builtins/pushd.def:730 +msgid "" +"Removes entries from the directory stack. With no arguments, removes\n" +" the top directory from the stack, and changes to the new top directory.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when removing\n" +" \tdirectories from the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRemoves the Nth entry counting from the left of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd +0'\n" +" \tremoves the first directory, `popd +1' the second.\n" +" \n" +" -N\tRemoves the Nth entry counting from the right of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd -0'\n" +" \tremoves the last directory, `popd -1' the next to last.\n" +" \n" +" The `dirs' builtin displays the directory stack." +msgstr "" + +#: builtins/read.def:248 +#, c-format +msgid "%s: invalid timeout specification" +msgstr "" + +#: builtins/read.def:574 +#, c-format +msgid "read error: %d: %s" +msgstr "viga lugemisel: %d: %s" + +#: builtins/return.def:73 +msgid "can only `return' from a function or sourced script" +msgstr "" + +#: builtins/set.def:768 +msgid "cannot simultaneously unset a function and a variable" +msgstr "" + +#: builtins/set.def:805 +#, c-format +msgid "%s: cannot unset" +msgstr "%s: ei saa eemaldada" + +#: builtins/set.def:812 +#, c-format +msgid "%s: cannot unset: readonly %s" +msgstr "%s: ei saa eemaldada: %s on ainult lugemiseks" + +#: builtins/set.def:823 +#, c-format +msgid "%s: not an array variable" +msgstr "%s: pole massiiv" + +#: builtins/setattr.def:186 +#, c-format +msgid "%s: not a function" +msgstr "%s: ei ole funktsioon" + +#: builtins/shift.def:71 builtins/shift.def:77 +msgid "shift count" +msgstr "shift arv" + +#: builtins/shopt.def:254 +msgid "cannot set and unset shell options simultaneously" +msgstr "" + +#: builtins/shopt.def:319 +#, c-format +msgid "%s: invalid shell option name" +msgstr "" + +#: builtins/source.def:128 +msgid "filename argument required" +msgstr "" + +#: builtins/source.def:153 +#, c-format +msgid "%s: file not found" +msgstr "%s: faili ei ole" + +#: builtins/suspend.def:101 +msgid "cannot suspend" +msgstr "peatamine ei õnnestu" + +#: builtins/suspend.def:111 +msgid "cannot suspend a login shell" +msgstr "login shelli ei saa peatada" + +#: builtins/type.def:234 +#, c-format +msgid "%s is aliased to `%s'\n" +msgstr "" + +#: builtins/type.def:255 +#, c-format +msgid "%s is a shell keyword\n" +msgstr "%s on shelli võtmesõna\n" + +#: builtins/type.def:274 +#, c-format +msgid "%s is a function\n" +msgstr "%s: on funktsioon\n" + +#: builtins/type.def:296 +#, c-format +msgid "%s is a shell builtin\n" +msgstr "%s on shelli sisekäsk\n" + +#: builtins/type.def:317 builtins/type.def:391 +#, c-format +msgid "%s is %s\n" +msgstr "%s on %s\n" + +#: builtins/type.def:337 +#, c-format +msgid "%s is hashed (%s)\n" +msgstr "" + +#: builtins/ulimit.def:372 +#, c-format +msgid "%s: invalid limit argument" +msgstr "" + +#: builtins/ulimit.def:398 +#, c-format +msgid "`%c': bad command" +msgstr "`%c': halb käsklus" + +#: builtins/ulimit.def:427 +#, c-format +msgid "%s: cannot get limit: %s" +msgstr "%s: ei õnnestu lugeda piirangut: %s" + +#: builtins/ulimit.def:453 +msgid "limit" +msgstr "" + +#: builtins/ulimit.def:465 builtins/ulimit.def:765 +#, c-format +msgid "%s: cannot modify limit: %s" +msgstr "%s: ei õnnestu muuta piirangut: %s" + +#: builtins/umask.def:118 +msgid "octal number" +msgstr "kaheksandnumber" + +#: builtins/umask.def:231 +#, c-format +msgid "`%c': invalid symbolic mode operator" +msgstr "" + +#: builtins/umask.def:286 +#, c-format +msgid "`%c': invalid symbolic mode character" +msgstr "" + +#: error.c:89 error.c:320 error.c:322 error.c:324 +msgid " line " +msgstr "" + +#: error.c:164 +#, c-format +msgid "last command: %s\n" +msgstr "viimane käsklus: %s\n" + +#: error.c:172 +#, c-format +msgid "Aborting..." +msgstr "Katkestan..." + +#: error.c:405 +msgid "unknown command error" +msgstr "tundmatu viga käsus" + +#: 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 "%s: sidumata muutuja" + +#: eval.c:181 +#, c-format +msgid "\atimed out waiting for input: auto-logout\n" +msgstr "" + +#: execute_cmd.c:491 +#, c-format +msgid "cannot redirect standard input from /dev/null: %s" +msgstr "" + +#: execute_cmd.c:1091 +#, c-format +msgid "TIMEFORMAT: `%c': invalid format character" +msgstr "" + +#: execute_cmd.c:1942 +#, fuzzy +msgid "pipe error" +msgstr "kirjutamise viga: %s" + +#: execute_cmd.c:4276 +#, c-format +msgid "%s: restricted: cannot specify `/' in command names" +msgstr "%s: piiratud: käskudes ei saa kasutada sümboleid `/'" + +#: execute_cmd.c:4367 +#, c-format +msgid "%s: command not found" +msgstr "%s: käsku ei ole" + +#: execute_cmd.c:4621 +#, c-format +msgid "%s: %s: bad interpreter" +msgstr "%s: %s: halb interpretaator" + +#: execute_cmd.c:4770 +#, c-format +msgid "cannot duplicate fd %d to fd %d" +msgstr "" + +#: expr.c:241 +msgid "expression recursion level exceeded" +msgstr "avaldise rekursioon on liiga sügav" + +#: expr.c:265 +msgid "recursion stack underflow" +msgstr "" + +#: expr.c:379 +msgid "syntax error in expression" +msgstr "süntaksi viga avaldises" + +#: expr.c:419 +msgid "attempted assignment to non-variable" +msgstr "üritati omistada mitte-muutujale" + +#: expr.c:440 expr.c:445 expr.c:756 +msgid "division by 0" +msgstr "nulliga jagamine" + +#: expr.c:471 +msgid "bug: bad expassign token" +msgstr "" + +#: expr.c:513 +msgid "`:' expected for conditional expression" +msgstr "" + +#: expr.c:781 +msgid "exponent less than 0" +msgstr "eksponent on väiksem kui 0" + +#: expr.c:826 +msgid "identifier expected after pre-increment or pre-decrement" +msgstr "" + +#: expr.c:854 +msgid "missing `)'" +msgstr "puudub `)'" + +#: expr.c:897 expr.c:1175 +msgid "syntax error: operand expected" +msgstr "süntaksi viga: oodati operandi" + +#: expr.c:1177 +msgid "syntax error: invalid arithmetic operator" +msgstr "süntaksi viga: vigane aritmeetiline operaator" + +#: expr.c:1201 +#, c-format +msgid "%s%s%s: %s (error token is \"%s\")" +msgstr "" + +#: expr.c:1259 +msgid "invalid arithmetic base" +msgstr "vigane aritmeetiline baas" + +#: expr.c:1279 +msgid "value too great for base" +msgstr "väärtus on baasiks liiga suur" + +#: expr.c:1328 +#, fuzzy, c-format +msgid "%s: expression error\n" +msgstr "%s: oodati täisarvude avaldist" + +#: general.c:61 +msgid "getcwd: cannot access parent directories" +msgstr "getcwd: vanemkataloogidele ei ole juurdepääsu" + +#: input.c:94 subst.c:4559 +#, c-format +msgid "cannot reset nodelay mode for fd %d" +msgstr "" + +#: input.c:258 +#, c-format +msgid "cannot allocate new file descriptor for bash input from fd %d" +msgstr "" + +#: input.c:266 +#, c-format +msgid "save_bash_input: buffer already exists for new fd %d" +msgstr "" + +#: jobs.c:466 +msgid "start_pipeline: pgrp pipe" +msgstr "" + +#: jobs.c:882 +#, c-format +msgid "forked pid %d appears in running job %d" +msgstr "" + +#: jobs.c:1000 +#, c-format +msgid "deleting stopped job %d with process group %ld" +msgstr "" + +#: jobs.c:1105 +#, c-format +msgid "add_process: process %5ld (%s) in the_pipeline" +msgstr "" + +#: jobs.c:1108 +#, c-format +msgid "add_process: pid %5ld (%s) marked as still alive" +msgstr "" + +#: jobs.c:1396 +#, c-format +msgid "describe_pid: %ld: no such pid" +msgstr "describe_pid: %ld: pid puudub" + +#: jobs.c:1411 +#, c-format +msgid "Signal %d" +msgstr "" + +#: jobs.c:1425 jobs.c:1450 +msgid "Done" +msgstr "" + +#: jobs.c:1430 siglist.c:122 +msgid "Stopped" +msgstr "" + +#: jobs.c:1434 +#, c-format +msgid "Stopped(%s)" +msgstr "" + +#: jobs.c:1438 +msgid "Running" +msgstr "" + +#: jobs.c:1452 +#, c-format +msgid "Done(%d)" +msgstr "" + +#: jobs.c:1454 +#, c-format +msgid "Exit %d" +msgstr "" + +#: jobs.c:1457 +msgid "Unknown status" +msgstr "" + +#: jobs.c:1544 +#, c-format +msgid "(core dumped) " +msgstr "" + +#: jobs.c:1563 +#, c-format +msgid " (wd: %s)" +msgstr "" + +#: jobs.c:1766 +#, c-format +msgid "child setpgid (%ld to %ld)" +msgstr "" + +#: jobs.c:2094 nojobs.c:576 +#, c-format +msgid "wait: pid %ld is not a child of this shell" +msgstr "" + +#: jobs.c:2321 +#, c-format +msgid "wait_for: No record of process %ld" +msgstr "" + +#: jobs.c:2593 +#, c-format +msgid "wait_for_job: job %d is stopped" +msgstr "wait_for_job: töö %d on peatatud" + +#: jobs.c:2815 +#, c-format +msgid "%s: job has terminated" +msgstr "%s: töö on lõpetatud" + +#: jobs.c:2824 +#, c-format +msgid "%s: job %d already in background" +msgstr "%s: töö %d on juba taustal" + +#: jobs.c:3487 +#, fuzzy, c-format +msgid "%s: line %d: " +msgstr "%s: hoiatus: " + +#: jobs.c:3501 nojobs.c:805 +#, c-format +msgid " (core dumped)" +msgstr "" + +#: jobs.c:3513 jobs.c:3526 +#, c-format +msgid "(wd now: %s)\n" +msgstr "" + +#: jobs.c:3558 +msgid "initialize_job_control: getpgrp failed" +msgstr "" + +#: jobs.c:3618 +msgid "initialize_job_control: line discipline" +msgstr "" + +#: jobs.c:3628 +msgid "initialize_job_control: setpgid" +msgstr "" + +#: jobs.c:3656 +#, c-format +msgid "cannot set terminal process group (%d)" +msgstr "" + +#: jobs.c:3661 +msgid "no job control in this shell" +msgstr "" + +#: lib/malloc/malloc.c:296 +#, c-format +msgid "malloc: failed assertion: %s\n" +msgstr "" + +#: lib/malloc/malloc.c:312 +#, c-format +msgid "" +"\r\n" +"malloc: %s:%d: assertion botched\r\n" +msgstr "" + +#: lib/malloc/malloc.c:313 +#, fuzzy +msgid "unknown" +msgstr "%s: tundmatu masin" + +#: lib/malloc/malloc.c:797 +msgid "malloc: block on free list clobbered" +msgstr "" + +#: lib/malloc/malloc.c:874 +msgid "free: called with already freed block argument" +msgstr "" + +#: lib/malloc/malloc.c:877 +msgid "free: called with unallocated block argument" +msgstr "" + +#: lib/malloc/malloc.c:896 +msgid "free: underflow detected; mh_nbytes out of range" +msgstr "" + +#: lib/malloc/malloc.c:902 +msgid "free: start and end chunk sizes differ" +msgstr "" + +#: lib/malloc/malloc.c:1001 +msgid "realloc: called with unallocated block argument" +msgstr "" + +#: lib/malloc/malloc.c:1016 +msgid "realloc: underflow detected; mh_nbytes out of range" +msgstr "" + +#: lib/malloc/malloc.c:1022 +msgid "realloc: start and end chunk sizes differ" +msgstr "" + +#: lib/malloc/table.c:177 +#, c-format +msgid "register_alloc: alloc table is full with FIND_ALLOC?\n" +msgstr "" + +#: lib/malloc/table.c:184 +#, c-format +msgid "register_alloc: %p already in table as allocated?\n" +msgstr "" + +#: lib/malloc/table.c:220 +#, c-format +msgid "register_free: %p already in table as free?\n" +msgstr "" + +#: lib/sh/fmtulong.c:101 +msgid "invalid base" +msgstr "vigane baas" + +#: lib/sh/netopen.c:168 +#, c-format +msgid "%s: host unknown" +msgstr "%s: tundmatu masin" + +#: lib/sh/netopen.c:175 +#, c-format +msgid "%s: invalid service" +msgstr "%s: vigane teenus" + +#: lib/sh/netopen.c:306 +#, c-format +msgid "%s: bad network path specification" +msgstr "" + +#: lib/sh/netopen.c:346 +msgid "network operations not supported" +msgstr "" + +#: mailcheck.c:433 +msgid "You have mail in $_" +msgstr "Teil on kiri kaustas $_" + +#: mailcheck.c:458 +msgid "You have new mail in $_" +msgstr "Teil on uus kiri kaustas $_" + +#: mailcheck.c:474 +#, c-format +msgid "The mail in %s has been read\n" +msgstr "Kiri kaustas %s on loetud\n" + +#: make_cmd.c:322 +msgid "syntax error: arithmetic expression required" +msgstr "süntaksi viga: nõutakse aritmeetilist avaldist" + +#: make_cmd.c:324 +msgid "syntax error: `;' unexpected" +msgstr "süntaksi viga: ootamatu `;'" + +#: make_cmd.c:325 +#, c-format +msgid "syntax error: `((%s))'" +msgstr "süntaksi viga: `((%s))'" + +#: make_cmd.c:567 +#, c-format +msgid "make_here_document: bad instruction type %d" +msgstr "" + +#: make_cmd.c:651 +#, c-format +msgid "here-document at line %d delimited by end-of-file (wanted `%s')" +msgstr "" + +#: make_cmd.c:746 +#, c-format +msgid "make_redirection: redirection instruction `%d' out of range" +msgstr "" + +#: parse.y:2986 parse.y:3218 +#, c-format +msgid "unexpected EOF while looking for matching `%c'" +msgstr "" + +#: parse.y:3722 +msgid "unexpected EOF while looking for `]]'" +msgstr "" + +#: parse.y:3727 +#, c-format +msgid "syntax error in conditional expression: unexpected token `%s'" +msgstr "" + +#: parse.y:3731 +msgid "syntax error in conditional expression" +msgstr "süntaksi viga tingimuslikus avaldises" + +#: parse.y:3809 +#, c-format +msgid "unexpected token `%s', expected `)'" +msgstr "ootamatu märk `%s', oodati `)'" + +#: parse.y:3813 +msgid "expected `)'" +msgstr "oodati `)'" + +#: parse.y:3841 +#, c-format +msgid "unexpected argument `%s' to conditional unary operator" +msgstr "" + +#: parse.y:3845 +msgid "unexpected argument to conditional unary operator" +msgstr "" + +#: parse.y:3885 +#, c-format +msgid "unexpected token `%s', conditional binary operator expected" +msgstr "" + +#: parse.y:3889 +msgid "conditional binary operator expected" +msgstr "" + +#: parse.y:3906 +#, c-format +msgid "unexpected argument `%s' to conditional binary operator" +msgstr "" + +#: parse.y:3910 +msgid "unexpected argument to conditional binary operator" +msgstr "" + +#: parse.y:3921 +#, c-format +msgid "unexpected token `%c' in conditional command" +msgstr "" + +#: parse.y:3924 +#, c-format +msgid "unexpected token `%s' in conditional command" +msgstr "" + +#: parse.y:3928 +#, c-format +msgid "unexpected token %d in conditional command" +msgstr "" + +#: parse.y:5195 +#, c-format +msgid "syntax error near unexpected token `%s'" +msgstr "" + +#: parse.y:5213 +#, c-format +msgid "syntax error near `%s'" +msgstr "süntaksi viga kohal `%s'" + +#: parse.y:5223 +msgid "syntax error: unexpected end of file" +msgstr "süntaksi viga: ootamatu faililõpp" + +#: parse.y:5223 +msgid "syntax error" +msgstr "süntaksi viga" + +#: parse.y:5285 +#, c-format +msgid "Use \"%s\" to leave the shell.\n" +msgstr "Käsuinterpretaatorist väljumiseks kasutage \"%s\".\n" + +#: parse.y:5447 +msgid "unexpected EOF while looking for matching `)'" +msgstr "" + +#: pcomplete.c:1016 +#, c-format +msgid "completion: function `%s' not found" +msgstr "" + +#: pcomplib.c:179 +#, c-format +msgid "progcomp_insert: %s: NULL COMPSPEC" +msgstr "" + +#: print_cmd.c:287 +#, c-format +msgid "print_command: bad connector `%d'" +msgstr "" + +#: print_cmd.c:1347 +#, c-format +msgid "cprintf: `%c': invalid format character" +msgstr "" + +#: redir.c:105 +msgid "file descriptor out of range" +msgstr "faili deskriptor on piiridest väljas" + +#: redir.c:148 +#, c-format +msgid "%s: ambiguous redirect" +msgstr "%s: segane ümbersuunamine" + +#: redir.c:152 +#, c-format +msgid "%s: cannot overwrite existing file" +msgstr "%s: fail on olemas, ei kirjuta üle" + +#: redir.c:157 +#, c-format +msgid "%s: restricted: cannot redirect output" +msgstr "%s: piiratud: väljundit ei saa ümber suunata" + +#: redir.c:162 +#, c-format +msgid "cannot create temp file for here-document: %s" +msgstr "" + +#: redir.c:517 +msgid "/dev/(tcp|udp)/host/port not supported without networking" +msgstr "" + +#: redir.c:1023 +msgid "redirection error: cannot duplicate fd" +msgstr "viga ümbersuunamisel: fd duplikaadi loomine ei õnnestu" + +#: shell.c:328 +msgid "could not find /tmp, please create!" +msgstr "/tmp puudub, palun looge see!" + +#: shell.c:332 +msgid "/tmp must be a valid directory name" +msgstr "/tmp peab olema kataloogi nimi" + +#: shell.c:876 +#, c-format +msgid "%c%c: invalid option" +msgstr "%c%c: vigane võti" + +#: shell.c:1638 +msgid "I have no name!" +msgstr "Mul ei ole nime!" + +#: shell.c:1778 +#, c-format +msgid "GNU bash, version %s-(%s)\n" +msgstr "" + +#: shell.c:1779 +#, c-format +msgid "" +"Usage:\t%s [GNU long option] [option] ...\n" +"\t%s [GNU long option] [option] script-file ...\n" +msgstr "" +"Kasuta:\t%s [GNU pikk võti] [võti] ...\n" +"\t%s [GNU pikk võti] [võti] skript-fail ...\n" + +#: shell.c:1781 +msgid "GNU long options:\n" +msgstr "GNU pikad võtmed:\n" + +#: shell.c:1785 +msgid "Shell options:\n" +msgstr "Käsuinterpretaatori võtmed:\n" + +#: shell.c:1786 +msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n" +msgstr "\t-irsD või -c käsklus või -O lühivõti\t\t(ainult käivitamine)\n" + +#: shell.c:1801 +#, c-format +msgid "\t-%s or -o option\n" +msgstr "\t-%s või -o võti\n" + +#: shell.c:1807 +#, c-format +msgid "Type `%s -c \"help set\"' for more information about shell options.\n" +msgstr "" + +#: shell.c:1808 +#, c-format +msgid "Type `%s -c help' for more information about shell builtin commands.\n" +msgstr "" + +#: shell.c:1809 +#, c-format +msgid "Use the `bashbug' command to report bugs.\n" +msgstr "Vigadest teatamiseks kasutage käsku `bashbug'.\n" + +#: sig.c:583 +#, c-format +msgid "sigprocmask: %d: invalid operation" +msgstr "sigprocmask: %d: vigane operatsioon" + +#: 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 +#, fuzzy +msgid "Bus error" +msgstr "süntaksi viga" + +#: 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 +#, fuzzy +msgid "Terminated" +msgstr "piiratud" + +#: 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:1181 subst.c:1302 +#, c-format +msgid "bad substitution: no closing `%s' in %s" +msgstr "" + +#: subst.c:2458 +#, c-format +msgid "%s: cannot assign list to array member" +msgstr "" + +#: subst.c:4456 subst.c:4472 +msgid "cannot make pipe for process substitution" +msgstr "" + +#: subst.c:4504 +msgid "cannot make child for process substitution" +msgstr "" + +#: subst.c:4549 +#, c-format +msgid "cannot open named pipe %s for reading" +msgstr "" + +#: subst.c:4551 +#, c-format +msgid "cannot open named pipe %s for writing" +msgstr "" + +#: subst.c:4569 +#, c-format +msgid "cannot duplicate named pipe %s as fd %d" +msgstr "" + +#: subst.c:4765 +msgid "cannot make pipe for command substitution" +msgstr "" + +#: subst.c:4799 +msgid "cannot make child for command substitution" +msgstr "" + +#: subst.c:4816 +msgid "command_substitute: cannot duplicate pipe as fd 1" +msgstr "" + +#: subst.c:5318 +#, c-format +msgid "%s: parameter null or not set" +msgstr "%s: parameeter on null või pole seatud" + +#: subst.c:5608 +#, c-format +msgid "%s: substring expression < 0" +msgstr "" + +#: subst.c:6660 +#, c-format +msgid "%s: bad substitution" +msgstr "%s: halb asendus" + +#: subst.c:6740 +#, c-format +msgid "$%s: cannot assign in this way" +msgstr "$%s: sedasi ei saa omistada" + +#: subst.c:7479 +#, fuzzy, c-format +msgid "bad substitution: no closing \"`\" in %s" +msgstr "sulgev `%c' puudub %s sees" + +#: subst.c:8354 +#, c-format +msgid "no match: %s" +msgstr "ei leitud: %s" + +#: test.c:145 +msgid "argument expected" +msgstr "oodati argumenti" + +#: test.c:154 +#, c-format +msgid "%s: integer expression expected" +msgstr "%s: oodati täisarvude avaldist" + +#: test.c:262 +msgid "`)' expected" +msgstr "oodati `)'" + +#: test.c:264 +#, c-format +msgid "`)' expected, found %s" +msgstr "oodati `)', saadi %s" + +#: test.c:279 test.c:688 test.c:691 +#, c-format +msgid "%s: unary operator expected" +msgstr "%s: eeldati unaarset operaatorit" + +#: test.c:444 test.c:731 +#, c-format +msgid "%s: binary operator expected" +msgstr "%s: eeldati binaarset operaatorit" + +#: test.c:806 +msgid "missing `]'" +msgstr "puudub `]'" + +#: trap.c:201 +msgid "invalid signal number" +msgstr "vigane signaali number" + +#: trap.c:324 +#, c-format +msgid "run_pending_traps: bad value in trap_list[%d]: %p" +msgstr "run_pending_traps: halb väärtus muutujas trap_list[%d]: %p" + +#: trap.c:328 +#, c-format +msgid "" +"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself" +msgstr "" +"run_pending_traps: signaali käsitleja on SIG_DFL, saadan %d (%s) iseendale" + +#: trap.c:372 +#, c-format +msgid "trap_handler: bad signal %d" +msgstr "trap_handler: vigane signaal %d" + +#: variables.c:358 +#, c-format +msgid "error importing function definition for `%s'" +msgstr "" + +#: variables.c:736 +#, c-format +msgid "shell level (%d) too high, resetting to 1" +msgstr "shelli tase (%d) on liiga kõrge, kasutan väärtust 1" + +#: variables.c:1898 +msgid "make_local_variable: no function context at current scope" +msgstr "make_local_variable: praegune skoop pole funktsiooni kontekst" + +#: variables.c:3127 +msgid "all_local_variables: no function context at current scope" +msgstr "all_local_variables: praegune skoop pole funktsiooni kontekst" + +#: variables.c:3344 variables.c:3353 +#, c-format +msgid "invalid character %d in exportstr for %s" +msgstr "" + +#: variables.c:3359 +#, c-format +msgid "no `=' in exportstr for %s" +msgstr "" + +#: variables.c:3794 +msgid "pop_var_context: head of shell_variables not a function context" +msgstr "" + +#: variables.c:3807 +msgid "pop_var_context: no global_variables context" +msgstr "pop_var_context: pole global_variables kontekst" + +#: variables.c:3881 +msgid "pop_scope: head of shell_variables not a temporary environment scope" +msgstr "" + +#: version.c:46 +#, fuzzy +msgid "Copyright (C) 2009 Free Software Foundation, Inc." +msgstr "Autoriõigus © 2006 Free Software Foundation, Inc.\n" + +#: version.c:47 +msgid "" +"License GPLv3+: GNU GPL version 3 or later \n" +msgstr "" + +#: version.c:86 +#, c-format +msgid "GNU bash, version %s (%s)\n" +msgstr "" + +#: version.c:91 +#, c-format +msgid "This is free software; you are free to change and redistribute it.\n" +msgstr "" + +#: version.c:92 +#, c-format +msgid "There is NO WARRANTY, to the extent permitted by law.\n" +msgstr "" + +#: xmalloc.c:92 +#, c-format +msgid "xmalloc: cannot allocate %lu bytes (%lu bytes allocated)" +msgstr "" + +#: xmalloc.c:94 +#, c-format +msgid "xmalloc: cannot allocate %lu bytes" +msgstr "" + +#: xmalloc.c:114 +#, c-format +msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)" +msgstr "" + +#: xmalloc.c:116 +#, c-format +msgid "xrealloc: cannot allocate %lu bytes" +msgstr "" + +#: xmalloc.c:150 +#, c-format +msgid "xmalloc: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)" +msgstr "" + +#: xmalloc.c:152 +#, c-format +msgid "xmalloc: %s:%d: cannot allocate %lu bytes" +msgstr "" + +#: xmalloc.c:174 +#, c-format +msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)" +msgstr "" + +#: xmalloc.c:176 +#, c-format +msgid "xrealloc: %s:%d: cannot allocate %lu bytes" +msgstr "" + +#: builtins.c:43 +msgid "alias [-p] [name[=value] ... ]" +msgstr "" + +#: builtins.c:47 +msgid "unalias [-a] name [name ...]" +msgstr "" + +#: builtins.c:51 +msgid "" +"bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-" +"x keyseq:shell-command] [keyseq:readline-function or readline-command]" +msgstr "" + +#: builtins.c:54 +msgid "break [n]" +msgstr "" + +#: builtins.c:56 +msgid "continue [n]" +msgstr "" + +#: builtins.c:58 +msgid "builtin [shell-builtin [arg ...]]" +msgstr "" + +#: builtins.c:61 +msgid "caller [expr]" +msgstr "" + +#: builtins.c:64 +msgid "cd [-L|-P] [dir]" +msgstr "" + +#: builtins.c:66 +msgid "pwd [-LP]" +msgstr "" + +#: builtins.c:68 +msgid ":" +msgstr "" + +#: builtins.c:70 +msgid "true" +msgstr "" + +#: builtins.c:72 +msgid "false" +msgstr "" + +#: builtins.c:74 +msgid "command [-pVv] command [arg ...]" +msgstr "" + +#: builtins.c:76 +msgid "declare [-aAfFilrtux] [-p] [name[=value] ...]" +msgstr "" + +#: builtins.c:78 +msgid "typeset [-aAfFilrtux] [-p] name[=value] ..." +msgstr "" + +#: builtins.c:80 +msgid "local [option] name[=value] ..." +msgstr "" + +#: builtins.c:83 +msgid "echo [-neE] [arg ...]" +msgstr "" + +#: builtins.c:87 +msgid "echo [-n] [arg ...]" +msgstr "" + +#: builtins.c:90 +msgid "enable [-a] [-dnps] [-f filename] [name ...]" +msgstr "" + +#: builtins.c:92 +msgid "eval [arg ...]" +msgstr "" + +#: builtins.c:94 +msgid "getopts optstring name [arg]" +msgstr "" + +#: builtins.c:96 +msgid "exec [-cl] [-a name] [command [arguments ...]] [redirection ...]" +msgstr "" + +#: builtins.c:98 +msgid "exit [n]" +msgstr "" + +#: builtins.c:100 +msgid "logout [n]" +msgstr "" + +#: builtins.c:103 +msgid "fc [-e ename] [-lnr] [first] [last] or fc -s [pat=rep] [command]" +msgstr "" + +#: builtins.c:107 +msgid "fg [job_spec]" +msgstr "" + +#: builtins.c:111 +msgid "bg [job_spec ...]" +msgstr "" + +#: builtins.c:114 +msgid "hash [-lr] [-p pathname] [-dt] [name ...]" +msgstr "" + +#: builtins.c:117 +msgid "help [-ds] [pattern ...]" +msgstr "" + +#: builtins.c:121 +msgid "" +"history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg " +"[arg...]" +msgstr "" + +#: builtins.c:125 +msgid "jobs [-lnprs] [jobspec ...] or jobs -x command [args]" +msgstr "" + +#: builtins.c:129 +msgid "disown [-h] [-ar] [jobspec ...]" +msgstr "" + +#: builtins.c:132 +msgid "" +"kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l " +"[sigspec]" +msgstr "" + +#: builtins.c:134 +msgid "let arg [arg ...]" +msgstr "" + +#: builtins.c:136 +msgid "" +"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-p prompt] [-t " +"timeout] [-u fd] [name ...]" +msgstr "" + +#: builtins.c:138 +msgid "return [n]" +msgstr "" + +#: builtins.c:140 +msgid "set [--abefhkmnptuvxBCHP] [-o option-name] [arg ...]" +msgstr "" + +#: builtins.c:142 +msgid "unset [-f] [-v] [name ...]" +msgstr "" + +#: builtins.c:144 +msgid "export [-fn] [name[=value] ...] or export -p" +msgstr "" + +#: builtins.c:146 +msgid "readonly [-af] [name[=value] ...] or readonly -p" +msgstr "" + +#: builtins.c:148 +#, fuzzy +msgid "shift [n]" +msgstr "shift arv" + +#: builtins.c:150 +msgid "source filename [arguments]" +msgstr "" + +#: builtins.c:152 +#, fuzzy +msgid ". filename [arguments]" +msgstr "liiga palju argumente" + +#: builtins.c:155 +msgid "suspend [-f]" +msgstr "" + +#: builtins.c:158 +msgid "test [expr]" +msgstr "" + +#: builtins.c:160 +msgid "[ arg... ]" +msgstr "" + +#: builtins.c:162 +msgid "times" +msgstr "" + +#: builtins.c:164 +msgid "trap [-lp] [[arg] signal_spec ...]" +msgstr "" + +#: builtins.c:166 +msgid "type [-afptP] name [name ...]" +msgstr "" + +#: builtins.c:169 +msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]" +msgstr "" + +#: builtins.c:172 +msgid "umask [-p] [-S] [mode]" +msgstr "" + +#: builtins.c:175 +msgid "wait [id]" +msgstr "" + +#: builtins.c:179 +msgid "wait [pid]" +msgstr "" + +#: builtins.c:182 +msgid "for NAME [in WORDS ... ] ; do COMMANDS; done" +msgstr "" + +#: builtins.c:184 +msgid "for (( exp1; exp2; exp3 )); do COMMANDS; done" +msgstr "" + +#: builtins.c:186 +msgid "select NAME [in WORDS ... ;] do COMMANDS; done" +msgstr "" + +#: builtins.c:188 +msgid "time [-p] pipeline" +msgstr "" + +#: builtins.c:190 +msgid "case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac" +msgstr "" + +#: builtins.c:192 +msgid "" +"if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else " +"COMMANDS; ] fi" +msgstr "" + +#: builtins.c:194 +msgid "while COMMANDS; do COMMANDS; done" +msgstr "" + +#: builtins.c:196 +msgid "until COMMANDS; do COMMANDS; done" +msgstr "" + +#: builtins.c:198 +msgid "function name { COMMANDS ; } or name () { COMMANDS ; }" +msgstr "" + +#: builtins.c:200 +msgid "{ COMMANDS ; }" +msgstr "" + +#: builtins.c:202 +msgid "job_spec [&]" +msgstr "" + +#: builtins.c:204 +#, fuzzy +msgid "(( expression ))" +msgstr "oodati avaldist" + +#: builtins.c:206 +#, fuzzy +msgid "[[ expression ]]" +msgstr "oodati avaldist" + +#: builtins.c:208 +msgid "variables - Names and meanings of some shell variables" +msgstr "" + +#: builtins.c:211 +msgid "pushd [-n] [+N | -N | dir]" +msgstr "" + +#: builtins.c:215 +msgid "popd [-n] [+N | -N]" +msgstr "" + +#: builtins.c:219 +msgid "dirs [-clpv] [+N] [-N]" +msgstr "" + +#: builtins.c:222 +msgid "shopt [-pqsu] [-o] [optname ...]" +msgstr "" + +#: builtins.c:224 +msgid "printf [-v var] format [arguments]" +msgstr "" + +#: builtins.c:227 +msgid "" +"complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W " +"wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] " +"[name ...]" +msgstr "" + +#: builtins.c:231 +msgid "" +"compgen [-abcdefgjksuv] [-o option] [-A action] [-G globpat] [-W wordlist] " +"[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]" +msgstr "" + +#: builtins.c:235 +msgid "compopt [-o|+o option] [name ...]" +msgstr "" + +#: builtins.c:238 +msgid "" +"mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c " +"quantum] [array]" +msgstr "" + +#: builtins.c:250 +msgid "" +"Define or display aliases.\n" +" \n" +" Without arguments, `alias' prints the list of aliases in the reusable\n" +" form `alias NAME=VALUE' on standard output.\n" +" \n" +" Otherwise, an alias is defined for each NAME whose VALUE is given.\n" +" A trailing space in VALUE causes the next word to be checked for\n" +" alias substitution when the alias is expanded.\n" +" \n" +" Options:\n" +" -p\tPrint all defined aliases in a reusable format\n" +" \n" +" Exit Status:\n" +" alias returns true unless a NAME is supplied for which no alias has " +"been\n" +" defined." +msgstr "" + +#: builtins.c:272 +msgid "" +"Remove each NAME from the list of defined aliases.\n" +" \n" +" Options:\n" +" -a\tremove all alias definitions.\n" +" \n" +" Return success unless a NAME is not an existing alias." +msgstr "" + +#: builtins.c:285 +msgid "" +"Set Readline key bindings and variables.\n" +" \n" +" Bind a key sequence to a Readline function or a macro, or set a\n" +" Readline variable. The non-option argument syntax is equivalent to\n" +" that found in ~/.inputrc, but must be passed as a single argument:\n" +" e.g., bind '\"\\C-x\\C-r\": re-read-init-file'.\n" +" \n" +" Options:\n" +" -m keymap Use KEYMAP as the keymap for the duration of this\n" +" command. Acceptable keymap names are emacs,\n" +" emacs-standard, emacs-meta, emacs-ctlx, vi, vi-" +"move,\n" +" vi-command, and vi-insert.\n" +" -l List names of functions.\n" +" -P List function names and bindings.\n" +" -p List functions and bindings in a form that can be\n" +" reused as input.\n" +" -S List key sequences that invoke macros and their " +"values\n" +" -s List key sequences that invoke macros and their " +"values\n" +" in a form that can be reused as input.\n" +" -V List variable names and values\n" +" -v List variable names and values in a form that can\n" +" be reused as input.\n" +" -q function-name Query about which keys invoke the named function.\n" +" -u function-name Unbind all keys which are bound to the named " +"function.\n" +" -r keyseq Remove the binding for KEYSEQ.\n" +" -f filename Read key bindings from FILENAME.\n" +" -x keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n" +" \t\t\t\tKEYSEQ is entered.\n" +" \n" +" Exit Status:\n" +" bind returns 0 unless an unrecognized option is given or an error occurs." +msgstr "" + +#: builtins.c:322 +msgid "" +"Exit for, while, or until loops.\n" +" \n" +" Exit a FOR, WHILE or UNTIL loop. If N is specified, break N enclosing\n" +" loops.\n" +" \n" +" Exit Status:\n" +" The exit status is 0 unless N is not greater than or equal to 1." +msgstr "" + +#: builtins.c:334 +msgid "" +"Resume for, while, or until loops.\n" +" \n" +" Resumes the next iteration of the enclosing FOR, WHILE or UNTIL loop.\n" +" If N is specified, resumes the Nth enclosing loop.\n" +" \n" +" Exit Status:\n" +" The exit status is 0 unless N is not greater than or equal to 1." +msgstr "" + +#: builtins.c:346 +msgid "" +"Execute shell builtins.\n" +" \n" +" Execute SHELL-BUILTIN with arguments ARGs without performing command\n" +" lookup. This is useful when you wish to reimplement a shell builtin\n" +" as a shell function, but need to execute the builtin within the " +"function.\n" +" \n" +" Exit Status:\n" +" Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is\n" +" not a shell builtin.." +msgstr "" + +#: builtins.c:361 +msgid "" +"Return the context of the current subroutine call.\n" +" \n" +" Without EXPR, returns \"$line $filename\". With EXPR, returns\n" +" \"$line $subroutine $filename\"; this extra information can be used to\n" +" provide a stack trace.\n" +" \n" +" The value of EXPR indicates how many call frames to go back before the\n" +" current one; the top frame is frame 0.\n" +" \n" +" Exit Status:\n" +" Returns 0 unless the shell is not executing a shell function or EXPR\n" +" is invalid." +msgstr "" + +#: builtins.c:379 +msgid "" +"Change the shell working directory.\n" +" \n" +" Change the current directory to DIR. The default DIR is the value of " +"the\n" +" HOME shell variable.\n" +" \n" +" The variable CDPATH defines the search path for the directory " +"containing\n" +" DIR. Alternative directory names in CDPATH are separated by a colon " +"(:).\n" +" A null directory name is the same as the current directory. If DIR " +"begins\n" +" with a slash (/), then CDPATH is not used.\n" +" \n" +" If the directory is not found, and the shell option `cdable_vars' is " +"set,\n" +" the word is assumed to be a variable name. If that variable has a " +"value,\n" +" its value is used for DIR.\n" +" \n" +" Options:\n" +" -L\tforce symbolic links to be followed\n" +" -P\tuse the physical directory structure without following symbolic\n" +" \tlinks\n" +" \n" +" The default is to follow symbolic links, as if `-L' were specified.\n" +" \n" +" Exit Status:\n" +" Returns 0 if the directory is changed; non-zero otherwise." +msgstr "" + +#: builtins.c:407 +msgid "" +"Print the name of the current working directory.\n" +" \n" +" Options:\n" +" -L\tprint the value of $PWD if it names the current working\n" +" \tdirectory\n" +" -P\tprint the physical directory, without any symbolic links\n" +" \n" +" By default, `pwd' behaves as if `-L' were specified.\n" +" \n" +" Exit Status:\n" +" Returns 0 unless an invalid option is given or the current directory\n" +" cannot be read." +msgstr "" + +#: builtins.c:424 +msgid "" +"Null command.\n" +" \n" +" No effect; the command does nothing.\n" +" \n" +" Exit Status:\n" +" Always succeeds." +msgstr "" + +#: builtins.c:435 +msgid "" +"Return a successful result.\n" +" \n" +" Exit Status:\n" +" Always succeeds." +msgstr "" + +#: builtins.c:444 +msgid "" +"Return an unsuccessful result.\n" +" \n" +" Exit Status:\n" +" Always fails." +msgstr "" + +#: builtins.c:453 +msgid "" +"Execute a simple command or display information about commands.\n" +" \n" +" Runs COMMAND with ARGS suppressing shell function lookup, or display\n" +" information about the specified COMMANDs. Can be used to invoke " +"commands\n" +" on disk when a function with the same name exists.\n" +" \n" +" Options:\n" +" -p\tuse a default value for PATH that is guaranteed to find all of\n" +" \tthe standard utilities\n" +" -v\tprint a description of COMMAND similar to the `type' builtin\n" +" -V\tprint a more verbose description of each COMMAND\n" +" \n" +" Exit Status:\n" +" Returns exit status of COMMAND, or failure if COMMAND is not found." +msgstr "" + +#: builtins.c:472 +msgid "" +"Set variable values and attributes.\n" +" \n" +" Declare variables and give them attributes. If no NAMEs are given,\n" +" display the attributes and values of all variables.\n" +" \n" +" Options:\n" +" -f\trestrict action or display to function names and definitions\n" +" -F\trestrict display to function names only (plus line number and\n" +" \tsource file when debugging)\n" +" -p\tdisplay the attributes and value of each NAME\n" +" \n" +" Options which set attributes:\n" +" -a\tto make NAMEs indexed arrays (if supported)\n" +" -A\tto make NAMEs associative arrays (if supported)\n" +" -i\tto make NAMEs have the `integer' attribute\n" +" -l\tto convert NAMEs to lower case on assignment\n" +" -r\tto make NAMEs readonly\n" +" -t\tto make NAMEs have the `trace' attribute\n" +" -u\tto convert NAMEs to upper case on assignment\n" +" -x\tto make NAMEs export\n" +" \n" +" Using `+' instead of `-' turns off the given attribute.\n" +" \n" +" Variables with the integer attribute have arithmetic evaluation (see\n" +" the `let' command) performed when the variable is assigned a value.\n" +" \n" +" When used in a function, `declare' makes NAMEs local, as with the " +"`local'\n" +" command.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" + +#: builtins.c:508 +msgid "" +"Set variable values and attributes.\n" +" \n" +" Obsolete. See `help declare'." +msgstr "" + +#: builtins.c:516 +msgid "" +"Define local variables.\n" +" \n" +" Create a local variable called NAME, and give it VALUE. OPTION can\n" +" be any option accepted by `declare'.\n" +" \n" +" Local variables can only be used within a function; they are visible\n" +" only to the function where they are defined and its children.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied, an error occurs,\n" +" or the shell is not executing a function." +msgstr "" + +#: builtins.c:533 +msgid "" +"Write arguments to the standard output.\n" +" \n" +" Display the ARGs on the standard output followed by a newline.\n" +" \n" +" Options:\n" +" -n\tdo not append a newline\n" +" -e\tenable interpretation of the following backslash escapes\n" +" -E\texplicitly suppress interpretation of backslash escapes\n" +" \n" +" `echo' interprets the following backslash-escaped characters:\n" +" \\a\talert (bell)\n" +" \\b\tbackspace\n" +" \\c\tsuppress further output\n" +" \\e\tescape character\n" +" \\f\tform feed\n" +" \\n\tnew line\n" +" \\r\tcarriage return\n" +" \\t\thorizontal tab\n" +" \\v\tvertical tab\n" +" \\\\\tbackslash\n" +" \\0nnn\tthe character whose ASCII code is NNN (octal). NNN can be\n" +" \t0 to 3 octal digits\n" +" \\xHH\tthe eight-bit character whose value is HH (hexadecimal). HH\n" +" \tcan be one or two hex digits\n" +" \n" +" Exit Status:\n" +" Returns success unless a write error occurs." +msgstr "" + +#: builtins.c:567 +msgid "" +"Write arguments to the standard output.\n" +" \n" +" Display the ARGs on the standard output followed by a newline.\n" +" \n" +" Options:\n" +" -n\tdo not append a newline\n" +" \n" +" Exit Status:\n" +" Returns success unless a write error occurs." +msgstr "" + +#: builtins.c:582 +msgid "" +"Enable and disable shell builtins.\n" +" \n" +" Enables and disables builtin shell commands. Disabling allows you to\n" +" execute a disk command which has the same name as a shell builtin\n" +" without using a full pathname.\n" +" \n" +" Options:\n" +" -a\tprint a list of builtins showing whether or not each is enabled\n" +" -n\tdisable each NAME or display a list of disabled builtins\n" +" -p\tprint the list of builtins in a reusable format\n" +" -s\tprint only the names of Posix `special' builtins\n" +" \n" +" Options controlling dynamic loading:\n" +" -f\tLoad builtin NAME from shared object FILENAME\n" +" -d\tRemove a builtin loaded with -f\n" +" \n" +" Without options, each NAME is enabled.\n" +" \n" +" To use the `test' found in $PATH instead of the shell builtin\n" +" version, type `enable -n test'.\n" +" \n" +" Exit Status:\n" +" Returns success unless NAME is not a shell builtin or an error occurs." +msgstr "" + +#: builtins.c:610 +msgid "" +"Execute arguments as a shell command.\n" +" \n" +" Combine ARGs into a single string, use the result as input to the " +"shell,\n" +" and execute the resulting commands.\n" +" \n" +" Exit Status:\n" +" Returns exit status of command or success if command is null." +msgstr "" + +#: builtins.c:622 +msgid "" +"Parse option arguments.\n" +" \n" +" Getopts is used by shell procedures to parse positional parameters\n" +" as options.\n" +" \n" +" OPTSTRING contains the option letters to be recognized; if a letter\n" +" is followed by a colon, the option is expected to have an argument,\n" +" which should be separated from it by white space.\n" +" \n" +" Each time it is invoked, getopts will place the next option in the\n" +" shell variable $name, initializing name if it does not exist, and\n" +" the index of the next argument to be processed into the shell\n" +" variable OPTIND. OPTIND is initialized to 1 each time the shell or\n" +" a shell script is invoked. When an option requires an argument,\n" +" getopts places that argument into the shell variable OPTARG.\n" +" \n" +" getopts reports errors in one of two ways. If the first character\n" +" of OPTSTRING is a colon, getopts uses silent error reporting. In\n" +" this mode, no error messages are printed. If an invalid option is\n" +" seen, getopts places the option character found into OPTARG. If a\n" +" required argument is not found, getopts places a ':' into NAME and\n" +" sets OPTARG to the option character found. If getopts is not in\n" +" silent mode, and an invalid option is seen, getopts places '?' into\n" +" NAME and unsets OPTARG. If a required argument is not found, a '?'\n" +" is placed in NAME, OPTARG is unset, and a diagnostic message is\n" +" printed.\n" +" \n" +" If the shell variable OPTERR has the value 0, getopts disables the\n" +" printing of error messages, even if the first character of\n" +" OPTSTRING is not a colon. OPTERR has the value 1 by default.\n" +" \n" +" Getopts normally parses the positional parameters ($0 - $9), but if\n" +" more arguments are given, they are parsed instead.\n" +" \n" +" Exit Status:\n" +" Returns success if an option is found; fails if the end of options is\n" +" encountered or an error occurs." +msgstr "" + +#: builtins.c:664 +msgid "" +"Replace the shell with the given command.\n" +" \n" +" Execute COMMAND, replacing this shell with the specified program.\n" +" ARGUMENTS become the arguments to COMMAND. If COMMAND is not " +"specified,\n" +" any redirections take effect in the current shell.\n" +" \n" +" Options:\n" +" -a name\tpass NAME as the zeroth argument to COMMAND\n" +" -c\t\texecute COMMAND with an empty environment\n" +" -l\t\tplace a dash in the zeroth argument to COMMAND\n" +" \n" +" If the command cannot be executed, a non-interactive shell exits, " +"unless\n" +" the shell option `execfail' is set.\n" +" \n" +" Exit Status:\n" +" Returns success unless COMMAND is not found or a redirection error " +"occurs." +msgstr "" + +#: builtins.c:685 +msgid "" +"Exit the shell.\n" +" \n" +" Exits the shell with a status of N. If N is omitted, the exit status\n" +" is that of the last command executed." +msgstr "" + +#: builtins.c:694 +msgid "" +"Exit a login shell.\n" +" \n" +" Exits a login shell with exit status N. Returns an error if not " +"executed\n" +" in a login shell." +msgstr "" + +#: builtins.c:704 +msgid "" +"Display or execute commands from the history list.\n" +" \n" +" fc is used to list or edit and re-execute commands from the history " +"list.\n" +" FIRST and LAST can be numbers specifying the range, or FIRST can be a\n" +" string, which means the most recent command beginning with that\n" +" string.\n" +" \n" +" Options:\n" +" -e ENAME\tselect which editor to use. Default is FCEDIT, then " +"EDITOR,\n" +" \t\tthen vi\n" +" -l \tlist lines instead of editing\n" +" -n\tomit line numbers when listing\n" +" -r\treverse the order of the lines (newest listed first)\n" +" \n" +" With the `fc -s [pat=rep ...] [command]' format, COMMAND is\n" +" re-executed after the substitution OLD=NEW is performed.\n" +" \n" +" A useful alias to use with this is r='fc -s', so that typing `r cc'\n" +" runs the last command beginning with `cc' and typing `r' re-executes\n" +" the last command.\n" +" \n" +" Exit Status:\n" +" Returns success or status of executed command; non-zero if an error " +"occurs." +msgstr "" + +#: builtins.c:734 +msgid "" +"Move job to the foreground.\n" +" \n" +" Place the job identified by JOB_SPEC in the foreground, making it the\n" +" current job. If JOB_SPEC is not present, the shell's notion of the\n" +" current job is used.\n" +" \n" +" Exit Status:\n" +" Status of command placed in foreground, or failure if an error occurs." +msgstr "" + +#: builtins.c:749 +msgid "" +"Move jobs to the background.\n" +" \n" +" Place the jobs identified by each JOB_SPEC in the background, as if " +"they\n" +" had been started with `&'. If JOB_SPEC is not present, the shell's " +"notion\n" +" of the current job is used.\n" +" \n" +" Exit Status:\n" +" Returns success unless job control is not enabled or an error occurs." +msgstr "" + +#: builtins.c:763 +msgid "" +"Remember or display program locations.\n" +" \n" +" Determine and remember the full pathname of each command NAME. If\n" +" no arguments are given, information about remembered commands is " +"displayed.\n" +" \n" +" Options:\n" +" -d\t\tforget the remembered location of each NAME\n" +" -l\t\tdisplay in a format that may be reused as input\n" +" -p pathname\tuse PATHNAME is the full pathname of NAME\n" +" -r\t\tforget all remembered locations\n" +" -t\t\tprint the remembered location of each NAME, preceding\n" +" \t\teach location with the corresponding NAME if multiple\n" +" \t\tNAMEs are given\n" +" Arguments:\n" +" NAME\t\tEach NAME is searched for in $PATH and added to the list\n" +" \t\tof remembered commands.\n" +" \n" +" Exit Status:\n" +" Returns success unless NAME is not found or an invalid option is given." +msgstr "" + +#: builtins.c:788 +msgid "" +"Display information about builtin commands.\n" +" \n" +" Displays brief summaries of builtin commands. If PATTERN is\n" +" specified, gives detailed help on all commands matching PATTERN,\n" +" otherwise the list of help topics is printed.\n" +" \n" +" Options:\n" +" -d\toutput short description for each topic\n" +" -m\tdisplay usage in pseudo-manpage format\n" +" -s\toutput only a short usage synopsis for each topic matching\n" +" \tPATTERN\n" +" \n" +" Arguments:\n" +" PATTERN\tPattern specifiying a help topic\n" +" \n" +" Exit Status:\n" +" Returns success unless PATTERN is not found or an invalid option is " +"given." +msgstr "" + +#: builtins.c:812 +msgid "" +"Display or manipulate the history list.\n" +" \n" +" Display the history list with line numbers, prefixing each modified\n" +" entry with a `*'. An argument of N lists only the last N entries.\n" +" \n" +" Options:\n" +" -c\tclear the history list by deleting all of the entries\n" +" -d offset\tdelete the history entry at offset OFFSET.\n" +" \n" +" -a\tappend history lines from this session to the history file\n" +" -n\tread all history lines not already read from the history file\n" +" -r\tread the history file and append the contents to the history\n" +" \tlist\n" +" -w\twrite the current history to the history file\n" +" \tand append them to the history list\n" +" \n" +" -p\tperform history expansion on each ARG and display the result\n" +" \twithout storing it in the history list\n" +" -s\tappend the ARGs to the history list as a single entry\n" +" \n" +" If FILENAME is given, it is used as the history file. Otherwise,\n" +" if $HISTFILE has a value, that is used, else ~/.bash_history.\n" +" \n" +" If the $HISTTIMEFORMAT variable is set and not null, its value is used\n" +" as a format string for strftime(3) to print the time stamp associated\n" +" with each displayed history entry. No time stamps are printed " +"otherwise.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or an error occurs." +msgstr "" + +#: builtins.c:848 +msgid "" +"Display status of jobs.\n" +" \n" +" Lists the active jobs. JOBSPEC restricts output to that job.\n" +" Without options, the status of all active jobs is displayed.\n" +" \n" +" Options:\n" +" -l\tlists process IDs in addition to the normal information\n" +" -n\tlist only processes that have changed status since the last\n" +" \tnotification\n" +" -p\tlists process IDs only\n" +" -r\trestrict output to running jobs\n" +" -s\trestrict output to stopped jobs\n" +" \n" +" If -x is supplied, COMMAND is run after all job specifications that\n" +" appear in ARGS have been replaced with the process ID of that job's\n" +" process group leader.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or an error occurs.\n" +" If -x is used, returns the exit status of COMMAND." +msgstr "" + +#: builtins.c:875 +msgid "" +"Remove jobs from current shell.\n" +" \n" +" Removes each JOBSPEC argument from the table of active jobs. Without\n" +" any JOBSPECs, the shell uses its notion of the current job.\n" +" \n" +" Options:\n" +" -a\tremove all jobs if JOBSPEC is not supplied\n" +" -h\tmark each JOBSPEC so that SIGHUP is not sent to the job if the\n" +" \tshell receives a SIGHUP\n" +" -r\tremove only running jobs\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option or JOBSPEC is given." +msgstr "" + +#: builtins.c:894 +msgid "" +"Send a signal to a job.\n" +" \n" +" Send the processes identified by PID or JOBSPEC the signal named by\n" +" SIGSPEC or SIGNUM. If neither SIGSPEC nor SIGNUM is present, then\n" +" SIGTERM is assumed.\n" +" \n" +" Options:\n" +" -s sig\tSIG is a signal name\n" +" -n sig\tSIG is a signal number\n" +" -l\tlist the signal names; if arguments follow `-l' they are\n" +" \tassumed to be signal numbers for which names should be listed\n" +" \n" +" Kill is a shell builtin for two reasons: it allows job IDs to be used\n" +" instead of process IDs, and allows processes to be killed if the limit\n" +" on processes that you can create is reached.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or an error occurs." +msgstr "" + +#: builtins.c:917 +msgid "" +"Evaluate arithmetic expressions.\n" +" \n" +" Evaluate each ARG as an arithmetic expression. Evaluation is done in\n" +" fixed-width integers with no check for overflow, though division by 0\n" +" is trapped and flagged as an error. The following list of operators is\n" +" grouped into levels of equal-precedence operators. The levels are " +"listed\n" +" in order of decreasing precedence.\n" +" \n" +" \tid++, id--\tvariable post-increment, post-decrement\n" +" \t++id, --id\tvariable pre-increment, pre-decrement\n" +" \t-, +\t\tunary minus, plus\n" +" \t!, ~\t\tlogical and bitwise negation\n" +" \t**\t\texponentiation\n" +" \t*, /, %\t\tmultiplication, division, remainder\n" +" \t+, -\t\taddition, subtraction\n" +" \t<<, >>\t\tleft and right bitwise shifts\n" +" \t<=, >=, <, >\tcomparison\n" +" \t==, !=\t\tequality, inequality\n" +" \t&\t\tbitwise AND\n" +" \t^\t\tbitwise XOR\n" +" \t|\t\tbitwise OR\n" +" \t&&\t\tlogical AND\n" +" \t||\t\tlogical OR\n" +" \texpr ? expr : expr\n" +" \t\t\tconditional operator\n" +" \t=, *=, /=, %=,\n" +" \t+=, -=, <<=, >>=,\n" +" \t&=, ^=, |=\tassignment\n" +" \n" +" Shell variables are allowed as operands. The name of the variable\n" +" is replaced by its value (coerced to a fixed-width integer) within\n" +" an expression. The variable need not have its integer attribute\n" +" turned on to be used in an expression.\n" +" \n" +" Operators are evaluated in order of precedence. Sub-expressions in\n" +" parentheses are evaluated first and may override the precedence\n" +" rules above.\n" +" \n" +" Exit Status:\n" +" If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise.." +msgstr "" + +#: builtins.c:962 +msgid "" +"Read a line from the standard input and split it into fields.\n" +" \n" +" Reads a single line from the standard input, or from file descriptor FD\n" +" if the -u option is supplied. The line is split into fields as with " +"word\n" +" splitting, and the first word is assigned to the first NAME, the second\n" +" word to the second NAME, and so on, with any leftover words assigned to\n" +" the last NAME. Only the characters found in $IFS are recognized as " +"word\n" +" delimiters.\n" +" \n" +" If no NAMEs are supplied, the line read is stored in the REPLY " +"variable.\n" +" \n" +" Options:\n" +" -a array\tassign the words read to sequential indices of the array\n" +" \t\tvariable ARRAY, starting at zero\n" +" -d delim\tcontinue until the first character of DELIM is read, rather\n" +" \t\tthan newline\n" +" -e\t\tuse Readline to obtain the line in an interactive shell\n" +" -i text\tUse TEXT as the initial text for Readline\n" +" -n nchars\treturn after reading NCHARS characters rather than waiting\n" +" \t\tfor a newline\n" +" -p prompt\toutput the string PROMPT without a trailing newline before\n" +" \t\tattempting to read\n" +" -r\t\tdo not allow backslashes to escape any characters\n" +" -s\t\tdo not echo input coming from a terminal\n" +" -t timeout\ttime out and return failure if a complete line of input " +"is\n" +" \t\tnot read withint TIMEOUT seconds. The value of the TMOUT\n" +" \t\tvariable is the default timeout. TIMEOUT may be a\n" +" \t\tfractional number. If TIMEOUT is 0, read returns success only\n" +" \t\tif input is available on the specified file descriptor. The\n" +" \t\texit status is greater than 128 if the timeout is exceeded\n" +" -u fd\t\tread from file descriptor FD instead of the standard input\n" +" \n" +" Exit Status:\n" +" The return code is zero, unless end-of-file is encountered, read times " +"out,\n" +" or an invalid file descriptor is supplied as the argument to -u." +msgstr "" + +#: builtins.c:1002 +msgid "" +"Return from a shell function.\n" +" \n" +" Causes a function or sourced script to exit with the return value\n" +" specified by N. If N is omitted, the return status is that of the\n" +" last command executed within the function or script.\n" +" \n" +" Exit Status:\n" +" Returns N, or failure if the shell is not executing a function or script." +msgstr "" + +#: builtins.c:1015 +msgid "" +"Set or unset values of shell options and positional parameters.\n" +" \n" +" Change the value of shell attributes and positional parameters, or\n" +" display the names and values of shell variables.\n" +" \n" +" Options:\n" +" -a Mark variables which are modified or created for export.\n" +" -b Notify of job termination immediately.\n" +" -e Exit immediately if a command exits with a non-zero status.\n" +" -f Disable file name generation (globbing).\n" +" -h Remember the location of commands as they are looked up.\n" +" -k All assignment arguments are placed in the environment for a\n" +" command, not just those that precede the command name.\n" +" -m Job control is enabled.\n" +" -n Read commands but do not execute them.\n" +" -o option-name\n" +" Set the variable corresponding to option-name:\n" +" allexport same as -a\n" +" braceexpand same as -B\n" +" emacs use an emacs-style line editing interface\n" +" errexit same as -e\n" +" errtrace same as -E\n" +" functrace same as -T\n" +" hashall same as -h\n" +" histexpand same as -H\n" +" history enable command history\n" +" ignoreeof the shell will not exit upon reading EOF\n" +" interactive-comments\n" +" allow comments to appear in interactive commands\n" +" keyword same as -k\n" +" monitor same as -m\n" +" noclobber same as -C\n" +" noexec same as -n\n" +" noglob same as -f\n" +" nolog currently accepted but ignored\n" +" notify same as -b\n" +" nounset same as -u\n" +" onecmd same as -t\n" +" physical same as -P\n" +" pipefail the return value of a pipeline is the status of\n" +" the last command to exit with a non-zero status,\n" +" or zero if no command exited with a non-zero " +"status\n" +" posix change the behavior of bash where the default\n" +" operation differs from the Posix standard to\n" +" match the standard\n" +" privileged same as -p\n" +" verbose same as -v\n" +" vi use a vi-style line editing interface\n" +" xtrace same as -x\n" +" -p Turned on whenever the real and effective user ids do not match.\n" +" Disables processing of the $ENV file and importing of shell\n" +" functions. Turning this option off causes the effective uid and\n" +" gid to be set to the real uid and gid.\n" +" -t Exit after reading and executing one command.\n" +" -u Treat unset variables as an error when substituting.\n" +" -v Print shell input lines as they are read.\n" +" -x Print commands and their arguments as they are executed.\n" +" -B the shell will perform brace expansion\n" +" -C If set, disallow existing regular files to be overwritten\n" +" by redirection of output.\n" +" -E If set, the ERR trap is inherited by shell functions.\n" +" -H Enable ! style history substitution. This flag is on\n" +" by default when the shell is interactive.\n" +" -P If set, do not follow symbolic links when executing commands\n" +" such as cd which change the current directory.\n" +" -T If set, the DEBUG trap is inherited by shell functions.\n" +" - Assign any remaining arguments to the positional parameters.\n" +" The -x and -v options are turned off.\n" +" \n" +" Using + rather than - causes these flags to be turned off. The\n" +" flags can also be used upon invocation of the shell. The current\n" +" set of flags may be found in $-. The remaining n ARGs are positional\n" +" parameters and are assigned, in order, to $1, $2, .. $n. If no\n" +" ARGs are given, all shell variables are printed.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given." +msgstr "" + +#: builtins.c:1097 +msgid "" +"Unset values and attributes of shell variables and functions.\n" +" \n" +" For each NAME, remove the corresponding variable or function.\n" +" \n" +" Options:\n" +" -f\ttreat each NAME as a shell function\n" +" -v\ttreat each NAME as a shell variable\n" +" \n" +" Without options, unset first tries to unset a variable, and if that " +"fails,\n" +" tries to unset a function.\n" +" \n" +" Some variables cannot be unset; also see `readonly'.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or a NAME is read-only." +msgstr "" + +#: builtins.c:1117 +msgid "" +"Set export attribute for shell variables.\n" +" \n" +" Marks each NAME for automatic export to the environment of subsequently\n" +" executed commands. If VALUE is supplied, assign VALUE before " +"exporting.\n" +" \n" +" Options:\n" +" -f\trefer to shell functions\n" +" -n\tremove the export property from each NAME\n" +" -p\tdisplay a list of all exported variables and functions\n" +" \n" +" An argument of `--' disables further option processing.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or NAME is invalid." +msgstr "" + +#: builtins.c:1136 +msgid "" +"Mark shell variables as unchangeable.\n" +" \n" +" Mark each NAME as read-only; the values of these NAMEs may not be\n" +" changed by subsequent assignment. If VALUE is supplied, assign VALUE\n" +" before marking as read-only.\n" +" \n" +" Options:\n" +" -a\trefer to indexed array variables\n" +" -A\trefer to associative array variables\n" +" -f\trefer to shell functions\n" +" -p\tdisplay a list of all readonly variables and functions\n" +" \n" +" An argument of `--' disables further option processing.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or NAME is invalid." +msgstr "" + +#: builtins.c:1157 +msgid "" +"Shift positional parameters.\n" +" \n" +" Rename the positional parameters $N+1,$N+2 ... to $1,$2 ... If N is\n" +" not given, it is assumed to be 1.\n" +" \n" +" Exit Status:\n" +" Returns success unless N is negative or greater than $#." +msgstr "" + +#: builtins.c:1169 builtins.c:1184 +msgid "" +"Execute commands from a file in the current shell.\n" +" \n" +" Read and execute commands from FILENAME in the current shell. The\n" +" entries in $PATH are used to find the directory containing FILENAME.\n" +" If any ARGUMENTS are supplied, they become the positional parameters\n" +" when FILENAME is executed.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed in FILENAME; fails if\n" +" FILENAME cannot be read." +msgstr "" + +#: builtins.c:1200 +msgid "" +"Suspend shell execution.\n" +" \n" +" Suspend the execution of this shell until it receives a SIGCONT signal.\n" +" Unless forced, login shells cannot be suspended.\n" +" \n" +" Options:\n" +" -f\tforce the suspend, even if the shell is a login shell\n" +" \n" +" Exit Status:\n" +" Returns success unless job control is not enabled or an error occurs." +msgstr "" + +#: builtins.c:1216 +msgid "" +"Evaluate conditional expression.\n" +" \n" +" Exits with a status of 0 (true) or 1 (false) depending on\n" +" the evaluation of EXPR. Expressions may be unary or binary. Unary\n" +" expressions are often used to examine the status of a file. There\n" +" are string operators as well, and numeric comparison operators.\n" +" \n" +" File operators:\n" +" \n" +" -a FILE True if file exists.\n" +" -b FILE True if file is block special.\n" +" -c FILE True if file is character special.\n" +" -d FILE True if file is a directory.\n" +" -e FILE True if file exists.\n" +" -f FILE True if file exists and is a regular file.\n" +" -g FILE True if file is set-group-id.\n" +" -h FILE True if file is a symbolic link.\n" +" -L FILE True if file is a symbolic link.\n" +" -k FILE True if file has its `sticky' bit set.\n" +" -p FILE True if file is a named pipe.\n" +" -r FILE True if file is readable by you.\n" +" -s FILE True if file exists and is not empty.\n" +" -S FILE True if file is a socket.\n" +" -t FD True if FD is opened on a terminal.\n" +" -u FILE True if the file is set-user-id.\n" +" -w FILE True if the file is writable by you.\n" +" -x FILE True if the file is executable by you.\n" +" -O FILE True if the file is effectively owned by you.\n" +" -G FILE True if the file is effectively owned by your group.\n" +" -N FILE True if the file has been modified since it was last " +"read.\n" +" \n" +" FILE1 -nt FILE2 True if file1 is newer than file2 (according to\n" +" modification date).\n" +" \n" +" FILE1 -ot FILE2 True if file1 is older than file2.\n" +" \n" +" FILE1 -ef FILE2 True if file1 is a hard link to file2.\n" +" \n" +" String operators:\n" +" \n" +" -z STRING True if string is empty.\n" +" \n" +" -n STRING\n" +" STRING True if string is not empty.\n" +" \n" +" STRING1 = STRING2\n" +" True if the strings are equal.\n" +" STRING1 != STRING2\n" +" True if the strings are not equal.\n" +" STRING1 < STRING2\n" +" True if STRING1 sorts before STRING2 " +"lexicographically.\n" +" STRING1 > STRING2\n" +" True if STRING1 sorts after STRING2 lexicographically.\n" +" \n" +" Other operators:\n" +" \n" +" -o OPTION True if the shell option OPTION is enabled.\n" +" ! EXPR True if expr is false.\n" +" EXPR1 -a EXPR2 True if both expr1 AND expr2 are true.\n" +" EXPR1 -o EXPR2 True if either expr1 OR expr2 is true.\n" +" \n" +" arg1 OP arg2 Arithmetic tests. OP is one of -eq, -ne,\n" +" -lt, -le, -gt, or -ge.\n" +" \n" +" Arithmetic binary operators return true if ARG1 is equal, not-equal,\n" +" less-than, less-than-or-equal, greater-than, or greater-than-or-equal\n" +" than ARG2.\n" +" \n" +" Exit Status:\n" +" Returns success if EXPR evaluates to true; fails if EXPR evaluates to\n" +" false or an invalid argument is given." +msgstr "" + +#: builtins.c:1292 +msgid "" +"Evaluate conditional expression.\n" +" \n" +" This is a synonym for the \"test\" builtin, but the last argument must\n" +" be a literal `]', to match the opening `['." +msgstr "" + +#: builtins.c:1301 +msgid "" +"Display process times.\n" +" \n" +" Prints the accumulated user and system times for the shell and all of " +"its\n" +" child processes.\n" +" \n" +" Exit Status:\n" +" Always succeeds." +msgstr "" + +#: builtins.c:1313 +msgid "" +"Trap signals and other events.\n" +" \n" +" Defines and activates handlers to be run when the shell receives " +"signals\n" +" or other conditions.\n" +" \n" +" ARG is a command to be read and executed when the shell receives the\n" +" signal(s) SIGNAL_SPEC. If ARG is absent (and a single SIGNAL_SPEC\n" +" is supplied) or `-', each specified signal is reset to its original\n" +" value. If ARG is the null string each SIGNAL_SPEC is ignored by the\n" +" shell and by the commands it invokes.\n" +" \n" +" If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell. " +"If\n" +" a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command.\n" +" \n" +" If no arguments are supplied, trap prints the list of commands " +"associated\n" +" with each signal.\n" +" \n" +" Options:\n" +" -l\tprint a list of signal names and their corresponding numbers\n" +" -p\tdisplay the trap commands associated with each SIGNAL_SPEC\n" +" \n" +" Each SIGNAL_SPEC is either a signal name in or a signal " +"number.\n" +" Signal names are case insensitive and the SIG prefix is optional. A\n" +" signal may be sent to the shell with \"kill -signal $$\".\n" +" \n" +" Exit Status:\n" +" Returns success unless a SIGSPEC is invalid or an invalid option is " +"given." +msgstr "" + +#: builtins.c:1345 +msgid "" +"Display information about command type.\n" +" \n" +" For each NAME, indicate how it would be interpreted if used as a\n" +" command name.\n" +" \n" +" Options:\n" +" -a\tdisplay all locations containing an executable named NAME;\n" +" \tincludes aliases, builtins, and functions, if and only if\n" +" \tthe `-p' option is not also used\n" +" -f\tsuppress shell function lookup\n" +" -P\tforce a PATH search for each NAME, even if it is an alias,\n" +" \tbuiltin, or function, and returns the name of the disk file\n" +" \tthat would be executed\n" +" -p\treturns either the name of the disk file that would be executed,\n" +" \tor nothing if `type -t NAME' would not return `file'.\n" +" -t\toutput a single word which is one of `alias', `keyword',\n" +" \t`function', `builtin', `file' or `', if NAME is an alias, shell\n" +" \treserved word, shell function, shell builtin, disk file, or not\n" +" \tfound, respectively\n" +" \n" +" Arguments:\n" +" NAME\tCommand name to be interpreted.\n" +" \n" +" Exit Status:\n" +" Returns success if all of the NAMEs are found; fails if any are not " +"found." +msgstr "" + +#: builtins.c:1376 +msgid "" +"Modify shell resource limits.\n" +" \n" +" Provides control over the resources available to the shell and " +"processes\n" +" it creates, on systems that allow such control.\n" +" \n" +" Options:\n" +" -S\tuse the `soft' resource limit\n" +" -H\tuse the `hard' resource limit\n" +" -a\tall current limits are reported\n" +" -b\tthe socket buffer size\n" +" -c\tthe maximum size of core files created\n" +" -d\tthe maximum size of a process's data segment\n" +" -e\tthe maximum scheduling priority (`nice')\n" +" -f\tthe maximum size of files written by the shell and its children\n" +" -i\tthe maximum number of pending signals\n" +" -l\tthe maximum size a process may lock into memory\n" +" -m\tthe maximum resident set size\n" +" -n\tthe maximum number of open file descriptors\n" +" -p\tthe pipe buffer size\n" +" -q\tthe maximum number of bytes in POSIX message queues\n" +" -r\tthe maximum real-time scheduling priority\n" +" -s\tthe maximum stack size\n" +" -t\tthe maximum amount of cpu time in seconds\n" +" -u\tthe maximum number of user processes\n" +" -v\tthe size of virtual memory\n" +" -x\tthe maximum number of file locks\n" +" \n" +" If LIMIT is given, it is the new value of the specified resource; the\n" +" special LIMIT values `soft', `hard', and `unlimited' stand for the\n" +" current soft limit, the current hard limit, and no limit, respectively.\n" +" Otherwise, the current value of the specified resource is printed. If\n" +" no option is given, then -f is assumed.\n" +" \n" +" Values are in 1024-byte increments, except for -t, which is in seconds,\n" +" -p, which is in increments of 512 bytes, and -u, which is an unscaled\n" +" number of processes.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" + +#: builtins.c:1421 +msgid "" +"Display or set file mode mask.\n" +" \n" +" Sets the user file-creation mask to MODE. If MODE is omitted, prints\n" +" the current value of the mask.\n" +" \n" +" If MODE begins with a digit, it is interpreted as an octal number;\n" +" otherwise it is a symbolic mode string like that accepted by chmod(1).\n" +" \n" +" Options:\n" +" -p\tif MODE is omitted, output in a form that may be reused as input\n" +" -S\tmakes the output symbolic; otherwise an octal number is output\n" +" \n" +" Exit Status:\n" +" Returns success unless MODE is invalid or an invalid option is given." +msgstr "" + +#: builtins.c:1441 +msgid "" +"Wait for job completion and return exit status.\n" +" \n" +" Waits for the process identified by ID, which may be a process ID or a\n" +" job specification, and reports its termination status. If ID is not\n" +" given, waits for all currently active child processes, and the return\n" +" status is zero. If ID is a a job specification, waits for all " +"processes\n" +" in the job's pipeline.\n" +" \n" +" Exit Status:\n" +" Returns the status of ID; fails if ID is invalid or an invalid option " +"is\n" +" given." +msgstr "" + +#: builtins.c:1459 +msgid "" +"Wait for process completion and return exit status.\n" +" \n" +" Waits for the specified process and reports its termination status. If\n" +" PID is not given, all currently active child processes are waited for,\n" +" and the return code is zero. PID must be a process ID.\n" +" \n" +" Exit Status:\n" +" Returns the status of ID; fails if ID is invalid or an invalid option " +"is\n" +" given." +msgstr "" + +#: builtins.c:1474 +msgid "" +"Execute commands for each member in a list.\n" +" \n" +" The `for' loop executes a sequence of commands for each member in a\n" +" list of items. If `in WORDS ...;' is not present, then `in \"$@\"' is\n" +" assumed. For each element in WORDS, NAME is set to that element, and\n" +" the COMMANDS are executed.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" + +#: builtins.c:1488 +msgid "" +"Arithmetic for loop.\n" +" \n" +" Equivalent to\n" +" \t(( EXP1 ))\n" +" \twhile (( EXP2 )); do\n" +" \t\tCOMMANDS\n" +" \t\t(( EXP3 ))\n" +" \tdone\n" +" EXP1, EXP2, and EXP3 are arithmetic expressions. If any expression is\n" +" omitted, it behaves as if it evaluates to 1.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" + +#: builtins.c:1506 +msgid "" +"Select words from a list and execute commands.\n" +" \n" +" The WORDS are expanded, generating a list of words. The\n" +" set of expanded words is printed on the standard error, each\n" +" preceded by a number. If `in WORDS' is not present, `in \"$@\"'\n" +" is assumed. The PS3 prompt is then displayed and a line read\n" +" from the standard input. If the line consists of the number\n" +" corresponding to one of the displayed words, then NAME is set\n" +" to that word. If the line is empty, WORDS and the prompt are\n" +" redisplayed. If EOF is read, the command completes. Any other\n" +" value read causes NAME to be set to null. The line read is saved\n" +" in the variable REPLY. COMMANDS are executed after each selection\n" +" until a break command is executed.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" + +#: builtins.c:1527 +msgid "" +"Report time consumed by pipeline's execution.\n" +" \n" +" Execute PIPELINE and print a summary of the real time, user CPU time,\n" +" and system CPU time spent executing PIPELINE when it terminates.\n" +" \n" +" Options:\n" +" -p\tprint the timing summary in the portable Posix format\n" +" \n" +" The value of the TIMEFORMAT variable is used as the output format.\n" +" \n" +" Exit Status:\n" +" The return status is the return status of PIPELINE." +msgstr "" + +#: builtins.c:1544 +msgid "" +"Execute commands based on pattern matching.\n" +" \n" +" Selectively execute COMMANDS based upon WORD matching PATTERN. The\n" +" `|' is used to separate multiple patterns.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" + +#: builtins.c:1556 +msgid "" +"Execute commands based on conditional.\n" +" \n" +" The `if COMMANDS' list is executed. If its exit status is zero, then " +"the\n" +" `then COMMANDS' list is executed. Otherwise, each `elif COMMANDS' list " +"is\n" +" executed in turn, and if its exit status is zero, the corresponding\n" +" `then COMMANDS' list is executed and the if command completes. " +"Otherwise,\n" +" the `else COMMANDS' list is executed, if present. The exit status of " +"the\n" +" entire construct is the exit status of the last command executed, or " +"zero\n" +" if no condition tested true.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" + +#: builtins.c:1573 +msgid "" +"Execute commands as long as a test succeeds.\n" +" \n" +" Expand and execute COMMANDS as long as the final command in the\n" +" `while' COMMANDS has an exit status of zero.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" + +#: builtins.c:1585 +msgid "" +"Execute commands as long as a test does not succeed.\n" +" \n" +" Expand and execute COMMANDS as long as the final command in the\n" +" `until' COMMANDS has an exit status which is not zero.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" + +#: builtins.c:1597 +msgid "" +"Define shell function.\n" +" \n" +" Create a shell function named NAME. When invoked as a simple command,\n" +" NAME runs COMMANDs in the calling shell's context. When NAME is " +"invoked,\n" +" the arguments are passed to the function as $1...$n, and the function's\n" +" name is in $FUNCNAME.\n" +" \n" +" Exit Status:\n" +" Returns success unless NAME is readonly." +msgstr "" + +#: builtins.c:1611 +msgid "" +"Group commands as a unit.\n" +" \n" +" Run a set of commands in a group. This is one way to redirect an\n" +" entire set of commands.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" + +#: builtins.c:1623 +msgid "" +"Resume job in foreground.\n" +" \n" +" Equivalent to the JOB_SPEC argument to the `fg' command. Resume a\n" +" stopped or background job. JOB_SPEC can specify either a job name\n" +" or a job number. Following JOB_SPEC with a `&' places the job in\n" +" the background, as if the job specification had been supplied as an\n" +" argument to `bg'.\n" +" \n" +" Exit Status:\n" +" Returns the status of the resumed job." +msgstr "" + +#: builtins.c:1638 +msgid "" +"Evaluate arithmetic expression.\n" +" \n" +" The EXPRESSION is evaluated according to the rules for arithmetic\n" +" evaluation. Equivalent to \"let EXPRESSION\".\n" +" \n" +" Exit Status:\n" +" Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise." +msgstr "" + +#: builtins.c:1650 +msgid "" +"Execute conditional command.\n" +" \n" +" Returns a status of 0 or 1 depending on the evaluation of the " +"conditional\n" +" expression EXPRESSION. Expressions are composed of the same primaries " +"used\n" +" by the `test' builtin, and may be combined using the following " +"operators:\n" +" \n" +" ( EXPRESSION )\tReturns the value of EXPRESSION\n" +" ! EXPRESSION\t\tTrue if EXPRESSION is false; else false\n" +" EXPR1 && EXPR2\tTrue if both EXPR1 and EXPR2 are true; else false\n" +" EXPR1 || EXPR2\tTrue if either EXPR1 or EXPR2 is true; else false\n" +" \n" +" When the `==' and `!=' operators are used, the string to the right of\n" +" the operator is used as a pattern and pattern matching is performed.\n" +" When the `=~' operator is used, the string to the right of the operator\n" +" is matched as a regular expression.\n" +" \n" +" The && and || operators do not evaluate EXPR2 if EXPR1 is sufficient to\n" +" determine the expression's value.\n" +" \n" +" Exit Status:\n" +" 0 or 1 depending on value of EXPRESSION." +msgstr "" + +#: builtins.c:1676 +msgid "" +"Common shell variable names and usage.\n" +" \n" +" BASH_VERSION\tVersion information for this Bash.\n" +" CDPATH\tA colon-separated list of directories to search\n" +" \t\tfor directories given as arguments to `cd'.\n" +" GLOBIGNORE\tA colon-separated list of patterns describing filenames to\n" +" \t\tbe ignored by pathname expansion.\n" +" HISTFILE\tThe name of the file where your command history is stored.\n" +" HISTFILESIZE\tThe maximum number of lines this file can contain.\n" +" HISTSIZE\tThe maximum number of history lines that a running\n" +" \t\tshell can access.\n" +" HOME\tThe complete pathname to your login directory.\n" +" HOSTNAME\tThe name of the current host.\n" +" HOSTTYPE\tThe type of CPU this version of Bash is running under.\n" +" IGNOREEOF\tControls the action of the shell on receipt of an EOF\n" +" \t\tcharacter as the sole input. If set, then the value\n" +" \t\tof it is the number of EOF characters that can be seen\n" +" \t\tin a row on an empty line before the shell will exit\n" +" \t\t(default 10). When unset, EOF signifies the end of input.\n" +" MACHTYPE\tA string describing the current system Bash is running on.\n" +" MAILCHECK\tHow often, in seconds, Bash checks for new mail.\n" +" MAILPATH\tA colon-separated list of filenames which Bash checks\n" +" \t\tfor new mail.\n" +" OSTYPE\tThe version of Unix this version of Bash is running on.\n" +" PATH\tA colon-separated list of directories to search when\n" +" \t\tlooking for commands.\n" +" PROMPT_COMMAND\tA command to be executed before the printing of each\n" +" \t\tprimary prompt.\n" +" PS1\t\tThe primary prompt string.\n" +" PS2\t\tThe secondary prompt string.\n" +" PWD\t\tThe full pathname of the current directory.\n" +" SHELLOPTS\tA colon-separated list of enabled shell options.\n" +" TERM\tThe name of the current terminal type.\n" +" TIMEFORMAT\tThe output format for timing statistics displayed by the\n" +" \t\t`time' reserved word.\n" +" auto_resume\tNon-null means a command word appearing on a line by\n" +" \t\titself is first looked for in the list of currently\n" +" \t\tstopped jobs. If found there, that job is foregrounded.\n" +" \t\tA value of `exact' means that the command word must\n" +" \t\texactly match a command in the list of stopped jobs. A\n" +" \t\tvalue of `substring' means that the command word must\n" +" \t\tmatch a substring of the job. Any other value means that\n" +" \t\tthe command must be a prefix of a stopped job.\n" +" histchars\tCharacters controlling history expansion and quick\n" +" \t\tsubstitution. The first character is the history\n" +" \t\tsubstitution character, usually `!'. The second is\n" +" \t\tthe `quick substitution' character, usually `^'. The\n" +" \t\tthird is the `history comment' character, usually `#'.\n" +" HISTIGNORE\tA colon-separated list of patterns used to decide which\n" +" \t\tcommands should be saved on the history list.\n" +msgstr "" + +#: builtins.c:1733 +msgid "" +"Add directories to stack.\n" +" \n" +" Adds a directory to the top of the directory stack, or rotates\n" +" the stack, making the new top of the stack the current working\n" +" directory. With no arguments, exchanges the top two directories.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when adding\n" +" \tdirectories to the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the left of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" -N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the right of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" dir\tAdds DIR to the directory stack at the top, making it the\n" +" \tnew current working directory.\n" +" \n" +" The `dirs' builtin displays the directory stack.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid argument is supplied or the directory\n" +" change fails." +msgstr "" + +#: builtins.c:1767 +msgid "" +"Remove directories from stack.\n" +" \n" +" Removes entries from the directory stack. With no arguments, removes\n" +" the top directory from the stack, and changes to the new top directory.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when removing\n" +" \tdirectories from the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRemoves the Nth entry counting from the left of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd +0'\n" +" \tremoves the first directory, `popd +1' the second.\n" +" \n" +" -N\tRemoves the Nth entry counting from the right of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd -0'\n" +" \tremoves the last directory, `popd -1' the next to last.\n" +" \n" +" The `dirs' builtin displays the directory stack.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid argument is supplied or the directory\n" +" change fails." +msgstr "" + +#: builtins.c:1797 +msgid "" +"Display directory stack.\n" +" \n" +" Display the list of currently remembered directories. Directories\n" +" find their way onto the list with the `pushd' command; you can get\n" +" back up through the list with the `popd' command.\n" +" \n" +" Options:\n" +" -c\tclear the directory stack by deleting all of the elements\n" +" -l\tdo not print tilde-prefixed versions of directories relative\n" +" \tto your home directory\n" +" -p\tprint the directory stack with one entry per line\n" +" -v\tprint the directory stack with one entry per line prefixed\n" +" \twith its position in the stack\n" +" \n" +" Arguments:\n" +" +N\tDisplays the Nth entry counting from the left of the list shown " +"by\n" +" \tdirs when invoked without options, starting with zero.\n" +" \n" +" -N\tDisplays the Nth entry counting from the right of the list shown " +"by\n" +" \tdirs when invoked without options, starting with zero.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" + +#: builtins.c:1826 +msgid "" +"Set and unset shell options.\n" +" \n" +" Change the setting of each shell option OPTNAME. Without any option\n" +" arguments, list all shell options with an indication of whether or not " +"each\n" +" is set.\n" +" \n" +" Options:\n" +" -o\trestrict OPTNAMEs to those defined for use with `set -o'\n" +" -p\tprint each shell option with an indication of its status\n" +" -q\tsuppress output\n" +" -s\tenable (set) each OPTNAME\n" +" -u\tdisable (unset) each OPTNAME\n" +" \n" +" Exit Status:\n" +" Returns success if OPTNAME is enabled; fails if an invalid option is\n" +" given or OPTNAME is disabled." +msgstr "" + +#: builtins.c:1847 +msgid "" +"Formats and prints ARGUMENTS under control of the FORMAT.\n" +" \n" +" Options:\n" +" -v var\tassign the output to shell variable VAR rather than\n" +" \t\tdisplay it on the standard output\n" +" \n" +" FORMAT is a character string which contains three types of objects: " +"plain\n" +" characters, which are simply copied to standard output; character " +"escape\n" +" sequences, which are converted and copied to the standard output; and\n" +" format specifications, each of which causes printing of the next " +"successive\n" +" argument.\n" +" \n" +" In addition to the standard format specifications described in printf" +"(1)\n" +" and printf(3), printf interprets:\n" +" \n" +" %b\texpand backslash escape sequences in the corresponding argument\n" +" %q\tquote the argument in a way that can be reused as shell input\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or a write or " +"assignment\n" +" error occurs." +msgstr "" + +#: builtins.c:1874 +msgid "" +"Specify how arguments are to be completed by Readline.\n" +" \n" +" For each NAME, specify how arguments are to be completed. If no " +"options\n" +" are supplied, existing completion specifications are printed in a way " +"that\n" +" allows them to be reused as input.\n" +" \n" +" Options:\n" +" -p\tprint existing completion specifications in a reusable format\n" +" -r\tremove a completion specification for each NAME, or, if no\n" +" \tNAMEs are supplied, all completion specifications\n" +" \n" +" When completion is attempted, the actions are applied in the order the\n" +" uppercase-letter options are listed above.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" + +#: builtins.c:1897 +msgid "" +"Display possible completions depending on the options.\n" +" \n" +" Intended to be used from within a shell function generating possible\n" +" completions. If the optional WORD argument is supplied, matches " +"against\n" +" WORD are generated.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" + +#: builtins.c:1912 +msgid "" +"Modify or display completion options.\n" +" \n" +" Modify the completion options for each NAME, or, if no NAMEs are " +"supplied,\n" +" the completion currently begin executed. If no OPTIONs are givenm, " +"print\n" +" the completion options for each NAME or the current completion " +"specification.\n" +" \n" +" Options:\n" +" \t-o option\tSet completion option OPTION for each NAME\n" +" \n" +" Using `+o' instead of `-o' turns off the specified option.\n" +" \n" +" Arguments:\n" +" \n" +" Each NAME refers to a command for which a completion specification must\n" +" have previously been defined using the `complete' builtin. If no NAMEs\n" +" are supplied, compopt must be called by a function currently generating\n" +" completions, and the options for that currently-executing completion\n" +" generator are modified.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or NAME does not\n" +" have a completion specification defined." +msgstr "" + +#: builtins.c:1940 +msgid "" +"Read lines from a file into an array variable.\n" +" \n" +" Read lines from the standard input into the array variable ARRAY, or " +"from\n" +" file descriptor FD if the -u option is supplied. The variable MAPFILE " +"is\n" +" the default ARRAY.\n" +" \n" +" Options:\n" +" -n count\tCopy at most COUNT lines. If COUNT is 0, all lines are " +"copied.\n" +" -O origin\tBegin assigning to ARRAY at index ORIGIN. The default " +"index is 0.\n" +" -s count \tDiscard the first COUNT lines read.\n" +" -t\t\tRemove a trailing newline from each line read.\n" +" -u fd\t\tRead lines from file descriptor FD instead of the standard " +"input.\n" +" -C callback\tEvaluate CALLBACK each time QUANTUM lines are read.\n" +" -c quantum\tSpecify the number of lines read between each call to " +"CALLBACK.\n" +" \n" +" Arguments:\n" +" ARRAY\t\tArray variable name to use for file data.\n" +" \n" +" If -C is supplied without -c, the default quantum is 5000.\n" +" \n" +" If not supplied with an explicit origin, mapfile will clear ARRAY " +"before\n" +" assigning to it.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or ARRAY is readonly." +msgstr "" + +#~ msgid " " +#~ msgstr " " + +#~ msgid "%s: invalid number" +#~ msgstr "%s: vigane number" + +#~ msgid "freed" +#~ msgstr "vabastatud" diff --git a/po/fr.gmo b/po/fr.gmo new file mode 100644 index 0000000000000000000000000000000000000000..aec132c02e10d3a3e3eaa1b868c34bef3b0f1549 GIT binary patch literal 27590 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

?a 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, 2004 +# Christophe Combelles , 2008 +# +msgid "" +msgstr "" +"Project-Id-Version: bash 3.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2009-01-06 11:56-0500\n" +"PO-Revision-Date: 2008-03-13 13:10+0100\n" +"Last-Translator: Christophe Combelles \n" +"Language-Team: French \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: arrayfunc.c:50 +msgid "bad array subscript" +msgstr "mauvais indice de tableau" + +#: arrayfunc.c:313 builtins/declare.def:474 +#, c-format +msgid "%s: cannot convert indexed to associative array" +msgstr "" + +#: arrayfunc.c:479 +#, fuzzy, c-format +msgid "%s: invalid associative array key" +msgstr "%s : nom d'action non valable" + +#: arrayfunc.c:481 +#, c-format +msgid "%s: cannot assign to non-numeric index" +msgstr "%s : impossible d'assigner à un index non numérique" + +#: arrayfunc.c:517 +#, c-format +msgid "%s: %s: must use subscript when assigning associative array" +msgstr "" + +#: bashhist.c:380 +#, c-format +msgid "%s: cannot create: %s" +msgstr "%s : impossible de créer : %s" + +#: bashline.c:3413 +msgid "bash_execute_unix_command: cannot find keymap for command" +msgstr "" +"bash_execute_unix_command : impossible de trouver le mappage clavier pour la " +"commande" + +#: bashline.c:3491 +#, c-format +msgid "%s: first non-whitespace character is not `\"'" +msgstr "%s : le premier caractère non vide n'est pas « \" »" + +#: bashline.c:3520 +#, c-format +msgid "no closing `%c' in %s" +msgstr "pas de « %c » de fermeture dans %s" + +#: bashline.c:3554 +#, c-format +msgid "%s: missing colon separator" +msgstr "%s : virgule de séparation manquante" + +#: builtins/bind.def:120 builtins/bind.def:123 +msgid "line editing not enabled" +msgstr "" + +#: builtins/bind.def:206 +#, c-format +msgid "`%s': invalid keymap name" +msgstr "« %s » : nom du mappage clavier invalide" + +#: builtins/bind.def:245 +#, c-format +msgid "%s: cannot read: %s" +msgstr "%s : impossible de lire : %s" + +#: builtins/bind.def:260 +#, c-format +msgid "`%s': cannot unbind" +msgstr "%s : impossible à délier" + +#: builtins/bind.def:295 builtins/bind.def:325 +#, c-format +msgid "`%s': unknown function name" +msgstr "%s : nom de fonction inconnu" + +#: builtins/bind.def:303 +#, c-format +msgid "%s is not bound to any keys.\n" +msgstr "%s n'est lié à aucune touche.\n" + +#: builtins/bind.def:307 +#, c-format +msgid "%s can be invoked via " +msgstr "%s peut être appelé via " + +#: builtins/break.def:77 builtins/break.def:117 +msgid "loop count" +msgstr "" + +#: builtins/break.def:137 +msgid "only meaningful in a `for', `while', or `until' loop" +msgstr "ceci n'a un sens que dans une boucle « for », « while » ou « until »" + +#: builtins/caller.def:133 +#, fuzzy +msgid "" +"Returns the context of the current subroutine call.\n" +" \n" +" Without EXPR, returns " +msgstr "Renvoie le contexte de l'appel de sous-routine actuel" + +#: builtins/cd.def:215 +msgid "HOME not set" +msgstr "« HOME » non défini" + +#: builtins/cd.def:227 +msgid "OLDPWD not set" +msgstr "« OLDPWD » non défini" + +#: builtins/common.c:101 +#, c-format +msgid "line %d: " +msgstr "" + +#: builtins/common.c:139 error.c:260 +#, fuzzy, c-format +msgid "warning: " +msgstr "%s : avertissement :" + +#: builtins/common.c:153 +#, fuzzy, c-format +msgid "%s: usage: " +msgstr "%s : avertissement :" + +#: builtins/common.c:166 test.c:822 +msgid "too many arguments" +msgstr "trop d'arguments" + +#: builtins/common.c:191 shell.c:493 shell.c:774 +#, c-format +msgid "%s: option requires an argument" +msgstr "%s : l'option nécessite un argument" + +#: builtins/common.c:198 +#, c-format +msgid "%s: numeric argument required" +msgstr "%s : argument numérique nécessaire" + +#: builtins/common.c:205 +#, c-format +msgid "%s: not found" +msgstr "%s : non trouvé" + +#: builtins/common.c:214 shell.c:787 +#, c-format +msgid "%s: invalid option" +msgstr "%s : option non valable" + +#: builtins/common.c:221 +#, c-format +msgid "%s: invalid option name" +msgstr "%s : nom d'option non valable" + +#: builtins/common.c:228 general.c:231 general.c:236 +#, c-format +msgid "`%s': not a valid identifier" +msgstr "« %s » : identifiant non valable" + +#: builtins/common.c:238 +#, fuzzy +msgid "invalid octal number" +msgstr "Numéro de signal non valable" + +#: builtins/common.c:240 +#, fuzzy +msgid "invalid hex number" +msgstr "nombre non valable" + +#: builtins/common.c:242 expr.c:1255 +msgid "invalid number" +msgstr "nombre non valable" + +#: builtins/common.c:250 +#, c-format +msgid "%s: invalid signal specification" +msgstr "%s : indication de signal non valable" + +#: builtins/common.c:257 +#, c-format +msgid "`%s': not a pid or valid job spec" +msgstr "" +"« %s » : ce n'est pas un n° de processus ou une spécification de tâche valable" + +#: builtins/common.c:264 error.c:453 +#, c-format +msgid "%s: readonly variable" +msgstr "%s : variable en lecture seule" + +#: builtins/common.c:272 +#, c-format +msgid "%s: %s out of range" +msgstr "%s : %s hors plage" + +#: builtins/common.c:272 builtins/common.c:274 +msgid "argument" +msgstr "argument" + +#: builtins/common.c:274 +#, c-format +msgid "%s out of range" +msgstr "%s hors plage" + +#: builtins/common.c:282 +#, c-format +msgid "%s: no such job" +msgstr "%s : tâche inexistante" + +#: builtins/common.c:290 +#, c-format +msgid "%s: no job control" +msgstr "%s : pas de contrôle de tâche" + +#: builtins/common.c:292 +msgid "no job control" +msgstr "pas de contrôle de tâche" + +#: builtins/common.c:302 +#, c-format +msgid "%s: restricted" +msgstr "%s : restreint" + +#: builtins/common.c:304 +msgid "restricted" +msgstr "restreint" + +#: builtins/common.c:312 +#, c-format +msgid "%s: not a shell builtin" +msgstr "%s : ceci n'est pas une primitive du shell" + +#: builtins/common.c:321 +#, c-format +msgid "write error: %s" +msgstr "erreur d'écriture : %s" + +#: builtins/common.c:553 +#, c-format +msgid "%s: error retrieving current directory: %s: %s\n" +msgstr "%s : erreur de détermination du répertoire actuel : %s : %s\n" + +#: builtins/common.c:619 builtins/common.c:621 +#, c-format +msgid "%s: ambiguous job spec" +msgstr "%s : spécification de tâche ambiguë" + +#: builtins/complete.def:270 +#, c-format +msgid "%s: invalid action name" +msgstr "%s : nom d'action non valable" + +#: builtins/complete.def:430 builtins/complete.def:615 +#: builtins/complete.def:813 +#, c-format +msgid "%s: no completion specification" +msgstr "%s : pas d'indication de complètement" + +#: builtins/complete.def:667 +msgid "warning: -F option may not work as you expect" +msgstr "" +"avertissement : l'option « -F » peut fonctionner différemment de ce à quoi " +"vous vous attendez" + +#: builtins/complete.def:669 +msgid "warning: -C option may not work as you expect" +msgstr "" +"avertissement : l'option « -C » peut fonctionner différemment de ce à quoi " +"vous vous attendez" + +#: builtins/complete.def:786 +msgid "not currently executing completion function" +msgstr "" + +#: builtins/declare.def:122 +msgid "can only be used in a function" +msgstr "utilisable seulement dans une fonction" + +#: builtins/declare.def:353 +msgid "cannot use `-f' to make functions" +msgstr "« -f » ne peut pas être utilisé pour fabriquer des fonctions" + +#: builtins/declare.def:365 execute_cmd.c:4731 +#, c-format +msgid "%s: readonly function" +msgstr "%s : fonction en lecture seule" + +#: builtins/declare.def:461 +#, c-format +msgid "%s: cannot destroy array variables in this way" +msgstr "%s : impossible de détruire des variables tableaux de cette façon" + +#: builtins/declare.def:468 +#, c-format +msgid "%s: cannot convert associative to indexed array" +msgstr "" + +#: builtins/enable.def:137 builtins/enable.def:145 +msgid "dynamic loading not available" +msgstr "chargement dynamique non disponible" + +#: builtins/enable.def:312 +#, c-format +msgid "cannot open shared object %s: %s" +msgstr "impossible d'ouvrir l'objet partagé %s : %s" + +#: builtins/enable.def:335 +#, c-format +msgid "cannot find %s in shared object %s: %s" +msgstr "impossible de trouver %s dans l'objet partagé %s : %s" + +#: builtins/enable.def:459 +#, c-format +msgid "%s: not dynamically loaded" +msgstr "%s : non chargé dynamiquement" + +#: builtins/enable.def:474 +#, c-format +msgid "%s: cannot delete: %s" +msgstr "%s : impossible d'effacer : %s" + +#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4588 +#: shell.c:1439 +#, c-format +msgid "%s: is a directory" +msgstr "%s : ceci est un répertoire" + +#: builtins/evalfile.c:139 +#, c-format +msgid "%s: not a regular file" +msgstr "%s : ceci n'est pas un fichier régulier" + +#: builtins/evalfile.c:147 +#, c-format +msgid "%s: file is too large" +msgstr "%s : le fichier est trop grand" + +#: builtins/evalfile.c:185 execute_cmd.c:4658 shell.c:1449 +#, c-format +msgid "%s: cannot execute binary file" +msgstr "%s : fichier binaire impossible à lancer" + +#: builtins/exec.def:212 +#, c-format +msgid "%s: cannot execute: %s" +msgstr "%s : impossible d'exécuter : %s" + +#: builtins/exit.def:65 +#, c-format +msgid "logout\n" +msgstr "" + +#: builtins/exit.def:88 +msgid "not login shell: use `exit'" +msgstr "ce n'est pas un shell de connexion : utilisez « exit »" + +#: builtins/exit.def:120 +#, c-format +msgid "There are stopped jobs.\n" +msgstr "Il y a des tâches stoppées.\n" + +#: builtins/exit.def:122 +#, fuzzy, c-format +msgid "There are running jobs.\n" +msgstr "Il y a des tâches stoppées.\n" + +#: builtins/fc.def:261 +msgid "no command found" +msgstr "aucune commande trouvée" + +#: builtins/fc.def:341 +msgid "history specification" +msgstr "indication d'historique" + +#: builtins/fc.def:362 +#, c-format +msgid "%s: cannot open temp file: %s" +msgstr "%s : impossible d'ouvrir le fichier temporaire : %s" + +#: builtins/fg_bg.def:149 builtins/jobs.def:282 +msgid "current" +msgstr "" + +#: builtins/fg_bg.def:158 +#, c-format +msgid "job %d started without job control" +msgstr "tâche %d démarrée sans contrôle de tâche" + +#: builtins/getopt.c:110 +#, c-format +msgid "%s: illegal option -- %c\n" +msgstr "%s : option non permise -- %c\n" + +#: builtins/getopt.c:111 +#, c-format +msgid "%s: option requires an argument -- %c\n" +msgstr "%s : l'option nécessite un argument -- %c\n" + +#: builtins/hash.def:92 +msgid "hashing disabled" +msgstr "hachage désactivé" + +#: builtins/hash.def:138 +#, c-format +msgid "%s: hash table empty\n" +msgstr "%s : table de hachage vide\n" + +#: builtins/hash.def:244 +#, fuzzy, c-format +msgid "hits\tcommand\n" +msgstr "dernière commande : %s\n" + +#: builtins/help.def:130 +#, fuzzy, c-format +msgid "Shell commands matching keyword `" +msgid_plural "Shell commands matching keywords `" +msgstr[0] "Commandes du shell correspondant au mot-clé « " +msgstr[1] "Commandes du shell correspondant au mot-clé « " + +#: builtins/help.def:168 +#, c-format +msgid "" +"no help topics match `%s'. Try `help help' or `man -k %s' or `info %s'." +msgstr "" +"Aucune rubrique d'aide ne correspond à « %s ». Essayez « help help », « man -k %" +"s » ou « info %s »." + +#: builtins/help.def:185 +#, c-format +msgid "%s: cannot open: %s" +msgstr "%s : impossible d'ouvrir : %s" + +#: builtins/help.def:337 +#, c-format +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 "" +"Ces commandes de shell sont définies de manière interne.Tapez « help » pour " +"voir cette liste.\n" +"Tapez « help nom » pour en savoir plus sur la fonction qui s'appelle « nom ».\n" +"Utilisez « info bash » pour en savoir plus sur le shell en général.\n" +"Utilisez « man -k » ou « info » pour en savoir plus sur les commandes qui\n" +"ne font pas partie de cette liste.\n" +"\n" +"Une astérisque (*) à côté d'un nom signifie que la commande est désactivée.\n" +"\n" + +#: builtins/history.def:154 +msgid "cannot use more than one of -anrw" +msgstr "impossible d'utiliser plus d'une option parmi « -anrw »" + +#: builtins/history.def:186 +msgid "history position" +msgstr "position dans l'historique" + +#: builtins/history.def:365 +#, c-format +msgid "%s: history expansion failed" +msgstr "%s : l'expansion de l'historique a échoué" + +#: builtins/inlib.def:71 +#, fuzzy, c-format +msgid "%s: inlib failed" +msgstr "%s : l'expansion de l'historique a échoué" + +#: builtins/jobs.def:109 +msgid "no other options allowed with `-x'" +msgstr "pas d'autre option permise avec « -x »" + +#: builtins/kill.def:197 +#, c-format +msgid "%s: arguments must be process or job IDs" +msgstr "" +"%s : les arguments doivent être des identifiants de tâche ou de processus" + +#: builtins/kill.def:260 +msgid "Unknown error" +msgstr "Erreur inconnue" + +#: builtins/let.def:95 builtins/let.def:120 expr.c:501 expr.c:516 +msgid "expression expected" +msgstr "une expression est attendue" + +#: builtins/mapfile.def:215 builtins/read.def:272 +#, c-format +msgid "%s: invalid file descriptor specification" +msgstr "%s : spécification de descripteur de fichier non valable" + +#: builtins/mapfile.def:223 builtins/read.def:279 +#, c-format +msgid "%d: invalid file descriptor: %s" +msgstr "%d : descripteur de fichier non valable : %s" + +#: builtins/mapfile.def:232 builtins/mapfile.def:270 +#, fuzzy, c-format +msgid "%s: invalid line count" +msgstr "%s : option non valable" + +#: builtins/mapfile.def:243 +#, fuzzy, c-format +msgid "%s: invalid array origin" +msgstr "%s : option non valable" + +#: builtins/mapfile.def:260 +#, fuzzy, c-format +msgid "%s: invalid callback quantum" +msgstr "%s : nom d'action non valable" + +#: builtins/mapfile.def:292 +#, fuzzy +msgid "empty array variable name" +msgstr "%s : n'est pas une variable tableau" + +#: builtins/mapfile.def:313 +msgid "array variable support required" +msgstr "" + +#: builtins/printf.def:367 +#, c-format +msgid "`%s': missing format character" +msgstr "« %s » : caractère de format manquant" + +#: builtins/printf.def:544 +#, c-format +msgid "`%c': invalid format character" +msgstr "« %c » : caractère de format non permis" + +#: builtins/printf.def:571 +#, fuzzy, c-format +msgid "warning: %s: %s" +msgstr "%s : avertissement :" + +#: builtins/printf.def:750 +msgid "missing hex digit for \\x" +msgstr "chiffre hexadécimal manquant pour \\x" + +#: builtins/pushd.def:195 +msgid "no other directory" +msgstr "pas d'autre répertoire" + +#: builtins/pushd.def:462 +msgid "" +msgstr "" + +#: builtins/pushd.def:506 +msgid "directory stack empty" +msgstr "" + +#: builtins/pushd.def:508 +#, fuzzy +msgid "directory stack index" +msgstr "Débordement négatif de la pile de récursivité" + +#: builtins/pushd.def:683 +#, fuzzy +msgid "" +"Display the list of currently remembered directories. Directories\n" +" find their way onto the list with the `pushd' command; you can get\n" +" back up through the list with the `popd' command.\n" +" \n" +" Options:\n" +" -c\tclear the directory stack by deleting all of the elements\n" +" -l\tdo not print tilde-prefixed versions of directories relative\n" +" \tto your home directory\n" +" -p\tprint the directory stack with one entry per line\n" +" -v\tprint the directory stack with one entry per line prefixed\n" +" \twith its position in the stack\n" +" \n" +" Arguments:\n" +" +N\tDisplays the Nth entry counting from the left of the list shown " +"by\n" +" \tdirs when invoked without options, starting with zero.\n" +" \n" +" -N\tDisplays the Nth entry counting from the right of the list shown " +"by\n" +"\tdirs when invoked without options, starting with zero." +msgstr "" +"Affiche la liste des répertoires actuellement mémorisés. Les répertoires\n" +" sont insérés dans la liste avec la commande « pushd ». Vous pouvez " +"remonter\n" +" dans la liste en enlevant des éléments avec la commande « popd ».\n" +" \n" +" L'option « -l » spécifie que « dirs » ne doit pas afficher des versions\n" +" raccourcies des répertoires relativement à votre répertoire personnel.\n" +" Cela signifie que « ~/bin » devrait être affiché comme « /homes/bfox/bin " +"».\n" +" L'option « -v » permet à « dirs » d'afficher la pile des répertoires avec\n" +" un élément par ligne, en commençant la ligne par la position dans la " +"pile.\n" +" L'option « -p » fait la même chose mais le numéro de position n'est pas\n" +" affiché. L'option « -c » efface la pile des répertoires en enlevant tous\n" +" les éléments.\n" +" \n" +" +N\t affiche le Nième élément en comptant de zéro depuis la gauche de " +"la\n" +" liste affichée par « dirs » lorsque celle-ci est appelée sans option.\n" +" \n" +" -N\t affiche le Nième élément en comptant de zéro depuis la droite de " +"la\n" +" liste affichée par « dirs » lorsque celle-ci est appelée sans option." + +#: builtins/pushd.def:705 +#, fuzzy +msgid "" +"Adds a directory to the top of the directory stack, or rotates\n" +" the stack, making the new top of the stack the current working\n" +" directory. With no arguments, exchanges the top two directories.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when adding\n" +" \tdirectories to the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the left of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" -N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the right of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" dir\tAdds DIR to the directory stack at the top, making it the\n" +" \tnew current working directory.\n" +" \n" +" The `dirs' builtin displays the directory stack." +msgstr "" +"Ajoute un répertoire en haut de la pile des répertoires, ou permute\n" +" la pile, de façon que le répertoire en haut de la pile devienne\n" +" le nouveau répertoire de travail. S'il n'y a pas d'argument, les deux\n" +" répertoires en haut de la pile sont échangés.\n" +" \n" +" +N\tPermute la pile de façon que le Nième répertoire se place en haut,\n" +" \ten comptant de zéro depuis la gauche de la liste fournie par « dirs ».\n" +" \n" +" -N\tPermute la pile de façon que le Nième répertoire se place en haut,\n" +" \ten comptant de zéro depuis la droite de la liste fournie par « dirs ».\n" +" \n" +" -n\tne change pas de répertoire de travail lorsque des répertoires\n" +" \tsont ajoutés à la pile, de façon que seule la pile soit manipulée\n" +" \n" +" dir\tajoute le répertoire DIR en haut de la pile, et en fait le nouveau\n" +" \trépertoire de travail.\n" +" \n" +" Vous pouvez voir la pile des répertoires avec la commande « dirs »." + +#: builtins/pushd.def:730 +#, fuzzy +msgid "" +"Removes entries from the directory stack. With no arguments, removes\n" +" the top directory from the stack, and changes to the new top directory.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when removing\n" +" \tdirectories from the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRemoves the Nth entry counting from the left of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd +0'\n" +" \tremoves the first directory, `popd +1' the second.\n" +" \n" +" -N\tRemoves the Nth entry counting from the right of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd -0'\n" +" \tremoves the last directory, `popd -1' the next to last.\n" +" \n" +" The `dirs' builtin displays the directory stack." +msgstr "" +"Enlève des éléments de la pile des répertoires. S'il n'y a pas\n" +" d'argument, le répertoire en haut de la pile est enlevé,\n" +" et le nouveau sommet de la pile devient le répertoire de travail.\n" +" \n" +" +N\tEnlève le Nième répertoire, en comptant de zéro depuis la gauche\n" +" \tde la liste fournie par « dirs ». Par exemple : « popd +0 »\n" +" \n" +"enlève le premier répertoire, « popd +1 » le deuxième. \n" +" -N\tEnlève le Nième répertoire, en comptant de zéro depuis la droite\n" +" \tde la liste fournie par « dirs ». Par exemple : « popd -0 »\n" +" \n" +"enlève le dernier répertoire, « popd -1 » l'avant-dernier. \n" +" -n\tne change pas de répertoire de travail lorsque des répertoires\n" +" \tsont enlevés de la pile, de façon que seule la pile soit manipulée\n" +" \n" +" Vous pouvez voir la pile des répertoires avec la commande « dirs »." + +#: builtins/read.def:248 +#, c-format +msgid "%s: invalid timeout specification" +msgstr "%s : spécification de délai d'expiration non valable" + +#: builtins/read.def:574 +#, c-format +msgid "read error: %d: %s" +msgstr "Erreur de lecture : %d : %s" + +#: builtins/return.def:73 +msgid "can only `return' from a function or sourced script" +msgstr "" +"« return » n'est possible que depuis une fonction ou depuis un script exécuté " +"par « source »" + +#: builtins/set.def:768 +msgid "cannot simultaneously unset a function and a variable" +msgstr "" +"« unset » ne peut pas s'appliquer simultanément à une fonction et à une " +"variable" + +#: builtins/set.def:805 +#, c-format +msgid "%s: cannot unset" +msgstr "%s : « unset » impossible" + +#: builtins/set.def:812 +#, c-format +msgid "%s: cannot unset: readonly %s" +msgstr "%s : « unset » impossible : %s est en lecture seule" + +#: builtins/set.def:823 +#, c-format +msgid "%s: not an array variable" +msgstr "%s : n'est pas une variable tableau" + +#: builtins/setattr.def:186 +#, c-format +msgid "%s: not a function" +msgstr "%s : n'est pas une fonction" + +#: builtins/shift.def:71 builtins/shift.def:77 +msgid "shift count" +msgstr "nombre de « shift »" + +#: builtins/shopt.def:254 +msgid "cannot set and unset shell options simultaneously" +msgstr "" +"les options du shell ne peuvent pas être simultanément activées et " +"désactivées" + +#: builtins/shopt.def:319 +#, c-format +msgid "%s: invalid shell option name" +msgstr "%s : nom d'option du shell non valable" + +#: builtins/source.def:128 +msgid "filename argument required" +msgstr "nom de fichier nécessaire en argument" + +#: builtins/source.def:153 +#, c-format +msgid "%s: file not found" +msgstr "%s : fichier introuvable" + +#: builtins/suspend.def:101 +msgid "cannot suspend" +msgstr "suspension impossible" + +#: builtins/suspend.def:111 +msgid "cannot suspend a login shell" +msgstr "un shell de connexion ne peut pas être suspendu" + +#: builtins/type.def:234 +#, c-format +msgid "%s is aliased to `%s'\n" +msgstr "%s est un alias vers « %s »\n" + +#: builtins/type.def:255 +#, c-format +msgid "%s is a shell keyword\n" +msgstr "%s est un mot-clé du shell\n" + +#: builtins/type.def:274 +#, c-format +msgid "%s is a function\n" +msgstr "%s est une fonction\n" + +#: builtins/type.def:296 +#, c-format +msgid "%s is a shell builtin\n" +msgstr "%s est une primitive du shell\n" + +#: builtins/type.def:317 builtins/type.def:391 +#, c-format +msgid "%s is %s\n" +msgstr "%s est %s\n" + +#: builtins/type.def:337 +#, c-format +msgid "%s is hashed (%s)\n" +msgstr "%s est haché (%s)\n" + +#: builtins/ulimit.def:372 +#, c-format +msgid "%s: invalid limit argument" +msgstr "%s : argument de limite non valable" + +#: builtins/ulimit.def:398 +#, c-format +msgid "`%c': bad command" +msgstr "« %c » : mauvaise commande" + +#: builtins/ulimit.def:427 +#, c-format +msgid "%s: cannot get limit: %s" +msgstr "%s : impossible d'obtenir la limite : %s" + +#: builtins/ulimit.def:453 +msgid "limit" +msgstr "" + +#: builtins/ulimit.def:465 builtins/ulimit.def:765 +#, c-format +msgid "%s: cannot modify limit: %s" +msgstr "%s : impossible de modifier la limite : %s" + +#: builtins/umask.def:118 +msgid "octal number" +msgstr "Nombre octal" + +#: builtins/umask.def:231 +#, c-format +msgid "`%c': invalid symbolic mode operator" +msgstr "« %c » : opérateur de mode symbolique non valable" + +#: builtins/umask.def:286 +#, c-format +msgid "`%c': invalid symbolic mode character" +msgstr "« %c » : caractère de mode symbolique non valable" + +#: error.c:89 error.c:320 error.c:322 error.c:324 +msgid " line " +msgstr "" + +#: error.c:164 +#, c-format +msgid "last command: %s\n" +msgstr "dernière commande : %s\n" + +#: error.c:172 +#, c-format +msgid "Aborting..." +msgstr "Annulation..." + +#: error.c:405 +msgid "unknown command error" +msgstr "erreur de commande inconnue" + +#: error.c:406 +msgid "bad command type" +msgstr "mauvais type de commande" + +#: error.c:407 +msgid "bad connector" +msgstr "mauvais connecteur" + +#: error.c:408 +msgid "bad jump" +msgstr "mauvais saut" + +#: error.c:446 +#, c-format +msgid "%s: unbound variable" +msgstr "%s : variable sans liaison" + +#: eval.c:181 +#, c-format +msgid "\atimed out waiting for input: auto-logout\n" +msgstr "\aattente de données expirée : déconnexion automatique\n" + +#: execute_cmd.c:491 +#, c-format +msgid "cannot redirect standard input from /dev/null: %s" +msgstr "l'entrée standard ne peut pas être redirigée depuis /dev/null : %s" + +#: execute_cmd.c:1091 +#, c-format +msgid "TIMEFORMAT: `%c': invalid format character" +msgstr "TIMEFORMAT : « %c » : caractère de format non valable" + +#: execute_cmd.c:1942 +#, fuzzy +msgid "pipe error" +msgstr "erreur d'écriture : %s" + +#: execute_cmd.c:4276 +#, c-format +msgid "%s: restricted: cannot specify `/' in command names" +msgstr "" +"%s : restriction : « / » ne peut pas être spécifié dans un nom de commande" + +#: execute_cmd.c:4367 +#, c-format +msgid "%s: command not found" +msgstr "%s : commande introuvable" + +#: execute_cmd.c:4621 +#, c-format +msgid "%s: %s: bad interpreter" +msgstr "%s : %s : mauvais interpréteur" + +#: execute_cmd.c:4770 +#, c-format +msgid "cannot duplicate fd %d to fd %d" +msgstr "Impossible de dupliquer le fd %d vers le fd %d" + +#: expr.c:241 +msgid "expression recursion level exceeded" +msgstr "Dépassement du niveau de récursivité dans l'expression" + +#: expr.c:265 +msgid "recursion stack underflow" +msgstr "Débordement négatif de la pile de récursivité" + +#: expr.c:379 +msgid "syntax error in expression" +msgstr "erreur de syntaxe dans l'expression" + +#: expr.c:419 +msgid "attempted assignment to non-variable" +msgstr "tentative d'affectation à une non-variable" + +#: expr.c:440 expr.c:445 expr.c:756 +msgid "division by 0" +msgstr "division par 0" + +#: expr.c:471 +msgid "bug: bad expassign token" +msgstr "bogue : mauvais symbole pour expassign" + +#: expr.c:513 +msgid "`:' expected for conditional expression" +msgstr "« : » attendu pour une expression conditionnelle." + +#: expr.c:781 +msgid "exponent less than 0" +msgstr "exposant négatif" + +#: expr.c:826 +msgid "identifier expected after pre-increment or pre-decrement" +msgstr "identifiant attendu après un pré-incrément ou un pré-décrément" + +#: expr.c:854 +msgid "missing `)'" +msgstr "« ) » manquante" + +#: expr.c:897 expr.c:1175 +msgid "syntax error: operand expected" +msgstr "erreur de syntaxe : opérande attendue" + +#: expr.c:1177 +msgid "syntax error: invalid arithmetic operator" +msgstr "erreur de syntaxe : opérateur arithmétique non valable" + +#: expr.c:1201 +#, c-format +msgid "%s%s%s: %s (error token is \"%s\")" +msgstr "" + +#: expr.c:1259 +msgid "invalid arithmetic base" +msgstr "base arithmétique non valable" + +#: expr.c:1279 +msgid "value too great for base" +msgstr "valeur trop grande pour la base" + +#: expr.c:1328 +#, fuzzy, c-format +msgid "%s: expression error\n" +msgstr "%s : nombre entier attendu comme expression" + +#: general.c:61 +msgid "getcwd: cannot access parent directories" +msgstr "getcwd : ne peut accéder aux répertoires parents" + +#: input.c:94 subst.c:4559 +#, fuzzy, c-format +msgid "cannot reset nodelay mode for fd %d" +msgstr "Impossible de réinitialiser le mode « nodelay » pour le fd %d" + +#: input.c:258 +#, c-format +msgid "cannot allocate new file descriptor for bash input from fd %d" +msgstr "" +"impossible d'allouer un nouveau descripteur de fichier pour l'entrée de bash " +"depuis le fd %d" + +#: input.c:266 +#, c-format +msgid "save_bash_input: buffer already exists for new fd %d" +msgstr "save_bash_input : le tampon existe déjà pour le nouveau fd %d" + +#: jobs.c:466 +msgid "start_pipeline: pgrp pipe" +msgstr "" + +#: jobs.c:882 +#, c-format +msgid "forked pid %d appears in running job %d" +msgstr "le processus cloné n°%d apparaît dans la tâche en fonctionnement %d" + +#: jobs.c:1000 +#, c-format +msgid "deleting stopped job %d with process group %ld" +msgstr "suppression de la tâche stoppée %d avec le groupe de processus %ld" + +#: jobs.c:1105 +#, c-format +msgid "add_process: process %5ld (%s) in the_pipeline" +msgstr "" + +#: jobs.c:1108 +#, c-format +msgid "add_process: pid %5ld (%s) marked as still alive" +msgstr "" + +#: jobs.c:1396 +#, c-format +msgid "describe_pid: %ld: no such pid" +msgstr "describe_pid : %ld : n° de processus inexistant" + +#: jobs.c:1411 +#, c-format +msgid "Signal %d" +msgstr "" + +#: jobs.c:1425 jobs.c:1450 +msgid "Done" +msgstr "" + +#: jobs.c:1430 siglist.c:122 +msgid "Stopped" +msgstr "" + +#: jobs.c:1434 +#, c-format +msgid "Stopped(%s)" +msgstr "" + +#: jobs.c:1438 +msgid "Running" +msgstr "" + +#: jobs.c:1452 +#, c-format +msgid "Done(%d)" +msgstr "" + +#: jobs.c:1454 +#, c-format +msgid "Exit %d" +msgstr "" + +#: jobs.c:1457 +msgid "Unknown status" +msgstr "" + +#: jobs.c:1544 +#, c-format +msgid "(core dumped) " +msgstr "" + +#: jobs.c:1563 +#, c-format +msgid " (wd: %s)" +msgstr "" + +#: jobs.c:1766 +#, c-format +msgid "child setpgid (%ld to %ld)" +msgstr "" + +#: jobs.c:2094 nojobs.c:576 +#, c-format +msgid "wait: pid %ld is not a child of this shell" +msgstr "wait : le processus n°%ld n'est pas un fils de ce shell." + +#: jobs.c:2321 +#, c-format +msgid "wait_for: No record of process %ld" +msgstr "wait_for : aucun enregistrement du processus n°%ld" + +#: jobs.c:2593 +#, c-format +msgid "wait_for_job: job %d is stopped" +msgstr "wait_for_job : la tâche %d est stoppée" + +#: jobs.c:2815 +#, c-format +msgid "%s: job has terminated" +msgstr "%s : la tâche s'est terminée" + +#: jobs.c:2824 +#, c-format +msgid "%s: job %d already in background" +msgstr "%s : la tâche %d est déjà en arrière plan" + +#: jobs.c:3487 +#, fuzzy, c-format +msgid "%s: line %d: " +msgstr "%s : avertissement :" + +#: jobs.c:3501 nojobs.c:805 +#, c-format +msgid " (core dumped)" +msgstr "" + +#: jobs.c:3513 jobs.c:3526 +#, c-format +msgid "(wd now: %s)\n" +msgstr "" + +#: jobs.c:3558 +msgid "initialize_job_control: getpgrp failed" +msgstr "" + +#: jobs.c:3618 +msgid "initialize_job_control: line discipline" +msgstr "" + +#: jobs.c:3628 +msgid "initialize_job_control: setpgid" +msgstr "" + +#: jobs.c:3656 +#, c-format +msgid "cannot set terminal process group (%d)" +msgstr "" + +#: jobs.c:3661 +msgid "no job control in this shell" +msgstr "pas de contrôle de tâche dans ce shell" + +#: lib/malloc/malloc.c:296 +#, c-format +msgid "malloc: failed assertion: %s\n" +msgstr "malloc : échec de l'assertion : %s\n" + +#: lib/malloc/malloc.c:312 +#, c-format +msgid "" +"\r\n" +"malloc: %s:%d: assertion botched\r\n" +msgstr "" +"\r\n" +"malloc : %s:%d : assertion manquée\r\n" + +#: lib/malloc/malloc.c:313 +#, fuzzy +msgid "unknown" +msgstr "%s : hôte inconnu" + +#: lib/malloc/malloc.c:797 +msgid "malloc: block on free list clobbered" +msgstr "malloc : bloc écrasé sur liste libre" + +#: lib/malloc/malloc.c:874 +msgid "free: called with already freed block argument" +msgstr "free : appelé avec un bloc déjà libéré comme argument" + +#: lib/malloc/malloc.c:877 +msgid "free: called with unallocated block argument" +msgstr "free : appelé avec un bloc non alloué comme argument" + +#: lib/malloc/malloc.c:896 +msgid "free: underflow detected; mh_nbytes out of range" +msgstr "free : débordement négatif détecté ; « mh_nbytes » est hors plage" + +#: lib/malloc/malloc.c:902 +msgid "free: start and end chunk sizes differ" +msgstr "free : les tailles de fragment au début et à la fin sont différentes" + +#: lib/malloc/malloc.c:1001 +msgid "realloc: called with unallocated block argument" +msgstr "realloc : appelé avec un bloc non alloué comme argument" + +#: lib/malloc/malloc.c:1016 +msgid "realloc: underflow detected; mh_nbytes out of range" +msgstr "realloc : débordement négatif détecté ; « mh_nbytes » est hors plage" + +#: lib/malloc/malloc.c:1022 +msgid "realloc: start and end chunk sizes differ" +msgstr "" +"realloc : les tailles de fragment au début et à la fin sont différentes" + +#: lib/malloc/table.c:177 +#, c-format +msgid "register_alloc: alloc table is full with FIND_ALLOC?\n" +msgstr "register_alloc : la table d'allocation est pleine avec FIND_ALLOC ?\n" + +#: lib/malloc/table.c:184 +#, c-format +msgid "register_alloc: %p already in table as allocated?\n" +msgstr "register_alloc : %p déjà alloué selon la table ?\n" + +#: lib/malloc/table.c:220 +#, c-format +msgid "register_free: %p already in table as free?\n" +msgstr "register_free : %p déjà libre selon la table ?\n" + +#: lib/sh/fmtulong.c:101 +msgid "invalid base" +msgstr "base non valable" + +#: lib/sh/netopen.c:168 +#, c-format +msgid "%s: host unknown" +msgstr "%s : hôte inconnu" + +#: lib/sh/netopen.c:175 +#, c-format +msgid "%s: invalid service" +msgstr "%s: service non valable" + +#: lib/sh/netopen.c:306 +#, c-format +msgid "%s: bad network path specification" +msgstr "%s : mauvaise spécification de chemin réseau" + +#: lib/sh/netopen.c:346 +msgid "network operations not supported" +msgstr "opérations sur le réseau non prises en charge" + +#: mailcheck.c:433 +msgid "You have mail in $_" +msgstr "Vous avez du courrier dans $_" + +#: mailcheck.c:458 +msgid "You have new mail in $_" +msgstr "Vous avez du nouveau courrier dans $_" + +#: mailcheck.c:474 +#, c-format +msgid "The mail in %s has been read\n" +msgstr "Le courrier dans %s a été lu.\n" + +#: make_cmd.c:322 +msgid "syntax error: arithmetic expression required" +msgstr "Erreur de syntaxe : expression arithmétique nécessaire" + +#: make_cmd.c:324 +msgid "syntax error: `;' unexpected" +msgstr "Erreur de syntaxe : « ; » non attendu" + +#: make_cmd.c:325 +#, c-format +msgid "syntax error: `((%s))'" +msgstr "Erreur de syntaxe : « ((%s)) »" + +#: make_cmd.c:567 +#, c-format +msgid "make_here_document: bad instruction type %d" +msgstr "make_here_document : le type d'instruction %d est incorrect" + +#: make_cmd.c:651 +#, c-format +msgid "here-document at line %d delimited by end-of-file (wanted `%s')" +msgstr "" + +#: make_cmd.c:746 +#, c-format +msgid "make_redirection: redirection instruction `%d' out of range" +msgstr "make_redirection : l'instruction de redirection « %d » est hors plage" + +#: parse.y:2986 parse.y:3218 +#, c-format +msgid "unexpected EOF while looking for matching `%c'" +msgstr "" +"Caractère de fin de fichier (EOF) prématuré lors de la recherche du « %c » " +"correspondant" + +#: parse.y:3722 +msgid "unexpected EOF while looking for `]]'" +msgstr "" +"Caractère de fin de fichier (EOF) prématuré lors de la recherche de « ]] »" + +#: parse.y:3727 +#, c-format +msgid "syntax error in conditional expression: unexpected token `%s'" +msgstr "" +"Erreur de syntaxe dans une expression conditionnelle : symbole « %s » " +"inattendu" + +#: parse.y:3731 +msgid "syntax error in conditional expression" +msgstr "Erreur de syntaxe dans une expression conditionnelle" + +#: parse.y:3809 +#, c-format +msgid "unexpected token `%s', expected `)'" +msgstr "Symbole inattendu « %s » au lieu de « ) »" + +#: parse.y:3813 +msgid "expected `)'" +msgstr "« ) » attendu" + +#: parse.y:3841 +#, c-format +msgid "unexpected argument `%s' to conditional unary operator" +msgstr "argument inattendu « %s » pour l'opérateur conditionnel à un argument" + +#: parse.y:3845 +msgid "unexpected argument to conditional unary operator" +msgstr "argument inattendu pour l'opérateur conditionnel à un argument" + +#: parse.y:3885 +#, c-format +msgid "unexpected token `%s', conditional binary operator expected" +msgstr "Symbole « %s » trouvé à la place d'un opérateur binaire conditionnel" + +#: parse.y:3889 +msgid "conditional binary operator expected" +msgstr "opérateur binaire conditionnel attendu" + +#: parse.y:3906 +#, c-format +msgid "unexpected argument `%s' to conditional binary operator" +msgstr "argument « %s » inattendu pour l'opérateur binaire conditionnel" + +#: parse.y:3910 +msgid "unexpected argument to conditional binary operator" +msgstr "argument inattendu pour l'opérateur binaire conditionnel" + +#: parse.y:3921 +#, c-format +msgid "unexpected token `%c' in conditional command" +msgstr "Symbole « %c » inattendu dans la commande conditionnelle" + +#: parse.y:3924 +#, c-format +msgid "unexpected token `%s' in conditional command" +msgstr "Symbole « %s » inattendu dans la commande conditionnelle" + +#: parse.y:3928 +#, c-format +msgid "unexpected token %d in conditional command" +msgstr "Symbole « %d » inattendu dans la commande conditionnelle" + +#: parse.y:5195 +#, c-format +msgid "syntax error near unexpected token `%s'" +msgstr "Erreur de syntaxe près du symbole inattendu « %s »" + +#: parse.y:5213 +#, c-format +msgid "syntax error near `%s'" +msgstr "Erreur de syntaxe près de « %s »" + +#: parse.y:5223 +msgid "syntax error: unexpected end of file" +msgstr "Erreur de syntaxe : fin de fichier prématurée" + +#: parse.y:5223 +msgid "syntax error" +msgstr "Erreur de syntaxe" + +#: parse.y:5285 +#, c-format +msgid "Use \"%s\" to leave the shell.\n" +msgstr "Utilisez « %s » pour quitter le shell.\n" + +#: parse.y:5447 +msgid "unexpected EOF while looking for matching `)'" +msgstr "" +"Caractère de fin de fichier (EOF) prématuré lors de la recherche d'un « ) » " +"correspondant" + +#: pcomplete.c:1016 +#, c-format +msgid "completion: function `%s' not found" +msgstr "complètement : fonction « %s » non trouvée" + +#: pcomplib.c:179 +#, c-format +msgid "progcomp_insert: %s: NULL COMPSPEC" +msgstr "progcomp_insert : %s : NULL COMPSPEC" + +#: print_cmd.c:287 +#, c-format +msgid "print_command: bad connector `%d'" +msgstr "print_command : mauvais connecteur « %d »" + +#: print_cmd.c:1347 +#, c-format +msgid "cprintf: `%c': invalid format character" +msgstr "cprintf : « %c » : caractère de format invalide" + +#: redir.c:105 +msgid "file descriptor out of range" +msgstr "descripteur de fichier hors plage" + +#: redir.c:148 +#, c-format +msgid "%s: ambiguous redirect" +msgstr "%s : redirection ambiguë" + +#: redir.c:152 +#, c-format +msgid "%s: cannot overwrite existing file" +msgstr "%s : impossible d'écraser le fichier existant" + +#: redir.c:157 +#, c-format +msgid "%s: restricted: cannot redirect output" +msgstr "%s : restreint : impossible de rediriger la sortie" + +#: redir.c:162 +#, fuzzy, c-format +msgid "cannot create temp file for here-document: %s" +msgstr "" +"impossible de créer un fichier temporaire pour le « here-document » : %s" + +#: redir.c:517 +msgid "/dev/(tcp|udp)/host/port not supported without networking" +msgstr "/dev/(tcp|udp)/host/port non pris en charge sans réseau" + +#: redir.c:1023 +msgid "redirection error: cannot duplicate fd" +msgstr "" +"Erreur de redirection : impossible de dupliquer le descripteur de fichier" + +#: shell.c:328 +msgid "could not find /tmp, please create!" +msgstr "« /tmp » introuvable, veuillez le créer !" + +#: shell.c:332 +msgid "/tmp must be a valid directory name" +msgstr "« /tmp » doit être un nom de répertoire correct" + +#: shell.c:876 +#, c-format +msgid "%c%c: invalid option" +msgstr "%c%c : option non valable" + +#: shell.c:1638 +msgid "I have no name!" +msgstr "Je n'ai pas de nom !" + +#: shell.c:1778 +#, c-format +msgid "GNU bash, version %s-(%s)\n" +msgstr "" + +#: shell.c:1779 +#, c-format +msgid "" +"Usage:\t%s [GNU long option] [option] ...\n" +"\t%s [GNU long option] [option] script-file ...\n" +msgstr "" +"Utilisation :\t%s [option longue GNU] [option] ...\n" +"\t%s [option longue GNU] [option] fichier-script ...\n" + +#: shell.c:1781 +msgid "GNU long options:\n" +msgstr "Options longues GNU :\n" + +#: shell.c:1785 +msgid "Shell options:\n" +msgstr "Options du shell :\n" + +#: shell.c:1786 +msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n" +msgstr "\t-irsD ou -c commande ou -O shopt_option\t\t(invocation seulement)\n" + +#: shell.c:1801 +#, c-format +msgid "\t-%s or -o option\n" +msgstr "\t-%s ou -o option\n" + +#: shell.c:1807 +#, c-format +msgid "Type `%s -c \"help set\"' for more information about shell options.\n" +msgstr "" +"Pour en savoir plus sur les options du shell, tapez « %s -c \"help set\" ».\n" + +#: shell.c:1808 +#, c-format +msgid "Type `%s -c help' for more information about shell builtin commands.\n" +msgstr "" +"Pour en savoir plus sur les primitives du shell, tapez « %s -c help ».\n" + +#: shell.c:1809 +#, c-format +msgid "Use the `bashbug' command to report bugs.\n" +msgstr "Utilisez la commande « bashbug » pour faire un rapport de bogue.\n" + +#: sig.c:583 +#, c-format +msgid "sigprocmask: %d: invalid operation" +msgstr "sigprocmask : %d : operation non valable" + +#: 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 +#, fuzzy +msgid "Bus error" +msgstr "Erreur de syntaxe" + +#: 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 +#, fuzzy +msgid "Terminated" +msgstr "restreint" + +#: 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:1181 subst.c:1302 +#, c-format +msgid "bad substitution: no closing `%s' in %s" +msgstr "Mauvaise substitution : pas de « %s » de fermeture dans %s" + +#: subst.c:2458 +#, c-format +msgid "%s: cannot assign list to array member" +msgstr "%s : impossible d'affecter une liste à un élément de tableau" + +#: subst.c:4456 subst.c:4472 +msgid "cannot make pipe for process substitution" +msgstr "Impossible de fabriquer un tube pour une substitution de processus" + +#: subst.c:4504 +msgid "cannot make child for process substitution" +msgstr "Impossible de fabriquer un fils pour une substitution de processus" + +#: subst.c:4549 +#, c-format +msgid "cannot open named pipe %s for reading" +msgstr "Impossible d'ouvrir le tube nommé « %s » en lecture" + +#: subst.c:4551 +#, c-format +msgid "cannot open named pipe %s for writing" +msgstr "Impossible d'ouvrir le tube nommé « %s » en écriture" + +#: subst.c:4569 +#, c-format +msgid "cannot duplicate named pipe %s as fd %d" +msgstr "Impossible de dupliquer le tube nommé « %s » vers le fd %d" + +#: subst.c:4765 +msgid "cannot make pipe for command substitution" +msgstr "Impossible de fabriquer un tube pour une substitution de commande" + +#: subst.c:4799 +msgid "cannot make child for command substitution" +msgstr "" +"Impossible de fabriquer un processus fils pour une substitution de commande" + +#: subst.c:4816 +msgid "command_substitute: cannot duplicate pipe as fd 1" +msgstr "command_substitute : impossible de dupliquer le tube vers le fd 1" + +#: subst.c:5318 +#, c-format +msgid "%s: parameter null or not set" +msgstr "%s : paramètre vide ou non défini" + +#: subst.c:5608 +#, c-format +msgid "%s: substring expression < 0" +msgstr "%s : expression de sous-chaîne négative" + +#: subst.c:6660 +#, c-format +msgid "%s: bad substitution" +msgstr "%s : mauvaise substitution" + +#: subst.c:6740 +#, c-format +msgid "$%s: cannot assign in this way" +msgstr "$%s : affectation impossible de cette façon" + +#: subst.c:7479 +#, fuzzy, c-format +msgid "bad substitution: no closing \"`\" in %s" +msgstr "Mauvaise substitution : pas de « %s » de fermeture dans %s" + +#: subst.c:8354 +#, c-format +msgid "no match: %s" +msgstr "Pas de correspondance : %s" + +#: test.c:145 +msgid "argument expected" +msgstr "argument attendu" + +#: test.c:154 +#, c-format +msgid "%s: integer expression expected" +msgstr "%s : nombre entier attendu comme expression" + +#: test.c:262 +msgid "`)' expected" +msgstr "« ) » attendue" + +#: test.c:264 +#, c-format +msgid "`)' expected, found %s" +msgstr "« ) » attendu au lieu de %s" + +#: test.c:279 test.c:688 test.c:691 +#, c-format +msgid "%s: unary operator expected" +msgstr "%s : opérateur unaire attendu" + +#: test.c:444 test.c:731 +#, c-format +msgid "%s: binary operator expected" +msgstr "%s : opérateur binaire attendu" + +#: test.c:806 +msgid "missing `]'" +msgstr "« ] » manquant" + +#: trap.c:201 +msgid "invalid signal number" +msgstr "Numéro de signal non valable" + +#: trap.c:324 +#, c-format +msgid "run_pending_traps: bad value in trap_list[%d]: %p" +msgstr "run_pending_traps : mauvaise valeur dans trap_list[%d] : %p" + +#: trap.c:328 +#, c-format +msgid "" +"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself" +msgstr "" +"run_pending_traps : le gestionnaire de signal est SIG_DFL, %d (%s) renvoyé à " +"moi-même" + +#: trap.c:372 +#, c-format +msgid "trap_handler: bad signal %d" +msgstr "trap_handler : mauvais signal %d" + +#: variables.c:358 +#, c-format +msgid "error importing function definition for `%s'" +msgstr "erreur lors de l'import de la définition de fonction pour « %s »" + +#: variables.c:736 +#, c-format +msgid "shell level (%d) too high, resetting to 1" +msgstr "niveau de shell trop élevé (%d), initialisation à 1" + +#: variables.c:1898 +msgid "make_local_variable: no function context at current scope" +msgstr "" +"make_local_variable : aucun contexte de fonction dans le champ d'application " +"actuel" + +#: variables.c:3127 +msgid "all_local_variables: no function context at current scope" +msgstr "" +"all_local_variables : aucun contexte de fonction dans le champ d'application " +"actuel" + +#: variables.c:3344 variables.c:3353 +#, c-format +msgid "invalid character %d in exportstr for %s" +msgstr "caractère %d non valable dans « exportstr » pour %s" + +#: variables.c:3359 +#, c-format +msgid "no `=' in exportstr for %s" +msgstr "Pas de « = » dans « exportstr » pour %s" + +#: variables.c:3794 +msgid "pop_var_context: head of shell_variables not a function context" +msgstr "" +"pop_var_context : le début de « shell_variables » n'est pas un contexte de " +"fonction" + +#: variables.c:3807 +msgid "pop_var_context: no global_variables context" +msgstr "pop_var_context : aucun contexte à « global_variables »" + +#: variables.c:3881 +msgid "pop_scope: head of shell_variables not a temporary environment scope" +msgstr "" +"pop_scope : le début de « shell_variables » n'est pas un champ d'application " +"temporaire d'environnement" + +#: version.c:46 +#, fuzzy +msgid "Copyright (C) 2009 Free Software Foundation, Inc." +msgstr "Copyright (C) 2006 Free Software Foundation, Inc.\n" + +#: version.c:47 +msgid "" +"License GPLv3+: GNU GPL version 3 or later \n" +msgstr "" + +#: version.c:86 +#, c-format +msgid "GNU bash, version %s (%s)\n" +msgstr "" + +#: version.c:91 +#, c-format +msgid "This is free software; you are free to change and redistribute it.\n" +msgstr "" + +#: version.c:92 +#, c-format +msgid "There is NO WARRANTY, to the extent permitted by law.\n" +msgstr "" + +#: xmalloc.c:92 +#, c-format +msgid "xmalloc: cannot allocate %lu bytes (%lu bytes allocated)" +msgstr "xmalloc : impossible d'allouer %lu octets (%lu octets alloués)" + +#: xmalloc.c:94 +#, c-format +msgid "xmalloc: cannot allocate %lu bytes" +msgstr "xmalloc : impossible d'allouer %lu octets" + +#: xmalloc.c:114 +#, c-format +msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)" +msgstr "xrealloc : impossible de réallouer %lu octets (%lu octets alloués)" + +#: xmalloc.c:116 +#, c-format +msgid "xrealloc: cannot allocate %lu bytes" +msgstr "xrealloc : impossible d'allouer %lu octets" + +#: xmalloc.c:150 +#, c-format +msgid "xmalloc: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)" +msgstr "xmalloc : %s:%d : impossible d'allouer %lu octets (%lu octets alloués)" + +#: xmalloc.c:152 +#, c-format +msgid "xmalloc: %s:%d: cannot allocate %lu bytes" +msgstr "xmalloc : %s:%d : impossible d'allouer %lu octets" + +#: xmalloc.c:174 +#, c-format +msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)" +msgstr "" +"xrealloc : %s:%d : impossible de réallouer %lu octets (%lu octets alloués)" + +#: xmalloc.c:176 +#, c-format +msgid "xrealloc: %s:%d: cannot allocate %lu bytes" +msgstr "xrealloc : %s:%d : impossible d'allouer %lu octets" + +#: builtins.c:43 +msgid "alias [-p] [name[=value] ... ]" +msgstr "" + +#: builtins.c:47 +msgid "unalias [-a] name [name ...]" +msgstr "" + +#: builtins.c:51 +msgid "" +"bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-" +"x keyseq:shell-command] [keyseq:readline-function or readline-command]" +msgstr "" + +#: builtins.c:54 +msgid "break [n]" +msgstr "" + +#: builtins.c:56 +msgid "continue [n]" +msgstr "" + +#: builtins.c:58 +msgid "builtin [shell-builtin [arg ...]]" +msgstr "" + +#: builtins.c:61 +msgid "caller [expr]" +msgstr "" + +#: builtins.c:64 +msgid "cd [-L|-P] [dir]" +msgstr "" + +#: builtins.c:66 +msgid "pwd [-LP]" +msgstr "" + +#: builtins.c:68 +msgid ":" +msgstr "" + +#: builtins.c:70 +msgid "true" +msgstr "" + +#: builtins.c:72 +msgid "false" +msgstr "" + +#: builtins.c:74 +msgid "command [-pVv] command [arg ...]" +msgstr "" + +#: builtins.c:76 +msgid "declare [-aAfFilrtux] [-p] [name[=value] ...]" +msgstr "" + +#: builtins.c:78 +msgid "typeset [-aAfFilrtux] [-p] name[=value] ..." +msgstr "" + +#: builtins.c:80 +msgid "local [option] name[=value] ..." +msgstr "" + +#: builtins.c:83 +msgid "echo [-neE] [arg ...]" +msgstr "" + +#: builtins.c:87 +msgid "echo [-n] [arg ...]" +msgstr "" + +#: builtins.c:90 +msgid "enable [-a] [-dnps] [-f filename] [name ...]" +msgstr "" + +#: builtins.c:92 +msgid "eval [arg ...]" +msgstr "" + +#: builtins.c:94 +msgid "getopts optstring name [arg]" +msgstr "" + +#: builtins.c:96 +msgid "exec [-cl] [-a name] [command [arguments ...]] [redirection ...]" +msgstr "" + +#: builtins.c:98 +msgid "exit [n]" +msgstr "" + +#: builtins.c:100 +msgid "logout [n]" +msgstr "" + +#: builtins.c:103 +msgid "fc [-e ename] [-lnr] [first] [last] or fc -s [pat=rep] [command]" +msgstr "" + +#: builtins.c:107 +msgid "fg [job_spec]" +msgstr "" + +#: builtins.c:111 +msgid "bg [job_spec ...]" +msgstr "" + +#: builtins.c:114 +msgid "hash [-lr] [-p pathname] [-dt] [name ...]" +msgstr "" + +#: builtins.c:117 +msgid "help [-ds] [pattern ...]" +msgstr "" + +#: builtins.c:121 +msgid "" +"history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg " +"[arg...]" +msgstr "" + +#: builtins.c:125 +msgid "jobs [-lnprs] [jobspec ...] or jobs -x command [args]" +msgstr "" + +#: builtins.c:129 +msgid "disown [-h] [-ar] [jobspec ...]" +msgstr "" + +#: builtins.c:132 +msgid "" +"kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l " +"[sigspec]" +msgstr "" + +#: builtins.c:134 +msgid "let arg [arg ...]" +msgstr "" + +#: builtins.c:136 +msgid "" +"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-p prompt] [-t " +"timeout] [-u fd] [name ...]" +msgstr "" + +#: builtins.c:138 +msgid "return [n]" +msgstr "" + +#: builtins.c:140 +msgid "set [--abefhkmnptuvxBCHP] [-o option-name] [arg ...]" +msgstr "" + +#: builtins.c:142 +msgid "unset [-f] [-v] [name ...]" +msgstr "" + +#: builtins.c:144 +msgid "export [-fn] [name[=value] ...] or export -p" +msgstr "" + +#: builtins.c:146 +msgid "readonly [-af] [name[=value] ...] or readonly -p" +msgstr "" + +#: builtins.c:148 +#, fuzzy +msgid "shift [n]" +msgstr "nombre de « shift »" + +#: builtins.c:150 +#, fuzzy +msgid "source filename [arguments]" +msgstr "nom de fichier nécessaire en argument" + +#: builtins.c:152 +#, fuzzy +msgid ". filename [arguments]" +msgstr "nom de fichier nécessaire en argument" + +#: builtins.c:155 +msgid "suspend [-f]" +msgstr "" + +#: builtins.c:158 +msgid "test [expr]" +msgstr "" + +#: builtins.c:160 +msgid "[ arg... ]" +msgstr "" + +#: builtins.c:162 +msgid "times" +msgstr "" + +#: builtins.c:164 +msgid "trap [-lp] [[arg] signal_spec ...]" +msgstr "" + +#: builtins.c:166 +msgid "type [-afptP] name [name ...]" +msgstr "" + +#: builtins.c:169 +msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]" +msgstr "" + +#: builtins.c:172 +msgid "umask [-p] [-S] [mode]" +msgstr "" + +#: builtins.c:175 +msgid "wait [id]" +msgstr "" + +#: builtins.c:179 +msgid "wait [pid]" +msgstr "" + +#: builtins.c:182 +msgid "for NAME [in WORDS ... ] ; do COMMANDS; done" +msgstr "" + +#: builtins.c:184 +msgid "for (( exp1; exp2; exp3 )); do COMMANDS; done" +msgstr "" + +#: builtins.c:186 +msgid "select NAME [in WORDS ... ;] do COMMANDS; done" +msgstr "" + +#: builtins.c:188 +msgid "time [-p] pipeline" +msgstr "" + +#: builtins.c:190 +msgid "case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac" +msgstr "" + +#: builtins.c:192 +msgid "" +"if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else " +"COMMANDS; ] fi" +msgstr "" + +#: builtins.c:194 +msgid "while COMMANDS; do COMMANDS; done" +msgstr "" + +#: builtins.c:196 +msgid "until COMMANDS; do COMMANDS; done" +msgstr "" + +#: builtins.c:198 +msgid "function name { COMMANDS ; } or name () { COMMANDS ; }" +msgstr "" + +#: builtins.c:200 +msgid "{ COMMANDS ; }" +msgstr "" + +#: builtins.c:202 +msgid "job_spec [&]" +msgstr "" + +#: builtins.c:204 +#, fuzzy +msgid "(( expression ))" +msgstr "une expression est attendue" + +#: builtins.c:206 +#, fuzzy +msgid "[[ expression ]]" +msgstr "une expression est attendue" + +#: builtins.c:208 +msgid "variables - Names and meanings of some shell variables" +msgstr "" + +#: builtins.c:211 +msgid "pushd [-n] [+N | -N | dir]" +msgstr "" + +#: builtins.c:215 +msgid "popd [-n] [+N | -N]" +msgstr "" + +#: builtins.c:219 +msgid "dirs [-clpv] [+N] [-N]" +msgstr "" + +#: builtins.c:222 +msgid "shopt [-pqsu] [-o] [optname ...]" +msgstr "" + +#: builtins.c:224 +msgid "printf [-v var] format [arguments]" +msgstr "" + +#: builtins.c:227 +msgid "" +"complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W " +"wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] " +"[name ...]" +msgstr "" + +#: builtins.c:231 +msgid "" +"compgen [-abcdefgjksuv] [-o option] [-A action] [-G globpat] [-W wordlist] " +"[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]" +msgstr "" + +#: builtins.c:235 +msgid "compopt [-o|+o option] [name ...]" +msgstr "" + +#: builtins.c:238 +msgid "" +"mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c " +"quantum] [array]" +msgstr "" + +#: builtins.c:250 +#, fuzzy +msgid "" +"Define or display aliases.\n" +" \n" +" Without arguments, `alias' prints the list of aliases in the reusable\n" +" form `alias NAME=VALUE' on standard output.\n" +" \n" +" Otherwise, an alias is defined for each NAME whose VALUE is given.\n" +" A trailing space in VALUE causes the next word to be checked for\n" +" alias substitution when the alias is expanded.\n" +" \n" +" Options:\n" +" -p\tPrint all defined aliases in a reusable format\n" +" \n" +" Exit Status:\n" +" alias returns true unless a NAME is supplied for which no alias has " +"been\n" +" defined." +msgstr "" +"« alias » sans argument ou avec l'option « -p » affiche sur la sortie " +"standard\n" +" la liste des alias sous la forme NAME=VALUE. Sinon, un alias est défini\n" +" pour chaque NAME dont la VALUE est fournie. Une espace après la VALUE\n" +" entraîne la vérification de la substitution d'alias pour le mot suivant\n" +" lorsque l'alias est étendu. « alias » renvoie « true » à moins qu'un NAME\n" +" ne soit fourni pour lequel aucun alias n'a été défini." + +#: builtins.c:272 +#, fuzzy +msgid "" +"Remove each NAME from the list of defined aliases.\n" +" \n" +" Options:\n" +" -a\tremove all alias definitions.\n" +" \n" +" Return success unless a NAME is not an existing alias." +msgstr "" +"Enlève les NAME de la liste des alias définis. Si l'option « -a » est " +"fournie,\n" +"alors toutes les définitions d'alias sont enlevées." + +#: builtins.c:285 +#, fuzzy +msgid "" +"Set Readline key bindings and variables.\n" +" \n" +" Bind a key sequence to a Readline function or a macro, or set a\n" +" Readline variable. The non-option argument syntax is equivalent to\n" +" that found in ~/.inputrc, but must be passed as a single argument:\n" +" e.g., bind '\"\\C-x\\C-r\": re-read-init-file'.\n" +" \n" +" Options:\n" +" -m keymap Use KEYMAP as the keymap for the duration of this\n" +" command. Acceptable keymap names are emacs,\n" +" emacs-standard, emacs-meta, emacs-ctlx, vi, vi-" +"move,\n" +" vi-command, and vi-insert.\n" +" -l List names of functions.\n" +" -P List function names and bindings.\n" +" -p List functions and bindings in a form that can be\n" +" reused as input.\n" +" -S List key sequences that invoke macros and their " +"values\n" +" -s List key sequences that invoke macros and their " +"values\n" +" in a form that can be reused as input.\n" +" -V List variable names and values\n" +" -v List variable names and values in a form that can\n" +" be reused as input.\n" +" -q function-name Query about which keys invoke the named function.\n" +" -u function-name Unbind all keys which are bound to the named " +"function.\n" +" -r keyseq Remove the binding for KEYSEQ.\n" +" -f filename Read key bindings from FILENAME.\n" +" -x keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n" +" \t\t\t\tKEYSEQ is entered.\n" +" \n" +" Exit Status:\n" +" bind returns 0 unless an unrecognized option is given or an error occurs." +msgstr "" +"Associe une suite de touches à une fonction « Readline » ou définit une\n" +"variable « Readline ». Les arguments non-options suivent une syntaxe " +"équivalente à celle\n" +"du fichier ~/.inputrc, mais doivent être transmis comme arguments uniques :\n" +" bind '\"\\C-x\\C-r\" : re-read-init-file'.\n" +" bind accepte les options suivantes :\n" +" -m keymap Utilise « keymap » comme mappage clavier pendant la\n" +" durée de cette commande. Des noms de mappage " +"valables sont « emacs », « emacs-standard », « emacs-" +"meta », \n" +" « emacs-ctlx », « vi », « vi-move », « vi-command » et\n" +" « vi-insert ».\n" +" -l Affiche les noms de fonctions.\n" +" -P Affiche les noms et associations des fonctions.\n" +" -p Affiche les fonctions et associations dans une " +"forme qui\n" +" peut être réutilisée comme entrée.\n" +" -r seqtouche Enlève l'association pour « seqtouche ».\n" +" -x seqtouche:commande-shell\tEntraîne l'exécution de la « commande-" +"shell »\n" +" \t\t\t\tlorsque « seqtouche » est entrée.\n" +" -f nomfichier Lit l'association de touches depuis le fichier.\n" +" -q nom-fonction Permet de savoir quelles touches appellent la " +"fonction.\n" +" -u nom-fonction Enlève toutes les associations de touches liée à la " +"fonction.\n" +" -V Affiche les noms et valeurs des variables\n" +" -v Affiche les noms et valeurs des variables dans une " +"forme qui peut\n" +" être réutilisée comme entrée.\n" +" -S Affiche les séquences de touches qui invoquent des " +"macros,\n" +" et leurs valeurs.\n" +" -s Affiche les séquences de touches qui invoquent des " +"macros,\n" +" et leurs valeurs sous une forme qui peut être " +"utilisée comme entrée." + +#: builtins.c:322 +#, fuzzy +msgid "" +"Exit for, while, or until loops.\n" +" \n" +" Exit a FOR, WHILE or UNTIL loop. If N is specified, break N enclosing\n" +" loops.\n" +" \n" +" Exit Status:\n" +" The exit status is 0 unless N is not greater than or equal to 1." +msgstr "" +"Reprend l'exécution à la prochaine boucle FOR, WHILE ou UNTIL de niveau " +"supérieur.\n" +" Si N est précisé, reprend à N-ième boucle supérieure." + +#: builtins.c:334 +#, fuzzy +msgid "" +"Resume for, while, or until loops.\n" +" \n" +" Resumes the next iteration of the enclosing FOR, WHILE or UNTIL loop.\n" +" If N is specified, resumes the Nth enclosing loop.\n" +" \n" +" Exit Status:\n" +" The exit status is 0 unless N is not greater than or equal to 1." +msgstr "" +"Reprend l'exécution à la prochaine boucle FOR, WHILE ou UNTIL de niveau " +"supérieur.\n" +" Si N est précisé, reprend à N-ième boucle supérieure." + +#: builtins.c:346 +msgid "" +"Execute shell builtins.\n" +" \n" +" Execute SHELL-BUILTIN with arguments ARGs without performing command\n" +" lookup. This is useful when you wish to reimplement a shell builtin\n" +" as a shell function, but need to execute the builtin within the " +"function.\n" +" \n" +" Exit Status:\n" +" Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is\n" +" not a shell builtin.." +msgstr "" + +#: builtins.c:361 +#, fuzzy +msgid "" +"Return the context of the current subroutine call.\n" +" \n" +" Without EXPR, returns \"$line $filename\". With EXPR, returns\n" +" \"$line $subroutine $filename\"; this extra information can be used to\n" +" provide a stack trace.\n" +" \n" +" The value of EXPR indicates how many call frames to go back before the\n" +" current one; the top frame is frame 0.\n" +" \n" +" Exit Status:\n" +" Returns 0 unless the shell is not executing a shell function or EXPR\n" +" is invalid." +msgstr "" +"Renvoie le contexte de l'appel de sous-routine actuel.\n" +" \n" +" Sans EXPR, renvoie « $ligne $nomfichier ». Avec EXPR,\n" +" renvoie « $ligne $sousroutine $nomfichier »; ces informations " +"supplémentaires\n" +" peuvent être utilisées pour fournir une trace de la pile.\n" +" \n" +" La valeur de EXPR indique le nombre de cadres d'appels duquel il faut " +"revenir en arrière\n" +" avant le cadre actuel ; le cadre supérieur est le cadre 0." + +#: builtins.c:379 +#, fuzzy +msgid "" +"Change the shell working directory.\n" +" \n" +" Change the current directory to DIR. The default DIR is the value of " +"the\n" +" HOME shell variable.\n" +" \n" +" The variable CDPATH defines the search path for the directory " +"containing\n" +" DIR. Alternative directory names in CDPATH are separated by a colon " +"(:).\n" +" A null directory name is the same as the current directory. If DIR " +"begins\n" +" with a slash (/), then CDPATH is not used.\n" +" \n" +" If the directory is not found, and the shell option `cdable_vars' is " +"set,\n" +" the word is assumed to be a variable name. If that variable has a " +"value,\n" +" its value is used for DIR.\n" +" \n" +" Options:\n" +" -L\tforce symbolic links to be followed\n" +" -P\tuse the physical directory structure without following symbolic\n" +" \tlinks\n" +" \n" +" The default is to follow symbolic links, as if `-L' were specified.\n" +" \n" +" Exit Status:\n" +" Returns 0 if the directory is changed; non-zero otherwise." +msgstr "" +"Change le répertoire actuel vers DIR. La variable « $HOME » est le " +"répertoire\n" +" DIR par défaut. La variable CDPATH définit le chemin de recherche\n" +" du répertoire contenant DIR. Les noms de répertoires alternatifs dans " +"CDPATH\n" +" sont séparés par un deux-point « : ». Un nom de répertoire vide est " +"identique\n" +" au répertoire actuel, càd « . ». Si DIR commence avec une barre oblique " +"« / »,\n" +" alors CDPATH n'est pas utilisé. Si le répertoire n'est pas trouvé et " +"que\n" +" l'option « cdable_vars » du shell est définie, alors le mot est essayé " +"comme nom\n" +" de variable. Si la variable possède une valeur, alors on fait « cd » vers " +"cette valeur.\n" +" L'option « -P » indique d'utiliser la structure physique des répertoires " +"plutôt que\n" +" les liens symboliques ; l'option « -L » force le suivi des liens " +"symboliques." + +#: builtins.c:407 +msgid "" +"Print the name of the current working directory.\n" +" \n" +" Options:\n" +" -L\tprint the value of $PWD if it names the current working\n" +" \tdirectory\n" +" -P\tprint the physical directory, without any symbolic links\n" +" \n" +" By default, `pwd' behaves as if `-L' were specified.\n" +" \n" +" Exit Status:\n" +" Returns 0 unless an invalid option is given or the current directory\n" +" cannot be read." +msgstr "" + +#: builtins.c:424 +#, fuzzy +msgid "" +"Null command.\n" +" \n" +" No effect; the command does nothing.\n" +" \n" +" Exit Status:\n" +" Always succeeds." +msgstr "" +"Sans effet : la commande ne fait rien. Le code de sortie zéro est renvoyé." + +#: builtins.c:435 +msgid "" +"Return a successful result.\n" +" \n" +" Exit Status:\n" +" Always succeeds." +msgstr "" + +#: builtins.c:444 +#, fuzzy +msgid "" +"Return an unsuccessful result.\n" +" \n" +" Exit Status:\n" +" Always fails." +msgstr "Renvoie un résultat d'échec" + +#: builtins.c:453 +msgid "" +"Execute a simple command or display information about commands.\n" +" \n" +" Runs COMMAND with ARGS suppressing shell function lookup, or display\n" +" information about the specified COMMANDs. Can be used to invoke " +"commands\n" +" on disk when a function with the same name exists.\n" +" \n" +" Options:\n" +" -p\tuse a default value for PATH that is guaranteed to find all of\n" +" \tthe standard utilities\n" +" -v\tprint a description of COMMAND similar to the `type' builtin\n" +" -V\tprint a more verbose description of each COMMAND\n" +" \n" +" Exit Status:\n" +" Returns exit status of COMMAND, or failure if COMMAND is not found." +msgstr "" + +#: builtins.c:472 +#, fuzzy +msgid "" +"Set variable values and attributes.\n" +" \n" +" Declare variables and give them attributes. If no NAMEs are given,\n" +" display the attributes and values of all variables.\n" +" \n" +" Options:\n" +" -f\trestrict action or display to function names and definitions\n" +" -F\trestrict display to function names only (plus line number and\n" +" \tsource file when debugging)\n" +" -p\tdisplay the attributes and value of each NAME\n" +" \n" +" Options which set attributes:\n" +" -a\tto make NAMEs indexed arrays (if supported)\n" +" -A\tto make NAMEs associative arrays (if supported)\n" +" -i\tto make NAMEs have the `integer' attribute\n" +" -l\tto convert NAMEs to lower case on assignment\n" +" -r\tto make NAMEs readonly\n" +" -t\tto make NAMEs have the `trace' attribute\n" +" -u\tto convert NAMEs to upper case on assignment\n" +" -x\tto make NAMEs export\n" +" \n" +" Using `+' instead of `-' turns off the given attribute.\n" +" \n" +" Variables with the integer attribute have arithmetic evaluation (see\n" +" the `let' command) performed when the variable is assigned a value.\n" +" \n" +" When used in a function, `declare' makes NAMEs local, as with the " +"`local'\n" +" command.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" +"Déclare des variables ou ajoute des attributs aux variables. Si aucun nom\n" +" n'est donné, affiche plutôt les valeurs des variables. L'option « -p »\n" +" permet d'afficher les attributs et les valeurs de chaque NAME.\n" +" \n" +" Les options sont :\n" +" \n" +" -a\tpour faire des tableaux de NAME (si pris en charge)\n" +" -f\tpour choisir uniquement parmi les noms de fonctions\n" +" -F\tpour afficher les noms de fonctions (et les numéros de ligne et " +"le\n" +" \tfichier source si le mode de débogage est activé\n" +" -i\tpour que les NAME aient l'attribut « integer »\n" +" -r\tpour que les NAME soient en lecture seule\n" +" -t\tpour que les NAME aient l'attribut « trace »\n" +" -x\tpour faire un export des NAME\n" +" \n" +" L'évaluation arithmétique des variables ayant l'attribut « integer » est\n" +" effectuée au moment de l'affectation (voir « let »).\n" +" \n" +" Lors de l'affichage des valeurs de variables, -f affiche le nom de la " +"fonction\n" +" et sa définition. L'option -F permet de n'afficher que le nom.\n" +" \n" +" Un attribut peut être désactivé en utilisant « + » au lieu de « - ». Dans " +"une\n" +" fonction, ceci a pour effet de rendre les NAME locaux, comme avec la " +"commande «local »." + +#: builtins.c:508 +msgid "" +"Set variable values and attributes.\n" +" \n" +" Obsolete. See `help declare'." +msgstr "" + +#: builtins.c:516 +msgid "" +"Define local variables.\n" +" \n" +" Create a local variable called NAME, and give it VALUE. OPTION can\n" +" be any option accepted by `declare'.\n" +" \n" +" Local variables can only be used within a function; they are visible\n" +" only to the function where they are defined and its children.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied, an error occurs,\n" +" or the shell is not executing a function." +msgstr "" + +#: builtins.c:533 +#, fuzzy +msgid "" +"Write arguments to the standard output.\n" +" \n" +" Display the ARGs on the standard output followed by a newline.\n" +" \n" +" Options:\n" +" -n\tdo not append a newline\n" +" -e\tenable interpretation of the following backslash escapes\n" +" -E\texplicitly suppress interpretation of backslash escapes\n" +" \n" +" `echo' interprets the following backslash-escaped characters:\n" +" \\a\talert (bell)\n" +" \\b\tbackspace\n" +" \\c\tsuppress further output\n" +" \\e\tescape character\n" +" \\f\tform feed\n" +" \\n\tnew line\n" +" \\r\tcarriage return\n" +" \\t\thorizontal tab\n" +" \\v\tvertical tab\n" +" \\\\\tbackslash\n" +" \\0nnn\tthe character whose ASCII code is NNN (octal). NNN can be\n" +" \t0 to 3 octal digits\n" +" \\xHH\tthe eight-bit character whose value is HH (hexadecimal). HH\n" +" \tcan be one or two hex digits\n" +" \n" +" Exit Status:\n" +" Returns success unless a write error occurs." +msgstr "" +"Affiche les ARGs. Si « -n » est spécifié, le retour à la ligne final et " +"supprimé.\n" +" L'option « -e » permet d'activer l'interprétation des caractères à contre-" +"oblique\n" +" parmi la liste ci-dessous :\n" +" \t\\a\talerte (cloche)\n" +" \t\\b\tretour arrière\n" +" \t\\c\tsuppr. dernier retour à la ligne\n" +" \t\\E\tcaractère Échap.\n" +" \t\\f\tsaut de page\n" +" \t\\n\tsaut de ligne\n" +" \t\\r\tretour chariot\n" +" \t\\t\ttabulation horizontale\n" +" \t\\v\ttabulation verticale\n" +" \t\\\\\tbarre contre-oblique\n" +" \t\\0nnn\tle caractère dont le code ASCII est NNN (en octal). NNN peut " +"être\n" +" \t\tlong de 0 à 3 chiffres octaux\n" +" \n" +" Vous pouvez désactiver de manière explicite l'interprétation des " +"caractères ci-dessus\n" +" avec l'option « -E »." + +#: builtins.c:567 +msgid "" +"Write arguments to the standard output.\n" +" \n" +" Display the ARGs on the standard output followed by a newline.\n" +" \n" +" Options:\n" +" -n\tdo not append a newline\n" +" \n" +" Exit Status:\n" +" Returns success unless a write error occurs." +msgstr "" + +#: builtins.c:582 +msgid "" +"Enable and disable shell builtins.\n" +" \n" +" Enables and disables builtin shell commands. Disabling allows you to\n" +" execute a disk command which has the same name as a shell builtin\n" +" without using a full pathname.\n" +" \n" +" Options:\n" +" -a\tprint a list of builtins showing whether or not each is enabled\n" +" -n\tdisable each NAME or display a list of disabled builtins\n" +" -p\tprint the list of builtins in a reusable format\n" +" -s\tprint only the names of Posix `special' builtins\n" +" \n" +" Options controlling dynamic loading:\n" +" -f\tLoad builtin NAME from shared object FILENAME\n" +" -d\tRemove a builtin loaded with -f\n" +" \n" +" Without options, each NAME is enabled.\n" +" \n" +" To use the `test' found in $PATH instead of the shell builtin\n" +" version, type `enable -n test'.\n" +" \n" +" Exit Status:\n" +" Returns success unless NAME is not a shell builtin or an error occurs." +msgstr "" + +#: builtins.c:610 +msgid "" +"Execute arguments as a shell command.\n" +" \n" +" Combine ARGs into a single string, use the result as input to the " +"shell,\n" +" and execute the resulting commands.\n" +" \n" +" Exit Status:\n" +" Returns exit status of command or success if command is null." +msgstr "" + +#: builtins.c:622 +#, fuzzy +msgid "" +"Parse option arguments.\n" +" \n" +" Getopts is used by shell procedures to parse positional parameters\n" +" as options.\n" +" \n" +" OPTSTRING contains the option letters to be recognized; if a letter\n" +" is followed by a colon, the option is expected to have an argument,\n" +" which should be separated from it by white space.\n" +" \n" +" Each time it is invoked, getopts will place the next option in the\n" +" shell variable $name, initializing name if it does not exist, and\n" +" the index of the next argument to be processed into the shell\n" +" variable OPTIND. OPTIND is initialized to 1 each time the shell or\n" +" a shell script is invoked. When an option requires an argument,\n" +" getopts places that argument into the shell variable OPTARG.\n" +" \n" +" getopts reports errors in one of two ways. If the first character\n" +" of OPTSTRING is a colon, getopts uses silent error reporting. In\n" +" this mode, no error messages are printed. If an invalid option is\n" +" seen, getopts places the option character found into OPTARG. If a\n" +" required argument is not found, getopts places a ':' into NAME and\n" +" sets OPTARG to the option character found. If getopts is not in\n" +" silent mode, and an invalid option is seen, getopts places '?' into\n" +" NAME and unsets OPTARG. If a required argument is not found, a '?'\n" +" is placed in NAME, OPTARG is unset, and a diagnostic message is\n" +" printed.\n" +" \n" +" If the shell variable OPTERR has the value 0, getopts disables the\n" +" printing of error messages, even if the first character of\n" +" OPTSTRING is not a colon. OPTERR has the value 1 by default.\n" +" \n" +" Getopts normally parses the positional parameters ($0 - $9), but if\n" +" more arguments are given, they are parsed instead.\n" +" \n" +" Exit Status:\n" +" Returns success if an option is found; fails if the end of options is\n" +" encountered or an error occurs." +msgstr "" +"« getopts » est utilisé par les procédures du shell pour analyser les \n" +" paramètres de position.\n" +" \n" +" OPTSTRING contient les lettres d'options qui devront être reconnues ;\n" +" si une lettre est suivie par un deux-points, elle devra posséder un\n" +" argument séparé d'elle par une espace.\n" +" \n" +" À chaque fois qu'elle est appelée, « getopts » place l'option suivante\n" +" dans la variable de shell « $nom », en initialisant « nom » si elle " +"n'existe pas,\n" +" et place l'index de l'argument suivant dans la variable de shell " +"OPTIND.\n" +" OPTIND est initialisé à 1 à chaque fois que le shell ou qu'un script " +"shell\n" +" est appelé. Lorsqu'une option nécessite un argument, « getopts » place " +"cet\n" +" argument dans la variable de shell OPTARG.\n" +" \n" +" « getopts » signale les erreurs d'une façon parmi deux. Si le premier " +"caractère\n" +" d'OPTSTRING est un deux-points, « getopts » utilise un signalement " +"d'erreur\n" +" silencieux. Dans ce mode aucun message d'erreur n'est affiché. Si une " +"option\n" +" incorrecte est rencontrée, « getopts » place dans OPTARG le caractère " +"d'option\n" +" trouvé. Si un argument nécessaire n'est pas trouvé, « getopts » place un " +"« : »\n" +" dans NAME et place dans OPTARG le caractère d'option trouvé. Si « " +"getopts »\n" +" n'est pas en mode silencieux et qu'une option incorrecte est rencontrée, " +"il\n" +" place « ? » dans NAME et efface OPTARG. Si un argument nécessaire n'est " +"pas\n" +" trouvé, un « ? » est placé dans NAME, OPTARG est effacé et un message de " +"diagnostic\n" +" est affiché.\n" +" \n" +" Si la variable de shell OPTERR possède la valeur 0, « getopts » " +"désactive\n" +" l'affichage des messages d'erreur, même si le premier caractère " +"d'OPTSTRING\n" +" n'est pas un deux-points. OPTERR possède la valeur 1 par défaut.\n" +" \n" +" « getopts » analyse habituellement les paramètres de position ($0 - $9), " +"mais\n" +" si plus d'argument sont données, ils sont analysés à la place." + +#: builtins.c:664 +msgid "" +"Replace the shell with the given command.\n" +" \n" +" Execute COMMAND, replacing this shell with the specified program.\n" +" ARGUMENTS become the arguments to COMMAND. If COMMAND is not " +"specified,\n" +" any redirections take effect in the current shell.\n" +" \n" +" Options:\n" +" -a name\tpass NAME as the zeroth argument to COMMAND\n" +" -c\t\texecute COMMAND with an empty environment\n" +" -l\t\tplace a dash in the zeroth argument to COMMAND\n" +" \n" +" If the command cannot be executed, a non-interactive shell exits, " +"unless\n" +" the shell option `execfail' is set.\n" +" \n" +" Exit Status:\n" +" Returns success unless COMMAND is not found or a redirection error " +"occurs." +msgstr "" + +#: builtins.c:685 +#, fuzzy +msgid "" +"Exit the shell.\n" +" \n" +" Exits the shell with a status of N. If N is omitted, the exit status\n" +" is that of the last command executed." +msgstr "" +"Terminer le shell avec le code de retour « N ». Si N est omis, le code\n" +" de retour est celui de la dernière commande exécutée." + +#: builtins.c:694 +msgid "" +"Exit a login shell.\n" +" \n" +" Exits a login shell with exit status N. Returns an error if not " +"executed\n" +" in a login shell." +msgstr "" + +#: builtins.c:704 +#, fuzzy +msgid "" +"Display or execute commands from the history list.\n" +" \n" +" fc is used to list or edit and re-execute commands from the history " +"list.\n" +" FIRST and LAST can be numbers specifying the range, or FIRST can be a\n" +" string, which means the most recent command beginning with that\n" +" string.\n" +" \n" +" Options:\n" +" -e ENAME\tselect which editor to use. Default is FCEDIT, then " +"EDITOR,\n" +" \t\tthen vi\n" +" -l \tlist lines instead of editing\n" +" -n\tomit line numbers when listing\n" +" -r\treverse the order of the lines (newest listed first)\n" +" \n" +" With the `fc -s [pat=rep ...] [command]' format, COMMAND is\n" +" re-executed after the substitution OLD=NEW is performed.\n" +" \n" +" A useful alias to use with this is r='fc -s', so that typing `r cc'\n" +" runs the last command beginning with `cc' and typing `r' re-executes\n" +" the last command.\n" +" \n" +" Exit Status:\n" +" Returns success or status of executed command; non-zero if an error " +"occurs." +msgstr "" +"« fc » est utilisé pour afficher ou modifier puis ré-exécuter les commandes\n" +" de l'historique des commandes. FIRST et LAST peuvent être des nombres\n" +" indiquant la plage ou FIRST peut être une chaîne donnant le début de la\n" +" commande la plus récente recherchée.\n" +" \n" +" -e ENAME définit quel éditeur utiliser. Par défaut il s'agit de « " +"FCEDIT »\n" +" puis « EDITOR », puis « vi ».\n" +" \n" +" -l affiche les les lignes au lieu de les éditer.\n" +" -n n'affiche pas les numéros de ligne.\n" +" -r inverse l'ordre des lignes (les plus récentes en premier).\n" +" \n" +" En tapant « fc -s [ancien=nouveau ...] [commande] », la commande est ré-" +"exécutée\n" +" après avoir effectué la substitution OLD=NEW.\n" +" \n" +" Un alias utile est « r='fc -s' » de sorte qu'en tapant « r cc »,\n" +" la dernière commande commençant par « cc » est ré-exécutée et avec « r », " +"la\n" +" dernière commande est ré-exécutée." + +#: builtins.c:734 +#, fuzzy +msgid "" +"Move job to the foreground.\n" +" \n" +" Place the job identified by JOB_SPEC in the foreground, making it the\n" +" current job. If JOB_SPEC is not present, the shell's notion of the\n" +" current job is used.\n" +" \n" +" Exit Status:\n" +" Status of command placed in foreground, or failure if an error occurs." +msgstr "" +"Place JOB_SPEC au premier plan et en fait la tâche actuelle. Si\n" +" JOB_SPEC n'est pas fourni, le shell utilise sa propre notion\n" +" de tâche actuelle." + +#: builtins.c:749 +#, fuzzy +msgid "" +"Move jobs to the background.\n" +" \n" +" Place the jobs identified by each JOB_SPEC in the background, as if " +"they\n" +" had been started with `&'. If JOB_SPEC is not present, the shell's " +"notion\n" +" of the current job is used.\n" +" \n" +" Exit Status:\n" +" Returns success unless job control is not enabled or an error occurs." +msgstr "" +"Place chaque JOB_SPEC en arrière plan comme s'il avait été démarré avec « & " +"».\n" +" Si JOB_SPEC n'est pas fourni, le shell utilise sa propre notion\n" +" de tâche actuelle." + +#: builtins.c:763 +msgid "" +"Remember or display program locations.\n" +" \n" +" Determine and remember the full pathname of each command NAME. If\n" +" no arguments are given, information about remembered commands is " +"displayed.\n" +" \n" +" Options:\n" +" -d\t\tforget the remembered location of each NAME\n" +" -l\t\tdisplay in a format that may be reused as input\n" +" -p pathname\tuse PATHNAME is the full pathname of NAME\n" +" -r\t\tforget all remembered locations\n" +" -t\t\tprint the remembered location of each NAME, preceding\n" +" \t\teach location with the corresponding NAME if multiple\n" +" \t\tNAMEs are given\n" +" Arguments:\n" +" NAME\t\tEach NAME is searched for in $PATH and added to the list\n" +" \t\tof remembered commands.\n" +" \n" +" Exit Status:\n" +" Returns success unless NAME is not found or an invalid option is given." +msgstr "" + +#: builtins.c:788 +msgid "" +"Display information about builtin commands.\n" +" \n" +" Displays brief summaries of builtin commands. If PATTERN is\n" +" specified, gives detailed help on all commands matching PATTERN,\n" +" otherwise the list of help topics is printed.\n" +" \n" +" Options:\n" +" -d\toutput short description for each topic\n" +" -m\tdisplay usage in pseudo-manpage format\n" +" -s\toutput only a short usage synopsis for each topic matching\n" +" \tPATTERN\n" +" \n" +" Arguments:\n" +" PATTERN\tPattern specifiying a help topic\n" +" \n" +" Exit Status:\n" +" Returns success unless PATTERN is not found or an invalid option is " +"given." +msgstr "" + +#: builtins.c:812 +#, fuzzy +msgid "" +"Display or manipulate the history list.\n" +" \n" +" Display the history list with line numbers, prefixing each modified\n" +" entry with a `*'. An argument of N lists only the last N entries.\n" +" \n" +" Options:\n" +" -c\tclear the history list by deleting all of the entries\n" +" -d offset\tdelete the history entry at offset OFFSET.\n" +" \n" +" -a\tappend history lines from this session to the history file\n" +" -n\tread all history lines not already read from the history file\n" +" -r\tread the history file and append the contents to the history\n" +" \tlist\n" +" -w\twrite the current history to the history file\n" +" \tand append them to the history list\n" +" \n" +" -p\tperform history expansion on each ARG and display the result\n" +" \twithout storing it in the history list\n" +" -s\tappend the ARGs to the history list as a single entry\n" +" \n" +" If FILENAME is given, it is used as the history file. Otherwise,\n" +" if $HISTFILE has a value, that is used, else ~/.bash_history.\n" +" \n" +" If the $HISTTIMEFORMAT variable is set and not null, its value is used\n" +" as a format string for strftime(3) to print the time stamp associated\n" +" with each displayed history entry. No time stamps are printed " +"otherwise.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or an error occurs." +msgstr "" +"Affiche l'historique avec des numéros de lignes. Les lignes possédant\n" +" un « * » ont été modifiées. L'argument N permet de n'afficher que\n" +" les N dernières lignes. L'option « -c » efface complètement " +"l'historique.\n" +" L'option « -d » efface l'élément d'historique placé à la position " +"OFFSET.\n" +" L'option « -w » écrit l'historique actuel dans le fichier d'historique.\n" +" « -r » permet de lire le fichier et d'ajouter son contenu à la fin de\n" +" l'historique. « -a » permet d'ajouter les lignes d'historiques de cette\n" +" session à la fin du fichier d'historique. L'argument « -n » permet de " +"lire\n" +" toutes les lignes d'historique non déjà lues depuis le fichier " +"d'historique\n" +" puis de les ajouter à l'historique.\n" +" \n" +" Si FILENAME est fourni, il est utilisé comme fichier d'historique, " +"sinon\n" +" la valeur de « $HISTFILE » est utilisée, sinon le fichier « ~/." +"bash_history ».\n" +" Si l'option « -s » est fournie, les arguments qui ne sont pas des options " +"sont\n" +" ajoutés à la fin de l'historique comme un seul élément. L'option « -p » " +"permet\n" +" d'effectuer une expansion d'historique sur chaque ARG et d'afficher le " +"résultat,\n" +" sans rien enregistrer dans le fichier d'historique.\n" +" \n" +" Si la variable « $HISTTIMEFORMAT » est définie et non vide, sa valeur " +"est\n" +" utilisée comme chaîne de format pour « strftime(3) » afin d'afficher les\n" +" valeurs de temps associées à chaque élément de l'historique. Sinon,\n" +" aucun valeur de temps n'est affichée." + +#: builtins.c:848 +#, fuzzy +msgid "" +"Display status of jobs.\n" +" \n" +" Lists the active jobs. JOBSPEC restricts output to that job.\n" +" Without options, the status of all active jobs is displayed.\n" +" \n" +" Options:\n" +" -l\tlists process IDs in addition to the normal information\n" +" -n\tlist only processes that have changed status since the last\n" +" \tnotification\n" +" -p\tlists process IDs only\n" +" -r\trestrict output to running jobs\n" +" -s\trestrict output to stopped jobs\n" +" \n" +" If -x is supplied, COMMAND is run after all job specifications that\n" +" appear in ARGS have been replaced with the process ID of that job's\n" +" process group leader.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or an error occurs.\n" +" If -x is used, returns the exit status of COMMAND." +msgstr "" +"Affiche les tâches actives. L'option « -l » ajoute les numéros de processus\n" +" en plus des informations habituelles. L'option « -p » n'affiche que les\n" +" numéros de processus. Si « -n » est fourni, seuls les processus dont\n" +" l'état a changé depuis la dernière notification sont affichés. JOBSPEC\n" +" restreint l'affichage à ce numéro de tâche. Les options « -r » et « -s »\n" +" restreignent l'affichage respectivement aux tâches en cours d'exécution\n" +" et aux tâches stoppées. Sans option, l'état de toutes les tâches " +"actives\n" +" est affiché. Si « -x » est fourni, la commande COMMAND est lancée après " +"que toutes\n" +" les spécifications de tâches qui apparaissent dans les ARGS ont été " +"remplacées\n" +" par le numéro de processus du leader du groupe de processus pour cette " +"tâche." + +#: builtins.c:875 +msgid "" +"Remove jobs from current shell.\n" +" \n" +" Removes each JOBSPEC argument from the table of active jobs. Without\n" +" any JOBSPECs, the shell uses its notion of the current job.\n" +" \n" +" Options:\n" +" -a\tremove all jobs if JOBSPEC is not supplied\n" +" -h\tmark each JOBSPEC so that SIGHUP is not sent to the job if the\n" +" \tshell receives a SIGHUP\n" +" -r\tremove only running jobs\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option or JOBSPEC is given." +msgstr "" + +#: builtins.c:894 +#, fuzzy +msgid "" +"Send a signal to a job.\n" +" \n" +" Send the processes identified by PID or JOBSPEC the signal named by\n" +" SIGSPEC or SIGNUM. If neither SIGSPEC nor SIGNUM is present, then\n" +" SIGTERM is assumed.\n" +" \n" +" Options:\n" +" -s sig\tSIG is a signal name\n" +" -n sig\tSIG is a signal number\n" +" -l\tlist the signal names; if arguments follow `-l' they are\n" +" \tassumed to be signal numbers for which names should be listed\n" +" \n" +" Kill is a shell builtin for two reasons: it allows job IDs to be used\n" +" instead of process IDs, and allows processes to be killed if the limit\n" +" on processes that you can create is reached.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or an error occurs." +msgstr "" +"Envoie le signal SIGSPEC aux processus désignés par PID (ou JOBSPEC). Si\n" +" SIGSPEC n'est pas fourni, alors SIGTERM est utilisé. L'argument « -l »\n" +" permet de lister les noms de signaux. Si des arguments sont donnés à « -l " +"»,\n" +" ils sont supposés être des numéros de signaux pour lesquels les noms \n" +" doivent être affichés. « kill » est une commande intégrée au shell pour\n" +" deux raisons : il permet d'utiliser des numéros de tâche plutôt que des\n" +" numéros de processus et, si vous avez atteint la limite du nombre de\n" +" processus que vous pouvez créer, vous n'avez pas besoin de générer un\n" +" nouveau processus pour en tuer un autre." + +#: builtins.c:917 +#, fuzzy +msgid "" +"Evaluate arithmetic expressions.\n" +" \n" +" Evaluate each ARG as an arithmetic expression. Evaluation is done in\n" +" fixed-width integers with no check for overflow, though division by 0\n" +" is trapped and flagged as an error. The following list of operators is\n" +" grouped into levels of equal-precedence operators. The levels are " +"listed\n" +" in order of decreasing precedence.\n" +" \n" +" \tid++, id--\tvariable post-increment, post-decrement\n" +" \t++id, --id\tvariable pre-increment, pre-decrement\n" +" \t-, +\t\tunary minus, plus\n" +" \t!, ~\t\tlogical and bitwise negation\n" +" \t**\t\texponentiation\n" +" \t*, /, %\t\tmultiplication, division, remainder\n" +" \t+, -\t\taddition, subtraction\n" +" \t<<, >>\t\tleft and right bitwise shifts\n" +" \t<=, >=, <, >\tcomparison\n" +" \t==, !=\t\tequality, inequality\n" +" \t&\t\tbitwise AND\n" +" \t^\t\tbitwise XOR\n" +" \t|\t\tbitwise OR\n" +" \t&&\t\tlogical AND\n" +" \t||\t\tlogical OR\n" +" \texpr ? expr : expr\n" +" \t\t\tconditional operator\n" +" \t=, *=, /=, %=,\n" +" \t+=, -=, <<=, >>=,\n" +" \t&=, ^=, |=\tassignment\n" +" \n" +" Shell variables are allowed as operands. The name of the variable\n" +" is replaced by its value (coerced to a fixed-width integer) within\n" +" an expression. The variable need not have its integer attribute\n" +" turned on to be used in an expression.\n" +" \n" +" Operators are evaluated in order of precedence. Sub-expressions in\n" +" parentheses are evaluated first and may override the precedence\n" +" rules above.\n" +" \n" +" Exit Status:\n" +" If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise.." +msgstr "" +"chaque ARG est une expression arithmétique à évaluer. L'évaluation\n" +" est faite avec des entiers de largeur fixe sans vérification de\n" +" dépassement, mais la division par zéro est interceptée et\n" +" signalée comme une erreur. La liste suivante d'opérateurs\n" +" est groupée par niveau d'égale priorité. Les niveaux sont listés\n" +" par priorité décroissante.\n" +" \n" +" \tid++, id--\tpost-incrément ou post-décrément de variable\n" +" \t++id, --id\tpré-incrément ou pré-décrément de variable\n" +" \t-, +\t\tmoins, plus \t!, ~\t\tnégations logique et binaire\n" +" \t**\t\tmise en exposant\n" +" \t*, /, %\t\tmultiplication, division, reste de la division\n" +" \t+, -\t\taddition, soustraction\n" +" \t<<, >>\t\tdécalage binaire à gauche et à droite\n" +" \t<=, >=, <, >\tcomparaison\n" +" \t==, !=\t\tégalité, inégalité\n" +" \t&\t\tET binaire\n" +" \t^\t\tOU binaire exclusif\n" +" \t|\t\tOU binaire\n" +" \t&&\t\tET logique\n" +" \t||\t\tOU logique\n" +" \texpr ? expr : expr\n" +" \t\t\topérateur de condition\n" +" \t=, *=, /=, %=,\n" +" \t+=, -=, <<=, >>=,\n" +" \t&=, ^=, |=\taffectation\n" +" \n" +" Les variables de shell sont autorisées comme opérandes. Le nom de la\n" +" variable est remplacé par sa valeur (contrainte à un entier de largeur " +"fixe)\n" +" à l'intérieur d'une expression. La variable n'a pas besoin d'avoir son " +"attribut\n" +" d'entier activé pour être utilisée dans une expression.\n" +" \n" +" Les opérateurs sont évalués dans leur ordre de priorité. Les sous-" +"expressions entre\n" +" parenthèses sont évaluées en premier et peuvent être prioritaires sur " +"les règles\n" +" ci-dessus.\n" +" \n" +" Si le dernier ARG est évalué à 0, « let » renvoie 1, sinon 0 est renvoyé." + +#: builtins.c:962 +#, fuzzy +msgid "" +"Read a line from the standard input and split it into fields.\n" +" \n" +" Reads a single line from the standard input, or from file descriptor FD\n" +" if the -u option is supplied. The line is split into fields as with " +"word\n" +" splitting, and the first word is assigned to the first NAME, the second\n" +" word to the second NAME, and so on, with any leftover words assigned to\n" +" the last NAME. Only the characters found in $IFS are recognized as " +"word\n" +" delimiters.\n" +" \n" +" If no NAMEs are supplied, the line read is stored in the REPLY " +"variable.\n" +" \n" +" Options:\n" +" -a array\tassign the words read to sequential indices of the array\n" +" \t\tvariable ARRAY, starting at zero\n" +" -d delim\tcontinue until the first character of DELIM is read, rather\n" +" \t\tthan newline\n" +" -e\t\tuse Readline to obtain the line in an interactive shell\n" +" -i text\tUse TEXT as the initial text for Readline\n" +" -n nchars\treturn after reading NCHARS characters rather than waiting\n" +" \t\tfor a newline\n" +" -p prompt\toutput the string PROMPT without a trailing newline before\n" +" \t\tattempting to read\n" +" -r\t\tdo not allow backslashes to escape any characters\n" +" -s\t\tdo not echo input coming from a terminal\n" +" -t timeout\ttime out and return failure if a complete line of input " +"is\n" +" \t\tnot read withint TIMEOUT seconds. The value of the TMOUT\n" +" \t\tvariable is the default timeout. TIMEOUT may be a\n" +" \t\tfractional number. If TIMEOUT is 0, read returns success only\n" +" \t\tif input is available on the specified file descriptor. The\n" +" \t\texit status is greater than 128 if the timeout is exceeded\n" +" -u fd\t\tread from file descriptor FD instead of the standard input\n" +" \n" +" Exit Status:\n" +" The return code is zero, unless end-of-file is encountered, read times " +"out,\n" +" or an invalid file descriptor is supplied as the argument to -u." +msgstr "" +"Une ligne est lue depuis l'entrée standard ou depuis le descripteur de " +"fichier\n" +" FD si l'option « -u » est fournie. Le premier mot est affecté au premier " +"NAME,\n" +" le second mot au second NAME, et ainsi de suite, les mots restants étant " +"affectés\n" +" au dernier NAME. Seuls les caractères situés dans « $IFS » sont reconnus " +"comme\n" +" étant des délimiteurs de mots. Si aucun NAME n'est fourni, la ligne est " +"conservée\n" +" dans la variable REPLY. L'option « -r » signifie « entrée brute » et la " +"neutralisation \n" +" par barre oblique inverse est désactivée. L'option « -d » indique de " +"continuer\" la lecture jusqu'à ce que le premier caractère de DELIM soit " +"lu plutôt que\n" +" le retour à la ligne. Si « -p » est fourni, la chaîne PROMPT est " +"affichée\n" +" sans retour à la ligne final avant la tentative de lecture. Si « -a » est " +"fourni,\n" +" les mots lus sont affectés en séquence aux indices du TABLEAU, en " +"commençant\n" +" à zéro. Si « -e » est fourni et que le shell est interactif, « readline » " +"est\n" +" utilisé pour obtenir la ligne. Si « -n » est fourni avec un argument " +"NCHARS non nul,\n" +" « read » se termine après que NCHARS caractères ont été lus. L'option « -s " +"»\n" +" permet aux données venant d'un terminal de ne pas être répétées.\n" +" \n" +" L'option « -t » permet à « read » de se terminer avec une erreur si une " +"ligne\n" +" entière de données ne lui a pas été fournie avant le DÉLAI d'expiration. " +"Si la\n" +" variable TMOUT est définie, sa valeur est le délai d'expiration par " +"défaut. Le code\n" +" de retour est zéro à moins qu'une fin de fichier ne soit rencontrée, que " +"« read »\n" +" atteigne le délai d'expiration ou qu'un descripteur de fichier incorrect " +"ne soit\n" +" fourni pour l'argument « -u »." + +#: builtins.c:1002 +msgid "" +"Return from a shell function.\n" +" \n" +" Causes a function or sourced script to exit with the return value\n" +" specified by N. If N is omitted, the return status is that of the\n" +" last command executed within the function or script.\n" +" \n" +" Exit Status:\n" +" Returns N, or failure if the shell is not executing a function or script." +msgstr "" + +#: builtins.c:1015 +#, fuzzy +msgid "" +"Set or unset values of shell options and positional parameters.\n" +" \n" +" Change the value of shell attributes and positional parameters, or\n" +" display the names and values of shell variables.\n" +" \n" +" Options:\n" +" -a Mark variables which are modified or created for export.\n" +" -b Notify of job termination immediately.\n" +" -e Exit immediately if a command exits with a non-zero status.\n" +" -f Disable file name generation (globbing).\n" +" -h Remember the location of commands as they are looked up.\n" +" -k All assignment arguments are placed in the environment for a\n" +" command, not just those that precede the command name.\n" +" -m Job control is enabled.\n" +" -n Read commands but do not execute them.\n" +" -o option-name\n" +" Set the variable corresponding to option-name:\n" +" allexport same as -a\n" +" braceexpand same as -B\n" +" emacs use an emacs-style line editing interface\n" +" errexit same as -e\n" +" errtrace same as -E\n" +" functrace same as -T\n" +" hashall same as -h\n" +" histexpand same as -H\n" +" history enable command history\n" +" ignoreeof the shell will not exit upon reading EOF\n" +" interactive-comments\n" +" allow comments to appear in interactive commands\n" +" keyword same as -k\n" +" monitor same as -m\n" +" noclobber same as -C\n" +" noexec same as -n\n" +" noglob same as -f\n" +" nolog currently accepted but ignored\n" +" notify same as -b\n" +" nounset same as -u\n" +" onecmd same as -t\n" +" physical same as -P\n" +" pipefail the return value of a pipeline is the status of\n" +" the last command to exit with a non-zero status,\n" +" or zero if no command exited with a non-zero " +"status\n" +" posix change the behavior of bash where the default\n" +" operation differs from the Posix standard to\n" +" match the standard\n" +" privileged same as -p\n" +" verbose same as -v\n" +" vi use a vi-style line editing interface\n" +" xtrace same as -x\n" +" -p Turned on whenever the real and effective user ids do not match.\n" +" Disables processing of the $ENV file and importing of shell\n" +" functions. Turning this option off causes the effective uid and\n" +" gid to be set to the real uid and gid.\n" +" -t Exit after reading and executing one command.\n" +" -u Treat unset variables as an error when substituting.\n" +" -v Print shell input lines as they are read.\n" +" -x Print commands and their arguments as they are executed.\n" +" -B the shell will perform brace expansion\n" +" -C If set, disallow existing regular files to be overwritten\n" +" by redirection of output.\n" +" -E If set, the ERR trap is inherited by shell functions.\n" +" -H Enable ! style history substitution. This flag is on\n" +" by default when the shell is interactive.\n" +" -P If set, do not follow symbolic links when executing commands\n" +" such as cd which change the current directory.\n" +" -T If set, the DEBUG trap is inherited by shell functions.\n" +" - Assign any remaining arguments to the positional parameters.\n" +" The -x and -v options are turned off.\n" +" \n" +" Using + rather than - causes these flags to be turned off. The\n" +" flags can also be used upon invocation of the shell. The current\n" +" set of flags may be found in $-. The remaining n ARGs are positional\n" +" parameters and are assigned, in order, to $1, $2, .. $n. If no\n" +" ARGs are given, all shell variables are printed.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given." +msgstr "" +" -a Marquer pour l'export toutes les variables qui sont modifiées ou " +"créées.\n" +" -b Avertir immédiatement à la fin d'une tâche.\n" +" -e Terminer immédiatement si une commande s'arrête avec un code de " +"retour non nul.\n" +" -f Désactiver la génération de nom de fichier (globbing).\n" +" -h Mémoriser l'emplacement des commandes après leur recherche.\n" +" -k Placer dans l'environnement tous les arguments d'affectation " +"pour une commande,\n" +" pas seulement ceux qui précèdent le nom de la commande.\n" +" -m Activer le contrôle de tâche.\n" +" -n Lire les commandes, mais ne pas les exécuter.\n" +" -o nom-option\n" +" Définir la variable correspondant à nom-option :\n" +" allexport identique à -a\n" +" braceexpand identique à -B\n" +" emacs utiliser une édition de ligne façon « emacs »\n" +" errexit identique à -e\n" +" errtrace identique à -E\n" +" functrace identique à -T\n" +" hashall identique à -h\n" +" histexpand identique à -H\n" +" history activer l'historique des commandes\n" +" ignoreeof ne pas terminer le shell à la lecture d'un « EOF " +"»\n" +" interactive-comments\n" +" permet aux commentaires d'apparaître dans les " +"commandes interactives\n" +" keyword identique à -k\n" +" monitor identique à -m\n" +" noclobber identique à -C\n" +" noexec identique à -n\n" +" noglob identique à -f\n" +" nolog actuellement accepté mais ignoré\n" +" notify identique à -b\n" +" nounset identique à -u\n" +" onecmd identique à -t\n" +" physical identique à -P\n" +" pipefail le code de retour d'un tube est celui de la " +"dernière commande\n" +" qui s'est terminée avec un code non nul,\n" +" ou zéro si aucune commande ne s'est arrêtée " +"avec un code non nul.\n" +" posix modifie le comportement de « bash » pour qu'il " +"se comporte comme\n" +" le standard 1003.2 aux endroits où il diffère " +"par défaut.\n" +" privileged identique à -p\n" +" verbose identique à -v\n" +" vi utiliser une édition de ligne façon « vi »\n" +" xtrace identique à -x\n" +" -p Option activée lorsque les n° d'identifiants utilisateurs réels " +"et effectifs ne\n" +" sont pas les mêmes. Désactive le traitement du fichier $ENV et " +"l'import des\n" +" fonctions du shell. Désactiver cette option permet de définir " +"les uid et gid\n" +" effectifs à la valeur des uid et gid réels. -t Terminer " +"après la lecture et l'exécution d'une commande.\n" +" -u Traiter les variables non définies comme des erreurs lors de la " +"substitution.\n" +" -v Afficher les lignes d'entrée du shell à leur lecture.\n" +" -x Afficher les commandes et leurs arguments au moment de leur " +"exécution.\n" +" -B Effectuer l'expansion des accolades -C Si définit, " +"empêche les fichiers réguliers existants d'être écrasés par une\n" +" redirection de la sortie.\n" +" -E Si définit, l'interception ERR est héritée par les fonctions du " +"shell.\n" +" -H Activer la substitution d'historique façon « ! ». Ceci est actif " +"par défaut\n" +" lorsque le shell est interactif.\n" +" -P Si définit, les liens symboliques ne sont pas suivis lors de " +"l'exécution des\n" +" commandes telles que « cd » qui changent le répertoire courant.\n" +" -T Si définit, l'interception DEBUG est héritée par les fonctions " +"du shell.\n" +" - Affecter tous les arguments restants aux paramètres de " +"position.\n" +" Les options « -x » et « -v » sont désactivées.\n" +" \n" +" Ces indicateurs peuvent être désactivés en utilisant « + » plutôt que « - " +"». Ils peuvent\n" +" être utilisés lors de l'appel au shell. Le jeu d'indicateurs actuel peut " +"être trouvé\n" +" dans « $- ». Les n ARGs restants sont des paramètres de position et sont " +"affectés,\n" +" dans l'ordre, à $1, $2, .. $n. Si aucun ARG n'est donné, toutes les " +"variables du shell\n" +" sont affichées." + +#: builtins.c:1097 +msgid "" +"Unset values and attributes of shell variables and functions.\n" +" \n" +" For each NAME, remove the corresponding variable or function.\n" +" \n" +" Options:\n" +" -f\ttreat each NAME as a shell function\n" +" -v\ttreat each NAME as a shell variable\n" +" \n" +" Without options, unset first tries to unset a variable, and if that " +"fails,\n" +" tries to unset a function.\n" +" \n" +" Some variables cannot be unset; also see `readonly'.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or a NAME is read-only." +msgstr "" + +#: builtins.c:1117 +msgid "" +"Set export attribute for shell variables.\n" +" \n" +" Marks each NAME for automatic export to the environment of subsequently\n" +" executed commands. If VALUE is supplied, assign VALUE before " +"exporting.\n" +" \n" +" Options:\n" +" -f\trefer to shell functions\n" +" -n\tremove the export property from each NAME\n" +" -p\tdisplay a list of all exported variables and functions\n" +" \n" +" An argument of `--' disables further option processing.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or NAME is invalid." +msgstr "" + +#: builtins.c:1136 +msgid "" +"Mark shell variables as unchangeable.\n" +" \n" +" Mark each NAME as read-only; the values of these NAMEs may not be\n" +" changed by subsequent assignment. If VALUE is supplied, assign VALUE\n" +" before marking as read-only.\n" +" \n" +" Options:\n" +" -a\trefer to indexed array variables\n" +" -A\trefer to associative array variables\n" +" -f\trefer to shell functions\n" +" -p\tdisplay a list of all readonly variables and functions\n" +" \n" +" An argument of `--' disables further option processing.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or NAME is invalid." +msgstr "" + +#: builtins.c:1157 +msgid "" +"Shift positional parameters.\n" +" \n" +" Rename the positional parameters $N+1,$N+2 ... to $1,$2 ... If N is\n" +" not given, it is assumed to be 1.\n" +" \n" +" Exit Status:\n" +" Returns success unless N is negative or greater than $#." +msgstr "" + +#: builtins.c:1169 builtins.c:1184 +#, fuzzy +msgid "" +"Execute commands from a file in the current shell.\n" +" \n" +" Read and execute commands from FILENAME in the current shell. The\n" +" entries in $PATH are used to find the directory containing FILENAME.\n" +" If any ARGUMENTS are supplied, they become the positional parameters\n" +" when FILENAME is executed.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed in FILENAME; fails if\n" +" FILENAME cannot be read." +msgstr "" +"Lit et exécute les commandes depuis le fichier FILENAME puis se termine. Les " +"chemins\n" +" dans $PATH sont utilisés pour trouver le répertoire contenant FILENAME.\n" +" Si des ARGUMENTS sont fournis, ils deviennent les paramètres de " +"position\n" +" lorsque FILENAME est exécuté." + +#: builtins.c:1200 +msgid "" +"Suspend shell execution.\n" +" \n" +" Suspend the execution of this shell until it receives a SIGCONT signal.\n" +" Unless forced, login shells cannot be suspended.\n" +" \n" +" Options:\n" +" -f\tforce the suspend, even if the shell is a login shell\n" +" \n" +" Exit Status:\n" +" Returns success unless job control is not enabled or an error occurs." +msgstr "" + +#: builtins.c:1216 +#, fuzzy +msgid "" +"Evaluate conditional expression.\n" +" \n" +" Exits with a status of 0 (true) or 1 (false) depending on\n" +" the evaluation of EXPR. Expressions may be unary or binary. Unary\n" +" expressions are often used to examine the status of a file. There\n" +" are string operators as well, and numeric comparison operators.\n" +" \n" +" File operators:\n" +" \n" +" -a FILE True if file exists.\n" +" -b FILE True if file is block special.\n" +" -c FILE True if file is character special.\n" +" -d FILE True if file is a directory.\n" +" -e FILE True if file exists.\n" +" -f FILE True if file exists and is a regular file.\n" +" -g FILE True if file is set-group-id.\n" +" -h FILE True if file is a symbolic link.\n" +" -L FILE True if file is a symbolic link.\n" +" -k FILE True if file has its `sticky' bit set.\n" +" -p FILE True if file is a named pipe.\n" +" -r FILE True if file is readable by you.\n" +" -s FILE True if file exists and is not empty.\n" +" -S FILE True if file is a socket.\n" +" -t FD True if FD is opened on a terminal.\n" +" -u FILE True if the file is set-user-id.\n" +" -w FILE True if the file is writable by you.\n" +" -x FILE True if the file is executable by you.\n" +" -O FILE True if the file is effectively owned by you.\n" +" -G FILE True if the file is effectively owned by your group.\n" +" -N FILE True if the file has been modified since it was last " +"read.\n" +" \n" +" FILE1 -nt FILE2 True if file1 is newer than file2 (according to\n" +" modification date).\n" +" \n" +" FILE1 -ot FILE2 True if file1 is older than file2.\n" +" \n" +" FILE1 -ef FILE2 True if file1 is a hard link to file2.\n" +" \n" +" String operators:\n" +" \n" +" -z STRING True if string is empty.\n" +" \n" +" -n STRING\n" +" STRING True if string is not empty.\n" +" \n" +" STRING1 = STRING2\n" +" True if the strings are equal.\n" +" STRING1 != STRING2\n" +" True if the strings are not equal.\n" +" STRING1 < STRING2\n" +" True if STRING1 sorts before STRING2 " +"lexicographically.\n" +" STRING1 > STRING2\n" +" True if STRING1 sorts after STRING2 lexicographically.\n" +" \n" +" Other operators:\n" +" \n" +" -o OPTION True if the shell option OPTION is enabled.\n" +" ! EXPR True if expr is false.\n" +" EXPR1 -a EXPR2 True if both expr1 AND expr2 are true.\n" +" EXPR1 -o EXPR2 True if either expr1 OR expr2 is true.\n" +" \n" +" arg1 OP arg2 Arithmetic tests. OP is one of -eq, -ne,\n" +" -lt, -le, -gt, or -ge.\n" +" \n" +" Arithmetic binary operators return true if ARG1 is equal, not-equal,\n" +" less-than, less-than-or-equal, greater-than, or greater-than-or-equal\n" +" than ARG2.\n" +" \n" +" Exit Status:\n" +" Returns success if EXPR evaluates to true; fails if EXPR evaluates to\n" +" false or an invalid argument is given." +msgstr "" +"Se termine avec le code de retour 0 (vrai) ou 1 (faux) selon\n" +" le résultat de l'évaluation de EXPR. Les expressions peuvent être\n" +" unaires ou binaires. Les expressions unaires sont souvent utilisées\n" +" pour examiner l'état d'un fichier. Il existe aussi des opérateurs de\n" +" chaîne, ainsi que des opérateurs de comparaison numériques.\n" +". \n" +" Opérateurs sur des fichiers : \n" +" \n" +" -a FICHIER Vrai si le fichier existe.\n" +" -b FICHIER Vrai si le fichier est un fichier spécial de bloc\n" +" -c FICHIER Vrai si le fichier est un fichier spécial de " +"caractères\n" +" -d FICHIER Vrai si le fichier est un répertoire.\n" +" -e FICHIER Vrai si le fichier existe\n" +" -f FICHIER Vrai si le fichier existe et est un fichier régulier\n" +" -g FICHIER Vrai si le fichier est « set-group-id »\n" +" -h FICHIER Vrai si le fichier est un lien symbolique\n" +" -L FICHIER Vrai si le fichier est un lien symbolique\n" +" -k FICHIER Vrai si le fichier a son bit « sticky » défini\n" +" -p FICHIER Vrai si le fichier est un tube nommé\n" +" -r FICHIER Vrai si le fichier est lisible par vous\n" +" -s FICHIER Vrai si le fichier existe et n'est pas vide\n" +" -S FICHIER Vrai si le fichier est un socket\n" +" -t FD Vrai si FD est ouvert sur un terminal\n" +" -u FICHIER Vrai si le fichier est « set-user-id »\n" +" -w FICHIER Vrai si le fichier peut être écrit par vous\n" +" -x FICHIER Vrai si le fichier est exécutable par vous\n" +" -O FICHIER Vrai si le fichier est effectivement possédé par " +"vous\n" +" -G FICHIER Vrai si le fichier est effectivement possédé par " +"votre groupe\n" +" -N FICHIER Vrai si le fichier a été modifié depuis la dernière " +"fois qu'il a été lu\n" +" FICHIER1 -nt FICHIER2 Vrai si le fichier1 est plus récent que le fichier2 " +"(selon la date de modification)\n" +" FICHIER1 -ot FICHIER2 Vrai si le fichier1 est plus vieux que le fichier2\n" +" FICHIER1 -ef FICHIER2 Vrai si le fichier1 est un lien physique vers le " +"fichier2\n" +" \n" +" Opérateurs sur des chaînes :\n" +" \n" +" -z CHAÎNE Vrai si la chaîne est vide\n" +" -n CHAÎNE\n" +" CHAÎNE Vrai si la chaîne n'est pas vide\n" +" \n" +" CHAÎNE1 = CHAÎNE2\n" +" Vrai si les chaînes sont égales\n" +" CHAÎNE1 != CHAÎNE2\n" +" Vrai si les chaînes ne sont pas égales\n" +" CHAÎNE1 < CHAÎNE2\n" +" Vrai si le tri lexicographique place la chaîne1 en " +"premier\n" +" CHAÎNE1 > CHAÎNE2\n" +" Vrai si le tri lexicographique place la chaîne1 en " +"deuxième\n" +" \n" +" Autres opérateurs :\n" +" \n" +" -o OPTION Vrai si l'OPTION du shell est activée\n" +" ! EXPR Vrai si l'EXPRession est fausse\n" +" EXPR1 -a EXPR2 Vrai si les deux expressions sont vraies\n" +" EXPR1 -o EXPR2 Vrai si l'une des deux expressions est vraie\n" +" \n" +" arg1 OP arg2 Tests arithmétiques. OP peut être -eq, -ne,\n" +" -lt, -le, -gt ou -ge.\n" +" \n" +" Les opérateurs arithmétiques binaires renvoient « vrai » si ARG1 est " +"égal,\n" +" non-égal, inférieur, inférieur ou égal, supérieur, supérieur ou égal à " +"ARG2." + +#: builtins.c:1292 +#, fuzzy +msgid "" +"Evaluate conditional expression.\n" +" \n" +" This is a synonym for the \"test\" builtin, but the last argument must\n" +" be a literal `]', to match the opening `['." +msgstr "" +"Ceci est un synonyme de la primitive « test », mais le dernier argument\n" +" doit être le caractère « ] », pour fermer le « [ » correspondant." + +#: builtins.c:1301 +msgid "" +"Display process times.\n" +" \n" +" Prints the accumulated user and system times for the shell and all of " +"its\n" +" child processes.\n" +" \n" +" Exit Status:\n" +" Always succeeds." +msgstr "" + +#: builtins.c:1313 +#, fuzzy +msgid "" +"Trap signals and other events.\n" +" \n" +" Defines and activates handlers to be run when the shell receives " +"signals\n" +" or other conditions.\n" +" \n" +" ARG is a command to be read and executed when the shell receives the\n" +" signal(s) SIGNAL_SPEC. If ARG is absent (and a single SIGNAL_SPEC\n" +" is supplied) or `-', each specified signal is reset to its original\n" +" value. If ARG is the null string each SIGNAL_SPEC is ignored by the\n" +" shell and by the commands it invokes.\n" +" \n" +" If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell. " +"If\n" +" a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command.\n" +" \n" +" If no arguments are supplied, trap prints the list of commands " +"associated\n" +" with each signal.\n" +" \n" +" Options:\n" +" -l\tprint a list of signal names and their corresponding numbers\n" +" -p\tdisplay the trap commands associated with each SIGNAL_SPEC\n" +" \n" +" Each SIGNAL_SPEC is either a signal name in or a signal " +"number.\n" +" Signal names are case insensitive and the SIG prefix is optional. A\n" +" signal may be sent to the shell with \"kill -signal $$\".\n" +" \n" +" Exit Status:\n" +" Returns success unless a SIGSPEC is invalid or an invalid option is " +"given." +msgstr "" +"La commande ARG doit être lue et exécutée lorsque le shell reçoit le\n" +" signal SIGNAL_SPEC. Si ARG est absent (et qu'un unique SIGNAL_SPEC)\n" +" est fourni) ou égal à « - », tous les signaux spécifié sont remis\n" +" à leur valeur d'origine. Si ARG est une chaîne vide, tous les " +"SIGNAL_SPEC\n" +" sont ignorés par le shell et les commandes qu'il appelle. Si " +"SIGNAL_SPEC\n" +" est EXIT (0), la commande ARG est exécutée à la sortie du shell. Si un\n" +" SIGNAL_SPEC est DEBUG, ARG est exécuté après chaque commande simple. \n" +" Si l'option « -p » est fournie, les commandes d'interception associées à\n" +" chaque SIGNAL_SPEC sont affichées. Si aucun argument n'est fourni ou " +"si \n" +" « -p » est fourni seul, « trap » affiche la liste des commandes associées\n" +" à chaque signal. Chaque SIGNAL_SPEC est soit un nom de signal dans " +"\n" +" ou un numéro de signal. Les noms de signaux sont insensibles à la casse " +"et\n" +" le préfixe « SIG » est facultatif. « trap -l » affiche la liste des " +"signaux\n" +" et leur numéros correspondants. Remarquez qu'un signal peut être envoyé " +"au\n" +" shell avec « kill -signal $$ »." + +#: builtins.c:1345 +msgid "" +"Display information about command type.\n" +" \n" +" For each NAME, indicate how it would be interpreted if used as a\n" +" command name.\n" +" \n" +" Options:\n" +" -a\tdisplay all locations containing an executable named NAME;\n" +" \tincludes aliases, builtins, and functions, if and only if\n" +" \tthe `-p' option is not also used\n" +" -f\tsuppress shell function lookup\n" +" -P\tforce a PATH search for each NAME, even if it is an alias,\n" +" \tbuiltin, or function, and returns the name of the disk file\n" +" \tthat would be executed\n" +" -p\treturns either the name of the disk file that would be executed,\n" +" \tor nothing if `type -t NAME' would not return `file'.\n" +" -t\toutput a single word which is one of `alias', `keyword',\n" +" \t`function', `builtin', `file' or `', if NAME is an alias, shell\n" +" \treserved word, shell function, shell builtin, disk file, or not\n" +" \tfound, respectively\n" +" \n" +" Arguments:\n" +" NAME\tCommand name to be interpreted.\n" +" \n" +" Exit Status:\n" +" Returns success if all of the NAMEs are found; fails if any are not " +"found." +msgstr "" + +#: builtins.c:1376 +#, fuzzy +msgid "" +"Modify shell resource limits.\n" +" \n" +" Provides control over the resources available to the shell and " +"processes\n" +" it creates, on systems that allow such control.\n" +" \n" +" Options:\n" +" -S\tuse the `soft' resource limit\n" +" -H\tuse the `hard' resource limit\n" +" -a\tall current limits are reported\n" +" -b\tthe socket buffer size\n" +" -c\tthe maximum size of core files created\n" +" -d\tthe maximum size of a process's data segment\n" +" -e\tthe maximum scheduling priority (`nice')\n" +" -f\tthe maximum size of files written by the shell and its children\n" +" -i\tthe maximum number of pending signals\n" +" -l\tthe maximum size a process may lock into memory\n" +" -m\tthe maximum resident set size\n" +" -n\tthe maximum number of open file descriptors\n" +" -p\tthe pipe buffer size\n" +" -q\tthe maximum number of bytes in POSIX message queues\n" +" -r\tthe maximum real-time scheduling priority\n" +" -s\tthe maximum stack size\n" +" -t\tthe maximum amount of cpu time in seconds\n" +" -u\tthe maximum number of user processes\n" +" -v\tthe size of virtual memory\n" +" -x\tthe maximum number of file locks\n" +" \n" +" If LIMIT is given, it is the new value of the specified resource; the\n" +" special LIMIT values `soft', `hard', and `unlimited' stand for the\n" +" current soft limit, the current hard limit, and no limit, respectively.\n" +" Otherwise, the current value of the specified resource is printed. If\n" +" no option is given, then -f is assumed.\n" +" \n" +" Values are in 1024-byte increments, except for -t, which is in seconds,\n" +" -p, which is in increments of 512 bytes, and -u, which is an unscaled\n" +" number of processes.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" +"« ulimit » fournit un contrôle sur les ressources disponibles aux\n" +" processus lancés depuis le shell, sur les systèmes qui permettent\n" +" ce genre de contrôles. Si une option est donnée, elle est interprétée\n" +" de la sorte :\n" +" \n" +" -S\tutiliser la limite de ressources « soft »\n" +" -H\tutiliser la limite de ressources « hard »\n" +" -a\ttoutes les limites actuelles sont présentées\n" +" -c\ttaille maximale des fichiers « core » créés\n" +" -d\ttaille maximale du segment de données d'un processus\n" +" -e\tla priorité maximale d'ordonnancement (« nice »)\n" +" -f\tla taille maximale des fichiers écrits par le shell et ses fils\n" +" -i\tle nombre maximal de signaux en attente\n" +" -l\tla taille maximale qu'un processus peut verrouiller en mémoire\n" +" -m\tla taille maximale de « set » résident\n" +" -n\tle nombre maximal de descripteurs de fichiers ouverts\n" +" -p\tla taille du tampon pour les tubes\n" +" -q\tle nombre maximal d'octets dans les queues de messages POSIX\n" +" -r\tla priorité maximale pour l'ordonnancement temps-réel\n" +" -s\tla taille maximale de la pile\n" +" -t\tla quantité maximale de temps processeur en secondes\n" +" -u\tle nombre maximal de processus utilisateurs\n" +" -v\tla taille de la mémoire virtuelle\n" +" -x\tle nombre maximal de verrous de fichiers\n" +" \n" +" Si LIMIT est fournie, elle est utilisée comme nouvelle valeur de " +"ressource\n" +" Les valeurs spéciales de LIMIT « soft », « hard » et « unlimited » " +"correspondent\n" +" respectivement aux valeurs actuelles de la limite souple, de la limite " +"dure,\n" +" ou à une absence de limite. Sinon la valeur actuelle de la limite est " +"affichée\n" +" Si aucune option n'est donnée, « -f » est supposée. Les valeurs sont\n" +" des multiples de 1024 octets, sauf pour « -t » qui prend des secondes,\n" +" « -p » qui prend un multiple de 512 octets et « -u » qui prend un nombre\n" +" sans unité." + +#: builtins.c:1421 +msgid "" +"Display or set file mode mask.\n" +" \n" +" Sets the user file-creation mask to MODE. If MODE is omitted, prints\n" +" the current value of the mask.\n" +" \n" +" If MODE begins with a digit, it is interpreted as an octal number;\n" +" otherwise it is a symbolic mode string like that accepted by chmod(1).\n" +" \n" +" Options:\n" +" -p\tif MODE is omitted, output in a form that may be reused as input\n" +" -S\tmakes the output symbolic; otherwise an octal number is output\n" +" \n" +" Exit Status:\n" +" Returns success unless MODE is invalid or an invalid option is given." +msgstr "" + +#: builtins.c:1441 +msgid "" +"Wait for job completion and return exit status.\n" +" \n" +" Waits for the process identified by ID, which may be a process ID or a\n" +" job specification, and reports its termination status. If ID is not\n" +" given, waits for all currently active child processes, and the return\n" +" status is zero. If ID is a a job specification, waits for all " +"processes\n" +" in the job's pipeline.\n" +" \n" +" Exit Status:\n" +" Returns the status of ID; fails if ID is invalid or an invalid option " +"is\n" +" given." +msgstr "" + +#: builtins.c:1459 +#, fuzzy +msgid "" +"Wait for process completion and return exit status.\n" +" \n" +" Waits for the specified process and reports its termination status. If\n" +" PID is not given, all currently active child processes are waited for,\n" +" and the return code is zero. PID must be a process ID.\n" +" \n" +" Exit Status:\n" +" Returns the status of ID; fails if ID is invalid or an invalid option " +"is\n" +" given." +msgstr "" +"Attend le processus spécifié et donne son code de retour. Si N n'est\n" +" pas donné, tous les processus fils actuellement actifs sont attendus\n" +" et le code de retour est zéro. N peut être un n° de processus ou un\n" +" spécificateur de tâche. Si c'est un spécificateur de tâche, tous les\n" +" processus présents dans le tube de la tâche sont attendus." + +#: builtins.c:1474 +#, fuzzy +msgid "" +"Execute commands for each member in a list.\n" +" \n" +" The `for' loop executes a sequence of commands for each member in a\n" +" list of items. If `in WORDS ...;' is not present, then `in \"$@\"' is\n" +" assumed. For each element in WORDS, NAME is set to that element, and\n" +" the COMMANDS are executed.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"La boucle « for » exécute une suite de commandes pour chaque membre d'une\n" +" liste d'éléments. Si « in WORDS ...; » n'est pas fourni, « in \"$@\" » est\n" +" utilisé. Pour chaque élément dans WORDS, NAME est défini à cet élément,\n" +" et les COMMANDS sont exécutées." + +#: builtins.c:1488 +#, fuzzy +msgid "" +"Arithmetic for loop.\n" +" \n" +" Equivalent to\n" +" \t(( EXP1 ))\n" +" \twhile (( EXP2 )); do\n" +" \t\tCOMMANDS\n" +" \t\t(( EXP3 ))\n" +" \tdone\n" +" EXP1, EXP2, and EXP3 are arithmetic expressions. If any expression is\n" +" omitted, it behaves as if it evaluates to 1.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"Équivalent à\n" +" \t(( EXP1 ))\n" +" \twhile (( EXP2 )); do\n" +" \t\tCOMMANDS\n" +" \t\t(( EXP3 ))\n" +" \tdone\n" +" EXP1, EXP2, and EXP3 sont des expressions arithmétiques. Si une " +"expression\n" +" omise, elle se comporte comme si elle s'évaluait à 1." + +#: builtins.c:1506 +#, fuzzy +msgid "" +"Select words from a list and execute commands.\n" +" \n" +" The WORDS are expanded, generating a list of words. The\n" +" set of expanded words is printed on the standard error, each\n" +" preceded by a number. If `in WORDS' is not present, `in \"$@\"'\n" +" is assumed. The PS3 prompt is then displayed and a line read\n" +" from the standard input. If the line consists of the number\n" +" corresponding to one of the displayed words, then NAME is set\n" +" to that word. If the line is empty, WORDS and the prompt are\n" +" redisplayed. If EOF is read, the command completes. Any other\n" +" value read causes NAME to be set to null. The line read is saved\n" +" in the variable REPLY. COMMANDS are executed after each selection\n" +" until a break command is executed.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"Les mots WORDS subissent une expansion et génèrent une liste de mots.\n" +" L'ensemble de ces mots est affiché dans la sortie d'erreur, chacun\n" +" étant précédé d'un nombre. Si « in WORDS » n'est pas fourni, \n" +" « in \"$@\" » est utilisé. L'invite PS3 est ensuite affichée et une\n" +" ligne est lue depuis l'entrée standard. Si la ligne consiste en\n" +" le numéro d'un des mots affichés, alors ce mot est affecté à NAME.\n" +" Si la ligne est vide, WORDS et l'invite sont réaffichés. Si un EOF\n" +" est lu, la commande se termine. Toute autre valeur lue a pour effet\n" +" de vider NAME. La ligne lue est conservée dans la variable REPLY.\n" +" Les COMMANDS sont exécutées après chaque sélection jusqu'à ce qu'une\n" +" commande « break » soit exécutée." + +#: builtins.c:1527 +#, fuzzy +msgid "" +"Report time consumed by pipeline's execution.\n" +" \n" +" Execute PIPELINE and print a summary of the real time, user CPU time,\n" +" and system CPU time spent executing PIPELINE when it terminates.\n" +" \n" +" Options:\n" +" -p\tprint the timing summary in the portable Posix format\n" +" \n" +" The value of the TIMEFORMAT variable is used as the output format.\n" +" \n" +" Exit Status:\n" +" The return status is the return status of PIPELINE." +msgstr "" +"Exécute PIPELINE et affiche un résumé du temps réel, du temps processeur\n" +" utilisateur, et du temps processeur système passés à exécuter PIPELINE\n" +" lorsque celui-ci se termine. Le code de retour est celui de PIPELINE.\n" +" L'option « -p » affiche le résumé dans un format légèrement différent.\n" +" Elle utilise la valeur de la variable TIMEFORMAT comme format de sortie." + +#: builtins.c:1544 +#, fuzzy +msgid "" +"Execute commands based on pattern matching.\n" +" \n" +" Selectively execute COMMANDS based upon WORD matching PATTERN. The\n" +" `|' is used to separate multiple patterns.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"Exécute de manière sélective les commandes COMMANDS basées sur le\n" +" motif PATTERN de correspondance des mots WORDS. Le caractère\n" +" « | » est utilisé pour séparer les différents motifs." + +#: builtins.c:1556 +#, fuzzy +msgid "" +"Execute commands based on conditional.\n" +" \n" +" The `if COMMANDS' list is executed. If its exit status is zero, then " +"the\n" +" `then COMMANDS' list is executed. Otherwise, each `elif COMMANDS' list " +"is\n" +" executed in turn, and if its exit status is zero, the corresponding\n" +" `then COMMANDS' list is executed and the if command completes. " +"Otherwise,\n" +" the `else COMMANDS' list is executed, if present. The exit status of " +"the\n" +" entire construct is the exit status of the last command executed, or " +"zero\n" +" if no condition tested true.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"La liste « if COMMANDS » est exécutée. Si elle se termine avec un code de " +"zéro,\n" +" alors la liste « then COMMANDS » est exécutée. Sinon, chaque liste\n" +" « elif COMMANDS » est exécutée à son tour et si son code de retour est " +"zéro,\n" +" la liste « then COMMANDS » correspondante est exécutée et la commande « if " +"»\n" +" se termine. Sinon, la list « else COMMANDS » est exécutée si elle " +"existe.\n" +" Le code de retour de l'ensemble est celui de la dernière commande " +"exécutée\n" +" ou zéro si aucune condition n'était vraie. " + +#: builtins.c:1573 +#, fuzzy +msgid "" +"Execute commands as long as a test succeeds.\n" +" \n" +" Expand and execute COMMANDS as long as the final command in the\n" +" `while' COMMANDS has an exit status of zero.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"Effectue une expansion et exécute les commandes « COMMANDS » aussi longtemps\n" +" que la commande finale parmi celles de « while » se termine avec un\n" +" code de retour de zéro." + +#: builtins.c:1585 +#, fuzzy +msgid "" +"Execute commands as long as a test does not succeed.\n" +" \n" +" Expand and execute COMMANDS as long as the final command in the\n" +" `until' COMMANDS has an exit status which is not zero.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"Effectue une expansion et exécute les commandes « COMMANDS » aussi longtemps\n" +" que les commandes de « until » se terminent avec un code de retour\n" +" différent de zéro." + +#: builtins.c:1597 +msgid "" +"Define shell function.\n" +" \n" +" Create a shell function named NAME. When invoked as a simple command,\n" +" NAME runs COMMANDs in the calling shell's context. When NAME is " +"invoked,\n" +" the arguments are passed to the function as $1...$n, and the function's\n" +" name is in $FUNCNAME.\n" +" \n" +" Exit Status:\n" +" Returns success unless NAME is readonly." +msgstr "" + +#: builtins.c:1611 +#, fuzzy +msgid "" +"Group commands as a unit.\n" +" \n" +" Run a set of commands in a group. This is one way to redirect an\n" +" entire set of commands.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"Lance un ensemble de commandes d'un groupe. Ceci est une façon de\n" +" rediriger tout un ensemble de commandes." + +#: builtins.c:1623 +#, fuzzy +msgid "" +"Resume job in foreground.\n" +" \n" +" Equivalent to the JOB_SPEC argument to the `fg' command. Resume a\n" +" stopped or background job. JOB_SPEC can specify either a job name\n" +" or a job number. Following JOB_SPEC with a `&' places the job in\n" +" the background, as if the job specification had been supplied as an\n" +" argument to `bg'.\n" +" \n" +" Exit Status:\n" +" Returns the status of the resumed job." +msgstr "" +"Équivalent à l'argument JOB_SPEC de la commande « fg ». Reprend l'exécution\n" +" d'une tâche stoppée ou en tâche de fond. JOB_SPEC peut spécifier soit\n" +" un nom soit un numéro de tâche. Faire suivre JOB_SPEC de « & » permet de\n" +" placer la tâche en arrière plan, comme si la spécification de tâche " +"avait\n" +" été fournie comme argument de « bg »." + +#: builtins.c:1638 +#, fuzzy +msgid "" +"Evaluate arithmetic expression.\n" +" \n" +" The EXPRESSION is evaluated according to the rules for arithmetic\n" +" evaluation. Equivalent to \"let EXPRESSION\".\n" +" \n" +" Exit Status:\n" +" Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise." +msgstr "" +"L'EXPRESSION est évaluée selon les règles de l'évaluation arithmétique.\n" +" C'est équivalent à « let EXPRESSION »." + +#: builtins.c:1650 +#, fuzzy +msgid "" +"Execute conditional command.\n" +" \n" +" Returns a status of 0 or 1 depending on the evaluation of the " +"conditional\n" +" expression EXPRESSION. Expressions are composed of the same primaries " +"used\n" +" by the `test' builtin, and may be combined using the following " +"operators:\n" +" \n" +" ( EXPRESSION )\tReturns the value of EXPRESSION\n" +" ! EXPRESSION\t\tTrue if EXPRESSION is false; else false\n" +" EXPR1 && EXPR2\tTrue if both EXPR1 and EXPR2 are true; else false\n" +" EXPR1 || EXPR2\tTrue if either EXPR1 or EXPR2 is true; else false\n" +" \n" +" When the `==' and `!=' operators are used, the string to the right of\n" +" the operator is used as a pattern and pattern matching is performed.\n" +" When the `=~' operator is used, the string to the right of the operator\n" +" is matched as a regular expression.\n" +" \n" +" The && and || operators do not evaluate EXPR2 if EXPR1 is sufficient to\n" +" determine the expression's value.\n" +" \n" +" Exit Status:\n" +" 0 or 1 depending on value of EXPRESSION." +msgstr "" +"Renvoie un code de retour de 0 ou 1 dépendant de l'évaluation de " +"l'EXPRESSION\n" +" conditionnelle. Les expressions sont formées de la même façon que pour " +"la\n" +" primitive « test », et peuvent être combinées avec les opérateurs " +"suivants :\n" +" \n" +" \t( EXPRESSION )\tRenvoie la valeur de l'EXPRESSION\n" +" \t! EXPRESSION\tVrai si l'EXPRESSION est fausse, sinon vrai\n" +" \tEXPR1 && EXPR2\tVrai si EXPR1 et EXPR2 sont vraies, faux sinon\n" +" \tEXPR1 || EXPR2\tVrai si EXPR1 ou EXPR2 est vraie, faux sinon\n" +" \n" +" Lorsque les opérateurs « == » et « != » sont utilisés, la chaîne à\n" +" droite de l'opérateur est utilisée comme motif, et une mise en " +"correspondance\n" +" est effectuée. Les opérateurs « && » et « || » n'évaluent pas EXPR2 si\n" +" EXPR1 est suffisant pour déterminer la valeur de l'expression." + +#: builtins.c:1676 +#, fuzzy +msgid "" +"Common shell variable names and usage.\n" +" \n" +" BASH_VERSION\tVersion information for this Bash.\n" +" CDPATH\tA colon-separated list of directories to search\n" +" \t\tfor directories given as arguments to `cd'.\n" +" GLOBIGNORE\tA colon-separated list of patterns describing filenames to\n" +" \t\tbe ignored by pathname expansion.\n" +" HISTFILE\tThe name of the file where your command history is stored.\n" +" HISTFILESIZE\tThe maximum number of lines this file can contain.\n" +" HISTSIZE\tThe maximum number of history lines that a running\n" +" \t\tshell can access.\n" +" HOME\tThe complete pathname to your login directory.\n" +" HOSTNAME\tThe name of the current host.\n" +" HOSTTYPE\tThe type of CPU this version of Bash is running under.\n" +" IGNOREEOF\tControls the action of the shell on receipt of an EOF\n" +" \t\tcharacter as the sole input. If set, then the value\n" +" \t\tof it is the number of EOF characters that can be seen\n" +" \t\tin a row on an empty line before the shell will exit\n" +" \t\t(default 10). When unset, EOF signifies the end of input.\n" +" MACHTYPE\tA string describing the current system Bash is running on.\n" +" MAILCHECK\tHow often, in seconds, Bash checks for new mail.\n" +" MAILPATH\tA colon-separated list of filenames which Bash checks\n" +" \t\tfor new mail.\n" +" OSTYPE\tThe version of Unix this version of Bash is running on.\n" +" PATH\tA colon-separated list of directories to search when\n" +" \t\tlooking for commands.\n" +" PROMPT_COMMAND\tA command to be executed before the printing of each\n" +" \t\tprimary prompt.\n" +" PS1\t\tThe primary prompt string.\n" +" PS2\t\tThe secondary prompt string.\n" +" PWD\t\tThe full pathname of the current directory.\n" +" SHELLOPTS\tA colon-separated list of enabled shell options.\n" +" TERM\tThe name of the current terminal type.\n" +" TIMEFORMAT\tThe output format for timing statistics displayed by the\n" +" \t\t`time' reserved word.\n" +" auto_resume\tNon-null means a command word appearing on a line by\n" +" \t\titself is first looked for in the list of currently\n" +" \t\tstopped jobs. If found there, that job is foregrounded.\n" +" \t\tA value of `exact' means that the command word must\n" +" \t\texactly match a command in the list of stopped jobs. A\n" +" \t\tvalue of `substring' means that the command word must\n" +" \t\tmatch a substring of the job. Any other value means that\n" +" \t\tthe command must be a prefix of a stopped job.\n" +" histchars\tCharacters controlling history expansion and quick\n" +" \t\tsubstitution. The first character is the history\n" +" \t\tsubstitution character, usually `!'. The second is\n" +" \t\tthe `quick substitution' character, usually `^'. The\n" +" \t\tthird is the `history comment' character, usually `#'.\n" +" HISTIGNORE\tA colon-separated list of patterns used to decide which\n" +" \t\tcommands should be saved on the history list.\n" +msgstr "" +"BASH_VERSION\tNuméro de version de ce Bash.\n" +" CDPATH\tUne liste de répertoires, séparés par un deux-points, utilisés\n" +" \t\tpar « cd » pour la recherche de répertoires.\n" +" GLOBIGNORE\tUne liste de motifs séparés par un deux-points, décrivant " +"les\n" +" \t\tnoms de fichier à ignorer lors de l'expansion des chemins.\n" +" HISTFILE\tLe nom du fichier où votre historique des commandes est " +"stocké.\n" +" HISTFILESIZE\tLe nombre maximal de lignes que ce fichier peut contenir.\n" +" HISTSIZE\tLe nombre maximal de lignes d'historique auquel un shell en\n" +" \t\tfonctionnement peut accéder.\n" +" HOME\tLe chemin complet vers votre répertoire de connexion.\n" +" HOSTNAME\tLe nom de la machine actuelle.\n" +" HOSTTYPE\tLe type de processeur sur laquelle cette version de Bash " +"fonctionne.\n" +" IGNOREEOF\tContrôle l'action du shell à la réception d'un caractère « EOF " +"»\n" +" \t\tcomme seule entrée. Si défini, sa valeur est le nombre de " +"caractères\n" +" \t\t« EOF » qui peuvent être rencontrés à la suite sur une ligne vide\n" +" \t\tavant que le shell ne se termine (10 par défaut).\n" +" \t\tS'il n'est pas défini, « EOF » signifie la fin de l'entrée.\n" +" MACHTYPE\tUne chaîne décrivant le système actuel sur lequel fonctionne " +"Bash.\n" +" MAILCHECK\tLe nombre de secondes séparant deux vérifications du courrier " +"par Bash.\n" +" MAILPATH\tUne liste de fichiers séparés par un deux-points, que Bash " +"utilise\n" +" \t\tpour vérifier les nouveaux courriers.\n" +" OSTYPE\tLa version d'Unix sur laquelle cette version de Bash " +"fonctionne.\n" +" PATH\tUne liste de répertoires séparés par un deux-points, utilisés\n" +" \t\tpour la recherche des commandes.\n" +" PROMPT_COMMAND\tUne commande à exécuter avant d'afficher chaque invite\n" +" \t\tde commande principale.\n" +" PS1\t\tL'invite de commande principale.\n" +" PS2\t\tL'invite secondaire.\n" +" PWD\t\tLe chemin complet vers le répertoire actuel.\n" +" SHELLOPTS\tLa liste des options activées du shell, séparées par un deux-" +"points.\n" +" TERM\tLe nom du type actuel du terminal.\n" +" TIMEFORMAT\tLe format de sortie pour les statistiques de temps " +"affichées\n" +" \t\tpar le mot réservé « time ».\n" +" auto_resume\tNon-vide signifie qu'un mot de commande apparaissant\n" +" \t\tde lui-même sur une ligne est d'abord recherché dans la liste des\n" +" \t\ttâches stoppées. Si elle est trouvée, la tâche est remise en avant-" +"plan.\n" +" \t\tUne valeur de « exact » signifie que le mot de commande doit " +"correspondre\n" +" \t\texactement à la commande dans la liste des tâches stoppées. Une " +"valeur\n" +" \t\tde « substring » signifie que le mot de commande\n" +" \t\tcorrespondre à une sous-chaîne de la tâche. Une autre valeur " +"signifie\n" +" \t\tque la commande doit être un préfixe d'une tâche stoppée.\n" +" histchars\tCaractères contrôlant l'expansion d'historique et la " +"substitution\n" +" \t\trapide. Le premier caractère est le caractère de substitution " +"d'historique,\n" +" \t\thabituellement « ! ». Le deuxième est le caractère de substitution " +"rapide,\n" +" \t\thabituellement « ^ ». Le troisième est le caractère de commentaire\n" +" \t\td'historique, habituellement « # ».\n" +" HISTIGNORE\tUne liste de motifs séparés par un deux-points, utilisés " +"pour\n" +" \t\tdécider quelles commandes doivent être conservées dans la liste " +"d'historique.\n" + +#: builtins.c:1733 +#, fuzzy +msgid "" +"Add directories to stack.\n" +" \n" +" Adds a directory to the top of the directory stack, or rotates\n" +" the stack, making the new top of the stack the current working\n" +" directory. With no arguments, exchanges the top two directories.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when adding\n" +" \tdirectories to the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the left of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" -N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the right of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" dir\tAdds DIR to the directory stack at the top, making it the\n" +" \tnew current working directory.\n" +" \n" +" The `dirs' builtin displays the directory stack.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid argument is supplied or the directory\n" +" change fails." +msgstr "" +"Ajoute un répertoire en haut de la pile des répertoires, ou permute\n" +" la pile, de façon que le répertoire en haut de la pile devienne\n" +" le nouveau répertoire de travail. S'il n'y a pas d'argument, les deux\n" +" répertoires en haut de la pile sont échangés.\n" +" \n" +" +N\tPermute la pile de façon que le Nième répertoire se place en haut,\n" +" \ten comptant de zéro depuis la gauche de la liste fournie par « dirs ».\n" +" \n" +" -N\tPermute la pile de façon que le Nième répertoire se place en haut,\n" +" \ten comptant de zéro depuis la droite de la liste fournie par « dirs ».\n" +" \n" +" -n\tne change pas de répertoire de travail lorsque des répertoires\n" +" \tsont ajoutés à la pile, de façon que seule la pile soit manipulée\n" +" \n" +" dir\tajoute le répertoire DIR en haut de la pile, et en fait le nouveau\n" +" \trépertoire de travail.\n" +" \n" +" Vous pouvez voir la pile des répertoires avec la commande « dirs »." + +#: builtins.c:1767 +#, fuzzy +msgid "" +"Remove directories from stack.\n" +" \n" +" Removes entries from the directory stack. With no arguments, removes\n" +" the top directory from the stack, and changes to the new top directory.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when removing\n" +" \tdirectories from the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRemoves the Nth entry counting from the left of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd +0'\n" +" \tremoves the first directory, `popd +1' the second.\n" +" \n" +" -N\tRemoves the Nth entry counting from the right of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd -0'\n" +" \tremoves the last directory, `popd -1' the next to last.\n" +" \n" +" The `dirs' builtin displays the directory stack.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid argument is supplied or the directory\n" +" change fails." +msgstr "" +"Enlève des éléments de la pile des répertoires. S'il n'y a pas\n" +" d'argument, le répertoire en haut de la pile est enlevé,\n" +" et le nouveau sommet de la pile devient le répertoire de travail.\n" +" \n" +" +N\tEnlève le Nième répertoire, en comptant de zéro depuis la gauche\n" +" \tde la liste fournie par « dirs ». Par exemple : « popd +0 »\n" +" \n" +"enlève le premier répertoire, « popd +1 » le deuxième. \n" +" -N\tEnlève le Nième répertoire, en comptant de zéro depuis la droite\n" +" \tde la liste fournie par « dirs ». Par exemple : « popd -0 »\n" +" \n" +"enlève le dernier répertoire, « popd -1 » l'avant-dernier. \n" +" -n\tne change pas de répertoire de travail lorsque des répertoires\n" +" \tsont enlevés de la pile, de façon que seule la pile soit manipulée\n" +" \n" +" Vous pouvez voir la pile des répertoires avec la commande « dirs »." + +#: builtins.c:1797 +#, fuzzy +msgid "" +"Display directory stack.\n" +" \n" +" Display the list of currently remembered directories. Directories\n" +" find their way onto the list with the `pushd' command; you can get\n" +" back up through the list with the `popd' command.\n" +" \n" +" Options:\n" +" -c\tclear the directory stack by deleting all of the elements\n" +" -l\tdo not print tilde-prefixed versions of directories relative\n" +" \tto your home directory\n" +" -p\tprint the directory stack with one entry per line\n" +" -v\tprint the directory stack with one entry per line prefixed\n" +" \twith its position in the stack\n" +" \n" +" Arguments:\n" +" +N\tDisplays the Nth entry counting from the left of the list shown " +"by\n" +" \tdirs when invoked without options, starting with zero.\n" +" \n" +" -N\tDisplays the Nth entry counting from the right of the list shown " +"by\n" +" \tdirs when invoked without options, starting with zero.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" +"Affiche la liste des répertoires actuellement mémorisés. Les répertoires\n" +" sont insérés dans la liste avec la commande « pushd ». Vous pouvez " +"remonter\n" +" dans la liste en enlevant des éléments avec la commande « popd ».\n" +" \n" +" L'option « -l » spécifie que « dirs » ne doit pas afficher des versions\n" +" raccourcies des répertoires relativement à votre répertoire personnel.\n" +" Cela signifie que « ~/bin » devrait être affiché comme « /homes/bfox/bin " +"».\n" +" L'option « -v » permet à « dirs » d'afficher la pile des répertoires avec\n" +" un élément par ligne, en commençant la ligne par la position dans la " +"pile.\n" +" L'option « -p » fait la même chose mais le numéro de position n'est pas\n" +" affiché. L'option « -c » efface la pile des répertoires en enlevant tous\n" +" les éléments.\n" +" \n" +" +N\t affiche le Nième élément en comptant de zéro depuis la gauche de " +"la\n" +" liste affichée par « dirs » lorsque celle-ci est appelée sans option.\n" +" \n" +" -N\t affiche le Nième élément en comptant de zéro depuis la droite de " +"la\n" +" liste affichée par « dirs » lorsque celle-ci est appelée sans option." + +#: builtins.c:1826 +msgid "" +"Set and unset shell options.\n" +" \n" +" Change the setting of each shell option OPTNAME. Without any option\n" +" arguments, list all shell options with an indication of whether or not " +"each\n" +" is set.\n" +" \n" +" Options:\n" +" -o\trestrict OPTNAMEs to those defined for use with `set -o'\n" +" -p\tprint each shell option with an indication of its status\n" +" -q\tsuppress output\n" +" -s\tenable (set) each OPTNAME\n" +" -u\tdisable (unset) each OPTNAME\n" +" \n" +" Exit Status:\n" +" Returns success if OPTNAME is enabled; fails if an invalid option is\n" +" given or OPTNAME is disabled." +msgstr "" + +#: builtins.c:1847 +#, fuzzy +msgid "" +"Formats and prints ARGUMENTS under control of the FORMAT.\n" +" \n" +" Options:\n" +" -v var\tassign the output to shell variable VAR rather than\n" +" \t\tdisplay it on the standard output\n" +" \n" +" FORMAT is a character string which contains three types of objects: " +"plain\n" +" characters, which are simply copied to standard output; character " +"escape\n" +" sequences, which are converted and copied to the standard output; and\n" +" format specifications, each of which causes printing of the next " +"successive\n" +" argument.\n" +" \n" +" In addition to the standard format specifications described in printf" +"(1)\n" +" and printf(3), printf interprets:\n" +" \n" +" %b\texpand backslash escape sequences in the corresponding argument\n" +" %q\tquote the argument in a way that can be reused as shell input\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or a write or " +"assignment\n" +" error occurs." +msgstr "" +"« printf » formate et affiche les ARGUMENTS en contrôlant le FORMAT. Le " +"FORMAT\n" +" est une chaîne de caractères qui contient trois types d'objets : des " +"caractères\n" +" normaux qui sont simplement copiés vers la sortie standard, des " +"séquences d'échappement\n" +" qui sont converties et copiées vers la sortie standard et des " +"spécifications de\n" +" format, chacun entraînant l'affichage de l'argument suivant. En plus des " +"formats\n" +" standards de « printf(1) » , « %b » permet d'effectuer l'expansion des " +"séquences\n" +" d'échappement à contre-oblique dans l'argument correspondant et « %q » " +"permet de\n" +" protéger les arguments par guillemets de façon qu'ils puissent être " +"réutilisés\n" +" comme entrée du shell. Si l'option « -v » est fournie, la sortie est " +"placée dans\n" +" la variable VAR plutôt que d'être envoyée vers la sortie standard." + +#: builtins.c:1874 +msgid "" +"Specify how arguments are to be completed by Readline.\n" +" \n" +" For each NAME, specify how arguments are to be completed. If no " +"options\n" +" are supplied, existing completion specifications are printed in a way " +"that\n" +" allows them to be reused as input.\n" +" \n" +" Options:\n" +" -p\tprint existing completion specifications in a reusable format\n" +" -r\tremove a completion specification for each NAME, or, if no\n" +" \tNAMEs are supplied, all completion specifications\n" +" \n" +" When completion is attempted, the actions are applied in the order the\n" +" uppercase-letter options are listed above.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" + +#: builtins.c:1897 +#, fuzzy +msgid "" +"Display possible completions depending on the options.\n" +" \n" +" Intended to be used from within a shell function generating possible\n" +" completions. If the optional WORD argument is supplied, matches " +"against\n" +" WORD are generated.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" +"Affiche les possibilités de complètement dépendant des options. Ceci est " +"destiné\n" +" à être utilisé depuis une fonction de shell générant des complètements " +"possibles.\n" +" Si le mot « WORD » optionnel est fourni, des correspondances avec « WORD " +"»\n" +" sont générées." + +#: builtins.c:1912 +msgid "" +"Modify or display completion options.\n" +" \n" +" Modify the completion options for each NAME, or, if no NAMEs are " +"supplied,\n" +" the completion currently begin executed. If no OPTIONs are givenm, " +"print\n" +" the completion options for each NAME or the current completion " +"specification.\n" +" \n" +" Options:\n" +" \t-o option\tSet completion option OPTION for each NAME\n" +" \n" +" Using `+o' instead of `-o' turns off the specified option.\n" +" \n" +" Arguments:\n" +" \n" +" Each NAME refers to a command for which a completion specification must\n" +" have previously been defined using the `complete' builtin. If no NAMEs\n" +" are supplied, compopt must be called by a function currently generating\n" +" completions, and the options for that currently-executing completion\n" +" generator are modified.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or NAME does not\n" +" have a completion specification defined." +msgstr "" + +#: builtins.c:1940 +msgid "" +"Read lines from a file into an array variable.\n" +" \n" +" Read lines from the standard input into the array variable ARRAY, or " +"from\n" +" file descriptor FD if the -u option is supplied. The variable MAPFILE " +"is\n" +" the default ARRAY.\n" +" \n" +" Options:\n" +" -n count\tCopy at most COUNT lines. If COUNT is 0, all lines are " +"copied.\n" +" -O origin\tBegin assigning to ARRAY at index ORIGIN. The default " +"index is 0.\n" +" -s count \tDiscard the first COUNT lines read.\n" +" -t\t\tRemove a trailing newline from each line read.\n" +" -u fd\t\tRead lines from file descriptor FD instead of the standard " +"input.\n" +" -C callback\tEvaluate CALLBACK each time QUANTUM lines are read.\n" +" -c quantum\tSpecify the number of lines read between each call to " +"CALLBACK.\n" +" \n" +" Arguments:\n" +" ARRAY\t\tArray variable name to use for file data.\n" +" \n" +" If -C is supplied without -c, the default quantum is 5000.\n" +" \n" +" If not supplied with an explicit origin, mapfile will clear ARRAY " +"before\n" +" assigning to it.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or ARRAY is readonly." +msgstr "" + +#~ msgid " " +#~ msgstr " " + +#~ msgid "Without EXPR, returns returns \"$line $filename\". With EXPR," +#~ msgstr "Sans « EXPR », renvoie « $ligne $nomfichier ». Avec « EXPR »," + +#~ msgid "returns \"$line $subroutine $filename\"; this extra information" +#~ msgstr "" +#~ "renvoie « $ligne $sousroutine $nomfichier » ; cette information " +#~ "supplémentaire" + +#~ msgid "can be used used to provide a stack trace." +#~ msgstr "peut être utilisée pour fournir une trace de la pile" + +#~ msgid "" +#~ "The value of EXPR indicates how many call frames to go back before the" +#~ msgstr "" +#~ "La valeur de « EXPR » indique le nombre de cadres d'appel dont il faut " +#~ "reculer" + +#~ msgid "current one; the top frame is frame 0." +#~ msgstr "par rapport à l'actuel ; le cadre supérieur est le cadre 0." + +#~ msgid "%s: invalid number" +#~ msgstr "%s : nombre non valable" + +#~ msgid "Shell commands matching keywords `" +#~ msgstr "Commandes du shell correspondant aux mots-clés « " + +#~ msgid "Display the list of currently remembered directories. Directories" +#~ msgstr "" +#~ "Affiche la liste des répertoires actuellement mémorisés. Les répertoires" + +#~ msgid "find their way onto the list with the `pushd' command; you can get" +#~ msgstr "sont insérés dans la pile avec la commande « pushd » ; vous pouvez" + +#~ msgid "back up through the list with the `popd' command." +#~ msgstr "" +#~ "remonter dans la pile en enlevant des éléments avec la commande « popd »." + +#~ msgid "" +#~ "The -l flag specifies that `dirs' should not print shorthand versions" +#~ msgstr "" +#~ "L'option « -l » demande à « dirs » de ne pas afficher sous forme abrégée" + +#~ msgid "" +#~ "of directories which are relative to your home directory. This means" +#~ msgstr "" +#~ "les répertoires relatifs à votre répertoire personnel. Cela signifie que" + +#~ msgid "that `~/bin' might be displayed as `/homes/bfox/bin'. The -v flag" +#~ msgstr "" +#~ "le répertoire « ~/bin » pourra être affiché « /homes/bfox/bin ». L'option « -" +#~ "v »" + +#~ msgid "causes `dirs' to print the directory stack with one entry per line," +#~ msgstr "demande à « dirs » d'afficher un répertoire de la pile par ligne," + +#~ msgid "" +#~ "prepending the directory name with its position in the stack. The -p" +#~ msgstr "" +#~ "en le précédant de sa position dans la pile. L'option « -p » fait la même " +#~ "chose" + +#~ msgid "flag does the same thing, but the stack position is not prepended." +#~ msgstr "sans afficher le numéro d'emplacement dans la pile." + +#~ msgid "" +#~ "The -c flag clears the directory stack by deleting all of the elements." +#~ msgstr "" +#~ "L'option « -c » vide la pile des répertoires en retirant tous ses éléments." + +#~ msgid "" +#~ "+N displays the Nth entry counting from the left of the list shown by" +#~ msgstr "" +#~ "+N affiche la Nième entrée à partir de la gauche de la liste fournie par" + +#~ msgid " dirs when invoked without options, starting with zero." +#~ msgstr "" +#~ " « dirs » lorsqu'elle est appelée sans option, la première entrée " +#~ "étant zéro." + +#~ msgid "" +#~ "-N displays the Nth entry counting from the right of the list shown by" +#~ msgstr "" +#~ "+N affiche la Nième entrée à partir de la droite de la liste fournie par" + +#~ msgid "Adds a directory to the top of the directory stack, or rotates" +#~ msgstr "" +#~ "Ajoute un répertoire au dessus de la pile des répertoires ou effectue une" + +#~ msgid "the stack, making the new top of the stack the current working" +#~ msgstr "" +#~ "rotation de la pile en plaçant le répertoire supérieur comme répertoire " +#~ "courant." + +#~ msgid "directory. With no arguments, exchanges the top two directories." +#~ msgstr "" +#~ "Sans paramètre, les deux répertoires supérieurs de la pile sont échangés." + +#~ msgid "+N Rotates the stack so that the Nth directory (counting" +#~ msgstr "" +#~ "+N effectue une rotation de la pile de façon que le Nième répertoire " +#~ "soit" + +#~ msgid " from the left of the list shown by `dirs', starting with" +#~ msgstr "" +#~ "placé au dessus (N commençant à zéro et en partant à gauche de la liste" + +#~ msgid " zero) is at the top." +#~ msgstr " fournie par « dirs »)." + +#~ msgid "-N Rotates the stack so that the Nth directory (counting" +#~ msgstr "" +#~ "+N effectue une rotation de la pile de façon que le Nième répertoire " +#~ "soit" + +#~ msgid " from the right of the list shown by `dirs', starting with" +#~ msgstr "" +#~ "placé au dessus (N commençant à zéro et en partant à gauche de la liste" + +#~ msgid "-n suppress the normal change of directory when adding directories" +#~ msgstr "" +#~ "-n inhibe le changement de répertoire lors d'un ajout de répertoire " + +#~ msgid " to the stack, so only the stack is manipulated." +#~ msgstr " à la liste. Seule la pile est manipulée." + +#~ msgid "dir adds DIR to the directory stack at the top, making it the" +#~ msgstr "" +#~ "dir ajoute « DIR » au dessus de la pile des répertoires, en faisant de lui" + +#~ msgid " new current working directory." +#~ msgstr " le nouveau répertoire courant." + +#~ msgid "You can see the directory stack with the `dirs' command." +#~ msgstr "" +#~ "Vous pouvez voir le contenu de la pile des répertoires avec la commande « " +#~ "dirs »." + +#~ msgid "Removes entries from the directory stack. With no arguments," +#~ msgstr "Enlève des éléments de la pile des répertoires. Sans paramètre," + +#~ msgid "removes the top directory from the stack, and cd's to the new" +#~ msgstr "le répertoire supérieur de la pile est enlevé et un changement de" + +#~ msgid "top directory." +#~ msgstr "de répertoire se fait vers le nouveau répertoire supérieur." + +#~ msgid "+N removes the Nth entry counting from the left of the list" +#~ msgstr "+N enlève le Nième élément en commençant à zéro à gauche" + +#~ msgid " shown by `dirs', starting with zero. For example: `popd +0'" +#~ msgstr "de la liste affichée par « dirs ». Par exemple, « popd +0 »" + +#~ msgid " removes the first directory, `popd +1' the second." +#~ msgstr " enlève le premier répertoire, « popd +1 » le second." + +#~ msgid "-N removes the Nth entry counting from the right of the list" +#~ msgstr "+N enlève la Nième entrée en commençant à zéro à droite" + +#~ msgid " shown by `dirs', starting with zero. For example: `popd -0'" +#~ msgstr "de la liste affichée par « dirs ». Par exemple, « popd -0 »" + +#~ msgid " removes the last directory, `popd -1' the next to last." +#~ msgstr " enlève le dernier répertoire, « popd -1 » l'avant-dernier." + +#~ msgid "" +#~ "-n suppress the normal change of directory when removing directories" +#~ msgstr "" +#~ "-n inhibe le changement de répertoire lors de l'enlèvement d'un " +#~ "répertoire" + +#~ msgid " from the stack, so only the stack is manipulated." +#~ msgstr " de la liste. Seule la pile est manipulée." + +#~ msgid "allocated" +#~ msgstr "alloué" + +#~ msgid "freed" +#~ msgstr "libéré" + +#~ msgid "requesting resize" +#~ msgstr "demande de redimensionnement" + +#~ msgid "just resized" +#~ msgstr "redimensionné à l'instant" + +#~ msgid "bug: unknown operation" +#~ msgstr "bogue : opération inconnue" + +#~ msgid "malloc: watch alert: %p %s " +#~ msgstr "malloc : alerte de « watch » : %p %s " + +#~ msgid "" +#~ "Exit from within a FOR, WHILE or UNTIL loop. If N is specified,\n" +#~ " break N levels." +#~ msgstr "" +#~ "Permet de sortir d'une boucle FOR, WHILE ou UNTIL. Si N est précisé,\n" +#~ " la sortie de boucle se fait sur N niveaux." + +#~ msgid "" +#~ "Run a shell builtin. This is useful when you wish to rename a\n" +#~ " shell builtin to be a function, but need the functionality of the\n" +#~ " builtin within the function itself." +#~ msgstr "" +#~ "Lance une primitive du shell. Ceci est utile lorsque vous souhaitez " +#~ "nommer une fonction comme\n" +#~ " une primitive, mais que vous avez besoin d'utiliser la primitive dans " +#~ "la fonction elle-même." + +#~ msgid "" +#~ "Print the current working directory. With the -P option, pwd prints\n" +#~ " the physical directory, without any symbolic links; the -L option\n" +#~ " makes pwd follow symbolic links." +#~ msgstr "" +#~ "Affiche le répertoire de travail actuel. Avec l'option « -P », « pwd » " +#~ "affiche\n" +#~ " le répertoire physique, sans lien symbolique ; l'option « -L »\n" +#~ " demande à « pwd » de suivre les liens symboliques." + +#~ msgid "Return a successful result." +#~ msgstr "Renvoie un résultat de succès" + +#~ msgid "" +#~ "Runs COMMAND with ARGS ignoring shell functions. If you have a shell\n" +#~ " function called `ls', and you wish to call the command `ls', you can\n" +#~ " say \"command ls\". If the -p option is given, a default value is " +#~ "used\n" +#~ " for PATH that is guaranteed to find all of the standard utilities. " +#~ "If\n" +#~ " the -V or -v option is given, a string is printed describing " +#~ "COMMAND.\n" +#~ " The -V option produces a more verbose description." +#~ msgstr "" +#~ "Lance la commande COMMAND avec les ARGS en ignorant les fonctions du " +#~ "shell. Si vous\n" +#~ " avez défini une fonction de shell appelée « ls » et que vous voulez " +#~ "appeler\n" +#~ " la commande « ls », vous pouvez faire « command ls ». Si l'option « -p " +#~ "» est\n" +#~ " donnée, une valeur par défaut est utilisée pour le PATH garantissant " +#~ "que tous\n" +#~ " les utilitaires standards seront trouvés. Si l'option « -V » ou « -v » " +#~ "est\n" +#~ " donnée, une description de la commande s'affiche. L'option « -V » " +#~ "fournit plus\n" +#~ " d'informations." + +#~ msgid "Obsolete. See `declare'." +#~ msgstr "Obsolète. Consulter « declare »." + +#~ msgid "" +#~ "Create a local variable called NAME, and give it VALUE. LOCAL\n" +#~ " can only be used within a function; it makes the variable NAME\n" +#~ " have a visible scope restricted to that function and its children." +#~ msgstr "" +#~ "Permet de créer une variable locale appelée NAME, et de lui affecter une " +#~ "VALUE.\n" +#~ " LOCAL peut seulement être utilisé à l'intérieur d'une fonction ; il " +#~ "rend le nom de\n" +#~ " variable NAME visible uniquement à l'intérieur de la fonction et de " +#~ "ses filles." + +#~ msgid "" +#~ "Output the ARGs. If -n is specified, the trailing newline is suppressed." +#~ msgstr "Affiche les ARGs. L'option « -n » supprime le saut de ligne final." + +#~ msgid "" +#~ "Enable and disable builtin shell commands. This allows\n" +#~ " you to use a disk command which has the same name as a shell\n" +#~ " builtin without specifying a full pathname. If -n is used, the\n" +#~ " NAMEs become disabled; otherwise NAMEs are enabled. For example,\n" +#~ " to use the `test' found in $PATH instead of the shell builtin\n" +#~ " version, type `enable -n test'. On systems supporting dynamic\n" +#~ " loading, the -f option may be used to load new builtins from the\n" +#~ " shared object FILENAME. The -d option will delete a builtin\n" +#~ " previously loaded with -f. If no non-option names are given, or\n" +#~ " the -p option is supplied, a list of builtins is printed. The\n" +#~ " -a option means to print every builtin with an indication of whether\n" +#~ " or not it is enabled. The -s option restricts the output to the " +#~ "POSIX.2\n" +#~ " `special' builtins. The -n option displays a list of all disabled " +#~ "builtins." +#~ msgstr "" +#~ "Active et désactive les primitives du shell. Ceci permet\n" +#~ " d'utiliser une commande du disque qui a le même nom qu'une commande " +#~ "intégrée\n" +#~ " sans devoir spécifier un chemin complet. Si « -n » est utilisé, les\n" +#~ " noms NAME sont désactivés ; sinon, les noms NAME sont activés. Par " +#~ "exemple,\n" +#~ " pour utiliser « test » trouvé dans $PATH au lieu de la primitive du\n" +#~ " même nom, tapez « enable -n test ». Sur les systèmes permettant le " +#~ "chargement\n" +#~ " dynamique, l'option « -f » peut être utilisée pour charger de " +#~ "nouvelles primitives\n" +#~ " depuis l'objet partagé FILENAME. L'option « -d » efface une primitive " +#~ "précédemment\n" +#~ " chargée avec « -f ». Si aucun nom (n'étant pas une option) n'est " +#~ "donné, ou si l'option\n" +#~ " « -p » est spécifiée, une liste de primitive est affichée. L'option « -" +#~ "a » permet d'afficher\n" +#~ " toutes les primitives en précisant si elles sont activées ou non. " +#~ "L'option « -s » restreint\n" +#~ " la sortie aux primitives « special » POSIX.2. L'option « -n » affiche " +#~ "une liste de toutes les\n" +#~ " primitives désactivées." + +#~ msgid "" +#~ "Read ARGs as input to the shell and execute the resulting command(s)." +#~ msgstr "" +#~ "Lit les ARGs comme une entrée du shell et exécute les commandes " +#~ "résultantes." + +#~ msgid "" +#~ "Exec FILE, replacing this shell with the specified program.\n" +#~ " If FILE is not specified, the redirections take effect in this\n" +#~ " shell. If the first argument is `-l', then place a dash in the\n" +#~ " zeroth arg passed to FILE, as login does. If the `-c' option\n" +#~ " is supplied, FILE is executed with a null environment. The `-a'\n" +#~ " option means to make set argv[0] of the executed process to NAME.\n" +#~ " If the file cannot be executed and the shell is not interactive,\n" +#~ " then the shell exits, unless the shell option `execfail' is set." +#~ msgstr "" +#~ "Exécute le fichier FILE en remplaçant ce shell par le programme " +#~ "spécifié.\n" +#~ " Si FILE n'est pas spécifié, les redirections prennent effet dans\n" +#~ " ce shell. Si le premier argument est « -l », un tiret est placé dans\n" +#~ " l'argument n°0 transmis à FILE, comme le fait « login ». Si l'option\n" +#~ " « -c » est fournie, FILE est exécuté avec un environnement vide.\n" +#~ " L'option « -a » indique de définir « argv[0] » du processus exécuté\n" +#~ " à NAME. Si le fichier ne peut pas être exécuté et que le shell n'est\n" +#~ " pas interactif, alors le shell se termine, à moins que l'option « " +#~ "execfail »\n" +#~ " ne soit définie." + +#~ msgid "Logout of a login shell." +#~ msgstr "Fermer un shell de connexion" + +#~ msgid "" +#~ "For each NAME, the full pathname of the command is determined and\n" +#~ " remembered. If the -p option is supplied, PATHNAME is used as the\n" +#~ " full pathname of NAME, and no path search is performed. The -r\n" +#~ " option causes the shell to forget all remembered locations. The -d\n" +#~ " option causes the shell to forget the remembered location of each " +#~ "NAME.\n" +#~ " If the -t option is supplied the full pathname to which each NAME\n" +#~ " corresponds is printed. If multiple NAME arguments are supplied " +#~ "with\n" +#~ " -t, the NAME is printed before the hashed full pathname. The -l " +#~ "option\n" +#~ " causes output to be displayed in a format that may be reused as " +#~ "input.\n" +#~ " If no arguments are given, information about remembered commands is " +#~ "displayed." +#~ msgstr "" +#~ "Pour chaque NAME, le chemin complet de la commande est déterminé puis " +#~ "mémorisé.\n" +#~ " Si l'option « -p » est fournie, le CHEMIN est utilisé comme chemin " +#~ "complet\n" +#~ " pour NAME, et aucune recherche n'est effectuée. L'option « -r » " +#~ "demande au shell\n" +#~ " d'oublier tous les chemins mémorisés. L'option « -d » demande au shell " +#~ "d'oublier\n" +#~ " les chemins mémorisés pour le NAME. Si l'option « -t » est fournie, le " +#~ "chemin\n" +#~ " complet auquel correspond chaque NAME est affiché. Si plusieurs NAME " +#~ "sont fournis\n" +#~ " à l'option « -t », le NAME est affiché avant chemin complet haché. " +#~ "L'option\n" +#~ " « -l » permet d'utiliser un format de sortie qui peut être réutilisé " +#~ "comme entrée.\n" +#~ " Si aucun argument n'est donné, des informations sur les commandes " +#~ "mémorisées sont\n" +#~ " affichées." + +#~ msgid "" +#~ "Display helpful information about builtin commands. If PATTERN is\n" +#~ " specified, gives detailed help on all commands matching PATTERN,\n" +#~ " otherwise a list of the builtins is printed. The -s option\n" +#~ " restricts the output for each builtin command matching PATTERN to\n" +#~ " a short usage synopsis." +#~ msgstr "" +#~ "Affiche des informations utiles sur les commandes intégrées. Si MOTIF\n" +#~ " est précisé, une aide détaillée sur toutes les commandes " +#~ "correspondant\n" +#~ " au MOTIF sont affichées, sinon une liste des commandes intégrées est\n" +#~ " fournie. L'option « -s » restreint l'affichage de chaque commande\n" +#~ " correspondant au MOTIF à une courte description sur l'utilisation." + +#~ msgid "" +#~ "By default, removes each JOBSPEC argument from the table of active jobs.\n" +#~ " If the -h option is given, the job is not removed from the table, but " +#~ "is\n" +#~ " marked so that SIGHUP is not sent to the job if the shell receives a\n" +#~ " SIGHUP. The -a option, when JOBSPEC is not supplied, means to remove " +#~ "all\n" +#~ " jobs from the job table; the -r option means to remove only running " +#~ "jobs." +#~ msgstr "" +#~ "Par défaut, enlève tous les arguments JOBSPEC de la table des tâches " +#~ "actives.\n" +#~ " Si l'option « -h » est fournie, la tâche n'est pas retirée de la table " +#~ "mais\n" +#~ " est marquée de telle sorte que le signal SIGHUP ne lui soit pas " +#~ "envoyé quand\n" +#~ " le shell reçoit un SIGHUP. Lorsque JOBSPEC n'est pas fournie, " +#~ "l'option « -a »,\n" +#~ " permet d'enlever toutes les tâches de la table des tâches. L'option « -" +#~ "r »\n" +#~ " indique de ne retirer que les tâches en cours de fonctionnement." + +#~ msgid "" +#~ "Causes a function to exit with the return value specified by N. If N\n" +#~ " is omitted, the return status is that of the last command." +#~ msgstr "" +#~ "Permet à une fonction de se terminer avec le code de retour spécifié par " +#~ "N.\n" +#~ " Si N est omis, le code de retour est celui de la dernière commande." + +#~ msgid "" +#~ "For each NAME, remove the corresponding variable or function. Given\n" +#~ " the `-v', unset will only act on variables. Given the `-f' flag,\n" +#~ " unset will only act on functions. With neither flag, unset first\n" +#~ " tries to unset a variable, and if that fails, then tries to unset a\n" +#~ " function. Some variables cannot be unset; also see readonly." +#~ msgstr "" +#~ "Pour chaque NAME, supprime la variable ou la fonction correspondante.\n" +#~ " En spécifiant « -v », « unset » agira seulement sur les variables.\n" +#~ " Avec l'option « -f », « unset » n'agit que sur les fonctions. Sans " +#~ "option,\n" +#~ " « unset » essaye d'abord de supprimer une variable et, s'il échoue, " +#~ "essaye\n" +#~ " de supprimer une fonction. Certaines variables ne peuvent pas être " +#~ "supprimées.\n" +#~ " Consultez aussi « readonly ». " + +#~ msgid "" +#~ "NAMEs are marked for automatic export to the environment of\n" +#~ " subsequently executed commands. If the -f option is given,\n" +#~ " the NAMEs refer to functions. If no NAMEs are given, or if `-p'\n" +#~ " is given, a list of all names that are exported in this shell is\n" +#~ " printed. An argument of `-n' says to remove the export property\n" +#~ " from subsequent NAMEs. An argument of `--' disables further option\n" +#~ " processing." +#~ msgstr "" +#~ "Les NAME sont marqués pour export automatique vers l'environnement des\n" +#~ " prochaines commandes exécutées. si l'option « -f » est donnée, les " +#~ "NAME\n" +#~ " se rapportent à des fonctions. Si aucun NAME n'est donné ou si « -p »\n" +#~ " est fourni, la liste de tous les NAME exportés dans ce shell " +#~ "s'affiche.\n" +#~ " L'argument « -n » permet de supprimer la propriété d'export des NAME " +#~ "qui\n" +#~ " suivent. L'argument « -- » désactive le traitement des options " +#~ "suivantes." + +#~ msgid "" +#~ "The given NAMEs are marked readonly and the values of these NAMEs may\n" +#~ " not be changed by subsequent assignment. If the -f option is given,\n" +#~ " then functions corresponding to the NAMEs are so marked. If no\n" +#~ " arguments are given, or if `-p' is given, a list of all readonly " +#~ "names\n" +#~ " is printed. The `-a' option means to treat each NAME as\n" +#~ " an array variable. An argument of `--' disables further option\n" +#~ " processing." +#~ msgstr "" +#~ "Les NAME donnés sont marqués pour lecture seule et les valeurs de ces " +#~ "NAME\n" +#~ " ne peuvent plus être changés par affection. Si l'option « -f » est " +#~ "donnée,\n" +#~ " les fonctions correspondant aux NAME sont marquées de la sorte. Si " +#~ "aucun\n" +#~ " argument n'est donné ou si « -p » est fourni, la liste de tous les " +#~ "noms\n" +#~ " en lecture seule est affichée. L'option « -a » indique de traiter tous " +#~ "les\n" +#~ " NAME comme des variables tableaux. L'argument « -- » désactive le " +#~ "traitement\n" +#~ " des option suivantes." + +#~ msgid "" +#~ "The positional parameters from $N+1 ... are renamed to $1 ... If N is\n" +#~ " not given, it is assumed to be 1." +#~ msgstr "" +#~ "Les paramètres de position depuis $N+1 ... sont renommés en $1 ...\n" +#~ " Si N n'est pas fourni, il est supposé égal à 1." + +#~ msgid "" +#~ "Suspend the execution of this shell until it receives a SIGCONT\n" +#~ " signal. The `-f' if specified says not to complain about this\n" +#~ " being a login shell if it is; just suspend anyway." +#~ msgstr "" +#~ "Suspend l'exécution de ce shell jusqu'à ce qu'il reçoive le signal " +#~ "SIGCONT.\n" +#~ " Si « -f » est spécifié, il indique de ne pas se plaindre s'il s'agit " +#~ "d'un \n" +#~ " shell de connexion, mais de suspendre quand-même." + +#~ msgid "" +#~ "Print the accumulated user and system times for processes run from\n" +#~ " the shell." +#~ msgstr "" +#~ "Affiche les temps utilisateur et système accumulés pour les processus\n" +#~ " lancés depuis le shell." + +#~ msgid "" +#~ "For each NAME, indicate how it would be interpreted if used as a\n" +#~ " command name.\n" +#~ " \n" +#~ " If the -t option is used, `type' outputs a single word which is one " +#~ "of\n" +#~ " `alias', `keyword', `function', `builtin', `file' or `', if NAME is " +#~ "an\n" +#~ " alias, shell reserved word, shell function, shell builtin, disk " +#~ "file,\n" +#~ " or unfound, respectively.\n" +#~ " \n" +#~ " If the -p flag is used, `type' either returns the name of the disk\n" +#~ " file that would be executed, or nothing if `type -t NAME' would not\n" +#~ " return `file'.\n" +#~ " \n" +#~ " If the -a flag is used, `type' displays all of the places that " +#~ "contain\n" +#~ " an executable named `file'. This includes aliases, builtins, and\n" +#~ " functions, if and only if the -p flag is not also used.\n" +#~ " \n" +#~ " The -f flag suppresses shell function lookup.\n" +#~ " \n" +#~ " The -P flag forces a PATH search for each NAME, even if it is an " +#~ "alias,\n" +#~ " builtin, or function, and returns the name of the disk file that " +#~ "would\n" +#~ " be executed." +#~ msgstr "" +#~ "Indique comment chaque NAME serait interprété s'il était utilisé comme " +#~ "un\n" +#~ " nom de commande.\n" +#~ " \n" +#~ " Si l'option « -t » est utilisée, « type » affiche un simple mot parmi\n" +#~ " « alias », « keyword », « function », « builtin », « file » ou « », si\n" +#~ " NAME est respectivement un alias, un mot réservé du shell, une " +#~ "fonction\n" +#~ " du shell, une primitive, un fichier du disque, ou s'il est inconnu.\n" +#~ " \n" +#~ " Si l'indicateur « -p » est utilisé, « type » renvoie soit le nom du " +#~ "fichier\n" +#~ " du disque qui serait exécuté, soit rien si « type -t NAME » ne " +#~ "retourne pas\n" +#~ " « file ».\n" +#~ " \n" +#~ " Si « -a » est utilisé, « type » affiche tous les emplacements qui " +#~ "contiennent\n" +#~ " un exécutable nommé « file ». Ceci inclut les alias, les primitives et " +#~ "les\n" +#~ " fonctions si, et seulement si « -p » n'est pas également utilisé.\n" +#~ " \n" +#~ " L'indicateur « -P » force une recherche dans PATH pour chaque NAME " +#~ "même\n" +#~ " si c'est un alias, une primitive ou une fonction et renvoie le nom " +#~ "du\n" +#~ " fichier du disque qui serait exécuté." + +#~ msgid "" +#~ "The user file-creation mask is set to MODE. If MODE is omitted, or if\n" +#~ " `-S' is supplied, the current value of the mask is printed. The `-" +#~ "S'\n" +#~ " option makes the output symbolic; otherwise an octal number is " +#~ "output.\n" +#~ " If `-p' is supplied, and MODE is omitted, the output is in a form\n" +#~ " that may be used as input. If MODE begins with a digit, it is\n" +#~ " interpreted as an octal number, otherwise it is a symbolic mode " +#~ "string\n" +#~ " like that accepted by chmod(1)." +#~ msgstr "" +#~ "Le masque de création des fichiers utilisateurs est réglé à MODE. Si " +#~ "MODE\n" +#~ " est omis ou si « -S » est fourni, la valeur actuelle du masque est " +#~ "affichée\n" +#~ " L'option « -S » rend la sortie symbolique, sinon une valeur octale " +#~ "est\n" +#~ " est utilisée. Si « -p » est fourni et que MODE est omis, la sortie se " +#~ "fait\n" +#~ " dans un format qui peut être réutilisé comme entrée. Si MODE commence " +#~ "par\n" +#~ " un chiffre, il est interprété comme un nombre octal, sinon comme une " +#~ "chaîne\n" +#~ " symbolique de mode comme celle utilisée par « chmod(1) »." + +#~ msgid "" +#~ "Wait for the specified process and report its termination status. If\n" +#~ " N is not given, all currently active child processes are waited for,\n" +#~ " and the return code is zero. N is a process ID; if it is not given,\n" +#~ " all child processes of the shell are waited for." +#~ msgstr "" +#~ "Attend le processus spécifié et donne son code de retour. Si N n'est\n" +#~ " pas donné, tous les processus fils actuellement actifs sont attendus\n" +#~ " et le code de retour est zéro. N est un n° de processus. S'il n'est\n" +#~ " pas fourni, tous les processus du shell sont attendus." + +#~ msgid "" +#~ "Create a simple command invoked by NAME which runs COMMANDS.\n" +#~ " Arguments on the command line along with NAME are passed to the\n" +#~ " function as $0 .. $n." +#~ msgstr "" +#~ "Crée une simple commande invoquée avec NAME, et qui lance les\n" +#~ " commandes COMMANDS. Les arguments fournis avec NAME sur la\n" +#~ " ligne de commande sont transmis à la fonction en tant que $0 .. $n." + +#~ msgid "" +#~ "Toggle the values of variables controlling optional behavior.\n" +#~ " The -s flag means to enable (set) each OPTNAME; the -u flag\n" +#~ " unsets each OPTNAME. The -q flag suppresses output; the exit\n" +#~ " status indicates whether each OPTNAME is set or unset. The -o\n" +#~ " option restricts the OPTNAMEs to those defined for use with\n" +#~ " `set -o'. With no options, or with the -p option, a list of all\n" +#~ " settable options is displayed, with an indication of whether or\n" +#~ " not each is set." +#~ msgstr "" +#~ "Commute la valeur des variables qui contrôlent les comportements " +#~ "optionnels.\n" +#~ " L'option « -s » indique d'activer chaque option nommée OPTNAME. " +#~ "L'option\n" +#~ " « -u » désactive l'option OPTNAME. L'option « -q » rend la sortie " +#~ "silencieuse.\n" +#~ " Le code de retour indique si chaque OPTNAME est activée ou " +#~ "désactivée.\n" +#~ " L'option « -o » restreint les options OPTNAME à celles qui peuvent " +#~ "être utilisées avec\n" +#~ " « set -o ». Sans option ou avec l'option « -p », une liste de toutes " +#~ "les\n" +#~ " options modifiables est affichée, avec une indication sur l'état de " +#~ "chacune." + +#~ msgid "" +#~ "For each NAME, specify how arguments are to be completed.\n" +#~ " If the -p option is supplied, or if no options are supplied, " +#~ "existing\n" +#~ " completion specifications are printed in a way that allows them to " +#~ "be\n" +#~ " reused as input. The -r option removes a completion specification " +#~ "for\n" +#~ " each NAME, or, if no NAMEs are supplied, all completion " +#~ "specifications." +#~ msgstr "" +#~ "Pour chaque NAME, spécifie comment les arguments doivent être complétés.\n" +#~ " Si l'option « -p » est fournie ou si aucune option n'est fournie, les " +#~ "spécifications\n" +#~ " de complètement actuelles sont affichées de manière à pouvoir être " +#~ "réutilisées\n" +#~ " comme entrée. L'option « -r » enlève la spécification de complètement " +#~ "pour chaque\n" +#~ " NAME ou, si aucun NAME n'est fourni, toutes les spécifications de " +#~ "complètement." diff --git a/po/hu.gmo b/po/hu.gmo new file mode 100644 index 0000000000000000000000000000000000000000..80de311b2b35c290d727e2113be0170f3e81f2f6 GIT binary patch literal 9591 zc-pmCdu&`+T0bn^g}SMeIB`jAw?6Tsw%d;5q)kbjwp%-KQj_{o+eshBBxh!hXRhbY zz0-Toop^?_R6JJfu2yJQLMxyvA+6XV5KzG%s9Leo!tQn#R9GHbK!RNjyAl{-_`@VZ zAs~L=`OdszH?)5+%J?_uobR0Ty}$G2J6-qulECM6eEaBoj}X62_`||}zSSW_7w|8D zoxtw{9|G1G_R0v`vyx{vSqbzm>>kM{BX-`U4}?Evoweh7blfX)LRB>sT=fkO_T0NzJ@-p~6M z-TYM`ju4?+e+_sq@E06@7I+Bw29Q+q77(fuZ@clA-8t_7e+c+DK&VK37kC8tFZZ*& zKiJ9gKG4bYDPRxq0#E`K@FT#V>E!c1(aHD!awp&a1vmZ!NB5OZ=HnZk%=f#UeE;8d z@_jXT&VRW1doVZv+_#_4dvHJN@x*@C{{`SQFbkXkzUk<<_w#xGv!C^L@Br_Zz?Vp` z2YCOd53n76%i-GxnEo9{|83xpkUkEuem-=N^?v_B)=Lj?g!nnge)IA{w&N!L3;{oR zkk9$ugRF-?1|B21fs??0KgfD~q>InJ)Wzq%)W!USUA+INy4b%y1AL6+>|#Fux{K}k zJxBMiz(ERxL%e_J5c}at;1%Ek@D%WihnUa52R;h?w?oW-&tbO98HY26dH)NCnXlk5 z^Z)aQdH}Mfe8ZX^AE6p96G{&FnWaJ_skLA|MC%*CpyA%|KbtW z=a=04KRfyl9~A=s#PCtJ|3{DVc`qJix;$`{^x)`z$Kf~d=Sko{9_6?{+QWFNhu2@| z;d2T-Y`@ofIQ~D?!}|EN!!PtOzi;=j9{;k3_5a--w)4#%_NR_sw!`6G9zX1G0yqqu zbmMEi9CsUT9QN|Lm0q^r#~psAm+yb0m+$$#Ube&6d)Yr~y&N~B1e$-SkK_7GAD{PZ zAN%86AKT$dAKSO!=&tv1Tz{;O_3-gN=Ie8P?5}V1v7UajkNNp(AM^3&eXNh~IlSG+ zdhG@?8x()QP1^q;-`o8V>+6w+*q^2xt^n77Ip75FYi|Cg!+ZM~`}+Bw16>qDH+e#Oy!*^R#iJV$k6h~+sw%y9%Zg)cbQ zT;wN#P=bAr&R-U67y6L?&b!}FQH%)oCHho}C&9i#pLxN0xGvZ(q@zpt{C_5!F(Gxi=^I=N!IcZtYdUxrgdF z#oC~or}{v#k)n5$;5Z1~nyDXrZ)!M}VI)(b3`@ofgAO4_Ghw7?f#j%$Qq!&n&_hNZnRRpc3RaVAHIyRn3=nS6p0u@zos*aSw4SKVrGe&2{?(=*v zHqwMrMUkq=qAsR&vP?+VjIQ&u?)jRR z!(vedSxGeOVG=N7USM=iTW%wbYr~+OaY(IX){8I`MlAhCn3j1JOQWMA?x<6iRHTX; zlQKwrpL9$&#oE|au$m16AN(XirlGUOY*|H~N;^)$h=IU3xFJ*wmb~?fymowqtkIAK zH?r{79FZ5~S|xc(PT0ldE|y7xG%2IWL7O*7F?yX;cAd05)&W1BnqF910S~w>VL_&R z6&2-ZDGEu~WA$;_i%g>Y`Z(i;hFI?N@pB;zX# zqOhO?S@KF+Ok-L{Q5cDHip& znYnhBXEr?}hqK}W7BNsaIMBC`3coDfXye>0&I1?=S za+t6?)r~TAwK*5)>#g&v$kI7nFW1Div5{u(XdOJp36&D@waMnRH9|u#V5FIvgz`Oj z!D^}mfytv+pDrsu(N;0I3U?;tm(BZ>L6#`dsazfGs;dx<+(m_niwfmKt3Q#3mlbfy zny8z6)v7Gj7~(Rzc5O{$6jc1;!qRyXesytbWo2e*Uar0--On|UjmdKhb8}Pk=a=Q# zvos-ftTLjWk|ENS@>(N9Hx35@rzXn^Dhf%T@k^jxeRLjwQu8!j_H5=(SCG1OCLdy+ ze4=qmeNNA`%~EQVUa=HLHiy-V46@_87kC`ppg@R>2n|iQ?xkEvJndBiTjo##lgR$^ zby@p1L+UJO)^lC|HR>?5QTo@Wo125 zl)~%SzK-BaD03C@yZ{fP1T~tgj(g?^`vdzVfl0F?pa{VY(dS&5M1@JBz}hv|K1k*K z)ZC0*#f9YG%Qnu=uE}iJqRcE6%{Ymvph2JO*jqtu*mP&M4v6!XaBf=)w2JVqXruvS z>$vs3R=UYn8oDuD=hs^OMG&bt-_(M^t4OZWoom8)^zJcXh)fk!WIbENA_-7CEbI7F zcDaR(n;`uBHev6S+-4w2r{?HoX(J|$j3BP(DF@$e>t+$pmoU?O!P1D_W7tm+%-~&) zHhH~f`2Fl%jKU3QFEyJ@UC}l)$vL32lj9Q|OPZ2FYA()s+0=BBi&HD% zr0iH+SV^5D=|G)2Z=cU6CnnCMCQhU#o|Gp}OrCl&HF0WU0)(k0&Dp3)cM?RY6HmyA zGm}r8xj47d@w|#nY6Z`n*r%uEq`X*5Lu<3KDcA7+M2Aq;&lYtx#0y^smGOM?4EEqf zgA$oq(W*EppG$%q6HWi$+u)8m0Q&veYq&doHXJ^_L0 z=?5Q3(OX~=kMm7)yyPn{I7?+Of?GU2yS$J(efrdy)X63>-MFr!)J%{G=@B<6Pp3W8 z@lxud4*0n|DKAZ{G!ov#_?huj9o#{cRj$H4RL0vWbcj(jF*^`K7QF4K7TYdLZi6O( zBl|iJr_6`dY7I)rYCrJs^p;T=$5lLp5c(C3>K1RCE&G^9=TeK16pH_aJd2%i^>!iN z%DI<*^F(DEsTvNJ^>d}FB17t;>pI@!b~_(eYenvux}P8uTRNlsnondTrOs_ZN_$zm92(jw+zcvZQ{(2Zm;?p29{Lr9=Nh`g zTwGNJl_lo5x!R)UD%MB{&H#A9X6Pwd^Zjj8Rz!F%MzIh5GQxoPL?JA|LVK)~YrYAq zJND*v9Uv`5IO0x0BFIuyRqT)>XuS$pEPxBkQ(V1S*13qpD|qXALsz$A*K#4Vy{83n zn-9s5#kWmpOoNeKE<~MIF^o;4^}1{ne54l3xtWX0uS{KfcjYU~Q(~s*ZxwXaXn0S( z3mdy**7jmGcuV_&ZO4L2SS&yijE`qxRmv){WIdC-C9diyzg@1y=tD^D8`>8uH=~>2 zI}_i)b!g7Us5`65yq8wCJA<-d(Tf$d#~K<>Z|H(aie%8d@(o)K0~ifm7t9Tx!ugk= zNBc)MI<~~gOHIsH335=!28VMuJg?I_cLV)eU_$sA9Ahh}*mf;X{NHlH>H4)af&!TX z5t60Uemj@Dk=B7-fB1NLI^wk7cApSg#xg@HbkeCv_Y~VHKyk zSf-8B;0m12d+bYPUF4pvKw^F~DuY!6*9e+I&auPS1-^kpoZRAq_RDa7Um}FbgT;je z!L?kqy<5zhUu3`Cia>{id!s4+oYl1rkmgT03RC(Tp3*u;O`B8H?uCNq7N)3)vyVWy zcCi*ARs(;Lf_ z(kdAL|F|lxw@TZH4AZcR+Uw%kxQJ?I$a;fvxr%0_=C@4_XZM)MBb7*l>Zy zcF&GSA&-7?*VIWdmG+TQ5y_mvkjuok@hUAi*Ra|ix++r?X1s7~qrSEkAqSD7l_iN( zYo9rS*0Px~+eVMU^-_i_j8R3~Zkk&@!o-k8DGyTsZp97VYR|Mcn_K18ry==Pq26n@ z)RxAjl>J>|rt(^fcG4K#QNs~;NXF)7F^#J&+Hy+re&D8a`IW!2J?Gr){K^z{oc0Iz zn~PIRQ}gGR7cSkc;cVFbgLRzrf0Z@zaeQ}V7*{F%y#L0NQV)cus>YR;JI-zT#qDU# zM-&y%J-k=jS*}I4AUA5LXjan})56beW+tbJbRmhV+hrJx{{Pn47Sui;uGZfVdp4q5 zE>~scC0kvaRJ+-WBuk8+pyxTb7ksMOUK%x@;zEs@(H}s zyn=Ek@0w}L6cny|Q9vHz+5V4Z8H5pKy~54tw!fQvQZ~tL-YswCME(6Fp|sonR#QXV z$u>D?^s~2o8Ha^NJDU{u=x5=>E$wWZCU)rs&4A5x6h|_E*SSvi?z, 2002. +# +msgid "" +msgstr "" +"Project-Id-Version: bash 2.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2009-01-06 11:56-0500\n" +"PO-Revision-Date: 2002-06-14 09:49GMT\n" +"Last-Translator: Gábor István \n" +"Language-Team: Hungarian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-2\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 0.9.5\n" + +#: arrayfunc.c:50 +msgid "bad array subscript" +msgstr "hibás tömb a tömbindexben" + +#: arrayfunc.c:313 builtins/declare.def:474 +#, c-format +msgid "%s: cannot convert indexed to associative array" +msgstr "" + +#: arrayfunc.c:479 +#, fuzzy, c-format +msgid "%s: invalid associative array key" +msgstr "%c%c: rossz opció" + +#: arrayfunc.c:481 +#, c-format +msgid "%s: cannot assign to non-numeric index" +msgstr "%s: nem lehet hozzárendelni nem szám indexet" + +#: arrayfunc.c:517 +#, c-format +msgid "%s: %s: must use subscript when assigning associative array" +msgstr "" + +#: bashhist.c:380 +#, c-format +msgid "%s: cannot create: %s" +msgstr "%s: nem lehet létrehozni: %s" + +#: bashline.c:3413 +msgid "bash_execute_unix_command: cannot find keymap for command" +msgstr "" + +#: bashline.c:3491 +#, c-format +msgid "%s: first non-whitespace character is not `\"'" +msgstr "" + +#: bashline.c:3520 +#, c-format +msgid "no closing `%c' in %s" +msgstr "" + +#: bashline.c:3554 +#, c-format +msgid "%s: missing colon separator" +msgstr "" + +#: builtins/bind.def:120 builtins/bind.def:123 +msgid "line editing not enabled" +msgstr "" + +#: builtins/bind.def:206 +#, c-format +msgid "`%s': invalid keymap name" +msgstr "" + +#: builtins/bind.def:245 +#, fuzzy, c-format +msgid "%s: cannot read: %s" +msgstr "%s: nem lehet létrehozni: %s" + +#: builtins/bind.def:260 +#, fuzzy, c-format +msgid "`%s': cannot unbind" +msgstr "%s: parancs nem található" + +#: builtins/bind.def:295 builtins/bind.def:325 +#, fuzzy, c-format +msgid "`%s': unknown function name" +msgstr "%s Csak olvasható funkció" + +#: builtins/bind.def:303 +#, c-format +msgid "%s is not bound to any keys.\n" +msgstr "" + +#: builtins/bind.def:307 +#, c-format +msgid "%s can be invoked via " +msgstr "" + +#: builtins/break.def:77 builtins/break.def:117 +#, fuzzy +msgid "loop count" +msgstr "logout" + +#: builtins/break.def:137 +msgid "only meaningful in a `for', `while', or `until' loop" +msgstr "" + +#: builtins/caller.def:133 +msgid "" +"Returns the context of the current subroutine call.\n" +" \n" +" Without EXPR, returns " +msgstr "" + +#: builtins/cd.def:215 +msgid "HOME not set" +msgstr "" + +#: builtins/cd.def:227 +msgid "OLDPWD not set" +msgstr "" + +#: builtins/common.c:101 +#, fuzzy, c-format +msgid "line %d: " +msgstr "foglalat %3d: " + +#: builtins/common.c:139 error.c:260 +#, fuzzy, c-format +msgid "warning: " +msgstr "írás" + +#: builtins/common.c:153 +#, c-format +msgid "%s: usage: " +msgstr "" + +#: builtins/common.c:166 test.c:822 +msgid "too many arguments" +msgstr "túl sok argumentum" + +#: builtins/common.c:191 shell.c:493 shell.c:774 +#, fuzzy, c-format +msgid "%s: option requires an argument" +msgstr "az opció paramétert igényel:-" + +#: builtins/common.c:198 +#, c-format +msgid "%s: numeric argument required" +msgstr "" + +#: builtins/common.c:205 +#, fuzzy, c-format +msgid "%s: not found" +msgstr "%s: parancs nem található" + +#: builtins/common.c:214 shell.c:787 +#, fuzzy, c-format +msgid "%s: invalid option" +msgstr "%c%c: rossz opció" + +#: builtins/common.c:221 +#, fuzzy, c-format +msgid "%s: invalid option name" +msgstr "%c%c: rossz opció" + +#: builtins/common.c:228 general.c:231 general.c:236 +#, fuzzy, c-format +msgid "`%s': not a valid identifier" +msgstr "`%s' nem érvényes azonosító" + +#: builtins/common.c:238 +#, fuzzy +msgid "invalid octal number" +msgstr "rossz jel(signal) szám" + +#: builtins/common.c:240 +#, fuzzy +msgid "invalid hex number" +msgstr "rossz jel(signal) szám" + +#: builtins/common.c:242 expr.c:1255 +#, fuzzy +msgid "invalid number" +msgstr "rossz jel(signal) szám" + +#: builtins/common.c:250 +#, c-format +msgid "%s: invalid signal specification" +msgstr "" + +#: builtins/common.c:257 +#, c-format +msgid "`%s': not a pid or valid job spec" +msgstr "" + +#: builtins/common.c:264 error.c:453 +#, c-format +msgid "%s: readonly variable" +msgstr "%s Csak olvasható változó" + +#: builtins/common.c:272 +#, c-format +msgid "%s: %s out of range" +msgstr "" + +#: builtins/common.c:272 builtins/common.c:274 +#, fuzzy +msgid "argument" +msgstr "paraméter szükséges" + +#: builtins/common.c:274 +#, c-format +msgid "%s out of range" +msgstr "" + +#: builtins/common.c:282 +#, c-format +msgid "%s: no such job" +msgstr "" + +#: builtins/common.c:290 +#, fuzzy, c-format +msgid "%s: no job control" +msgstr "nincs munkafolyamat ellenõrzés ezen a parancsértelmezõn" + +#: builtins/common.c:292 +#, fuzzy +msgid "no job control" +msgstr "nincs munkafolyamat ellenõrzés ezen a parancsértelmezõn" + +#: builtins/common.c:302 +#, fuzzy, c-format +msgid "%s: restricted" +msgstr "%s: munkafolyamat megszakadt" + +#: builtins/common.c:304 +#, fuzzy +msgid "restricted" +msgstr "Félbeszakítva" + +#: builtins/common.c:312 +#, c-format +msgid "%s: not a shell builtin" +msgstr "" + +#: builtins/common.c:321 +#, fuzzy, c-format +msgid "write error: %s" +msgstr "Csõ (pipe)hiba %s" + +#: builtins/common.c:553 +#, c-format +msgid "%s: error retrieving current directory: %s: %s\n" +msgstr "" + +#: builtins/common.c:619 builtins/common.c:621 +#, fuzzy, c-format +msgid "%s: ambiguous job spec" +msgstr "%s: Nem egyértelmû átirányítás" + +#: builtins/complete.def:270 +#, c-format +msgid "%s: invalid action name" +msgstr "" + +#: builtins/complete.def:430 builtins/complete.def:615 +#: builtins/complete.def:813 +#, c-format +msgid "%s: no completion specification" +msgstr "" + +#: builtins/complete.def:667 +msgid "warning: -F option may not work as you expect" +msgstr "" + +#: builtins/complete.def:669 +msgid "warning: -C option may not work as you expect" +msgstr "" + +#: builtins/complete.def:786 +msgid "not currently executing completion function" +msgstr "" + +#: builtins/declare.def:122 +#, fuzzy +msgid "can only be used in a function" +msgstr "A local-t csak funkción belül lehet használni, létrehozott változó NÉV" + +#: builtins/declare.def:353 +msgid "cannot use `-f' to make functions" +msgstr "" + +#: builtins/declare.def:365 execute_cmd.c:4731 +#, c-format +msgid "%s: readonly function" +msgstr "%s Csak olvasható funkció" + +#: builtins/declare.def:461 +#, fuzzy, c-format +msgid "%s: cannot destroy array variables in this way" +msgstr "$%s így nem lehet hozzárendelni" + +#: builtins/declare.def:468 +#, c-format +msgid "%s: cannot convert associative to indexed array" +msgstr "" + +#: builtins/enable.def:137 builtins/enable.def:145 +msgid "dynamic loading not available" +msgstr "" + +#: builtins/enable.def:312 +#, fuzzy, c-format +msgid "cannot open shared object %s: %s" +msgstr "nem lehet létrehozni a %s \"named pipe\"-ot a %s-nek: %s" + +#: builtins/enable.def:335 +#, c-format +msgid "cannot find %s in shared object %s: %s" +msgstr "" + +#: builtins/enable.def:459 +#, c-format +msgid "%s: not dynamically loaded" +msgstr "" + +#: builtins/enable.def:474 +#, fuzzy, c-format +msgid "%s: cannot delete: %s" +msgstr "%s: nem lehet létrehozni: %s" + +#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4588 +#: shell.c:1439 +#, c-format +msgid "%s: is a directory" +msgstr "%s: egy könyvtár" + +#: builtins/evalfile.c:139 +#, fuzzy, c-format +msgid "%s: not a regular file" +msgstr "%s: nem futtatható bináris fájl" + +#: builtins/evalfile.c:147 +#, c-format +msgid "%s: file is too large" +msgstr "" + +#: builtins/evalfile.c:185 execute_cmd.c:4658 shell.c:1449 +#, c-format +msgid "%s: cannot execute binary file" +msgstr "%s: nem futtatható bináris fájl" + +#: builtins/exec.def:212 +#, fuzzy, c-format +msgid "%s: cannot execute: %s" +msgstr "%s: nem lehet létrehozni: %s" + +#: builtins/exit.def:65 +#, fuzzy, c-format +msgid "logout\n" +msgstr "logout" + +#: builtins/exit.def:88 +msgid "not login shell: use `exit'" +msgstr "" + +#: builtins/exit.def:120 +#, c-format +msgid "There are stopped jobs.\n" +msgstr "" + +#: builtins/exit.def:122 +#, c-format +msgid "There are running jobs.\n" +msgstr "" + +#: builtins/fc.def:261 +#, fuzzy +msgid "no command found" +msgstr "%s: parancs nem található" + +#: builtins/fc.def:341 +msgid "history specification" +msgstr "" + +#: builtins/fc.def:362 +#, fuzzy, c-format +msgid "%s: cannot open temp file: %s" +msgstr "%s: nem lehet létrehozni: %s" + +#: builtins/fg_bg.def:149 builtins/jobs.def:282 +msgid "current" +msgstr "" + +#: builtins/fg_bg.def:158 +#, c-format +msgid "job %d started without job control" +msgstr "" + +#: builtins/getopt.c:110 +#, fuzzy, c-format +msgid "%s: illegal option -- %c\n" +msgstr "érvénytelen opció: -" + +#: builtins/getopt.c:111 +#, fuzzy, c-format +msgid "%s: option requires an argument -- %c\n" +msgstr "az opció paramétert igényel:-" + +#: builtins/hash.def:92 +msgid "hashing disabled" +msgstr "" + +#: builtins/hash.def:138 +#, c-format +msgid "%s: hash table empty\n" +msgstr "" + +#: builtins/hash.def:244 +#, fuzzy, c-format +msgid "hits\tcommand\n" +msgstr "újra futtathatja az utolsó parancsot." + +#: builtins/help.def:130 +#, c-format +msgid "Shell commands matching keyword `" +msgid_plural "Shell commands matching keywords `" +msgstr[0] "" +msgstr[1] "" + +#: builtins/help.def:168 +#, c-format +msgid "" +"no help topics match `%s'. Try `help help' or `man -k %s' or `info %s'." +msgstr "" + +#: builtins/help.def:185 +#, fuzzy, c-format +msgid "%s: cannot open: %s" +msgstr "%s: nem lehet létrehozni: %s" + +#: builtins/help.def:337 +#, c-format +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:154 +msgid "cannot use more than one of -anrw" +msgstr "" + +#: builtins/history.def:186 +msgid "history position" +msgstr "" + +#: builtins/history.def:365 +#, fuzzy, c-format +msgid "%s: history expansion failed" +msgstr "%s egész szám szükséges" + +#: builtins/inlib.def:71 +#, fuzzy, c-format +msgid "%s: inlib failed" +msgstr "%s egész szám szükséges" + +#: builtins/jobs.def:109 +msgid "no other options allowed with `-x'" +msgstr "" + +#: builtins/kill.def:197 +#, c-format +msgid "%s: arguments must be process or job IDs" +msgstr "" + +#: builtins/kill.def:260 +#, fuzzy +msgid "Unknown error" +msgstr "Ismeretlen hiba %d" + +#: builtins/let.def:95 builtins/let.def:120 expr.c:501 expr.c:516 +msgid "expression expected" +msgstr "várható kifejezés" + +#: builtins/mapfile.def:215 builtins/read.def:272 +#, c-format +msgid "%s: invalid file descriptor specification" +msgstr "" + +#: builtins/mapfile.def:223 builtins/read.def:279 +#, c-format +msgid "%d: invalid file descriptor: %s" +msgstr "" + +#: builtins/mapfile.def:232 builtins/mapfile.def:270 +#, fuzzy, c-format +msgid "%s: invalid line count" +msgstr "%c%c: rossz opció" + +#: builtins/mapfile.def:243 +#, fuzzy, c-format +msgid "%s: invalid array origin" +msgstr "%c%c: rossz opció" + +#: builtins/mapfile.def:260 +#, fuzzy, c-format +msgid "%s: invalid callback quantum" +msgstr "rossz jel(signal) szám" + +#: builtins/mapfile.def:292 +#, fuzzy +msgid "empty array variable name" +msgstr "%s felszabadított változó" + +#: builtins/mapfile.def:313 +msgid "array variable support required" +msgstr "" + +#: builtins/printf.def:367 +#, c-format +msgid "`%s': missing format character" +msgstr "" + +#: builtins/printf.def:544 +#, c-format +msgid "`%c': invalid format character" +msgstr "" + +#: builtins/printf.def:571 +#, c-format +msgid "warning: %s: %s" +msgstr "" + +#: builtins/printf.def:750 +msgid "missing hex digit for \\x" +msgstr "" + +#: builtins/pushd.def:195 +#, fuzzy +msgid "no other directory" +msgstr "könyvtárba." + +#: builtins/pushd.def:462 +#, fuzzy +msgid "" +msgstr "\tlesz az aktuális munkakönyvtár." + +#: builtins/pushd.def:506 +msgid "directory stack empty" +msgstr "" + +#: builtins/pushd.def:508 +#, fuzzy +msgid "directory stack index" +msgstr "Rekurziós verem túlcsordult" + +#: builtins/pushd.def:683 +msgid "" +"Display the list of currently remembered directories. Directories\n" +" find their way onto the list with the `pushd' command; you can get\n" +" back up through the list with the `popd' command.\n" +" \n" +" Options:\n" +" -c\tclear the directory stack by deleting all of the elements\n" +" -l\tdo not print tilde-prefixed versions of directories relative\n" +" \tto your home directory\n" +" -p\tprint the directory stack with one entry per line\n" +" -v\tprint the directory stack with one entry per line prefixed\n" +" \twith its position in the stack\n" +" \n" +" Arguments:\n" +" +N\tDisplays the Nth entry counting from the left of the list shown " +"by\n" +" \tdirs when invoked without options, starting with zero.\n" +" \n" +" -N\tDisplays the Nth entry counting from the right of the list shown " +"by\n" +"\tdirs when invoked without options, starting with zero." +msgstr "" + +#: builtins/pushd.def:705 +msgid "" +"Adds a directory to the top of the directory stack, or rotates\n" +" the stack, making the new top of the stack the current working\n" +" directory. With no arguments, exchanges the top two directories.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when adding\n" +" \tdirectories to the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the left of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" -N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the right of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" dir\tAdds DIR to the directory stack at the top, making it the\n" +" \tnew current working directory.\n" +" \n" +" The `dirs' builtin displays the directory stack." +msgstr "" + +#: builtins/pushd.def:730 +msgid "" +"Removes entries from the directory stack. With no arguments, removes\n" +" the top directory from the stack, and changes to the new top directory.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when removing\n" +" \tdirectories from the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRemoves the Nth entry counting from the left of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd +0'\n" +" \tremoves the first directory, `popd +1' the second.\n" +" \n" +" -N\tRemoves the Nth entry counting from the right of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd -0'\n" +" \tremoves the last directory, `popd -1' the next to last.\n" +" \n" +" The `dirs' builtin displays the directory stack." +msgstr "" + +#: builtins/read.def:248 +#, c-format +msgid "%s: invalid timeout specification" +msgstr "" + +#: builtins/read.def:574 +#, fuzzy, c-format +msgid "read error: %d: %s" +msgstr "Csõ (pipe)hiba %s" + +#: builtins/return.def:73 +msgid "can only `return' from a function or sourced script" +msgstr "" + +#: builtins/set.def:768 +#, fuzzy +msgid "cannot simultaneously unset a function and a variable" +msgstr "A local-t csak funkción belül lehet használni, létrehozott változó NÉV" + +#: builtins/set.def:805 +#, fuzzy, c-format +msgid "%s: cannot unset" +msgstr "%s: nem lehet létrehozni: %s" + +#: builtins/set.def:812 +#, fuzzy, c-format +msgid "%s: cannot unset: readonly %s" +msgstr "%s: nem lehet létrehozni: %s" + +#: builtins/set.def:823 +#, fuzzy, c-format +msgid "%s: not an array variable" +msgstr "%s felszabadított változó" + +#: builtins/setattr.def:186 +#, fuzzy, c-format +msgid "%s: not a function" +msgstr "%s Csak olvasható funkció" + +#: builtins/shift.def:71 builtins/shift.def:77 +#, fuzzy +msgid "shift count" +msgstr "shift [n]" + +#: builtins/shopt.def:254 +msgid "cannot set and unset shell options simultaneously" +msgstr "" + +#: builtins/shopt.def:319 +#, c-format +msgid "%s: invalid shell option name" +msgstr "" + +#: builtins/source.def:128 +msgid "filename argument required" +msgstr "" + +#: builtins/source.def:153 +#, fuzzy, c-format +msgid "%s: file not found" +msgstr "%s: parancs nem található" + +#: builtins/suspend.def:101 +msgid "cannot suspend" +msgstr "" + +#: builtins/suspend.def:111 +#, fuzzy +msgid "cannot suspend a login shell" +msgstr "Kilépés a parancsértelmezõbõl." + +#: builtins/type.def:234 +#, c-format +msgid "%s is aliased to `%s'\n" +msgstr "" + +#: builtins/type.def:255 +#, c-format +msgid "%s is a shell keyword\n" +msgstr "" + +#: builtins/type.def:274 +#, fuzzy, c-format +msgid "%s is a function\n" +msgstr "%s Csak olvasható funkció" + +#: builtins/type.def:296 +#, c-format +msgid "%s is a shell builtin\n" +msgstr "" + +#: builtins/type.def:317 builtins/type.def:391 +#, c-format +msgid "%s is %s\n" +msgstr "" + +#: builtins/type.def:337 +#, c-format +msgid "%s is hashed (%s)\n" +msgstr "" + +#: builtins/ulimit.def:372 +#, c-format +msgid "%s: invalid limit argument" +msgstr "" + +#: builtins/ulimit.def:398 +#, fuzzy, c-format +msgid "`%c': bad command" +msgstr "%c%c: rossz opció" + +#: builtins/ulimit.def:427 +#, fuzzy, c-format +msgid "%s: cannot get limit: %s" +msgstr "%s: nem lehet létrehozni: %s" + +#: builtins/ulimit.def:453 +#, fuzzy +msgid "limit" +msgstr "CPU határ" + +#: builtins/ulimit.def:465 builtins/ulimit.def:765 +#, fuzzy, c-format +msgid "%s: cannot modify limit: %s" +msgstr "%s: nem lehet létrehozni: %s" + +#: builtins/umask.def:118 +#, fuzzy +msgid "octal number" +msgstr "rossz jel(signal) szám" + +#: builtins/umask.def:231 +#, c-format +msgid "`%c': invalid symbolic mode operator" +msgstr "" + +#: builtins/umask.def:286 +#, c-format +msgid "`%c': invalid symbolic mode character" +msgstr "" + +#: error.c:89 error.c:320 error.c:322 error.c:324 +msgid " line " +msgstr "" + +#: error.c:164 +#, fuzzy, c-format +msgid "last command: %s\n" +msgstr "újra futtathatja az utolsó parancsot." + +#: error.c:172 +#, c-format +msgid "Aborting..." +msgstr "" + +#: error.c:405 +#, fuzzy +msgid "unknown command error" +msgstr "Ismeretlen hiba %d" + +#: error.c:406 +#, fuzzy +msgid "bad command type" +msgstr "parancsként használja." + +#: error.c:407 +#, fuzzy +msgid "bad connector" +msgstr "rossz csatlakozás `%d'" + +#: error.c:408 +#, fuzzy +msgid "bad jump" +msgstr "Rossz ugrás %d" + +#: error.c:446 +#, c-format +msgid "%s: unbound variable" +msgstr "%s felszabadított változó" + +#: eval.c:181 +#, fuzzy, c-format +msgid "\atimed out waiting for input: auto-logout\n" +msgstr "%c túl sokáig nem csinált semmit:automatikus kilépés\n" + +#: execute_cmd.c:491 +#, c-format +msgid "cannot redirect standard input from /dev/null: %s" +msgstr "" + +#: execute_cmd.c:1091 +#, c-format +msgid "TIMEFORMAT: `%c': invalid format character" +msgstr "" + +#: execute_cmd.c:1942 +#, fuzzy +msgid "pipe error" +msgstr "Csõ (pipe)hiba %s" + +#: execute_cmd.c:4276 +#, c-format +msgid "%s: restricted: cannot specify `/' in command names" +msgstr "%s: fenntartva: parancs nem tartalmazhat '/' karaktert" + +#: execute_cmd.c:4367 +#, c-format +msgid "%s: command not found" +msgstr "%s: parancs nem található" + +#: execute_cmd.c:4621 +#, fuzzy, c-format +msgid "%s: %s: bad interpreter" +msgstr "%s: egy könyvtár" + +#: execute_cmd.c:4770 +#, fuzzy, c-format +msgid "cannot duplicate fd %d to fd %d" +msgstr "nem másolható a fd %d fd 0: %s-re" + +#: expr.c:241 +msgid "expression recursion level exceeded" +msgstr "kifejezés túllépte a megengedett rekurzív szintet" + +#: expr.c:265 +#, fuzzy +msgid "recursion stack underflow" +msgstr "Rekurziós verem túlcsordult" + +#: expr.c:379 +msgid "syntax error in expression" +msgstr "szintaktikai hiba a kifelyezésben" + +#: expr.c:419 +msgid "attempted assignment to non-variable" +msgstr "nem változóhoz próbált hozzárendelni" + +#: expr.c:440 expr.c:445 expr.c:756 +msgid "division by 0" +msgstr "nullával való osztás" + +#: expr.c:471 +#, fuzzy +msgid "bug: bad expassign token" +msgstr "Hiba:rossz vezérjel %d" + +#: expr.c:513 +msgid "`:' expected for conditional expression" +msgstr "`:' túllépte a kifelyezés feltételeit" + +#: expr.c:781 +msgid "exponent less than 0" +msgstr "" + +#: expr.c:826 +msgid "identifier expected after pre-increment or pre-decrement" +msgstr "" + +#: expr.c:854 +msgid "missing `)'" +msgstr "rossz ')'" + +#: expr.c:897 expr.c:1175 +#, fuzzy +msgid "syntax error: operand expected" +msgstr "szintaktikai hiba: váratlan fájl vég" + +#: expr.c:1177 +msgid "syntax error: invalid arithmetic operator" +msgstr "" + +#: expr.c:1201 +#, fuzzy, c-format +msgid "%s%s%s: %s (error token is \"%s\")" +msgstr "%s: %s: %s (a hiba jele \"%s\")\n" + +#: expr.c:1259 +msgid "invalid arithmetic base" +msgstr "" + +#: expr.c:1279 +msgid "value too great for base" +msgstr "az érték túl nagy" + +#: expr.c:1328 +#, fuzzy, c-format +msgid "%s: expression error\n" +msgstr "%s egész szám szükséges" + +#: general.c:61 +#, fuzzy +msgid "getcwd: cannot access parent directories" +msgstr "getwd: nem elérhetõ a szülõ könyvtár" + +#: input.c:94 subst.c:4559 +#, fuzzy, c-format +msgid "cannot reset nodelay mode for fd %d" +msgstr "nem másolható a fd %d fd 0: %s-re" + +#: input.c:258 +#, fuzzy, c-format +msgid "cannot allocate new file descriptor for bash input from fd %d" +msgstr "" +"nem lehet lefoglalni az új fájlleírót a bash bemenetére a fd %d: %s-r?l" + +#: input.c:266 +#, fuzzy, c-format +msgid "save_bash_input: buffer already exists for new fd %d" +msgstr "check_bash_input: puffer már létezik az új fd %d" + +#: jobs.c:466 +msgid "start_pipeline: pgrp pipe" +msgstr "" + +#: jobs.c:882 +#, c-format +msgid "forked pid %d appears in running job %d" +msgstr "" + +#: jobs.c:1000 +#, c-format +msgid "deleting stopped job %d with process group %ld" +msgstr "" + +#: jobs.c:1105 +#, c-format +msgid "add_process: process %5ld (%s) in the_pipeline" +msgstr "" + +#: jobs.c:1108 +#, c-format +msgid "add_process: pid %5ld (%s) marked as still alive" +msgstr "" + +#: jobs.c:1396 +#, fuzzy, c-format +msgid "describe_pid: %ld: no such pid" +msgstr "describe_pid: Nem létezõ pid (%d)!\n" + +#: jobs.c:1411 +#, fuzzy, c-format +msgid "Signal %d" +msgstr "Ismeretlen #%d Szignál" + +#: jobs.c:1425 jobs.c:1450 +msgid "Done" +msgstr "Kész" + +#: jobs.c:1430 siglist.c:122 +msgid "Stopped" +msgstr "Megállítva" + +#: jobs.c:1434 +#, fuzzy, c-format +msgid "Stopped(%s)" +msgstr "Megállítva" + +#: jobs.c:1438 +msgid "Running" +msgstr "Futó" + +#: jobs.c:1452 +#, c-format +msgid "Done(%d)" +msgstr "Kész (%d)" + +#: jobs.c:1454 +#, c-format +msgid "Exit %d" +msgstr "Kilépés %d" + +#: jobs.c:1457 +msgid "Unknown status" +msgstr "Ismeretlen állapot" + +#: jobs.c:1544 +#, c-format +msgid "(core dumped) " +msgstr "(memória kiírás)" + +#: jobs.c:1563 +#, fuzzy, c-format +msgid " (wd: %s)" +msgstr "(wd most: %s)\n" + +#: jobs.c:1766 +#, fuzzy, c-format +msgid "child setpgid (%ld to %ld)" +msgstr "gyermek-folyamat setpgid (%d -ról %d-ra) hiba %d: %s\n" + +#: jobs.c:2094 nojobs.c:576 +#, fuzzy, c-format +msgid "wait: pid %ld is not a child of this shell" +msgstr "várjon:a %d nem utóda ennek a parancsértelmezõnek" + +#: jobs.c:2321 +#, c-format +msgid "wait_for: No record of process %ld" +msgstr "" + +#: jobs.c:2593 +#, c-format +msgid "wait_for_job: job %d is stopped" +msgstr "" + +#: jobs.c:2815 +#, c-format +msgid "%s: job has terminated" +msgstr "%s: munkafolyamat megszakadt" + +#: jobs.c:2824 +#, c-format +msgid "%s: job %d already in background" +msgstr "" + +#: jobs.c:3487 +#, fuzzy, c-format +msgid "%s: line %d: " +msgstr "foglalat %3d: " + +#: jobs.c:3501 nojobs.c:805 +#, c-format +msgid " (core dumped)" +msgstr "(memória kiírás)" + +#: jobs.c:3513 jobs.c:3526 +#, c-format +msgid "(wd now: %s)\n" +msgstr "(wd most: %s)\n" + +#: jobs.c:3558 +#, fuzzy +msgid "initialize_job_control: getpgrp failed" +msgstr "initialize_jobs: getpgrp sikertelen: %s" + +#: jobs.c:3618 +#, fuzzy +msgid "initialize_job_control: line discipline" +msgstr "initialize_jobs: sor fegyelem %s" + +#: jobs.c:3628 +#, fuzzy +msgid "initialize_job_control: setpgid" +msgstr "initialize_jobs: getpgrp sikertelen: %s" + +#: jobs.c:3656 +#, c-format +msgid "cannot set terminal process group (%d)" +msgstr "" + +#: jobs.c:3661 +msgid "no job control in this shell" +msgstr "nincs munkafolyamat ellenõrzés ezen a parancsértelmezõn" + +#: lib/malloc/malloc.c:296 +#, c-format +msgid "malloc: failed assertion: %s\n" +msgstr "" + +#: lib/malloc/malloc.c:312 +#, c-format +msgid "" +"\r\n" +"malloc: %s:%d: assertion botched\r\n" +msgstr "" + +#: lib/malloc/malloc.c:313 +#, fuzzy +msgid "unknown" +msgstr "" + +#: lib/malloc/malloc.c:797 +msgid "malloc: block on free list clobbered" +msgstr "" + +#: lib/malloc/malloc.c:874 +msgid "free: called with already freed block argument" +msgstr "" + +#: lib/malloc/malloc.c:877 +msgid "free: called with unallocated block argument" +msgstr "" + +#: lib/malloc/malloc.c:896 +msgid "free: underflow detected; mh_nbytes out of range" +msgstr "" + +#: lib/malloc/malloc.c:902 +msgid "free: start and end chunk sizes differ" +msgstr "" + +#: lib/malloc/malloc.c:1001 +msgid "realloc: called with unallocated block argument" +msgstr "" + +#: lib/malloc/malloc.c:1016 +msgid "realloc: underflow detected; mh_nbytes out of range" +msgstr "" + +#: lib/malloc/malloc.c:1022 +msgid "realloc: start and end chunk sizes differ" +msgstr "" + +#: lib/malloc/table.c:177 +#, c-format +msgid "register_alloc: alloc table is full with FIND_ALLOC?\n" +msgstr "" + +#: lib/malloc/table.c:184 +#, c-format +msgid "register_alloc: %p already in table as allocated?\n" +msgstr "" + +#: lib/malloc/table.c:220 +#, c-format +msgid "register_free: %p already in table as free?\n" +msgstr "" + +#: lib/sh/fmtulong.c:101 +msgid "invalid base" +msgstr "" + +#: lib/sh/netopen.c:168 +#, fuzzy, c-format +msgid "%s: host unknown" +msgstr "ismeretlen" + +#: lib/sh/netopen.c:175 +#, c-format +msgid "%s: invalid service" +msgstr "" + +#: lib/sh/netopen.c:306 +#, c-format +msgid "%s: bad network path specification" +msgstr "" + +#: lib/sh/netopen.c:346 +msgid "network operations not supported" +msgstr "" + +#: mailcheck.c:433 +msgid "You have mail in $_" +msgstr "Önnek levele van $_ -ben" + +#: mailcheck.c:458 +msgid "You have new mail in $_" +msgstr "Önnek új levele érkezett a $_ -ra" + +#: mailcheck.c:474 +#, c-format +msgid "The mail in %s has been read\n" +msgstr "A %s levelet már elolvasta\n" + +#: make_cmd.c:322 +#, fuzzy +msgid "syntax error: arithmetic expression required" +msgstr "szintaktikai hiba a kifelyezésben" + +#: make_cmd.c:324 +#, fuzzy +msgid "syntax error: `;' unexpected" +msgstr "szintaktikai hiba: váratlan fájl vég" + +#: make_cmd.c:325 +#, fuzzy, c-format +msgid "syntax error: `((%s))'" +msgstr "szintaktikai hiba" + +#: make_cmd.c:567 +#, c-format +msgid "make_here_document: bad instruction type %d" +msgstr "make_here_document: rossz utasítás típus %d" + +#: make_cmd.c:651 +#, c-format +msgid "here-document at line %d delimited by end-of-file (wanted `%s')" +msgstr "" + +#: make_cmd.c:746 +#, c-format +msgid "make_redirection: redirection instruction `%d' out of range" +msgstr "" + +#: parse.y:2986 parse.y:3218 +#, fuzzy, c-format +msgid "unexpected EOF while looking for matching `%c'" +msgstr "váratlan EOF amíg vizsgáltam a `%c'-t" + +#: parse.y:3722 +#, fuzzy +msgid "unexpected EOF while looking for `]]'" +msgstr "váratlan EOF amíg vizsgáltam a `%c'-t" + +#: parse.y:3727 +#, fuzzy, c-format +msgid "syntax error in conditional expression: unexpected token `%s'" +msgstr "szintaktikai hiba a váratlan %s vezérjel körül" + +#: parse.y:3731 +#, fuzzy +msgid "syntax error in conditional expression" +msgstr "szintaktikai hiba a kifelyezésben" + +#: parse.y:3809 +#, c-format +msgid "unexpected token `%s', expected `)'" +msgstr "" + +#: parse.y:3813 +#, fuzzy +msgid "expected `)'" +msgstr "')' szükséges" + +#: parse.y:3841 +#, c-format +msgid "unexpected argument `%s' to conditional unary operator" +msgstr "" + +#: parse.y:3845 +msgid "unexpected argument to conditional unary operator" +msgstr "" + +#: parse.y:3885 +#, fuzzy, c-format +msgid "unexpected token `%s', conditional binary operator expected" +msgstr "%s:bináris mûvelet szükséges" + +#: parse.y:3889 +#, fuzzy +msgid "conditional binary operator expected" +msgstr "%s:bináris mûvelet szükséges" + +#: parse.y:3906 +#, c-format +msgid "unexpected argument `%s' to conditional binary operator" +msgstr "" + +#: parse.y:3910 +msgid "unexpected argument to conditional binary operator" +msgstr "" + +#: parse.y:3921 +#, fuzzy, c-format +msgid "unexpected token `%c' in conditional command" +msgstr "`:' túllépte a kifelyezés feltételeit" + +#: parse.y:3924 +#, fuzzy, c-format +msgid "unexpected token `%s' in conditional command" +msgstr "`:' túllépte a kifelyezés feltételeit" + +#: parse.y:3928 +#, fuzzy, c-format +msgid "unexpected token %d in conditional command" +msgstr "`:' túllépte a kifelyezés feltételeit" + +#: parse.y:5195 +#, c-format +msgid "syntax error near unexpected token `%s'" +msgstr "szintaktikai hiba a váratlan %s vezérjel körül" + +#: parse.y:5213 +#, fuzzy, c-format +msgid "syntax error near `%s'" +msgstr "szintaktikai hiba a váratlan %s vezérjel körül" + +#: parse.y:5223 +msgid "syntax error: unexpected end of file" +msgstr "szintaktikai hiba: váratlan fájl vég" + +#: parse.y:5223 +msgid "syntax error" +msgstr "szintaktikai hiba" + +#: parse.y:5285 +#, c-format +msgid "Use \"%s\" to leave the shell.\n" +msgstr "Használja \"%s\" a parancsértelmezõ elhagyásához.\n" + +#: parse.y:5447 +#, fuzzy +msgid "unexpected EOF while looking for matching `)'" +msgstr "váratlan EOF amíg vizsgáltam a `%c'-t" + +#: pcomplete.c:1016 +#, c-format +msgid "completion: function `%s' not found" +msgstr "" + +#: pcomplib.c:179 +#, c-format +msgid "progcomp_insert: %s: NULL COMPSPEC" +msgstr "" + +#: print_cmd.c:287 +#, c-format +msgid "print_command: bad connector `%d'" +msgstr "print_command: rossz csatlakozás `%d'" + +#: print_cmd.c:1347 +#, c-format +msgid "cprintf: `%c': invalid format character" +msgstr "" + +#: redir.c:105 +msgid "file descriptor out of range" +msgstr "" + +#: redir.c:148 +#, fuzzy, c-format +msgid "%s: ambiguous redirect" +msgstr "%s: Nem egyértelmû átirányítás" + +#: redir.c:152 +#, fuzzy, c-format +msgid "%s: cannot overwrite existing file" +msgstr "%s: Nem lehet megsemmisíteni létezõ fájlt‘" + +#: redir.c:157 +#, fuzzy, c-format +msgid "%s: restricted: cannot redirect output" +msgstr "%s: fenntartva: parancs nem tartalmazhat '/' karaktert" + +#: redir.c:162 +#, fuzzy, c-format +msgid "cannot create temp file for here-document: %s" +msgstr "nem lehet létrehozni a pipe-ot feladat behelyettesítéshez: %s" + +#: redir.c:517 +msgid "/dev/(tcp|udp)/host/port not supported without networking" +msgstr "" + +#: redir.c:1023 +#, fuzzy +msgid "redirection error: cannot duplicate fd" +msgstr "átirányítási hiba" + +#: shell.c:328 +msgid "could not find /tmp, please create!" +msgstr "" + +#: shell.c:332 +msgid "/tmp must be a valid directory name" +msgstr "" + +#: shell.c:876 +#, fuzzy, c-format +msgid "%c%c: invalid option" +msgstr "%c%c: rossz opció" + +#: shell.c:1638 +msgid "I have no name!" +msgstr "Nincs nevem!" + +#: shell.c:1778 +#, fuzzy, c-format +msgid "GNU bash, version %s-(%s)\n" +msgstr "GNU %s, verzió %s\n" + +#: shell.c:1779 +#, c-format +msgid "" +"Usage:\t%s [GNU long option] [option] ...\n" +"\t%s [GNU long option] [option] script-file ...\n" +msgstr "" +"Használat:\t%s [GNU hosszú opció] [opció] ...\n" +"\t%s [GNU hosszú opció] [opció] parancs fájl ...\n" + +#: shell.c:1781 +msgid "GNU long options:\n" +msgstr "GNU hosszú opciók:\n" + +#: shell.c:1785 +msgid "Shell options:\n" +msgstr "Parancsértelmezõ opciók:\n" + +#: shell.c:1786 +#, fuzzy +msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n" +msgstr "\t-irsD vagy -c parancs\t\t(csak végrehajtható)\n" + +#: shell.c:1801 +#, c-format +msgid "\t-%s or -o option\n" +msgstr "\t-%s vagy -o opciók\n" + +#: shell.c:1807 +#, c-format +msgid "Type `%s -c \"help set\"' for more information about shell options.\n" +msgstr "" +"Írja be a `%s -c \"help set\"' ha több információra van szüksége a " +"parancsértelmezõ opcióival kapcsolatban.\n" + +#: shell.c:1808 +#, c-format +msgid "Type `%s -c help' for more information about shell builtin commands.\n" +msgstr "" +"Írja be a `%s -c \"help set\"' ha több információra van szüksége a " +"parancsértelmezõ beépített utasításaival kapcsolatban.\n" + +#: shell.c:1809 +#, c-format +msgid "Use the `bashbug' command to report bugs.\n" +msgstr "" + +#: sig.c:583 +#, c-format +msgid "sigprocmask: %d: invalid operation" +msgstr "" + +#: siglist.c:47 +msgid "Bogus signal" +msgstr "Hamis jel" + +#: siglist.c:50 +msgid "Hangup" +msgstr "Bontás" + +#: siglist.c:54 +msgid "Interrupt" +msgstr "Megszakítás" + +#: siglist.c:58 +msgid "Quit" +msgstr "Kilépés" + +#: siglist.c:62 +msgid "Illegal instruction" +msgstr "Érvénytelen utasítás" + +#: siglist.c:66 +msgid "BPT trace/trap" +msgstr "BPT nyomkövetés/csapda" + +#: siglist.c:74 +msgid "ABORT instruction" +msgstr "Utasítás MEGSZAKÍTÁSA" + +#: siglist.c:78 +msgid "EMT instruction" +msgstr "EMT utasítás" + +#: siglist.c:82 +msgid "Floating point exception" +msgstr "Lebegõ pontos esemény" + +#: siglist.c:86 +msgid "Killed" +msgstr "Kilõve" + +#: siglist.c:90 +msgid "Bus error" +msgstr "Busz hiba" + +#: siglist.c:94 +msgid "Segmentation fault" +msgstr "Szegmens hiba" + +#: siglist.c:98 +msgid "Bad system call" +msgstr "Rossz rendszerhívás" + +#: siglist.c:102 +msgid "Broken pipe" +msgstr "Törött csõ (pipe)" + +#: siglist.c:106 +msgid "Alarm clock" +msgstr "Emlékeztetés" + +#: siglist.c:110 +#, fuzzy +msgid "Terminated" +msgstr "ki." + +#: siglist.c:114 +msgid "Urgent IO condition" +msgstr "Sürgõs IO feltétel" + +#: siglist.c:118 +msgid "Stopped (signal)" +msgstr "Megállítva (jellel)" + +#: siglist.c:126 +msgid "Continue" +msgstr "Folytatás" + +#: siglist.c:134 +msgid "Child death or stop" +msgstr "Gyermek objektum meghalt vagy megállt" + +#: siglist.c:138 +msgid "Stopped (tty input)" +msgstr "Megállítva (tty bemenet)" + +#: siglist.c:142 +msgid "Stopped (tty output)" +msgstr "Megállítva (tty kimenet)" + +#: siglist.c:146 +msgid "I/O ready" +msgstr "I/O kész" + +#: siglist.c:150 +msgid "CPU limit" +msgstr "CPU határ" + +#: siglist.c:154 +msgid "File limit" +msgstr "Fájl határ" + +#: siglist.c:158 +msgid "Alarm (virtual)" +msgstr "Emlékeztetés (virtuális)" + +#: siglist.c:162 +msgid "Alarm (profile)" +msgstr "Emlékeztetés (profil)" + +#: siglist.c:166 +msgid "Window changed" +msgstr "Ablak megváltozott" + +#: siglist.c:170 +msgid "Record lock" +msgstr "Felvétel zárolva" + +#: siglist.c:174 +msgid "User signal 1" +msgstr "Felhasználói jel 1" + +#: siglist.c:178 +msgid "User signal 2" +msgstr "Felhasználói jel 2" + +#: siglist.c:182 +msgid "HFT input data pending" +msgstr "HFT bemeneti adat függõben" + +#: siglist.c:186 +msgid "power failure imminent" +msgstr "áram kimaradás várható" + +#: siglist.c:190 +msgid "system crash imminent" +msgstr "rendszer sérülés várható" + +#: siglist.c:194 +msgid "migrate process to another CPU" +msgstr "feladat átadása másik CPU-nak" + +#: siglist.c:198 +msgid "programming error" +msgstr "programozási hiba" + +#: siglist.c:202 +msgid "HFT monitor mode granted" +msgstr "HFT felügyelõ mód engedélyezve" + +#: siglist.c:206 +msgid "HFT monitor mode retracted" +msgstr "HFT felügyelõ mód visszavonva" + +#: siglist.c:210 +msgid "HFT sound sequence has completed" +msgstr "HFT hangsorozat behelyezve" + +#: siglist.c:214 +msgid "Information request" +msgstr "" + +#: siglist.c:222 +msgid "Unknown Signal #" +msgstr "Ismeretlen # Szignál" + +#: siglist.c:224 +#, c-format +msgid "Unknown Signal #%d" +msgstr "Ismeretlen #%d Szignál" + +#: subst.c:1181 subst.c:1302 +#, fuzzy, c-format +msgid "bad substitution: no closing `%s' in %s" +msgstr "rossz behelyettesítés: ne a %s be a %s-t" + +#: subst.c:2458 +#, c-format +msgid "%s: cannot assign list to array member" +msgstr "%s: nem lehet a listához rendelni az elemet" + +#: subst.c:4456 subst.c:4472 +#, fuzzy +msgid "cannot make pipe for process substitution" +msgstr "nem lehet létrehozni a pipe-ot feladat behelyettesítéshez: %s" + +#: subst.c:4504 +#, fuzzy +msgid "cannot make child for process substitution" +msgstr "" +"nem lehet létrehozni a gyermekfolyamatott feladat behelyettesítéshez: %s" + +#: subst.c:4549 +#, fuzzy, c-format +msgid "cannot open named pipe %s for reading" +msgstr "nem lehet létrehozni a %s \"named pipe\"-ot a %s-nek: %s" + +#: subst.c:4551 +#, fuzzy, c-format +msgid "cannot open named pipe %s for writing" +msgstr "nem lehet létrehozni a %s \"named pipe\"-ot a %s-nek: %s" + +#: subst.c:4569 +#, fuzzy, c-format +msgid "cannot duplicate named pipe %s as fd %d" +msgstr "nem lehet másolni a %s \"named pipe\"-ot mint fd %d :%s" + +#: subst.c:4765 +#, fuzzy +msgid "cannot make pipe for command substitution" +msgstr "nem lehet létrehozni a \"pipe\"-ot parancs behelyettesítéséhez: %s" + +#: subst.c:4799 +#, fuzzy +msgid "cannot make child for command substitution" +msgstr "" +"nem lehet létrehozni a gyermekfolyamatot a parancs behelyettesítéséhez: %s" + +#: subst.c:4816 +#, fuzzy +msgid "command_substitute: cannot duplicate pipe as fd 1" +msgstr "command_substitute: nem lehet másolni a \"pipe\"-ot mint fd 1: %s" + +#: subst.c:5318 +#, c-format +msgid "%s: parameter null or not set" +msgstr "%s paraméter semmis vagy nincs beállítva" + +#: subst.c:5608 +#, c-format +msgid "%s: substring expression < 0" +msgstr "%s szövegrész kifejezés < 0" + +#: subst.c:6660 +#, c-format +msgid "%s: bad substitution" +msgstr "%s rossz behelyettesítés" + +#: subst.c:6740 +#, c-format +msgid "$%s: cannot assign in this way" +msgstr "$%s így nem lehet hozzárendelni" + +#: subst.c:7479 +#, fuzzy, c-format +msgid "bad substitution: no closing \"`\" in %s" +msgstr "rossz behelyettesítés: ne a %s be a %s-t" + +#: subst.c:8354 +#, c-format +msgid "no match: %s" +msgstr "" + +#: test.c:145 +msgid "argument expected" +msgstr "paraméter szükséges" + +#: test.c:154 +#, c-format +msgid "%s: integer expression expected" +msgstr "%s egész szám szükséges" + +#: test.c:262 +msgid "`)' expected" +msgstr "')' szükséges" + +#: test.c:264 +#, c-format +msgid "`)' expected, found %s" +msgstr "')' szükséges, %s-t találtam" + +#: test.c:279 test.c:688 test.c:691 +#, c-format +msgid "%s: unary operator expected" +msgstr "%s unáris mûvelet szükséges" + +#: test.c:444 test.c:731 +#, c-format +msgid "%s: binary operator expected" +msgstr "%s:bináris mûvelet szükséges" + +#: test.c:806 +msgid "missing `]'" +msgstr "hiányzó ']'" + +#: trap.c:201 +#, fuzzy +msgid "invalid signal number" +msgstr "rossz jel(signal) szám" + +#: trap.c:324 +#, c-format +msgid "run_pending_traps: bad value in trap_list[%d]: %p" +msgstr "" + +#: trap.c:328 +#, c-format +msgid "" +"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself" +msgstr "" + +#: trap.c:372 +#, fuzzy, c-format +msgid "trap_handler: bad signal %d" +msgstr "trap_handler: Rossz jel(signal) %d" + +#: variables.c:358 +#, c-format +msgid "error importing function definition for `%s'" +msgstr "hiba a %s funkció definíció importálásakor" + +#: variables.c:736 +#, c-format +msgid "shell level (%d) too high, resetting to 1" +msgstr "" + +#: variables.c:1898 +msgid "make_local_variable: no function context at current scope" +msgstr "" + +#: variables.c:3127 +msgid "all_local_variables: no function context at current scope" +msgstr "" + +#: variables.c:3344 variables.c:3353 +#, c-format +msgid "invalid character %d in exportstr for %s" +msgstr "" + +#: variables.c:3359 +#, c-format +msgid "no `=' in exportstr for %s" +msgstr "" + +#: variables.c:3794 +msgid "pop_var_context: head of shell_variables not a function context" +msgstr "" + +#: variables.c:3807 +msgid "pop_var_context: no global_variables context" +msgstr "" + +#: variables.c:3881 +msgid "pop_scope: head of shell_variables not a temporary environment scope" +msgstr "" + +#: version.c:46 +msgid "Copyright (C) 2009 Free Software Foundation, Inc." +msgstr "" + +#: version.c:47 +msgid "" +"License GPLv3+: GNU GPL version 3 or later \n" +msgstr "" + +#: version.c:86 +#, fuzzy, c-format +msgid "GNU bash, version %s (%s)\n" +msgstr "GNU %s, verzió %s\n" + +#: version.c:91 +#, c-format +msgid "This is free software; you are free to change and redistribute it.\n" +msgstr "" + +#: version.c:92 +#, c-format +msgid "There is NO WARRANTY, to the extent permitted by law.\n" +msgstr "" + +#: xmalloc.c:92 +#, c-format +msgid "xmalloc: cannot allocate %lu bytes (%lu bytes allocated)" +msgstr "xmalloc: nem lehet újra lefoglalni %lu bájtot (%lu bájt lefoglalva)" + +#: xmalloc.c:94 +#, fuzzy, c-format +msgid "xmalloc: cannot allocate %lu bytes" +msgstr "xmalloc: nem lehet újra lefoglalni %lu bájtot (%lu bájt lefoglalva)" + +#: xmalloc.c:114 +#, c-format +msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)" +msgstr "xmalloc: nem lehet lefoglalni %lu bájtot (%lu bájt lefoglalva)" + +#: xmalloc.c:116 +#, fuzzy, c-format +msgid "xrealloc: cannot allocate %lu bytes" +msgstr "xmalloc: nem lehet lefoglalni %lu bájtot (%lu bájt lefoglalva)" + +#: xmalloc.c:150 +#, fuzzy, c-format +msgid "xmalloc: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)" +msgstr "xmalloc: nem lehet újra lefoglalni %lu bájtot (%lu bájt lefoglalva)" + +#: xmalloc.c:152 +#, fuzzy, c-format +msgid "xmalloc: %s:%d: cannot allocate %lu bytes" +msgstr "xmalloc: nem lehet újra lefoglalni %lu bájtot (%lu bájt lefoglalva)" + +#: xmalloc.c:174 +#, fuzzy, c-format +msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)" +msgstr "xmalloc: nem lehet lefoglalni %lu bájtot (%lu bájt lefoglalva)" + +#: xmalloc.c:176 +#, fuzzy, c-format +msgid "xrealloc: %s:%d: cannot allocate %lu bytes" +msgstr "xmalloc: nem lehet lefoglalni %lu bájtot (%lu bájt lefoglalva)" + +#: builtins.c:43 +msgid "alias [-p] [name[=value] ... ]" +msgstr "alias [-p] [név[=érték] ... ]" + +#: builtins.c:47 +#, fuzzy +msgid "unalias [-a] name [name ...]" +msgstr "unalias [-a] [név ...]" + +#: builtins.c:51 +#, fuzzy +msgid "" +"bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-" +"x keyseq:shell-command] [keyseq:readline-function or readline-command]" +msgstr "" +"bind [-lpvsPVS] [-m keymap] [-f fájlnév] [-q név] [-r bill.kód] [bill.kód:" +"readline-funkció]" + +#: builtins.c:54 +msgid "break [n]" +msgstr "break [n]" + +#: builtins.c:56 +msgid "continue [n]" +msgstr "continue [n]" + +#: builtins.c:58 +msgid "builtin [shell-builtin [arg ...]]" +msgstr "builtin [shell-builtin [arg ...]]" + +#: builtins.c:61 +#, fuzzy +msgid "caller [expr]" +msgstr "test [kifelyezés]" + +#: builtins.c:64 +#, fuzzy +msgid "cd [-L|-P] [dir]" +msgstr "cd [-PL] [könyvtár]" + +#: builtins.c:66 +#, fuzzy +msgid "pwd [-LP]" +msgstr "pwd [-PL]" + +#: builtins.c:68 +msgid ":" +msgstr ":" + +#: builtins.c:70 +msgid "true" +msgstr "" + +#: builtins.c:72 +msgid "false" +msgstr "" + +#: builtins.c:74 +msgid "command [-pVv] command [arg ...]" +msgstr "command [-pVv] parancs [arg ...]" + +#: builtins.c:76 +#, fuzzy +msgid "declare [-aAfFilrtux] [-p] [name[=value] ...]" +msgstr "declare [-afFrxi] [-p] név[=érték] ..." + +#: builtins.c:78 +#, fuzzy +msgid "typeset [-aAfFilrtux] [-p] name[=value] ..." +msgstr "typeset [-afFrxi] [-p] név[=érték] ..." + +#: builtins.c:80 +#, fuzzy +msgid "local [option] name[=value] ..." +msgstr "local name[=érték] ..." + +#: builtins.c:83 +msgid "echo [-neE] [arg ...]" +msgstr "echo [-neE] [arg ...]" + +#: builtins.c:87 +msgid "echo [-n] [arg ...]" +msgstr "echo [-n] [arg ...]" + +#: builtins.c:90 +#, fuzzy +msgid "enable [-a] [-dnps] [-f filename] [name ...]" +msgstr "enable [-pnds] [-a] [-f fájlnév] [név ...]" + +#: builtins.c:92 +msgid "eval [arg ...]" +msgstr "eval [arg ...]" + +#: builtins.c:94 +msgid "getopts optstring name [arg]" +msgstr "getopts optstring név [arg]" + +#: builtins.c:96 +#, fuzzy +msgid "exec [-cl] [-a name] [command [arguments ...]] [redirection ...]" +msgstr "exec [-cl] [-a név] fájl [átirányítás ...]" + +#: builtins.c:98 +msgid "exit [n]" +msgstr "exit [n]" + +#: builtins.c:100 +#, fuzzy +msgid "logout [n]" +msgstr "logout" + +#: builtins.c:103 +#, fuzzy +msgid "fc [-e ename] [-lnr] [first] [last] or fc -s [pat=rep] [command]" +msgstr "fc [-e ename] [-nlr] [elsõ] [utolsó] vagy fc -s [pat=rep] [cmd]" + +#: builtins.c:107 +msgid "fg [job_spec]" +msgstr "fg [munka_folyamat]" + +#: builtins.c:111 +#, fuzzy +msgid "bg [job_spec ...]" +msgstr "bg [munka_folyamat]" + +#: builtins.c:114 +#, fuzzy +msgid "hash [-lr] [-p pathname] [-dt] [name ...]" +msgstr "hash [-r] [-p útvonal] [név ...]" + +#: builtins.c:117 +#, fuzzy +msgid "help [-ds] [pattern ...]" +msgstr "help [minta ...]" + +#: builtins.c:121 +#, fuzzy +msgid "" +"history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg " +"[arg...]" +msgstr "" +"history [-c] [n] vagy history -awrn [fájlnév] vagy history -ps arg [arg...]" + +#: builtins.c:125 +msgid "jobs [-lnprs] [jobspec ...] or jobs -x command [args]" +msgstr "jobs [-lnprs] [munkafolyamat ...] vagy jobs -x parancs [args]" + +#: builtins.c:129 +#, fuzzy +msgid "disown [-h] [-ar] [jobspec ...]" +msgstr "disown [munka folyamat ...]" + +#: builtins.c:132 +#, fuzzy +msgid "" +"kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l " +"[sigspec]" +msgstr "" +"kill [-s jeltípus(sigspec) | -n jel(signum) | -jeltípus(sigspec)] [pid | " +"job]... vagy kill -l [jeltípus(sigspec)]" + +#: builtins.c:134 +msgid "let arg [arg ...]" +msgstr "let arg [arg ...]" + +#: builtins.c:136 +msgid "" +"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-p prompt] [-t " +"timeout] [-u fd] [name ...]" +msgstr "" + +#: builtins.c:138 +msgid "return [n]" +msgstr "return [n]" + +#: builtins.c:140 +#, fuzzy +msgid "set [--abefhkmnptuvxBCHP] [-o option-name] [arg ...]" +msgstr "set [--abefhkmnptuvxBCHP] [-o opció] [arg ...]" + +#: builtins.c:142 +msgid "unset [-f] [-v] [name ...]" +msgstr "unset [-f] [-v] [név ...]" + +#: builtins.c:144 +#, fuzzy +msgid "export [-fn] [name[=value] ...] or export -p" +msgstr "export [-nf] [név ...] vagy export -p" + +#: builtins.c:146 +#, fuzzy +msgid "readonly [-af] [name[=value] ...] or readonly -p" +msgstr "readonly [-anf] [név ...] vagy readonly -p" + +#: builtins.c:148 +#, fuzzy +msgid "shift [n]" +msgstr "exit [n]" + +#: builtins.c:150 +#, fuzzy +msgid "source filename [arguments]" +msgstr "forrás fájlneve" + +#: builtins.c:152 +#, fuzzy +msgid ". filename [arguments]" +msgstr "fájlnév" + +#: builtins.c:155 +msgid "suspend [-f]" +msgstr "suspend [-f]" + +#: builtins.c:158 +msgid "test [expr]" +msgstr "test [kifelyezés]" + +#: builtins.c:160 +msgid "[ arg... ]" +msgstr "[ arg... ]" + +#: builtins.c:162 +msgid "times" +msgstr "times" + +#: builtins.c:164 +#, fuzzy +msgid "trap [-lp] [[arg] signal_spec ...]" +msgstr "trap [arg] [signal_spec] vagy trap -l" + +#: builtins.c:166 +#, fuzzy +msgid "type [-afptP] name [name ...]" +msgstr "type [-apt] név [név ...]" + +#: builtins.c:169 +#, fuzzy +msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]" +msgstr "ulimit [-SHacdfmstpnuv] [határ]" + +#: builtins.c:172 +#, fuzzy +msgid "umask [-p] [-S] [mode]" +msgstr "mask [-S] [mód]" + +#: builtins.c:175 +#, fuzzy +msgid "wait [id]" +msgstr "wait [n]" + +#: builtins.c:179 +#, fuzzy +msgid "wait [pid]" +msgstr "wait [n]" + +#: builtins.c:182 +#, fuzzy +msgid "for NAME [in WORDS ... ] ; do COMMANDS; done" +msgstr "for NÉV [in SZAVAK ... ;] do PARANCSOK; done" + +#: builtins.c:184 +#, fuzzy +msgid "for (( exp1; exp2; exp3 )); do COMMANDS; done" +msgstr "for NÉV [in SZAVAK ... ;] do PARANCSOK; done" + +#: builtins.c:186 +msgid "select NAME [in WORDS ... ;] do COMMANDS; done" +msgstr "select NÉV [in SZAVAK ... ;] do PARANCSOK; done" + +#: builtins.c:188 +msgid "time [-p] pipeline" +msgstr "" + +#: builtins.c:190 +msgid "case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac" +msgstr "case SZÓ in [MINTA [| MINTA]...) PARANCSOK ;;]... esac" + +#: builtins.c:192 +msgid "" +"if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else " +"COMMANDS; ] fi" +msgstr "" +"if PARANCSOK; then PARANCSOK; [ elif PARANCSOK; then PARANCSOK; ]... [ else " +"PARANCSOK; ] fi" + +#: builtins.c:194 +msgid "while COMMANDS; do COMMANDS; done" +msgstr "while PARANCSOK; do PARANCSOK; done" + +#: builtins.c:196 +msgid "until COMMANDS; do COMMANDS; done" +msgstr "until PARANCSOK; do PARANCSOK; done" + +#: builtins.c:198 +#, fuzzy +msgid "function name { COMMANDS ; } or name () { COMMANDS ; }" +msgstr "function NÉV { PARANCSOK ; } vagy NÉV () { PARANCSOK ; }" + +#: builtins.c:200 +#, fuzzy +msgid "{ COMMANDS ; }" +msgstr "{ PARANCSOK }" + +#: builtins.c:202 +#, fuzzy +msgid "job_spec [&]" +msgstr "fg [munka_folyamat]" + +#: builtins.c:204 +#, fuzzy +msgid "(( expression ))" +msgstr "várható kifejezés" + +#: builtins.c:206 +#, fuzzy +msgid "[[ expression ]]" +msgstr "várható kifejezés" + +#: builtins.c:208 +#, fuzzy +msgid "variables - Names and meanings of some shell variables" +msgstr "" +"A parancsértelmezõ változói felhasználhatók operandusként. A változó neve" + +#: builtins.c:211 +#, fuzzy +msgid "pushd [-n] [+N | -N | dir]" +msgstr "pushd [könyvtár | +N | -N] [-n]" + +#: builtins.c:215 +#, fuzzy +msgid "popd [-n] [+N | -N]" +msgstr "popd [+N | -N] [-n]" + +#: builtins.c:219 +msgid "dirs [-clpv] [+N] [-N]" +msgstr "dirs [-clpv] [+N] [-N]" + +#: builtins.c:222 +#, fuzzy +msgid "shopt [-pqsu] [-o] [optname ...]" +msgstr "shopt [-pqsu] [-o hosszú opciók] optnév [optnév...]" + +#: builtins.c:224 +msgid "printf [-v var] format [arguments]" +msgstr "" + +#: builtins.c:227 +msgid "" +"complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W " +"wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] " +"[name ...]" +msgstr "" + +#: builtins.c:231 +msgid "" +"compgen [-abcdefgjksuv] [-o option] [-A action] [-G globpat] [-W wordlist] " +"[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]" +msgstr "" + +#: builtins.c:235 +#, fuzzy +msgid "compopt [-o|+o option] [name ...]" +msgstr "type [-apt] név [név ...]" + +#: builtins.c:238 +msgid "" +"mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c " +"quantum] [array]" +msgstr "" + +#: builtins.c:250 +msgid "" +"Define or display aliases.\n" +" \n" +" Without arguments, `alias' prints the list of aliases in the reusable\n" +" form `alias NAME=VALUE' on standard output.\n" +" \n" +" Otherwise, an alias is defined for each NAME whose VALUE is given.\n" +" A trailing space in VALUE causes the next word to be checked for\n" +" alias substitution when the alias is expanded.\n" +" \n" +" Options:\n" +" -p\tPrint all defined aliases in a reusable format\n" +" \n" +" Exit Status:\n" +" alias returns true unless a NAME is supplied for which no alias has " +"been\n" +" defined." +msgstr "" + +#: builtins.c:272 +#, fuzzy +msgid "" +"Remove each NAME from the list of defined aliases.\n" +" \n" +" Options:\n" +" -a\tremove all alias definitions.\n" +" \n" +" Return success unless a NAME is not an existing alias." +msgstr "NÉV eltávolítása a meghatározott aliasok listájából. A -a opció" + +#: builtins.c:285 +msgid "" +"Set Readline key bindings and variables.\n" +" \n" +" Bind a key sequence to a Readline function or a macro, or set a\n" +" Readline variable. The non-option argument syntax is equivalent to\n" +" that found in ~/.inputrc, but must be passed as a single argument:\n" +" e.g., bind '\"\\C-x\\C-r\": re-read-init-file'.\n" +" \n" +" Options:\n" +" -m keymap Use KEYMAP as the keymap for the duration of this\n" +" command. Acceptable keymap names are emacs,\n" +" emacs-standard, emacs-meta, emacs-ctlx, vi, vi-" +"move,\n" +" vi-command, and vi-insert.\n" +" -l List names of functions.\n" +" -P List function names and bindings.\n" +" -p List functions and bindings in a form that can be\n" +" reused as input.\n" +" -S List key sequences that invoke macros and their " +"values\n" +" -s List key sequences that invoke macros and their " +"values\n" +" in a form that can be reused as input.\n" +" -V List variable names and values\n" +" -v List variable names and values in a form that can\n" +" be reused as input.\n" +" -q function-name Query about which keys invoke the named function.\n" +" -u function-name Unbind all keys which are bound to the named " +"function.\n" +" -r keyseq Remove the binding for KEYSEQ.\n" +" -f filename Read key bindings from FILENAME.\n" +" -x keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n" +" \t\t\t\tKEYSEQ is entered.\n" +" \n" +" Exit Status:\n" +" bind returns 0 unless an unrecognized option is given or an error occurs." +msgstr "" + +#: builtins.c:322 +#, fuzzy +msgid "" +"Exit for, while, or until loops.\n" +" \n" +" Exit a FOR, WHILE or UNTIL loop. If N is specified, break N enclosing\n" +" loops.\n" +" \n" +" Exit Status:\n" +" The exit status is 0 unless N is not greater than or equal to 1." +msgstr "" +"Folytatja a következõ egy szinttel magasabban elhelyezkedõ FOR, WHILE vagy " +"UNTIL hurokkal." + +#: builtins.c:334 +#, fuzzy +msgid "" +"Resume for, while, or until loops.\n" +" \n" +" Resumes the next iteration of the enclosing FOR, WHILE or UNTIL loop.\n" +" If N is specified, resumes the Nth enclosing loop.\n" +" \n" +" Exit Status:\n" +" The exit status is 0 unless N is not greater than or equal to 1." +msgstr "" +"Folytatja a következõ egy szinttel magasabban elhelyezkedõ FOR, WHILE vagy " +"UNTIL hurokkal." + +#: builtins.c:346 +msgid "" +"Execute shell builtins.\n" +" \n" +" Execute SHELL-BUILTIN with arguments ARGs without performing command\n" +" lookup. This is useful when you wish to reimplement a shell builtin\n" +" as a shell function, but need to execute the builtin within the " +"function.\n" +" \n" +" Exit Status:\n" +" Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is\n" +" not a shell builtin.." +msgstr "" + +#: builtins.c:361 +msgid "" +"Return the context of the current subroutine call.\n" +" \n" +" Without EXPR, returns \"$line $filename\". With EXPR, returns\n" +" \"$line $subroutine $filename\"; this extra information can be used to\n" +" provide a stack trace.\n" +" \n" +" The value of EXPR indicates how many call frames to go back before the\n" +" current one; the top frame is frame 0.\n" +" \n" +" Exit Status:\n" +" Returns 0 unless the shell is not executing a shell function or EXPR\n" +" is invalid." +msgstr "" + +#: builtins.c:379 +msgid "" +"Change the shell working directory.\n" +" \n" +" Change the current directory to DIR. The default DIR is the value of " +"the\n" +" HOME shell variable.\n" +" \n" +" The variable CDPATH defines the search path for the directory " +"containing\n" +" DIR. Alternative directory names in CDPATH are separated by a colon " +"(:).\n" +" A null directory name is the same as the current directory. If DIR " +"begins\n" +" with a slash (/), then CDPATH is not used.\n" +" \n" +" If the directory is not found, and the shell option `cdable_vars' is " +"set,\n" +" the word is assumed to be a variable name. If that variable has a " +"value,\n" +" its value is used for DIR.\n" +" \n" +" Options:\n" +" -L\tforce symbolic links to be followed\n" +" -P\tuse the physical directory structure without following symbolic\n" +" \tlinks\n" +" \n" +" The default is to follow symbolic links, as if `-L' were specified.\n" +" \n" +" Exit Status:\n" +" Returns 0 if the directory is changed; non-zero otherwise." +msgstr "" + +#: builtins.c:407 +msgid "" +"Print the name of the current working directory.\n" +" \n" +" Options:\n" +" -L\tprint the value of $PWD if it names the current working\n" +" \tdirectory\n" +" -P\tprint the physical directory, without any symbolic links\n" +" \n" +" By default, `pwd' behaves as if `-L' were specified.\n" +" \n" +" Exit Status:\n" +" Returns 0 unless an invalid option is given or the current directory\n" +" cannot be read." +msgstr "" + +#: builtins.c:424 +#, fuzzy +msgid "" +"Null command.\n" +" \n" +" No effect; the command does nothing.\n" +" \n" +" Exit Status:\n" +" Always succeeds." +msgstr "Nem csinál semmit ez a parancs. A visszatérési értéke 0." + +#: builtins.c:435 +msgid "" +"Return a successful result.\n" +" \n" +" Exit Status:\n" +" Always succeeds." +msgstr "" + +#: builtins.c:444 +msgid "" +"Return an unsuccessful result.\n" +" \n" +" Exit Status:\n" +" Always fails." +msgstr "" + +#: builtins.c:453 +msgid "" +"Execute a simple command or display information about commands.\n" +" \n" +" Runs COMMAND with ARGS suppressing shell function lookup, or display\n" +" information about the specified COMMANDs. Can be used to invoke " +"commands\n" +" on disk when a function with the same name exists.\n" +" \n" +" Options:\n" +" -p\tuse a default value for PATH that is guaranteed to find all of\n" +" \tthe standard utilities\n" +" -v\tprint a description of COMMAND similar to the `type' builtin\n" +" -V\tprint a more verbose description of each COMMAND\n" +" \n" +" Exit Status:\n" +" Returns exit status of COMMAND, or failure if COMMAND is not found." +msgstr "" + +#: builtins.c:472 +msgid "" +"Set variable values and attributes.\n" +" \n" +" Declare variables and give them attributes. If no NAMEs are given,\n" +" display the attributes and values of all variables.\n" +" \n" +" Options:\n" +" -f\trestrict action or display to function names and definitions\n" +" -F\trestrict display to function names only (plus line number and\n" +" \tsource file when debugging)\n" +" -p\tdisplay the attributes and value of each NAME\n" +" \n" +" Options which set attributes:\n" +" -a\tto make NAMEs indexed arrays (if supported)\n" +" -A\tto make NAMEs associative arrays (if supported)\n" +" -i\tto make NAMEs have the `integer' attribute\n" +" -l\tto convert NAMEs to lower case on assignment\n" +" -r\tto make NAMEs readonly\n" +" -t\tto make NAMEs have the `trace' attribute\n" +" -u\tto convert NAMEs to upper case on assignment\n" +" -x\tto make NAMEs export\n" +" \n" +" Using `+' instead of `-' turns off the given attribute.\n" +" \n" +" Variables with the integer attribute have arithmetic evaluation (see\n" +" the `let' command) performed when the variable is assigned a value.\n" +" \n" +" When used in a function, `declare' makes NAMEs local, as with the " +"`local'\n" +" command.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" + +#: builtins.c:508 +msgid "" +"Set variable values and attributes.\n" +" \n" +" Obsolete. See `help declare'." +msgstr "" + +#: builtins.c:516 +msgid "" +"Define local variables.\n" +" \n" +" Create a local variable called NAME, and give it VALUE. OPTION can\n" +" be any option accepted by `declare'.\n" +" \n" +" Local variables can only be used within a function; they are visible\n" +" only to the function where they are defined and its children.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied, an error occurs,\n" +" or the shell is not executing a function." +msgstr "" + +#: builtins.c:533 +msgid "" +"Write arguments to the standard output.\n" +" \n" +" Display the ARGs on the standard output followed by a newline.\n" +" \n" +" Options:\n" +" -n\tdo not append a newline\n" +" -e\tenable interpretation of the following backslash escapes\n" +" -E\texplicitly suppress interpretation of backslash escapes\n" +" \n" +" `echo' interprets the following backslash-escaped characters:\n" +" \\a\talert (bell)\n" +" \\b\tbackspace\n" +" \\c\tsuppress further output\n" +" \\e\tescape character\n" +" \\f\tform feed\n" +" \\n\tnew line\n" +" \\r\tcarriage return\n" +" \\t\thorizontal tab\n" +" \\v\tvertical tab\n" +" \\\\\tbackslash\n" +" \\0nnn\tthe character whose ASCII code is NNN (octal). NNN can be\n" +" \t0 to 3 octal digits\n" +" \\xHH\tthe eight-bit character whose value is HH (hexadecimal). HH\n" +" \tcan be one or two hex digits\n" +" \n" +" Exit Status:\n" +" Returns success unless a write error occurs." +msgstr "" + +#: builtins.c:567 +msgid "" +"Write arguments to the standard output.\n" +" \n" +" Display the ARGs on the standard output followed by a newline.\n" +" \n" +" Options:\n" +" -n\tdo not append a newline\n" +" \n" +" Exit Status:\n" +" Returns success unless a write error occurs." +msgstr "" + +#: builtins.c:582 +msgid "" +"Enable and disable shell builtins.\n" +" \n" +" Enables and disables builtin shell commands. Disabling allows you to\n" +" execute a disk command which has the same name as a shell builtin\n" +" without using a full pathname.\n" +" \n" +" Options:\n" +" -a\tprint a list of builtins showing whether or not each is enabled\n" +" -n\tdisable each NAME or display a list of disabled builtins\n" +" -p\tprint the list of builtins in a reusable format\n" +" -s\tprint only the names of Posix `special' builtins\n" +" \n" +" Options controlling dynamic loading:\n" +" -f\tLoad builtin NAME from shared object FILENAME\n" +" -d\tRemove a builtin loaded with -f\n" +" \n" +" Without options, each NAME is enabled.\n" +" \n" +" To use the `test' found in $PATH instead of the shell builtin\n" +" version, type `enable -n test'.\n" +" \n" +" Exit Status:\n" +" Returns success unless NAME is not a shell builtin or an error occurs." +msgstr "" + +#: builtins.c:610 +msgid "" +"Execute arguments as a shell command.\n" +" \n" +" Combine ARGs into a single string, use the result as input to the " +"shell,\n" +" and execute the resulting commands.\n" +" \n" +" Exit Status:\n" +" Returns exit status of command or success if command is null." +msgstr "" + +#: builtins.c:622 +msgid "" +"Parse option arguments.\n" +" \n" +" Getopts is used by shell procedures to parse positional parameters\n" +" as options.\n" +" \n" +" OPTSTRING contains the option letters to be recognized; if a letter\n" +" is followed by a colon, the option is expected to have an argument,\n" +" which should be separated from it by white space.\n" +" \n" +" Each time it is invoked, getopts will place the next option in the\n" +" shell variable $name, initializing name if it does not exist, and\n" +" the index of the next argument to be processed into the shell\n" +" variable OPTIND. OPTIND is initialized to 1 each time the shell or\n" +" a shell script is invoked. When an option requires an argument,\n" +" getopts places that argument into the shell variable OPTARG.\n" +" \n" +" getopts reports errors in one of two ways. If the first character\n" +" of OPTSTRING is a colon, getopts uses silent error reporting. In\n" +" this mode, no error messages are printed. If an invalid option is\n" +" seen, getopts places the option character found into OPTARG. If a\n" +" required argument is not found, getopts places a ':' into NAME and\n" +" sets OPTARG to the option character found. If getopts is not in\n" +" silent mode, and an invalid option is seen, getopts places '?' into\n" +" NAME and unsets OPTARG. If a required argument is not found, a '?'\n" +" is placed in NAME, OPTARG is unset, and a diagnostic message is\n" +" printed.\n" +" \n" +" If the shell variable OPTERR has the value 0, getopts disables the\n" +" printing of error messages, even if the first character of\n" +" OPTSTRING is not a colon. OPTERR has the value 1 by default.\n" +" \n" +" Getopts normally parses the positional parameters ($0 - $9), but if\n" +" more arguments are given, they are parsed instead.\n" +" \n" +" Exit Status:\n" +" Returns success if an option is found; fails if the end of options is\n" +" encountered or an error occurs." +msgstr "" + +#: builtins.c:664 +msgid "" +"Replace the shell with the given command.\n" +" \n" +" Execute COMMAND, replacing this shell with the specified program.\n" +" ARGUMENTS become the arguments to COMMAND. If COMMAND is not " +"specified,\n" +" any redirections take effect in the current shell.\n" +" \n" +" Options:\n" +" -a name\tpass NAME as the zeroth argument to COMMAND\n" +" -c\t\texecute COMMAND with an empty environment\n" +" -l\t\tplace a dash in the zeroth argument to COMMAND\n" +" \n" +" If the command cannot be executed, a non-interactive shell exits, " +"unless\n" +" the shell option `execfail' is set.\n" +" \n" +" Exit Status:\n" +" Returns success unless COMMAND is not found or a redirection error " +"occurs." +msgstr "" + +#: builtins.c:685 +#, fuzzy +msgid "" +"Exit the shell.\n" +" \n" +" Exits the shell with a status of N. If N is omitted, the exit status\n" +" is that of the last command executed." +msgstr "Kilép a parancsértelmezõbõl N státusszal. Ha az N-t kihagyja akkor a " + +#: builtins.c:694 +msgid "" +"Exit a login shell.\n" +" \n" +" Exits a login shell with exit status N. Returns an error if not " +"executed\n" +" in a login shell." +msgstr "" + +#: builtins.c:704 +msgid "" +"Display or execute commands from the history list.\n" +" \n" +" fc is used to list or edit and re-execute commands from the history " +"list.\n" +" FIRST and LAST can be numbers specifying the range, or FIRST can be a\n" +" string, which means the most recent command beginning with that\n" +" string.\n" +" \n" +" Options:\n" +" -e ENAME\tselect which editor to use. Default is FCEDIT, then " +"EDITOR,\n" +" \t\tthen vi\n" +" -l \tlist lines instead of editing\n" +" -n\tomit line numbers when listing\n" +" -r\treverse the order of the lines (newest listed first)\n" +" \n" +" With the `fc -s [pat=rep ...] [command]' format, COMMAND is\n" +" re-executed after the substitution OLD=NEW is performed.\n" +" \n" +" A useful alias to use with this is r='fc -s', so that typing `r cc'\n" +" runs the last command beginning with `cc' and typing `r' re-executes\n" +" the last command.\n" +" \n" +" Exit Status:\n" +" Returns success or status of executed command; non-zero if an error " +"occurs." +msgstr "" + +#: builtins.c:734 +#, fuzzy +msgid "" +"Move job to the foreground.\n" +" \n" +" Place the job identified by JOB_SPEC in the foreground, making it the\n" +" current job. If JOB_SPEC is not present, the shell's notion of the\n" +" current job is used.\n" +" \n" +" Exit Status:\n" +" Status of command placed in foreground, or failure if an error occurs." +msgstr "" +"A munka_folyamat-ot az elõtérbe helyezi és jelenlegi folyamatot csinál " +"belõle." + +#: builtins.c:749 +msgid "" +"Move jobs to the background.\n" +" \n" +" Place the jobs identified by each JOB_SPEC in the background, as if " +"they\n" +" had been started with `&'. If JOB_SPEC is not present, the shell's " +"notion\n" +" of the current job is used.\n" +" \n" +" Exit Status:\n" +" Returns success unless job control is not enabled or an error occurs." +msgstr "" + +#: builtins.c:763 +msgid "" +"Remember or display program locations.\n" +" \n" +" Determine and remember the full pathname of each command NAME. If\n" +" no arguments are given, information about remembered commands is " +"displayed.\n" +" \n" +" Options:\n" +" -d\t\tforget the remembered location of each NAME\n" +" -l\t\tdisplay in a format that may be reused as input\n" +" -p pathname\tuse PATHNAME is the full pathname of NAME\n" +" -r\t\tforget all remembered locations\n" +" -t\t\tprint the remembered location of each NAME, preceding\n" +" \t\teach location with the corresponding NAME if multiple\n" +" \t\tNAMEs are given\n" +" Arguments:\n" +" NAME\t\tEach NAME is searched for in $PATH and added to the list\n" +" \t\tof remembered commands.\n" +" \n" +" Exit Status:\n" +" Returns success unless NAME is not found or an invalid option is given." +msgstr "" + +#: builtins.c:788 +msgid "" +"Display information about builtin commands.\n" +" \n" +" Displays brief summaries of builtin commands. If PATTERN is\n" +" specified, gives detailed help on all commands matching PATTERN,\n" +" otherwise the list of help topics is printed.\n" +" \n" +" Options:\n" +" -d\toutput short description for each topic\n" +" -m\tdisplay usage in pseudo-manpage format\n" +" -s\toutput only a short usage synopsis for each topic matching\n" +" \tPATTERN\n" +" \n" +" Arguments:\n" +" PATTERN\tPattern specifiying a help topic\n" +" \n" +" Exit Status:\n" +" Returns success unless PATTERN is not found or an invalid option is " +"given." +msgstr "" + +#: builtins.c:812 +msgid "" +"Display or manipulate the history list.\n" +" \n" +" Display the history list with line numbers, prefixing each modified\n" +" entry with a `*'. An argument of N lists only the last N entries.\n" +" \n" +" Options:\n" +" -c\tclear the history list by deleting all of the entries\n" +" -d offset\tdelete the history entry at offset OFFSET.\n" +" \n" +" -a\tappend history lines from this session to the history file\n" +" -n\tread all history lines not already read from the history file\n" +" -r\tread the history file and append the contents to the history\n" +" \tlist\n" +" -w\twrite the current history to the history file\n" +" \tand append them to the history list\n" +" \n" +" -p\tperform history expansion on each ARG and display the result\n" +" \twithout storing it in the history list\n" +" -s\tappend the ARGs to the history list as a single entry\n" +" \n" +" If FILENAME is given, it is used as the history file. Otherwise,\n" +" if $HISTFILE has a value, that is used, else ~/.bash_history.\n" +" \n" +" If the $HISTTIMEFORMAT variable is set and not null, its value is used\n" +" as a format string for strftime(3) to print the time stamp associated\n" +" with each displayed history entry. No time stamps are printed " +"otherwise.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or an error occurs." +msgstr "" + +#: builtins.c:848 +msgid "" +"Display status of jobs.\n" +" \n" +" Lists the active jobs. JOBSPEC restricts output to that job.\n" +" Without options, the status of all active jobs is displayed.\n" +" \n" +" Options:\n" +" -l\tlists process IDs in addition to the normal information\n" +" -n\tlist only processes that have changed status since the last\n" +" \tnotification\n" +" -p\tlists process IDs only\n" +" -r\trestrict output to running jobs\n" +" -s\trestrict output to stopped jobs\n" +" \n" +" If -x is supplied, COMMAND is run after all job specifications that\n" +" appear in ARGS have been replaced with the process ID of that job's\n" +" process group leader.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or an error occurs.\n" +" If -x is used, returns the exit status of COMMAND." +msgstr "" + +#: builtins.c:875 +msgid "" +"Remove jobs from current shell.\n" +" \n" +" Removes each JOBSPEC argument from the table of active jobs. Without\n" +" any JOBSPECs, the shell uses its notion of the current job.\n" +" \n" +" Options:\n" +" -a\tremove all jobs if JOBSPEC is not supplied\n" +" -h\tmark each JOBSPEC so that SIGHUP is not sent to the job if the\n" +" \tshell receives a SIGHUP\n" +" -r\tremove only running jobs\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option or JOBSPEC is given." +msgstr "" + +#: builtins.c:894 +msgid "" +"Send a signal to a job.\n" +" \n" +" Send the processes identified by PID or JOBSPEC the signal named by\n" +" SIGSPEC or SIGNUM. If neither SIGSPEC nor SIGNUM is present, then\n" +" SIGTERM is assumed.\n" +" \n" +" Options:\n" +" -s sig\tSIG is a signal name\n" +" -n sig\tSIG is a signal number\n" +" -l\tlist the signal names; if arguments follow `-l' they are\n" +" \tassumed to be signal numbers for which names should be listed\n" +" \n" +" Kill is a shell builtin for two reasons: it allows job IDs to be used\n" +" instead of process IDs, and allows processes to be killed if the limit\n" +" on processes that you can create is reached.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or an error occurs." +msgstr "" + +#: builtins.c:917 +msgid "" +"Evaluate arithmetic expressions.\n" +" \n" +" Evaluate each ARG as an arithmetic expression. Evaluation is done in\n" +" fixed-width integers with no check for overflow, though division by 0\n" +" is trapped and flagged as an error. The following list of operators is\n" +" grouped into levels of equal-precedence operators. The levels are " +"listed\n" +" in order of decreasing precedence.\n" +" \n" +" \tid++, id--\tvariable post-increment, post-decrement\n" +" \t++id, --id\tvariable pre-increment, pre-decrement\n" +" \t-, +\t\tunary minus, plus\n" +" \t!, ~\t\tlogical and bitwise negation\n" +" \t**\t\texponentiation\n" +" \t*, /, %\t\tmultiplication, division, remainder\n" +" \t+, -\t\taddition, subtraction\n" +" \t<<, >>\t\tleft and right bitwise shifts\n" +" \t<=, >=, <, >\tcomparison\n" +" \t==, !=\t\tequality, inequality\n" +" \t&\t\tbitwise AND\n" +" \t^\t\tbitwise XOR\n" +" \t|\t\tbitwise OR\n" +" \t&&\t\tlogical AND\n" +" \t||\t\tlogical OR\n" +" \texpr ? expr : expr\n" +" \t\t\tconditional operator\n" +" \t=, *=, /=, %=,\n" +" \t+=, -=, <<=, >>=,\n" +" \t&=, ^=, |=\tassignment\n" +" \n" +" Shell variables are allowed as operands. The name of the variable\n" +" is replaced by its value (coerced to a fixed-width integer) within\n" +" an expression. The variable need not have its integer attribute\n" +" turned on to be used in an expression.\n" +" \n" +" Operators are evaluated in order of precedence. Sub-expressions in\n" +" parentheses are evaluated first and may override the precedence\n" +" rules above.\n" +" \n" +" Exit Status:\n" +" If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise.." +msgstr "" + +#: builtins.c:962 +msgid "" +"Read a line from the standard input and split it into fields.\n" +" \n" +" Reads a single line from the standard input, or from file descriptor FD\n" +" if the -u option is supplied. The line is split into fields as with " +"word\n" +" splitting, and the first word is assigned to the first NAME, the second\n" +" word to the second NAME, and so on, with any leftover words assigned to\n" +" the last NAME. Only the characters found in $IFS are recognized as " +"word\n" +" delimiters.\n" +" \n" +" If no NAMEs are supplied, the line read is stored in the REPLY " +"variable.\n" +" \n" +" Options:\n" +" -a array\tassign the words read to sequential indices of the array\n" +" \t\tvariable ARRAY, starting at zero\n" +" -d delim\tcontinue until the first character of DELIM is read, rather\n" +" \t\tthan newline\n" +" -e\t\tuse Readline to obtain the line in an interactive shell\n" +" -i text\tUse TEXT as the initial text for Readline\n" +" -n nchars\treturn after reading NCHARS characters rather than waiting\n" +" \t\tfor a newline\n" +" -p prompt\toutput the string PROMPT without a trailing newline before\n" +" \t\tattempting to read\n" +" -r\t\tdo not allow backslashes to escape any characters\n" +" -s\t\tdo not echo input coming from a terminal\n" +" -t timeout\ttime out and return failure if a complete line of input " +"is\n" +" \t\tnot read withint TIMEOUT seconds. The value of the TMOUT\n" +" \t\tvariable is the default timeout. TIMEOUT may be a\n" +" \t\tfractional number. If TIMEOUT is 0, read returns success only\n" +" \t\tif input is available on the specified file descriptor. The\n" +" \t\texit status is greater than 128 if the timeout is exceeded\n" +" -u fd\t\tread from file descriptor FD instead of the standard input\n" +" \n" +" Exit Status:\n" +" The return code is zero, unless end-of-file is encountered, read times " +"out,\n" +" or an invalid file descriptor is supplied as the argument to -u." +msgstr "" + +#: builtins.c:1002 +msgid "" +"Return from a shell function.\n" +" \n" +" Causes a function or sourced script to exit with the return value\n" +" specified by N. If N is omitted, the return status is that of the\n" +" last command executed within the function or script.\n" +" \n" +" Exit Status:\n" +" Returns N, or failure if the shell is not executing a function or script." +msgstr "" + +#: builtins.c:1015 +msgid "" +"Set or unset values of shell options and positional parameters.\n" +" \n" +" Change the value of shell attributes and positional parameters, or\n" +" display the names and values of shell variables.\n" +" \n" +" Options:\n" +" -a Mark variables which are modified or created for export.\n" +" -b Notify of job termination immediately.\n" +" -e Exit immediately if a command exits with a non-zero status.\n" +" -f Disable file name generation (globbing).\n" +" -h Remember the location of commands as they are looked up.\n" +" -k All assignment arguments are placed in the environment for a\n" +" command, not just those that precede the command name.\n" +" -m Job control is enabled.\n" +" -n Read commands but do not execute them.\n" +" -o option-name\n" +" Set the variable corresponding to option-name:\n" +" allexport same as -a\n" +" braceexpand same as -B\n" +" emacs use an emacs-style line editing interface\n" +" errexit same as -e\n" +" errtrace same as -E\n" +" functrace same as -T\n" +" hashall same as -h\n" +" histexpand same as -H\n" +" history enable command history\n" +" ignoreeof the shell will not exit upon reading EOF\n" +" interactive-comments\n" +" allow comments to appear in interactive commands\n" +" keyword same as -k\n" +" monitor same as -m\n" +" noclobber same as -C\n" +" noexec same as -n\n" +" noglob same as -f\n" +" nolog currently accepted but ignored\n" +" notify same as -b\n" +" nounset same as -u\n" +" onecmd same as -t\n" +" physical same as -P\n" +" pipefail the return value of a pipeline is the status of\n" +" the last command to exit with a non-zero status,\n" +" or zero if no command exited with a non-zero " +"status\n" +" posix change the behavior of bash where the default\n" +" operation differs from the Posix standard to\n" +" match the standard\n" +" privileged same as -p\n" +" verbose same as -v\n" +" vi use a vi-style line editing interface\n" +" xtrace same as -x\n" +" -p Turned on whenever the real and effective user ids do not match.\n" +" Disables processing of the $ENV file and importing of shell\n" +" functions. Turning this option off causes the effective uid and\n" +" gid to be set to the real uid and gid.\n" +" -t Exit after reading and executing one command.\n" +" -u Treat unset variables as an error when substituting.\n" +" -v Print shell input lines as they are read.\n" +" -x Print commands and their arguments as they are executed.\n" +" -B the shell will perform brace expansion\n" +" -C If set, disallow existing regular files to be overwritten\n" +" by redirection of output.\n" +" -E If set, the ERR trap is inherited by shell functions.\n" +" -H Enable ! style history substitution. This flag is on\n" +" by default when the shell is interactive.\n" +" -P If set, do not follow symbolic links when executing commands\n" +" such as cd which change the current directory.\n" +" -T If set, the DEBUG trap is inherited by shell functions.\n" +" - Assign any remaining arguments to the positional parameters.\n" +" The -x and -v options are turned off.\n" +" \n" +" Using + rather than - causes these flags to be turned off. The\n" +" flags can also be used upon invocation of the shell. The current\n" +" set of flags may be found in $-. The remaining n ARGs are positional\n" +" parameters and are assigned, in order, to $1, $2, .. $n. If no\n" +" ARGs are given, all shell variables are printed.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given." +msgstr "" + +#: builtins.c:1097 +msgid "" +"Unset values and attributes of shell variables and functions.\n" +" \n" +" For each NAME, remove the corresponding variable or function.\n" +" \n" +" Options:\n" +" -f\ttreat each NAME as a shell function\n" +" -v\ttreat each NAME as a shell variable\n" +" \n" +" Without options, unset first tries to unset a variable, and if that " +"fails,\n" +" tries to unset a function.\n" +" \n" +" Some variables cannot be unset; also see `readonly'.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or a NAME is read-only." +msgstr "" + +#: builtins.c:1117 +msgid "" +"Set export attribute for shell variables.\n" +" \n" +" Marks each NAME for automatic export to the environment of subsequently\n" +" executed commands. If VALUE is supplied, assign VALUE before " +"exporting.\n" +" \n" +" Options:\n" +" -f\trefer to shell functions\n" +" -n\tremove the export property from each NAME\n" +" -p\tdisplay a list of all exported variables and functions\n" +" \n" +" An argument of `--' disables further option processing.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or NAME is invalid." +msgstr "" + +#: builtins.c:1136 +msgid "" +"Mark shell variables as unchangeable.\n" +" \n" +" Mark each NAME as read-only; the values of these NAMEs may not be\n" +" changed by subsequent assignment. If VALUE is supplied, assign VALUE\n" +" before marking as read-only.\n" +" \n" +" Options:\n" +" -a\trefer to indexed array variables\n" +" -A\trefer to associative array variables\n" +" -f\trefer to shell functions\n" +" -p\tdisplay a list of all readonly variables and functions\n" +" \n" +" An argument of `--' disables further option processing.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or NAME is invalid." +msgstr "" + +#: builtins.c:1157 +msgid "" +"Shift positional parameters.\n" +" \n" +" Rename the positional parameters $N+1,$N+2 ... to $1,$2 ... If N is\n" +" not given, it is assumed to be 1.\n" +" \n" +" Exit Status:\n" +" Returns success unless N is negative or greater than $#." +msgstr "" + +#: builtins.c:1169 builtins.c:1184 +msgid "" +"Execute commands from a file in the current shell.\n" +" \n" +" Read and execute commands from FILENAME in the current shell. The\n" +" entries in $PATH are used to find the directory containing FILENAME.\n" +" If any ARGUMENTS are supplied, they become the positional parameters\n" +" when FILENAME is executed.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed in FILENAME; fails if\n" +" FILENAME cannot be read." +msgstr "" + +#: builtins.c:1200 +msgid "" +"Suspend shell execution.\n" +" \n" +" Suspend the execution of this shell until it receives a SIGCONT signal.\n" +" Unless forced, login shells cannot be suspended.\n" +" \n" +" Options:\n" +" -f\tforce the suspend, even if the shell is a login shell\n" +" \n" +" Exit Status:\n" +" Returns success unless job control is not enabled or an error occurs." +msgstr "" + +#: builtins.c:1216 +msgid "" +"Evaluate conditional expression.\n" +" \n" +" Exits with a status of 0 (true) or 1 (false) depending on\n" +" the evaluation of EXPR. Expressions may be unary or binary. Unary\n" +" expressions are often used to examine the status of a file. There\n" +" are string operators as well, and numeric comparison operators.\n" +" \n" +" File operators:\n" +" \n" +" -a FILE True if file exists.\n" +" -b FILE True if file is block special.\n" +" -c FILE True if file is character special.\n" +" -d FILE True if file is a directory.\n" +" -e FILE True if file exists.\n" +" -f FILE True if file exists and is a regular file.\n" +" -g FILE True if file is set-group-id.\n" +" -h FILE True if file is a symbolic link.\n" +" -L FILE True if file is a symbolic link.\n" +" -k FILE True if file has its `sticky' bit set.\n" +" -p FILE True if file is a named pipe.\n" +" -r FILE True if file is readable by you.\n" +" -s FILE True if file exists and is not empty.\n" +" -S FILE True if file is a socket.\n" +" -t FD True if FD is opened on a terminal.\n" +" -u FILE True if the file is set-user-id.\n" +" -w FILE True if the file is writable by you.\n" +" -x FILE True if the file is executable by you.\n" +" -O FILE True if the file is effectively owned by you.\n" +" -G FILE True if the file is effectively owned by your group.\n" +" -N FILE True if the file has been modified since it was last " +"read.\n" +" \n" +" FILE1 -nt FILE2 True if file1 is newer than file2 (according to\n" +" modification date).\n" +" \n" +" FILE1 -ot FILE2 True if file1 is older than file2.\n" +" \n" +" FILE1 -ef FILE2 True if file1 is a hard link to file2.\n" +" \n" +" String operators:\n" +" \n" +" -z STRING True if string is empty.\n" +" \n" +" -n STRING\n" +" STRING True if string is not empty.\n" +" \n" +" STRING1 = STRING2\n" +" True if the strings are equal.\n" +" STRING1 != STRING2\n" +" True if the strings are not equal.\n" +" STRING1 < STRING2\n" +" True if STRING1 sorts before STRING2 " +"lexicographically.\n" +" STRING1 > STRING2\n" +" True if STRING1 sorts after STRING2 lexicographically.\n" +" \n" +" Other operators:\n" +" \n" +" -o OPTION True if the shell option OPTION is enabled.\n" +" ! EXPR True if expr is false.\n" +" EXPR1 -a EXPR2 True if both expr1 AND expr2 are true.\n" +" EXPR1 -o EXPR2 True if either expr1 OR expr2 is true.\n" +" \n" +" arg1 OP arg2 Arithmetic tests. OP is one of -eq, -ne,\n" +" -lt, -le, -gt, or -ge.\n" +" \n" +" Arithmetic binary operators return true if ARG1 is equal, not-equal,\n" +" less-than, less-than-or-equal, greater-than, or greater-than-or-equal\n" +" than ARG2.\n" +" \n" +" Exit Status:\n" +" Returns success if EXPR evaluates to true; fails if EXPR evaluates to\n" +" false or an invalid argument is given." +msgstr "" + +#: builtins.c:1292 +#, fuzzy +msgid "" +"Evaluate conditional expression.\n" +" \n" +" This is a synonym for the \"test\" builtin, but the last argument must\n" +" be a literal `]', to match the opening `['." +msgstr "" +"egy ']' szövegkonstansnak kell lennie, hogy párban legyen a nyitó '['-val." + +#: builtins.c:1301 +msgid "" +"Display process times.\n" +" \n" +" Prints the accumulated user and system times for the shell and all of " +"its\n" +" child processes.\n" +" \n" +" Exit Status:\n" +" Always succeeds." +msgstr "" + +#: builtins.c:1313 +msgid "" +"Trap signals and other events.\n" +" \n" +" Defines and activates handlers to be run when the shell receives " +"signals\n" +" or other conditions.\n" +" \n" +" ARG is a command to be read and executed when the shell receives the\n" +" signal(s) SIGNAL_SPEC. If ARG is absent (and a single SIGNAL_SPEC\n" +" is supplied) or `-', each specified signal is reset to its original\n" +" value. If ARG is the null string each SIGNAL_SPEC is ignored by the\n" +" shell and by the commands it invokes.\n" +" \n" +" If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell. " +"If\n" +" a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command.\n" +" \n" +" If no arguments are supplied, trap prints the list of commands " +"associated\n" +" with each signal.\n" +" \n" +" Options:\n" +" -l\tprint a list of signal names and their corresponding numbers\n" +" -p\tdisplay the trap commands associated with each SIGNAL_SPEC\n" +" \n" +" Each SIGNAL_SPEC is either a signal name in or a signal " +"number.\n" +" Signal names are case insensitive and the SIG prefix is optional. A\n" +" signal may be sent to the shell with \"kill -signal $$\".\n" +" \n" +" Exit Status:\n" +" Returns success unless a SIGSPEC is invalid or an invalid option is " +"given." +msgstr "" + +#: builtins.c:1345 +msgid "" +"Display information about command type.\n" +" \n" +" For each NAME, indicate how it would be interpreted if used as a\n" +" command name.\n" +" \n" +" Options:\n" +" -a\tdisplay all locations containing an executable named NAME;\n" +" \tincludes aliases, builtins, and functions, if and only if\n" +" \tthe `-p' option is not also used\n" +" -f\tsuppress shell function lookup\n" +" -P\tforce a PATH search for each NAME, even if it is an alias,\n" +" \tbuiltin, or function, and returns the name of the disk file\n" +" \tthat would be executed\n" +" -p\treturns either the name of the disk file that would be executed,\n" +" \tor nothing if `type -t NAME' would not return `file'.\n" +" -t\toutput a single word which is one of `alias', `keyword',\n" +" \t`function', `builtin', `file' or `', if NAME is an alias, shell\n" +" \treserved word, shell function, shell builtin, disk file, or not\n" +" \tfound, respectively\n" +" \n" +" Arguments:\n" +" NAME\tCommand name to be interpreted.\n" +" \n" +" Exit Status:\n" +" Returns success if all of the NAMEs are found; fails if any are not " +"found." +msgstr "" + +#: builtins.c:1376 +msgid "" +"Modify shell resource limits.\n" +" \n" +" Provides control over the resources available to the shell and " +"processes\n" +" it creates, on systems that allow such control.\n" +" \n" +" Options:\n" +" -S\tuse the `soft' resource limit\n" +" -H\tuse the `hard' resource limit\n" +" -a\tall current limits are reported\n" +" -b\tthe socket buffer size\n" +" -c\tthe maximum size of core files created\n" +" -d\tthe maximum size of a process's data segment\n" +" -e\tthe maximum scheduling priority (`nice')\n" +" -f\tthe maximum size of files written by the shell and its children\n" +" -i\tthe maximum number of pending signals\n" +" -l\tthe maximum size a process may lock into memory\n" +" -m\tthe maximum resident set size\n" +" -n\tthe maximum number of open file descriptors\n" +" -p\tthe pipe buffer size\n" +" -q\tthe maximum number of bytes in POSIX message queues\n" +" -r\tthe maximum real-time scheduling priority\n" +" -s\tthe maximum stack size\n" +" -t\tthe maximum amount of cpu time in seconds\n" +" -u\tthe maximum number of user processes\n" +" -v\tthe size of virtual memory\n" +" -x\tthe maximum number of file locks\n" +" \n" +" If LIMIT is given, it is the new value of the specified resource; the\n" +" special LIMIT values `soft', `hard', and `unlimited' stand for the\n" +" current soft limit, the current hard limit, and no limit, respectively.\n" +" Otherwise, the current value of the specified resource is printed. If\n" +" no option is given, then -f is assumed.\n" +" \n" +" Values are in 1024-byte increments, except for -t, which is in seconds,\n" +" -p, which is in increments of 512 bytes, and -u, which is an unscaled\n" +" number of processes.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" + +#: builtins.c:1421 +msgid "" +"Display or set file mode mask.\n" +" \n" +" Sets the user file-creation mask to MODE. If MODE is omitted, prints\n" +" the current value of the mask.\n" +" \n" +" If MODE begins with a digit, it is interpreted as an octal number;\n" +" otherwise it is a symbolic mode string like that accepted by chmod(1).\n" +" \n" +" Options:\n" +" -p\tif MODE is omitted, output in a form that may be reused as input\n" +" -S\tmakes the output symbolic; otherwise an octal number is output\n" +" \n" +" Exit Status:\n" +" Returns success unless MODE is invalid or an invalid option is given." +msgstr "" + +#: builtins.c:1441 +msgid "" +"Wait for job completion and return exit status.\n" +" \n" +" Waits for the process identified by ID, which may be a process ID or a\n" +" job specification, and reports its termination status. If ID is not\n" +" given, waits for all currently active child processes, and the return\n" +" status is zero. If ID is a a job specification, waits for all " +"processes\n" +" in the job's pipeline.\n" +" \n" +" Exit Status:\n" +" Returns the status of ID; fails if ID is invalid or an invalid option " +"is\n" +" given." +msgstr "" + +#: builtins.c:1459 +msgid "" +"Wait for process completion and return exit status.\n" +" \n" +" Waits for the specified process and reports its termination status. If\n" +" PID is not given, all currently active child processes are waited for,\n" +" and the return code is zero. PID must be a process ID.\n" +" \n" +" Exit Status:\n" +" Returns the status of ID; fails if ID is invalid or an invalid option " +"is\n" +" given." +msgstr "" + +#: builtins.c:1474 +msgid "" +"Execute commands for each member in a list.\n" +" \n" +" The `for' loop executes a sequence of commands for each member in a\n" +" list of items. If `in WORDS ...;' is not present, then `in \"$@\"' is\n" +" assumed. For each element in WORDS, NAME is set to that element, and\n" +" the COMMANDS are executed.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" + +#: builtins.c:1488 +msgid "" +"Arithmetic for loop.\n" +" \n" +" Equivalent to\n" +" \t(( EXP1 ))\n" +" \twhile (( EXP2 )); do\n" +" \t\tCOMMANDS\n" +" \t\t(( EXP3 ))\n" +" \tdone\n" +" EXP1, EXP2, and EXP3 are arithmetic expressions. If any expression is\n" +" omitted, it behaves as if it evaluates to 1.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" + +#: builtins.c:1506 +msgid "" +"Select words from a list and execute commands.\n" +" \n" +" The WORDS are expanded, generating a list of words. The\n" +" set of expanded words is printed on the standard error, each\n" +" preceded by a number. If `in WORDS' is not present, `in \"$@\"'\n" +" is assumed. The PS3 prompt is then displayed and a line read\n" +" from the standard input. If the line consists of the number\n" +" corresponding to one of the displayed words, then NAME is set\n" +" to that word. If the line is empty, WORDS and the prompt are\n" +" redisplayed. If EOF is read, the command completes. Any other\n" +" value read causes NAME to be set to null. The line read is saved\n" +" in the variable REPLY. COMMANDS are executed after each selection\n" +" until a break command is executed.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" + +#: builtins.c:1527 +msgid "" +"Report time consumed by pipeline's execution.\n" +" \n" +" Execute PIPELINE and print a summary of the real time, user CPU time,\n" +" and system CPU time spent executing PIPELINE when it terminates.\n" +" \n" +" Options:\n" +" -p\tprint the timing summary in the portable Posix format\n" +" \n" +" The value of the TIMEFORMAT variable is used as the output format.\n" +" \n" +" Exit Status:\n" +" The return status is the return status of PIPELINE." +msgstr "" + +#: builtins.c:1544 +#, fuzzy +msgid "" +"Execute commands based on pattern matching.\n" +" \n" +" Selectively execute COMMANDS based upon WORD matching PATTERN. The\n" +" `|' is used to separate multiple patterns.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "Feltételesen futtatja a PARANCSOT ha a SZÓ megegyezik a MINTÁVAL. A" + +#: builtins.c:1556 +msgid "" +"Execute commands based on conditional.\n" +" \n" +" The `if COMMANDS' list is executed. If its exit status is zero, then " +"the\n" +" `then COMMANDS' list is executed. Otherwise, each `elif COMMANDS' list " +"is\n" +" executed in turn, and if its exit status is zero, the corresponding\n" +" `then COMMANDS' list is executed and the if command completes. " +"Otherwise,\n" +" the `else COMMANDS' list is executed, if present. The exit status of " +"the\n" +" entire construct is the exit status of the last command executed, or " +"zero\n" +" if no condition tested true.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" + +#: builtins.c:1573 +#, fuzzy +msgid "" +"Execute commands as long as a test succeeds.\n" +" \n" +" Expand and execute COMMANDS as long as the final command in the\n" +" `while' COMMANDS has an exit status of zero.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "Kibontja és végrehajtja a PARANCSOT amíg az utolsó parancs a " + +#: builtins.c:1585 +#, fuzzy +msgid "" +"Execute commands as long as a test does not succeed.\n" +" \n" +" Expand and execute COMMANDS as long as the final command in the\n" +" `until' COMMANDS has an exit status which is not zero.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "Kibontja és végrehajtja a PARANCSOT amíg az utolsó parancs a " + +#: builtins.c:1597 +msgid "" +"Define shell function.\n" +" \n" +" Create a shell function named NAME. When invoked as a simple command,\n" +" NAME runs COMMANDs in the calling shell's context. When NAME is " +"invoked,\n" +" the arguments are passed to the function as $1...$n, and the function's\n" +" name is in $FUNCNAME.\n" +" \n" +" Exit Status:\n" +" Returns success unless NAME is readonly." +msgstr "" + +#: builtins.c:1611 +#, fuzzy +msgid "" +"Group commands as a unit.\n" +" \n" +" Run a set of commands in a group. This is one way to redirect an\n" +" entire set of commands.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "Parancsok halmazát futtatja egy csoportban. Ez az egyik módja az" + +#: builtins.c:1623 +msgid "" +"Resume job in foreground.\n" +" \n" +" Equivalent to the JOB_SPEC argument to the `fg' command. Resume a\n" +" stopped or background job. JOB_SPEC can specify either a job name\n" +" or a job number. Following JOB_SPEC with a `&' places the job in\n" +" the background, as if the job specification had been supplied as an\n" +" argument to `bg'.\n" +" \n" +" Exit Status:\n" +" Returns the status of the resumed job." +msgstr "" + +#: builtins.c:1638 +msgid "" +"Evaluate arithmetic expression.\n" +" \n" +" The EXPRESSION is evaluated according to the rules for arithmetic\n" +" evaluation. Equivalent to \"let EXPRESSION\".\n" +" \n" +" Exit Status:\n" +" Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise." +msgstr "" + +#: builtins.c:1650 +msgid "" +"Execute conditional command.\n" +" \n" +" Returns a status of 0 or 1 depending on the evaluation of the " +"conditional\n" +" expression EXPRESSION. Expressions are composed of the same primaries " +"used\n" +" by the `test' builtin, and may be combined using the following " +"operators:\n" +" \n" +" ( EXPRESSION )\tReturns the value of EXPRESSION\n" +" ! EXPRESSION\t\tTrue if EXPRESSION is false; else false\n" +" EXPR1 && EXPR2\tTrue if both EXPR1 and EXPR2 are true; else false\n" +" EXPR1 || EXPR2\tTrue if either EXPR1 or EXPR2 is true; else false\n" +" \n" +" When the `==' and `!=' operators are used, the string to the right of\n" +" the operator is used as a pattern and pattern matching is performed.\n" +" When the `=~' operator is used, the string to the right of the operator\n" +" is matched as a regular expression.\n" +" \n" +" The && and || operators do not evaluate EXPR2 if EXPR1 is sufficient to\n" +" determine the expression's value.\n" +" \n" +" Exit Status:\n" +" 0 or 1 depending on value of EXPRESSION." +msgstr "" + +#: builtins.c:1676 +msgid "" +"Common shell variable names and usage.\n" +" \n" +" BASH_VERSION\tVersion information for this Bash.\n" +" CDPATH\tA colon-separated list of directories to search\n" +" \t\tfor directories given as arguments to `cd'.\n" +" GLOBIGNORE\tA colon-separated list of patterns describing filenames to\n" +" \t\tbe ignored by pathname expansion.\n" +" HISTFILE\tThe name of the file where your command history is stored.\n" +" HISTFILESIZE\tThe maximum number of lines this file can contain.\n" +" HISTSIZE\tThe maximum number of history lines that a running\n" +" \t\tshell can access.\n" +" HOME\tThe complete pathname to your login directory.\n" +" HOSTNAME\tThe name of the current host.\n" +" HOSTTYPE\tThe type of CPU this version of Bash is running under.\n" +" IGNOREEOF\tControls the action of the shell on receipt of an EOF\n" +" \t\tcharacter as the sole input. If set, then the value\n" +" \t\tof it is the number of EOF characters that can be seen\n" +" \t\tin a row on an empty line before the shell will exit\n" +" \t\t(default 10). When unset, EOF signifies the end of input.\n" +" MACHTYPE\tA string describing the current system Bash is running on.\n" +" MAILCHECK\tHow often, in seconds, Bash checks for new mail.\n" +" MAILPATH\tA colon-separated list of filenames which Bash checks\n" +" \t\tfor new mail.\n" +" OSTYPE\tThe version of Unix this version of Bash is running on.\n" +" PATH\tA colon-separated list of directories to search when\n" +" \t\tlooking for commands.\n" +" PROMPT_COMMAND\tA command to be executed before the printing of each\n" +" \t\tprimary prompt.\n" +" PS1\t\tThe primary prompt string.\n" +" PS2\t\tThe secondary prompt string.\n" +" PWD\t\tThe full pathname of the current directory.\n" +" SHELLOPTS\tA colon-separated list of enabled shell options.\n" +" TERM\tThe name of the current terminal type.\n" +" TIMEFORMAT\tThe output format for timing statistics displayed by the\n" +" \t\t`time' reserved word.\n" +" auto_resume\tNon-null means a command word appearing on a line by\n" +" \t\titself is first looked for in the list of currently\n" +" \t\tstopped jobs. If found there, that job is foregrounded.\n" +" \t\tA value of `exact' means that the command word must\n" +" \t\texactly match a command in the list of stopped jobs. A\n" +" \t\tvalue of `substring' means that the command word must\n" +" \t\tmatch a substring of the job. Any other value means that\n" +" \t\tthe command must be a prefix of a stopped job.\n" +" histchars\tCharacters controlling history expansion and quick\n" +" \t\tsubstitution. The first character is the history\n" +" \t\tsubstitution character, usually `!'. The second is\n" +" \t\tthe `quick substitution' character, usually `^'. The\n" +" \t\tthird is the `history comment' character, usually `#'.\n" +" HISTIGNORE\tA colon-separated list of patterns used to decide which\n" +" \t\tcommands should be saved on the history list.\n" +msgstr "" + +#: builtins.c:1733 +msgid "" +"Add directories to stack.\n" +" \n" +" Adds a directory to the top of the directory stack, or rotates\n" +" the stack, making the new top of the stack the current working\n" +" directory. With no arguments, exchanges the top two directories.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when adding\n" +" \tdirectories to the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the left of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" -N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the right of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" dir\tAdds DIR to the directory stack at the top, making it the\n" +" \tnew current working directory.\n" +" \n" +" The `dirs' builtin displays the directory stack.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid argument is supplied or the directory\n" +" change fails." +msgstr "" + +#: builtins.c:1767 +msgid "" +"Remove directories from stack.\n" +" \n" +" Removes entries from the directory stack. With no arguments, removes\n" +" the top directory from the stack, and changes to the new top directory.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when removing\n" +" \tdirectories from the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRemoves the Nth entry counting from the left of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd +0'\n" +" \tremoves the first directory, `popd +1' the second.\n" +" \n" +" -N\tRemoves the Nth entry counting from the right of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd -0'\n" +" \tremoves the last directory, `popd -1' the next to last.\n" +" \n" +" The `dirs' builtin displays the directory stack.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid argument is supplied or the directory\n" +" change fails." +msgstr "" + +#: builtins.c:1797 +msgid "" +"Display directory stack.\n" +" \n" +" Display the list of currently remembered directories. Directories\n" +" find their way onto the list with the `pushd' command; you can get\n" +" back up through the list with the `popd' command.\n" +" \n" +" Options:\n" +" -c\tclear the directory stack by deleting all of the elements\n" +" -l\tdo not print tilde-prefixed versions of directories relative\n" +" \tto your home directory\n" +" -p\tprint the directory stack with one entry per line\n" +" -v\tprint the directory stack with one entry per line prefixed\n" +" \twith its position in the stack\n" +" \n" +" Arguments:\n" +" +N\tDisplays the Nth entry counting from the left of the list shown " +"by\n" +" \tdirs when invoked without options, starting with zero.\n" +" \n" +" -N\tDisplays the Nth entry counting from the right of the list shown " +"by\n" +" \tdirs when invoked without options, starting with zero.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" + +#: builtins.c:1826 +msgid "" +"Set and unset shell options.\n" +" \n" +" Change the setting of each shell option OPTNAME. Without any option\n" +" arguments, list all shell options with an indication of whether or not " +"each\n" +" is set.\n" +" \n" +" Options:\n" +" -o\trestrict OPTNAMEs to those defined for use with `set -o'\n" +" -p\tprint each shell option with an indication of its status\n" +" -q\tsuppress output\n" +" -s\tenable (set) each OPTNAME\n" +" -u\tdisable (unset) each OPTNAME\n" +" \n" +" Exit Status:\n" +" Returns success if OPTNAME is enabled; fails if an invalid option is\n" +" given or OPTNAME is disabled." +msgstr "" + +#: builtins.c:1847 +msgid "" +"Formats and prints ARGUMENTS under control of the FORMAT.\n" +" \n" +" Options:\n" +" -v var\tassign the output to shell variable VAR rather than\n" +" \t\tdisplay it on the standard output\n" +" \n" +" FORMAT is a character string which contains three types of objects: " +"plain\n" +" characters, which are simply copied to standard output; character " +"escape\n" +" sequences, which are converted and copied to the standard output; and\n" +" format specifications, each of which causes printing of the next " +"successive\n" +" argument.\n" +" \n" +" In addition to the standard format specifications described in printf" +"(1)\n" +" and printf(3), printf interprets:\n" +" \n" +" %b\texpand backslash escape sequences in the corresponding argument\n" +" %q\tquote the argument in a way that can be reused as shell input\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or a write or " +"assignment\n" +" error occurs." +msgstr "" + +#: builtins.c:1874 +msgid "" +"Specify how arguments are to be completed by Readline.\n" +" \n" +" For each NAME, specify how arguments are to be completed. If no " +"options\n" +" are supplied, existing completion specifications are printed in a way " +"that\n" +" allows them to be reused as input.\n" +" \n" +" Options:\n" +" -p\tprint existing completion specifications in a reusable format\n" +" -r\tremove a completion specification for each NAME, or, if no\n" +" \tNAMEs are supplied, all completion specifications\n" +" \n" +" When completion is attempted, the actions are applied in the order the\n" +" uppercase-letter options are listed above.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" + +#: builtins.c:1897 +msgid "" +"Display possible completions depending on the options.\n" +" \n" +" Intended to be used from within a shell function generating possible\n" +" completions. If the optional WORD argument is supplied, matches " +"against\n" +" WORD are generated.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" + +#: builtins.c:1912 +msgid "" +"Modify or display completion options.\n" +" \n" +" Modify the completion options for each NAME, or, if no NAMEs are " +"supplied,\n" +" the completion currently begin executed. If no OPTIONs are givenm, " +"print\n" +" the completion options for each NAME or the current completion " +"specification.\n" +" \n" +" Options:\n" +" \t-o option\tSet completion option OPTION for each NAME\n" +" \n" +" Using `+o' instead of `-o' turns off the specified option.\n" +" \n" +" Arguments:\n" +" \n" +" Each NAME refers to a command for which a completion specification must\n" +" have previously been defined using the `complete' builtin. If no NAMEs\n" +" are supplied, compopt must be called by a function currently generating\n" +" completions, and the options for that currently-executing completion\n" +" generator are modified.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or NAME does not\n" +" have a completion specification defined." +msgstr "" + +#: builtins.c:1940 +msgid "" +"Read lines from a file into an array variable.\n" +" \n" +" Read lines from the standard input into the array variable ARRAY, or " +"from\n" +" file descriptor FD if the -u option is supplied. The variable MAPFILE " +"is\n" +" the default ARRAY.\n" +" \n" +" Options:\n" +" -n count\tCopy at most COUNT lines. If COUNT is 0, all lines are " +"copied.\n" +" -O origin\tBegin assigning to ARRAY at index ORIGIN. The default " +"index is 0.\n" +" -s count \tDiscard the first COUNT lines read.\n" +" -t\t\tRemove a trailing newline from each line read.\n" +" -u fd\t\tRead lines from file descriptor FD instead of the standard " +"input.\n" +" -C callback\tEvaluate CALLBACK each time QUANTUM lines are read.\n" +" -c quantum\tSpecify the number of lines read between each call to " +"CALLBACK.\n" +" \n" +" Arguments:\n" +" ARRAY\t\tArray variable name to use for file data.\n" +" \n" +" If -C is supplied without -c, the default quantum is 5000.\n" +" \n" +" If not supplied with an explicit origin, mapfile will clear ARRAY " +"before\n" +" assigning to it.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or ARRAY is readonly." +msgstr "" + +#~ msgid "Display the list of currently remembered directories. Directories" +#~ msgstr "Megjeleníti a jelenleg feljegyzett könyvtárakat. Könyvtárak" + +#~ msgid "find their way onto the list with the `pushd' command; you can get" +#~ msgstr "listába való behelyezés a 'pushd' parancs végzi és az eltávolítást" + +#~ msgid "back up through the list with the `popd' command." +#~ msgstr "pedig a 'popd' utasítással lehet végrehajtani." + +#~ msgid "" +#~ "The -l flag specifies that `dirs' should not print shorthand versions" +#~ msgstr "A '-l' opció hatására a 'dirs' nem használja a gyorsírás módot" + +#~ msgid "" +#~ "of directories which are relative to your home directory. This means" +#~ msgstr "a saját könyvtárból nyíló mappákra. Ez azt jelenti, hogy" + +#~ msgid "that `~/bin' might be displayed as `/homes/bfox/bin'. The -v flag" +#~ msgstr "" +#~ "a '~/bin' helyet '/home/bfox/bin' fog megjelenni. A '-v' azt hatására" + +#~ msgid "causes `dirs' to print the directory stack with one entry per line," +#~ msgstr "a 'dirs' a verem elemeit külön sorba írja ki" + +#~ msgid "" +#~ "prepending the directory name with its position in the stack. The -p" +#~ msgstr "és a könyvtár neve elé írja a veremben elfoglalt helyét is. A '-p'" + +#~ msgid "flag does the same thing, but the stack position is not prepended." +#~ msgstr "ugyanezt csinálja csak nem írja ki az elfoglalt helyet." + +#~ msgid "" +#~ "The -c flag clears the directory stack by deleting all of the elements." +#~ msgstr "A '-c'-vel az egész könyvtár vermet kitörli." + +#, fuzzy +#~ msgid "" +#~ "+N displays the Nth entry counting from the left of the list shown by" +#~ msgstr "+N\tMegmutatja a verem N-edik bejegyzését a számolást balról kezdi" + +#, fuzzy +#~ msgid " dirs when invoked without options, starting with zero." +#~ msgstr "\taz elsõ eleme a nulladik." + +#, fuzzy +#~ msgid "" +#~ "-N displays the Nth entry counting from the right of the list shown by" +#~ msgstr "-N\tMegmutatja a verem N-edik bejegyzését a számolást jobbról kezdi" + +#~ msgid "Adds a directory to the top of the directory stack, or rotates" +#~ msgstr "Egy új könyvtárat ad a könyvtár veremhez, vagy eltolja" + +#~ msgid "the stack, making the new top of the stack the current working" +#~ msgstr "a vermet, létrehozza a verem elejét az aktuális munka " + +#~ msgid "directory. With no arguments, exchanges the top two directories." +#~ msgstr "könyvtárban. Opciók nélkül felcseréli az elsõ két könyvtárat." + +#, fuzzy +#~ msgid "+N Rotates the stack so that the Nth directory (counting" +#~ msgstr "+N\t\tEltolja a verem N-edik könyvtárát (a számolást" + +#, fuzzy +#~ msgid " from the left of the list shown by `dirs', starting with" +#~ msgstr "\t\tbalról kezdi a 'dirs' listájában) legelõre." + +#, fuzzy +#~ msgid " zero) is at the top." +#~ msgstr "\tjobbról kezdi) legelõre." + +#, fuzzy +#~ msgid "-N Rotates the stack so that the Nth directory (counting" +#~ msgstr "-N\t\tEltolja a verem N-edik könyvtárát (a számolást" + +#, fuzzy +#~ msgid " from the right of the list shown by `dirs', starting with" +#~ msgstr "\t\tbalról kezdi a 'dirs' listájában) legelõre." + +#, fuzzy +#~ msgid "-n suppress the normal change of directory when adding directories" +#~ msgstr "" +#~ "-n\tletiltja a normális könyvtár váltást. Amikor a könyvtárakat váltunk" + +#, fuzzy +#~ msgid " to the stack, so only the stack is manipulated." +#~ msgstr "\takkor a veremhez adjuk az aktuális könyvtárat." + +#, fuzzy +#~ msgid "dir adds DIR to the directory stack at the top, making it the" +#~ msgstr "dir\tA DIR-t behelyezi a verem elejére és az" + +#, fuzzy +#~ msgid " new current working directory." +#~ msgstr "\tlesz az aktuális munkakönyvtár." + +#~ msgid "You can see the directory stack with the `dirs' command." +#~ msgstr "A könyvtár vermet a 'dirs' paranccsal tekintheti meg." + +#~ msgid "Removes entries from the directory stack. With no arguments," +#~ msgstr "Bejegyzést távolít el a könyvtár verembõl. Opciók nélkül" + +#~ msgid "removes the top directory from the stack, and cd's to the new" +#~ msgstr "eltávolítja a verem elsõ bejegyzését, és átlép a soron következõ" + +#~ msgid "top directory." +#~ msgstr "könyvtárba." + +#, fuzzy +#~ msgid "+N removes the Nth entry counting from the left of the list" +#~ msgstr "+N\tEltávolítja a verem N-edik bejegyzését (a számolást" + +#, fuzzy +#~ msgid " shown by `dirs', starting with zero. For example: `popd +0'" +#~ msgstr "\tbalról kezdi és nullával indítja) .Például a 'popd +0'" + +#, fuzzy +#~ msgid " removes the first directory, `popd +1' the second." +#~ msgstr "\taz elsõ könyvtárat távolítja el, a 'pop +1' a másodikat." + +#, fuzzy +#~ msgid "-N removes the Nth entry counting from the right of the list" +#~ msgstr "+N\tEltávolítja a verem N-edik bejegyzését (a számolást" + +#, fuzzy +#~ msgid " shown by `dirs', starting with zero. For example: `popd -0'" +#~ msgstr "\tbalról kezdi és nullával indítja) .Például a 'popd -0'" + +#, fuzzy +#~ msgid " removes the last directory, `popd -1' the next to last." +#~ msgstr "\taz utolsó könyvtárat távolítja el, a 'pop +1' a .utolsóelõttit" + +#, fuzzy +#~ msgid "" +#~ "-n suppress the normal change of directory when removing directories" +#~ msgstr "" +#~ "-n\tletiltja a normális könyvtár váltást. Amikor a könyvtárakat váltunk" + +#, fuzzy +#~ msgid " from the stack, so only the stack is manipulated." +#~ msgstr "\takkor a verembõl eltávolítja az aktuális könyvtárat." + +#, fuzzy +#~ msgid "" +#~ "Exit from within a FOR, WHILE or UNTIL loop. If N is specified,\n" +#~ " break N levels." +#~ msgstr "Kilép egy FOR, WHILE vagy UNTIL hurokból. Ha N meg van határozva," + +#~ msgid "Obsolete. See `declare'." +#~ msgstr "Elavult. Lásd 'declare'" + +#~ msgid "" +#~ "Output the ARGs. If -n is specified, the trailing newline is suppressed." +#~ msgstr "" +#~ "Kimenet az ARG. Ha -n használja, akkor a sorvégi újsor jelet nem veszi " +#~ "figyelembe." + +#~ msgid "" +#~ "Read ARGs as input to the shell and execute the resulting command(s)." +#~ msgstr "" +#~ "Beolvassa az ARG tartalmát a bemenetrõl a parancsértelmezõhõz és " +#~ "elindítja." + +#~ msgid "Logout of a login shell." +#~ msgstr "Kilépés a parancsértelmezõbõl." + +#, fuzzy +#~ msgid "" +#~ "Causes a function to exit with the return value specified by N. If N\n" +#~ " is omitted, the return status is that of the last command." +#~ msgstr "" +#~ "A funkció hatására kilép és a visszatérési értéke az N-ben meghatározott " +#~ "érték lesz." + +#, fuzzy +#~ msgid "" +#~ "The positional parameters from $N+1 ... are renamed to $1 ... If N is\n" +#~ " not given, it is assumed to be 1." +#~ msgstr "A pozicionáló paramétereket átnevezi $N+1-rõl $1-re.Ha az N" + +#, fuzzy +#~ msgid "" +#~ "Print the accumulated user and system times for processes run from\n" +#~ " the shell." +#~ msgstr "Kiírja felhasználó és a rendszer mennyi idõ használt fel arra, hogy" + +#~ msgid "Missing `}'" +#~ msgstr "Hiányzó '}'" + +#~ msgid "brace_expand> " +#~ msgstr "brace_expand> " + +#~ msgid "Attempt to free unknown command type `%d'.\n" +#~ msgstr "Megpróbálom felszabadítani az ismeretlen `%d' parancs típust.\n" + +#~ msgid "Report this to %s\n" +#~ msgstr "Kérem jelentse ezt a %s -re \n" + +#~ msgid "Stopping myself..." +#~ msgstr "Leállítom magam..." + +#~ msgid "Tell %s to fix this someday.\n" +#~ msgstr "Mondja el %s -nek, hogy kijavíthassa\n" + +#~ msgid "execute_command: bad command type `%d'" +#~ msgstr "execute_command: rossz parancs típus `%d'" + +#~ msgid "real\t" +#~ msgstr "valós\t" + +#~ msgid "user\t" +#~ msgstr "felhasználói\t" + +#~ msgid "sys\t" +#~ msgstr "rendszer\t" + +#~ msgid "" +#~ "real\t0m0.00s\n" +#~ "user\t0m0.00s\n" +#~ "sys\t0m0.00s\n" +#~ msgstr "" +#~ "valós\t0m0.00s\n" +#~ "felhasználói\t0m0.00s\n" +#~ "rendszer\t0m0.00s\n" + +#~ msgid "cannot duplicate fd %d to fd 1: %s" +#~ msgstr "nem másolható a fd %d fd 1: %s-re" + +#~ msgid "%s: output redirection restricted" +#~ msgstr "%s kimenet átirányítás fenntartva" + +#~ msgid "Out of memory!" +#~ msgstr "Elfogyott a memória!" + +#~ msgid "You have already added item `%s'\n" +#~ msgstr "A `%s' elem egyszer már hozzá lett adva\n" + +#~ msgid "You have entered %d (%d) items. The distribution is:\n" +#~ msgstr "Ön %d (%d) elemet írt be. A terjesztés:\n" + +#~ msgid "%s: bg background job?" +#~ msgstr "%s: bg háttér munkafolyamat?" + +#~ msgid "" +#~ "Redirection instruction from yyparse () '%d' is\n" +#~ "out of range in make_redirection ()." +#~ msgstr "" +#~ "Az átirányítási utasítás a yyparse-ból () '%d' \n" +#~ "túl van a határon a make_redirection ().-ben" + +#~ msgid "clean_simple_command () got a command with type %d." +#~ msgstr "clean_simple_command () kaptam egy %d típusú parancsot." + +#~ msgid "got errno %d while waiting for %d" +#~ msgstr "kaptam egy %d hibát amíg vártam a %d-re" + +#~ msgid "syntax error near unexpected token `%c'" +#~ msgstr "szintaktikai hiba a váratlan %c vezérjel körül" + +#~ msgid "print_command: bad command type `%d'" +#~ msgstr "print_command: rossz parancs típus `%d'" + +#~ msgid "cprintf: bad `%%' argument (%c)" +#~ msgstr "cprintf: rossz `%%' paraméter (%c)" + +#~ msgid "option `%s' requires an argument" +#~ msgstr "opciók a `%s' paramétert igényel" + +#~ msgid "%s: unrecognized option" +#~ msgstr "a %s ismeretlen opció" + +#~ msgid "`-c' requires an argument" +#~ msgstr "`-c' paramétert igényel" + +#~ msgid "%s: cannot execute directories" +#~ msgstr "%s: könyvtárakat nem lehet futtatni" + +#~ msgid "Bad code in sig.c: sigprocmask" +#~ msgstr "Hibás kód a sig.c-ben: sigprocmask" + +#~ msgid "bad substitution: no ending `}' in %s" +#~ msgstr "rossz behelyettesítés: nincs lezáró } a %s-ben" + +#~ msgid "%s: bad array subscript" +#~ msgstr "%s rossz tömb a tömbindexben" + +#~ msgid "can't make pipes for process substitution: %s" +#~ msgstr "nem lehet létrehozni a pipe-ot feladat behelyettesítéshez: %s" + +#~ msgid "reading" +#~ msgstr "olvasás" + +#~ msgid "process substitution" +#~ msgstr "feladat behelyettesítése" + +#~ msgid "command substitution" +#~ msgstr "parancs behelyettesítése" + +#~ msgid "Can't reopen pipe to command substitution (fd %d): %s" +#~ msgstr "" +#~ "Nem lehet újra megnyitni a \"pipe\"-ot a parancs behelyettesítéshez(fd %" +#~ "d): %s" + +#~ msgid "$%c: unbound variable" +#~ msgstr "$%c felszabadított változó" + +#~ msgid "%s: bad arithmetic substitution" +#~ msgstr "%s: rossz számtani helyettesítés" + +#~ msgid "-%s: binary operator expected" +#~ msgstr "-%s:bináris mûvelet szükséges" + +#~ msgid "%s[%s: bad subscript" +#~ msgstr "%s[%s: rossz tömbindex" + +#~ msgid "[%s: bad subscript" +#~ msgstr "[%s: rossz tömbindex" + +#~ msgid "digits occur in two different argv-elements.\n" +#~ msgstr "számjegyek fordultak elõ két különbözõ \"argv\"elemben.\n" + +#~ msgid "option %c\n" +#~ msgstr "opció: %c\n" + +#~ msgid "option a\n" +#~ msgstr "opció a\n" + +#~ msgid "option b\n" +#~ msgstr "opció b\n" + +#~ msgid "option c with value `%s'\n" +#~ msgstr "opció c %s értékkel\n" + +#~ msgid "?? sh_getopt returned character code 0%o ??\n" +#~ msgstr "?? sh_getopt visszakapott karakter kód 0%o ??\n" + +#~ msgid "non-option ARGV-elements: " +#~ msgstr "nem opció az \"argv\"elemek" + +#~ msgid "%s: Unknown flag %s.\n" +#~ msgstr "%s: Ismeretlen jel %s.\n" + +#~ msgid "Unknown directive `%s'" +#~ msgstr "Ismeretlen direktíva %s" + +#~ msgid "%s requires an argument" +#~ msgstr "a %s paramétert igényel" + +#~ msgid "%s must be inside of a $BUILTIN block" +#~ msgstr "%s-nek a $BUILTIN blokkon belül kell hogy legyen" + +#~ msgid "%s found before $END" +#~ msgstr "%s találtam az $END elõtt" + +#~ msgid "%s already has a function (%s)" +#~ msgstr "%s már létezõ függvény (%s)" + +#~ msgid "%s already had a docname (%s)" +#~ msgstr "a %s már kész dokumentum (%s)" + +#~ msgid "%s already has short documentation (%s)" +#~ msgstr "a %s már létezõ rövid dokumentáció (%s)" + +#~ msgid "%s already has a %s definition" +#~ msgstr "a %s már létezõ %s meghatározás(definition)" + +#~ msgid "mkbuiltins: Out of virtual memory!\n" +#~ msgstr "mkbuiltins: A virtuális memória elfogyott!\n" + +#~ msgid "read [-r] [-p prompt] [-a array] [-e] [name ...]" +#~ msgstr "read [-r] [-p kérdés] [-a tömb] [-e] [név ...]" + +#~ msgid "%[DIGITS | WORD] [&]" +#~ msgstr "%[SZÁMOK | SZÓ] [&]" + +#~ msgid "variables - Some variable names and meanings" +#~ msgstr "változók - Néhány változó neve és jelentése" + +#~ msgid "`alias' with no arguments or with the -p option prints the list" +#~ msgstr "" +#~ "`alias' paraméterek nélkül vagy -p opcióval kiírja az aliasok listáját" + +#~ msgid "of aliases in the form alias NAME=VALUE on standard output." +#~ msgstr "az NÉV=ÉRTÉK formában a standard kimeneten." + +#~ msgid "Otherwise, an alias is defined for each NAME whose VALUE is given." +#~ msgstr "" +#~ "Egyébként, az alias-ban meghatározott mindegyik NÉV-nek az ÉRTÉK lesz " +#~ "átadva." + +#~ msgid "A trailing space in VALUE causes the next word to be checked for" +#~ msgstr " " + +#~ msgid "alias substitution when the alias is expanded. Alias returns" +#~ msgstr "Az alias visszatérési értéke " + +#~ msgid "true unless a NAME is given for which no alias has been defined." +#~ msgstr "igaz hacsak a NÉV alatt nincs alias meghatározva." + +#~ msgid "then remove all alias definitions." +#~ msgstr "eltávolítja az összes alias meghatározást." + +#~ msgid "Bind a key sequence to a Readline function, or to a macro. The" +#~ msgstr "" +#~ "a bind egy kulcs szekvencia a readline funkcióhoz vagy egy makróhoz." + +#~ msgid "syntax is equivalent to that found in ~/.inputrc, but must be" +#~ msgstr "A szintaktika megegyezik az ~/.inputrc-vel, de át kell" + +#~ msgid "" +#~ "passed as a single argument: bind '\"\\C-x\\C-r\": re-read-init-file'." +#~ msgstr "" +#~ "adni egy egyszerû paraméterrel: bind '\"\\C-x\\C-r\": re-read-init-file'." + +#~ msgid "Arguments we accept:" +#~ msgstr "A paraméterek amiket elfogadunk:" + +#~ msgid "" +#~ " -m keymap Use `keymap' as the keymap for the duration of this" +#~ msgstr " -m keymap A `keymap'-ot használja keymap-ként az amíg" + +#~ msgid " command. Acceptable keymap names are emacs," +#~ msgstr "" +#~ " a parancs fut. Elfogadható keymap névnek emacs-ok," + +#~ msgid "" +#~ " emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move," +#~ msgstr "" +#~ " emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move," + +#~ msgid " vi-command, and vi-insert." +#~ msgstr " vi-parancs, és vi-beszúrás." + +#~ msgid " -l List names of functions." +#~ msgstr " -l A funkciók neveinek a listája." + +#~ msgid " -P List function names and bindings." +#~ msgstr " -P A nevek és a hozzájuk tartozó bind-ok listája." + +#~ msgid "" +#~ " -p List functions and bindings in a form that can be" +#~ msgstr "" +#~ " -p A funkciók és bind-ok listája bemenetként újra " +#~ "felszanálható" + +#~ msgid " reused as input." +#~ msgstr " formában." + +#~ msgid " -r keyseq Remove the binding for KEYSEQ." +#~ msgstr " -r keyseq Bind eltávolítása a KEYSEQ-rõl." + +#~ msgid " -f filename Read key bindings from FILENAME." +#~ msgstr " -f FÁJLNÉN Bind-ok olvasása a FÁJLNÉV fájlból." + +#~ msgid "" +#~ " -q function-name Query about which keys invoke the named function." +#~ msgstr "" +#~ " -q function-name Lekérdezi, hogy milyen billentyût hív meg a funkció." + +#~ msgid " -V List variable names and values" +#~ msgstr " -V A változók neveinek és értékeinek a listája." + +#~ msgid "" +#~ " -v List variable names and values in a form that can" +#~ msgstr "" +#~ " -v A változók és értékeik neveinek a listája " +#~ "bemenetként " + +#~ msgid " be reused as input." +#~ msgstr " újra felhasználható formában." + +#~ msgid "" +#~ " -S List key sequences that invoke macros and their " +#~ "values" +#~ msgstr "" +#~ " -S A kulcs szekvenciák listája a meghívott makrókkal és " +#~ "azok értékével" + +#~ msgid "" +#~ " -s List key sequences that invoke macros and their " +#~ "values in" +#~ msgstr "" +#~ " -S A kulcs szekvenciák listája a meghívott makrókkal és " +#~ "azok értékével" + +#~ msgid " a form that can be reused as input." +#~ msgstr " melyeket fel lehet használni bemenetként." + +#~ msgid "break N levels." +#~ msgstr "akkor N szintet lép ki." + +#~ msgid "If N is specified, resume at the N-th enclosing loop." +#~ msgstr "" +#~ "Ha N meg van határozva akkor N szinttel magasabb hurokba lép vissza." + +#~ msgid "Run a shell builtin. This is useful when you wish to rename a" +#~ msgstr "" +#~ "Egy beépített utasítást futtat , Ez akkor hasznos ha átakar nevezni egy" + +#~ msgid "shell builtin to be a function, but need the functionality of the" +#~ msgstr "" +#~ "egy beépített parancsot funkcióvá, de szüksége van a beépített parancs" + +#~ msgid "builtin within the function itself." +#~ msgstr "eredeti funkciójára." + +#~ msgid "Change the current directory to DIR. The variable $HOME is the" +#~ msgstr "Belép a dir könyvtárba.A $HOME változó az alapértelmezett" + +#~ msgid "default DIR. The variable $CDPATH defines the search path for" +#~ msgstr "DIR. A $CDPATH változó meghatározza a keresési útvonalát a DIR-t" + +#~ msgid "the directory containing DIR. Alternative directory names in CDPATH" +#~ msgstr "tartalmazó könyvtárnak. Az alternatív könyvtár neveket a CDPATH-ban" + +#~ msgid "are separated by a colon (:). A null directory name is the same as" +#~ msgstr "kettõsponttal(:) kell elválasztani. Az üres könyvtár név azonos" + +#~ msgid "the current directory, i.e. `.'. If DIR begins with a slash (/)," +#~ msgstr "a jelenlegi könyvtárral `.'. Ha a DIR per jellel kezdõdik (/)," + +#~ msgid "then $CDPATH is not used. If the directory is not found, and the" +#~ msgstr "akkor a $CDPATH nem használható. Ha a könyvtár nem található és a" + +#~ msgid "shell option `cdable_vars' is set, then try the word as a variable" +#~ msgstr "" +#~ "a parancsértelmezõ 'cdable_vars' nincs beállítva, akkor a szót " +#~ "megpróbálja mint " + +#~ msgid "name. If that variable has a value, then cd to the value of that" +#~ msgstr "" +#~ "változó névként. Ha ennek a változónak van értéke, akkor behelyettesíti a " +#~ "változó " + +#~ msgid "" +#~ "variable. The -P option says to use the physical directory structure" +#~ msgstr "" +#~ "értékét. A -P opció azt jelenti, hogy a fizikai könyvtár felépítést " +#~ "használja" + +#~ msgid "" +#~ "instead of following symbolic links; the -L option forces symbolic links" +#~ msgstr "" +#~ "a szimbolikus linkek helyet, a -L opció pedig a szimbolikus linkek " +#~ "követését" + +#~ msgid "to be followed." +#~ msgstr "erõlteti ki" + +#~ msgid "Print the current working directory. With the -P option, pwd prints" +#~ msgstr "Kiírja a könyvtárat ahol áll. A -P opcióban a pwd a " + +#~ msgid "the physical directory, without any symbolic links; the -L option" +#~ msgstr "" +#~ "fizikai könyvtár felépítést mutatja, a szimbolikus linkek nélkül, a -L " +#~ "opció" + +#~ msgid "makes pwd follow symbolic links." +#~ msgstr "pedig követi a szimbolikus linkeket." + +#~ msgid "" +#~ "Runs COMMAND with ARGS ignoring shell functions. If you have a shell" +#~ msgstr "" +#~ "Egy PARANCS-ot futtat ARG-okkal figyelmen kívül hagyja a parancsértelmezõ" + +#~ msgid "function called `ls', and you wish to call the command `ls', you can" +#~ msgstr "" +#~ "funkcióit.Ha van egy funkció aminek a neve 'ls', és megakarja hívni, csak " +#~ "azt" + +#~ msgid "" +#~ "say \"command ls\". If the -p option is given, a default value is used" +#~ msgstr "" +#~ "kell mondani, hogy \"command ls\".Ha a -p opciót használja, akkor " +#~ "felhasználja" + +#~ msgid "" +#~ "for PATH that is guaranteed to find all of the standard utilities. If" +#~ msgstr "a PATH változót így biztos, hogy meg találja az alap programokat." + +#~ msgid "" +#~ "the -V or -v option is given, a string is printed describing COMMAND." +#~ msgstr "Ha a -V vagy a -v opciót használja akkor kiírja a COMMAND leírását." + +#~ msgid "The -V option produces a more verbose description." +#~ msgstr "A -V opció több információt ad vissza." + +#~ msgid "Declare variables and/or give them attributes. If no NAMEs are" +#~ msgstr "Változókat hoz létre és/vagy attribútumokat ad nekik. Ha nincs NÉV" + +#~ msgid "given, then display the values of variables instead. The -p option" +#~ msgstr "átadva, akkor a megjeleníti a változók értékeit. A -p opció" + +#~ msgid "will display the attributes and values of each NAME." +#~ msgstr "megjeleníti az attribútumokat és az mindegyik NÉV értékét." + +#~ msgid "The flags are:" +#~ msgstr "A lehetséges opciók:" + +#~ msgid " -a\tto make NAMEs arrays (if supported)" +#~ msgstr " -a\tlétrehozza a NÉV tömböt (ha támogatott)" + +#~ msgid " -f\tto select from among function names only" +#~ msgstr "7 -f\tcsak a funkciókat válassza ki" + +#~ msgid " -F\tto display function names without definitions" +#~ msgstr " -F\tmegjeleníti a funkció neveket a meghatározásuk nélkül" + +#~ msgid " -r\tto make NAMEs readonly" +#~ msgstr " -r\ta NEVEKET csak olvashatóvá teszi" + +#~ msgid " -x\tto make NAMEs export" +#~ msgstr " -x\ta NEVEKET exportálható módon írja ki" + +#~ msgid " -i\tto make NAMEs have the `integer' attribute set" +#~ msgstr " -i\tkiírja a NEVEKET amiknek 'szám' az attribútumuk" + +#~ msgid "Variables with the integer attribute have arithmetic evaluation (see" +#~ msgstr "A változók melyeknek szám az attribútumuk egy számot (lásd a " + +#~ msgid "`let') done when the variable is assigned to." +#~ msgstr "let) kell, hozzárendelni." + +#~ msgid "When displaying values of variables, -f displays a function's name" +#~ msgstr "Amikor megjeleníti a változók értékét a -f a funkciók nevét" + +#~ msgid "and definition. The -F option restricts the display to function" +#~ msgstr "és meghatározásukat mutatja. A -F opció szigorúan csak " + +#~ msgid "name only." +#~ msgstr "a funkciók nevét jeleníti meg." + +#~ msgid "" +#~ "Using `+' instead of `-' turns off the given attribute instead. When" +#~ msgstr "A '+' használata a '-' helyet az attribútumot törli.Amikor " + +#~ msgid "used in a function, makes NAMEs local, as with the `local' command." +#~ msgstr "" +#~ "egy funkcióban használja a létrehozott NÉV helyi lesz, mint a local " +#~ "parancsnál." + +#~ msgid "Create a local variable called NAME, and give it VALUE. LOCAL" +#~ msgstr "" +#~ "Létrehoz egy helyi változott melyet NÉV-nek hív és átadja neki az ÉRTÉKET." + +#~ msgid "have a visible scope restricted to that function and its children." +#~ msgstr "csak a funkción és gyermekein belül érvényes." + +#~ msgid "Output the ARGs. If -n is specified, the trailing newline is" +#~ msgstr "" +#~ "Kimenet az ARG. Ha -n használja, akkor a sorvégi újsort jelet nem veszi" + +#~ msgid "suppressed. If the -e option is given, interpretation of the" +#~ msgstr "" +#~ "figyelembe. Ha a -e opciót használja akkor a következõ 'backslash-escaped'" + +#~ msgid "following backslash-escaped characters is turned on:" +#~ msgstr "karaktereket használja:" + +#~ msgid "\t\\a\talert (bell)" +#~ msgstr "\t\\a\tébresztõ (csengõ)" + +#~ msgid "\t\\b\tbackspace" +#~ msgstr "\t\\b\ttörlés" + +#~ msgid "\t\\c\tsuppress trailing newline" +#~ msgstr "\t\\c\tsorvégi újsor kihagyása" + +#~ msgid "\t\\E\tescape character" +#~ msgstr "\t\\E\tescape karakter" + +#~ msgid "\t\\f\tform feed" +#~ msgstr "\t\\f\tlap dobás" + +#~ msgid "\t\\n\tnew line" +#~ msgstr "\t\\n\túj sor" + +#~ msgid "\t\\r\tcarriage return" +#~ msgstr "\t\\r\tkocsi vissza" + +#~ msgid "\t\\t\thorizontal tab" +#~ msgstr "\t\\t\tvízszintes tab" + +#~ msgid "\t\\v\tvertical tab" +#~ msgstr "\t\\v\tfüggõleges tab" + +#~ msgid "\t\\\\\tbackslash" +#~ msgstr "\t\\\\\tbackslash" + +#~ msgid "\t\\num\tthe character whose ASCII code is NUM (octal)." +#~ msgstr "\t\\num\ta NUM a karakter ASCII kódja (nyolcas számrendszerben)" + +#~ msgid "" +#~ "You can explicitly turn off the interpretation of the above characters" +#~ msgstr "A -E opcióval ki lehet kapcsolni a karakterek fenti" + +#~ msgid "with the -E option." +#~ msgstr "értelmezését." + +#~ msgid "Enable and disable builtin shell commands. This allows" +#~ msgstr "" +#~ "Engedélyezés és Letiltja parancsértelmezõ beépített utasításait. Ez azt " +#~ "jelenti," + +#~ msgid "you to use a disk command which has the same name as a shell" +#~ msgstr "" +#~ "hogy lehet használni a lemezen található parancsokat melyeknek a neve meg-" + +#~ msgid "builtin. If -n is used, the NAMEs become disabled; otherwise" +#~ msgstr "" +#~ "egyezik a beépítettével. Ha a -n használja, akkor a NÉV le lesz tiltva " +#~ "egyébként" + +#~ msgid "NAMEs are enabled. For example, to use the `test' found on your" +#~ msgstr "" +#~ "a NEVET engedélyezi. Például ha használni akarja a 'test' -et ami lemezen " +#~ "létezik" + +#~ msgid "path instead of the shell builtin version, type `enable -n test'." +#~ msgstr "a parancsértelelmezõ helyet, gépelje be 'enable -n test'." + +#~ msgid "On systems supporting dynamic loading, the -f option may be used" +#~ msgstr "" +#~ "Azokon a rendszereken ami támogatja a dinamikus betöltést, a -f opcióval" + +#~ msgid "to load new builtins from the shared object FILENAME. The -d" +#~ msgstr "be lehet tölteni a FÁJLNÉV fájlt és beépítettként használni. A -d" + +#~ msgid "option will delete a builtin previously loaded with -f. If no" +#~ msgstr "opció pedig letörli az elõzõleg a -f el betöltött programot. Ha nem" + +#~ msgid "non-option names are given, or the -p option is supplied, a list" +#~ msgstr "" +#~ "ír be semmit vagy a -p opciót használja akkor megjeleníti az engedélyéket " + +#~ msgid "of builtins is printed. The -a option means to print every builtin" +#~ msgstr "beépített parancsokat. A -a opció megjeleníti az összes beépített" + +#~ msgid "with an indication of whether or not it is enabled. The -s option" +#~ msgstr "parancsot akár engedélyezve akár nem. A -s opció kierõlteti" + +#~ msgid "restricts the output to the Posix.2 `special' builtins. The -n" +#~ msgstr "a Posix.2 speciális beépített parancsait.A -n kiírja az összes" + +#~ msgid "option displays a list of all disabled builtins." +#~ msgstr "letiltott beépített parancsot." + +#~ msgid "Getopts is used by shell procedures to parse positional parameters." +#~ msgstr "" +#~ "A getopts -ot a parancsértelmezõ használja a parancsok paraméterinek az " +#~ "elemzésére." + +#~ msgid "OPTSTRING contains the option letters to be recognized; if a letter" +#~ msgstr "Az OPTSTRING tartalmazza a felismerendõ opciókat, ha az opciókat" + +#~ msgid "is followed by a colon, the option is expected to have an argument," +#~ msgstr "kettõspont követi akkor valószínûleg paramétere is van," + +#~ msgid "which should be separated from it by white space." +#~ msgstr "amit javasolt elválasztani szóközzel." + +#~ msgid "Each time it is invoked, getopts will place the next option in the" +#~ msgstr "Minden hívásnál a getopts elhelyezi a $name" + +#~ msgid "shell variable $name, initializing name if it does not exist, and" +#~ msgstr "változóba, ha nem létezik a név akkor" + +#~ msgid "the index of the next argument to be processed into the shell" +#~ msgstr "a következõ paraméter az OPTIND változóba kerül." + +#~ msgid "variable OPTIND. OPTIND is initialized to 1 each time the shell or" +#~ msgstr "" +#~ "Az OPTIND változót csak egyszer kell létrehozni a parancsértelmezõben " +#~ "vagy " + +#~ msgid "a shell script is invoked. When an option requires an argument," +#~ msgstr "" +#~ "egy parancsállomány meghívásakor. Amikor az opció paramétert igényel" + +#~ msgid "getopts places that argument into the shell variable OPTARG." +#~ msgstr "akkor a getopts belehelyezi a paramétert az OPTARG változóba." + +#~ msgid "getopts reports errors in one of two ways. If the first character" +#~ msgstr "A getopts két módon képes képes a hibákat jelenteni.Ha az OPSTRING" + +#~ msgid "of OPTSTRING is a colon, getopts uses silent error reporting. In" +#~ msgstr "" +#~ "elsõ karakterre egy kettõspont, akkor a getopts csendes hibamódban van." + +#~ msgid "this mode, no error messages are printed. If an illegal option is" +#~ msgstr "" +#~ "Ebben az üzemmódjában nem ír hiba üzenetet. Ha érvénytelen opció talál" + +#~ msgid "seen, getopts places the option character found into OPTARG. If a" +#~ msgstr "abban az esetben a getopts az OPTARG változóba helyezi az opciót." + +#~ msgid "required argument is not found, getopts places a ':' into NAME and" +#~ msgstr "" +#~ "Ha egy szükséges paramétert nincs meg a getopts egy ':' helyez a NÉV-be és" + +#~ msgid "sets OPTARG to the option character found. If getopts is not in" +#~ msgstr "beállítja az OPTARG-ot a hibás opciókhoz. Ha a getopts nem csöndes" + +#~ msgid "silent mode, and an illegal option is seen, getopts places '?' into" +#~ msgstr "üzemmódban van és érvénytelen opciót talál, akkor a getopts egy '?'" + +#~ msgid "NAME and unsets OPTARG. If a required option is not found, a '?'" +#~ msgstr "" +#~ "a NÉV változóba és leállítja az OPTARG változót. Ha a szükséges opció " +#~ "nincs meg" + +#~ msgid "is placed in NAME, OPTARG is unset, and a diagnostic message is" +#~ msgstr "" +#~ "akkor egy '?' -et rak a NÉV-be és az OPTARG-ot leállítja és egy üzenetet " +#~ "küld" + +#~ msgid "If the shell variable OPTERR has the value 0, getopts disables the" +#~ msgstr "Ha az OPTERR változó értéke 0, akkor a getopts letiltja" + +#~ msgid "printing of error messages, even if the first character of" +#~ msgstr "az üzenetek küldését, még akkor is ha az OPTSTRING elsõ karakterre" + +#~ msgid "OPTSTRING is not a colon. OPTERR has the value 1 by default." +#~ msgstr "egy kettõspont. Az OPTERR alapértéke 1." + +#~ msgid "Getopts normally parses the positional parameters ($0 - $9), but if" +#~ msgstr "" +#~ "A getopts normál esetben a pozicionáló paramétereket ($0-$9) elemzi, de" + +#~ msgid "more arguments are given, they are parsed instead." +#~ msgstr "ha több paramétert kap akkor azokat használja helyettük." + +#~ msgid "Exec FILE, replacing this shell with the specified program." +#~ msgstr "" +#~ "FÁJL futtatása, kicseréli a parancsértelmezõt egy meghatározott programra." + +#~ msgid "If FILE is not specified, the redirections take effect in this" +#~ msgstr "" +#~ "Ha a FÁJL nincs meghatározva akkor az átírányítás effektus lép életbe" + +#~ msgid "shell. If the first argument is `-l', then place a dash in the" +#~ msgstr "" +#~ "a parancsértelmezõn. Ha az elsõ paraméter '-l' akkor egy gondolatjelet" + +#~ msgid "zeroth arg passed to FILE, as login does. If the `-c' option" +#~ msgstr "" +#~ "rak a FÁJL nulladik paraméterébe mint ahogy a login teszi. Ha a '-c' " +#~ "opciót" + +#~ msgid "is supplied, FILE is executed with a null environment. The `-a'" +#~ msgstr "alkalmazza akkor a FÁJL üres környezeti változókkal indul. A '-a'" + +#~ msgid "option means to make set argv[0] of the executed process to NAME." +#~ msgstr "" +#~ "opció azt jeleni, hogy a futtatott mûvelet NEVét az argv[0]-ra állítja." + +#~ msgid "If the file cannot be executed and the shell is not interactive," +#~ msgstr "Ha nem lehet a fájlt futtatni és a parancsértelmezõ nem interaktív," + +#~ msgid "then the shell exits, unless the variable \"no_exit_on_failed_exec\"" +#~ msgstr "" +#~ "akkor a parancsértelmezõ kilép, hacsak nem a \"no_exit_on_failed_exec\"" + +#~ msgid "is set." +#~ msgstr "változó nincs beállítva." + +#~ msgid "is that of the last command executed." +#~ msgstr "" +#~ "visszatérési érték az utoljára futtatott parancs vissza térési értéke " +#~ "lesz." + +#~ msgid "" +#~ "FIRST and LAST can be numbers specifying the range, or FIRST can be a" +#~ msgstr "" +#~ "Az elsõ és az utolsó lehet egy tömb kezdõ és befejezõ értéke, vagy az elsõ" + +#~ msgid "string, which means the most recent command beginning with that" +#~ msgstr "lehet egy sztring ami a legutolsó parancs elsõ sztringjét" + +#~ msgid "string." +#~ msgstr "jelenti." + +#~ msgid "" +#~ " -e ENAME selects which editor to use. Default is FCEDIT, then EDITOR," +#~ msgstr "" +#~ " -e ENÉV kiválasztja a felhasznált szerkesztõt . Alapból a vi-t " +#~ "használja" + +#~ msgid "" +#~ " then the editor which corresponds to the current readline editing" +#~ msgstr " " + +#~ msgid " mode, then vi." +#~ msgstr " " + +#~ msgid " -l means list lines instead of editing." +#~ msgstr " -l a szerkesztés helyet csak megjeleníti az elemeket." + +#~ msgid " -n means no line numbers listed." +#~ msgstr " -n nem írja ki a sorok számát." + +#~ msgid "" +#~ " -r means reverse the order of the lines (making it newest listed " +#~ "first)." +#~ msgstr " -r visszafele rendezi a sorokat (a legújabb elem lesz az elsõ)." + +#~ msgid "With the `fc -s [pat=rep ...] [command]' format, the command is" +#~ msgstr "" +#~ "A fc -s [pat=rep ...] [command]' formával, az újra lefuttatott parancs" + +#~ msgid "re-executed after the substitution OLD=NEW is performed." +#~ msgstr "behelyettesíti a saját helyére az utasítást." + +#~ msgid "A useful alias to use with this is r='fc -s', so that typing `r cc'" +#~ msgstr "Egy hasznos alias az r='fc -s', így amikor begépeli a 'r cc'" + +#~ msgid "runs the last command beginning with `cc' and typing `r' re-executes" +#~ msgstr "" +#~ "lefuttatja az utolsó 'cc'-vel kezdõdõ parancsot és amikor beírja az 'r'-t " + +#~ msgid "JOB_SPEC is not present, the shell's notion of the current job is" +#~ msgstr "" +#~ "Ha munka_folyamat nincs meghatározva akkor a jelenlegi munka folyamatot" + +#~ msgid "used." +#~ msgstr "használja." + +#~ msgid "Place JOB_SPEC in the background, as if it had been started with" +#~ msgstr "" +#~ "nka_folyamat-ot az háttérbe helyezi mintha '&' jellel indította volna" + +#~ msgid "`&'. If JOB_SPEC is not present, the shell's notion of the current" +#~ msgstr "Ha a munkafolyamat nincs meghatározva akkor" + +#~ msgid "job is used." +#~ msgstr "a jelenlegi munkafolyamatot használja." + +#~ msgid "For each NAME, the full pathname of the command is determined and" +#~ msgstr "Meghatározza az összes név teljes elérési útvonalát és megjegyzi." + +#~ msgid "remembered. If the -p option is supplied, PATHNAME is used as the" +#~ msgstr "Ha a '-p' opciót használja akkor az ÚTVONAL-at veszi a NÉV teljes" + +#~ msgid "full pathname of NAME, and no path search is performed. The -r" +#~ msgstr "útvonalának és nem keresi az útvonalat. A '-r' opció" + +#~ msgid "option causes the shell to forget all remembered locations. If no" +#~ msgstr "felszólítja a parancsértelmezõt, hogy felejtse el az összes helyet." + +#~ msgid "" +#~ "arguments are given, information about remembered commands is displayed." +#~ msgstr "" +#~ "Ha nincs megadva paraméter akkor megjeleníti a megjegyzett parancsokat." + +#~ msgid "Display helpful information about builtin commands. If PATTERN is" +#~ msgstr "Hasznos információkat jelenít meg a beépített parancsokról. Ha a " + +#~ msgid "specified, gives detailed help on all commands matching PATTERN," +#~ msgstr "" +#~ "MINTA meg van határozva, akkor részletes segítséget ír ki az utasításról" + +#~ msgid "otherwise a list of the builtins is printed." +#~ msgstr "egyébként egy listát jelenít meg a beépített parancsokról." + +#~ msgid "Display the history list with line numbers. Lines listed with" +#~ msgstr "Sorszámozva megjeleníti az elõzményeket. A megváltoztatott sorokat" + +#~ msgid "with a `*' have been modified. Argument of N says to list only" +#~ msgstr "" +#~ "egy csillaggal(*) jelöli. Az N opció azt jelenti, hogy csak az utolsó" + +#~ msgid "the last N lines. The -c option causes the history list to be" +#~ msgstr "N sort mutatja meg. A '-c' opció eredménye, hogy az elõzmény" + +#~ msgid "" +#~ "cleared by deleting all of the entries. The `-w' option writes out the" +#~ msgstr "" +#~ "lista összes eleme törlõdik. A '-w' opció azonnal kiírja az elõzményeket" + +#~ msgid "" +#~ "current history to the history file; `-r' means to read the file and" +#~ msgstr "az aktuális listába, '-r' pedig beolvassa a fájlt" + +#~ msgid "append the contents to the history list instead. `-a' means" +#~ msgstr "és az új fájlt elemeit használja helyette. A '-a' hozzáfûzi" + +#~ msgid "to append history lines from this session to the history file." +#~ msgstr "az aktuális terminál sorait a teljes elõzmény fájlhoz." + +#~ msgid "Argument `-n' means to read all history lines not already read" +#~ msgstr "A '-n' opció beolvassa az egész elõzmény nem beolvasott sorait" + +#~ msgid "from the history file and append them to the history list. If" +#~ msgstr "ez elõzmények fájlból és hozzáfûzi az elõzmény listához." + +#~ msgid "FILENAME is given, then that is used as the history file else" +#~ msgstr "Ha fájlnevet is megadunk akkor azt a fájlt fogja használni" + +#~ msgid "if $HISTFILE has a value, that is used, else ~/.bash_history." +#~ msgstr "" +#~ "Ha nincs a $HISFILE-nak érték adva akkor a ~/.bash_history-t használja." + +#~ msgid "If the -s option is supplied, the non-option ARGs are appended to" +#~ msgstr "A '-s' opció hatására az ARG-ot hozzáfûzi" + +#~ msgid "the history list as a single entry. The -p option means to perform" +#~ msgstr "az elõzményekhez. A '-p' opció " + +#~ msgid "" +#~ "history expansion on each ARG and display the result, without storing" +#~ msgstr "végre hajtja ez összes ARG-ot és az eredményt megjeleníti" + +#~ msgid "anything in the history list." +#~ msgstr "anélkül, hogy bármit is beírna az elõzmény listába." + +#~ msgid "Lists the active jobs. The -l option lists process id's in addition" +#~ msgstr "" +#~ "Kilistázza az aktív munka folyamatokat. A '-l' opció kiírja feladat " +#~ "azonosított" + +#~ msgid "to the normal information; the -p option lists process id's only." +#~ msgstr "" +#~ "a normál információk mellé, a '-p' opció pedig csak a feladat azonosított " +#~ "írja ki." + +#~ msgid "" +#~ "If -n is given, only processes that have changed status since the last" +#~ msgstr "" +#~ "Ha a '-n' opciót használja akkor csak a változásokat írja ki ami az " +#~ "utolsó hívás " + +#~ msgid "" +#~ "notification are printed. JOBSPEC restricts output to that job. The" +#~ msgstr "után történt. A MUNKAFOLYAMAT meghatározzam, hogy melyiket írja ki." + +#~ msgid "-r and -s options restrict output to running and stopped jobs only," +#~ msgstr "" +#~ "A '-r' és a '-s' opciók csak a futó és a megállított folyamatokat írja ki" + +#~ msgid "respectively. Without options, the status of all active jobs is" +#~ msgstr "Minden opció nélkül megjeleníti az összes aktív munkafolyamatot" + +#~ msgid "" +#~ "printed. If -x is given, COMMAND is run after all job specifications" +#~ msgstr "" +#~ "A '-x' opció hatására a PARANCS lefutása után az összes munkafolyamat " + +#~ msgid "" +#~ "that appear in ARGS have been replaced with the process ID of that job's" +#~ msgstr "" +#~ "meghatározás ami az ARGS-ban feltûnik az kicserélõdik a munkafolyamat " +#~ "vezetõ" + +#~ msgid "process group leader." +#~ msgstr "feladat azonosítójára." + +#~ msgid "Removes each JOBSPEC argument from the table of active jobs." +#~ msgstr "Eltávolítja az összes MUNKAFOLYAMAT-ot az aktív folyamatok közül." + +#~ msgid "Send the processes named by PID (or JOB) the signal SIGSPEC. If" +#~ msgstr "A jeltípust(sigspec) küld a meghatározott PID-re vagy JOB-ra." + +#~ msgid "" +#~ "SIGSPEC is not present, then SIGTERM is assumed. An argument of `-l'" +#~ msgstr "" +#~ "Ha a jeltípus(sigpsec) nincs meghatározva akkor egy SIGTERM-et küld." + +#~ msgid "lists the signal names; if arguments follow `-l' they are assumed to" +#~ msgstr "" +#~ "A '-l' opció kilistázza a jelek neveit.Ha a '-l' opció paramétere egy" + +#~ msgid "be signal numbers for which names should be listed. Kill is a shell" +#~ msgstr "" +#~ "jel száma akkor a számhoz tartozó nevet írja ki. A kill két okból " +#~ "beépített" + +#~ msgid "builtin for two reasons: it allows job IDs to be used instead of" +#~ msgstr "utasítása a parancsértelmezõnek: a job azonosító helyet" + +#~ msgid "process IDs, and, if you have reached the limit on processes that" +#~ msgstr "és ha (esetleg) a feladatok elérik a maximális határt akkor nem" + +#~ msgid "" +#~ "you can create, you don't have to start a process to kill another one." +#~ msgstr "" +#~ "nem lehet új feladatot indítani(fõleg a kill) és így nem lehetséges " +#~ "kilõni semmit." + +#~ msgid "Each ARG is an arithmetic expression to be evaluated. Evaluation" +#~ msgstr "Minden ARG egy matematikai kifelyezés. Az érték" + +#~ msgid "is done in long integers with no check for overflow, though division" +#~ msgstr "lehet hosszú egész túlcsordulás ellenõrzés nélkül. A nullával való" + +#~ msgid "by 0 is trapped and flagged as an error. The following list of" +#~ msgstr "" +#~ "osztás megszakítja és hibát jelez.A következõ lista egy összefoglaló" + +#~ msgid "operators is grouped into levels of equal-precedence operators." +#~ msgstr "az operátorokról végrehajtás szerinti csoportosításban." + +#~ msgid "The levels are listed in order of decreasing precedence." +#~ msgstr "" +#~ "A listában végrehajtás szerint csökkenõ sorrendben vannak felsorolva." + +#~ msgid "\t-, +\t\tunary minus, plus" +#~ msgstr "\t-, +\t\tunáris mínusz, plusz" + +#~ msgid "\t!, ~\t\tlogical and bitwise negation" +#~ msgstr "\t!, ~\t\tlogikai és bitszintû negálás" + +#~ msgid "\t*, /, %\t\tmultiplication, division, remainder" +#~ msgstr "\t*, /, %\t\tszorzás, osztás, maradékképzés" + +#~ msgid "\t+, -\t\taddition, subtraction" +#~ msgstr "\t+, -\t\tösszeadása, kivonás" + +#~ msgid "\t<<, >>\t\tleft and right bitwise shifts" +#~ msgstr "\t<<, >>\t\tbitszintû balra és jobbra emelés" + +#~ msgid "\t<=, >=, <, >\tcomparison" +#~ msgstr "\t<=, >=, <, >\tösszehasonlítás" + +#~ msgid "\t==, !=\t\tequality, inequality" +#~ msgstr "\t==, !=\t\tegyenlõség ,egyenlõtlenség" + +#~ msgid "\t&\t\tbitwise AND" +#~ msgstr "\t&\t\tbitszintû ÉS" + +#~ msgid "\t^\t\tbitwise XOR" +#~ msgstr "\t^\t\tbitszintû kizáró-vagy" + +#~ msgid "\t|\t\tbitwise OR" +#~ msgstr "\t|\t\tbitszintû VAGY" + +#~ msgid "\t&&\t\tlogical AND" +#~ msgstr "\t&&\t\tlogikai ÉS" + +#~ msgid "\t||\t\tlogical OR" +#~ msgstr "\t||\t\tlogikai VAGY" + +#~ msgid "\texpr ? expr : expr" +#~ msgstr "\tkifelyezés ? kifelyezés : kifelyezés" + +#~ msgid "\t\t\tconditional expression" +#~ msgstr "\t\t\tfeltételes kifelyezés" + +#~ msgid "\t=, *=, /=, %=," +#~ msgstr "\t=, *=, /=, %=," + +#~ msgid "\t+=, -=, <<=, >>=," +#~ msgstr "\t+=, -=, <<=, >>=," + +#~ msgid "\t&=, ^=, |=\tassignment" +#~ msgstr "\t&=, ^=, |=\thozzárendelés" + +#~ msgid "is replaced by its value (coerced to a long integer) within" +#~ msgstr "behelyettesíthetõ a kifelyezésekben értékek helyére " + +#~ msgid "an expression. The variable need not have its integer attribute" +#~ msgstr "" +#~ "(hosszú egészre kiegészítve). A változónak nem lehet egész attribútuma" + +#~ msgid "turned on to be used in an expression." +#~ msgstr "beállítva, ha kifelyezésként kívánja használni." + +#~ msgid "Operators are evaluated in order of precedence. Sub-expressions in" +#~ msgstr "Az operátorok kiértékelési sorrendben. Az al-kifelyezések" + +#~ msgid "parentheses are evaluated first and may override the precedence" +#~ msgstr "" +#~ "elsõnek hívódnak meg és ezzel felülbírálhatják a teljes végre hajtási" + +#~ msgid "rules above." +#~ msgstr "szabályokat." + +#~ msgid "If the last ARG evaluates to 0, let returns 1; 0 is returned" +#~ msgstr "Ha az utolsó ARG értéke 0 akkor a visszatérési értéke 1, egyébként" + +#~ msgid "otherwise." +#~ msgstr "0 -val tér vissza." + +#~ msgid "One line is read from the standard input, and the first word is" +#~ msgstr "Egy sort beolvas a standard bemenetrõl és az elsõ szót" + +#~ msgid "" +#~ "assigned to the first NAME, the second word to the second NAME, and so" +#~ msgstr "" +#~ "hozzárendeli az elsõ NÉV-hez, a második szót hozzárendeli a második NÉV-" +#~ "hez" + +#~ msgid "" +#~ "on, with leftover words assigned to the last NAME. Only the characters" +#~ msgstr "" +#~ "és így tovább egészen addig míg el nem éri az utolsó NEVet. Abban az " +#~ "esetben" + +#~ msgid "found in $IFS are recognized as word delimiters. The return code is" +#~ msgstr "" +#~ "ha a $IFS egy karaktert talál akkor azt szóhatárolóként fogja fel. A " +#~ "visszatérési" + +#~ msgid "" +#~ "zero, unless end-of-file is encountered. If no NAMEs are supplied, the" +#~ msgstr "" +#~ "érték 0, hacsak nem kap fájl vége jelet.Ha a NÉV nincs meghatározva, akkor" + +#~ msgid "" +#~ "line read is stored in the REPLY variable. If the -r option is given," +#~ msgstr "" +#~ "a beolvasott sorok a REPLY változóban tárolódnak. A '-r' opció hatására" + +#~ msgid "this signifies `raw' input, and backslash escaping is disabled. If" +#~ msgstr "" +#~ "a bemenetet, mint nyers bemenet használja és a backslash karaktereket " +#~ "letiltja." + +#~ msgid "the `-p' option is supplied, the string supplied as an argument is" +#~ msgstr "" +#~ "Ha a '-p' opció sztring paraméterét kiírja (újsor karakter nélkül) a " +#~ "kimenetre" + +#~ msgid "" +#~ "output without a trailing newline before attempting to read. If -a is" +#~ msgstr "mielõtt még az olvasásba belekezdene. A '-a' opció hatására" + +#~ msgid "" +#~ "supplied, the words read are assigned to sequential indices of ARRAY," +#~ msgstr "a beolvasott szavak egy indexelt tömb elemeiket veszi fel, nullával" + +#~ msgid "starting at zero. If -e is supplied and the shell is interactive," +#~ msgstr "" +#~ "kezdõdõen. A '-e' opció alkalmazása és a parancsértelmezõ párbeszéd módja" + +#~ msgid "readline is used to obtain the line." +#~ msgstr "hatására a 'readline'-ból veszi a feldolgozási sort." + +#~ msgid "is omitted, the return status is that of the last command." +#~ msgstr "" +#~ "Ha az N értéke nincs megadva akkor a visszatérési értéket az utolsó " +#~ "parancsból veszi." + +#~ msgid " -a Mark variables which are modified or created for export." +#~ msgstr "" +#~ " -a Megjelöli a változót úgy mintha az export módosította vagy " +#~ "létrehozta volna." + +#~ msgid " -b Notify of job termination immediately." +#~ msgstr " -b Azonnal megszakítja a munkafolyamatot." + +#~ msgid " -e Exit immediately if a command exits with a non-zero status." +#~ msgstr " -e Kilép azonnal ha a parancs nem nulla állapotban van." + +#~ msgid " -f Disable file name generation (globbing)." +#~ msgstr " -f Letiltja a fájlnév generálást (globbing)." + +#~ msgid " -h Remember the location of commands as they are looked up." +#~ msgstr " -h Megjegyzi a parancs helyét amit megtalált." + +#~ msgid "" +#~ " -i Force the shell to be an \"interactive\" one. Interactive shells" +#~ msgstr "" +#~ " -i Kierõlteti a parancsértelmezõtõl a párbeszédes üzemmódot. Ez a " + +#~ msgid " always read `~/.bashrc' on startup." +#~ msgstr " mód mindig a '~/.bashrc' használja indulásnál." + +#~ msgid " -k All assignment arguments are placed in the environment for a" +#~ msgstr "" +#~ " -k Az összes hozzárendelt paraméter elhelyezi a környezeti változok " +#~ "között" + +#~ msgid " command, not just those that precede the command name." +#~ msgstr " nem csak azt ami a parancs nevét megelõzi." + +#~ msgid " -m Job control is enabled." +#~ msgstr " -m A munkafolyamat ellenõrzés engedélyezése." + +#~ msgid " -n Read commands but do not execute them." +#~ msgstr " -n Beolvassa a parancsok, de nem hajtja õket végre." + +#~ msgid " -o option-name" +#~ msgstr " -o opció neve" + +#~ msgid " Set the variable corresponding to option-name:" +#~ msgstr "" +#~ " A változok beállításához használhatók a következõ opció nevek:" + +#~ msgid " allexport same as -a" +#~ msgstr " allexport ugyanaz mint a -a" + +#~ msgid " braceexpand same as -B" +#~ msgstr " braceexpand ugyanaz mint a -B" + +#~ msgid " emacs use an emacs-style line editing interface" +#~ msgstr " emacs emacs stílusú sor szerkesztés használata" + +#~ msgid " errexit same as -e" +#~ msgstr " errexit ugyanaz mint a -e" + +#~ msgid " hashall same as -h" +#~ msgstr " hashall ugyanaz mint a -h" + +#~ msgid " histexpand same as -H" +#~ msgstr " histexpand ugyanaz mint a -H" + +#~ msgid " ignoreeof the shell will not exit upon reading EOF" +#~ msgstr "" +#~ " ignoreeof a parancsértelmezõ nem lép ki amíg nem kap EOF " +#~ "jelet" + +#~ msgid " interactive-comments" +#~ msgstr " interactive-comments" + +#~ msgid "" +#~ " allow comments to appear in interactive commands" +#~ msgstr "" +#~ " engedélyezi a megjegyzéseket a párbeszédes parancsoknál" + +#~ msgid " keyword same as -k" +#~ msgstr " keyword ugyanaz mint a -k" + +#~ msgid " monitor same as -m" +#~ msgstr " monitor ugyanaz mint a -m" + +#~ msgid " noclobber same as -C" +#~ msgstr " noclobber ugyanaz mint a -C" + +#~ msgid " noexec same as -n" +#~ msgstr " noexec ugyanaz mint a -n" + +#~ msgid " noglob same as -f" +#~ msgstr " noglob ugyanaz mint a -f" + +#~ msgid " notify save as -b" +#~ msgstr " notify ugyanaz mint a -b" + +#~ msgid " nounset same as -u" +#~ msgstr " nounset ugyanaz mint a -u" + +#~ msgid " onecmd same as -t" +#~ msgstr " onecmd ugyanaz mint a -t" + +#~ msgid " physical same as -P" +#~ msgstr " physical ugyanaz mint a -P" + +#~ msgid "" +#~ " posix change the behavior of bash where the default" +#~ msgstr "" +#~ " posix megváltoztatja a bash viselkedését ott ahol az " +#~ "alap" + +#~ msgid "" +#~ " operation differs from the 1003.2 standard to" +#~ msgstr " mód különbözik a 1003.2 szabványtól" + +#~ msgid " match the standard" +#~ msgstr " az aktuális szabvány" + +#~ msgid " privileged same as -p" +#~ msgstr " privileged ugyanaz mint a -p" + +#~ msgid " verbose same as -v" +#~ msgstr " verbose ugyanaz mint a -v" + +#~ msgid " vi use a vi-style line editing interface" +#~ msgstr " vi vi stílusú sor szerkesztést használ" + +#~ msgid " xtrace same as -x" +#~ msgstr " xtrace ugyanaz mint a -x" + +#~ msgid "" +#~ " -p Turned on whenever the real and effective user ids do not match." +#~ msgstr "" +#~ " -p Bekapcsolja még akkor is ha a valós és az effektív felhasználó " +#~ "azonosító" + +#~ msgid " Disables processing of the $ENV file and importing of shell" +#~ msgstr "" +#~ " különbözik. Letiltja $ENV fájl feldolgozását és a parancsértelmezõbe " +#~ "építését" + +#~ msgid "" +#~ " functions. Turning this option off causes the effective uid and" +#~ msgstr " Beállítja az effektív felhasználó és csoport azonosítót a " + +#~ msgid " gid to be set to the real uid and gid." +#~ msgstr " valós felhasználó és csoport azonosítóra." + +#~ msgid " -t Exit after reading and executing one command." +#~ msgstr " -t Kilép az olvasás és egy parancs végrehajtása után." + +#~ msgid " -u Treat unset variables as an error when substituting." +#~ msgstr "" +#~ " -u Úgy kezeli a leállított változókat mintha hibás lenne a " +#~ "behelyettesítés." + +#~ msgid " -v Print shell input lines as they are read." +#~ msgstr " -v Kiírja a parancsértelmezõ bemenetét úgy ahogy beolvasta." + +#~ msgid " -x Print commands and their arguments as they are executed." +#~ msgstr "" +#~ " -x Kiírja a parancsokat és a paramétereiket úgy ahogy lefuttatta " +#~ "õket." + +#~ msgid " -B the shell will perform brace expansion" +#~ msgstr " -B a parancsértelmezõ elõkészíti a közös bõvítményeket" + +#~ msgid " -H Enable ! style history substitution. This flag is on" +#~ msgstr " -H Engedélyezés a ! stílusú elõzmény behelyettesítés. Ez a jel" + +#~ msgid " by default." +#~ msgstr " alapból be van kapcsolva." + +#~ msgid " -C If set, disallow existing regular files to be overwritten" +#~ msgstr " -C Ha be van állítva akkor a hagyományos fájl felülírása" + +#~ msgid " by redirection of output." +#~ msgstr " a kimenet átirányításával." + +#~ msgid " -P If set, do not follow symbolic links when executing commands" +#~ msgstr "" +#~ " -P Ha be van állítva akkor nem fogja követni a szimbolikus linkeket " +#~ "amikor" + +#~ msgid " such as cd which change the current directory." +#~ msgstr "" +#~ "elindított program mint a 'cd' megpróbálja meg változtatni az aktuális " +#~ "könyvtárat." + +#~ msgid "Using + rather than - causes these flags to be turned off. The" +#~ msgstr "Ha a '-' helyet '+' használ akkor a jelzõt kikapcsolja." + +#~ msgid "flags can also be used upon invocation of the shell. The current" +#~ msgstr "A jelzõket még lehet használni a parancsértelmezõ meghívására.A " + +#~ msgid "" +#~ "set of flags may be found in $-. The remaining n ARGs are positional" +#~ msgstr "" +#~ "jelenlegi jelzõ beállításokat a $- tárolja. A maradék n ARG a pozicionáló" + +#~ msgid "parameters and are assigned, in order, to $1, $2, .. $n. If no" +#~ msgstr "paraméterekhez rendeli hozzá ($1, $2, $3 ...$n) Ha nem" + +#~ msgid "ARGs are given, all shell variables are printed." +#~ msgstr "nem adunk semmilyen opciót meg akkor az összes változó kiírja." + +#~ msgid "For each NAME, remove the corresponding variable or function. Given" +#~ msgstr "Az összes NÉV változót vagy függvényt letörli" + +#~ msgid "the `-v', unset will only act on variables. Given the `-f' flag," +#~ msgstr "A '-v' használatakor csak a változókat állítja le.A '-f' pedig" + +#~ msgid "unset will only act on functions. With neither flag, unset first" +#~ msgstr "csak a funkciókat.Opciók nélkül az unset elõször megpróbálja a " + +#~ msgid "tries to unset a variable, and if that fails, then tries to unset a" +#~ msgstr "" +#~ "a változók leállítását és ha nem sikerül akkor megpróbálja a funkciókat " +#~ "is." + +#~ msgid "" +#~ "function. Some variables (such as PATH and IFS) cannot be unset; also" +#~ msgstr "Néhány kiemelt változót (pl PATH vagy IFS) nem lehet letörölni" + +#~ msgid "see readonly." +#~ msgstr "ezek csak olvashatók." + +#~ msgid "NAMEs are marked for automatic export to the environment of" +#~ msgstr "" +#~ "A NEVET megjelöli automatikus exportálásra a késõbb elindított parancs" + +#~ msgid "subsequently executed commands. If the -f option is given," +#~ msgstr "környezeti változóiként." + +#~ msgid "the NAMEs refer to functions. If no NAMEs are given, or if `-p'" +#~ msgstr "" +#~ "A '-f' besorolja a NEVET a funkciók közé. Ha nem adja meg a nevet vagy" + +#~ msgid "is given, a list of all names that are exported in this shell is" +#~ msgstr "" +#~ "'-p' -t használja akkor kiírja az összes nevet amit exportáltak ebben a " +#~ "parancs-" + +#~ msgid "printed. An argument of `-n' says to remove the export property" +#~ msgstr "értelmezõben. A '-n' hatására eltávolítja a NEVET exportálandók" + +#~ msgid "from subsequent NAMEs. An argument of `--' disables further option" +#~ msgstr "közül. A '--' paramétere letiltja a következõ opció" + +#~ msgid "processing." +#~ msgstr "feldolgozását." + +#~ msgid "" +#~ "The given NAMEs are marked readonly and the values of these NAMEs may" +#~ msgstr "" +#~ "Az átadott NEVET csak olvashatóvá teszi és ettõl kezdve nem lehet meg" + +#~ msgid "not be changed by subsequent assignment. If the -f option is given," +#~ msgstr "változtatni a hozzárendeléseket. " + +#~ msgid "then functions corresponding to the NAMEs are so marked. If no" +#~ msgstr "A '-f' hatására a funkciónak megfelelõ NEVET megjelöli. Ha" + +#~ msgid "" +#~ "arguments are given, or if `-p' is given, a list of all readonly names" +#~ msgstr "" +#~ "opciók nélkül vagy a '-p'-vel indítjuk el akkor egy listát kapunk a csak" + +#~ msgid "" +#~ "is printed. An argument of `-n' says to remove the readonly property" +#~ msgstr "" +#~ "olvasható funkciókról.A '-n' hatására eltávolítja a NEVET csak olvashatók" + +#~ msgid "from subsequent NAMEs. The `-a' option means to treat each NAME as" +#~ msgstr "közül.A '-a' opció az összes NEVET tömb változóként kezel." + +#~ msgid "an array variable. An argument of `--' disables further option" +#~ msgstr "A '--' paramétere letiltja a következõ opció feldolgozását." + +#~ msgid "not given, it is assumed to be 1." +#~ msgstr "értékét nem adjuk meg, akkor egyel csökkenti." + +#~ msgid "Read and execute commands from FILENAME and return. The pathnames" +#~ msgstr "" +#~ "Beolvas és végrehajtja a parancsokat a FÁJLNÉV-bõl és visszatér.A $PATH" + +#~ msgid "in $PATH are used to find the directory containing FILENAME." +#~ msgstr "változóban található útvonalon próbálja meg keresi a FÁJLNEVET." + +#~ msgid "Suspend the execution of this shell until it receives a SIGCONT" +#~ msgstr "" +#~ "Felfüggeszti ennek a parancsértelmezõnek a futtatását amíg egy SIGCONT" + +#~ msgid "signal. The `-f' if specified says not to complain about this" +#~ msgstr "" +#~ "jelet nem kap.A '-f' azt jelenti, hogy nem fog szólni, ha egy " +#~ "bejelentkezett" + +#~ msgid "being a login shell if it is; just suspend anyway." +#~ msgstr "parancsértelmezõt próbál felfüggeszteni, mindenképp felfüggeszt." + +#~ msgid "Exits with a status of 0 (trueness) or 1 (falseness) depending on" +#~ msgstr "" +#~ "Kilép 0 státusszal (igaz) vagy 1-el (hiba) a KIFELYEZÉS eredményétõl" + +#~ msgid "the evaluation of EXPR. Expressions may be unary or binary. Unary" +#~ msgstr "függõen. A KIFELYEZÉS lehet unáris vagy bináris. Az unáris " + +#~ msgid "expressions are often used to examine the status of a file. There" +#~ msgstr "" +#~ "kifelyezéseket gyakran használják fájlok helyzetének a vizsgálatára." + +#~ msgid "are string operators as well, and numeric comparison operators." +#~ msgstr "Vagy ott ahol a sztingeket kell összehasonlítani számokkal." + +#~ msgid "File operators:" +#~ msgstr "Fájl operátorok:" + +#~ msgid " -b FILE True if file is block special." +#~ msgstr " -b FÁJL Igaz ha a FÁJL egy speciális blokk fájl." + +#~ msgid " -c FILE True if file is character special." +#~ msgstr " -c FÁJL Igaz ha a FÁJL egy speciális karakter fájl" + +#~ msgid " -d FILE True if file is a directory." +#~ msgstr " -d FÁJL Igaz ha a FÁJL egy könyvtár" + +#~ msgid " -e FILE True if file exists." +#~ msgstr " -e FÁJL Igaz ha a FÁJL létezik." + +#~ msgid " -f FILE True if file exists and is a regular file." +#~ msgstr " -f FÁJL Igaz ha a FÁJL létezik és általános fájl." + +#~ msgid " -g FILE True if file is set-group-id." +#~ msgstr "" +#~ " -g FÁJL Igaz ha a FÁJL csoport azonosítója be van állítva." + +#~ msgid " -h FILE True if file is a symbolic link. Use \"-L\"." +#~ msgstr "" +#~ " -h FÁJL Igaz ha a FÁJL egy szimbolikus link. A \"-L\" " +#~ "használatával." + +#~ msgid " -L FILE True if file is a symbolic link." +#~ msgstr " -L FÁJL Igaz ha a FÁJL egy szimbolikus link." + +#~ msgid " -k FILE True if file has its \"sticky\" bit set." +#~ msgstr "" +#~ " -k FÁJL Igaz ha a FÁJL-on be van állítva a rögzített bit." + +#~ msgid " -p FILE True if file is a named pipe." +#~ msgstr " -p FÁJL Igaz ha a FÁJL egy csõ(pipe)." + +#~ msgid " -r FILE True if file is readable by you." +#~ msgstr " -r FÁJL Igaz ha a FÁJL ön által olvasható." + +#~ msgid " -s FILE True if file exists and is not empty." +#~ msgstr " -s FÁJL Igaz ha a FÁJL létezik és nem üres." + +#~ msgid " -S FILE True if file is a socket." +#~ msgstr " -S FÁJL Igaz ha a FÁJL egy socket." + +#~ msgid " -t FD True if FD is opened on a terminal." +#~ msgstr " -t FD Igaz ha az FD megnyitották egy terminálon." + +#~ msgid " -u FILE True if the file is set-user-id." +#~ msgstr "" +#~ " -u FÁJL Igaz ha a FÁJL-on a felhasználó azonosító be van " +#~ "állítva." + +#~ msgid " -w FILE True if the file is writable by you." +#~ msgstr " -w FÁJL Igaz ha a FÁJL-t ön tudja írni." + +#~ msgid " -x FILE True if the file is executable by you." +#~ msgstr " -x FÁJL Igaz ha a FÁJL-t tudja futtatni." + +#~ msgid " -O FILE True if the file is effectively owned by you." +#~ msgstr " -O FÁJL Igaz ha a FÁJL-t effektíve ön birtokolja." + +#~ msgid "" +#~ " -G FILE True if the file is effectively owned by your group." +#~ msgstr "" +#~ " -G FÁJL Igaz ha a FÁJL az ön csoportja effektíve birtokolja." + +#~ msgid " FILE1 -nt FILE2 True if file1 is newer than (according to" +#~ msgstr " FÁJL1 -nt FÁJL2 Igaz ha a FÁJL1 újabb mint (módosítási dátum " + +#~ msgid " modification date) file2." +#~ msgstr " szerint) FÁJL2." + +#~ msgid " FILE1 -ot FILE2 True if file1 is older than file2." +#~ msgstr " FÁJL1 -bot FÁJL2 Igaz ha a FÁJL1 régebbi, mint a FÁJL2." + +#~ msgid " FILE1 -ef FILE2 True if file1 is a hard link to file2." +#~ msgstr " FÁJL1 -ef FÁJL2 Igaz ha a FÁJL1 egy hard link a FÁJL2-re." + +#~ msgid "String operators:" +#~ msgstr "Sztring operátorok:" + +#~ msgid " -z STRING True if string is empty." +#~ msgstr " -z SZTRING Igaz .ha a SZTRING üres." + +#~ msgid " -n STRING" +#~ msgstr " -n SZTRING" + +#~ msgid " STRING True if string is not empty." +#~ msgstr " SZTRING Igaz .ha a SZTRING nem üres" + +#~ msgid " STRING1 = STRING2" +#~ msgstr " SZTRING1 = SZTRING2" + +#~ msgid " True if the strings are equal." +#~ msgstr " Igaz ha a két sztring azonos." + +#~ msgid " STRING1 != STRING2" +#~ msgstr " SZTRING1 != SZTRING2" + +#~ msgid " True if the strings are not equal." +#~ msgstr " Igaz ha a két sztring nem azonos." + +#~ msgid " STRING1 < STRING2" +#~ msgstr " SZTRING1 < SZTRING2" + +#~ msgid "" +#~ " True if STRING1 sorts before STRING2 lexicographically" +#~ msgstr "" +#~ " Igaz ha a SZTRING1 elõrébb van mint a SZTRING2 " +#~ "lexikálisan" + +#~ msgid " STRING1 > STRING2" +#~ msgstr " SZTRING1 > SZTRING2" + +#~ msgid "" +#~ " True if STRING1 sorts after STRING2 lexicographically" +#~ msgstr "" +#~ " Igaz ha a SZTRING1 hátrébb van mint a SZTRING2 " +#~ "lexikálisan" + +#~ msgid "Other operators:" +#~ msgstr "Egyéb operátorok:" + +#~ msgid " ! EXPR True if expr is false." +#~ msgstr " ! KIFELYEZÉS Igaz ha a KIFELYEZÉS." + +#~ msgid " EXPR1 -a EXPR2 True if both expr1 AND expr2 are true." +#~ msgstr " KIF1 -a KIF2 Igaz ha mindkét(ÉS) KIFelyezés igaz." + +#~ msgid " EXPR1 -o EXPR2 True if either expr1 OR expr2 is true." +#~ msgstr " KIF1 -a KIF2 Igaz ha valamelyik(VAGY) KIFelyezés igaz." + +#~ msgid " arg1 OP arg2 Arithmetic tests. OP is one of -eq, -ne," +#~ msgstr " arg1 OP arg2 Számtani összehasonlítások. OP lehet -eq, -ne," + +#~ msgid " -lt, -le, -gt, or -ge." +#~ msgstr " -lt, -le, -gt, vagy -ge közül bármelyik." + +#~ msgid "Arithmetic binary operators return true if ARG1 is equal, not-equal," +#~ msgstr "" +#~ "A bináris számtani operátorok igaz értékel térnek vissza ha az ARG1 " +#~ "egyenlõ" + +#~ msgid "" +#~ "less-than, less-than-or-equal, greater-than, or greater-than-or-equal" +#~ msgstr "" +#~ "nem egyenlõ, kevesebb mint, kevesebb vagy egyenlõ, nagyobb mint vagy" + +#~ msgid "than ARG2." +#~ msgstr "nagyobb vagy egyenlõ mint az ARG2." + +#~ msgid "This is a synonym for the \"test\" builtin, but the last" +#~ msgstr "" +#~ "Ez egy szinonimája a \"test\" beépített utasításnak, de az utolsó " +#~ "paraméter" + +#~ msgid "the shell." +#~ msgstr "a feladatot futtassa ezen a parancsértelmezõn." + +#~ msgid "The command ARG is to be read and executed when the shell receives" +#~ msgstr "" +#~ "Az ARG-ban meghatározott parancsot futtatja le ha a parancsértelmezõ egy" + +#~ msgid "signal(s) SIGNAL_SPEC. If ARG is absent all specified signals are" +#~ msgstr "SIGNAL_SCEP jelet kap.Ha az ARG-ot elhagyjuk akkor az összes jel" + +#~ msgid "reset to their original values. If ARG is the null string each" +#~ msgstr "" +#~ "vissza áll az eredeti értékére. Ha az ARG egy üres sztring akkor a " +#~ "parancsértelmezõ" + +#~ msgid "SIGNAL_SPEC is ignored by the shell and by the commands it invokes." +#~ msgstr "és a parancsok SIGNAL_SPEC hívásait figyelmen kívül hagyja." + +#~ msgid "If SIGNAL_SPEC is EXIT (0) the command ARG is executed on exit from" +#~ msgstr "" +#~ "Ha egy SIGNAL_SPEC EXIT(0) ARG-ot kap akkor kilép az aktuális parancs-" + +#~ msgid "the shell. If SIGNAL_SPEC is DEBUG, ARG is executed after every" +#~ msgstr "értelmezõbõl.Ha a SIGNAL_SPEC értéke DEBUG akkor az ARG minden" + +#~ msgid "command. If ARG is `-p' then the trap commands associated with" +#~ msgstr "parancs után le fut. Ha az ARG egy '-p' akkor megjeleníti az összes" + +#~ msgid "each SIGNAL_SPEC are displayed. If no arguments are supplied or if" +#~ msgstr "SIGNAL_SPEC hozzárendelést. Ha opciók nélkül használja vagy" + +#~ msgid "only `-p' is given, trap prints the list of commands associated with" +#~ msgstr "" +#~ "csak a '-p'-t akkor a trap kiírja a hozzárendelt parancsok listáját az " + +#~ msgid "" +#~ "each signal number. SIGNAL_SPEC is either a signal name in " +#~ msgstr "" +#~ "összes jel számával. A SIGNAL_SPEC elfogadja a -ban " +#~ "meghatározott" + +#~ msgid "" +#~ "or a signal number. `trap -l' prints a list of signal names and their" +#~ msgstr "" +#~ "neveket vagy számukat. A 'trap -l' kiírja a jelek neveit és a " +#~ "hozzátartozó " + +#~ msgid "corresponding numbers. Note that a signal can be sent to the shell" +#~ msgstr "" +#~ "értékeket.Megjegyzés: a parancsértelemzõnek a \"kill -signal $$\" -al " + +#~ msgid "with \"kill -signal $$\"." +#~ msgstr "lehet küldeni." + +#~ msgid "For each NAME, indicate how it would be interpreted if used as a" +#~ msgstr "Az összes NÉVrõl hogyan értelmezi ha parancsértelmezõ amikor" + +#~ msgid "If the -t option is used, returns a single word which is one of" +#~ msgstr "" +#~ "Ha a '-t' opciót használja akkor az eredmény a következõ szavak egyike" + +#~ msgid "" +#~ "`alias', `keyword', `function', `builtin', `file' or `', if NAME is an" +#~ msgstr "" +#~ "`alias', `keyword', `function', `builtin', `file' vagy `', ha a NÉV egy" + +#~ msgid "" +#~ "alias, shell reserved word, shell function, shell builtin, disk file," +#~ msgstr "" +#~ "alias, parancsértelmezõ által fenntartott szó, parancsértelmezõ funkció, " + +#~ msgid "or unfound, respectively." +#~ msgstr "" +#~ "beépített utasítás, egy fájl a lemezen vagy ha nincs meg,sorrendben." + +#~ msgid "If the -p flag is used, either returns the name of the disk file" +#~ msgstr "" +#~ "Ha a '-p'-t használja vissza tér a lemezen található fájl pontos helyével" + +#~ msgid "that would be executed, or nothing if -t would not return `file'." +#~ msgstr "vagy ha nem ad vissza semmit akkor az nem egy fájl." + +#~ msgid "If the -a flag is used, displays all of the places that contain an" +#~ msgstr "" +#~ "A '-a' opció hatására megjeleníti az összes helyet ahol a megtalálható" + +#~ msgid "" +#~ "executable named `file'. This includes aliases and functions, if and" +#~ msgstr "" +#~ "mint futtatható fájl. Ez magában foglalja a aliasokat és a funkciókat " + +#~ msgid "only if the -p flag is not also used." +#~ msgstr "csak akkor ha '-p'-t nem használja." + +#~ msgid "Type accepts -all, -path, and -type in place of -a, -p, and -t," +#~ msgstr "A type elfogadja -all, -path, és a -type szavakat -a, -p, és -t," + +#~ msgid "respectively." +#~ msgstr "helyet." + +#~ msgid "Ulimit provides control over the resources available to processes" +#~ msgstr "" +#~ "Az ulimit teljes ellenõrzést biztosít a parancsértelmezõ által elindított " +#~ "programok" + +#~ msgid "started by the shell, on systems that allow such control. If an" +#~ msgstr "elõforrásai felet, ami által az egész rendszer lehet szabályozni." + +#~ msgid "option is given, it is interpreted as follows:" +#~ msgstr "A következõ lista bemutatja az elérhetõ opciókat:" + +#~ msgid " -S\tuse the `soft' resource limit" +#~ msgstr " -S\t \"lágy\" erõforrás korlátozást használ" + +#~ msgid " -H\tuse the `hard' resource limit" +#~ msgstr " -H\t \"kemény\" erõforrás korlátozást használ" + +#~ msgid " -a\tall current limits are reported" +#~ msgstr " -a\tmegjeleníti az összes korlátozás" + +#~ msgid " -c\tthe maximum size of core files created" +#~ msgstr " -c\ta maximálisan létrehozható core fájl mérete" + +#~ msgid " -d\tthe maximum size of a process's data segment" +#~ msgstr " -d maximális mérete feladatok adat szegmensének" + +#~ msgid " -m\tthe maximum resident set size" +#~ msgstr " -m\ta maximális bennmaradó(rezidest) rész mérete" + +#~ msgid " -s\tthe maximum stack size" +#~ msgstr " -s\ta verem maximális mérete" + +#~ msgid " -t\tthe maximum amount of cpu time in seconds" +#~ msgstr " -t\ta maximálisan felhasználható cpu idõ másodpercben" + +#~ msgid " -f\tthe maximum size of files created by the shell" +#~ msgstr "" +#~ " -f\t a parancsértelmezõ által létrehozható fájlok maximális mérete" + +#~ msgid " -p\tthe pipe buffer size" +#~ msgstr " -p\ta csõ(pipe) puffer mérete" + +#~ msgid " -n\tthe maximum number of open file descriptors" +#~ msgstr " -n\ta maximálisan megnyitható fájl leírók száma" + +#~ msgid " -u\tthe maximum number of user processes" +#~ msgstr " -u\ta felhasználó által maximálisan elindítható feladatok száma" + +#~ msgid " -v\tthe size of virtual memory" +#~ msgstr " -v\ta virtuális memória mérete" + +#~ msgid "If LIMIT is given, it is the new value of the specified resource." +#~ msgstr "Ha a HATÁR meghatározza akkor azaz értéket használja az erõforrás." + +#~ msgid "Otherwise, the current value of the specified resource is printed." +#~ msgstr "Egyébként megjeleníti a jelenlegi értékét az elõforrásnak." + +#~ msgid "If no option is given, then -f is assumed. Values are in 1k" +#~ msgstr "" +#~ "Ha opció nélkül indításhoz a '-f' van hozzárendelve.Az értékek Kilobájtban" + +#~ msgid "increments, except for -t, which is in seconds, -p, which is in" +#~ msgstr "" +#~ "értendõ, kivétel a '-a' értéke mert az másodpercet jelent és a '-p' " +#~ "amelyik" + +#~ msgid "increments of 512 bytes, and -u, which is an unscaled number of" +#~ msgstr "512 bájtot. A '-u' pedig a folyamatok száma darabban " + +#~ msgid "processes." +#~ msgstr "kihelyezve." + +#~ msgid "" +#~ "The user file-creation mask is set to MODE. If MODE is omitted, or if" +#~ msgstr "" +#~ "A felhasználó fájl létrehozási MÓDJÁT állíthatjuk be. Ha a MÓDot elhagyjuk" + +#~ msgid "" +#~ "`-S' is supplied, the current value of the mask is printed. The `-S'" +#~ msgstr "" +#~ "vagy a '-S' opciót használjuk akkor a jelenlegi maskot írja ki. A '-S' " +#~ "opció " + +#~ msgid "" +#~ "option makes the output symbolic; otherwise an octal number is output." +#~ msgstr "" +#~ "kimenete a szimbolikus jelentést írja ki egyébként nyolcas " +#~ "számrendszerben kódolva" + +#~ msgid "If MODE begins with a digit, it is interpreted as an octal number," +#~ msgstr "" +#~ "írja ki.Ha a MÓD számmal kezdõdik akkor nyolcas számrendszerben kódolva" + +#~ msgid "" +#~ "otherwise it is a symbolic mode string like that accepted by chmod(1)." +#~ msgstr "" +#~ "értelmezi egyébként a szimbolikus módokat használja mint a chmod(1)." + +#~ msgid "" +#~ "Wait for the specified process and report its termination status. If" +#~ msgstr "Várakozik egy meghatározott feladatra és jelentést készít róla." + +#~ msgid "N is not given, all currently active child processes are waited for," +#~ msgstr "" +#~ "Ha az N nincs meghatározva akkor a jelenleg aktív gyermek folyamatra vár" + +#~ msgid "and the return code is zero. N may be a process ID or a job" +#~ msgstr "" +#~ "és a visszatérési értéke 0. Az N lehet egy folyamat azonosító és egy " +#~ "munka-" + +#~ msgid "specification; if a job spec is given, all processes in the job's" +#~ msgstr "folyamat meghatározás, ha egy munkafolyamatot ad át akkor az összes" + +#~ msgid "pipeline are waited for." +#~ msgstr "folyamatára várakozik." + +#~ msgid "and the return code is zero. N is a process ID; if it is not given," +#~ msgstr "" +#~ "és a visszatérési értéke 0. Az N lehet egy folyamat azonosító ha ez nincs " + +#~ msgid "all child processes of the shell are waited for." +#~ msgstr "megadva a parancsértelmezõ összes gyermek feladatára várakozik." + +#~ msgid "The `for' loop executes a sequence of commands for each member in a" +#~ msgstr "A 'for' egy hurokban elindítja a parancsokat amíg az összes eleme" + +#~ msgid "" +#~ "list of items. If `in WORDS ...;' is not present, then `in \"$@\"' is" +#~ msgstr "" +#~ "végig nem futott. Ha az 'in SZAVAK..;'nincs jelen akkor a \"$@\" értékeit" + +#~ msgid "" +#~ "assumed. For each element in WORDS, NAME is set to that element, and" +#~ msgstr "használja fel.A SZAVAK összes elemét a NÉVhez rendeli és lefuttatja" + +#~ msgid "the COMMANDS are executed." +#~ msgstr "a PARANCSOKAT." + +#~ msgid "The WORDS are expanded, generating a list of words. The" +#~ msgstr "SZAVAK kiválasztása, lista generálása a szavakból" + +#~ msgid "set of expanded words is printed on the standard error, each" +#~ msgstr "Az összegyûjtõt szavakat a standard hibakimenetre küldi, mindegyik" + +#~ msgid "preceded by a number. If `in WORDS' is not present, `in \"$@\"'" +#~ msgstr "besorszámozva. Ha a 'in SZAVAK' nincs jelen akkor a \"$@\"" + +#~ msgid "is assumed. The PS3 prompt is then displayed and a line read" +#~ msgstr "használja. A PS3 prompt jelenik meg és szabvány bemenetrõl" + +#~ msgid "from the standard input. If the line consists of the number" +#~ msgstr "olvas. Ha a sorban található valamelyik szám megfelel" + +#~ msgid "corresponding to one of the displayed words, then NAME is set" +#~ msgstr "a megjelenített szavak egyikével akkor azt behelyettesíti a NÉV-be" + +#~ msgid "to that word. If the line is empty, WORDS and the prompt are" +#~ msgstr "Ha a sor üres akkor a SZAVAKAT és a promptot újra megjeleníti" + +#~ msgid "redisplayed. If EOF is read, the command completes. Any other" +#~ msgstr "" +#~ "Ha EOF jelet olvas be akkor a parancsot befejezi. Minden egyéb helyzetben" + +#~ msgid "value read causes NAME to be set to null. The line read is saved" +#~ msgstr "a NÉV értékét nullára állítja be. A beolvasott sort eltárolja a " + +#~ msgid "in the variable REPLY. COMMANDS are executed after each selection" +#~ msgstr "" +#~ "REPLY változóba. A parancsot az mindig lefuttatja egészen addig amíg" + +#~ msgid "until a break or return command is executed." +#~ msgstr "meg nem szakítjuk vagy vissza nem tér a parancs." + +#~ msgid "`|' is used to separate multiple patterns." +#~ msgstr "'|' használhatjuk több minta elválasztásához." + +#~ msgid "" +#~ "The if COMMANDS are executed. If the exit status is zero, then the then" +#~ msgstr "" +#~ "Az if PARANCS lefuttatása. Ha a kimeneti status nulla akkor a 'then'" + +#~ msgid "" +#~ "COMMANDS are executed. Otherwise, each of the elif COMMANDS are executed" +#~ msgstr " PARANCS-ot lefuttatja. Egyébként az 'elif' PARANCSAIt futtatja le" + +#~ msgid "" +#~ "in turn, and if the exit status is zero, the corresponding then COMMANDS" +#~ msgstr "" +#~ "és ha ennek a visszatérési értéke nulla akkor a megfelelõ PARANCSok " +#~ "lesznek" + +#~ msgid "" +#~ "are executed and the if command completes. Otherwise, the else COMMANDS" +#~ msgstr "" +#~ "lefuttatva és ezzel behelyezõdik az 'if' parancs. Egyébként az 'else' ág " +#~ "PARANCSAI" + +#~ msgid "" +#~ "are executed, if present. The exit status is the exit status of the last" +#~ msgstr "futnak le (persze ha jelen van). A visszatérési státusz az utolsó" + +#~ msgid "command executed, or zero if no condition tested true." +#~ msgstr "lefutott parancsé vagy nulla ha az 'if' feltétel nem igaz." + +#~ msgid "`while' COMMANDS has an exit status of zero." +#~ msgstr "'while'-ban nem tér vissza nulla kilépési státusszal." + +#~ msgid "`until' COMMANDS has an exit status which is not zero." +#~ msgstr "'until'-ban nem tér vissza nulla kilépési státusszal." + +#~ msgid "Create a simple command invoked by NAME which runs COMMANDS." +#~ msgstr "" +#~ "Létrehoz egy egyszerû parancsot amit a NÉVvel lehet meghívni és ami " +#~ "lefuttatja" + +#~ msgid "Arguments on the command line along with NAME are passed to the" +#~ msgstr "a PARANCSOKAT. A parancssorban a NÉV opciói a $0..$N" + +#~ msgid "function as $0 .. $n." +#~ msgstr "változókban jelenik meg." + +#~ msgid "entire set of commands." +#~ msgstr "átirányítás a parancsok halmazának." + +#~ msgid "This is similar to the `fg' command. Resume a stopped or background" +#~ msgstr "" +#~ "Ez hasonlít az 'fg' parancsra. Folyattatja a megállított vagy háttérbe " +#~ "rakott" + +#~ msgid "job. If you specifiy DIGITS, then that job is used. If you specify" +#~ msgstr "" +#~ "munkafolyamatokat. Ha meghatározza a SZÁMOKAT akkor azt munkafolyamatot" + +#~ msgid "" +#~ "WORD, then the job whose name begins with WORD is used. Following the" +#~ msgstr "" +#~ "használja. Ha a SZÓT adja meg akkor azokat a folyamatokat használja ami a " + +#~ msgid "job specification with a `&' places the job in the background." +#~ msgstr "" +#~ "a SZÓval kezdõdik.A munkafolyamat meghatározása egy '&'-re végzõdik akkor " +#~ "a háttérbe helyezi." + +#~ msgid "BASH_VERSION The version numbers of this Bash." +#~ msgstr "BASH_VERSION A Bash verzió száma." + +#~ msgid "CDPATH A colon separated list of directories to search" +#~ msgstr "" +#~ "CDPATH Kettõsponttal elválasztott lista azoknak a könyvtáraknak" + +#~ msgid "\t\twhen the argument to `cd' is not found in the current" +#~ msgstr "\t\thelyérõl amiket a 'cd' parancs nem talál meg az aktuális " + +#~ msgid "\t\tdirectory." +#~ msgstr "\t\tkönyvtárban." + +#~ msgid "" +#~ "HISTFILE The name of the file where your command history is stored." +#~ msgstr "" +#~ "HISTFILE A fájl neve ahol a saját parancs elõzményeket tárolja." + +#~ msgid "HISTFILESIZE The maximum number of lines this file can contain." +#~ msgstr "HISTFILESIZE Maximális sorok száma amit ez a fájl tartalmazhat." + +#~ msgid "HISTSIZE The maximum number of history lines that a running" +#~ msgstr "HISTSIZE A maximális sorok száma amit a futó" + +#~ msgid "\t\tshell can access." +#~ msgstr "\t\tparancsértelmezõ még elérhet." + +#~ msgid "HOME The complete pathname to your login directory." +#~ msgstr "HOME A teljes útvonala a saját belépési könyvtárnak." + +#~ msgid "" +#~ "HOSTTYPE The type of CPU this version of Bash is running under." +#~ msgstr "HOSTTYPE A CPU típusa annak a gépeknek ahol a Bash fut." + +#~ msgid "" +#~ "IGNOREEOF Controls the action of the shell on receipt of an EOF" +#~ msgstr "" +#~ "IGNOREEOF Ellenõrzi a parancsértelemezõ viselkedését amikor egy EOF" + +#~ msgid "\t\tcharacter as the sole input. If set, then the value" +#~ msgstr "" +#~ "\t\tkaraktert kap mint önálló bemenet. Ha be van állítva akkor ez az " + +#~ msgid "\t\tof it is the number of EOF characters that can be seen" +#~ msgstr "\t\t érték akkor azt jelenti, hogy hány üres" + +#~ msgid "\t\tin a row on an empty line before the shell will exit" +#~ msgstr "\t\tsor keljen az EOF jel elõtt, hogy kilépjen(alapból 10). Amikor" + +#~ msgid "\t\t(default 10). When unset, EOF signifies the end of input." +#~ msgstr "\t\t nincs beállítva akkor az EOF jelre befejezi a bevitelt" + +#~ msgid "MAILCHECK\tHow often, in seconds, Bash checks for new mail." +#~ msgstr "MAILCHECK\tHány másodpercenként ellenõrizze a Bash az új leveleket." + +#~ msgid "MAILPATH\tA colon-separated list of filenames which Bash checks" +#~ msgstr "MAILPATH\tEgy kettõsponttal elválasztott lista a fájl nevekrõl ahol" + +#~ msgid "\t\tfor new mail." +#~ msgstr "\t\ta Bash ellenõrzi az új leveleket." + +#~ msgid "OSTYPE\t\tThe version of Unix this version of Bash is running on." +#~ msgstr "OSTYPE\t\tA Unix verziója annak a gépnek ahol a Bash fut." + +#~ msgid "PATH A colon-separated list of directories to search when" +#~ msgstr "" +#~ "PATH Kettõsponttal elválasztott lista azokról a könyvtárakról" + +#~ msgid "\t\tlooking for commands." +#~ msgstr "\t\tahol a Bash keresi a parancsokat." + +#~ msgid "PROMPT_COMMAND A command to be executed before the printing of each" +#~ msgstr "PROMPT_COMMAND A parancs amit mindig lefuttat mielõtt kiírja " + +#~ msgid "\t\tprimary prompt." +#~ msgstr "\t\tmielõtt megjelenítené az elsõdleges promptot." + +#~ msgid "PS1 The primary prompt string." +#~ msgstr "PS1 Az elsõdleges prompt sztringje." + +#~ msgid "PS2 The secondary prompt string." +#~ msgstr "PS2 másodlagos prompt sztringje." + +#~ msgid "TERM The name of the current terminal type." +#~ msgstr "TERM A jelenlegi terminál típusának a neve." + +#~ msgid "auto_resume Non-null means a command word appearing on a line by" +#~ msgstr "" +#~ "auto_resume A kitöltött változó azt jelenti a kiadott parancsokat" + +#~ msgid "\t\titself is first looked for in the list of currently" +#~ msgstr "\t\telõbb megnézi a jelenleg megállított munka" + +#~ msgid "\t\tstopped jobs. If found there, that job is foregrounded." +#~ msgstr "\t\tfolyamatok között.Ha megtalálja akkor azt folytatja." + +#~ msgid "\t\tA value of `exact' means that the command word must" +#~ msgstr "\t\tAz `exact' értéke azt jelenti, hogy a parancsnak teljesen meg" + +#~ msgid "\t\texactly match a command in the list of stopped jobs. A" +#~ msgstr "\t\tkell egyezni a leállított munkafolyamat nevével." + +#~ msgid "\t\tvalue of `substring' means that the command word must" +#~ msgstr "\t\tA 'substring' érték pedig azt jelenti, hogy a parancsnak csak " + +#~ msgid "\t\tmatch a substring of the job. Any other value means that" +#~ msgstr "" +#~ "\t\tegy része is elegendõ az egyezéshez.Minden egyéb érték azt jelenti," + +#~ msgid "\t\tthe command must be a prefix of a stopped job." +#~ msgstr "" +#~ "\t\t hogy a parancs elõtéte kell hogy legyen a legállított munkafolyamat." + +#~ msgid "command_oriented_history" +#~ msgstr "command_oriented_history" + +#~ msgid "" +#~ " Non-null means to save multiple-line commands together on" +#~ msgstr "" +#~ " A változó kitöltése azt jelenti, hogy több soros " +#~ "parancsokat" + +#~ msgid " a single history line." +#~ msgstr " egy sorba rakja az elõzmények közé." + +#~ msgid "histchars Characters controlling history expansion and quick" +#~ msgstr "" +#~ "histchars Ezekkel a karakterekkel befolyásolható az elõzmények gyors" + +#~ msgid "\t\tsubstitution. The first character is the history" +#~ msgstr "\t\tbehelyettesítése. Az elõzmények elsõ karakterre" + +#~ msgid "\t\tsubstitution character, usually `!'. The second is" +#~ msgstr "\t\ta behelyettesítõ karakter általában '!'. A második" + +#~ msgid "\t\tthe `quick substitution' character, usually `^'. The" +#~ msgstr "\t\ta gyors behelyettesítést jelenti általában `^' jelenti. A" + +#~ msgid "\t\tthird is the `history comment' character, usually `#'." +#~ msgstr "\t\tharmadik a elõzmények megjegyzés karakterre általában '#'." + +#~ msgid "HISTCONTROL\tSet to a value of `ignorespace', it means don't enter" +#~ msgstr "HISTCONTROL\tA változó `ignorespace' értéke azt jelenti, hogy" + +#~ msgid "\t\tlines which begin with a space or tab on the history" +#~ msgstr "" +#~ "\t\tazokat a sorokat amelyek helyjellel vagy tabulátorral kezdõdnek " +#~ "kihagyja az" + +#~ msgid "\t\tlist. Set to a value of `ignoredups', it means don't" +#~ msgstr "\t\telõzmények közül.Az `ignoredups' jelentése" + +#~ msgid "\t\tenter lines which match the last entered line. Set to" +#~ msgstr "\t\tha a beírt sor azonos az elõzõvel akkor nem rögzíti.Ha " + +#~ msgid "\t\t`ignoreboth' means to combine the two options. Unset," +#~ msgstr "" +#~ "\t\t`ignoreboth'-ra állítjuk be akkor a két tulajdonságot ötvözi." +#~ "Leállítása" + +#~ msgid "\t\tor set to any other value than those above means to save" +#~ msgstr "\t\tvagy már ha értékre állítjuk be akkor a mentés során" + +#~ msgid "\t\tall lines on the history list." +#~ msgstr "\t\tminden sor bele kerül az elõzmények közé." + +#~ msgid "Toggle the values of variables controlling optional behavior." +#~ msgstr "A változok értékeivel szabályozhatjuk az opciók viselkedését." + +#~ msgid "The -s flag means to enable (set) each OPTNAME; the -u flag" +#~ msgstr "A '-s'-el engedélyezhetjük az összes OPTNEVEt, a '-u'-val pedig" + +#~ msgid "unsets each OPTNAME. The -q flag suppresses output; the exit" +#~ msgstr "letilthatjuk õket. A '-q' opcióval a kimenetet letilthatjuk el így" + +#~ msgid "status indicates whether each OPTNAME is set or unset. The -o" +#~ msgstr "csak a visszatérési értékek jelzik az OPTNEVEk állapotát. A '-o'" + +#~ msgid "option restricts the OPTNAMEs to those defined for use with" +#~ msgstr "opcióval rögzítheti a OPTNEVEK-et ezeket a meghatározásokat" + +#~ msgid "`set -o'. With no options, or with the -p option, a list of all" +#~ msgstr "" +#~ "a 'set -o' használhatjuk. Opciók nélkül vagy a 'p' opció kilistázza az " +#~ "összes" + +#~ msgid "settable options is displayed, with an indication of whether or" +#~ msgstr "beállítható opciót jelezve azokat amik már be vannak állítva és" + +#~ msgid "not each is set." +#~ msgstr "azokat amik nincsenek beállítva." diff --git a/po/id.gmo b/po/id.gmo new file mode 100644 index 0000000000000000000000000000000000000000..e7e9bea271f2a3352d50cdabb786f4622092b7b7 GIT binary patch literal 152559 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 literal 0 Hc-jL100001 diff --git a/po/id.po b/po/id.po new file mode 100644 index 000000000..56dc120b0 --- /dev/null +++ b/po/id.po @@ -0,0 +1,6114 @@ +# Pesan Bahasa Indonesia untuk bash +# Copyright (C) 2008 Free Software Foundation, Inc. +# This file is distributed under the same license as the bash package. +# Arif E. Nugroho , 2008. +# +msgid "" +msgstr "" +"Project-Id-Version: bash 4.0-pre1\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2009-01-06 11:56-0500\n" +"PO-Revision-Date: 2008-09-06 17:41+0700\n" +"Last-Translator: Arif E. Nugroho \n" +"Language-Team: Indonesian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-1\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: arrayfunc.c:50 +msgid "bad array subscript" +msgstr "array subscript buruk" + +#: arrayfunc.c:313 builtins/declare.def:474 +#, c-format +msgid "%s: cannot convert indexed to associative array" +msgstr "%s: tidak dapat mengubah index ke array yang berassosiasi" + +#: arrayfunc.c:479 +#, c-format +msgid "%s: invalid associative array key" +msgstr "%s: kunci array assosiasi tidak valid" + +#: arrayfunc.c:481 +#, c-format +msgid "%s: cannot assign to non-numeric index" +msgstr "%s: tidak dapat mengassign ke index tidak-numeric" + +#: arrayfunc.c:517 +#, c-format +msgid "%s: %s: must use subscript when assigning associative array" +msgstr "%s: %s: harus menggunakan subscript ketika memberikan assosiasi array" + +#: bashhist.c:380 +#, c-format +msgid "%s: cannot create: %s" +msgstr "%s: tidak dapat membuat: %s" + +#: bashline.c:3413 +msgid "bash_execute_unix_command: cannot find keymap for command" +msgstr "bash_execute_unix_command: tidak dapat menemukan keymap untuk perintah" + +#: bashline.c:3491 +#, c-format +msgid "%s: first non-whitespace character is not `\"'" +msgstr "%s: bukan karakter whitespace (spasi) pertama ditemukan `\"'" + +#: bashline.c:3520 +#, c-format +msgid "no closing `%c' in %s" +msgstr "tidak menutup '%c' dalam %s" + +#: bashline.c:3554 +#, c-format +msgid "%s: missing colon separator" +msgstr "%s: hilang pemisah colon" + +#: builtins/bind.def:120 builtins/bind.def:123 +msgid "line editing not enabled" +msgstr "" + +#: builtins/bind.def:206 +#, c-format +msgid "`%s': invalid keymap name" +msgstr "'%s': nama keymap tidak valid" + +#: builtins/bind.def:245 +#, c-format +msgid "%s: cannot read: %s" +msgstr "%s: tidak dapat membaca: %s" + +#: builtins/bind.def:260 +#, c-format +msgid "`%s': cannot unbind" +msgstr "'%s': tidak dapat melepaskan" + +#: builtins/bind.def:295 builtins/bind.def:325 +#, c-format +msgid "`%s': unknown function name" +msgstr "'%s': nama fungsi tidak dikenal" + +#: builtins/bind.def:303 +#, c-format +msgid "%s is not bound to any keys.\n" +msgstr "%s tidak terikat ke kunci apapun.\n" + +#: builtins/bind.def:307 +#, c-format +msgid "%s can be invoked via " +msgstr "%s dapat dipanggil melalui " + +#: builtins/break.def:77 builtins/break.def:117 +msgid "loop count" +msgstr "jumlah loop" + +#: builtins/break.def:137 +msgid "only meaningful in a `for', `while', or `until' loop" +msgstr "hanya berarti dalam sebuah `for', `while', atau `until'loop" + +#: builtins/caller.def:133 +#, fuzzy +msgid "" +"Returns the context of the current subroutine call.\n" +" \n" +" Without EXPR, returns " +msgstr "Mengembalikan context dari panggilan subroutine saat ini." + +#: builtins/cd.def:215 +msgid "HOME not set" +msgstr "HOME tidak diset" + +#: builtins/cd.def:227 +msgid "OLDPWD not set" +msgstr "OLDPWD tidak diset" + +#: builtins/common.c:101 +#, c-format +msgid "line %d: " +msgstr "baris %d: " + +#: builtins/common.c:139 error.c:260 +#, c-format +msgid "warning: " +msgstr "peringatan: " + +#: builtins/common.c:153 +#, c-format +msgid "%s: usage: " +msgstr "%s: penggunaan: " + +#: builtins/common.c:166 test.c:822 +msgid "too many arguments" +msgstr "terlalu banyak argumen" + +#: builtins/common.c:191 shell.c:493 shell.c:774 +#, c-format +msgid "%s: option requires an argument" +msgstr "%s: opsi membutuhkan sebuah argumen" + +#: builtins/common.c:198 +#, c-format +msgid "%s: numeric argument required" +msgstr "%s: argumen numeric dibutuhkan" + +#: builtins/common.c:205 +#, c-format +msgid "%s: not found" +msgstr "%s: tidak ditemukan" + +#: builtins/common.c:214 shell.c:787 +#, c-format +msgid "%s: invalid option" +msgstr "%s: opsi tidak valid" + +#: builtins/common.c:221 +#, c-format +msgid "%s: invalid option name" +msgstr "%s: nama opsi tidak valid" + +#: builtins/common.c:228 general.c:231 general.c:236 +#, c-format +msgid "`%s': not a valid identifier" +msgstr "`%s': bukan sebuah identifier yang valid" + +#: builtins/common.c:238 +msgid "invalid octal number" +msgstr "nomor oktal tidak valid" + +#: builtins/common.c:240 +msgid "invalid hex number" +msgstr "nomor hexa tidak valid" + +#: builtins/common.c:242 expr.c:1255 +msgid "invalid number" +msgstr "nomor tidak valid" + +#: builtins/common.c:250 +#, c-format +msgid "%s: invalid signal specification" +msgstr "%s: spesifikasi sinyal tidak valid" + +#: builtins/common.c:257 +#, c-format +msgid "`%s': not a pid or valid job spec" +msgstr "`%s': bukan sebuah pid atau spesifikasi pekerjaan yang valid" + +#: builtins/common.c:264 error.c:453 +#, c-format +msgid "%s: readonly variable" +msgstr "%s: variabel baca-saja" + +#: builtins/common.c:272 +#, c-format +msgid "%s: %s out of range" +msgstr "%s: %s diluar jangkauan" + +#: builtins/common.c:272 builtins/common.c:274 +msgid "argument" +msgstr "argumen" + +#: builtins/common.c:274 +#, c-format +msgid "%s out of range" +msgstr "%s diluar jangkauan" + +#: builtins/common.c:282 +#, c-format +msgid "%s: no such job" +msgstr "%s: tidak ada pekerjaan seperti itu" + +#: builtins/common.c:290 +#, c-format +msgid "%s: no job control" +msgstr "%s: tidak ada pengontrol kerja" + +#: builtins/common.c:292 +msgid "no job control" +msgstr "tidak ada pengontrol kerja" + +#: builtins/common.c:302 +#, c-format +msgid "%s: restricted" +msgstr "%s: terbatas" + +#: builtins/common.c:304 +msgid "restricted" +msgstr "terbatas" + +#: builtins/common.c:312 +#, c-format +msgid "%s: not a shell builtin" +msgstr "%s: bukan sebuah builtin shell" + +#: builtins/common.c:321 +#, c-format +msgid "write error: %s" +msgstr "gagal menulis: %s" + +#: builtins/common.c:553 +#, c-format +msgid "%s: error retrieving current directory: %s: %s\n" +msgstr "%s: error mengambil direktori saat ini: %s: %s\n" + +#: builtins/common.c:619 builtins/common.c:621 +#, c-format +msgid "%s: ambiguous job spec" +msgstr "%s: spesifikasi pekerjaan ambigu" + +#: builtins/complete.def:270 +#, c-format +msgid "%s: invalid action name" +msgstr "%s: nama aksi tidak valid" + +#: builtins/complete.def:430 builtins/complete.def:615 +#: builtins/complete.def:813 +#, c-format +msgid "%s: no completion specification" +msgstr "%s: tidak ada spesifikasi completion" + +#: builtins/complete.def:667 +msgid "warning: -F option may not work as you expect" +msgstr "peringatan: opsi -F mungkin tidak bekerja seperti yang anda harapkan" + +#: builtins/complete.def:669 +msgid "warning: -C option may not work as you expect" +msgstr "peringatan: opsi -C mungkin tidak bekerja seperti yang anda harapkan" + +#: builtins/complete.def:786 +msgid "not currently executing completion function" +msgstr "saat ini sedang tidak menjalankan fungsi completion" + +#: builtins/declare.def:122 +msgid "can only be used in a function" +msgstr "hanya dapat digunakan dalam sebuah fungsi" + +#: builtins/declare.def:353 +msgid "cannot use `-f' to make functions" +msgstr "tidak dapat menggunakan `-f' untuk membuat fungsi" + +#: builtins/declare.def:365 execute_cmd.c:4731 +#, c-format +msgid "%s: readonly function" +msgstr "%s: fungsi baca-saja" + +#: builtins/declare.def:461 +#, c-format +msgid "%s: cannot destroy array variables in this way" +msgstr "%s: tidak dapat menghapus variabel array secara ini" + +#: builtins/declare.def:468 +#, c-format +msgid "%s: cannot convert associative to indexed array" +msgstr "%s: tidak dapat mengubah assosiasi ke array index" + +#: builtins/enable.def:137 builtins/enable.def:145 +msgid "dynamic loading not available" +msgstr "dynamic loading tidak tersedia" + +#: builtins/enable.def:312 +#, c-format +msgid "cannot open shared object %s: %s" +msgstr "tidak dapat membuka object shared %s: %s" + +#: builtins/enable.def:335 +#, c-format +msgid "cannot find %s in shared object %s: %s" +msgstr "tidak dapat menemukan %s dalam shared object %s: %s" + +#: builtins/enable.def:459 +#, c-format +msgid "%s: not dynamically loaded" +msgstr "%s: bukan dinamically loaded" + +#: builtins/enable.def:474 +#, c-format +msgid "%s: cannot delete: %s" +msgstr "%s: tidak dapat menghapus: %s" + +#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4588 +#: shell.c:1439 +#, c-format +msgid "%s: is a directory" +msgstr "%s: bukan sebuah direktori" + +#: builtins/evalfile.c:139 +#, c-format +msgid "%s: not a regular file" +msgstr "%s: bukan sebuah file umum" + +#: builtins/evalfile.c:147 +#, c-format +msgid "%s: file is too large" +msgstr "%s: file terlalu besar" + +#: builtins/evalfile.c:185 execute_cmd.c:4658 shell.c:1449 +#, c-format +msgid "%s: cannot execute binary file" +msgstr "%s: tidak dapat menjalankan berkas binary" + +#: builtins/exec.def:212 +#, c-format +msgid "%s: cannot execute: %s" +msgstr "%s: tidak dapat menjalankan: %s" + +#: builtins/exit.def:65 +#, c-format +msgid "logout\n" +msgstr "logout\n" + +#: builtins/exit.def:88 +msgid "not login shell: use `exit'" +msgstr "bukan sebuah login shell: gunakan `exit'" + +#: builtins/exit.def:120 +#, c-format +msgid "There are stopped jobs.\n" +msgstr "Ada pekerjaan yang terhenti.\n" + +#: builtins/exit.def:122 +#, c-format +msgid "There are running jobs.\n" +msgstr "Ada pekerjaan yang sedang berjalan.\n" + +#: builtins/fc.def:261 +msgid "no command found" +msgstr "perintah tidak ditemukan" + +#: builtins/fc.def:341 +msgid "history specification" +msgstr "spesifikasi sejarah" + +#: builtins/fc.def:362 +#, c-format +msgid "%s: cannot open temp file: %s" +msgstr "%s: tidak dapat membuka file sementara: %s" + +#: builtins/fg_bg.def:149 builtins/jobs.def:282 +msgid "current" +msgstr "sekarang" + +#: builtins/fg_bg.def:158 +#, c-format +msgid "job %d started without job control" +msgstr "pekerjaan %d dimulai tanpa pengontrol pekerjaan" + +#: builtins/getopt.c:110 +#, c-format +msgid "%s: illegal option -- %c\n" +msgstr "%s: opsi tidak legal -- %c\n" + +#: builtins/getopt.c:111 +#, c-format +msgid "%s: option requires an argument -- %c\n" +msgstr "%s: opsi membutuhkan sebuah argumen -- %c\n" + +#: builtins/hash.def:92 +msgid "hashing disabled" +msgstr "hashing dinonaktifkan" + +#: builtins/hash.def:138 +#, c-format +msgid "%s: hash table empty\n" +msgstr "%s: tabel hash kosong\n" + +#: builtins/hash.def:244 +#, c-format +msgid "hits\tcommand\n" +msgstr "tekan\tperintah\n" + +#: builtins/help.def:130 +#, c-format +msgid "Shell commands matching keyword `" +msgid_plural "Shell commands matching keywords `" +msgstr[0] "Perintah shell cocok dengan kata kunci `" +msgstr[1] "Perintah shell cocok dengan kata kunci `" + +#: builtins/help.def:168 +#, c-format +msgid "" +"no help topics match `%s'. Try `help help' or `man -k %s' or `info %s'." +msgstr "" +"tidak ada topik bantuan yang cocok dengan `%s'. Coba `help help' atau 'man -" +"k %s' atau `info %s'." + +#: builtins/help.def:185 +#, c-format +msgid "%s: cannot open: %s" +msgstr "%s: tidak dapat membuka: %s" + +#: builtins/help.def:337 +#, c-format +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 "" +"Perintah shell ini didefinisikan secara internal. Ketik `help' untuk melihat " +"daftar ini.\n" +"Ketik `help nama' untuk informasi lebih lanjut mengenai fungsi `nama'.\n" +"Gunakan `info bash' untuk informasi lebih lanjut mengenasi shell secara " +"umum.\n" +"Gunakan `man -k' atau `info' untuk informasi lebih lanjut mengenai perintah " +"yang tidak ada dalam daftar ini.\n" +"\n" +"Sebuah asterisk (*) disebelah dari nama berarti perintah tersebut tidak " +"aktif.\n" +"\n" + +#: builtins/history.def:154 +msgid "cannot use more than one of -anrw" +msgstr "tidak dapat menggunakan lebih dari satu opsi dari -anrw" + +#: builtins/history.def:186 +msgid "history position" +msgstr "posisi sejarah" + +#: builtins/history.def:365 +#, c-format +msgid "%s: history expansion failed" +msgstr "%s: expansi sejarah gagal" + +#: builtins/inlib.def:71 +#, c-format +msgid "%s: inlib failed" +msgstr "%s: inlib gagal" + +#: builtins/jobs.def:109 +msgid "no other options allowed with `-x'" +msgstr "tidak ada opsi lain yang diperbolehkan dengan `-x'" + +#: builtins/kill.def:197 +#, c-format +msgid "%s: arguments must be process or job IDs" +msgstr "%s: argumen harus diproses atau ID pekerjaan" + +#: builtins/kill.def:260 +msgid "Unknown error" +msgstr "Kesalahan tidak diketahui" + +#: builtins/let.def:95 builtins/let.def:120 expr.c:501 expr.c:516 +msgid "expression expected" +msgstr "diduga sebuah ekspresi" + +#: builtins/mapfile.def:215 builtins/read.def:272 +#, c-format +msgid "%s: invalid file descriptor specification" +msgstr "%s: spesifikasi file deskripsi tidak valid" + +#: builtins/mapfile.def:223 builtins/read.def:279 +#, c-format +msgid "%d: invalid file descriptor: %s" +msgstr "%d: file deskriptor %s tidak valid" + +#: builtins/mapfile.def:232 builtins/mapfile.def:270 +#, c-format +msgid "%s: invalid line count" +msgstr "%s: jumlah baris tidak valid" + +#: builtins/mapfile.def:243 +#, c-format +msgid "%s: invalid array origin" +msgstr "%s: asal array tidak valid" + +#: builtins/mapfile.def:260 +#, c-format +msgid "%s: invalid callback quantum" +msgstr "%s: nama aksi tidak valid" + +#: builtins/mapfile.def:292 +msgid "empty array variable name" +msgstr "nama variabel array kosong" + +#: builtins/mapfile.def:313 +msgid "array variable support required" +msgstr "bantuan array variabel dibutuhkan" + +#: builtins/printf.def:367 +#, c-format +msgid "`%s': missing format character" +msgstr "`%s': hilang karakter format" + +#: builtins/printf.def:544 +#, c-format +msgid "`%c': invalid format character" +msgstr "`%c': karakter format tidak valid" + +#: builtins/printf.def:571 +#, c-format +msgid "warning: %s: %s" +msgstr "peringatan: %s: %s" + +#: builtins/printf.def:750 +msgid "missing hex digit for \\x" +msgstr "hilang digit hexa untuk \\x" + +#: builtins/pushd.def:195 +msgid "no other directory" +msgstr "tidak ada direktori lain" + +#: builtins/pushd.def:462 +msgid "" +msgstr "" + +#: builtins/pushd.def:506 +msgid "directory stack empty" +msgstr "direktori stack kosong" + +#: builtins/pushd.def:508 +msgid "directory stack index" +msgstr "index direktori stack" + +#: builtins/pushd.def:683 +msgid "" +"Display the list of currently remembered directories. Directories\n" +" find their way onto the list with the `pushd' command; you can get\n" +" back up through the list with the `popd' command.\n" +" \n" +" Options:\n" +" -c\tclear the directory stack by deleting all of the elements\n" +" -l\tdo not print tilde-prefixed versions of directories relative\n" +" \tto your home directory\n" +" -p\tprint the directory stack with one entry per line\n" +" -v\tprint the directory stack with one entry per line prefixed\n" +" \twith its position in the stack\n" +" \n" +" Arguments:\n" +" +N\tDisplays the Nth entry counting from the left of the list shown " +"by\n" +" \tdirs when invoked without options, starting with zero.\n" +" \n" +" -N\tDisplays the Nth entry counting from the right of the list shown " +"by\n" +"\tdirs when invoked without options, starting with zero." +msgstr "" +"Menampilkan daftar dari direktori yang diingat saat ini. Direktori\n" +" menemukan jalannya kedalam daftar dengan perintah `pushd'; anda dapat " +"memperoleh\n" +" backup melalui daftar dengan perintah `popd'.\n" +" \n" +" Opsi:\n" +" -c\tmenghapus direktori stact dengan menghapus seluruh elemen\n" +" -l\tjangan menampilkan versi dengan tilde dari direktori relative\n" +" \tke direkori rumah anda\n" +" -p\tmenampilkan direktori stack dengan satu masukan per baris\n" +" -v\tmenampilkan direktori stack dengan satu masukan per baris diawali\n" +" \tdengan posisnya dalam stack\n" +" \n" +" Argumen:\n" +" +N\tMenampilkan masukan ke N dihitung dari kiri dari daftar yang " +"ditampilkan oleh\n" +" \tdirs ketika dipanggil tanpa opsi, dimulai dari nol.\n" +" \n" +" -N\tMenampilkan masukan ke N dihitung dari kanan dari daftar yang " +"ditampilkan oleh\n" +" \tdirs ketika dipanggil tanpa opsi, dimulai dari nol." + +#: builtins/pushd.def:705 +msgid "" +"Adds a directory to the top of the directory stack, or rotates\n" +" the stack, making the new top of the stack the current working\n" +" directory. With no arguments, exchanges the top two directories.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when adding\n" +" \tdirectories to the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the left of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" -N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the right of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" dir\tAdds DIR to the directory stack at the top, making it the\n" +" \tnew current working directory.\n" +" \n" +" The `dirs' builtin displays the directory stack." +msgstr "" +"Menambahkan sebuah direktori ke top dari direktori stack, atau merotasi\n" +" stack, membuah top baru dari stack dari working direktori saat ini.\n" +" Tanpa argumen, menukar top dari dua direktori.\n" +" \n" +" Opsi:\n" +" -n\tmenekan perubahan normal dari direktori ketika menambahkan " +"direktori\n" +" \tke stack, jadi hanya stack yang dimanipulasi.\n" +" \n" +" Argumen:\n" +" +N\tMerotasi stack sehingga direktori ke N (dihitung\n" +" \tdari kiri dari daftar yang terlihat oleh `dirs', dimulai dengan\n" +" \tnol) adalah di top.\n" +" \n" +" -N\tMerotasi stack sehingga direktori ke N (dihitung\n" +" \tdari kanan dari daftar yang terliha oleh `dirs', dimulai dengan\n" +" \tnol) adalah di top.\n" +" \n" +" dir\tenambahkan DIR ke direktori stack di puncak, membuatnya\n" +" \tcurrent working directory.\n" +" \n" +" Builtin `dirs' menampilkan direktori stack." + +#: builtins/pushd.def:730 +msgid "" +"Removes entries from the directory stack. With no arguments, removes\n" +" the top directory from the stack, and changes to the new top directory.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when removing\n" +" \tdirectories from the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRemoves the Nth entry counting from the left of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd +0'\n" +" \tremoves the first directory, `popd +1' the second.\n" +" \n" +" -N\tRemoves the Nth entry counting from the right of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd -0'\n" +" \tremoves the last directory, `popd -1' the next to last.\n" +" \n" +" The `dirs' builtin displays the directory stack." +msgstr "" +"Manghapus masukan dalam direktori stack. Tanpa argumen,\n" +" menghapus top direktori dari stack, dan cd's ke top\n" +" direktori baru.\n" +" \n" +" Opsi:\n" +" -n\tmenekan perubahan normal dari direktori ketika menghapus direktori\n" +" \tdari stack, jadi hanya stack yang dimanipulasi.\n" +" \n" +" Argumen:\n" +" -N\tmenghapus masukan ke N dihitung dari kiri dari daftar\n" +" \tyang ditampilkan oleh `dirs', dimulai dari nol. Sebagai contoh: `popd " +"+0'\n" +" \tmenghapus direktori terakhir, `popd -1' sebelum terakhir.\n" +" \n" +" Builtin `dirs' menampilkan direktori stack." + +#: builtins/read.def:248 +#, c-format +msgid "%s: invalid timeout specification" +msgstr "%s: spesifikasi timeout tidak valid" + +#: builtins/read.def:574 +#, c-format +msgid "read error: %d: %s" +msgstr "error baca: %d: %s" + +#: builtins/return.def:73 +msgid "can only `return' from a function or sourced script" +msgstr "hanya dapat `return' dari sebuah fungsi atau script yang disource" + +#: builtins/set.def:768 +msgid "cannot simultaneously unset a function and a variable" +msgstr "tidak dapat secara simultan unset sebuah fungsi dan sebuah variable" + +#: builtins/set.def:805 +#, c-format +msgid "%s: cannot unset" +msgstr "%s: tidak dapat unset" + +#: builtins/set.def:812 +#, c-format +msgid "%s: cannot unset: readonly %s" +msgstr "%s: tidak dapat unset: baca-saja %s" + +#: builtins/set.def:823 +#, c-format +msgid "%s: not an array variable" +msgstr "%s: bukan sebuah variabel array" + +#: builtins/setattr.def:186 +#, c-format +msgid "%s: not a function" +msgstr "%s: bukan sebuah fungsi" + +#: builtins/shift.def:71 builtins/shift.def:77 +msgid "shift count" +msgstr "shift terhitung" + +#: builtins/shopt.def:254 +msgid "cannot set and unset shell options simultaneously" +msgstr "tidak dapat menset dan menunset opsi shell secara bersamaan" + +#: builtins/shopt.def:319 +#, c-format +msgid "%s: invalid shell option name" +msgstr "%s: nama opsi shell tidak valid" + +#: builtins/source.def:128 +msgid "filename argument required" +msgstr "argumen nama file dibutuhkan" + +#: builtins/source.def:153 +#, c-format +msgid "%s: file not found" +msgstr "%s: berkas tidak ditemukan" + +#: builtins/suspend.def:101 +msgid "cannot suspend" +msgstr "tidak dapat suspend" + +#: builtins/suspend.def:111 +msgid "cannot suspend a login shell" +msgstr "tidak dapat suspend sebuah login shell" + +#: builtins/type.def:234 +#, c-format +msgid "%s is aliased to `%s'\n" +msgstr "%s sudah dialiasi ke `%s'\n" + +#: builtins/type.def:255 +#, c-format +msgid "%s is a shell keyword\n" +msgstr "%s adalah sebuah shell dengan kata kunci\n" + +#: builtins/type.def:274 +#, c-format +msgid "%s is a function\n" +msgstr "%s adalah sebuah fungsi\n" + +#: builtins/type.def:296 +#, c-format +msgid "%s is a shell builtin\n" +msgstr "%s adalah sebuah shell builtin\n" + +#: builtins/type.def:317 builtins/type.def:391 +#, c-format +msgid "%s is %s\n" +msgstr "%s adalah %s\n" + +#: builtins/type.def:337 +#, c-format +msgid "%s is hashed (%s)\n" +msgstr "%s memiliki hash (%s)\n" + +#: builtins/ulimit.def:372 +#, c-format +msgid "%s: invalid limit argument" +msgstr "%s: argumen limit tidak valid" + +#: builtins/ulimit.def:398 +#, c-format +msgid "`%c': bad command" +msgstr "`%c': perintah buruk" + +#: builtins/ulimit.def:427 +#, c-format +msgid "%s: cannot get limit: %s" +msgstr "%s: tidak dapat get limit: %s" + +#: builtins/ulimit.def:453 +msgid "limit" +msgstr "batas" + +#: builtins/ulimit.def:465 builtins/ulimit.def:765 +#, c-format +msgid "%s: cannot modify limit: %s" +msgstr "%s: tidak dapat memodifikasi batas: %s" + +#: builtins/umask.def:118 +msgid "octal number" +msgstr "nomor oktal" + +#: builtins/umask.def:231 +#, c-format +msgid "`%c': invalid symbolic mode operator" +msgstr "`%c': operator mode symbolic tidak valid" + +#: builtins/umask.def:286 +#, c-format +msgid "`%c': invalid symbolic mode character" +msgstr "`%c': mode karakter symbolic tidak valid" + +#: error.c:89 error.c:320 error.c:322 error.c:324 +msgid " line " +msgstr " baris " + +#: error.c:164 +#, c-format +msgid "last command: %s\n" +msgstr "perintah terakhir: %s\n" + +#: error.c:172 +#, c-format +msgid "Aborting..." +msgstr "membatalkan..." + +#: error.c:405 +msgid "unknown command error" +msgstr "perintah error tidak diketahui" + +#: error.c:406 +msgid "bad command type" +msgstr "tipe perintah buruk" + +#: error.c:407 +msgid "bad connector" +msgstr "konektor buruk" + +#: error.c:408 +msgid "bad jump" +msgstr "lompat buruk" + +#: error.c:446 +#, c-format +msgid "%s: unbound variable" +msgstr "%s: variabel tidak terikat" + +#: eval.c:181 +#, c-format +msgid "\atimed out waiting for input: auto-logout\n" +msgstr "kehabisan waktu menunggu masukan: otomatis-keluar\n" + +#: execute_cmd.c:491 +#, c-format +msgid "cannot redirect standard input from /dev/null: %s" +msgstr "tidak dapat menyalurkan masukan standar dari /dev/null: %s" + +#: execute_cmd.c:1091 +#, c-format +msgid "TIMEFORMAT: `%c': invalid format character" +msgstr "TIMEFORMAT: `%c': karakter format tidak valid" + +#: execute_cmd.c:1942 +msgid "pipe error" +msgstr "pipe error" + +#: execute_cmd.c:4276 +#, c-format +msgid "%s: restricted: cannot specify `/' in command names" +msgstr "" +"%s: dibatasi: tidak dapat menspesifikasikan '/' dalam nama nama perintah" + +#: execute_cmd.c:4367 +#, c-format +msgid "%s: command not found" +msgstr "%s: perintah tidak ditemukan" + +#: execute_cmd.c:4621 +#, c-format +msgid "%s: %s: bad interpreter" +msgstr "%s: %s: interpreter buruk" + +#: execute_cmd.c:4770 +#, c-format +msgid "cannot duplicate fd %d to fd %d" +msgstr "tidak dapat menduplikasikan fd %d ke fd %d" + +#: expr.c:241 +msgid "expression recursion level exceeded" +msgstr "expresi level rekursi terlewati" + +#: expr.c:265 +msgid "recursion stack underflow" +msgstr "rekursi stack underflow" + +#: expr.c:379 +msgid "syntax error in expression" +msgstr "syntax error dalam expresi" + +#: expr.c:419 +msgid "attempted assignment to non-variable" +msgstr "mencoba menempatkan ke bukan sebuah variabel" + +#: expr.c:440 expr.c:445 expr.c:756 +msgid "division by 0" +msgstr "dibagi oleh 0" + +#: expr.c:471 +msgid "bug: bad expassign token" +msgstr "bug: tanda expassign buruk" + +#: expr.c:513 +msgid "`:' expected for conditional expression" +msgstr "`:' diharapkan untuk sebuah pernyataan kondisional" + +#: expr.c:781 +msgid "exponent less than 0" +msgstr "eksponen kurang dari 0" + +#: expr.c:826 +msgid "identifier expected after pre-increment or pre-decrement" +msgstr "idenfier diharapkan setelah pre-increment atau pre-decrement" + +#: expr.c:854 +msgid "missing `)'" +msgstr "hilang `)'" + +#: expr.c:897 expr.c:1175 +msgid "syntax error: operand expected" +msgstr "syntax error: operand diharapkan" + +#: expr.c:1177 +msgid "syntax error: invalid arithmetic operator" +msgstr "syntax error: operator arithmetic tidak valid" + +#: expr.c:1201 +#, c-format +msgid "%s%s%s: %s (error token is \"%s\")" +msgstr "%s%s%s: %s (error token adalah \"%s\")" + +#: expr.c:1259 +msgid "invalid arithmetic base" +msgstr "basis arithmetic tidak valid" + +#: expr.c:1279 +msgid "value too great for base" +msgstr "nilai terlalu besar untuk basis" + +#: expr.c:1328 +#, c-format +msgid "%s: expression error\n" +msgstr "%s: expresi error\n" + +#: general.c:61 +msgid "getcwd: cannot access parent directories" +msgstr "getcwd: tidak dapat mengakses direktori orang tua" + +#: input.c:94 subst.c:4559 +#, c-format +msgid "cannot reset nodelay mode for fd %d" +msgstr "tidak dapat mereset mode nodelay untuk fd %d" + +#: input.c:258 +#, c-format +msgid "cannot allocate new file descriptor for bash input from fd %d" +msgstr "" +"tidak dapat mengalokasikan berkas deskripsi bari untuk masukan bash dari fd %" +"d" + +#: input.c:266 +#, c-format +msgid "save_bash_input: buffer already exists for new fd %d" +msgstr "simpan bash_input: buffer telah ada untuk fd %d baru" + +#: jobs.c:466 +msgid "start_pipeline: pgrp pipe" +msgstr "start_pipeline: pgrp pipe" + +#: jobs.c:882 +#, c-format +msgid "forked pid %d appears in running job %d" +msgstr "forked pid %d terlihat dalam pekerjaan yang sedang berjalan %d" + +#: jobs.c:1000 +#, c-format +msgid "deleting stopped job %d with process group %ld" +msgstr "menghapus pekerjaan yang terhenti %d dengan proses grup %ld" + +#: jobs.c:1105 +#, c-format +msgid "add_process: process %5ld (%s) in the_pipeline" +msgstr "add_process: process %5ld (%s) dalam the_pipeline" + +#: jobs.c:1108 +#, c-format +msgid "add_process: pid %5ld (%s) marked as still alive" +msgstr "add_process: pid %5ld (%s) ditandai dengan tetap hidup" + +#: jobs.c:1396 +#, c-format +msgid "describe_pid: %ld: no such pid" +msgstr "describe_pid: %ld: tidak ada pid seperti itu" + +#: jobs.c:1411 +#, c-format +msgid "Signal %d" +msgstr "sinyal %d" + +#: jobs.c:1425 jobs.c:1450 +msgid "Done" +msgstr "Selesai" + +#: jobs.c:1430 siglist.c:122 +msgid "Stopped" +msgstr "Terhenti" + +#: jobs.c:1434 +#, c-format +msgid "Stopped(%s)" +msgstr "Terhenti(%s)" + +#: jobs.c:1438 +msgid "Running" +msgstr "Berjalan" + +#: jobs.c:1452 +#, c-format +msgid "Done(%d)" +msgstr "Selesai(%d)" + +#: jobs.c:1454 +#, c-format +msgid "Exit %d" +msgstr "Keluar %d" + +#: jobs.c:1457 +msgid "Unknown status" +msgstr "Status tidak diketahui" + +#: jobs.c:1544 +#, c-format +msgid "(core dumped) " +msgstr "(core didump) " + +#: jobs.c:1563 +#, c-format +msgid " (wd: %s)" +msgstr " (wd: %s)" + +#: jobs.c:1766 +#, c-format +msgid "child setpgid (%ld to %ld)" +msgstr "anak setpgid (%ld ke %ld)" + +#: jobs.c:2094 nojobs.c:576 +#, c-format +msgid "wait: pid %ld is not a child of this shell" +msgstr "wait: pid %ld bukan sebuah anak dari shell ini" + +#: jobs.c:2321 +#, c-format +msgid "wait_for: No record of process %ld" +msgstr "wait_for: Tidak ada catatan untuk proses %ld" + +#: jobs.c:2593 +#, c-format +msgid "wait_for_job: job %d is stopped" +msgstr "wait_for_job: pekerjaan %d terhenti" + +#: jobs.c:2815 +#, c-format +msgid "%s: job has terminated" +msgstr "%s: pekerjaan telah selesai" + +#: jobs.c:2824 +#, c-format +msgid "%s: job %d already in background" +msgstr "%s: pekerjaan %d sudah berjalan di belakang (background)" + +#: jobs.c:3487 +#, c-format +msgid "%s: line %d: " +msgstr "%s: baris %d: " + +#: jobs.c:3501 nojobs.c:805 +#, c-format +msgid " (core dumped)" +msgstr " (core didump)" + +#: jobs.c:3513 jobs.c:3526 +#, c-format +msgid "(wd now: %s)\n" +msgstr "(wd sekarang: %s)\n" + +#: jobs.c:3558 +msgid "initialize_job_control: getpgrp failed" +msgstr "initialize_job_control: getpgrp gagal" + +#: jobs.c:3618 +msgid "initialize_job_control: line discipline" +msgstr "initialize_job_control: baris disiplin" + +#: jobs.c:3628 +msgid "initialize_job_control: setpgid" +msgstr "initialize_job_control: setpgid" + +#: jobs.c:3656 +#, c-format +msgid "cannot set terminal process group (%d)" +msgstr "tidak dapat menset terminal proses grup (%d)" + +#: jobs.c:3661 +msgid "no job control in this shell" +msgstr "tidak ada pengontrol pekerjaan dalam shell ini" + +#: lib/malloc/malloc.c:296 +#, c-format +msgid "malloc: failed assertion: %s\n" +msgstr "malloc: gagal assertion: %s\n" + +#: lib/malloc/malloc.c:312 +#, c-format +msgid "" +"\r\n" +"malloc: %s:%d: assertion botched\r\n" +msgstr "" +"\r\n" +"malloc: %s:%d: assertion rusak\r\n" + +#: lib/malloc/malloc.c:313 +msgid "unknown" +msgstr "tidak diketahui" + +#: lib/malloc/malloc.c:797 +msgid "malloc: block on free list clobbered" +msgstr "malloc: blok dalam daftar bebas clobbered" + +#: lib/malloc/malloc.c:874 +msgid "free: called with already freed block argument" +msgstr "free: dipanggil dengan argumen blok yang sudah dibebaskan" + +#: lib/malloc/malloc.c:877 +msgid "free: called with unallocated block argument" +msgstr "free: dipanggil dengan argumen blok yang tidak dialokasikan" + +#: lib/malloc/malloc.c:896 +msgid "free: underflow detected; mh_nbytes out of range" +msgstr "free: underflow terdeteksi; mh_nbytes diluar dari jangkauan" + +#: lib/malloc/malloc.c:902 +msgid "free: start and end chunk sizes differ" +msgstr "free: awal dan akhir dari ukuran potongan berbeda" + +#: lib/malloc/malloc.c:1001 +msgid "realloc: called with unallocated block argument" +msgstr "realloc: dipanggil dengan argumen blok yang tidak teralokasikan" + +#: lib/malloc/malloc.c:1016 +msgid "realloc: underflow detected; mh_nbytes out of range" +msgstr "realloc: underflow terdeteksi; my_nbytes diluar dari jangkauan" + +#: lib/malloc/malloc.c:1022 +msgid "realloc: start and end chunk sizes differ" +msgstr "realloc: awal dan akhir dari ukuran potongan berbeda" + +#: lib/malloc/table.c:177 +#, c-format +msgid "register_alloc: alloc table is full with FIND_ALLOC?\n" +msgstr "register_alloc: tabel alokasi penuh dengan FIND_ALLOC?\n" + +#: lib/malloc/table.c:184 +#, c-format +msgid "register_alloc: %p already in table as allocated?\n" +msgstr "" +"register_alloc: %p sudah berada dalam tabel sepertinya sudah dialokasikan?\n" + +#: lib/malloc/table.c:220 +#, c-format +msgid "register_free: %p already in table as free?\n" +msgstr "register_free: %p sudah berada dalam tabel sebagai bebas?\n" + +#: lib/sh/fmtulong.c:101 +msgid "invalid base" +msgstr "basis tidak valid" + +#: lib/sh/netopen.c:168 +#, c-format +msgid "%s: host unknown" +msgstr "%s: host tidak diketahui" + +#: lib/sh/netopen.c:175 +#, c-format +msgid "%s: invalid service" +msgstr "%s: layanan tidak valid" + +#: lib/sh/netopen.c:306 +#, c-format +msgid "%s: bad network path specification" +msgstr "%s: spesifikasi jalur network buruk" + +#: lib/sh/netopen.c:346 +msgid "network operations not supported" +msgstr "operasi jaringan tidak dilayani" + +#: mailcheck.c:433 +msgid "You have mail in $_" +msgstr "Anda memiliki surat dalam $_" + +#: mailcheck.c:458 +msgid "You have new mail in $_" +msgstr "Anda memiliki surat baru dalam $_" + +#: mailcheck.c:474 +#, c-format +msgid "The mail in %s has been read\n" +msgstr "Surat dalam %s telah dibaca\n" + +#: make_cmd.c:322 +msgid "syntax error: arithmetic expression required" +msgstr "syntax error: membutuhkan ekspresi arithmetic" + +#: make_cmd.c:324 +msgid "syntax error: `;' unexpected" +msgstr "syntax error: `;' tidak terduga" + +#: make_cmd.c:325 +#, c-format +msgid "syntax error: `((%s))'" +msgstr "syntax error: `((%s))'" + +#: make_cmd.c:567 +#, c-format +msgid "make_here_document: bad instruction type %d" +msgstr "make_here_document: tipe instruksi buruk %d" + +#: make_cmd.c:651 +#, c-format +msgid "here-document at line %d delimited by end-of-file (wanted `%s')" +msgstr "" +"dokumen-disini di baris %d dibatasi oleh akhir-dari-berkas (diinginkan `%s')" + +#: make_cmd.c:746 +#, c-format +msgid "make_redirection: redirection instruction `%d' out of range" +msgstr "make_redirection: instruksi redireksi `%d' diluar dari jangkauan" + +#: parse.y:2986 parse.y:3218 +#, c-format +msgid "unexpected EOF while looking for matching `%c'" +msgstr "EOF tidak terduga ketika mencari untuk pencocokan `%c'" + +#: parse.y:3722 +msgid "unexpected EOF while looking for `]]'" +msgstr "EOF tidak terduga ketika mencari untuk `]]'" + +#: parse.y:3727 +#, c-format +msgid "syntax error in conditional expression: unexpected token `%s'" +msgstr "syntax error dalam ekspresi kondisional: tanda `%s' tidak terduga" + +#: parse.y:3731 +msgid "syntax error in conditional expression" +msgstr "syntax error dalam ekspresi kondisional" + +#: parse.y:3809 +#, c-format +msgid "unexpected token `%s', expected `)'" +msgstr "tanda `%s' tidak terduga, diduga `)'" + +#: parse.y:3813 +msgid "expected `)'" +msgstr "diduga `)'" + +#: parse.y:3841 +#, c-format +msgid "unexpected argument `%s' to conditional unary operator" +msgstr "argumen tidak terduga `%s' ke operator kondisional unary" + +#: parse.y:3845 +msgid "unexpected argument to conditional unary operator" +msgstr "argumen tidak terduga untuk operasi unary kondisional" + +#: parse.y:3885 +#, c-format +msgid "unexpected token `%s', conditional binary operator expected" +msgstr "tanda `%s' tidak terduga, operator binary kondisional diduga" + +#: parse.y:3889 +msgid "conditional binary operator expected" +msgstr "operator binary kondisional diduga" + +#: parse.y:3906 +#, c-format +msgid "unexpected argument `%s' to conditional binary operator" +msgstr "argumen `%s' tidak terduga ke operator binary kondisional" + +#: parse.y:3910 +msgid "unexpected argument to conditional binary operator" +msgstr "argumen tidak terduga ke operasi binary kondisional" + +#: parse.y:3921 +#, c-format +msgid "unexpected token `%c' in conditional command" +msgstr "tanda `%c' tidak terduga dalam perintah kondisional" + +#: parse.y:3924 +#, c-format +msgid "unexpected token `%s' in conditional command" +msgstr "tanda `%s' tidak terduga dalam perintah kondisional" + +#: parse.y:3928 +#, c-format +msgid "unexpected token %d in conditional command" +msgstr "tanda %d tidak terduga dalam perintah kondisional" + +#: parse.y:5195 +#, c-format +msgid "syntax error near unexpected token `%s'" +msgstr "syntax error didekat tanda `%s' yang tidak terduga" + +#: parse.y:5213 +#, c-format +msgid "syntax error near `%s'" +msgstr "syntax error didekat `%s'" + +#: parse.y:5223 +msgid "syntax error: unexpected end of file" +msgstr "syntax error: tidak terduga diakhir dari berkas" + +#: parse.y:5223 +msgid "syntax error" +msgstr "syntax error" + +#: parse.y:5285 +#, c-format +msgid "Use \"%s\" to leave the shell.\n" +msgstr "Gunakan \"%s\" untuk meninggalkan shell.\n" + +#: parse.y:5447 +msgid "unexpected EOF while looking for matching `)'" +msgstr "EOF tidak terduga ketika mencari untuk pencocokan ')'" + +#: pcomplete.c:1016 +#, c-format +msgid "completion: function `%s' not found" +msgstr "completion: fungsi `%s' tidak ditemukan" + +#: pcomplib.c:179 +#, c-format +msgid "progcomp_insert: %s: NULL COMPSPEC" +msgstr "progcomp_insert: %s: NULL COMPSPEC" + +#: print_cmd.c:287 +#, c-format +msgid "print_command: bad connector `%d'" +msgstr "print_command: konektor buruk `%d'" + +#: print_cmd.c:1347 +#, c-format +msgid "cprintf: `%c': invalid format character" +msgstr "cprintf: '%c': format karakter tidak valid" + +#: redir.c:105 +msgid "file descriptor out of range" +msgstr "berkas deskripsi diluar dari jangkauan" + +#: redir.c:148 +#, c-format +msgid "%s: ambiguous redirect" +msgstr "%s: redirect ambigu" + +#: redir.c:152 +#, c-format +msgid "%s: cannot overwrite existing file" +msgstr "%s: tidak dapat menulis berkas yang sudah ada" + +#: redir.c:157 +#, c-format +msgid "%s: restricted: cannot redirect output" +msgstr "%s: restricted: tidak dapat meredirect keluaran" + +#: redir.c:162 +#, c-format +msgid "cannot create temp file for here-document: %s" +msgstr "tidak dapat membuat berkas sementara untuk dokumen disini: %s" + +#: redir.c:517 +msgid "/dev/(tcp|udp)/host/port not supported without networking" +msgstr "/dev/(tcp|udp)/host/port tidak dilayani tanpa jaringan" + +#: redir.c:1023 +msgid "redirection error: cannot duplicate fd" +msgstr "redirection error: tidak dapat menduplikasi fd" + +#: shell.c:328 +msgid "could not find /tmp, please create!" +msgstr "tidak dapat menemukan /tmp, tolong buat!" + +#: shell.c:332 +msgid "/tmp must be a valid directory name" +msgstr "/tmp harus berupa sebuah nama direktori yang valid" + +#: shell.c:876 +#, c-format +msgid "%c%c: invalid option" +msgstr "%c%c: opsi tidak valid" + +#: shell.c:1638 +msgid "I have no name!" +msgstr "Aku tidak memiliki nama!" + +#: shell.c:1778 +#, c-format +msgid "GNU bash, version %s-(%s)\n" +msgstr "GNU bash, versi %s-(%s)\n" + +#: shell.c:1779 +#, c-format +msgid "" +"Usage:\t%s [GNU long option] [option] ...\n" +"\t%s [GNU long option] [option] script-file ...\n" +msgstr "" +"Penggunaan:\t%s [GNU opsi panjang] [opsi] ...\n" +"\t%s [GNU opsi panjang] [opsi] berkas-script ...\n" + +#: shell.c:1781 +msgid "GNU long options:\n" +msgstr "GNU opsi panjang:\n" + +#: shell.c:1785 +msgid "Shell options:\n" +msgstr "Opsi shell:\n" + +#: shell.c:1786 +msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n" +msgstr "\t-irsD atau -c perintah atau -O shopt_option\t\t(hanya pemanggilan)\n" + +#: shell.c:1801 +#, c-format +msgid "\t-%s or -o option\n" +msgstr "\t-%s atau opsi -o\n" + +#: shell.c:1807 +#, c-format +msgid "Type `%s -c \"help set\"' for more information about shell options.\n" +msgstr "" +"Ketik `%s -c \"help set\"' untuk informasi lebih lanjut mengenai opsi " +"shell.\n" + +#: shell.c:1808 +#, c-format +msgid "Type `%s -c help' for more information about shell builtin commands.\n" +msgstr "" +"Ketik `%s -c help' untuk informasi lebih lanjut mengenai perintah builting " +"shell.\n" + +#: shell.c:1809 +#, c-format +msgid "Use the `bashbug' command to report bugs.\n" +msgstr "Gunakan perintah 'bashbug' untuk melaporkan bugs.\n" + +#: sig.c:583 +#, c-format +msgid "sigprocmask: %d: invalid operation" +msgstr "sigprocmask: %d: operasi tidak valid" + +#: siglist.c:47 +msgid "Bogus signal" +msgstr "Sinyal palsu" + +#: siglist.c:50 +msgid "Hangup" +msgstr "Hangup" + +#: siglist.c:54 +msgid "Interrupt" +msgstr "Interupsi" + +#: siglist.c:58 +msgid "Quit" +msgstr "Berhenti" + +#: siglist.c:62 +msgid "Illegal instruction" +msgstr "Instruksi ilegal" + +#: siglist.c:66 +msgid "BPT trace/trap" +msgstr "BPT trace/trap" + +#: siglist.c:74 +msgid "ABORT instruction" +msgstr "Instruksi ABORT" + +#: siglist.c:78 +msgid "EMT instruction" +msgstr "Instruksi EMT" + +#: siglist.c:82 +msgid "Floating point exception" +msgstr "Floating point exception" + +#: siglist.c:86 +msgid "Killed" +msgstr "Dibunuh" + +#: siglist.c:90 +msgid "Bus error" +msgstr "Bus error" + +#: siglist.c:94 +msgid "Segmentation fault" +msgstr "Kesalahan segmentasi" + +#: siglist.c:98 +msgid "Bad system call" +msgstr "Pemanggilan sistem buruk" + +#: siglist.c:102 +msgid "Broken pipe" +msgstr "Pipe rusak" + +#: siglist.c:106 +msgid "Alarm clock" +msgstr "Alarm clock" + +#: siglist.c:110 +msgid "Terminated" +msgstr "Selesai" + +#: siglist.c:114 +msgid "Urgent IO condition" +msgstr "Kodisi IO penting" + +#: siglist.c:118 +msgid "Stopped (signal)" +msgstr "Terhenti (sinyal)" + +#: siglist.c:126 +msgid "Continue" +msgstr "Melanjutkan" + +#: siglist.c:134 +msgid "Child death or stop" +msgstr "Anak tewas atau berhenti" + +#: siglist.c:138 +msgid "Stopped (tty input)" +msgstr "Terhenti (tty input)" + +#: siglist.c:142 +msgid "Stopped (tty output)" +msgstr "Terhenti (tty output)" + +#: siglist.c:146 +msgid "I/O ready" +msgstr "I/O siap" + +#: siglist.c:150 +msgid "CPU limit" +msgstr "Batas CPU" + +#: siglist.c:154 +msgid "File limit" +msgstr "Batas berkas" + +#: siglist.c:158 +msgid "Alarm (virtual)" +msgstr "Alarm (virtual)" + +#: siglist.c:162 +msgid "Alarm (profile)" +msgstr "Alarm (profile)" + +#: siglist.c:166 +msgid "Window changed" +msgstr "Window berubah" + +#: siglist.c:170 +msgid "Record lock" +msgstr "Catatan terkunci" + +#: siglist.c:174 +msgid "User signal 1" +msgstr "Sinyal pengguna 1" + +#: siglist.c:178 +msgid "User signal 2" +msgstr "Sinyal pengguna 2" + +#: siglist.c:182 +msgid "HFT input data pending" +msgstr "HFT masukan data tertunda" + +#: siglist.c:186 +msgid "power failure imminent" +msgstr "Kelihatannya akan terjadi kegagalan power suply" + +#: siglist.c:190 +msgid "system crash imminent" +msgstr "Kelihatannya akan terjadi kerusakan sistem" + +#: siglist.c:194 +msgid "migrate process to another CPU" +msgstr "pindahkan proses ke CPU lain" + +#: siglist.c:198 +msgid "programming error" +msgstr "error dalam pemrograman" + +#: siglist.c:202 +msgid "HFT monitor mode granted" +msgstr "HFT mode monitoring diberikan" + +#: siglist.c:206 +msgid "HFT monitor mode retracted" +msgstr "HFT mode monitoring ditarik" + +#: siglist.c:210 +msgid "HFT sound sequence has completed" +msgstr "HFTP sound sequence telah selesai" + +#: siglist.c:214 +msgid "Information request" +msgstr "Permintaan informasi" + +#: siglist.c:222 +msgid "Unknown Signal #" +msgstr "Sinyal tidak diketahui #" + +#: siglist.c:224 +#, c-format +msgid "Unknown Signal #%d" +msgstr "Sinyal tidak diketahui #%d" + +#: subst.c:1181 subst.c:1302 +#, c-format +msgid "bad substitution: no closing `%s' in %s" +msgstr "substitusi buruk: tidak ada penutupan `%s' dalam %s" + +#: subst.c:2458 +#, c-format +msgid "%s: cannot assign list to array member" +msgstr "%s: tidak dapat meng-assign daftar kedalam anggoya array" + +#: subst.c:4456 subst.c:4472 +msgid "cannot make pipe for process substitution" +msgstr "tidak dapat membuat pipe untuk proses substitusi" + +#: subst.c:4504 +msgid "cannot make child for process substitution" +msgstr "tidak dapat membuat anak untuk proses substitusi" + +#: subst.c:4549 +#, c-format +msgid "cannot open named pipe %s for reading" +msgstr "tidak dapat membuka named pipe %s untuk membaca" + +#: subst.c:4551 +#, c-format +msgid "cannot open named pipe %s for writing" +msgstr "tidak dapat membukan named pipe %s untuk menulis" + +#: subst.c:4569 +#, c-format +msgid "cannot duplicate named pipe %s as fd %d" +msgstr "tidak dapat menduplikasi nama pipe %s sebagai fd %d" + +#: subst.c:4765 +msgid "cannot make pipe for command substitution" +msgstr "tidak dapat membuat pipe untuk perintah substitusi" + +#: subst.c:4799 +msgid "cannot make child for command substitution" +msgstr "tidak dapat membuat anak untuk perintah substitusi" + +#: subst.c:4816 +msgid "command_substitute: cannot duplicate pipe as fd 1" +msgstr "command_substitute: tidak dapat menduplikasikan pipe sebagi fd 1" + +#: subst.c:5318 +#, c-format +msgid "%s: parameter null or not set" +msgstr "%s: parameter kosong atau tidak diset" + +#: subst.c:5608 +#, c-format +msgid "%s: substring expression < 0" +msgstr "%s: substring expresi < 0" + +#: subst.c:6660 +#, c-format +msgid "%s: bad substitution" +msgstr "%s: substitusi buruk" + +#: subst.c:6740 +#, c-format +msgid "$%s: cannot assign in this way" +msgstr "$%s: tidak dapat meng-assign dengan cara ini" + +#: subst.c:7479 +#, c-format +msgid "bad substitution: no closing \"`\" in %s" +msgstr "substitusi buruk: tidak ada penutupan \"\" dalam %s" + +#: subst.c:8354 +#, c-format +msgid "no match: %s" +msgstr "tidak cocok: %s" + +#: test.c:145 +msgid "argument expected" +msgstr "argumen diharapkan" + +#: test.c:154 +#, c-format +msgid "%s: integer expression expected" +msgstr "%s: expresi integer diduga" + +#: test.c:262 +msgid "`)' expected" +msgstr "')' diduga" + +#: test.c:264 +#, c-format +msgid "`)' expected, found %s" +msgstr "`)' diduga, ditemukan %s" + +#: test.c:279 test.c:688 test.c:691 +#, c-format +msgid "%s: unary operator expected" +msgstr "%s: operator unary diduga" + +#: test.c:444 test.c:731 +#, c-format +msgid "%s: binary operator expected" +msgstr "%s: operator binary diduga" + +#: test.c:806 +msgid "missing `]'" +msgstr "hilang `]'" + +#: trap.c:201 +msgid "invalid signal number" +msgstr "nomor sinyal tidak valid" + +#: trap.c:324 +#, c-format +msgid "run_pending_traps: bad value in trap_list[%d]: %p" +msgstr "run_pending_traps: nilai buruk dalam trap_list[%d]: %p" + +#: trap.c:328 +#, c-format +msgid "" +"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself" +msgstr "" +"run_pending_traps: sinyal handler adalah SIG_DFL, mengirimkan kembali %d (%" +"s) kediri sendiri" + +#: trap.c:372 +#, c-format +msgid "trap_handler: bad signal %d" +msgstr "trap_handler: sinyal buruk %d" + +#: variables.c:358 +#, c-format +msgid "error importing function definition for `%s'" +msgstr "error mengimpor definisi fungsi untuk `%s'" + +#: variables.c:736 +#, c-format +msgid "shell level (%d) too high, resetting to 1" +msgstr "level shell (%d) terlalu tinggi, mereset ke 1" + +#: variables.c:1898 +msgid "make_local_variable: no function context at current scope" +msgstr "make_local_variable: tidak ada context fungsi di scope ini" + +#: variables.c:3127 +msgid "all_local_variables: no function context at current scope" +msgstr "all_local_variables: tidak ada context fungsi dalam scope ini" + +#: variables.c:3344 variables.c:3353 +#, c-format +msgid "invalid character %d in exportstr for %s" +msgstr "karakter %d tidak valid dalam exporstr untuk %s" + +#: variables.c:3359 +#, c-format +msgid "no `=' in exportstr for %s" +msgstr "bukan `=' dalam exportstr untuk %s" + +#: variables.c:3794 +msgid "pop_var_context: head of shell_variables not a function context" +msgstr "" +"pop_var_context: kepala dari shell_variables bukan sebuah fungsi cbntext" + +#: variables.c:3807 +msgid "pop_var_context: no global_variables context" +msgstr "pop_var_context: bukan global_variable context" + +#: variables.c:3881 +msgid "pop_scope: head of shell_variables not a temporary environment scope" +msgstr "" +"pop_scope: kepala dari shell_variables bukan sebuah scope lingkungan " +"sementara" + +#: version.c:46 +#, fuzzy +msgid "Copyright (C) 2009 Free Software Foundation, Inc." +msgstr "Hak Cipta (C) 2008 Free Software Foundation, Inc." + +#: version.c:47 +msgid "" +"License GPLv3+: GNU GPL version 3 or later \n" +msgstr "" +"Lisensi GPLv3+: GNU GPL versi 3 atau sesudahnya \n" + +#: version.c:86 +#, c-format +msgid "GNU bash, version %s (%s)\n" +msgstr "GNU bash, versi %s (%s)\n" + +#: version.c:91 +#, c-format +msgid "This is free software; you are free to change and redistribute it.\n" +msgstr "" +"Ini adalah perangkat lunak bebas; anda bebas untuk mengubah dan " +"mendistribusikannya.\n" + +#: version.c:92 +#, c-format +msgid "There is NO WARRANTY, to the extent permitted by law.\n" +msgstr "TIDAK ADA GARANSI, selama masih diijinkan oleh hukum yang berlaku.\n" + +#: xmalloc.c:92 +#, c-format +msgid "xmalloc: cannot allocate %lu bytes (%lu bytes allocated)" +msgstr "xmalloc: tidak dapat mengalokasikan %lu bytes (%lu bytes teralokasi)" + +#: xmalloc.c:94 +#, c-format +msgid "xmalloc: cannot allocate %lu bytes" +msgstr "xmalloc: tidak dapat mengalokasikan %lu bytes" + +#: xmalloc.c:114 +#, c-format +msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)" +msgstr "" +"xrealloc: tidak dapat menrealokasikan %lu bytes (%lu bytes teralokasikan)" + +#: xmalloc.c:116 +#, c-format +msgid "xrealloc: cannot allocate %lu bytes" +msgstr "xrealloc: tidak dapat mengalokasikan %lu bytes" + +#: xmalloc.c:150 +#, c-format +msgid "xmalloc: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)" +msgstr "" +"xmalloc: %s:%d: tidak dapat mengalokasikan %lu bytes (%lu bytes teralokasi)" + +#: xmalloc.c:152 +#, c-format +msgid "xmalloc: %s:%d: cannot allocate %lu bytes" +msgstr "xmalloc: %s: %d: tidak dapat teralokasi %lu bytes" + +#: xmalloc.c:174 +#, c-format +msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)" +msgstr "" +"xrealloc: %s: %d: tidak dapat melakukan reallokasi %lu bytes (%lu bytes " +"teralokasi)" + +#: xmalloc.c:176 +#, c-format +msgid "xrealloc: %s:%d: cannot allocate %lu bytes" +msgstr "xrealloc: %s:%d: tidak dapat mengalokasikan %lu bytes" + +#: builtins.c:43 +msgid "alias [-p] [name[=value] ... ]" +msgstr "alias [-p] [name[=nilai] ... ]" + +#: builtins.c:47 +msgid "unalias [-a] name [name ...]" +msgstr "unalias [-a] name [nama ...]" + +#: builtins.c:51 +msgid "" +"bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-" +"x keyseq:shell-command] [keyseq:readline-function or readline-command]" +msgstr "" +"bind [-lpvsPVS] [-m keymap] [-f nama berkas] [-q nama] [-u nama] [-r keyseq] " +"[-x keyseq:perintah-shell] [keyseq:readline-function atau readline-command]" + +#: builtins.c:54 +msgid "break [n]" +msgstr "break [n]" + +#: builtins.c:56 +msgid "continue [n]" +msgstr "continue [n]" + +#: builtins.c:58 +msgid "builtin [shell-builtin [arg ...]]" +msgstr "builtin [shell-builtin [arg ...]]" + +#: builtins.c:61 +msgid "caller [expr]" +msgstr "pemanggil [expr]" + +#: builtins.c:64 +msgid "cd [-L|-P] [dir]" +msgstr "cd [-L|-P] [direktori]" + +#: builtins.c:66 +msgid "pwd [-LP]" +msgstr "pwd [-LP]" + +#: builtins.c:68 +msgid ":" +msgstr ":" + +#: builtins.c:70 +msgid "true" +msgstr "benar" + +#: builtins.c:72 +msgid "false" +msgstr "salah" + +#: builtins.c:74 +msgid "command [-pVv] command [arg ...]" +msgstr "perintah [-pVv] perintah [argumen ...]" + +#: builtins.c:76 +msgid "declare [-aAfFilrtux] [-p] [name[=value] ...]" +msgstr "declare [-aAfFilrtux] [-p] [name[=nilai] ...]" + +#: builtins.c:78 +msgid "typeset [-aAfFilrtux] [-p] name[=value] ..." +msgstr "typeset [-aAfFilrtux] [-p] name[=nilai] ..." + +#: builtins.c:80 +msgid "local [option] name[=value] ..." +msgstr "local [opsi] name[=nilai] ..." + +#: builtins.c:83 +msgid "echo [-neE] [arg ...]" +msgstr "echo [-neE] [arg ...]" + +#: builtins.c:87 +msgid "echo [-n] [arg ...]" +msgstr "echo [-n] [arg ...]" + +#: builtins.c:90 +msgid "enable [-a] [-dnps] [-f filename] [name ...]" +msgstr "enable [-a] [-dnps] [-f nama berkas] [name ...]" + +#: builtins.c:92 +msgid "eval [arg ...]" +msgstr "eval [argumen ...]" + +#: builtins.c:94 +msgid "getopts optstring name [arg]" +msgstr "getopts nama optstring [arg]" + +#: builtins.c:96 +msgid "exec [-cl] [-a name] [command [arguments ...]] [redirection ...]" +msgstr "exec [-cl] [-a nama] [perintah [argumen ...]] [redireksi ...]" + +#: builtins.c:98 +msgid "exit [n]" +msgstr "exit [n]" + +#: builtins.c:100 +msgid "logout [n]" +msgstr "logout [n]" + +#: builtins.c:103 +msgid "fc [-e ename] [-lnr] [first] [last] or fc -s [pat=rep] [command]" +msgstr "" +"fc [-e ename] [-lnr] [pertama] [terakhir] atau fc -s [pat=rep] [perintah]" + +#: builtins.c:107 +msgid "fg [job_spec]" +msgstr "fg [spesifikasi pekerjaan]" + +#: builtins.c:111 +msgid "bg [job_spec ...]" +msgstr "bg [spesifikasi pekerjaan ...]" + +#: builtins.c:114 +msgid "hash [-lr] [-p pathname] [-dt] [name ...]" +msgstr "hash [-lr] [-p nama jalur] [-dt] [nama ...]" + +#: builtins.c:117 +msgid "help [-ds] [pattern ...]" +msgstr "bantuan [-ds] [pola ...]" + +#: builtins.c:121 +msgid "" +"history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg " +"[arg...]" +msgstr "" +"sejarah [-c] [-d ofset] [n] atau history -anrw [nama berkas] atau history -" +"ps arg [arg...]" + +#: builtins.c:125 +msgid "jobs [-lnprs] [jobspec ...] or jobs -x command [args]" +msgstr "jobs [-lnprs] [spesifikasi pekerjaan ...] atau jobs -x perintah [args]" + +#: builtins.c:129 +msgid "disown [-h] [-ar] [jobspec ...]" +msgstr "disown [-h] [-ar] [spesifikasi pekerjaan ...]" + +#: builtins.c:132 +msgid "" +"kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l " +"[sigspec]" +msgstr "" +"kill [-s spesifikasi sinyal | -n nomor sinyal | -sigspec] pid | jobsepc ... " +"atau kill -l [sigspec]" + +#: builtins.c:134 +msgid "let arg [arg ...]" +msgstr "biarkan arg [argumen ...]" + +#: builtins.c:136 +msgid "" +"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-p prompt] [-t " +"timeout] [-u fd] [name ...]" +msgstr "" +"read [-ers] [-a array] [-d pembatas] [-i text] [-n nchars] [-p prompt] [-t " +"timeout] [-u fd] [name ...]" + +#: builtins.c:138 +msgid "return [n]" +msgstr "return [n]" + +#: builtins.c:140 +msgid "set [--abefhkmnptuvxBCHP] [-o option-name] [arg ...]" +msgstr "set [-abefhkmnptuvxBCHP] [-o nama-opsi] [argumen ...]" + +#: builtins.c:142 +msgid "unset [-f] [-v] [name ...]" +msgstr "unset [-f] [-v] [name ...]" + +#: builtins.c:144 +msgid "export [-fn] [name[=value] ...] or export -p" +msgstr "export [-fn] [name[=nilai] ...] atau export -p" + +#: builtins.c:146 +msgid "readonly [-af] [name[=value] ...] or readonly -p" +msgstr "readonly [-af] [name[=nilai] ...] atau readonly -p" + +#: builtins.c:148 +msgid "shift [n]" +msgstr "shift [n]" + +#: builtins.c:150 +msgid "source filename [arguments]" +msgstr "source nama berkas [argumen]" + +#: builtins.c:152 +msgid ". filename [arguments]" +msgstr ". nama berkas [argumen]" + +#: builtins.c:155 +msgid "suspend [-f]" +msgstr "suspend [-f]" + +#: builtins.c:158 +msgid "test [expr]" +msgstr "test [expr]" + +#: builtins.c:160 +msgid "[ arg... ]" +msgstr "[ arg... ]" + +#: builtins.c:162 +msgid "times" +msgstr "kali" + +#: builtins.c:164 +msgid "trap [-lp] [[arg] signal_spec ...]" +msgstr "trap [-lp] [[arg] spesifikasi sinyal ...]" + +#: builtins.c:166 +msgid "type [-afptP] name [name ...]" +msgstr "type [-afptP] nama [name ...]" + +#: builtins.c:169 +msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]" +msgstr "ulimit [-SHacdefilmnpqrstuvx] [batas]" + +#: builtins.c:172 +msgid "umask [-p] [-S] [mode]" +msgstr "umask [-p] [-S] [mode]" + +#: builtins.c:175 +msgid "wait [id]" +msgstr "wait [id]" + +#: builtins.c:179 +msgid "wait [pid]" +msgstr "wait [pid]" + +#: builtins.c:182 +msgid "for NAME [in WORDS ... ] ; do COMMANDS; done" +msgstr "for NAMA [in WORDS ...] ; do PERINTAH; done" + +#: builtins.c:184 +msgid "for (( exp1; exp2; exp3 )); do COMMANDS; done" +msgstr "for (( exp1; exp2; exp3 )); do PERINTAH; done" + +#: builtins.c:186 +msgid "select NAME [in WORDS ... ;] do COMMANDS; done" +msgstr "select NAMA [ in WORDS ... ;] do PERINTAH; done" + +#: builtins.c:188 +msgid "time [-p] pipeline" +msgstr "time [-p] pipeline" + +#: builtins.c:190 +msgid "case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac" +msgstr "case WORD in [POLA [| POLA]...) PERINTAH ;;]... esac" + +#: builtins.c:192 +msgid "" +"if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else " +"COMMANDS; ] fi" +msgstr "" +"if PERINTAH; then PERINTAH; [ elif PERINTAH; then PERINTAH; ]... [ else " +"PERINTAH; ] fi" + +#: builtins.c:194 +msgid "while COMMANDS; do COMMANDS; done" +msgstr "while PERINTAH; do PERINTAH; done" + +#: builtins.c:196 +msgid "until COMMANDS; do COMMANDS; done" +msgstr "until PERINTAH; do PERINTAH; done" + +#: builtins.c:198 +msgid "function name { COMMANDS ; } or name () { COMMANDS ; }" +msgstr "function name { PERINTAH; } atau name () { PERINTAH ; }" + +#: builtins.c:200 +msgid "{ COMMANDS ; }" +msgstr "{ PERINTAH ; }" + +#: builtins.c:202 +msgid "job_spec [&]" +msgstr "job_spec [&]" + +#: builtins.c:204 +msgid "(( expression ))" +msgstr "(( expressi ))" + +#: builtins.c:206 +msgid "[[ expression ]]" +msgstr "[[ expressi ]]" + +#: builtins.c:208 +msgid "variables - Names and meanings of some shell variables" +msgstr "variabel - Nama dan arti dari beberapa shell variabel" + +#: builtins.c:211 +msgid "pushd [-n] [+N | -N | dir]" +msgstr "pushd [-n] [+N | -N | dir]" + +#: builtins.c:215 +msgid "popd [-n] [+N | -N]" +msgstr "popd [-n] [+N | -N]" + +#: builtins.c:219 +msgid "dirs [-clpv] [+N] [-N]" +msgstr "dirs [-clpv] [+N] [-N]" + +#: builtins.c:222 +msgid "shopt [-pqsu] [-o] [optname ...]" +msgstr "shopt [-pqsu] [-o] [optname ...]" + +#: builtins.c:224 +msgid "printf [-v var] format [arguments]" +msgstr "printf [-v var] format [argumen]" + +#: builtins.c:227 +msgid "" +"complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W " +"wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] " +"[name ...]" +msgstr "" +"complete [-abcdefgjksuv] [-pr] [-o opsi] [-A action] [-G globpat] [-W daftar " +"kata] [-F fungsi] [-C perintah] [-X filterpat] [-P prefix] [-S suffix] " +"[name ...]" + +#: builtins.c:231 +msgid "" +"compgen [-abcdefgjksuv] [-o option] [-A action] [-G globpat] [-W wordlist] " +"[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]" +msgstr "" +"compgen [-abcdefgjksuv] [-o opsi] [-A aksi] [-G globpat] [-W wordlist] [-F " +"fungsi] [-C perintah] [-X filterpat] [-P prefix] [-S suffix] [word]" + +#: builtins.c:235 +msgid "compopt [-o|+o option] [name ...]" +msgstr "compopt [-o|+o opsi] [nama ...]" + +#: builtins.c:238 +msgid "" +"mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c " +"quantum] [array]" +msgstr "" +"mapfile [-n jumlah] [-O asal] [-s jumlah] [-t] [-u fd] [-C callback] [-c " +"quantum] [array]" + +#: builtins.c:250 +msgid "" +"Define or display aliases.\n" +" \n" +" Without arguments, `alias' prints the list of aliases in the reusable\n" +" form `alias NAME=VALUE' on standard output.\n" +" \n" +" Otherwise, an alias is defined for each NAME whose VALUE is given.\n" +" A trailing space in VALUE causes the next word to be checked for\n" +" alias substitution when the alias is expanded.\n" +" \n" +" Options:\n" +" -p\tPrint all defined aliases in a reusable format\n" +" \n" +" Exit Status:\n" +" alias returns true unless a NAME is supplied for which no alias has " +"been\n" +" defined." +msgstr "" +"Definisikan atau tampilkan aliases.\n" +" \n" +" `alias' dengan tanpa argumen atau dengan opsi -p menampilkan daftar\n" +" dari aliases dalam bentuk alias NAMA=NILAI di keluaran standar.\n" +" \n" +" Jika tidak, sebuah alias didefinisikan untuk setiap NAMA yang NILAI-nya " +"diberikan.\n" +" sebuah tambahan spasi dalam NILAI menyebabkan kata selanjutnyan untuk " +"diperikasi untuk\n" +" pengganti alias ketika alias diexpand.\n" +" \n" +" Opsi:\n" +" -p\tTampilkan seluruh alias yang terdefinisi dalam format yang " +"berguna\n" +" \n" +" Status Keluar:\n" +" alias mengembalikan true sampai sebuah NAMA diberikan yang mana belum " +"ada alias yang\n" +" terdefinisi." + +#: builtins.c:272 +msgid "" +"Remove each NAME from the list of defined aliases.\n" +" \n" +" Options:\n" +" -a\tremove all alias definitions.\n" +" \n" +" Return success unless a NAME is not an existing alias." +msgstr "" +"Hapus setiap NAMA dari daftar yang mendefinisikan aliases.\n" +" \n" +" Opsi:\n" +" -a\thapus semua definisi alias.\n" +" \n" +" Mengembalikan sukses kecuali sebuah NAMA bukan alias yang sudah ada." + +#: builtins.c:285 +msgid "" +"Set Readline key bindings and variables.\n" +" \n" +" Bind a key sequence to a Readline function or a macro, or set a\n" +" Readline variable. The non-option argument syntax is equivalent to\n" +" that found in ~/.inputrc, but must be passed as a single argument:\n" +" e.g., bind '\"\\C-x\\C-r\": re-read-init-file'.\n" +" \n" +" Options:\n" +" -m keymap Use KEYMAP as the keymap for the duration of this\n" +" command. Acceptable keymap names are emacs,\n" +" emacs-standard, emacs-meta, emacs-ctlx, vi, vi-" +"move,\n" +" vi-command, and vi-insert.\n" +" -l List names of functions.\n" +" -P List function names and bindings.\n" +" -p List functions and bindings in a form that can be\n" +" reused as input.\n" +" -S List key sequences that invoke macros and their " +"values\n" +" -s List key sequences that invoke macros and their " +"values\n" +" in a form that can be reused as input.\n" +" -V List variable names and values\n" +" -v List variable names and values in a form that can\n" +" be reused as input.\n" +" -q function-name Query about which keys invoke the named function.\n" +" -u function-name Unbind all keys which are bound to the named " +"function.\n" +" -r keyseq Remove the binding for KEYSEQ.\n" +" -f filename Read key bindings from FILENAME.\n" +" -x keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n" +" \t\t\t\tKEYSEQ is entered.\n" +" \n" +" Exit Status:\n" +" bind returns 0 unless an unrecognized option is given or an error occurs." +msgstr "" +"Set Readline kunci pengikat dan variabel.\n" +" \n" +" Ikat sebuah urutan kunci ke fungsi readline atau sebuah macro, atau set\n" +" sebuah variabel readline. Argumen bukan-opsi syntax yang equivalent\n" +" yang ditemukan dalam ~/.inputrc, tetapi harus dilewatkan sebagai sebuah " +"argumen tunggal:\n" +" yang terikat '\"\\C-x\\C-r\": membaca kembali berkas inisialisasi.\n" +" \n" +" Opsi:\n" +" -m keymap Gunakan `keymap' sebagai keymap untuk durasi dari " +"perintah\n" +" ini. Nama keymap yang diterima adalah emacs,\n" +" emacs-standard, emacs-meta, emacs-ctlx, vi, vi-" +"move,\n" +" vi-command, dan vi-insert.\n" +" -l Daftar dari nama fungsi.\n" +" -p Daftar dari nama fungsi dan bindings.\n" +" -p Daftar dari fungsi dan bindings dalam bentuk yang " +"dapat digunakan sebagai\n" +" masukan.\n" +" -S Daftar urutan kunci yang memanggil macros " +"dannilainya\n" +" -s Daftar urutan kunci yang memanggil macros " +"dannilainya\n" +" dalam sebuah bentuk yang dapat digunakan sebagai " +"sebuah masukan. -V Daftar nama variabel dan nilai\n" +" -v Daftar nama variabel dan nilai dalam bentuk yang " +"dapat digunakan\n" +" sebagai masukan.\n" +" -q nama-fungsi Minta tentang kunci mana yang dipanggil oleh fungsi " +"yang disebut.\n" +" -u nama-fungsi Unbind semua kunci yang terikat dengan nama-" +"fungsi.\n" +" -r keyseq Hapus binding untuk KEYSEQ.\n" +" -f namafile Baca kunci bindings dari NAMAFILE.\n" +" -x keyseq:shell-command\tMenyebabkan SHELL-COMMAND untuk dijalankan " +"ketika\n" +" \t\t\t\tKEYSEQ dimasuki.\n" +" \n" +" Status Keluar:\n" +" bind memberikan kembalian 0 kecuali sebuah opsi tidak dikenal " +"diberikan atau sebuah error terjadi." + +#: builtins.c:322 +msgid "" +"Exit for, while, or until loops.\n" +" \n" +" Exit a FOR, WHILE or UNTIL loop. If N is specified, break N enclosing\n" +" loops.\n" +" \n" +" Exit Status:\n" +" The exit status is 0 unless N is not greater than or equal to 1." +msgstr "" +"Keluar dari for, while, atau until loops.\n" +" \n" +" Keluar untuk FOR, WHILE atau UNTIL loop. Jika N dispesifikasikan, keluar " +"N yang melingkupi\n" +" loops.\n" +" \n" +" Status Keluar:\n" +" Status keluar adalah 0 kecuali N tidak lebih besar atau sama dengan 1." + +#: builtins.c:334 +msgid "" +"Resume for, while, or until loops.\n" +" \n" +" Resumes the next iteration of the enclosing FOR, WHILE or UNTIL loop.\n" +" If N is specified, resumes the Nth enclosing loop.\n" +" \n" +" Exit Status:\n" +" The exit status is 0 unless N is not greater than or equal to 1." +msgstr "" +"Melanjutkan for, while, atau until loops.\n" +" \n" +" Melanjutkan ke iterasi selanjutnya dari loop yang dilingkupi oleh FOR, " +"WHILE, atau UNTIL.\n" +" Jika N dispesifikasikan, melanjutkan di posisi ke N dari loop yang " +"dilingkupi. \n" +" Status Keluar:\n" +" Status keluar adalah 0 kecuali N tidak lebih besar atau sama dengan 1." + +#: builtins.c:346 +msgid "" +"Execute shell builtins.\n" +" \n" +" Execute SHELL-BUILTIN with arguments ARGs without performing command\n" +" lookup. This is useful when you wish to reimplement a shell builtin\n" +" as a shell function, but need to execute the builtin within the " +"function.\n" +" \n" +" Exit Status:\n" +" Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is\n" +" not a shell builtin.." +msgstr "" +"Menjalankan shell builtins.\n" +" \n" +" Menjalankan SHELL-BUILTIN dengan argumen ARGs tanpa menjalankan " +"pencarian\n" +" perintah. Ini berguna ketika anda menginginkan untuk mengimplementasikan " +"sebuah shell builtin\n" +" sebagai sebuah fungsi shell, tetapi butuh untuk menjalankan builtin " +"dalah fungsi.\n" +" \n" +" Status Keluar:\n" +" Mengembalikan status keluar dari SHELL-BUILTIN, atau salah jika SHELL-" +"BUILTIN adalah\n" +" bukan sebuah shell builtin.." + +#: builtins.c:361 +msgid "" +"Return the context of the current subroutine call.\n" +" \n" +" Without EXPR, returns \"$line $filename\". With EXPR, returns\n" +" \"$line $subroutine $filename\"; this extra information can be used to\n" +" provide a stack trace.\n" +" \n" +" The value of EXPR indicates how many call frames to go back before the\n" +" current one; the top frame is frame 0.\n" +" \n" +" Exit Status:\n" +" Returns 0 unless the shell is not executing a shell function or EXPR\n" +" is invalid." +msgstr "" +"Mengembalikan context dari panggilan subroutine saat ini.\n" +" \n" +" Tanpa EXPR, mengembalikan \"$line $filename\". Dengan EXPR,\n" +" mengembalikan \"$line $subroutine $filename\"; informasi extra ini\n" +" dapat digunakan untuk menyediakan jejak stack.\n" +" \n" +" Nilai dari EXPR mengindikasikan bagaimana banyak panggilan frames " +"kembali sebelum\n" +" yang ada; Top frame adalah frame 0. \n" +" Status Keluar:\n" +" Mengembalikan 0 kecuali shell sedang tidak menjalankan sebuah fungsi " +"shell atau EXPR\n" +" tidak valid." + +#: builtins.c:379 +msgid "" +"Change the shell working directory.\n" +" \n" +" Change the current directory to DIR. The default DIR is the value of " +"the\n" +" HOME shell variable.\n" +" \n" +" The variable CDPATH defines the search path for the directory " +"containing\n" +" DIR. Alternative directory names in CDPATH are separated by a colon " +"(:).\n" +" A null directory name is the same as the current directory. If DIR " +"begins\n" +" with a slash (/), then CDPATH is not used.\n" +" \n" +" If the directory is not found, and the shell option `cdable_vars' is " +"set,\n" +" the word is assumed to be a variable name. If that variable has a " +"value,\n" +" its value is used for DIR.\n" +" \n" +" Options:\n" +" -L\tforce symbolic links to be followed\n" +" -P\tuse the physical directory structure without following symbolic\n" +" \tlinks\n" +" \n" +" The default is to follow symbolic links, as if `-L' were specified.\n" +" \n" +" Exit Status:\n" +" Returns 0 if the directory is changed; non-zero otherwise." +msgstr "" +"Pindah direktori kerja shell.\n" +" \n" +" Pindah direktori saat ini ke DIR. Variabel $HOME adalah\n" +" default DIR.\n" +" \n" +" Variabel CDPATH mendefinisikan jalur pencarian untuk\n" +" direktori yang berisi DIR. Alternatif nama direktori dalam CDPATH\n" +" dipisahkan oleh sebuah colon (:). Sebuah nama direktori kosong adalah " +"sama dengan\n" +" direktori saat ini. i.e. `.'. Jika DIR dimulai dengan sebuah slash (/),\n" +" maka CDPATH tidak digunakan.\n" +" \n" +" Jika direktori tidak ditemukan, dan\n" +" opsi shell cdable_vars' diset, maka coba kata sebagai sebuah nama\n" +" variabel. Jika variabel itu memiliki sebuah nilai, maka nilai dari " +"variabel itu yang digunakan\n" +" \n" +" Opsi:\n" +" -L\tmemaksa link simbolik untuk diikuti\n" +" -P\tgunakan struktur physical direktori tanpa mengikuti link\n" +" symbolik\n" +" \n" +" Default adalah mengikuti link simbolik, seperti dalam `-L' " +"dispesifikasikan.\n" +" \n" +" Status Keluar:\n" +" Mengembalikan 0 jika direktori berubah; bukan nol jika tidak." + +#: builtins.c:407 +msgid "" +"Print the name of the current working directory.\n" +" \n" +" Options:\n" +" -L\tprint the value of $PWD if it names the current working\n" +" \tdirectory\n" +" -P\tprint the physical directory, without any symbolic links\n" +" \n" +" By default, `pwd' behaves as if `-L' were specified.\n" +" \n" +" Exit Status:\n" +" Returns 0 unless an invalid option is given or the current directory\n" +" cannot be read." +msgstr "" +"Menampilkan nama dari direktori yang digunakan sekarang.\n" +" \n" +" Opsi:\n" +" -L\tmenampilkan nilai dari $PWD jika ini nama dari direktori\n" +" \tyang digunakan sekarang\n" +" -P\tmenampilkan direktori pisik, tanpa link simbolik apapun\n" +" \n" +" Secara default, `pwd' berlaku seperi jika opsi `-L' dispesifikasikan.\n" +" \n" +" Status Keluar:\n" +" Mengembalikan 0 kecuali jika sebuah opsi tidak valid diberikan atau " +"direktori sekarang\n" +" tidak bisa dibaca." + +#: builtins.c:424 +msgid "" +"Null command.\n" +" \n" +" No effect; the command does nothing.\n" +" \n" +" Exit Status:\n" +" Always succeeds." +msgstr "" +"Perintah kosong.\n" +" \n" +" Tidak ada efek; perintah tidak melakukan apa-apa.\n" +" \n" +" Status Keluar:\n" +" Selalu sukses." + +#: builtins.c:435 +msgid "" +"Return a successful result.\n" +" \n" +" Exit Status:\n" +" Always succeeds." +msgstr "" +"Mengembalikan sebuah hasil yang sukses.\n" +" \n" +" Status Keluar:\n" +" Selalu sukses." + +#: builtins.c:444 +msgid "" +"Return an unsuccessful result.\n" +" \n" +" Exit Status:\n" +" Always fails." +msgstr "" +"Mengembalikan sebuah kembaliah yang tidak sukses.\n" +" \n" +" Status Keluar:\n" +" Selalu gagal." + +#: builtins.c:453 +msgid "" +"Execute a simple command or display information about commands.\n" +" \n" +" Runs COMMAND with ARGS suppressing shell function lookup, or display\n" +" information about the specified COMMANDs. Can be used to invoke " +"commands\n" +" on disk when a function with the same name exists.\n" +" \n" +" Options:\n" +" -p\tuse a default value for PATH that is guaranteed to find all of\n" +" \tthe standard utilities\n" +" -v\tprint a description of COMMAND similar to the `type' builtin\n" +" -V\tprint a more verbose description of each COMMAND\n" +" \n" +" Exit Status:\n" +" Returns exit status of COMMAND, or failure if COMMAND is not found." +msgstr "" +"Menjalankan sebuah perintah sederhana atau menampilkan informasi mengenai " +"perintah.\n" +" \n" +" Menjalankan PERINTAH tanpa ARGS menekan fungsi pencarian shell, atau " +"menampilkan\n" +" informasi mengenasi PERINTAH tertentu. Dapat digunakan untuk memanggil " +"perintah\n" +" dalam disk ketika sebuah fungsi dengan nama yang sama ada.\n" +" \n" +" Opsi:\n" +" -p\tgunakan sebuah nilai default untuk PATH yang menjamin untuk " +"mencari seluruh\n" +" \tpenggunaan stadar\n" +" -v\tmenampilkan deskripsi dari PERINTAH sama dengan `type' builtin\n" +" -V\tmenampilkan lebih jelas deskripsi dari setiap PERINTAH\n" +" \n" +" Status Keluar:\n" +" Mengembalikan status keluar dari PERINTAH, atau gagal jika PERINTAH " +"tidak ditemukan." + +#: builtins.c:472 +msgid "" +"Set variable values and attributes.\n" +" \n" +" Declare variables and give them attributes. If no NAMEs are given,\n" +" display the attributes and values of all variables.\n" +" \n" +" Options:\n" +" -f\trestrict action or display to function names and definitions\n" +" -F\trestrict display to function names only (plus line number and\n" +" \tsource file when debugging)\n" +" -p\tdisplay the attributes and value of each NAME\n" +" \n" +" Options which set attributes:\n" +" -a\tto make NAMEs indexed arrays (if supported)\n" +" -A\tto make NAMEs associative arrays (if supported)\n" +" -i\tto make NAMEs have the `integer' attribute\n" +" -l\tto convert NAMEs to lower case on assignment\n" +" -r\tto make NAMEs readonly\n" +" -t\tto make NAMEs have the `trace' attribute\n" +" -u\tto convert NAMEs to upper case on assignment\n" +" -x\tto make NAMEs export\n" +" \n" +" Using `+' instead of `-' turns off the given attribute.\n" +" \n" +" Variables with the integer attribute have arithmetic evaluation (see\n" +" the `let' command) performed when the variable is assigned a value.\n" +" \n" +" When used in a function, `declare' makes NAMEs local, as with the " +"`local'\n" +" command.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" +"Menset nilai variabel dan atribut.\n" +" \n" +" Variabel deklarasi dan memberikan atribut untuknya. Jika tidak ada NAMA " +"yang diberikan,\n" +" tampilkan atribut dan nilai dari seluruh variabel.\n" +" \n" +" Opsi:\n" +" -f\tbatasi aksi atau tampilkan nama fungsi dan definisi\n" +" -F\tbatasi tampilan ke nama fungsi saja (tambahkan nomor baris dan\n" +" \tsumber berkas ketika debugging)\n" +" -p\ttampilkan atribut dan nilai dari setiap NAMA\n" +" \n" +" Opsi yang menset atribut:\n" +" -a\tuntuk membuat NAMA idex array (jika didukung)\n" +" -A\tuntuk membuat NAMA assosiasi array (jika didukung)\n" +" -i\tuntuk membuat NAMA memiliki atribut `integer'\n" +" -l\tuntuk mengubah NAMA ke huruf kecil dalam assignment\n" +" -r\tuntuk membuah NAMA baca-saja\n" +" -u\tuntuk mengubah NAMA ke huruf besar dalam penempatan\n" +" -x\tuntuk membuah NAMA export\n" +" \n" +" Menggunakan `+' daripada `-' menonaktifkan atribut yang diberikan.\n" +" \n" +" Variabel dengan atribut integer memiliki evaluasi aritmetic (lihat\n" +" perintah `let') ditampilkan ketika variabel diberi sebuah nilai.\n" +" \n" +" Ketika digunakan dalam sebuah fungsi, `declare' membuat NAMA lokal, " +"seperti dengan\n" +" perintah `local'.\n" +" \n" +" Status Keluar:\n" +" Mengembalikan sukses kecuali sebuah opsi tidak valid diberikan atau " +"sebuah error terjadi." + +#: builtins.c:508 +msgid "" +"Set variable values and attributes.\n" +" \n" +" Obsolete. See `help declare'." +msgstr "" +"Menset nilai variabel dan atribut.\n" +" \n" +" Kadaluarsa. Lihat `help declare'." + +#: builtins.c:516 +msgid "" +"Define local variables.\n" +" \n" +" Create a local variable called NAME, and give it VALUE. OPTION can\n" +" be any option accepted by `declare'.\n" +" \n" +" Local variables can only be used within a function; they are visible\n" +" only to the function where they are defined and its children.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied, an error occurs,\n" +" or the shell is not executing a function." +msgstr "" +"Mendefinisikan variabel lokal.\n" +" \n" +" Membuat sebuah variabel locak dipanggil NAMA, dan memberikan kepadanya " +"NILAI. OPSI dapat\n" +" berupa semua opsi yang diterima oleh `declare'.\n" +" \n" +" Variabel lokal hanya dapat digunakan dalam sebuah fungsi; mereka hanya\n" +" dapat dilihat ke fungsi dimana mereka terdefinisi dan anaknya.\n" +" \n" +" Status Keluar:\n" +" Mengembalikan sukses kecuali sebuah opsi tidak valid diberikan, sebuah " +"error terjadi.\n" +" atau shell tidak menjalankan sebuah fungsi." + +#: builtins.c:533 +msgid "" +"Write arguments to the standard output.\n" +" \n" +" Display the ARGs on the standard output followed by a newline.\n" +" \n" +" Options:\n" +" -n\tdo not append a newline\n" +" -e\tenable interpretation of the following backslash escapes\n" +" -E\texplicitly suppress interpretation of backslash escapes\n" +" \n" +" `echo' interprets the following backslash-escaped characters:\n" +" \\a\talert (bell)\n" +" \\b\tbackspace\n" +" \\c\tsuppress further output\n" +" \\e\tescape character\n" +" \\f\tform feed\n" +" \\n\tnew line\n" +" \\r\tcarriage return\n" +" \\t\thorizontal tab\n" +" \\v\tvertical tab\n" +" \\\\\tbackslash\n" +" \\0nnn\tthe character whose ASCII code is NNN (octal). NNN can be\n" +" \t0 to 3 octal digits\n" +" \\xHH\tthe eight-bit character whose value is HH (hexadecimal). HH\n" +" \tcan be one or two hex digits\n" +" \n" +" Exit Status:\n" +" Returns success unless a write error occurs." +msgstr "" +"Tulis argumen ke standar keluaran.\n" +" \n" +" Menampilkan ARG ke standar keluaran diikuti oleh baris baru.\n" +" \n" +" Opsi:\n" +" -n\tjangan menambahkan sebuah baris baru\n" +" -e\taktifkan interpretasi dari karakter backslash\n" +" -E\tsecara eksplisit tekan interpretasi dari karakter backslash\n" +" \n" +" `echo' menginterpretasikan karakter backslash-escaped berikut:\n" +" \\a\talert (bell)\n" +" \\b\tbackspace\n" +" \\c\tsuppress karakter baris baru yang tersisa\n" +" \\E\tescape karakter\n" +" \\f\tform feed\n" +" \\n\tnew line\n" +" \\r\tcarriage return\n" +" \\t\thorizontal tab\n" +" \\\\\tbackslash\n" +" \\0nnn\tkarakter yang memiliki kode ASCII NNN (oktal). NNN dapat " +"berupa\n" +" \t0 sampai 3 oktal digit\n" +" \\xHH\tdelapan-bit karakter yang nilainya adalah HH (hexadesimal). HH\n" +" \tdapat satu dari dua bilangan hex\n" +" \n" +" Status Keluar:\n" +" Mengembalikan sukses kecuali sebuah penulisan error terjadi." + +#: builtins.c:567 +msgid "" +"Write arguments to the standard output.\n" +" \n" +" Display the ARGs on the standard output followed by a newline.\n" +" \n" +" Options:\n" +" -n\tdo not append a newline\n" +" \n" +" Exit Status:\n" +" Returns success unless a write error occurs." +msgstr "" +"Menulis argumen ke standar output.\n" +" \n" +" Menampilkan ARG ke standard keluaran diikuti dengan sebuah baris baru.\n" +" \n" +" Opsi:\n" +" -n\tjangan menambahkan sebuah baris baru\n" +" \n" +" Status Keluar:\n" +" Mengembalikan sukses kecuali sebuah penulisan error terjadi." + +#: builtins.c:582 +msgid "" +"Enable and disable shell builtins.\n" +" \n" +" Enables and disables builtin shell commands. Disabling allows you to\n" +" execute a disk command which has the same name as a shell builtin\n" +" without using a full pathname.\n" +" \n" +" Options:\n" +" -a\tprint a list of builtins showing whether or not each is enabled\n" +" -n\tdisable each NAME or display a list of disabled builtins\n" +" -p\tprint the list of builtins in a reusable format\n" +" -s\tprint only the names of Posix `special' builtins\n" +" \n" +" Options controlling dynamic loading:\n" +" -f\tLoad builtin NAME from shared object FILENAME\n" +" -d\tRemove a builtin loaded with -f\n" +" \n" +" Without options, each NAME is enabled.\n" +" \n" +" To use the `test' found in $PATH instead of the shell builtin\n" +" version, type `enable -n test'.\n" +" \n" +" Exit Status:\n" +" Returns success unless NAME is not a shell builtin or an error occurs." +msgstr "" +"Aktifkan dan non-aktifkan shell builtins.\n" +" \n" +" Aktifkan dan non-aktifkan perintah builtin shell. Menonaktifkan " +"membolehkan anda untuk\n" +" menjalankan sebuah perintah disk yang memiliki nama yang sama dengan " +"shell builtin\n" +" tanpa menggunakan sebuah nama jalur yang lengkap.\n" +" \n" +" Opsi:\n" +" -a\ttampilkan daftar dari builtins memperlihatkan aktif atau tidak " +"setiap diaktifkan\n" +" -n\tmenonaktifkan setiap NAMA atau tampilkan daftar dari builtin yang " +"tidak aktif\n" +" -p\ttampilkan daftar dari builtins dalam format yang berguna\n" +" -s\ttampilkan yang nama dari Posix `special' builtins\n" +" \n" +" Opsi mengontrol dynamic loading:\n" +" -f\tLoad builtin NAMA dari shared object NAMA BERKAS\n" +" -d\tHapus sebuah builtin diload dengan -f\n" +" \n" +" Tanpa opsi, untuk setiap NAMA di aktifkan.\n" +" \n" +" Untuk menggunakan `test' ditemukan dalam $PATH daripada dalam shell " +"builtin\n" +" versi, ketik `enable -n test'.\n" +" \n" +" Status Keluar:\n" +" Mengembalikan sukses kecuali NAMA bukan sebuah shell builtin atau sebuah " +"error terjadi." + +#: builtins.c:610 +msgid "" +"Execute arguments as a shell command.\n" +" \n" +" Combine ARGs into a single string, use the result as input to the " +"shell,\n" +" and execute the resulting commands.\n" +" \n" +" Exit Status:\n" +" Returns exit status of command or success if command is null." +msgstr "" +"Menjalankan argumen sebagai sebuah perintah shell.\n" +" \n" +" Mengkombinasikan ARG dalam sebuah string tunggal, gunakan hasil sebagai " +"masukan dalam shell,\n" +" dan jalankan hasil dari perintah.\n" +" \n" +" Status Keluar:\n" +" Mengembalikan status keluar dari perintah atau sukses jika perintah " +"adalah kosong." + +#: builtins.c:622 +msgid "" +"Parse option arguments.\n" +" \n" +" Getopts is used by shell procedures to parse positional parameters\n" +" as options.\n" +" \n" +" OPTSTRING contains the option letters to be recognized; if a letter\n" +" is followed by a colon, the option is expected to have an argument,\n" +" which should be separated from it by white space.\n" +" \n" +" Each time it is invoked, getopts will place the next option in the\n" +" shell variable $name, initializing name if it does not exist, and\n" +" the index of the next argument to be processed into the shell\n" +" variable OPTIND. OPTIND is initialized to 1 each time the shell or\n" +" a shell script is invoked. When an option requires an argument,\n" +" getopts places that argument into the shell variable OPTARG.\n" +" \n" +" getopts reports errors in one of two ways. If the first character\n" +" of OPTSTRING is a colon, getopts uses silent error reporting. In\n" +" this mode, no error messages are printed. If an invalid option is\n" +" seen, getopts places the option character found into OPTARG. If a\n" +" required argument is not found, getopts places a ':' into NAME and\n" +" sets OPTARG to the option character found. If getopts is not in\n" +" silent mode, and an invalid option is seen, getopts places '?' into\n" +" NAME and unsets OPTARG. If a required argument is not found, a '?'\n" +" is placed in NAME, OPTARG is unset, and a diagnostic message is\n" +" printed.\n" +" \n" +" If the shell variable OPTERR has the value 0, getopts disables the\n" +" printing of error messages, even if the first character of\n" +" OPTSTRING is not a colon. OPTERR has the value 1 by default.\n" +" \n" +" Getopts normally parses the positional parameters ($0 - $9), but if\n" +" more arguments are given, they are parsed instead.\n" +" \n" +" Exit Status:\n" +" Returns success if an option is found; fails if the end of options is\n" +" encountered or an error occurs." +msgstr "" +"Ambil argumen opsi.\n" +" \n" +" Getops digunakan oleh shell procedures untuk memparse parameter posisi.\n" +" \n" +" OPTSTRING berisi huruf opsi yang dikenali; jika sebuah huruf\n" +" diikuti oleh sebuah colon, opsi diduga akan berupa argumen,\n" +" yang seharusnya dipisahkan dari itu oleh spasi.\n" +" \n" +" Setiap waktu ini dipanggil, getopts akan menempatkan opsi selanjutnya " +"dalam\n" +" $name shell variabel, menginisialisasi nama jiki ini tidak ada, dan\n" +" index dari argumen selanjutnya untuk diproses kedalam shell\n" +" variabel OPTIND. OPTIND diinisialisasi ke 1 setiap shell atau\n" +" sebuah shell script dipanggil. Ketika sebuah opsi membutuhkan sebuah " +"argumen,\n" +" getopts menempatkan argumen itu kedalam variabel shell OPTARG.\n" +" \n" +" getopts melaporkan error dalam satu dari dua cara. Jika karakter " +"pertama\n" +" dari OPTSTRING adalah sebuah colon, getopts menggunakan silent error " +"laporan. Dalam\n" +" Mode ini, tidak ada pesan error yang ditampilkan. Jika sebuah opsi tidak " +"valid terlihat\n" +" getops menempatkan karakter opsi yang ditemukan ke OPTARG. Jika sebuah\n" +" argumen yang dibutuhkan tidak ditemukan, getopts menempatkan sebuah ':' " +"kedalam NAME dan\n" +" menset OPTARG ke opsi karakter yang ditemukan. Jika getopts tidak dalam\n" +" mode silent, dan sebuah opsi tidak valid terlihat getopts menempatkan " +"'?' kedalam\n" +" variabel NAME, OPTARG tidak diset, dan sebuah pesan analisis\n" +" tampilkan.\n" +" \n" +" Jika sebuah variabel shell OPTERR memiliki sebuah nilai 0, getopts " +"mendisable\n" +" pencetakan dari pesan error, bahkan jika karakter pertama dari\n" +" OPTSTRING bukan sebuah colon. OPTERR memiliki nilai 1 secara default.\n" +" \n" +" Getopts secara normal memparse parameter posisi ($0 - $9), tetapi jika\n" +" lebih dari satu argumen diberikan, mereka diparse. \n" +" Status Keluar:\n" +" Mengembalikan sukses jika sebuah opsi ditemukan; gagal jika akhir dari " +"opsi\n" +" ditemui atau sebuah error terjadi." + +#: builtins.c:664 +msgid "" +"Replace the shell with the given command.\n" +" \n" +" Execute COMMAND, replacing this shell with the specified program.\n" +" ARGUMENTS become the arguments to COMMAND. If COMMAND is not " +"specified,\n" +" any redirections take effect in the current shell.\n" +" \n" +" Options:\n" +" -a name\tpass NAME as the zeroth argument to COMMAND\n" +" -c\t\texecute COMMAND with an empty environment\n" +" -l\t\tplace a dash in the zeroth argument to COMMAND\n" +" \n" +" If the command cannot be executed, a non-interactive shell exits, " +"unless\n" +" the shell option `execfail' is set.\n" +" \n" +" Exit Status:\n" +" Returns success unless COMMAND is not found or a redirection error " +"occurs." +msgstr "" +"Mengganti shell dengan perintah yang diberikan.\n" +" \n" +" Jalankan PERINTAH, ganti shell ini dengan aplikasi yang " +"dispesifikaskan.\n" +" ARGUMEN menjadi argumen dari PERINTAH. Jika PERINTAH tidak " +"dispesifikasikan,\n" +" setiap redireksi akan memiliki afek dalam shell sekarang.\n" +" \n" +" Opsi:\n" +" -a nama\tlewatkan NAMA sebagai argumen ke nol ke PERINTAH\n" +" -c\t\tjalankan PERINTAH dengan sebuah environment kosong\n" +" -l\t\ttempatkan sebuah dash dalam argumen ke nol ke PERINTAH\n" +" \n" +" Jika perintah tidak dapat dijalankan, sebuah non-interaktif shell " +"keluar, kecuali\n" +" opsi shell `execfail' diset.\n" +" \n" +" Status Keluar:\n" +" Mengembalikan sukses kecuali PERINTAH tidak ditemukan atau sebuah " +"redireksi error terjadi." + +#: builtins.c:685 +msgid "" +"Exit the shell.\n" +" \n" +" Exits the shell with a status of N. If N is omitted, the exit status\n" +" is that of the last command executed." +msgstr "" +"Keluar dari shell.\n" +" \n" +" Keluar dari shell dengan status dari N. Jika N diabaikan, status " +"keluaran\n" +" adalah status dari perintah terakhir yang dijalankan." + +#: builtins.c:694 +msgid "" +"Exit a login shell.\n" +" \n" +" Exits a login shell with exit status N. Returns an error if not " +"executed\n" +" in a login shell." +msgstr "" +"Keluar dari sebuah login shell.\n" +" \n" +" Keluar sebuah login shell dengan status keluar N. Mengembalikan sebuah " +"error jika tidak dijalankan\n" +" dalam sebuah login shell." + +#: builtins.c:704 +msgid "" +"Display or execute commands from the history list.\n" +" \n" +" fc is used to list or edit and re-execute commands from the history " +"list.\n" +" FIRST and LAST can be numbers specifying the range, or FIRST can be a\n" +" string, which means the most recent command beginning with that\n" +" string.\n" +" \n" +" Options:\n" +" -e ENAME\tselect which editor to use. Default is FCEDIT, then " +"EDITOR,\n" +" \t\tthen vi\n" +" -l \tlist lines instead of editing\n" +" -n\tomit line numbers when listing\n" +" -r\treverse the order of the lines (newest listed first)\n" +" \n" +" With the `fc -s [pat=rep ...] [command]' format, COMMAND is\n" +" re-executed after the substitution OLD=NEW is performed.\n" +" \n" +" A useful alias to use with this is r='fc -s', so that typing `r cc'\n" +" runs the last command beginning with `cc' and typing `r' re-executes\n" +" the last command.\n" +" \n" +" Exit Status:\n" +" Returns success or status of executed command; non-zero if an error " +"occurs." +msgstr "" +"Tampilkan atau jalankan perintah dari daftar sejarah.\n" +" \n" +" fc biasa digunakan untuk mendaftar atau mengubah dan menjalankan " +"perintah dari daftar sejarah.\n" +" PERTAMA dan TERAKHIR dapat berupa nomor yang menspesifikasikan " +"jangkauan, atau PERTAMA dapat berupa sebuah\n" +" string, yang berarti adalah perintah yang berawal dengan string.\n" +" \n" +" Opsi:\n" +" -e ENAME\tmemilih editor yang akan digunakan. Default adalah FCEDIT, " +"kemudian EDITOR,\n" +" \t\tkemudian vi.\n" +" -l \tdaftar baris daripada mengubahnya.\n" +" -n \tabaikan nomor baris ketika MENDAFTAR.\n" +" -r \tmembalik urutan dari baris (membuat yang terbaru terdaftar " +"pertama).\n" +" \n" +" Dengan `fc -s [pat=rep ...] [perintah]' format, perintah\n" +" dijalankan setelah substitusi OLD=NEW dilakukan.\n" +" \n" +" Sebuah alias yang berguna yang digunakan dengan ini r='fc -s', jadi " +"mengetikan `r cc'\n" +" menjalankan perintah terakhir yang diawali dengan `cc' dan mengetikan " +"'r' menjalankan kembali\n" +" perintah terakhir.\n" +" \n" +" Status Keluar:\n" +" Mengembalikan sukses atau status dari perintah yang dijalankan; tidak-" +"nol jika sebuah error terjadi." + +#: builtins.c:734 +msgid "" +"Move job to the foreground.\n" +" \n" +" Place the job identified by JOB_SPEC in the foreground, making it the\n" +" current job. If JOB_SPEC is not present, the shell's notion of the\n" +" current job is used.\n" +" \n" +" Exit Status:\n" +" Status of command placed in foreground, or failure if an error occurs." +msgstr "" +"Pindahkan pekerjaan di foreground.\n" +" \n" +" Tempatkan JOB_SPEC di foreground, dan buat ini pekerjaan saat ini. Jika\n" +" JOB_SPEC tidak ada, shell notion dari pekerjaan saat ini\n" +" yang digunakan.\n" +" \n" +" Status Keluar:\n" +" Status dari perintah yang ditempatkan di foreground, atau gagal jika " +"sebuah error terjadi." + +#: builtins.c:749 +msgid "" +"Move jobs to the background.\n" +" \n" +" Place the jobs identified by each JOB_SPEC in the background, as if " +"they\n" +" had been started with `&'. If JOB_SPEC is not present, the shell's " +"notion\n" +" of the current job is used.\n" +" \n" +" Exit Status:\n" +" Returns success unless job control is not enabled or an error occurs." +msgstr "" +"Pindahkan pekerjaan ke background.\n" +" \n" +" Tempatkan setiap JOB_SPEC dalam background, seperti jika ini telah " +"dimulai dengan\n" +" `&'. Jika JOB_SPEC tidak ada, notion shell's dari pekerjaan\n" +" yang saat berjalan digunakan.\n" +" \n" +" Status Keluar:\n" +" Mengembalikan sukses kecuali pengontrol pekerjaan tidak aktif atau " +"sebuah error terjadi." + +#: builtins.c:763 +msgid "" +"Remember or display program locations.\n" +" \n" +" Determine and remember the full pathname of each command NAME. If\n" +" no arguments are given, information about remembered commands is " +"displayed.\n" +" \n" +" Options:\n" +" -d\t\tforget the remembered location of each NAME\n" +" -l\t\tdisplay in a format that may be reused as input\n" +" -p pathname\tuse PATHNAME is the full pathname of NAME\n" +" -r\t\tforget all remembered locations\n" +" -t\t\tprint the remembered location of each NAME, preceding\n" +" \t\teach location with the corresponding NAME if multiple\n" +" \t\tNAMEs are given\n" +" Arguments:\n" +" NAME\t\tEach NAME is searched for in $PATH and added to the list\n" +" \t\tof remembered commands.\n" +" \n" +" Exit Status:\n" +" Returns success unless NAME is not found or an invalid option is given." +msgstr "" +"Ingat atau tampilkan lokasi aplikasi.\n" +" \n" +" Tentukan dan ingat nama jalur lengkap dari setiap NAMA perintah. Jika\n" +" tidak ada argumen yang diberikan, informasi mengenai perintah yang " +"diingat akan ditampilkan.\n" +" \n" +" Opsi:\n" +" -d\t\tlupakan lokasi yang diingat untuk setiap NAMA\n" +" -l\t\ttampilkan dalam format yang bisa digunakan sebagai masukan\n" +" -p pathname\tgunakan NAMA JALUR yang nama jalur lengkap dari NAMA\n" +" -r\t\tlupakan semua lokasi yang diingat\n" +" -t\t\ttampilkan lokasi yang diingat untuk setiap NAMA, diawali\n" +" \t\tuntuk setiap lokasi diberikan NAMA yang sesuai jika multiple\n" +" \t\tNAMA diberikan\n" +" Argumen:\n" +" NAMA\t\tSetiap NAMA yang ditemukan dalam $PATH dan ditambahkan dalam " +"daftar\n" +" \t\tdari perintah yang diingat.\n" +" \n" +" Status Keluar:\n" +" Mengembalikan sukses kecuali NAMA tidak ditemukan atau sebuah opsi tidak " +"valid telah diberikan." + +#: builtins.c:788 +msgid "" +"Display information about builtin commands.\n" +" \n" +" Displays brief summaries of builtin commands. If PATTERN is\n" +" specified, gives detailed help on all commands matching PATTERN,\n" +" otherwise the list of help topics is printed.\n" +" \n" +" Options:\n" +" -d\toutput short description for each topic\n" +" -m\tdisplay usage in pseudo-manpage format\n" +" -s\toutput only a short usage synopsis for each topic matching\n" +" \tPATTERN\n" +" \n" +" Arguments:\n" +" PATTERN\tPattern specifiying a help topic\n" +" \n" +" Exit Status:\n" +" Returns success unless PATTERN is not found or an invalid option is " +"given." +msgstr "" +"Tampilkan informasi mengenai perintah builtin.\n" +" \n" +" Tampilkan ringkasan singkat dari perintah builtin. Jika POLA\n" +" dispesifikasikan, tampilkan bantuan lengkap di seluruh perintah yang " +"cocok dengan POLA,\n" +" jika tidak daftar dari topik bantuan ditampilkan.\n" +" \n" +" Opsi:\n" +" -d\tkeluarkan deskripsi singkat untuk setiap topik\n" +" -m\ttampilkan penggunaan dalam format pseudo-manpage\n" +" -s\tkeluarkan hanya penggunaan singkat untuk setiap topik yang cocok\n" +" \tdengan POLA\n" +" \n" +" Argumen:\n" +" POLA\tPola menspesifikasikan topik bantuan\n" +" \n" +" Status Keluar:\n" +" Mengembalikan sukses kecuali POLA tidak ditemukan atau opsi tidak valid " +"diberikan." + +#: builtins.c:812 +msgid "" +"Display or manipulate the history list.\n" +" \n" +" Display the history list with line numbers, prefixing each modified\n" +" entry with a `*'. An argument of N lists only the last N entries.\n" +" \n" +" Options:\n" +" -c\tclear the history list by deleting all of the entries\n" +" -d offset\tdelete the history entry at offset OFFSET.\n" +" \n" +" -a\tappend history lines from this session to the history file\n" +" -n\tread all history lines not already read from the history file\n" +" -r\tread the history file and append the contents to the history\n" +" \tlist\n" +" -w\twrite the current history to the history file\n" +" \tand append them to the history list\n" +" \n" +" -p\tperform history expansion on each ARG and display the result\n" +" \twithout storing it in the history list\n" +" -s\tappend the ARGs to the history list as a single entry\n" +" \n" +" If FILENAME is given, it is used as the history file. Otherwise,\n" +" if $HISTFILE has a value, that is used, else ~/.bash_history.\n" +" \n" +" If the $HISTTIMEFORMAT variable is set and not null, its value is used\n" +" as a format string for strftime(3) to print the time stamp associated\n" +" with each displayed history entry. No time stamps are printed " +"otherwise.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or an error occurs." +msgstr "" +"Menampilkan atau memanipulasi daftar sejarah.\n" +" \n" +" Menampilkan daftar sejarah dengan nomor baris. Baris yang ditampilkan " +"dengan\n" +" sebuah `*' telah diubah. Argumen dari N mengatakan untuk menampilkan " +"hanya\n" +" N baris terakhir.\n" +" \n" +" Opsi:\n" +" -c\tmenghapus daftar sejarah dengan cara menghapus seluruh masukan\n" +" -d menghapus masukan sejarah di offset OFFSET.\n" +" \n" +" -a\tmenambahkan ke daftar sejarah dari sesi ini ke berkas sejarah.\n" +" -n\tmembaca seluruh baris sejarah yang belum dibaca dari berkas " +"sejarah\n" +" -r\tmembaca berkas sejarah dan menambahkan isinya ke daftar\n" +" \tsejarah\n" +" -w menulis sejarah sekarang ke berkas sejarah\n" +" \tdan menambahkannya kedalam daftar sejarah\n" +" \n" +" -p\tjalankan expansi sejarah untuk setiap ARG dan tampilkan hasilnya\n" +" \ttanpa menyimpannya kedalam daftar sejarah\n" +" -s\ttambahkan ARG ke daftar sejarah sebagai sebuah masukan tunggal\n" +" \n" +" \n" +" Jika NAMAFILE diberikan, maka itu digunakan sebagai berkas sejarah " +"selain itu\n" +" jika $HISTFILE memiliki nilai, maka itu digunakan, selain itu ~/." +"bash_history.\n" +" \n" +" \n" +" Jika variabel $HISTTIMEFORMAT diset dan tidak kosong, nilai ini yang " +"akan digunakan\n" +" sebagai format untuk string untuk strftime(3) untuk mencetak timestamp " +"yang berhubungan\n" +" dengan setiap masukan sejarah yang ditampilkan. Tidak ada time stamp " +"yang ditampilkan jika tidak.\n" +" \n" +" Status Keluar:\n" +" Mengembalikan sukses kecuali sebuah opsi tidak valid diberikan atau " +"sebuah error terjadi." + +#: builtins.c:848 +msgid "" +"Display status of jobs.\n" +" \n" +" Lists the active jobs. JOBSPEC restricts output to that job.\n" +" Without options, the status of all active jobs is displayed.\n" +" \n" +" Options:\n" +" -l\tlists process IDs in addition to the normal information\n" +" -n\tlist only processes that have changed status since the last\n" +" \tnotification\n" +" -p\tlists process IDs only\n" +" -r\trestrict output to running jobs\n" +" -s\trestrict output to stopped jobs\n" +" \n" +" If -x is supplied, COMMAND is run after all job specifications that\n" +" appear in ARGS have been replaced with the process ID of that job's\n" +" process group leader.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or an error occurs.\n" +" If -x is used, returns the exit status of COMMAND." +msgstr "" +"Menampilkan status dari pekerjaan.\n" +" \n" +" Tampilkan pekerjaan yang aktif. JOBSPEC membatasi keluaran ke pekerjaan " +"itu.\n" +" Tanpa opsi, status dari seluruh aktif job ditampilkan.\n" +" \n" +" Opsi:\n" +" -l menampilkan daftar dari proses id sebagai informasi tambahan.\n" +" -n diberikan, hanya proses yang sudah berubah status saja sejak\n" +" \tnotifikasi terakhir yang ditampilkan.\n" +" -p hanya menampilkan proses id saja.\n" +" -r membatasi keluaran ke pekerjaan yang sedang jalan\n" +" -s membatasi keluaran ke pekerjaan yang berhenti\n" +" \n" +" Jika opsi -x diberikan, PERINTAH dijalankan setelah semua spesifikasi " +"pekerjaan\n" +" yang tampil di ARGS telah diganti dengan proses ID dari proses " +"pekerjaan\n" +" grup leader.\n" +" \n" +" Status Keluar:\n" +" Mengembalikan sukses kecualis sebuah opsi tidak valid diberikan atau " +"sebuah error terjadi.\n" +" Jika -x digunakan, mengembalikan status keluar dari PERINTAH." + +#: builtins.c:875 +msgid "" +"Remove jobs from current shell.\n" +" \n" +" Removes each JOBSPEC argument from the table of active jobs. Without\n" +" any JOBSPECs, the shell uses its notion of the current job.\n" +" \n" +" Options:\n" +" -a\tremove all jobs if JOBSPEC is not supplied\n" +" -h\tmark each JOBSPEC so that SIGHUP is not sent to the job if the\n" +" \tshell receives a SIGHUP\n" +" -r\tremove only running jobs\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option or JOBSPEC is given." +msgstr "" +"Hapus pekerjaan dari shell sekarang.\n" +" \n" +" Hapus setiap JOBSPEC argumen dari tabel dari pekerjaan aktif. Tanpa\n" +" JOBSPEC apapun, shell menggunakan indikasi ini dari pekerjaan sekarang.\n" +" \n" +" Opsi:\n" +" -a\thapus seluruh pekerjaan jika JOBSPEC tidak diberikan\n" +" -h\ttandai setiap JOBSPEC sehingga SIGHUP tidak dikirim ke pekerjaan " +"jika\n" +" \tshell menerima sebuah SIGHUP\n" +" -r\thapus hanya pekerjaan yang sedang berjalan\n" +" \n" +" Status Keluar:\n" +" Mengembalikan sukses kecuali ada sebuah opsi tidak valid atau JOBSPEC " +"diberikan." + +#: builtins.c:894 +msgid "" +"Send a signal to a job.\n" +" \n" +" Send the processes identified by PID or JOBSPEC the signal named by\n" +" SIGSPEC or SIGNUM. If neither SIGSPEC nor SIGNUM is present, then\n" +" SIGTERM is assumed.\n" +" \n" +" Options:\n" +" -s sig\tSIG is a signal name\n" +" -n sig\tSIG is a signal number\n" +" -l\tlist the signal names; if arguments follow `-l' they are\n" +" \tassumed to be signal numbers for which names should be listed\n" +" \n" +" Kill is a shell builtin for two reasons: it allows job IDs to be used\n" +" instead of process IDs, and allows processes to be killed if the limit\n" +" on processes that you can create is reached.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or an error occurs." +msgstr "" +"Mengirim sebuah sinyal ke sebuah pekerjaan.\n" +" \n" +" Mengirim ke sebuah proses yang diidentifikasikan oleh PID atau JOBSPEC " +"dengan sinyal yang diberi name\n" +" oleh SIGSPEC atau SIGNUM. Jika SIGSPEC atau SIGNUM tidak ada, maka\n" +" SIGTERM diasumsikan.\n" +" \n" +" Opsi:\n" +" -s sig\tSIG adalah sebuah nama sinyal\n" +" -n sig\tSIG adalah sebuah nomor sinyal\n" +" -l\tdaftar dari nama sinyal; jika argumen diikuti dengan `-l' mereka " +"mengasumsikan ke\n" +" \tnomor sinyal yang namanya ditampilkan.\n" +" Kill adalah sebuah shell builtin untuk dua alasan; ini membolehkan " +"sebuah jobs ID untuk digunakan dari pada\n" +" proses IDs, dan memperbolehkan proses untuk dimatikan jika batas\n" +" dari proses yang dibuat tercapai.\n" +" \n" +" Status Keluar:\n" +" Mengembalikan sukses kecuali sebuah opsi tidak valid diberikan atau " +"sebuah error terjadi." + +#: builtins.c:917 +msgid "" +"Evaluate arithmetic expressions.\n" +" \n" +" Evaluate each ARG as an arithmetic expression. Evaluation is done in\n" +" fixed-width integers with no check for overflow, though division by 0\n" +" is trapped and flagged as an error. The following list of operators is\n" +" grouped into levels of equal-precedence operators. The levels are " +"listed\n" +" in order of decreasing precedence.\n" +" \n" +" \tid++, id--\tvariable post-increment, post-decrement\n" +" \t++id, --id\tvariable pre-increment, pre-decrement\n" +" \t-, +\t\tunary minus, plus\n" +" \t!, ~\t\tlogical and bitwise negation\n" +" \t**\t\texponentiation\n" +" \t*, /, %\t\tmultiplication, division, remainder\n" +" \t+, -\t\taddition, subtraction\n" +" \t<<, >>\t\tleft and right bitwise shifts\n" +" \t<=, >=, <, >\tcomparison\n" +" \t==, !=\t\tequality, inequality\n" +" \t&\t\tbitwise AND\n" +" \t^\t\tbitwise XOR\n" +" \t|\t\tbitwise OR\n" +" \t&&\t\tlogical AND\n" +" \t||\t\tlogical OR\n" +" \texpr ? expr : expr\n" +" \t\t\tconditional operator\n" +" \t=, *=, /=, %=,\n" +" \t+=, -=, <<=, >>=,\n" +" \t&=, ^=, |=\tassignment\n" +" \n" +" Shell variables are allowed as operands. The name of the variable\n" +" is replaced by its value (coerced to a fixed-width integer) within\n" +" an expression. The variable need not have its integer attribute\n" +" turned on to be used in an expression.\n" +" \n" +" Operators are evaluated in order of precedence. Sub-expressions in\n" +" parentheses are evaluated first and may override the precedence\n" +" rules above.\n" +" \n" +" Exit Status:\n" +" If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise.." +msgstr "" +"Evaluasi ekspresi arithmetic.\n" +" \n" +" Setiap ARG adalah sebuah ekspresi arithmetic yang dievaluasi. Evaluasi\n" +" dilakukan dalam fixed-width integers dengan tidak ada pemeriksaan untuk " +"overflow, walaupun\n" +" pembagian dengan 0 ditangkap dan ditandai sebagai error. Berikut\n" +" daftar dari operator yang dikelompokkan dalam tingkat tingkat dari equal " +"precedence operators.\n" +" Tingkat yang ditampilkan dalam urutan dari decreasing precedence.\n" +" \n" +" \tid++, id--\tvariabel post-increment, post-decrement\n" +" \t++id, --id\tvariabel pre-increment, pre-decrement\n" +" \t-, +\t\tunary minus, plus\n" +" \t!, ~\t\tlogical dan bitwise negasi\n" +" \t**\t\texponential\n" +" \t*, /, %\t\tmultiplication, division, remainder\n" +" \t+. -\t\taddition, subtraction\n" +" \t<<, >>\t\tleft and right bitwise shift\n" +" \t<=. >=, <, >\tperbandingan\n" +" \t==, !=\t\tpersamaan, dan ketidak samaan\n" +" \t&\t\tbitwise AND\n" +" \t^\t\tbitwise XOR\n" +" \t|\t\tbitwise OR\n" +" \t&&\t\tlogical AND\n" +" \t||\t\tlogical OR\n" +" \texpr ? expr : expr\n" +" \t\t\toperator kondisional\n" +" \t=, *=, /=, %=,\n" +" \t+=. -=. <<=, >>=,\n" +" \t&=, ^=, |=\tassignment\n" +" \n" +" Variabel shell dibolehkan sebagai operand. Nama dari variabel\n" +" digantikan oleh nilainya (coerced ke fixed-width integer) dalam\n" +" sebuah expresi. Variabel tidak butuh atribut integer\n" +" dinyalakan untuk digunakan dalam sebuah expresi.\n" +" \n" +" Operator yang dievaluasi dalam urutan precedence. Sub-expresi dalam\n" +" parentheses dievaluasi terlebih dahulu dan boleh dioverride precedence\n" +" aturan diatasnya.\n" +" \n" +" Status Keluar:\n" +" Jika ARG terakhir dievaluasi ke 0, membiarkan kembali ke 1; 0 " +"dikembalikan Jika tidak." + +#: builtins.c:962 +#, fuzzy +msgid "" +"Read a line from the standard input and split it into fields.\n" +" \n" +" Reads a single line from the standard input, or from file descriptor FD\n" +" if the -u option is supplied. The line is split into fields as with " +"word\n" +" splitting, and the first word is assigned to the first NAME, the second\n" +" word to the second NAME, and so on, with any leftover words assigned to\n" +" the last NAME. Only the characters found in $IFS are recognized as " +"word\n" +" delimiters.\n" +" \n" +" If no NAMEs are supplied, the line read is stored in the REPLY " +"variable.\n" +" \n" +" Options:\n" +" -a array\tassign the words read to sequential indices of the array\n" +" \t\tvariable ARRAY, starting at zero\n" +" -d delim\tcontinue until the first character of DELIM is read, rather\n" +" \t\tthan newline\n" +" -e\t\tuse Readline to obtain the line in an interactive shell\n" +" -i text\tUse TEXT as the initial text for Readline\n" +" -n nchars\treturn after reading NCHARS characters rather than waiting\n" +" \t\tfor a newline\n" +" -p prompt\toutput the string PROMPT without a trailing newline before\n" +" \t\tattempting to read\n" +" -r\t\tdo not allow backslashes to escape any characters\n" +" -s\t\tdo not echo input coming from a terminal\n" +" -t timeout\ttime out and return failure if a complete line of input " +"is\n" +" \t\tnot read withint TIMEOUT seconds. The value of the TMOUT\n" +" \t\tvariable is the default timeout. TIMEOUT may be a\n" +" \t\tfractional number. If TIMEOUT is 0, read returns success only\n" +" \t\tif input is available on the specified file descriptor. The\n" +" \t\texit status is greater than 128 if the timeout is exceeded\n" +" -u fd\t\tread from file descriptor FD instead of the standard input\n" +" \n" +" Exit Status:\n" +" The return code is zero, unless end-of-file is encountered, read times " +"out,\n" +" or an invalid file descriptor is supplied as the argument to -u." +msgstr "" +"Membaca sebuah baris dari standar masukan dan membaginya dalam bagian " +"bagian.\n" +" \n" +" Satu baris dibaca dari masukan standar, atau dari berkas deskripsi FD " +"jika\n" +" opsi -u diberikan, dan kata pertama diberikan ke NAMA pertama,\n" +" kata kedua ke NAMA kedua, dan seterusnya. dengan kata yang tersisa " +"ditempatkan\n" +" ke NAMA terakhir. Hanya karakter yang ditemukan dalam $IFS yang dikenal " +"sebagai pembatas\n" +" kata.\n" +" \n" +" Jika tidak ada NAMA yang diberikan, baris yang dibaca disimpan dalam " +"variabel BALASAN\n" +" \n" +" Opsi:\n" +" -a array\tditempatkan kata dibaca secara berurutan indice dari array\n" +" \t\tvariabel ARRAY, dimulai dari nol\n" +" -d delim\tdilanjutkan sampai karakter pertama dari PEMBATAS dibaca, " +"daripada\n" +" \t\tbaris baru\n" +" -e\t\tgunakan Readline untuk memperoleh baris dalam sebuah shell " +"interaktif\n" +" -i text\tGunakan TEXT sebagai text inisial untuk Readline\n" +" -n nchars\tkembali setelah membaca NCHARS characters daripada " +"menunggu\n" +" \t\tuntuk sebuah baris baru\n" +" -p prompt\tkeluarkan string PROMPT tanpa tambahan baris baru sebelum\n" +" \t\tmencoba untuk membaca\n" +" -r\t\tjangan ijinkan backslash untuk mengeluarkan karakter apapun\n" +" -s\t\tjangan echo masukan yang datang dari sebuah terminal\n" +" -t menyebabkan pembacaan untuk time out dan kembali gagal jika sebuah " +"baris lengkap\n" +" \t\tdari masukan tidak dibaca dalam TIMEOUT detik. Jika variabel TMOUT " +"terset,\n" +" \t\tnilai ini akan menjadi nilai default timeout. TIMEOUT mungkin " +"sebuah\n" +" \t\tbilangan fraksional. Status keluaran lebih besar dari 128 jika\n" +" \t\ttimeout dilewati\n" +" -u fd\t\tbaca dari berkas deskripsi FD daripada standar masukan\n" +" \n" +" Status Keluar:\n" +" Kode kembali adalah nol, kecuali akhir-dari-berkas ditemui, baca " +"kehabisan waktu,\n" +" atau sebuah berkas deskripsi disupply sebagai sebuah argumen ke opsi -u." + +#: builtins.c:1002 +msgid "" +"Return from a shell function.\n" +" \n" +" Causes a function or sourced script to exit with the return value\n" +" specified by N. If N is omitted, the return status is that of the\n" +" last command executed within the function or script.\n" +" \n" +" Exit Status:\n" +" Returns N, or failure if the shell is not executing a function or script." +msgstr "" +"Kembali dari sebuah fungsi shell.\n" +" \n" +" Menyebabkan sebuah fungsi atau sebuah script untuk keluar dengan nilai " +"kembali\n" +" yang dispesifikasikan oleh N. Jika N diabaikan, status kembalian adalah\n" +" perintah terakhir yang dijalankan dalam fungsi atau script.\n" +" \n" +" Status Keluar:\n" +" Mengembalikan N, atau gagal jika shell tidak menjalan sebuah fungsi atau " +"script." + +#: builtins.c:1015 +msgid "" +"Set or unset values of shell options and positional parameters.\n" +" \n" +" Change the value of shell attributes and positional parameters, or\n" +" display the names and values of shell variables.\n" +" \n" +" Options:\n" +" -a Mark variables which are modified or created for export.\n" +" -b Notify of job termination immediately.\n" +" -e Exit immediately if a command exits with a non-zero status.\n" +" -f Disable file name generation (globbing).\n" +" -h Remember the location of commands as they are looked up.\n" +" -k All assignment arguments are placed in the environment for a\n" +" command, not just those that precede the command name.\n" +" -m Job control is enabled.\n" +" -n Read commands but do not execute them.\n" +" -o option-name\n" +" Set the variable corresponding to option-name:\n" +" allexport same as -a\n" +" braceexpand same as -B\n" +" emacs use an emacs-style line editing interface\n" +" errexit same as -e\n" +" errtrace same as -E\n" +" functrace same as -T\n" +" hashall same as -h\n" +" histexpand same as -H\n" +" history enable command history\n" +" ignoreeof the shell will not exit upon reading EOF\n" +" interactive-comments\n" +" allow comments to appear in interactive commands\n" +" keyword same as -k\n" +" monitor same as -m\n" +" noclobber same as -C\n" +" noexec same as -n\n" +" noglob same as -f\n" +" nolog currently accepted but ignored\n" +" notify same as -b\n" +" nounset same as -u\n" +" onecmd same as -t\n" +" physical same as -P\n" +" pipefail the return value of a pipeline is the status of\n" +" the last command to exit with a non-zero status,\n" +" or zero if no command exited with a non-zero " +"status\n" +" posix change the behavior of bash where the default\n" +" operation differs from the Posix standard to\n" +" match the standard\n" +" privileged same as -p\n" +" verbose same as -v\n" +" vi use a vi-style line editing interface\n" +" xtrace same as -x\n" +" -p Turned on whenever the real and effective user ids do not match.\n" +" Disables processing of the $ENV file and importing of shell\n" +" functions. Turning this option off causes the effective uid and\n" +" gid to be set to the real uid and gid.\n" +" -t Exit after reading and executing one command.\n" +" -u Treat unset variables as an error when substituting.\n" +" -v Print shell input lines as they are read.\n" +" -x Print commands and their arguments as they are executed.\n" +" -B the shell will perform brace expansion\n" +" -C If set, disallow existing regular files to be overwritten\n" +" by redirection of output.\n" +" -E If set, the ERR trap is inherited by shell functions.\n" +" -H Enable ! style history substitution. This flag is on\n" +" by default when the shell is interactive.\n" +" -P If set, do not follow symbolic links when executing commands\n" +" such as cd which change the current directory.\n" +" -T If set, the DEBUG trap is inherited by shell functions.\n" +" - Assign any remaining arguments to the positional parameters.\n" +" The -x and -v options are turned off.\n" +" \n" +" Using + rather than - causes these flags to be turned off. The\n" +" flags can also be used upon invocation of the shell. The current\n" +" set of flags may be found in $-. The remaining n ARGs are positional\n" +" parameters and are assigned, in order, to $1, $2, .. $n. If no\n" +" ARGs are given, all shell variables are printed.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given." +msgstr "" +"Set atau unset nilai dari opsi shell dan parameter posisi.\n" +" \n" +" Ubah nilai dari atribut shell dan parameter posisi, atau\n" +" tampilkan nama dan nilai dari variabel shell.\n" +" \n" +" Opsi:\n" +" -a Tandai variabel yang telah termodifikasi atau dibuat untuk " +"export.\n" +" -b Notifikasi penyelesaian pekerjaan secara langsung.\n" +" -e Keluar langsung jika sebuah perintah keluar dengan status tidak " +"nol.\n" +" -f Menonaktifkan pembuatan nama berkas (globbing).\n" +" -h Ingat lokasi dari perintah sebagai mereka dicari.\n" +" -k Semua argumen assignment ditempatkan dalam environment untuk " +"sebuah\n" +" perintah, tidak hanya mengawali nama perintah.\n" +" -m Pengendali pekerjaan diaktifkan.\n" +" -n Baca perintah tapi jangan menjalankan perintah tersebut.\n" +" -o nama-opsi\n" +" Set variabel menurut nama-opsi:\n" +" allexport sama seperti -a\n" +" braceexpand sama seperti -B\n" +" emacs gunakan gaya emacs dalam line editing interface\n" +" errexit sama seperti -e\n" +" errtrace sama seperti -E\n" +" functrace sama seperti -T\n" +" hashall sama seperti -h\n" +" histexpand sama seperti -H\n" +" history aktifkan sejarah perintah\n" +" ignoreeof shell tidak akan keluar ketika membaca EOF\n" +" interactive-comments\n" +" membolehkan komentar ada dalam perintah " +"interaktif\n" +" keyword sama seperti -k\n" +" monitor sama seperti -m\n" +" noclobber sama seperti -C\n" +" noexec sama seperti -n\n" +" noglob sama seperti -f\n" +" nolog saat ini diterima tetapi diabaikan\n" +" notify sama seperti -b\n" +" nounset sama seperti -u\n" +" onecmd sama seperti -t\n" +" physical sama seperti -P\n" +" pipefail nilai kembalian dari sebuah pipelie adalah status " +"dari\n" +" perintah terakhir yang keluar dengan sebuah status " +"tidak nol,\n" +" atau nol jika tidak ada perintah yang keluar " +"dengan status tidak nol\n" +" posix ubah perilaku dari bash dimana operasi\n" +" default berbeda dari 1003.2 standar ke\n" +" sesuai dengan standar\n" +" privileged sama seperti -p\n" +" verbose sama seperti -v\n" +" vi gunakan sebuah gaya vi dalam line editing " +"interface.\n" +" xtrace sama seperti -x\n" +" -p Aktif ketika real dan efektif id pengguna tidak cocok.\n" +" Menonaktifkan pemrosesan dari berkas $ENV dan mengimpor dari " +"fungsi\n" +" shell. Mengubah opsi ini off menyebabkan efektif uid dan\n" +" gid untuk diset ke real uid dan gid.\n" +" -t Keluar setelah membaca dan menjalankan satu perintah.\n" +" -u Perlakukan variabel yang tidak diset sebagai error ketika " +"mensubstitusi.\n" +" -v Tampilkan baris masukan shell seperti ketika dibaca.\n" +" -x Tampilkan perintah dan argumennya ketika menjalankan perintah " +"tersebut.\n" +" -B Shell akan melakukan expansi brace\n" +" -C Jika diset, melarang berkas regular yang telah ada untuk " +"ditulis\n" +" oleh keluaran redirection.\n" +" -E Jika diset, trap ERR diturunkan oleh fungsi shell.\n" +" -H Mengaktifkan ! gaya pengubahan sejarah. Tanda ini aktif\n" +" secara default ketika shell interaktif.\n" +" -P Jika diset, jangan ikuti symbolic link ketika menjalankan " +"perintah\n" +" seperti cd ketika mengubah direktori kerja sekarang.\n" +" -T Jika diset, Debug trap diturunkan oleh fungsi shell.\n" +" - Assign argumen yang tersisa ke parameter posisi.\n" +" Opsi -x dan -v akan dimatikan.\n" +" \n" +" Menggunakan + daripada - akan menyebabkan tanda untuk dimatikan. Tanda\n" +" juga bisa digunakan dalam pemanggilan shell. Tanda yang terset\n" +" saat ini dapat ditemukan dalam $-. ARG n yang tersisa adalah parameter\n" +" posisi dan ditempatkan, dalam urutan, ke $1, $2, ... $n. Jika tidak ada\n" +" ARG yang diberikan, semua shell variabel ditampilkan.\n" +" \n" +" Status Keluar:\n" +" Mengembalikan sukses kecuali sebuah opsi tidak valid diberikan." + +#: builtins.c:1097 +msgid "" +"Unset values and attributes of shell variables and functions.\n" +" \n" +" For each NAME, remove the corresponding variable or function.\n" +" \n" +" Options:\n" +" -f\ttreat each NAME as a shell function\n" +" -v\ttreat each NAME as a shell variable\n" +" \n" +" Without options, unset first tries to unset a variable, and if that " +"fails,\n" +" tries to unset a function.\n" +" \n" +" Some variables cannot be unset; also see `readonly'.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or a NAME is read-only." +msgstr "" +"Unset nilai dan atribut dari variabel shell dan fungsi.\n" +" \n" +" Untuk setiap NAMA, hapus variabel atau fungsi yang berhubungan.\n" +" \n" +" Opsi:\n" +" -f\tperlakukan setiap NAMA sebagai sebuah fungsi shell\n" +" -v\tperlakukan setiap NAMA sebagai sebuah variabel shell\n" +" \n" +" Tanpa opsi, unset pertama mencoba untuk menunset sebuah variabel, dan " +"jika itu gagal,\n" +" mencoba untuk menunset sebuah fungsi.\n" +" \n" +" Beberapa variabel tidak dapat diunset; Lihat juga `readonly'.\n" +" \n" +" Status Keluar:\n" +" Mengembalikan sukses kecuali sebuah opsi tidak valid diberikan atau " +"sebuah NAMA adalah baca-saja." + +#: builtins.c:1117 +msgid "" +"Set export attribute for shell variables.\n" +" \n" +" Marks each NAME for automatic export to the environment of subsequently\n" +" executed commands. If VALUE is supplied, assign VALUE before " +"exporting.\n" +" \n" +" Options:\n" +" -f\trefer to shell functions\n" +" -n\tremove the export property from each NAME\n" +" -p\tdisplay a list of all exported variables and functions\n" +" \n" +" An argument of `--' disables further option processing.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or NAME is invalid." +msgstr "" +"Set export atribut untuk variabel shell.\n" +" \n" +" Tandai setiap NAMA untuk otomatis export ke environment setelah\n" +" perintah dijalankan. Jika NILAI diberikan, berikan NILAI sebelum " +"export.\n" +" \n" +" Opsi:\n" +" -f\tmerujuk ke fungsi shell\n" +" -n\thapus properti export dari setiap NAMA\n" +" -p\ttampilkan daftar dari seluruh variabel dan fungsi yang terexport\n" +" \n" +" Sebuah argumen dari `--' menonaktifkan pemrosesan opsi selanjutnya.\n" +" \n" +" Status Keluar:\n" +" Mengembalikan sukses kecuali sebuah opsi tidak valid diberikan atau NAMA " +"tidak valid." + +#: builtins.c:1136 +msgid "" +"Mark shell variables as unchangeable.\n" +" \n" +" Mark each NAME as read-only; the values of these NAMEs may not be\n" +" changed by subsequent assignment. If VALUE is supplied, assign VALUE\n" +" before marking as read-only.\n" +" \n" +" Options:\n" +" -a\trefer to indexed array variables\n" +" -A\trefer to associative array variables\n" +" -f\trefer to shell functions\n" +" -p\tdisplay a list of all readonly variables and functions\n" +" \n" +" An argument of `--' disables further option processing.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or NAME is invalid." +msgstr "" +"Tandai variabel shell sebagai tidak bisa diubah.\n" +" \n" +" Tandai setiap NAMA sebagai baca-saja; nilai dari NAMA ini tidak boleh\n" +" diubah untuk penggunaan selanjutnya. Jika NILAI diberikan, berikan " +"NILAI\n" +" sebelum menandainya sebagai baca-saja.\n" +" \n" +" Opsi:\n" +" -a\tmerujuk ke aray index variabel\n" +" -A\tmerujuk ke variabel aray assosiasi\n" +" -f\tmerujuk ke fungsi shell\n" +" -p\tmenampilkan sebuah daftar dari seluruh variabel dan fungsi baca-" +"saja\n" +" \n" +" Sebuah argumen dari `--' menonaktifkan pemrosesan opsi selanjutnya.\n" +" \n" +" Status Keluar:\n" +" Mengembalikan sukses kecual sebuah opsi tidak valid diberikan atau NAMA " +"tidak valid." + +#: builtins.c:1157 +msgid "" +"Shift positional parameters.\n" +" \n" +" Rename the positional parameters $N+1,$N+2 ... to $1,$2 ... If N is\n" +" not given, it is assumed to be 1.\n" +" \n" +" Exit Status:\n" +" Returns success unless N is negative or greater than $#." +msgstr "" +"Geser parameter posisi.\n" +" \n" +" Ubah nama parameter posisi $N+1,$N+2 ... ke $1,$2 ... Jika N\n" +" tidak diberikan, N diasumsikan 1.\n" +" \n" +" Status Keluar:\n" +" Mengembalikan sukses kecuali N adalah negatif atau lebih besar dari $#." + +#: builtins.c:1169 builtins.c:1184 +msgid "" +"Execute commands from a file in the current shell.\n" +" \n" +" Read and execute commands from FILENAME in the current shell. The\n" +" entries in $PATH are used to find the directory containing FILENAME.\n" +" If any ARGUMENTS are supplied, they become the positional parameters\n" +" when FILENAME is executed.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed in FILENAME; fails if\n" +" FILENAME cannot be read." +msgstr "" +"Jalankan perintah dari sebuah berkas dalam shell sekarang.\n" +" \n" +" Baca dan jalankan perintah dari FILENAME dan kembali. Nama jalur dalam\n" +" $PATH digunakan untuk mencari direktori yang berisi NAMABERKAS. Jika " +"salah satu\n" +" dari ARGUMENTS diberikan, mereka menjadi parameter posisi ketika\n" +" NAMABERKAS dijalankan.\n" +" \n" +" Status Keluar:\n" +" Mengembalikan status dari perintah terakhir yang dijalankan dalam NAMA " +"BERKAS; gagal jika\n" +" NAMA BERKAS tidak dapat dibaca." + +#: builtins.c:1200 +msgid "" +"Suspend shell execution.\n" +" \n" +" Suspend the execution of this shell until it receives a SIGCONT signal.\n" +" Unless forced, login shells cannot be suspended.\n" +" \n" +" Options:\n" +" -f\tforce the suspend, even if the shell is a login shell\n" +" \n" +" Exit Status:\n" +" Returns success unless job control is not enabled or an error occurs." +msgstr "" +"Suspend eksekusi shell.\n" +" \n" +" Suspend eksekusi dari shell ini sampai menerima sebuah sinyal SIGCONT.\n" +" Kecuali dipaksa, login shell tidak dapat disuspend.\n" +" \n" +" Opsi:\n" +" -f\tpaksa untuk suspend, walaupun jika shell adalah sebuah login " +"shell\n" +" \n" +" Status Keluar:\n" +" Mengembalikan sukses kecuali pengontrol pekerjaan tidak aktif atau " +"sebuah error terjadi." + +#: builtins.c:1216 +msgid "" +"Evaluate conditional expression.\n" +" \n" +" Exits with a status of 0 (true) or 1 (false) depending on\n" +" the evaluation of EXPR. Expressions may be unary or binary. Unary\n" +" expressions are often used to examine the status of a file. There\n" +" are string operators as well, and numeric comparison operators.\n" +" \n" +" File operators:\n" +" \n" +" -a FILE True if file exists.\n" +" -b FILE True if file is block special.\n" +" -c FILE True if file is character special.\n" +" -d FILE True if file is a directory.\n" +" -e FILE True if file exists.\n" +" -f FILE True if file exists and is a regular file.\n" +" -g FILE True if file is set-group-id.\n" +" -h FILE True if file is a symbolic link.\n" +" -L FILE True if file is a symbolic link.\n" +" -k FILE True if file has its `sticky' bit set.\n" +" -p FILE True if file is a named pipe.\n" +" -r FILE True if file is readable by you.\n" +" -s FILE True if file exists and is not empty.\n" +" -S FILE True if file is a socket.\n" +" -t FD True if FD is opened on a terminal.\n" +" -u FILE True if the file is set-user-id.\n" +" -w FILE True if the file is writable by you.\n" +" -x FILE True if the file is executable by you.\n" +" -O FILE True if the file is effectively owned by you.\n" +" -G FILE True if the file is effectively owned by your group.\n" +" -N FILE True if the file has been modified since it was last " +"read.\n" +" \n" +" FILE1 -nt FILE2 True if file1 is newer than file2 (according to\n" +" modification date).\n" +" \n" +" FILE1 -ot FILE2 True if file1 is older than file2.\n" +" \n" +" FILE1 -ef FILE2 True if file1 is a hard link to file2.\n" +" \n" +" String operators:\n" +" \n" +" -z STRING True if string is empty.\n" +" \n" +" -n STRING\n" +" STRING True if string is not empty.\n" +" \n" +" STRING1 = STRING2\n" +" True if the strings are equal.\n" +" STRING1 != STRING2\n" +" True if the strings are not equal.\n" +" STRING1 < STRING2\n" +" True if STRING1 sorts before STRING2 " +"lexicographically.\n" +" STRING1 > STRING2\n" +" True if STRING1 sorts after STRING2 lexicographically.\n" +" \n" +" Other operators:\n" +" \n" +" -o OPTION True if the shell option OPTION is enabled.\n" +" ! EXPR True if expr is false.\n" +" EXPR1 -a EXPR2 True if both expr1 AND expr2 are true.\n" +" EXPR1 -o EXPR2 True if either expr1 OR expr2 is true.\n" +" \n" +" arg1 OP arg2 Arithmetic tests. OP is one of -eq, -ne,\n" +" -lt, -le, -gt, or -ge.\n" +" \n" +" Arithmetic binary operators return true if ARG1 is equal, not-equal,\n" +" less-than, less-than-or-equal, greater-than, or greater-than-or-equal\n" +" than ARG2.\n" +" \n" +" Exit Status:\n" +" Returns success if EXPR evaluates to true; fails if EXPR evaluates to\n" +" false or an invalid argument is given." +msgstr "" +"Evaluasi ekspresi kondisi.\n" +" \n" +" Keluar dengan sebuah status dari 0 (benar) atau 1 (salah) tergantung " +"dari\n" +" evaluasi dari EXPR. Expresi dapat berupa unary atau binary. Unary\n" +" expresi sering digunakan untuk memeriksa status dari sebuah berkas.\n" +" Terdapat operator string juga, dan operator pembanding numerik.\n" +" \n" +" Operator berkas:\n" +" \n" +" -a BERKAS Benar jika berkas ada.\n" +" -b BERKAS Benar jika berkas berupa blok spesial.\n" +" -c BERKAS Benar jika berkas adalah karakter spesial.\n" +" -d BERKAS Benar jika berkas adalah sebuah direktori.\n" +" -e BERKAS Benar jika berkas ada.\n" +" -f BERKAS Benar jika berkas ada dan berupa sebuah berkas " +"regular.\n" +" -g BERKAS Benar jika berkas memiliki set-grup-id.\n" +" -h BERKAS Benar jika berkas adalah symbolic link.\n" +" -L BERKAS Benar jika berkas adalah symbolic link.\n" +" -k BERKAS Benar jika berkas memiliki `sticky' bit diset.\n" +" -p BERKAS Benar jika berkas adalah named pipe.\n" +" -r BERKAS Benar jika berkas dapat dibaca oleh anda.\n" +" -s BERKAS Benar jika berkas ada dan tidak kosong.\n" +" -S BERKAS Benar jika berkas adalah socket.\n" +" -t FD Benar jika FD dibuka dalam sebuah terminal.\n" +" -u BERKAS Benar jika berkas memiliki set-user-id.\n" +" -w BERKAS Benar jika berkas dapat ditulis oleh anda.\n" +" -x BERKAS Benar jika berkas dapat dijalankan oleh anda.\n" +" -O BERKAS Benar jika berkas secara efektif dimiliki oleh " +"anda.\n" +" -G BERKAS Benar jika berkas secara efektif dimiliki oleh grup " +"anda.\n" +" -N BERKAS Benar jika berkas telah dimodifikasi sejak terakhir " +"ini dibaca.\n" +" \n" +" FILE1 -nt FILE2 Benar jika file1 lebih baru dari file2 (menurut \n" +" tanggal modifikasi).\n" +" \n" +" FILE1 -ot FILE2 Benar jika file1 lebih lama dari file2.\n" +" \n" +" FILE1 -ef FILE2 Benar jika file1 adalah hard link ke file2.\n" +" \n" +" String operators:\n" +" \n" +" -z STRING Benar jika string kosong.\n" +" \n" +" -n STRING\n" +" STRING Benar jika string tidak kosong.\n" +" \n" +" STRING1 = STRING2\n" +" Benar jika string sama.\n" +" STRING1 != STRING2\n" +" Benar jika string tidak sama.\n" +" STRING1 < STRING2\n" +" Benar jika STRING1 sorts sebelum STRING2 " +"lexicographically.\n" +" STRING1 > STRING2\n" +" Benar jika STRING1 sorts sesudah STRING2 " +"lexicographically.\n" +" \n" +" Operator lain:\n" +" \n" +" -o Opsi Benar jika opsi shell OPSI diaktifkan.\n" +" ! EXPR Benar jika expr salah.\n" +" EXPR1 -a EXPR2 Benar jika kedua expr1 dan expr2 adalah benar.\n" +" EXPR1 -o EXPR2 Benar jika salah satu dari expr1 atau expr2 adalah " +"benar.\n" +" \n" +" arg1 OP arg2 Pemeriksaan arithmetik. OP adalah salah satu dari -" +"eq, -ne,\n" +" -lt, -le, -gt, atau -ge.\n" +" \n" +" Arithmetic binary operator mengembalikan benar jika ARG1 adalah " +"equal, not-equal,\n" +" less-than, less-than-or-equal, greater-than, atau greater-than-or-" +"equal\n" +" than ARG2.\n" +" \n" +" Status Keluar:\n" +" Mengembalikan sukses jika EKSPR mengevaluasi ke benar; gagal jika " +"EXPR mengevaluasi ke\n" +" salah atau sebuah argumen tidak valid diberikan." + +#: builtins.c:1292 +msgid "" +"Evaluate conditional expression.\n" +" \n" +" This is a synonym for the \"test\" builtin, but the last argument must\n" +" be a literal `]', to match the opening `['." +msgstr "" +"Evaluasi expresi kondisional.\n" +" \n" +" Ini sinonim untuk \"test\" builtin, tetapi argumen terakhir\n" +" harus berupa sebuah literal `]', untuk mencocokan dengan pembukaan `['." + +#: builtins.c:1301 +msgid "" +"Display process times.\n" +" \n" +" Prints the accumulated user and system times for the shell and all of " +"its\n" +" child processes.\n" +" \n" +" Exit Status:\n" +" Always succeeds." +msgstr "" +"Tampilkan waktu pemrosesan.\n" +" \n" +" Tampilkan akumulasi waktu penggunaan pengguna dan sistem untuk shell dan " +"seluruh proses dari\n" +" anaknya.\n" +" \n" +" Status Keluar:\n" +" Selalu sukses." + +#: builtins.c:1313 +msgid "" +"Trap signals and other events.\n" +" \n" +" Defines and activates handlers to be run when the shell receives " +"signals\n" +" or other conditions.\n" +" \n" +" ARG is a command to be read and executed when the shell receives the\n" +" signal(s) SIGNAL_SPEC. If ARG is absent (and a single SIGNAL_SPEC\n" +" is supplied) or `-', each specified signal is reset to its original\n" +" value. If ARG is the null string each SIGNAL_SPEC is ignored by the\n" +" shell and by the commands it invokes.\n" +" \n" +" If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell. " +"If\n" +" a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command.\n" +" \n" +" If no arguments are supplied, trap prints the list of commands " +"associated\n" +" with each signal.\n" +" \n" +" Options:\n" +" -l\tprint a list of signal names and their corresponding numbers\n" +" -p\tdisplay the trap commands associated with each SIGNAL_SPEC\n" +" \n" +" Each SIGNAL_SPEC is either a signal name in or a signal " +"number.\n" +" Signal names are case insensitive and the SIG prefix is optional. A\n" +" signal may be sent to the shell with \"kill -signal $$\".\n" +" \n" +" Exit Status:\n" +" Returns success unless a SIGSPEC is invalid or an invalid option is " +"given." +msgstr "" +"Tangkap sinyal dan even lainnya.\n" +" \n" +" Definisikan dan aktivasi handlers yang harus dijalankan ketika shell " +"menerima sinyal\n" +" atau kondisi lain.\n" +" \n" +" ARG perintah dibaca dan dijalankan ketika shell menerima\n" +" sinyal SIGNAL_SPEC. Jika ARG tidak ada (dan sebuah sinyal SIGNAL_SPEC\n" +" diberikan) atau `-', setiap sinyal yang dispesifikasikan akan direset " +"kenilai\n" +" original. Jika ARG adalah string kosong untuk setiap SIGNAL_SPEC " +"diabaikan oleh\n" +" shell dan oleh perintah yang dipanggil.\n" +" \n" +" Jika sebuah SIGNAL_SPEC adalah EXIT(0) perintah ARG dijalankan pada saat " +"keluar dari shell. Jika\n" +" sebuah SIGNAL_SPEC adalah DEBUG, ARG dijalankan setiap perintah " +"sederhana.\n" +" \n" +" Jika tidak ada argumen yang diberikan, trap menampilkan daftar dari " +"perintah yang berasosiasi\n" +" dengan setiap sinyal.\n" +" \n" +" Opsi:\n" +" -l\tmenampilkan sebuah daftar dari nama sinyal dan nomor yang " +"berhubungan\n" +" -p\tmenampilkan perintah trap yang berasosiasi dengan setiap " +"SIGNAL_SPEC\n" +" \n" +" Setiap SIGNAL_SPEC yang ada di nama sinyal dalam atau nomor " +"sinyal. Nama sinyal\n" +" adalah case insensitive dan SIG prefix adalah opsional. sebuah\n" +" sinyal dapat dikirim ke sebuah shell dengan \"kill -signal $$\".\n" +" \n" +" Status Keluar:\n" +" Mengembalikan sukses kecuali sebuah SIGSPEC adalah tidak valid atau " +"sebuah opsi tidak valid diberikan." + +#: builtins.c:1345 +msgid "" +"Display information about command type.\n" +" \n" +" For each NAME, indicate how it would be interpreted if used as a\n" +" command name.\n" +" \n" +" Options:\n" +" -a\tdisplay all locations containing an executable named NAME;\n" +" \tincludes aliases, builtins, and functions, if and only if\n" +" \tthe `-p' option is not also used\n" +" -f\tsuppress shell function lookup\n" +" -P\tforce a PATH search for each NAME, even if it is an alias,\n" +" \tbuiltin, or function, and returns the name of the disk file\n" +" \tthat would be executed\n" +" -p\treturns either the name of the disk file that would be executed,\n" +" \tor nothing if `type -t NAME' would not return `file'.\n" +" -t\toutput a single word which is one of `alias', `keyword',\n" +" \t`function', `builtin', `file' or `', if NAME is an alias, shell\n" +" \treserved word, shell function, shell builtin, disk file, or not\n" +" \tfound, respectively\n" +" \n" +" Arguments:\n" +" NAME\tCommand name to be interpreted.\n" +" \n" +" Exit Status:\n" +" Returns success if all of the NAMEs are found; fails if any are not " +"found." +msgstr "" +"Tampilkan informasi tentang perintah yang diketik.\n" +" \n" +" Untuk setiap NAMA, indikasikan bagaimana ini akan diinterpretasikan jika " +"digunakan sebagai sebuah\n" +" nama perintah.\n" +" \n" +" Opsi:\n" +" -a\tmenampilkan seluruh lokasi yang berisi sebuah nama NAMA yang dapat " +"dijalankan;\n" +" \tmeliputi aliases, builtins, dan fungsi, jika dan hanya jika\n" +" \topsi `-p' juga sedang tidak digunakan\n" +" -f\tmenekan pencarian fungsi shell\n" +" -P\tmemaksa sebuah JALUR pencarian untuk setiap NAMA, bahkan jika ini " +"adalah sebuah alias,\n" +" \tbuiltin, atau fungsi, dan mengembalikan nama dari berkas disk\n" +" \tyang akan dijalankan\n" +" -p\tmengembalikan baik nama dari berkas disk yang akan dijalankan,\n" +" \tatau tidak sama sekali jika `type -t NAME' akan mengembalikan " +"`berkas'.\n" +" -t\tkeluarkan sebuah kata tunggal yang merupakan salah satu dari " +"`alias', `keyword',\n" +" \t`fungsi', `builtin', `berkas', atau `', jika NAMA adalah sebuah alias, " +"shell\n" +" \treserved word, fungsi shell, builtin shell, berkas disk, atau\n" +" \ttidak ditemukan\n" +" \n" +" Argumen:\n" +" NAMA\tNama perintah yang akan diinterpretasikan.\n" +" \n" +" Status Keluar:\n" +" Mengembalikan sukses jika seluruh dari NAMA ditemukan; gagal jika ada " +"yang tidak ditemukan." + +#: builtins.c:1376 +msgid "" +"Modify shell resource limits.\n" +" \n" +" Provides control over the resources available to the shell and " +"processes\n" +" it creates, on systems that allow such control.\n" +" \n" +" Options:\n" +" -S\tuse the `soft' resource limit\n" +" -H\tuse the `hard' resource limit\n" +" -a\tall current limits are reported\n" +" -b\tthe socket buffer size\n" +" -c\tthe maximum size of core files created\n" +" -d\tthe maximum size of a process's data segment\n" +" -e\tthe maximum scheduling priority (`nice')\n" +" -f\tthe maximum size of files written by the shell and its children\n" +" -i\tthe maximum number of pending signals\n" +" -l\tthe maximum size a process may lock into memory\n" +" -m\tthe maximum resident set size\n" +" -n\tthe maximum number of open file descriptors\n" +" -p\tthe pipe buffer size\n" +" -q\tthe maximum number of bytes in POSIX message queues\n" +" -r\tthe maximum real-time scheduling priority\n" +" -s\tthe maximum stack size\n" +" -t\tthe maximum amount of cpu time in seconds\n" +" -u\tthe maximum number of user processes\n" +" -v\tthe size of virtual memory\n" +" -x\tthe maximum number of file locks\n" +" \n" +" If LIMIT is given, it is the new value of the specified resource; the\n" +" special LIMIT values `soft', `hard', and `unlimited' stand for the\n" +" current soft limit, the current hard limit, and no limit, respectively.\n" +" Otherwise, the current value of the specified resource is printed. If\n" +" no option is given, then -f is assumed.\n" +" \n" +" Values are in 1024-byte increments, except for -t, which is in seconds,\n" +" -p, which is in increments of 512 bytes, and -u, which is an unscaled\n" +" number of processes.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" +"Modifikasi batas sumber daya shell.\n" +" \n" +" memberikan kontrol terhadap sarana yang tersedia untuk proses\n" +" yang dimulai oleh shell, dalam sistem yang mengijinkan untuk kontrol " +"tersebut.\n" +" \n" +" Opsi:\n" +" -S\tgunakan `soft' batas sarana\n" +" -H\tgunakan `hard' batas sarana\n" +" -a\tsemua batas ditampilkan\n" +" -c\tukuram maksimum untuk berkas cores yang dibuat\n" +" -d\tukuran maksimum untuk sebuah proses data segment\n" +" -e\tprioritas antrian maksimum ('nice')\n" +" -f\tukuran maksimum berkas yang ditulis oleh shell dan anaknya\n" +" -l\tjumlah maksimum dari sinyal tertunda\n" +" -m\tukuran maksimum dari resident\n" +" -n\tjumlah maksimum dari berkas deskriptor yang terbuka\n" +" -p\tukuran pipe buffer\n" +" -q\tjumlah maksimum dari bytes dalam POSIX pesan antrian\n" +" -r\tprioritas maksimum dari real-time scheduling\n" +" -s\tukuran maksimum dari stack\n" +" -t\tjumlah maksimum dari waktu cpu dalam detik\n" +" -u\tjumlah maksimum dari proses pengguna\n" +" -v\tukuran dari memori virtual\n" +" -x\tjumlah maksimum dari berkas pengunci\n" +" \n" +" Jika BATAS diberikan, maka nilai baru yang dispesifikasikan untuk " +"sarana;\n" +" nilai spesial LIMIT `soft', `hard', dan `unlimited' berarti untuk\n" +" soft limit saat ini, jika hard limit saat ini dan no limit, " +"respectively.\n" +" Jika tidak, nilai sekarang dari sarana yang dispesifikasikan " +"ditampilkan.\n" +" Jika tidak ada opsi yang diberikan, maka -f diasumsikan.\n" +" \n" +" Nilai adalah dalam 1024-byte increments, kecuali untuk -t, yang berarti " +"dalam detik\n" +" -p, yang berarti increment dalam 512 bytes, dan -u, yang berarti " +"unscaled dari\n" +" jumlah proses.\n" +" \n" +" Status Keluar:\n" +" Mengembalikan sukses kecuali sebuah opsi tidak valid diberikan atau " +"sebuah error terjadi." + +#: builtins.c:1421 +msgid "" +"Display or set file mode mask.\n" +" \n" +" Sets the user file-creation mask to MODE. If MODE is omitted, prints\n" +" the current value of the mask.\n" +" \n" +" If MODE begins with a digit, it is interpreted as an octal number;\n" +" otherwise it is a symbolic mode string like that accepted by chmod(1).\n" +" \n" +" Options:\n" +" -p\tif MODE is omitted, output in a form that may be reused as input\n" +" -S\tmakes the output symbolic; otherwise an octal number is output\n" +" \n" +" Exit Status:\n" +" Returns success unless MODE is invalid or an invalid option is given." +msgstr "" +"Tampilkan atau set mask mode dari berkas.\n" +" \n" +" Set pembuatan berkas pengguna mask dengan MODE. Jika MODE diabaikan, " +"tampilkan\n" +" nilai dari mask sekarang.\n" +" \n" +" Jika MODE diawali dengan sebuah digit, ini diinterpretasikan sebagai " +"sebuah bilangan oktal;\n" +" jika tidak ini adalah sebuah mode simbolik seperti yang diterima oleh " +"chmod(1).\n" +" \n" +" Opsi:\n" +" -p\tjika MODE diabaikan, keluarkan dalam sebuah format yang bisa " +"digunakan sebagai masukan\n" +" -S\tmembuat keluaran simbolik; jika tidak sebuah bilangan oktal adalah " +"keluarannya\n" +" \n" +" Status Keluar:\n" +" Mengembalikan sukses kecuali MODE tidak valid atau sebuah opsi tidak " +"valid diberikan." + +#: builtins.c:1441 +msgid "" +"Wait for job completion and return exit status.\n" +" \n" +" Waits for the process identified by ID, which may be a process ID or a\n" +" job specification, and reports its termination status. If ID is not\n" +" given, waits for all currently active child processes, and the return\n" +" status is zero. If ID is a a job specification, waits for all " +"processes\n" +" in the job's pipeline.\n" +" \n" +" Exit Status:\n" +" Returns the status of ID; fails if ID is invalid or an invalid option " +"is\n" +" given." +msgstr "" +"Tunggu untuk penyelesaian pekerjaan dan kembalikan status keluar.\n" +" \n" +" Tunggu untuk proses yang diidentifikasikan oleh ID, yang mungkin sebuah " +"proses ID atau sebuah\n" +" spesifikasi pekerjaan, dan laporkan status selesainya. Jika ID tidak\n" +" diberikan, tunggu untuk seluruh proses anak yang aktif, dan status " +"kembalian\n" +" adalah nol. Jika ID adalah sebuah spesifikasi pekerjaan, tunggu untuk " +"seluruh proses\n" +" dalam pipeline pekerjaan.\n" +" \n" +" Status Keluar:\n" +" Mengembalikan status dari ID; gagal jika ID tidak valid atau sebuah opsi " +"tidak\n" +" valid diberikan." + +#: builtins.c:1459 +msgid "" +"Wait for process completion and return exit status.\n" +" \n" +" Waits for the specified process and reports its termination status. If\n" +" PID is not given, all currently active child processes are waited for,\n" +" and the return code is zero. PID must be a process ID.\n" +" \n" +" Exit Status:\n" +" Returns the status of ID; fails if ID is invalid or an invalid option " +"is\n" +" given." +msgstr "" +"Tunggu untuk penyelesaian proses dan kembalikan status keluar.\n" +" \n" +" Tunggu untuk proses yang dispesifikasikan dan laporkan status " +"selesainya. Jika\n" +" PID tidak diberikan, maka semua aktif proses anak ditunggu,\n" +" dan kode kembalian adalah nol. PID dapat berupa proses ID.\n" +" \n" +" Status Keluar:\n" +" Mengembalikan status dari ID; gagal jika ID tidak valid atau sebuah opsi " +"tidak valid\n" +" diberikan." + +#: builtins.c:1474 +msgid "" +"Execute commands for each member in a list.\n" +" \n" +" The `for' loop executes a sequence of commands for each member in a\n" +" list of items. If `in WORDS ...;' is not present, then `in \"$@\"' is\n" +" assumed. For each element in WORDS, NAME is set to that element, and\n" +" the COMMANDS are executed.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"Jalankan perintah untuk setiap anggota dalam sebuah daftar.\n" +" \n" +" `for' loop menjalankan urutan dari perintah untuk setiap anggota dalam " +"sebuah\n" +" daftar dari items. Jika `in KATA ...;' tidak ada, maka `in \"$@\"' yang\n" +" menjadi asumsi. Untuk setiap elemen dalam KATA, NAMA di set untuk elemen " +"tersebut, dan\n" +" PERINTAH dijalankan.\n" +" \n" +" Status Keluar:\n" +" Mengembalikan status dari perintah terakhir yang dijalankan." + +#: builtins.c:1488 +msgid "" +"Arithmetic for loop.\n" +" \n" +" Equivalent to\n" +" \t(( EXP1 ))\n" +" \twhile (( EXP2 )); do\n" +" \t\tCOMMANDS\n" +" \t\t(( EXP3 ))\n" +" \tdone\n" +" EXP1, EXP2, and EXP3 are arithmetic expressions. If any expression is\n" +" omitted, it behaves as if it evaluates to 1.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"Arithmetic untuk loop.\n" +" \n" +" Sama dengan\n" +" \t(( EXP1 ))\n" +" \twhile (( EXP2 )); do\n" +" \t\tPERINTAH\n" +" \t\t(( EXP3 ))\n" +" \tdone\n" +" EXP1, EXP2, dan EXP3 adalah expresi arithmetic. Jika setiap expresi\n" +" diabaikan, ini berjalan seperti jika dievaluasi ke 1.\n" +" \n" +" Status Keluar:\n" +" Mengembalikan status dari perintah terakhir yang dijalankan." + +#: builtins.c:1506 +msgid "" +"Select words from a list and execute commands.\n" +" \n" +" The WORDS are expanded, generating a list of words. The\n" +" set of expanded words is printed on the standard error, each\n" +" preceded by a number. If `in WORDS' is not present, `in \"$@\"'\n" +" is assumed. The PS3 prompt is then displayed and a line read\n" +" from the standard input. If the line consists of the number\n" +" corresponding to one of the displayed words, then NAME is set\n" +" to that word. If the line is empty, WORDS and the prompt are\n" +" redisplayed. If EOF is read, the command completes. Any other\n" +" value read causes NAME to be set to null. The line read is saved\n" +" in the variable REPLY. COMMANDS are executed after each selection\n" +" until a break command is executed.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"Pilih kata dari sebuah daftar dan jalankan perintah.\n" +" \n" +" WORDS diexpand, menghasilkan daftar dari kata.\n" +" set dari kata yang diexpand ditampilkan dalam standar error, setiap\n" +" keluaran diawali dengan sebuah nomor. Jika `in WORDS' tidak ada, `in \"$@" +"\"'\n" +" diasumsikan. Kemudian PS3 prompt ditampilkan dan sebuah baris dibaca\n" +" dari standar masukan. Jika baris berisi dari nomor yang\n" +" berhubungan dengan salah sata kata yang ditampilkan, maka NAMA diset\n" +" ke WORD tersebut. Jika baris kosong, WORDS dan prompt\n" +" ditampilkan kembali. Jika EOF dibaca, perintah selesai. Baris yang " +"dibaca disimpan\n" +" dalam variabel REPLY. PERINTAH dijalankan setelah setiap seleksi\n" +" sampai perintah break dijalankan.\n" +" \n" +" Status Keluar:\n" +" Mengembalikan status dari perintah terakhir yang dijalankan." + +#: builtins.c:1527 +msgid "" +"Report time consumed by pipeline's execution.\n" +" \n" +" Execute PIPELINE and print a summary of the real time, user CPU time,\n" +" and system CPU time spent executing PIPELINE when it terminates.\n" +" \n" +" Options:\n" +" -p\tprint the timing summary in the portable Posix format\n" +" \n" +" The value of the TIMEFORMAT variable is used as the output format.\n" +" \n" +" Exit Status:\n" +" The return status is the return status of PIPELINE." +msgstr "" +"Melaporkan waktu yang dihabiskan dalam menjalan eksekusi pipeline.\n" +" \n" +" Jalankan PIPELINE dan tampilkan ringkasan dari real time, user CPU " +"time,\n" +" dan sistem CPU time yang dihabiskan dalam menjalankan PIPELINE ketika " +"ini selesai.\n" +" \n" +" Opsi:\n" +" -p\tmenampilkan ringkasan waktu dalam format portable Posix\n" +" \n" +" Status Keluar:\n" +" Status kembali adalah status kembali dari PIPELINE." + +#: builtins.c:1544 +msgid "" +"Execute commands based on pattern matching.\n" +" \n" +" Selectively execute COMMANDS based upon WORD matching PATTERN. The\n" +" `|' is used to separate multiple patterns.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"Menjalankan perintah berdasarkan pencocokan pola.\n" +" \n" +" Secara selektif menjalankan PERINTAH berdasarkan dari KATA yang cocok " +"dengan POLA.\n" +" `|' digunakan untuk memisahkan beberapa pola. \n" +" Status Keluar:\n" +" Mengembalikan setatus dari perintah terakhir yang dijalankan." + +#: builtins.c:1556 +msgid "" +"Execute commands based on conditional.\n" +" \n" +" The `if COMMANDS' list is executed. If its exit status is zero, then " +"the\n" +" `then COMMANDS' list is executed. Otherwise, each `elif COMMANDS' list " +"is\n" +" executed in turn, and if its exit status is zero, the corresponding\n" +" `then COMMANDS' list is executed and the if command completes. " +"Otherwise,\n" +" the `else COMMANDS' list is executed, if present. The exit status of " +"the\n" +" entire construct is the exit status of the last command executed, or " +"zero\n" +" if no condition tested true.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"Menjalankan perintah berdasarkan kondisi.\n" +" \n" +" Daftar `if PERINTAH' dijalankan. Jika ini memberikan status keluaran " +"nol, maka\n" +" daftar `then PERINTAH' dijalankan. Jika tidak, setiap daftar dari `elif " +"PERINTAH' \n" +" dijalankan satu satu, dan jika ini memberikan status keluaran nol, untuk " +"setiap\n" +" daftar dari `then PERINTAH' yang dijalankan maka perintah `if' selesai. " +"Jika tidak,\n" +" daftar `else PERINTAH' dijalankan, jika ada. Status keluaran dari \n" +" seluruh construct adalah status keluaran dari perintah terakhir yang " +"dijalankan, atau nol\n" +" jika tidak ada kondisi yang diperiksa benar.\n" +" \n" +" Status Keluar:\n" +" Mengembalikan status dari perintah terakhir yang dijalankan." + +#: builtins.c:1573 +msgid "" +"Execute commands as long as a test succeeds.\n" +" \n" +" Expand and execute COMMANDS as long as the final command in the\n" +" `while' COMMANDS has an exit status of zero.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"Menjalankan perintah sepanjang pemeriksaan sukses.\n" +" \n" +" Expand dan jalankan PERINTAH sepanjang akhir perintah dari\n" +" PERINTAH `while' telah memberikan status keluaran nol.\n" +" \n" +" Status Keluar:\n" +" Mengembalikan status dari perintah terakhir yang dijalankan." + +#: builtins.c:1585 +msgid "" +"Execute commands as long as a test does not succeed.\n" +" \n" +" Expand and execute COMMANDS as long as the final command in the\n" +" `until' COMMANDS has an exit status which is not zero.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"Menjalankan perintah sepanjang pemeriksaan tidak sukses.\n" +" \n" +" Expand dan jalankan PERINTAH sepanjang akhir perintah dari\n" +" PERINTAH `until' telah memberikan status keluaran bukan nol. \n" +" Status Keluar:\n" +" Mengembalikan status dari perintah terakhir yang dijalankan." + +#: builtins.c:1597 +msgid "" +"Define shell function.\n" +" \n" +" Create a shell function named NAME. When invoked as a simple command,\n" +" NAME runs COMMANDs in the calling shell's context. When NAME is " +"invoked,\n" +" the arguments are passed to the function as $1...$n, and the function's\n" +" name is in $FUNCNAME.\n" +" \n" +" Exit Status:\n" +" Returns success unless NAME is readonly." +msgstr "" +"Definisikan fungsi shell.\n" +" \n" +" Buat sebuah fungsi shell dengan nama NAMA. Ketika dipanggil sebagai " +"sebuah perintah sederhana,\n" +" NAMA menjalankan PERINTAH dalam context shell pemanggil. Ketika NAMA " +"dipanggil,\n" +" argumen dilewatkan ke fungsi sebagai $1...$n, dan nama fungsi\n" +" dalam $FUNCNAME.\n" +" \n" +" Status Keluar:\n" +" Mengembalikan sukses kecuali NAMA adalah baca-saja." + +#: builtins.c:1611 +msgid "" +"Group commands as a unit.\n" +" \n" +" Run a set of commands in a group. This is one way to redirect an\n" +" entire set of commands.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"Grup perintah sebagai sebuah unit.\n" +" \n" +" Jalankan sebuah set dari perintah dalam grup. Ini adalah salah satu cara " +"untuk meredirect\n" +" seluruh set dari perintah.\n" +" \n" +" Status Keluar:\n" +" Mengembalikan status dari perintah terakhir yang dieksekusi." + +#: builtins.c:1623 +msgid "" +"Resume job in foreground.\n" +" \n" +" Equivalent to the JOB_SPEC argument to the `fg' command. Resume a\n" +" stopped or background job. JOB_SPEC can specify either a job name\n" +" or a job number. Following JOB_SPEC with a `&' places the job in\n" +" the background, as if the job specification had been supplied as an\n" +" argument to `bg'.\n" +" \n" +" Exit Status:\n" +" Returns the status of the resumed job." +msgstr "" +"Melanjutkan pekerjaan dalam foreground.\n" +" \n" +" Sama dengan JOB_SPEC argumen untuk perintah `fg'. Melanjutkan sebuah\n" +" pekerjaan yang telah berhenti atau menjadi background. JOB_SPEC dapat " +"dispesifikasikan dengan nama job\n" +" atau nomor job. JOB_SPEC diikuti dengan sebuah `&' menempatkan job " +"dalam\n" +" background, seperti dalam spesifikasi pekerjaan yang telah " +"dispesifikasikan sebagai sebuah\n" +" argumen untuk `bg'.\n" +" \n" +" Status Keluar:\n" +" Mengembalikan status dari pekerjaan yang dilanjutkan." + +#: builtins.c:1638 +msgid "" +"Evaluate arithmetic expression.\n" +" \n" +" The EXPRESSION is evaluated according to the rules for arithmetic\n" +" evaluation. Equivalent to \"let EXPRESSION\".\n" +" \n" +" Exit Status:\n" +" Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise." +msgstr "" +"Evaluasi ekspresi arithmetic.\n" +" \n" +" EXPRESI dievaluasi berdasarkan dalam aturan evaluasi\n" +" arithmetic. Sama dengan \"let EXPRESI\".\n" +" \n" +" Status Keluar:\n" +" Mengembalikan 1 jika EXPRESI dievaluasi ke 0; mengembalikan 0 jika tidak." + +#: builtins.c:1650 +msgid "" +"Execute conditional command.\n" +" \n" +" Returns a status of 0 or 1 depending on the evaluation of the " +"conditional\n" +" expression EXPRESSION. Expressions are composed of the same primaries " +"used\n" +" by the `test' builtin, and may be combined using the following " +"operators:\n" +" \n" +" ( EXPRESSION )\tReturns the value of EXPRESSION\n" +" ! EXPRESSION\t\tTrue if EXPRESSION is false; else false\n" +" EXPR1 && EXPR2\tTrue if both EXPR1 and EXPR2 are true; else false\n" +" EXPR1 || EXPR2\tTrue if either EXPR1 or EXPR2 is true; else false\n" +" \n" +" When the `==' and `!=' operators are used, the string to the right of\n" +" the operator is used as a pattern and pattern matching is performed.\n" +" When the `=~' operator is used, the string to the right of the operator\n" +" is matched as a regular expression.\n" +" \n" +" The && and || operators do not evaluate EXPR2 if EXPR1 is sufficient to\n" +" determine the expression's value.\n" +" \n" +" Exit Status:\n" +" 0 or 1 depending on value of EXPRESSION." +msgstr "" +"Menjalankan perintah kondisional.\n" +" \n" +" Mengembalikan sebuah status dari 0 atau 1 tergantung dari evaluasi dari\n" +" kondisi expresi EXPRESI. Expresi disusun dari primari yang sama dari " +"yang digunakan\n" +" oleh `test' builtin, dan boleh dikombinasikan dengan menggunakan " +"operator berikut\n" +" \n" +" ( EXPRESI )\tMengembalikan nilai dari EXPRESI\n" +" ! EXPRESI\t\tBenar jika kedua EXPR1 dan EXPR2 adalah benar; selain itu " +"salah\n" +" EXPR1 && EXPR2\tBenar jika kedua EXPR1 dan EXPR2 adalah benar; selain " +"itu salah\n" +" EXPR1 || EXPR2\tBenar jika salah satu EXPR1 atau EXPR2 adalah benar; " +"selain itu salah\n" +" \n" +" Ketika operator `==' dan `!=' digunakan, string yang disebelah kanan " +"dari \n" +" operator yang digunakan sebagai sebuah pola dan pencocokan pola " +"dilakukan.\n" +" Ketika operator `=~' digunakan, string yang dikanan dari operator\n" +" dicocokan sebagai sebuah ekspresi regular.\n" +" \n" +" Operator && dan || tidak mengevaluasi EXPR2 jika EXPR1 tidak mencukupi " +"untuk\n" +" menentukan nilai dari expresi.\n" +" \n" +" Status Keluar:\n" +" 0 atau 1 tergantun dari nilai dari EKSPRESI." + +#: builtins.c:1676 +msgid "" +"Common shell variable names and usage.\n" +" \n" +" BASH_VERSION\tVersion information for this Bash.\n" +" CDPATH\tA colon-separated list of directories to search\n" +" \t\tfor directories given as arguments to `cd'.\n" +" GLOBIGNORE\tA colon-separated list of patterns describing filenames to\n" +" \t\tbe ignored by pathname expansion.\n" +" HISTFILE\tThe name of the file where your command history is stored.\n" +" HISTFILESIZE\tThe maximum number of lines this file can contain.\n" +" HISTSIZE\tThe maximum number of history lines that a running\n" +" \t\tshell can access.\n" +" HOME\tThe complete pathname to your login directory.\n" +" HOSTNAME\tThe name of the current host.\n" +" HOSTTYPE\tThe type of CPU this version of Bash is running under.\n" +" IGNOREEOF\tControls the action of the shell on receipt of an EOF\n" +" \t\tcharacter as the sole input. If set, then the value\n" +" \t\tof it is the number of EOF characters that can be seen\n" +" \t\tin a row on an empty line before the shell will exit\n" +" \t\t(default 10). When unset, EOF signifies the end of input.\n" +" MACHTYPE\tA string describing the current system Bash is running on.\n" +" MAILCHECK\tHow often, in seconds, Bash checks for new mail.\n" +" MAILPATH\tA colon-separated list of filenames which Bash checks\n" +" \t\tfor new mail.\n" +" OSTYPE\tThe version of Unix this version of Bash is running on.\n" +" PATH\tA colon-separated list of directories to search when\n" +" \t\tlooking for commands.\n" +" PROMPT_COMMAND\tA command to be executed before the printing of each\n" +" \t\tprimary prompt.\n" +" PS1\t\tThe primary prompt string.\n" +" PS2\t\tThe secondary prompt string.\n" +" PWD\t\tThe full pathname of the current directory.\n" +" SHELLOPTS\tA colon-separated list of enabled shell options.\n" +" TERM\tThe name of the current terminal type.\n" +" TIMEFORMAT\tThe output format for timing statistics displayed by the\n" +" \t\t`time' reserved word.\n" +" auto_resume\tNon-null means a command word appearing on a line by\n" +" \t\titself is first looked for in the list of currently\n" +" \t\tstopped jobs. If found there, that job is foregrounded.\n" +" \t\tA value of `exact' means that the command word must\n" +" \t\texactly match a command in the list of stopped jobs. A\n" +" \t\tvalue of `substring' means that the command word must\n" +" \t\tmatch a substring of the job. Any other value means that\n" +" \t\tthe command must be a prefix of a stopped job.\n" +" histchars\tCharacters controlling history expansion and quick\n" +" \t\tsubstitution. The first character is the history\n" +" \t\tsubstitution character, usually `!'. The second is\n" +" \t\tthe `quick substitution' character, usually `^'. The\n" +" \t\tthird is the `history comment' character, usually `#'.\n" +" HISTIGNORE\tA colon-separated list of patterns used to decide which\n" +" \t\tcommands should be saved on the history list.\n" +msgstr "" +"Nama variabel shell umum dan penggunaannya.\n" +" \n" +" BASH_VERSION\tInformasi versi dari Bash ini.\n" +" CDPATH\tSebuah daftar yang dipisahkan oleh titik dua dari direktori " +"untuk mencari\n" +" \t\tdirektori yang diberikan sebagai argumen untuk `cd'.\n" +" GLOBIGNORE\tSebuah daftar pola yang dipisahkan dengan titik dua " +"menjelaskan nama berkas yang\n" +" \t\tdiabaikan oleh pathname expansion.\n" +" HISTFILE\tNama dari berkas dimana sejara perintah anda disimpan.\n" +" HISTFILESIZE\tJumlah maksimum dari baris dimana berkas ini berisi.\n" +" HISTSIZE\tJumlah maksimum dari baris sejarah yang sedang berjalan\n" +" \t\tketika shell sedang menaksesnya.\n" +" HOME\tNama jalur lengkap ke direktori login anda.\n" +" HOSTNAME\tNama dari host saat ini.\n" +" HOSTTYPE\tTipe dari CPU dari veri Bash yang sedang berjalan.\n" +" IGNOREEOF\tKendalikan aksi dari shell ketika menerima sebuah EOF\n" +" \t\tkarakter sebagai masukan. Jika diset, maka nilai\n" +" \t\tdari jumlah karakter EOF yang bisa diterima\n" +" \t\tdalam sebuah baris dalam baris kosong sebelum shell keluar\n" +" \t\t(default 10). Ketika diunset, EOF menandakan akhir dari masukan.\n" +" MACHTYPE\tSebuah kata yang menjelaskan system yang berjalan ketika Bash " +"berjalan.\n" +" MAILCHECK\tSeberapa sering, dalam detik, Bash memeriksa pesan baru.\n" +" MAILPATH\tDaftar dari nama berkas yang dipisahkan oleh titik-dua dimana " +"Bash memeriksa\n" +" \t\tpesan baru.\n" +" OSTYPE\tVersi Unix dari Versi Bash yang sedang berjalan.\n" +" PATH\tDaftar direktori yang dipisahkan oleh titik-dua untuk mencari " +"ketika\n" +" \t\tmencari perintah.\n" +" PROMPT_COMMAND\tSebuah perintah yang dijalankan sebelum menampilkan " +"setiap\n" +" \t\tmasukan utama.\n" +" PS1\t\tKata prompt utama.\n" +" PS2\t\tKata prompt kedua.\n" +" PWD\t\tNama jalur lengkat dari direktori sekarang.\n" +" SHELLOPTS\tDaftar dari shell opsi yang dipisahkan oleh titik-dua.\n" +" TERM\tNama dari tipe terminal sekarang.\n" +" TIMEFORMAT\tFormat keluaran dari statistik waktu yang ditampilkan oleh\n" +" \t\t`time' kata yang direserved.\n" +" auto_resume\tTidak kosong berarti sebuah kata perintah akan munncul di " +"sebuah baris dengan\n" +" \t\tsendirinya adalah pertama dicari dalam daftar dari\n" +" \t\tpekerjaan yang terhenti sekarang. Jika ditemukan disana, maka " +"pekerjaan intu di foregroundkan.\n" +" \t\tNila dari `exact' berarti kata perintah harus\n" +" \t\tcocok secara tepat dalam daftar dari pekerjaan yang terhenti. " +"Sebuah\n" +" \t\tNila dari `substring' berarti bahwa kata perintah harus cocok\n" +" \t\tdengan substring dari pekerjaan. Nilai yang lain berarti\n" +" \t\tperintah harus diawali dari sebuah pekerjaan yang terhenti.\n" +" histchars\tKarakter pengendali history expansion dan pensubstitusi\n" +" \t\tcepat. Karakter pertama adalah karakter\n" +" \t\tpengganti sejarah, biasanya `!'. Karakter kedua\n" +" \t\tdari `quick substitution', biasanya `^'. Karakter\n" +" \t\tketiga adalah karakter `history comment'. biasanya `#',\n" +" HISTIGNORE\tSebuah daftar pola yang dipisahkan oleh titik dua yang " +"digunakan untuk menentukan dimana\n" +" \t\tperintah seharusnya disimpan dalam daftar sejarah.\n" + +#: builtins.c:1733 +msgid "" +"Add directories to stack.\n" +" \n" +" Adds a directory to the top of the directory stack, or rotates\n" +" the stack, making the new top of the stack the current working\n" +" directory. With no arguments, exchanges the top two directories.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when adding\n" +" \tdirectories to the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the left of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" -N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the right of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" dir\tAdds DIR to the directory stack at the top, making it the\n" +" \tnew current working directory.\n" +" \n" +" The `dirs' builtin displays the directory stack.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid argument is supplied or the directory\n" +" change fails." +msgstr "" +"Menambahkan direktori ke stack.\n" +" \n" +" Menambahkan sebuah direktori ke top dari direktori stack, atau merotasi\n" +" stack, membuah top baru dari stack dari working direktori saat ini.\n" +" Tanpa argumen, menukar top dari dua direktori.\n" +" \n" +" Opsi:\n" +" -n\tmenekan perubahan normal dari direktori ketika menambahkan " +"direktori\n" +" \tke stack, jadi hanya stack yang dimanipulasi.\n" +" \n" +" Argumen:\n" +" +N\tMerotasi stack sehingga direktori ke N (dihitung\n" +" \tdari kiri dari daftar yang terlihat oleh `dirs', dimulai dengan\n" +" \tnol) adalah di top.\n" +" \n" +" -N\tMerotasi stack sehingga direktori ke N (dihitung\n" +" \tdari kanan dari daftar yang terliha oleh `dirs', dimulai dengan\n" +" \tnol) adalah di top.\n" +" \n" +" dir\tenambahkan DIR ke direktori stack di puncak, membuatnya\n" +" \tdirektori kerja sekarang.\n" +" \n" +" Builtin `dirs' menampilkan direktori stack.\n" +" \n" +" Status Keluar:\n" +" Mengembalikan sukses kecuali ada sebuah argumen tidak valid diberikan " +"atau pemindahan\n" +" direktori gagal." + +#: builtins.c:1767 +msgid "" +"Remove directories from stack.\n" +" \n" +" Removes entries from the directory stack. With no arguments, removes\n" +" the top directory from the stack, and changes to the new top directory.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when removing\n" +" \tdirectories from the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRemoves the Nth entry counting from the left of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd +0'\n" +" \tremoves the first directory, `popd +1' the second.\n" +" \n" +" -N\tRemoves the Nth entry counting from the right of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd -0'\n" +" \tremoves the last directory, `popd -1' the next to last.\n" +" \n" +" The `dirs' builtin displays the directory stack.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid argument is supplied or the directory\n" +" change fails." +msgstr "" +"Hapus direktori dari stack.\n" +" \n" +" Manghapus masukan dalam direktori stack. Tanpa argumen,\n" +" menghapus top direktori dari stack, dan cd's ke top\n" +" direktori baru.\n" +" \n" +" Opsi:\n" +" -n\tmenekan perubahan normal dari direktori ketika menghapus " +"direktori\n" +" \tdari stack, jadi hanya stack yang dimanipulasi.\n" +" \n" +" Argumen:\n" +" +N\tmenghapus masukan ke N dihitung dari kiri dari daftar\n" +" \tyang ditampilkan oleh `dirs', dimulai dari nol. Sebagai contoh: `popd " +"+0'\n" +" \tmenghapus direktori terakhir, `popd +1' sebelum terakhir.\n" +" \n" +" -N\tmenghapus masukan ke N dihitung dari kanan dari daftar\n" +" \tyang ditampilkan oleh `dirs', dimulai dari nol. Sebagai contoh: `popd -" +"0'\n" +" \tmenghapus direktori terakhir, `popd -1' sebelum terakhir.\n" +" \n" +" Builtin `dirs' menampilkan direktori stack.\n" +" \n" +" Status Keluar:\n" +" Mengembalikan sukses kecuali ada sebuah argumen tidak valid diberikan " +"atau pemindahan\n" +" direktori gagal." + +#: builtins.c:1797 +msgid "" +"Display directory stack.\n" +" \n" +" Display the list of currently remembered directories. Directories\n" +" find their way onto the list with the `pushd' command; you can get\n" +" back up through the list with the `popd' command.\n" +" \n" +" Options:\n" +" -c\tclear the directory stack by deleting all of the elements\n" +" -l\tdo not print tilde-prefixed versions of directories relative\n" +" \tto your home directory\n" +" -p\tprint the directory stack with one entry per line\n" +" -v\tprint the directory stack with one entry per line prefixed\n" +" \twith its position in the stack\n" +" \n" +" Arguments:\n" +" +N\tDisplays the Nth entry counting from the left of the list shown " +"by\n" +" \tdirs when invoked without options, starting with zero.\n" +" \n" +" -N\tDisplays the Nth entry counting from the right of the list shown " +"by\n" +" \tdirs when invoked without options, starting with zero.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" +"Menampilkan direktori stack.\n" +" \n" +" Menampilkan daftar dari direktori yang diingat saat ini. Direktori\n" +" menemukan jalannya kedalam daftar dengan perintah `pushd'; anda dapat " +"memperoleh\n" +" backup melalui daftar dengan perintah `popd'.\n" +" \n" +" Opsi:\n" +" -c\tmenghapus direktori stack dengan menghapus seluruh elemen.\n" +" -l\tjangan menampilkan versi yang diawali tilde dari direktori yang " +"relatif\n" +" \tke direktori rumah anda\n" +" -p\tmenampilkan direktori stack dengan satu masukan setiap baris\n" +" -v\tmenampilkan direktori stack dengan satu masukan setiap baris " +"diawali\n" +" \tdengan posisinya dalam stack\n" +" Argumen:\n" +" +N\tmenampilkan masukan ke N dihitung dari kiri dari daftar yang " +"ditampilkan oleh\n" +" \tdirs ketika dijalankan tanpa opsi, dimulai dari nol.\n" +" \n" +" -N\tmenampilkan masukan ke N dihitung dari kanan dari daftar yang " +"ditampilkan oleh\n" +" \tdirs ketika dijalankan tanpa opsi, dimulai dari nol. \n" +" Status Keluar:\n" +" Mengembalikan sukses kecuali ada sebuah opsi tidak valid diberikan atau " +"sebuah error terjadi." + +#: builtins.c:1826 +msgid "" +"Set and unset shell options.\n" +" \n" +" Change the setting of each shell option OPTNAME. Without any option\n" +" arguments, list all shell options with an indication of whether or not " +"each\n" +" is set.\n" +" \n" +" Options:\n" +" -o\trestrict OPTNAMEs to those defined for use with `set -o'\n" +" -p\tprint each shell option with an indication of its status\n" +" -q\tsuppress output\n" +" -s\tenable (set) each OPTNAME\n" +" -u\tdisable (unset) each OPTNAME\n" +" \n" +" Exit Status:\n" +" Returns success if OPTNAME is enabled; fails if an invalid option is\n" +" given or OPTNAME is disabled." +msgstr "" +"Set dan unset opsi shell.\n" +" \n" +" Ubah setting untuk setiap opsi shell OPTNAME. Tanpa opsi\n" +" argumen apapun, tampilkan daftar shell opsi dengan sebuah indikasi\n" +" ya atau tidak setiap opsi di set.\n" +" \n" +" Opsi:\n" +" -o\tbatasi OPTNAME ke definisi untuk digunakan dengan `set -o'\n" +" -p\ttampilkan setiap opsi shell dengan sebuah indikasi dari statusnya\n" +" -q\ttekan keluaran\n" +" -s\taktifkan (set) setiap OPTNAME\n" +" -u\tnonaktifkan (unset) setiap OPTNAME\n" +" \n" +" Status Keluar:\n" +" Mengembalikan sukses jika OPTNAME diaktifkan; gagal jika sebuah opsi " +"tidak valid diberikan\n" +" atau OPTNAME dinonaktifkan." + +#: builtins.c:1847 +msgid "" +"Formats and prints ARGUMENTS under control of the FORMAT.\n" +" \n" +" Options:\n" +" -v var\tassign the output to shell variable VAR rather than\n" +" \t\tdisplay it on the standard output\n" +" \n" +" FORMAT is a character string which contains three types of objects: " +"plain\n" +" characters, which are simply copied to standard output; character " +"escape\n" +" sequences, which are converted and copied to the standard output; and\n" +" format specifications, each of which causes printing of the next " +"successive\n" +" argument.\n" +" \n" +" In addition to the standard format specifications described in printf" +"(1)\n" +" and printf(3), printf interprets:\n" +" \n" +" %b\texpand backslash escape sequences in the corresponding argument\n" +" %q\tquote the argument in a way that can be reused as shell input\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or a write or " +"assignment\n" +" error occurs." +msgstr "" +"Format dan tampilkan ARGUMEN dalam kontrol dari FORMAT.\n" +" \n" +" Opsi:\n" +" -v var\tkeluaran ditempatkan dalam sebuah nilai dari variabel\n" +" shell VAR daripada dikirimkan ke keluaran standar.\n" +" \n" +" FORMAT adalah sebuah karakter string yang berisi dari tiga tipe dari " +"objects: plain\n" +" karakter, yang disalin secara sederhana dari keluaran standar, karakter " +"escape\n" +" sequences yang mengubah dan menyalin keluaran standar, dan\n" +" spesifikasi format, yang selalu menampilkan argumen\n" +" \n" +" Tambahan dari spesifikasi standar printf(1) formats dan\n" +" printf(3), printf menginterprestasikan:\n" +" \n" +" %b berarti untuk menexpand backslash escape sequences dalam argumen " +"yang sesuai\n" +" %q berarti meng-quote argumen dalam sebuah cara yang dapat digunakan " +"sebagai masukan shell.\n" +" \n" +" Status Keluar:\n" +" Mengembalikan sukses kecuali sebuah opsi tidak valid diberikan atau " +"sebuah penulisan atau penempatan\n" +" error terjadi." + +#: builtins.c:1874 +msgid "" +"Specify how arguments are to be completed by Readline.\n" +" \n" +" For each NAME, specify how arguments are to be completed. If no " +"options\n" +" are supplied, existing completion specifications are printed in a way " +"that\n" +" allows them to be reused as input.\n" +" \n" +" Options:\n" +" -p\tprint existing completion specifications in a reusable format\n" +" -r\tremove a completion specification for each NAME, or, if no\n" +" \tNAMEs are supplied, all completion specifications\n" +" \n" +" When completion is attempted, the actions are applied in the order the\n" +" uppercase-letter options are listed above.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" +"Spesifikasikan bagaimana argumen akan diselesaikan oleh Readline.\n" +" \n" +" Untuk setiap NAMA, spesifikasikan bagaimana argumen akan diselesaikan. " +"Jika tidak ada opsi\n" +" yang diberikan, spesifikasi penyelesaian yang sudah ada akan ditampilkan " +"dalam cara\n" +" yang diperbolehkan untuk digunakan sebagai masukan.\n" +" \n" +" Opsi:\n" +" -p\ttampilkan spesifikasi penyelesaian yang telah ada dalam format " +"yang berguna\n" +" -r\thapus sebuah spesifikasi penyelesaian untuk setiap NAMA, atau jika " +"tidak ada\n" +" \tNAMA yang diberikan, seluruh spesifikasi penyelesaian\n" +" \n" +" Ketika penyelesaian dicoba, aksi yang dilakukan dalam urutan\n" +" huruf besar opsi yang ditampilkan diatas.\n" +" \n" +" Status Keluar:\n" +" Mengembalikan sukses kecuali sebuah opsi tidak valid diberikan atau " +"sebuah error terjadi." + +#: builtins.c:1897 +msgid "" +"Display possible completions depending on the options.\n" +" \n" +" Intended to be used from within a shell function generating possible\n" +" completions. If the optional WORD argument is supplied, matches " +"against\n" +" WORD are generated.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" +"Menampilkan kemungkinan penyelesaian tergantung dari opsi.\n" +" \n" +" Ditujukan untuk digunakan dari dalam sebuah fungsi shell yang " +"menghasilkan kemungkinan untuk completions.\n" +" Jika argumen WORD opsional yang diberikan, cocok dengan WORD telah\n" +" dihasilkan.\n" +" \n" +" Status Keluar:\n" +" Mengembalikan sukses kecuali sebuah opsi tidak valid diberikan atau " +"sebuah error terjadi." + +#: builtins.c:1912 +msgid "" +"Modify or display completion options.\n" +" \n" +" Modify the completion options for each NAME, or, if no NAMEs are " +"supplied,\n" +" the completion currently begin executed. If no OPTIONs are givenm, " +"print\n" +" the completion options for each NAME or the current completion " +"specification.\n" +" \n" +" Options:\n" +" \t-o option\tSet completion option OPTION for each NAME\n" +" \n" +" Using `+o' instead of `-o' turns off the specified option.\n" +" \n" +" Arguments:\n" +" \n" +" Each NAME refers to a command for which a completion specification must\n" +" have previously been defined using the `complete' builtin. If no NAMEs\n" +" are supplied, compopt must be called by a function currently generating\n" +" completions, and the options for that currently-executing completion\n" +" generator are modified.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or NAME does not\n" +" have a completion specification defined." +msgstr "" +"Modifikasi atau tampilkan opsi penyelesaian.\n" +" \n" +" Modifikasi opsi penyelesaian untuk setiap NAMA, atau, jika tidaka ada " +"NAMA yang diberikan,\n" +" penyelesaian mulai dijalankan. Jika tidak ada OPSI yang diberikan, " +"tampilkan\n" +" opsi penyelesaian untuk setiap NAMA atau spesifikasi penyelesaian " +"sekarang.\n" +" \n" +" Opsi:\n" +" \t-o option\tSet opsi penyelesaian OPSI untuk setiap NAMA\n" +" \n" +" Gunakan `+o' daripada `-o' matikan opsi yang dispesifikasikan.\n" +" \n" +" Argumen:\n" +" \n" +" Setiap NAMA yang dirujuk dalam sebuah perintah untuk sebuah spesifikasi " +"penyelesaian harus\n" +" sebelumnya telah didefinisikan dengan menggunakan builtin `complete'. " +"Jika tidak ada NAMA\n" +" yang diberikan, compopt harus dipanggil oleh sebuah fungsi yang dibuat " +"oleh penyelesaian sekarang,\n" +" dan opsi untuk menjalankan penyelesaian sekarang\n" +" telah dimodifikasi.\n" +" \n" +" Status Keluar:\n" +" Mengembalikan sukses kecuali sebuah opsi tidak valid diberikan atau NAMA " +"tidak memiliki\n" +" spesifikasi penyelesaian yang terdefinisi." + +#: builtins.c:1940 +#, fuzzy +msgid "" +"Read lines from a file into an array variable.\n" +" \n" +" Read lines from the standard input into the array variable ARRAY, or " +"from\n" +" file descriptor FD if the -u option is supplied. The variable MAPFILE " +"is\n" +" the default ARRAY.\n" +" \n" +" Options:\n" +" -n count\tCopy at most COUNT lines. If COUNT is 0, all lines are " +"copied.\n" +" -O origin\tBegin assigning to ARRAY at index ORIGIN. The default " +"index is 0.\n" +" -s count \tDiscard the first COUNT lines read.\n" +" -t\t\tRemove a trailing newline from each line read.\n" +" -u fd\t\tRead lines from file descriptor FD instead of the standard " +"input.\n" +" -C callback\tEvaluate CALLBACK each time QUANTUM lines are read.\n" +" -c quantum\tSpecify the number of lines read between each call to " +"CALLBACK.\n" +" \n" +" Arguments:\n" +" ARRAY\t\tArray variable name to use for file data.\n" +" \n" +" If -C is supplied without -c, the default quantum is 5000.\n" +" \n" +" If not supplied with an explicit origin, mapfile will clear ARRAY " +"before\n" +" assigning to it.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or ARRAY is readonly." +msgstr "" +"Baca baris dari sebuah berkas kedalam sebuah variabel array.\n" +" \n" +" Baca baris dari standar masukan kedalam variabel array ARRAY, atau dari\n" +" deskripsi berkas FD jika opsi -u diberikan. Variabel MAPFILE adalah\n" +" default ARRAY.\n" +" \n" +" Opsi:\n" +" -n count\tSalin di baris COUNT. Jika COUNT adalah 0, semua baris " +"disalin.\n" +" -O origin\tAwal penempatan ke ARRAY di index ORIGIN. Default index " +"adalah 0.\n" +" -s count \tAbaikan baris COUNT pertama yang dibaca.\n" +" -t\t\tHapus sebuah akhiran baris baru dari setiap baris yang dibaca.\n" +" -u fd\t\tBaca baris dari berkas deskripsi FD daripada dari masukan " +"standar.\n" +" -C callback\tEvaluasi CALLBACK untuk setiap waktu QUANTUM baris adalah " +"baca.\n" +" -c quantum\tSpesifikasikan jumlah dari baris yang dibaca diantara " +"setiap pemanggilan ke CALLBACK.\n" +" \n" +" Argumen:\n" +" ARRAY\t\tNama variabel array yang digunakan untuk berkas data.\n" +" \n" +" Jika -C Diberikan tanpa -c, default quantum adalah 5000.\n" +" \n" +" Jika tidak diberikan dengan asal secara eksplisit, berkas peta akan " +"menghapus ARRAY sebelum\n" +" ditempatkan kepadanya\n" +" \n" +" Status Keluar:\n" +" Mengembalikan sukses kecuali sebuah opsi tidak valid diberikan atau " +"ARRAY adalah baca-saja." + +#~ msgid " " +#~ msgstr " " + +#~ msgid "Without EXPR, returns returns \"$line $filename\". With EXPR," +#~ msgstr "" +#~ "Tanpa EXPR, mengembalikan kembalian \"$line $filename\". Dengan EXPR," + +#~ msgid "returns \"$line $subroutine $filename\"; this extra information" +#~ msgstr "" +#~ "mengembalikan \"$line $subroutine $filename\"; informasi tambahan ini" + +#~ msgid "can be used used to provide a stack trace." +#~ msgstr "dapat digunakan untuk menyediakan jejak sebuah stack." + +#~ msgid "" +#~ "The value of EXPR indicates how many call frames to go back before the" +#~ msgstr "" +#~ "Nilai dari EXPR mengindikasikan berapa banyak call frames untuk kembali " +#~ "sebelum" + +#~ msgid "current one; the top frame is frame 0." +#~ msgstr "salah satu ini; top frame adalah frame 0." + +#~ msgid "%s: invalid number" +#~ msgstr "%s: nomor invalid" + +#~ msgid "Shell commands matching keywords `" +#~ msgstr "Perintah shell cocok dengan kata kunci `" + +#~ msgid "Display the list of currently remembered directories. Directories" +#~ msgstr "Tampilkan daftar dari direktori yang diingat sekarang. Direktori" + +#~ msgid "find their way onto the list with the `pushd' command; you can get" +#~ msgstr "" +#~ "menemukan jalannya sendiri kedalam daftar dengan perintah `pushd'; anda " +#~ "dapat memperoleh" + +#~ msgid "back up through the list with the `popd' command." +#~ msgstr "bantuan melalui daftar dari perintah `popd'." + +#~ msgid "" +#~ "The -l flag specifies that `dirs' should not print shorthand versions" +#~ msgstr "" +#~ "Flag -l menspesifikasikan bahwa `dirs' seharusnya tidak menampilkan versi " +#~ "pendek" + +#~ msgid "" +#~ "of directories which are relative to your home directory. This means" +#~ msgstr "dari direktori yang relatif dari direktori home anda. Ini berarti" + +#~ msgid "that `~/bin' might be displayed as `/homes/bfox/bin'. The -v flag" +#~ msgstr "" +#~ "bahwa `~/bin' mungkin ditampilkan sebagai `/homes/bfox/bin'. Opsi -v" + +#~ msgid "causes `dirs' to print the directory stack with one entry per line," +#~ msgstr "" +#~ "menyebabkan `dirs' ditampilkan di stack direktori dengan satu masukan per " +#~ "baris," + +#~ msgid "" +#~ "prepending the directory name with its position in the stack. The -p" +#~ msgstr "mendahului nama direktori dengan posisinya dalam stack. Opsi -p" + +#~ msgid "flag does the same thing, but the stack position is not prepended." +#~ msgstr "melakukan hal yang sama, tetapi posisi stack tidak didahului." + +#~ msgid "" +#~ "The -c flag clears the directory stack by deleting all of the elements." +#~ msgstr "" +#~ "Opsi -c menghapus direktori stack dengan cara menghapus seluruh elemen." + +#~ msgid "" +#~ "+N displays the Nth entry counting from the left of the list shown by" +#~ msgstr "" +#~ "+N menampilkan masukan ke N dihitung dari kiri dari daftar yang " +#~ "ditampilkan oleh" + +#~ msgid " dirs when invoked without options, starting with zero." +#~ msgstr " dirs ketika dipanggil tanpa opsi, dimulai dengan nol." + +#~ msgid "" +#~ "-N displays the Nth entry counting from the right of the list shown by" +#~ msgstr "" +#~ "-N menampilkan masukan ke N dihitung dari kanan dari daftar yang " +#~ "ditampilkan dengan" + +#~ msgid "Adds a directory to the top of the directory stack, or rotates" +#~ msgstr "" +#~ "menambahkan sebuah direktori ke ujung atas dari direktori stack, atau " +#~ "memutar" + +#~ msgid "the stack, making the new top of the stack the current working" +#~ msgstr "stack, membuat sebuah top baru dari stack direktori yang dipakai" + +#~ msgid "directory. With no arguments, exchanges the top two directories." +#~ msgstr "saat ini. Tanpa argumen, menukar top dari dua direktori." + +#~ msgid "+N Rotates the stack so that the Nth directory (counting" +#~ msgstr "+N Memutar stack sehingga direktori ke N (dihitung" + +#~ msgid " from the left of the list shown by `dirs', starting with" +#~ msgstr "" +#~ " dari kiri dari daftar yang ditampilkan oleh `dirs', dimulai dari" + +#~ msgid " zero) is at the top." +#~ msgstr " nol) ini dilakukan di top." + +#~ msgid "-N Rotates the stack so that the Nth directory (counting" +#~ msgstr "-N Memutar stact sehingga direktori ke N (dihitung" + +#~ msgid " from the right of the list shown by `dirs', starting with" +#~ msgstr "" +#~ " dari kanan dari daftar yang ditampilkan oleh `dirs', dimulai dengan" + +#~ msgid "-n suppress the normal change of directory when adding directories" +#~ msgstr "" +#~ "-n menekan perubahan normal dari direktori ketika menambahkan direktori" + +#~ msgid " to the stack, so only the stack is manipulated." +#~ msgstr " ke stack, jadi hanya stack yang dimanipulasi." + +#~ msgid "dir adds DIR to the directory stack at the top, making it the" +#~ msgstr "dir menambahkan DIR ke direktori stack di top, membuatnya " + +#~ msgid " new current working directory." +#~ msgstr " menjadi direktori baru untuk bekerja." + +#~ msgid "You can see the directory stack with the `dirs' command." +#~ msgstr "Anda dapat melihat direktori stack dengan perintah `dirs'." + +#~ msgid "Removes entries from the directory stack. With no arguments," +#~ msgstr "Hapus masukan dari direktori stack. Tanpa argumen," + +#~ msgid "removes the top directory from the stack, and cd's to the new" +#~ msgstr "menghapus top direktori dari stack, dan pindah ke" + +#~ msgid "top directory." +#~ msgstr "top direktori yang baru." + +#~ msgid "+N removes the Nth entry counting from the left of the list" +#~ msgstr "+N menghapus masukan ke-N dihitung dari kiri dari daftar" + +#~ msgid " shown by `dirs', starting with zero. For example: `popd +0'" +#~ msgstr " yang terlihat oleh `dirs', dimulai dari nol. Contoh: `popd +0'" + +#~ msgid " removes the first directory, `popd +1' the second." +#~ msgstr " menghapus direktori pertama, `popd +1' kedua." + +#~ msgid "-N removes the Nth entry counting from the right of the list" +#~ msgstr "-N menghapus masukan ke N dihitung dari kanan dari daftar" + +#~ msgid " shown by `dirs', starting with zero. For example: `popd -0'" +#~ msgstr " yang terlihat oleh `dirs', dimulai dari nol. Contoh: `popd -0'" + +#~ msgid " removes the last directory, `popd -1' the next to last." +#~ msgstr "" +#~ " menghapus direktori terakhir, `popd -1' selanjutnya ke terakhir." + +#~ msgid "" +#~ "-n suppress the normal change of directory when removing directories" +#~ msgstr "" +#~ "-n menekan perubahan normal dari direktori ketika menghapus direktori" + +#~ msgid " from the stack, so only the stack is manipulated." +#~ msgstr " dari stack, sehingga hanya stack yang dimanipulasi." + +#~ msgid "allocated" +#~ msgstr "teralokasi" + +#~ msgid "freed" +#~ msgstr "terbebaskan" + +#~ msgid "requesting resize" +#~ msgstr "meminta resize" + +#~ msgid "just resized" +#~ msgstr "just resized" + +#~ msgid "bug: unknown operation" +#~ msgstr "bug: operasi tidak diketahui" + +#~ msgid "malloc: watch alert: %p %s " +#~ msgstr "malloc: watch alert: %p %s " + +#~ msgid "" +#~ "Exit from within a FOR, WHILE or UNTIL loop. If N is specified,\n" +#~ " break N levels." +#~ msgstr "" +#~ "Keluar dari dalam sebuah FOR, WHILE, atau UNTIL loop. jika N " +#~ "dispesifikasikan,\n" +#~ " break N levels." + +#~ msgid "" +#~ "Run a shell builtin. This is useful when you wish to rename a\n" +#~ " shell builtin to be a function, but need the functionality of the\n" +#~ " builtin within the function itself." +#~ msgstr "" +#~ "Jalankan sebuah builtin shell. Ini akan berguna ketika anda mengharapkan " +#~ "untuk mengganti nama sebuah\n" +#~ " shell builting ke sebuah fungsi, tetapi membutuhkan sebuah " +#~ "fungsionalitas dari\n" +#~ " sebuah fungsi builtin itu sendiri." + +#~ msgid "" +#~ "Print the current working directory. With the -P option, pwd prints\n" +#~ " the physical directory, without any symbolic links; the -L option\n" +#~ " makes pwd follow symbolic links." +#~ msgstr "" +#~ "Tampilkan direktori yang sedang digunakan saat ini. Dengan opsi -P, pwd " +#~ "menampilkan\n" +#~ " direktori physical, tanpa symbolic link yang lain; dengan opsi -L\n" +#~ " membuat pwd mengikuti symbolic links." + +#~ msgid "Return a successful result." +#~ msgstr "Mengembalikan sebuah kembalian yang sukses." + +#~ msgid "" +#~ "Runs COMMAND with ARGS ignoring shell functions. If you have a shell\n" +#~ " function called `ls', and you wish to call the command `ls', you can\n" +#~ " say \"command ls\". If the -p option is given, a default value is " +#~ "used\n" +#~ " for PATH that is guaranteed to find all of the standard utilities. " +#~ "If\n" +#~ " the -V or -v option is given, a string is printed describing " +#~ "COMMAND.\n" +#~ " The -V option produces a more verbose description." +#~ msgstr "" +#~ "Menjalankan PERINTAH dengan ARGS mengabaikan fungsi shell. Jika anda " +#~ "memiliki sebuah shell\n" +#~ " fungsi yang memanggil `ls', dan anda berharap untuk memanggil " +#~ "perintah `ls', anda dapat\n" +#~ " mengatakan \"command ls\". Jika opsi -p diberikan, sebuah nilai " +#~ "default digunakan\n" +#~ " untuk PATH yang menjamin untuk mencari semua utilitis standar. Jika\n" +#~ " opsi -V atau -v diberikan, sebuah string ditampilkan mendeskripsikan " +#~ "PERINTAH.\n" +#~ " Opsi -V menghasilkan deskripsi yang lebih detail." + +#~ msgid "" +#~ "Declare variables and/or give them attributes. If no NAMEs are\n" +#~ " given, then display the values of variables instead. The -p option\n" +#~ " will display the attributes and values of each NAME.\n" +#~ " \n" +#~ " The flags are:\n" +#~ " \n" +#~ " -a\tto make NAMEs arrays (if supported)\n" +#~ " -f\tto select from among function names only\n" +#~ " -F\tto display function names (and line number and source file name " +#~ "if\n" +#~ " \tdebugging) without definitions\n" +#~ " -i\tto make NAMEs have the `integer' attribute\n" +#~ " -r\tto make NAMEs readonly\n" +#~ " -t\tto make NAMEs have the `trace' attribute\n" +#~ " -x\tto make NAMEs export\n" +#~ " \n" +#~ " Variables with the integer attribute have arithmetic evaluation (see\n" +#~ " `let') done when the variable is assigned to.\n" +#~ " \n" +#~ " When displaying values of variables, -f displays a function's name\n" +#~ " and definition. The -F option restricts the display to function\n" +#~ " name only.\n" +#~ " \n" +#~ " Using `+' instead of `-' turns off the given attribute instead. " +#~ "When\n" +#~ " used in a function, makes NAMEs local, as with the `local' command." +#~ msgstr "" +#~ "Declare variabel dan/atau memberikan atribut kepada mereka. Jika tidak " +#~ "ada NAMA yang\n" +#~ " diberikan, maka menampilkan nilai dari variabel. Opsi -p\n" +#~ " akan menampilkan atribut dan nilai dari setiap NAMA.\n" +#~ " \n" +#~ " Flags adalah:\n" +#~ " \n" +#~ " -a\tuntuk membuat aray NAMA (jika disupport)\n" +#~ " -f\tuntuk memilih dari nama fungsi saja\n" +#~ " -F\tuntuk menampilkan nama fungsi (dan nomor baris dan source nama " +#~ "file jika\n" +#~ " \tdebugging) tanpa definisi\n" +#~ " -i\tuntuk membuat NAMA memiliki atribut `integer'\n" +#~ " -r\tuntuk membuat NAMA baca-saja\n" +#~ " -t\tuntuk membuat NAMA memiliki atribut `trace'\n" +#~ " -x\tuntuk membuat NAME export\n" +#~ " \n" +#~ " Variabel dengan atribut integer memiliki arithmetic evaluasi (lihat\n" +#~ " `let') selesai ketika variabel diberikan ke.\n" +#~ " \n" +#~ " Ketika menampilkan nilai dari variabel, -f menampilkan sebuah nama " +#~ "fungsi\n" +#~ " dan definisi. Opsi -F menekan untuk menampikan nama\n" +#~ " fungsi saja.\n" +#~ " \n" +#~ " Menggunakan `+' daripada `-' mematikan atribut yang diberikan. " +#~ "Ketika\n" +#~ " sedang digunkan dalam sebuah fungsi, membuat NAMA lokal, seperti " +#~ "dalam perintah 'local'." + +#~ msgid "Obsolete. See `declare'." +#~ msgstr "Kadaluarsa. Lihat `declare'." + +#~ msgid "" +#~ "Create a local variable called NAME, and give it VALUE. LOCAL\n" +#~ " can only be used within a function; it makes the variable NAME\n" +#~ " have a visible scope restricted to that function and its children." +#~ msgstr "" +#~ "Membuat sebuah variabel lokal yang disebut NAMA, dan menampilkan NILAI-" +#~ "nya. LOKAL\n" +#~ " hanya dapat digunakan dalam sebuah fungsi; ini membuat NAMA variabel\n" +#~ " memiliki scope visibel terbatas untuk fungsi itu dan anaknya." + +#~ msgid "" +#~ "Output the ARGs. If -n is specified, the trailing newline is suppressed." +#~ msgstr "" +#~ "Keluaran dari ARGs. Jika opsi -n dispesifikasikan, akhiran baris baru " +#~ "dihapus." + +#~ msgid "" +#~ "Enable and disable builtin shell commands. This allows\n" +#~ " you to use a disk command which has the same name as a shell\n" +#~ " builtin without specifying a full pathname. If -n is used, the\n" +#~ " NAMEs become disabled; otherwise NAMEs are enabled. For example,\n" +#~ " to use the `test' found in $PATH instead of the shell builtin\n" +#~ " version, type `enable -n test'. On systems supporting dynamic\n" +#~ " loading, the -f option may be used to load new builtins from the\n" +#~ " shared object FILENAME. The -d option will delete a builtin\n" +#~ " previously loaded with -f. If no non-option names are given, or\n" +#~ " the -p option is supplied, a list of builtins is printed. The\n" +#~ " -a option means to print every builtin with an indication of whether\n" +#~ " or not it is enabled. The -s option restricts the output to the " +#~ "POSIX.2\n" +#~ " `special' builtins. The -n option displays a list of all disabled " +#~ "builtins." +#~ msgstr "" +#~ "Enable dan disable perintah builtin shell. Ini membolehkan\n" +#~ " anda untuk menggunakan perintah disk yang memiliki nama sama seperti " +#~ "sebuah NAMA\n" +#~ " shell builtin tanpa menspesifikasikan sebuah pathname full. Jika opsi " +#~ "-n digunakan,\n" +#~ " NAMA menjadi disabled; jika tidak NAMA menjadi enabled. Contoh,\n" +#~ " gunakan `test' ditemukan dalam $PATH daripada dalam builtin versi\n" +#~ " builtin shell, ketik `enable -n test'. Di system mensupport dynamic\n" +#~ " loading, opsi -f mungkin bisa digunakan untuk menload builtin baru " +#~ "dari\n" +#~ " shared object NAMAFILE. Opsi -d akan menghapus sebuah builting\n" +#~ " yang sebelumnya diload dengan opsi -f. Jika tidak ada nama opsi yang " +#~ "diberikan, atau\n" +#~ " opsi -p diberikan, daftar dari builtin ditampilkan.\n" +#~ " Opsi -a berarti menampilkan setiap builtin dengan sebuah indikasi " +#~ "apakah\n" +#~ " atau tidak ini enabled. Opsi -s membatasi keluaran ke POSIX.2\n" +#~ " `special' builtins. Opsi -n menampilkan daftar dari semua yang " +#~ "builtins yang disabled." + +#~ msgid "" +#~ "Read ARGs as input to the shell and execute the resulting command(s)." +#~ msgstr "" +#~ "Baca ARGs sebagai masukan ke shell dan jalankan untuk menghasilkan " +#~ "perintah(s)." + +#~ msgid "" +#~ "Exec FILE, replacing this shell with the specified program.\n" +#~ " If FILE is not specified, the redirections take effect in this\n" +#~ " shell. If the first argument is `-l', then place a dash in the\n" +#~ " zeroth arg passed to FILE, as login does. If the `-c' option\n" +#~ " is supplied, FILE is executed with a null environment. The `-a'\n" +#~ " option means to make set argv[0] of the executed process to NAME.\n" +#~ " If the file cannot be executed and the shell is not interactive,\n" +#~ " then the shell exits, unless the shell option `execfail' is set." +#~ msgstr "" +#~ "Exec FILE, menimpa shell ini dengan aplikasi yang dispesifikasikan.\n" +#~ " Jika FILE tidak dispesifikasikan, redirectiions mengambil efek dalam\n" +#~ " shell ini. Jika argumen pertama adalah `-l', maka tempatkan sebuah " +#~ "dash dalam\n" +#~ " argument ke nol yang dilewatkan ke FILE, seperti yang dilakukan oleh " +#~ "login. Jika opsi `-c'\n" +#~ " diberikan, FILE dijalankan dengan environmen kosong. Jika opsi `-a'\n" +#~ " berarti menset argv[0] dari proses yang dijalankan ke NAMA.\n" +#~ " Jika berkas tidak dapat dijalankan dan shell bukan interaktif,\n" +#~ " maka shell keluar, unless opsi shell `execfail' diset." + +#~ msgid "Logout of a login shell." +#~ msgstr "Logout dari sebuah login shell." + +#~ msgid "" +#~ "For each NAME, the full pathname of the command is determined and\n" +#~ " remembered. If the -p option is supplied, PATHNAME is used as the\n" +#~ " full pathname of NAME, and no path search is performed. The -r\n" +#~ " option causes the shell to forget all remembered locations. The -d\n" +#~ " option causes the shell to forget the remembered location of each " +#~ "NAME.\n" +#~ " If the -t option is supplied the full pathname to which each NAME\n" +#~ " corresponds is printed. If multiple NAME arguments are supplied " +#~ "with\n" +#~ " -t, the NAME is printed before the hashed full pathname. The -l " +#~ "option\n" +#~ " causes output to be displayed in a format that may be reused as " +#~ "input.\n" +#~ " If no arguments are given, information about remembered commands is " +#~ "displayed." +#~ msgstr "" +#~ "Untuk setiap NAMA, full pathname dari perintah ditentukan dan\n" +#~ " diingat. Jika opsi -p diberikan, PATHNAME digunakan sebagai\n" +#~ " full pathname dari NAME, dan tidak ada jalur pencarian yang " +#~ "dilakukan. Opsi -r\n" +#~ " menyebabkan shell untuk melupakan semua lokasi yang diingat. Opsi -d\n" +#~ " menyebabkan shell untuk melupakan lokasi dari setiap NAMA.\n" +#~ " Jika opsi -t diberikan ful pathname ke setiap NAMA\n" +#~ " yang bersesuaian ditampilkan. Jika beberapa argumen NAMA diberikan " +#~ "dengan\n" +#~ " opsi -t, NAME ditampilkan sebelum hashed full pathname. Opsi -l\n" +#~ " menyebabkan keluaran untuk ditampilkan dalam format yang biasa " +#~ "digunakan sebagai masukan.\n" +#~ " Jika tidak ada argumen yang diberikan, informasi mengenai perintah " +#~ "yang diingat akan ditampilkan." + +#~ msgid "" +#~ "Display helpful information about builtin commands. If PATTERN is\n" +#~ " specified, gives detailed help on all commands matching PATTERN,\n" +#~ " otherwise a list of the builtins is printed. The -s option\n" +#~ " restricts the output for each builtin command matching PATTERN to\n" +#~ " a short usage synopsis." +#~ msgstr "" +#~ "Menampilkan informasi yang berharga mengenai perintah builtin. Jika " +#~ "PATTERN\n" +#~ " dispesifikasikan, memberikan bantuan detail mengenail seluruh " +#~ "perintah yang cocok dengan PATTERN,\n" +#~ " jika tidak sebuah daftar dari builtings akan ditampilkan. Opsi -s\n" +#~ " membatasi keluaran dari setiap perintah builtin yang cocok dengan " +#~ "PATTERN ke\n" +#~ " ringkasan penggunaan singkat." + +#~ msgid "" +#~ "By default, removes each JOBSPEC argument from the table of active jobs.\n" +#~ " If the -h option is given, the job is not removed from the table, but " +#~ "is\n" +#~ " marked so that SIGHUP is not sent to the job if the shell receives a\n" +#~ " SIGHUP. The -a option, when JOBSPEC is not supplied, means to remove " +#~ "all\n" +#~ " jobs from the job table; the -r option means to remove only running " +#~ "jobs." +#~ msgstr "" +#~ "Secara default, menghapus setiap JOBSPEC argumen dari tabel actif jobs.\n" +#~ " Jika opsi -n diberikan, pekerjaan tidak dihapus dari tabel, tetap " +#~ "ditandai\n" +#~ " sehingga ketika SIGHUP tidak terkirim ke job ketika shell menerima " +#~ "sebuah\n" +#~ " SIGHUP. Opsi -a, ketika JOBSPEC tidak diberikan, berarti menghapus " +#~ "seluruh\n" +#~ " pekerjaan dari job tabel; Opsi -r berarti hanya menghapus pekerjaan " +#~ "yang berjalan." + +#~ msgid "" +#~ "Causes a function to exit with the return value specified by N. If N\n" +#~ " is omitted, the return status is that of the last command." +#~ msgstr "" +#~ "Menyebabkan sebuah fungsi untuk keluar dengan nilai kembalian " +#~ "dispesifikasikan oleh N. Jika N\n" +#~ " diabaikan, maka status kembalian adalah status dari perintah terakhir." + +#~ msgid "" +#~ "For each NAME, remove the corresponding variable or function. Given\n" +#~ " the `-v', unset will only act on variables. Given the `-f' flag,\n" +#~ " unset will only act on functions. With neither flag, unset first\n" +#~ " tries to unset a variable, and if that fails, then tries to unset a\n" +#~ " function. Some variables cannot be unset; also see readonly." +#~ msgstr "" +#~ "Untuk setiap NAMA, hapus variabel atau fungsi yang berhubungan. Dengan\n" +#~ " opsi `-v', unset hanya berlaku di variabel. Dengan opsi `-f',\n" +#~ " unset hanya berlaku untuk fungsi. Dengan tidak menggunakan dua opsi " +#~ "itu,\n" +#~ " pertama akan mencoba mengunset variabel, dan jika itu gagal maka " +#~ "akan\n" +#~ " mencoba untuk mengunset sebuah fungsi. Beberapa variabel tidak dapat " +#~ "diunset. Lihat readonly." + +#~ msgid "" +#~ "NAMEs are marked for automatic export to the environment of\n" +#~ " subsequently executed commands. If the -f option is given,\n" +#~ " the NAMEs refer to functions. If no NAMEs are given, or if `-p'\n" +#~ " is given, a list of all names that are exported in this shell is\n" +#~ " printed. An argument of `-n' says to remove the export property\n" +#~ " from subsequent NAMEs. An argument of `--' disables further option\n" +#~ " processing." +#~ msgstr "" +#~ "NAMA ditandai untuk otomatis export ke environment dari\n" +#~ " perintah yang akan dijalankan selanjutnya. Jika opsi -f diberikan,\n" +#~ " NAMA akan menunjuk ke fungsi. Jika tidak ada NAMA diberikan, atau " +#~ "jika opsi `-p'\n" +#~ " diberikan, daftar dari seluruh nama yang diexport dalam shell ini\n" +#~ " ditampilkan. Sebuah argumen dari opsi `-n' mengatakan untuk menghapus " +#~ "expor properti\n" +#~ " dari NAMA selanjutnya. Sebuah argumen dari `--' menonaktifkan " +#~ "pemrosesan\n" +#~ " opsi selanjutnya." + +#~ msgid "" +#~ "The given NAMEs are marked readonly and the values of these NAMEs may\n" +#~ " not be changed by subsequent assignment. If the -f option is given,\n" +#~ " then functions corresponding to the NAMEs are so marked. If no\n" +#~ " arguments are given, or if `-p' is given, a list of all readonly " +#~ "names\n" +#~ " is printed. The `-a' option means to treat each NAME as\n" +#~ " an array variable. An argument of `--' disables further option\n" +#~ " processing." +#~ msgstr "" +#~ "NAMA yang diberikan ditandai secara baca-saja dan nilai dari NAMA ini " +#~ "tidak\n" +#~ " boleh diubah oleh assignmen selanjutnya. Jika opsi -f diberikan,\n" +#~ " maka fungsi yang berhubungan dengan NAMA akan ditandai. Jika tidak\n" +#~ " ada argumen yang diberikan, atau jika opsi `-p' diberikan, sebuah " +#~ "daftar dari seluruh nama baca-saja\n" +#~ " ditampilkan. Opsi `-a' berarti memperlakukan setiap NAMA sebagai\n" +#~ " sebuah variabel array. Sebuah argumen dari `--' menonaktifkan " +#~ "pemrosesan\n" +#~ " opsi selanjutnya." + +#~ msgid "" +#~ "The positional parameters from $N+1 ... are renamed to $1 ... If N is\n" +#~ " not given, it is assumed to be 1." +#~ msgstr "" +#~ "Parameter posisi dari $N+1 ... diubah namanya menjadi $1 ... Jika N\n" +#~ " tidak diberikan, ini diasumsikan untuk menjadi 1." + +#~ msgid "" +#~ "Suspend the execution of this shell until it receives a SIGCONT\n" +#~ " signal. The `-f' if specified says not to complain about this\n" +#~ " being a login shell if it is; just suspend anyway." +#~ msgstr "" +#~ "Suspend eksekusi dari shell ini sampai ini menerima sebuah sinyal " +#~ "SIGCONT\n" +#~ " Jika opsi `-f' dispesifikasikan maka tidak komplain tentang ini " +#~ "menjadi\n" +#~ " sebuah login shell jika emang begitu. Hanya lakukan suspend saja." + +#~ msgid "" +#~ "Print the accumulated user and system times for processes run from\n" +#~ " the shell." +#~ msgstr "" +#~ "Tampilkan waktu yang terakumulasi oleh pengguna dan system untuk proses " +#~ "yang berjalan dari\n" +#~ " shell." + +#~ msgid "" +#~ "For each NAME, indicate how it would be interpreted if used as a\n" +#~ " command name.\n" +#~ " \n" +#~ " If the -t option is used, `type' outputs a single word which is one " +#~ "of\n" +#~ " `alias', `keyword', `function', `builtin', `file' or `', if NAME is " +#~ "an\n" +#~ " alias, shell reserved word, shell function, shell builtin, disk " +#~ "file,\n" +#~ " or unfound, respectively.\n" +#~ " \n" +#~ " If the -p flag is used, `type' either returns the name of the disk\n" +#~ " file that would be executed, or nothing if `type -t NAME' would not\n" +#~ " return `file'.\n" +#~ " \n" +#~ " If the -a flag is used, `type' displays all of the places that " +#~ "contain\n" +#~ " an executable named `file'. This includes aliases, builtins, and\n" +#~ " functions, if and only if the -p flag is not also used.\n" +#~ " \n" +#~ " The -f flag suppresses shell function lookup.\n" +#~ " \n" +#~ " The -P flag forces a PATH search for each NAME, even if it is an " +#~ "alias,\n" +#~ " builtin, or function, and returns the name of the disk file that " +#~ "would\n" +#~ " be executed." +#~ msgstr "" +#~ "Untuk setiap NAMA, mengindikasikan bagaimana ini akan diinterpretasikan " +#~ "jika digunakan sebagai sebuah\n" +#~ " nama perintah.\n" +#~ " \n" +#~ " Jika sebuah opsi -t digunakan, `type' mengeluarkan sebuah kata " +#~ "tunggal yang salah satu dari\n" +#~ " `alias', `keyword', `function', `builtin', `file', atau `', jika NAMA " +#~ "adalah sebuah\n" +#~ " alias, shell kata yang dipesan, shell fungsi, shell builtin, disk " +#~ "file,\n" +#~ " atau tidak ditemukan, respectively.\n" +#~ " \n" +#~ " Jika flag -p digunakan, `type' menampilkan semua dari tempat yang " +#~ "berisi\n" +#~ " nama executable `file'. Ini meliputi aliases, builtings, dan\n" +#~ " fungsi, jika dan hanya jika flag -p juga tidak digunakan.\n" +#~ " \n" +#~ " Flag -f menekan seluruh fungsi shell lookup.\n" +#~ " \n" +#~ " Flag -P memaksa sebuah JALUR pencarian untuk setiap NAMA, bahkan jika " +#~ "ini merupakan sebuah alias,\n" +#~ " builtin, atau fungsi, dan mengembalikan nama ke disk file yang akan\n" +#~ " dijalankan." + +#~ msgid "" +#~ "The user file-creation mask is set to MODE. If MODE is omitted, or if\n" +#~ " `-S' is supplied, the current value of the mask is printed. The `-" +#~ "S'\n" +#~ " option makes the output symbolic; otherwise an octal number is " +#~ "output.\n" +#~ " If `-p' is supplied, and MODE is omitted, the output is in a form\n" +#~ " that may be used as input. If MODE begins with a digit, it is\n" +#~ " interpreted as an octal number, otherwise it is a symbolic mode " +#~ "string\n" +#~ " like that accepted by chmod(1)." +#~ msgstr "" +#~ "File-creation mask pengguna diset ke MODE. Jika MODE diabaikan, atau " +#~ "jika\n" +#~ " `-S' diberikan, nilai sekaran dari mask ditampilkan. Opsi `-S'\n" +#~ " membuah keluaran symbolic; jika tidak sebuah bilangan octal " +#~ "dikeluarkan.\n" +#~ " Jika opsi `-p' diberikan, dan MODE diabaikan, keluaran adalah dalam " +#~ "format\n" +#~ " yang bisa digunakan sebagai masukan. Jika MODE dimulai dengan sebuah " +#~ "digit, ini\n" +#~ " diinterpretasikan sebagai sebuah bilangan octal, jika tidak ini " +#~ "adalah sebuah symbolic mode string\n" +#~ " yang diterima oleh chmod(1)." + +#~ msgid "" +#~ "Wait for the specified process and report its termination status. If\n" +#~ " N is not given, all currently active child processes are waited for,\n" +#~ " and the return code is zero. N is a process ID; if it is not given,\n" +#~ " all child processes of the shell are waited for." +#~ msgstr "" +#~ "Menunggu sampai proses yang dispesifikasikan dan laporkan status " +#~ "selesainya. Jika\n" +#~ " N tidak diberikan, semua proses anak yang masih aktif ditunggu " +#~ "untuk,\n" +#~ " dan mengembalikan kode kembalian nol. N adalah sebuah proses ID; jika " +#~ "ini tidak diberikan,\n" +#~ " semua proses anak dari shell ditunggu." + +#~ msgid "" +#~ "Create a simple command invoked by NAME which runs COMMANDS.\n" +#~ " Arguments on the command line along with NAME are passed to the\n" +#~ " function as $0 .. $n." +#~ msgstr "" +#~ "Buat sebuah perintah sederhana yang memanggil dengan NAMA yang " +#~ "menjalankan PERINTAH.\n" +#~ " Argumen dalam baris perintah dengan NAMA dilewatkan ke\n" +#~ " fungsi sebagai $0 .. $n." + +#~ msgid "" +#~ "Toggle the values of variables controlling optional behavior.\n" +#~ " The -s flag means to enable (set) each OPTNAME; the -u flag\n" +#~ " unsets each OPTNAME. The -q flag suppresses output; the exit\n" +#~ " status indicates whether each OPTNAME is set or unset. The -o\n" +#~ " option restricts the OPTNAMEs to those defined for use with\n" +#~ " `set -o'. With no options, or with the -p option, a list of all\n" +#~ " settable options is displayed, with an indication of whether or\n" +#~ " not each is set." +#~ msgstr "" +#~ "Ubah nilai dari variabel yang mengontrol perilaku opsional.\n" +#~ " Opsi -s berarti untuk mengaktifkan (set) setiap OPTNAME; opsi -u\n" +#~ " mengunset setiap OPTNAME. tanda -q menekan keluaran; status keluaran\n" +#~ " mengindikasikan apakah setiap OPTNAME diset atau diunset. Opsi -o\n" +#~ " membatasi OPTNAME ke nilai yang didefinisikan untuk digunakan dengan\n" +#~ " `set -o'. Tanpa opsi, atau dengan opsi -p, sebuah daftar dari " +#~ "seluruh\n" +#~ " opsi yang bisa diset ditampilkan, tanpa sebuah indikasi apakah salah " +#~ "satu atau\n" +#~ " bukan setiap dari variabel diset." + +#~ msgid "" +#~ "For each NAME, specify how arguments are to be completed.\n" +#~ " If the -p option is supplied, or if no options are supplied, " +#~ "existing\n" +#~ " completion specifications are printed in a way that allows them to " +#~ "be\n" +#~ " reused as input. The -r option removes a completion specification " +#~ "for\n" +#~ " each NAME, or, if no NAMEs are supplied, all completion " +#~ "specifications." +#~ msgstr "" +#~ "Untuk setiap NAMA, spesifikasikan bagaimana argumen akan diselesaikan.\n" +#~ " Jika opsi -p diberikan, atau tidak ada opsi yang diberikan, " +#~ "completion\n" +#~ " spesifikasi yang telah ada ditampilkan dalam sebuah cara yang " +#~ "membolehkan mereka untuk\n" +#~ " digunakan sebagai masukan. Opsi -r menghapus sebuah spesifikasi " +#~ "completion untuk\n" +#~ " setiap NAMA, atau jika tidak ada NAMA yang diberikan, untuk semua " +#~ "spesifikasi completion." diff --git a/po/ja.gmo b/po/ja.gmo new file mode 100644 index 0000000000000000000000000000000000000000..ad8cdf55e63ea049f2a9579bd22d23bb72993847 GIT binary patch literal 8183 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, 2000. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU bash 2.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2009-01-06 11:56-0500\n" +"PO-Revision-Date: 2000-03-21 19:30+0900\n" +"Last-Translator: Kyoichi Ozaki \n" +"Language-Team: Japanese \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=EUC-JP\n" +"Content-Transfer-Encoding: 8bit\n" + +#: arrayfunc.c:50 +msgid "bad array subscript" +msgstr "" + +#: arrayfunc.c:313 builtins/declare.def:474 +#, c-format +msgid "%s: cannot convert indexed to associative array" +msgstr "" + +#: arrayfunc.c:479 +#, fuzzy, c-format +msgid "%s: invalid associative array key" +msgstr "%c%c: °­¤¤¥ª¥×¥·¥ç¥ó" + +#: arrayfunc.c:481 +#, c-format +msgid "%s: cannot assign to non-numeric index" +msgstr "" + +#: arrayfunc.c:517 +#, c-format +msgid "%s: %s: must use subscript when assigning associative array" +msgstr "" + +#: bashhist.c:380 +#, c-format +msgid "%s: cannot create: %s" +msgstr "%s: %s ¤òºîÀ®¤Ç¤­¤Þ¤»¤ó" + +#: bashline.c:3413 +msgid "bash_execute_unix_command: cannot find keymap for command" +msgstr "" + +#: bashline.c:3491 +#, c-format +msgid "%s: first non-whitespace character is not `\"'" +msgstr "" + +#: bashline.c:3520 +#, c-format +msgid "no closing `%c' in %s" +msgstr "" + +#: bashline.c:3554 +#, c-format +msgid "%s: missing colon separator" +msgstr "" + +#: builtins/bind.def:120 builtins/bind.def:123 +msgid "line editing not enabled" +msgstr "" + +#: builtins/bind.def:206 +#, c-format +msgid "`%s': invalid keymap name" +msgstr "" + +#: builtins/bind.def:245 +#, fuzzy, c-format +msgid "%s: cannot read: %s" +msgstr "%s: %s ¤òºîÀ®¤Ç¤­¤Þ¤»¤ó" + +#: builtins/bind.def:260 +#, fuzzy, c-format +msgid "`%s': cannot unbind" +msgstr "%s: ¥³¥Þ¥ó¥É¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó" + +#: builtins/bind.def:295 builtins/bind.def:325 +#, fuzzy, c-format +msgid "`%s': unknown function name" +msgstr "%s: Æɤ߹þ¤ß¤Î¤ß¤Î´Ø¿ô" + +#: builtins/bind.def:303 +#, c-format +msgid "%s is not bound to any keys.\n" +msgstr "" + +#: builtins/bind.def:307 +#, c-format +msgid "%s can be invoked via " +msgstr "" + +#: builtins/break.def:77 builtins/break.def:117 +#, fuzzy +msgid "loop count" +msgstr "¥í¥°¥¢¥¦¥È" + +#: builtins/break.def:137 +msgid "only meaningful in a `for', `while', or `until' loop" +msgstr "" + +#: builtins/caller.def:133 +msgid "" +"Returns the context of the current subroutine call.\n" +" \n" +" Without EXPR, returns " +msgstr "" + +#: builtins/cd.def:215 +msgid "HOME not set" +msgstr "" + +#: builtins/cd.def:227 +msgid "OLDPWD not set" +msgstr "" + +#: builtins/common.c:101 +#, fuzzy, c-format +msgid "line %d: " +msgstr "¥¹¥í¥Ã¥È %3d: " + +#: builtins/common.c:139 error.c:260 +#, fuzzy, c-format +msgid "warning: " +msgstr "½ñ¤­¹þ¤ßÃæ" + +#: builtins/common.c:153 +#, c-format +msgid "%s: usage: " +msgstr "" + +#: builtins/common.c:166 test.c:822 +msgid "too many arguments" +msgstr "°ú¿ô¤¬Â¿¤¹¤®¤Þ¤¹" + +#: builtins/common.c:191 shell.c:493 shell.c:774 +#, fuzzy, c-format +msgid "%s: option requires an argument" +msgstr "¥ª¥×¥·¥ç¥ó¤Ë¤Ï°ú¿ô¤¬É¬Í×: -" + +#: builtins/common.c:198 +#, c-format +msgid "%s: numeric argument required" +msgstr "" + +#: builtins/common.c:205 +#, fuzzy, c-format +msgid "%s: not found" +msgstr "%s: ¥³¥Þ¥ó¥É¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó" + +#: builtins/common.c:214 shell.c:787 +#, fuzzy, c-format +msgid "%s: invalid option" +msgstr "%c%c: °­¤¤¥ª¥×¥·¥ç¥ó" + +#: builtins/common.c:221 +#, fuzzy, c-format +msgid "%s: invalid option name" +msgstr "%c%c: °­¤¤¥ª¥×¥·¥ç¥ó" + +#: builtins/common.c:228 general.c:231 general.c:236 +#, fuzzy, c-format +msgid "`%s': not a valid identifier" +msgstr "`%s' ¤ÏÍ­¸ú¤Ê³Îǧ¤Ç¤Ï¤Ê¤¤" + +#: builtins/common.c:238 +#, fuzzy +msgid "invalid octal number" +msgstr "°­¤¤¥·¥°¥Ê¥ëÈÖ¹æ" + +#: builtins/common.c:240 +#, fuzzy +msgid "invalid hex number" +msgstr "°­¤¤¥·¥°¥Ê¥ëÈÖ¹æ" + +#: builtins/common.c:242 expr.c:1255 +#, fuzzy +msgid "invalid number" +msgstr "°­¤¤¥·¥°¥Ê¥ëÈÖ¹æ" + +#: builtins/common.c:250 +#, c-format +msgid "%s: invalid signal specification" +msgstr "" + +#: builtins/common.c:257 +#, c-format +msgid "`%s': not a pid or valid job spec" +msgstr "" + +#: builtins/common.c:264 error.c:453 +#, c-format +msgid "%s: readonly variable" +msgstr "%s: Æɤ߹þ¤ß¤Î¤ß¤ÎÊÑ¿ô" + +#: builtins/common.c:272 +#, c-format +msgid "%s: %s out of range" +msgstr "" + +#: builtins/common.c:272 builtins/common.c:274 +#, fuzzy +msgid "argument" +msgstr "°ú¿ô¤ò´üÂÔ" + +#: builtins/common.c:274 +#, c-format +msgid "%s out of range" +msgstr "" + +#: builtins/common.c:282 +#, c-format +msgid "%s: no such job" +msgstr "" + +#: builtins/common.c:290 +#, fuzzy, c-format +msgid "%s: no job control" +msgstr "¤³¤Î¥·¥§¥ë¤Ë¤Ï¥¸¥ç¥ÖÀ©¸æ¤¬¤¢¤ê¤Þ¤»¤ó" + +#: builtins/common.c:292 +#, fuzzy +msgid "no job control" +msgstr "¤³¤Î¥·¥§¥ë¤Ë¤Ï¥¸¥ç¥ÖÀ©¸æ¤¬¤¢¤ê¤Þ¤»¤ó" + +#: builtins/common.c:302 +#, fuzzy, c-format +msgid "%s: restricted" +msgstr "%s: ¥¸¥ç¥Ö¤Ï½ªÎ»¤·¤Þ¤·¤¿" + +#: builtins/common.c:304 +#, fuzzy +msgid "restricted" +msgstr "½ªÎ»¤·¤Þ¤·¤¿" + +#: builtins/common.c:312 +#, c-format +msgid "%s: not a shell builtin" +msgstr "" + +#: builtins/common.c:321 +#, fuzzy, c-format +msgid "write error: %s" +msgstr "¥Ñ¥¤¥×¥¨¥é¡¼: %s" + +#: builtins/common.c:553 +#, c-format +msgid "%s: error retrieving current directory: %s: %s\n" +msgstr "" + +#: builtins/common.c:619 builtins/common.c:621 +#, fuzzy, c-format +msgid "%s: ambiguous job spec" +msgstr "%s: ¤¢¤¤¤Þ¤¤¤Ê¥ê¥À¥¤¥ì¥¯¥È" + +#: builtins/complete.def:270 +#, c-format +msgid "%s: invalid action name" +msgstr "" + +#: builtins/complete.def:430 builtins/complete.def:615 +#: builtins/complete.def:813 +#, c-format +msgid "%s: no completion specification" +msgstr "" + +#: builtins/complete.def:667 +msgid "warning: -F option may not work as you expect" +msgstr "" + +#: builtins/complete.def:669 +msgid "warning: -C option may not work as you expect" +msgstr "" + +#: builtins/complete.def:786 +msgid "not currently executing completion function" +msgstr "" + +#: builtins/declare.def:122 +msgid "can only be used in a function" +msgstr "" + +#: builtins/declare.def:353 +msgid "cannot use `-f' to make functions" +msgstr "" + +#: builtins/declare.def:365 execute_cmd.c:4731 +#, c-format +msgid "%s: readonly function" +msgstr "%s: Æɤ߹þ¤ß¤Î¤ß¤Î´Ø¿ô" + +#: builtins/declare.def:461 +#, fuzzy, c-format +msgid "%s: cannot destroy array variables in this way" +msgstr "$%s: ¤³¤Î¤è¤¦¤Ë»ØÄê¤Ç¤­¤Þ¤»¤ó" + +#: builtins/declare.def:468 +#, c-format +msgid "%s: cannot convert associative to indexed array" +msgstr "" + +#: builtins/enable.def:137 builtins/enable.def:145 +msgid "dynamic loading not available" +msgstr "" + +#: builtins/enable.def:312 +#, fuzzy, c-format +msgid "cannot open shared object %s: %s" +msgstr "named pipe %s ¤ò %s ¤Ø³«¤±¤Þ¤»¤ó: %s" + +#: builtins/enable.def:335 +#, c-format +msgid "cannot find %s in shared object %s: %s" +msgstr "" + +#: builtins/enable.def:459 +#, c-format +msgid "%s: not dynamically loaded" +msgstr "" + +#: builtins/enable.def:474 +#, fuzzy, c-format +msgid "%s: cannot delete: %s" +msgstr "%s: %s ¤òºîÀ®¤Ç¤­¤Þ¤»¤ó" + +#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4588 +#: shell.c:1439 +#, c-format +msgid "%s: is a directory" +msgstr "%s: ¤Ï¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤¹" + +#: builtins/evalfile.c:139 +#, fuzzy, c-format +msgid "%s: not a regular file" +msgstr "%s: ¥Ð¥¤¥Ê¥ê¥Õ¥¡¥¤¥ë¤ò¼Â¹Ô¤Ç¤­¤Þ¤»¤ó" + +#: builtins/evalfile.c:147 +#, c-format +msgid "%s: file is too large" +msgstr "" + +#: builtins/evalfile.c:185 execute_cmd.c:4658 shell.c:1449 +#, c-format +msgid "%s: cannot execute binary file" +msgstr "%s: ¥Ð¥¤¥Ê¥ê¥Õ¥¡¥¤¥ë¤ò¼Â¹Ô¤Ç¤­¤Þ¤»¤ó" + +#: builtins/exec.def:212 +#, fuzzy, c-format +msgid "%s: cannot execute: %s" +msgstr "%s: %s ¤òºîÀ®¤Ç¤­¤Þ¤»¤ó" + +#: builtins/exit.def:65 +#, fuzzy, c-format +msgid "logout\n" +msgstr "¥í¥°¥¢¥¦¥È" + +#: builtins/exit.def:88 +msgid "not login shell: use `exit'" +msgstr "" + +#: builtins/exit.def:120 +#, c-format +msgid "There are stopped jobs.\n" +msgstr "" + +#: builtins/exit.def:122 +#, c-format +msgid "There are running jobs.\n" +msgstr "" + +#: builtins/fc.def:261 +#, fuzzy +msgid "no command found" +msgstr "%s: ¥³¥Þ¥ó¥É¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó" + +#: builtins/fc.def:341 +msgid "history specification" +msgstr "" + +#: builtins/fc.def:362 +#, fuzzy, c-format +msgid "%s: cannot open temp file: %s" +msgstr "%s: %s ¤òºîÀ®¤Ç¤­¤Þ¤»¤ó" + +#: builtins/fg_bg.def:149 builtins/jobs.def:282 +msgid "current" +msgstr "" + +#: builtins/fg_bg.def:158 +#, c-format +msgid "job %d started without job control" +msgstr "" + +#: builtins/getopt.c:110 +#, fuzzy, c-format +msgid "%s: illegal option -- %c\n" +msgstr "ÉÔÀµ¤Ê¥ª¥×¥·¥ç¥ó: -" + +#: builtins/getopt.c:111 +#, fuzzy, c-format +msgid "%s: option requires an argument -- %c\n" +msgstr "¥ª¥×¥·¥ç¥ó¤Ë¤Ï°ú¿ô¤¬É¬Í×: -" + +#: builtins/hash.def:92 +msgid "hashing disabled" +msgstr "" + +#: builtins/hash.def:138 +#, c-format +msgid "%s: hash table empty\n" +msgstr "" + +#: builtins/hash.def:244 +#, c-format +msgid "hits\tcommand\n" +msgstr "" + +#: builtins/help.def:130 +#, c-format +msgid "Shell commands matching keyword `" +msgid_plural "Shell commands matching keywords `" +msgstr[0] "" +msgstr[1] "" + +#: builtins/help.def:168 +#, c-format +msgid "" +"no help topics match `%s'. Try `help help' or `man -k %s' or `info %s'." +msgstr "" + +#: builtins/help.def:185 +#, fuzzy, c-format +msgid "%s: cannot open: %s" +msgstr "%s: %s ¤òºîÀ®¤Ç¤­¤Þ¤»¤ó" + +#: builtins/help.def:337 +#, c-format +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:154 +msgid "cannot use more than one of -anrw" +msgstr "" + +#: builtins/history.def:186 +msgid "history position" +msgstr "" + +#: builtins/history.def:365 +#, fuzzy, c-format +msgid "%s: history expansion failed" +msgstr "%s: »Ø¿ô¤Îɽ¸½¤ò´üÂÔ" + +#: builtins/inlib.def:71 +#, fuzzy, c-format +msgid "%s: inlib failed" +msgstr "%s: »Ø¿ô¤Îɽ¸½¤ò´üÂÔ" + +#: builtins/jobs.def:109 +msgid "no other options allowed with `-x'" +msgstr "" + +#: builtins/kill.def:197 +#, c-format +msgid "%s: arguments must be process or job IDs" +msgstr "" + +#: builtins/kill.def:260 +#, fuzzy +msgid "Unknown error" +msgstr "̤ÃΤΥ¨¥é¡¼ %d" + +#: builtins/let.def:95 builtins/let.def:120 expr.c:501 expr.c:516 +msgid "expression expected" +msgstr "ɽ¸½¤ò´üÂÔ¤·¤Æ¤Þ¤¹" + +#: builtins/mapfile.def:215 builtins/read.def:272 +#, c-format +msgid "%s: invalid file descriptor specification" +msgstr "" + +#: builtins/mapfile.def:223 builtins/read.def:279 +#, c-format +msgid "%d: invalid file descriptor: %s" +msgstr "" + +#: builtins/mapfile.def:232 builtins/mapfile.def:270 +#, fuzzy, c-format +msgid "%s: invalid line count" +msgstr "%c%c: °­¤¤¥ª¥×¥·¥ç¥ó" + +#: builtins/mapfile.def:243 +#, fuzzy, c-format +msgid "%s: invalid array origin" +msgstr "%c%c: °­¤¤¥ª¥×¥·¥ç¥ó" + +#: builtins/mapfile.def:260 +#, fuzzy, c-format +msgid "%s: invalid callback quantum" +msgstr "°­¤¤¥·¥°¥Ê¥ëÈÖ¹æ" + +#: builtins/mapfile.def:292 +#, fuzzy +msgid "empty array variable name" +msgstr "%s: Ÿ³«¤µ¤ì¤Æ¤¤¤Ê¤¤ÊÑ¿ô" + +#: builtins/mapfile.def:313 +msgid "array variable support required" +msgstr "" + +#: builtins/printf.def:367 +#, c-format +msgid "`%s': missing format character" +msgstr "" + +#: builtins/printf.def:544 +#, c-format +msgid "`%c': invalid format character" +msgstr "" + +#: builtins/printf.def:571 +#, c-format +msgid "warning: %s: %s" +msgstr "" + +#: builtins/printf.def:750 +msgid "missing hex digit for \\x" +msgstr "" + +#: builtins/pushd.def:195 +#, fuzzy +msgid "no other directory" +msgstr "%s: ¤Ï¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤¹" + +#: builtins/pushd.def:462 +msgid "" +msgstr "" + +#: builtins/pushd.def:506 +msgid "directory stack empty" +msgstr "" + +#: builtins/pushd.def:508 +#, fuzzy +msgid "directory stack index" +msgstr "Recursion stack underflow" + +#: builtins/pushd.def:683 +msgid "" +"Display the list of currently remembered directories. Directories\n" +" find their way onto the list with the `pushd' command; you can get\n" +" back up through the list with the `popd' command.\n" +" \n" +" Options:\n" +" -c\tclear the directory stack by deleting all of the elements\n" +" -l\tdo not print tilde-prefixed versions of directories relative\n" +" \tto your home directory\n" +" -p\tprint the directory stack with one entry per line\n" +" -v\tprint the directory stack with one entry per line prefixed\n" +" \twith its position in the stack\n" +" \n" +" Arguments:\n" +" +N\tDisplays the Nth entry counting from the left of the list shown " +"by\n" +" \tdirs when invoked without options, starting with zero.\n" +" \n" +" -N\tDisplays the Nth entry counting from the right of the list shown " +"by\n" +"\tdirs when invoked without options, starting with zero." +msgstr "" + +#: builtins/pushd.def:705 +msgid "" +"Adds a directory to the top of the directory stack, or rotates\n" +" the stack, making the new top of the stack the current working\n" +" directory. With no arguments, exchanges the top two directories.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when adding\n" +" \tdirectories to the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the left of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" -N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the right of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" dir\tAdds DIR to the directory stack at the top, making it the\n" +" \tnew current working directory.\n" +" \n" +" The `dirs' builtin displays the directory stack." +msgstr "" + +#: builtins/pushd.def:730 +msgid "" +"Removes entries from the directory stack. With no arguments, removes\n" +" the top directory from the stack, and changes to the new top directory.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when removing\n" +" \tdirectories from the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRemoves the Nth entry counting from the left of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd +0'\n" +" \tremoves the first directory, `popd +1' the second.\n" +" \n" +" -N\tRemoves the Nth entry counting from the right of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd -0'\n" +" \tremoves the last directory, `popd -1' the next to last.\n" +" \n" +" The `dirs' builtin displays the directory stack." +msgstr "" + +#: builtins/read.def:248 +#, c-format +msgid "%s: invalid timeout specification" +msgstr "" + +#: builtins/read.def:574 +#, fuzzy, c-format +msgid "read error: %d: %s" +msgstr "¥Ñ¥¤¥×¥¨¥é¡¼: %s" + +#: builtins/return.def:73 +msgid "can only `return' from a function or sourced script" +msgstr "" + +#: builtins/set.def:768 +msgid "cannot simultaneously unset a function and a variable" +msgstr "" + +#: builtins/set.def:805 +#, fuzzy, c-format +msgid "%s: cannot unset" +msgstr "%s: %s ¤òºîÀ®¤Ç¤­¤Þ¤»¤ó" + +#: builtins/set.def:812 +#, fuzzy, c-format +msgid "%s: cannot unset: readonly %s" +msgstr "%s: %s ¤òºîÀ®¤Ç¤­¤Þ¤»¤ó" + +#: builtins/set.def:823 +#, fuzzy, c-format +msgid "%s: not an array variable" +msgstr "%s: Ÿ³«¤µ¤ì¤Æ¤¤¤Ê¤¤ÊÑ¿ô" + +#: builtins/setattr.def:186 +#, fuzzy, c-format +msgid "%s: not a function" +msgstr "%s: Æɤ߹þ¤ß¤Î¤ß¤Î´Ø¿ô" + +#: builtins/shift.def:71 builtins/shift.def:77 +#, fuzzy +msgid "shift count" +msgstr "shift [n]" + +#: builtins/shopt.def:254 +msgid "cannot set and unset shell options simultaneously" +msgstr "" + +#: builtins/shopt.def:319 +#, c-format +msgid "%s: invalid shell option name" +msgstr "" + +#: builtins/source.def:128 +msgid "filename argument required" +msgstr "" + +#: builtins/source.def:153 +#, fuzzy, c-format +msgid "%s: file not found" +msgstr "%s: ¥³¥Þ¥ó¥É¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó" + +#: builtins/suspend.def:101 +msgid "cannot suspend" +msgstr "" + +#: builtins/suspend.def:111 +msgid "cannot suspend a login shell" +msgstr "" + +#: builtins/type.def:234 +#, c-format +msgid "%s is aliased to `%s'\n" +msgstr "" + +#: builtins/type.def:255 +#, c-format +msgid "%s is a shell keyword\n" +msgstr "" + +#: builtins/type.def:274 +#, fuzzy, c-format +msgid "%s is a function\n" +msgstr "%s: Æɤ߹þ¤ß¤Î¤ß¤Î´Ø¿ô" + +#: builtins/type.def:296 +#, c-format +msgid "%s is a shell builtin\n" +msgstr "" + +#: builtins/type.def:317 builtins/type.def:391 +#, c-format +msgid "%s is %s\n" +msgstr "" + +#: builtins/type.def:337 +#, c-format +msgid "%s is hashed (%s)\n" +msgstr "" + +#: builtins/ulimit.def:372 +#, c-format +msgid "%s: invalid limit argument" +msgstr "" + +#: builtins/ulimit.def:398 +#, fuzzy, c-format +msgid "`%c': bad command" +msgstr "%c%c: °­¤¤¥ª¥×¥·¥ç¥ó" + +#: builtins/ulimit.def:427 +#, fuzzy, c-format +msgid "%s: cannot get limit: %s" +msgstr "%s: %s ¤òºîÀ®¤Ç¤­¤Þ¤»¤ó" + +#: builtins/ulimit.def:453 +#, fuzzy +msgid "limit" +msgstr "CPU ¸ÂÅÙ" + +#: builtins/ulimit.def:465 builtins/ulimit.def:765 +#, fuzzy, c-format +msgid "%s: cannot modify limit: %s" +msgstr "%s: %s ¤òºîÀ®¤Ç¤­¤Þ¤»¤ó" + +#: builtins/umask.def:118 +#, fuzzy +msgid "octal number" +msgstr "°­¤¤¥·¥°¥Ê¥ëÈÖ¹æ" + +#: builtins/umask.def:231 +#, c-format +msgid "`%c': invalid symbolic mode operator" +msgstr "" + +#: builtins/umask.def:286 +#, c-format +msgid "`%c': invalid symbolic mode character" +msgstr "" + +#: error.c:89 error.c:320 error.c:322 error.c:324 +msgid " line " +msgstr "" + +#: error.c:164 +#, c-format +msgid "last command: %s\n" +msgstr "" + +#: error.c:172 +#, c-format +msgid "Aborting..." +msgstr "" + +#: error.c:405 +#, fuzzy +msgid "unknown command error" +msgstr "̤ÃΤΥ¨¥é¡¼ %d" + +#: error.c:406 +#, fuzzy +msgid "bad command type" +msgstr "print_command: °­¤¤¥³¥Þ¥ó¥É¥¿¥¤¥× `%d'" + +#: error.c:407 +#, fuzzy +msgid "bad connector" +msgstr "°­¤¤¼õÅϤ· `%d'" + +#: error.c:408 +#, fuzzy +msgid "bad jump" +msgstr "°­¤¤ jump %d" + +#: error.c:446 +#, c-format +msgid "%s: unbound variable" +msgstr "%s: Ÿ³«¤µ¤ì¤Æ¤¤¤Ê¤¤ÊÑ¿ô" + +#: eval.c:181 +#, fuzzy, c-format +msgid "\atimed out waiting for input: auto-logout\n" +msgstr "%c¤ÏÆþÎÏÂÔ¤Á¤«¤é¥¿¥¤¥à¥¢¥¦¥È¤·¤Þ¤·¤¿: ¼«Æ°¥í¥°¥¢¥¦¥È\n" + +#: execute_cmd.c:491 +#, c-format +msgid "cannot redirect standard input from /dev/null: %s" +msgstr "" + +#: execute_cmd.c:1091 +#, c-format +msgid "TIMEFORMAT: `%c': invalid format character" +msgstr "" + +#: execute_cmd.c:1942 +#, fuzzy +msgid "pipe error" +msgstr "¥Ñ¥¤¥×¥¨¥é¡¼: %s" + +#: execute_cmd.c:4276 +#, c-format +msgid "%s: restricted: cannot specify `/' in command names" +msgstr "%s: À©¸Â: `/' ¤ò¥³¥Þ¥ó¥É̾¤Ëµ­½Ò¤Ç¤­¤Þ¤»¤ó" + +#: execute_cmd.c:4367 +#, c-format +msgid "%s: command not found" +msgstr "%s: ¥³¥Þ¥ó¥É¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó" + +#: execute_cmd.c:4621 +#, fuzzy, c-format +msgid "%s: %s: bad interpreter" +msgstr "%s: ¤Ï¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤¹" + +#: execute_cmd.c:4770 +#, fuzzy, c-format +msgid "cannot duplicate fd %d to fd %d" +msgstr "fd %d ¤ò fd 0 ¤ËÊ£À½¤Ç¤­¤Þ¤»¤ó: %s" + +#: expr.c:241 +msgid "expression recursion level exceeded" +msgstr "ɽ¸½¤ÎºÆµ¢²Äǽ¥ì¥Ù¥ë¤ò±Û¤¨¤Þ¤·¤¿" + +#: expr.c:265 +#, fuzzy +msgid "recursion stack underflow" +msgstr "Recursion stack underflow" + +#: expr.c:379 +msgid "syntax error in expression" +msgstr "ɽ¸½¤Ë¥·¥ó¥¿¥Ã¥¯¥¹¥¨¥é¡¼" + +#: expr.c:419 +msgid "attempted assignment to non-variable" +msgstr "ÈóÊÑ¿ô¤Ë³ä¤êÅö¤Æ¤ò¹Ô¤ª¤¦¤È¤·¤Æ¤Þ¤¹" + +#: expr.c:440 expr.c:445 expr.c:756 +msgid "division by 0" +msgstr "0 ¤Î³ä»»" + +#: expr.c:471 +#, fuzzy +msgid "bug: bad expassign token" +msgstr "bug: bad expassign token' %d" + +#: expr.c:513 +msgid "`:' expected for conditional expression" +msgstr "`:' ¤ò¾ò·ï¤Îɽ¸½¤Î¤¿¤á´üÂÔ¤·¤Æ¤Þ¤¹" + +#: expr.c:781 +msgid "exponent less than 0" +msgstr "" + +#: expr.c:826 +msgid "identifier expected after pre-increment or pre-decrement" +msgstr "" + +#: expr.c:854 +msgid "missing `)'" +msgstr "`)' ¤¬¤¢¤ê¤Þ¤»¤ó" + +#: expr.c:897 expr.c:1175 +#, fuzzy +msgid "syntax error: operand expected" +msgstr "¥·¥ó¥¿¥Ã¥¯¥¹ ¥¨¥é¡¼: ´üÂÔ¤·¤Æ¤Ê¤¤¥Õ¥¡¥¤¥ë¤Î½ªÎ»" + +#: expr.c:1177 +msgid "syntax error: invalid arithmetic operator" +msgstr "" + +#: expr.c:1201 +#, c-format +msgid "%s%s%s: %s (error token is \"%s\")" +msgstr "" + +#: expr.c:1259 +msgid "invalid arithmetic base" +msgstr "" + +#: expr.c:1279 +msgid "value too great for base" +msgstr "¥Ù¡¼¥¹¤ÎÃͤˤÏÂ礭¤¹¤®¤Þ¤¹" + +#: expr.c:1328 +#, fuzzy, c-format +msgid "%s: expression error\n" +msgstr "%s: »Ø¿ô¤Îɽ¸½¤ò´üÂÔ" + +#: general.c:61 +#, fuzzy +msgid "getcwd: cannot access parent directories" +msgstr "getwd: ¾å°Ì¥Ç¥£¥ì¥¯¥È¥ê¤Ë¥¢¥¯¥»¥¹¤Ç¤­¤Þ¤»¤ó" + +#: input.c:94 subst.c:4559 +#, fuzzy, c-format +msgid "cannot reset nodelay mode for fd %d" +msgstr "fd %d ¤ò fd 0 ¤ËÊ£À½¤Ç¤­¤Þ¤»¤ó: %s" + +#: input.c:258 +#, c-format +msgid "cannot allocate new file descriptor for bash input from fd %d" +msgstr "" + +#: input.c:266 +#, fuzzy, c-format +msgid "save_bash_input: buffer already exists for new fd %d" +msgstr "check_bash_input: fd %d ¤Î¤¿¤á¤Î¥Ð¥Ã¥Õ¥¡¤Ï´û¤Ë¸ºß¤·¤Þ¤¹" + +#: jobs.c:466 +msgid "start_pipeline: pgrp pipe" +msgstr "" + +#: jobs.c:882 +#, c-format +msgid "forked pid %d appears in running job %d" +msgstr "" + +#: jobs.c:1000 +#, c-format +msgid "deleting stopped job %d with process group %ld" +msgstr "" + +#: jobs.c:1105 +#, c-format +msgid "add_process: process %5ld (%s) in the_pipeline" +msgstr "" + +#: jobs.c:1108 +#, c-format +msgid "add_process: pid %5ld (%s) marked as still alive" +msgstr "" + +#: jobs.c:1396 +#, fuzzy, c-format +msgid "describe_pid: %ld: no such pid" +msgstr "describe_pid: ¥×¥í¥»¥¹ID(%d)¤Ï¸ºß¤·¤Þ¤»¤ó!\n" + +#: jobs.c:1411 +#, fuzzy, c-format +msgid "Signal %d" +msgstr "̤ÃΤΥ·¥°¥Ê¥ë #%d" + +#: jobs.c:1425 jobs.c:1450 +msgid "Done" +msgstr "½ªÎ»" + +#: jobs.c:1430 siglist.c:122 +msgid "Stopped" +msgstr "Ää»ß" + +#: jobs.c:1434 +#, fuzzy, c-format +msgid "Stopped(%s)" +msgstr "Ää»ß" + +#: jobs.c:1438 +msgid "Running" +msgstr "¼Â¹ÔÃæ" + +#: jobs.c:1452 +#, c-format +msgid "Done(%d)" +msgstr "½ªÎ»(%d)" + +#: jobs.c:1454 +#, c-format +msgid "Exit %d" +msgstr "½ªÎ» %d" + +#: jobs.c:1457 +msgid "Unknown status" +msgstr "̤ÃΤΥ¹¥Æ¡¼¥¿¥¹" + +#: jobs.c:1544 +#, c-format +msgid "(core dumped) " +msgstr "(¥³¥¢¥À¥ó¥×) " + +#: jobs.c:1563 +#, c-format +msgid " (wd: %s)" +msgstr "" + +#: jobs.c:1766 +#, c-format +msgid "child setpgid (%ld to %ld)" +msgstr "" + +#: jobs.c:2094 nojobs.c:576 +#, fuzzy, c-format +msgid "wait: pid %ld is not a child of this shell" +msgstr "ÂÔµ¡: pid %d ¤³¤Î¥·¥§¥ë¤Î»Ò¥×¥í¥»¥¹¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó" + +#: jobs.c:2321 +#, c-format +msgid "wait_for: No record of process %ld" +msgstr "" + +#: jobs.c:2593 +#, c-format +msgid "wait_for_job: job %d is stopped" +msgstr "" + +#: jobs.c:2815 +#, c-format +msgid "%s: job has terminated" +msgstr "%s: ¥¸¥ç¥Ö¤Ï½ªÎ»¤·¤Þ¤·¤¿" + +#: jobs.c:2824 +#, c-format +msgid "%s: job %d already in background" +msgstr "" + +#: jobs.c:3487 +#, fuzzy, c-format +msgid "%s: line %d: " +msgstr "¥¹¥í¥Ã¥È %3d: " + +#: jobs.c:3501 nojobs.c:805 +#, c-format +msgid " (core dumped)" +msgstr " (¥³¥¢¥À¥ó¥×)" + +#: jobs.c:3513 jobs.c:3526 +#, c-format +msgid "(wd now: %s)\n" +msgstr "" + +#: jobs.c:3558 +#, fuzzy +msgid "initialize_job_control: getpgrp failed" +msgstr "initialize_jobs: getpgrp ¼ºÇÔ: %s" + +#: jobs.c:3618 +#, fuzzy +msgid "initialize_job_control: line discipline" +msgstr "initialize_jobs: ¥é¥¤¥ó discipline: %s" + +#: jobs.c:3628 +#, fuzzy +msgid "initialize_job_control: setpgid" +msgstr "initialize_jobs: getpgrp ¼ºÇÔ: %s" + +#: jobs.c:3656 +#, c-format +msgid "cannot set terminal process group (%d)" +msgstr "" + +#: jobs.c:3661 +msgid "no job control in this shell" +msgstr "¤³¤Î¥·¥§¥ë¤Ë¤Ï¥¸¥ç¥ÖÀ©¸æ¤¬¤¢¤ê¤Þ¤»¤ó" + +#: lib/malloc/malloc.c:296 +#, c-format +msgid "malloc: failed assertion: %s\n" +msgstr "" + +#: lib/malloc/malloc.c:312 +#, c-format +msgid "" +"\r\n" +"malloc: %s:%d: assertion botched\r\n" +msgstr "" + +#: lib/malloc/malloc.c:313 +#, fuzzy +msgid "unknown" +msgstr "<̤ÃÎ>" + +#: lib/malloc/malloc.c:797 +msgid "malloc: block on free list clobbered" +msgstr "" + +#: lib/malloc/malloc.c:874 +msgid "free: called with already freed block argument" +msgstr "" + +#: lib/malloc/malloc.c:877 +msgid "free: called with unallocated block argument" +msgstr "" + +#: lib/malloc/malloc.c:896 +msgid "free: underflow detected; mh_nbytes out of range" +msgstr "" + +#: lib/malloc/malloc.c:902 +msgid "free: start and end chunk sizes differ" +msgstr "" + +#: lib/malloc/malloc.c:1001 +msgid "realloc: called with unallocated block argument" +msgstr "" + +#: lib/malloc/malloc.c:1016 +msgid "realloc: underflow detected; mh_nbytes out of range" +msgstr "" + +#: lib/malloc/malloc.c:1022 +msgid "realloc: start and end chunk sizes differ" +msgstr "" + +#: lib/malloc/table.c:177 +#, c-format +msgid "register_alloc: alloc table is full with FIND_ALLOC?\n" +msgstr "" + +#: lib/malloc/table.c:184 +#, c-format +msgid "register_alloc: %p already in table as allocated?\n" +msgstr "" + +#: lib/malloc/table.c:220 +#, c-format +msgid "register_free: %p already in table as free?\n" +msgstr "" + +#: lib/sh/fmtulong.c:101 +msgid "invalid base" +msgstr "" + +#: lib/sh/netopen.c:168 +#, fuzzy, c-format +msgid "%s: host unknown" +msgstr "̤ÃÎ" + +#: lib/sh/netopen.c:175 +#, c-format +msgid "%s: invalid service" +msgstr "" + +#: lib/sh/netopen.c:306 +#, c-format +msgid "%s: bad network path specification" +msgstr "" + +#: lib/sh/netopen.c:346 +msgid "network operations not supported" +msgstr "" + +#: mailcheck.c:433 +msgid "You have mail in $_" +msgstr "¥á¡¼¥ë¤¬ $_ ¤Ë¤¢¤ê¤Þ¤¹" + +#: mailcheck.c:458 +msgid "You have new mail in $_" +msgstr "¿·¤·¤¤¥á¡¼¥ë¤¬ $_ ¤Ë¤¢¤ê¤Þ¤¹" + +#: mailcheck.c:474 +#, c-format +msgid "The mail in %s has been read\n" +msgstr "%s ¤Î¥á¡¼¥ë¤Ï´û¤ËÆɤޤì¤Æ¤Þ¤¹\n" + +#: make_cmd.c:322 +#, fuzzy +msgid "syntax error: arithmetic expression required" +msgstr "ɽ¸½¤Ë¥·¥ó¥¿¥Ã¥¯¥¹¥¨¥é¡¼" + +#: make_cmd.c:324 +#, fuzzy +msgid "syntax error: `;' unexpected" +msgstr "¥·¥ó¥¿¥Ã¥¯¥¹ ¥¨¥é¡¼: ´üÂÔ¤·¤Æ¤Ê¤¤¥Õ¥¡¥¤¥ë¤Î½ªÎ»" + +#: make_cmd.c:325 +#, fuzzy, c-format +msgid "syntax error: `((%s))'" +msgstr "¥·¥ó¥¿¥Ã¥¯¥¹¥¨¥é¡¼" + +#: make_cmd.c:567 +#, c-format +msgid "make_here_document: bad instruction type %d" +msgstr "make_here_document: °­¤¤»Ø¼¨¥¿¥¤¥× %d" + +#: make_cmd.c:651 +#, c-format +msgid "here-document at line %d delimited by end-of-file (wanted `%s')" +msgstr "" + +#: make_cmd.c:746 +#, c-format +msgid "make_redirection: redirection instruction `%d' out of range" +msgstr "" + +#: parse.y:2986 parse.y:3218 +#, fuzzy, c-format +msgid "unexpected EOF while looking for matching `%c'" +msgstr "´üÂÔ¤·¤Æ¤Ê¤¤¥Õ¥¡¥¤¥ë¤Î½ªÎ»(EOF)¤¬`%c'¤ò¸«ÉÕ¤±¤ë¤Þ¤¨¤ËȯÀ¸" + +#: parse.y:3722 +#, fuzzy +msgid "unexpected EOF while looking for `]]'" +msgstr "´üÂÔ¤·¤Æ¤Ê¤¤¥Õ¥¡¥¤¥ë¤Î½ªÎ»(EOF)¤¬`%c'¤ò¸«ÉÕ¤±¤ë¤Þ¤¨¤ËȯÀ¸" + +#: parse.y:3727 +#, fuzzy, c-format +msgid "syntax error in conditional expression: unexpected token `%s'" +msgstr "´üÂÔ¤·¤Æ¤Ê¤¤ token `%s' ¤Î¤¢¤¿¤ê¤Ë¥·¥ó¥¿¥Ã¥¯¥¹¥¨¥é¡¼" + +#: parse.y:3731 +#, fuzzy +msgid "syntax error in conditional expression" +msgstr "ɽ¸½¤Ë¥·¥ó¥¿¥Ã¥¯¥¹¥¨¥é¡¼" + +#: parse.y:3809 +#, c-format +msgid "unexpected token `%s', expected `)'" +msgstr "" + +#: parse.y:3813 +#, fuzzy +msgid "expected `)'" +msgstr "`)' ¤ò´üÂÔ" + +#: parse.y:3841 +#, c-format +msgid "unexpected argument `%s' to conditional unary operator" +msgstr "" + +#: parse.y:3845 +msgid "unexpected argument to conditional unary operator" +msgstr "" + +#: parse.y:3885 +#, c-format +msgid "unexpected token `%s', conditional binary operator expected" +msgstr "" + +#: parse.y:3889 +msgid "conditional binary operator expected" +msgstr "" + +#: parse.y:3906 +#, c-format +msgid "unexpected argument `%s' to conditional binary operator" +msgstr "" + +#: parse.y:3910 +msgid "unexpected argument to conditional binary operator" +msgstr "" + +#: parse.y:3921 +#, fuzzy, c-format +msgid "unexpected token `%c' in conditional command" +msgstr "`:' ¤ò¾ò·ï¤Îɽ¸½¤Î¤¿¤á´üÂÔ¤·¤Æ¤Þ¤¹" + +#: parse.y:3924 +#, fuzzy, c-format +msgid "unexpected token `%s' in conditional command" +msgstr "`:' ¤ò¾ò·ï¤Îɽ¸½¤Î¤¿¤á´üÂÔ¤·¤Æ¤Þ¤¹" + +#: parse.y:3928 +#, fuzzy, c-format +msgid "unexpected token %d in conditional command" +msgstr "`:' ¤ò¾ò·ï¤Îɽ¸½¤Î¤¿¤á´üÂÔ¤·¤Æ¤Þ¤¹" + +#: parse.y:5195 +#, c-format +msgid "syntax error near unexpected token `%s'" +msgstr "´üÂÔ¤·¤Æ¤Ê¤¤ token `%s' ¤Î¤¢¤¿¤ê¤Ë¥·¥ó¥¿¥Ã¥¯¥¹¥¨¥é¡¼" + +#: parse.y:5213 +#, fuzzy, c-format +msgid "syntax error near `%s'" +msgstr "´üÂÔ¤·¤Æ¤Ê¤¤ token `%s' ¤Î¤¢¤¿¤ê¤Ë¥·¥ó¥¿¥Ã¥¯¥¹¥¨¥é¡¼" + +#: parse.y:5223 +msgid "syntax error: unexpected end of file" +msgstr "¥·¥ó¥¿¥Ã¥¯¥¹ ¥¨¥é¡¼: ´üÂÔ¤·¤Æ¤Ê¤¤¥Õ¥¡¥¤¥ë¤Î½ªÎ»" + +#: parse.y:5223 +msgid "syntax error" +msgstr "¥·¥ó¥¿¥Ã¥¯¥¹¥¨¥é¡¼" + +#: parse.y:5285 +#, c-format +msgid "Use \"%s\" to leave the shell.\n" +msgstr "¥·¥§¥ë¤«¤éæ½Ð¤¹¤ë¤Î¤Ë \"%s\" ¤ò»È¤¤¤Ê¤µ¤¤.\n" + +#: parse.y:5447 +#, fuzzy +msgid "unexpected EOF while looking for matching `)'" +msgstr "´üÂÔ¤·¤Æ¤Ê¤¤¥Õ¥¡¥¤¥ë¤Î½ªÎ»(EOF)¤¬`%c'¤ò¸«ÉÕ¤±¤ë¤Þ¤¨¤ËȯÀ¸" + +#: pcomplete.c:1016 +#, c-format +msgid "completion: function `%s' not found" +msgstr "" + +#: pcomplib.c:179 +#, c-format +msgid "progcomp_insert: %s: NULL COMPSPEC" +msgstr "" + +#: print_cmd.c:287 +#, c-format +msgid "print_command: bad connector `%d'" +msgstr "print_command: °­¤¤Àܳ `%d'" + +#: print_cmd.c:1347 +#, c-format +msgid "cprintf: `%c': invalid format character" +msgstr "" + +#: redir.c:105 +msgid "file descriptor out of range" +msgstr "" + +#: redir.c:148 +#, fuzzy, c-format +msgid "%s: ambiguous redirect" +msgstr "%s: ¤¢¤¤¤Þ¤¤¤Ê¥ê¥À¥¤¥ì¥¯¥È" + +#: redir.c:152 +#, fuzzy, c-format +msgid "%s: cannot overwrite existing file" +msgstr "%s: ¸ºß¤¹¤ë¥Õ¥¡¥¤¥ë¤ò¾å½ñ¤­¤Ç¤­¤Þ¤»¤ó" + +#: redir.c:157 +#, fuzzy, c-format +msgid "%s: restricted: cannot redirect output" +msgstr "%s: À©¸Â: `/' ¤ò¥³¥Þ¥ó¥É̾¤Ëµ­½Ò¤Ç¤­¤Þ¤»¤ó" + +#: redir.c:162 +#, fuzzy, c-format +msgid "cannot create temp file for here-document: %s" +msgstr "¥×¥í¥»¥¹¤ÎÂåÆþ¤Ë¥Ñ¥¤¥×¤òºîÀ®¤Ç¤­¤Þ¤»¤ó: %s" + +#: redir.c:517 +msgid "/dev/(tcp|udp)/host/port not supported without networking" +msgstr "" + +#: redir.c:1023 +#, fuzzy +msgid "redirection error: cannot duplicate fd" +msgstr "¥ê¥À¥¤¥ì¥¯¥·¥ç¥ó¥¨¥é¡¼" + +#: shell.c:328 +msgid "could not find /tmp, please create!" +msgstr "" + +#: shell.c:332 +msgid "/tmp must be a valid directory name" +msgstr "" + +#: shell.c:876 +#, fuzzy, c-format +msgid "%c%c: invalid option" +msgstr "%c%c: °­¤¤¥ª¥×¥·¥ç¥ó" + +#: shell.c:1638 +msgid "I have no name!" +msgstr "»ä¤Ï̾Á°¤¬¤¢¤ê¤Þ¤»¤ó!" + +#: shell.c:1778 +#, fuzzy, c-format +msgid "GNU bash, version %s-(%s)\n" +msgstr "GNU %s, ¥Ð¡¼¥¸¥ç¥ó %s\n" + +#: shell.c:1779 +#, c-format +msgid "" +"Usage:\t%s [GNU long option] [option] ...\n" +"\t%s [GNU long option] [option] script-file ...\n" +msgstr "" +"»ÈÍÑÊýË¡:\t%s [GNU Ť¤¥ª¥×¥·¥ç¥ó] [¥ª¥×¥·¥ç¥ó] ...\n" +"\t%s [GNU Ť¤¥ª¥×¥·¥ç¥ó] [¥ª¥×¥·¥ç¥ó] ¥¹¥¯¥ê¥×¥È¥Õ¥¡¥¤¥ë ...\n" + +#: shell.c:1781 +msgid "GNU long options:\n" +msgstr "GNU Ť¤¥ª¥×¥·¥ç¥ó:\n" + +#: shell.c:1785 +msgid "Shell options:\n" +msgstr "¥·¥§¥ë ¥ª¥×¥·¥ç¥ó:\n" + +#: shell.c:1786 +#, fuzzy +msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n" +msgstr "\t-irsD Ëô¤Ï ¥³¥Þ¥ó¥É\t\t(Áʤ¨¤Î¤ß)\n" + +#: shell.c:1801 +#, c-format +msgid "\t-%s or -o option\n" +msgstr "\t-%s Ëô¤Ï -o ¥ª¥×¥·¥ç¥ó\n" + +#: shell.c:1807 +#, c-format +msgid "Type `%s -c \"help set\"' for more information about shell options.\n" +msgstr "¥·¥§¥ë¥ª¥×¥·¥ç¥ó¤Î¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï `%s -c \"help set\"'¤ÈÆþÎÏ.\n" + +#: shell.c:1808 +#, c-format +msgid "Type `%s -c help' for more information about shell builtin commands.\n" +msgstr "ÁȤ߹þ¤ß¥³¥Þ¥ó¥É¤Ë¤Ä¤¤¤Æ¤Ï `%s -c help'¤ÈÆþÎÏ .\n" + +#: shell.c:1809 +#, c-format +msgid "Use the `bashbug' command to report bugs.\n" +msgstr "" + +#: sig.c:583 +#, c-format +msgid "sigprocmask: %d: invalid operation" +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 "EMT »Ø¼¨" + +#: 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 +#, fuzzy +msgid "Terminated" +msgstr "½ªÎ»¤·¤Þ¤·¤¿" + +#: siglist.c:114 +msgid "Urgent IO condition" +msgstr "µÞ¤®¤Î IO ¾õÂÖ" + +#: 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 "Ää»ß (tty ÆþÎÏ)" + +#: siglist.c:142 +msgid "Stopped (tty output)" +msgstr "Ää»ß (tty ½ÐÎÏ)" + +#: siglist.c:146 +msgid "I/O ready" +msgstr "I/O ÍÑ°Õ¤¬¤Ç¤­¤Æ¤¤¤Þ¤¹" + +#: siglist.c:150 +msgid "CPU limit" +msgstr "CPU ¸ÂÅÙ" + +#: 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 "¥æ¡¼¥¶¥·¥°¥Ê¥ë 1" + +#: siglist.c:178 +msgid "User signal 2" +msgstr "¥æ¡¼¥¶¥·¥°¥Ê¥ë 2" + +#: siglist.c:182 +msgid "HFT input data pending" +msgstr "HFT ̤·è¤ÎÆþÎϥǡ¼¥¿" + +#: 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 "¥×¥í¥»¥¹¤ò°ã¤¦CPU¤Ë°ÜÆ°" + +#: siglist.c:198 +msgid "programming error" +msgstr "¥×¥í¥°¥é¥ß¥ó¥°¥¨¥é¡¼" + +#: siglist.c:202 +msgid "HFT monitor mode granted" +msgstr "HTF monitor¥â¡¼¥É¤¬Í¿¤¨¤é¤ì¤Þ¤·¤¿" + +#: siglist.c:206 +msgid "HFT monitor mode retracted" +msgstr "HFT monitor¥â¡¼¥É¤¬Ã¥¤ï¤ì¤Þ¤·¤¿" + +#: 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 "̤ÃΤΥ·¥°¥Ê¥ë #%d" + +#: subst.c:1181 subst.c:1302 +#, fuzzy, c-format +msgid "bad substitution: no closing `%s' in %s" +msgstr "°­¤¤ÂåÆþ: `%s' ¤¬ %s ¤Ë¤Ï¤¢¤ê¤Þ¤»¤ó" + +#: subst.c:2458 +#, c-format +msgid "%s: cannot assign list to array member" +msgstr "%s: ¥ê¥¹¥È¤òÇÛÎó¥á¥ó¥Ð¡¼¤Ë³ä¤êÅö¤Æ¤é¤ì¤Þ¤»¤ó" + +#: subst.c:4456 subst.c:4472 +#, fuzzy +msgid "cannot make pipe for process substitution" +msgstr "¥×¥í¥»¥¹¤ÎÂåÆþ¤Ë¥Ñ¥¤¥×¤òºîÀ®¤Ç¤­¤Þ¤»¤ó: %s" + +#: subst.c:4504 +#, fuzzy +msgid "cannot make child for process substitution" +msgstr "¥×¥í¥»¥¹¤ÎÂåÆþ¤Ë»Ò¤òºîÀ®¤Ç¤­¤Þ¤»¤ó: %s" + +#: subst.c:4549 +#, fuzzy, c-format +msgid "cannot open named pipe %s for reading" +msgstr "named pipe %s ¤ò %s ¤Ø³«¤±¤Þ¤»¤ó: %s" + +#: subst.c:4551 +#, fuzzy, c-format +msgid "cannot open named pipe %s for writing" +msgstr "named pipe %s ¤ò %s ¤Ø³«¤±¤Þ¤»¤ó: %s" + +#: subst.c:4569 +#, fuzzy, c-format +msgid "cannot duplicate named pipe %s as fd %d" +msgstr "named pipe %s ¤ò fd %d ¤Î¤¿¤á¤ËÊ£À½¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó: %s" + +#: subst.c:4765 +#, fuzzy +msgid "cannot make pipe for command substitution" +msgstr "ÂåÍý¥³¥Þ¥ó¥É¤Ë¥Ñ¥¤¥×¤òºîÀ®¤Ç¤­¤Þ¤»¤ó: %s" + +#: subst.c:4799 +#, fuzzy +msgid "cannot make child for command substitution" +msgstr "ÂåÍý¥³¥Þ¥ó¥É¤Ë»Ò¤òºîÀ®¤Ç¤­¤Þ¤»¤ó: %s" + +#: subst.c:4816 +#, fuzzy +msgid "command_substitute: cannot duplicate pipe as fd 1" +msgstr "command_substitute: ¥Ñ¥¤¥×¤ò fd 1 ¤È¤·¤ÆÊ£À½¤Ç¤­¤Þ¤»¤ó: %s" + +#: subst.c:5318 +#, c-format +msgid "%s: parameter null or not set" +msgstr "%s: ¥Ñ¥é¥á¡¼¥¿¤¬¥Ì¥ëËô¤Ï¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Þ¤»¤ó" + +#: subst.c:5608 +#, c-format +msgid "%s: substring expression < 0" +msgstr "" + +#: subst.c:6660 +#, c-format +msgid "%s: bad substitution" +msgstr "%s: °­¤¤ÂåÍý" + +#: subst.c:6740 +#, c-format +msgid "$%s: cannot assign in this way" +msgstr "$%s: ¤³¤Î¤è¤¦¤Ë»ØÄê¤Ç¤­¤Þ¤»¤ó" + +#: subst.c:7479 +#, fuzzy, c-format +msgid "bad substitution: no closing \"`\" in %s" +msgstr "°­¤¤ÂåÆþ: `%s' ¤¬ %s ¤Ë¤Ï¤¢¤ê¤Þ¤»¤ó" + +#: subst.c:8354 +#, c-format +msgid "no match: %s" +msgstr "" + +#: test.c:145 +msgid "argument expected" +msgstr "°ú¿ô¤ò´üÂÔ" + +#: test.c:154 +#, c-format +msgid "%s: integer expression expected" +msgstr "%s: »Ø¿ô¤Îɽ¸½¤ò´üÂÔ" + +#: test.c:262 +msgid "`)' expected" +msgstr "`)' ¤ò´üÂÔ" + +#: test.c:264 +#, c-format +msgid "`)' expected, found %s" +msgstr "`)', ¤ò´üÂÔ, ÆÀ¤¿¤Î¤Ï %s" + +#: test.c:279 test.c:688 test.c:691 +#, c-format +msgid "%s: unary operator expected" +msgstr "" + +#: test.c:444 test.c:731 +#, c-format +msgid "%s: binary operator expected" +msgstr "" + +#: test.c:806 +msgid "missing `]'" +msgstr "`]'¤¬È´¤±¤Æ¤Þ¤¹" + +#: trap.c:201 +#, fuzzy +msgid "invalid signal number" +msgstr "°­¤¤¥·¥°¥Ê¥ëÈÖ¹æ" + +#: trap.c:324 +#, c-format +msgid "run_pending_traps: bad value in trap_list[%d]: %p" +msgstr "" + +#: trap.c:328 +#, c-format +msgid "" +"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself" +msgstr "" + +#: trap.c:372 +#, fuzzy, c-format +msgid "trap_handler: bad signal %d" +msgstr "trap_handler: °­¤¤¥·¥°¥Ê¥ë %d" + +#: variables.c:358 +#, c-format +msgid "error importing function definition for `%s'" +msgstr "" + +#: variables.c:736 +#, c-format +msgid "shell level (%d) too high, resetting to 1" +msgstr "" + +#: variables.c:1898 +msgid "make_local_variable: no function context at current scope" +msgstr "" + +#: variables.c:3127 +msgid "all_local_variables: no function context at current scope" +msgstr "" + +#: variables.c:3344 variables.c:3353 +#, c-format +msgid "invalid character %d in exportstr for %s" +msgstr "" + +#: variables.c:3359 +#, c-format +msgid "no `=' in exportstr for %s" +msgstr "" + +#: variables.c:3794 +msgid "pop_var_context: head of shell_variables not a function context" +msgstr "" + +#: variables.c:3807 +msgid "pop_var_context: no global_variables context" +msgstr "" + +#: variables.c:3881 +msgid "pop_scope: head of shell_variables not a temporary environment scope" +msgstr "" + +#: version.c:46 +msgid "Copyright (C) 2009 Free Software Foundation, Inc." +msgstr "" + +#: version.c:47 +msgid "" +"License GPLv3+: GNU GPL version 3 or later \n" +msgstr "" + +#: version.c:86 +#, fuzzy, c-format +msgid "GNU bash, version %s (%s)\n" +msgstr "GNU %s, ¥Ð¡¼¥¸¥ç¥ó %s\n" + +#: version.c:91 +#, c-format +msgid "This is free software; you are free to change and redistribute it.\n" +msgstr "" + +#: version.c:92 +#, c-format +msgid "There is NO WARRANTY, to the extent permitted by law.\n" +msgstr "" + +#: xmalloc.c:92 +#, c-format +msgid "xmalloc: cannot allocate %lu bytes (%lu bytes allocated)" +msgstr "" + +#: xmalloc.c:94 +#, c-format +msgid "xmalloc: cannot allocate %lu bytes" +msgstr "" + +#: xmalloc.c:114 +#, c-format +msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)" +msgstr "" + +#: xmalloc.c:116 +#, c-format +msgid "xrealloc: cannot allocate %lu bytes" +msgstr "" + +#: xmalloc.c:150 +#, c-format +msgid "xmalloc: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)" +msgstr "" + +#: xmalloc.c:152 +#, c-format +msgid "xmalloc: %s:%d: cannot allocate %lu bytes" +msgstr "" + +#: xmalloc.c:174 +#, c-format +msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)" +msgstr "" + +#: xmalloc.c:176 +#, c-format +msgid "xrealloc: %s:%d: cannot allocate %lu bytes" +msgstr "" + +#: builtins.c:43 +msgid "alias [-p] [name[=value] ... ]" +msgstr "alias [-p] [̾Á°[=ÃÍ] ... ]" + +#: builtins.c:47 +#, fuzzy +msgid "unalias [-a] name [name ...]" +msgstr "unalias [-a] [̾Á° ...]" + +#: builtins.c:51 +msgid "" +"bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-" +"x keyseq:shell-command] [keyseq:readline-function or readline-command]" +msgstr "" + +#: builtins.c:54 +msgid "break [n]" +msgstr "ÃæÃÇ [n]" + +#: builtins.c:56 +msgid "continue [n]" +msgstr "³¹Ô [n]" + +#: builtins.c:58 +msgid "builtin [shell-builtin [arg ...]]" +msgstr "builtin [shell-builtin [°ú¿ô ...]]" + +#: builtins.c:61 +#, fuzzy +msgid "caller [expr]" +msgstr "test [ɽ¸½]" + +#: builtins.c:64 +msgid "cd [-L|-P] [dir]" +msgstr "" + +#: builtins.c:66 +msgid "pwd [-LP]" +msgstr "" + +#: builtins.c:68 +msgid ":" +msgstr ":" + +#: builtins.c:70 +msgid "true" +msgstr "" + +#: builtins.c:72 +msgid "false" +msgstr "" + +#: builtins.c:74 +msgid "command [-pVv] command [arg ...]" +msgstr "command [-pVv] ¥³¥Þ¥ó¥É [°ú¿ô ...]" + +#: builtins.c:76 +#, fuzzy +msgid "declare [-aAfFilrtux] [-p] [name[=value] ...]" +msgstr "declare [-afFrxi] [-p] ̾Á°[=ÃÍ] ..." + +#: builtins.c:78 +#, fuzzy +msgid "typeset [-aAfFilrtux] [-p] name[=value] ..." +msgstr "typeset [-afFrxi] [-p] ̾Á°[=ÃÍ] ..." + +#: builtins.c:80 +#, fuzzy +msgid "local [option] name[=value] ..." +msgstr "local ̾Á°[=ÃÍ] ..." + +#: builtins.c:83 +msgid "echo [-neE] [arg ...]" +msgstr "echo [-neE] [°ú¿ô ...]" + +#: builtins.c:87 +msgid "echo [-n] [arg ...]" +msgstr "echo [-n] [°ú¿ô ...]" + +#: builtins.c:90 +#, fuzzy +msgid "enable [-a] [-dnps] [-f filename] [name ...]" +msgstr "enable [-pnds] [-a] [-f ¥Õ¥¡¥¤¥ë̾] [̾Á° ...]" + +#: builtins.c:92 +msgid "eval [arg ...]" +msgstr "eval [°ú¿ô ...]" + +#: builtins.c:94 +msgid "getopts optstring name [arg]" +msgstr "getopts optstring ̾Á° [°ú¿ô]" + +#: builtins.c:96 +#, fuzzy +msgid "exec [-cl] [-a name] [command [arguments ...]] [redirection ...]" +msgstr "exec [-cl] [-a ̾Á°] ¥Õ¥¡¥¤¥ë [¥ê¥À¥¤¥ì¥¯¥·¥ç¥ó ...]" + +#: builtins.c:98 +msgid "exit [n]" +msgstr "½ªÎ» [n]" + +#: builtins.c:100 +#, fuzzy +msgid "logout [n]" +msgstr "¥í¥°¥¢¥¦¥È" + +#: builtins.c:103 +#, fuzzy +msgid "fc [-e ename] [-lnr] [first] [last] or fc -s [pat=rep] [command]" +msgstr "fc [-e ename] [-nlr] [ºÇ½é] [ºÇ¸å] of fc -s [¥Ñ¥¿¡¼¥ó=rep] [¥³¥Þ¥ó¥É]" + +#: builtins.c:107 +#, fuzzy +msgid "fg [job_spec]" +msgstr "disown [jobspec ...]" + +#: builtins.c:111 +#, fuzzy +msgid "bg [job_spec ...]" +msgstr "disown [jobspec ...]" + +#: builtins.c:114 +#, fuzzy +msgid "hash [-lr] [-p pathname] [-dt] [name ...]" +msgstr "hash [-r] [-p ¥Ñ¥¹Ì¾] [̾Á° ...]" + +#: builtins.c:117 +#, fuzzy +msgid "help [-ds] [pattern ...]" +msgstr "help [¥Ñ¥¿¡¼¥ó ...]" + +#: builtins.c:121 +#, fuzzy +msgid "" +"history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg " +"[arg...]" +msgstr "" +"history [-c] [n] Ëô¤Ï history -awrn [¥Õ¥¡¥¤¥ë̾] of history -ps arg [°ú¿ô...]" + +#: builtins.c:125 +msgid "jobs [-lnprs] [jobspec ...] or jobs -x command [args]" +msgstr "jobs [-lnprs] [jobspec ...] Ëô¤Ï jobs -x commando [°ú¿ô]" + +#: builtins.c:129 +#, fuzzy +msgid "disown [-h] [-ar] [jobspec ...]" +msgstr "disown [jobspec ...]" + +#: builtins.c:132 +#, fuzzy +msgid "" +"kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l " +"[sigspec]" +msgstr "" +"kill [-s sigspec | -n signum | -sigspec] [pid | job]... Ëô¤Ï kill -l " +"[sigspec]" + +#: builtins.c:134 +msgid "let arg [arg ...]" +msgstr "let °ú¿ô [°ú¿ô ...]" + +#: builtins.c:136 +msgid "" +"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-p prompt] [-t " +"timeout] [-u fd] [name ...]" +msgstr "" + +#: builtins.c:138 +msgid "return [n]" +msgstr "return [n]" + +#: builtins.c:140 +#, fuzzy +msgid "set [--abefhkmnptuvxBCHP] [-o option-name] [arg ...]" +msgstr "set [--abefhkmnptuvxBCHP] [-o ¥ª¥×¥·¥ç¥ó] [°ú¿ô ...]" + +#: builtins.c:142 +msgid "unset [-f] [-v] [name ...]" +msgstr "unset [-f] [-v] [̾Á° ...]" + +#: builtins.c:144 +#, fuzzy +msgid "export [-fn] [name[=value] ...] or export -p" +msgstr "export [-nf] [̾Á° ...] Ëô¤Ï export -p" + +#: builtins.c:146 +#, fuzzy +msgid "readonly [-af] [name[=value] ...] or readonly -p" +msgstr "readonly [-anf] [̾Á° ...] Ëô¤Ï readonly -p" + +#: builtins.c:148 +#, fuzzy +msgid "shift [n]" +msgstr "½ªÎ» [n]" + +#: builtins.c:150 +#, fuzzy +msgid "source filename [arguments]" +msgstr "source ¥Õ¥¡¥¤¥ë̾" + +#: builtins.c:152 +#, fuzzy +msgid ". filename [arguments]" +msgstr ". ¥Õ¥¡¥¤¥ë̾" + +#: builtins.c:155 +msgid "suspend [-f]" +msgstr "suspend [-f]" + +#: builtins.c:158 +msgid "test [expr]" +msgstr "test [ɽ¸½]" + +#: builtins.c:160 +msgid "[ arg... ]" +msgstr "[ °ú¿ô... ]" + +#: builtins.c:162 +msgid "times" +msgstr "times" + +#: builtins.c:164 +#, fuzzy +msgid "trap [-lp] [[arg] signal_spec ...]" +msgstr "trap [°ú¿ô] [signal_spec] Ëô¤Ï trap -l" + +#: builtins.c:166 +#, fuzzy +msgid "type [-afptP] name [name ...]" +msgstr "type [-apt] ̾Á° [̾Á° ...]" + +#: builtins.c:169 +#, fuzzy +msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]" +msgstr "ulimit [-SHacdfmstpnuv] [¾å¸Â]" + +#: builtins.c:172 +#, fuzzy +msgid "umask [-p] [-S] [mode]" +msgstr "umask [-S] [¥â¡¼¥É]" + +#: builtins.c:175 +#, fuzzy +msgid "wait [id]" +msgstr "wait [n]" + +#: builtins.c:179 +#, fuzzy +msgid "wait [pid]" +msgstr "wait [n]" + +#: builtins.c:182 +#, fuzzy +msgid "for NAME [in WORDS ... ] ; do COMMANDS; done" +msgstr "for ̾Á° [in ¸ÀÍÕ ... ;] do ¥³¥Þ¥ó¥É·²; done" + +#: builtins.c:184 +#, fuzzy +msgid "for (( exp1; exp2; exp3 )); do COMMANDS; done" +msgstr "for ̾Á° [in ¸ÀÍÕ ... ;] do ¥³¥Þ¥ó¥É·²; done" + +#: builtins.c:186 +msgid "select NAME [in WORDS ... ;] do COMMANDS; done" +msgstr "select ̾Á° [in ¸ÀÍÕ ... ;] do ¥³¥Þ¥ó¥É·²; done" + +#: builtins.c:188 +msgid "time [-p] pipeline" +msgstr "" + +#: builtins.c:190 +msgid "case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac" +msgstr "case ¸ÀÍÕ in [¥Ñ¥¿¡¼¥ó [| ¥Ñ¥¿¡¼¥ó]...) ¥³¥Þ¥ó¥É·² ;;]... esac" + +#: builtins.c:192 +msgid "" +"if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else " +"COMMANDS; ] fi" +msgstr "" +"if ¥³¥Þ¥ó¥É·²; then ¥³¥Þ¥ó¥É·²; [ elif ¥³¥Þ¥ó¥É·²; then ¥³¥Þ¥ó¥É·²; ]... " +"[ else ¥³¥Þ¥ó¥É·²; ] fi" + +#: builtins.c:194 +msgid "while COMMANDS; do COMMANDS; done" +msgstr "while ¥³¥Þ¥ó¥É·²; do ¥³¥Þ¥ó¥É·²; done" + +#: builtins.c:196 +msgid "until COMMANDS; do COMMANDS; done" +msgstr "until ¥³¥Þ¥ó¥É·²; do ¥³¥Þ¥ó¥É·²; done" + +#: builtins.c:198 +#, fuzzy +msgid "function name { COMMANDS ; } or name () { COMMANDS ; }" +msgstr "function ̾Á° { ¥³¥Þ¥ó¥É·² ; } or ̾Á° () { ¥³¥Þ¥ó¥É·² ; } " + +#: builtins.c:200 +#, fuzzy +msgid "{ COMMANDS ; }" +msgstr "{ ¥³¥Þ¥ó¥É·² }" + +#: builtins.c:202 +msgid "job_spec [&]" +msgstr "" + +#: builtins.c:204 +#, fuzzy +msgid "(( expression ))" +msgstr "ɽ¸½¤ò´üÂÔ¤·¤Æ¤Þ¤¹" + +#: builtins.c:206 +#, fuzzy +msgid "[[ expression ]]" +msgstr "ɽ¸½¤ò´üÂÔ¤·¤Æ¤Þ¤¹" + +#: builtins.c:208 +msgid "variables - Names and meanings of some shell variables" +msgstr "" + +#: builtins.c:211 +#, fuzzy +msgid "pushd [-n] [+N | -N | dir]" +msgstr "pushd [¥Ç¥£¥ì¥¯¥È¥ê | +N | -N ] [-n]" + +#: builtins.c:215 +#, fuzzy +msgid "popd [-n] [+N | -N]" +msgstr "popd [+N | -N] [-n]" + +#: builtins.c:219 +msgid "dirs [-clpv] [+N] [-N]" +msgstr "dirs [-clpv] [+N] [-N]" + +#: builtins.c:222 +#, fuzzy +msgid "shopt [-pqsu] [-o] [optname ...]" +msgstr "shopt [-pqsu] [-o Ť¤¥ª¥×¥·¥ç¥ó] optname [optname...]" + +#: builtins.c:224 +msgid "printf [-v var] format [arguments]" +msgstr "" + +#: builtins.c:227 +msgid "" +"complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W " +"wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] " +"[name ...]" +msgstr "" + +#: builtins.c:231 +msgid "" +"compgen [-abcdefgjksuv] [-o option] [-A action] [-G globpat] [-W wordlist] " +"[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]" +msgstr "" + +#: builtins.c:235 +#, fuzzy +msgid "compopt [-o|+o option] [name ...]" +msgstr "type [-apt] ̾Á° [̾Á° ...]" + +#: builtins.c:238 +msgid "" +"mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c " +"quantum] [array]" +msgstr "" + +#: builtins.c:250 +msgid "" +"Define or display aliases.\n" +" \n" +" Without arguments, `alias' prints the list of aliases in the reusable\n" +" form `alias NAME=VALUE' on standard output.\n" +" \n" +" Otherwise, an alias is defined for each NAME whose VALUE is given.\n" +" A trailing space in VALUE causes the next word to be checked for\n" +" alias substitution when the alias is expanded.\n" +" \n" +" Options:\n" +" -p\tPrint all defined aliases in a reusable format\n" +" \n" +" Exit Status:\n" +" alias returns true unless a NAME is supplied for which no alias has " +"been\n" +" defined." +msgstr "" + +#: builtins.c:272 +#, fuzzy +msgid "" +"Remove each NAME from the list of defined aliases.\n" +" \n" +" Options:\n" +" -a\tremove all alias definitions.\n" +" \n" +" Return success unless a NAME is not an existing alias." +msgstr "" +"[̾Á°]¤òÄêµÁ¤µ¤ì¤Æ¤¤¤ë¥¨¥¤¥ê¥¢¥¹¤«¤éºï½ü¤·¤Ê¤µ¤¤¡£¤â¤·¡¢-a ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ" +"¤¿¤Ê¤é¡¢" + +#: builtins.c:285 +msgid "" +"Set Readline key bindings and variables.\n" +" \n" +" Bind a key sequence to a Readline function or a macro, or set a\n" +" Readline variable. The non-option argument syntax is equivalent to\n" +" that found in ~/.inputrc, but must be passed as a single argument:\n" +" e.g., bind '\"\\C-x\\C-r\": re-read-init-file'.\n" +" \n" +" Options:\n" +" -m keymap Use KEYMAP as the keymap for the duration of this\n" +" command. Acceptable keymap names are emacs,\n" +" emacs-standard, emacs-meta, emacs-ctlx, vi, vi-" +"move,\n" +" vi-command, and vi-insert.\n" +" -l List names of functions.\n" +" -P List function names and bindings.\n" +" -p List functions and bindings in a form that can be\n" +" reused as input.\n" +" -S List key sequences that invoke macros and their " +"values\n" +" -s List key sequences that invoke macros and their " +"values\n" +" in a form that can be reused as input.\n" +" -V List variable names and values\n" +" -v List variable names and values in a form that can\n" +" be reused as input.\n" +" -q function-name Query about which keys invoke the named function.\n" +" -u function-name Unbind all keys which are bound to the named " +"function.\n" +" -r keyseq Remove the binding for KEYSEQ.\n" +" -f filename Read key bindings from FILENAME.\n" +" -x keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n" +" \t\t\t\tKEYSEQ is entered.\n" +" \n" +" Exit Status:\n" +" bind returns 0 unless an unrecognized option is given or an error occurs." +msgstr "" + +#: builtins.c:322 +msgid "" +"Exit for, while, or until loops.\n" +" \n" +" Exit a FOR, WHILE or UNTIL loop. If N is specified, break N enclosing\n" +" loops.\n" +" \n" +" Exit Status:\n" +" The exit status is 0 unless N is not greater than or equal to 1." +msgstr "" + +#: builtins.c:334 +msgid "" +"Resume for, while, or until loops.\n" +" \n" +" Resumes the next iteration of the enclosing FOR, WHILE or UNTIL loop.\n" +" If N is specified, resumes the Nth enclosing loop.\n" +" \n" +" Exit Status:\n" +" The exit status is 0 unless N is not greater than or equal to 1." +msgstr "" + +#: builtins.c:346 +msgid "" +"Execute shell builtins.\n" +" \n" +" Execute SHELL-BUILTIN with arguments ARGs without performing command\n" +" lookup. This is useful when you wish to reimplement a shell builtin\n" +" as a shell function, but need to execute the builtin within the " +"function.\n" +" \n" +" Exit Status:\n" +" Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is\n" +" not a shell builtin.." +msgstr "" + +#: builtins.c:361 +msgid "" +"Return the context of the current subroutine call.\n" +" \n" +" Without EXPR, returns \"$line $filename\". With EXPR, returns\n" +" \"$line $subroutine $filename\"; this extra information can be used to\n" +" provide a stack trace.\n" +" \n" +" The value of EXPR indicates how many call frames to go back before the\n" +" current one; the top frame is frame 0.\n" +" \n" +" Exit Status:\n" +" Returns 0 unless the shell is not executing a shell function or EXPR\n" +" is invalid." +msgstr "" + +#: builtins.c:379 +msgid "" +"Change the shell working directory.\n" +" \n" +" Change the current directory to DIR. The default DIR is the value of " +"the\n" +" HOME shell variable.\n" +" \n" +" The variable CDPATH defines the search path for the directory " +"containing\n" +" DIR. Alternative directory names in CDPATH are separated by a colon " +"(:).\n" +" A null directory name is the same as the current directory. If DIR " +"begins\n" +" with a slash (/), then CDPATH is not used.\n" +" \n" +" If the directory is not found, and the shell option `cdable_vars' is " +"set,\n" +" the word is assumed to be a variable name. If that variable has a " +"value,\n" +" its value is used for DIR.\n" +" \n" +" Options:\n" +" -L\tforce symbolic links to be followed\n" +" -P\tuse the physical directory structure without following symbolic\n" +" \tlinks\n" +" \n" +" The default is to follow symbolic links, as if `-L' were specified.\n" +" \n" +" Exit Status:\n" +" Returns 0 if the directory is changed; non-zero otherwise." +msgstr "" + +#: builtins.c:407 +msgid "" +"Print the name of the current working directory.\n" +" \n" +" Options:\n" +" -L\tprint the value of $PWD if it names the current working\n" +" \tdirectory\n" +" -P\tprint the physical directory, without any symbolic links\n" +" \n" +" By default, `pwd' behaves as if `-L' were specified.\n" +" \n" +" Exit Status:\n" +" Returns 0 unless an invalid option is given or the current directory\n" +" cannot be read." +msgstr "" + +#: builtins.c:424 +msgid "" +"Null command.\n" +" \n" +" No effect; the command does nothing.\n" +" \n" +" Exit Status:\n" +" Always succeeds." +msgstr "" + +#: builtins.c:435 +msgid "" +"Return a successful result.\n" +" \n" +" Exit Status:\n" +" Always succeeds." +msgstr "" + +#: builtins.c:444 +msgid "" +"Return an unsuccessful result.\n" +" \n" +" Exit Status:\n" +" Always fails." +msgstr "" + +#: builtins.c:453 +msgid "" +"Execute a simple command or display information about commands.\n" +" \n" +" Runs COMMAND with ARGS suppressing shell function lookup, or display\n" +" information about the specified COMMANDs. Can be used to invoke " +"commands\n" +" on disk when a function with the same name exists.\n" +" \n" +" Options:\n" +" -p\tuse a default value for PATH that is guaranteed to find all of\n" +" \tthe standard utilities\n" +" -v\tprint a description of COMMAND similar to the `type' builtin\n" +" -V\tprint a more verbose description of each COMMAND\n" +" \n" +" Exit Status:\n" +" Returns exit status of COMMAND, or failure if COMMAND is not found." +msgstr "" + +#: builtins.c:472 +msgid "" +"Set variable values and attributes.\n" +" \n" +" Declare variables and give them attributes. If no NAMEs are given,\n" +" display the attributes and values of all variables.\n" +" \n" +" Options:\n" +" -f\trestrict action or display to function names and definitions\n" +" -F\trestrict display to function names only (plus line number and\n" +" \tsource file when debugging)\n" +" -p\tdisplay the attributes and value of each NAME\n" +" \n" +" Options which set attributes:\n" +" -a\tto make NAMEs indexed arrays (if supported)\n" +" -A\tto make NAMEs associative arrays (if supported)\n" +" -i\tto make NAMEs have the `integer' attribute\n" +" -l\tto convert NAMEs to lower case on assignment\n" +" -r\tto make NAMEs readonly\n" +" -t\tto make NAMEs have the `trace' attribute\n" +" -u\tto convert NAMEs to upper case on assignment\n" +" -x\tto make NAMEs export\n" +" \n" +" Using `+' instead of `-' turns off the given attribute.\n" +" \n" +" Variables with the integer attribute have arithmetic evaluation (see\n" +" the `let' command) performed when the variable is assigned a value.\n" +" \n" +" When used in a function, `declare' makes NAMEs local, as with the " +"`local'\n" +" command.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" + +#: builtins.c:508 +msgid "" +"Set variable values and attributes.\n" +" \n" +" Obsolete. See `help declare'." +msgstr "" + +#: builtins.c:516 +msgid "" +"Define local variables.\n" +" \n" +" Create a local variable called NAME, and give it VALUE. OPTION can\n" +" be any option accepted by `declare'.\n" +" \n" +" Local variables can only be used within a function; they are visible\n" +" only to the function where they are defined and its children.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied, an error occurs,\n" +" or the shell is not executing a function." +msgstr "" + +#: builtins.c:533 +msgid "" +"Write arguments to the standard output.\n" +" \n" +" Display the ARGs on the standard output followed by a newline.\n" +" \n" +" Options:\n" +" -n\tdo not append a newline\n" +" -e\tenable interpretation of the following backslash escapes\n" +" -E\texplicitly suppress interpretation of backslash escapes\n" +" \n" +" `echo' interprets the following backslash-escaped characters:\n" +" \\a\talert (bell)\n" +" \\b\tbackspace\n" +" \\c\tsuppress further output\n" +" \\e\tescape character\n" +" \\f\tform feed\n" +" \\n\tnew line\n" +" \\r\tcarriage return\n" +" \\t\thorizontal tab\n" +" \\v\tvertical tab\n" +" \\\\\tbackslash\n" +" \\0nnn\tthe character whose ASCII code is NNN (octal). NNN can be\n" +" \t0 to 3 octal digits\n" +" \\xHH\tthe eight-bit character whose value is HH (hexadecimal). HH\n" +" \tcan be one or two hex digits\n" +" \n" +" Exit Status:\n" +" Returns success unless a write error occurs." +msgstr "" + +#: builtins.c:567 +msgid "" +"Write arguments to the standard output.\n" +" \n" +" Display the ARGs on the standard output followed by a newline.\n" +" \n" +" Options:\n" +" -n\tdo not append a newline\n" +" \n" +" Exit Status:\n" +" Returns success unless a write error occurs." +msgstr "" + +#: builtins.c:582 +msgid "" +"Enable and disable shell builtins.\n" +" \n" +" Enables and disables builtin shell commands. Disabling allows you to\n" +" execute a disk command which has the same name as a shell builtin\n" +" without using a full pathname.\n" +" \n" +" Options:\n" +" -a\tprint a list of builtins showing whether or not each is enabled\n" +" -n\tdisable each NAME or display a list of disabled builtins\n" +" -p\tprint the list of builtins in a reusable format\n" +" -s\tprint only the names of Posix `special' builtins\n" +" \n" +" Options controlling dynamic loading:\n" +" -f\tLoad builtin NAME from shared object FILENAME\n" +" -d\tRemove a builtin loaded with -f\n" +" \n" +" Without options, each NAME is enabled.\n" +" \n" +" To use the `test' found in $PATH instead of the shell builtin\n" +" version, type `enable -n test'.\n" +" \n" +" Exit Status:\n" +" Returns success unless NAME is not a shell builtin or an error occurs." +msgstr "" + +#: builtins.c:610 +msgid "" +"Execute arguments as a shell command.\n" +" \n" +" Combine ARGs into a single string, use the result as input to the " +"shell,\n" +" and execute the resulting commands.\n" +" \n" +" Exit Status:\n" +" Returns exit status of command or success if command is null." +msgstr "" + +#: builtins.c:622 +msgid "" +"Parse option arguments.\n" +" \n" +" Getopts is used by shell procedures to parse positional parameters\n" +" as options.\n" +" \n" +" OPTSTRING contains the option letters to be recognized; if a letter\n" +" is followed by a colon, the option is expected to have an argument,\n" +" which should be separated from it by white space.\n" +" \n" +" Each time it is invoked, getopts will place the next option in the\n" +" shell variable $name, initializing name if it does not exist, and\n" +" the index of the next argument to be processed into the shell\n" +" variable OPTIND. OPTIND is initialized to 1 each time the shell or\n" +" a shell script is invoked. When an option requires an argument,\n" +" getopts places that argument into the shell variable OPTARG.\n" +" \n" +" getopts reports errors in one of two ways. If the first character\n" +" of OPTSTRING is a colon, getopts uses silent error reporting. In\n" +" this mode, no error messages are printed. If an invalid option is\n" +" seen, getopts places the option character found into OPTARG. If a\n" +" required argument is not found, getopts places a ':' into NAME and\n" +" sets OPTARG to the option character found. If getopts is not in\n" +" silent mode, and an invalid option is seen, getopts places '?' into\n" +" NAME and unsets OPTARG. If a required argument is not found, a '?'\n" +" is placed in NAME, OPTARG is unset, and a diagnostic message is\n" +" printed.\n" +" \n" +" If the shell variable OPTERR has the value 0, getopts disables the\n" +" printing of error messages, even if the first character of\n" +" OPTSTRING is not a colon. OPTERR has the value 1 by default.\n" +" \n" +" Getopts normally parses the positional parameters ($0 - $9), but if\n" +" more arguments are given, they are parsed instead.\n" +" \n" +" Exit Status:\n" +" Returns success if an option is found; fails if the end of options is\n" +" encountered or an error occurs." +msgstr "" + +#: builtins.c:664 +msgid "" +"Replace the shell with the given command.\n" +" \n" +" Execute COMMAND, replacing this shell with the specified program.\n" +" ARGUMENTS become the arguments to COMMAND. If COMMAND is not " +"specified,\n" +" any redirections take effect in the current shell.\n" +" \n" +" Options:\n" +" -a name\tpass NAME as the zeroth argument to COMMAND\n" +" -c\t\texecute COMMAND with an empty environment\n" +" -l\t\tplace a dash in the zeroth argument to COMMAND\n" +" \n" +" If the command cannot be executed, a non-interactive shell exits, " +"unless\n" +" the shell option `execfail' is set.\n" +" \n" +" Exit Status:\n" +" Returns success unless COMMAND is not found or a redirection error " +"occurs." +msgstr "" + +#: builtins.c:685 +msgid "" +"Exit the shell.\n" +" \n" +" Exits the shell with a status of N. If N is omitted, the exit status\n" +" is that of the last command executed." +msgstr "" + +#: builtins.c:694 +msgid "" +"Exit a login shell.\n" +" \n" +" Exits a login shell with exit status N. Returns an error if not " +"executed\n" +" in a login shell." +msgstr "" + +#: builtins.c:704 +msgid "" +"Display or execute commands from the history list.\n" +" \n" +" fc is used to list or edit and re-execute commands from the history " +"list.\n" +" FIRST and LAST can be numbers specifying the range, or FIRST can be a\n" +" string, which means the most recent command beginning with that\n" +" string.\n" +" \n" +" Options:\n" +" -e ENAME\tselect which editor to use. Default is FCEDIT, then " +"EDITOR,\n" +" \t\tthen vi\n" +" -l \tlist lines instead of editing\n" +" -n\tomit line numbers when listing\n" +" -r\treverse the order of the lines (newest listed first)\n" +" \n" +" With the `fc -s [pat=rep ...] [command]' format, COMMAND is\n" +" re-executed after the substitution OLD=NEW is performed.\n" +" \n" +" A useful alias to use with this is r='fc -s', so that typing `r cc'\n" +" runs the last command beginning with `cc' and typing `r' re-executes\n" +" the last command.\n" +" \n" +" Exit Status:\n" +" Returns success or status of executed command; non-zero if an error " +"occurs." +msgstr "" + +#: builtins.c:734 +msgid "" +"Move job to the foreground.\n" +" \n" +" Place the job identified by JOB_SPEC in the foreground, making it the\n" +" current job. If JOB_SPEC is not present, the shell's notion of the\n" +" current job is used.\n" +" \n" +" Exit Status:\n" +" Status of command placed in foreground, or failure if an error occurs." +msgstr "" + +#: builtins.c:749 +msgid "" +"Move jobs to the background.\n" +" \n" +" Place the jobs identified by each JOB_SPEC in the background, as if " +"they\n" +" had been started with `&'. If JOB_SPEC is not present, the shell's " +"notion\n" +" of the current job is used.\n" +" \n" +" Exit Status:\n" +" Returns success unless job control is not enabled or an error occurs." +msgstr "" + +#: builtins.c:763 +msgid "" +"Remember or display program locations.\n" +" \n" +" Determine and remember the full pathname of each command NAME. If\n" +" no arguments are given, information about remembered commands is " +"displayed.\n" +" \n" +" Options:\n" +" -d\t\tforget the remembered location of each NAME\n" +" -l\t\tdisplay in a format that may be reused as input\n" +" -p pathname\tuse PATHNAME is the full pathname of NAME\n" +" -r\t\tforget all remembered locations\n" +" -t\t\tprint the remembered location of each NAME, preceding\n" +" \t\teach location with the corresponding NAME if multiple\n" +" \t\tNAMEs are given\n" +" Arguments:\n" +" NAME\t\tEach NAME is searched for in $PATH and added to the list\n" +" \t\tof remembered commands.\n" +" \n" +" Exit Status:\n" +" Returns success unless NAME is not found or an invalid option is given." +msgstr "" + +#: builtins.c:788 +msgid "" +"Display information about builtin commands.\n" +" \n" +" Displays brief summaries of builtin commands. If PATTERN is\n" +" specified, gives detailed help on all commands matching PATTERN,\n" +" otherwise the list of help topics is printed.\n" +" \n" +" Options:\n" +" -d\toutput short description for each topic\n" +" -m\tdisplay usage in pseudo-manpage format\n" +" -s\toutput only a short usage synopsis for each topic matching\n" +" \tPATTERN\n" +" \n" +" Arguments:\n" +" PATTERN\tPattern specifiying a help topic\n" +" \n" +" Exit Status:\n" +" Returns success unless PATTERN is not found or an invalid option is " +"given." +msgstr "" + +#: builtins.c:812 +msgid "" +"Display or manipulate the history list.\n" +" \n" +" Display the history list with line numbers, prefixing each modified\n" +" entry with a `*'. An argument of N lists only the last N entries.\n" +" \n" +" Options:\n" +" -c\tclear the history list by deleting all of the entries\n" +" -d offset\tdelete the history entry at offset OFFSET.\n" +" \n" +" -a\tappend history lines from this session to the history file\n" +" -n\tread all history lines not already read from the history file\n" +" -r\tread the history file and append the contents to the history\n" +" \tlist\n" +" -w\twrite the current history to the history file\n" +" \tand append them to the history list\n" +" \n" +" -p\tperform history expansion on each ARG and display the result\n" +" \twithout storing it in the history list\n" +" -s\tappend the ARGs to the history list as a single entry\n" +" \n" +" If FILENAME is given, it is used as the history file. Otherwise,\n" +" if $HISTFILE has a value, that is used, else ~/.bash_history.\n" +" \n" +" If the $HISTTIMEFORMAT variable is set and not null, its value is used\n" +" as a format string for strftime(3) to print the time stamp associated\n" +" with each displayed history entry. No time stamps are printed " +"otherwise.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or an error occurs." +msgstr "" + +#: builtins.c:848 +msgid "" +"Display status of jobs.\n" +" \n" +" Lists the active jobs. JOBSPEC restricts output to that job.\n" +" Without options, the status of all active jobs is displayed.\n" +" \n" +" Options:\n" +" -l\tlists process IDs in addition to the normal information\n" +" -n\tlist only processes that have changed status since the last\n" +" \tnotification\n" +" -p\tlists process IDs only\n" +" -r\trestrict output to running jobs\n" +" -s\trestrict output to stopped jobs\n" +" \n" +" If -x is supplied, COMMAND is run after all job specifications that\n" +" appear in ARGS have been replaced with the process ID of that job's\n" +" process group leader.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or an error occurs.\n" +" If -x is used, returns the exit status of COMMAND." +msgstr "" + +#: builtins.c:875 +msgid "" +"Remove jobs from current shell.\n" +" \n" +" Removes each JOBSPEC argument from the table of active jobs. Without\n" +" any JOBSPECs, the shell uses its notion of the current job.\n" +" \n" +" Options:\n" +" -a\tremove all jobs if JOBSPEC is not supplied\n" +" -h\tmark each JOBSPEC so that SIGHUP is not sent to the job if the\n" +" \tshell receives a SIGHUP\n" +" -r\tremove only running jobs\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option or JOBSPEC is given." +msgstr "" + +#: builtins.c:894 +msgid "" +"Send a signal to a job.\n" +" \n" +" Send the processes identified by PID or JOBSPEC the signal named by\n" +" SIGSPEC or SIGNUM. If neither SIGSPEC nor SIGNUM is present, then\n" +" SIGTERM is assumed.\n" +" \n" +" Options:\n" +" -s sig\tSIG is a signal name\n" +" -n sig\tSIG is a signal number\n" +" -l\tlist the signal names; if arguments follow `-l' they are\n" +" \tassumed to be signal numbers for which names should be listed\n" +" \n" +" Kill is a shell builtin for two reasons: it allows job IDs to be used\n" +" instead of process IDs, and allows processes to be killed if the limit\n" +" on processes that you can create is reached.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or an error occurs." +msgstr "" + +#: builtins.c:917 +msgid "" +"Evaluate arithmetic expressions.\n" +" \n" +" Evaluate each ARG as an arithmetic expression. Evaluation is done in\n" +" fixed-width integers with no check for overflow, though division by 0\n" +" is trapped and flagged as an error. The following list of operators is\n" +" grouped into levels of equal-precedence operators. The levels are " +"listed\n" +" in order of decreasing precedence.\n" +" \n" +" \tid++, id--\tvariable post-increment, post-decrement\n" +" \t++id, --id\tvariable pre-increment, pre-decrement\n" +" \t-, +\t\tunary minus, plus\n" +" \t!, ~\t\tlogical and bitwise negation\n" +" \t**\t\texponentiation\n" +" \t*, /, %\t\tmultiplication, division, remainder\n" +" \t+, -\t\taddition, subtraction\n" +" \t<<, >>\t\tleft and right bitwise shifts\n" +" \t<=, >=, <, >\tcomparison\n" +" \t==, !=\t\tequality, inequality\n" +" \t&\t\tbitwise AND\n" +" \t^\t\tbitwise XOR\n" +" \t|\t\tbitwise OR\n" +" \t&&\t\tlogical AND\n" +" \t||\t\tlogical OR\n" +" \texpr ? expr : expr\n" +" \t\t\tconditional operator\n" +" \t=, *=, /=, %=,\n" +" \t+=, -=, <<=, >>=,\n" +" \t&=, ^=, |=\tassignment\n" +" \n" +" Shell variables are allowed as operands. The name of the variable\n" +" is replaced by its value (coerced to a fixed-width integer) within\n" +" an expression. The variable need not have its integer attribute\n" +" turned on to be used in an expression.\n" +" \n" +" Operators are evaluated in order of precedence. Sub-expressions in\n" +" parentheses are evaluated first and may override the precedence\n" +" rules above.\n" +" \n" +" Exit Status:\n" +" If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise.." +msgstr "" + +#: builtins.c:962 +msgid "" +"Read a line from the standard input and split it into fields.\n" +" \n" +" Reads a single line from the standard input, or from file descriptor FD\n" +" if the -u option is supplied. The line is split into fields as with " +"word\n" +" splitting, and the first word is assigned to the first NAME, the second\n" +" word to the second NAME, and so on, with any leftover words assigned to\n" +" the last NAME. Only the characters found in $IFS are recognized as " +"word\n" +" delimiters.\n" +" \n" +" If no NAMEs are supplied, the line read is stored in the REPLY " +"variable.\n" +" \n" +" Options:\n" +" -a array\tassign the words read to sequential indices of the array\n" +" \t\tvariable ARRAY, starting at zero\n" +" -d delim\tcontinue until the first character of DELIM is read, rather\n" +" \t\tthan newline\n" +" -e\t\tuse Readline to obtain the line in an interactive shell\n" +" -i text\tUse TEXT as the initial text for Readline\n" +" -n nchars\treturn after reading NCHARS characters rather than waiting\n" +" \t\tfor a newline\n" +" -p prompt\toutput the string PROMPT without a trailing newline before\n" +" \t\tattempting to read\n" +" -r\t\tdo not allow backslashes to escape any characters\n" +" -s\t\tdo not echo input coming from a terminal\n" +" -t timeout\ttime out and return failure if a complete line of input " +"is\n" +" \t\tnot read withint TIMEOUT seconds. The value of the TMOUT\n" +" \t\tvariable is the default timeout. TIMEOUT may be a\n" +" \t\tfractional number. If TIMEOUT is 0, read returns success only\n" +" \t\tif input is available on the specified file descriptor. The\n" +" \t\texit status is greater than 128 if the timeout is exceeded\n" +" -u fd\t\tread from file descriptor FD instead of the standard input\n" +" \n" +" Exit Status:\n" +" The return code is zero, unless end-of-file is encountered, read times " +"out,\n" +" or an invalid file descriptor is supplied as the argument to -u." +msgstr "" + +#: builtins.c:1002 +msgid "" +"Return from a shell function.\n" +" \n" +" Causes a function or sourced script to exit with the return value\n" +" specified by N. If N is omitted, the return status is that of the\n" +" last command executed within the function or script.\n" +" \n" +" Exit Status:\n" +" Returns N, or failure if the shell is not executing a function or script." +msgstr "" + +#: builtins.c:1015 +msgid "" +"Set or unset values of shell options and positional parameters.\n" +" \n" +" Change the value of shell attributes and positional parameters, or\n" +" display the names and values of shell variables.\n" +" \n" +" Options:\n" +" -a Mark variables which are modified or created for export.\n" +" -b Notify of job termination immediately.\n" +" -e Exit immediately if a command exits with a non-zero status.\n" +" -f Disable file name generation (globbing).\n" +" -h Remember the location of commands as they are looked up.\n" +" -k All assignment arguments are placed in the environment for a\n" +" command, not just those that precede the command name.\n" +" -m Job control is enabled.\n" +" -n Read commands but do not execute them.\n" +" -o option-name\n" +" Set the variable corresponding to option-name:\n" +" allexport same as -a\n" +" braceexpand same as -B\n" +" emacs use an emacs-style line editing interface\n" +" errexit same as -e\n" +" errtrace same as -E\n" +" functrace same as -T\n" +" hashall same as -h\n" +" histexpand same as -H\n" +" history enable command history\n" +" ignoreeof the shell will not exit upon reading EOF\n" +" interactive-comments\n" +" allow comments to appear in interactive commands\n" +" keyword same as -k\n" +" monitor same as -m\n" +" noclobber same as -C\n" +" noexec same as -n\n" +" noglob same as -f\n" +" nolog currently accepted but ignored\n" +" notify same as -b\n" +" nounset same as -u\n" +" onecmd same as -t\n" +" physical same as -P\n" +" pipefail the return value of a pipeline is the status of\n" +" the last command to exit with a non-zero status,\n" +" or zero if no command exited with a non-zero " +"status\n" +" posix change the behavior of bash where the default\n" +" operation differs from the Posix standard to\n" +" match the standard\n" +" privileged same as -p\n" +" verbose same as -v\n" +" vi use a vi-style line editing interface\n" +" xtrace same as -x\n" +" -p Turned on whenever the real and effective user ids do not match.\n" +" Disables processing of the $ENV file and importing of shell\n" +" functions. Turning this option off causes the effective uid and\n" +" gid to be set to the real uid and gid.\n" +" -t Exit after reading and executing one command.\n" +" -u Treat unset variables as an error when substituting.\n" +" -v Print shell input lines as they are read.\n" +" -x Print commands and their arguments as they are executed.\n" +" -B the shell will perform brace expansion\n" +" -C If set, disallow existing regular files to be overwritten\n" +" by redirection of output.\n" +" -E If set, the ERR trap is inherited by shell functions.\n" +" -H Enable ! style history substitution. This flag is on\n" +" by default when the shell is interactive.\n" +" -P If set, do not follow symbolic links when executing commands\n" +" such as cd which change the current directory.\n" +" -T If set, the DEBUG trap is inherited by shell functions.\n" +" - Assign any remaining arguments to the positional parameters.\n" +" The -x and -v options are turned off.\n" +" \n" +" Using + rather than - causes these flags to be turned off. The\n" +" flags can also be used upon invocation of the shell. The current\n" +" set of flags may be found in $-. The remaining n ARGs are positional\n" +" parameters and are assigned, in order, to $1, $2, .. $n. If no\n" +" ARGs are given, all shell variables are printed.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given." +msgstr "" + +#: builtins.c:1097 +msgid "" +"Unset values and attributes of shell variables and functions.\n" +" \n" +" For each NAME, remove the corresponding variable or function.\n" +" \n" +" Options:\n" +" -f\ttreat each NAME as a shell function\n" +" -v\ttreat each NAME as a shell variable\n" +" \n" +" Without options, unset first tries to unset a variable, and if that " +"fails,\n" +" tries to unset a function.\n" +" \n" +" Some variables cannot be unset; also see `readonly'.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or a NAME is read-only." +msgstr "" + +#: builtins.c:1117 +msgid "" +"Set export attribute for shell variables.\n" +" \n" +" Marks each NAME for automatic export to the environment of subsequently\n" +" executed commands. If VALUE is supplied, assign VALUE before " +"exporting.\n" +" \n" +" Options:\n" +" -f\trefer to shell functions\n" +" -n\tremove the export property from each NAME\n" +" -p\tdisplay a list of all exported variables and functions\n" +" \n" +" An argument of `--' disables further option processing.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or NAME is invalid." +msgstr "" + +#: builtins.c:1136 +msgid "" +"Mark shell variables as unchangeable.\n" +" \n" +" Mark each NAME as read-only; the values of these NAMEs may not be\n" +" changed by subsequent assignment. If VALUE is supplied, assign VALUE\n" +" before marking as read-only.\n" +" \n" +" Options:\n" +" -a\trefer to indexed array variables\n" +" -A\trefer to associative array variables\n" +" -f\trefer to shell functions\n" +" -p\tdisplay a list of all readonly variables and functions\n" +" \n" +" An argument of `--' disables further option processing.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or NAME is invalid." +msgstr "" + +#: builtins.c:1157 +msgid "" +"Shift positional parameters.\n" +" \n" +" Rename the positional parameters $N+1,$N+2 ... to $1,$2 ... If N is\n" +" not given, it is assumed to be 1.\n" +" \n" +" Exit Status:\n" +" Returns success unless N is negative or greater than $#." +msgstr "" + +#: builtins.c:1169 builtins.c:1184 +msgid "" +"Execute commands from a file in the current shell.\n" +" \n" +" Read and execute commands from FILENAME in the current shell. The\n" +" entries in $PATH are used to find the directory containing FILENAME.\n" +" If any ARGUMENTS are supplied, they become the positional parameters\n" +" when FILENAME is executed.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed in FILENAME; fails if\n" +" FILENAME cannot be read." +msgstr "" + +#: builtins.c:1200 +msgid "" +"Suspend shell execution.\n" +" \n" +" Suspend the execution of this shell until it receives a SIGCONT signal.\n" +" Unless forced, login shells cannot be suspended.\n" +" \n" +" Options:\n" +" -f\tforce the suspend, even if the shell is a login shell\n" +" \n" +" Exit Status:\n" +" Returns success unless job control is not enabled or an error occurs." +msgstr "" + +#: builtins.c:1216 +msgid "" +"Evaluate conditional expression.\n" +" \n" +" Exits with a status of 0 (true) or 1 (false) depending on\n" +" the evaluation of EXPR. Expressions may be unary or binary. Unary\n" +" expressions are often used to examine the status of a file. There\n" +" are string operators as well, and numeric comparison operators.\n" +" \n" +" File operators:\n" +" \n" +" -a FILE True if file exists.\n" +" -b FILE True if file is block special.\n" +" -c FILE True if file is character special.\n" +" -d FILE True if file is a directory.\n" +" -e FILE True if file exists.\n" +" -f FILE True if file exists and is a regular file.\n" +" -g FILE True if file is set-group-id.\n" +" -h FILE True if file is a symbolic link.\n" +" -L FILE True if file is a symbolic link.\n" +" -k FILE True if file has its `sticky' bit set.\n" +" -p FILE True if file is a named pipe.\n" +" -r FILE True if file is readable by you.\n" +" -s FILE True if file exists and is not empty.\n" +" -S FILE True if file is a socket.\n" +" -t FD True if FD is opened on a terminal.\n" +" -u FILE True if the file is set-user-id.\n" +" -w FILE True if the file is writable by you.\n" +" -x FILE True if the file is executable by you.\n" +" -O FILE True if the file is effectively owned by you.\n" +" -G FILE True if the file is effectively owned by your group.\n" +" -N FILE True if the file has been modified since it was last " +"read.\n" +" \n" +" FILE1 -nt FILE2 True if file1 is newer than file2 (according to\n" +" modification date).\n" +" \n" +" FILE1 -ot FILE2 True if file1 is older than file2.\n" +" \n" +" FILE1 -ef FILE2 True if file1 is a hard link to file2.\n" +" \n" +" String operators:\n" +" \n" +" -z STRING True if string is empty.\n" +" \n" +" -n STRING\n" +" STRING True if string is not empty.\n" +" \n" +" STRING1 = STRING2\n" +" True if the strings are equal.\n" +" STRING1 != STRING2\n" +" True if the strings are not equal.\n" +" STRING1 < STRING2\n" +" True if STRING1 sorts before STRING2 " +"lexicographically.\n" +" STRING1 > STRING2\n" +" True if STRING1 sorts after STRING2 lexicographically.\n" +" \n" +" Other operators:\n" +" \n" +" -o OPTION True if the shell option OPTION is enabled.\n" +" ! EXPR True if expr is false.\n" +" EXPR1 -a EXPR2 True if both expr1 AND expr2 are true.\n" +" EXPR1 -o EXPR2 True if either expr1 OR expr2 is true.\n" +" \n" +" arg1 OP arg2 Arithmetic tests. OP is one of -eq, -ne,\n" +" -lt, -le, -gt, or -ge.\n" +" \n" +" Arithmetic binary operators return true if ARG1 is equal, not-equal,\n" +" less-than, less-than-or-equal, greater-than, or greater-than-or-equal\n" +" than ARG2.\n" +" \n" +" Exit Status:\n" +" Returns success if EXPR evaluates to true; fails if EXPR evaluates to\n" +" false or an invalid argument is given." +msgstr "" + +#: builtins.c:1292 +msgid "" +"Evaluate conditional expression.\n" +" \n" +" This is a synonym for the \"test\" builtin, but the last argument must\n" +" be a literal `]', to match the opening `['." +msgstr "" + +#: builtins.c:1301 +msgid "" +"Display process times.\n" +" \n" +" Prints the accumulated user and system times for the shell and all of " +"its\n" +" child processes.\n" +" \n" +" Exit Status:\n" +" Always succeeds." +msgstr "" + +#: builtins.c:1313 +msgid "" +"Trap signals and other events.\n" +" \n" +" Defines and activates handlers to be run when the shell receives " +"signals\n" +" or other conditions.\n" +" \n" +" ARG is a command to be read and executed when the shell receives the\n" +" signal(s) SIGNAL_SPEC. If ARG is absent (and a single SIGNAL_SPEC\n" +" is supplied) or `-', each specified signal is reset to its original\n" +" value. If ARG is the null string each SIGNAL_SPEC is ignored by the\n" +" shell and by the commands it invokes.\n" +" \n" +" If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell. " +"If\n" +" a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command.\n" +" \n" +" If no arguments are supplied, trap prints the list of commands " +"associated\n" +" with each signal.\n" +" \n" +" Options:\n" +" -l\tprint a list of signal names and their corresponding numbers\n" +" -p\tdisplay the trap commands associated with each SIGNAL_SPEC\n" +" \n" +" Each SIGNAL_SPEC is either a signal name in or a signal " +"number.\n" +" Signal names are case insensitive and the SIG prefix is optional. A\n" +" signal may be sent to the shell with \"kill -signal $$\".\n" +" \n" +" Exit Status:\n" +" Returns success unless a SIGSPEC is invalid or an invalid option is " +"given." +msgstr "" + +#: builtins.c:1345 +msgid "" +"Display information about command type.\n" +" \n" +" For each NAME, indicate how it would be interpreted if used as a\n" +" command name.\n" +" \n" +" Options:\n" +" -a\tdisplay all locations containing an executable named NAME;\n" +" \tincludes aliases, builtins, and functions, if and only if\n" +" \tthe `-p' option is not also used\n" +" -f\tsuppress shell function lookup\n" +" -P\tforce a PATH search for each NAME, even if it is an alias,\n" +" \tbuiltin, or function, and returns the name of the disk file\n" +" \tthat would be executed\n" +" -p\treturns either the name of the disk file that would be executed,\n" +" \tor nothing if `type -t NAME' would not return `file'.\n" +" -t\toutput a single word which is one of `alias', `keyword',\n" +" \t`function', `builtin', `file' or `', if NAME is an alias, shell\n" +" \treserved word, shell function, shell builtin, disk file, or not\n" +" \tfound, respectively\n" +" \n" +" Arguments:\n" +" NAME\tCommand name to be interpreted.\n" +" \n" +" Exit Status:\n" +" Returns success if all of the NAMEs are found; fails if any are not " +"found." +msgstr "" + +#: builtins.c:1376 +msgid "" +"Modify shell resource limits.\n" +" \n" +" Provides control over the resources available to the shell and " +"processes\n" +" it creates, on systems that allow such control.\n" +" \n" +" Options:\n" +" -S\tuse the `soft' resource limit\n" +" -H\tuse the `hard' resource limit\n" +" -a\tall current limits are reported\n" +" -b\tthe socket buffer size\n" +" -c\tthe maximum size of core files created\n" +" -d\tthe maximum size of a process's data segment\n" +" -e\tthe maximum scheduling priority (`nice')\n" +" -f\tthe maximum size of files written by the shell and its children\n" +" -i\tthe maximum number of pending signals\n" +" -l\tthe maximum size a process may lock into memory\n" +" -m\tthe maximum resident set size\n" +" -n\tthe maximum number of open file descriptors\n" +" -p\tthe pipe buffer size\n" +" -q\tthe maximum number of bytes in POSIX message queues\n" +" -r\tthe maximum real-time scheduling priority\n" +" -s\tthe maximum stack size\n" +" -t\tthe maximum amount of cpu time in seconds\n" +" -u\tthe maximum number of user processes\n" +" -v\tthe size of virtual memory\n" +" -x\tthe maximum number of file locks\n" +" \n" +" If LIMIT is given, it is the new value of the specified resource; the\n" +" special LIMIT values `soft', `hard', and `unlimited' stand for the\n" +" current soft limit, the current hard limit, and no limit, respectively.\n" +" Otherwise, the current value of the specified resource is printed. If\n" +" no option is given, then -f is assumed.\n" +" \n" +" Values are in 1024-byte increments, except for -t, which is in seconds,\n" +" -p, which is in increments of 512 bytes, and -u, which is an unscaled\n" +" number of processes.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" + +#: builtins.c:1421 +msgid "" +"Display or set file mode mask.\n" +" \n" +" Sets the user file-creation mask to MODE. If MODE is omitted, prints\n" +" the current value of the mask.\n" +" \n" +" If MODE begins with a digit, it is interpreted as an octal number;\n" +" otherwise it is a symbolic mode string like that accepted by chmod(1).\n" +" \n" +" Options:\n" +" -p\tif MODE is omitted, output in a form that may be reused as input\n" +" -S\tmakes the output symbolic; otherwise an octal number is output\n" +" \n" +" Exit Status:\n" +" Returns success unless MODE is invalid or an invalid option is given." +msgstr "" + +#: builtins.c:1441 +msgid "" +"Wait for job completion and return exit status.\n" +" \n" +" Waits for the process identified by ID, which may be a process ID or a\n" +" job specification, and reports its termination status. If ID is not\n" +" given, waits for all currently active child processes, and the return\n" +" status is zero. If ID is a a job specification, waits for all " +"processes\n" +" in the job's pipeline.\n" +" \n" +" Exit Status:\n" +" Returns the status of ID; fails if ID is invalid or an invalid option " +"is\n" +" given." +msgstr "" + +#: builtins.c:1459 +msgid "" +"Wait for process completion and return exit status.\n" +" \n" +" Waits for the specified process and reports its termination status. If\n" +" PID is not given, all currently active child processes are waited for,\n" +" and the return code is zero. PID must be a process ID.\n" +" \n" +" Exit Status:\n" +" Returns the status of ID; fails if ID is invalid or an invalid option " +"is\n" +" given." +msgstr "" + +#: builtins.c:1474 +msgid "" +"Execute commands for each member in a list.\n" +" \n" +" The `for' loop executes a sequence of commands for each member in a\n" +" list of items. If `in WORDS ...;' is not present, then `in \"$@\"' is\n" +" assumed. For each element in WORDS, NAME is set to that element, and\n" +" the COMMANDS are executed.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" + +#: builtins.c:1488 +msgid "" +"Arithmetic for loop.\n" +" \n" +" Equivalent to\n" +" \t(( EXP1 ))\n" +" \twhile (( EXP2 )); do\n" +" \t\tCOMMANDS\n" +" \t\t(( EXP3 ))\n" +" \tdone\n" +" EXP1, EXP2, and EXP3 are arithmetic expressions. If any expression is\n" +" omitted, it behaves as if it evaluates to 1.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" + +#: builtins.c:1506 +msgid "" +"Select words from a list and execute commands.\n" +" \n" +" The WORDS are expanded, generating a list of words. The\n" +" set of expanded words is printed on the standard error, each\n" +" preceded by a number. If `in WORDS' is not present, `in \"$@\"'\n" +" is assumed. The PS3 prompt is then displayed and a line read\n" +" from the standard input. If the line consists of the number\n" +" corresponding to one of the displayed words, then NAME is set\n" +" to that word. If the line is empty, WORDS and the prompt are\n" +" redisplayed. If EOF is read, the command completes. Any other\n" +" value read causes NAME to be set to null. The line read is saved\n" +" in the variable REPLY. COMMANDS are executed after each selection\n" +" until a break command is executed.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" + +#: builtins.c:1527 +msgid "" +"Report time consumed by pipeline's execution.\n" +" \n" +" Execute PIPELINE and print a summary of the real time, user CPU time,\n" +" and system CPU time spent executing PIPELINE when it terminates.\n" +" \n" +" Options:\n" +" -p\tprint the timing summary in the portable Posix format\n" +" \n" +" The value of the TIMEFORMAT variable is used as the output format.\n" +" \n" +" Exit Status:\n" +" The return status is the return status of PIPELINE." +msgstr "" + +#: builtins.c:1544 +msgid "" +"Execute commands based on pattern matching.\n" +" \n" +" Selectively execute COMMANDS based upon WORD matching PATTERN. The\n" +" `|' is used to separate multiple patterns.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" + +#: builtins.c:1556 +msgid "" +"Execute commands based on conditional.\n" +" \n" +" The `if COMMANDS' list is executed. If its exit status is zero, then " +"the\n" +" `then COMMANDS' list is executed. Otherwise, each `elif COMMANDS' list " +"is\n" +" executed in turn, and if its exit status is zero, the corresponding\n" +" `then COMMANDS' list is executed and the if command completes. " +"Otherwise,\n" +" the `else COMMANDS' list is executed, if present. The exit status of " +"the\n" +" entire construct is the exit status of the last command executed, or " +"zero\n" +" if no condition tested true.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" + +#: builtins.c:1573 +msgid "" +"Execute commands as long as a test succeeds.\n" +" \n" +" Expand and execute COMMANDS as long as the final command in the\n" +" `while' COMMANDS has an exit status of zero.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" + +#: builtins.c:1585 +msgid "" +"Execute commands as long as a test does not succeed.\n" +" \n" +" Expand and execute COMMANDS as long as the final command in the\n" +" `until' COMMANDS has an exit status which is not zero.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" + +#: builtins.c:1597 +msgid "" +"Define shell function.\n" +" \n" +" Create a shell function named NAME. When invoked as a simple command,\n" +" NAME runs COMMANDs in the calling shell's context. When NAME is " +"invoked,\n" +" the arguments are passed to the function as $1...$n, and the function's\n" +" name is in $FUNCNAME.\n" +" \n" +" Exit Status:\n" +" Returns success unless NAME is readonly." +msgstr "" + +#: builtins.c:1611 +msgid "" +"Group commands as a unit.\n" +" \n" +" Run a set of commands in a group. This is one way to redirect an\n" +" entire set of commands.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" + +#: builtins.c:1623 +msgid "" +"Resume job in foreground.\n" +" \n" +" Equivalent to the JOB_SPEC argument to the `fg' command. Resume a\n" +" stopped or background job. JOB_SPEC can specify either a job name\n" +" or a job number. Following JOB_SPEC with a `&' places the job in\n" +" the background, as if the job specification had been supplied as an\n" +" argument to `bg'.\n" +" \n" +" Exit Status:\n" +" Returns the status of the resumed job." +msgstr "" + +#: builtins.c:1638 +msgid "" +"Evaluate arithmetic expression.\n" +" \n" +" The EXPRESSION is evaluated according to the rules for arithmetic\n" +" evaluation. Equivalent to \"let EXPRESSION\".\n" +" \n" +" Exit Status:\n" +" Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise." +msgstr "" + +#: builtins.c:1650 +msgid "" +"Execute conditional command.\n" +" \n" +" Returns a status of 0 or 1 depending on the evaluation of the " +"conditional\n" +" expression EXPRESSION. Expressions are composed of the same primaries " +"used\n" +" by the `test' builtin, and may be combined using the following " +"operators:\n" +" \n" +" ( EXPRESSION )\tReturns the value of EXPRESSION\n" +" ! EXPRESSION\t\tTrue if EXPRESSION is false; else false\n" +" EXPR1 && EXPR2\tTrue if both EXPR1 and EXPR2 are true; else false\n" +" EXPR1 || EXPR2\tTrue if either EXPR1 or EXPR2 is true; else false\n" +" \n" +" When the `==' and `!=' operators are used, the string to the right of\n" +" the operator is used as a pattern and pattern matching is performed.\n" +" When the `=~' operator is used, the string to the right of the operator\n" +" is matched as a regular expression.\n" +" \n" +" The && and || operators do not evaluate EXPR2 if EXPR1 is sufficient to\n" +" determine the expression's value.\n" +" \n" +" Exit Status:\n" +" 0 or 1 depending on value of EXPRESSION." +msgstr "" + +#: builtins.c:1676 +msgid "" +"Common shell variable names and usage.\n" +" \n" +" BASH_VERSION\tVersion information for this Bash.\n" +" CDPATH\tA colon-separated list of directories to search\n" +" \t\tfor directories given as arguments to `cd'.\n" +" GLOBIGNORE\tA colon-separated list of patterns describing filenames to\n" +" \t\tbe ignored by pathname expansion.\n" +" HISTFILE\tThe name of the file where your command history is stored.\n" +" HISTFILESIZE\tThe maximum number of lines this file can contain.\n" +" HISTSIZE\tThe maximum number of history lines that a running\n" +" \t\tshell can access.\n" +" HOME\tThe complete pathname to your login directory.\n" +" HOSTNAME\tThe name of the current host.\n" +" HOSTTYPE\tThe type of CPU this version of Bash is running under.\n" +" IGNOREEOF\tControls the action of the shell on receipt of an EOF\n" +" \t\tcharacter as the sole input. If set, then the value\n" +" \t\tof it is the number of EOF characters that can be seen\n" +" \t\tin a row on an empty line before the shell will exit\n" +" \t\t(default 10). When unset, EOF signifies the end of input.\n" +" MACHTYPE\tA string describing the current system Bash is running on.\n" +" MAILCHECK\tHow often, in seconds, Bash checks for new mail.\n" +" MAILPATH\tA colon-separated list of filenames which Bash checks\n" +" \t\tfor new mail.\n" +" OSTYPE\tThe version of Unix this version of Bash is running on.\n" +" PATH\tA colon-separated list of directories to search when\n" +" \t\tlooking for commands.\n" +" PROMPT_COMMAND\tA command to be executed before the printing of each\n" +" \t\tprimary prompt.\n" +" PS1\t\tThe primary prompt string.\n" +" PS2\t\tThe secondary prompt string.\n" +" PWD\t\tThe full pathname of the current directory.\n" +" SHELLOPTS\tA colon-separated list of enabled shell options.\n" +" TERM\tThe name of the current terminal type.\n" +" TIMEFORMAT\tThe output format for timing statistics displayed by the\n" +" \t\t`time' reserved word.\n" +" auto_resume\tNon-null means a command word appearing on a line by\n" +" \t\titself is first looked for in the list of currently\n" +" \t\tstopped jobs. If found there, that job is foregrounded.\n" +" \t\tA value of `exact' means that the command word must\n" +" \t\texactly match a command in the list of stopped jobs. A\n" +" \t\tvalue of `substring' means that the command word must\n" +" \t\tmatch a substring of the job. Any other value means that\n" +" \t\tthe command must be a prefix of a stopped job.\n" +" histchars\tCharacters controlling history expansion and quick\n" +" \t\tsubstitution. The first character is the history\n" +" \t\tsubstitution character, usually `!'. The second is\n" +" \t\tthe `quick substitution' character, usually `^'. The\n" +" \t\tthird is the `history comment' character, usually `#'.\n" +" HISTIGNORE\tA colon-separated list of patterns used to decide which\n" +" \t\tcommands should be saved on the history list.\n" +msgstr "" + +#: builtins.c:1733 +msgid "" +"Add directories to stack.\n" +" \n" +" Adds a directory to the top of the directory stack, or rotates\n" +" the stack, making the new top of the stack the current working\n" +" directory. With no arguments, exchanges the top two directories.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when adding\n" +" \tdirectories to the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the left of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" -N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the right of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" dir\tAdds DIR to the directory stack at the top, making it the\n" +" \tnew current working directory.\n" +" \n" +" The `dirs' builtin displays the directory stack.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid argument is supplied or the directory\n" +" change fails." +msgstr "" + +#: builtins.c:1767 +msgid "" +"Remove directories from stack.\n" +" \n" +" Removes entries from the directory stack. With no arguments, removes\n" +" the top directory from the stack, and changes to the new top directory.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when removing\n" +" \tdirectories from the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRemoves the Nth entry counting from the left of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd +0'\n" +" \tremoves the first directory, `popd +1' the second.\n" +" \n" +" -N\tRemoves the Nth entry counting from the right of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd -0'\n" +" \tremoves the last directory, `popd -1' the next to last.\n" +" \n" +" The `dirs' builtin displays the directory stack.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid argument is supplied or the directory\n" +" change fails." +msgstr "" + +#: builtins.c:1797 +msgid "" +"Display directory stack.\n" +" \n" +" Display the list of currently remembered directories. Directories\n" +" find their way onto the list with the `pushd' command; you can get\n" +" back up through the list with the `popd' command.\n" +" \n" +" Options:\n" +" -c\tclear the directory stack by deleting all of the elements\n" +" -l\tdo not print tilde-prefixed versions of directories relative\n" +" \tto your home directory\n" +" -p\tprint the directory stack with one entry per line\n" +" -v\tprint the directory stack with one entry per line prefixed\n" +" \twith its position in the stack\n" +" \n" +" Arguments:\n" +" +N\tDisplays the Nth entry counting from the left of the list shown " +"by\n" +" \tdirs when invoked without options, starting with zero.\n" +" \n" +" -N\tDisplays the Nth entry counting from the right of the list shown " +"by\n" +" \tdirs when invoked without options, starting with zero.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" + +#: builtins.c:1826 +msgid "" +"Set and unset shell options.\n" +" \n" +" Change the setting of each shell option OPTNAME. Without any option\n" +" arguments, list all shell options with an indication of whether or not " +"each\n" +" is set.\n" +" \n" +" Options:\n" +" -o\trestrict OPTNAMEs to those defined for use with `set -o'\n" +" -p\tprint each shell option with an indication of its status\n" +" -q\tsuppress output\n" +" -s\tenable (set) each OPTNAME\n" +" -u\tdisable (unset) each OPTNAME\n" +" \n" +" Exit Status:\n" +" Returns success if OPTNAME is enabled; fails if an invalid option is\n" +" given or OPTNAME is disabled." +msgstr "" + +#: builtins.c:1847 +msgid "" +"Formats and prints ARGUMENTS under control of the FORMAT.\n" +" \n" +" Options:\n" +" -v var\tassign the output to shell variable VAR rather than\n" +" \t\tdisplay it on the standard output\n" +" \n" +" FORMAT is a character string which contains three types of objects: " +"plain\n" +" characters, which are simply copied to standard output; character " +"escape\n" +" sequences, which are converted and copied to the standard output; and\n" +" format specifications, each of which causes printing of the next " +"successive\n" +" argument.\n" +" \n" +" In addition to the standard format specifications described in printf" +"(1)\n" +" and printf(3), printf interprets:\n" +" \n" +" %b\texpand backslash escape sequences in the corresponding argument\n" +" %q\tquote the argument in a way that can be reused as shell input\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or a write or " +"assignment\n" +" error occurs." +msgstr "" + +#: builtins.c:1874 +msgid "" +"Specify how arguments are to be completed by Readline.\n" +" \n" +" For each NAME, specify how arguments are to be completed. If no " +"options\n" +" are supplied, existing completion specifications are printed in a way " +"that\n" +" allows them to be reused as input.\n" +" \n" +" Options:\n" +" -p\tprint existing completion specifications in a reusable format\n" +" -r\tremove a completion specification for each NAME, or, if no\n" +" \tNAMEs are supplied, all completion specifications\n" +" \n" +" When completion is attempted, the actions are applied in the order the\n" +" uppercase-letter options are listed above.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" + +#: builtins.c:1897 +msgid "" +"Display possible completions depending on the options.\n" +" \n" +" Intended to be used from within a shell function generating possible\n" +" completions. If the optional WORD argument is supplied, matches " +"against\n" +" WORD are generated.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" + +#: builtins.c:1912 +msgid "" +"Modify or display completion options.\n" +" \n" +" Modify the completion options for each NAME, or, if no NAMEs are " +"supplied,\n" +" the completion currently begin executed. If no OPTIONs are givenm, " +"print\n" +" the completion options for each NAME or the current completion " +"specification.\n" +" \n" +" Options:\n" +" \t-o option\tSet completion option OPTION for each NAME\n" +" \n" +" Using `+o' instead of `-o' turns off the specified option.\n" +" \n" +" Arguments:\n" +" \n" +" Each NAME refers to a command for which a completion specification must\n" +" have previously been defined using the `complete' builtin. If no NAMEs\n" +" are supplied, compopt must be called by a function currently generating\n" +" completions, and the options for that currently-executing completion\n" +" generator are modified.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or NAME does not\n" +" have a completion specification defined." +msgstr "" + +#: builtins.c:1940 +msgid "" +"Read lines from a file into an array variable.\n" +" \n" +" Read lines from the standard input into the array variable ARRAY, or " +"from\n" +" file descriptor FD if the -u option is supplied. The variable MAPFILE " +"is\n" +" the default ARRAY.\n" +" \n" +" Options:\n" +" -n count\tCopy at most COUNT lines. If COUNT is 0, all lines are " +"copied.\n" +" -O origin\tBegin assigning to ARRAY at index ORIGIN. The default " +"index is 0.\n" +" -s count \tDiscard the first COUNT lines read.\n" +" -t\t\tRemove a trailing newline from each line read.\n" +" -u fd\t\tRead lines from file descriptor FD instead of the standard " +"input.\n" +" -C callback\tEvaluate CALLBACK each time QUANTUM lines are read.\n" +" -c quantum\tSpecify the number of lines read between each call to " +"CALLBACK.\n" +" \n" +" Arguments:\n" +" ARRAY\t\tArray variable name to use for file data.\n" +" \n" +" If -C is supplied without -c, the default quantum is 5000.\n" +" \n" +" If not supplied with an explicit origin, mapfile will clear ARRAY " +"before\n" +" assigning to it.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or ARRAY is readonly." +msgstr "" + +#~ msgid "Missing `}'" +#~ msgstr "`}'¤¬¤¢¤ê¤Þ¤»¤ó" + +#~ msgid "brace_expand> " +#~ msgstr "¥Ö¥ì¡¼¥¹Å¸³«> " + +#~ msgid "Attempt to free unknown command type `%d'.\n" +#~ msgstr "̤ÃΤʥ³¥Þ¥ó¥É¥¿¥¤¥× `%d' ¤ò³«Êü¤·¤è¤¦¤È¤·¤Æ¤Þ¤¹.\n" + +#~ msgid "Report this to %s\n" +#~ msgstr "%s ¤ËÊó¹ð¤·¤Æ¤¯¤À¤µ¤¤\n" + +#~ msgid "Stopping myself..." +#~ msgstr "Ää»ß¤·¤Þ¤¹..." + +#~ msgid "Tell %s to fix this someday.\n" +#~ msgstr "%s ¤Ë¤¤¤Ä¤«¤³¤ì¤òľ¤¹¤è¤¦¤ËÅÁ¤¨¤Æ¤¯¤À¤µ¤¤.\n" + +#~ msgid "execute_command: bad command type `%d'" +#~ msgstr "¥³¥Þ¥ó¥É¼Â¹Ô: ´Ö°ã¤Ã¤¿¥³¥Þ¥ó¥É¥¿¥¤¥× `%d'" + +#~ msgid "real\t" +#~ msgstr "¼Â\t" + +#~ msgid "user\t" +#~ msgstr "¥æ¡¼¥¶\t" + +#~ msgid "sys\t" +#~ msgstr "¥·¥¹¥Æ¥à\t" + +#~ msgid "" +#~ "real\t0m0.00s\n" +#~ "user\t0m0.00s\n" +#~ "sys\t0m0.00s\n" +#~ msgstr "" +#~ "¼Â\t0m0.00s\n" +#~ "¥æ¡¼¥¶\t0m0.00s\n" +#~ "¥·¥¹¥Æ¥à\t0m0.00s\n" + +#~ msgid "cannot duplicate fd %d to fd 1: %s" +#~ msgstr "fd %d ¤ò fd 1 ¤ËÊ£À½¤Ç¤­¤Þ¤»¤ó: %s" + +#~ msgid "%s: output redirection restricted" +#~ msgstr "%s: ½ÐÎÏ¥ê¥À¥¤¥ì¥¯¥·¥ç¥ó¤¬À©¸Â¤µ¤ì¤Æ¤Þ¤¹" + +#~ msgid "Out of memory!" +#~ msgstr "¥á¥â¥ê¤¬¤¢¤ê¤Þ¤»¤ó!" + +#~ msgid "You have already added item `%s'\n" +#~ msgstr "¤¢¤Ê¤¿¤Ï´û¤Ë¥¢¥¤¥Æ¥à`%s'¤òÉÕ¤±Â­¤·¤Æ¤Þ¤¹\n" + +#~ msgid "You have entered %d (%d) items. The distribution is:\n" +#~ msgstr "" +#~ "¤¢¤Ê¤¿¤Þ¤Ï %d (%d) ¥¢¥¤¥Æ¥à¤òÆþÎϤ·¤Þ¤·¤¿¡£¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤Ï:\n" + +#~ msgid "%s: bg background job?" +#~ msgstr "%s: bg ¥Ð¥Ã¥¯¥°¥é¥¦¥ó¥É¤Î»Å»ö?" + +#~ msgid "" +#~ "Redirection instruction from yyparse () '%d' is\n" +#~ "out of range in make_redirection ()." +#~ msgstr "" +#~ "yyparse () '%d' ¤«¤é¤Î¥ê¥À¥¤¥ì¥¯¥·¥ç¥ó»Ø¼¨¤Ï\n" +#~ "make_redirection () ¤ÎÈϰϳ°¤Ç¤¹." + +#~ msgid "clean_simple_command () got a command with type %d." +#~ msgstr "clean_simple_command () ¤Ï¥¿¥¤¥× %d ¤Î¥³¥Þ¥ó¥É¤òÆÀ¤Þ¤·¤¿." + +#~ msgid "got errno %d while waiting for %d" +#~ msgstr "¥¨¥é¡¼ÈÖ¹æ %d ¤ò %d ¤òÂԤäƤ¤¤ë´Ö¤ËÆÀ¤Þ¤·¤¿" + +#~ msgid "syntax error near unexpected token `%c'" +#~ msgstr "´üÂÔ¤·¤Æ¤Ê¤¤ token `%c' ¤Î¤¢¤¿¤ê¤Ë¥·¥ó¥¿¥Ã¥¯¥¹¥¨¥é¡¼" + +#~ msgid "cprintf: bad `%%' argument (%c)" +#~ msgstr "cprintf: °­¤¤ `%%' °ú¿ô (%c)" + +#~ msgid "option `%s' requires an argument" +#~ msgstr "optie `%s' ¤Ï°ú¿ô¤òɬÍפȤ·¤Þ¤¹" + +#~ msgid "%s: unrecognized option" +#~ msgstr "%s: ǧ¼±¤Ç¤­¤Ê¤¤¥ª¥×¥·¥ç¥ó" + +#~ msgid "`-c' requires an argument" +#~ msgstr "`-c' °ú¿ô¤òɬÍפȤ·¤Þ¤¹" + +#~ msgid "%s: cannot execute directories" +#~ msgstr "%s: ¥Ç¥£¥ì¥¯¥È¥ê¤ò¼Â¹Ô¤Ç¤­¤Þ¤»¤ó" + +#~ msgid "Bad code in sig.c: sigprocmask" +#~ msgstr "sig.c ¤ÎÃæ¤Ë°­¤¤¥³¡¼¥É: sigprocmask" + +#~ msgid "bad substitution: no ending `}' in %s" +#~ msgstr "°­¤¤ÂåÆþ: ½ªÎ»¤¹¤ë `}' ¤¬ %s ¤Ë¤¢¤ê¤Þ¤»¤ó" + +#~ msgid "%s: bad array subscript" +#~ msgstr "%s: °­¤¤ÇÛÎó subscript" + +#~ msgid "can't make pipes for process substitution: %s" +#~ msgstr "¥×¥í¥»¥¹¤ÎÂåÆþ¤Ë¥Ñ¥¤¥×¤òºîÀ®¤Ç¤­¤Þ¤»¤ó: %s" + +#~ msgid "reading" +#~ msgstr "Æɤ߹þ¤ßÃæ" + +#~ msgid "process substitution" +#~ msgstr "¥×¥í¥»¥¹¤ÎÂåÍý" + +#~ msgid "command substitution" +#~ msgstr "¥³¥Þ¥ó¥É¤ÎÂåÍý" + +#~ msgid "Can't reopen pipe to command substitution (fd %d): %s" +#~ msgstr "¥³¥Þ¥ó¥É¤ÎÂåÍý¤Ë¥Ñ¥¤¥×¤òºÆ¤Ó³«¤±¤Þ¤»¤ó (fd %d): %s" + +#~ msgid "$%c: unbound variable" +#~ msgstr "$%c: Ÿ³«¤µ¤ì¤Æ¤¤¤Ê¤¤ÊÑ¿ô" + +#~ msgid "%s: bad arithmetic substitution" +#~ msgstr "%s: ´Ö°ã¤Ã¤¿»»½ÑÂåÆþ" + +#~ msgid "option %c\n" +#~ msgstr "¥ª¥×¥·¥ç¥ó %c\n" + +#~ msgid "option a\n" +#~ msgstr "¥ª¥×¥·¥ç¥ó a\n" + +#~ msgid "option b\n" +#~ msgstr "¥ª¥×¥·¥ç¥ó b\n" + +#~ msgid "option c with value `%s'\n" +#~ msgstr "ÃÍ `%s' ¤Î¥ª¥×¥·¥ç¥ó c\n" + +#~ msgid "?? sh_getopt returned character code 0%o ??\n" +#~ msgstr "?? sh_getopt ¤Ï¥­¥ã¥é¥¯¥¿¡¼¥³¡¼¥É 0%o ¤òÊÖ¤·¤Þ¤·¤¿ ??\n" + +#~ msgid "%s: Unknown flag %s.\n" +#~ msgstr "%s: ̤ÃΤΥե饰 %s.\n" + +#~ msgid "%s requires an argument" +#~ msgstr "%s °ú¿ô¤¬É¬Í×" + +#~ msgid "%s must be inside of a $BUILTIN block" +#~ msgstr "%s ¤Ï $BUILTIN ¥Ö¥í¥Ã¥¯¤ÎÃæ¤Ç¤Ê¤±¤ì¤Ð¤¤¤±¤Þ¤»¤ó" + +#~ msgid "%s found before $END" +#~ msgstr "%s ¤¬ $END ¤ÎÁ°¤Ë¸«¤Ä¤«¤ê¤Þ¤·¤¿" + +#~ msgid "%s already has a function (%s)" +#~ msgstr "%s ¤Ï´û¤Ë´Ø¿ô¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹ (%s)" + +#~ msgid "%s already had a docname (%s)" +#~ msgstr "%s ¤Ï´û¤Ëdocname¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹ (%s) " + +#~ msgid "%s already has short documentation (%s)" +#~ msgstr "%s ¤Ï´û¤Ë¾®¥É¥­¥å¥á¥ó¥È¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹ (%s)" + +#~ msgid "%s already has a %s definition" +#~ msgstr "%s ¤Ï´û¤Ë % sÄêµÁ¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹" + +#~ msgid "mkbuiltins: Out of virtual memory!\n" +#~ msgstr "mkbuiltins: ²¾ÁÛ¥á¥â¥êÀÚ¤ì!\n" + +#~ msgid "read [-r] [-p prompt] [-a array] [-e] [name ...]" +#~ msgstr "read [-r] [-p prompt] [-a ÇÛÎó] [-e] [̾Á° ...]" + +#~ msgid "%[DIGITS | WORD] [&]" +#~ msgstr "%[·å¿ô | ¸ÀÍÕ] [%]" + +#~ msgid "variables - Some variable names and meanings" +#~ msgstr "ÊÑ¿ô - ÊÑ¿ô̾¤È°ÕÌ£" + +#~ msgid "`alias' with no arguments or with the -p option prints the list" +#~ msgstr "°ú¿ô̵¤·Ëô¤Ï¥ª¥×¥·¥ç¥ó -p ÉÕ¤­¤Î`alias'¤Ï¥ê¥¹¥È¤ò½ÐÎÏ" + +#~ msgid "of aliases in the form alias NAME=VALUE on standard output." +#~ msgstr "ɸ½à½ÐÎϤΠ̾Á°=ÃÍ ¤Î·Á¼°¤Ç¥¨¥¤¥ê¥¢¥¹" + +#~ msgid "Otherwise, an alias is defined for each NAME whose VALUE is given." +#~ msgstr "¤µ¤â¤Ê¤±¤ì¤Ð¡¢¤½¤ì¤¾¤ìÃͤÎÍ¿¤¨¤é¤ì¤¿Ì¾Á°¤Ë¥¨¥¤¥ê¥¢¥¹¤ÏÄêµÁ¤µ¤ì¤ë." + +#~ msgid "true unless a NAME is given for which no alias has been defined." +#~ msgstr "¥¨¥¤¥ê¥¢¥¹¤¬ÄêµÁ¤µ¤ì¤Æ¤ª¤é¤º¡¢[̾Á°]¤¬ÅϤµ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¿¿" + +#~ msgid "then remove all alias definitions." +#~ msgstr "Á´¤Æ¤Î¥¨¥¤¥ê¥¢¥¹¤ÎÄêµÁ¤òºï½ü." + +#~ msgid "Arguments we accept:" +#~ msgstr "¼õ¤±¼è¤ë°ú¿ô¤Ï:" diff --git a/po/lt.gmo b/po/lt.gmo new file mode 100644 index 0000000000000000000000000000000000000000..7b04f8fe245a5c92ee4e734c1d28d72272f3138a GIT binary patch literal 24059 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 qW_Q|Z6, 2008. +msgid "" +msgstr "" +"Project-Id-Version: bash-3.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2009-01-06 11:56-0500\n" +"PO-Revision-Date: 2008-07-28 03:07-0400\n" +"Last-Translator: Gintautas Miliauskas \n" +"Language-Team: Lithuanian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%" +"100<10 || n%100>=20) ? 1 : 2);\n" + +#: arrayfunc.c:50 +msgid "bad array subscript" +msgstr "blogas masyvo indeksas" + +#: arrayfunc.c:313 builtins/declare.def:474 +#, c-format +msgid "%s: cannot convert indexed to associative array" +msgstr "" + +#: arrayfunc.c:479 +#, fuzzy, c-format +msgid "%s: invalid associative array key" +msgstr "%s: netaisyklingas veiksmo pavadinimas" + +#: arrayfunc.c:481 +#, c-format +msgid "%s: cannot assign to non-numeric index" +msgstr "%s: nepavyko priskirti prie neskaitinio indekso" + +#: arrayfunc.c:517 +#, c-format +msgid "%s: %s: must use subscript when assigning associative array" +msgstr "" + +#: bashhist.c:380 +#, c-format +msgid "%s: cannot create: %s" +msgstr "%s: nepavyko sukurti: %s" + +#: bashline.c:3413 +msgid "bash_execute_unix_command: cannot find keymap for command" +msgstr "bash_execute_unix_command: nepavyko rasti keymapo komandai" + +#: bashline.c:3491 +#, c-format +msgid "%s: first non-whitespace character is not `\"'" +msgstr "%s: pirmas ne tarpo simbolis nėra „\"“" + +#: bashline.c:3520 +#, c-format +msgid "no closing `%c' in %s" +msgstr "nėra uždarančiojo „%c“ %s" + +#: bashline.c:3554 +#, c-format +msgid "%s: missing colon separator" +msgstr "%s: trÅ«ksta dvitaÅ¡kio skirtuko" + +#: builtins/bind.def:120 builtins/bind.def:123 +msgid "line editing not enabled" +msgstr "" + +#: builtins/bind.def:206 +#, c-format +msgid "`%s': invalid keymap name" +msgstr "„%s“: netaisyklingas keymap'o pavadinimas" + +#: builtins/bind.def:245 +#, c-format +msgid "%s: cannot read: %s" +msgstr "%s: nepavyko perskaityti: %s" + +#: builtins/bind.def:260 +#, c-format +msgid "`%s': cannot unbind" +msgstr "„%s“: nepavyko atjungti (unbind)" + +#: builtins/bind.def:295 builtins/bind.def:325 +#, c-format +msgid "`%s': unknown function name" +msgstr "„%s“: nežinomas funkcijos pavadinimas" + +#: builtins/bind.def:303 +#, c-format +msgid "%s is not bound to any keys.\n" +msgstr "%s nėra priskirtas jokiam klaviÅ¡ui.\n" + +#: builtins/bind.def:307 +#, c-format +msgid "%s can be invoked via " +msgstr "%s gali bÅ«ti iÅ¡kviestas su " + +#: builtins/break.def:77 builtins/break.def:117 +msgid "loop count" +msgstr "" + +#: builtins/break.def:137 +msgid "only meaningful in a `for', `while', or `until' loop" +msgstr "prasminga tik „for“, „while“ arba „until“ cikle" + +#: builtins/caller.def:133 +#, fuzzy +msgid "" +"Returns the context of the current subroutine call.\n" +" \n" +" Without EXPR, returns " +msgstr "Grąžina esamos procedÅ«ros kontekstą." + +#: builtins/cd.def:215 +msgid "HOME not set" +msgstr "HOME nenustatytas" + +#: builtins/cd.def:227 +msgid "OLDPWD not set" +msgstr "OLDPWD nenustatytas" + +#: builtins/common.c:101 +#, c-format +msgid "line %d: " +msgstr "" + +#: builtins/common.c:139 error.c:260 +#, fuzzy, c-format +msgid "warning: " +msgstr "%s: įspėjimas: " + +#: builtins/common.c:153 +#, fuzzy, c-format +msgid "%s: usage: " +msgstr "%s: įspėjimas: " + +#: builtins/common.c:166 test.c:822 +msgid "too many arguments" +msgstr "per daug argumentų" + +#: builtins/common.c:191 shell.c:493 shell.c:774 +#, c-format +msgid "%s: option requires an argument" +msgstr "%s: parametrui reikia argumento" + +#: builtins/common.c:198 +#, c-format +msgid "%s: numeric argument required" +msgstr "%s: reikia skaitinio argumento" + +#: builtins/common.c:205 +#, c-format +msgid "%s: not found" +msgstr "%s: nerasta" + +#: builtins/common.c:214 shell.c:787 +#, c-format +msgid "%s: invalid option" +msgstr "%s: nesamas parametras" + +#: builtins/common.c:221 +#, c-format +msgid "%s: invalid option name" +msgstr "%s: netaisyklingas parametro vardas" + +#: builtins/common.c:228 general.c:231 general.c:236 +#, c-format +msgid "`%s': not a valid identifier" +msgstr "`%s': netaisyklingas identifikatorius" + +#: builtins/common.c:238 +#, fuzzy +msgid "invalid octal number" +msgstr "netaisyklingas signalo numeris" + +#: builtins/common.c:240 +#, fuzzy +msgid "invalid hex number" +msgstr "netaisyklingas skaičius" + +#: builtins/common.c:242 expr.c:1255 +msgid "invalid number" +msgstr "netaisyklingas skaičius" + +#: builtins/common.c:250 +#, c-format +msgid "%s: invalid signal specification" +msgstr "%s: netaisyklinga signalo specifikacija" + +#: builtins/common.c:257 +#, c-format +msgid "`%s': not a pid or valid job spec" +msgstr "„%s“: ne pid'as ar taisyklinga darbo specifikacija" + +#: builtins/common.c:264 error.c:453 +#, c-format +msgid "%s: readonly variable" +msgstr "%s: kintamasis tik skaitymui" + +#: builtins/common.c:272 +#, c-format +msgid "%s: %s out of range" +msgstr "%s: %s išėjo už ribų" + +#: builtins/common.c:272 builtins/common.c:274 +msgid "argument" +msgstr "argumentas" + +#: builtins/common.c:274 +#, c-format +msgid "%s out of range" +msgstr "%s už ribų" + +#: builtins/common.c:282 +#, c-format +msgid "%s: no such job" +msgstr "%s: nėra tokio darbo" + +#: builtins/common.c:290 +#, c-format +msgid "%s: no job control" +msgstr "%s: nėra darbų valdymo" + +#: builtins/common.c:292 +msgid "no job control" +msgstr "nėra darbų valdymo" + +#: builtins/common.c:302 +#, c-format +msgid "%s: restricted" +msgstr "%s: apribota" + +#: builtins/common.c:304 +msgid "restricted" +msgstr "apribota" + +#: builtins/common.c:312 +#, c-format +msgid "%s: not a shell builtin" +msgstr "%s: ne vidinė aplinkos komanda" + +#: builtins/common.c:321 +#, c-format +msgid "write error: %s" +msgstr "raÅ¡ymo klaida: %s" + +#: builtins/common.c:553 +#, c-format +msgid "%s: error retrieving current directory: %s: %s\n" +msgstr "%s: klaida skaitant esamą aplanką: %s: %s\n" + +#: builtins/common.c:619 builtins/common.c:621 +#, c-format +msgid "%s: ambiguous job spec" +msgstr "%s: dviprasmis darbo apraÅ¡ymas" + +#: builtins/complete.def:270 +#, c-format +msgid "%s: invalid action name" +msgstr "%s: netaisyklingas veiksmo pavadinimas" + +#: builtins/complete.def:430 builtins/complete.def:615 +#: builtins/complete.def:813 +#, c-format +msgid "%s: no completion specification" +msgstr "%s: nėra baigimo specifikacijos" + +#: builtins/complete.def:667 +msgid "warning: -F option may not work as you expect" +msgstr "įspėjimas: parametras -F gali neveikti taip, kaip tikitės" + +#: builtins/complete.def:669 +msgid "warning: -C option may not work as you expect" +msgstr "įspėjimas: parametras -C gali neveikti taip, kaip tikitės" + +#: builtins/complete.def:786 +msgid "not currently executing completion function" +msgstr "" + +#: builtins/declare.def:122 +msgid "can only be used in a function" +msgstr "galima naudoti tik funkcijoje" + +#: builtins/declare.def:353 +msgid "cannot use `-f' to make functions" +msgstr "negalima naudoti „-f“ funkcijoms kurti" + +#: builtins/declare.def:365 execute_cmd.c:4731 +#, c-format +msgid "%s: readonly function" +msgstr "%s: funkcija tik skaitymui" + +#: builtins/declare.def:461 +#, c-format +msgid "%s: cannot destroy array variables in this way" +msgstr "%s: negalima tokiu bÅ«du sunaikinti masyvų kintamųjų" + +#: builtins/declare.def:468 +#, c-format +msgid "%s: cannot convert associative to indexed array" +msgstr "" + +#: builtins/enable.def:137 builtins/enable.def:145 +msgid "dynamic loading not available" +msgstr "dinaminis įkrovimas negalimas" + +#: builtins/enable.def:312 +#, c-format +msgid "cannot open shared object %s: %s" +msgstr "nepavyko atverti bendrojo objekto %s: %s" + +#: builtins/enable.def:335 +#, c-format +msgid "cannot find %s in shared object %s: %s" +msgstr "nepavyko rasti %s bendrajame objekte %s: %s" + +#: builtins/enable.def:459 +#, c-format +msgid "%s: not dynamically loaded" +msgstr "%s: nedinamiÅ¡kai įkrauta" + +#: builtins/enable.def:474 +#, c-format +msgid "%s: cannot delete: %s" +msgstr "%s: nepavyko iÅ¡trinti: %s" + +#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4588 +#: shell.c:1439 +#, c-format +msgid "%s: is a directory" +msgstr "%s: aplankas" + +#: builtins/evalfile.c:139 +#, c-format +msgid "%s: not a regular file" +msgstr "%s: ne paprastas failas" + +#: builtins/evalfile.c:147 +#, c-format +msgid "%s: file is too large" +msgstr "%s: failas per didelis" + +#: builtins/evalfile.c:185 execute_cmd.c:4658 shell.c:1449 +#, c-format +msgid "%s: cannot execute binary file" +msgstr "%s: negalima vykdyti dvejetainių failų" + +#: builtins/exec.def:212 +#, c-format +msgid "%s: cannot execute: %s" +msgstr "%s: nepavyko paleisti: %s" + +#: builtins/exit.def:65 +#, c-format +msgid "logout\n" +msgstr "" + +#: builtins/exit.def:88 +msgid "not login shell: use `exit'" +msgstr "ne prisijungimo aplinka: naudokite „exit“" + +#: builtins/exit.def:120 +#, c-format +msgid "There are stopped jobs.\n" +msgstr "Yra sustabdytų darbų.\n" + +#: builtins/exit.def:122 +#, fuzzy, c-format +msgid "There are running jobs.\n" +msgstr "Yra sustabdytų darbų.\n" + +#: builtins/fc.def:261 +msgid "no command found" +msgstr "komandų nerasta" + +#: builtins/fc.def:341 +msgid "history specification" +msgstr "istorijos specifikacija" + +#: builtins/fc.def:362 +#, c-format +msgid "%s: cannot open temp file: %s" +msgstr "%s: nepavyko atverti laikinojo failo: %s" + +#: builtins/fg_bg.def:149 builtins/jobs.def:282 +msgid "current" +msgstr "" + +#: builtins/fg_bg.def:158 +#, c-format +msgid "job %d started without job control" +msgstr "darbas %d pradėtas be darbų valdymo" + +#: builtins/getopt.c:110 +#, c-format +msgid "%s: illegal option -- %c\n" +msgstr "%s: neleistinas parametras -- %c\n" + +#: builtins/getopt.c:111 +#, c-format +msgid "%s: option requires an argument -- %c\n" +msgstr "%s: parametrui reikia argumento -- %c\n" + +#: builtins/hash.def:92 +msgid "hashing disabled" +msgstr "maiÅ¡a iÅ¡jungta" + +#: builtins/hash.def:138 +#, c-format +msgid "%s: hash table empty\n" +msgstr "%s: maiÅ¡os lentelė tuščia\n" + +#: builtins/hash.def:244 +#, fuzzy, c-format +msgid "hits\tcommand\n" +msgstr "paskutinė komanda: %s\n" + +#: builtins/help.def:130 +#, fuzzy, c-format +msgid "Shell commands matching keyword `" +msgid_plural "Shell commands matching keywords `" +msgstr[0] "Aplinkos komandos, atitinkančios raktažodį „" +msgstr[1] "Aplinkos komandos, atitinkančios raktažodį „" +msgstr[2] "Aplinkos komandos, atitinkančios raktažodį „" + +#: builtins/help.def:168 +#, c-format +msgid "" +"no help topics match `%s'. Try `help help' or `man -k %s' or `info %s'." +msgstr "" +"nėra žinyno temų, atitinkančių „%s“. Bandykite „help help“, „man -k %s“ arba " +"„info %s“." + +#: builtins/help.def:185 +#, c-format +msgid "%s: cannot open: %s" +msgstr "%s: nepavyko atverti: %s" + +#: builtins/help.def:337 +#, c-format +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 "" +"Å ios aplinkos komandos vidinės. Jei norite pamatyti šį sąrašą, įveskite " +"„help“.\n" +"Ä®veskite „help fn“, jei norite sužinoti daugiau apie funkciją „fn“.\n" +"Ä®veskite „info bash“, jei norite daugiau sužinoti apie aplinką apskritai.\n" +"Naudokite „man -k“ ir „info“, jei norite sužinoti daugiau apie komandas, " +"nesančiasÅ¡iame sąraÅ¡e.\n" +"\n" +"Žvaigždutė (*) prie vardo reiÅ¡kia, kad komanda iÅ¡jungta.\n" +"\n" + +#: builtins/history.def:154 +msgid "cannot use more than one of -anrw" +msgstr "negalima naudoti daugiau negu vieno parametro iÅ¡ -anrw" + +#: builtins/history.def:186 +msgid "history position" +msgstr "istorijos pozicija" + +#: builtins/history.def:365 +#, c-format +msgid "%s: history expansion failed" +msgstr "%s: istorijos iÅ¡skleidimas nesėkmingas" + +#: builtins/inlib.def:71 +#, fuzzy, c-format +msgid "%s: inlib failed" +msgstr "%s: istorijos iÅ¡skleidimas nesėkmingas" + +#: builtins/jobs.def:109 +msgid "no other options allowed with `-x'" +msgstr "su „-x“ neleidžiama naudoti kitų parametrų" + +#: builtins/kill.def:197 +#, c-format +msgid "%s: arguments must be process or job IDs" +msgstr "%s: argumentai turi bÅ«ti procesų arba darbų ID" + +#: builtins/kill.def:260 +msgid "Unknown error" +msgstr "Nežinoma klaida" + +#: builtins/let.def:95 builtins/let.def:120 expr.c:501 expr.c:516 +msgid "expression expected" +msgstr "tikėtasi iÅ¡raiÅ¡kos" + +#: builtins/mapfile.def:215 builtins/read.def:272 +#, c-format +msgid "%s: invalid file descriptor specification" +msgstr "%s: netaisyklinga failo deskriptoriaus specifikacija" + +#: builtins/mapfile.def:223 builtins/read.def:279 +#, c-format +msgid "%d: invalid file descriptor: %s" +msgstr "%d: netaisyklingas failo deskriptorius: %s" + +#: builtins/mapfile.def:232 builtins/mapfile.def:270 +#, fuzzy, c-format +msgid "%s: invalid line count" +msgstr "%s: nesamas parametras" + +#: builtins/mapfile.def:243 +#, fuzzy, c-format +msgid "%s: invalid array origin" +msgstr "%s: nesamas parametras" + +#: builtins/mapfile.def:260 +#, fuzzy, c-format +msgid "%s: invalid callback quantum" +msgstr "%s: netaisyklingas veiksmo pavadinimas" + +#: builtins/mapfile.def:292 +#, fuzzy +msgid "empty array variable name" +msgstr "%s: ne masyvo kintamasis" + +#: builtins/mapfile.def:313 +msgid "array variable support required" +msgstr "" + +#: builtins/printf.def:367 +#, c-format +msgid "`%s': missing format character" +msgstr "„%s“: trÅ«ksta formato simbolio" + +#: builtins/printf.def:544 +#, c-format +msgid "`%c': invalid format character" +msgstr "„%c“: netaisyklingas formato simbolis" + +#: builtins/printf.def:571 +#, fuzzy, c-format +msgid "warning: %s: %s" +msgstr "%s: įspėjimas: " + +#: builtins/printf.def:750 +msgid "missing hex digit for \\x" +msgstr "trÅ«ksta Å¡eÅ¡ioliktainio skaitmens iÅ¡raiÅ¡koje \\x" + +#: builtins/pushd.def:195 +msgid "no other directory" +msgstr "nėra kito aplanko" + +#: builtins/pushd.def:462 +msgid "" +msgstr "" + +#: builtins/pushd.def:506 +msgid "directory stack empty" +msgstr "" + +#: builtins/pushd.def:508 +#, fuzzy +msgid "directory stack index" +msgstr "rekursijos steko atvirkÅ¡tinis perpildymas" + +#: builtins/pushd.def:683 +msgid "" +"Display the list of currently remembered directories. Directories\n" +" find their way onto the list with the `pushd' command; you can get\n" +" back up through the list with the `popd' command.\n" +" \n" +" Options:\n" +" -c\tclear the directory stack by deleting all of the elements\n" +" -l\tdo not print tilde-prefixed versions of directories relative\n" +" \tto your home directory\n" +" -p\tprint the directory stack with one entry per line\n" +" -v\tprint the directory stack with one entry per line prefixed\n" +" \twith its position in the stack\n" +" \n" +" Arguments:\n" +" +N\tDisplays the Nth entry counting from the left of the list shown " +"by\n" +" \tdirs when invoked without options, starting with zero.\n" +" \n" +" -N\tDisplays the Nth entry counting from the right of the list shown " +"by\n" +"\tdirs when invoked without options, starting with zero." +msgstr "" + +#: builtins/pushd.def:705 +msgid "" +"Adds a directory to the top of the directory stack, or rotates\n" +" the stack, making the new top of the stack the current working\n" +" directory. With no arguments, exchanges the top two directories.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when adding\n" +" \tdirectories to the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the left of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" -N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the right of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" dir\tAdds DIR to the directory stack at the top, making it the\n" +" \tnew current working directory.\n" +" \n" +" The `dirs' builtin displays the directory stack." +msgstr "" + +#: builtins/pushd.def:730 +msgid "" +"Removes entries from the directory stack. With no arguments, removes\n" +" the top directory from the stack, and changes to the new top directory.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when removing\n" +" \tdirectories from the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRemoves the Nth entry counting from the left of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd +0'\n" +" \tremoves the first directory, `popd +1' the second.\n" +" \n" +" -N\tRemoves the Nth entry counting from the right of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd -0'\n" +" \tremoves the last directory, `popd -1' the next to last.\n" +" \n" +" The `dirs' builtin displays the directory stack." +msgstr "" + +#: builtins/read.def:248 +#, c-format +msgid "%s: invalid timeout specification" +msgstr "%s: klaidinga laiko ribos (timeout) specifikacija" + +#: builtins/read.def:574 +#, c-format +msgid "read error: %d: %s" +msgstr "skaitymo klaida: %d: %s" + +#: builtins/return.def:73 +msgid "can only `return' from a function or sourced script" +msgstr "galima grįžti (return) tik iÅ¡ funkcijos ar scenarijaus" + +#: builtins/set.def:768 +msgid "cannot simultaneously unset a function and a variable" +msgstr "negalima kartu iÅ¡trinti funkcijos ir kintamojo" + +#: builtins/set.def:805 +#, c-format +msgid "%s: cannot unset" +msgstr "%s: nepavyko iÅ¡trinti" + +#: builtins/set.def:812 +#, c-format +msgid "%s: cannot unset: readonly %s" +msgstr "%s: nepavyko iÅ¡trinti: %s tik skaitymui" + +#: builtins/set.def:823 +#, c-format +msgid "%s: not an array variable" +msgstr "%s: ne masyvo kintamasis" + +#: builtins/setattr.def:186 +#, c-format +msgid "%s: not a function" +msgstr "%s: ne funkcija" + +#: builtins/shift.def:71 builtins/shift.def:77 +msgid "shift count" +msgstr "postÅ«mių skaičius" + +#: builtins/shopt.def:254 +msgid "cannot set and unset shell options simultaneously" +msgstr "negalima aplinkos nuostatos vienu metu įjungti ir iÅ¡jungti" + +#: builtins/shopt.def:319 +#, c-format +msgid "%s: invalid shell option name" +msgstr "%s: netaisyklingas aplinkos nuostatos pavadinimas" + +#: builtins/source.def:128 +msgid "filename argument required" +msgstr "reikia failo pavadinimo argumento" + +#: builtins/source.def:153 +#, c-format +msgid "%s: file not found" +msgstr "%s: failas nerastas" + +#: builtins/suspend.def:101 +msgid "cannot suspend" +msgstr "nepavyko sustabdyti" + +#: builtins/suspend.def:111 +msgid "cannot suspend a login shell" +msgstr "nepavyko sustabdyti prisijungimo aplinkos" + +#: builtins/type.def:234 +#, c-format +msgid "%s is aliased to `%s'\n" +msgstr "%s yra „%s“ sinonimas\n" + +#: builtins/type.def:255 +#, c-format +msgid "%s is a shell keyword\n" +msgstr "%s yra aplinkos raktinis žodis\n" + +#: builtins/type.def:274 +#, c-format +msgid "%s is a function\n" +msgstr "%s yra funkcija\n" + +#: builtins/type.def:296 +#, c-format +msgid "%s is a shell builtin\n" +msgstr "%s yra aplinkos vidinė komanda\n" + +#: builtins/type.def:317 builtins/type.def:391 +#, c-format +msgid "%s is %s\n" +msgstr "%s yra %s\n" + +#: builtins/type.def:337 +#, c-format +msgid "%s is hashed (%s)\n" +msgstr "%s yra heÅ¡uotas (%s)\n" + +#: builtins/ulimit.def:372 +#, c-format +msgid "%s: invalid limit argument" +msgstr "%s: netaisyklingas limito argumentas" + +#: builtins/ulimit.def:398 +#, c-format +msgid "`%c': bad command" +msgstr "`%c': bloga komanda" + +#: builtins/ulimit.def:427 +#, c-format +msgid "%s: cannot get limit: %s" +msgstr "%s: nepavyko gauti limito: %s" + +#: builtins/ulimit.def:453 +msgid "limit" +msgstr "" + +#: builtins/ulimit.def:465 builtins/ulimit.def:765 +#, c-format +msgid "%s: cannot modify limit: %s" +msgstr "%s: nepayko pakeisti limito: %s" + +#: builtins/umask.def:118 +msgid "octal number" +msgstr "aÅ¡tuntainis skaičius" + +#: builtins/umask.def:231 +#, c-format +msgid "`%c': invalid symbolic mode operator" +msgstr "„%c“: netaisyklingas simbolinės veiksenos operatorius" + +#: builtins/umask.def:286 +#, c-format +msgid "`%c': invalid symbolic mode character" +msgstr "„%c“: netaisyklingas simbolinės veiksenos simbolis" + +#: error.c:89 error.c:320 error.c:322 error.c:324 +msgid " line " +msgstr "" + +#: error.c:164 +#, c-format +msgid "last command: %s\n" +msgstr "paskutinė komanda: %s\n" + +#: error.c:172 +#, c-format +msgid "Aborting..." +msgstr "Nutraukiama..." + +#: error.c:405 +msgid "unknown command error" +msgstr "nežinoma komandos klaida" + +#: error.c:406 +msgid "bad command type" +msgstr "blogas komandos tipas" + +#: error.c:407 +msgid "bad connector" +msgstr "blogas jungtukas" + +#: error.c:408 +msgid "bad jump" +msgstr "blogas Å¡uolis" + +#: error.c:446 +#, c-format +msgid "%s: unbound variable" +msgstr "%s: nepriskirtas kintamasis" + +#: eval.c:181 +#, c-format +msgid "\atimed out waiting for input: auto-logout\n" +msgstr "\alaukiant įvedimo baigėsi laikas: automatiÅ¡kai atsijungta\n" + +#: execute_cmd.c:491 +#, c-format +msgid "cannot redirect standard input from /dev/null: %s" +msgstr "nepavyko peradresuoti standartinio įvedimo iÅ¡ /dev/null: %s" + +#: execute_cmd.c:1091 +#, c-format +msgid "TIMEFORMAT: `%c': invalid format character" +msgstr "TIMEFORMAT: „%c“: netaisyklingas formato simbolis" + +#: execute_cmd.c:1942 +#, fuzzy +msgid "pipe error" +msgstr "raÅ¡ymo klaida: %s" + +#: execute_cmd.c:4276 +#, c-format +msgid "%s: restricted: cannot specify `/' in command names" +msgstr "%s: apribota: negalima naudoti „/“ komandų pavadinimuose" + +#: execute_cmd.c:4367 +#, c-format +msgid "%s: command not found" +msgstr "%s: komanda nerasta" + +#: execute_cmd.c:4621 +#, c-format +msgid "%s: %s: bad interpreter" +msgstr "%s: %s: blogas interpretatorius" + +#: execute_cmd.c:4770 +#, c-format +msgid "cannot duplicate fd %d to fd %d" +msgstr "nepavyko dublikuoti fd %d į fd %d" + +#: expr.c:241 +msgid "expression recursion level exceeded" +msgstr "virÅ¡ytas iÅ¡raiÅ¡kos rekursijos lygis" + +#: expr.c:265 +msgid "recursion stack underflow" +msgstr "rekursijos steko atvirkÅ¡tinis perpildymas" + +#: expr.c:379 +msgid "syntax error in expression" +msgstr "sintaksės klaida iÅ¡raiÅ¡koje" + +#: expr.c:419 +msgid "attempted assignment to non-variable" +msgstr "bandymas priskirti ne kintamajam" + +#: expr.c:440 expr.c:445 expr.c:756 +msgid "division by 0" +msgstr "dalyba iÅ¡ 0" + +#: expr.c:471 +msgid "bug: bad expassign token" +msgstr "klaida: bloga expassign leksema" + +#: expr.c:513 +msgid "`:' expected for conditional expression" +msgstr "sąlygos iÅ¡raiÅ¡koje tikėtasi „:“" + +#: expr.c:781 +msgid "exponent less than 0" +msgstr "eksponentas mažesnis už 0" + +#: expr.c:826 +msgid "identifier expected after pre-increment or pre-decrement" +msgstr "" +"po prieÅ¡-didinimo ar prieÅ¡-mažinimo operatoriaus tikėtasi identifikatoriaus" + +#: expr.c:854 +msgid "missing `)'" +msgstr "TrÅ«ksta „)“" + +#: expr.c:897 expr.c:1175 +msgid "syntax error: operand expected" +msgstr "sintaksės klaida: tikėtasi operando" + +#: expr.c:1177 +msgid "syntax error: invalid arithmetic operator" +msgstr "sintaksės klaida: netaisyklingas aritmetinis operatorius" + +#: expr.c:1201 +#, c-format +msgid "%s%s%s: %s (error token is \"%s\")" +msgstr "" + +#: expr.c:1259 +msgid "invalid arithmetic base" +msgstr "netaisyklingas aritmetinis pagrindas" + +#: expr.c:1279 +msgid "value too great for base" +msgstr "per didelė pagrindo reikÅ¡mė" + +#: expr.c:1328 +#, fuzzy, c-format +msgid "%s: expression error\n" +msgstr "%s: tikėtasi skaitinės iÅ¡raiÅ¡kos" + +#: general.c:61 +msgid "getcwd: cannot access parent directories" +msgstr "getcwd: nepavyko pasiekti aukÅ¡tesnių aplankų" + +#: input.c:94 subst.c:4559 +#, fuzzy, c-format +msgid "cannot reset nodelay mode for fd %d" +msgstr "nepavyko dublikuoti fd %d į fd %d" + +#: input.c:258 +#, c-format +msgid "cannot allocate new file descriptor for bash input from fd %d" +msgstr "nepavyko iÅ¡skirti naujo failo deskriptoriaus bash įvedimui iÅ¡ fd %d" + +#: input.c:266 +#, c-format +msgid "save_bash_input: buffer already exists for new fd %d" +msgstr "save_bash_input: naujam fd %d buferis jau egzistuoja" + +#: jobs.c:466 +msgid "start_pipeline: pgrp pipe" +msgstr "" + +#: jobs.c:882 +#, c-format +msgid "forked pid %d appears in running job %d" +msgstr "" + +#: jobs.c:1000 +#, c-format +msgid "deleting stopped job %d with process group %ld" +msgstr "trinamas sustabdytas darbas %d procesų grupėje %ld" + +#: jobs.c:1105 +#, c-format +msgid "add_process: process %5ld (%s) in the_pipeline" +msgstr "" + +#: jobs.c:1108 +#, c-format +msgid "add_process: pid %5ld (%s) marked as still alive" +msgstr "" + +#: jobs.c:1396 +#, c-format +msgid "describe_pid: %ld: no such pid" +msgstr "describe_pid: %ld: tokio pid nėra" + +#: jobs.c:1411 +#, c-format +msgid "Signal %d" +msgstr "" + +#: jobs.c:1425 jobs.c:1450 +msgid "Done" +msgstr "" + +#: jobs.c:1430 siglist.c:122 +msgid "Stopped" +msgstr "" + +#: jobs.c:1434 +#, c-format +msgid "Stopped(%s)" +msgstr "" + +#: jobs.c:1438 +msgid "Running" +msgstr "" + +#: jobs.c:1452 +#, c-format +msgid "Done(%d)" +msgstr "" + +#: jobs.c:1454 +#, c-format +msgid "Exit %d" +msgstr "" + +#: jobs.c:1457 +msgid "Unknown status" +msgstr "" + +#: jobs.c:1544 +#, c-format +msgid "(core dumped) " +msgstr "" + +#: jobs.c:1563 +#, c-format +msgid " (wd: %s)" +msgstr "" + +#: jobs.c:1766 +#, c-format +msgid "child setpgid (%ld to %ld)" +msgstr "" + +#: jobs.c:2094 nojobs.c:576 +#, c-format +msgid "wait: pid %ld is not a child of this shell" +msgstr "wait: pid %ld nėra Å¡ios aplinkos dukterinis procesas" + +#: jobs.c:2321 +#, c-format +msgid "wait_for: No record of process %ld" +msgstr "wait_for: nėra proceso %ld įraÅ¡o" + +#: jobs.c:2593 +#, c-format +msgid "wait_for_job: job %d is stopped" +msgstr "wait_for_job: darbas %d yra sustabdytas" + +#: jobs.c:2815 +#, c-format +msgid "%s: job has terminated" +msgstr "%s: darbas užsibaigė" + +#: jobs.c:2824 +#, c-format +msgid "%s: job %d already in background" +msgstr "%s: darbas %d jau fone" + +#: jobs.c:3487 +#, fuzzy, c-format +msgid "%s: line %d: " +msgstr "%s: įspėjimas: " + +#: jobs.c:3501 nojobs.c:805 +#, c-format +msgid " (core dumped)" +msgstr "" + +#: jobs.c:3513 jobs.c:3526 +#, c-format +msgid "(wd now: %s)\n" +msgstr "" + +#: jobs.c:3558 +msgid "initialize_job_control: getpgrp failed" +msgstr "" + +#: jobs.c:3618 +msgid "initialize_job_control: line discipline" +msgstr "" + +#: jobs.c:3628 +msgid "initialize_job_control: setpgid" +msgstr "" + +#: jobs.c:3656 +#, c-format +msgid "cannot set terminal process group (%d)" +msgstr "" + +#: jobs.c:3661 +msgid "no job control in this shell" +msgstr "Å¡ioje aplinkoje nėra darbų valdymo" + +#: lib/malloc/malloc.c:296 +#, c-format +msgid "malloc: failed assertion: %s\n" +msgstr "malloc: pažeista prielaida: %s\n" + +#: lib/malloc/malloc.c:312 +#, c-format +msgid "" +"\r\n" +"malloc: %s:%d: assertion botched\r\n" +msgstr "" +"\r\n" +"malloc: %s:%d: prielaida pažeista\r\n" + +#: lib/malloc/malloc.c:313 +#, fuzzy +msgid "unknown" +msgstr "%s: adresas nežinomas" + +#: lib/malloc/malloc.c:797 +msgid "malloc: block on free list clobbered" +msgstr "malloc: blokas iÅ¡ laisvų blokų sąraÅ¡o sugadintas" + +#: lib/malloc/malloc.c:874 +msgid "free: called with already freed block argument" +msgstr "free: iÅ¡kviestas su jau atlaisvintu bloku" + +#: lib/malloc/malloc.c:877 +msgid "free: called with unallocated block argument" +msgstr "free: iÅ¡kviestas su nerezervuotu bloku" + +#: lib/malloc/malloc.c:896 +msgid "free: underflow detected; mh_nbytes out of range" +msgstr "free: atvirkÅ¡tinis perpildymas (underflow); mh_nbytes už ribos" + +#: lib/malloc/malloc.c:902 +msgid "free: start and end chunk sizes differ" +msgstr "free: pradžios ir pabaigos blokų (chunk) dydžiai skiriasi" + +#: lib/malloc/malloc.c:1001 +msgid "realloc: called with unallocated block argument" +msgstr "realloc: iÅ¡kviestas su nerezervuotu bloku" + +#: lib/malloc/malloc.c:1016 +msgid "realloc: underflow detected; mh_nbytes out of range" +msgstr "realloc: atvirkÅ¡tinis perpildymas (underflow); mh_nbytes už ribos" + +#: lib/malloc/malloc.c:1022 +msgid "realloc: start and end chunk sizes differ" +msgstr "realloc: pradžios ir pabaigos blokų (chunk) dydžiai skiriasi" + +#: lib/malloc/table.c:177 +#, c-format +msgid "register_alloc: alloc table is full with FIND_ALLOC?\n" +msgstr "register_alloc: alloc lentelė pilna su FIND_ALLOC?\n" + +#: lib/malloc/table.c:184 +#, c-format +msgid "register_alloc: %p already in table as allocated?\n" +msgstr "register_alloc: %p jau lentelėje kaip rezervuotas?\n" + +#: lib/malloc/table.c:220 +#, c-format +msgid "register_free: %p already in table as free?\n" +msgstr "register_free: %p jau lentelėje kaip laisvas?\n" + +#: lib/sh/fmtulong.c:101 +msgid "invalid base" +msgstr "netaisyklingas pagrindas" + +#: lib/sh/netopen.c:168 +#, c-format +msgid "%s: host unknown" +msgstr "%s: adresas nežinomas" + +#: lib/sh/netopen.c:175 +#, c-format +msgid "%s: invalid service" +msgstr "%s: netaisyklinga tarnyba" + +#: lib/sh/netopen.c:306 +#, c-format +msgid "%s: bad network path specification" +msgstr "%s: netaisyklingas tinklo kelias" + +#: lib/sh/netopen.c:346 +msgid "network operations not supported" +msgstr "tinklo operacijos nepalaikomos" + +#: mailcheck.c:433 +msgid "You have mail in $_" +msgstr "Turite laiÅ¡kų $_" + +#: mailcheck.c:458 +msgid "You have new mail in $_" +msgstr "Turite naujų laiÅ¡kų $_" + +#: mailcheck.c:474 +#, c-format +msgid "The mail in %s has been read\n" +msgstr "PaÅ¡tas %s perskaitytas\n" + +#: make_cmd.c:322 +msgid "syntax error: arithmetic expression required" +msgstr "sintaksės klaida: reikia aritmetinės iÅ¡raiÅ¡kos" + +#: make_cmd.c:324 +msgid "syntax error: `;' unexpected" +msgstr "sintaksės klaida: netikėtas „;“" + +#: make_cmd.c:325 +#, c-format +msgid "syntax error: `((%s))'" +msgstr "sintaksės klaida: „((%s))“" + +#: make_cmd.c:567 +#, c-format +msgid "make_here_document: bad instruction type %d" +msgstr "make_here_document: blogas instrukcijos tipas %d" + +#: make_cmd.c:651 +#, c-format +msgid "here-document at line %d delimited by end-of-file (wanted `%s')" +msgstr "" + +#: make_cmd.c:746 +#, c-format +msgid "make_redirection: redirection instruction `%d' out of range" +msgstr "make_redirection: nukreipimo instrukcija „%d“ už ribų" + +#: parse.y:2986 parse.y:3218 +#, c-format +msgid "unexpected EOF while looking for matching `%c'" +msgstr "netikėta failo pabaiga ieÅ¡kant atitinkamo „%c“" + +#: parse.y:3722 +msgid "unexpected EOF while looking for `]]'" +msgstr "netikėta failo pabaiga ieÅ¡kant „]]“" + +#: parse.y:3727 +#, c-format +msgid "syntax error in conditional expression: unexpected token `%s'" +msgstr "sintaksės klaida sąlygos iÅ¡raiÅ¡koje: netikėta leksema „%s“" + +#: parse.y:3731 +msgid "syntax error in conditional expression" +msgstr "sintaksės klaida sąlygos iÅ¡raiÅ¡koje" + +#: parse.y:3809 +#, c-format +msgid "unexpected token `%s', expected `)'" +msgstr "netikėta leksema „%s“, tikėtasi „)“" + +#: parse.y:3813 +msgid "expected `)'" +msgstr "tikėtasi „)“" + +#: parse.y:3841 +#, c-format +msgid "unexpected argument `%s' to conditional unary operator" +msgstr "netikėtas argumentas „%s“ sąlygos unariniam operatoriui" + +#: parse.y:3845 +msgid "unexpected argument to conditional unary operator" +msgstr "netikėtas argumentas sąlygos unariniam operatoriui" + +#: parse.y:3885 +#, c-format +msgid "unexpected token `%s', conditional binary operator expected" +msgstr "netikėta leksema „%s“, tikėtasi sąlyginio binarinio operatoriaus" + +#: parse.y:3889 +msgid "conditional binary operator expected" +msgstr "tikėtasi sąlygos binarinio operatoriaus" + +#: parse.y:3906 +#, c-format +msgid "unexpected argument `%s' to conditional binary operator" +msgstr "netikėtas argumentas „%s“ sąlygos binariniam operatoriui" + +#: parse.y:3910 +msgid "unexpected argument to conditional binary operator" +msgstr "netikėtas argumentas sąlygos binariniam operatoriui" + +#: parse.y:3921 +#, c-format +msgid "unexpected token `%c' in conditional command" +msgstr "netikėta leksema „%c“ sąlygos komandoje" + +#: parse.y:3924 +#, c-format +msgid "unexpected token `%s' in conditional command" +msgstr "netikėta leksema „%s“ sąlygos komandoje" + +#: parse.y:3928 +#, c-format +msgid "unexpected token %d in conditional command" +msgstr "netikėta leksema %d sąlygos komandoje" + +#: parse.y:5195 +#, c-format +msgid "syntax error near unexpected token `%s'" +msgstr "sintaksės klaida prie netikėtos leksemos: „%s“" + +#: parse.y:5213 +#, c-format +msgid "syntax error near `%s'" +msgstr "sintaksės klaida prie „%s“" + +#: parse.y:5223 +msgid "syntax error: unexpected end of file" +msgstr "sintaksės klaida: netikėta failo pabaiga" + +#: parse.y:5223 +msgid "syntax error" +msgstr "sintaksės klaida" + +#: parse.y:5285 +#, c-format +msgid "Use \"%s\" to leave the shell.\n" +msgstr "Naudokite „%s“, jei norite iÅ¡eiti iÅ¡ ap.\n" + +#: parse.y:5447 +msgid "unexpected EOF while looking for matching `)'" +msgstr "netikėta failo pabaiga ieÅ¡kant atitinkamo „)“" + +#: pcomplete.c:1016 +#, c-format +msgid "completion: function `%s' not found" +msgstr "completion: funkcija „%s“ nerasta" + +#: pcomplib.c:179 +#, c-format +msgid "progcomp_insert: %s: NULL COMPSPEC" +msgstr "progcomp_insert: %s: NULL COMPSPEC" + +#: print_cmd.c:287 +#, c-format +msgid "print_command: bad connector `%d'" +msgstr "print_command: blogas jungtukas  „%d“" + +#: print_cmd.c:1347 +#, c-format +msgid "cprintf: `%c': invalid format character" +msgstr "cprintf: „%c“: netaisyklingas formato simbolis" + +#: redir.c:105 +msgid "file descriptor out of range" +msgstr "failo deskriptorius už ribų" + +#: redir.c:148 +#, c-format +msgid "%s: ambiguous redirect" +msgstr "%s: ambiguous redirect" + +#: redir.c:152 +#, c-format +msgid "%s: cannot overwrite existing file" +msgstr "%s: negalima perraÅ¡yti egzistuojančio failo" + +#: redir.c:157 +#, c-format +msgid "%s: restricted: cannot redirect output" +msgstr "%s: apribota: negalima peradresuoti iÅ¡vedimo" + +#: redir.c:162 +#, fuzzy, c-format +msgid "cannot create temp file for here-document: %s" +msgstr "nepavyko sukurti laikino failo „here“ dokumentui: %s" + +#: redir.c:517 +msgid "/dev/(tcp|udp)/host/port not supported without networking" +msgstr "/dev/(tcp|udp)/komp/prievadas nepalaikoma be tinklo" + +#: redir.c:1023 +msgid "redirection error: cannot duplicate fd" +msgstr "nukreipimo klaida: nepavyko dublikuoti fd" + +#: shell.c:328 +msgid "could not find /tmp, please create!" +msgstr "nepavyko rasti /tmp, sukurkite šį aplanką!" + +#: shell.c:332 +msgid "/tmp must be a valid directory name" +msgstr "/tmp turi bÅ«ti taisyklingas aplanko pavadinimas" + +#: shell.c:876 +#, c-format +msgid "%c%c: invalid option" +msgstr "%c%c: netaisyklingas parametras" + +#: shell.c:1638 +msgid "I have no name!" +msgstr "Neturiu vardo!" + +#: shell.c:1778 +#, c-format +msgid "GNU bash, version %s-(%s)\n" +msgstr "" + +#: shell.c:1779 +#, c-format +msgid "" +"Usage:\t%s [GNU long option] [option] ...\n" +"\t%s [GNU long option] [option] script-file ...\n" +msgstr "" +"Naudojimas:\t%s [GNU ilgas parametras] [parametras] ...\n" +"\t%s [GNU ilgas parametras] [parametras] scenarijaus-failas ...\n" + +#: shell.c:1781 +msgid "GNU long options:\n" +msgstr "GNU ilgi parametrai:\n" + +#: shell.c:1785 +msgid "Shell options:\n" +msgstr "Aplinkos parametrai:\n" + +#: shell.c:1786 +msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n" +msgstr "" +"\t-irsD arba -c komanda arba -O shopt_nustatymas\t\t(tik iÅ¡kvietimui)\n" + +#: shell.c:1801 +#, c-format +msgid "\t-%s or -o option\n" +msgstr "\t-%s arba -o nustatymas\n" + +#: shell.c:1807 +#, fuzzy, c-format +msgid "Type `%s -c \"help set\"' for more information about shell options.\n" +msgstr "" +"Bandykite „%s --help“ arba „%s --usage“, jei norite gauti daugiau " +"informacijos.\n" + +#: shell.c:1808 +#, fuzzy, c-format +msgid "Type `%s -c help' for more information about shell builtin commands.\n" +msgstr "Bandykite „ldd --help“, jei norite daugiau informacijos." + +#: shell.c:1809 +#, c-format +msgid "Use the `bashbug' command to report bugs.\n" +msgstr "Naudokite komandą „bashbug“ klaidoms praneÅ¡ti.\n" + +#: sig.c:583 +#, c-format +msgid "sigprocmask: %d: invalid operation" +msgstr "sigprocmask: %d: netaisyklinga operacija" + +#: 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 +#, fuzzy +msgid "Bus error" +msgstr "sintaksės klaida" + +#: 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 +#, fuzzy +msgid "Terminated" +msgstr "apribota" + +#: 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:1181 subst.c:1302 +#, c-format +msgid "bad substitution: no closing `%s' in %s" +msgstr "blogas keitinys: trÅ«ksta „%s“ %s" + +#: subst.c:2458 +#, c-format +msgid "%s: cannot assign list to array member" +msgstr "%s: negalima priskirti sąraÅ¡o masyvo elementui" + +#: subst.c:4456 subst.c:4472 +msgid "cannot make pipe for process substitution" +msgstr "" + +#: subst.c:4504 +msgid "cannot make child for process substitution" +msgstr "" + +#: subst.c:4549 +#, c-format +msgid "cannot open named pipe %s for reading" +msgstr "" + +#: subst.c:4551 +#, c-format +msgid "cannot open named pipe %s for writing" +msgstr "" + +#: subst.c:4569 +#, c-format +msgid "cannot duplicate named pipe %s as fd %d" +msgstr "" + +#: subst.c:4765 +msgid "cannot make pipe for command substitution" +msgstr "" + +#: subst.c:4799 +msgid "cannot make child for command substitution" +msgstr "" + +#: subst.c:4816 +msgid "command_substitute: cannot duplicate pipe as fd 1" +msgstr "" + +#: subst.c:5318 +#, c-format +msgid "%s: parameter null or not set" +msgstr "%s: parametras tuščias arba nenustatytas" + +#: subst.c:5608 +#, c-format +msgid "%s: substring expression < 0" +msgstr "%s: posekio iÅ¡raiÅ¡ka < 0" + +#: subst.c:6660 +#, c-format +msgid "%s: bad substitution" +msgstr "%s: blogas keitinys" + +#: subst.c:6740 +#, c-format +msgid "$%s: cannot assign in this way" +msgstr "$%s: negalima tokiu bÅ«du priskirti" + +#: subst.c:7479 +#, fuzzy, c-format +msgid "bad substitution: no closing \"`\" in %s" +msgstr "blogas keitinys: trÅ«ksta „%s“ %s" + +#: subst.c:8354 +#, c-format +msgid "no match: %s" +msgstr "nėra atitikmenų: %s" + +#: test.c:145 +msgid "argument expected" +msgstr "tikėtasi argumento" + +#: test.c:154 +#, c-format +msgid "%s: integer expression expected" +msgstr "%s: tikėtasi skaitinės iÅ¡raiÅ¡kos" + +#: test.c:262 +msgid "`)' expected" +msgstr "tikėtasi „)“" + +#: test.c:264 +#, c-format +msgid "`)' expected, found %s" +msgstr "tikėtasi „)“, rasta %s" + +#: test.c:279 test.c:688 test.c:691 +#, c-format +msgid "%s: unary operator expected" +msgstr "%s: tikėtasi unarinio operatoriaus" + +#: test.c:444 test.c:731 +#, c-format +msgid "%s: binary operator expected" +msgstr "%s: tikėtasi binarinio operatoriaus" + +#: test.c:806 +msgid "missing `]'" +msgstr "trÅ«ksta „]“" + +#: trap.c:201 +msgid "invalid signal number" +msgstr "netaisyklingas signalo numeris" + +#: trap.c:324 +#, c-format +msgid "run_pending_traps: bad value in trap_list[%d]: %p" +msgstr "run_pending_traps: bloga trap_list[%d] reikÅ¡mė: %p" + +#: trap.c:328 +#, c-format +msgid "" +"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself" +msgstr "run_pending_traps: signalo doroklė yra SIG_DFL, siunčiamas %d (%s) sau" + +#: trap.c:372 +#, c-format +msgid "trap_handler: bad signal %d" +msgstr "trap_handler: blogas signalas %d" + +#: variables.c:358 +#, c-format +msgid "error importing function definition for `%s'" +msgstr "klaida importuojant funkcijos apibrėžimą „%s“" + +#: variables.c:736 +#, c-format +msgid "shell level (%d) too high, resetting to 1" +msgstr "aplinkos lygmuo (%d) per aukÅ¡tas, nustatoma į 1" + +#: variables.c:1898 +msgid "make_local_variable: no function context at current scope" +msgstr "" + +#: variables.c:3127 +msgid "all_local_variables: no function context at current scope" +msgstr "" + +#: variables.c:3344 variables.c:3353 +#, c-format +msgid "invalid character %d in exportstr for %s" +msgstr "netaisyklingas simbolis %d %s exportstr'e" + +#: variables.c:3359 +#, c-format +msgid "no `=' in exportstr for %s" +msgstr "%s exportstr'e trÅ«ksta „=“" + +#: variables.c:3794 +msgid "pop_var_context: head of shell_variables not a function context" +msgstr "" + +#: variables.c:3807 +msgid "pop_var_context: no global_variables context" +msgstr "pop_var_context: nėra global_variables konteksto" + +#: variables.c:3881 +msgid "pop_scope: head of shell_variables not a temporary environment scope" +msgstr "" + +#: version.c:46 +#, fuzzy +msgid "Copyright (C) 2009 Free Software Foundation, Inc." +msgstr "Autorinės teisės (C) 2006 Free Software Foundation, Inc.\n" + +#: version.c:47 +msgid "" +"License GPLv3+: GNU GPL version 3 or later \n" +msgstr "" + +#: version.c:86 +#, c-format +msgid "GNU bash, version %s (%s)\n" +msgstr "" + +#: version.c:91 +#, c-format +msgid "This is free software; you are free to change and redistribute it.\n" +msgstr "" + +#: version.c:92 +#, c-format +msgid "There is NO WARRANTY, to the extent permitted by law.\n" +msgstr "" + +#: xmalloc.c:92 +#, c-format +msgid "xmalloc: cannot allocate %lu bytes (%lu bytes allocated)" +msgstr "xmalloc: nepavyko iÅ¡skirti %lu baitų (%lu baitų iÅ¡skirta)" + +#: xmalloc.c:94 +#, c-format +msgid "xmalloc: cannot allocate %lu bytes" +msgstr "xmalloc: nepavyko iÅ¡skirti %lu baitų" + +#: xmalloc.c:114 +#, c-format +msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)" +msgstr "xrealloc: nepavyko iÅ¡skirti %lu baitų (iÅ¡skirta %lu baitų)" + +#: xmalloc.c:116 +#, c-format +msgid "xrealloc: cannot allocate %lu bytes" +msgstr "xrealloc: nepavyko iÅ¡skirti %lu baitų" + +#: xmalloc.c:150 +#, c-format +msgid "xmalloc: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)" +msgstr "xmalloc: %s:%d: nepavyko iÅ¡skirti %lu baitų (iÅ¡skirta %lu baitų)" + +#: xmalloc.c:152 +#, c-format +msgid "xmalloc: %s:%d: cannot allocate %lu bytes" +msgstr "xmalloc: %s:%d: nepavyko iÅ¡skirti %lu baitų" + +#: xmalloc.c:174 +#, c-format +msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)" +msgstr "xrealloc: %s:%d: nepavyko iÅ¡skirti %lu baitų (iÅ¡skirta %lu baitų)" + +#: xmalloc.c:176 +#, c-format +msgid "xrealloc: %s:%d: cannot allocate %lu bytes" +msgstr "xrealloc: %s:%d: nepavyko iÅ¡skirti %lu baitų" + +#: builtins.c:43 +msgid "alias [-p] [name[=value] ... ]" +msgstr "" + +#: builtins.c:47 +msgid "unalias [-a] name [name ...]" +msgstr "" + +#: builtins.c:51 +msgid "" +"bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-" +"x keyseq:shell-command] [keyseq:readline-function or readline-command]" +msgstr "" + +#: builtins.c:54 +msgid "break [n]" +msgstr "" + +#: builtins.c:56 +msgid "continue [n]" +msgstr "" + +#: builtins.c:58 +msgid "builtin [shell-builtin [arg ...]]" +msgstr "" + +#: builtins.c:61 +msgid "caller [expr]" +msgstr "" + +#: builtins.c:64 +msgid "cd [-L|-P] [dir]" +msgstr "" + +#: builtins.c:66 +msgid "pwd [-LP]" +msgstr "" + +#: builtins.c:68 +msgid ":" +msgstr "" + +#: builtins.c:70 +msgid "true" +msgstr "" + +#: builtins.c:72 +msgid "false" +msgstr "" + +#: builtins.c:74 +msgid "command [-pVv] command [arg ...]" +msgstr "" + +#: builtins.c:76 +msgid "declare [-aAfFilrtux] [-p] [name[=value] ...]" +msgstr "" + +#: builtins.c:78 +msgid "typeset [-aAfFilrtux] [-p] name[=value] ..." +msgstr "" + +#: builtins.c:80 +msgid "local [option] name[=value] ..." +msgstr "" + +#: builtins.c:83 +msgid "echo [-neE] [arg ...]" +msgstr "" + +#: builtins.c:87 +msgid "echo [-n] [arg ...]" +msgstr "" + +#: builtins.c:90 +msgid "enable [-a] [-dnps] [-f filename] [name ...]" +msgstr "" + +#: builtins.c:92 +msgid "eval [arg ...]" +msgstr "" + +#: builtins.c:94 +msgid "getopts optstring name [arg]" +msgstr "" + +#: builtins.c:96 +msgid "exec [-cl] [-a name] [command [arguments ...]] [redirection ...]" +msgstr "" + +#: builtins.c:98 +msgid "exit [n]" +msgstr "" + +#: builtins.c:100 +msgid "logout [n]" +msgstr "" + +#: builtins.c:103 +msgid "fc [-e ename] [-lnr] [first] [last] or fc -s [pat=rep] [command]" +msgstr "" + +#: builtins.c:107 +msgid "fg [job_spec]" +msgstr "" + +#: builtins.c:111 +msgid "bg [job_spec ...]" +msgstr "" + +#: builtins.c:114 +msgid "hash [-lr] [-p pathname] [-dt] [name ...]" +msgstr "" + +#: builtins.c:117 +msgid "help [-ds] [pattern ...]" +msgstr "" + +#: builtins.c:121 +msgid "" +"history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg " +"[arg...]" +msgstr "" + +#: builtins.c:125 +msgid "jobs [-lnprs] [jobspec ...] or jobs -x command [args]" +msgstr "" + +#: builtins.c:129 +msgid "disown [-h] [-ar] [jobspec ...]" +msgstr "" + +#: builtins.c:132 +msgid "" +"kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l " +"[sigspec]" +msgstr "" + +#: builtins.c:134 +msgid "let arg [arg ...]" +msgstr "" + +#: builtins.c:136 +msgid "" +"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-p prompt] [-t " +"timeout] [-u fd] [name ...]" +msgstr "" + +#: builtins.c:138 +msgid "return [n]" +msgstr "" + +#: builtins.c:140 +msgid "set [--abefhkmnptuvxBCHP] [-o option-name] [arg ...]" +msgstr "" + +#: builtins.c:142 +msgid "unset [-f] [-v] [name ...]" +msgstr "" + +#: builtins.c:144 +msgid "export [-fn] [name[=value] ...] or export -p" +msgstr "" + +#: builtins.c:146 +msgid "readonly [-af] [name[=value] ...] or readonly -p" +msgstr "" + +#: builtins.c:148 +#, fuzzy +msgid "shift [n]" +msgstr "postÅ«mių skaičius" + +#: builtins.c:150 +#, fuzzy +msgid "source filename [arguments]" +msgstr "reikia failo pavadinimo argumento" + +#: builtins.c:152 +#, fuzzy +msgid ". filename [arguments]" +msgstr "reikia failo pavadinimo argumento" + +#: builtins.c:155 +msgid "suspend [-f]" +msgstr "" + +#: builtins.c:158 +msgid "test [expr]" +msgstr "" + +#: builtins.c:160 +msgid "[ arg... ]" +msgstr "" + +#: builtins.c:162 +msgid "times" +msgstr "" + +#: builtins.c:164 +msgid "trap [-lp] [[arg] signal_spec ...]" +msgstr "" + +#: builtins.c:166 +msgid "type [-afptP] name [name ...]" +msgstr "" + +#: builtins.c:169 +msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]" +msgstr "" + +#: builtins.c:172 +msgid "umask [-p] [-S] [mode]" +msgstr "" + +#: builtins.c:175 +msgid "wait [id]" +msgstr "" + +#: builtins.c:179 +msgid "wait [pid]" +msgstr "" + +#: builtins.c:182 +msgid "for NAME [in WORDS ... ] ; do COMMANDS; done" +msgstr "" + +#: builtins.c:184 +msgid "for (( exp1; exp2; exp3 )); do COMMANDS; done" +msgstr "" + +#: builtins.c:186 +msgid "select NAME [in WORDS ... ;] do COMMANDS; done" +msgstr "" + +#: builtins.c:188 +msgid "time [-p] pipeline" +msgstr "" + +#: builtins.c:190 +msgid "case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac" +msgstr "" + +#: builtins.c:192 +msgid "" +"if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else " +"COMMANDS; ] fi" +msgstr "" + +#: builtins.c:194 +msgid "while COMMANDS; do COMMANDS; done" +msgstr "" + +#: builtins.c:196 +msgid "until COMMANDS; do COMMANDS; done" +msgstr "" + +#: builtins.c:198 +msgid "function name { COMMANDS ; } or name () { COMMANDS ; }" +msgstr "" + +#: builtins.c:200 +msgid "{ COMMANDS ; }" +msgstr "" + +#: builtins.c:202 +msgid "job_spec [&]" +msgstr "" + +#: builtins.c:204 +#, fuzzy +msgid "(( expression ))" +msgstr "tikėtasi iÅ¡raiÅ¡kos" + +#: builtins.c:206 +#, fuzzy +msgid "[[ expression ]]" +msgstr "tikėtasi iÅ¡raiÅ¡kos" + +#: builtins.c:208 +msgid "variables - Names and meanings of some shell variables" +msgstr "" + +#: builtins.c:211 +msgid "pushd [-n] [+N | -N | dir]" +msgstr "" + +#: builtins.c:215 +msgid "popd [-n] [+N | -N]" +msgstr "" + +#: builtins.c:219 +msgid "dirs [-clpv] [+N] [-N]" +msgstr "" + +#: builtins.c:222 +msgid "shopt [-pqsu] [-o] [optname ...]" +msgstr "" + +#: builtins.c:224 +msgid "printf [-v var] format [arguments]" +msgstr "" + +#: builtins.c:227 +msgid "" +"complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W " +"wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] " +"[name ...]" +msgstr "" + +#: builtins.c:231 +msgid "" +"compgen [-abcdefgjksuv] [-o option] [-A action] [-G globpat] [-W wordlist] " +"[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]" +msgstr "" + +#: builtins.c:235 +msgid "compopt [-o|+o option] [name ...]" +msgstr "" + +#: builtins.c:238 +msgid "" +"mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c " +"quantum] [array]" +msgstr "" + +#: builtins.c:250 +#, fuzzy +msgid "" +"Define or display aliases.\n" +" \n" +" Without arguments, `alias' prints the list of aliases in the reusable\n" +" form `alias NAME=VALUE' on standard output.\n" +" \n" +" Otherwise, an alias is defined for each NAME whose VALUE is given.\n" +" A trailing space in VALUE causes the next word to be checked for\n" +" alias substitution when the alias is expanded.\n" +" \n" +" Options:\n" +" -p\tPrint all defined aliases in a reusable format\n" +" \n" +" Exit Status:\n" +" alias returns true unless a NAME is supplied for which no alias has " +"been\n" +" defined." +msgstr "" +"„alias“ be argumentų arba su -p nuostata iÅ¡spausdina alternatyviųjų\n" +" vardų sąrašą formatu VARDAS=REIKÅ MĖ į standartinį iÅ¡vedimą.\n" +" Kitu atveju apraÅ¡omas alternatyvusis vardas kiekvienam VARDUI,\n" +" kurio REIKÅ MĖ nurodyta.\n" +"Jei REIKÅ MĖ baigiasi tarpo simboliu, kitame\n" +" žodyje ieÅ¡koma alternatyviųjų vardų keitinių, kai alternatyvusis vardas\n" +" iÅ¡skleidžiamas. „alias“ grąžina „true“, nebent duotas VARDAS, kuriam\n" +" neapraÅ¡ytas joks alternatyvusis vardas." + +#: builtins.c:272 +#, fuzzy +msgid "" +"Remove each NAME from the list of defined aliases.\n" +" \n" +" Options:\n" +" -a\tremove all alias definitions.\n" +" \n" +" Return success unless a NAME is not an existing alias." +msgstr "" +"PaÅ¡alinti VARDUS iÅ¡ apraÅ¡ytų alternatyviųjų vardų sąraÅ¡o. Jei nurodyta\n" +" nuostata -a, paÅ¡alinti visus alternatyviuosius vardus." + +#: builtins.c:285 +msgid "" +"Set Readline key bindings and variables.\n" +" \n" +" Bind a key sequence to a Readline function or a macro, or set a\n" +" Readline variable. The non-option argument syntax is equivalent to\n" +" that found in ~/.inputrc, but must be passed as a single argument:\n" +" e.g., bind '\"\\C-x\\C-r\": re-read-init-file'.\n" +" \n" +" Options:\n" +" -m keymap Use KEYMAP as the keymap for the duration of this\n" +" command. Acceptable keymap names are emacs,\n" +" emacs-standard, emacs-meta, emacs-ctlx, vi, vi-" +"move,\n" +" vi-command, and vi-insert.\n" +" -l List names of functions.\n" +" -P List function names and bindings.\n" +" -p List functions and bindings in a form that can be\n" +" reused as input.\n" +" -S List key sequences that invoke macros and their " +"values\n" +" -s List key sequences that invoke macros and their " +"values\n" +" in a form that can be reused as input.\n" +" -V List variable names and values\n" +" -v List variable names and values in a form that can\n" +" be reused as input.\n" +" -q function-name Query about which keys invoke the named function.\n" +" -u function-name Unbind all keys which are bound to the named " +"function.\n" +" -r keyseq Remove the binding for KEYSEQ.\n" +" -f filename Read key bindings from FILENAME.\n" +" -x keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n" +" \t\t\t\tKEYSEQ is entered.\n" +" \n" +" Exit Status:\n" +" bind returns 0 unless an unrecognized option is given or an error occurs." +msgstr "" + +#: builtins.c:322 +msgid "" +"Exit for, while, or until loops.\n" +" \n" +" Exit a FOR, WHILE or UNTIL loop. If N is specified, break N enclosing\n" +" loops.\n" +" \n" +" Exit Status:\n" +" The exit status is 0 unless N is not greater than or equal to 1." +msgstr "" + +#: builtins.c:334 +#, fuzzy +msgid "" +"Resume for, while, or until loops.\n" +" \n" +" Resumes the next iteration of the enclosing FOR, WHILE or UNTIL loop.\n" +" If N is specified, resumes the Nth enclosing loop.\n" +" \n" +" Exit Status:\n" +" The exit status is 0 unless N is not greater than or equal to 1." +msgstr "" +"Tęsti kitą FOR, WHILE arba UNTIL ciklo iteraciją.\n" +" Jei N nurodytas, tęsti ciklą, esantį N lygmenų virÅ¡ esamo." + +#: builtins.c:346 +msgid "" +"Execute shell builtins.\n" +" \n" +" Execute SHELL-BUILTIN with arguments ARGs without performing command\n" +" lookup. This is useful when you wish to reimplement a shell builtin\n" +" as a shell function, but need to execute the builtin within the " +"function.\n" +" \n" +" Exit Status:\n" +" Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is\n" +" not a shell builtin.." +msgstr "" + +#: builtins.c:361 +#, fuzzy +msgid "" +"Return the context of the current subroutine call.\n" +" \n" +" Without EXPR, returns \"$line $filename\". With EXPR, returns\n" +" \"$line $subroutine $filename\"; this extra information can be used to\n" +" provide a stack trace.\n" +" \n" +" The value of EXPR indicates how many call frames to go back before the\n" +" current one; the top frame is frame 0.\n" +" \n" +" Exit Status:\n" +" Returns 0 unless the shell is not executing a shell function or EXPR\n" +" is invalid." +msgstr "" +"Grąžina esamos procedÅ«ros kontekstą.\n" +" \n" +" Be IÅ RAIÅ KOS, grąžina „$eilutė $failo_vardas“. Su IÅ RAIÅ KA,\n" +" grąžina „$eilutė $procedÅ«ra $failo_vardas“; Å¡i papildoma informacija\n" +" gali bÅ«ti panaudota kuriant steko iÅ¡rašą (stack trace).\n" +" \n" +" IÅ RAIÅ KOS reikÅ¡mė nurodo, per kiek kvietimo freimų grįžti nuo\n" +" esamo; virÅ¡utinis freimas yra 0." + +#: builtins.c:379 +#, fuzzy +msgid "" +"Change the shell working directory.\n" +" \n" +" Change the current directory to DIR. The default DIR is the value of " +"the\n" +" HOME shell variable.\n" +" \n" +" The variable CDPATH defines the search path for the directory " +"containing\n" +" DIR. Alternative directory names in CDPATH are separated by a colon " +"(:).\n" +" A null directory name is the same as the current directory. If DIR " +"begins\n" +" with a slash (/), then CDPATH is not used.\n" +" \n" +" If the directory is not found, and the shell option `cdable_vars' is " +"set,\n" +" the word is assumed to be a variable name. If that variable has a " +"value,\n" +" its value is used for DIR.\n" +" \n" +" Options:\n" +" -L\tforce symbolic links to be followed\n" +" -P\tuse the physical directory structure without following symbolic\n" +" \tlinks\n" +" \n" +" The default is to follow symbolic links, as if `-L' were specified.\n" +" \n" +" Exit Status:\n" +" Returns 0 if the directory is changed; non-zero otherwise." +msgstr "" +"Pakeisti esamą aplanką į DIR. Kintamasis $HOME yra\n" +" numatytasis DIR. Kintamasis CDPATH nurodo aplankus, kuriuose bus\n" +" ieÅ¡koma DIR. Aplankų pavadinimai CDPATH skiriami dvitaÅ¡kiu (:).\n" +" Tuščias aplanko vardas tapatus esamam aplankui, t.y. „.“.\n" +" Jei DIR prasideda pasviruoju brÅ«kÅ¡niu (/), į CDPATH neatsižvelgiama.\n" +" Jei aplankas nerastas ir aplinkos nuostata „cdable_vars“ įjungta,\n" +" tada žodis bandomas kaip kintamojo pavadinimas. Jei kintamasis\n" +" turi reikÅ¡mę, tada esamas aplankas pakeičiamas į kintamojo reikÅ¡mę.\n" +" Parametras -P nurodo, kad turi bÅ«ti naudojama fizinė aplankų struktÅ«ra,\n" +" užuot sekus simbolines nuorodas; parametras -L nurodo, kad turi bÅ«ti\n" +" sekama simbolinėmis nuorodomis." + +#: builtins.c:407 +msgid "" +"Print the name of the current working directory.\n" +" \n" +" Options:\n" +" -L\tprint the value of $PWD if it names the current working\n" +" \tdirectory\n" +" -P\tprint the physical directory, without any symbolic links\n" +" \n" +" By default, `pwd' behaves as if `-L' were specified.\n" +" \n" +" Exit Status:\n" +" Returns 0 unless an invalid option is given or the current directory\n" +" cannot be read." +msgstr "" + +#: builtins.c:424 +#, fuzzy +msgid "" +"Null command.\n" +" \n" +" No effect; the command does nothing.\n" +" \n" +" Exit Status:\n" +" Always succeeds." +msgstr "Jokio efekto; komanda nieko nedaro. Grąžinamas klaidos kodas 0." + +#: builtins.c:435 +msgid "" +"Return a successful result.\n" +" \n" +" Exit Status:\n" +" Always succeeds." +msgstr "" + +#: builtins.c:444 +#, fuzzy +msgid "" +"Return an unsuccessful result.\n" +" \n" +" Exit Status:\n" +" Always fails." +msgstr "Grąžinti nesėkmingą rezultatą." + +#: builtins.c:453 +msgid "" +"Execute a simple command or display information about commands.\n" +" \n" +" Runs COMMAND with ARGS suppressing shell function lookup, or display\n" +" information about the specified COMMANDs. Can be used to invoke " +"commands\n" +" on disk when a function with the same name exists.\n" +" \n" +" Options:\n" +" -p\tuse a default value for PATH that is guaranteed to find all of\n" +" \tthe standard utilities\n" +" -v\tprint a description of COMMAND similar to the `type' builtin\n" +" -V\tprint a more verbose description of each COMMAND\n" +" \n" +" Exit Status:\n" +" Returns exit status of COMMAND, or failure if COMMAND is not found." +msgstr "" + +#: builtins.c:472 +msgid "" +"Set variable values and attributes.\n" +" \n" +" Declare variables and give them attributes. If no NAMEs are given,\n" +" display the attributes and values of all variables.\n" +" \n" +" Options:\n" +" -f\trestrict action or display to function names and definitions\n" +" -F\trestrict display to function names only (plus line number and\n" +" \tsource file when debugging)\n" +" -p\tdisplay the attributes and value of each NAME\n" +" \n" +" Options which set attributes:\n" +" -a\tto make NAMEs indexed arrays (if supported)\n" +" -A\tto make NAMEs associative arrays (if supported)\n" +" -i\tto make NAMEs have the `integer' attribute\n" +" -l\tto convert NAMEs to lower case on assignment\n" +" -r\tto make NAMEs readonly\n" +" -t\tto make NAMEs have the `trace' attribute\n" +" -u\tto convert NAMEs to upper case on assignment\n" +" -x\tto make NAMEs export\n" +" \n" +" Using `+' instead of `-' turns off the given attribute.\n" +" \n" +" Variables with the integer attribute have arithmetic evaluation (see\n" +" the `let' command) performed when the variable is assigned a value.\n" +" \n" +" When used in a function, `declare' makes NAMEs local, as with the " +"`local'\n" +" command.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" + +#: builtins.c:508 +msgid "" +"Set variable values and attributes.\n" +" \n" +" Obsolete. See `help declare'." +msgstr "" + +#: builtins.c:516 +msgid "" +"Define local variables.\n" +" \n" +" Create a local variable called NAME, and give it VALUE. OPTION can\n" +" be any option accepted by `declare'.\n" +" \n" +" Local variables can only be used within a function; they are visible\n" +" only to the function where they are defined and its children.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied, an error occurs,\n" +" or the shell is not executing a function." +msgstr "" + +#: builtins.c:533 +msgid "" +"Write arguments to the standard output.\n" +" \n" +" Display the ARGs on the standard output followed by a newline.\n" +" \n" +" Options:\n" +" -n\tdo not append a newline\n" +" -e\tenable interpretation of the following backslash escapes\n" +" -E\texplicitly suppress interpretation of backslash escapes\n" +" \n" +" `echo' interprets the following backslash-escaped characters:\n" +" \\a\talert (bell)\n" +" \\b\tbackspace\n" +" \\c\tsuppress further output\n" +" \\e\tescape character\n" +" \\f\tform feed\n" +" \\n\tnew line\n" +" \\r\tcarriage return\n" +" \\t\thorizontal tab\n" +" \\v\tvertical tab\n" +" \\\\\tbackslash\n" +" \\0nnn\tthe character whose ASCII code is NNN (octal). NNN can be\n" +" \t0 to 3 octal digits\n" +" \\xHH\tthe eight-bit character whose value is HH (hexadecimal). HH\n" +" \tcan be one or two hex digits\n" +" \n" +" Exit Status:\n" +" Returns success unless a write error occurs." +msgstr "" + +#: builtins.c:567 +msgid "" +"Write arguments to the standard output.\n" +" \n" +" Display the ARGs on the standard output followed by a newline.\n" +" \n" +" Options:\n" +" -n\tdo not append a newline\n" +" \n" +" Exit Status:\n" +" Returns success unless a write error occurs." +msgstr "" + +#: builtins.c:582 +msgid "" +"Enable and disable shell builtins.\n" +" \n" +" Enables and disables builtin shell commands. Disabling allows you to\n" +" execute a disk command which has the same name as a shell builtin\n" +" without using a full pathname.\n" +" \n" +" Options:\n" +" -a\tprint a list of builtins showing whether or not each is enabled\n" +" -n\tdisable each NAME or display a list of disabled builtins\n" +" -p\tprint the list of builtins in a reusable format\n" +" -s\tprint only the names of Posix `special' builtins\n" +" \n" +" Options controlling dynamic loading:\n" +" -f\tLoad builtin NAME from shared object FILENAME\n" +" -d\tRemove a builtin loaded with -f\n" +" \n" +" Without options, each NAME is enabled.\n" +" \n" +" To use the `test' found in $PATH instead of the shell builtin\n" +" version, type `enable -n test'.\n" +" \n" +" Exit Status:\n" +" Returns success unless NAME is not a shell builtin or an error occurs." +msgstr "" + +#: builtins.c:610 +msgid "" +"Execute arguments as a shell command.\n" +" \n" +" Combine ARGs into a single string, use the result as input to the " +"shell,\n" +" and execute the resulting commands.\n" +" \n" +" Exit Status:\n" +" Returns exit status of command or success if command is null." +msgstr "" + +#: builtins.c:622 +msgid "" +"Parse option arguments.\n" +" \n" +" Getopts is used by shell procedures to parse positional parameters\n" +" as options.\n" +" \n" +" OPTSTRING contains the option letters to be recognized; if a letter\n" +" is followed by a colon, the option is expected to have an argument,\n" +" which should be separated from it by white space.\n" +" \n" +" Each time it is invoked, getopts will place the next option in the\n" +" shell variable $name, initializing name if it does not exist, and\n" +" the index of the next argument to be processed into the shell\n" +" variable OPTIND. OPTIND is initialized to 1 each time the shell or\n" +" a shell script is invoked. When an option requires an argument,\n" +" getopts places that argument into the shell variable OPTARG.\n" +" \n" +" getopts reports errors in one of two ways. If the first character\n" +" of OPTSTRING is a colon, getopts uses silent error reporting. In\n" +" this mode, no error messages are printed. If an invalid option is\n" +" seen, getopts places the option character found into OPTARG. If a\n" +" required argument is not found, getopts places a ':' into NAME and\n" +" sets OPTARG to the option character found. If getopts is not in\n" +" silent mode, and an invalid option is seen, getopts places '?' into\n" +" NAME and unsets OPTARG. If a required argument is not found, a '?'\n" +" is placed in NAME, OPTARG is unset, and a diagnostic message is\n" +" printed.\n" +" \n" +" If the shell variable OPTERR has the value 0, getopts disables the\n" +" printing of error messages, even if the first character of\n" +" OPTSTRING is not a colon. OPTERR has the value 1 by default.\n" +" \n" +" Getopts normally parses the positional parameters ($0 - $9), but if\n" +" more arguments are given, they are parsed instead.\n" +" \n" +" Exit Status:\n" +" Returns success if an option is found; fails if the end of options is\n" +" encountered or an error occurs." +msgstr "" + +#: builtins.c:664 +msgid "" +"Replace the shell with the given command.\n" +" \n" +" Execute COMMAND, replacing this shell with the specified program.\n" +" ARGUMENTS become the arguments to COMMAND. If COMMAND is not " +"specified,\n" +" any redirections take effect in the current shell.\n" +" \n" +" Options:\n" +" -a name\tpass NAME as the zeroth argument to COMMAND\n" +" -c\t\texecute COMMAND with an empty environment\n" +" -l\t\tplace a dash in the zeroth argument to COMMAND\n" +" \n" +" If the command cannot be executed, a non-interactive shell exits, " +"unless\n" +" the shell option `execfail' is set.\n" +" \n" +" Exit Status:\n" +" Returns success unless COMMAND is not found or a redirection error " +"occurs." +msgstr "" + +#: builtins.c:685 +#, fuzzy +msgid "" +"Exit the shell.\n" +" \n" +" Exits the shell with a status of N. If N is omitted, the exit status\n" +" is that of the last command executed." +msgstr "" +"IÅ¡eiti iÅ¡ aplinkos su klaidos kodu N. Jei N nenurodytas, iÅ¡einant " +"nustatomas\n" +" paskutinės vykdytos komandos klaidos kodas." + +#: builtins.c:694 +msgid "" +"Exit a login shell.\n" +" \n" +" Exits a login shell with exit status N. Returns an error if not " +"executed\n" +" in a login shell." +msgstr "" + +#: builtins.c:704 +msgid "" +"Display or execute commands from the history list.\n" +" \n" +" fc is used to list or edit and re-execute commands from the history " +"list.\n" +" FIRST and LAST can be numbers specifying the range, or FIRST can be a\n" +" string, which means the most recent command beginning with that\n" +" string.\n" +" \n" +" Options:\n" +" -e ENAME\tselect which editor to use. Default is FCEDIT, then " +"EDITOR,\n" +" \t\tthen vi\n" +" -l \tlist lines instead of editing\n" +" -n\tomit line numbers when listing\n" +" -r\treverse the order of the lines (newest listed first)\n" +" \n" +" With the `fc -s [pat=rep ...] [command]' format, COMMAND is\n" +" re-executed after the substitution OLD=NEW is performed.\n" +" \n" +" A useful alias to use with this is r='fc -s', so that typing `r cc'\n" +" runs the last command beginning with `cc' and typing `r' re-executes\n" +" the last command.\n" +" \n" +" Exit Status:\n" +" Returns success or status of executed command; non-zero if an error " +"occurs." +msgstr "" + +#: builtins.c:734 +msgid "" +"Move job to the foreground.\n" +" \n" +" Place the job identified by JOB_SPEC in the foreground, making it the\n" +" current job. If JOB_SPEC is not present, the shell's notion of the\n" +" current job is used.\n" +" \n" +" Exit Status:\n" +" Status of command placed in foreground, or failure if an error occurs." +msgstr "" + +#: builtins.c:749 +msgid "" +"Move jobs to the background.\n" +" \n" +" Place the jobs identified by each JOB_SPEC in the background, as if " +"they\n" +" had been started with `&'. If JOB_SPEC is not present, the shell's " +"notion\n" +" of the current job is used.\n" +" \n" +" Exit Status:\n" +" Returns success unless job control is not enabled or an error occurs." +msgstr "" + +#: builtins.c:763 +msgid "" +"Remember or display program locations.\n" +" \n" +" Determine and remember the full pathname of each command NAME. If\n" +" no arguments are given, information about remembered commands is " +"displayed.\n" +" \n" +" Options:\n" +" -d\t\tforget the remembered location of each NAME\n" +" -l\t\tdisplay in a format that may be reused as input\n" +" -p pathname\tuse PATHNAME is the full pathname of NAME\n" +" -r\t\tforget all remembered locations\n" +" -t\t\tprint the remembered location of each NAME, preceding\n" +" \t\teach location with the corresponding NAME if multiple\n" +" \t\tNAMEs are given\n" +" Arguments:\n" +" NAME\t\tEach NAME is searched for in $PATH and added to the list\n" +" \t\tof remembered commands.\n" +" \n" +" Exit Status:\n" +" Returns success unless NAME is not found or an invalid option is given." +msgstr "" + +#: builtins.c:788 +msgid "" +"Display information about builtin commands.\n" +" \n" +" Displays brief summaries of builtin commands. If PATTERN is\n" +" specified, gives detailed help on all commands matching PATTERN,\n" +" otherwise the list of help topics is printed.\n" +" \n" +" Options:\n" +" -d\toutput short description for each topic\n" +" -m\tdisplay usage in pseudo-manpage format\n" +" -s\toutput only a short usage synopsis for each topic matching\n" +" \tPATTERN\n" +" \n" +" Arguments:\n" +" PATTERN\tPattern specifiying a help topic\n" +" \n" +" Exit Status:\n" +" Returns success unless PATTERN is not found or an invalid option is " +"given." +msgstr "" + +#: builtins.c:812 +msgid "" +"Display or manipulate the history list.\n" +" \n" +" Display the history list with line numbers, prefixing each modified\n" +" entry with a `*'. An argument of N lists only the last N entries.\n" +" \n" +" Options:\n" +" -c\tclear the history list by deleting all of the entries\n" +" -d offset\tdelete the history entry at offset OFFSET.\n" +" \n" +" -a\tappend history lines from this session to the history file\n" +" -n\tread all history lines not already read from the history file\n" +" -r\tread the history file and append the contents to the history\n" +" \tlist\n" +" -w\twrite the current history to the history file\n" +" \tand append them to the history list\n" +" \n" +" -p\tperform history expansion on each ARG and display the result\n" +" \twithout storing it in the history list\n" +" -s\tappend the ARGs to the history list as a single entry\n" +" \n" +" If FILENAME is given, it is used as the history file. Otherwise,\n" +" if $HISTFILE has a value, that is used, else ~/.bash_history.\n" +" \n" +" If the $HISTTIMEFORMAT variable is set and not null, its value is used\n" +" as a format string for strftime(3) to print the time stamp associated\n" +" with each displayed history entry. No time stamps are printed " +"otherwise.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or an error occurs." +msgstr "" + +#: builtins.c:848 +msgid "" +"Display status of jobs.\n" +" \n" +" Lists the active jobs. JOBSPEC restricts output to that job.\n" +" Without options, the status of all active jobs is displayed.\n" +" \n" +" Options:\n" +" -l\tlists process IDs in addition to the normal information\n" +" -n\tlist only processes that have changed status since the last\n" +" \tnotification\n" +" -p\tlists process IDs only\n" +" -r\trestrict output to running jobs\n" +" -s\trestrict output to stopped jobs\n" +" \n" +" If -x is supplied, COMMAND is run after all job specifications that\n" +" appear in ARGS have been replaced with the process ID of that job's\n" +" process group leader.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or an error occurs.\n" +" If -x is used, returns the exit status of COMMAND." +msgstr "" + +#: builtins.c:875 +msgid "" +"Remove jobs from current shell.\n" +" \n" +" Removes each JOBSPEC argument from the table of active jobs. Without\n" +" any JOBSPECs, the shell uses its notion of the current job.\n" +" \n" +" Options:\n" +" -a\tremove all jobs if JOBSPEC is not supplied\n" +" -h\tmark each JOBSPEC so that SIGHUP is not sent to the job if the\n" +" \tshell receives a SIGHUP\n" +" -r\tremove only running jobs\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option or JOBSPEC is given." +msgstr "" + +#: builtins.c:894 +msgid "" +"Send a signal to a job.\n" +" \n" +" Send the processes identified by PID or JOBSPEC the signal named by\n" +" SIGSPEC or SIGNUM. If neither SIGSPEC nor SIGNUM is present, then\n" +" SIGTERM is assumed.\n" +" \n" +" Options:\n" +" -s sig\tSIG is a signal name\n" +" -n sig\tSIG is a signal number\n" +" -l\tlist the signal names; if arguments follow `-l' they are\n" +" \tassumed to be signal numbers for which names should be listed\n" +" \n" +" Kill is a shell builtin for two reasons: it allows job IDs to be used\n" +" instead of process IDs, and allows processes to be killed if the limit\n" +" on processes that you can create is reached.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or an error occurs." +msgstr "" + +#: builtins.c:917 +msgid "" +"Evaluate arithmetic expressions.\n" +" \n" +" Evaluate each ARG as an arithmetic expression. Evaluation is done in\n" +" fixed-width integers with no check for overflow, though division by 0\n" +" is trapped and flagged as an error. The following list of operators is\n" +" grouped into levels of equal-precedence operators. The levels are " +"listed\n" +" in order of decreasing precedence.\n" +" \n" +" \tid++, id--\tvariable post-increment, post-decrement\n" +" \t++id, --id\tvariable pre-increment, pre-decrement\n" +" \t-, +\t\tunary minus, plus\n" +" \t!, ~\t\tlogical and bitwise negation\n" +" \t**\t\texponentiation\n" +" \t*, /, %\t\tmultiplication, division, remainder\n" +" \t+, -\t\taddition, subtraction\n" +" \t<<, >>\t\tleft and right bitwise shifts\n" +" \t<=, >=, <, >\tcomparison\n" +" \t==, !=\t\tequality, inequality\n" +" \t&\t\tbitwise AND\n" +" \t^\t\tbitwise XOR\n" +" \t|\t\tbitwise OR\n" +" \t&&\t\tlogical AND\n" +" \t||\t\tlogical OR\n" +" \texpr ? expr : expr\n" +" \t\t\tconditional operator\n" +" \t=, *=, /=, %=,\n" +" \t+=, -=, <<=, >>=,\n" +" \t&=, ^=, |=\tassignment\n" +" \n" +" Shell variables are allowed as operands. The name of the variable\n" +" is replaced by its value (coerced to a fixed-width integer) within\n" +" an expression. The variable need not have its integer attribute\n" +" turned on to be used in an expression.\n" +" \n" +" Operators are evaluated in order of precedence. Sub-expressions in\n" +" parentheses are evaluated first and may override the precedence\n" +" rules above.\n" +" \n" +" Exit Status:\n" +" If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise.." +msgstr "" + +#: builtins.c:962 +msgid "" +"Read a line from the standard input and split it into fields.\n" +" \n" +" Reads a single line from the standard input, or from file descriptor FD\n" +" if the -u option is supplied. The line is split into fields as with " +"word\n" +" splitting, and the first word is assigned to the first NAME, the second\n" +" word to the second NAME, and so on, with any leftover words assigned to\n" +" the last NAME. Only the characters found in $IFS are recognized as " +"word\n" +" delimiters.\n" +" \n" +" If no NAMEs are supplied, the line read is stored in the REPLY " +"variable.\n" +" \n" +" Options:\n" +" -a array\tassign the words read to sequential indices of the array\n" +" \t\tvariable ARRAY, starting at zero\n" +" -d delim\tcontinue until the first character of DELIM is read, rather\n" +" \t\tthan newline\n" +" -e\t\tuse Readline to obtain the line in an interactive shell\n" +" -i text\tUse TEXT as the initial text for Readline\n" +" -n nchars\treturn after reading NCHARS characters rather than waiting\n" +" \t\tfor a newline\n" +" -p prompt\toutput the string PROMPT without a trailing newline before\n" +" \t\tattempting to read\n" +" -r\t\tdo not allow backslashes to escape any characters\n" +" -s\t\tdo not echo input coming from a terminal\n" +" -t timeout\ttime out and return failure if a complete line of input " +"is\n" +" \t\tnot read withint TIMEOUT seconds. The value of the TMOUT\n" +" \t\tvariable is the default timeout. TIMEOUT may be a\n" +" \t\tfractional number. If TIMEOUT is 0, read returns success only\n" +" \t\tif input is available on the specified file descriptor. The\n" +" \t\texit status is greater than 128 if the timeout is exceeded\n" +" -u fd\t\tread from file descriptor FD instead of the standard input\n" +" \n" +" Exit Status:\n" +" The return code is zero, unless end-of-file is encountered, read times " +"out,\n" +" or an invalid file descriptor is supplied as the argument to -u." +msgstr "" + +#: builtins.c:1002 +msgid "" +"Return from a shell function.\n" +" \n" +" Causes a function or sourced script to exit with the return value\n" +" specified by N. If N is omitted, the return status is that of the\n" +" last command executed within the function or script.\n" +" \n" +" Exit Status:\n" +" Returns N, or failure if the shell is not executing a function or script." +msgstr "" + +#: builtins.c:1015 +msgid "" +"Set or unset values of shell options and positional parameters.\n" +" \n" +" Change the value of shell attributes and positional parameters, or\n" +" display the names and values of shell variables.\n" +" \n" +" Options:\n" +" -a Mark variables which are modified or created for export.\n" +" -b Notify of job termination immediately.\n" +" -e Exit immediately if a command exits with a non-zero status.\n" +" -f Disable file name generation (globbing).\n" +" -h Remember the location of commands as they are looked up.\n" +" -k All assignment arguments are placed in the environment for a\n" +" command, not just those that precede the command name.\n" +" -m Job control is enabled.\n" +" -n Read commands but do not execute them.\n" +" -o option-name\n" +" Set the variable corresponding to option-name:\n" +" allexport same as -a\n" +" braceexpand same as -B\n" +" emacs use an emacs-style line editing interface\n" +" errexit same as -e\n" +" errtrace same as -E\n" +" functrace same as -T\n" +" hashall same as -h\n" +" histexpand same as -H\n" +" history enable command history\n" +" ignoreeof the shell will not exit upon reading EOF\n" +" interactive-comments\n" +" allow comments to appear in interactive commands\n" +" keyword same as -k\n" +" monitor same as -m\n" +" noclobber same as -C\n" +" noexec same as -n\n" +" noglob same as -f\n" +" nolog currently accepted but ignored\n" +" notify same as -b\n" +" nounset same as -u\n" +" onecmd same as -t\n" +" physical same as -P\n" +" pipefail the return value of a pipeline is the status of\n" +" the last command to exit with a non-zero status,\n" +" or zero if no command exited with a non-zero " +"status\n" +" posix change the behavior of bash where the default\n" +" operation differs from the Posix standard to\n" +" match the standard\n" +" privileged same as -p\n" +" verbose same as -v\n" +" vi use a vi-style line editing interface\n" +" xtrace same as -x\n" +" -p Turned on whenever the real and effective user ids do not match.\n" +" Disables processing of the $ENV file and importing of shell\n" +" functions. Turning this option off causes the effective uid and\n" +" gid to be set to the real uid and gid.\n" +" -t Exit after reading and executing one command.\n" +" -u Treat unset variables as an error when substituting.\n" +" -v Print shell input lines as they are read.\n" +" -x Print commands and their arguments as they are executed.\n" +" -B the shell will perform brace expansion\n" +" -C If set, disallow existing regular files to be overwritten\n" +" by redirection of output.\n" +" -E If set, the ERR trap is inherited by shell functions.\n" +" -H Enable ! style history substitution. This flag is on\n" +" by default when the shell is interactive.\n" +" -P If set, do not follow symbolic links when executing commands\n" +" such as cd which change the current directory.\n" +" -T If set, the DEBUG trap is inherited by shell functions.\n" +" - Assign any remaining arguments to the positional parameters.\n" +" The -x and -v options are turned off.\n" +" \n" +" Using + rather than - causes these flags to be turned off. The\n" +" flags can also be used upon invocation of the shell. The current\n" +" set of flags may be found in $-. The remaining n ARGs are positional\n" +" parameters and are assigned, in order, to $1, $2, .. $n. If no\n" +" ARGs are given, all shell variables are printed.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given." +msgstr "" + +#: builtins.c:1097 +msgid "" +"Unset values and attributes of shell variables and functions.\n" +" \n" +" For each NAME, remove the corresponding variable or function.\n" +" \n" +" Options:\n" +" -f\ttreat each NAME as a shell function\n" +" -v\ttreat each NAME as a shell variable\n" +" \n" +" Without options, unset first tries to unset a variable, and if that " +"fails,\n" +" tries to unset a function.\n" +" \n" +" Some variables cannot be unset; also see `readonly'.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or a NAME is read-only." +msgstr "" + +#: builtins.c:1117 +msgid "" +"Set export attribute for shell variables.\n" +" \n" +" Marks each NAME for automatic export to the environment of subsequently\n" +" executed commands. If VALUE is supplied, assign VALUE before " +"exporting.\n" +" \n" +" Options:\n" +" -f\trefer to shell functions\n" +" -n\tremove the export property from each NAME\n" +" -p\tdisplay a list of all exported variables and functions\n" +" \n" +" An argument of `--' disables further option processing.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or NAME is invalid." +msgstr "" + +#: builtins.c:1136 +msgid "" +"Mark shell variables as unchangeable.\n" +" \n" +" Mark each NAME as read-only; the values of these NAMEs may not be\n" +" changed by subsequent assignment. If VALUE is supplied, assign VALUE\n" +" before marking as read-only.\n" +" \n" +" Options:\n" +" -a\trefer to indexed array variables\n" +" -A\trefer to associative array variables\n" +" -f\trefer to shell functions\n" +" -p\tdisplay a list of all readonly variables and functions\n" +" \n" +" An argument of `--' disables further option processing.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or NAME is invalid." +msgstr "" + +#: builtins.c:1157 +msgid "" +"Shift positional parameters.\n" +" \n" +" Rename the positional parameters $N+1,$N+2 ... to $1,$2 ... If N is\n" +" not given, it is assumed to be 1.\n" +" \n" +" Exit Status:\n" +" Returns success unless N is negative or greater than $#." +msgstr "" + +#: builtins.c:1169 builtins.c:1184 +#, fuzzy +msgid "" +"Execute commands from a file in the current shell.\n" +" \n" +" Read and execute commands from FILENAME in the current shell. The\n" +" entries in $PATH are used to find the directory containing FILENAME.\n" +" If any ARGUMENTS are supplied, they become the positional parameters\n" +" when FILENAME is executed.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed in FILENAME; fails if\n" +" FILENAME cannot be read." +msgstr "" +"Skaityti ir vykdyti komandas iÅ¡ FAILO ir grįžti. Keliai\n" +" kintamajame $PATH naudojami aplankui, kuriame yra FAILAS, rasti.\n" +" Jei nurodyta ARGUMENTŲ, jie tampa poziciniais parametrais iÅ¡kvietus\n" +" FAILĄ." + +#: builtins.c:1200 +msgid "" +"Suspend shell execution.\n" +" \n" +" Suspend the execution of this shell until it receives a SIGCONT signal.\n" +" Unless forced, login shells cannot be suspended.\n" +" \n" +" Options:\n" +" -f\tforce the suspend, even if the shell is a login shell\n" +" \n" +" Exit Status:\n" +" Returns success unless job control is not enabled or an error occurs." +msgstr "" + +#: builtins.c:1216 +msgid "" +"Evaluate conditional expression.\n" +" \n" +" Exits with a status of 0 (true) or 1 (false) depending on\n" +" the evaluation of EXPR. Expressions may be unary or binary. Unary\n" +" expressions are often used to examine the status of a file. There\n" +" are string operators as well, and numeric comparison operators.\n" +" \n" +" File operators:\n" +" \n" +" -a FILE True if file exists.\n" +" -b FILE True if file is block special.\n" +" -c FILE True if file is character special.\n" +" -d FILE True if file is a directory.\n" +" -e FILE True if file exists.\n" +" -f FILE True if file exists and is a regular file.\n" +" -g FILE True if file is set-group-id.\n" +" -h FILE True if file is a symbolic link.\n" +" -L FILE True if file is a symbolic link.\n" +" -k FILE True if file has its `sticky' bit set.\n" +" -p FILE True if file is a named pipe.\n" +" -r FILE True if file is readable by you.\n" +" -s FILE True if file exists and is not empty.\n" +" -S FILE True if file is a socket.\n" +" -t FD True if FD is opened on a terminal.\n" +" -u FILE True if the file is set-user-id.\n" +" -w FILE True if the file is writable by you.\n" +" -x FILE True if the file is executable by you.\n" +" -O FILE True if the file is effectively owned by you.\n" +" -G FILE True if the file is effectively owned by your group.\n" +" -N FILE True if the file has been modified since it was last " +"read.\n" +" \n" +" FILE1 -nt FILE2 True if file1 is newer than file2 (according to\n" +" modification date).\n" +" \n" +" FILE1 -ot FILE2 True if file1 is older than file2.\n" +" \n" +" FILE1 -ef FILE2 True if file1 is a hard link to file2.\n" +" \n" +" String operators:\n" +" \n" +" -z STRING True if string is empty.\n" +" \n" +" -n STRING\n" +" STRING True if string is not empty.\n" +" \n" +" STRING1 = STRING2\n" +" True if the strings are equal.\n" +" STRING1 != STRING2\n" +" True if the strings are not equal.\n" +" STRING1 < STRING2\n" +" True if STRING1 sorts before STRING2 " +"lexicographically.\n" +" STRING1 > STRING2\n" +" True if STRING1 sorts after STRING2 lexicographically.\n" +" \n" +" Other operators:\n" +" \n" +" -o OPTION True if the shell option OPTION is enabled.\n" +" ! EXPR True if expr is false.\n" +" EXPR1 -a EXPR2 True if both expr1 AND expr2 are true.\n" +" EXPR1 -o EXPR2 True if either expr1 OR expr2 is true.\n" +" \n" +" arg1 OP arg2 Arithmetic tests. OP is one of -eq, -ne,\n" +" -lt, -le, -gt, or -ge.\n" +" \n" +" Arithmetic binary operators return true if ARG1 is equal, not-equal,\n" +" less-than, less-than-or-equal, greater-than, or greater-than-or-equal\n" +" than ARG2.\n" +" \n" +" Exit Status:\n" +" Returns success if EXPR evaluates to true; fails if EXPR evaluates to\n" +" false or an invalid argument is given." +msgstr "" + +#: builtins.c:1292 +msgid "" +"Evaluate conditional expression.\n" +" \n" +" This is a synonym for the \"test\" builtin, but the last argument must\n" +" be a literal `]', to match the opening `['." +msgstr "" + +#: builtins.c:1301 +msgid "" +"Display process times.\n" +" \n" +" Prints the accumulated user and system times for the shell and all of " +"its\n" +" child processes.\n" +" \n" +" Exit Status:\n" +" Always succeeds." +msgstr "" + +#: builtins.c:1313 +msgid "" +"Trap signals and other events.\n" +" \n" +" Defines and activates handlers to be run when the shell receives " +"signals\n" +" or other conditions.\n" +" \n" +" ARG is a command to be read and executed when the shell receives the\n" +" signal(s) SIGNAL_SPEC. If ARG is absent (and a single SIGNAL_SPEC\n" +" is supplied) or `-', each specified signal is reset to its original\n" +" value. If ARG is the null string each SIGNAL_SPEC is ignored by the\n" +" shell and by the commands it invokes.\n" +" \n" +" If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell. " +"If\n" +" a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command.\n" +" \n" +" If no arguments are supplied, trap prints the list of commands " +"associated\n" +" with each signal.\n" +" \n" +" Options:\n" +" -l\tprint a list of signal names and their corresponding numbers\n" +" -p\tdisplay the trap commands associated with each SIGNAL_SPEC\n" +" \n" +" Each SIGNAL_SPEC is either a signal name in or a signal " +"number.\n" +" Signal names are case insensitive and the SIG prefix is optional. A\n" +" signal may be sent to the shell with \"kill -signal $$\".\n" +" \n" +" Exit Status:\n" +" Returns success unless a SIGSPEC is invalid or an invalid option is " +"given." +msgstr "" + +#: builtins.c:1345 +msgid "" +"Display information about command type.\n" +" \n" +" For each NAME, indicate how it would be interpreted if used as a\n" +" command name.\n" +" \n" +" Options:\n" +" -a\tdisplay all locations containing an executable named NAME;\n" +" \tincludes aliases, builtins, and functions, if and only if\n" +" \tthe `-p' option is not also used\n" +" -f\tsuppress shell function lookup\n" +" -P\tforce a PATH search for each NAME, even if it is an alias,\n" +" \tbuiltin, or function, and returns the name of the disk file\n" +" \tthat would be executed\n" +" -p\treturns either the name of the disk file that would be executed,\n" +" \tor nothing if `type -t NAME' would not return `file'.\n" +" -t\toutput a single word which is one of `alias', `keyword',\n" +" \t`function', `builtin', `file' or `', if NAME is an alias, shell\n" +" \treserved word, shell function, shell builtin, disk file, or not\n" +" \tfound, respectively\n" +" \n" +" Arguments:\n" +" NAME\tCommand name to be interpreted.\n" +" \n" +" Exit Status:\n" +" Returns success if all of the NAMEs are found; fails if any are not " +"found." +msgstr "" + +#: builtins.c:1376 +msgid "" +"Modify shell resource limits.\n" +" \n" +" Provides control over the resources available to the shell and " +"processes\n" +" it creates, on systems that allow such control.\n" +" \n" +" Options:\n" +" -S\tuse the `soft' resource limit\n" +" -H\tuse the `hard' resource limit\n" +" -a\tall current limits are reported\n" +" -b\tthe socket buffer size\n" +" -c\tthe maximum size of core files created\n" +" -d\tthe maximum size of a process's data segment\n" +" -e\tthe maximum scheduling priority (`nice')\n" +" -f\tthe maximum size of files written by the shell and its children\n" +" -i\tthe maximum number of pending signals\n" +" -l\tthe maximum size a process may lock into memory\n" +" -m\tthe maximum resident set size\n" +" -n\tthe maximum number of open file descriptors\n" +" -p\tthe pipe buffer size\n" +" -q\tthe maximum number of bytes in POSIX message queues\n" +" -r\tthe maximum real-time scheduling priority\n" +" -s\tthe maximum stack size\n" +" -t\tthe maximum amount of cpu time in seconds\n" +" -u\tthe maximum number of user processes\n" +" -v\tthe size of virtual memory\n" +" -x\tthe maximum number of file locks\n" +" \n" +" If LIMIT is given, it is the new value of the specified resource; the\n" +" special LIMIT values `soft', `hard', and `unlimited' stand for the\n" +" current soft limit, the current hard limit, and no limit, respectively.\n" +" Otherwise, the current value of the specified resource is printed. If\n" +" no option is given, then -f is assumed.\n" +" \n" +" Values are in 1024-byte increments, except for -t, which is in seconds,\n" +" -p, which is in increments of 512 bytes, and -u, which is an unscaled\n" +" number of processes.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" + +#: builtins.c:1421 +msgid "" +"Display or set file mode mask.\n" +" \n" +" Sets the user file-creation mask to MODE. If MODE is omitted, prints\n" +" the current value of the mask.\n" +" \n" +" If MODE begins with a digit, it is interpreted as an octal number;\n" +" otherwise it is a symbolic mode string like that accepted by chmod(1).\n" +" \n" +" Options:\n" +" -p\tif MODE is omitted, output in a form that may be reused as input\n" +" -S\tmakes the output symbolic; otherwise an octal number is output\n" +" \n" +" Exit Status:\n" +" Returns success unless MODE is invalid or an invalid option is given." +msgstr "" + +#: builtins.c:1441 +msgid "" +"Wait for job completion and return exit status.\n" +" \n" +" Waits for the process identified by ID, which may be a process ID or a\n" +" job specification, and reports its termination status. If ID is not\n" +" given, waits for all currently active child processes, and the return\n" +" status is zero. If ID is a a job specification, waits for all " +"processes\n" +" in the job's pipeline.\n" +" \n" +" Exit Status:\n" +" Returns the status of ID; fails if ID is invalid or an invalid option " +"is\n" +" given." +msgstr "" + +#: builtins.c:1459 +msgid "" +"Wait for process completion and return exit status.\n" +" \n" +" Waits for the specified process and reports its termination status. If\n" +" PID is not given, all currently active child processes are waited for,\n" +" and the return code is zero. PID must be a process ID.\n" +" \n" +" Exit Status:\n" +" Returns the status of ID; fails if ID is invalid or an invalid option " +"is\n" +" given." +msgstr "" + +#: builtins.c:1474 +msgid "" +"Execute commands for each member in a list.\n" +" \n" +" The `for' loop executes a sequence of commands for each member in a\n" +" list of items. If `in WORDS ...;' is not present, then `in \"$@\"' is\n" +" assumed. For each element in WORDS, NAME is set to that element, and\n" +" the COMMANDS are executed.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" + +#: builtins.c:1488 +msgid "" +"Arithmetic for loop.\n" +" \n" +" Equivalent to\n" +" \t(( EXP1 ))\n" +" \twhile (( EXP2 )); do\n" +" \t\tCOMMANDS\n" +" \t\t(( EXP3 ))\n" +" \tdone\n" +" EXP1, EXP2, and EXP3 are arithmetic expressions. If any expression is\n" +" omitted, it behaves as if it evaluates to 1.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" + +#: builtins.c:1506 +msgid "" +"Select words from a list and execute commands.\n" +" \n" +" The WORDS are expanded, generating a list of words. The\n" +" set of expanded words is printed on the standard error, each\n" +" preceded by a number. If `in WORDS' is not present, `in \"$@\"'\n" +" is assumed. The PS3 prompt is then displayed and a line read\n" +" from the standard input. If the line consists of the number\n" +" corresponding to one of the displayed words, then NAME is set\n" +" to that word. If the line is empty, WORDS and the prompt are\n" +" redisplayed. If EOF is read, the command completes. Any other\n" +" value read causes NAME to be set to null. The line read is saved\n" +" in the variable REPLY. COMMANDS are executed after each selection\n" +" until a break command is executed.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" + +#: builtins.c:1527 +msgid "" +"Report time consumed by pipeline's execution.\n" +" \n" +" Execute PIPELINE and print a summary of the real time, user CPU time,\n" +" and system CPU time spent executing PIPELINE when it terminates.\n" +" \n" +" Options:\n" +" -p\tprint the timing summary in the portable Posix format\n" +" \n" +" The value of the TIMEFORMAT variable is used as the output format.\n" +" \n" +" Exit Status:\n" +" The return status is the return status of PIPELINE." +msgstr "" + +#: builtins.c:1544 +msgid "" +"Execute commands based on pattern matching.\n" +" \n" +" Selectively execute COMMANDS based upon WORD matching PATTERN. The\n" +" `|' is used to separate multiple patterns.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" + +#: builtins.c:1556 +msgid "" +"Execute commands based on conditional.\n" +" \n" +" The `if COMMANDS' list is executed. If its exit status is zero, then " +"the\n" +" `then COMMANDS' list is executed. Otherwise, each `elif COMMANDS' list " +"is\n" +" executed in turn, and if its exit status is zero, the corresponding\n" +" `then COMMANDS' list is executed and the if command completes. " +"Otherwise,\n" +" the `else COMMANDS' list is executed, if present. The exit status of " +"the\n" +" entire construct is the exit status of the last command executed, or " +"zero\n" +" if no condition tested true.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" + +#: builtins.c:1573 +#, fuzzy +msgid "" +"Execute commands as long as a test succeeds.\n" +" \n" +" Expand and execute COMMANDS as long as the final command in the\n" +" `while' COMMANDS has an exit status of zero.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"IÅ¡skleisti ir vykdyti KOMANDAS tol, kol galutinė komanda iÅ¡\n" +" „while“ komandų grąžina klaidos kodą 0." + +#: builtins.c:1585 +#, fuzzy +msgid "" +"Execute commands as long as a test does not succeed.\n" +" \n" +" Expand and execute COMMANDS as long as the final command in the\n" +" `until' COMMANDS has an exit status which is not zero.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"IÅ¡skleisti ir vykdyti KOMANDAS tol, kol galutinė komanda iÅ¡\n" +" „until“ komandų grąžina klaidos kodą, nelygų 0." + +#: builtins.c:1597 +msgid "" +"Define shell function.\n" +" \n" +" Create a shell function named NAME. When invoked as a simple command,\n" +" NAME runs COMMANDs in the calling shell's context. When NAME is " +"invoked,\n" +" the arguments are passed to the function as $1...$n, and the function's\n" +" name is in $FUNCNAME.\n" +" \n" +" Exit Status:\n" +" Returns success unless NAME is readonly." +msgstr "" + +#: builtins.c:1611 +#, fuzzy +msgid "" +"Group commands as a unit.\n" +" \n" +" Run a set of commands in a group. This is one way to redirect an\n" +" entire set of commands.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"Vykdyti eilę komandų grupėje. Tai yra vienas iÅ¡ bÅ«dų nukreipti\n" +" visos eilės komandų įvedimą/iÅ¡vedimą." + +#: builtins.c:1623 +msgid "" +"Resume job in foreground.\n" +" \n" +" Equivalent to the JOB_SPEC argument to the `fg' command. Resume a\n" +" stopped or background job. JOB_SPEC can specify either a job name\n" +" or a job number. Following JOB_SPEC with a `&' places the job in\n" +" the background, as if the job specification had been supplied as an\n" +" argument to `bg'.\n" +" \n" +" Exit Status:\n" +" Returns the status of the resumed job." +msgstr "" + +#: builtins.c:1638 +msgid "" +"Evaluate arithmetic expression.\n" +" \n" +" The EXPRESSION is evaluated according to the rules for arithmetic\n" +" evaluation. Equivalent to \"let EXPRESSION\".\n" +" \n" +" Exit Status:\n" +" Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise." +msgstr "" + +#: builtins.c:1650 +msgid "" +"Execute conditional command.\n" +" \n" +" Returns a status of 0 or 1 depending on the evaluation of the " +"conditional\n" +" expression EXPRESSION. Expressions are composed of the same primaries " +"used\n" +" by the `test' builtin, and may be combined using the following " +"operators:\n" +" \n" +" ( EXPRESSION )\tReturns the value of EXPRESSION\n" +" ! EXPRESSION\t\tTrue if EXPRESSION is false; else false\n" +" EXPR1 && EXPR2\tTrue if both EXPR1 and EXPR2 are true; else false\n" +" EXPR1 || EXPR2\tTrue if either EXPR1 or EXPR2 is true; else false\n" +" \n" +" When the `==' and `!=' operators are used, the string to the right of\n" +" the operator is used as a pattern and pattern matching is performed.\n" +" When the `=~' operator is used, the string to the right of the operator\n" +" is matched as a regular expression.\n" +" \n" +" The && and || operators do not evaluate EXPR2 if EXPR1 is sufficient to\n" +" determine the expression's value.\n" +" \n" +" Exit Status:\n" +" 0 or 1 depending on value of EXPRESSION." +msgstr "" + +#: builtins.c:1676 +msgid "" +"Common shell variable names and usage.\n" +" \n" +" BASH_VERSION\tVersion information for this Bash.\n" +" CDPATH\tA colon-separated list of directories to search\n" +" \t\tfor directories given as arguments to `cd'.\n" +" GLOBIGNORE\tA colon-separated list of patterns describing filenames to\n" +" \t\tbe ignored by pathname expansion.\n" +" HISTFILE\tThe name of the file where your command history is stored.\n" +" HISTFILESIZE\tThe maximum number of lines this file can contain.\n" +" HISTSIZE\tThe maximum number of history lines that a running\n" +" \t\tshell can access.\n" +" HOME\tThe complete pathname to your login directory.\n" +" HOSTNAME\tThe name of the current host.\n" +" HOSTTYPE\tThe type of CPU this version of Bash is running under.\n" +" IGNOREEOF\tControls the action of the shell on receipt of an EOF\n" +" \t\tcharacter as the sole input. If set, then the value\n" +" \t\tof it is the number of EOF characters that can be seen\n" +" \t\tin a row on an empty line before the shell will exit\n" +" \t\t(default 10). When unset, EOF signifies the end of input.\n" +" MACHTYPE\tA string describing the current system Bash is running on.\n" +" MAILCHECK\tHow often, in seconds, Bash checks for new mail.\n" +" MAILPATH\tA colon-separated list of filenames which Bash checks\n" +" \t\tfor new mail.\n" +" OSTYPE\tThe version of Unix this version of Bash is running on.\n" +" PATH\tA colon-separated list of directories to search when\n" +" \t\tlooking for commands.\n" +" PROMPT_COMMAND\tA command to be executed before the printing of each\n" +" \t\tprimary prompt.\n" +" PS1\t\tThe primary prompt string.\n" +" PS2\t\tThe secondary prompt string.\n" +" PWD\t\tThe full pathname of the current directory.\n" +" SHELLOPTS\tA colon-separated list of enabled shell options.\n" +" TERM\tThe name of the current terminal type.\n" +" TIMEFORMAT\tThe output format for timing statistics displayed by the\n" +" \t\t`time' reserved word.\n" +" auto_resume\tNon-null means a command word appearing on a line by\n" +" \t\titself is first looked for in the list of currently\n" +" \t\tstopped jobs. If found there, that job is foregrounded.\n" +" \t\tA value of `exact' means that the command word must\n" +" \t\texactly match a command in the list of stopped jobs. A\n" +" \t\tvalue of `substring' means that the command word must\n" +" \t\tmatch a substring of the job. Any other value means that\n" +" \t\tthe command must be a prefix of a stopped job.\n" +" histchars\tCharacters controlling history expansion and quick\n" +" \t\tsubstitution. The first character is the history\n" +" \t\tsubstitution character, usually `!'. The second is\n" +" \t\tthe `quick substitution' character, usually `^'. The\n" +" \t\tthird is the `history comment' character, usually `#'.\n" +" HISTIGNORE\tA colon-separated list of patterns used to decide which\n" +" \t\tcommands should be saved on the history list.\n" +msgstr "" + +#: builtins.c:1733 +msgid "" +"Add directories to stack.\n" +" \n" +" Adds a directory to the top of the directory stack, or rotates\n" +" the stack, making the new top of the stack the current working\n" +" directory. With no arguments, exchanges the top two directories.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when adding\n" +" \tdirectories to the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the left of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" -N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the right of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" dir\tAdds DIR to the directory stack at the top, making it the\n" +" \tnew current working directory.\n" +" \n" +" The `dirs' builtin displays the directory stack.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid argument is supplied or the directory\n" +" change fails." +msgstr "" + +#: builtins.c:1767 +msgid "" +"Remove directories from stack.\n" +" \n" +" Removes entries from the directory stack. With no arguments, removes\n" +" the top directory from the stack, and changes to the new top directory.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when removing\n" +" \tdirectories from the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRemoves the Nth entry counting from the left of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd +0'\n" +" \tremoves the first directory, `popd +1' the second.\n" +" \n" +" -N\tRemoves the Nth entry counting from the right of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd -0'\n" +" \tremoves the last directory, `popd -1' the next to last.\n" +" \n" +" The `dirs' builtin displays the directory stack.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid argument is supplied or the directory\n" +" change fails." +msgstr "" + +#: builtins.c:1797 +msgid "" +"Display directory stack.\n" +" \n" +" Display the list of currently remembered directories. Directories\n" +" find their way onto the list with the `pushd' command; you can get\n" +" back up through the list with the `popd' command.\n" +" \n" +" Options:\n" +" -c\tclear the directory stack by deleting all of the elements\n" +" -l\tdo not print tilde-prefixed versions of directories relative\n" +" \tto your home directory\n" +" -p\tprint the directory stack with one entry per line\n" +" -v\tprint the directory stack with one entry per line prefixed\n" +" \twith its position in the stack\n" +" \n" +" Arguments:\n" +" +N\tDisplays the Nth entry counting from the left of the list shown " +"by\n" +" \tdirs when invoked without options, starting with zero.\n" +" \n" +" -N\tDisplays the Nth entry counting from the right of the list shown " +"by\n" +" \tdirs when invoked without options, starting with zero.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" + +#: builtins.c:1826 +msgid "" +"Set and unset shell options.\n" +" \n" +" Change the setting of each shell option OPTNAME. Without any option\n" +" arguments, list all shell options with an indication of whether or not " +"each\n" +" is set.\n" +" \n" +" Options:\n" +" -o\trestrict OPTNAMEs to those defined for use with `set -o'\n" +" -p\tprint each shell option with an indication of its status\n" +" -q\tsuppress output\n" +" -s\tenable (set) each OPTNAME\n" +" -u\tdisable (unset) each OPTNAME\n" +" \n" +" Exit Status:\n" +" Returns success if OPTNAME is enabled; fails if an invalid option is\n" +" given or OPTNAME is disabled." +msgstr "" + +#: builtins.c:1847 +#, fuzzy +msgid "" +"Formats and prints ARGUMENTS under control of the FORMAT.\n" +" \n" +" Options:\n" +" -v var\tassign the output to shell variable VAR rather than\n" +" \t\tdisplay it on the standard output\n" +" \n" +" FORMAT is a character string which contains three types of objects: " +"plain\n" +" characters, which are simply copied to standard output; character " +"escape\n" +" sequences, which are converted and copied to the standard output; and\n" +" format specifications, each of which causes printing of the next " +"successive\n" +" argument.\n" +" \n" +" In addition to the standard format specifications described in printf" +"(1)\n" +" and printf(3), printf interprets:\n" +" \n" +" %b\texpand backslash escape sequences in the corresponding argument\n" +" %q\tquote the argument in a way that can be reused as shell input\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or a write or " +"assignment\n" +" error occurs." +msgstr "" +"printf formatuoja ir spausdina ARGUMENTUS nurodytu FORMATU. FORMATAS\n" +" yra simbolių seka, sudaryta iÅ¡ trijų tipų objektų: paprastų\n" +" simbolių, tiesiog nukopijuojamų į standartinį iÅ¡vedimą,\n" +" kaitos sekų, konvertuojamų ir kopijuojamų į standartinį iÅ¡vedimą,\n" +" ir formato specifikacijų, kurių kiekviena iÅ¡spausdina kitą argumentą.\n" +" Be įprastų printf(1) formatų, %b reiÅ¡kia iÅ¡plėsti kairinio brÅ«kÅ¡nio\n" +" („\\“) kaitos sekas atitinkamame argumente, o %q reiÅ¡kia iÅ¡vesti\n" +" argumentą kabutėse tokia forma, kad rezultatą bÅ«tų galima\n" +" panaudoti įvedimui.\n" +" Jei pateiktas parametras -v, iÅ¡vedimas įraÅ¡omas į aplinkos kintamąjį\n" +" KINT, užuot spausdinus į standartinį iÅ¡vedimą." + +#: builtins.c:1874 +msgid "" +"Specify how arguments are to be completed by Readline.\n" +" \n" +" For each NAME, specify how arguments are to be completed. If no " +"options\n" +" are supplied, existing completion specifications are printed in a way " +"that\n" +" allows them to be reused as input.\n" +" \n" +" Options:\n" +" -p\tprint existing completion specifications in a reusable format\n" +" -r\tremove a completion specification for each NAME, or, if no\n" +" \tNAMEs are supplied, all completion specifications\n" +" \n" +" When completion is attempted, the actions are applied in the order the\n" +" uppercase-letter options are listed above.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" + +#: builtins.c:1897 +#, fuzzy +msgid "" +"Display possible completions depending on the options.\n" +" \n" +" Intended to be used from within a shell function generating possible\n" +" completions. If the optional WORD argument is supplied, matches " +"against\n" +" WORD are generated.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" +"Rodyti galimus užbaigimus priklausomai nuo nustatymų. Naudotina\n" +" iÅ¡ aplinkos funkcijos, generuojančios galimus užbaigimus.\n" +" Jei pateiktas nebÅ«tinasis ŽODŽIO argumentas, iÅ¡vedami įraÅ¡ai,\n" +" atitinkantys ŽODÄ®." + +#: builtins.c:1912 +msgid "" +"Modify or display completion options.\n" +" \n" +" Modify the completion options for each NAME, or, if no NAMEs are " +"supplied,\n" +" the completion currently begin executed. If no OPTIONs are givenm, " +"print\n" +" the completion options for each NAME or the current completion " +"specification.\n" +" \n" +" Options:\n" +" \t-o option\tSet completion option OPTION for each NAME\n" +" \n" +" Using `+o' instead of `-o' turns off the specified option.\n" +" \n" +" Arguments:\n" +" \n" +" Each NAME refers to a command for which a completion specification must\n" +" have previously been defined using the `complete' builtin. If no NAMEs\n" +" are supplied, compopt must be called by a function currently generating\n" +" completions, and the options for that currently-executing completion\n" +" generator are modified.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or NAME does not\n" +" have a completion specification defined." +msgstr "" + +#: builtins.c:1940 +msgid "" +"Read lines from a file into an array variable.\n" +" \n" +" Read lines from the standard input into the array variable ARRAY, or " +"from\n" +" file descriptor FD if the -u option is supplied. The variable MAPFILE " +"is\n" +" the default ARRAY.\n" +" \n" +" Options:\n" +" -n count\tCopy at most COUNT lines. If COUNT is 0, all lines are " +"copied.\n" +" -O origin\tBegin assigning to ARRAY at index ORIGIN. The default " +"index is 0.\n" +" -s count \tDiscard the first COUNT lines read.\n" +" -t\t\tRemove a trailing newline from each line read.\n" +" -u fd\t\tRead lines from file descriptor FD instead of the standard " +"input.\n" +" -C callback\tEvaluate CALLBACK each time QUANTUM lines are read.\n" +" -c quantum\tSpecify the number of lines read between each call to " +"CALLBACK.\n" +" \n" +" Arguments:\n" +" ARRAY\t\tArray variable name to use for file data.\n" +" \n" +" If -C is supplied without -c, the default quantum is 5000.\n" +" \n" +" If not supplied with an explicit origin, mapfile will clear ARRAY " +"before\n" +" assigning to it.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or ARRAY is readonly." +msgstr "" + +#~ msgid " " +#~ msgstr " " + +#~ msgid "Without EXPR, returns returns \"$line $filename\". With EXPR," +#~ msgstr "Be EXPR, grąžina „$line $filename“. Su EXPR," + +#~ msgid "returns \"$line $subroutine $filename\"; this extra information" +#~ msgstr "grąžina „$line $subroutine $filename“; Å¡i papildoma informacija" + +#~ msgid "can be used used to provide a stack trace." +#~ msgstr "gali bÅ«ti panaudota generuojant steko iÅ¡rašą (stack trace)." + +#~ msgid "" +#~ "The value of EXPR indicates how many call frames to go back before the" +#~ msgstr "EXPR reikÅ¡mė nurodo, per kiek kvietimo freimų eiti atgal prieÅ¡" + +#~ msgid "current one; the top frame is frame 0." +#~ msgstr "esamą. VirÅ¡utinis freimas yra 0." + +#~ msgid "%s: invalid number" +#~ msgstr "%s: netaisyklingas skaičius" + +#~ msgid "Shell commands matching keywords `" +#~ msgstr "Aplinkos komandos, atitinkančios raktažodžius „" + +#~ msgid "Display the list of currently remembered directories. Directories" +#~ msgstr "Rodyti prisimenamų aplankų sąrašą. Aplankai" + +#~ msgid "find their way onto the list with the `pushd' command; you can get" +#~ msgstr "atsiduria sąraÅ¡e su „pushd“ komanda; galite kilti" + +#~ msgid "back up through the list with the `popd' command." +#~ msgstr "sąraÅ¡u su „popd“ komanda." + +#~ msgid "" +#~ "The -l flag specifies that `dirs' should not print shorthand versions" +#~ msgstr "Parametras -l nurodo, kad „dirs“ neturėtų spausdinti sutrumpintų" + +#~ msgid "" +#~ "of directories which are relative to your home directory. This means" +#~ msgstr "aplankų, santykinių namų aplinkui, pavadinimų. Tai reiÅ¡kia, kad" + +#, fuzzy +#~ msgid "that `~/bin' might be displayed as `/homes/bfox/bin'. The -v flag" +#~ msgstr "kad „~/bin“ bus rodomas kaip „/home/bfox/bin“. Su parametru -v" + +#~ msgid "causes `dirs' to print the directory stack with one entry per line," +#~ msgstr "„dirs“ iÅ¡veda aplankų steką po vieną pavadinimą eilutėje," + +#~ msgid "" +#~ "prepending the directory name with its position in the stack. The -p" +#~ msgstr "prieÅ¡ pavadinimą priraÅ¡oma aplanko pozicija steke. Parametras -p" + +#~ msgid "flag does the same thing, but the stack position is not prepended." +#~ msgstr "turi tokį patį efektą, tačiau pozicija steke neiÅ¡vedama." + +#~ msgid "" +#~ "The -c flag clears the directory stack by deleting all of the elements." +#~ msgstr "Parametras -c iÅ¡valo aplankų steką." + +#~ msgid "" +#~ "+N displays the Nth entry counting from the left of the list shown by" +#~ msgstr "+N rodo N-tąjį įrašą skaičiuojant iÅ¡ kairės sąraÅ¡e, rodomame" + +#~ msgid " dirs when invoked without options, starting with zero." +#~ msgstr " „dirs“, iÅ¡kviesto be parametrų (skaičiuojama nuo nulio)." + +#~ msgid "" +#~ "-N displays the Nth entry counting from the right of the list shown by" +#~ msgstr "-N rodo N-tajį įrašą skaičiuojant iÅ¡ deÅ¡inės sąraÅ¡e, rodomame" + +#~ msgid "Adds a directory to the top of the directory stack, or rotates" +#~ msgstr "Ä®deda aplanką į aplankų steko viršų, arba pasuka" + +#~ msgid "the stack, making the new top of the stack the current working" +#~ msgstr "steką, nustatydamas esamą aplanką į naująją steko virÅ¡Å«nės reikÅ¡mę." + +#~ msgid "directory. With no arguments, exchanges the top two directories." +#~ msgstr "Be argumentų, sukeičia virÅ¡utinius du aplankus." + +#~ msgid "+N Rotates the stack so that the Nth directory (counting" +#~ msgstr "+N Pasuka steką, kad N-tasis aplankas (skaičiuojant" + +#~ msgid " from the left of the list shown by `dirs', starting with" +#~ msgstr " iÅ¡ kairės sąraÅ¡e, rodomame „dirs“, pradedant nuo nulio)" + +#~ msgid " zero) is at the top." +#~ msgstr " bÅ«tų virÅ¡uje." + +#~ msgid "-N Rotates the stack so that the Nth directory (counting" +#~ msgstr "-N Pasuka steką, kad N-tasis aplankas (skaičiuojant" + +#~ msgid " from the right of the list shown by `dirs', starting with" +#~ msgstr " iÅ¡ deÅ¡inės sąraÅ¡e, rodomame „dirs“, pradedant nuo nulio)" + +#~ msgid "-n suppress the normal change of directory when adding directories" +#~ msgstr "-n iÅ¡jungti įprastą aplanko pakeitimą pridedant aplankus" + +#~ msgid " to the stack, so only the stack is manipulated." +#~ msgstr " į steką, taigi, pakeičiamas tik stekas." + +#~ msgid "dir adds DIR to the directory stack at the top, making it the" +#~ msgstr "dir prideda DIR į aplankų steko viršų; DIR nustatomas" + +#~ msgid " new current working directory." +#~ msgstr " naujuoju darbiniu aplanku." + +#~ msgid "You can see the directory stack with the `dirs' command." +#~ msgstr "Galite pamatyti aplankų steką komanda „dirs“." + +#~ msgid "Removes entries from the directory stack. With no arguments," +#~ msgstr "Å alina įraÅ¡us iÅ¡ aplankų steko. Jei nenurodyta argumentų," + +#~ msgid "removes the top directory from the stack, and cd's to the new" +#~ msgstr "paÅ¡alina virÅ¡utinį aplanką iÅ¡ steko ir pakeičia darbinį aplanką" + +#~ msgid "top directory." +#~ msgstr "steko virÅ¡Å«nėje esančiu." + +#~ msgid "+N removes the Nth entry counting from the left of the list" +#~ msgstr "" +#~ "+N paÅ¡alina N-tąjį įrašą skaičiuojant iÅ¡ kairės sąraÅ¡e, iÅ¡vedamame „dir“" + +#~ msgid " shown by `dirs', starting with zero. For example: `popd +0'" +#~ msgstr " (skaičiuojama nuo nulio). Pavyzdžiui: „popd +0“" + +#~ msgid " removes the first directory, `popd +1' the second." +#~ msgstr " paÅ¡alina pirmąjį aplanką, „popd +1“ – antrąjį." + +#~ msgid "-N removes the Nth entry counting from the right of the list" +#~ msgstr "" +#~ "+N paÅ¡alina N-tąjį įrašą skaičiuojant iÅ¡ deÅ¡inės sąraÅ¡e, iÅ¡vedamame " +#~ "„dir“" + +#~ msgid " shown by `dirs', starting with zero. For example: `popd -0'" +#~ msgstr " (skaičiuojama nuo nulio). Pavyzdžiui: „popd -0“" + +#~ msgid " removes the last directory, `popd -1' the next to last." +#~ msgstr " paÅ¡alina paskutinį aplanką, „popd -1“ – prieÅ¡paskutinį." + +#~ msgid "" +#~ "-n suppress the normal change of directory when removing directories" +#~ msgstr " iÅ¡jungti įprastą darbinio aplanko keitimą Å¡alinant aplankus" + +#~ msgid " from the stack, so only the stack is manipulated." +#~ msgstr " iÅ¡ steko, taigi, pakeičiamas tik stekas." + +#~ msgid "allocated" +#~ msgstr "iÅ¡skirta" + +#~ msgid "freed" +#~ msgstr "atlaisvinta" + +#~ msgid "requesting resize" +#~ msgstr "praÅ¡oma dydžio keitimo" + +#~ msgid "just resized" +#~ msgstr "tik ką pakeistas dydis" + +#~ msgid "bug: unknown operation" +#~ msgstr "klaida: nežinoma operacija" + +#~ msgid "malloc: watch alert: %p %s " +#~ msgstr "malloc: stebinio įspėjimas: %p %s " + +#~ msgid "" +#~ "Exit from within a FOR, WHILE or UNTIL loop. If N is specified,\n" +#~ " break N levels." +#~ msgstr "" +#~ "IÅ¡eiti iÅ¡ FOR, WHILE arba UNTIL ciklo. Jei nurodytas N,\n" +#~ " iÅ¡eiti aukÅ¡tyn per N lygmenų." + +#~ msgid "" +#~ "Run a shell builtin. This is useful when you wish to rename a\n" +#~ " shell builtin to be a function, but need the functionality of the\n" +#~ " builtin within the function itself." +#~ msgstr "" +#~ "Vykdyti aplinkos įtaisytą funkciją. Å i komanda naudinga, kai norite\n" +#~ " vietoje įtaisytos funkcijos naudoti savąją, tačiau reikia\n" +#~ " pasinaudoti įtaisytąja Å¡ios funkcijos viduje." + +#~ msgid "" +#~ "Print the current working directory. With the -P option, pwd prints\n" +#~ " the physical directory, without any symbolic links; the -L option\n" +#~ " makes pwd follow symbolic links." +#~ msgstr "" +#~ "IÅ¡spausdinti esamą aplanką. Su parametru -P „pwd“ spausdina\n" +#~ " fizinį aplanką, be jokių simbolinių nuorodų; su parametru -L\n" +#~ " „pwd“ seka simbolinėmis nuorodomis." + +#~ msgid "Return a successful result." +#~ msgstr "Grąžinti sėkmingą rezultatą." + +#~ msgid "Obsolete. See `declare'." +#~ msgstr "Pasenusi komanda. Žr. „declare“." + +#~ msgid "" +#~ "Create a local variable called NAME, and give it VALUE. LOCAL\n" +#~ " can only be used within a function; it makes the variable NAME\n" +#~ " have a visible scope restricted to that function and its children." +#~ msgstr "" +#~ "Sukurti vietinį kintamąjį nurodytu PAVADINIMU ir suteikti jam REIKÅ MĘ.\n" +#~ " „local“ gali bÅ«ti naudojamas tik funkcijose; jis sukuria kintamąjį,\n" +#~ " matomą tik pačioje funkcijoje ir jos dukterinėse funkcijose." + +#~ msgid "" +#~ "Output the ARGs. If -n is specified, the trailing newline is suppressed." +#~ msgstr "" +#~ "IÅ¡spausdinti ARGUMENTUS. Jei nurodytas -n, nespausdinamas naujos " +#~ "eilutės\n" +#~ " simbolis pabaigoje." + +#~ msgid "" +#~ "Read ARGs as input to the shell and execute the resulting command(s)." +#~ msgstr "Skaityti ARGUMENTUS kaip aplinkos komandas ir jas vykdyti." + +#~ msgid "Logout of a login shell." +#~ msgstr "Atsijungti nuo prisijungimo aplinkos (login shell)." + +#~ msgid "" +#~ "Causes a function to exit with the return value specified by N. If N\n" +#~ " is omitted, the return status is that of the last command." +#~ msgstr "" +#~ "IÅ¡eina iÅ¡ funkcijos, grąžinama reikÅ¡mė N. Jei N nenurodyta,\n" +#~ " grąžinama paskutinės vykdytos komandos reikÅ¡mė." + +#~ msgid "" +#~ "For each NAME, remove the corresponding variable or function. Given\n" +#~ " the `-v', unset will only act on variables. Given the `-f' flag,\n" +#~ " unset will only act on functions. With neither flag, unset first\n" +#~ " tries to unset a variable, and if that fails, then tries to unset a\n" +#~ " function. Some variables cannot be unset; also see readonly." +#~ msgstr "" +#~ "Kiekvienam PAVADINIMUi, paÅ¡alinti atitinkamą kintamąjį ar funkciją.\n" +#~ " Jei nurodytas „-v“, unset veiks tik su kintamaisiais. Jei nurodytas\n" +#~ " „-f“, unset veiks tik su funkcijomis. Jei nenurodytas nei vienas iÅ¡\n" +#~ " Å¡ių parametrų, unset pirmiausiai bandys paÅ¡alinti kintamąjį, ir jei\n" +#~ " tai nepasiseks, bandys paÅ¡alinti funkciją. Kai kurie kintamieji " +#~ "negali\n" +#~ " bÅ«ti paÅ¡alinti; žr. „readonly“." + +#~ msgid "" +#~ "Suspend the execution of this shell until it receives a SIGCONT\n" +#~ " signal. The `-f' if specified says not to complain about this\n" +#~ " being a login shell if it is; just suspend anyway." +#~ msgstr "" +#~ "Sustabdyti Å¡ios aplinkos darbą, kol bus gautas SIGCONT\n" +#~ " signalas. Jei nurodyta „-f“, nesiskųsti, jei Å¡i aplinka yra " +#~ "prisijungimo\n" +#~ " aplinka (login shell) ir sustabdyti ją bet kuriuo atveju." + +#~ msgid "" +#~ "Create a simple command invoked by NAME which runs COMMANDS.\n" +#~ " Arguments on the command line along with NAME are passed to the\n" +#~ " function as $0 .. $n." +#~ msgstr "" +#~ "Sukurti paprastą komandą, iÅ¡kviečiamą PAVADINIMU, vykdančią KOMANDAS.\n" +#~ " Argumentai komandų eilutėje kartu su PAVADINIMU perduodami funkcijai\n" +#~ " kaip $0 .. $n." + +#~ msgid "" +#~ "For each NAME, specify how arguments are to be completed.\n" +#~ " If the -p option is supplied, or if no options are supplied, " +#~ "existing\n" +#~ " completion specifications are printed in a way that allows them to " +#~ "be\n" +#~ " reused as input. The -r option removes a completion specification " +#~ "for\n" +#~ " each NAME, or, if no NAMEs are supplied, all completion " +#~ "specifications." +#~ msgstr "" +#~ "Kiekvienam VARDUI nurodyti, kaip argumentai turėtų bÅ«ti užbaigti.\n" +#~ " Jei pateiktas -p nustatymas arba nepateikta jokių nustatymų,\n" +#~ " spausdinamos esamos užbaigimo specifikacijos tokiu formatu, kad\n" +#~ " jas bÅ«tų galima panaudoti kaip įvestį. Nustatymas -r paÅ¡alina\n" +#~ " užbaigimo specifikaciją kiekvienam VARDUI, arba, jei nenurodyta\n" +#~ " VARDO, visas užbaigimo specifikacijas." diff --git a/po/nl.gmo b/po/nl.gmo new file mode 100644 index 0000000000000000000000000000000000000000..b6d2501cd43aa8e97c8c49a88e0b4c1c68237106 GIT binary patch literal 154123 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 SwqSC4ROOa(n+1kkJLNVa5;~{bQqD3u5)|Es& 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, 1996. +# Julie Vermeersch , 2004. +# Benno Schulenberg , 2006, 2008. +msgid "" +msgstr "" +"Project-Id-Version: bash-4.0-pre1\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2009-01-06 11:56-0500\n" +"PO-Revision-Date: 2008-09-21 19:58+0200\n" +"Last-Translator: Benno Schulenberg \n" +"Language-Team: Dutch \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: arrayfunc.c:50 +msgid "bad array subscript" +msgstr "ongeldige array-index" + +#: arrayfunc.c:313 builtins/declare.def:474 +#, c-format +msgid "%s: cannot convert indexed to associative array" +msgstr "%s: kan geïndexeerd array niet omzetten naar associatief array" + +#: arrayfunc.c:479 +#, c-format +msgid "%s: invalid associative array key" +msgstr "%s: ongeldige sleutel voor associatief array" + +#: arrayfunc.c:481 +#, c-format +msgid "%s: cannot assign to non-numeric index" +msgstr "%s: niet-numerieke index is niet mogelijk" + +#: arrayfunc.c:517 +#, c-format +msgid "%s: %s: must use subscript when assigning associative array" +msgstr "%s: %s: een index is nodig bij toekenning aan associatief array" + +#: bashhist.c:380 +#, c-format +msgid "%s: cannot create: %s" +msgstr "Kan %s niet aanmaken: %s" + +#: bashline.c:3413 +msgid "bash_execute_unix_command: cannot find keymap for command" +msgstr "" +"bash_execute_unix_command(): kan voor opdracht geen toetsenkaart vinden" + +#: bashline.c:3491 +#, c-format +msgid "%s: first non-whitespace character is not `\"'" +msgstr "%s: eerste teken dat geen witruimte is is niet '\"'" + +#: bashline.c:3520 +#, c-format +msgid "no closing `%c' in %s" +msgstr "geen sluit-'%c' in %s" + +#: bashline.c:3554 +#, c-format +msgid "%s: missing colon separator" +msgstr "%s: ontbrekend scheidingsteken (dubbele punt)" + +#: builtins/bind.def:120 builtins/bind.def:123 +msgid "line editing not enabled" +msgstr "" + +#: builtins/bind.def:206 +#, c-format +msgid "`%s': invalid keymap name" +msgstr "'%s': ongeldige naam voor toetsenkaart" + +#: builtins/bind.def:245 +#, c-format +msgid "%s: cannot read: %s" +msgstr "Kan %s niet lezen: %s" + +#: builtins/bind.def:260 +#, c-format +msgid "`%s': cannot unbind" +msgstr "Kan %s niet losmaken" + +#: builtins/bind.def:295 builtins/bind.def:325 +#, c-format +msgid "`%s': unknown function name" +msgstr "'%s': onbekende functienaam" + +#: builtins/bind.def:303 +#, c-format +msgid "%s is not bound to any keys.\n" +msgstr "%s is aan geen enkele toets gebonden\n" + +#: builtins/bind.def:307 +#, c-format +msgid "%s can be invoked via " +msgstr "%s kan worden aangeroepen via " + +#: builtins/break.def:77 builtins/break.def:117 +msgid "loop count" +msgstr "herhalingsaantal" + +#: builtins/break.def:137 +msgid "only meaningful in a `for', `while', or `until' loop" +msgstr "heeft alleen betekenis in een 'for'-, 'while'- of 'until'-lus" + +#: builtins/caller.def:133 +#, fuzzy +msgid "" +"Returns the context of the current subroutine call.\n" +" \n" +" Without EXPR, returns " +msgstr "Geeft de context van de huidige functie-aanroep." + +#: builtins/cd.def:215 +msgid "HOME not set" +msgstr "HOME is niet gedefinieerd" + +#: builtins/cd.def:227 +msgid "OLDPWD not set" +msgstr "OLDPWD is niet gedefinieerd" + +#: builtins/common.c:101 +#, c-format +msgid "line %d: " +msgstr "regel %d: " + +#: builtins/common.c:139 error.c:260 +#, c-format +msgid "warning: " +msgstr "waarschuwing: " + +#: builtins/common.c:153 +#, c-format +msgid "%s: usage: " +msgstr "%s: Gebruik: " + +#: builtins/common.c:166 test.c:822 +msgid "too many arguments" +msgstr "te veel argumenten" + +#: builtins/common.c:191 shell.c:493 shell.c:774 +#, c-format +msgid "%s: option requires an argument" +msgstr "%s: optie vereist een argument" + +#: builtins/common.c:198 +#, c-format +msgid "%s: numeric argument required" +msgstr "%s: vereist een numeriek argument" + +#: builtins/common.c:205 +#, c-format +msgid "%s: not found" +msgstr "%s: niet gevonden" + +#: builtins/common.c:214 shell.c:787 +#, c-format +msgid "%s: invalid option" +msgstr "%s: ongeldige optie" + +#: builtins/common.c:221 +#, c-format +msgid "%s: invalid option name" +msgstr "%s: ongeldige optienaam" + +#: builtins/common.c:228 general.c:231 general.c:236 +#, c-format +msgid "`%s': not a valid identifier" +msgstr "'%s': is geen geldige naam" + +#: builtins/common.c:238 +msgid "invalid octal number" +msgstr "ongeldig octaal getal" + +#: builtins/common.c:240 +msgid "invalid hex number" +msgstr "ongeldig hexadecimaal getal" + +#: builtins/common.c:242 expr.c:1255 +msgid "invalid number" +msgstr "ongeldig getal" + +#: builtins/common.c:250 +#, c-format +msgid "%s: invalid signal specification" +msgstr "%s: ongeldige signaalaanduiding" + +#: builtins/common.c:257 +#, c-format +msgid "`%s': not a pid or valid job spec" +msgstr "'%s': is geen PID en geen geldige taakaanduiding" + +#: builtins/common.c:264 error.c:453 +#, c-format +msgid "%s: readonly variable" +msgstr "%s: is een alleen-lezen variabele" + +#: builtins/common.c:272 +#, c-format +msgid "%s: %s out of range" +msgstr "%s: %s valt buiten bereik" + +#: builtins/common.c:272 builtins/common.c:274 +msgid "argument" +msgstr "argument" + +#: builtins/common.c:274 +#, c-format +msgid "%s out of range" +msgstr "%s valt buiten bereik" + +#: builtins/common.c:282 +#, c-format +msgid "%s: no such job" +msgstr "%s: taak bestaat niet" + +#: builtins/common.c:290 +#, c-format +msgid "%s: no job control" +msgstr "%s: geen taakbesturing" + +#: builtins/common.c:292 +msgid "no job control" +msgstr "geen taakbesturing" + +#: builtins/common.c:302 +#, c-format +msgid "%s: restricted" +msgstr "%s: beperkte modus" + +#: builtins/common.c:304 +msgid "restricted" +msgstr "beperkte modus" + +#: builtins/common.c:312 +#, c-format +msgid "%s: not a shell builtin" +msgstr "%s: is geen ingebouwde opdracht van de shell" + +#: builtins/common.c:321 +#, c-format +msgid "write error: %s" +msgstr "schrijffout: %s" + +#: builtins/common.c:553 +#, c-format +msgid "%s: error retrieving current directory: %s: %s\n" +msgstr "%s: fout tijdens bepalen van huidige map: %s: %s\n" + +#: builtins/common.c:619 builtins/common.c:621 +#, c-format +msgid "%s: ambiguous job spec" +msgstr "%s: taakaanduiding is niet eenduidig" + +#: builtins/complete.def:270 +#, c-format +msgid "%s: invalid action name" +msgstr "%s: ongeldige actienaam" + +#: builtins/complete.def:430 builtins/complete.def:615 +#: builtins/complete.def:813 +#, c-format +msgid "%s: no completion specification" +msgstr "%s: is geen completerings-aanduiding" + +#: builtins/complete.def:667 +msgid "warning: -F option may not work as you expect" +msgstr "waarschuwing: optie -F functioneert mogelijk niet zoals verwacht" + +#: builtins/complete.def:669 +msgid "warning: -C option may not work as you expect" +msgstr "waarschuwing: optie -C functioneert mogelijk niet zoals verwacht" + +#: builtins/complete.def:786 +msgid "not currently executing completion function" +msgstr "er wordt momenteel geen completeringsfunctie uitgevoerd" + +#: builtins/declare.def:122 +msgid "can only be used in a function" +msgstr "kan alleen worden gebruikt binnen een functie" + +#: builtins/declare.def:353 +msgid "cannot use `-f' to make functions" +msgstr "'-f' kan niet gebruikt worden om een functie te definiëren" + +#: builtins/declare.def:365 execute_cmd.c:4731 +#, c-format +msgid "%s: readonly function" +msgstr "%s: is een alleen-lezen functie" + +#: builtins/declare.def:461 +#, c-format +msgid "%s: cannot destroy array variables in this way" +msgstr "%s: kan array-variabelen niet op deze manier verwijderen" + +#: builtins/declare.def:468 +#, c-format +msgid "%s: cannot convert associative to indexed array" +msgstr "%s: kan associatief array niet omzetten naar geïndexeerd array" + +#: builtins/enable.def:137 builtins/enable.def:145 +msgid "dynamic loading not available" +msgstr "dynamisch-laden is niet beschikbaar" + +#: builtins/enable.def:312 +#, c-format +msgid "cannot open shared object %s: %s" +msgstr "kan gedeeld object %s niet openen: %s" + +#: builtins/enable.def:335 +#, c-format +msgid "cannot find %s in shared object %s: %s" +msgstr "kan %s niet vinden in gedeeld object %s: %s" + +#: builtins/enable.def:459 +#, c-format +msgid "%s: not dynamically loaded" +msgstr "%s: is niet dynamisch geladen" + +#: builtins/enable.def:474 +#, c-format +msgid "%s: cannot delete: %s" +msgstr "Kan %s niet verwijderen: %s" + +#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4588 +#: shell.c:1439 +#, c-format +msgid "%s: is a directory" +msgstr "%s: is een map" + +#: builtins/evalfile.c:139 +#, c-format +msgid "%s: not a regular file" +msgstr "%s: is geen normaal bestand" + +#: builtins/evalfile.c:147 +#, c-format +msgid "%s: file is too large" +msgstr "%s: bestand is te groot" + +#: builtins/evalfile.c:185 execute_cmd.c:4658 shell.c:1449 +#, c-format +msgid "%s: cannot execute binary file" +msgstr "%s: kan een binair bestand niet uitvoeren" + +#: builtins/exec.def:212 +#, c-format +msgid "%s: cannot execute: %s" +msgstr "Kan %s niet uitvoeren: %s" + +#: builtins/exit.def:65 +#, c-format +msgid "logout\n" +msgstr "uitgelogd\n" + +#: builtins/exit.def:88 +msgid "not login shell: use `exit'" +msgstr "geen login-shell; gebruik 'exit'" + +#: builtins/exit.def:120 +#, c-format +msgid "There are stopped jobs.\n" +msgstr "Er zijn nog gepauzeerde taken.\n" + +#: builtins/exit.def:122 +#, c-format +msgid "There are running jobs.\n" +msgstr "Er zijn nog draaiende taken.\n" + +#: builtins/fc.def:261 +msgid "no command found" +msgstr "geen opdracht gevonden" + +#: builtins/fc.def:341 +msgid "history specification" +msgstr "geschiedenisaanduiding" + +#: builtins/fc.def:362 +#, c-format +msgid "%s: cannot open temp file: %s" +msgstr "Kan tijdelijk bestand '%s' niet openen: %s" + +#: builtins/fg_bg.def:149 builtins/jobs.def:282 +msgid "current" +msgstr "huidige" + +#: builtins/fg_bg.def:158 +#, c-format +msgid "job %d started without job control" +msgstr "taak %d is gestart zonder taakbesturing" + +#: builtins/getopt.c:110 +#, c-format +msgid "%s: illegal option -- %c\n" +msgstr "%s: ongeldige optie -- %c\n" + +#: builtins/getopt.c:111 +#, c-format +msgid "%s: option requires an argument -- %c\n" +msgstr "%s: optie vereist een argument -- %c\n" + +#: builtins/hash.def:92 +msgid "hashing disabled" +msgstr "hashen is uitgeschakeld" + +#: builtins/hash.def:138 +#, c-format +msgid "%s: hash table empty\n" +msgstr "%s: de hash-tabel is leeg\n" + +#: builtins/hash.def:244 +#, c-format +msgid "hits\tcommand\n" +msgstr "treffers commando\n" + +#: builtins/help.def:130 +#, c-format +msgid "Shell commands matching keyword `" +msgid_plural "Shell commands matching keywords `" +msgstr[0] "Shell-opdrachten die overeenkomen met '" +msgstr[1] "Shell-opdrachten die overeenkomen met '" + +#: builtins/help.def:168 +#, c-format +msgid "" +"no help topics match `%s'. Try `help help' or `man -k %s' or `info %s'." +msgstr "" +"Er is geen hulptekst voor '%s'.\n" +"Probeer 'help help' of 'man -k %s' of 'info %s'." + +#: builtins/help.def:185 +#, c-format +msgid "%s: cannot open: %s" +msgstr "Kan %s niet openen: %s" + +#: builtins/help.def:337 +#, c-format +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 "" +"Hieronder staan alle interne shell-opdrachten opgesomd. Typ 'help' om dit\n" +"overzicht opnieuw te zien. Typ 'help naam' voor meer informatie over de\n" +"opdracht met die naam. Typ 'info bash' voor gedetailleerde informatie over\n" +"de gehele shell. En gebruik 'man -k ...' of 'info ...' voor meer " +"informatie\n" +"over andere opdrachten.\n" +"\n" +"(Een sterretje (*) naast een naam betekent dat de functie uitgeschakeld " +"is.)\n" +"\n" + +#: builtins/history.def:154 +msgid "cannot use more than one of -anrw" +msgstr "slechts één van '-a', '-n', '-r' of '-w' is mogelijk" + +#: builtins/history.def:186 +msgid "history position" +msgstr "geschiedenispositie" + +#: builtins/history.def:365 +#, c-format +msgid "%s: history expansion failed" +msgstr "%s: geschiedenisexpansie is mislukt" + +#: builtins/inlib.def:71 +#, c-format +msgid "%s: inlib failed" +msgstr "%s: 'inlib' is mislukt" + +#: builtins/jobs.def:109 +msgid "no other options allowed with `-x'" +msgstr "bij '-x' zijn geen andere opties toegestaan" + +#: builtins/kill.def:197 +#, c-format +msgid "%s: arguments must be process or job IDs" +msgstr "%s: argumenten moeten proces-IDs of taak-IDs zijn" + +#: builtins/kill.def:260 +msgid "Unknown error" +msgstr "Onbekende fout" + +#: builtins/let.def:95 builtins/let.def:120 expr.c:501 expr.c:516 +msgid "expression expected" +msgstr "uitdrukking werd verwacht" + +#: builtins/mapfile.def:215 builtins/read.def:272 +#, c-format +msgid "%s: invalid file descriptor specification" +msgstr "%s: ongeldige aanduiding van bestandsdescriptor" + +#: builtins/mapfile.def:223 builtins/read.def:279 +#, c-format +msgid "%d: invalid file descriptor: %s" +msgstr "%d: ongeldige bestandsdescriptor: %s" + +#: builtins/mapfile.def:232 builtins/mapfile.def:270 +#, c-format +msgid "%s: invalid line count" +msgstr "%s: ongeldig regelaantal" + +#: builtins/mapfile.def:243 +#, c-format +msgid "%s: invalid array origin" +msgstr "%s: ongeldig array-begin" + +# Quantum is een hoeveelheid regels, een getal. +# Callback is de aan te roepen functie, maar onnodig in de vertaling. +#: builtins/mapfile.def:260 +#, c-format +msgid "%s: invalid callback quantum" +msgstr "%s: ongeldige hoeveelheid" + +#: builtins/mapfile.def:292 +msgid "empty array variable name" +msgstr "lege naam van array-variabele" + +#: builtins/mapfile.def:313 +msgid "array variable support required" +msgstr "ondersteuning van arrayvariabelen is vereist" + +#: builtins/printf.def:367 +#, c-format +msgid "`%s': missing format character" +msgstr "'%s': ontbrekend opmaakteken" + +#: builtins/printf.def:544 +#, c-format +msgid "`%c': invalid format character" +msgstr "'%c': ongeldig opmaakteken" + +#: builtins/printf.def:571 +#, c-format +msgid "warning: %s: %s" +msgstr "waarschuwing: %s: %s" + +#: builtins/printf.def:750 +msgid "missing hex digit for \\x" +msgstr "ontbrekend hexadecimaal cijfer bij \\x" + +#: builtins/pushd.def:195 +msgid "no other directory" +msgstr "geen andere map" + +#: builtins/pushd.def:462 +msgid "" +msgstr "" + +#: builtins/pushd.def:506 +msgid "directory stack empty" +msgstr "mappenstapel is leeg" + +#: builtins/pushd.def:508 +msgid "directory stack index" +msgstr "mappenstapelindex" + +#: builtins/pushd.def:683 +msgid "" +"Display the list of currently remembered directories. Directories\n" +" find their way onto the list with the `pushd' command; you can get\n" +" back up through the list with the `popd' command.\n" +" \n" +" Options:\n" +" -c\tclear the directory stack by deleting all of the elements\n" +" -l\tdo not print tilde-prefixed versions of directories relative\n" +" \tto your home directory\n" +" -p\tprint the directory stack with one entry per line\n" +" -v\tprint the directory stack with one entry per line prefixed\n" +" \twith its position in the stack\n" +" \n" +" Arguments:\n" +" +N\tDisplays the Nth entry counting from the left of the list shown " +"by\n" +" \tdirs when invoked without options, starting with zero.\n" +" \n" +" -N\tDisplays the Nth entry counting from the right of the list shown " +"by\n" +"\tdirs when invoked without options, starting with zero." +msgstr "" +"Toont de huidige lijst van onthouden mappen. Mappen worden aan deze\n" +" lijst toegevoegd met de opdracht 'pushd', en verwijderd met 'popd'.\n" +"\n" +" Opties:\n" +" -c de mappenstapel wissen door alle elementen te verwijderen\n" +" -l paden niet afkorten (relatief ten opzichte van uw thuismap)\n" +" maar volledig weergegeven\n" +" -p de mappenstapel tonen met één item per regel\n" +" -v als '-p' maar met elk item voorafgegaan wordt door diens positie\n" +" in de stapel\n" +"\n" +" Argumenten:\n" +" +N Toont het N-de item, tellend vanaf links, van de lijst getoond\n" +" door 'dirs' wanneer opgeroepen zonder opties, beginnend bij nul.\n" +" -N Toont het N-de item, tellend vanaf rechts, van de lijst getoond\n" +" door 'dirs' wanneer opgeroepen zonder opties, beginnend bij nul." + +#: builtins/pushd.def:705 +msgid "" +"Adds a directory to the top of the directory stack, or rotates\n" +" the stack, making the new top of the stack the current working\n" +" directory. With no arguments, exchanges the top two directories.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when adding\n" +" \tdirectories to the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the left of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" -N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the right of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" dir\tAdds DIR to the directory stack at the top, making it the\n" +" \tnew current working directory.\n" +" \n" +" The `dirs' builtin displays the directory stack." +msgstr "" +"Voegt een map toe aan de top van de mappenstapel, of roteert de stapel\n" +" en maakt de huidige werkmap gelijk aan de nieuwe top van de stapel.\n" +" Zonder argumenten worden de bovenste twee mappen verwisseld.\n" +"\n" +" Optie:\n" +" -n de verandering van map onderdukken bij het toevoegen van mappen\n" +" aan de stapel, zodat alleen de stapel wordt gemanipuleerd\n" +"\n" +" Argumenten:\n" +" +N Roteert de stapel zodat de N-de map (tellend vanaf links, van\n" +" de lijst getoond door 'dirs', beginned bij nul) bovenaan komt.\n" +" -N Roteert de stapel zodat de N-de map (tellend vanaf rechts, van\n" +" de lijst getoond door 'dirs', beginned bij nul) bovenaan komt.\n" +" MAP Voegt deze map toe aan de top van de mappenstapel, het de nieuwe\n" +" werkmap makend.\n" +"\n" +" De opdracht 'dirs' toont de huidige mappenstapel." + +#: builtins/pushd.def:730 +msgid "" +"Removes entries from the directory stack. With no arguments, removes\n" +" the top directory from the stack, and changes to the new top directory.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when removing\n" +" \tdirectories from the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRemoves the Nth entry counting from the left of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd +0'\n" +" \tremoves the first directory, `popd +1' the second.\n" +" \n" +" -N\tRemoves the Nth entry counting from the right of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd -0'\n" +" \tremoves the last directory, `popd -1' the next to last.\n" +" \n" +" The `dirs' builtin displays the directory stack." +msgstr "" +"Verwijdert items van de mappenstapel. Zonder argumenten verwijdert\n" +" het de bovenste map van de stapel, en maakt de huidige werkmap\n" +" gelijk aan de nieuwe bovenste map.\n" +"\n" +" Optie:\n" +" -n de verandering van map onderdukken bij het toevoegen van mappen\n" +" aan de stapel, zodat alleen de stapel wordt gemanipuleerd\n" +"\n" +" Argumenten:\n" +" +N Verwijdert het N-de item tellend vanaf links (van de lijst\n" +" getoond door 'dirs', beginnend met nul). Bijvoorbeeld:\n" +" 'popd +0' verwijdert de eerste map, 'popd +' de tweede.\n" +" -N Verwijdert het N-de item tellend vanaf rechts (van de lijst\n" +" getoond door 'dirs', beginnend met nul). Bijvoorbeeld:\n" +" 'popd -0' verwijdert de laatste map, 'popd -1' de voorlaatste.\n" +"\n" +" De opdracht 'dirs' toont de huidige mappenstapel." + +#: builtins/read.def:248 +#, c-format +msgid "%s: invalid timeout specification" +msgstr "%s: ongeldige aanduiding van tijdslimiet" + +#: builtins/read.def:574 +#, c-format +msgid "read error: %d: %s" +msgstr "leesfout: %d: %s" + +#: builtins/return.def:73 +msgid "can only `return' from a function or sourced script" +msgstr "" +"kan alleen een 'return' doen uit een functie of een uit script aangeroepen " +"met 'source'" + +#: builtins/set.def:768 +msgid "cannot simultaneously unset a function and a variable" +msgstr "kan niet tegelijk een functie en een variabele verwijderen" + +#: builtins/set.def:805 +#, c-format +msgid "%s: cannot unset" +msgstr "Kan '%s' niet verwijderen" + +#: builtins/set.def:812 +#, c-format +msgid "%s: cannot unset: readonly %s" +msgstr "Kan '%s' niet verwijderen: %s is alleen-lezen" + +#: builtins/set.def:823 +#, c-format +msgid "%s: not an array variable" +msgstr "%s: is geen array-variabele" + +#: builtins/setattr.def:186 +#, c-format +msgid "%s: not a function" +msgstr "%s: is geen functie" + +#: builtins/shift.def:71 builtins/shift.def:77 +msgid "shift count" +msgstr "shift-aantal" + +#: builtins/shopt.def:254 +msgid "cannot set and unset shell options simultaneously" +msgstr "kan shell-opties niet tegelijk inschakelen en uitschakelen" + +#: builtins/shopt.def:319 +#, c-format +msgid "%s: invalid shell option name" +msgstr "%s: ongeldige shell-optienaam" + +#: builtins/source.def:128 +msgid "filename argument required" +msgstr "vereist een bestandsnaam als argument" + +#: builtins/source.def:153 +#, c-format +msgid "%s: file not found" +msgstr "%s: bestand niet gevonden" + +#: builtins/suspend.def:101 +msgid "cannot suspend" +msgstr "kan niet pauzeren" + +#: builtins/suspend.def:111 +msgid "cannot suspend a login shell" +msgstr "kan een inlog-shell niet pauzeren" + +#: builtins/type.def:234 +#, c-format +msgid "%s is aliased to `%s'\n" +msgstr "%s is een alias voor '%s'\n" + +#: builtins/type.def:255 +#, c-format +msgid "%s is a shell keyword\n" +msgstr "%s is een shell-sleutelwoord\n" + +#: builtins/type.def:274 +#, c-format +msgid "%s is a function\n" +msgstr "%s is een functie\n" + +#: builtins/type.def:296 +#, c-format +msgid "%s is a shell builtin\n" +msgstr "%s is een ingebouwde shell-functie\n" + +#: builtins/type.def:317 builtins/type.def:391 +#, c-format +msgid "%s is %s\n" +msgstr "%s is %s\n" + +#: builtins/type.def:337 +#, c-format +msgid "%s is hashed (%s)\n" +msgstr "%s is gehasht (%s)\n" + +#: builtins/ulimit.def:372 +#, c-format +msgid "%s: invalid limit argument" +msgstr "%s: ongeldige limietwaarde" + +#: builtins/ulimit.def:398 +#, c-format +msgid "`%c': bad command" +msgstr "'%c': ongeldige opdracht" + +#: builtins/ulimit.def:427 +#, c-format +msgid "%s: cannot get limit: %s" +msgstr "%s: kan de limiet niet bepalen: %s" + +#: builtins/ulimit.def:453 +msgid "limit" +msgstr "limiet" + +#: builtins/ulimit.def:465 builtins/ulimit.def:765 +#, c-format +msgid "%s: cannot modify limit: %s" +msgstr "%s: kan de limiet niet wijzigen: %s" + +#: builtins/umask.def:118 +msgid "octal number" +msgstr "octaal getal" + +#: builtins/umask.def:231 +#, c-format +msgid "`%c': invalid symbolic mode operator" +msgstr "'%c': ongeldige operator in symbolische modus" + +#: builtins/umask.def:286 +#, c-format +msgid "`%c': invalid symbolic mode character" +msgstr "'%c': ongeldig teken in symbolische modus" + +#: error.c:89 error.c:320 error.c:322 error.c:324 +msgid " line " +msgstr " regel " + +#: error.c:164 +#, c-format +msgid "last command: %s\n" +msgstr "laatste opdracht: %s\n" + +#: error.c:172 +#, c-format +msgid "Aborting..." +msgstr "Afbreken..." + +#: error.c:405 +msgid "unknown command error" +msgstr "onbekende opdrachtfout" + +#: error.c:406 +msgid "bad command type" +msgstr "ongeldig opdrachttype" + +#: error.c:407 +msgid "bad connector" +msgstr "ongeldige verbinder" + +#: error.c:408 +msgid "bad jump" +msgstr "ongeldige sprong" + +#: error.c:446 +#, c-format +msgid "%s: unbound variable" +msgstr "%s: ongebonden variabele" + +#: eval.c:181 +#, c-format +msgid "\atimed out waiting for input: auto-logout\n" +msgstr "\awachten op invoer duurde te lang -- automatisch afgemeld\n" + +#: execute_cmd.c:491 +#, c-format +msgid "cannot redirect standard input from /dev/null: %s" +msgstr "kan standaardinvoer niet omleiden vanaf /dev/null: %s" + +#: execute_cmd.c:1091 +#, c-format +msgid "TIMEFORMAT: `%c': invalid format character" +msgstr "TIMEFORMAT: '%c': ongeldig opmaakteken" + +#: execute_cmd.c:1942 +msgid "pipe error" +msgstr "pijpfout" + +#: execute_cmd.c:4276 +#, c-format +msgid "%s: restricted: cannot specify `/' in command names" +msgstr "%s: beperkte modus: '/' in opdrachtnamen is niet toegestaan" + +#: execute_cmd.c:4367 +#, c-format +msgid "%s: command not found" +msgstr "%s: opdracht niet gevonden" + +#: execute_cmd.c:4621 +#, c-format +msgid "%s: %s: bad interpreter" +msgstr "%s: %s: ongeldige interpreter" + +#: execute_cmd.c:4770 +#, c-format +msgid "cannot duplicate fd %d to fd %d" +msgstr "kan bestandsdescriptor %d niet dupliceren naar bestandsdescriptor %d" + +#: expr.c:241 +msgid "expression recursion level exceeded" +msgstr "recursieniveau van expressies is overschreden" + +#: expr.c:265 +msgid "recursion stack underflow" +msgstr "recursiestapel-onderloop" + +#: expr.c:379 +msgid "syntax error in expression" +msgstr "syntaxfout in expressie" + +#: expr.c:419 +msgid "attempted assignment to non-variable" +msgstr "poging tot toewijzing aan een niet-variabele" + +#: expr.c:440 expr.c:445 expr.c:756 +msgid "division by 0" +msgstr "deling door nul" + +#: expr.c:471 +msgid "bug: bad expassign token" +msgstr "**interne fout**: onjuist symbool in toewijzingsexpressie" + +#: expr.c:513 +msgid "`:' expected for conditional expression" +msgstr "':' werd verwacht voor een voorwaardelijke expressie" + +#: expr.c:781 +msgid "exponent less than 0" +msgstr "exponent is kleiner dan 0" + +#: expr.c:826 +msgid "identifier expected after pre-increment or pre-decrement" +msgstr "naam verwacht na pre-increment of pre-decrement" + +#: expr.c:854 +msgid "missing `)'" +msgstr "ontbrekend ')'" + +#: expr.c:897 expr.c:1175 +msgid "syntax error: operand expected" +msgstr "syntaxfout: operator verwacht" + +#: expr.c:1177 +msgid "syntax error: invalid arithmetic operator" +msgstr "syntaxfout: ongeldige rekenkundige operator" + +#: expr.c:1201 +#, c-format +msgid "%s%s%s: %s (error token is \"%s\")" +msgstr "%s%s%s: %s (het onjuiste symbool is \"%s\")" + +#: expr.c:1259 +msgid "invalid arithmetic base" +msgstr "ongeldige rekenkundige basis" + +#: expr.c:1279 +msgid "value too great for base" +msgstr "waarde is te groot voor basis" + +#: expr.c:1328 +#, c-format +msgid "%s: expression error\n" +msgstr "%s: expressiefout\n" + +#: general.c:61 +msgid "getcwd: cannot access parent directories" +msgstr "getwd(): kan geen geen toegang verkrijgen tot bovenliggende mappen" + +#: input.c:94 subst.c:4559 +#, c-format +msgid "cannot reset nodelay mode for fd %d" +msgstr "kan 'nodelay'-modus niet uitschakelen voor bestandsdescriptor %d" + +#: input.c:258 +#, c-format +msgid "cannot allocate new file descriptor for bash input from fd %d" +msgstr "" +"kan geen nieuwe bestandsdescriptor reserveren voor bash-invoer vanuit " +"bestandsdescriptor %d" + +#: input.c:266 +#, c-format +msgid "save_bash_input: buffer already exists for new fd %d" +msgstr "" +"check_bash_input(): buffer bestaat al voor nieuwe bestandsdescriptor %d" + +#: jobs.c:466 +msgid "start_pipeline: pgrp pipe" +msgstr "start_pipeline(): procesgroep van pijp" + +#: jobs.c:882 +#, c-format +msgid "forked pid %d appears in running job %d" +msgstr "afgesplitst PID %d hoort bij draaiende taak %d" + +#: jobs.c:1000 +#, c-format +msgid "deleting stopped job %d with process group %ld" +msgstr "verwijderen van gepauzeerde taak %d met procesgroep %ld..." + +#: jobs.c:1105 +#, c-format +msgid "add_process: process %5ld (%s) in the_pipeline" +msgstr "add_process(): proces %5ld (%s) in de pijplijn" + +#: jobs.c:1108 +#, c-format +msgid "add_process: pid %5ld (%s) marked as still alive" +msgstr "add_process(): PID %5ld (%s) staat gemarkeerd als nog actief" + +#: jobs.c:1396 +#, c-format +msgid "describe_pid: %ld: no such pid" +msgstr "describe_pid(): PID %ld bestaat niet" + +#: jobs.c:1411 +#, c-format +msgid "Signal %d" +msgstr "Signaal %d" + +#: jobs.c:1425 jobs.c:1450 +msgid "Done" +msgstr "Klaar" + +#: jobs.c:1430 siglist.c:122 +msgid "Stopped" +msgstr "Gepauzeerd" + +#: jobs.c:1434 +#, c-format +msgid "Stopped(%s)" +msgstr "Gepauzeerd(%s)" + +#: jobs.c:1438 +msgid "Running" +msgstr "Wordt uitgevoerd" + +#: jobs.c:1452 +#, c-format +msgid "Done(%d)" +msgstr "Klaar(%d)" + +#: jobs.c:1454 +#, c-format +msgid "Exit %d" +msgstr "Exit %d" + +#: jobs.c:1457 +msgid "Unknown status" +msgstr "Onbekende afsluitwaarde" + +#: jobs.c:1544 +#, c-format +msgid "(core dumped) " +msgstr "(geheugendump gemaakt) " + +#: jobs.c:1563 +#, c-format +msgid " (wd: %s)" +msgstr " (werkmap: %s)" + +#: jobs.c:1766 +#, c-format +msgid "child setpgid (%ld to %ld)" +msgstr "instellen van procesgroep %2$ld van dochter %1$ld" + +#: jobs.c:2094 nojobs.c:576 +#, c-format +msgid "wait: pid %ld is not a child of this shell" +msgstr "wait(): PID %ld is geen dochterproces van deze shell" + +#: jobs.c:2321 +#, c-format +msgid "wait_for: No record of process %ld" +msgstr "wait_for(): proces %ld is nergens geregistreerd" + +#: jobs.c:2593 +#, c-format +msgid "wait_for_job: job %d is stopped" +msgstr "wait_for_job(): taak %d is gepauzeerd" + +#: jobs.c:2815 +#, c-format +msgid "%s: job has terminated" +msgstr "%s: taak is afgesloten" + +#: jobs.c:2824 +#, c-format +msgid "%s: job %d already in background" +msgstr "%s: taak %d draait al op de achtergrond" + +#: jobs.c:3487 +#, c-format +msgid "%s: line %d: " +msgstr "%s: regel %d: " + +#: jobs.c:3501 nojobs.c:805 +#, c-format +msgid " (core dumped)" +msgstr " (geheugendump gemaakt)" + +#: jobs.c:3513 jobs.c:3526 +#, c-format +msgid "(wd now: %s)\n" +msgstr "(werkmap is nu: %s)\n" + +#: jobs.c:3558 +msgid "initialize_job_control: getpgrp failed" +msgstr "initialize_job_control: getpgrp() is mislukt" + +#: jobs.c:3618 +msgid "initialize_job_control: line discipline" +msgstr "initialize_job_control: lijnprotocol" + +#: jobs.c:3628 +msgid "initialize_job_control: setpgid" +msgstr "initialize_job_control: setpgid()" + +#: jobs.c:3656 +#, c-format +msgid "cannot set terminal process group (%d)" +msgstr "kan procesgroep (%d) van terminal niet instellen" + +#: jobs.c:3661 +msgid "no job control in this shell" +msgstr "er is geen taakbesturing in deze shell" + +#: lib/malloc/malloc.c:296 +#, c-format +msgid "malloc: failed assertion: %s\n" +msgstr "malloc(): controletest is mislukt: %s\n" + +#: lib/malloc/malloc.c:312 +#, c-format +msgid "" +"\r\n" +"malloc: %s:%d: assertion botched\r\n" +msgstr "" +"\r\n" +"malloc(): %s:%d: controletest is mislukt\r\n" + +#: lib/malloc/malloc.c:313 +msgid "unknown" +msgstr "onbekend" + +#: lib/malloc/malloc.c:797 +msgid "malloc: block on free list clobbered" +msgstr "malloc(): een pointer op de lijst van vrije blokken is overschreven" + +#: lib/malloc/malloc.c:874 +msgid "free: called with already freed block argument" +msgstr "free(): aangeroepen met als argument een blok dat al vrijgegeven is" + +#: lib/malloc/malloc.c:877 +msgid "free: called with unallocated block argument" +msgstr "free(): aangeroepen met als argument een ongebruikt blok" + +#: lib/malloc/malloc.c:896 +msgid "free: underflow detected; mh_nbytes out of range" +msgstr "free(): onderloop: 'mh_nbytes' valt buiten bereik" + +#: lib/malloc/malloc.c:902 +msgid "free: start and end chunk sizes differ" +msgstr "free(): blokgroottes van begin en eind zijn verschillend" + +#: lib/malloc/malloc.c:1001 +msgid "realloc: called with unallocated block argument" +msgstr "realloc(): aangeroepen met als argument een ongebruikt blok" + +#: lib/malloc/malloc.c:1016 +msgid "realloc: underflow detected; mh_nbytes out of range" +msgstr "realloc(): onderloop: 'mh_nbytes' valt buiten bereik" + +#: lib/malloc/malloc.c:1022 +msgid "realloc: start and end chunk sizes differ" +msgstr "realloc(): blokgroottes van begin en eind zijn verschillend" + +#: lib/malloc/table.c:177 +#, c-format +msgid "register_alloc: alloc table is full with FIND_ALLOC?\n" +msgstr "register_alloc(): reserveringstabel is vol??\n" + +#: lib/malloc/table.c:184 +#, c-format +msgid "register_alloc: %p already in table as allocated?\n" +msgstr "register_alloc(): %p staat al als gereserveerd in tabel??\n" + +#: lib/malloc/table.c:220 +#, c-format +msgid "register_free: %p already in table as free?\n" +msgstr "register_free(): %p staat al als vrij in tabel??\n" + +#: lib/sh/fmtulong.c:101 +msgid "invalid base" +msgstr "ongeldige basis" + +#: lib/sh/netopen.c:168 +#, c-format +msgid "%s: host unknown" +msgstr "%s: onbekende host" + +#: lib/sh/netopen.c:175 +#, c-format +msgid "%s: invalid service" +msgstr "%s: ongeldige service" + +#: lib/sh/netopen.c:306 +#, c-format +msgid "%s: bad network path specification" +msgstr "%s: ongeldige aanduiding van netwerkpad" + +#: lib/sh/netopen.c:346 +msgid "network operations not supported" +msgstr "netwerkoperaties worden niet ondersteund" + +#: mailcheck.c:433 +msgid "You have mail in $_" +msgstr "U hebt post in $_" + +#: mailcheck.c:458 +msgid "You have new mail in $_" +msgstr "U hebt nieuwe post in $_" + +#: mailcheck.c:474 +#, c-format +msgid "The mail in %s has been read\n" +msgstr "De post in %s is gelezen.\n" + +#: make_cmd.c:322 +msgid "syntax error: arithmetic expression required" +msgstr "syntaxfout: een rekenkundige uitdrukking is vereist" + +#: make_cmd.c:324 +msgid "syntax error: `;' unexpected" +msgstr "syntaxfout: onverwachte ';'" + +#: make_cmd.c:325 +#, c-format +msgid "syntax error: `((%s))'" +msgstr "syntaxfout: '((%s))'" + +#: make_cmd.c:567 +#, c-format +msgid "make_here_document: bad instruction type %d" +msgstr "make_here_document(): ongeldig instructietype %d" + +#: make_cmd.c:651 +#, c-format +msgid "here-document at line %d delimited by end-of-file (wanted `%s')" +msgstr "" +"regel %d van \"hier\"-document eindigt met einde van bestand (verwachtte '%" +"s')" + +#: make_cmd.c:746 +#, c-format +msgid "make_redirection: redirection instruction `%d' out of range" +msgstr "make_redirection(): omleidingsinstructie '%d' valt buiten bereik" + +#: parse.y:2986 parse.y:3218 +#, c-format +msgid "unexpected EOF while looking for matching `%c'" +msgstr "onverwacht bestandseinde tijdens zoeken naar bijpassende '%c'" + +#: parse.y:3722 +msgid "unexpected EOF while looking for `]]'" +msgstr "onverwacht bestandseinde tijdens zoeken naar ']]'" + +#: parse.y:3727 +#, c-format +msgid "syntax error in conditional expression: unexpected token `%s'" +msgstr "syntaxfout in conditionele expressie: onverwacht symbool '%s'" + +#: parse.y:3731 +msgid "syntax error in conditional expression" +msgstr "syntaxfout in conditionele expressie" + +#: parse.y:3809 +#, c-format +msgid "unexpected token `%s', expected `)'" +msgstr "onverwacht symbool '%s'; ')' werd verwacht" + +#: parse.y:3813 +msgid "expected `)'" +msgstr "')' werd verwacht" + +#: parse.y:3841 +#, c-format +msgid "unexpected argument `%s' to conditional unary operator" +msgstr "onverwacht argument '%s' bij eenzijdige conditionele operator" + +#: parse.y:3845 +msgid "unexpected argument to conditional unary operator" +msgstr "onverwacht argument bij eenzijdige conditionele operator" + +#: parse.y:3885 +#, c-format +msgid "unexpected token `%s', conditional binary operator expected" +msgstr "" +"onverwacht symbool '%s'; tweezijdige conditionele operator werd verwacht" + +#: parse.y:3889 +msgid "conditional binary operator expected" +msgstr "tweezijdige conditionele operator werd verwacht" + +#: parse.y:3906 +#, c-format +msgid "unexpected argument `%s' to conditional binary operator" +msgstr "onverwacht argument '%s' bij tweezijdige conditionele operator" + +#: parse.y:3910 +msgid "unexpected argument to conditional binary operator" +msgstr "onverwacht argument bij tweezijdige conditionele operator" + +#: parse.y:3921 +#, c-format +msgid "unexpected token `%c' in conditional command" +msgstr "onverwacht symbool '%c' in conditionele opdracht" + +#: parse.y:3924 +#, c-format +msgid "unexpected token `%s' in conditional command" +msgstr "onverwacht symbool '%s' in conditionele opdracht" + +#: parse.y:3928 +#, c-format +msgid "unexpected token %d in conditional command" +msgstr "onverwacht symbool %d in conditionele opdracht" + +#: parse.y:5195 +#, c-format +msgid "syntax error near unexpected token `%s'" +msgstr "syntaxfout nabij onverwacht symbool '%s'" + +#: parse.y:5213 +#, c-format +msgid "syntax error near `%s'" +msgstr "syntaxfout nabij '%s'" + +#: parse.y:5223 +msgid "syntax error: unexpected end of file" +msgstr "syntaxfout: onverwacht bestandseinde" + +#: parse.y:5223 +msgid "syntax error" +msgstr "syntaxfout" + +#: parse.y:5285 +#, c-format +msgid "Use \"%s\" to leave the shell.\n" +msgstr "Gebruik \"%s\" om de shell te verlaten.\n" + +#: parse.y:5447 +msgid "unexpected EOF while looking for matching `)'" +msgstr "onverwacht bestandseinde tijdens zoeken naar bijpassende ')'" + +#: pcomplete.c:1016 +#, c-format +msgid "completion: function `%s' not found" +msgstr "completion(): functie '%s' niet gevonden" + +#: pcomplib.c:179 +#, c-format +msgid "progcomp_insert: %s: NULL COMPSPEC" +msgstr "progcomp_insert(): %s: lege COMPSPEC" + +#: print_cmd.c:287 +#, c-format +msgid "print_command: bad connector `%d'" +msgstr "print_command(): ongeldige verbinder '%d'" + +#: print_cmd.c:1347 +#, c-format +msgid "cprintf: `%c': invalid format character" +msgstr "cprintf(): '%c': ongeldig opmaakteken" + +#: redir.c:105 +msgid "file descriptor out of range" +msgstr "bestandsdescriptor valt buiten bereik" + +#: redir.c:148 +#, c-format +msgid "%s: ambiguous redirect" +msgstr "%s: omleiding is niet eenduidig" + +#: redir.c:152 +#, c-format +msgid "%s: cannot overwrite existing file" +msgstr "%s: kan bestaand bestand niet overschrijven" + +#: redir.c:157 +#, c-format +msgid "%s: restricted: cannot redirect output" +msgstr "%s: beperkte modus: omleiden van uitvoer is niet toegestaan" + +#: redir.c:162 +#, c-format +msgid "cannot create temp file for here-document: %s" +msgstr "kan geen tijdelijk bestand maken voor \"hier\"-document: %s" + +#: redir.c:517 +msgid "/dev/(tcp|udp)/host/port not supported without networking" +msgstr "/dev/(tcp|udp)/host/port is niet mogelijk zonder netwerk" + +#: redir.c:1023 +msgid "redirection error: cannot duplicate fd" +msgstr "omleidingsfout: kan bestandsdescriptor niet dupliceren" + +#: shell.c:328 +msgid "could not find /tmp, please create!" +msgstr "Kan /tmp niet vinden; maak deze aan!" + +#: shell.c:332 +msgid "/tmp must be a valid directory name" +msgstr "/tmp dient een geldige mapnaam te zijn" + +#: shell.c:876 +#, c-format +msgid "%c%c: invalid option" +msgstr "%c%c: ongeldige optie" + +#: shell.c:1638 +msgid "I have no name!" +msgstr "Ik heb geen naam!" + +#: shell.c:1778 +#, c-format +msgid "GNU bash, version %s-(%s)\n" +msgstr "GNU bash, versie %s-(%s)\n" + +#: shell.c:1779 +#, c-format +msgid "" +"Usage:\t%s [GNU long option] [option] ...\n" +"\t%s [GNU long option] [option] script-file ...\n" +msgstr "" +"Gebruik: %s [opties]\n" +" %s [opties] scriptbestand...\n" + +#: shell.c:1781 +msgid "GNU long options:\n" +msgstr "Lange opties:\n" + +#: shell.c:1785 +msgid "Shell options:\n" +msgstr "Korte opties:\n" + +#: shell.c:1786 +msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n" +msgstr "\t-irsD, of -c opdracht, of -O shopt-optie (enkel bij aanroep)\n" + +#: shell.c:1801 +#, c-format +msgid "\t-%s or -o option\n" +msgstr "\t-%s, of -o optie (veranderbaar via 'set')\n" + +#: shell.c:1807 +#, c-format +msgid "Type `%s -c \"help set\"' for more information about shell options.\n" +msgstr "Typ '%s -c \"help set\"' voor meer informatie over shell-opties.\n" + +#: shell.c:1808 +#, c-format +msgid "Type `%s -c help' for more information about shell builtin commands.\n" +msgstr "" +"Typ '%s -c help' voor meer informatie over ingebouwde shell-functies.\n" + +#: shell.c:1809 +#, c-format +msgid "Use the `bashbug' command to report bugs.\n" +msgstr "Gebruik de opdracht 'bashbug' om fouten in bash te rapporteren.\n" + +#: sig.c:583 +#, c-format +msgid "sigprocmask: %d: invalid operation" +msgstr "sigprocmask(): %d: ongeldige operatie" + +#: siglist.c:47 +msgid "Bogus signal" +msgstr "Niet-bestaand signaal" + +# Vroeger ging dit over het afsluiten van een modemverbinding, +# tegenwoordig over het afsluiten van een pseudoterminal. +#: siglist.c:50 +msgid "Hangup" +msgstr "Opgehangen" + +#: siglist.c:54 +msgid "Interrupt" +msgstr "Onderbroken" + +#: siglist.c:58 +msgid "Quit" +msgstr "Afsluiten" + +#: siglist.c:62 +msgid "Illegal instruction" +msgstr "Ongeldige instructie" + +#: siglist.c:66 +msgid "BPT trace/trap" +msgstr "Traceer/breekpunt-instructie" + +#: siglist.c:74 +msgid "ABORT instruction" +msgstr "ABORT-instructie" + +#: siglist.c:78 +msgid "EMT instruction" +msgstr "EMT-instructie" + +#: siglist.c:82 +msgid "Floating point exception" +msgstr "Drijvende-komma-berekeningsfout" + +#: siglist.c:86 +msgid "Killed" +msgstr "Geëlimineerd" + +#: siglist.c:90 +msgid "Bus error" +msgstr "Busfout" + +#: siglist.c:94 +msgid "Segmentation fault" +msgstr "Segmentatiefout" + +#: siglist.c:98 +msgid "Bad system call" +msgstr "Onjuiste systeemaanroep" + +#: siglist.c:102 +msgid "Broken pipe" +msgstr "Gebroken pijp" + +#: siglist.c:106 +msgid "Alarm clock" +msgstr "Alarmklok" + +#: siglist.c:110 +msgid "Terminated" +msgstr "Afgesloten" + +#: siglist.c:114 +msgid "Urgent IO condition" +msgstr "Spoedeisende I/O-toestand" + +#: siglist.c:118 +msgid "Stopped (signal)" +msgstr "Gepauzeerd (signaal)" + +#: siglist.c:126 +msgid "Continue" +msgstr "Doorgaan" + +#: siglist.c:134 +msgid "Child death or stop" +msgstr "Dochter is geëlimineerd of gestopt" + +#: siglist.c:138 +msgid "Stopped (tty input)" +msgstr "Gepauzeerd (tty-invoer)" + +#: siglist.c:142 +msgid "Stopped (tty output)" +msgstr "Gepauzeerd (tty-uitvoer)" + +#: siglist.c:146 +msgid "I/O ready" +msgstr "I/O is mogelijk" + +#: siglist.c:150 +msgid "CPU limit" +msgstr "CPU-limiet" + +#: siglist.c:154 +msgid "File limit" +msgstr "Bestandslimiet" + +#: siglist.c:158 +msgid "Alarm (virtual)" +msgstr "Alarm (virtueel)" + +#: siglist.c:162 +msgid "Alarm (profile)" +msgstr "Alarm (profiel)" + +#: siglist.c:166 +msgid "Window changed" +msgstr "Venster is veranderd" + +#: siglist.c:170 +msgid "Record lock" +msgstr "Recordvergrendeling" + +#: siglist.c:174 +msgid "User signal 1" +msgstr "Gebruikerssignaal 1" + +#: siglist.c:178 +msgid "User signal 2" +msgstr "Gebruikerssignaal 2" + +#: siglist.c:182 +msgid "HFT input data pending" +msgstr "HFT-invoergegevens staan te wachten" + +#: siglist.c:186 +msgid "power failure imminent" +msgstr "stroomstoring dreigt" + +#: siglist.c:190 +msgid "system crash imminent" +msgstr "systeemcrash dreigt" + +#: siglist.c:194 +msgid "migrate process to another CPU" +msgstr "proces naar andere processor verplaatsen" + +#: siglist.c:198 +msgid "programming error" +msgstr "programmeerfout" + +#: siglist.c:202 +msgid "HFT monitor mode granted" +msgstr "HFT-monitormodus is gegeven" + +#: siglist.c:206 +msgid "HFT monitor mode retracted" +msgstr "HFT-monitormodus is herroepen" + +#: siglist.c:210 +msgid "HFT sound sequence has completed" +msgstr "HFT-geluidssequentie is afgespeeld" + +#: siglist.c:214 +msgid "Information request" +msgstr "Verzoek om informatie" + +#: siglist.c:222 +msgid "Unknown Signal #" +msgstr "Onbekend signaalnummer" + +#: siglist.c:224 +#, c-format +msgid "Unknown Signal #%d" +msgstr "Onbekend signaal #%d" + +#: subst.c:1181 subst.c:1302 +#, c-format +msgid "bad substitution: no closing `%s' in %s" +msgstr "ongeldige vervanging: geen sluit-'%s' in %s" + +#: subst.c:2458 +#, c-format +msgid "%s: cannot assign list to array member" +msgstr "%s: kan geen lijst toewijzen aan een array-element" + +#: subst.c:4456 subst.c:4472 +msgid "cannot make pipe for process substitution" +msgstr "kan geen pijp maken voor procesvervanging" + +#: subst.c:4504 +msgid "cannot make child for process substitution" +msgstr "kan geen dochterproces maken voor procesvervanging" + +#: subst.c:4549 +#, c-format +msgid "cannot open named pipe %s for reading" +msgstr "kan pijp genaamd %s niet openen om te lezen" + +#: subst.c:4551 +#, c-format +msgid "cannot open named pipe %s for writing" +msgstr "kan pijp genaamd %s niet openen om te schrijven" + +#: subst.c:4569 +#, c-format +msgid "cannot duplicate named pipe %s as fd %d" +msgstr "kan pijp genaamd %s niet dupliceren als bestandsdescriptor %d" + +#: subst.c:4765 +msgid "cannot make pipe for command substitution" +msgstr "kan geen pijp maken voor opdrachtvervanging" + +#: subst.c:4799 +msgid "cannot make child for command substitution" +msgstr "kan geen dochterproces maken voor opdrachtvervanging" + +#: subst.c:4816 +msgid "command_substitute: cannot duplicate pipe as fd 1" +msgstr "" +"command_substitute(): kan pijp niet dupliceren als bestandsdescriptor 1" + +#: subst.c:5318 +#, c-format +msgid "%s: parameter null or not set" +msgstr "%s: lege parameter, of niet ingesteld" + +#: subst.c:5608 +#, c-format +msgid "%s: substring expression < 0" +msgstr "%s: resultaat van deeltekenreeks is kleiner dan nul" + +#: subst.c:6660 +#, c-format +msgid "%s: bad substitution" +msgstr "%s: ongeldige vervanging" + +#: subst.c:6740 +#, c-format +msgid "$%s: cannot assign in this way" +msgstr "$%s: kan niet op deze manier toewijzen" + +#: subst.c:7479 +#, c-format +msgid "bad substitution: no closing \"`\" in %s" +msgstr "ongeldige vervanging: geen afsluitende '`' in %s" + +#: subst.c:8354 +#, c-format +msgid "no match: %s" +msgstr "geen overeenkomst: %s" + +#: test.c:145 +msgid "argument expected" +msgstr "argument werd verwacht" + +#: test.c:154 +#, c-format +msgid "%s: integer expression expected" +msgstr "%s: een geheel-getaluitdrukking werd verwacht" + +#: test.c:262 +msgid "`)' expected" +msgstr "')' werd verwacht" + +#: test.c:264 +#, c-format +msgid "`)' expected, found %s" +msgstr "')' werd verwacht; %s gevonden" + +#: test.c:279 test.c:688 test.c:691 +#, c-format +msgid "%s: unary operator expected" +msgstr "eenzijdige operator werd verwacht, %s gevonden" + +#: test.c:444 test.c:731 +#, c-format +msgid "%s: binary operator expected" +msgstr "tweezijdige operator werd verwacht, %s gevonden" + +#: test.c:806 +msgid "missing `]'" +msgstr "ontbrekende ']'" + +#: trap.c:201 +msgid "invalid signal number" +msgstr "ongeldig signaalnummer" + +#: trap.c:324 +#, c-format +msgid "run_pending_traps: bad value in trap_list[%d]: %p" +msgstr "run_pending_traps(): ongeldige waarde in trap_list[%d]: %p" + +#: trap.c:328 +#, c-format +msgid "" +"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself" +msgstr "" +"run_pending_traps: signaalverwerker is SIG_DFL, herzenden van %d (%s) aan " +"mezelf..." + +#: trap.c:372 +#, c-format +msgid "trap_handler: bad signal %d" +msgstr "trap_handler(): ongeldig signaal %d" + +#: variables.c:358 +#, c-format +msgid "error importing function definition for `%s'" +msgstr "fout tijdens importeren van functiedefinitie voor '%s'" + +#: variables.c:736 +#, c-format +msgid "shell level (%d) too high, resetting to 1" +msgstr "shell-niveau is te hoog (%d); teruggezet op 1" + +#: variables.c:1898 +msgid "make_local_variable: no function context at current scope" +msgstr "" +"make_local_variable(): er is geen functiecontext in huidige geldigheidsbereik" + +#: variables.c:3127 +msgid "all_local_variables: no function context at current scope" +msgstr "" +"all_local_variables(): er is geen functiecontext in huidige geldigheidsbereik" + +#: variables.c:3344 variables.c:3353 +#, c-format +msgid "invalid character %d in exportstr for %s" +msgstr "ongeldig teken '%d' in export-tekenreeks voor %s" + +#: variables.c:3359 +#, c-format +msgid "no `=' in exportstr for %s" +msgstr "geen '=' in export-tekenreeks voor %s" + +#: variables.c:3794 +msgid "pop_var_context: head of shell_variables not a function context" +msgstr "pop_var_context(): top van 'shell_variables' is geen functiecontext" + +#: variables.c:3807 +msgid "pop_var_context: no global_variables context" +msgstr "pop_var_context(): er is geen 'global_variables'-context" + +#: variables.c:3881 +msgid "pop_scope: head of shell_variables not a temporary environment scope" +msgstr "" +"pop_scope(): top van 'shell_variables' is geen tijdelijk geldigheidsbereik" + +#: version.c:46 +#, fuzzy +msgid "Copyright (C) 2009 Free Software Foundation, Inc." +msgstr "Copyright (C) 2008 Free Software Foundation, Inc." + +#: version.c:47 +msgid "" +"License GPLv3+: GNU GPL version 3 or later \n" +msgstr "" +"De licentie is GPLv3+: GNU GPL versie 3 of later.\n" +"Zie http://gnu.org/licenses/gpl.html voor de volledige tekst.\n" + +#: version.c:86 +#, c-format +msgid "GNU bash, version %s (%s)\n" +msgstr "GNU bash, versie %s (%s)\n" + +#: version.c:91 +#, c-format +msgid "This is free software; you are free to change and redistribute it.\n" +msgstr "" +"Dit is vrije software; u mag het vrijelijk wijzigen en verder verspreiden.\n" + +#: version.c:92 +#, c-format +msgid "There is NO WARRANTY, to the extent permitted by law.\n" +msgstr "Er is GEEN GARANTIE, voor zover de wet dit toestaat.\n" + +#: xmalloc.c:92 +#, c-format +msgid "xmalloc: cannot allocate %lu bytes (%lu bytes allocated)" +msgstr "xmalloc(): kan geen %lu bytes reserveren (%lu bytes gereserveerd)" + +#: xmalloc.c:94 +#, c-format +msgid "xmalloc: cannot allocate %lu bytes" +msgstr "xmalloc(): kan geen %lu bytes reserveren" + +#: xmalloc.c:114 +#, c-format +msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)" +msgstr "" +"xrealloc(): kan %lu bytes niet opnieuw reserveren (%lu bytes gereserveerd)" + +#: xmalloc.c:116 +#, c-format +msgid "xrealloc: cannot allocate %lu bytes" +msgstr "xrealloc(): kan %lu bytes niet opnieuw reserveren" + +#: xmalloc.c:150 +#, c-format +msgid "xmalloc: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)" +msgstr "" +"xmalloc(): %s:%d: kan geen %lu bytes reserveren (%lu bytes gereserveerd)" + +#: xmalloc.c:152 +#, c-format +msgid "xmalloc: %s:%d: cannot allocate %lu bytes" +msgstr "xmalloc(): %s:%d: kan geen %lu bytes reserveren" + +#: xmalloc.c:174 +#, c-format +msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)" +msgstr "" +"xrealloc(): %s:%d: kan %lu bytes niet opnieuw reserveren (%lu bytes " +"gereserveerd)" + +#: xmalloc.c:176 +#, c-format +msgid "xrealloc: %s:%d: cannot allocate %lu bytes" +msgstr "xrealloc(): %s:%d: kan %lu bytes niet opnieuw reserveren" + +#: builtins.c:43 +msgid "alias [-p] [name[=value] ... ]" +msgstr "alias [-p] [NAAM[=WAARDE] ... ]" + +#: builtins.c:47 +msgid "unalias [-a] name [name ...]" +msgstr "unalias [-a] NAAM [NAAM...]" + +#: builtins.c:51 +msgid "" +"bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-" +"x keyseq:shell-command] [keyseq:readline-function or readline-command]" +msgstr "" +"bind [-lpvsPVS] [-m TOETSENKAART] [-f BESTANDSNAAM] [-q NAAM] [-u NAAM]\n" +" [-r TOETSENREEKS] [-x TOETSENREEKS:SHELL-OPDRACHT]\n" +" [TOETSENREEKS:READLINE-FUNCTIE | TOETSENREEKS:READLINE-OPDRACHT]" + +#: builtins.c:54 +msgid "break [n]" +msgstr "break [N]" + +#: builtins.c:56 +msgid "continue [n]" +msgstr "continue [N]" + +#: builtins.c:58 +msgid "builtin [shell-builtin [arg ...]]" +msgstr "builtin [INGEBOUWDE_SHELLFUNCTIE [ARGUMENT...]]" + +#: builtins.c:61 +msgid "caller [expr]" +msgstr "caller [EXPRESSIE]" + +#: builtins.c:64 +msgid "cd [-L|-P] [dir]" +msgstr "cd [-L|-P] [MAP]" + +#: builtins.c:66 +msgid "pwd [-LP]" +msgstr "pwd [-LP]" + +#: builtins.c:68 +msgid ":" +msgstr ":" + +#: builtins.c:70 +msgid "true" +msgstr "waar" + +#: builtins.c:72 +msgid "false" +msgstr "onwaar" + +#: builtins.c:74 +msgid "command [-pVv] command [arg ...]" +msgstr "command [-pVv] OPDRACHT [ARGUMENT...]" + +#: builtins.c:76 +msgid "declare [-aAfFilrtux] [-p] [name[=value] ...]" +msgstr "declare [-aAfFilrtux] [-p] [NAAM[=WAARDE]...]" + +#: builtins.c:78 +msgid "typeset [-aAfFilrtux] [-p] name[=value] ..." +msgstr "typeset [-aAfFilrtux] [-p] NAAM[=WAARDE]..." + +#: builtins.c:80 +msgid "local [option] name[=value] ..." +msgstr "local [OPTIE] NAAM[=WAARDE]..." + +#: builtins.c:83 +msgid "echo [-neE] [arg ...]" +msgstr "echo [-neE] [ARGUMENT...]" + +#: builtins.c:87 +msgid "echo [-n] [arg ...]" +msgstr "echo [-n] [ARGUMENT...]" + +#: builtins.c:90 +msgid "enable [-a] [-dnps] [-f filename] [name ...]" +msgstr "enable [-a] [-dnps] [-f BESTANDSNAAM] [NAAM...]" + +#: builtins.c:92 +msgid "eval [arg ...]" +msgstr "eval [ARGUMENT...]" + +#: builtins.c:94 +msgid "getopts optstring name [arg]" +msgstr "getopts OPTIETEKENREEKS NAAM [ARGUMENT]" + +#: builtins.c:96 +msgid "exec [-cl] [-a name] [command [arguments ...]] [redirection ...]" +msgstr "exec [-cl] [-a NAAM] [OPDRACHT [ARGUMENT...]] [OMLEIDING...]" + +#: builtins.c:98 +msgid "exit [n]" +msgstr "exit [N]" + +#: builtins.c:100 +msgid "logout [n]" +msgstr "logout [N]" + +#: builtins.c:103 +msgid "fc [-e ename] [-lnr] [first] [last] or fc -s [pat=rep] [command]" +msgstr "" +"fc [-e EDITORNAAM] [-lnr] [EERSTE] [LAATSTE]\n" +"of: fc -s [PATROON=VERVANGING] [OPDRACHT]" + +#: builtins.c:107 +msgid "fg [job_spec]" +msgstr "fg [TAAKAANDUIDING]" + +#: builtins.c:111 +msgid "bg [job_spec ...]" +msgstr "bg [TAAKAANDUIDING...]" + +#: builtins.c:114 +msgid "hash [-lr] [-p pathname] [-dt] [name ...]" +msgstr "hash [-lr] [-p PADNAAM] [-dt] [NAAM...]" + +#: builtins.c:117 +msgid "help [-ds] [pattern ...]" +msgstr "help [-ds] [PATROON...]" + +#: builtins.c:121 +msgid "" +"history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg " +"[arg...]" +msgstr "" +"history [-c] [-d POSITIE] [N]\n" +" of: history -anrw [BESTANDSNAAM]\n" +" of: history -ps ARGUMENT..." + +#: builtins.c:125 +msgid "jobs [-lnprs] [jobspec ...] or jobs -x command [args]" +msgstr "" +"jobs [-lnprs] [TAAKAANDUIDING...] of jobs -x OPDRACHT [ARGUMENT...]" + +#: builtins.c:129 +msgid "disown [-h] [-ar] [jobspec ...]" +msgstr "disown [-h] [-ar] [TAAKAANDUIDING...]" + +#: builtins.c:132 +msgid "" +"kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l " +"[sigspec]" +msgstr "" +"kill [-s SIGNAALNAAM | -n SIGNAALNUMMER | -SIGNAAL] PID | TAAKAANDUIDING\n" +" of: kill -l [SIGNAAL]" + +#: builtins.c:134 +msgid "let arg [arg ...]" +msgstr "let ARGUMENT..." + +#: builtins.c:136 +msgid "" +"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-p prompt] [-t " +"timeout] [-u fd] [name ...]" +msgstr "" +"read [-ers] [-a ARRAY] [-d SCHEIDINGSTEKEN] [-i TEKST] [-n AANTAL_TEKENS]\n" +" [-p PROMPT] [-t TIJDSLIMIET] [-u BESTANDSDESCRIPTOR] [NAAM...]" + +#: builtins.c:138 +msgid "return [n]" +msgstr "return [N]" + +#: builtins.c:140 +msgid "set [--abefhkmnptuvxBCHP] [-o option-name] [arg ...]" +msgstr "set [--abefhkmnptuvxBCHP] [-o OPTIENAAM] [ARGUMENT...]" + +#: builtins.c:142 +msgid "unset [-f] [-v] [name ...]" +msgstr "unset [-f] [-v] [NAAM...]" + +#: builtins.c:144 +msgid "export [-fn] [name[=value] ...] or export -p" +msgstr "export [-fn] [NAAM[=WAARDE] ...] of export -p" + +#: builtins.c:146 +msgid "readonly [-af] [name[=value] ...] or readonly -p" +msgstr "readonly [-af] [NAAM[=WAARDE] ...] of readonly -p" + +#: builtins.c:148 +msgid "shift [n]" +msgstr "shift [N]" + +#: builtins.c:150 +msgid "source filename [arguments]" +msgstr "source BESTANDSNAAM [ARGUMENTEN]" + +#: builtins.c:152 +msgid ". filename [arguments]" +msgstr ". BESTANDSNAAM [ARGUMENTEN]" + +#: builtins.c:155 +msgid "suspend [-f]" +msgstr "suspend [-f]" + +#: builtins.c:158 +msgid "test [expr]" +msgstr "test [EXPRESSIE]" + +#: builtins.c:160 +msgid "[ arg... ]" +msgstr "[ ARGUMENT... ]" + +#: builtins.c:162 +msgid "times" +msgstr "times" + +#: builtins.c:164 +msgid "trap [-lp] [[arg] signal_spec ...]" +msgstr "trap [-lp] [[ARGUMENT] SIGNAALAANDUIDING...]" + +#: builtins.c:166 +msgid "type [-afptP] name [name ...]" +msgstr "type [-afptP] NAAM..." + +#: builtins.c:169 +msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]" +msgstr "ulimit [-SHacdefilmnpqrstuvx] [GRENSWAARDE]" + +#: builtins.c:172 +msgid "umask [-p] [-S] [mode]" +msgstr "umask [-p] [-S] [MODUS]" + +#: builtins.c:175 +msgid "wait [id]" +msgstr "wait [ID]" + +#: builtins.c:179 +msgid "wait [pid]" +msgstr "wait [PID]" + +#: builtins.c:182 +msgid "for NAME [in WORDS ... ] ; do COMMANDS; done" +msgstr "for NAAM [in WOORDEN...] ; do OPDRACHTEN; done" + +#: builtins.c:184 +msgid "for (( exp1; exp2; exp3 )); do COMMANDS; done" +msgstr "for (( EXPR1; EXPR2; EXPR3 )); do OPDRACHTEN; done" + +#: builtins.c:186 +msgid "select NAME [in WORDS ... ;] do COMMANDS; done" +msgstr "select NAAM [in WOORDEN... ;] do OPDRACHTEN; done" + +#: builtins.c:188 +msgid "time [-p] pipeline" +msgstr "time [-p] PIJPLIJN" + +#: builtins.c:190 +msgid "case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac" +msgstr "case WOORD in [PATROON [| PATROON]...) OPDRACHTEN ;;]... esac" + +#: builtins.c:192 +msgid "" +"if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else " +"COMMANDS; ] fi" +msgstr "" +"if OPDRACHTEN; then OPDRACHTEN;\n" +" [ elif OPDRACHTEN; then OPDRACHTEN; ]...\n" +" [ else OPDRACHTEN; ] fi" + +#: builtins.c:194 +msgid "while COMMANDS; do COMMANDS; done" +msgstr "while OPDRACHTEN; do OPDRACHTEN; done" + +#: builtins.c:196 +msgid "until COMMANDS; do COMMANDS; done" +msgstr "until OPDRACHTEN; do OPDRACHTEN; done" + +#: builtins.c:198 +msgid "function name { COMMANDS ; } or name () { COMMANDS ; }" +msgstr "function NAAM { OPDRACHTEN ; } of NAAM () { OPDRACHTEN ; }" + +#: builtins.c:200 +msgid "{ COMMANDS ; }" +msgstr "{ OPDRACHTEN ; }" + +#: builtins.c:202 +msgid "job_spec [&]" +msgstr "TAAKAANDUIDING [&]" + +#: builtins.c:204 +msgid "(( expression ))" +msgstr "(( EXPRESSIE ))" + +#: builtins.c:206 +msgid "[[ expression ]]" +msgstr "[[ EXPRESSIE ]]" + +#: builtins.c:208 +msgid "variables - Names and meanings of some shell variables" +msgstr "variables - enkele shell-variabelen" + +#: builtins.c:211 +msgid "pushd [-n] [+N | -N | dir]" +msgstr "pushd [-n] [+N | -N | MAP]" + +#: builtins.c:215 +msgid "popd [-n] [+N | -N]" +msgstr "popd [-n] [+N | -N]" + +#: builtins.c:219 +msgid "dirs [-clpv] [+N] [-N]" +msgstr "dirs [-clpv] [+N] [-N]" + +#: builtins.c:222 +msgid "shopt [-pqsu] [-o] [optname ...]" +msgstr "shopt [-pqsu] [-o] [OPTIENAAM...]" + +#: builtins.c:224 +msgid "printf [-v var] format [arguments]" +msgstr "printf [-v VARIABELE] OPMAAK [ARGUMENTEN]" + +#: builtins.c:227 +msgid "" +"complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W " +"wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] " +"[name ...]" +msgstr "" +"complete [-abcdefgjksuv] [-pr] [-o OPTIE] [-A ACTIE] [-G PATROON]\n" +" [-W WOORDENLIJST] [-F FUNCTIE] [-C OPDRACHT]\n" +" [-X FILTERPATROON] [-P PREFIX] [-S SUFFIX] [NAAM...]" + +#: builtins.c:231 +msgid "" +"compgen [-abcdefgjksuv] [-o option] [-A action] [-G globpat] [-W wordlist] " +"[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]" +msgstr "" +"compgen [-abcdefgjksuv] [-pr] [-o OPTIE] [-A ACTIE] [-G PATROON]\n" +" [-W WOORDENLIJST] [-F FUNCTIE] [-C OPDRACHT]\n" +" [-X FILTERPATROON] [-P PREFIX] [-S SUFFIX] [WOORD]" + +#: builtins.c:235 +msgid "compopt [-o|+o option] [name ...]" +msgstr "compopt [-o|+o OPTIE] [NAAM...]" + +#: builtins.c:238 +msgid "" +"mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c " +"quantum] [array]" +msgstr "" +"mapfile [-n AANTAL] [-O BEGIN] [-s AANTAL] [-t] [-u BESTANDSDESCRIPTOR]\n" +" [-C FUNCTIE] [-c HOEVEELHEID] [ARRAY]" + +#: builtins.c:250 +msgid "" +"Define or display aliases.\n" +" \n" +" Without arguments, `alias' prints the list of aliases in the reusable\n" +" form `alias NAME=VALUE' on standard output.\n" +" \n" +" Otherwise, an alias is defined for each NAME whose VALUE is given.\n" +" A trailing space in VALUE causes the next word to be checked for\n" +" alias substitution when the alias is expanded.\n" +" \n" +" Options:\n" +" -p\tPrint all defined aliases in a reusable format\n" +" \n" +" Exit Status:\n" +" alias returns true unless a NAME is supplied for which no alias has " +"been\n" +" defined." +msgstr "" +"Aliassen definiëren of tonen.\n" +"\n" +" Zonder argumenten, of met optie '-p', toont 'alias' op standaarduitvoer\n" +" de huidige lijst van aliassen in de vorm: alias NAAM='VERVANGING'.\n" +" Met argumenten, wordt er een alias gedefinieerd voor elke NAAM waarvoor\n" +" een VERVANGING gegeven is. Als de VERVANGING eindigt op een spatie, " +"dan\n" +" wordt bij aliasexpansie ook van het nakomende woord gecontroleerd of " +"het\n" +" een alias is.\n" +"\n" +" De afsluitwaarde is 0, tenzij er een NAAM zonder VERVANGING gegeven is." + +#: builtins.c:272 +msgid "" +"Remove each NAME from the list of defined aliases.\n" +" \n" +" Options:\n" +" -a\tremove all alias definitions.\n" +" \n" +" Return success unless a NAME is not an existing alias." +msgstr "" +"Elke gegeven NAAM verwijderen uit de lijst van gedefinieerde aliassen.\n" +"\n" +" Optie '-a' verwijdert alle aliassen.\n" +"\n" +" De afsluitwaarde is 0, tenzij NAAM geen bestaande alias is." + +#: builtins.c:285 +msgid "" +"Set Readline key bindings and variables.\n" +" \n" +" Bind a key sequence to a Readline function or a macro, or set a\n" +" Readline variable. The non-option argument syntax is equivalent to\n" +" that found in ~/.inputrc, but must be passed as a single argument:\n" +" e.g., bind '\"\\C-x\\C-r\": re-read-init-file'.\n" +" \n" +" Options:\n" +" -m keymap Use KEYMAP as the keymap for the duration of this\n" +" command. Acceptable keymap names are emacs,\n" +" emacs-standard, emacs-meta, emacs-ctlx, vi, vi-" +"move,\n" +" vi-command, and vi-insert.\n" +" -l List names of functions.\n" +" -P List function names and bindings.\n" +" -p List functions and bindings in a form that can be\n" +" reused as input.\n" +" -S List key sequences that invoke macros and their " +"values\n" +" -s List key sequences that invoke macros and their " +"values\n" +" in a form that can be reused as input.\n" +" -V List variable names and values\n" +" -v List variable names and values in a form that can\n" +" be reused as input.\n" +" -q function-name Query about which keys invoke the named function.\n" +" -u function-name Unbind all keys which are bound to the named " +"function.\n" +" -r keyseq Remove the binding for KEYSEQ.\n" +" -f filename Read key bindings from FILENAME.\n" +" -x keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n" +" \t\t\t\tKEYSEQ is entered.\n" +" \n" +" Exit Status:\n" +" bind returns 0 unless an unrecognized option is given or an error occurs." +msgstr "" +"Toetsbindingen en variabelen van 'readline' instellen.\n" +"\n" +" Een toetsenreeks verbinden aan een 'readline'-functie of aan een macro,\n" +" of een 'readline'-variabele instellen. De syntax van argumenten die " +"geen\n" +" opties zijn is gelijkaardig aan die voor ~/.inputrc, maar zij dienen " +"één\n" +" geheel te zijn, bijvoorbeeld: bind '\"\\C-x\\C-r\": re-read-init-file'.\n" +"\n" +" Opties:\n" +" -f BESTANDSNAAM de toetsbindingen uit dit bestand lezen\n" +" -l alle bekende functienamen opsommen\n" +" -m TOETSENKAART deze toetsenkaart gebruiken voor de duur van deze\n" +" opdracht; mogelijke toetsenkaarten zijn 'emacs',\n" +" 'emacs-standard', 'emacs-meta', 'emacs-ctlx',\n" +" 'vi', 'vi-move', 'vi-insert' en 'vi-command'\n" +" -P functienamen en hun bindingen tonen\n" +" -p functienamen en hun bindingen tonen, in een vorm " +"die\n" +" kan worden hergebruikt als invoer\n" +" -r TOETSENREEKS de binding voor deze toetsenreeks verwijderen\n" +" -q FUNCTIENAAM tonen welke toetsen deze functie aanroepen\n" +" -S toetsenreeksen tonen die macro's aanroepen\n" +" -s toetsenreeksen tonen die macro's aanroepen, in een\n" +" vorm die kan worden hergebruikt als invoer\n" +" -u FUNCTIENAAM verwijdert alle toetsbindingen aan deze functie\n" +" -V variabelenamen en hun waarden tonen\n" +" -v variabelenamen en hun waarden tonen, in een vorm " +"die\n" +" kan worden hergebruikt als invoer\n" +" -x TOETSENREEKS:SHELL_OPDRACHT deze shell-opdracht uitvoeren als " +"deze\n" +" toetsenreeks ingevoerd wordt \n" +"\n" +" De afsluitwaarde is 0, tenzij een ongeldige optie gegeven werd of een " +"fout\n" +" optrad." + +#: builtins.c:322 +msgid "" +"Exit for, while, or until loops.\n" +" \n" +" Exit a FOR, WHILE or UNTIL loop. If N is specified, break N enclosing\n" +" loops.\n" +" \n" +" Exit Status:\n" +" The exit status is 0 unless N is not greater than or equal to 1." +msgstr "" +"Een 'for'-, 'while'- of 'until'-lus beëindigen.\n" +" Als N gegeven is, dan worden N niveaus van lussen beëindigd.\n" +" De afsluitwaarde is 0, tenzij N kleiner dan 1 is." + +#: builtins.c:334 +msgid "" +"Resume for, while, or until loops.\n" +" \n" +" Resumes the next iteration of the enclosing FOR, WHILE or UNTIL loop.\n" +" If N is specified, resumes the Nth enclosing loop.\n" +" \n" +" Exit Status:\n" +" The exit status is 0 unless N is not greater than or equal to 1." +msgstr "" +"De volgende herhaling van huidige 'for'-, 'while'- of 'until'-lus beginnen.\n" +" Als N gegeven is, dan wordt N niveaus hoger doorgegaan. De " +"afsluitwaarde is 0, tenzij N kleiner dan 1 is." + +#: builtins.c:346 +msgid "" +"Execute shell builtins.\n" +" \n" +" Execute SHELL-BUILTIN with arguments ARGs without performing command\n" +" lookup. This is useful when you wish to reimplement a shell builtin\n" +" as a shell function, but need to execute the builtin within the " +"function.\n" +" \n" +" Exit Status:\n" +" Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is\n" +" not a shell builtin.." +msgstr "" +"Een ingebouwde shell-functie uitvoeren.\n" +"\n" +" Voert de gegeven ingebouwde shell-functie met de gegeven argumenten " +"uit.\n" +" Dit is handig als u de naam van een ingebouwde functie voor een eigen\n" +" functie wilt gebruiken, maar toch de functionaliteit van de ingebouwde\n" +" functie nodig hebt.\n" +"\n" +" De afsluitwaarde is die van de uitgevoerde shell-functie, of 1\n" +" of 1 als INGEBOUWDE_SHELLFUNCTIE geen ingebouwde shell-functie is." + +#: builtins.c:361 +msgid "" +"Return the context of the current subroutine call.\n" +" \n" +" Without EXPR, returns \"$line $filename\". With EXPR, returns\n" +" \"$line $subroutine $filename\"; this extra information can be used to\n" +" provide a stack trace.\n" +" \n" +" The value of EXPR indicates how many call frames to go back before the\n" +" current one; the top frame is frame 0.\n" +" \n" +" Exit Status:\n" +" Returns 0 unless the shell is not executing a shell function or EXPR\n" +" is invalid." +msgstr "" +"De context van de aanroep van de huidige functie tonen.\n" +"\n" +" Zonder argument produceert het \"$regelnummer $bestandsnaam\"; met\n" +" argument \"$regelnummer $functienaam $bestandsnaam\". Deze tweede\n" +" vorm kan gebruikt worden om een 'stack trace' te produceren. De\n" +" waarde van het argument geeft aan hoeveel frames er teruggegaan\n" +" moet worden; het huidige frame heeft nummer 0.\n" +"\n" +" De afsluitwaarde is 0, tenzij de shell momenteel geen functie uitvoert\n" +" of EXPRESSIE ongeldig is." + +#: builtins.c:379 +msgid "" +"Change the shell working directory.\n" +" \n" +" Change the current directory to DIR. The default DIR is the value of " +"the\n" +" HOME shell variable.\n" +" \n" +" The variable CDPATH defines the search path for the directory " +"containing\n" +" DIR. Alternative directory names in CDPATH are separated by a colon " +"(:).\n" +" A null directory name is the same as the current directory. If DIR " +"begins\n" +" with a slash (/), then CDPATH is not used.\n" +" \n" +" If the directory is not found, and the shell option `cdable_vars' is " +"set,\n" +" the word is assumed to be a variable name. If that variable has a " +"value,\n" +" its value is used for DIR.\n" +" \n" +" Options:\n" +" -L\tforce symbolic links to be followed\n" +" -P\tuse the physical directory structure without following symbolic\n" +" \tlinks\n" +" \n" +" The default is to follow symbolic links, as if `-L' were specified.\n" +" \n" +" Exit Status:\n" +" Returns 0 if the directory is changed; non-zero otherwise." +msgstr "" +"De huidige map wijzigen.\n" +"\n" +" Wijzigt de huidige map naar de gegeven MAP. Als geen MAP gegeven is,\n" +" dan wordt de waarde van de variabele HOME gebruikt.\n" +"\n" +" De variabele CDPATH definieert de mappen waarin naar MAP gezocht wordt.\n" +" De mapnamen in CDPATH worden gescheiden door dubbele punten (:); een\n" +" lege mapnaam is hetzelfde als de huidige map (.). Als MAP begint met\n" +" een slash (/), dan wordt CDPATH niet gebruikt.\n" +"\n" +" Als de gegeven map niet wordt gevonden, en shell-optie 'cdable_vars'\n" +" is ingeschakeld, dan wordt het gegeven woord als een variabelenaam\n" +" begrepen, en als die variabele een naam bevat, dan gaat 'cd' naar de\n" +" map met die naam.\n" +"\n" +" Opties:\n" +" -L symbolische koppelingen volgen (standaard)\n" +" -P de fysieke mappenstructuur gebruiken;\n" +" symbolische koppelingen worden eerst \"vertaald\"\n" +"\n" +" De afsluitwaarde is 0 als de gewenste map ingesteld kon worden, anders 1." + +#: builtins.c:407 +msgid "" +"Print the name of the current working directory.\n" +" \n" +" Options:\n" +" -L\tprint the value of $PWD if it names the current working\n" +" \tdirectory\n" +" -P\tprint the physical directory, without any symbolic links\n" +" \n" +" By default, `pwd' behaves as if `-L' were specified.\n" +" \n" +" Exit Status:\n" +" Returns 0 unless an invalid option is given or the current directory\n" +" cannot be read." +msgstr "" +"De naam van de huidige werkmap tonen.\n" +"\n" +" Opties:\n" +" -P het werkelijke, fysieke pad tonen, zonder symbolische " +"koppelingen\n" +" -L het pad tonen zoals dat gevolgd is, inclusief eventuele " +"symbolische\n" +" koppelingen (standaard)\n" +"\n" +" De afsluitwaarde is 0, tenzij een ongeldige optie gegeven werd\n" +" of de huidige map niet bepaald kon worden." + +#: builtins.c:424 +msgid "" +"Null command.\n" +" \n" +" No effect; the command does nothing.\n" +" \n" +" Exit Status:\n" +" Always succeeds." +msgstr "Doet niets; de opdracht heeft geen effect; de afsluitwaarde is 0." + +#: builtins.c:435 +msgid "" +"Return a successful result.\n" +" \n" +" Exit Status:\n" +" Always succeeds." +msgstr "Geeft afsluitwaarde 0, horend bij \"gelukt\"." + +#: builtins.c:444 +msgid "" +"Return an unsuccessful result.\n" +" \n" +" Exit Status:\n" +" Always fails." +msgstr "Geeft afsluitwaarde 1, horend bij \"mislukt\"." + +#: builtins.c:453 +msgid "" +"Execute a simple command or display information about commands.\n" +" \n" +" Runs COMMAND with ARGS suppressing shell function lookup, or display\n" +" information about the specified COMMANDs. Can be used to invoke " +"commands\n" +" on disk when a function with the same name exists.\n" +" \n" +" Options:\n" +" -p\tuse a default value for PATH that is guaranteed to find all of\n" +" \tthe standard utilities\n" +" -v\tprint a description of COMMAND similar to the `type' builtin\n" +" -V\tprint a more verbose description of each COMMAND\n" +" \n" +" Exit Status:\n" +" Returns exit status of COMMAND, or failure if COMMAND is not found." +msgstr "" +"Een opdracht uitvoeren of informatie over een opdracht tonen.\n" +"\n" +" Voert de gegeven opdracht uit met de gegeven argumenten, waarbij een\n" +" eventueel gelijknamige shell-functie genegeerd wordt. Dit kan gebruikt\n" +" worden om een programma op schijf uit te voeren wanneer er een functie\n" +" met dezelfde naam bestaat.\n" +"\n" +" Opties:\n" +" -p een standaardwaarde voor PATH gebruiken, zodat alle\n" +" standaardprogramma's gegarandeerd gevonden worden\n" +" -v tonen welke opdracht er uitgevoerd zou worden\n" +" -V als '-v' maar gedetailleerder\n" +"\n" +" De afsluitwaarde is die van de uitgevoerde OPDRACHT,\n" +" of 1 als de OPDRACHT niet gevonden is." + +#: builtins.c:472 +msgid "" +"Set variable values and attributes.\n" +" \n" +" Declare variables and give them attributes. If no NAMEs are given,\n" +" display the attributes and values of all variables.\n" +" \n" +" Options:\n" +" -f\trestrict action or display to function names and definitions\n" +" -F\trestrict display to function names only (plus line number and\n" +" \tsource file when debugging)\n" +" -p\tdisplay the attributes and value of each NAME\n" +" \n" +" Options which set attributes:\n" +" -a\tto make NAMEs indexed arrays (if supported)\n" +" -A\tto make NAMEs associative arrays (if supported)\n" +" -i\tto make NAMEs have the `integer' attribute\n" +" -l\tto convert NAMEs to lower case on assignment\n" +" -r\tto make NAMEs readonly\n" +" -t\tto make NAMEs have the `trace' attribute\n" +" -u\tto convert NAMEs to upper case on assignment\n" +" -x\tto make NAMEs export\n" +" \n" +" Using `+' instead of `-' turns off the given attribute.\n" +" \n" +" Variables with the integer attribute have arithmetic evaluation (see\n" +" the `let' command) performed when the variable is assigned a value.\n" +" \n" +" When used in a function, `declare' makes NAMEs local, as with the " +"`local'\n" +" command.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" +"Waarden en attributen van variabelen instellen.\n" +"\n" +" Declareert de gegeven variabelen en/of kent hen attributen toe.\n" +" Als er geen namen van variabelen gegeven zijn, dan worden de\n" +" bestaande variabelen en hun waarden getoond.\n" +"\n" +" Opties:\n" +" -f alleen de gedefinieerde functies tonen (geen variabelen)\n" +" -F alleen de namen van de functies tonen, zonder de definities\n" +" -p van elke gegeven variabele de attributen en waarde tonen\n" +"\n" +" Attributen:\n" +" -a van gegeven variabelen arrays maken (indien mogelijk)\n" +" -A van gegeven variabelen associatieve arrays maken (indien " +"mogelijk)\n" +" -i aan gegeven variabelen het 'geheel getal'-attribuut toekennen\n" +" -l gegeven variabelen bij toekenning omzetten naar kleine letters\n" +" -r de gegeven variabelen alleen-lezen maken\n" +" -t aan gegeven variabelen het 'trace'-attribuut toekennen\n" +" -u gegeven variabelen bij toekenning omzetten naar hoofdletters\n" +" -x de gegeven variabelen exporteren\n" +"\n" +" Een '+' in plaats van een '-' voor de letter schakelt het betreffende\n" +" attribuut uit.\n" +"\n" +" Bij variabelen met het 'geheel getal'-attribuut wordt bij toewijzingen\n" +" een rekenkundige evaluatie gedaan (zie 'let').\n" +"\n" +" Als 'declare' wordt gebruikt in een functie, dan maakt het elke gegeven\n" +" naam lokaal, net zoals de opdracht 'local'.\n" +"\n" +" De afsluitwaarde is 0, tenzij een ongeldige optie gegeven werd of er " +"een\n" +" fout optreedt." + +#: builtins.c:508 +msgid "" +"Set variable values and attributes.\n" +" \n" +" Obsolete. See `help declare'." +msgstr "" +"Waarden en attributen van variabelen instellen.\n" +" Verouderd. Zie 'help declare'." + +#: builtins.c:516 +msgid "" +"Define local variables.\n" +" \n" +" Create a local variable called NAME, and give it VALUE. OPTION can\n" +" be any option accepted by `declare'.\n" +" \n" +" Local variables can only be used within a function; they are visible\n" +" only to the function where they are defined and its children.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied, an error occurs,\n" +" or the shell is not executing a function." +msgstr "" +"Lokale variabelen definiëren.\n" +"\n" +" Maakt een lokale variabele NAAM aan, en kent deze de waarde WAARDE toe.\n" +" OPTIE kan elke optie zijn die ook door 'declare' geaccepteerd wordt.\n" +"\n" +" 'local' kan alleen binnen een functie gebruikt worden, en zorgt ervoor\n" +" dat het geldigheidsbereik van de variabele NAAM beperkt wordt tot de\n" +" betreffende functie en diens dochters.\n" +" De afsluitwaarde is 0, tenzij een ongeldige optie gegeven werd, er een\n" +" fout optrad, of de shell geen functie aan het uitvoeren is." + +#: builtins.c:533 +msgid "" +"Write arguments to the standard output.\n" +" \n" +" Display the ARGs on the standard output followed by a newline.\n" +" \n" +" Options:\n" +" -n\tdo not append a newline\n" +" -e\tenable interpretation of the following backslash escapes\n" +" -E\texplicitly suppress interpretation of backslash escapes\n" +" \n" +" `echo' interprets the following backslash-escaped characters:\n" +" \\a\talert (bell)\n" +" \\b\tbackspace\n" +" \\c\tsuppress further output\n" +" \\e\tescape character\n" +" \\f\tform feed\n" +" \\n\tnew line\n" +" \\r\tcarriage return\n" +" \\t\thorizontal tab\n" +" \\v\tvertical tab\n" +" \\\\\tbackslash\n" +" \\0nnn\tthe character whose ASCII code is NNN (octal). NNN can be\n" +" \t0 to 3 octal digits\n" +" \\xHH\tthe eight-bit character whose value is HH (hexadecimal). HH\n" +" \tcan be one or two hex digits\n" +" \n" +" Exit Status:\n" +" Returns success unless a write error occurs." +msgstr "" +"De gegeven argumenten naar standaarduitvoer schrijven.\n" +"\n" +" Opties:\n" +" -n de afsluitende nieuwe regel onderdrukken\n" +" -e onderstaande backslash-stuurcodes interpreteren\n" +" -E onderstaande backslash-stuurcodes niet interpreteren\n" +"\n" +" 'echo' kent de volgende stuurcodes: \\a geluidssignaal\n" +" \\b backspace\n" +" \\c geen verdere uitvoer produceren\n" +" \\E escapecode\n" +" \\f nieuwe pagina (FF-teken)\n" +" \\n nieuwe regel (LF-teken)\n" +" \\r naar begin van huidige regel (CR-teken)\n" +" \\t horizontale tab\n" +" \\v verticale tab\n" +" \\\\ een backslash (\\)\n" +" \\0NNN het teken met ASCII-code NNN (octaal, 1 tot 3 cijfers)\n" +" \\xHH het teken met code HH (hexadecimaal, 1 of 2 cijfers)\n" +"\n" +" De afsluitwaarde is 0, tenzij een schrijffout optreedt." + +#: builtins.c:567 +msgid "" +"Write arguments to the standard output.\n" +" \n" +" Display the ARGs on the standard output followed by a newline.\n" +" \n" +" Options:\n" +" -n\tdo not append a newline\n" +" \n" +" Exit Status:\n" +" Returns success unless a write error occurs." +msgstr "" +"De gegeven argumenten naar standaarduitvoer schrijven.\n" +"\n" +" Schrijft de gegeven argumenten naar standaarduitvoer, gevolgd door.\n" +" een nieuwe regel. Optie -n onderdrukt de afsluitende nieuwe regel.\n" +"\n" +" De afsluitwaarde is 0, tenzij een schrijffout optreedt." + +#: builtins.c:582 +msgid "" +"Enable and disable shell builtins.\n" +" \n" +" Enables and disables builtin shell commands. Disabling allows you to\n" +" execute a disk command which has the same name as a shell builtin\n" +" without using a full pathname.\n" +" \n" +" Options:\n" +" -a\tprint a list of builtins showing whether or not each is enabled\n" +" -n\tdisable each NAME or display a list of disabled builtins\n" +" -p\tprint the list of builtins in a reusable format\n" +" -s\tprint only the names of Posix `special' builtins\n" +" \n" +" Options controlling dynamic loading:\n" +" -f\tLoad builtin NAME from shared object FILENAME\n" +" -d\tRemove a builtin loaded with -f\n" +" \n" +" Without options, each NAME is enabled.\n" +" \n" +" To use the `test' found in $PATH instead of the shell builtin\n" +" version, type `enable -n test'.\n" +" \n" +" Exit Status:\n" +" Returns success unless NAME is not a shell builtin or an error occurs." +msgstr "" +"Ingebouwde shell-opdrachten in- of uitschakelen.\n" +"\n" +" Schakelt ingebouwde opdrachten in of uit. Dit laatste maakt het " +"mogelijk\n" +" om een bestand op schijf uit te voeren dat dezelfde naam heeft als een\n" +" ingebouwde opdracht, zonder het volledige pad op te moeten geven.\n" +"\n" +" Opties:\n" +" -a de ingebouwde opdrachten tonen en of ze in- of uitgeschakeld " +"zijn\n" +" -n genoemde opdrachten uitschakelen of uitgeschakelde opdrachten " +"tonen\n" +" -p uitvoer produceren die hergebruikt kan worden als invoer " +"(standaard)\n" +" -s alleen de speciale POSIX ingebouwde opdrachten tonen\n" +"\n" +" Opties die het dynamisch laden besturen:\n" +" -f ingebouwde opdracht NAAM laden uit gedeeld object BESTANDSNAAM\n" +" -d opdracht die geladen is met '-f' verwijderen.\n" +"\n" +" Zonder opties wordt elke gegeven NAAM ingeschakeld. Zonder namen " +"worden\n" +" de ingeschakelde opdrachten getoond (of met '-n' de uitgeschakelde).\n" +"\n" +" Voorbeeld: om in plaats van de ingebouwde 'test' het bestand 'test' te\n" +" gebruiken dat zich in uw zoekpad PATH bevindt, typt u 'enable -n test'.\n" +"\n" +" De afsluitwaarde is 0, tenzij NAAM geen ingebouwde shell-opdracht is of\n" +"  een fout optreedt." + +#: builtins.c:610 +msgid "" +"Execute arguments as a shell command.\n" +" \n" +" Combine ARGs into a single string, use the result as input to the " +"shell,\n" +" and execute the resulting commands.\n" +" \n" +" Exit Status:\n" +" Returns exit status of command or success if command is null." +msgstr "" +"Argumenten uitvoeren als een shell-opdracht.\n" +"\n" +" Combineert de gegeven argumenten tot een enkele tekenreeks, gebruikt " +"deze\n" +" als invoer voor de shell, en voert de resulterende opdrachten uit.\n" +"\n" +" De afsluitwaarde is die van de uitgevoerde opdracht, of 0 als de " +"opdracht\n" +" leeg is." + +#: builtins.c:622 +msgid "" +"Parse option arguments.\n" +" \n" +" Getopts is used by shell procedures to parse positional parameters\n" +" as options.\n" +" \n" +" OPTSTRING contains the option letters to be recognized; if a letter\n" +" is followed by a colon, the option is expected to have an argument,\n" +" which should be separated from it by white space.\n" +" \n" +" Each time it is invoked, getopts will place the next option in the\n" +" shell variable $name, initializing name if it does not exist, and\n" +" the index of the next argument to be processed into the shell\n" +" variable OPTIND. OPTIND is initialized to 1 each time the shell or\n" +" a shell script is invoked. When an option requires an argument,\n" +" getopts places that argument into the shell variable OPTARG.\n" +" \n" +" getopts reports errors in one of two ways. If the first character\n" +" of OPTSTRING is a colon, getopts uses silent error reporting. In\n" +" this mode, no error messages are printed. If an invalid option is\n" +" seen, getopts places the option character found into OPTARG. If a\n" +" required argument is not found, getopts places a ':' into NAME and\n" +" sets OPTARG to the option character found. If getopts is not in\n" +" silent mode, and an invalid option is seen, getopts places '?' into\n" +" NAME and unsets OPTARG. If a required argument is not found, a '?'\n" +" is placed in NAME, OPTARG is unset, and a diagnostic message is\n" +" printed.\n" +" \n" +" If the shell variable OPTERR has the value 0, getopts disables the\n" +" printing of error messages, even if the first character of\n" +" OPTSTRING is not a colon. OPTERR has the value 1 by default.\n" +" \n" +" Getopts normally parses the positional parameters ($0 - $9), but if\n" +" more arguments are given, they are parsed instead.\n" +" \n" +" Exit Status:\n" +" Returns success if an option is found; fails if the end of options is\n" +" encountered or an error occurs." +msgstr "" +"Opties ontleden.\n" +"\n" +" 'getopts' kan door shell-scripts gebruikt worden om positionele " +"parameters\n" +" als opties te ontleden.\n" +"\n" +" De OPTIETEKENREEKS bevat de te herkennen optieletters; als een letter\n" +" gevolgd wordt door een dubbele punt, dan hoort de optie een argument\n" +" te hebben, ervan gescheiden door witruimte.\n" +"\n" +" Elke keer dat 'getopts' wordt aangeroepen, plaatst het de volgende\n" +" gevonden optie in de gegeven shell-variabele NAAM, en het nummer van\n" +" het daarna te behandelen argument in de variabele OPTIND. Deze OPTIND\n" +" wordt geïnitialiseerd op 1 elke keer als de shell of een shell-script\n" +" wordt aangeroepen. Als een optie een argument heeft, dan wordt dat\n" +" argument in de shell-variabele OPTARG geplaatst.\n" +"\n" +" 'getopts' kan fouten op twee manieren rapporteren: in stille modus of\n" +" in normale modus. Stille modus wordt gebruikt als het eerste teken\n" +" van de optietekenreeks een dubbele punt is. In deze modus worden er\n" +" geen foutmeldingen geprint. In stille modus geldt: als 'getopts' een\n" +" ongeldige optie vindt, wordt dat teken in OPTARG geplaatst; als een\n" +" vereist argument bij een optie ontbreekt, dan wordt een ':' in NAAM\n" +" geplaatst en de optieletter in OPTARG. In normale modus geldt: als\n" +" 'getopts' een ongeldige optie vindt, wordt een '?' in NAME geplaatst,\n" +" en OPTARG leeggemaakt; als een vereist argument ontbreekt, dan wordt\n" +" een ':' in NAAM geplaatst en de gevonden optieletter in OPTARG; in\n" +" beide gevallen wordt er ook een foutmelding geprint.\n" +"\n" +" Als de shell-variabele OPTERR de waarde 0 heeft, wordt het printen\n" +" van foutmeldingen uitgeschakeld, zelfs als het eerste teken van de\n" +" optiereeks geen dubbele punt is. De standaardwaarde van OPTERR is 1.\n" +"\n" +" Normaliter ontleedt 'getopts' de positionele parameters: $0...$9.\n" +" Maar als er argumenten gegeven worden, dan worden deze ontleed." + +#: builtins.c:664 +msgid "" +"Replace the shell with the given command.\n" +" \n" +" Execute COMMAND, replacing this shell with the specified program.\n" +" ARGUMENTS become the arguments to COMMAND. If COMMAND is not " +"specified,\n" +" any redirections take effect in the current shell.\n" +" \n" +" Options:\n" +" -a name\tpass NAME as the zeroth argument to COMMAND\n" +" -c\t\texecute COMMAND with an empty environment\n" +" -l\t\tplace a dash in the zeroth argument to COMMAND\n" +" \n" +" If the command cannot be executed, a non-interactive shell exits, " +"unless\n" +" the shell option `execfail' is set.\n" +" \n" +" Exit Status:\n" +" Returns success unless COMMAND is not found or a redirection error " +"occurs." +msgstr "" +"De shell vervangen door de gegeven opdracht.\n" +"\n" +" Voert de gegeven OPDRACHT uit, daarbij deze shell vervangend door dat\n" +" programma. Eventuele ARGUMENTen worden de argumenten van OPDRACHT.\n" +" Als er geen OPDRACHT gegeven is, dan worden eventuele omleidingen van\n" +" kracht voor deze shell zelf.\n" +"\n" +" Opties:\n" +" -a NAAM deze naam als nulde argument aan OPDRACHT meegeven\n" +" -c de opdracht uitvoeren met een lege omgeving\n" +" -l een koppelteken als nulde argument aan OPDRACHT meegeven\n" +"\n" +" Als de opdracht niet kan worden uitgevoerd, dan sluit een niet-" +"interactieve\n" +" shell af, tenzij de shell-optie 'execfail' aan staat.\n" +"\n" +" De afsluitwaarde is 0, tenzij OPDRACHT niet gevonden wordt of er een\n" +" omleidingsfout optreedt." + +#: builtins.c:685 +msgid "" +"Exit the shell.\n" +" \n" +" Exits the shell with a status of N. If N is omitted, the exit status\n" +" is that of the last command executed." +msgstr "" +"De shell beëindigen.\n" +"\n" +" Beëindigt de shell met een afsluitwaarde van N. Zonder N is de\n" +" afsluitwaarde die van de laatst uitgevoerde opdracht." + +#: builtins.c:694 +msgid "" +"Exit a login shell.\n" +" \n" +" Exits a login shell with exit status N. Returns an error if not " +"executed\n" +" in a login shell." +msgstr "" +"Een login-shell beëindigen.\n" +"\n" +" Beëindigt een login-shell met een afsluitwaarde van N. Geeft een\n" +" foutmelding als de huidige shell geen login-shell is." + +#: builtins.c:704 +msgid "" +"Display or execute commands from the history list.\n" +" \n" +" fc is used to list or edit and re-execute commands from the history " +"list.\n" +" FIRST and LAST can be numbers specifying the range, or FIRST can be a\n" +" string, which means the most recent command beginning with that\n" +" string.\n" +" \n" +" Options:\n" +" -e ENAME\tselect which editor to use. Default is FCEDIT, then " +"EDITOR,\n" +" \t\tthen vi\n" +" -l \tlist lines instead of editing\n" +" -n\tomit line numbers when listing\n" +" -r\treverse the order of the lines (newest listed first)\n" +" \n" +" With the `fc -s [pat=rep ...] [command]' format, COMMAND is\n" +" re-executed after the substitution OLD=NEW is performed.\n" +" \n" +" A useful alias to use with this is r='fc -s', so that typing `r cc'\n" +" runs the last command beginning with `cc' and typing `r' re-executes\n" +" the last command.\n" +" \n" +" Exit Status:\n" +" Returns success or status of executed command; non-zero if an error " +"occurs." +msgstr "" +"Opdrachten uit de geschiedenis tonen of uitvoeren.\n" +"\n" +" Kan gebruikt worden om oude opdrachten te tonen, of om deze te bewerken\n" +" en opnieuw uit te voeren. EERSTE en LAATSTE kunnen getallen zijn die " +"een\n" +" bereik opgeven, of EERSTE kan een tekenreeksje zijn waarmee de " +"recentste\n" +" opdracht wordt bedoeld die met die letters begint.\n" +"\n" +" Opties:\n" +" -e EDITORNAAM de te gebruiken editor; standaard wordt de waarde van\n" +" FCEDIT gebruikt, anders die van EDITOR, anders 'vi'\n" +" -l een lijst met opdrachten tonen (in plaats van ze te bewerken)\n" +" -n de lijst zonder nummers weergeven\n" +" -r de volgorde van de lijst omdraaien (nieuwste eerst)\n" +"\n" +" In de vorm 'fc -s [PATROON=VERVANGING]... [OPDRACHT]', wordt OPDRACHT\n" +" opnieuw uitgevoerd nadat de aangegeven vervangingen zijn gedaan.\n" +"\n" +" Een handige alias bij deze functie is r='fc -s', zodat het typen van\n" +" 'r' de laatste opdracht opnieuw uitvoert, en het typen van 'r cc' de\n" +" laatste opdracht die met 'cc' begon opnieuw uitvoert.\n" +"\n" +" De afsluitwaarde die van de uitgevoerde opdracht, of 0, of niet-nul als\n" +" er een fout optreedt." + +#: builtins.c:734 +msgid "" +"Move job to the foreground.\n" +" \n" +" Place the job identified by JOB_SPEC in the foreground, making it the\n" +" current job. If JOB_SPEC is not present, the shell's notion of the\n" +" current job is used.\n" +" \n" +" Exit Status:\n" +" Status of command placed in foreground, or failure if an error occurs." +msgstr "" +"De gegeven taak in de voorgrond plaatsen.\n" +"\n" +" Plaatst de gegeven taak in de voorgrond, en maakt deze tot de huidige " +"taak.\n" +" Als er geen taak gegeven is, dan wordt dat wat volgens de shell de " +"huidige\n" +" taak is gebruikt.\n" +"\n" +" De afsluitwaarde is die van de in voorgrond geplaatste taak, of 1 als " +"er\n" +" een fout optreedt." + +#: builtins.c:749 +msgid "" +"Move jobs to the background.\n" +" \n" +" Place the jobs identified by each JOB_SPEC in the background, as if " +"they\n" +" had been started with `&'. If JOB_SPEC is not present, the shell's " +"notion\n" +" of the current job is used.\n" +" \n" +" Exit Status:\n" +" Returns success unless job control is not enabled or an error occurs." +msgstr "" +"De gegeven taken in de achtergrond plaatsen.\n" +"\n" +" Plaatst gegeven taken in de achtergrond, alsof deze gestart waren met " +"'&'.\n" +" Als er geen taak gegeven is, dan wordt dat wat volgens de shell de " +"huidige\n" +" taak is gebruikt.\n" +"\n" +" De afsluitwaarde is 0 tenzij taakbeheer uitgeschakeld is of er een fout\n" +" optreedt." + +#: builtins.c:763 +msgid "" +"Remember or display program locations.\n" +" \n" +" Determine and remember the full pathname of each command NAME. If\n" +" no arguments are given, information about remembered commands is " +"displayed.\n" +" \n" +" Options:\n" +" -d\t\tforget the remembered location of each NAME\n" +" -l\t\tdisplay in a format that may be reused as input\n" +" -p pathname\tuse PATHNAME is the full pathname of NAME\n" +" -r\t\tforget all remembered locations\n" +" -t\t\tprint the remembered location of each NAME, preceding\n" +" \t\teach location with the corresponding NAME if multiple\n" +" \t\tNAMEs are given\n" +" Arguments:\n" +" NAME\t\tEach NAME is searched for in $PATH and added to the list\n" +" \t\tof remembered commands.\n" +" \n" +" Exit Status:\n" +" Returns success unless NAME is not found or an invalid option is given." +msgstr "" +"Programmalocaties onthouden of tonen.\n" +"\n" +" Bepaalt en onthoudt voor elke gegeven opdracht-NAAM het volledige pad.\n" +" Als er geen argumenten gegeven zijn, dan wordt informatie over de\n" +" onthouden paden getoond.\n" +"\n" +" Opties:\n" +" -d het pad van elke gegeven NAAM vergeten\n" +" -l uitvoer produceren die herbruikbaar is als invoer\n" +" -p PADNAAM te gebruiken PADNAAM van de opdracht NAAM\n" +" -r alle paden vergeten\n" +" -t voor elke gegeven naam het onthouden pad tonen\n" +"\n" +" Elke gegeven NAAM wordt opgezocht in $PATH en wordt toegevoegd aan de\n" +" lijst met onthouden opdrachten.\n" +"\n" +" De afsluitwaarde is 0, tenzij NAAM niet gevonden wordt of een ongeldige\n" +" optie gegeven werd." + +#: builtins.c:788 +msgid "" +"Display information about builtin commands.\n" +" \n" +" Displays brief summaries of builtin commands. If PATTERN is\n" +" specified, gives detailed help on all commands matching PATTERN,\n" +" otherwise the list of help topics is printed.\n" +" \n" +" Options:\n" +" -d\toutput short description for each topic\n" +" -m\tdisplay usage in pseudo-manpage format\n" +" -s\toutput only a short usage synopsis for each topic matching\n" +" \tPATTERN\n" +" \n" +" Arguments:\n" +" PATTERN\tPattern specifiying a help topic\n" +" \n" +" Exit Status:\n" +" Returns success unless PATTERN is not found or an invalid option is " +"given." +msgstr "" +"Informatie tonen over ingebouwde opdrachten.\n" +"\n" +" Toont korte hulpteksten voor ingebouwde opdrachten van de shell.\n" +" Als een PATROON gegeven is, dan worden hulpteksten getoond voor alle\n" +" opdrachten die aan dit PATROON voldoen, anders wordt een lijst met\n" +" onderwerpen waarvoor hulp beschikbaar is getoond.\n" +"\n" +" Opties:\n" +" -d een korte omschrijving tonen voor elk onderwerp\n" +" -m gebruiksbericht tonen in pseudo-opmaak van een man-pagina\n" +" -s de uitvoer beperken tot een beknopt gebruiksbericht\n" +"\n" +" De afsluitwaarde is 0, tenzij niets aan PATROON voldoet of een " +"ongeldige\n" +" optie gegeven werd." + +#: builtins.c:812 +msgid "" +"Display or manipulate the history list.\n" +" \n" +" Display the history list with line numbers, prefixing each modified\n" +" entry with a `*'. An argument of N lists only the last N entries.\n" +" \n" +" Options:\n" +" -c\tclear the history list by deleting all of the entries\n" +" -d offset\tdelete the history entry at offset OFFSET.\n" +" \n" +" -a\tappend history lines from this session to the history file\n" +" -n\tread all history lines not already read from the history file\n" +" -r\tread the history file and append the contents to the history\n" +" \tlist\n" +" -w\twrite the current history to the history file\n" +" \tand append them to the history list\n" +" \n" +" -p\tperform history expansion on each ARG and display the result\n" +" \twithout storing it in the history list\n" +" -s\tappend the ARGs to the history list as a single entry\n" +" \n" +" If FILENAME is given, it is used as the history file. Otherwise,\n" +" if $HISTFILE has a value, that is used, else ~/.bash_history.\n" +" \n" +" If the $HISTTIMEFORMAT variable is set and not null, its value is used\n" +" as a format string for strftime(3) to print the time stamp associated\n" +" with each displayed history entry. No time stamps are printed " +"otherwise.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or an error occurs." +msgstr "" +"De opdrachtengeschiedenis tonen of bewerken.\n" +"\n" +" Geeft de lijst met uitgevoerde opdrachten weer (de \"geschiedenis\"),\n" +" inclusief regelnummers; voor bewerkte items staat een '*'. Met een\n" +" argument van N worden alleen de laatste N opdrachten getoond.\n" +"\n" +" Opties:\n" +" -c huidige geschiedenis wissen: alle uitgevoerde opdrachten " +"vergeten\n" +" -d POSITIE het geschiedenisitem op deze positie verwijderen\n" +"\n" +" -a huidige geschiedenis aan eind van geschiedenisbestand toevoegen\n" +" -n alle nog niet gelezen regels uit het geschiedenisbestand lezen\n" +" -r het geschiedenisbestand lezen en toevoegen aan einde van\n" +" huidige geschienis\n" +" -w huidige geschiedenis aan einde van geschiedenisbestand toevoegen\n" +"\n" +" -p geschiedenisopzoeking uitvoeren voor elk ARGUMENT en het " +"resultaat\n" +" tonen zonder dit in de geschiedenis op te slaan -s de " +"ARGUMENTen als één enkel item aan de geschiedenis toevoegen\n" +" Als een BESTANDSNAAM gegeven is, dan wordt dat gebruikt als het\n" +" geschiedenisbestand, anders wordt de waarde van HISTFILE gebruikt, en\n" +" als die variabele leeg is, dan ~/.bash_history.\n" +" Als de variabele HISTTIMEFORMAT ingesteld en niet leeg is, dan wordt de\n" +" waarde ervan gebruikt als een opmaaktekenreeks for strftime(3), om een\n" +" tijdsstempel bij elk geschiedenisitem weer te geven. Anders worden " +"geen\n" +" tijdsstempels getoond. \n" +" De afsluitwaarde is 0, tenzij een ongeldige optie gegeven werd of er " +"een\n" +" fout optreedt." + +#: builtins.c:848 +msgid "" +"Display status of jobs.\n" +" \n" +" Lists the active jobs. JOBSPEC restricts output to that job.\n" +" Without options, the status of all active jobs is displayed.\n" +" \n" +" Options:\n" +" -l\tlists process IDs in addition to the normal information\n" +" -n\tlist only processes that have changed status since the last\n" +" \tnotification\n" +" -p\tlists process IDs only\n" +" -r\trestrict output to running jobs\n" +" -s\trestrict output to stopped jobs\n" +" \n" +" If -x is supplied, COMMAND is run after all job specifications that\n" +" appear in ARGS have been replaced with the process ID of that job's\n" +" process group leader.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or an error occurs.\n" +" If -x is used, returns the exit status of COMMAND." +msgstr "" +"De status van taken tonen.\n" +"\n" +" Toont de actieve taken. Een TAAKAANDUIDING beperkt de uitvoer tot " +"alleen\n" +" die taak. Zonder opties wordt de status van alle actieve taken " +"getoond.\n" +"\n" +" Opties:\n" +" -l ook de proces-ID's tonen, naast de gewone informatie\n" +" -n alleen processen tonen die sinds de vorige melding zijn " +"veranderd\n" +" -p alleen de proces-ID's tonen\n" +" -r uitvoer beperken tot draaiende taken\n" +" -s uitvoer beperken tot gepauzeerde taken\n" +" Als optie '-x' gegeven is, wordt de gegeven OPDRACHT uitgevoerd nadat\n" +" alle gegeven taken (in ARGUMENTen) afgesloten zijn (dat wil zeggen: hun\n" +" proces-ID is vervangen door dat van hun moederproces).\n" +"\n" +" De afsluitwaarde is 0, tenzij een ongeldige optie gegeven werd of een\n" +" fout optreedt. Als '-x' gebruikt is, dan is de afsluitwaarde die van\n" +" OPDRACHT." + +#: builtins.c:875 +msgid "" +"Remove jobs from current shell.\n" +" \n" +" Removes each JOBSPEC argument from the table of active jobs. Without\n" +" any JOBSPECs, the shell uses its notion of the current job.\n" +" \n" +" Options:\n" +" -a\tremove all jobs if JOBSPEC is not supplied\n" +" -h\tmark each JOBSPEC so that SIGHUP is not sent to the job if the\n" +" \tshell receives a SIGHUP\n" +" -r\tremove only running jobs\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option or JOBSPEC is given." +msgstr "" +"Taken uit de huidige shell verwijderen.\n" +"\n" +" Verwijdert elke gegeven taak uit de tabel met actieve taken. Zonder\n" +" een TAAKAANDUIDING wordt dat wat volgens de shell de huidige taak is\n" +" verwijderd.\n" +"\n" +" Opties:\n" +" -a alle taken verwijderen (als geen TAAKAANDUIDING gegeven is)\n" +" -h taken niet verwijderen maar zodanig markeren dat deze geen " +"SIGHUP\n" +" krijgen wanneer de shell een SIGHUP krijgt\n" +" -r alleen draaiende taken verwijderen\n" +"\n" +" De afsluitwaarde is 0, tenzij een ongeldige optie of TAAKAANDUIDING\n" +" gegeven werd." + +#: builtins.c:894 +msgid "" +"Send a signal to a job.\n" +" \n" +" Send the processes identified by PID or JOBSPEC the signal named by\n" +" SIGSPEC or SIGNUM. If neither SIGSPEC nor SIGNUM is present, then\n" +" SIGTERM is assumed.\n" +" \n" +" Options:\n" +" -s sig\tSIG is a signal name\n" +" -n sig\tSIG is a signal number\n" +" -l\tlist the signal names; if arguments follow `-l' they are\n" +" \tassumed to be signal numbers for which names should be listed\n" +" \n" +" Kill is a shell builtin for two reasons: it allows job IDs to be used\n" +" instead of process IDs, and allows processes to be killed if the limit\n" +" on processes that you can create is reached.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or an error occurs." +msgstr "" +"Een signaal naar een taak sturen.\n" +"\n" +" Stuurt de via PID of TAAKAANDUIDING aangeduide processen het gegeven\n" +" signaal. Als er geen signaal gegeven is, dan wordt SIGTERM gestuurd.\n" +"\n" +" Opties:\n" +" -n NAAM het signaal met deze naam sturen\n" +" -s NUMMER het signaal met dit nummer sturen\n" +" -l lijst met beschikbare signalen tonen; als na '-l' " +"argumenten\n" +" volgen, dan wordt voor elk nummer de bijbehorende naam\n" +" getoond, en voor elke naam het bijbehorende nummer\n" +"\n" +" 'kill' is om twee redenen een ingebouwde shell-opdracht: het " +"accepteert\n" +" ook taakaanduidingen in plaats van alleen proces-ID's, en als het " +"maximum\n" +" aantal processen bereikt is hoeft u geen nieuw proces te starten om een\n" +" ander proces te elimineren.\n" +"\n" +" De afsluitwaarde is 0, tenzij een ongeldige optie gegeven werd of er " +"een\n" +" fout optreedt." + +#: builtins.c:917 +msgid "" +"Evaluate arithmetic expressions.\n" +" \n" +" Evaluate each ARG as an arithmetic expression. Evaluation is done in\n" +" fixed-width integers with no check for overflow, though division by 0\n" +" is trapped and flagged as an error. The following list of operators is\n" +" grouped into levels of equal-precedence operators. The levels are " +"listed\n" +" in order of decreasing precedence.\n" +" \n" +" \tid++, id--\tvariable post-increment, post-decrement\n" +" \t++id, --id\tvariable pre-increment, pre-decrement\n" +" \t-, +\t\tunary minus, plus\n" +" \t!, ~\t\tlogical and bitwise negation\n" +" \t**\t\texponentiation\n" +" \t*, /, %\t\tmultiplication, division, remainder\n" +" \t+, -\t\taddition, subtraction\n" +" \t<<, >>\t\tleft and right bitwise shifts\n" +" \t<=, >=, <, >\tcomparison\n" +" \t==, !=\t\tequality, inequality\n" +" \t&\t\tbitwise AND\n" +" \t^\t\tbitwise XOR\n" +" \t|\t\tbitwise OR\n" +" \t&&\t\tlogical AND\n" +" \t||\t\tlogical OR\n" +" \texpr ? expr : expr\n" +" \t\t\tconditional operator\n" +" \t=, *=, /=, %=,\n" +" \t+=, -=, <<=, >>=,\n" +" \t&=, ^=, |=\tassignment\n" +" \n" +" Shell variables are allowed as operands. The name of the variable\n" +" is replaced by its value (coerced to a fixed-width integer) within\n" +" an expression. The variable need not have its integer attribute\n" +" turned on to be used in an expression.\n" +" \n" +" Operators are evaluated in order of precedence. Sub-expressions in\n" +" parentheses are evaluated first and may override the precedence\n" +" rules above.\n" +" \n" +" Exit Status:\n" +" If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise.." +msgstr "" +"Rekenkundige uitdrukkingen evalueren.\n" +"\n" +" Evalueert elk ARGUMENT als een rekenkundige uitdrukking.\n" +" De evaluatie gebeurt in gehele getallen zonder controle op overloop;\n" +" maar deling door nul wordt gedetecteerd en wordt getoond als een fout.\n" +"\n" +" Onderstaande lijst toont de beschikbare operatoren in groepjes van " +"gelijke\n" +" voorrang; de groepjes zijn gerangschikt volgens afnemende voorrang.\n" +"\n" +" var++, var-- post-increment, post-decrement van variabele\n" +" ++var, --var pre-increment, pre-decrement van variabele\n" +" -, + eenzijdig minteken, eenzijdig plusteken\n" +" !, ~ logisch tegengestelde, bitsgewijs tegengestelde\n" +" ** machtsverheffing\n" +" *, /, % vermenigvuldiging, deling, rest\n" +" +, - optelling, aftrekking\n" +" <<, >> bitsgewijze verschuiving naar links, naar rechts\n" +" <=, >=, <, > vergelijkingen\n" +" ==, != gelijkheid, ongelijkheid\n" +" & bitsgewijze AND\n" +" ^ bitsgewijze XOR\n" +" | bitsgewijze OR\n" +" && logische AND\n" +" || logische OR\n" +"\n" +" expr ? expr : expr voorwaardelijke uitdrukking\n" +"\n" +" =, *=, /=, %=, +=, -=, <<=, >>=, &=, ^=, |= toewijzingen\n" +"\n" +" Shell-variabelen zijn toegestaan als parameters. De naam van een " +"variabele\n" +" wordt vervangen door zijn waarde (zonodig omgezet naar een geheel " +"getal).\n" +" Variabelen hoeven geen 'geheel getal'-attribuut te hebben om gebruikt " +"te\n" +" kunnen worden in een expressie.\n" +"\n" +" Operatoren worden geëvalueerd in volgorde van voorrang. Subexpressies\n" +" tussen haakjes worden altijd eerst geëvalueerd en overstijgen zodoende\n" +" bovengenoemde voorrangsregels.\n" +"\n" +" Als het laatste ARGUMENT evalueert tot 0, dan is de afsluitwaarde van\n" +" 'let' 1; anders 0." + +#: builtins.c:962 +#, fuzzy +msgid "" +"Read a line from the standard input and split it into fields.\n" +" \n" +" Reads a single line from the standard input, or from file descriptor FD\n" +" if the -u option is supplied. The line is split into fields as with " +"word\n" +" splitting, and the first word is assigned to the first NAME, the second\n" +" word to the second NAME, and so on, with any leftover words assigned to\n" +" the last NAME. Only the characters found in $IFS are recognized as " +"word\n" +" delimiters.\n" +" \n" +" If no NAMEs are supplied, the line read is stored in the REPLY " +"variable.\n" +" \n" +" Options:\n" +" -a array\tassign the words read to sequential indices of the array\n" +" \t\tvariable ARRAY, starting at zero\n" +" -d delim\tcontinue until the first character of DELIM is read, rather\n" +" \t\tthan newline\n" +" -e\t\tuse Readline to obtain the line in an interactive shell\n" +" -i text\tUse TEXT as the initial text for Readline\n" +" -n nchars\treturn after reading NCHARS characters rather than waiting\n" +" \t\tfor a newline\n" +" -p prompt\toutput the string PROMPT without a trailing newline before\n" +" \t\tattempting to read\n" +" -r\t\tdo not allow backslashes to escape any characters\n" +" -s\t\tdo not echo input coming from a terminal\n" +" -t timeout\ttime out and return failure if a complete line of input " +"is\n" +" \t\tnot read withint TIMEOUT seconds. The value of the TMOUT\n" +" \t\tvariable is the default timeout. TIMEOUT may be a\n" +" \t\tfractional number. If TIMEOUT is 0, read returns success only\n" +" \t\tif input is available on the specified file descriptor. The\n" +" \t\texit status is greater than 128 if the timeout is exceeded\n" +" -u fd\t\tread from file descriptor FD instead of the standard input\n" +" \n" +" Exit Status:\n" +" The return code is zero, unless end-of-file is encountered, read times " +"out,\n" +" or an invalid file descriptor is supplied as the argument to -u." +msgstr "" +"Een regel van standaardinvoer lezen en in velden opsplitsen.\n" +"\n" +" Leest één regel van standaardinvoer (of van de gegeven " +"bestandsdescriptor\n" +" als optie -u gegeven is) en wijst het eerste woord aan de eerste NAAM " +"toe,\n" +" het tweede woord aan de tweede NAAM, en zo verder; de resterende " +"woorden\n" +" worden toegewezen aan de laatste NAAM. Alleen de tekens in de " +"variabele\n" +" IFS worden herkend als woordscheidingstekens. Als er geen namen " +"gegeven\n" +" zijn, wordt de gelezen regel opgeslagen in de variabele REPLY.\n" +"\n" +" Opties:\n" +" -a ARRAY de gelezen woorden toekennen aan de opeenvolgende posities\n" +" van het genoemde array, beginnend bij index nul\n" +" -d TEKEN doorgaan met lezen tot TEKEN gelezen wordt (i.p.v. LF-" +"teken)\n" +" -e in een interactieve shell 'readline' gebruiken om de regel\n" +" in te lezen\n" +" -i TEKST door 'readline' te gebruiken begintekst\n" +" -n AANTAL stoppen na dit aantal tekens gelezen te hebben (i.p.v. tot\n" +" eeb LF-teken)\n" +" -p PROMT deze tekenreeks tonen als prompt (zonder afsluitende " +"nieuwe\n" +" regel) alvorens te beginnen met lezen\n" +" -r backslash-codes niet omzetten naar hun betekenis\n" +" -s invoer die van een terminal komt niet echoën\n" +" -t AANTAL na dit aantal seconden stoppen met wachten op invoer en\n" +" afsluiten met een code groter dan 128; de waarde van de\n" +" variabele TMOUT is de standaardwaarde voor het aantal te\n" +" wachten seconden; het aantal mag drijvendepuntgetal zijn\n" +" -u BSDS van deze bestandsdescriptor lezen i.p.v. van " +"standaardinvoer\n" +"\n" +" De afsluitwaarde is 0, tenzij einde-van-bestand (EOF) bereikt werd,\n" +" de tijdslimiet overschreden werd, of een ongeldige bestandsdescriptor\n" +" als argument van '-u' gegeven werd." + +#: builtins.c:1002 +msgid "" +"Return from a shell function.\n" +" \n" +" Causes a function or sourced script to exit with the return value\n" +" specified by N. If N is omitted, the return status is that of the\n" +" last command executed within the function or script.\n" +" \n" +" Exit Status:\n" +" Returns N, or failure if the shell is not executing a function or script." +msgstr "" +"Terugkeren uit een shell-functie.\n" +"\n" +" Doet een functie of gesourced script afsluiten met afsluitwaarde N.\n" +" Zonder N is de afsluitwaarde die van de laatst uitgevoerde opdracht\n" +" in functie of script.\n" +"\n" +" De afsluitwaarde is N, of 1 als de shell geen functie of script aan het\n" +" uitvoeren is." + +# Voor de duidelijkheid is de tejstvolgorde veranderd. +#: builtins.c:1015 +msgid "" +"Set or unset values of shell options and positional parameters.\n" +" \n" +" Change the value of shell attributes and positional parameters, or\n" +" display the names and values of shell variables.\n" +" \n" +" Options:\n" +" -a Mark variables which are modified or created for export.\n" +" -b Notify of job termination immediately.\n" +" -e Exit immediately if a command exits with a non-zero status.\n" +" -f Disable file name generation (globbing).\n" +" -h Remember the location of commands as they are looked up.\n" +" -k All assignment arguments are placed in the environment for a\n" +" command, not just those that precede the command name.\n" +" -m Job control is enabled.\n" +" -n Read commands but do not execute them.\n" +" -o option-name\n" +" Set the variable corresponding to option-name:\n" +" allexport same as -a\n" +" braceexpand same as -B\n" +" emacs use an emacs-style line editing interface\n" +" errexit same as -e\n" +" errtrace same as -E\n" +" functrace same as -T\n" +" hashall same as -h\n" +" histexpand same as -H\n" +" history enable command history\n" +" ignoreeof the shell will not exit upon reading EOF\n" +" interactive-comments\n" +" allow comments to appear in interactive commands\n" +" keyword same as -k\n" +" monitor same as -m\n" +" noclobber same as -C\n" +" noexec same as -n\n" +" noglob same as -f\n" +" nolog currently accepted but ignored\n" +" notify same as -b\n" +" nounset same as -u\n" +" onecmd same as -t\n" +" physical same as -P\n" +" pipefail the return value of a pipeline is the status of\n" +" the last command to exit with a non-zero status,\n" +" or zero if no command exited with a non-zero " +"status\n" +" posix change the behavior of bash where the default\n" +" operation differs from the Posix standard to\n" +" match the standard\n" +" privileged same as -p\n" +" verbose same as -v\n" +" vi use a vi-style line editing interface\n" +" xtrace same as -x\n" +" -p Turned on whenever the real and effective user ids do not match.\n" +" Disables processing of the $ENV file and importing of shell\n" +" functions. Turning this option off causes the effective uid and\n" +" gid to be set to the real uid and gid.\n" +" -t Exit after reading and executing one command.\n" +" -u Treat unset variables as an error when substituting.\n" +" -v Print shell input lines as they are read.\n" +" -x Print commands and their arguments as they are executed.\n" +" -B the shell will perform brace expansion\n" +" -C If set, disallow existing regular files to be overwritten\n" +" by redirection of output.\n" +" -E If set, the ERR trap is inherited by shell functions.\n" +" -H Enable ! style history substitution. This flag is on\n" +" by default when the shell is interactive.\n" +" -P If set, do not follow symbolic links when executing commands\n" +" such as cd which change the current directory.\n" +" -T If set, the DEBUG trap is inherited by shell functions.\n" +" - Assign any remaining arguments to the positional parameters.\n" +" The -x and -v options are turned off.\n" +" \n" +" Using + rather than - causes these flags to be turned off. The\n" +" flags can also be used upon invocation of the shell. The current\n" +" set of flags may be found in $-. The remaining n ARGs are positional\n" +" parameters and are assigned, in order, to $1, $2, .. $n. If no\n" +" ARGs are given, all shell variables are printed.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given." +msgstr "" +"Waarden van shell-opties of positionele parameters instellen.\n" +"\n" +" Schakelt shell-attributen in of uit, of verandert waarden van " +"positionele\n" +" parameters. Zonder opties of argumenten toont 'set' de namen en " +"waarden\n" +" van alle gedefinieerde variabelen en functies, in een vorm die als " +"invoer\n" +" hergebruikt kan worden. De volgende opties zijn beschikbaar (een '+' " +"in\n" +" plaats van een '-' schakelt het betreffende attribuut _uit_ i.p.v. in):\n" +"\n" +" -a nieuwe of gewijzigde variabelen en functies automatisch " +"exporteren\n" +" -B accoladevervanging uitvoeren (is standaard, b.v. a{b,c} -> ab ac)\n" +" -b beëindiging van een taak direct melden (i.p.v. na huidige " +"opdracht)\n" +" -C omleiding van uitvoer mag gewone bestanden niet overschrijven\n" +" -E een 'trap' op ERR door laten werken in functies en " +"dochterprocessen\n" +" -e de shell afsluiten zodra afsluitwaarde van een opdracht niet nul " +"is\n" +" -f jokertekens voor bestandsnamen uitschakelen (geen 'globbing')\n" +" -H geschiedenisopdracht '!' beschikbaar stellen (standaard)\n" +" -h het volledige pad van opdrachten onthouden na eerste keer " +"opzoeken\n" +" -k ook nakomende toewijzingen aan variabelen in de omgeving plaatsen\n" +" -m taakbesturing beschikbaar stellen (standaard)\n" +" -n opdrachten wel lezen maar niet uitvoeren (\"droogzwemmen\")\n" +" -o OPTIENAAM deze optie inschakelen (zie verderop voor de lange " +"namen)\n" +" -P fysieke paden volgen in plaats van symbolische koppelingen\n" +" -p geprivilegeerde modus: de bestanden aangeduid door ENV en " +"BASH_ENV\n" +" worden genegeerd, functies worden niet uit de omgeving " +"geïmporteerd,\n" +" en ook eventuele SHELLOPTS worden genegeerd; modus wordt " +"automatisch\n" +" ingeschakeld als effectieve en echte UID of GID niet " +"overeenkomen;\n" +" uitschakelen maakt dan effectieve UID en GID gelijk aan de echte\n" +" -T een 'trap' op DEBUG door laten werken in functies en " +"dochterprocessen\n" +" -t afsluiten na het lezen en uitvoeren van één opdracht\n" +" -u het gebruik van niet-bestaande variabelen behandelen als een fout\n" +" -v invoerregel weergeven (\"echoën\") zodra deze gelezen is\n" +" -x elke opdracht met argumenten weergeven voordat deze wordt " +"uitgevoerd\n" +" -- nakomende argumenten zijn positionele parameters; als er geen " +"verdere\n" +" argumenten zijn, worden de bestaande positionele parameters " +"gewist\n" +" - opties -v en -x uitschakelen; nakomende argumenten zijn " +"positionele\n" +" parameters; maar zonder argumenten worden de bestaande niet " +"gewist\n" +"\n" +" De opties kunnen ook gebruikt worden bij het starten van de shell.\n" +" De huidige toestand van de attributen is te vinden in $-. Eventuele\n" +" extra argumenten van 'set' worden begrepen als positionele parameters\n" +" en worden toegewezen aan $1, $2, ... $N.\n" +"\n" +" De lange namen voor gebruik met optie -o (of +o) zijn:\n" +" allexport == -a (automatisch exporteren van nieuwen/gewijzigden)\n" +" braceexpand == -B (accoladevervanging uitvoeren)\n" +" emacs regelbewerkingsinterface in stijl van 'emacs' gebruiken\n" +" errexit == -e (shell afsluiten bij eerste fout)\n" +" errtrace == -E ('trap' op ERR overal laten gelden)\n" +" functrace == -T ('trap' op DEBUG overal laten gelden)\n" +" hashall == -h (gevonden pad van opdrachten onthouden)\n" +" histexpand == -H ('!'-opdracht beschikbaar stellen)\n" +" history opdrachtengeschiedenis beschikbaar stellen\n" +" ignoreeof Ctrl-D negeren; de shell niet afsluiten bij lezen van " +"EOF\n" +" interactive-comments commentaar in interactieve opdrachten toestaan\n" +" keyword == -k (nakomende toewijzingen ook meenemen)\n" +" monitor == -m (taakbesturing beschikbaar stellen)\n" +" noclobber == -C (omleidingen geen bestanden laten overschrijven)\n" +" noexec == -n (opdrachten lezen maar niet uitvoeren)\n" +" noglob == -f (jokertekens uitschakelen)\n" +" nolog (herkend maar genegeerd)\n" +" notify == -b (beëindiging van een taak direct melden)\n" +" nounset == -u (niet-bestaande variabelen als een fout " +"beschouwen)\n" +" onecmd == -t (afsluiten na uitvoeren van één opdracht)\n" +" physical == -P (fysieke paden volgen i.p.v. symbolische)\n" +" pipefail de afsluitwaarde van een pijplijn gelijkmaken aan die " +"van\n" +" de laatste niet-succesvolle opdracht in de reeks, of " +"aan\n" +" 0 als alle opdrachten succesvol waren\n" +" posix de voorschriften van de POSIX-standaard strict volgen\n" +" privileged == -p (geprivilegeerde modus)\n" +" verbose == -v (elke invoerregel echoën)\n" +" vi regelbewerkingsinterface in stijl van 'vi' gebruiken\n" +" xtrace == -x (elke opdracht echoën)\n" +"\n" +" De afsluitwaarde is 0, tenzij een ongeldige optie gegeven werd." + +#: builtins.c:1097 +msgid "" +"Unset values and attributes of shell variables and functions.\n" +" \n" +" For each NAME, remove the corresponding variable or function.\n" +" \n" +" Options:\n" +" -f\ttreat each NAME as a shell function\n" +" -v\ttreat each NAME as a shell variable\n" +" \n" +" Without options, unset first tries to unset a variable, and if that " +"fails,\n" +" tries to unset a function.\n" +" \n" +" Some variables cannot be unset; also see `readonly'.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or a NAME is read-only." +msgstr "" +"Shell-variabelen en -functies verwijderen.\n" +"\n" +" Verwijdert voor elke NAAM de bijbehorende variabele of functie.\n" +"\n" +" Opties:\n" +" -f elke NAAM als een shell-functie begrijpen\n" +" -v elke NAAM als een shell-variabele begrijpen\n" +"\n" +" Zonder opties zal 'unset' eerst een variabele proberen te verwijderen,\n" +" en als dat niet lukt, dan een functie. Sommige variabelen kunnen niet\n" +" verwijderd worden; zie ook 'readonly'. \n" +"\n" +" De afsluitwaarde is 0, tenzij een ongeldige optie gegeven werd of een\n" +" NAAM alleen-lezen is." + +#: builtins.c:1117 +msgid "" +"Set export attribute for shell variables.\n" +" \n" +" Marks each NAME for automatic export to the environment of subsequently\n" +" executed commands. If VALUE is supplied, assign VALUE before " +"exporting.\n" +" \n" +" Options:\n" +" -f\trefer to shell functions\n" +" -n\tremove the export property from each NAME\n" +" -p\tdisplay a list of all exported variables and functions\n" +" \n" +" An argument of `--' disables further option processing.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or NAME is invalid." +msgstr "" +"Het export-attribuut van shell-variabelen instellen.\n" +"\n" +" Markeert elke gegeven naam voor automatische export naar de omgeving\n" +" van latere opdrachten. Als een WAARDE gegeven is, dan deze WAARDE\n" +" toekennen alvorens te exporteren.\n" +"\n" +" Opties:\n" +" -f gegeven namen verwijzen alleen naar functies\n" +" -n voor de gegeven namen de exportmarkering juist verwijderen\n" +" -p een lijst van alle geëxporteerde namen tonen\n" +"\n" +" Het argument '--' schakelt verdere optieverwerking uit.\n" +"\n" +" De afsluitwaarde is 0, tenzij een ongeldige optie of NAAM gegeven werd." + +#: builtins.c:1136 +msgid "" +"Mark shell variables as unchangeable.\n" +" \n" +" Mark each NAME as read-only; the values of these NAMEs may not be\n" +" changed by subsequent assignment. If VALUE is supplied, assign VALUE\n" +" before marking as read-only.\n" +" \n" +" Options:\n" +" -a\trefer to indexed array variables\n" +" -A\trefer to associative array variables\n" +" -f\trefer to shell functions\n" +" -p\tdisplay a list of all readonly variables and functions\n" +" \n" +" An argument of `--' disables further option processing.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or NAME is invalid." +msgstr "" +"Shell-variabelen als onveranderbaar markeren.\n" +"\n" +" Markeert elke gegeven NAAM als alleen-lezen, zodat de waarde van deze\n" +" NAAM niet meer veranderd kan worden door een latere toewijzing. Als " +"een\n" +" WAARDE gegeven is, dan deze WAARDE toekennen alvorens deze te fixeren.\n" +"\n" +" Opties:\n" +" -a elke naam als een array begrijpen\n" +" -A elke naam als een associatief array begrijpen\n" +" -f gegeven namen verwijzen alleen naar functies\n" +" -p een lijst van alle onveranderbare variabelen en functies tonen\n" +"\n" +" Het argument '--' schakelt verdere optieverwerking uit.\n" +"\n" +" De afsluitwaarde is 0, tenzij een ongeldige optie of NAAM gegeven werd." + +#: builtins.c:1157 +msgid "" +"Shift positional parameters.\n" +" \n" +" Rename the positional parameters $N+1,$N+2 ... to $1,$2 ... If N is\n" +" not given, it is assumed to be 1.\n" +" \n" +" Exit Status:\n" +" Returns success unless N is negative or greater than $#." +msgstr "" +"Positionele parameters opschuiven.\n" +"\n" +" Hernoemt positionele parameters $N+1,$N+2,... naar $1,$2,...\n" +" Als N niet gegeven is, wordt de waarde 1 aangenomen.\n" +"\n" +" De afsluitwaarde is 0 tenzij N negatief is of groter dan $#." + +#: builtins.c:1169 builtins.c:1184 +msgid "" +"Execute commands from a file in the current shell.\n" +" \n" +" Read and execute commands from FILENAME in the current shell. The\n" +" entries in $PATH are used to find the directory containing FILENAME.\n" +" If any ARGUMENTS are supplied, they become the positional parameters\n" +" when FILENAME is executed.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed in FILENAME; fails if\n" +" FILENAME cannot be read." +msgstr "" +"Opdrachten uit bestand in de huidige shell uitvoeren.\n" +"\n" +" Leest opdrachten uit het gegeven bestand en voert deze uit in de " +"huidige\n" +" shell. De mappen in PATH worden nagezocht om het genoemde bestand te\n" +" vinden. Als er verder nog argumenten gegeven zijn, dan worden dit de\n" +" positionele parameters tijdens de uitvoering van het genoemde bestand.\n" +"\n" +" De afsluitwaarde is die van de laatst uitgevoerde opdracht in het " +"gegeven\n" +" bestand, of 1 als dit bestand niet gelezen kan worden." + +#: builtins.c:1200 +msgid "" +"Suspend shell execution.\n" +" \n" +" Suspend the execution of this shell until it receives a SIGCONT signal.\n" +" Unless forced, login shells cannot be suspended.\n" +" \n" +" Options:\n" +" -f\tforce the suspend, even if the shell is a login shell\n" +" \n" +" Exit Status:\n" +" Returns success unless job control is not enabled or an error occurs." +msgstr "" +"Uitvoering van de shell pauzeren.\n" +"\n" +" Pauzeert de uitvoering van deze shell totdat een SIGCONT-signaal\n" +" ontvangen wordt. Een login-shell kan niet gepauzeerd worden, tenzij\n" +" optie '-f' gegeven is.\n" +"\n" +" Optie:\n" +" -f pauzering afdwingen, ook als dit een login-shell is\n" +"\n" +" De afsluitwaarde is 0 tenzij taakbeheer uitgeschakeld is of er een fout\n" +" optreedt." + +#: builtins.c:1216 +msgid "" +"Evaluate conditional expression.\n" +" \n" +" Exits with a status of 0 (true) or 1 (false) depending on\n" +" the evaluation of EXPR. Expressions may be unary or binary. Unary\n" +" expressions are often used to examine the status of a file. There\n" +" are string operators as well, and numeric comparison operators.\n" +" \n" +" File operators:\n" +" \n" +" -a FILE True if file exists.\n" +" -b FILE True if file is block special.\n" +" -c FILE True if file is character special.\n" +" -d FILE True if file is a directory.\n" +" -e FILE True if file exists.\n" +" -f FILE True if file exists and is a regular file.\n" +" -g FILE True if file is set-group-id.\n" +" -h FILE True if file is a symbolic link.\n" +" -L FILE True if file is a symbolic link.\n" +" -k FILE True if file has its `sticky' bit set.\n" +" -p FILE True if file is a named pipe.\n" +" -r FILE True if file is readable by you.\n" +" -s FILE True if file exists and is not empty.\n" +" -S FILE True if file is a socket.\n" +" -t FD True if FD is opened on a terminal.\n" +" -u FILE True if the file is set-user-id.\n" +" -w FILE True if the file is writable by you.\n" +" -x FILE True if the file is executable by you.\n" +" -O FILE True if the file is effectively owned by you.\n" +" -G FILE True if the file is effectively owned by your group.\n" +" -N FILE True if the file has been modified since it was last " +"read.\n" +" \n" +" FILE1 -nt FILE2 True if file1 is newer than file2 (according to\n" +" modification date).\n" +" \n" +" FILE1 -ot FILE2 True if file1 is older than file2.\n" +" \n" +" FILE1 -ef FILE2 True if file1 is a hard link to file2.\n" +" \n" +" String operators:\n" +" \n" +" -z STRING True if string is empty.\n" +" \n" +" -n STRING\n" +" STRING True if string is not empty.\n" +" \n" +" STRING1 = STRING2\n" +" True if the strings are equal.\n" +" STRING1 != STRING2\n" +" True if the strings are not equal.\n" +" STRING1 < STRING2\n" +" True if STRING1 sorts before STRING2 " +"lexicographically.\n" +" STRING1 > STRING2\n" +" True if STRING1 sorts after STRING2 lexicographically.\n" +" \n" +" Other operators:\n" +" \n" +" -o OPTION True if the shell option OPTION is enabled.\n" +" ! EXPR True if expr is false.\n" +" EXPR1 -a EXPR2 True if both expr1 AND expr2 are true.\n" +" EXPR1 -o EXPR2 True if either expr1 OR expr2 is true.\n" +" \n" +" arg1 OP arg2 Arithmetic tests. OP is one of -eq, -ne,\n" +" -lt, -le, -gt, or -ge.\n" +" \n" +" Arithmetic binary operators return true if ARG1 is equal, not-equal,\n" +" less-than, less-than-or-equal, greater-than, or greater-than-or-equal\n" +" than ARG2.\n" +" \n" +" Exit Status:\n" +" Returns success if EXPR evaluates to true; fails if EXPR evaluates to\n" +" false or an invalid argument is given." +msgstr "" +"Een conditionele expressie evalueren.\n" +"\n" +" Evalueert de gegeven EXPRESSIE; afhankelijk van het resultaat is de\n" +" afsluitwaarde 0 (\"waar\") of 1 (\"onwaar\"). De expressies kunnen\n" +" eenzijdig of tweezijdig zijn; eenzijdige expressies worden vaak\n" +" gebruikt om de toestand van een bestand te inspecteren. Er zijn ook\n" +" operatoren voor tekenreeksen en voor getalsmatige vergelijkingen.\n" +"\n" +" Bestandsoperatoren:\n" +" -a BESTAND waar als bestand bestaat\n" +" -b BESTAND waar als bestand een blok-apparaat is\n" +" -c BESTAND waar als bestand een byte-apparaat is\n" +" -d BESTAND waar als bestand een map is\n" +" -e BESTAND waar als bestand bestaat\n" +" -f BESTAND waar als bestand een gewoon bestand is\n" +" -G BESTAND waar als uw groep het bestand effectief bezit\n" +" -g BESTAND waar als bestand SETGUID is\n" +" -h BESTAND waar als bestand een symbolische koppeling is\n" +" -k BESTAND waar als bestand \"sticky\"-bit aan heeft staan\n" +" -L BESTAND waar als bestand een symbolische koppeling is\n" +" -N BESTAND waar als bestand gewijzigd is sinds laatste lezing\n" +" -O BESTAND waar als u het bestand effectief bezit\n" +" -p BESTAND waar als bestand een benoemde pijp is\n" +" -r BESTAND waar als bestand voor u leesbaar is\n" +" -S BESTAND waar als bestand een socket is\n" +" -s BESTAND waar als bestand niet leeg is\n" +" -t DESCRIPTOR waar als bestandsdescriptor geopend is op een " +"terminal\n" +" -u BESTAND waar als bestand SETUID is\n" +" -w BESTAND waar als bestand voor u schrijfbaar is\n" +" -x BESTAND waar als bestand door u uitvoerbaar is\n" +"\n" +" BEST1 -nt BEST2 waar als eerste bestand later gewijzigd is dan " +"tweede\n" +" BEST1 -ot BEST2 waar als eerste bestand eerder gewijzigd is dan " +"tweede\n" +" BEST1 -ef BEST2 waar als eerste bestand harde koppeling is naar " +"tweede\n" +"\n" +" Tekenreeksoperatoren:\n" +" -z REEKS waar als tekenreeks leeg is\n" +" -n REEKS waar als tekenreeks niet leeg is\n" +" REEKS waar als tekenreeks niet leeg is\n" +" RKS1 = RKS2 waar als de tekenreeksen gelijk zijn\n" +" RKS1 != RKS2 waar als de tekenreeksen niet gelijk zijn\n" +" RKS1 < RKS2 waar als eerste reeks lexicografisch voor de tweede " +"komt\n" +" RKS1 > RKS2 waar als eerste reeks lexicografisch na de tweede " +"komt\n" +"\n" +" Andere operatoren:\n" +" -o OPTIE waar als de shell-optie ingeschakeld is\n" +" ! EXPR waar als EXPR onwaar is\n" +" EXPR1 -a EXPR2 waar als beide expressies waar zijn\n" +" EXPR1 -o EXPR2 onwaar als beide expressies onwaar zijn\n" +" ARG1 VGL ARG2 waar als rekenkundige vergelijking klopt; VGL is één\n" +" van de volgende: -eq, -ne, -lt, -le, -gt, -ge;\n" +" ze betekenen: gelijk, ongelijk, kleiner dan,\n" +" kleiner of gelijk, groter dan, groter of gelijk\n" +"\n" +" De afsluitwaarde is 0 als EXPRESSIE waar is, 1 als EXPRESSIE onwaar is,\n" +" en 2 als een ongeldig argument gegeven werd." + +#: builtins.c:1292 +msgid "" +"Evaluate conditional expression.\n" +" \n" +" This is a synonym for the \"test\" builtin, but the last argument must\n" +" be a literal `]', to match the opening `['." +msgstr "" +"Een conditionele expressie evalueren.\n" +"\n" +" Dit is een synoniem voor de ingebouwde functie 'test', behalve dat\n" +" het laatste argument een ']' moet zijn, horend bij de begin-'['." + +#: builtins.c:1301 +msgid "" +"Display process times.\n" +" \n" +" Prints the accumulated user and system times for the shell and all of " +"its\n" +" child processes.\n" +" \n" +" Exit Status:\n" +" Always succeeds." +msgstr "" +"Procestijden tonen.\n" +"\n" +" Geeft de totaal verbruikte gebruikers- en systeemtijd weer; eerst de\n" +" tijden verbruikt door de shell zelf, en daaronder de tijden verbruikt\n" +" door de processen uitgevoerd door de shell.\n" +"\n" +" De afsluitwaarde is altijd 0." + +#: builtins.c:1313 +msgid "" +"Trap signals and other events.\n" +" \n" +" Defines and activates handlers to be run when the shell receives " +"signals\n" +" or other conditions.\n" +" \n" +" ARG is a command to be read and executed when the shell receives the\n" +" signal(s) SIGNAL_SPEC. If ARG is absent (and a single SIGNAL_SPEC\n" +" is supplied) or `-', each specified signal is reset to its original\n" +" value. If ARG is the null string each SIGNAL_SPEC is ignored by the\n" +" shell and by the commands it invokes.\n" +" \n" +" If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell. " +"If\n" +" a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command.\n" +" \n" +" If no arguments are supplied, trap prints the list of commands " +"associated\n" +" with each signal.\n" +" \n" +" Options:\n" +" -l\tprint a list of signal names and their corresponding numbers\n" +" -p\tdisplay the trap commands associated with each SIGNAL_SPEC\n" +" \n" +" Each SIGNAL_SPEC is either a signal name in or a signal " +"number.\n" +" Signal names are case insensitive and the SIG prefix is optional. A\n" +" signal may be sent to the shell with \"kill -signal $$\".\n" +" \n" +" Exit Status:\n" +" Returns success unless a SIGSPEC is invalid or an invalid option is " +"given." +msgstr "" +"Signalen en andere gebeurtenissen opvangen.\n" +"\n" +" Definieert en activeert afhandelingsprocedures die uitgevoerd moeten\n" +" worden wanneer de shell een signaal of andere gebeurtenissen ontvangt.\n" +"\n" +" ARGUMENT is een opdracht die gelezen en uitgevoerd wordt wanneer de " +"shell\n" +" een van de opgegeven signalen ontvangt. Als ARGUMENT ontbreekt en er " +"één\n" +" signaal gegeven is, of wanneer ARGUMENT '-' is, dan worden de opgegeven\n" +" signalen teruggezet op de waarde die ze hadden bij het starten van deze\n" +" shell. Als ARGUMENT de lege tekenreeks is, dan worden de opgegeven\n" +" signalen genegeerd door zowel deze shell als door alle " +"dochterprocessen.\n" +"\n" +" Als EXIT (0) als signaal opgegeven wordt, dan wordt ARGUMENT uitgevoerd\n" +" bij het afsluiten van de shell. Als DEBUG als signaal opgegeven wordt,\n" +" dan wordt ARGUMENT uitgevoerd vóór elke enkelvoudige opdracht. Als " +"RETURN\n" +" als signaal opgegeven wordt, dan wordt ARGUMENT uitgevoerd elke keer " +"als\n" +" een functie (of een met 'source' aangeroepen script) terugkeert. Als " +"ERR\n" +" als signaal opgegeven wordt, dan wordt ARGUMENT uitgevoerd elke keer " +"als\n" +" een enkelvoudige opdracht eindigt met een afsluitwaarde die niet nul " +"is.\n" +"\n" +" Als er geen enkel argument gegeven is, dan toont 'trap' welke " +"opdrachten\n" +" er met welke signalen verbonden zijn.\n" +"\n" +" Opties:\n" +" -l een overzicht tonen van signaalnummers en hun namen\n" +" -p voor elk gegeven signaal tonen welke opdracht ermee verbonden is\n" +"\n" +" Signalen kunnen als naam of als nummer opgegeven worden, in hoofd- of " +"in\n" +" kleine letters, en het voorvoegsel 'SIG' is optioneel. Merk op dat met\n" +" 'kill -signaal $$' een signaal naar de huidige shell gestuurd kan " +"worden.\n" +"\n" +" De afsluitwaarde is 0, tenzij een ongeldige optie of SIGNAALAANDUIDING\n" +" gegeven werd." + +#: builtins.c:1345 +msgid "" +"Display information about command type.\n" +" \n" +" For each NAME, indicate how it would be interpreted if used as a\n" +" command name.\n" +" \n" +" Options:\n" +" -a\tdisplay all locations containing an executable named NAME;\n" +" \tincludes aliases, builtins, and functions, if and only if\n" +" \tthe `-p' option is not also used\n" +" -f\tsuppress shell function lookup\n" +" -P\tforce a PATH search for each NAME, even if it is an alias,\n" +" \tbuiltin, or function, and returns the name of the disk file\n" +" \tthat would be executed\n" +" -p\treturns either the name of the disk file that would be executed,\n" +" \tor nothing if `type -t NAME' would not return `file'.\n" +" -t\toutput a single word which is one of `alias', `keyword',\n" +" \t`function', `builtin', `file' or `', if NAME is an alias, shell\n" +" \treserved word, shell function, shell builtin, disk file, or not\n" +" \tfound, respectively\n" +" \n" +" Arguments:\n" +" NAME\tCommand name to be interpreted.\n" +" \n" +" Exit Status:\n" +" Returns success if all of the NAMEs are found; fails if any are not " +"found." +msgstr "" +"Informatie tonen over een opdracht.\n" +"\n" +" Toont voor elke gegeven NAAM hoe deze zou worden geïnterpreteerd als\n" +" deze als opdracht gebruikt zou worden.\n" +"\n" +" Opties:\n" +" -a alle plaatsen tonen met een uitvoerbaar bestand genaamd NAAM;\n" +" dit omvat aliassen, ingebouwde shell-opdrachten, functies,\n" +" sleutelwoorden, en bestanden op schijf (alleen zonder '-p')\n" +" -f functies negeren, alsof ze niet gedefinieerd zijn\n" +" -P naar elke gegeven naam zoeken in het huidige zoekpad (PATH), ook\n" +" als het een alias, ingebouwde shell-opdracht of functie is\n" +" -p voor elke gegeven naam het volledige pad tonen van het bestand " +"dat\n" +" uitgevoerd zou worden, of niets als er een alias, functie,\n" +" ingebouwde shell-opdracht of sleutelwoord met die naam is\n" +" -t alleen het type van de opgegeven namen tonen: 'alias', 'builtin',\n" +" 'file', 'function' of 'keyword', al naar gelang het een alias,\n" +" een ingebouwde shell-opdracht, een bestand op schijf, een\n" +" gedefinieerde functie of een sleutelwoord betreft; of niets\n" +" als de naam onbekend is\\ \n" +" De afsluitwaarde is 0 als elke NAAM gevonden werd, anders 1." + +#: builtins.c:1376 +msgid "" +"Modify shell resource limits.\n" +" \n" +" Provides control over the resources available to the shell and " +"processes\n" +" it creates, on systems that allow such control.\n" +" \n" +" Options:\n" +" -S\tuse the `soft' resource limit\n" +" -H\tuse the `hard' resource limit\n" +" -a\tall current limits are reported\n" +" -b\tthe socket buffer size\n" +" -c\tthe maximum size of core files created\n" +" -d\tthe maximum size of a process's data segment\n" +" -e\tthe maximum scheduling priority (`nice')\n" +" -f\tthe maximum size of files written by the shell and its children\n" +" -i\tthe maximum number of pending signals\n" +" -l\tthe maximum size a process may lock into memory\n" +" -m\tthe maximum resident set size\n" +" -n\tthe maximum number of open file descriptors\n" +" -p\tthe pipe buffer size\n" +" -q\tthe maximum number of bytes in POSIX message queues\n" +" -r\tthe maximum real-time scheduling priority\n" +" -s\tthe maximum stack size\n" +" -t\tthe maximum amount of cpu time in seconds\n" +" -u\tthe maximum number of user processes\n" +" -v\tthe size of virtual memory\n" +" -x\tthe maximum number of file locks\n" +" \n" +" If LIMIT is given, it is the new value of the specified resource; the\n" +" special LIMIT values `soft', `hard', and `unlimited' stand for the\n" +" current soft limit, the current hard limit, and no limit, respectively.\n" +" Otherwise, the current value of the specified resource is printed. If\n" +" no option is given, then -f is assumed.\n" +" \n" +" Values are in 1024-byte increments, except for -t, which is in seconds,\n" +" -p, which is in increments of 512 bytes, and -u, which is an unscaled\n" +" number of processes.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" +"Grenzen van hulpbronnen aanpassen.\n" +"\n" +" Begrenst de beschikbare hulpbronnen voor processen gestart door deze " +"shell\n" +" -- op systemen die zulke begrenzing toestaan.\n" +"\n" +" Opties:\n" +" -S een \"zachte\" hulpbrongrens gebruiken\n" +" -H een \"harde\" hulpbrongrens gebruiken\n" +" -a alle huidige begrenzingen tonen\n" +" -b de maximum grootte van een socketbuffer\n" +" -c de maximum grootte van een core-bestand (in kB)\n" +" -d de maximum hoeveelheid gegevensgeheugen van een proces (in kB)\n" +" -e de maximum procespriotiteit (de 'nice'-waarde)\n" +" -f de maximum grootte van bestanden geschreven door shell of " +"dochters\n" +" -i het maximum aantal nog wachtende signalen\n" +" -l de maximum hoeveelheid geheugen die een proces mag vastpinnen " +"(kB)\n" +" -m de maximum hoeveelheid fysiek geheugen van een proces (in kB)\n" +" -n het maximum aantal open bestandsdescriptors\n" +" -p de maximum grootte van een pijpbuffer\n" +" -q het maximum aantal bytes in POSIX berichtwachtrijen\n" +" -r de maximum realtime-procesprioriteit\n" +" -s de maximum stapelgrootte (in kB)\n" +" -t de maximum hoeveelheid CPU-tijd (in seconden)\n" +" -u het maximum aantal gebruikersprocessen\n" +" -v de maximum hoeveelheid virtueel geheugen van een proces (in kB)\n" +" -x het maximum aantal bestandsvergrendelingen\n" +"\n" +" Als een GRENSWAARDE opgegeven is, dan wordt dit de nieuwe waarde van de\n" +" aangegeven hulpbron, anders wordt de huidige waarde ervan getoond.\n" +" De speciale grenswaarden 'soft', 'hard' en 'unlimited' staan voor de\n" +" huidige zachte grens, de huidige harde grens, en onbegrensd.\n" +" Als geen optie gegeven is, dan wordt optie '-f' aangenomen.\n" +"\n" +" De waardes gaan in stappen van 1024 bytes, behalve voor '-t', die in\n" +" seconden is, voor '-p', die in stappen van 512 bytes gaat, en voor '-" +"u',\n" +" dat een ongeschaald aantal is.\n" +"\n" +" De afsluitwaarde is 0, tenzij een ongeldige optie gegeven werd of een\n" +" fout optreedt." + +#: builtins.c:1421 +msgid "" +"Display or set file mode mask.\n" +" \n" +" Sets the user file-creation mask to MODE. If MODE is omitted, prints\n" +" the current value of the mask.\n" +" \n" +" If MODE begins with a digit, it is interpreted as an octal number;\n" +" otherwise it is a symbolic mode string like that accepted by chmod(1).\n" +" \n" +" Options:\n" +" -p\tif MODE is omitted, output in a form that may be reused as input\n" +" -S\tmakes the output symbolic; otherwise an octal number is output\n" +" \n" +" Exit Status:\n" +" Returns success unless MODE is invalid or an invalid option is given." +msgstr "" +"Het bestandsaanmaakmasker tonen of instellen.\n" +"\n" +" Stelt het bestandsaanmaakmasker van de gebruiker in op de gegeven " +"MODUS.\n" +" Als MODUS ontbreekt, dan wordt de huidige waarde van het masker " +"getoond.\n" +"\n" +" Als MODUS begint met een cijfer, wordt het begrepen als een octaal " +"getal,\n" +" anders als een symbolische modus-tekenreeks zoals chmod (1) die kent.\n" +"\n" +" Opties:\n" +" -p als invoer herbruikbare uitvoer produceren (indien MODUS " +"ontbreekt)\n" +" -S symbolische uitvoer produceren; anders octale getallen\n" +"\n" +" De afsluitwaarde is 0, tenzij MODUS ongeldig is of een ongeldige optie\n" +" gegeven werd." + +#: builtins.c:1441 +msgid "" +"Wait for job completion and return exit status.\n" +" \n" +" Waits for the process identified by ID, which may be a process ID or a\n" +" job specification, and reports its termination status. If ID is not\n" +" given, waits for all currently active child processes, and the return\n" +" status is zero. If ID is a a job specification, waits for all " +"processes\n" +" in the job's pipeline.\n" +" \n" +" Exit Status:\n" +" Returns the status of ID; fails if ID is invalid or an invalid option " +"is\n" +" given." +msgstr "" +"Op taakafsluiting wachten en de afsluitwaarde rapporteren.\n" +"\n" +" Wacht op het proces aangeduid door ID -- dat een taakaanduiding of een\n" +" proces-ID mag zijn -- en rapporteert diens afsluitwaarde. Als geen ID\n" +" gegeven is, dan wordt er gewacht op alle actieve dochterprocessen, en " +"is\n" +" de afsluitwaarde van 'wait' automatisch 0. Als ID een taakaanduiding " +"is,\n" +" dan wordt er gewacht op alle processen in de pijplijn van die taak.\n" +"\n" +" De afsluitwaarde is die van ID, 1 als ID ongeldig si, of 2 als een\n" +" ongeldige optie gegeven werd." + +#: builtins.c:1459 +msgid "" +"Wait for process completion and return exit status.\n" +" \n" +" Waits for the specified process and reports its termination status. If\n" +" PID is not given, all currently active child processes are waited for,\n" +" and the return code is zero. PID must be a process ID.\n" +" \n" +" Exit Status:\n" +" Returns the status of ID; fails if ID is invalid or an invalid option " +"is\n" +" given." +msgstr "" +"Op procesafsluiting wachten en de afsluitwaarde rapporteren.\n" +"\n" +" Wacht op het proces aangeduid door ID en rapporteert diens " +"afsluitwaarde.\n" +" Als geen PID gegeven is, dan wordt er gewacht op alle momenteel actieve\n" +" dochterprocessen, en is de afsluitwaarde van 'wait' automatisch 0. PID\n" +" moet een proces-ID zijn.\n" +"\n" +" De afsluitwaarde is die van ID, 1 als ID ongeldig si, of 2 als een\n" +" ongeldige optie gegeven werd." + +#: builtins.c:1474 +msgid "" +"Execute commands for each member in a list.\n" +" \n" +" The `for' loop executes a sequence of commands for each member in a\n" +" list of items. If `in WORDS ...;' is not present, then `in \"$@\"' is\n" +" assumed. For each element in WORDS, NAME is set to that element, and\n" +" the COMMANDS are executed.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"Opdrachten uitvoeren voor elk element in een lijst.\n" +"\n" +" De 'for'-lus voert een reeks opdrachten uit voor elk element in een\n" +" lijst van items. Als 'in WOORDEN...;' afwezig is, wordt 'in \"$@\";'\n" +" aangenomen. Voor elk element in WOORDEN wordt NAAM gelijkgemaakt aan\n" +" dat element en worden de OPDRACHTEN uitgevoerd. \n" +" De afsluitwaarde is die van de laatst uitgevoerde opdracht." + +#: builtins.c:1488 +msgid "" +"Arithmetic for loop.\n" +" \n" +" Equivalent to\n" +" \t(( EXP1 ))\n" +" \twhile (( EXP2 )); do\n" +" \t\tCOMMANDS\n" +" \t\t(( EXP3 ))\n" +" \tdone\n" +" EXP1, EXP2, and EXP3 are arithmetic expressions. If any expression is\n" +" omitted, it behaves as if it evaluates to 1.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"Een rekenkundige 'for'-lus.\n" +"\n" +" Dit is het equivalent van:\n" +"\n" +" (( EXP1 )); while (( EXP2 )); do OPDRACHTEN; (( EXP3 )); done\n" +"\n" +" EXP1, EXP2, and EXP3 zijn rekenkundige expressies. Als een expressie\n" +" weggelaten wordt, wordt de waarde 1 ervoor in de plaats genomen.\n" +"\n" +" De afsluitwaarde is die van de laatst uitgevoerde opdracht." + +#: builtins.c:1506 +msgid "" +"Select words from a list and execute commands.\n" +" \n" +" The WORDS are expanded, generating a list of words. The\n" +" set of expanded words is printed on the standard error, each\n" +" preceded by a number. If `in WORDS' is not present, `in \"$@\"'\n" +" is assumed. The PS3 prompt is then displayed and a line read\n" +" from the standard input. If the line consists of the number\n" +" corresponding to one of the displayed words, then NAME is set\n" +" to that word. If the line is empty, WORDS and the prompt are\n" +" redisplayed. If EOF is read, the command completes. Any other\n" +" value read causes NAME to be set to null. The line read is saved\n" +" in the variable REPLY. COMMANDS are executed after each selection\n" +" until a break command is executed.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"Een keuzelijst aanbieden en opdrachten uitvoeren.\n" +"\n" +" Toont een menu op standaardfoutuitvoer: een genummerde lijst met de\n" +" gegeven woorden nadat alle shell-vervangingen erop zijn toegepast.\n" +" Als het 'in'-gedeelte afwezig is, wordt 'in \"$@\";' aangenomen.\n" +"\n" +" Na het menu wordt de PS3-prompt getoond, en wordt een regel van\n" +" standaardinvoer gelezen. Als de gelezen regel één van de getoonde\n" +" nummers is, dan wordt NAAM gelijkgemaakt aan het bijbehorende woord;\n" +" als de regel leeg is, worden het menu en de prompt opnieuw getoond;\n" +" als einde-van-bestand (Ctrl-D) wordt gelezen, dan wordt de opdracht\n" +" beëindigd. Elke andere waarde zorgt ervoor dat de variabele NAAM\n" +" wordt leeggemaakt. De gelezen regel wordt altijd opgeslagen in de\n" +" variabele REPLY. Na elke keuze worden de bijbehorende opdrachten\n" +" uitgevoerd. Dit gaat door totdat een 'break' de opdracht beëindigt. \n" +"\n" +" De afsluitwaarde is die van de laatst uitgevoerde opdracht." + +#: builtins.c:1527 +msgid "" +"Report time consumed by pipeline's execution.\n" +" \n" +" Execute PIPELINE and print a summary of the real time, user CPU time,\n" +" and system CPU time spent executing PIPELINE when it terminates.\n" +" \n" +" Options:\n" +" -p\tprint the timing summary in the portable Posix format\n" +" \n" +" The value of the TIMEFORMAT variable is used as the output format.\n" +" \n" +" Exit Status:\n" +" The return status is the return status of PIPELINE." +msgstr "" +"De door een pijplijn verbruikte tijd tonen.\n" +"\n" +" Voert de in de PIJPLIJN gegeven opdrachten uit en toont daarna een\n" +" tijdssamenvatting: de totale verlopen tijd, de in gebruikersprocessen\n" +" verbruikte processortijd , en de in systeemprocessen verbruikte\n" +" processortijd.\n" +"\n" +" De uitvoer kan via de omgevingsvariabele TIMEFORMAT aangepast worden.\n" +" Optie '-p' negeert deze omgevingsvariabele en toont de tijden in een\n" +" overdraagbare standaardopmaak.\n" +" De afsluitwaarde is die van de PIJPLIJN." + +#: builtins.c:1544 +msgid "" +"Execute commands based on pattern matching.\n" +" \n" +" Selectively execute COMMANDS based upon WORD matching PATTERN. The\n" +" `|' is used to separate multiple patterns.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"Opdrachten uitvoeren afhankelijk van patroonovereenkomsten.\n" +"\n" +" Voert één van de gegeven sets met opdrachten uit, afhankelijk van met\n" +" welk PATROON het WOORD overeenkomt. Met '|' kunnen meerdere patronen\n" +" gegroepeerd worden.\n" +"\n" +" De afsluitwaarde is die van de laatst uitgevoerde opdracht." + +#: builtins.c:1556 +msgid "" +"Execute commands based on conditional.\n" +" \n" +" The `if COMMANDS' list is executed. If its exit status is zero, then " +"the\n" +" `then COMMANDS' list is executed. Otherwise, each `elif COMMANDS' list " +"is\n" +" executed in turn, and if its exit status is zero, the corresponding\n" +" `then COMMANDS' list is executed and the if command completes. " +"Otherwise,\n" +" the `else COMMANDS' list is executed, if present. The exit status of " +"the\n" +" entire construct is the exit status of the last command executed, or " +"zero\n" +" if no condition tested true.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"Opdrachten uitvoeren afhankelijk van voorwaarden.\n" +"\n" +" Voert eerst de opdrachten na 'if' uit; als de afsluitwaarde daarvan\n" +" nul is, dan worden de opdrachten na de eerste 'then' uitgevoerd; anders\n" +" de opdrachten na de eerstvolgende 'elif' (indien aanwezig) of de 'else'\n" +" (indien aanwezig). Als de afsluitwaarde van de opdrachten na een " +"'elif'\n" +" nul is, dan worden de opdrachten na de bijbehorende 'then' uitgevoerd.\n" +" Als er geen verdere 'elif' of 'else' meer is, of zodra de opdrachten na\n" +" een 'then' zijn uitgevoerd, is de 'if'-opdracht voltooid.\n" +"\n" +" De afsluitwaarde van de gehele opdracht is die van de laatst " +"uitgevoerde\n" +" deelopdracht, of nul als geen enkele 'if' of 'elif' nul opleverde." + +#: builtins.c:1573 +msgid "" +"Execute commands as long as a test succeeds.\n" +" \n" +" Expand and execute COMMANDS as long as the final command in the\n" +" `while' COMMANDS has an exit status of zero.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"Opdrachten uitvoeren zolang een test slaagt.\n" +"\n" +" Voert de gegeven opdrachten uit zolang de laatste opdracht achter\n" +" 'while' een afsluitwaarde van 0 heeft.\n" +"\n" +" De afsluitwaarde is die van de laatst uitgevoerde opdracht." + +#: builtins.c:1585 +msgid "" +"Execute commands as long as a test does not succeed.\n" +" \n" +" Expand and execute COMMANDS as long as the final command in the\n" +" `until' COMMANDS has an exit status which is not zero.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"Opdrachten uitvoeren zolang een test niet slaagt.\n" +"\n" +" Voert de gegeven opdrachten uit zolang de laatste opdracht achter\n" +" 'until' een afsluitwaarde ongelijk aan 0 heeft.\n" +"\n" +" De afsluitwaarde is die van de laatst uitgevoerde opdracht." + +#: builtins.c:1597 +msgid "" +"Define shell function.\n" +" \n" +" Create a shell function named NAME. When invoked as a simple command,\n" +" NAME runs COMMANDs in the calling shell's context. When NAME is " +"invoked,\n" +" the arguments are passed to the function as $1...$n, and the function's\n" +" name is in $FUNCNAME.\n" +" \n" +" Exit Status:\n" +" Returns success unless NAME is readonly." +msgstr "" +"Een shell-functie definiëren.\n" +"\n" +" Maakt een shell-functie aan die met NAAM aangeroepen kan worden en die\n" +" de gegeven OPDRACHTEN uitvoert in de context van de aanroepende shell.\n" +" Wanneer NAAM aangeroepen wordt, worden de argumenten aan de functie\n" +" doorgegeven als $0...$N, en de functienaam in $FUNCNAME.\n" +"\n" +" De afsluitwaarde is 0, tenzij NAAM onveranderbaar is." + +#: builtins.c:1611 +msgid "" +"Group commands as a unit.\n" +" \n" +" Run a set of commands in a group. This is one way to redirect an\n" +" entire set of commands.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"Opdrachten als een eenheid groeperen.\n" +"\n" +" Voert een set opdrachten als een eenheid uit. Dit is een manier om\n" +" de in- en uitvoer van een hele set opdrachten om te kunnen leiden.\n" +"\n" +" De afsluitwaarde is die van de laatst uitgevoerde opdracht." + +#: builtins.c:1623 +msgid "" +"Resume job in foreground.\n" +" \n" +" Equivalent to the JOB_SPEC argument to the `fg' command. Resume a\n" +" stopped or background job. JOB_SPEC can specify either a job name\n" +" or a job number. Following JOB_SPEC with a `&' places the job in\n" +" the background, as if the job specification had been supplied as an\n" +" argument to `bg'.\n" +" \n" +" Exit Status:\n" +" Returns the status of the resumed job." +msgstr "" +"Een taak hervatten in de voorgrond.\n" +"\n" +" Hervat de gegeven achtergrondtaak of gepauzeerde taak in de voorgrond.\n" +" Dit is equivalent aan de opdracht 'fg'. De taak kan met een nummer of\n" +" met een naam aangeduid worden.\n" +"\n" +" Als na de taakaanduiding een '&' volgt, dan wordt de taak in de\n" +" achtergrond geplaatst. Dit is equivalent aan de opdracht 'bg'.\n" +"\n" +" De afsluitwaarde is die van de hervatte taak." + +#: builtins.c:1638 +msgid "" +"Evaluate arithmetic expression.\n" +" \n" +" The EXPRESSION is evaluated according to the rules for arithmetic\n" +" evaluation. Equivalent to \"let EXPRESSION\".\n" +" \n" +" Exit Status:\n" +" Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise." +msgstr "" +"Een rekenkundige uitdrukking evalueren.\n" +"\n" +" Evalueert de gegeven expressie als een rekenkundige uitdrukking.\n" +" Dit is equivalent aan 'let EXPRESSIE'.\n" +"\n" +" De afsluitwaarde is 1 als de EXPRESSIE tot 0 evalueert; anders 0." + +#: builtins.c:1650 +msgid "" +"Execute conditional command.\n" +" \n" +" Returns a status of 0 or 1 depending on the evaluation of the " +"conditional\n" +" expression EXPRESSION. Expressions are composed of the same primaries " +"used\n" +" by the `test' builtin, and may be combined using the following " +"operators:\n" +" \n" +" ( EXPRESSION )\tReturns the value of EXPRESSION\n" +" ! EXPRESSION\t\tTrue if EXPRESSION is false; else false\n" +" EXPR1 && EXPR2\tTrue if both EXPR1 and EXPR2 are true; else false\n" +" EXPR1 || EXPR2\tTrue if either EXPR1 or EXPR2 is true; else false\n" +" \n" +" When the `==' and `!=' operators are used, the string to the right of\n" +" the operator is used as a pattern and pattern matching is performed.\n" +" When the `=~' operator is used, the string to the right of the operator\n" +" is matched as a regular expression.\n" +" \n" +" The && and || operators do not evaluate EXPR2 if EXPR1 is sufficient to\n" +" determine the expression's value.\n" +" \n" +" Exit Status:\n" +" 0 or 1 depending on value of EXPRESSION." +msgstr "" +"Een voorwaardelijke opdracht uitveoren.\n" +"\n" +" Evalueert de gegeven conditionele expressie; afhankelijk van het " +"resultaat\n" +" is de afsluitwaarde 0 (\"waar\") of 1 (\"onwaar\"). De expressies " +"bestaan uit\n" +" dezelfde basiscomponenten als die van ingebouwde opdracht 'test', en " +"kunnen\n" +" worden gecombineerd met de volgende operatoren:\n" +"\n" +" ( EXPRESSIE ) de waarde van de gegeven expressie\n" +" ! EXPRESSIE waar als EXPRESSIE onwaar is, anders onwaar\n" +" EXPR1 && EXPR2 waar als beide expressies waar zijn, anders " +"onwaar\n" +" EXPR1 || EXPR2 onwaar als beide expressies onwaar zijn, anders " +"waar\n" +"\n" +" Als '==' of '!=' als operator gebruikt wordt, dan wordt de rechter\n" +" tekenreeks als patroon begrepen en wordt patroonherkenning " +"uitgevoerd. Als '=~' als operator gebruikt wordt, dan wordt de rechter " +"tekenreeks\n" +" als een reguliere expressie begrepen.\n" +"\n" +" De operatoren '&&' en '||' evalueren de tweede expressie níét als de " +"waarde\n" +" van de eerste voldoende is om het eindresulaat te bepalen. \n" +"\n" +" De afsluitwaarde is 0 of 1, afhankelijk van EXPRESSIE." + +#: builtins.c:1676 +msgid "" +"Common shell variable names and usage.\n" +" \n" +" BASH_VERSION\tVersion information for this Bash.\n" +" CDPATH\tA colon-separated list of directories to search\n" +" \t\tfor directories given as arguments to `cd'.\n" +" GLOBIGNORE\tA colon-separated list of patterns describing filenames to\n" +" \t\tbe ignored by pathname expansion.\n" +" HISTFILE\tThe name of the file where your command history is stored.\n" +" HISTFILESIZE\tThe maximum number of lines this file can contain.\n" +" HISTSIZE\tThe maximum number of history lines that a running\n" +" \t\tshell can access.\n" +" HOME\tThe complete pathname to your login directory.\n" +" HOSTNAME\tThe name of the current host.\n" +" HOSTTYPE\tThe type of CPU this version of Bash is running under.\n" +" IGNOREEOF\tControls the action of the shell on receipt of an EOF\n" +" \t\tcharacter as the sole input. If set, then the value\n" +" \t\tof it is the number of EOF characters that can be seen\n" +" \t\tin a row on an empty line before the shell will exit\n" +" \t\t(default 10). When unset, EOF signifies the end of input.\n" +" MACHTYPE\tA string describing the current system Bash is running on.\n" +" MAILCHECK\tHow often, in seconds, Bash checks for new mail.\n" +" MAILPATH\tA colon-separated list of filenames which Bash checks\n" +" \t\tfor new mail.\n" +" OSTYPE\tThe version of Unix this version of Bash is running on.\n" +" PATH\tA colon-separated list of directories to search when\n" +" \t\tlooking for commands.\n" +" PROMPT_COMMAND\tA command to be executed before the printing of each\n" +" \t\tprimary prompt.\n" +" PS1\t\tThe primary prompt string.\n" +" PS2\t\tThe secondary prompt string.\n" +" PWD\t\tThe full pathname of the current directory.\n" +" SHELLOPTS\tA colon-separated list of enabled shell options.\n" +" TERM\tThe name of the current terminal type.\n" +" TIMEFORMAT\tThe output format for timing statistics displayed by the\n" +" \t\t`time' reserved word.\n" +" auto_resume\tNon-null means a command word appearing on a line by\n" +" \t\titself is first looked for in the list of currently\n" +" \t\tstopped jobs. If found there, that job is foregrounded.\n" +" \t\tA value of `exact' means that the command word must\n" +" \t\texactly match a command in the list of stopped jobs. A\n" +" \t\tvalue of `substring' means that the command word must\n" +" \t\tmatch a substring of the job. Any other value means that\n" +" \t\tthe command must be a prefix of a stopped job.\n" +" histchars\tCharacters controlling history expansion and quick\n" +" \t\tsubstitution. The first character is the history\n" +" \t\tsubstitution character, usually `!'. The second is\n" +" \t\tthe `quick substitution' character, usually `^'. The\n" +" \t\tthird is the `history comment' character, usually `#'.\n" +" HISTIGNORE\tA colon-separated list of patterns used to decide which\n" +" \t\tcommands should be saved on the history list.\n" +msgstr "" +"De betekenis van enkele algemene shell-variabelen.\n" +"\n" +" Hieronder volgt de beschrijving van een aantal variabelen. (In elke\n" +" lijst worden de elementen van elkaar gescheiden door dubbele punten.)\n" +"\n" +" BASH_VERSION versie-informatie van deze 'bash'\n" +" CDPATH lijst van mappen om te doorzoeken wanneer het argument " +"van\n" +" 'cd' niet in de huidige map voorkomt\n" +" GLOBIGNORE lijst van patronen die de bestandsnamen beschrijven die " +"bij\n" +" bestandsnaamjokertekenexpansie genegeerd moeten worden\n" +" HISTFILE naam van het bestand dat uw opdrachtengeschiedenis bevat\n" +" HISTFILESIZE maximum aantal regels dat geschiedenisbestand mag " +"bevatten\n" +" HISTIGNORE lijst van patronen die niet in geschiedenis moeten komen\n" +" HISTSIZE maximum aantal geschiedenisregels dat huidige shell " +"gebruikt\n" +" HOME het volledige pad naar uw thuismap\n" +" HOSTNAME de naam van de computer waarop deze 'bash' wordt " +"uitgevoerd\n" +" HOSTTYPE de soort CPU waarop deze 'bash' wordt uitgevoerd\n" +" IGNOREEOF het aantal te negeren Ctrl-D's alvorens de shell afsluit\n" +" MACHTYPE de soort machine waarop deze 'bash' wordt uitgevoerd\n" +" MAILCHECK hoe vaak (in seconden) 'bash' controleert op nieuwe mail\n" +" MAILPATH lijst van bestandsnamen die 'bash' controleert op nieuwe " +"mail\n" +" OSTYPE de soort Unix waarop deze 'bash' wordt uitgevoerd\n" +" PATH lijst van mappen waar opdrachten in gezocht moeten worden\n" +" PROMPT_COMMAND uit te voeren opdracht vóór het tonen van primaire " +"prompt\n" +" PS1 tekenreeks die primaire prompt beschrijft\n" +" PS2 tekenreeks die secundaire prompt beschrijft (standaard '> " +"')\n" +" PWD het volledige pad van de huidige map\n" +" SHELLOPTS lijst van ingeschakelde shell-opties\n" +" TERM soortnaam van de huidige terminal\n" +" TIMEFORMAT opmaakvoorschrift voor de uitvoer van 'time'\n" +" auto_resume niet-leeg betekent dat één opdrachtwoord op de " +"opdrachtregel\n" +" eerst opgezocht wordt in de lijst van gepauzeerde " +"taken,\n" +" en indien daar gevonden, dan wordt die taak in de " +"voorgrond\n" +" geplaatst; de waarde 'exact' betekent dat het gegeven " +"woord\n" +" exact moet overeenkomen met een opdracht in de lijst " +"van\n" +" gepauzeerde taken; de waarde 'substring' betekent dat " +"een\n" +" overeenkomst met een deeltekenreeks voldoende is; elke\n" +" andere waarde betekent dat het gegeven woord aan het " +"begin\n" +" moet staan van de opdracht van een gepauzeerde taak\n" +" histchars tekens die geschiedenisexpansie en -vervanging besturen;\n" +" het eerste teken is het geschiedenisvervangingsteken,\n" +" gewoonlijk '!'; het tweede teken is het snelle\n" +" vervangingsteken, gewoonlijk '^'; het derde teken is " +"het\n" +" geschiedeniscommentaarteken, gewoonlijk '#'\n" + +#: builtins.c:1733 +msgid "" +"Add directories to stack.\n" +" \n" +" Adds a directory to the top of the directory stack, or rotates\n" +" the stack, making the new top of the stack the current working\n" +" directory. With no arguments, exchanges the top two directories.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when adding\n" +" \tdirectories to the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the left of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" -N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the right of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" dir\tAdds DIR to the directory stack at the top, making it the\n" +" \tnew current working directory.\n" +" \n" +" The `dirs' builtin displays the directory stack.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid argument is supplied or the directory\n" +" change fails." +msgstr "" +"Mappen aan de mappenstapel toevoegen.\n" +"\n" +" Voegt een map toe aan de top van de mappenstapel, of roteert de stapel\n" +" en maakt de huidige werkmap gelijk aan de nieuwe top van de stapel.\n" +" Zonder argumenten worden de bovenste twee mappen verwisseld.\n" +"\n" +" Optie:\n" +" -n onderdrukt de verandering van map bij het toevoegen van mappen\n" +" aan de stapel, zodat enkel de stapel wordt gemanipuleerd\n" +"\n" +" Argumenten:\n" +" MAP Voegt deze map toe aan de top van de mappenstapel, het de nieuwe\n" +" werkmap makend.\n" +" +N Roteert de stapel zodat de N-de map (tellend vanaf links, van\n" +" de lijst getoond door 'dirs', beginned bij nul) bovenaan komt.\n" +" -N Roteert de stapel zodat de N-de map (tellend vanaf rechts, van\n" +" de lijst getoond door 'dirs', beginned bij nul) bovenaan komt.\n" +"\n" +" De ingebouwde opdracht 'dirs' toont de huidige mappenstapel.\n" +"\n" +" De afsluitwaarde is 0, tenzij een ongeldig argument gegeven werd of de\n" +" mapwijziging mislukte. De opdracht 'dirs' geeft de huidige " +"mappenstapel weer." + +#: builtins.c:1767 +msgid "" +"Remove directories from stack.\n" +" \n" +" Removes entries from the directory stack. With no arguments, removes\n" +" the top directory from the stack, and changes to the new top directory.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when removing\n" +" \tdirectories from the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRemoves the Nth entry counting from the left of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd +0'\n" +" \tremoves the first directory, `popd +1' the second.\n" +" \n" +" -N\tRemoves the Nth entry counting from the right of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd -0'\n" +" \tremoves the last directory, `popd -1' the next to last.\n" +" \n" +" The `dirs' builtin displays the directory stack.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid argument is supplied or the directory\n" +" change fails." +msgstr "" +"Mappen van de mappenstapel verwijderen.\n" +"\n" +" Verwijdert items van de mappenstapel. Zonder argumenten verwijdert\n" +" het de bovenste map van de stapel, en maakt de huidige werkmap\n" +" gelijk aan de nieuwe bovenste map.\n" +"\n" +" Optie:\n" +" -n onderdrukt de verandering van map bij het toevoegen van mappen\n" +" aan de stapel, zodat enkel de stapel wordt gemanipuleerd\n" +"\n" +" Argumenten:\n" +" +N Verwijdert het N-de item tellend vanaf links (van de lijst\n" +" getoond door 'dirs', beginnend met nul). Bijvoorbeeld:\n" +" 'popd +0' verwijdert de eerste map, 'popd +' de tweede.\n" +" -N Verwijdert het N-de item tellend vanaf rechts (van de lijst\n" +" getoond door 'dirs', beginnend met nul). Bijvoorbeeld:\n" +" 'popd -0' verwijdert de laatste map, 'popd -1' de voorlaatste.\n" +"\n" +" De ingebouwde opdracht 'dirs' toont de huidige mappenstapel.\n" +"\n" +" De afsluitwaarde is 0, tenzij een ongeldig argument gegeven werd of de\n" +" mapwijziging mislukte." + +#: builtins.c:1797 +msgid "" +"Display directory stack.\n" +" \n" +" Display the list of currently remembered directories. Directories\n" +" find their way onto the list with the `pushd' command; you can get\n" +" back up through the list with the `popd' command.\n" +" \n" +" Options:\n" +" -c\tclear the directory stack by deleting all of the elements\n" +" -l\tdo not print tilde-prefixed versions of directories relative\n" +" \tto your home directory\n" +" -p\tprint the directory stack with one entry per line\n" +" -v\tprint the directory stack with one entry per line prefixed\n" +" \twith its position in the stack\n" +" \n" +" Arguments:\n" +" +N\tDisplays the Nth entry counting from the left of the list shown " +"by\n" +" \tdirs when invoked without options, starting with zero.\n" +" \n" +" -N\tDisplays the Nth entry counting from the right of the list shown " +"by\n" +" \tdirs when invoked without options, starting with zero.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" +"De mappenstapel tonen.\n" +"\n" +" Toont de huidige lijst van onthouden mappen. Mappen worden aan deze\n" +" lijst toegevoegd met de opdracht 'pushd', en verwijderd met 'popd'.\n" +"\n" +" Opties:\n" +" -c de mappenstapel wissen door alle elementen te verwijderen\n" +" -l paden volledig tonen, niet afgekort ten opzichte van uw thuismap\n" +" -p de mappenstapel tonen met één item per regel\n" +" -v als '-p', maar met elk item voorafgegeaan wordt door zijn " +"positie\n" +" in de stapel\n" +"\n" +" Argumenten:\n" +" +N Het N-de item tonen, tellend vanaf links, van de lijst getoond\n" +" door 'dirs' wanneer opgeroepen zonder opties, beginnend bij nul.\n" +" -N Het N-de item tonen, tellend vanaf rechts, van de lijst getoond\n" +" door 'dirs' wanneer opgeroepen zonder opties, beginnend bij nul.\n" +"\n" +" De afsluitwaarde is 0, tenzij een ongeldige optie gegeven werd of er " +"een\n" +" fout optreedt." + +#: builtins.c:1826 +msgid "" +"Set and unset shell options.\n" +" \n" +" Change the setting of each shell option OPTNAME. Without any option\n" +" arguments, list all shell options with an indication of whether or not " +"each\n" +" is set.\n" +" \n" +" Options:\n" +" -o\trestrict OPTNAMEs to those defined for use with `set -o'\n" +" -p\tprint each shell option with an indication of its status\n" +" -q\tsuppress output\n" +" -s\tenable (set) each OPTNAME\n" +" -u\tdisable (unset) each OPTNAME\n" +" \n" +" Exit Status:\n" +" Returns success if OPTNAME is enabled; fails if an invalid option is\n" +" given or OPTNAME is disabled." +msgstr "" +"Shell-opties in- of uitschakelen.\n" +"\n" +" Stelt de waarde in elke gegeven OPTIENAAM -- van een shell-optie die\n" +" bepaald shell-gedrag beïnvloedt. Zonder opties wordt een lijst van " +"alle\n" +" instelbare opties getoond, met bij elke optie de vermelding of deze al\n" +" dan niet ingeschakeld is.\n" +"\n" +" Opties:\n" +" -o de verzameling mogelijke OPTIENAMEN naar diegene die " +"gedefinieerd\n" +" zijn voor gebruik met 'set -o'\n" +" -p uitvoer produceren die herbruikbaar is als invoer\n" +" -q uitvoer onderdrukken\n" +" -s elke gegeven OPTIENAAM inschakelen\n" +" -u elke gegeven OPTIENAAM uitschakelen\n" +"\n" +" Zonder opties is de afsluitwaarde 0 indien OPTIENAAM ingeschakeld is,\n" +" 1 indien uitgeschakeld. De afsluitwaarde is ook 1 als een ongeldige\n" +" optienaam gegeven werd, en de afsluitwaarde is 2 als een ongeldige " +"optie\n" +" gegeven werd." + +#: builtins.c:1847 +msgid "" +"Formats and prints ARGUMENTS under control of the FORMAT.\n" +" \n" +" Options:\n" +" -v var\tassign the output to shell variable VAR rather than\n" +" \t\tdisplay it on the standard output\n" +" \n" +" FORMAT is a character string which contains three types of objects: " +"plain\n" +" characters, which are simply copied to standard output; character " +"escape\n" +" sequences, which are converted and copied to the standard output; and\n" +" format specifications, each of which causes printing of the next " +"successive\n" +" argument.\n" +" \n" +" In addition to the standard format specifications described in printf" +"(1)\n" +" and printf(3), printf interprets:\n" +" \n" +" %b\texpand backslash escape sequences in the corresponding argument\n" +" %q\tquote the argument in a way that can be reused as shell input\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or a write or " +"assignment\n" +" error occurs." +msgstr "" +"Argumenten volgens een opmaakvoorschrift opmaken en printen.\n" +"\n" +" Print de gegeven ARGUMENTEN, opgemaakt volgens de gegeven OPMAAK.\n" +"\n" +" Optie:\n" +" -v VAR de uitvoer in de variabele VAR plaatsen in plaats van deze\n" +" naar standaarduitvoer te sturen\n" +"\n" +" De OPMAAK-tekenreeks bestaat uit drie soorten tekens: gewone tekens,\n" +" die simpelweg naar standaarduitvoer gekopieerd worden; stuurtekens,\n" +" die omgezet worden en dan naar standaarduitvoer gekopieerd worden;\n" +" en opmaaksymbolen, die elk steeds het volgende argument doen printen.\n" +"\n" +" Naast de standaard %-opmaaksymbolen van printf(1), \"diouxXfeEgGcs\",\n" +" betekent %b dat de backslash-stuurtekens in het betreffende argument\n" +" omgezet moeten worden, en betekent %q dat het argument op zo'n manier\n" +" aangehaald moet worden dat het als invoer voor de shell hergebruikt\n" +" kan worden.\n" +"\n" +" De afsluitwaarde is 0, tenzij een ongeldige optie gegeven werd of er " +"een\n" +" fout optreedt." + +#: builtins.c:1874 +msgid "" +"Specify how arguments are to be completed by Readline.\n" +" \n" +" For each NAME, specify how arguments are to be completed. If no " +"options\n" +" are supplied, existing completion specifications are printed in a way " +"that\n" +" allows them to be reused as input.\n" +" \n" +" Options:\n" +" -p\tprint existing completion specifications in a reusable format\n" +" -r\tremove a completion specification for each NAME, or, if no\n" +" \tNAMEs are supplied, all completion specifications\n" +" \n" +" When completion is attempted, the actions are applied in the order the\n" +" uppercase-letter options are listed above.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" +"Aangeven hoe argumenten door 'readline' gecompleteerd moeten worden.\n" +"\n" +" Geeft voor elke gegeven NAAM aan hoe de argumenten gecompleteerd dienen\n" +" te worden. Zonder opties worden de bestaande " +"completeringsvoorschriften\n" +" getoond (in een vorm die als invoer hergebruikt kan worden).\n" +"\n" +" Opties:\n" +" -p bestaande completeringsvoorschriften in herbruikbare vorm tonen\n" +" -r elk genoemd voorschrift verwijderen, of alle voorschriften als\n" +" geen NAAM gegeven is\n" +"\n" +" Als completering geprobeerd wordt, dan worden de acties toegepast in de\n" +" volgorde van de bovenstaande hoofdletteropties.\n" +"\n" +" De afsluitwaarde is 0, tenzij een ongeldige optie gegeven werd of er " +"een\n" +" fout optreedt." + +#: builtins.c:1897 +msgid "" +"Display possible completions depending on the options.\n" +" \n" +" Intended to be used from within a shell function generating possible\n" +" completions. If the optional WORD argument is supplied, matches " +"against\n" +" WORD are generated.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" +"De mogelijke completeringen tonen, afhankelijk van de gegeven opties.\n" +"\n" +" Bedoeld voor gebruik binnen een functie die mogelijke completeringen\n" +" genereert. Als het optionele argument WOORD aanwezig is, worden alleen\n" +" de daarbij passende completeringen gegenereerd.\n" +"\n" +" De afsluitwaarde is 0, tenzij een ongeldige optie gegeven werd of er " +"een\n" +" fout optreedt." + +#: builtins.c:1912 +msgid "" +"Modify or display completion options.\n" +" \n" +" Modify the completion options for each NAME, or, if no NAMEs are " +"supplied,\n" +" the completion currently begin executed. If no OPTIONs are givenm, " +"print\n" +" the completion options for each NAME or the current completion " +"specification.\n" +" \n" +" Options:\n" +" \t-o option\tSet completion option OPTION for each NAME\n" +" \n" +" Using `+o' instead of `-o' turns off the specified option.\n" +" \n" +" Arguments:\n" +" \n" +" Each NAME refers to a command for which a completion specification must\n" +" have previously been defined using the `complete' builtin. If no NAMEs\n" +" are supplied, compopt must be called by a function currently generating\n" +" completions, and the options for that currently-executing completion\n" +" generator are modified.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or NAME does not\n" +" have a completion specification defined." +msgstr "" +"Completeringsopties wijzigen of tonen.\n" +"\n" +" Wijzigt de completeringsopties van elke gegeven NAAM, of als geen NAAM\n" +" gegeven is, die van de huidige completering. Als geen OPTIE gegeven " +"is,\n" +" dan worden de completeringsopties van elke gegeven NAAM getoond, of die\n" +" van de huidige completering.\n" +"\n" +" Optie:\n" +" -o OPTIE deze completeringsoptie inschakelen voor elke gegeven NAAM\n" +"\n" +" Het gebruik van '+o' i.p.v. '-o' schakelt de betreffende optie _uit_.\n" +"\n" +" Elke NAAM dient te refereren aan een opdracht waarvoor reeds een\n" +" completeringsvoorschrift gedefinieerd is via de opdracht 'complete'.\n" +" Als geen NAAM gegeven is, dan dient 'compopt' aangeroepen te worden " +"door\n" +" een functie die momenteel completeringen genereert; dan worden de " +"opties\n" +" voor die draaiende completeringsgenerator gewijzigd.\n" +"\n" +" De afsluitwaarde is 0, tenzij een ongeldige optie gegeven werd of voor\n" +" NAAM is geen completeringsvoorschrift gedefinieerd." + +#: builtins.c:1940 +#, fuzzy +msgid "" +"Read lines from a file into an array variable.\n" +" \n" +" Read lines from the standard input into the array variable ARRAY, or " +"from\n" +" file descriptor FD if the -u option is supplied. The variable MAPFILE " +"is\n" +" the default ARRAY.\n" +" \n" +" Options:\n" +" -n count\tCopy at most COUNT lines. If COUNT is 0, all lines are " +"copied.\n" +" -O origin\tBegin assigning to ARRAY at index ORIGIN. The default " +"index is 0.\n" +" -s count \tDiscard the first COUNT lines read.\n" +" -t\t\tRemove a trailing newline from each line read.\n" +" -u fd\t\tRead lines from file descriptor FD instead of the standard " +"input.\n" +" -C callback\tEvaluate CALLBACK each time QUANTUM lines are read.\n" +" -c quantum\tSpecify the number of lines read between each call to " +"CALLBACK.\n" +" \n" +" Arguments:\n" +" ARRAY\t\tArray variable name to use for file data.\n" +" \n" +" If -C is supplied without -c, the default quantum is 5000.\n" +" \n" +" If not supplied with an explicit origin, mapfile will clear ARRAY " +"before\n" +" assigning to it.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or ARRAY is readonly." +msgstr "" +"Regels inlezen in een array-variabele.\n" +" \n" +" Leest regels van standaardinvoer in in the array-variabele ARRAY.\n" +" De variabele MAPFILE wordt gebruikt als geen ARRAY gegeven is. \n" +" Opties:\n" +" -n AANTAL maximaal dit aantal regels kopiëren (0 = alles)\n" +" -O BEGIN met toekennen beginnen bij deze index (standaard 0)\n" +" -s AANTAL dit aantal regels overslaan\n" +" -t nieuweregelteken aan eind van elke gelezen regel " +"verwijderen\n" +" -u BES.DES. uit deze bestandsdescriptor lezen i.p.v. uit " +"standaardinvoer\n" +" -C FUNCTIE deze functie evalueren na elke HOEVEELHEID regels\n" +" -c HOEVEELHEID het aantal te lezen regels voor elke aanroep van " +"FUNCTIE\n" +"n Argument:\n" +" ARRAY naam van array-variabele waarin regels ingelezen moeten " +"worden\n" +" \n" +" Als '-C' gegeven is zonder '-c', is de standaardHOEVEELHEID 5000.\n" +" \n" +" Als geen expliciet BEGIN gegeven is, wordt het array gewist alvorens\n" +" met toekennen te beginnen.\n" +" \n" +" De afsluitwaarde is 0, tenzij ARRAY alleen-lezen is of een ongeldige\n" +" optie gegeven werd." + +#~ msgid "%s: invalid number" +#~ msgstr "%s: ongeldig getal" + +#~ msgid "allocated" +#~ msgstr "gereserveerd" + +#~ msgid "freed" +#~ msgstr "vrijgegeven" + +#~ msgid "requesting resize" +#~ msgstr "verzoek tot grootteverandering" + +#~ msgid "just resized" +#~ msgstr "juist van grootte veranderd" + +#~ msgid "bug: unknown operation" +#~ msgstr "**interne fout**: onbekende operatie" + +#~ msgid "" +#~ "Output the ARGs. If -n is specified, the trailing newline is suppressed." +#~ msgstr "" +#~ "Schrijft de gegeven argumenten naar standaarduitvoer.\n" +#~ " Optie -n onderdrukt de afsluitende nieuwe regel." + +#~ msgid "Logout of a login shell." +#~ msgstr "Beëindigt een login-shell." diff --git a/po/pl.gmo b/po/pl.gmo new file mode 100644 index 0000000000000000000000000000000000000000..1c6c90fe9fba4bee1710237130bb88b05e714115 GIT binary patch literal 26025 zc-p0V3!EKib>BEKwzb71I0Qc>k0q^EEA3sa-ty|LT}enA4kj7yX5&|hrjnjst&?E$k8a6J}Q3&MK_J6+r zH*@DcR=aZchd6h>Ip6EN&za*tz3bL@8~E$F#V{TKEZ<=mMf`sL`wjJX{`H2j4)6lt zU4Tyk?gV@qa5dn61zZ96UBK4?-hH=WJP0@dh#_MPa2a3$@U?&yJ^p45-=pC(cXR#U z0bCCFM}Xf4_-()+0DRRwSR3%(dx*bL!#4n~1)Km}3Ha7~c#eRa1ij(dwGwy+{<-81c)id^MLmQ{^7km*UR_vJl}U8_gi%zpAP{F$sW6p zc%}Qe{=Wj;0QmFz`Gxy<&#wdKgl>9#&HX&@uKT&p1wd?N%-m0UK6O9u|3SchITs+N z8rSaUdbd2l_pf_^=NWi_=hz2m0zLuwkkI`B;(tJoKl=dh`-czko-aMX{q9&!ytT{8 zhn@QQ*mB}Ov7GzG%X!YXFXwrF5%5mHPcP^GUs%rdzPX(Af6WSxZ(YHApVrU?e2tuM z1@YbixEb){D@d1btl;@>dyxEH3HUJJcEDADZ+wvFdN<%d1N`L&dEQR~z8diJ5Aq&= z{2=%F3;q0^2PxmTn>^PhlYBo3I1W8<0T1B$*Fe03fdB9i?{@&qKQDMIIqxGYxz1-- zlKy|SlJvQ473F@#D$3UoU@zeKD(X+XiumtcMLPb9#{1kV^6P)C;{BJc=Ka^K=6w#V z=6%Nj`v9j_lOFE?yhG-%=Dshk=00Cr&3*3ZrF=cm%X{Q{iNCX#>x}ktopLYf@Znza zVXl|wx(>J-@UAuF>&Z2oS6xHC{mdHDVNS#OHI&yM>?7RU$NRe)zO#>V_;J9EfM3+` z4k-0jz~QyzS9LAv@aDCo%fHd^Q)`L;m9>HAa)kSl$)R3$aP-;>=C`)NIAJ3NJju4-o*1f zxryt3auezC)lJ<0o11v<*KX$eD>hT^4{j!Xp4?3Rd*5dA|Ks}kPd1Y-f4!Oezjh1P z-?N2sH@$`Y_?KIFzhB-$I?ZjNK74r#<>;2J^bbRT+r{1jZWDjGmG}Jpt-Oy6ik@xS z#{Dj7__l52|0lLlZm(}6Kkwd7e&@Dx-l6Th?;E#MpMQEg_kC8wuWqNE{Qe!hhq;4% zJGz7O-nN5s`^*lmcWnpl0sTrb>7IiKB0dj5}{ z?goxie+^mx^7;&0kby&l<3yz{%c zeswp``}A(g*RSv9{l2B~@7lxr_w6CwAK61bJh_MR@Z28K^~F8Zzxh2p*Xq4I_t;)O zPw(Y^@7l|CKCzeczp_gZrqDM*xQ<4%kPz`p`bg?WgyVpWoTXeec{)xmmNH za&~qi_J1(&a_{{5Kl!bq9E#{Rc>w=m6jU>jSiZzjT1|`Kbe>%l|w; zdfh(4_v=S^-n}E7H#tIideaE;-Z#Q^KRv?perbesy*|Qw-7!l3^^WrVhxPN+DCOj> zqg?;zMoFLN_4_{><@$d+%5|0>Bpg0Sxqb8??MLw-<@D);ocD!;w3mN%kmp%(h2gnsDX9br82t4DaBWk-45+)-_RkCNZDqonuSkCKlcI7{Pf&l}bAopK3nzGv+s0{s z4~D^;`sJcq_ca9_j=DMp6_=~ah<AJ6kzNzP;xh?bAokY5#hTdiwG?-gnufTz?zj9y!mWIxc^d@4xXV z<@fdH30I$|-fucjJ8|kf*N-*)iSwkxGl1trZqJh+%P;Vp8!zzr>;<0By`b&;1@h^` z7pP}1ULYO*`~v;?U5~+b0Y3g1$KUrD&+)=z+KxY_?f6B?U*AR2KYx+;`MHZc*9#XZ zFMn~7>#cm8@?byC@ee&tIsdcAxzAq$UJ!qFiSl{*633st#Qna0iRb^jON=L0KEZo# zc!KMmeu8xQ=_kmaUwwl1>a+U!J5NwgUNb>CT(9A!3Eu0S6XfT|CTN$wJi+z8IYIl@ zGs(DN+a%?uGD-jZ3zLk)u1)gX>n-xxwRrxISd_0XX?SOzdb%&qb>EVwoO~?L{r*#) z@^CFr`Tv0e&ox{ieG3{sT_FEHU*JApE-)T=wN3duX;V)dw)T%U<@g&m`M=$P4G_Ko z-ePqAeN19t$-8Ba*d>GOyeotA8wPnVf4^@~u2qb0aP6b|-C@xq@%7?g#1`S-4~wpf zJrUc51Dui?NM`M)MfULTzZuluGh$nBq0aw|#C7=nR`CZKKN8!Z>o0Es{8K&diLKVZ zFG{>Ev4ej8V}r6Sf8T3Rj*`FcX!w@~`SnBMv+%Djz6$^TgF!ugcV>>%XM}fuZ&0Rw zL64s>$g67-e@g6N=ole0_pc4|`AgzU@$ag{6#CsSiQMboZxS67xs@7;ock8~JCUJx z8q|$H5Pi}3KP5RH{smH-5P8<)e~y3uN9sM2(~1Al4q3}-kdF}uWvTA03T(0_>xze@bF_&`1PGZOC@)ED_HYxr#q#h$%GYykfKq(Qqd zF22N|&VSONt$$JDpVhFW;g!repAjEv(3XGBpiaDB?74pLi>^o>fq(x|k9{jM|4E5S z4f^!n%=oh!4r+KnL$Oifr=QB;{w~uC;=I*0|MR+$4WuHzXF6ykcIDeUIkfocJ1pwoUxz zpGiz)FlH3H|5>T2NE{_Oywn5q{G5g#)lh7yrGLZp7(Zgr9*a$f$yc^2`}Z};VGP=8 z`FpR}cCl}g%i!O?l~_gmt)c6nlA}ugC%#7F0P(rvUkuvU+i;&>(QEyfh94CFmu#3Z ze)nj2JH}p;m|fy1gZ}C##HNd1G3Y1d?~P(#^>3J8&wt#J$YkR}~WJoTT_hV1tT3%gN z3J29&;fp_I29{TJ453B$v0*cB*|<*R1l7R7|EqDUl6Q--ABX0QpEtv*Q)n9w9NP_? zLd4;q7*`xG3e8F!Mnaxy;1`@w@mv--G8!7mR-O~#t|hZ-Mbm0!cgiJuQPD-*&EK z(F%cMMUG~AI%+#*r`u>41%6#`dD#kFD_?fPR&i^hJ6D`S968CQM9#XrZr`NnM7UeU zjoM#SeA}I>cYg2Y*~nd0P=doCHYjE;XZ9Ajj;L7CQL-CAHRNrJ7$lo_X4;J;ZTWA|o)@s2SP%K=1;e(085EIk|Lu_HnZ8aozqZi~T ziwxC8netYlR18w)3IbRL`3@>jrG$h7Q5dZ_u8yQ`o^wlbNTi>cx zt`oDB@EDuFF$VScR`W-Xh1@J73^#b66<8r$MLYtw6Rrp95Q(0rn%zQ*bhPDOffz_P zmGtIg#-@<@;-L^eEQCgm)y>HbeIgL4HNiP)UzFzvg#8&c+hq=^m+=jpNbJ##rsv*Z zJC`@CjSAHtj_qpy22u14RX>PGgt#id;f!l;G%X^ny&85lHbk(ui6gX3ihe5FRGVEQ ziS0&ikFh_GRk6n4;Gl8%#90UcZbEj2!#&0u#*ZINnQ#Qce_0HkTJa%cd~EdOqoe8T z(-~Ejxo3_XKX_>T)bagih7nX0`Z9*a4=PsFG>gWWX~(R<#tDggRoH=>IG$o|kGu_V zFZ_dDtX4q-sD{KGco8~U-Zf`Jg=afcuIK0=!xPCKG|e;hs$)(9x!NbrICLC3OYz@> zJ^N0Hf=<1hv50cCz7Fe^ykCYTMik~O5i2o3hQ#)n zfC=%St;dpyh~_I6RY1QClgZ0jwdsGgXSKUvLc22RPW7)Hml+a7^f_KS+w z*f@C^i_gtXDKD!Cova;ZF_hba(-hfuq>PcXyr5=iu1%!8aGHsEDuar~6upf`GX)sV z1P`Lc%_uu-z80)L6#TfXb6JsM3H%03EN$VmEFe5&6sibEqp3xME>&6(bCQXwM6V>k zOyy0opQ_ngwhgLk-kE@{AC{43rh*Z}b}zds_RZH3{OX)Sj}I8eXJ&Sgh@L&0$*%W1bj zEww6nsY0jDj0Z<6DJ@cF$O7%GK$(*u_B^={3296Pj*<){=$fiYYAJ7QGY@N6Y9>mZ z=&_er%mt7o+@o@dq!*^)O`$vuN5Zh{A0RPL>#(sF{f^R(2)x z(6ZNLuie+mcnzH>ZX{~`m&Kd7=lb)DIH2Yo{+VcDEMUV zN}nNg$hfFsIw$9f8}%7}A!>@F3a})T10|;7GGnYs5UFp#oU9@IaPUK}5<|nveOT15 z8dbkKp+sgFSBDrv3e+~uXjlj6643gAxE;s4>;^t#T1uNN0{jUrj*BhTF20@fL6#y! zEgO_Kk;Q#A!`PMpSxGZ6{Gzzj3CKC5lBL=cXUE3Ok@4dvPoF$EVu+n(`iQqI9%G0i zy+jk6;xB4tQ_Pz%v`w#s<*{u#)yOKczCo7=7-&UktP@NmAEv6=$|Z}+R+z@z_THY3 zDGF#*Nc5Bx-4s<09XT;Nv43oAd?Y)I&SZgoBtb#o@0@Ixmvkyfxa6$=| zDppvcs5Q&n+SD0g-HWU%x|)%FU`erS+PX9}5xLZjs`QOPQ~T_N7WNRjbeW-s7hf46 z=2{_qf5-67zRdKtml+4%5~blyGwZQ4GgA_uDNM@CTu=6q!WK8ZcIx#Pzs3TndidscTgo;!zy8U{qJ5EsMT8GqR9IXQkNHzGm{?A)koUf47=^l)xyV{T}hxpCw0)@`|= ztwTdV%$;&r9%$li&u!e8+dO0r?HJzj@cN;Rz#Bs{l{*6~9+oZD0JGn-gN8F>9v?K1 z1&w;xi2NzP<`x>}F3T$g^?en0YOq=yEZWv!wY&!lc*WQ%I=M5BRT(x<`Uo$k&0UdR zQudGVCRZ)*lfWY!WEm5BQFI28qU`B8e&qPUCIvPQ4)u&kSnA%+NCO=Q^-0Y~njSMY76Dm(IS)MMOU#f3^x%!UuAQ)oa_@Y^Z5 zHH7u@vBtD5&oOJx%yR`7iGprxs@0{jNpKw9+f$08GP~A^6 zh%=M^C-oaSN2xG#wK-68YTkSlG`xDHNf7y2n}ug>;)OT^#!KZGx2@H?V6Zu=V%jP{ z>@mO@XRc)NnJ5jbYE|6%$O28$ZYd#?daJ1e{DVuPMorm0wnKo-Zd`!cUqBfkM|2A?DVNS?uQ9$aZS3lkAnszMnc( z(6tsPX8>!8zR^|YAaSC@ilk0i)rex1j<|*Tf-``NVctdV4>m|6Rw<0zro>XNXw#u%@H(%a;&s{G zw+oGWggg307$4Y35ZUU2r%vPE04=tm@8I3M>1!hBQ$_WP7%at;ZUeYf!Uah*oExIgXc`?#sVWO%M7iQc=5r$I*rO5;Pxj}PVC_>q3z%Kf!m7u)lXRq2y zaRCxOw0=YPk12w9l*+bsL%Ms&!!0T;C>NlQUr-SS0B) zNk(j};42kYwmRFJlhM>#J+Qt+cddOaH#7nzYbha27}tRr2Vy&;P3OJi4=uviP0 ztIa%Zw$zBtnRpIjXcgiaM=XqPa7qvw;GU?f*zo||;oE#*mDq?DYh8m)MbuF(Sxmy&8{1La}U{Z)tJGt%HqPy)-M{6&y}(nZAttOw7_o zVm)2i(5tBlZCicTvc-edlV-L?MkX?*~r?tkKn(Cls-g3*Vss4ZDU{%~~ktQljHLfD#^4OOg)+NJ(b8wT6rjB&Mu7Ur()aIGdztiJw8D@t28PJ*J5L=}k-6Rs-n=)vG0 z(Vi44h#(gN>7|jLv|%|-ZLPA7%esuzf8k`T}9Np<9rp4F7?nAYJ#_oAeT-DKw7~Alf+*!uOc}r?q-sao-QePjWv|j?XJ+-D*3}hr2bDK4p*O3iDgrg(^fo8JdQbd1s$1(j;x;GfG5hI9i^%< z`OsW5mZW|QB1J(xAEzC5Dv9WdoK^|DPYC-ulM0x7#5Rf)O^l96q+(U;N%mORc*?%X z@#4%SS~p5OtrwUlkBlN(cAEyXYr@!hf;t=c>Qinh(@&^>ULtYhFHccNrK+Jqc06tkjz2;601|wwqC+&l}EdozP`+f znr^-tT+cUCMv*!ujkzR^GukMk^2apul;k|XRjipzJ|Tl*BRsdHeupJrezYdU2@|bK zy=3XIP1UPwi!}OWayudE^VeD>M0@PyETZzPAyflIfH->7UF%yXvct&1(Pfvk9T0n! zU5E@LltxNxvBFya4K3AFU|nxY1*0`H7q*vS7CaRnWU>KE=bdtX7Q`&&F>p`$7Smh> zjL+i|hzQC)QJ|wH8a;>m>eOBGV zm-J2d%XQWgbnzrsyH(V_I+#jiAj_v$IG-q8XY-CXx#dEWI`&D61>LBc31gQ&qanVl z>jXu5XnB_MGQETJErD>-u}C>fB&yNYwV2s1oAEJ}g~52vOQXGOrYm(G7_B+ay_T8T zg4gxPQ}xxI;im6Idx{C3k>md z!FBrvy^dWpN%O5uc`S3Ik;yBaj!H-x8_JjEj5Thr0A@^7;s?Y&btxO%l&5M7{0vL#)H-_6B_5?H3X%CHU@I(?Pw zD#>4+rq8yK3C&lL+N+Wj+a}{K(j-dSPDydRl6hM;e2-a?ltEmAFnp-P=ca`nBlDHQ zX(_ZwN!s-*u^Bj}I0*Hw&57-`oVF5nXYO5-hQY`xxJ;&W1&CBN6~$CfYF$Xc5(tiL z&5DCmKHXMzxwP9-e=1;_nlD2r2h37*J*cZX3acfi6uCT=jW0H-Sz>9rs^+}Fhx%H9 ziZ`!DB^3=I26?$4zor7K$m#&{uHgC{_?PSk3PnEaZ8AUGBh*T+q#IMdTqvho*TNv` zt+QDbF55w4-j>MUNWMfcrDZAJDJ8kQRFD{`WQvF|0BH(i-~e?A?UU-EA?=$g;AlQ5tT!y7z?+8X5vG3X)4uSs2B7m zqT0@m&~$yP^)rvfp3qiNOTPcLQbd$NK1!Bd6$pynNO~#5*K6sV^aG(vk+WaELS_3Q zS3QPYMcGzmlQK`2_+&!Lq+7V*gq{_OHbE|hcaL8<4*2MSoFpI%+~(LOMvhu)bSd zUC?p$g5Ln>1oLq;+brB=|Hx(v?r}iu(`BbSyet9 z%_OxAx>u_mN6k~4r=J}-=6d{^n3TFYd^`|T@r2Qge9%yBr?f!2vZR6vs~J=b%jB7) z3zf=ZUWc5>M+)%W3?2FJ33XgwosV$N)=pH`WY~$CZ9?^|;_USrEK+;xXp1Ej+L6vXFQdPDzo?R(#o2C8Uy*1 zpP^jC`Y2za8Z8#-YF+FE%J^Yswg%s&W3@4>g4D==?%L8?T>ZTI@Rax+p1fHe$N$on zSA;=z75bztueL;P4!l9vmRFx9uuEpGKP>6*vC8cutV^>C)&83OjyaGiaC;Kht4bDB zK=>cV>Z_yG*$dnLNluw@)*z6ztEjZ)VWE=G5^&hukVL*J6iAd5A#rvA(T&U+t&7t@ zwol=3%LbKnhqx0z(;3@3oH^j+&IMm)zp-Y5Ajx@JXDm>0%*?5`&Bz9BX(6m*(abSn z8R2xb;!+x#`&d**qx5z*32(NJWRAE&7oCHEGYPg_=sc7ovri4qJ(n8q*v!hBdcypKQ zSVfCN^Lt1p22AWY#a`KBop{Xa{#=!x%72pC45cE!qS`mon6BhzI&=?6v;i0D2evM& z>7rg|mu|KRfTlPpMHq1nX>{^AIyb^rIVQ#u@Zqkys?)q^+nhs7nxp8!I$YP*-R_lK z)nRJQh;_Kx3Fg|2qxa=Sri*v!yS<`q+PicY-|hx8eChROiRY&Gzln|iNjv_3H 2006,2007. +# +msgid "" +msgstr "" +"Project-Id-Version: bash 3.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2009-01-06 11:56-0500\n" +"PO-Revision-Date: 2007-11-30 08:49+0100\n" +"Last-Translator: Andrzej M. Krzysztofowicz \n" +"Language-Team: Polish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-2\n" +"Content-Transfer-Encoding: 8bit\n" + +#: arrayfunc.c:50 +msgid "bad array subscript" +msgstr "nieprawid³owy indeks tablicy" + +#: arrayfunc.c:313 builtins/declare.def:474 +#, c-format +msgid "%s: cannot convert indexed to associative array" +msgstr "" + +#: arrayfunc.c:479 +#, fuzzy, c-format +msgid "%s: invalid associative array key" +msgstr "%s: nieprawid³owa nazwa akcji" + +#: arrayfunc.c:481 +#, c-format +msgid "%s: cannot assign to non-numeric index" +msgstr "%s: nie mo¿na przypisaæ do nienumerycznego indeksu" + +#: arrayfunc.c:517 +#, c-format +msgid "%s: %s: must use subscript when assigning associative array" +msgstr "" + +#: bashhist.c:380 +#, c-format +msgid "%s: cannot create: %s" +msgstr "%s: nie mo¿na utworzyæ: %s" + +# ??? +#: bashline.c:3413 +msgid "bash_execute_unix_command: cannot find keymap for command" +msgstr "" +"bash_execute_unix_command: nie mo¿na znale¼æ mapy klawiszy dla polecenia" + +#: bashline.c:3491 +#, c-format +msgid "%s: first non-whitespace character is not `\"'" +msgstr "%s: pierwszym drukowalnym znakiem nie jest `\"'" + +#: bashline.c:3520 +#, c-format +msgid "no closing `%c' in %s" +msgstr "brak zamykaj±cego `%c' w %s" + +#: bashline.c:3554 +#, c-format +msgid "%s: missing colon separator" +msgstr "%s: brak separuj±cego dwukropka" + +#: builtins/bind.def:120 builtins/bind.def:123 +msgid "line editing not enabled" +msgstr "" + +# ??? +#: builtins/bind.def:206 +#, c-format +msgid "`%s': invalid keymap name" +msgstr "`%s': nieprawid³owa nazwa mapy klawiszy" + +#: builtins/bind.def:245 +#, c-format +msgid "%s: cannot read: %s" +msgstr "%s: nie mo¿na odczytaæ: %s" + +# ??? +#: builtins/bind.def:260 +#, c-format +msgid "`%s': cannot unbind" +msgstr "`%s': nie mo¿na usun±æ dowi±zania" + +#: builtins/bind.def:295 builtins/bind.def:325 +#, c-format +msgid "`%s': unknown function name" +msgstr "`%s': nie znana nazwa funkcji" + +#: builtins/bind.def:303 +#, c-format +msgid "%s is not bound to any keys.\n" +msgstr "%s nie jest przypisany do ¿adnego klawisza.\n" + +#: builtins/bind.def:307 +#, c-format +msgid "%s can be invoked via " +msgstr "%s mo¿e byæ wywo³any przez " + +#: builtins/break.def:77 builtins/break.def:117 +msgid "loop count" +msgstr "" + +#: builtins/break.def:137 +msgid "only meaningful in a `for', `while', or `until' loop" +msgstr "ma sens tylko w pêtli `for', `while' lub `until'" + +# ??? +#: builtins/caller.def:133 +#, fuzzy +msgid "" +"Returns the context of the current subroutine call.\n" +" \n" +" Without EXPR, returns " +msgstr "Wraca do kontekstu wywo³ania bie¿±cego podprogramu" + +#: builtins/cd.def:215 +msgid "HOME not set" +msgstr "Nie ustawiono HOME" + +#: builtins/cd.def:227 +msgid "OLDPWD not set" +msgstr "Nie ustawiono OLDPWD" + +#: builtins/common.c:101 +#, c-format +msgid "line %d: " +msgstr "" + +#: builtins/common.c:139 error.c:260 +#, fuzzy, c-format +msgid "warning: " +msgstr "%s: uwaga: " + +#: builtins/common.c:153 +#, fuzzy, c-format +msgid "%s: usage: " +msgstr "%s: uwaga: " + +#: builtins/common.c:166 test.c:822 +msgid "too many arguments" +msgstr "za du¿o argumentów" + +#: builtins/common.c:191 shell.c:493 shell.c:774 +#, c-format +msgid "%s: option requires an argument" +msgstr "%s: opcja wymaga argumentu" + +#: builtins/common.c:198 +#, c-format +msgid "%s: numeric argument required" +msgstr "%s: wymagany argument numeryczny" + +#: builtins/common.c:205 +#, c-format +msgid "%s: not found" +msgstr "%s: nie znaleziono" + +#: builtins/common.c:214 shell.c:787 +#, c-format +msgid "%s: invalid option" +msgstr "%s: nieprawid³owa opcja" + +#: builtins/common.c:221 +#, c-format +msgid "%s: invalid option name" +msgstr "%s: nieprawid³owa nazwa opcji" + +#: builtins/common.c:228 general.c:231 general.c:236 +#, c-format +msgid "`%s': not a valid identifier" +msgstr "`%s': nieprawid³owy identyfikator" + +#: builtins/common.c:238 +#, fuzzy +msgid "invalid octal number" +msgstr "nieprawid³owy numer sygna³u" + +#: builtins/common.c:240 +#, fuzzy +msgid "invalid hex number" +msgstr "nieprawid³owa liczba" + +#: builtins/common.c:242 expr.c:1255 +msgid "invalid number" +msgstr "nieprawid³owa liczba" + +#: builtins/common.c:250 +#, c-format +msgid "%s: invalid signal specification" +msgstr "%s: nieprawid³owo okre¶lony sygna³" + +#: builtins/common.c:257 +#, c-format +msgid "`%s': not a pid or valid job spec" +msgstr "`%s': nie jest to nr PID ani prawid³owe okre¶lenie zadania" + +#: builtins/common.c:264 error.c:453 +#, c-format +msgid "%s: readonly variable" +msgstr "%s: zmienna tylko do odczytu" + +#: builtins/common.c:272 +#, c-format +msgid "%s: %s out of range" +msgstr "%s: %s poza zakresem" + +#: builtins/common.c:272 builtins/common.c:274 +msgid "argument" +msgstr "argument" + +#: builtins/common.c:274 +#, c-format +msgid "%s out of range" +msgstr "%s poza zakresem" + +#: builtins/common.c:282 +#, c-format +msgid "%s: no such job" +msgstr "%s: brak takiego zadania" + +#: builtins/common.c:290 +#, c-format +msgid "%s: no job control" +msgstr "%s: brak kontroli zadañ" + +#: builtins/common.c:292 +msgid "no job control" +msgstr "brak kontroli zadañ" + +#: builtins/common.c:302 +#, c-format +msgid "%s: restricted" +msgstr "%s: ograniczony" + +#: builtins/common.c:304 +msgid "restricted" +msgstr "ograniczony" + +#: builtins/common.c:312 +#, c-format +msgid "%s: not a shell builtin" +msgstr "%s: nie jest to polecenie pow³oki" + +#: builtins/common.c:321 +#, c-format +msgid "write error: %s" +msgstr "b³±d zapisu: %s" + +#: builtins/common.c:553 +#, c-format +msgid "%s: error retrieving current directory: %s: %s\n" +msgstr "%s: b³±d przy okre¶laniu katalogu bie¿±cego: %s: %s\n" + +#: builtins/common.c:619 builtins/common.c:621 +#, c-format +msgid "%s: ambiguous job spec" +msgstr "%s: niejednoznaczne okre¶lenie zadania" + +#: builtins/complete.def:270 +#, c-format +msgid "%s: invalid action name" +msgstr "%s: nieprawid³owa nazwa akcji" + +#: builtins/complete.def:430 builtins/complete.def:615 +#: builtins/complete.def:813 +#, c-format +msgid "%s: no completion specification" +msgstr "%s: brak definicji dla uzupe³nienia" + +#: builtins/complete.def:667 +msgid "warning: -F option may not work as you expect" +msgstr "uwaga: opcja -F mo¿e dzia³aæ inaczej ni¿ oczekiwano" + +#: builtins/complete.def:669 +msgid "warning: -C option may not work as you expect" +msgstr "uwaga: opcja -C mo¿e dzia³aæ inaczej ni¿ oczekiwano" + +#: builtins/complete.def:786 +msgid "not currently executing completion function" +msgstr "" + +#: builtins/declare.def:122 +msgid "can only be used in a function" +msgstr "mo¿na u¿ywaæ tylko w funkcji" + +#: builtins/declare.def:353 +msgid "cannot use `-f' to make functions" +msgstr "nie mo¿na u¿ywaæ `-f' do tworzenia funkcji" + +#: builtins/declare.def:365 execute_cmd.c:4731 +#, c-format +msgid "%s: readonly function" +msgstr "%s: funkcja tylko do odczytu" + +#: builtins/declare.def:461 +#, c-format +msgid "%s: cannot destroy array variables in this way" +msgstr "%s: nie mo¿na w ten sposób unicestwiæ zmiennej tablicowej" + +#: builtins/declare.def:468 +#, c-format +msgid "%s: cannot convert associative to indexed array" +msgstr "" + +#: builtins/enable.def:137 builtins/enable.def:145 +msgid "dynamic loading not available" +msgstr "³adowanie dynamiczne nie jest dostêpne" + +#: builtins/enable.def:312 +#, c-format +msgid "cannot open shared object %s: %s" +msgstr "nie mo¿na otworzyæ obiektu wspó³dzielonego %s: %s" + +#: builtins/enable.def:335 +#, c-format +msgid "cannot find %s in shared object %s: %s" +msgstr "nie mo¿na znale¼æ %s w obiekcie wspó³dzielonym %s: %s" + +#: builtins/enable.def:459 +#, c-format +msgid "%s: not dynamically loaded" +msgstr "%s: nie jest ³adowany dynamicznie" + +#: builtins/enable.def:474 +#, c-format +msgid "%s: cannot delete: %s" +msgstr "%s: nie mo¿na usun±æ: %s" + +#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4588 +#: shell.c:1439 +#, c-format +msgid "%s: is a directory" +msgstr "%s: jest katalogiem" + +#: builtins/evalfile.c:139 +#, c-format +msgid "%s: not a regular file" +msgstr "%s: nie jest zwyk³ym plikiem" + +#: builtins/evalfile.c:147 +#, c-format +msgid "%s: file is too large" +msgstr "%s: plik jest za du¿y" + +#: builtins/evalfile.c:185 execute_cmd.c:4658 shell.c:1449 +#, c-format +msgid "%s: cannot execute binary file" +msgstr "%s: nie mo¿na uruchomiæ pliku binarnego" + +#: builtins/exec.def:212 +#, c-format +msgid "%s: cannot execute: %s" +msgstr "%s: nie mo¿na uruchomiæ: %s" + +#: builtins/exit.def:65 +#, c-format +msgid "logout\n" +msgstr "" + +#: builtins/exit.def:88 +msgid "not login shell: use `exit'" +msgstr "to nie jest pow³oka logowania: u¿yj `exit'" + +#: builtins/exit.def:120 +#, c-format +msgid "There are stopped jobs.\n" +msgstr "Istniej± zatrzymane zadania.\n" + +#: builtins/exit.def:122 +#, fuzzy, c-format +msgid "There are running jobs.\n" +msgstr "Istniej± zatrzymane zadania.\n" + +#: builtins/fc.def:261 +msgid "no command found" +msgstr "nie znaleziono polecenia" + +#: builtins/fc.def:341 +msgid "history specification" +msgstr "specyfikacja historii" + +#: builtins/fc.def:362 +#, c-format +msgid "%s: cannot open temp file: %s" +msgstr "%s: nie uda³o siê otworzyæ pliku tymczasowego: %s" + +#: builtins/fg_bg.def:149 builtins/jobs.def:282 +msgid "current" +msgstr "" + +#: builtins/fg_bg.def:158 +#, c-format +msgid "job %d started without job control" +msgstr "zadanie %d uruchomiono bez kontroli zadañ" + +#: builtins/getopt.c:110 +#, c-format +msgid "%s: illegal option -- %c\n" +msgstr "%s: niedozwolona opcja -- %c\n" + +#: builtins/getopt.c:111 +#, c-format +msgid "%s: option requires an argument -- %c\n" +msgstr "%s: opcja wymaga argumentu -- %c\n" + +#: builtins/hash.def:92 +msgid "hashing disabled" +msgstr "zapamiêtywanie ¶cie¿ek poleceñ w tablicy asocjacyjnej wy³±czone" + +#: builtins/hash.def:138 +#, c-format +msgid "%s: hash table empty\n" +msgstr "%s: tablica asocjacyjna pusta\n" + +#: builtins/hash.def:244 +#, fuzzy, c-format +msgid "hits\tcommand\n" +msgstr "ostatnie polecenie: %s\n" + +#: builtins/help.def:130 +#, fuzzy, c-format +msgid "Shell commands matching keyword `" +msgid_plural "Shell commands matching keywords `" +msgstr[0] "Polecenia pow³oki pasuj±ce do s³owa kluczowego `" +msgstr[1] "Polecenia pow³oki pasuj±ce do s³owa kluczowego `" + +#: builtins/help.def:168 +#, c-format +msgid "" +"no help topics match `%s'. Try `help help' or `man -k %s' or `info %s'." +msgstr "" +"¿aden temat pomocy nie pasuje do `%s'. Spróbuj `help help', `man -k %s'\n" +"lub `info %s'." + +#: builtins/help.def:185 +#, c-format +msgid "%s: cannot open: %s" +msgstr "%s: nie mo¿na otworzyæ: %s" + +#: builtins/help.def:337 +#, c-format +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 "" +"Te polecenia pow³oki s± poleceniami wewnêtrznymi. Napisz `help', aby\n" +"zobaczyæ listê.\n" +"Napisz `help nazwa', aby otrzymaæ wiêcej informacji o funkcji `nazwa'.\n" +"U¿yj `info bash', aby otrzymaæ wiêcej informacji ogólnych o pow³oce.\n" +"U¿yj `man -k' lub `info', aby otrzymaæ wiêcej informacji o poleceniach z " +"tej\n" +"listy.\n" +"\n" +"Gwiazdka (*) po nazwie oznacza, ¿e dane polecenie jest wy³±czone.\n" +"\n" + +#: builtins/history.def:154 +msgid "cannot use more than one of -anrw" +msgstr "nie mo¿na u¿ywaæ wiêcej ni¿ jednego spo¶ród -anrw" + +#: builtins/history.def:186 +msgid "history position" +msgstr "pozycja historii" + +#: builtins/history.def:365 +#, c-format +msgid "%s: history expansion failed" +msgstr "%s: rozwiniêcie wg historii nie powiod³o siê" + +#: builtins/inlib.def:71 +#, fuzzy, c-format +msgid "%s: inlib failed" +msgstr "%s: rozwiniêcie wg historii nie powiod³o siê" + +#: builtins/jobs.def:109 +msgid "no other options allowed with `-x'" +msgstr "nie mo¿na u¿ywaæ innych opcji przy `-x'" + +#: builtins/kill.def:197 +#, c-format +msgid "%s: arguments must be process or job IDs" +msgstr "%s: argumentami musz± byæ numery procesów lub zadañ" + +#: builtins/kill.def:260 +msgid "Unknown error" +msgstr "Nieznany b³±d" + +#: builtins/let.def:95 builtins/let.def:120 expr.c:501 expr.c:516 +msgid "expression expected" +msgstr "spodziewano siê wyra¿enia" + +#: builtins/mapfile.def:215 builtins/read.def:272 +#, c-format +msgid "%s: invalid file descriptor specification" +msgstr "%s: nieprawid³owo okre¶lony deskryptor pliku" + +#: builtins/mapfile.def:223 builtins/read.def:279 +#, c-format +msgid "%d: invalid file descriptor: %s" +msgstr "%d: nieprawid³owy deskryptor pliku: %s" + +#: builtins/mapfile.def:232 builtins/mapfile.def:270 +#, fuzzy, c-format +msgid "%s: invalid line count" +msgstr "%s: nieprawid³owa opcja" + +#: builtins/mapfile.def:243 +#, fuzzy, c-format +msgid "%s: invalid array origin" +msgstr "%s: nieprawid³owa opcja" + +#: builtins/mapfile.def:260 +#, fuzzy, c-format +msgid "%s: invalid callback quantum" +msgstr "%s: nieprawid³owa nazwa akcji" + +#: builtins/mapfile.def:292 +#, fuzzy +msgid "empty array variable name" +msgstr "%s: nie jest zmienn± tablicow±" + +#: builtins/mapfile.def:313 +msgid "array variable support required" +msgstr "" + +#: builtins/printf.def:367 +#, c-format +msgid "`%s': missing format character" +msgstr "`%s': brak znaku formatuj±cego" + +#: builtins/printf.def:544 +#, c-format +msgid "`%c': invalid format character" +msgstr "`%c': nieprawid³owy znak formatuj±cy" + +#: builtins/printf.def:571 +#, fuzzy, c-format +msgid "warning: %s: %s" +msgstr "%s: uwaga: " + +#: builtins/printf.def:750 +msgid "missing hex digit for \\x" +msgstr "brak cyfry szesnastkowej dla \\x" + +#: builtins/pushd.def:195 +msgid "no other directory" +msgstr "brak innego katalogu" + +#: builtins/pushd.def:462 +msgid "" +msgstr "" + +#: builtins/pushd.def:506 +msgid "directory stack empty" +msgstr "" + +#: builtins/pushd.def:508 +#, fuzzy +msgid "directory stack index" +msgstr "niedomiar stosu rekursji" + +#: builtins/pushd.def:683 +#, fuzzy +msgid "" +"Display the list of currently remembered directories. Directories\n" +" find their way onto the list with the `pushd' command; you can get\n" +" back up through the list with the `popd' command.\n" +" \n" +" Options:\n" +" -c\tclear the directory stack by deleting all of the elements\n" +" -l\tdo not print tilde-prefixed versions of directories relative\n" +" \tto your home directory\n" +" -p\tprint the directory stack with one entry per line\n" +" -v\tprint the directory stack with one entry per line prefixed\n" +" \twith its position in the stack\n" +" \n" +" Arguments:\n" +" +N\tDisplays the Nth entry counting from the left of the list shown " +"by\n" +" \tdirs when invoked without options, starting with zero.\n" +" \n" +" -N\tDisplays the Nth entry counting from the right of the list shown " +"by\n" +"\tdirs when invoked without options, starting with zero." +msgstr "" +"Wypisanie listy aktualnie pamiêtanych katalogów. Katalogi umieszczane s±\n" +" na li¶cie za pomoc± polecenia `pushd'; mo¿na cofaæ siê w obrêbie listy\n" +" za pomoc± polecenia `popd'.\n" +" \n" +" Znacznik -l oznacza, ¿e `dirs' nie powinno wypisywaæ katalogów w " +"skróconej\n" +" wersji, tzn. wzglêdem katalogu domowego wywo³uj±cego. Oznacza to, ¿e\n" +" `~/bin' mo¿e zostaæ wypisany jako `/homes/bfox/bin'. Znacznik -v " +"powoduje,\n" +" ¿e `dirs' wypisuje katalogi w osobnych wierszach, poprzedzaj±c ka¿dy\n" +" z nich jego pozycj± na stosie. Znacznik -p powoduje to samo, lecz bez\n" +" podawania pozycji na stosie. Znacznik -c powoduje wyczyszczenie stosu\n" +" katalogów poprzez usuniêcie wszystkich jego elementów.\n" +" \n" +" +N\tWypisanie N-tej pozycji licz±c od lewej strony listy wypisywanej\n" +" \tprzez dirs wywo³ane bez opcji, pocz±wszy od zera.\n" +" \n" +" -N\tWypisanie N-tej pozycji licz±c od prawej strony listy wypisywanej\n" +" \tprzez dirs wywo³ane bez opcji, pocz±wszy od zera." + +#: builtins/pushd.def:705 +#, fuzzy +msgid "" +"Adds a directory to the top of the directory stack, or rotates\n" +" the stack, making the new top of the stack the current working\n" +" directory. With no arguments, exchanges the top two directories.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when adding\n" +" \tdirectories to the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the left of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" -N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the right of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" dir\tAdds DIR to the directory stack at the top, making it the\n" +" \tnew current working directory.\n" +" \n" +" The `dirs' builtin displays the directory stack." +msgstr "" +"Dodanie katalogu na wierzcho³ku stosu katalogów lub rotacja stosu czyni±ca\n" +" jego nowym wierzcho³kiem bie¿±cy katalog roboczy. Wywo³ane bez\n" +" argumentów zamienia na stosie dwa najwy¿sze katalogi.\n" +" \n" +" +N\tRotacja stosu czyni±ca jego wierzcho³kiem N-ty katalog (licz±c od\n" +" \tlewej strony listy wypisywanej przez `dirs', pocz±wszy od zera).\n" +" \n" +" -N\tRotacja stosu czyni±ca jego wierzcho³kiem N-ty katalog (licz±c od\n" +" \tprawej strony listy wypisywanej przez `dirs', pocz±wszy od zera).\n" +" \n" +" -n\tPominiêcie zmiany katalogu podczas umieszczania katalogów na\n" +" \tstosie tak, ¿e zmieniany jest tylko stos.\n" +" \n" +" dir\tUmieszczenie DIR na wierzcho³ku stosu i uczynienie go nowym\n" +" \tbie¿±cym katalogiem roboczym.\n" +" \n" +" Zawarto¶æ stosu katalogów mo¿na zobaczyæ za pomoc± polecenia `dirs'." + +#: builtins/pushd.def:730 +#, fuzzy +msgid "" +"Removes entries from the directory stack. With no arguments, removes\n" +" the top directory from the stack, and changes to the new top directory.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when removing\n" +" \tdirectories from the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRemoves the Nth entry counting from the left of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd +0'\n" +" \tremoves the first directory, `popd +1' the second.\n" +" \n" +" -N\tRemoves the Nth entry counting from the right of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd -0'\n" +" \tremoves the last directory, `popd -1' the next to last.\n" +" \n" +" The `dirs' builtin displays the directory stack." +msgstr "" +"Usuniêcie pozycji ze stosu katalogów. Wywo³ane bez argumentów usuwa\n" +" katalog z wierzcho³ka stosu i zmienia katalog bie¿±cy na katalog\n" +" bêd±cy nowym wierzcho³kiem stosu.\n" +" \n" +" +N\tUsuniêcie ze stosu N-tej pozycji licz±c od lewej strony listy\n" +" \twypisywanej przez `dirs', pocz±wszy od zera. Na przyk³ad: `popd +0'\n" +" \tusuwa pierwszy katalog, `popd +1' usuwa drugi.\n" +" \n" +" -N\tUsuniêcie ze stosu N-tej pozycji licz±c od prawej strony listy\n" +" \twypisywanej przez `dirs', pocz±wszy od zera. Na przyk³ad: `popd -0'\n" +" \tusuwa pierwszy katalog, `popd -1' usuwa drugi.\n" +" \n" +" -n\tPominiêcie zmiany katalogu podczas usuwania katalogów ze stosu tak,\n" +" \t¿e zmieniany jest tylko stos.\n" +" \n" +" Zawarto¶æ stosu katalogów mo¿na zobaczyæ za pomoc± polecenia `dirs'." + +#: builtins/read.def:248 +#, c-format +msgid "%s: invalid timeout specification" +msgstr "%s: nieprawid³owo okre¶lony timeout" + +#: builtins/read.def:574 +#, c-format +msgid "read error: %d: %s" +msgstr "b³±d odczytu: %d: %s" + +#: builtins/return.def:73 +msgid "can only `return' from a function or sourced script" +msgstr "wyj¶cie przez `return' mo¿liwe tylko z funkcji lub skryptu" + +# ??? +#: builtins/set.def:768 +msgid "cannot simultaneously unset a function and a variable" +msgstr "nie mo¿na jednocze¶nie anulowaæ definicji funkcji i zmiennej" + +# ??? +#: builtins/set.def:805 +#, c-format +msgid "%s: cannot unset" +msgstr "%s: nie mo¿na anulowaæ definicji" + +# ??? +#: builtins/set.def:812 +#, c-format +msgid "%s: cannot unset: readonly %s" +msgstr "%s: nie mo¿na anulowaæ definicji: %s jest tylko do odczytu" + +#: builtins/set.def:823 +#, c-format +msgid "%s: not an array variable" +msgstr "%s: nie jest zmienn± tablicow±" + +#: builtins/setattr.def:186 +#, c-format +msgid "%s: not a function" +msgstr "%s: nie jest funkcj±" + +#: builtins/shift.def:71 builtins/shift.def:77 +msgid "shift count" +msgstr "licznik przesuniêcia" + +#: builtins/shopt.def:254 +msgid "cannot set and unset shell options simultaneously" +msgstr "nie mo¿na opcji pow³oki jednocze¶nie ustawiæ i uniewa¿niæ" + +#: builtins/shopt.def:319 +#, c-format +msgid "%s: invalid shell option name" +msgstr "%s: nieprawid³owa nazwa opcji pow³oki" + +#: builtins/source.def:128 +msgid "filename argument required" +msgstr "wymagany argument w postaci nazwy pliku" + +#: builtins/source.def:153 +#, c-format +msgid "%s: file not found" +msgstr "%s: nie znaleziono pliku" + +#: builtins/suspend.def:101 +msgid "cannot suspend" +msgstr "nie mo¿na wstrzymaæ" + +#: builtins/suspend.def:111 +msgid "cannot suspend a login shell" +msgstr "nie mo¿na wstrzymaæ pow³oki logowania" + +#: builtins/type.def:234 +#, c-format +msgid "%s is aliased to `%s'\n" +msgstr "%s jest aliasem do %s'\n" + +#: builtins/type.def:255 +#, c-format +msgid "%s is a shell keyword\n" +msgstr "%s jest s³owem kluczowym pow³oki\n" + +#: builtins/type.def:274 +#, c-format +msgid "%s is a function\n" +msgstr "%s jest funkcj±\n" + +#: builtins/type.def:296 +#, c-format +msgid "%s is a shell builtin\n" +msgstr "%s jest wewnêtrznym poleceniem pow³oki\n" + +#: builtins/type.def:317 builtins/type.def:391 +#, c-format +msgid "%s is %s\n" +msgstr "%s jest %s\n" + +#: builtins/type.def:337 +#, c-format +msgid "%s is hashed (%s)\n" +msgstr "¶cie¿ka do %s jest zapamiêtana (%s)\n" + +#: builtins/ulimit.def:372 +#, c-format +msgid "%s: invalid limit argument" +msgstr "%s: nieprawid³owy argument stanowi±cy ograniczenie" + +#: builtins/ulimit.def:398 +#, c-format +msgid "`%c': bad command" +msgstr "`%c': z³e polecenie" + +#: builtins/ulimit.def:427 +#, c-format +msgid "%s: cannot get limit: %s" +msgstr "%s: nie mo¿na odczytaæ ograniczenia: %s" + +#: builtins/ulimit.def:453 +msgid "limit" +msgstr "" + +#: builtins/ulimit.def:465 builtins/ulimit.def:765 +#, c-format +msgid "%s: cannot modify limit: %s" +msgstr "%s: nie mo¿na zmieniæ ograniczenia: %s" + +#: builtins/umask.def:118 +msgid "octal number" +msgstr "liczba ósemkowa" + +#: builtins/umask.def:231 +#, c-format +msgid "`%c': invalid symbolic mode operator" +msgstr "`%c': nieprawid³owy operator trybu symbolicznego" + +#: builtins/umask.def:286 +#, c-format +msgid "`%c': invalid symbolic mode character" +msgstr "`%c': nieprawid³owy znak trybu symbolicznego" + +#: error.c:89 error.c:320 error.c:322 error.c:324 +msgid " line " +msgstr "" + +#: error.c:164 +#, c-format +msgid "last command: %s\n" +msgstr "ostatnie polecenie: %s\n" + +#: error.c:172 +#, c-format +msgid "Aborting..." +msgstr "Przerywanie..." + +#: error.c:405 +msgid "unknown command error" +msgstr "nieznany b³±d polecenia" + +#: error.c:406 +msgid "bad command type" +msgstr "z³y rodzaj polecenia" + +#: error.c:407 +msgid "bad connector" +msgstr "z³y ³±cznik" + +#: error.c:408 +msgid "bad jump" +msgstr "z³y skok" + +#: error.c:446 +#, c-format +msgid "%s: unbound variable" +msgstr "%s: nieustawiona zmienna" + +#: eval.c:181 +#, c-format +msgid "\atimed out waiting for input: auto-logout\n" +msgstr "\aprzekroczony czas oczekiwania na dane wej¶ciowe: auto-wylogowanie\n" + +#: execute_cmd.c:491 +#, c-format +msgid "cannot redirect standard input from /dev/null: %s" +msgstr "nie mo¿na przekierowaæ standardowego wej¶cia z /dev/null: %s" + +#: execute_cmd.c:1091 +#, c-format +msgid "TIMEFORMAT: `%c': invalid format character" +msgstr "TIMEFORMAT: `%c': nieprawid³owy znak formatuj±cy" + +#: execute_cmd.c:1942 +#, fuzzy +msgid "pipe error" +msgstr "b³±d zapisu: %s" + +#: execute_cmd.c:4276 +#, c-format +msgid "%s: restricted: cannot specify `/' in command names" +msgstr "%s: ograniczony: nie mo¿na podawaæ `/' w nazwach poleceñ" + +#: execute_cmd.c:4367 +#, c-format +msgid "%s: command not found" +msgstr "%s: nie znaleziono polecenia" + +#: execute_cmd.c:4621 +#, c-format +msgid "%s: %s: bad interpreter" +msgstr "%s: %s: z³y interpreter" + +#: execute_cmd.c:4770 +#, c-format +msgid "cannot duplicate fd %d to fd %d" +msgstr "nie mo¿na skopiowaæ deskryptora pliku %d do %d" + +#: expr.c:241 +msgid "expression recursion level exceeded" +msgstr "przekroczone ograniczenie poziomu rekursji dla wyra¿enia" + +#: expr.c:265 +msgid "recursion stack underflow" +msgstr "niedomiar stosu rekursji" + +#: expr.c:379 +msgid "syntax error in expression" +msgstr "b³±d sk³adniowy w wyra¿eniu" + +#: expr.c:419 +msgid "attempted assignment to non-variable" +msgstr "próba przypisania do nie-zmiennej" + +#: expr.c:440 expr.c:445 expr.c:756 +msgid "division by 0" +msgstr "dzielenie przez 0" + +# ??? +#: expr.c:471 +msgid "bug: bad expassign token" +msgstr "b³±d: z³y prefiks operatora przypisuj±cego" + +#: expr.c:513 +msgid "`:' expected for conditional expression" +msgstr "spodziewano siê `:' w wyra¿eniu warunkowym" + +#: expr.c:781 +msgid "exponent less than 0" +msgstr "wyk³adnik mniejszy ni¿ 0" + +#: expr.c:826 +msgid "identifier expected after pre-increment or pre-decrement" +msgstr "" +"spodziewany identyfikator po operatorze preinkrementacji lub predekrementacji" + +#: expr.c:854 +msgid "missing `)'" +msgstr "brakuj±cy `)'" + +#: expr.c:897 expr.c:1175 +msgid "syntax error: operand expected" +msgstr "b³±d sk³adni: spodziewany argument" + +#: expr.c:1177 +msgid "syntax error: invalid arithmetic operator" +msgstr "b³±d sk³adni: nieprawid³owy operator arytmetyczny" + +#: expr.c:1201 +#, c-format +msgid "%s%s%s: %s (error token is \"%s\")" +msgstr "" + +#: expr.c:1259 +msgid "invalid arithmetic base" +msgstr "nieprawid³owa podstawa arytmetyczna" + +#: expr.c:1279 +msgid "value too great for base" +msgstr "warto¶æ za du¿a na podstawê" + +#: expr.c:1328 +#, fuzzy, c-format +msgid "%s: expression error\n" +msgstr "%s: oczekiwano wyra¿enia ca³kowitego" + +#: general.c:61 +msgid "getcwd: cannot access parent directories" +msgstr "getcwd: niemo¿liwy dostêp do katalogów nadrzêdnych" + +#: input.c:94 subst.c:4559 +#, fuzzy, c-format +msgid "cannot reset nodelay mode for fd %d" +msgstr "nie mo¿na wy³±czyæ trybu nieblokuj±cego dla deskryptora %d" + +#: input.c:258 +#, c-format +msgid "cannot allocate new file descriptor for bash input from fd %d" +msgstr "nie mo¿na przydzieliæ nowego deskryptora pliku dla wej¶cia basha z %d" + +#: input.c:266 +#, c-format +msgid "save_bash_input: buffer already exists for new fd %d" +msgstr "save_bash_input: bufor dla nowego deskryptora %d ju¿ istnieje" + +#: jobs.c:466 +msgid "start_pipeline: pgrp pipe" +msgstr "" + +# ??? +#: jobs.c:882 +#, c-format +msgid "forked pid %d appears in running job %d" +msgstr "proces o PID %d wystêpuje w dzia³aj±cym zadaniu %d" + +#: jobs.c:1000 +#, c-format +msgid "deleting stopped job %d with process group %ld" +msgstr "usuwanie zatrzymanego zadania %d z grup± procesów %ld" + +#: jobs.c:1105 +#, c-format +msgid "add_process: process %5ld (%s) in the_pipeline" +msgstr "" + +#: jobs.c:1108 +#, c-format +msgid "add_process: pid %5ld (%s) marked as still alive" +msgstr "" + +#: jobs.c:1396 +#, c-format +msgid "describe_pid: %ld: no such pid" +msgstr "describe_pid: %ld: brak takiego PID-u" + +#: jobs.c:1411 +#, c-format +msgid "Signal %d" +msgstr "" + +#: jobs.c:1425 jobs.c:1450 +msgid "Done" +msgstr "" + +#: jobs.c:1430 siglist.c:122 +msgid "Stopped" +msgstr "" + +#: jobs.c:1434 +#, c-format +msgid "Stopped(%s)" +msgstr "" + +#: jobs.c:1438 +msgid "Running" +msgstr "" + +#: jobs.c:1452 +#, c-format +msgid "Done(%d)" +msgstr "" + +#: jobs.c:1454 +#, c-format +msgid "Exit %d" +msgstr "" + +#: jobs.c:1457 +msgid "Unknown status" +msgstr "" + +#: jobs.c:1544 +#, c-format +msgid "(core dumped) " +msgstr "" + +#: jobs.c:1563 +#, c-format +msgid " (wd: %s)" +msgstr "" + +#: jobs.c:1766 +#, c-format +msgid "child setpgid (%ld to %ld)" +msgstr "" + +#: jobs.c:2094 nojobs.c:576 +#, c-format +msgid "wait: pid %ld is not a child of this shell" +msgstr "wait: PID %ld nie jest potomkiem tej pow³oki" + +#: jobs.c:2321 +#, c-format +msgid "wait_for: No record of process %ld" +msgstr "wait_for: Brak rekordu dla procesu %ld" + +#: jobs.c:2593 +#, c-format +msgid "wait_for_job: job %d is stopped" +msgstr "wait_for_job: zadanie %d jest zatrzymane" + +#: jobs.c:2815 +#, c-format +msgid "%s: job has terminated" +msgstr "%s: zadanie zosta³o przerwane" + +#: jobs.c:2824 +#, c-format +msgid "%s: job %d already in background" +msgstr "%s: zadanie %d ju¿ pracuje w tle" + +#: jobs.c:3487 +#, fuzzy, c-format +msgid "%s: line %d: " +msgstr "%s: uwaga: " + +#: jobs.c:3501 nojobs.c:805 +#, c-format +msgid " (core dumped)" +msgstr "" + +#: jobs.c:3513 jobs.c:3526 +#, c-format +msgid "(wd now: %s)\n" +msgstr "" + +#: jobs.c:3558 +msgid "initialize_job_control: getpgrp failed" +msgstr "" + +#: jobs.c:3618 +msgid "initialize_job_control: line discipline" +msgstr "" + +#: jobs.c:3628 +msgid "initialize_job_control: setpgid" +msgstr "" + +#: jobs.c:3656 +#, c-format +msgid "cannot set terminal process group (%d)" +msgstr "" + +#: jobs.c:3661 +msgid "no job control in this shell" +msgstr "w tej pow³oce nie ma kontroli zadañ" + +#: lib/malloc/malloc.c:296 +#, c-format +msgid "malloc: failed assertion: %s\n" +msgstr "malloc: za³o¿enie, ¿e %s nie jest spe³nione\n" + +#: lib/malloc/malloc.c:312 +#, c-format +msgid "" +"\r\n" +"malloc: %s:%d: assertion botched\r\n" +msgstr "" +"\r\n" +"malloc: %s:%d: spartaczone za³o¿enie\r\n" + +#: lib/malloc/malloc.c:313 +#, fuzzy +msgid "unknown" +msgstr "%s: nieznany host" + +# ??? +#: lib/malloc/malloc.c:797 +msgid "malloc: block on free list clobbered" +msgstr "malloc: nieprawid³owy blok na li¶cie wolnych bloków" + +#: lib/malloc/malloc.c:874 +msgid "free: called with already freed block argument" +msgstr "free: wywo³ane dla bloku, który ju¿ zosta³ zwolniony" + +#: lib/malloc/malloc.c:877 +msgid "free: called with unallocated block argument" +msgstr "free: wywo³ane dla bloku, który nie zosta³ przydzielony" + +#: lib/malloc/malloc.c:896 +msgid "free: underflow detected; mh_nbytes out of range" +msgstr "free: wykryto niedomiar; mh_nbytes poza zakresem" + +#: lib/malloc/malloc.c:902 +msgid "free: start and end chunk sizes differ" +msgstr "free: rozmiar pocz±tkowy i koñcowy fragmentu s± ró¿ne" + +#: lib/malloc/malloc.c:1001 +msgid "realloc: called with unallocated block argument" +msgstr "realloc: wywo³ane dla bloku, który nie zosta³ przydzielony" + +#: lib/malloc/malloc.c:1016 +msgid "realloc: underflow detected; mh_nbytes out of range" +msgstr "realloc: wykryto niedomiar; mh_nbytes poza zakresem" + +#: lib/malloc/malloc.c:1022 +msgid "realloc: start and end chunk sizes differ" +msgstr "realloc: rozmiar pocz±tkowy i koñcowy fragmentu s± ró¿ne" + +#: lib/malloc/table.c:177 +#, c-format +msgid "register_alloc: alloc table is full with FIND_ALLOC?\n" +msgstr "register_alloc: tablica alokacji jest pe³na podczas FIND_ALLOC?\n" + +#: lib/malloc/table.c:184 +#, c-format +msgid "register_alloc: %p already in table as allocated?\n" +msgstr "register_alloc: %p ju¿ znajduje siê w tablicy jako przydzielony?\n" + +#: lib/malloc/table.c:220 +#, c-format +msgid "register_free: %p already in table as free?\n" +msgstr "register_free: %p ju¿ znajduje siê w tablicy jako wolny?\n" + +#: lib/sh/fmtulong.c:101 +msgid "invalid base" +msgstr "nieprawid³owa podstawa" + +#: lib/sh/netopen.c:168 +#, c-format +msgid "%s: host unknown" +msgstr "%s: nieznany host" + +#: lib/sh/netopen.c:175 +#, c-format +msgid "%s: invalid service" +msgstr "%s: nieznana us³uga" + +#: lib/sh/netopen.c:306 +#, c-format +msgid "%s: bad network path specification" +msgstr "%s: ¼le okre¶lona ¶cie¿ka sieciowa" + +#: lib/sh/netopen.c:346 +msgid "network operations not supported" +msgstr "operacje sieciowe nie s± wspierane" + +#: mailcheck.c:433 +msgid "You have mail in $_" +msgstr "Masz pocztê w $_" + +#: mailcheck.c:458 +msgid "You have new mail in $_" +msgstr "Masz now± pocztê w $_" + +#: mailcheck.c:474 +#, c-format +msgid "The mail in %s has been read\n" +msgstr "Poczta w %s jest przeczytana\n" + +#: make_cmd.c:322 +msgid "syntax error: arithmetic expression required" +msgstr "b³±d sk³adni: oczekiwano wyra¿enia arytmetycznego" + +#: make_cmd.c:324 +msgid "syntax error: `;' unexpected" +msgstr "b³±d sk³adni: oczekiwany `;'" + +#: make_cmd.c:325 +#, c-format +msgid "syntax error: `((%s))'" +msgstr "b³±d sk³adni: `((%s))'" + +#: make_cmd.c:567 +#, c-format +msgid "make_here_document: bad instruction type %d" +msgstr "make_here_document: z³y rodzaj instrukcji %d" + +#: make_cmd.c:651 +#, c-format +msgid "here-document at line %d delimited by end-of-file (wanted `%s')" +msgstr "" + +#: make_cmd.c:746 +#, c-format +msgid "make_redirection: redirection instruction `%d' out of range" +msgstr "make_redirection: instrukcja przekierowania `%d' poza zakresem" + +#: parse.y:2986 parse.y:3218 +#, c-format +msgid "unexpected EOF while looking for matching `%c'" +msgstr "nieoczekiwany EOF podczas poszukiwania pasuj±cego `%c'" + +#: parse.y:3722 +msgid "unexpected EOF while looking for `]]'" +msgstr "nieoczekiwany EOF podczas poszukiwania `]]'" + +#: parse.y:3727 +#, c-format +msgid "syntax error in conditional expression: unexpected token `%s'" +msgstr "b³±d sk³adni w wyra¿eniu warunkowym: nieoczekiwany znacznik `%s'" + +#: parse.y:3731 +msgid "syntax error in conditional expression" +msgstr "b³±d sk³adni w wyra¿eniu warunkowym" + +#: parse.y:3809 +#, c-format +msgid "unexpected token `%s', expected `)'" +msgstr "nieoczekiwany znacznik `%s', oczekiwano `)'" + +#: parse.y:3813 +msgid "expected `)'" +msgstr "oczekiwano `)'" + +#: parse.y:3841 +#, c-format +msgid "unexpected argument `%s' to conditional unary operator" +msgstr "nieoczekiwany argument `%s' jednoargumentowego operatora warunkowego" + +#: parse.y:3845 +msgid "unexpected argument to conditional unary operator" +msgstr "nieoczekiwany argument jednoargumentowego operatora warunkowego" + +#: parse.y:3885 +#, c-format +msgid "unexpected token `%s', conditional binary operator expected" +msgstr "nieoczekiwany argument `%s', oczekiwano dwuarg. operatora warunkowego" + +#: parse.y:3889 +msgid "conditional binary operator expected" +msgstr "oczekiwano dwuargumentowego operatora warunkowego" + +#: parse.y:3906 +#, c-format +msgid "unexpected argument `%s' to conditional binary operator" +msgstr "nieoczekiwany argument `%s' dwuargumentowego operatora warunkowego" + +#: parse.y:3910 +msgid "unexpected argument to conditional binary operator" +msgstr "nieoczekiwany argument dwuargumentowego operatora warunkowego" + +#: parse.y:3921 +#, c-format +msgid "unexpected token `%c' in conditional command" +msgstr "nieoczekiwany znacznik `%c' w poleceniu warunkowym" + +#: parse.y:3924 +#, c-format +msgid "unexpected token `%s' in conditional command" +msgstr "nieoczekiwany znacznik `%s' w poleceniu warunkowym" + +#: parse.y:3928 +#, c-format +msgid "unexpected token %d in conditional command" +msgstr "nieoczekiwany znacznik %d w poleceniu warunkowym" + +#: parse.y:5195 +#, c-format +msgid "syntax error near unexpected token `%s'" +msgstr "b³±d sk³adni przy nieoczekiwanym znaczniku `%s'" + +#: parse.y:5213 +#, c-format +msgid "syntax error near `%s'" +msgstr "b³±d sk³adni przy `%s'" + +#: parse.y:5223 +msgid "syntax error: unexpected end of file" +msgstr "b³±d sk³adni: nieoczekiwany koniec pliku" + +#: parse.y:5223 +msgid "syntax error" +msgstr "b³±d sk³adni" + +#: parse.y:5285 +#, c-format +msgid "Use \"%s\" to leave the shell.\n" +msgstr "U¿yj \"%s\", aby opu¶ciæ tê pow³okê.\n" + +#: parse.y:5447 +msgid "unexpected EOF while looking for matching `)'" +msgstr "nieoczekiwany EOF podczas poszukiwania pasuj±cego `)'" + +#: pcomplete.c:1016 +#, c-format +msgid "completion: function `%s' not found" +msgstr "uzupe³nienie: nie znaleziono funkcji `%s'" + +#: pcomplib.c:179 +#, c-format +msgid "progcomp_insert: %s: NULL COMPSPEC" +msgstr "progcomp_insert: %s: NULL COMPSPEC" + +#: print_cmd.c:287 +#, c-format +msgid "print_command: bad connector `%d'" +msgstr "print_command: z³y ³±cznik `%d'" + +#: print_cmd.c:1347 +#, c-format +msgid "cprintf: `%c': invalid format character" +msgstr "cprintf: `%c': nieprawid³owy znak formatuj±cy" + +#: redir.c:105 +msgid "file descriptor out of range" +msgstr "deskryptor pliku poza zakresem" + +#: redir.c:148 +#, c-format +msgid "%s: ambiguous redirect" +msgstr "%s: nieojednoznaczne przekierowanie" + +#: redir.c:152 +#, c-format +msgid "%s: cannot overwrite existing file" +msgstr "%s: nie mo¿na nadpisaæ istniej±cego pliku" + +#: redir.c:157 +#, c-format +msgid "%s: restricted: cannot redirect output" +msgstr "%s: ograniczony: nie mo¿na przekierowaæ wyj¶cia" + +#: redir.c:162 +#, fuzzy, c-format +msgid "cannot create temp file for here-document: %s" +msgstr "nie mo¿na utworzyæ pliku tymczasowego dla dokumentu miejscowego: %s" + +#: redir.c:517 +msgid "/dev/(tcp|udp)/host/port not supported without networking" +msgstr "/dev/(tcp|udp)/host/port nie s± wspierane bez sieci" + +#: redir.c:1023 +msgid "redirection error: cannot duplicate fd" +msgstr "b³±d przekierowania: nie mo¿na powieliæ deskryptora pliku" + +#: shell.c:328 +msgid "could not find /tmp, please create!" +msgstr "nie mo¿na znale¼æ /tmp, proszê o utworzenie!" + +#: shell.c:332 +msgid "/tmp must be a valid directory name" +msgstr "/tmp musi byæ prawid³ow± nazw± katalogu" + +#: shell.c:876 +#, c-format +msgid "%c%c: invalid option" +msgstr "%c%c: nieprawid³owa opcja" + +#: shell.c:1638 +msgid "I have no name!" +msgstr "Nie mam nazwy!" + +#: shell.c:1778 +#, c-format +msgid "GNU bash, version %s-(%s)\n" +msgstr "" + +#: shell.c:1779 +#, c-format +msgid "" +"Usage:\t%s [GNU long option] [option] ...\n" +"\t%s [GNU long option] [option] script-file ...\n" +msgstr "" +"U¿ycie:\t%s [d³uga opcja GNU] [opcja] ...\n" +"\t%s [d³uga opcja GNU] [opcja] plik-skryptu ...\n" + +#: shell.c:1781 +msgid "GNU long options:\n" +msgstr "D³ugie opcje GNU:\n" + +#: shell.c:1785 +msgid "Shell options:\n" +msgstr "Opcje pow³oki:\n" + +#: shell.c:1786 +msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n" +msgstr "\t-irsD lub -c polecenie lub -O shopt_option\t\t(tylko wywo³anie)\n" + +#: shell.c:1801 +#, c-format +msgid "\t-%s or -o option\n" +msgstr "\t-%s lub -o opcja\n" + +#: shell.c:1807 +#, c-format +msgid "Type `%s -c \"help set\"' for more information about shell options.\n" +msgstr "" +"Aby uzyskaæ wiêcej informacji o opcjach pow³oki, napisz `%s -c \"help set" +"\"'.\n" + +#: shell.c:1808 +#, c-format +msgid "Type `%s -c help' for more information about shell builtin commands.\n" +msgstr "" +"Aby uzyskaæ wiêcej informacji o poleceniach wewnêtrznych pow³oki,\n" +"napisz `%s -c help'.\n" + +#: shell.c:1809 +#, c-format +msgid "Use the `bashbug' command to report bugs.\n" +msgstr "Do zg³aszania b³êdów nale¿y u¿ywaæ polecenia `bashbug'.\n" + +#: sig.c:583 +#, c-format +msgid "sigprocmask: %d: invalid operation" +msgstr "sigprocmask: %d: nieprawid³owa operacja" + +#: 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 +#, fuzzy +msgid "Bus error" +msgstr "b³±d sk³adni" + +#: 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 +#, fuzzy +msgid "Terminated" +msgstr "ograniczony" + +#: 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:1181 subst.c:1302 +#, c-format +msgid "bad substitution: no closing `%s' in %s" +msgstr "z³e podstawienie: brak zamykaj±cego `%s' w %s" + +#: subst.c:2458 +#, c-format +msgid "%s: cannot assign list to array member" +msgstr "%s: nie mo¿na przypisaæ listy do elementu tablicy" + +#: subst.c:4456 subst.c:4472 +msgid "cannot make pipe for process substitution" +msgstr "nie mo¿na utworzyæ potoku dla podstawienia procesu" + +#: subst.c:4504 +msgid "cannot make child for process substitution" +msgstr "nie mo¿na utworzyæ procesu potomnego dla podstawienia procesu" + +#: subst.c:4549 +#, c-format +msgid "cannot open named pipe %s for reading" +msgstr "nie mo¿na otworzyæ nazwanego potoku %s do odczytu" + +#: subst.c:4551 +#, c-format +msgid "cannot open named pipe %s for writing" +msgstr "nie mo¿na otworzyæ nazwanego potoku %s do zapisu" + +#: subst.c:4569 +#, c-format +msgid "cannot duplicate named pipe %s as fd %d" +msgstr "nie mo¿na powieliæ nazwanego potoku %s jako deskryptor %d" + +#: subst.c:4765 +msgid "cannot make pipe for command substitution" +msgstr "nie mo¿na utworzyæ potoku dla podstawienia polecenia" + +#: subst.c:4799 +msgid "cannot make child for command substitution" +msgstr "nie mo¿na utworzyæ procesu potomnego dla podstawienia polecenia" + +#: subst.c:4816 +msgid "command_substitute: cannot duplicate pipe as fd 1" +msgstr "command_substitute: nie mo¿na powieliæ potoku jako deskryptora 1" + +#: subst.c:5318 +#, c-format +msgid "%s: parameter null or not set" +msgstr "%s: parametr pusty lub nieustawiony" + +#: subst.c:5608 +#, c-format +msgid "%s: substring expression < 0" +msgstr "%s: wyra¿enie dla pod³añcucha < 0" + +#: subst.c:6660 +#, c-format +msgid "%s: bad substitution" +msgstr "%s: z³e podstawienie" + +#: subst.c:6740 +#, c-format +msgid "$%s: cannot assign in this way" +msgstr "$%s: nie mo¿na przypisywaæ w ten sposób" + +#: subst.c:7479 +#, fuzzy, c-format +msgid "bad substitution: no closing \"`\" in %s" +msgstr "z³e podstawienie: brak zamykaj±cego `%s' w %s" + +#: subst.c:8354 +#, c-format +msgid "no match: %s" +msgstr "brak pasuj±cego: %s" + +#: test.c:145 +msgid "argument expected" +msgstr "oczekiwano argumentu" + +#: test.c:154 +#, c-format +msgid "%s: integer expression expected" +msgstr "%s: oczekiwano wyra¿enia ca³kowitego" + +#: test.c:262 +msgid "`)' expected" +msgstr "oczekiwano `)'" + +#: test.c:264 +#, c-format +msgid "`)' expected, found %s" +msgstr "oczekiwano `)', znaleziono %s" + +#: test.c:279 test.c:688 test.c:691 +#, c-format +msgid "%s: unary operator expected" +msgstr "%s: oczekiwano operatora jednoargumentowego" + +#: test.c:444 test.c:731 +#, c-format +msgid "%s: binary operator expected" +msgstr "%s: oczekiwano operatora dwuargumentowego" + +#: test.c:806 +msgid "missing `]'" +msgstr "brakuj±cy `]'" + +#: trap.c:201 +msgid "invalid signal number" +msgstr "nieprawid³owy numer sygna³u" + +#: trap.c:324 +#, c-format +msgid "run_pending_traps: bad value in trap_list[%d]: %p" +msgstr "run_pending_traps: z³a warto¶æ trap_list[%d]: %p" + +#: trap.c:328 +#, c-format +msgid "" +"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself" +msgstr "" +"run_pending_traps: obs³uga sygna³u jest ustawiona na SIG_DFL, wysy³aj±c %d (%" +"s) do siebie" + +#: trap.c:372 +#, c-format +msgid "trap_handler: bad signal %d" +msgstr "trap_handler: z³y sygna³ %d" + +#: variables.c:358 +#, c-format +msgid "error importing function definition for `%s'" +msgstr "b³±d importu definicji funkcji dla `%s'" + +#: variables.c:736 +#, c-format +msgid "shell level (%d) too high, resetting to 1" +msgstr "poziom pow³oki (%d) jest za du¿y, ustawiono na 1" + +#: variables.c:1898 +msgid "make_local_variable: no function context at current scope" +msgstr "make_local_variable: brak kontekstu funkcji w bie¿±cym zakresie" + +#: variables.c:3127 +msgid "all_local_variables: no function context at current scope" +msgstr "all_local_variables: brak kontekstu funkcji w bie¿±cym zakresie" + +#: variables.c:3344 variables.c:3353 +#, c-format +msgid "invalid character %d in exportstr for %s" +msgstr "nieprawid³owy znak %d w exportstr dla %s" + +#: variables.c:3359 +#, c-format +msgid "no `=' in exportstr for %s" +msgstr "brak `=' w exportstr dla %s" + +#: variables.c:3794 +msgid "pop_var_context: head of shell_variables not a function context" +msgstr "pop_var_context: nag³ówek shell_variables poza kontekstem funkcji" + +#: variables.c:3807 +msgid "pop_var_context: no global_variables context" +msgstr "pop_var_context: brak kontekstu global_variables" + +#: variables.c:3881 +msgid "pop_scope: head of shell_variables not a temporary environment scope" +msgstr "" +"pop_scope: nag³ówek shell_variables poza zakresem tymczasowego ¶rodowiska" + +#: version.c:46 +#, fuzzy +msgid "Copyright (C) 2009 Free Software Foundation, Inc." +msgstr "Copyright (C) 2006 Free Software Foundation, Inc.\n" + +#: version.c:47 +msgid "" +"License GPLv3+: GNU GPL version 3 or later \n" +msgstr "" + +#: version.c:86 +#, c-format +msgid "GNU bash, version %s (%s)\n" +msgstr "" + +#: version.c:91 +#, c-format +msgid "This is free software; you are free to change and redistribute it.\n" +msgstr "" + +#: version.c:92 +#, c-format +msgid "There is NO WARRANTY, to the extent permitted by law.\n" +msgstr "" + +#: xmalloc.c:92 +#, c-format +msgid "xmalloc: cannot allocate %lu bytes (%lu bytes allocated)" +msgstr "xmalloc: nie mo¿na przydzieliæ %lu bajtów (przydzielono %lu)" + +#: xmalloc.c:94 +#, c-format +msgid "xmalloc: cannot allocate %lu bytes" +msgstr "xmalloc: nie mo¿na przydzieliæ %lu bajtów" + +#: xmalloc.c:114 +#, c-format +msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)" +msgstr "xrealloc: nie mo¿na ponownie przydzieliæ %lu bajtów (przydzielono %lu)" + +#: xmalloc.c:116 +#, c-format +msgid "xrealloc: cannot allocate %lu bytes" +msgstr "xrealloc: nie mo¿na przydzieliæ %lu bajtów" + +#: xmalloc.c:150 +#, c-format +msgid "xmalloc: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)" +msgstr "xmalloc: %s:%d: nie mo¿na przydzieliæ %lu bajtów (przydzielono %lu)" + +#: xmalloc.c:152 +#, c-format +msgid "xmalloc: %s:%d: cannot allocate %lu bytes" +msgstr "xmalloc: %s:%d: nie mo¿na przydzieliæ %lu bajtów" + +#: xmalloc.c:174 +#, c-format +msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)" +msgstr "" +"xrealloc: %s:%d: nie mo¿na ponownie przydzieliæ %lu bajtów (przydzielono %lu)" + +#: xmalloc.c:176 +#, c-format +msgid "xrealloc: %s:%d: cannot allocate %lu bytes" +msgstr "xrealloc: %s:%d: nie mo¿na przydzieliæ %lu bajtów" + +#: builtins.c:43 +msgid "alias [-p] [name[=value] ... ]" +msgstr "" + +#: builtins.c:47 +msgid "unalias [-a] name [name ...]" +msgstr "" + +#: builtins.c:51 +msgid "" +"bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-" +"x keyseq:shell-command] [keyseq:readline-function or readline-command]" +msgstr "" + +#: builtins.c:54 +msgid "break [n]" +msgstr "" + +#: builtins.c:56 +msgid "continue [n]" +msgstr "" + +#: builtins.c:58 +msgid "builtin [shell-builtin [arg ...]]" +msgstr "" + +#: builtins.c:61 +msgid "caller [expr]" +msgstr "" + +#: builtins.c:64 +msgid "cd [-L|-P] [dir]" +msgstr "" + +#: builtins.c:66 +msgid "pwd [-LP]" +msgstr "" + +#: builtins.c:68 +msgid ":" +msgstr "" + +#: builtins.c:70 +msgid "true" +msgstr "" + +#: builtins.c:72 +msgid "false" +msgstr "" + +#: builtins.c:74 +msgid "command [-pVv] command [arg ...]" +msgstr "" + +#: builtins.c:76 +msgid "declare [-aAfFilrtux] [-p] [name[=value] ...]" +msgstr "" + +#: builtins.c:78 +msgid "typeset [-aAfFilrtux] [-p] name[=value] ..." +msgstr "" + +#: builtins.c:80 +msgid "local [option] name[=value] ..." +msgstr "" + +#: builtins.c:83 +msgid "echo [-neE] [arg ...]" +msgstr "" + +#: builtins.c:87 +msgid "echo [-n] [arg ...]" +msgstr "" + +#: builtins.c:90 +msgid "enable [-a] [-dnps] [-f filename] [name ...]" +msgstr "" + +#: builtins.c:92 +msgid "eval [arg ...]" +msgstr "" + +#: builtins.c:94 +msgid "getopts optstring name [arg]" +msgstr "" + +#: builtins.c:96 +msgid "exec [-cl] [-a name] [command [arguments ...]] [redirection ...]" +msgstr "" + +#: builtins.c:98 +msgid "exit [n]" +msgstr "" + +#: builtins.c:100 +msgid "logout [n]" +msgstr "" + +#: builtins.c:103 +msgid "fc [-e ename] [-lnr] [first] [last] or fc -s [pat=rep] [command]" +msgstr "" + +#: builtins.c:107 +msgid "fg [job_spec]" +msgstr "" + +#: builtins.c:111 +msgid "bg [job_spec ...]" +msgstr "" + +#: builtins.c:114 +msgid "hash [-lr] [-p pathname] [-dt] [name ...]" +msgstr "" + +#: builtins.c:117 +msgid "help [-ds] [pattern ...]" +msgstr "" + +#: builtins.c:121 +msgid "" +"history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg " +"[arg...]" +msgstr "" + +#: builtins.c:125 +msgid "jobs [-lnprs] [jobspec ...] or jobs -x command [args]" +msgstr "" + +#: builtins.c:129 +msgid "disown [-h] [-ar] [jobspec ...]" +msgstr "" + +#: builtins.c:132 +msgid "" +"kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l " +"[sigspec]" +msgstr "" + +#: builtins.c:134 +msgid "let arg [arg ...]" +msgstr "" + +#: builtins.c:136 +msgid "" +"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-p prompt] [-t " +"timeout] [-u fd] [name ...]" +msgstr "" + +#: builtins.c:138 +msgid "return [n]" +msgstr "" + +#: builtins.c:140 +msgid "set [--abefhkmnptuvxBCHP] [-o option-name] [arg ...]" +msgstr "" + +#: builtins.c:142 +msgid "unset [-f] [-v] [name ...]" +msgstr "" + +#: builtins.c:144 +msgid "export [-fn] [name[=value] ...] or export -p" +msgstr "" + +#: builtins.c:146 +msgid "readonly [-af] [name[=value] ...] or readonly -p" +msgstr "" + +#: builtins.c:148 +#, fuzzy +msgid "shift [n]" +msgstr "licznik przesuniêcia" + +#: builtins.c:150 +#, fuzzy +msgid "source filename [arguments]" +msgstr "wymagany argument w postaci nazwy pliku" + +#: builtins.c:152 +#, fuzzy +msgid ". filename [arguments]" +msgstr "wymagany argument w postaci nazwy pliku" + +#: builtins.c:155 +msgid "suspend [-f]" +msgstr "" + +#: builtins.c:158 +msgid "test [expr]" +msgstr "" + +#: builtins.c:160 +msgid "[ arg... ]" +msgstr "" + +#: builtins.c:162 +msgid "times" +msgstr "" + +#: builtins.c:164 +msgid "trap [-lp] [[arg] signal_spec ...]" +msgstr "" + +#: builtins.c:166 +msgid "type [-afptP] name [name ...]" +msgstr "" + +#: builtins.c:169 +msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]" +msgstr "" + +#: builtins.c:172 +msgid "umask [-p] [-S] [mode]" +msgstr "" + +#: builtins.c:175 +msgid "wait [id]" +msgstr "" + +#: builtins.c:179 +msgid "wait [pid]" +msgstr "" + +#: builtins.c:182 +msgid "for NAME [in WORDS ... ] ; do COMMANDS; done" +msgstr "" + +#: builtins.c:184 +msgid "for (( exp1; exp2; exp3 )); do COMMANDS; done" +msgstr "" + +#: builtins.c:186 +msgid "select NAME [in WORDS ... ;] do COMMANDS; done" +msgstr "" + +#: builtins.c:188 +msgid "time [-p] pipeline" +msgstr "" + +#: builtins.c:190 +msgid "case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac" +msgstr "" + +#: builtins.c:192 +msgid "" +"if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else " +"COMMANDS; ] fi" +msgstr "" + +#: builtins.c:194 +msgid "while COMMANDS; do COMMANDS; done" +msgstr "" + +#: builtins.c:196 +msgid "until COMMANDS; do COMMANDS; done" +msgstr "" + +#: builtins.c:198 +msgid "function name { COMMANDS ; } or name () { COMMANDS ; }" +msgstr "" + +#: builtins.c:200 +msgid "{ COMMANDS ; }" +msgstr "" + +#: builtins.c:202 +msgid "job_spec [&]" +msgstr "" + +#: builtins.c:204 +#, fuzzy +msgid "(( expression ))" +msgstr "spodziewano siê wyra¿enia" + +#: builtins.c:206 +#, fuzzy +msgid "[[ expression ]]" +msgstr "spodziewano siê wyra¿enia" + +#: builtins.c:208 +msgid "variables - Names and meanings of some shell variables" +msgstr "" + +#: builtins.c:211 +msgid "pushd [-n] [+N | -N | dir]" +msgstr "" + +#: builtins.c:215 +msgid "popd [-n] [+N | -N]" +msgstr "" + +#: builtins.c:219 +msgid "dirs [-clpv] [+N] [-N]" +msgstr "" + +#: builtins.c:222 +msgid "shopt [-pqsu] [-o] [optname ...]" +msgstr "" + +#: builtins.c:224 +msgid "printf [-v var] format [arguments]" +msgstr "" + +#: builtins.c:227 +msgid "" +"complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W " +"wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] " +"[name ...]" +msgstr "" + +#: builtins.c:231 +msgid "" +"compgen [-abcdefgjksuv] [-o option] [-A action] [-G globpat] [-W wordlist] " +"[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]" +msgstr "" + +#: builtins.c:235 +msgid "compopt [-o|+o option] [name ...]" +msgstr "" + +#: builtins.c:238 +msgid "" +"mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c " +"quantum] [array]" +msgstr "" + +#: builtins.c:250 +#, fuzzy +msgid "" +"Define or display aliases.\n" +" \n" +" Without arguments, `alias' prints the list of aliases in the reusable\n" +" form `alias NAME=VALUE' on standard output.\n" +" \n" +" Otherwise, an alias is defined for each NAME whose VALUE is given.\n" +" A trailing space in VALUE causes the next word to be checked for\n" +" alias substitution when the alias is expanded.\n" +" \n" +" Options:\n" +" -p\tPrint all defined aliases in a reusable format\n" +" \n" +" Exit Status:\n" +" alias returns true unless a NAME is supplied for which no alias has " +"been\n" +" defined." +msgstr "" +"`alias' bez argumentów lub z opcj± -p wypisuje na standardowym wyj¶ciu\n" +" listê aliasów w postaci alias NAME=VALUE. W przeciwnym przypadku\n" +" definiowany jest alias dla ka¿dego NAME, dla którego podano VALUE.\n" +" Spacja na koñcu VALUE powoduje, ¿e podczas rozwijania tego aliasu\n" +" podstawienie aliasów bêdzie przeprowadzone tak¿e dla nastêpnego\n" +" s³owa. Polecenie alias zwraca prawdê, chyba ¿e poda siê NAME, dla\n" +" którego nie zdefiniowano aliasu." + +#: builtins.c:272 +#, fuzzy +msgid "" +"Remove each NAME from the list of defined aliases.\n" +" \n" +" Options:\n" +" -a\tremove all alias definitions.\n" +" \n" +" Return success unless a NAME is not an existing alias." +msgstr "" +"Usuwa wszystkie NAME z listy zdefiniowanych aliasów. Je¶li podano opcjê -a,\n" +" usuwane s± wszystkie definicje aliasów." + +#: builtins.c:285 +#, fuzzy +msgid "" +"Set Readline key bindings and variables.\n" +" \n" +" Bind a key sequence to a Readline function or a macro, or set a\n" +" Readline variable. The non-option argument syntax is equivalent to\n" +" that found in ~/.inputrc, but must be passed as a single argument:\n" +" e.g., bind '\"\\C-x\\C-r\": re-read-init-file'.\n" +" \n" +" Options:\n" +" -m keymap Use KEYMAP as the keymap for the duration of this\n" +" command. Acceptable keymap names are emacs,\n" +" emacs-standard, emacs-meta, emacs-ctlx, vi, vi-" +"move,\n" +" vi-command, and vi-insert.\n" +" -l List names of functions.\n" +" -P List function names and bindings.\n" +" -p List functions and bindings in a form that can be\n" +" reused as input.\n" +" -S List key sequences that invoke macros and their " +"values\n" +" -s List key sequences that invoke macros and their " +"values\n" +" in a form that can be reused as input.\n" +" -V List variable names and values\n" +" -v List variable names and values in a form that can\n" +" be reused as input.\n" +" -q function-name Query about which keys invoke the named function.\n" +" -u function-name Unbind all keys which are bound to the named " +"function.\n" +" -r keyseq Remove the binding for KEYSEQ.\n" +" -f filename Read key bindings from FILENAME.\n" +" -x keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n" +" \t\t\t\tKEYSEQ is entered.\n" +" \n" +" Exit Status:\n" +" bind returns 0 unless an unrecognized option is given or an error occurs." +msgstr "" +"Przypisanie sekwencji klawiszy do funkcji Readline lub makra albo " +"ustawienie\n" +" zmiennej Readline. Sk³adnia pozbawiona opcji jest równowa¿na stosowanej\n" +" w ~/.inputrc, ale musi byæ przekazana jako jeden argument:\n" +" bind '\"\\C-x\\C-r\": re-read-init-file'.\n" +" bind akceptuje nastêpuj±ce opcje:\n" +" -m keymap U¿ycie `keymap' jako mapy klawiatury na czas tego\n" +" polecenia. Dozwolone nazwy map klawiatury to " +"emacs,\n" +" emacs-standard, emacs-meta, emacs-ctlx, vi, vi-" +"move,\n" +" vi-command i vi-insert.\n" +" -l Wypisanie nazw funkcji.\n" +" -P Wypisanie nazw funkcji i dowi±zañ.\n" +" -p Wypisanie funkcji i dowi±zañ w postaci nadaj±cej " +"siê\n" +" do u¿ycia jako dane wej¶ciowe.\n" +" -r keyseq Usuniêcie dowi±zania dla KEYSEQ.\n" +" -x keyseq:shell-command\tPowoduje uruchomienie SHELL-COMMAND, gdy\n" +" \t\t\t\twprowadzone zostanie KEYSEQ.\n" +" -f filename Odczyt dowi±zañ dla klawiszy z pliku FILENAME.\n" +" -q function-name Okre¶lenie, które klawisze wywo³uj± zadan± " +"funkcjê.\n" +" -u function-name Anulowanie wszystkich dowi±zañ dla klawiszy\n" +" przypisanych do funkcji function-name.\n" +" -V Wypisanie nazw zmiennych i ich warto¶ci.\n" +" -v Wypisanie nazw zmiennych i ich warto¶ci w postaci\n" +" nadaj±cej siê do u¿ycia jako dane wej¶ciowe.\n" +" -S Wypisanie sekwencji klawiszy wywo³uj±cych makra " +"oraz\n" +" ich warto¶ci.\n" +" -s Wypisanie sekwencji klawiszy wywo³uj±cych makra " +"oraz\n" +" ich warto¶ci w postaci nadaj±cej siê do u¿ycia " +"jako\n" +" dane wej¶ciowe." + +#: builtins.c:322 +#, fuzzy +msgid "" +"Exit for, while, or until loops.\n" +" \n" +" Exit a FOR, WHILE or UNTIL loop. If N is specified, break N enclosing\n" +" loops.\n" +" \n" +" Exit Status:\n" +" The exit status is 0 unless N is not greater than or equal to 1." +msgstr "" +"Rozpoczêcie nastêpnej iteracji pêtli FOR, WHILE lub UNTIL zawier±jacej\n" +" polecenie. Je¶li podano N, iteracja dotyczy pêtli N-tego poziomu." + +#: builtins.c:334 +#, fuzzy +msgid "" +"Resume for, while, or until loops.\n" +" \n" +" Resumes the next iteration of the enclosing FOR, WHILE or UNTIL loop.\n" +" If N is specified, resumes the Nth enclosing loop.\n" +" \n" +" Exit Status:\n" +" The exit status is 0 unless N is not greater than or equal to 1." +msgstr "" +"Rozpoczêcie nastêpnej iteracji pêtli FOR, WHILE lub UNTIL zawier±jacej\n" +" polecenie. Je¶li podano N, iteracja dotyczy pêtli N-tego poziomu." + +#: builtins.c:346 +msgid "" +"Execute shell builtins.\n" +" \n" +" Execute SHELL-BUILTIN with arguments ARGs without performing command\n" +" lookup. This is useful when you wish to reimplement a shell builtin\n" +" as a shell function, but need to execute the builtin within the " +"function.\n" +" \n" +" Exit Status:\n" +" Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is\n" +" not a shell builtin.." +msgstr "" + +#: builtins.c:361 +#, fuzzy +msgid "" +"Return the context of the current subroutine call.\n" +" \n" +" Without EXPR, returns \"$line $filename\". With EXPR, returns\n" +" \"$line $subroutine $filename\"; this extra information can be used to\n" +" provide a stack trace.\n" +" \n" +" The value of EXPR indicates how many call frames to go back before the\n" +" current one; the top frame is frame 0.\n" +" \n" +" Exit Status:\n" +" Returns 0 unless the shell is not executing a shell function or EXPR\n" +" is invalid." +msgstr "" +"Zwrócenie kontekstu wywo³ania bie¿±cej procedury.\n" +" \n" +" Bez EXPR, zwracane jest \"$line $filename\". Z EXPR, zwracane jest\n" +" \"$line $subroutine $filename\"; dodatkowe informacje s³u¿± do\n" +" udostêpnienia ¶ladu stosu.\n" +" \n" +" Warto¶æ EXPR okre¶la o ile ramek wywo³añ wzglêdem bie¿±cej ramki\n" +" nale¿y siê cofn±æ; numer najwy¿szej ramki to 0." + +#: builtins.c:379 +#, fuzzy +msgid "" +"Change the shell working directory.\n" +" \n" +" Change the current directory to DIR. The default DIR is the value of " +"the\n" +" HOME shell variable.\n" +" \n" +" The variable CDPATH defines the search path for the directory " +"containing\n" +" DIR. Alternative directory names in CDPATH are separated by a colon " +"(:).\n" +" A null directory name is the same as the current directory. If DIR " +"begins\n" +" with a slash (/), then CDPATH is not used.\n" +" \n" +" If the directory is not found, and the shell option `cdable_vars' is " +"set,\n" +" the word is assumed to be a variable name. If that variable has a " +"value,\n" +" its value is used for DIR.\n" +" \n" +" Options:\n" +" -L\tforce symbolic links to be followed\n" +" -P\tuse the physical directory structure without following symbolic\n" +" \tlinks\n" +" \n" +" The default is to follow symbolic links, as if `-L' were specified.\n" +" \n" +" Exit Status:\n" +" Returns 0 if the directory is changed; non-zero otherwise." +msgstr "" +"Zmiana bie¿±cego katalogu na DIR. Domy¶lnym DIR jest zmienna $HOME.\n" +" Zmienna CDPATH okre¶la ¶cie¿kê przeszukiwania w poszukiwaniu katalogu\n" +" zawieraj±cego DIR. Alternatywne nazwy katalogów s± w CDPATH rozdzielone\n" +" dwukropkami (:). Pusta nazwa katalogu oznacza to samo, co katalog\n" +" bie¿±cy, tzn. `.'. Je¶li DIR zaczyna siê od uko¶nika (/), to CDPATH nie\n" +" nie jest u¿ywane. Gdy katalog nie zostanie znaleziony, a ustawiona\n" +" zmienna pow³oki `cdable_vars', to nastêpuje próba u¿ycia podanej nazwy\n" +" jako nazwy zmiennej. Je¶li zmienna ta ma warto¶æ, to wykonywane jest cd\n" +" do warto¶ci tej zmiennej. Opcja -P poleca korzystaæ z fizycznej " +"struktury\n" +" katalogów zamiast ¶ledzenia dowi±zañ symbolicznych; opcja -L wymusza\n" +" ¶ledzenie dowi±zañ symbolicznych." + +#: builtins.c:407 +msgid "" +"Print the name of the current working directory.\n" +" \n" +" Options:\n" +" -L\tprint the value of $PWD if it names the current working\n" +" \tdirectory\n" +" -P\tprint the physical directory, without any symbolic links\n" +" \n" +" By default, `pwd' behaves as if `-L' were specified.\n" +" \n" +" Exit Status:\n" +" Returns 0 unless an invalid option is given or the current directory\n" +" cannot be read." +msgstr "" + +#: builtins.c:424 +#, fuzzy +msgid "" +"Null command.\n" +" \n" +" No effect; the command does nothing.\n" +" \n" +" Exit Status:\n" +" Always succeeds." +msgstr "" +"¯adnego efektu; polecenie nic nie robi. Jako kod zakoñczenia\n" +" zwracane jest zero." + +#: builtins.c:435 +msgid "" +"Return a successful result.\n" +" \n" +" Exit Status:\n" +" Always succeeds." +msgstr "" + +#: builtins.c:444 +#, fuzzy +msgid "" +"Return an unsuccessful result.\n" +" \n" +" Exit Status:\n" +" Always fails." +msgstr "Zwracany jest niepomy¶lny wynik zakoñczenia." + +#: builtins.c:453 +msgid "" +"Execute a simple command or display information about commands.\n" +" \n" +" Runs COMMAND with ARGS suppressing shell function lookup, or display\n" +" information about the specified COMMANDs. Can be used to invoke " +"commands\n" +" on disk when a function with the same name exists.\n" +" \n" +" Options:\n" +" -p\tuse a default value for PATH that is guaranteed to find all of\n" +" \tthe standard utilities\n" +" -v\tprint a description of COMMAND similar to the `type' builtin\n" +" -V\tprint a more verbose description of each COMMAND\n" +" \n" +" Exit Status:\n" +" Returns exit status of COMMAND, or failure if COMMAND is not found." +msgstr "" + +#: builtins.c:472 +#, fuzzy +msgid "" +"Set variable values and attributes.\n" +" \n" +" Declare variables and give them attributes. If no NAMEs are given,\n" +" display the attributes and values of all variables.\n" +" \n" +" Options:\n" +" -f\trestrict action or display to function names and definitions\n" +" -F\trestrict display to function names only (plus line number and\n" +" \tsource file when debugging)\n" +" -p\tdisplay the attributes and value of each NAME\n" +" \n" +" Options which set attributes:\n" +" -a\tto make NAMEs indexed arrays (if supported)\n" +" -A\tto make NAMEs associative arrays (if supported)\n" +" -i\tto make NAMEs have the `integer' attribute\n" +" -l\tto convert NAMEs to lower case on assignment\n" +" -r\tto make NAMEs readonly\n" +" -t\tto make NAMEs have the `trace' attribute\n" +" -u\tto convert NAMEs to upper case on assignment\n" +" -x\tto make NAMEs export\n" +" \n" +" Using `+' instead of `-' turns off the given attribute.\n" +" \n" +" Variables with the integer attribute have arithmetic evaluation (see\n" +" the `let' command) performed when the variable is assigned a value.\n" +" \n" +" When used in a function, `declare' makes NAMEs local, as with the " +"`local'\n" +" command.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" +"Deklarowanie zmiennych i/lub nadawanie im atrybutów. Je¶li nie podano NAME,\n" +" wypisywane s± warto¶ci zmiennych. Opcja -p powoduje wypisanie atrybutów\n" +" i warto¶ci dla ka¿dego NAME.\n" +" \n" +" Pozosta³e opcje:\n" +" \n" +" -a\tuczynienie wszystkich NAME tablicami (je¶li wspierane)\n" +" -f\twybranie tylko spo¶ród nazw funkcji\n" +" -F\twypisanie nazw funkcji (oraz, w przypadku ¶ledzenia, numerów\n" +" \twierszy i nazw plików) bez definicji\n" +" -i\tnadanie wszystkim NAME atrybutu `integer'\n" +" -r\tuczynienie wszystkich NAME tylko do odczytu\n" +" -t\tnadanie wszystkim NAME atrybutu `trace'\n" +" -x\tuczynienie wszystkich NAME eksportowanymi\n" +" \n" +" Dla zmiennych posiadaj±cych atrybut integer wykonywana jest podczas\n" +" nadawania im warto¶ci ewaluacja arytmetyczna (patrz `let').\n" +" \n" +" Przy wypisywaniu warto¶ci zmiennych, -f powoduje wypisanie zarówno " +"nazw,\n" +" jak i definicji funkcji. Przy opcji -F wypisywane s± tylko nazwy " +"funkcji.\n" +" \n" +" U¿ycie `+' zamiast `-' powoduje wy³±czenie danego atrybutu. U¿yte\n" +" w funkcji czyni wszystkie NAME lokalnymi, podobnie jak polecenie `local'." + +#: builtins.c:508 +msgid "" +"Set variable values and attributes.\n" +" \n" +" Obsolete. See `help declare'." +msgstr "" + +#: builtins.c:516 +msgid "" +"Define local variables.\n" +" \n" +" Create a local variable called NAME, and give it VALUE. OPTION can\n" +" be any option accepted by `declare'.\n" +" \n" +" Local variables can only be used within a function; they are visible\n" +" only to the function where they are defined and its children.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied, an error occurs,\n" +" or the shell is not executing a function." +msgstr "" + +#: builtins.c:533 +#, fuzzy +msgid "" +"Write arguments to the standard output.\n" +" \n" +" Display the ARGs on the standard output followed by a newline.\n" +" \n" +" Options:\n" +" -n\tdo not append a newline\n" +" -e\tenable interpretation of the following backslash escapes\n" +" -E\texplicitly suppress interpretation of backslash escapes\n" +" \n" +" `echo' interprets the following backslash-escaped characters:\n" +" \\a\talert (bell)\n" +" \\b\tbackspace\n" +" \\c\tsuppress further output\n" +" \\e\tescape character\n" +" \\f\tform feed\n" +" \\n\tnew line\n" +" \\r\tcarriage return\n" +" \\t\thorizontal tab\n" +" \\v\tvertical tab\n" +" \\\\\tbackslash\n" +" \\0nnn\tthe character whose ASCII code is NNN (octal). NNN can be\n" +" \t0 to 3 octal digits\n" +" \\xHH\tthe eight-bit character whose value is HH (hexadecimal). HH\n" +" \tcan be one or two hex digits\n" +" \n" +" Exit Status:\n" +" Returns success unless a write error occurs." +msgstr "" +"Wypisanie argumentów. Je¶li podano -n, pomijany jest koñcowy znak nowego\n" +" wiersza. Je¶li podano opcjê -e, w³±czana jest interpretacja " +"nastêpuj±cych\n" +" znaków poprzedzonych odwrotnym uko¶nikiem:\n" +" \t\\a\talarm (dzwonek)\n" +" \t\\b\tcofanie\n" +" \t\\c\tlikwidacja koñcowego znaku nowego wiersza\n" +" \t\\E\tznak ESCAPE\n" +" \t\\f\twysuw strony\n" +" \t\\n\tnowy wiersz\n" +" \t\\r\tpowrót karetki\n" +" \t\\t\ttabulacja pozioma\n" +" \t\\v\ttabulacja pionowa\n" +" \t\\\\\todwrotny uko¶nik\n" +" \t\\0nnn\tznak o kodzie ASCII NNN (ósemkowo). NNN mo¿e stanowiæ od\n" +" \t\t0 do 3 cyfr ósemkowych\n" +" \n" +" Za pomoc± opcji -E mo¿na jawnie wy³±czyæ interpretacjê powy¿szych znaków." + +#: builtins.c:567 +msgid "" +"Write arguments to the standard output.\n" +" \n" +" Display the ARGs on the standard output followed by a newline.\n" +" \n" +" Options:\n" +" -n\tdo not append a newline\n" +" \n" +" Exit Status:\n" +" Returns success unless a write error occurs." +msgstr "" + +#: builtins.c:582 +msgid "" +"Enable and disable shell builtins.\n" +" \n" +" Enables and disables builtin shell commands. Disabling allows you to\n" +" execute a disk command which has the same name as a shell builtin\n" +" without using a full pathname.\n" +" \n" +" Options:\n" +" -a\tprint a list of builtins showing whether or not each is enabled\n" +" -n\tdisable each NAME or display a list of disabled builtins\n" +" -p\tprint the list of builtins in a reusable format\n" +" -s\tprint only the names of Posix `special' builtins\n" +" \n" +" Options controlling dynamic loading:\n" +" -f\tLoad builtin NAME from shared object FILENAME\n" +" -d\tRemove a builtin loaded with -f\n" +" \n" +" Without options, each NAME is enabled.\n" +" \n" +" To use the `test' found in $PATH instead of the shell builtin\n" +" version, type `enable -n test'.\n" +" \n" +" Exit Status:\n" +" Returns success unless NAME is not a shell builtin or an error occurs." +msgstr "" + +#: builtins.c:610 +msgid "" +"Execute arguments as a shell command.\n" +" \n" +" Combine ARGs into a single string, use the result as input to the " +"shell,\n" +" and execute the resulting commands.\n" +" \n" +" Exit Status:\n" +" Returns exit status of command or success if command is null." +msgstr "" + +#: builtins.c:622 +msgid "" +"Parse option arguments.\n" +" \n" +" Getopts is used by shell procedures to parse positional parameters\n" +" as options.\n" +" \n" +" OPTSTRING contains the option letters to be recognized; if a letter\n" +" is followed by a colon, the option is expected to have an argument,\n" +" which should be separated from it by white space.\n" +" \n" +" Each time it is invoked, getopts will place the next option in the\n" +" shell variable $name, initializing name if it does not exist, and\n" +" the index of the next argument to be processed into the shell\n" +" variable OPTIND. OPTIND is initialized to 1 each time the shell or\n" +" a shell script is invoked. When an option requires an argument,\n" +" getopts places that argument into the shell variable OPTARG.\n" +" \n" +" getopts reports errors in one of two ways. If the first character\n" +" of OPTSTRING is a colon, getopts uses silent error reporting. In\n" +" this mode, no error messages are printed. If an invalid option is\n" +" seen, getopts places the option character found into OPTARG. If a\n" +" required argument is not found, getopts places a ':' into NAME and\n" +" sets OPTARG to the option character found. If getopts is not in\n" +" silent mode, and an invalid option is seen, getopts places '?' into\n" +" NAME and unsets OPTARG. If a required argument is not found, a '?'\n" +" is placed in NAME, OPTARG is unset, and a diagnostic message is\n" +" printed.\n" +" \n" +" If the shell variable OPTERR has the value 0, getopts disables the\n" +" printing of error messages, even if the first character of\n" +" OPTSTRING is not a colon. OPTERR has the value 1 by default.\n" +" \n" +" Getopts normally parses the positional parameters ($0 - $9), but if\n" +" more arguments are given, they are parsed instead.\n" +" \n" +" Exit Status:\n" +" Returns success if an option is found; fails if the end of options is\n" +" encountered or an error occurs." +msgstr "" + +#: builtins.c:664 +msgid "" +"Replace the shell with the given command.\n" +" \n" +" Execute COMMAND, replacing this shell with the specified program.\n" +" ARGUMENTS become the arguments to COMMAND. If COMMAND is not " +"specified,\n" +" any redirections take effect in the current shell.\n" +" \n" +" Options:\n" +" -a name\tpass NAME as the zeroth argument to COMMAND\n" +" -c\t\texecute COMMAND with an empty environment\n" +" -l\t\tplace a dash in the zeroth argument to COMMAND\n" +" \n" +" If the command cannot be executed, a non-interactive shell exits, " +"unless\n" +" the shell option `execfail' is set.\n" +" \n" +" Exit Status:\n" +" Returns success unless COMMAND is not found or a redirection error " +"occurs." +msgstr "" + +#: builtins.c:685 +#, fuzzy +msgid "" +"Exit the shell.\n" +" \n" +" Exits the shell with a status of N. If N is omitted, the exit status\n" +" is that of the last command executed." +msgstr "" +"Opuszczenie pow³oki z kodem zakoñczenia N. Je¶li N pominiêto, kodem\n" +" zakoñczenia bêdzie kod zakoñczenia ostatniego wykonanego polecenia." + +#: builtins.c:694 +msgid "" +"Exit a login shell.\n" +" \n" +" Exits a login shell with exit status N. Returns an error if not " +"executed\n" +" in a login shell." +msgstr "" + +#: builtins.c:704 +#, fuzzy +msgid "" +"Display or execute commands from the history list.\n" +" \n" +" fc is used to list or edit and re-execute commands from the history " +"list.\n" +" FIRST and LAST can be numbers specifying the range, or FIRST can be a\n" +" string, which means the most recent command beginning with that\n" +" string.\n" +" \n" +" Options:\n" +" -e ENAME\tselect which editor to use. Default is FCEDIT, then " +"EDITOR,\n" +" \t\tthen vi\n" +" -l \tlist lines instead of editing\n" +" -n\tomit line numbers when listing\n" +" -r\treverse the order of the lines (newest listed first)\n" +" \n" +" With the `fc -s [pat=rep ...] [command]' format, COMMAND is\n" +" re-executed after the substitution OLD=NEW is performed.\n" +" \n" +" A useful alias to use with this is r='fc -s', so that typing `r cc'\n" +" runs the last command beginning with `cc' and typing `r' re-executes\n" +" the last command.\n" +" \n" +" Exit Status:\n" +" Returns success or status of executed command; non-zero if an error " +"occurs." +msgstr "" +"fc s³u¿y do wypisywania, edycji i pomownego uruchamiania poleceñ z listy\n" +" historii. FIRST i LAST jako liczby okre¶laj± zakres lub FIRST jako " +"napis\n" +" oznacza najpó¼niej wykonywane polecenie zaczynaj±ce siê od tego napisu.\n" +" \n" +" -e ENAME okre¶la edytor, który ma byæ u¿ywany. Domy¶lnymi " +"warto¶ciami\n" +" s±: najpierw FCEDIT, potem EDITOR, a na koñcu vi.\n" +" \n" +" -l oznacza wypisysanie wierszy zamiast ich edycji.\n" +" -n oznacza niewypisysanie numerów wierszy.\n" +" -r oznacza odwrócenie kolejno¶ci wierszy (czyni±c najnowsze wypisane\n" +" polecenie pierwszym).\n" +" \n" +" Przy wywo³aniu polecenia w postaci `fc -s [pat=rep ...] [command]',\n" +" jest ono wywo³ywane ponownie po wykonaniu podstawienia OLD=NEW.\n" +" \n" +" Przydatnym aliasem korzystaj±cym z tego jest r='fc -s' tak, ¿e " +"napisanie\n" +" `r cc' uruchamia ostatnie polecenie zaczynaj±ce siê od `cc' a napisanie\n" +" `r' uruchamia ponownie ostatnie polecenie." + +#: builtins.c:734 +#, fuzzy +msgid "" +"Move job to the foreground.\n" +" \n" +" Place the job identified by JOB_SPEC in the foreground, making it the\n" +" current job. If JOB_SPEC is not present, the shell's notion of the\n" +" current job is used.\n" +" \n" +" Exit Status:\n" +" Status of command placed in foreground, or failure if an error occurs." +msgstr "" +"Umieszczenie JOB_SPEC na pierwszym planie oraz uczynienie go bie¿±cym\n" +" zadaniem. Je¶li nie podano JOB_SPEC, u¿yte zostanie zadanie bie¿±ce\n" +" w rozumieniu pow³oki" + +#: builtins.c:749 +#, fuzzy +msgid "" +"Move jobs to the background.\n" +" \n" +" Place the jobs identified by each JOB_SPEC in the background, as if " +"they\n" +" had been started with `&'. If JOB_SPEC is not present, the shell's " +"notion\n" +" of the current job is used.\n" +" \n" +" Exit Status:\n" +" Returns success unless job control is not enabled or an error occurs." +msgstr "" +"Umieszczenie wszystkich JOB_SPEC w tle tak, jakby zosta³y uruchomione\n" +" z `&'. Je¶li nie podano JOB_SPEC, u¿yte zostanie zadanie bie¿±ce\n" +" w rozumieniu pow³oki" + +#: builtins.c:763 +msgid "" +"Remember or display program locations.\n" +" \n" +" Determine and remember the full pathname of each command NAME. If\n" +" no arguments are given, information about remembered commands is " +"displayed.\n" +" \n" +" Options:\n" +" -d\t\tforget the remembered location of each NAME\n" +" -l\t\tdisplay in a format that may be reused as input\n" +" -p pathname\tuse PATHNAME is the full pathname of NAME\n" +" -r\t\tforget all remembered locations\n" +" -t\t\tprint the remembered location of each NAME, preceding\n" +" \t\teach location with the corresponding NAME if multiple\n" +" \t\tNAMEs are given\n" +" Arguments:\n" +" NAME\t\tEach NAME is searched for in $PATH and added to the list\n" +" \t\tof remembered commands.\n" +" \n" +" Exit Status:\n" +" Returns success unless NAME is not found or an invalid option is given." +msgstr "" + +#: builtins.c:788 +msgid "" +"Display information about builtin commands.\n" +" \n" +" Displays brief summaries of builtin commands. If PATTERN is\n" +" specified, gives detailed help on all commands matching PATTERN,\n" +" otherwise the list of help topics is printed.\n" +" \n" +" Options:\n" +" -d\toutput short description for each topic\n" +" -m\tdisplay usage in pseudo-manpage format\n" +" -s\toutput only a short usage synopsis for each topic matching\n" +" \tPATTERN\n" +" \n" +" Arguments:\n" +" PATTERN\tPattern specifiying a help topic\n" +" \n" +" Exit Status:\n" +" Returns success unless PATTERN is not found or an invalid option is " +"given." +msgstr "" + +#: builtins.c:812 +msgid "" +"Display or manipulate the history list.\n" +" \n" +" Display the history list with line numbers, prefixing each modified\n" +" entry with a `*'. An argument of N lists only the last N entries.\n" +" \n" +" Options:\n" +" -c\tclear the history list by deleting all of the entries\n" +" -d offset\tdelete the history entry at offset OFFSET.\n" +" \n" +" -a\tappend history lines from this session to the history file\n" +" -n\tread all history lines not already read from the history file\n" +" -r\tread the history file and append the contents to the history\n" +" \tlist\n" +" -w\twrite the current history to the history file\n" +" \tand append them to the history list\n" +" \n" +" -p\tperform history expansion on each ARG and display the result\n" +" \twithout storing it in the history list\n" +" -s\tappend the ARGs to the history list as a single entry\n" +" \n" +" If FILENAME is given, it is used as the history file. Otherwise,\n" +" if $HISTFILE has a value, that is used, else ~/.bash_history.\n" +" \n" +" If the $HISTTIMEFORMAT variable is set and not null, its value is used\n" +" as a format string for strftime(3) to print the time stamp associated\n" +" with each displayed history entry. No time stamps are printed " +"otherwise.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or an error occurs." +msgstr "" + +#: builtins.c:848 +#, fuzzy +msgid "" +"Display status of jobs.\n" +" \n" +" Lists the active jobs. JOBSPEC restricts output to that job.\n" +" Without options, the status of all active jobs is displayed.\n" +" \n" +" Options:\n" +" -l\tlists process IDs in addition to the normal information\n" +" -n\tlist only processes that have changed status since the last\n" +" \tnotification\n" +" -p\tlists process IDs only\n" +" -r\trestrict output to running jobs\n" +" -s\trestrict output to stopped jobs\n" +" \n" +" If -x is supplied, COMMAND is run after all job specifications that\n" +" appear in ARGS have been replaced with the process ID of that job's\n" +" process group leader.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or an error occurs.\n" +" If -x is used, returns the exit status of COMMAND." +msgstr "" +"Wypisanie aktywnych zadañ. Opcja -l powoduje wypisanie oprócz zwyk³ej\n" +" informacji tak¿e numerów PID procesów; Opcja -p powoduje wypisanie " +"tylko\n" +" numerów PID procesów. Przy podaniu opcji -n, wypisywane s± tylko te\n" +" procesy, których stan uleg³ zmianie od ostatniego powiadomienia.\n" +" JOBSPEC ogranicza wypisywanie do danego zadania. Opcje -r i -s\n" +" ograniczaj± wypisywanie do zadañ, odpowiednio, dzia³aj±cych i\n" +" zatrzymanych. Bez opcji wypisywany jest stan wszystkich aktywnych " +"zadañ.\n" +" Przy podaniu -x, uruchamiane jet polecenie COMMAND po zast±pieniu\n" +" ka¿dej z wystêpuj±cych w ARGS specyfikacji zadañ numerem PID procesu\n" +" wiod±cego danego zadania." + +#: builtins.c:875 +msgid "" +"Remove jobs from current shell.\n" +" \n" +" Removes each JOBSPEC argument from the table of active jobs. Without\n" +" any JOBSPECs, the shell uses its notion of the current job.\n" +" \n" +" Options:\n" +" -a\tremove all jobs if JOBSPEC is not supplied\n" +" -h\tmark each JOBSPEC so that SIGHUP is not sent to the job if the\n" +" \tshell receives a SIGHUP\n" +" -r\tremove only running jobs\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option or JOBSPEC is given." +msgstr "" + +#: builtins.c:894 +#, fuzzy +msgid "" +"Send a signal to a job.\n" +" \n" +" Send the processes identified by PID or JOBSPEC the signal named by\n" +" SIGSPEC or SIGNUM. If neither SIGSPEC nor SIGNUM is present, then\n" +" SIGTERM is assumed.\n" +" \n" +" Options:\n" +" -s sig\tSIG is a signal name\n" +" -n sig\tSIG is a signal number\n" +" -l\tlist the signal names; if arguments follow `-l' they are\n" +" \tassumed to be signal numbers for which names should be listed\n" +" \n" +" Kill is a shell builtin for two reasons: it allows job IDs to be used\n" +" instead of process IDs, and allows processes to be killed if the limit\n" +" on processes that you can create is reached.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or an error occurs." +msgstr "" +"Wys³anie do procesów okre¶lonych przez PID (lub JOBSPEC) sygna³u SIGSPEC.\n" +" Gdy SIGSPEC nie jest podany, zak³ada siê, ¿e chodzi o SIGTERM. Argument\n" +" `-l' powoduje wypisanie nazw sygna³ów; je¶li po `-l' wystêpuj± jakie¶\n" +" argumenty, zak³ada siê, ¿e s± to numery sygna³ów, dla których nale¿y\n" +" wypisaæ nazwy. Kill jest poleceniem wewnêtrznym z dwóch powodów:\n" +" umo¿liwia korzystanie z identyfikatorów zadañ zamiast numerów PID\n" +" oraz, w przypadku osi±gniêcia ograniczenia na liczbê procesów, nie\n" +" powoduje potrzeby uruchamiania dodatkowego procesu, aby jaki¶ ubiæ." + +#: builtins.c:917 +#, fuzzy +msgid "" +"Evaluate arithmetic expressions.\n" +" \n" +" Evaluate each ARG as an arithmetic expression. Evaluation is done in\n" +" fixed-width integers with no check for overflow, though division by 0\n" +" is trapped and flagged as an error. The following list of operators is\n" +" grouped into levels of equal-precedence operators. The levels are " +"listed\n" +" in order of decreasing precedence.\n" +" \n" +" \tid++, id--\tvariable post-increment, post-decrement\n" +" \t++id, --id\tvariable pre-increment, pre-decrement\n" +" \t-, +\t\tunary minus, plus\n" +" \t!, ~\t\tlogical and bitwise negation\n" +" \t**\t\texponentiation\n" +" \t*, /, %\t\tmultiplication, division, remainder\n" +" \t+, -\t\taddition, subtraction\n" +" \t<<, >>\t\tleft and right bitwise shifts\n" +" \t<=, >=, <, >\tcomparison\n" +" \t==, !=\t\tequality, inequality\n" +" \t&\t\tbitwise AND\n" +" \t^\t\tbitwise XOR\n" +" \t|\t\tbitwise OR\n" +" \t&&\t\tlogical AND\n" +" \t||\t\tlogical OR\n" +" \texpr ? expr : expr\n" +" \t\t\tconditional operator\n" +" \t=, *=, /=, %=,\n" +" \t+=, -=, <<=, >>=,\n" +" \t&=, ^=, |=\tassignment\n" +" \n" +" Shell variables are allowed as operands. The name of the variable\n" +" is replaced by its value (coerced to a fixed-width integer) within\n" +" an expression. The variable need not have its integer attribute\n" +" turned on to be used in an expression.\n" +" \n" +" Operators are evaluated in order of precedence. Sub-expressions in\n" +" parentheses are evaluated first and may override the precedence\n" +" rules above.\n" +" \n" +" Exit Status:\n" +" If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise.." +msgstr "" +"Ka¿dy z argumentów jest wyra¿eniem arytmetycznym do obliczenia. Obliczenia\n" +" s± wykonywane dla liczb ca³kowitych o sta³ej d³ugo¶ci bez sprawdzania\n" +" przepe³nienia, jednak¿e dzielenie przez 0 jest przechwytywane i " +"oznaczane\n" +" jako b³±d. Nastêpuj±ca lista operatorów jest pogrupowana na poziomy\n" +" operatorów o jednakowym priorytecie.\n" +" Poziomy s± wypisane w kolejno¶ci malej±cego priorytetu.\n" +" \n" +" \tid++, id--\tpost-inkrementacja, post-dekrementacja zmiennej\n" +" \t++id, --id\tpre-inkrementacja, pre-dekrementacja zmiennej\n" +" \t-, +\t\tjednoargumentowy minus, plus\n" +" \t!, ~\t\tlogiczna i bitowa negacja\n" +" \t**\t\tpotêgowanie\n" +" \t*, /, %\t\tmno¿enie, dzieleni, reszta z dzielenia\n" +" \t+, -\t\tdodawanie, odejmowanie\n" +" \t<<, >>\t\tlewe i prawe przesuniêcie bitowe\n" +" \t<=, >=, <, >\tporównanie\n" +" \t==, !=\t\trówno¶æ, nierówno¶æ\n" +" \t&\t\tbitowe AND\n" +" \t^\t\tbitowe XOR\n" +" \t|\t\tbitowe OR\n" +" \t&&\t\tlogiczne AND\n" +" \t||\t\tlogiczne OR\n" +" \texpr ? expr : expr\n" +" \t\t\toperator warunkowy\n" +" \t=, *=, /=, %=,\n" +" \t+=, -=, <<=, >>=,\n" +" \t&=, ^=, |=\tprzypisanie\n" +" \n" +" Jako operandy mog± wystêpowaæ zmienne pow³oki. Nazwa zmiennej jest\n" +" zastêpowana w w wyra¿eniu jej warto¶ci± (po konwersji do liczby\n" +" ca³kowitej o sta³ej d³ugo¶ci). Zmienna, aby mog³a byæ u¿yta\n" +" w wyra¿eniu, nie musi mieæ ustawionego atrybutu integer.\n" +" \n" +" Operacje s± wykonywane wg. priorytetów operatorów. Najpierw s±\n" +" wykonywane podwyra¿enia w nawiasach i maj± one pierwszeñstwo przed\n" +" powy¿szymi priorytetami operatorów.\n" +" \n" +" Je¶li warto¶ci± ostatniego argumentu jest 0, let zwraca 1;\n" +" w pozosta³ych przypadkach zwracane jest 0." + +#: builtins.c:962 +#, fuzzy +msgid "" +"Read a line from the standard input and split it into fields.\n" +" \n" +" Reads a single line from the standard input, or from file descriptor FD\n" +" if the -u option is supplied. The line is split into fields as with " +"word\n" +" splitting, and the first word is assigned to the first NAME, the second\n" +" word to the second NAME, and so on, with any leftover words assigned to\n" +" the last NAME. Only the characters found in $IFS are recognized as " +"word\n" +" delimiters.\n" +" \n" +" If no NAMEs are supplied, the line read is stored in the REPLY " +"variable.\n" +" \n" +" Options:\n" +" -a array\tassign the words read to sequential indices of the array\n" +" \t\tvariable ARRAY, starting at zero\n" +" -d delim\tcontinue until the first character of DELIM is read, rather\n" +" \t\tthan newline\n" +" -e\t\tuse Readline to obtain the line in an interactive shell\n" +" -i text\tUse TEXT as the initial text for Readline\n" +" -n nchars\treturn after reading NCHARS characters rather than waiting\n" +" \t\tfor a newline\n" +" -p prompt\toutput the string PROMPT without a trailing newline before\n" +" \t\tattempting to read\n" +" -r\t\tdo not allow backslashes to escape any characters\n" +" -s\t\tdo not echo input coming from a terminal\n" +" -t timeout\ttime out and return failure if a complete line of input " +"is\n" +" \t\tnot read withint TIMEOUT seconds. The value of the TMOUT\n" +" \t\tvariable is the default timeout. TIMEOUT may be a\n" +" \t\tfractional number. If TIMEOUT is 0, read returns success only\n" +" \t\tif input is available on the specified file descriptor. The\n" +" \t\texit status is greater than 128 if the timeout is exceeded\n" +" -u fd\t\tread from file descriptor FD instead of the standard input\n" +" \n" +" Exit Status:\n" +" The return code is zero, unless end-of-file is encountered, read times " +"out,\n" +" or an invalid file descriptor is supplied as the argument to -u." +msgstr "" +"Odczytanie pojedynczego wiersza ze standardowego wej¶cia lub z deskryptora\n" +" pliku FD, je¶li podano opcjê -u. Przypisanie pierwszego odczytanego\n" +" s³owa do pierwszego NAME, drugiego - do drugiego NAME itd., pozosta³e\n" +" nadmiarowe s³owa przypisuj±c do ostatniego NAME. Jako separatory s³ów\n" +" rozpoznawane s± jedynie znaki wystêpuj±ce w $IFS. W razie nie podania\n" +" ¿adnego NAME, przeczytany wiersz jest przechowywany w zmiennej REPLY.\n" +" Podanie opcji -r, oznacza wej¶cie `surowe' i wy³±czenie cytowania przez\n" +" odwrotny uko¶nik. Opcja -d powoduje czytanie do napotkania pierwszego\n" +" znaku DELIM, a nie do znaku nowego wiersza. Gdy podana zostanie opcja\n" +" -p, przed odczytem wyprowadzany jest napis PROMPT bez nastêpuj±cego po\n" +" nim znaku koñca wiersza. Gdy podana zostanie opcja -a, odczytane s³owa\n" +" s± przypisywane do kolejnych indeksów tablicy ARRAY, pocz±wszy od zera.\n" +" Gdy podana zostanie opcja -e a pow³oka jest interakcyjna, wiersz jest\n" +" pobierany za pomoc± readline. Podanie -n z niezerowym argumentem NCHARS\n" +" powoduje, ¿e odczyt koñczy siê po odczytaniu NCHARS znaków. Opcja -s\n" +" powoduje, ¿e odczyt z terminala odbywa siê bez echa.\n" +" \n" +" Opcja -t powoduje przeterminowanie odczytu i zwrócenie b³êdy, je¿eli\n" +" w ci±gu TIMEOUT sekund nie zostanie odczytany pe³en wiersz. Je¶li\n" +" ustawiona jest zmienna TMOUT, jej warto¶æ stanowi domy¶lny timeout.\n" +" Kodem powrotu jest zero, chyba ¿e napotkano koniec pliku, wyst±pi³\n" +" timeout odczytu lub jako argument dla -u podano nieprawid³owy " +"deskryptor\n" +" pliku." + +#: builtins.c:1002 +msgid "" +"Return from a shell function.\n" +" \n" +" Causes a function or sourced script to exit with the return value\n" +" specified by N. If N is omitted, the return status is that of the\n" +" last command executed within the function or script.\n" +" \n" +" Exit Status:\n" +" Returns N, or failure if the shell is not executing a function or script." +msgstr "" + +#: builtins.c:1015 +#, fuzzy +msgid "" +"Set or unset values of shell options and positional parameters.\n" +" \n" +" Change the value of shell attributes and positional parameters, or\n" +" display the names and values of shell variables.\n" +" \n" +" Options:\n" +" -a Mark variables which are modified or created for export.\n" +" -b Notify of job termination immediately.\n" +" -e Exit immediately if a command exits with a non-zero status.\n" +" -f Disable file name generation (globbing).\n" +" -h Remember the location of commands as they are looked up.\n" +" -k All assignment arguments are placed in the environment for a\n" +" command, not just those that precede the command name.\n" +" -m Job control is enabled.\n" +" -n Read commands but do not execute them.\n" +" -o option-name\n" +" Set the variable corresponding to option-name:\n" +" allexport same as -a\n" +" braceexpand same as -B\n" +" emacs use an emacs-style line editing interface\n" +" errexit same as -e\n" +" errtrace same as -E\n" +" functrace same as -T\n" +" hashall same as -h\n" +" histexpand same as -H\n" +" history enable command history\n" +" ignoreeof the shell will not exit upon reading EOF\n" +" interactive-comments\n" +" allow comments to appear in interactive commands\n" +" keyword same as -k\n" +" monitor same as -m\n" +" noclobber same as -C\n" +" noexec same as -n\n" +" noglob same as -f\n" +" nolog currently accepted but ignored\n" +" notify same as -b\n" +" nounset same as -u\n" +" onecmd same as -t\n" +" physical same as -P\n" +" pipefail the return value of a pipeline is the status of\n" +" the last command to exit with a non-zero status,\n" +" or zero if no command exited with a non-zero " +"status\n" +" posix change the behavior of bash where the default\n" +" operation differs from the Posix standard to\n" +" match the standard\n" +" privileged same as -p\n" +" verbose same as -v\n" +" vi use a vi-style line editing interface\n" +" xtrace same as -x\n" +" -p Turned on whenever the real and effective user ids do not match.\n" +" Disables processing of the $ENV file and importing of shell\n" +" functions. Turning this option off causes the effective uid and\n" +" gid to be set to the real uid and gid.\n" +" -t Exit after reading and executing one command.\n" +" -u Treat unset variables as an error when substituting.\n" +" -v Print shell input lines as they are read.\n" +" -x Print commands and their arguments as they are executed.\n" +" -B the shell will perform brace expansion\n" +" -C If set, disallow existing regular files to be overwritten\n" +" by redirection of output.\n" +" -E If set, the ERR trap is inherited by shell functions.\n" +" -H Enable ! style history substitution. This flag is on\n" +" by default when the shell is interactive.\n" +" -P If set, do not follow symbolic links when executing commands\n" +" such as cd which change the current directory.\n" +" -T If set, the DEBUG trap is inherited by shell functions.\n" +" - Assign any remaining arguments to the positional parameters.\n" +" The -x and -v options are turned off.\n" +" \n" +" Using + rather than - causes these flags to be turned off. The\n" +" flags can also be used upon invocation of the shell. The current\n" +" set of flags may be found in $-. The remaining n ARGs are positional\n" +" parameters and are assigned, in order, to $1, $2, .. $n. If no\n" +" ARGs are given, all shell variables are printed.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given." +msgstr "" +" -a Oznaczenie zmiennych, które zosta³y zmodyfikowane lub utworzone " +"jako\n" +" eksportowane.\n" +" -b Natychmiastowe powiadomienie o zakoñczeniu zadania.\n" +" -e Natychmiastowe zakoñczenie, gdy polecenie zakoñczy siê z\n" +" niezerowym kodem powrotu.\n" +" -f Wy³±czenie generowania nazw plików (globbing).\n" +" -h Pamiêtanie po³o¿enia znalezionych poleceñ.\n" +" -k Umieszczanie w ¶rodowisku polecenia wszystkich argumentów o\n" +" postaci przypisania, nie tylko tych, które poprzedzaja nazwê\n" +" polecenia.\n" +" -m W³±czenie kontroli zadañ.\n" +" -n Czytanie poleceñ, lecz niewykonywanie ich.\n" +" -o nazwa-opcji\n" +" Ustawienie zmiennej odpowiadaj±cej nazwa-opcji:\n" +" allexport to samo, co -a\n" +" braceexpand to samo, co -B\n" +" emacs korzystanie z interfejsu edycji wiersza w " +"stylu\n" +" emacsa\n" +" errexit to samo, co -e\n" +" errtrace to samo, co -E\n" +" functrace to samo, co -T\n" +" hashall to samo, co -h\n" +" histexpand to samo, co -H\n" +" history w³±czenie historii poleceñ\n" +" ignoreeof nie koñczenie pow³oki po odczytaniu EOF\n" +" interactive-comments\n" +" pozwolenie na wyst±pienie komentarzy\n" +" w poleceniach interakcyjnych\n" +" keyword to samo, co -k\n" +" monitor to samo, co -m\n" +" noclobber to samo, co -C\n" +" noexec to samo, co -n\n" +" noglob to samo, co -f\n" +" nolog aktualnie akceptowane ale ignorowane\n" +" notify to samo, co -b\n" +" nounset to samo, co -u\n" +" onecmd to samo, co -t\n" +" physical to samo, co -P\n" +" pipefail kodem powrotu potoku jest kod powrotu " +"ostatniego\n" +" polecenia koñcz±cego siê z niezerowym kodem " +"lub\n" +" zero, gdy ¿adne polecenie nie zakoñczy³o siê z\n" +" niezerowym kodem powrotu\n" +" posix zmiana zachowania basha, gdy standardowe\n" +" zachowanie operacji ró¿ni siê od standardu\n" +" 1003.2 na zgodne ze standardem\n" +" privileged to samo, co -p\n" +" verbose to samo, co -v\n" +" vi korzystanie z interfejsu edycji wiersza w " +"stylu\n" +" vi\n" +" xtrace to samo, co -x\n" +" -p W³±czone, gdy nie zgadzaj± siê rzeczywisty i efektywny ID\n" +" u¿ytkownika. Wy³±cza przetwarzanie pliku $ENV oraz import " +"funkcji\n" +" pow³oki. Wy³±czenie tej opcji powoduje, ¿e efektywne UID i GID\n" +" zostan± ustawione na rzeczywiste UID i GID.\n" +" -t Zakoñczenie po przeczytaniu i uruchomieniu jednego polecenia.\n" +" -u Traktowanie podczas podstawienia nieustawionych zmiennych jako\n" +" b³êdów.\n" +" -v Wypisywanie wej¶cia pow³oki tak, jak zosta³o przeczytane.\n" +" -x Wypisywanie poleceñ i ich argumentów tak, jak s± uruchamiane.\n" +" -B Przeprowadzanie przez pow³okê rozwijania nawiasów.\n" +" -C Gdy ustawione, nie pozwalanie na nadpisywanie istniej±cych\n" +" zwyk³ych plików przez przekierowanie wyj¶cia.\n" +" -E Gdy ustawione, dziedziczenie pu³apki ERR przez funkcje pow³oki.\n" +" -H W³±czenie podstawienia historii w stylu `!'. Znacznik ten jest\n" +" domy¶lnie w³±czony dla pow³oki interakcyjnej.\n" +" -P Gdy ustawione, nie ¶ledzenie dowi±zañ symbolicznych podczas\n" +" uruchamiania poleceñ takich, jak cd, które zmieniaj± katalog\n" +" bie¿±cy.\n" +" -T Gdy ustawione, dziedziczenie pu³apki DEBUG przez funkcje " +"pow³oki.\n" +" - Przypisywanie pozostaj±cych argumentów do argumentów " +"pozycyjnych.\n" +" Wy³±czenie opcji -x i -v.\n" +" \n" +" U¿ycie + zamiast - powoduje wy³±czenie powy¿szych znaczników. Mo¿na z\n" +" nich tak¿e korzystaæ przy uruchomieniu pow³oki. Aktualny zestaw opcji\n" +" mo¿na znale¼æ w $-. Pozosta³e n argumentów staje siê parametrami\n" +" pozycyjnymi i s± one przypisane, kolejno, do $1, $2, .. $n. Gdy nie\n" +" zostan± podane ¿adne argumenty, wypisywane s± wszystkie zmienne pow³oki." + +#: builtins.c:1097 +msgid "" +"Unset values and attributes of shell variables and functions.\n" +" \n" +" For each NAME, remove the corresponding variable or function.\n" +" \n" +" Options:\n" +" -f\ttreat each NAME as a shell function\n" +" -v\ttreat each NAME as a shell variable\n" +" \n" +" Without options, unset first tries to unset a variable, and if that " +"fails,\n" +" tries to unset a function.\n" +" \n" +" Some variables cannot be unset; also see `readonly'.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or a NAME is read-only." +msgstr "" + +#: builtins.c:1117 +msgid "" +"Set export attribute for shell variables.\n" +" \n" +" Marks each NAME for automatic export to the environment of subsequently\n" +" executed commands. If VALUE is supplied, assign VALUE before " +"exporting.\n" +" \n" +" Options:\n" +" -f\trefer to shell functions\n" +" -n\tremove the export property from each NAME\n" +" -p\tdisplay a list of all exported variables and functions\n" +" \n" +" An argument of `--' disables further option processing.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or NAME is invalid." +msgstr "" + +#: builtins.c:1136 +msgid "" +"Mark shell variables as unchangeable.\n" +" \n" +" Mark each NAME as read-only; the values of these NAMEs may not be\n" +" changed by subsequent assignment. If VALUE is supplied, assign VALUE\n" +" before marking as read-only.\n" +" \n" +" Options:\n" +" -a\trefer to indexed array variables\n" +" -A\trefer to associative array variables\n" +" -f\trefer to shell functions\n" +" -p\tdisplay a list of all readonly variables and functions\n" +" \n" +" An argument of `--' disables further option processing.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or NAME is invalid." +msgstr "" + +#: builtins.c:1157 +msgid "" +"Shift positional parameters.\n" +" \n" +" Rename the positional parameters $N+1,$N+2 ... to $1,$2 ... If N is\n" +" not given, it is assumed to be 1.\n" +" \n" +" Exit Status:\n" +" Returns success unless N is negative or greater than $#." +msgstr "" + +#: builtins.c:1169 builtins.c:1184 +#, fuzzy +msgid "" +"Execute commands from a file in the current shell.\n" +" \n" +" Read and execute commands from FILENAME in the current shell. The\n" +" entries in $PATH are used to find the directory containing FILENAME.\n" +" If any ARGUMENTS are supplied, they become the positional parameters\n" +" when FILENAME is executed.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed in FILENAME; fails if\n" +" FILENAME cannot be read." +msgstr "" +"Odczytanie i uruchomienie poleceñ z pliku FILENAME oraz powrót. Do\n" +" znalezienia katalogu zawieraj±cego FILENAME u¿ywane s± ¶cie¿ki zawarte\n" +" w $PATH. Je¶li podane zostan± jakiekolwiek ARGUMENTS, staj± siê\n" +" parametrami pozycyjnymi podczas uruchomienia FILENAME." + +#: builtins.c:1200 +msgid "" +"Suspend shell execution.\n" +" \n" +" Suspend the execution of this shell until it receives a SIGCONT signal.\n" +" Unless forced, login shells cannot be suspended.\n" +" \n" +" Options:\n" +" -f\tforce the suspend, even if the shell is a login shell\n" +" \n" +" Exit Status:\n" +" Returns success unless job control is not enabled or an error occurs." +msgstr "" + +#: builtins.c:1216 +#, fuzzy +msgid "" +"Evaluate conditional expression.\n" +" \n" +" Exits with a status of 0 (true) or 1 (false) depending on\n" +" the evaluation of EXPR. Expressions may be unary or binary. Unary\n" +" expressions are often used to examine the status of a file. There\n" +" are string operators as well, and numeric comparison operators.\n" +" \n" +" File operators:\n" +" \n" +" -a FILE True if file exists.\n" +" -b FILE True if file is block special.\n" +" -c FILE True if file is character special.\n" +" -d FILE True if file is a directory.\n" +" -e FILE True if file exists.\n" +" -f FILE True if file exists and is a regular file.\n" +" -g FILE True if file is set-group-id.\n" +" -h FILE True if file is a symbolic link.\n" +" -L FILE True if file is a symbolic link.\n" +" -k FILE True if file has its `sticky' bit set.\n" +" -p FILE True if file is a named pipe.\n" +" -r FILE True if file is readable by you.\n" +" -s FILE True if file exists and is not empty.\n" +" -S FILE True if file is a socket.\n" +" -t FD True if FD is opened on a terminal.\n" +" -u FILE True if the file is set-user-id.\n" +" -w FILE True if the file is writable by you.\n" +" -x FILE True if the file is executable by you.\n" +" -O FILE True if the file is effectively owned by you.\n" +" -G FILE True if the file is effectively owned by your group.\n" +" -N FILE True if the file has been modified since it was last " +"read.\n" +" \n" +" FILE1 -nt FILE2 True if file1 is newer than file2 (according to\n" +" modification date).\n" +" \n" +" FILE1 -ot FILE2 True if file1 is older than file2.\n" +" \n" +" FILE1 -ef FILE2 True if file1 is a hard link to file2.\n" +" \n" +" String operators:\n" +" \n" +" -z STRING True if string is empty.\n" +" \n" +" -n STRING\n" +" STRING True if string is not empty.\n" +" \n" +" STRING1 = STRING2\n" +" True if the strings are equal.\n" +" STRING1 != STRING2\n" +" True if the strings are not equal.\n" +" STRING1 < STRING2\n" +" True if STRING1 sorts before STRING2 " +"lexicographically.\n" +" STRING1 > STRING2\n" +" True if STRING1 sorts after STRING2 lexicographically.\n" +" \n" +" Other operators:\n" +" \n" +" -o OPTION True if the shell option OPTION is enabled.\n" +" ! EXPR True if expr is false.\n" +" EXPR1 -a EXPR2 True if both expr1 AND expr2 are true.\n" +" EXPR1 -o EXPR2 True if either expr1 OR expr2 is true.\n" +" \n" +" arg1 OP arg2 Arithmetic tests. OP is one of -eq, -ne,\n" +" -lt, -le, -gt, or -ge.\n" +" \n" +" Arithmetic binary operators return true if ARG1 is equal, not-equal,\n" +" less-than, less-than-or-equal, greater-than, or greater-than-or-equal\n" +" than ARG2.\n" +" \n" +" Exit Status:\n" +" Returns success if EXPR evaluates to true; fails if EXPR evaluates to\n" +" false or an invalid argument is given." +msgstr "" +"Polecenie zwracaj±ce kod 0 (prawda) lub 1 (fa³sz) w zalezno¶ci od wyniku\n" +" obliczenia wyra¿enia EXPR. Wyra¿enia mog± mieæ postaæ jedno- lub\n" +" dwuargumentow±. jednoargumentowe wyra¿enia s³u¿± zwykle do badania " +"stanu\n" +" pliku. Istniej± równiez operatory dzia³aj±ce na ³añcuchach tekstowych,\n" +" jak te¿ operatory numerycznego porównania.\n" +" \n" +" Operatory plikowe:\n" +" \n" +" -a FILE Prawda, gdy FILE istnieje.\n" +" -b FILE Prawda, gdy FILE jest plikiem specjalnym urz±dzenia\n" +" blokowego.\n" +" -c FILE Prawda, gdy FILE jest plikiem specjalnym urz±dzenia\n" +" znakowego.\n" +" -d FILE Prawda, gdy FILE jest katalogiem.\n" +" -e FILE Prawda, gdy FILE istnieje.\n" +" -f FILE Prawda, gdy FILE istnieje i jest zwyk³ym plikiem.\n" +" -g FILE Prawda, gdy FILE ma ustawiony bit SGID.\n" +" -h FILE Prawda, gdy FILE jest dowi±zaniem symbolicznym.\n" +" -L FILE Prawda, gdy FILE jest dowi±zaniem symbolicznym.\n" +" -k FILE Prawda, gdy FILE ma ustawiony bit `sticky'.\n" +" -p FILE Prawda, gdy FILE jest nazwanym potokiem.\n" +" -r FILE Prawda, gdy FILE jest odczytywalny przez " +"u¿ytkownika.\n" +" -s FILE Prawda, gdy FILE istnieje i jest niepusty.\n" +" -S FILE Prawda, gdy FILE jest gniazdem.\n" +" -t FD Prawda, gdy FD jest otwarty na terminalu.\n" +" -u FILE Prawda, gdy FILE ma ustawiony bit SUID.\n" +" -w FILE Prawda, gdy FILE jest zapisywalny przez u¿ytkownika.\n" +" -x FILE Prawda, gdy FILE jest uruchamialny przez " +"u¿ytkownika.\n" +" -O FILE Prawda, gdy u¿ytkownik jest efentywnym w³a¶cicielem\n" +" FILE.\n" +" -G FILE Prawda, grupa u¿ytkownika jest efentywnym " +"w³a¶cicielem\n" +" FILE.\n" +" -N FILE Prawda, gdy FILE zosta³ zmodyfikowany po ostatnim\n" +" odczycie.\n" +" \n" +" FILE1 -nt FILE2 Prawda, gdy FILE1 jest nowszy ni¿ FILE2 (porównuj±c\n" +" czas ostatniej modyfikacji).\n" +" \n" +" FILE1 -ot FILE2 Prawda, gdy FILE1 jest starszy ni¿ FILE2.\n" +" \n" +" FILE1 -ef FILE2 Prawda, gdy FILE1 jest twardym dowi±zaniem do FILE2.\n" +" \n" +" Operatory ³añcuchowe:\n" +" \n" +" -z STRING Prawda, gdy STRING jest pusty.\n" +" \n" +" -n STRING\n" +" STRING Prawda, gdy STRING nie jest pusty.\n" +" \n" +" STRING1 = STRING2\n" +" Prawda, gdy STRING1 i STRING2 s± równe.\n" +" STRING1 != STRING2\n" +" Prawda, gdy STRING1 i STRING2 nie s± równe.\n" +" STRING1 < STRING2\n" +" Prawda, gdy STRING1 znajduje siê w porz±dku\n" +" leksykograficznym przed STRING2.\n" +" STRING1 > STRING2\n" +" Prawda, gdy STRING1 znajduje siê w porz±dku\n" +" leksykograficznym po STRING2.\n" +" \n" +" Inne operatory:\n" +" \n" +" -o OPTION Prawda, gdy opcja pow³oki OPTION jest w³±czona.\n" +" ! EXPR Prawda, gdy EXPR jest fa³szywe.\n" +" EXPR1 -a EXPR2 Prawda, gdy zarówno EXPR1, jak i EXPR2 s± prawdziwe.\n" +" EXPR1 -o EXPR2 Prawda, gdy EXPR1 lub EXPR2 jest prawdziwe.\n" +" \n" +" arg1 OP arg2 Testy arytmetyczne. OP jest jednym z -eq, -ne, -lt,\n" +" -le, -gt lub -ge.\n" +" \n" +" Dwuargumentowe operatory arytmetyczne zwracaj± prawdê, gdy arg1 jest\n" +" równy, nierówny, mniejszy ni¿, mniejszy lub równy, wiêkszy ni¿ lub\n" +" wiêkszy lub równy arg2." + +#: builtins.c:1292 +#, fuzzy +msgid "" +"Evaluate conditional expression.\n" +" \n" +" This is a synonym for the \"test\" builtin, but the last argument must\n" +" be a literal `]', to match the opening `['." +msgstr "" +"Jest to synonim dla wbudowanego polecenia \"test\", ale wymagaj±cy, by\n" +" ostatnim argumentem by³ `]' pasuj±cy do pocz±tkowego `['." + +#: builtins.c:1301 +msgid "" +"Display process times.\n" +" \n" +" Prints the accumulated user and system times for the shell and all of " +"its\n" +" child processes.\n" +" \n" +" Exit Status:\n" +" Always succeeds." +msgstr "" + +#: builtins.c:1313 +#, fuzzy +msgid "" +"Trap signals and other events.\n" +" \n" +" Defines and activates handlers to be run when the shell receives " +"signals\n" +" or other conditions.\n" +" \n" +" ARG is a command to be read and executed when the shell receives the\n" +" signal(s) SIGNAL_SPEC. If ARG is absent (and a single SIGNAL_SPEC\n" +" is supplied) or `-', each specified signal is reset to its original\n" +" value. If ARG is the null string each SIGNAL_SPEC is ignored by the\n" +" shell and by the commands it invokes.\n" +" \n" +" If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell. " +"If\n" +" a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command.\n" +" \n" +" If no arguments are supplied, trap prints the list of commands " +"associated\n" +" with each signal.\n" +" \n" +" Options:\n" +" -l\tprint a list of signal names and their corresponding numbers\n" +" -p\tdisplay the trap commands associated with each SIGNAL_SPEC\n" +" \n" +" Each SIGNAL_SPEC is either a signal name in or a signal " +"number.\n" +" Signal names are case insensitive and the SIG prefix is optional. A\n" +" signal may be sent to the shell with \"kill -signal $$\".\n" +" \n" +" Exit Status:\n" +" Returns success unless a SIGSPEC is invalid or an invalid option is " +"given." +msgstr "" +"Gdy pow³oka otrzyma sygna³(y) SIGNAL_SPEC, odczytywane i uruchamiane jest\n" +" polecenie podane jako argument ARG. W azie braku argumentów (i podaniu\n" +" pojedynczego SIGNAL_SPEC) lub gdy argumentem jest `-', ka¿demu z " +"podanych\n" +" sygna³ów jest przywracana pierwotna warto¶æ. Je¶li ARG jest pustym\n" +" ³añcuchem, ka¿dy SIGNAL_SPEC jest ignorowany przez pow³okê i wywo³ane\n" +" przez ni± polecenia. Je¿eli jako SIGNAL_SPEC podano EXIT (0), polecenie\n" +" ARG jest uruchamiane przy opuszczaniu pow³oki. Je¶li jako SIGNAL_SPEC\n" +" podano DEBUG, ARG jest uruchamiane po ka¿dym poleceniu prostym.\n" +" W przypadku podania opcji -p, wypisywane s± polecenia trap skojarzone\n" +" z poszczególnymi SIGNAL_SPEC. W przypadku braku argumentów lub gdy\n" +" podano jedynie opcjê -p, trap wypisuje listê poleceñ skojarzonych ze\n" +" wszystkimi mo¿liwymi sygna³ami. Ka¿de z SIGNAL_SPEC mo¿e byæ albo nazw±\n" +" sygna³u wg. lub numerem sygna³u. Nazwy sygna³ów s± " +"niewra¿liwe\n" +" na wielko¶æ liter a prefiks SIG jest opcjonalny. `trap -l' wypisuje " +"listê\n" +" nazw sygna³ów wraz z odpowiadaj±cymi im numerami. Nale¿y zauwa¿yæ, ¿e\n" +" sygna³ mo¿na wys³aæ do pow³oki poleceniem \"kill -signal $$\"." + +#: builtins.c:1345 +msgid "" +"Display information about command type.\n" +" \n" +" For each NAME, indicate how it would be interpreted if used as a\n" +" command name.\n" +" \n" +" Options:\n" +" -a\tdisplay all locations containing an executable named NAME;\n" +" \tincludes aliases, builtins, and functions, if and only if\n" +" \tthe `-p' option is not also used\n" +" -f\tsuppress shell function lookup\n" +" -P\tforce a PATH search for each NAME, even if it is an alias,\n" +" \tbuiltin, or function, and returns the name of the disk file\n" +" \tthat would be executed\n" +" -p\treturns either the name of the disk file that would be executed,\n" +" \tor nothing if `type -t NAME' would not return `file'.\n" +" -t\toutput a single word which is one of `alias', `keyword',\n" +" \t`function', `builtin', `file' or `', if NAME is an alias, shell\n" +" \treserved word, shell function, shell builtin, disk file, or not\n" +" \tfound, respectively\n" +" \n" +" Arguments:\n" +" NAME\tCommand name to be interpreted.\n" +" \n" +" Exit Status:\n" +" Returns success if all of the NAMEs are found; fails if any are not " +"found." +msgstr "" + +#: builtins.c:1376 +#, fuzzy +msgid "" +"Modify shell resource limits.\n" +" \n" +" Provides control over the resources available to the shell and " +"processes\n" +" it creates, on systems that allow such control.\n" +" \n" +" Options:\n" +" -S\tuse the `soft' resource limit\n" +" -H\tuse the `hard' resource limit\n" +" -a\tall current limits are reported\n" +" -b\tthe socket buffer size\n" +" -c\tthe maximum size of core files created\n" +" -d\tthe maximum size of a process's data segment\n" +" -e\tthe maximum scheduling priority (`nice')\n" +" -f\tthe maximum size of files written by the shell and its children\n" +" -i\tthe maximum number of pending signals\n" +" -l\tthe maximum size a process may lock into memory\n" +" -m\tthe maximum resident set size\n" +" -n\tthe maximum number of open file descriptors\n" +" -p\tthe pipe buffer size\n" +" -q\tthe maximum number of bytes in POSIX message queues\n" +" -r\tthe maximum real-time scheduling priority\n" +" -s\tthe maximum stack size\n" +" -t\tthe maximum amount of cpu time in seconds\n" +" -u\tthe maximum number of user processes\n" +" -v\tthe size of virtual memory\n" +" -x\tthe maximum number of file locks\n" +" \n" +" If LIMIT is given, it is the new value of the specified resource; the\n" +" special LIMIT values `soft', `hard', and `unlimited' stand for the\n" +" current soft limit, the current hard limit, and no limit, respectively.\n" +" Otherwise, the current value of the specified resource is printed. If\n" +" no option is given, then -f is assumed.\n" +" \n" +" Values are in 1024-byte increments, except for -t, which is in seconds,\n" +" -p, which is in increments of 512 bytes, and -u, which is an unscaled\n" +" number of processes.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" +"Ulimit zapewnia z poziomu pow³oki kontrolê ilo¶ci zasobów udostêpnionych\n" +" procesom w systemach, które tak± kontrolê umo¿liwiaj±. Gdy podana jest\n" +" opcja, ma ona nastêpujêce znaczenie:\n" +" \n" +" -S\tkorzystanie z miêkkiego limitu zasobów\n" +" -H\tkorzystanie ze sztywnego limitu zasobów\n" +" -a\twypisanie wszystkich aktualnych limitów\n" +" -c\tmaksymalny rozmiar tworzonych plików core\n" +" -d\tmaksymalny rozmiar segmentu danych procesu\n" +" -e\tmaksymalny priorytet szeregowania procesów (`nice')\n" +" -f\tmaksymalny rozmiar plików zapisywanych przez pow³okê i jej\n" +" \tprocesy potomne\n" +" -i\tmaksymalna liczba oczekuj±cych sygna³ów\n" +" -l\tmaksymalny rozmiar pamiêci, któr± proces mo¿e zablokowaæ\n" +" -m\tmaksymalna ilo¶æ rezydentnych stron procesu\n" +" -n\tmaksymalna liczba otwartych deskryptorów plików\n" +" -p\trozmiar bufora potoku\n" +" -q\tmaksymalna liczba bajtów w POSIX-owych kolejkach komunikatów\n" +" -r\tmaksymalny priorytet szeregowania dla procesów czasu\n" +" \trzeczywistego\n" +" -s\tmaksymalny rozmiar stosu\n" +" -t\tmaksymalna ilo¶æ czasu procesora w sekundach\n" +" -u\tmaksymalna liczba procesów u¿ytkownika\n" +" -v\trozmiar pamiêci wirtualnej\n" +" -x\tmaksymalna liczba blokad plików\n" +" \n" +" Gdy podano warto¶æ LIMIT, stanowi ona now± warto¶æ ograniczenia dla\n" +" danego zasobu; specjalne warto¶ci LIMIT: `soft', `hard' i `unlimited'\n" +" oznaczaj±, odpowiednio, aktualne ograniczenie miêkkie, sztywne i brak\n" +" ograniczenia.\n" +" W przeciwnym przypadku wypisywana jest aktualna warto¶æ podanego\n" +" ograniczenia.\n" +" Gdy nie podano opcji, przyjmuje siê, ¿e podano -f. Warto¶ci s± podawane\n" +" w jednostkach 1024-bajtowych, za wyj±tkiem -t, które jest w sekundach,\n" +" -p, które jest w jednostkach 512-bajtowych oraz -u, które jest\n" +" bezwymiarow± liczb± procesów." + +#: builtins.c:1421 +msgid "" +"Display or set file mode mask.\n" +" \n" +" Sets the user file-creation mask to MODE. If MODE is omitted, prints\n" +" the current value of the mask.\n" +" \n" +" If MODE begins with a digit, it is interpreted as an octal number;\n" +" otherwise it is a symbolic mode string like that accepted by chmod(1).\n" +" \n" +" Options:\n" +" -p\tif MODE is omitted, output in a form that may be reused as input\n" +" -S\tmakes the output symbolic; otherwise an octal number is output\n" +" \n" +" Exit Status:\n" +" Returns success unless MODE is invalid or an invalid option is given." +msgstr "" + +#: builtins.c:1441 +msgid "" +"Wait for job completion and return exit status.\n" +" \n" +" Waits for the process identified by ID, which may be a process ID or a\n" +" job specification, and reports its termination status. If ID is not\n" +" given, waits for all currently active child processes, and the return\n" +" status is zero. If ID is a a job specification, waits for all " +"processes\n" +" in the job's pipeline.\n" +" \n" +" Exit Status:\n" +" Returns the status of ID; fails if ID is invalid or an invalid option " +"is\n" +" given." +msgstr "" + +#: builtins.c:1459 +#, fuzzy +msgid "" +"Wait for process completion and return exit status.\n" +" \n" +" Waits for the specified process and reports its termination status. If\n" +" PID is not given, all currently active child processes are waited for,\n" +" and the return code is zero. PID must be a process ID.\n" +" \n" +" Exit Status:\n" +" Returns the status of ID; fails if ID is invalid or an invalid option " +"is\n" +" given." +msgstr "" +"Oczekiwanie na podany proces i zg³oszenie jego statusu zakoñczenia. Gdy nie\n" +" zostanie podane N, oczekiwanie dotyczy wszystkich aktualnie aktywnych\n" +" procesów potomnych, a kodem powrotu jest zero. N mo¿e byæ numerem PID\n" +" procesu lub specyfikacj± zadania; gdy jest specyfikacj± zadania,\n" +" oczekiwanie dotyczy wszystkich procesów w potoku zadania." + +#: builtins.c:1474 +#, fuzzy +msgid "" +"Execute commands for each member in a list.\n" +" \n" +" The `for' loop executes a sequence of commands for each member in a\n" +" list of items. If `in WORDS ...;' is not present, then `in \"$@\"' is\n" +" assumed. For each element in WORDS, NAME is set to that element, and\n" +" the COMMANDS are executed.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"Pêtla `for' uruchamia ci±g poleceñ dla ka¿dego elementu podanej listy. Gdy\n" +" nie zostanie podane `in WORDS ...;', zak³ada siê, ¿e podano `in \"$@" +"\"'.\n" +" Dla ka¿dego elementu WORDS, NAME jest ustawiane na ten element\n" +" i uruchamiane s± COMMANDS." + +#: builtins.c:1488 +#, fuzzy +msgid "" +"Arithmetic for loop.\n" +" \n" +" Equivalent to\n" +" \t(( EXP1 ))\n" +" \twhile (( EXP2 )); do\n" +" \t\tCOMMANDS\n" +" \t\t(( EXP3 ))\n" +" \tdone\n" +" EXP1, EXP2, and EXP3 are arithmetic expressions. If any expression is\n" +" omitted, it behaves as if it evaluates to 1.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"Równowa¿ne\n" +" \t(( EXP1 ))\n" +" \twhile (( EXP2 )); do\n" +" \t\tCOMMANDS\n" +" \t\t(( EXP3 ))\n" +" \tdone\n" +" EXP1, EXP2 i EXP3 s± wyra¿eniami arytmetycznymi. Je¶li które¶ z wyra¿eñ\n" +" zostanie pominiête, zachowanie jest takie, jaby mia³o ono warto¶æ 1." + +#: builtins.c:1506 +#, fuzzy +msgid "" +"Select words from a list and execute commands.\n" +" \n" +" The WORDS are expanded, generating a list of words. The\n" +" set of expanded words is printed on the standard error, each\n" +" preceded by a number. If `in WORDS' is not present, `in \"$@\"'\n" +" is assumed. The PS3 prompt is then displayed and a line read\n" +" from the standard input. If the line consists of the number\n" +" corresponding to one of the displayed words, then NAME is set\n" +" to that word. If the line is empty, WORDS and the prompt are\n" +" redisplayed. If EOF is read, the command completes. Any other\n" +" value read causes NAME to be set to null. The line read is saved\n" +" in the variable REPLY. COMMANDS are executed after each selection\n" +" until a break command is executed.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"WORDS jest rozwijane, generhj±c listê s³ów. Zbiór rozwiniêtych s³ów\n" +" wypisywany jest na standardowej diagnostyce, a ka¿de s³owo jest\n" +" poprzedzone przez liczbê. Gdy nie zostanie podane `in WORDS', zak³ada\n" +" siê, ¿e podano `in \"$@\"'. Wy¶wietlany jest wówczas tekst zachêty PS3\n" +" i odczytywany jest wiersz ze standardowego wej¶cia. Gdy wiersz ten " +"sk³ada\n" +" siê z liczby przypisanej do jednego z wypisanych s³ów, to NAME jest\n" +" ustawiane na to s³owo. Gdy wiersz jest pusty, WORDS i tekst zachêty s±\n" +" Wy¶wietlane ponownie. Gdy odczytany zostanie EOF, polecenie siê koñczy.\n" +" Ka¿da inna warto¶æ powoduje przypisanie NAME warto¶ci pustej. Odczytany\n" +" wiersz jest zachowywany w zmiennej REPLY. Po ka¿dym wyborze uruchamiane\n" +" s± polecenia COMMANDS a¿ do polecenia break." + +#: builtins.c:1527 +#, fuzzy +msgid "" +"Report time consumed by pipeline's execution.\n" +" \n" +" Execute PIPELINE and print a summary of the real time, user CPU time,\n" +" and system CPU time spent executing PIPELINE when it terminates.\n" +" \n" +" Options:\n" +" -p\tprint the timing summary in the portable Posix format\n" +" \n" +" The value of the TIMEFORMAT variable is used as the output format.\n" +" \n" +" Exit Status:\n" +" The return status is the return status of PIPELINE." +msgstr "" +"Uruchomienie PIPELINE i wypisanie podsumowania zawieraj±cego czas " +"rzeczywisty,\n" +" czas procesora w trybie u¿ytkownika oraz czas procesora w trybie " +"systemu,\n" +" jakie spêdzi³o polecenie PIPELINE do chwili zatrzymania. Kod " +"zakoñczenia\n" +" jest kodem zakoñczenia polecenia PIPELINE. Opcja `-p' powoduje " +"wypisanie\n" +" podsumowania czasów w nieco innej postaci. U¿ywana jest wtedy warto¶æ\n" +" zmiennej TIMEFORMAT jako format danych wyj¶ciowych." + +#: builtins.c:1544 +#, fuzzy +msgid "" +"Execute commands based on pattern matching.\n" +" \n" +" Selectively execute COMMANDS based upon WORD matching PATTERN. The\n" +" `|' is used to separate multiple patterns.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"Wybiórcze uruchamianie poleceñ COMMANDS w zale¿no¶ci od tego, czy WORD " +"pasuje\n" +" do wzorca PATTERN. Znak `|' s³u¿y do rozdzielania wielu wzorców." + +#: builtins.c:1556 +#, fuzzy +msgid "" +"Execute commands based on conditional.\n" +" \n" +" The `if COMMANDS' list is executed. If its exit status is zero, then " +"the\n" +" `then COMMANDS' list is executed. Otherwise, each `elif COMMANDS' list " +"is\n" +" executed in turn, and if its exit status is zero, the corresponding\n" +" `then COMMANDS' list is executed and the if command completes. " +"Otherwise,\n" +" the `else COMMANDS' list is executed, if present. The exit status of " +"the\n" +" entire construct is the exit status of the last command executed, or " +"zero\n" +" if no condition tested true.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"Uruchomiana jest lista `if COMMANDS'. Gdy jej kod powrotu jest zerem,\n" +" uruchamiana jest lista `then COMMANDS'. W przeciwnym przypadku\n" +" uruchamiane s± poszczególne listy `elif COMMANDS' i, je¶li kod powrotu\n" +" takiej listy jest zerem, uruchamiana jest odpowiednia lista\n" +" `then COMMANDS' i polecenie if siê koñczy. W przeciwnym przypadku\n" +" uruchamiana jest lista `else COMMANDS', je¶li taka istnieje. Kodem\n" +" zakoñczenia ca³ej konstrukcji jest kod zakoñczenia ostatniego\n" +" uruchomionego polecenia lub zero, gdy ¿aden ze sprawdzanych warunków\n" +" nie by³ prawdziwy." + +#: builtins.c:1573 +#, fuzzy +msgid "" +"Execute commands as long as a test succeeds.\n" +" \n" +" Expand and execute COMMANDS as long as the final command in the\n" +" `while' COMMANDS has an exit status of zero.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"Rozwijanie i uruchamianie poleceñ COMMANDS tak d³ugo, dopóki ostatnie\n" +" polecenie w `while' COMMANDS koñczy siê z kodem zero." + +#: builtins.c:1585 +#, fuzzy +msgid "" +"Execute commands as long as a test does not succeed.\n" +" \n" +" Expand and execute COMMANDS as long as the final command in the\n" +" `until' COMMANDS has an exit status which is not zero.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"Rozwijanie i uruchamianie poleceñ COMMANDS tak d³ugo, dopóki ostatnie\n" +" polecenie w `until' COMMANDS koñczy siê z kodem niezerowym." + +#: builtins.c:1597 +msgid "" +"Define shell function.\n" +" \n" +" Create a shell function named NAME. When invoked as a simple command,\n" +" NAME runs COMMANDs in the calling shell's context. When NAME is " +"invoked,\n" +" the arguments are passed to the function as $1...$n, and the function's\n" +" name is in $FUNCNAME.\n" +" \n" +" Exit Status:\n" +" Returns success unless NAME is readonly." +msgstr "" + +#: builtins.c:1611 +#, fuzzy +msgid "" +"Group commands as a unit.\n" +" \n" +" Run a set of commands in a group. This is one way to redirect an\n" +" entire set of commands.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"Uruchomienie zbioru poleceñ jako grupy. W ten sposób mo¿na przekierowaæ\n" +" ca³y zbiór poleceñ." + +#: builtins.c:1623 +#, fuzzy +msgid "" +"Resume job in foreground.\n" +" \n" +" Equivalent to the JOB_SPEC argument to the `fg' command. Resume a\n" +" stopped or background job. JOB_SPEC can specify either a job name\n" +" or a job number. Following JOB_SPEC with a `&' places the job in\n" +" the background, as if the job specification had been supplied as an\n" +" argument to `bg'.\n" +" \n" +" Exit Status:\n" +" Returns the status of the resumed job." +msgstr "" +"Równowa¿ne argumentowi JOB_SPEC polecenia `fg'. Wznowienie zatrzymanego lub\n" +" dzia³aj±cego w tle zadania. JOB_SPEC mo¿e okre¶laæ albo nazwê zadania\n" +" albo jego numer. Umieszczenie `&' po JOB_SPEC umieszcza zadanie w tle\n" +" tak, jak to siê dzieje po podaniu specyfikacji zadania jako argumentu " +"dla\n" +" `bg'." + +#: builtins.c:1638 +#, fuzzy +msgid "" +"Evaluate arithmetic expression.\n" +" \n" +" The EXPRESSION is evaluated according to the rules for arithmetic\n" +" evaluation. Equivalent to \"let EXPRESSION\".\n" +" \n" +" Exit Status:\n" +" Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise." +msgstr "" +"Obliczenie wyra¿enia EXPRESSION zgodnie z zasadami obliczania wyra¿eñ\n" +" arytmetycznych. Równowa¿ne \"let EXPRESSION\"." + +#: builtins.c:1650 +#, fuzzy +msgid "" +"Execute conditional command.\n" +" \n" +" Returns a status of 0 or 1 depending on the evaluation of the " +"conditional\n" +" expression EXPRESSION. Expressions are composed of the same primaries " +"used\n" +" by the `test' builtin, and may be combined using the following " +"operators:\n" +" \n" +" ( EXPRESSION )\tReturns the value of EXPRESSION\n" +" ! EXPRESSION\t\tTrue if EXPRESSION is false; else false\n" +" EXPR1 && EXPR2\tTrue if both EXPR1 and EXPR2 are true; else false\n" +" EXPR1 || EXPR2\tTrue if either EXPR1 or EXPR2 is true; else false\n" +" \n" +" When the `==' and `!=' operators are used, the string to the right of\n" +" the operator is used as a pattern and pattern matching is performed.\n" +" When the `=~' operator is used, the string to the right of the operator\n" +" is matched as a regular expression.\n" +" \n" +" The && and || operators do not evaluate EXPR2 if EXPR1 is sufficient to\n" +" determine the expression's value.\n" +" \n" +" Exit Status:\n" +" 0 or 1 depending on value of EXPRESSION." +msgstr "" +"Zwraca status wynosz±cy 0 lub 1 w zale¿no¶ci od wyniku wyra¿enia " +"warynkowego\n" +" EXPRESSION. Wyra¿enia s± tworzone na tych samych zasadach, jak\n" +" w poleceniu `test' i mog± byæ ³±czone za pomoc± nastêpuj±cych " +"operatorów\n" +" \n" +" \t( EXPRESSION )\tZwraca warto¶æ EXPRESSION\n" +" \t! EXPRESSION\tPrawdziwe, gdy EXPRESSION jest fa³szywe; fa³szywe\n" +" \t\tw innym przypadku\n" +" \tEXPR1 && EXPR2\tPrawdziwe, gdy zarówno EXPR1 jak i EXPR2 s± " +"prawdziwe;\n" +" \t\tfa³szywe w innym przypadku\n" +" \tEXPR1 || EXPR2\tPrawdziwe, gdy EXPR1 lub EXPR2 jest prawdziwe;\n" +" \t\tfa³szywe w innym przypadku\n" +" \n" +" W przypadku u¿ycia operatorów `==' lub `!=', napis po prawej stronie\n" +" operatora jest traktowany jak wzorzec i wykonywane jest dopasowywanie " +"do\n" +" wzorca. Operatory && i || nie opliczaj± EXPR2, je¶li obliczenie EXPR1\n" +" wystarcza do okre¶lenia warto¶ci wyra¿enia." + +#: builtins.c:1676 +msgid "" +"Common shell variable names and usage.\n" +" \n" +" BASH_VERSION\tVersion information for this Bash.\n" +" CDPATH\tA colon-separated list of directories to search\n" +" \t\tfor directories given as arguments to `cd'.\n" +" GLOBIGNORE\tA colon-separated list of patterns describing filenames to\n" +" \t\tbe ignored by pathname expansion.\n" +" HISTFILE\tThe name of the file where your command history is stored.\n" +" HISTFILESIZE\tThe maximum number of lines this file can contain.\n" +" HISTSIZE\tThe maximum number of history lines that a running\n" +" \t\tshell can access.\n" +" HOME\tThe complete pathname to your login directory.\n" +" HOSTNAME\tThe name of the current host.\n" +" HOSTTYPE\tThe type of CPU this version of Bash is running under.\n" +" IGNOREEOF\tControls the action of the shell on receipt of an EOF\n" +" \t\tcharacter as the sole input. If set, then the value\n" +" \t\tof it is the number of EOF characters that can be seen\n" +" \t\tin a row on an empty line before the shell will exit\n" +" \t\t(default 10). When unset, EOF signifies the end of input.\n" +" MACHTYPE\tA string describing the current system Bash is running on.\n" +" MAILCHECK\tHow often, in seconds, Bash checks for new mail.\n" +" MAILPATH\tA colon-separated list of filenames which Bash checks\n" +" \t\tfor new mail.\n" +" OSTYPE\tThe version of Unix this version of Bash is running on.\n" +" PATH\tA colon-separated list of directories to search when\n" +" \t\tlooking for commands.\n" +" PROMPT_COMMAND\tA command to be executed before the printing of each\n" +" \t\tprimary prompt.\n" +" PS1\t\tThe primary prompt string.\n" +" PS2\t\tThe secondary prompt string.\n" +" PWD\t\tThe full pathname of the current directory.\n" +" SHELLOPTS\tA colon-separated list of enabled shell options.\n" +" TERM\tThe name of the current terminal type.\n" +" TIMEFORMAT\tThe output format for timing statistics displayed by the\n" +" \t\t`time' reserved word.\n" +" auto_resume\tNon-null means a command word appearing on a line by\n" +" \t\titself is first looked for in the list of currently\n" +" \t\tstopped jobs. If found there, that job is foregrounded.\n" +" \t\tA value of `exact' means that the command word must\n" +" \t\texactly match a command in the list of stopped jobs. A\n" +" \t\tvalue of `substring' means that the command word must\n" +" \t\tmatch a substring of the job. Any other value means that\n" +" \t\tthe command must be a prefix of a stopped job.\n" +" histchars\tCharacters controlling history expansion and quick\n" +" \t\tsubstitution. The first character is the history\n" +" \t\tsubstitution character, usually `!'. The second is\n" +" \t\tthe `quick substitution' character, usually `^'. The\n" +" \t\tthird is the `history comment' character, usually `#'.\n" +" HISTIGNORE\tA colon-separated list of patterns used to decide which\n" +" \t\tcommands should be saved on the history list.\n" +msgstr "" + +#: builtins.c:1733 +#, fuzzy +msgid "" +"Add directories to stack.\n" +" \n" +" Adds a directory to the top of the directory stack, or rotates\n" +" the stack, making the new top of the stack the current working\n" +" directory. With no arguments, exchanges the top two directories.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when adding\n" +" \tdirectories to the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the left of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" -N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the right of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" dir\tAdds DIR to the directory stack at the top, making it the\n" +" \tnew current working directory.\n" +" \n" +" The `dirs' builtin displays the directory stack.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid argument is supplied or the directory\n" +" change fails." +msgstr "" +"Dodanie katalogu na wierzcho³ku stosu katalogów lub rotacja stosu czyni±ca\n" +" jego nowym wierzcho³kiem bie¿±cy katalog roboczy. Wywo³ane bez\n" +" argumentów zamienia na stosie dwa najwy¿sze katalogi.\n" +" \n" +" +N\tRotacja stosu czyni±ca jego wierzcho³kiem N-ty katalog (licz±c od\n" +" \tlewej strony listy wypisywanej przez `dirs', pocz±wszy od zera).\n" +" \n" +" -N\tRotacja stosu czyni±ca jego wierzcho³kiem N-ty katalog (licz±c od\n" +" \tprawej strony listy wypisywanej przez `dirs', pocz±wszy od zera).\n" +" \n" +" -n\tPominiêcie zmiany katalogu podczas umieszczania katalogów na\n" +" \tstosie tak, ¿e zmieniany jest tylko stos.\n" +" \n" +" dir\tUmieszczenie DIR na wierzcho³ku stosu i uczynienie go nowym\n" +" \tbie¿±cym katalogiem roboczym.\n" +" \n" +" Zawarto¶æ stosu katalogów mo¿na zobaczyæ za pomoc± polecenia `dirs'." + +#: builtins.c:1767 +#, fuzzy +msgid "" +"Remove directories from stack.\n" +" \n" +" Removes entries from the directory stack. With no arguments, removes\n" +" the top directory from the stack, and changes to the new top directory.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when removing\n" +" \tdirectories from the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRemoves the Nth entry counting from the left of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd +0'\n" +" \tremoves the first directory, `popd +1' the second.\n" +" \n" +" -N\tRemoves the Nth entry counting from the right of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd -0'\n" +" \tremoves the last directory, `popd -1' the next to last.\n" +" \n" +" The `dirs' builtin displays the directory stack.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid argument is supplied or the directory\n" +" change fails." +msgstr "" +"Usuniêcie pozycji ze stosu katalogów. Wywo³ane bez argumentów usuwa\n" +" katalog z wierzcho³ka stosu i zmienia katalog bie¿±cy na katalog\n" +" bêd±cy nowym wierzcho³kiem stosu.\n" +" \n" +" +N\tUsuniêcie ze stosu N-tej pozycji licz±c od lewej strony listy\n" +" \twypisywanej przez `dirs', pocz±wszy od zera. Na przyk³ad: `popd +0'\n" +" \tusuwa pierwszy katalog, `popd +1' usuwa drugi.\n" +" \n" +" -N\tUsuniêcie ze stosu N-tej pozycji licz±c od prawej strony listy\n" +" \twypisywanej przez `dirs', pocz±wszy od zera. Na przyk³ad: `popd -0'\n" +" \tusuwa pierwszy katalog, `popd -1' usuwa drugi.\n" +" \n" +" -n\tPominiêcie zmiany katalogu podczas usuwania katalogów ze stosu tak,\n" +" \t¿e zmieniany jest tylko stos.\n" +" \n" +" Zawarto¶æ stosu katalogów mo¿na zobaczyæ za pomoc± polecenia `dirs'." + +#: builtins.c:1797 +#, fuzzy +msgid "" +"Display directory stack.\n" +" \n" +" Display the list of currently remembered directories. Directories\n" +" find their way onto the list with the `pushd' command; you can get\n" +" back up through the list with the `popd' command.\n" +" \n" +" Options:\n" +" -c\tclear the directory stack by deleting all of the elements\n" +" -l\tdo not print tilde-prefixed versions of directories relative\n" +" \tto your home directory\n" +" -p\tprint the directory stack with one entry per line\n" +" -v\tprint the directory stack with one entry per line prefixed\n" +" \twith its position in the stack\n" +" \n" +" Arguments:\n" +" +N\tDisplays the Nth entry counting from the left of the list shown " +"by\n" +" \tdirs when invoked without options, starting with zero.\n" +" \n" +" -N\tDisplays the Nth entry counting from the right of the list shown " +"by\n" +" \tdirs when invoked without options, starting with zero.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" +"Wypisanie listy aktualnie pamiêtanych katalogów. Katalogi umieszczane s±\n" +" na li¶cie za pomoc± polecenia `pushd'; mo¿na cofaæ siê w obrêbie listy\n" +" za pomoc± polecenia `popd'.\n" +" \n" +" Znacznik -l oznacza, ¿e `dirs' nie powinno wypisywaæ katalogów w " +"skróconej\n" +" wersji, tzn. wzglêdem katalogu domowego wywo³uj±cego. Oznacza to, ¿e\n" +" `~/bin' mo¿e zostaæ wypisany jako `/homes/bfox/bin'. Znacznik -v " +"powoduje,\n" +" ¿e `dirs' wypisuje katalogi w osobnych wierszach, poprzedzaj±c ka¿dy\n" +" z nich jego pozycj± na stosie. Znacznik -p powoduje to samo, lecz bez\n" +" podawania pozycji na stosie. Znacznik -c powoduje wyczyszczenie stosu\n" +" katalogów poprzez usuniêcie wszystkich jego elementów.\n" +" \n" +" +N\tWypisanie N-tej pozycji licz±c od lewej strony listy wypisywanej\n" +" \tprzez dirs wywo³ane bez opcji, pocz±wszy od zera.\n" +" \n" +" -N\tWypisanie N-tej pozycji licz±c od prawej strony listy wypisywanej\n" +" \tprzez dirs wywo³ane bez opcji, pocz±wszy od zera." + +#: builtins.c:1826 +msgid "" +"Set and unset shell options.\n" +" \n" +" Change the setting of each shell option OPTNAME. Without any option\n" +" arguments, list all shell options with an indication of whether or not " +"each\n" +" is set.\n" +" \n" +" Options:\n" +" -o\trestrict OPTNAMEs to those defined for use with `set -o'\n" +" -p\tprint each shell option with an indication of its status\n" +" -q\tsuppress output\n" +" -s\tenable (set) each OPTNAME\n" +" -u\tdisable (unset) each OPTNAME\n" +" \n" +" Exit Status:\n" +" Returns success if OPTNAME is enabled; fails if an invalid option is\n" +" given or OPTNAME is disabled." +msgstr "" + +#: builtins.c:1847 +msgid "" +"Formats and prints ARGUMENTS under control of the FORMAT.\n" +" \n" +" Options:\n" +" -v var\tassign the output to shell variable VAR rather than\n" +" \t\tdisplay it on the standard output\n" +" \n" +" FORMAT is a character string which contains three types of objects: " +"plain\n" +" characters, which are simply copied to standard output; character " +"escape\n" +" sequences, which are converted and copied to the standard output; and\n" +" format specifications, each of which causes printing of the next " +"successive\n" +" argument.\n" +" \n" +" In addition to the standard format specifications described in printf" +"(1)\n" +" and printf(3), printf interprets:\n" +" \n" +" %b\texpand backslash escape sequences in the corresponding argument\n" +" %q\tquote the argument in a way that can be reused as shell input\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or a write or " +"assignment\n" +" error occurs." +msgstr "" + +#: builtins.c:1874 +msgid "" +"Specify how arguments are to be completed by Readline.\n" +" \n" +" For each NAME, specify how arguments are to be completed. If no " +"options\n" +" are supplied, existing completion specifications are printed in a way " +"that\n" +" allows them to be reused as input.\n" +" \n" +" Options:\n" +" -p\tprint existing completion specifications in a reusable format\n" +" -r\tremove a completion specification for each NAME, or, if no\n" +" \tNAMEs are supplied, all completion specifications\n" +" \n" +" When completion is attempted, the actions are applied in the order the\n" +" uppercase-letter options are listed above.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" + +#: builtins.c:1897 +#, fuzzy +msgid "" +"Display possible completions depending on the options.\n" +" \n" +" Intended to be used from within a shell function generating possible\n" +" completions. If the optional WORD argument is supplied, matches " +"against\n" +" WORD are generated.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" +"Wypisanie mo¿liwych uzupe³nieñ w zale¿no¶ci od opcji. Przeznaczone do\n" +" wykorzystania w funkcjach pow³oki generuj±cych mo¿liwe uzupe³nienia.\n" +" Gdy podany jest opcjonalny argument WORD, generowane s± uzupe³nienia\n" +" pasuj±ce do WORD." + +#: builtins.c:1912 +msgid "" +"Modify or display completion options.\n" +" \n" +" Modify the completion options for each NAME, or, if no NAMEs are " +"supplied,\n" +" the completion currently begin executed. If no OPTIONs are givenm, " +"print\n" +" the completion options for each NAME or the current completion " +"specification.\n" +" \n" +" Options:\n" +" \t-o option\tSet completion option OPTION for each NAME\n" +" \n" +" Using `+o' instead of `-o' turns off the specified option.\n" +" \n" +" Arguments:\n" +" \n" +" Each NAME refers to a command for which a completion specification must\n" +" have previously been defined using the `complete' builtin. If no NAMEs\n" +" are supplied, compopt must be called by a function currently generating\n" +" completions, and the options for that currently-executing completion\n" +" generator are modified.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or NAME does not\n" +" have a completion specification defined." +msgstr "" + +#: builtins.c:1940 +msgid "" +"Read lines from a file into an array variable.\n" +" \n" +" Read lines from the standard input into the array variable ARRAY, or " +"from\n" +" file descriptor FD if the -u option is supplied. The variable MAPFILE " +"is\n" +" the default ARRAY.\n" +" \n" +" Options:\n" +" -n count\tCopy at most COUNT lines. If COUNT is 0, all lines are " +"copied.\n" +" -O origin\tBegin assigning to ARRAY at index ORIGIN. The default " +"index is 0.\n" +" -s count \tDiscard the first COUNT lines read.\n" +" -t\t\tRemove a trailing newline from each line read.\n" +" -u fd\t\tRead lines from file descriptor FD instead of the standard " +"input.\n" +" -C callback\tEvaluate CALLBACK each time QUANTUM lines are read.\n" +" -c quantum\tSpecify the number of lines read between each call to " +"CALLBACK.\n" +" \n" +" Arguments:\n" +" ARRAY\t\tArray variable name to use for file data.\n" +" \n" +" If -C is supplied without -c, the default quantum is 5000.\n" +" \n" +" If not supplied with an explicit origin, mapfile will clear ARRAY " +"before\n" +" assigning to it.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or ARRAY is readonly." +msgstr "" + +#~ msgid " " +#~ msgstr " " + +# tekst wielowierszowy! +# +#~ msgid "Without EXPR, returns returns \"$line $filename\". With EXPR," +#~ msgstr "Bez EXPR zwraca \"$line $filename\". Z EXPR zwraca" + +#~ msgid "returns \"$line $subroutine $filename\"; this extra information" +#~ msgstr "\"$line $subroutine $filename\"; te dodatkowe informacje" + +#~ msgid "can be used used to provide a stack trace." +#~ msgstr "mog± s³u¿yæ umo¿liwieniu ¶ledzenia stosu." + +# tekst wielowierszowy! +# +#~ msgid "" +#~ "The value of EXPR indicates how many call frames to go back before the" +#~ msgstr "Warto¶æ EXPR okre¶la o ile ramek wywo³añ wzglêdem bie¿±cej ramki" + +#~ msgid "current one; the top frame is frame 0." +#~ msgstr "nale¿y siê cofn±æ; ramka na szczycie stosu ma numer 0." + +#~ msgid "%s: invalid number" +#~ msgstr "%s: nieprawid³owa liczba" + +#~ msgid "Shell commands matching keywords `" +#~ msgstr "Polecenia pow³oki pasuj±ce do s³ów kluczowych `" + +#~ msgid "Display the list of currently remembered directories. Directories" +#~ msgstr "Wy¶wietla listê aktualnie pamiêtanych katalogów. Katalogi" + +#~ msgid "find their way onto the list with the `pushd' command; you can get" +#~ msgstr "umieszczane s± na li¶cie za pomoc± polecenia `pushd'; cofanie siê" + +#~ msgid "back up through the list with the `popd' command." +#~ msgstr "na li¶cie odbywa siê za pomoc± polecenia `popd'." + +#~ msgid "" +#~ "The -l flag specifies that `dirs' should not print shorthand versions" +#~ msgstr "Opcja -l oznacza, ¿e `dirs' nie powinno wypisywaæ skróconej wersji" + +#~ msgid "" +#~ "of directories which are relative to your home directory. This means" +#~ msgstr "" +#~ "tych katalogów, które odnosz± siê do katalogu domowego. Oznacza to, ¿e" + +#~ msgid "that `~/bin' might be displayed as `/homes/bfox/bin'. The -v flag" +#~ msgstr "" +#~ "`~/bin' mo¿e zostaæ wypisane jako `/homes/bfox/bin'. Opcja -v powoduje," + +#~ msgid "causes `dirs' to print the directory stack with one entry per line," +#~ msgstr "" +#~ "¿e `dirs' wypisuje listê katalogów w osobnych wierszach, poprzedzaj±c" + +#~ msgid "" +#~ "prepending the directory name with its position in the stack. The -p" +#~ msgstr "" +#~ "nazwy katalogów ich numerami pozycji na stosie. Opcja -p robi to samo," + +#~ msgid "flag does the same thing, but the stack position is not prepended." +#~ msgstr "ale nie poprzedza numerami pozycji." + +#~ msgid "" +#~ "The -c flag clears the directory stack by deleting all of the elements." +#~ msgstr "Opcja -c czy¶ci stos katalogów usuwaj±c wszystkie jego elementy." + +#~ msgid "" +#~ "+N displays the Nth entry counting from the left of the list shown by" +#~ msgstr "+N wypisuje N-t± z kolei pozycjê od lewej w odniesieniu do listy" + +#~ msgid " dirs when invoked without options, starting with zero." +#~ msgstr " wypisywanej przy wywo³aniu dirs bez opcji, licz±c od zera." + +#~ msgid "" +#~ "-N displays the Nth entry counting from the right of the list shown by" +#~ msgstr "-N wypisuje N-t± z kolei pozycjê od prawej w odniesieniu do listy" + +#~ msgid "Adds a directory to the top of the directory stack, or rotates" +#~ msgstr "Dodaje katalog na wierzcho³ku stosu lub wykonuje rotacjê stosu," + +#~ msgid "the stack, making the new top of the stack the current working" +#~ msgstr "czyni±c jego wierzcho³kiem aktualny katalog bie¿±cy." + +#~ msgid "directory. With no arguments, exchanges the top two directories." +#~ msgstr "Bez argumentów zamienia dwa katalogi po³o¿one najwy¿ej na stosie." + +#~ msgid "+N Rotates the stack so that the Nth directory (counting" +#~ msgstr "+N Wykonuje rotacjê stosu tak, ¿e N-ty katalog (licz±c od" + +#~ msgid " from the left of the list shown by `dirs', starting with" +#~ msgstr " lewej w odniesieniu do listy wypisywanej przez `dirs'," + +#~ msgid " zero) is at the top." +#~ msgstr " pocz±wszy od zera) znajdzie siê na wierzcho³ku." + +#~ msgid "-N Rotates the stack so that the Nth directory (counting" +#~ msgstr "-N Wykonuje rotacjê stosu tak, ¿e N-ty katalog (licz±c od" + +#~ msgid " from the right of the list shown by `dirs', starting with" +#~ msgstr " prawej w odniesieniu do listy wypisywanej przez `dirs'," + +#~ msgid "-n suppress the normal change of directory when adding directories" +#~ msgstr "-n wy³±cza zwyk³± zmianê katalogu przy umieszczaniu katalogów na" + +#~ msgid " to the stack, so only the stack is manipulated." +#~ msgstr " stosie tak, ¿e zmieniany jest tylko stos." + +#~ msgid "dir adds DIR to the directory stack at the top, making it the" +#~ msgstr "dir umieszcza DIR na wierzcho³ku stosu katalogów, czyni±c go" + +#~ msgid " new current working directory." +#~ msgstr " nowym katalogiem bie¿±cym." + +#~ msgid "You can see the directory stack with the `dirs' command." +#~ msgstr "Stos katalogów mo¿na zobaczyæ za pomoc± polecenia `dirs'." + +#~ msgid "Removes entries from the directory stack. With no arguments," +#~ msgstr "Usuwa pozycje ze stosu katalogów. Bez argumentów, usuwa ze" + +#~ msgid "removes the top directory from the stack, and cd's to the new" +#~ msgstr "stosu najwy¿szy katalog oraz wykonuje cd do nowego najwy¿szego" + +#~ msgid "top directory." +#~ msgstr "katalogu." + +#~ msgid "+N removes the Nth entry counting from the left of the list" +#~ msgstr "+N usuwa N-t± z kolei pozycjê od lewej w odniesieniu do listy" + +#~ msgid " shown by `dirs', starting with zero. For example: `popd +0'" +#~ msgstr " wypisywanej przez `dirs', licz±c od zera. Np.: `popd +0'" + +#~ msgid " removes the first directory, `popd +1' the second." +#~ msgstr " usuwa pierwszy katalog a `popd +1' usuwa drugi." + +#~ msgid "-N removes the Nth entry counting from the right of the list" +#~ msgstr "-N usuwa N-t± z kolei pozycjê od prawej w odniesieniu do listy" + +#~ msgid " shown by `dirs', starting with zero. For example: `popd -0'" +#~ msgstr " wypisywanej przez `dirs', licz±c od zera. Np.: `popd -0'" + +#~ msgid " removes the last directory, `popd -1' the next to last." +#~ msgstr " usuwa ostatni katalog a `popd -1' usuwa przedostatni." + +#~ msgid "" +#~ "-n suppress the normal change of directory when removing directories" +#~ msgstr "-n wy³±cza zwyk³± zmianê katalogu przy usuwaniu katalogów ze" + +#~ msgid " from the stack, so only the stack is manipulated." +#~ msgstr " stosu tak, ¿e zmieniany jest tylko stos." + +#~ msgid "allocated" +#~ msgstr "przydzielony" + +#~ msgid "freed" +#~ msgstr "zwolniony" + +#~ msgid "requesting resize" +#~ msgstr "wymagaj±cy zmiany rozmiaru" + +#~ msgid "just resized" +#~ msgstr "o w³a¶nie zmienionym rozmiarze" + +#~ msgid "bug: unknown operation" +#~ msgstr "b³±d: nieznana operacja" + +#~ msgid "malloc: watch alert: %p %s " +#~ msgstr "malloc: alarm stra¿nka: %p %s " + +#~ msgid "" +#~ "Exit from within a FOR, WHILE or UNTIL loop. If N is specified,\n" +#~ " break N levels." +#~ msgstr "" +#~ "Wyj¶cie z wnêtrza pêtli FOR, WHILE lub UNTIL. Je¶li podano N, " +#~ "przerywanych\n" +#~ " jest N poziomów pêtli." + +#~ msgid "" +#~ "Run a shell builtin. This is useful when you wish to rename a\n" +#~ " shell builtin to be a function, but need the functionality of the\n" +#~ " builtin within the function itself." +#~ msgstr "" +#~ "Uruchomienie wewnêtrznego polecenia pow³oki. Przydatne przy zastêpowaniu\n" +#~ " polecenia pow³oki funkcj±, wewn±trz której wymagane jest wywo³anie " +#~ "tego\n" +#~ " polecenia pow³oki." + +#~ msgid "" +#~ "Print the current working directory. With the -P option, pwd prints\n" +#~ " the physical directory, without any symbolic links; the -L option\n" +#~ " makes pwd follow symbolic links." +#~ msgstr "" +#~ "Wypisanie bia¿±cego katalogu roboczego. Z opcj± -P, pwd wypisuje " +#~ "katalog\n" +#~ " fizyczny, bez dowi±zañ symbolicznych; opcja -L powoduje, ¿e pwd " +#~ "pod±¿a\n" +#~ " za dowi±zaniami symbolicznymi." + +#~ msgid "Return a successful result." +#~ msgstr "Zwracany jest pomy¶lny wynik zakoñczenia." + +#~ msgid "" +#~ "Runs COMMAND with ARGS ignoring shell functions. If you have a shell\n" +#~ " function called `ls', and you wish to call the command `ls', you can\n" +#~ " say \"command ls\". If the -p option is given, a default value is " +#~ "used\n" +#~ " for PATH that is guaranteed to find all of the standard utilities. " +#~ "If\n" +#~ " the -V or -v option is given, a string is printed describing " +#~ "COMMAND.\n" +#~ " The -V option produces a more verbose description." +#~ msgstr "" +#~ "Uruchomienie COMMAND z argumentami ARGS ignoruj±c funkcje pow³oki. Je¶li\n" +#~ " istnieje funkcja pow³oki o nazwie `ls', a istnieje potrzeba " +#~ "wywo³ania\n" +#~ " polecenia `ls', mo¿na napisaæ \"command ls\". Je¶li podano opcje -p,\n" +#~ " u¿ywana jest domy¶lna warto¶æ PATH, co zapewnia odnalezienie " +#~ "wszystkich\n" +#~ " standardowych narzêdzi. Je¶li podano opcjê -V lub -v, wypisywany " +#~ "jest\n" +#~ " napis opisuj±cy COMMAND. Opcja -V generuje obszerniejszy opis." + +#~ msgid "Obsolete. See `declare'." +#~ msgstr "Przestarza³e. Patrz `declare'." + +#~ msgid "" +#~ "Create a local variable called NAME, and give it VALUE. LOCAL\n" +#~ " can only be used within a function; it makes the variable NAME\n" +#~ " have a visible scope restricted to that function and its children." +#~ msgstr "" +#~ "Utworzenie zmiennej lokalnej o nazwie NAME, i nadanie jej warto¶ci " +#~ "VALUE.\n" +#~ " LOCAL mo¿na u¿yæ jedynie wewn±trz funkcji; powoduje, ¿e zakres\n" +#~ " widoczno¶ci zmiennej NAME jest ograniczony do tej funkcji i jej\n" +#~ " procesów potomnych." + +#~ msgid "" +#~ "Output the ARGs. If -n is specified, the trailing newline is suppressed." +#~ msgstr "" +#~ "Wypisanie argumentów. Gdy podano -n, koñcowy znak nowego wiersza jest " +#~ "pomijany." + +#~ msgid "" +#~ "Enable and disable builtin shell commands. This allows\n" +#~ " you to use a disk command which has the same name as a shell\n" +#~ " builtin without specifying a full pathname. If -n is used, the\n" +#~ " NAMEs become disabled; otherwise NAMEs are enabled. For example,\n" +#~ " to use the `test' found in $PATH instead of the shell builtin\n" +#~ " version, type `enable -n test'. On systems supporting dynamic\n" +#~ " loading, the -f option may be used to load new builtins from the\n" +#~ " shared object FILENAME. The -d option will delete a builtin\n" +#~ " previously loaded with -f. If no non-option names are given, or\n" +#~ " the -p option is supplied, a list of builtins is printed. The\n" +#~ " -a option means to print every builtin with an indication of whether\n" +#~ " or not it is enabled. The -s option restricts the output to the " +#~ "POSIX.2\n" +#~ " `special' builtins. The -n option displays a list of all disabled " +#~ "builtins." +#~ msgstr "" +#~ "W³±czenie i wy³±czenie wewnêtrznych poleceñ pow³oki. Pozwala to u¿ywaæ\n" +#~ " programu zewnêtrznego o tej samej nazwie co polecenie wewnêtrzne " +#~ "pow³oki\n" +#~ " bez podawania pe³nej ¶cie¿ki. Je¶li podano -n, polecenia o nazwach\n" +#~ " NAME ... s± wy³±czane; w przeciwnym przypadku polecenia o tych " +#~ "nazwach\n" +#~ " s± w³±czane. Np., aby u¿ywaæ zamiast wewnêtrznego polecenia `test'\n" +#~ " polecenia znalezionego w $PATH, nale¿y napisaæ `nable -n test'.\n" +#~ " W systemach wspieraj±cych ³adowanie dynamiczne mo¿na pos³u¿yc siê " +#~ "opcj±\n" +#~ " -f do wczytania nowej listy poleceñ wewnêtrznych ze wspó³dzielonego\n" +#~ " obiektu FILENAME. Opcja -d usuwa polecenia wewnêtrzne wczytane " +#~ "wcze¶niej\n" +#~ " za pomoc± -f. W przypadku nie podania ¿adnej nazwy lub podania opcji -" +#~ "p,\n" +#~ " wypisywana jest lista poleceñ wewnêtrznych. Opcja -a oznacza " +#~ "wypisanie\n" +#~ " wszystkich poleceñ wewnêtrznych wraz z informacj± o ich w³±czeniu " +#~ "bad¼\n" +#~ " wy³±czeniu. Opcja -s ogranicza wypisywanie do poleceñ `specjalnych'\n" +#~ " zgodnych z POSIX.2. Opcja -n powoduje wypisanie listy wszystkich\n" +#~ " wy³±czonych poleceñ." + +#~ msgid "" +#~ "Read ARGs as input to the shell and execute the resulting command(s)." +#~ msgstr "" +#~ "Czytanie argumentów jako danych wej¶ciowych pow³oki i uruchomienie tak\n" +#~ " powsta³ego polecenia (powsta³ych poleceñ)." + +#~ msgid "" +#~ "Exec FILE, replacing this shell with the specified program.\n" +#~ " If FILE is not specified, the redirections take effect in this\n" +#~ " shell. If the first argument is `-l', then place a dash in the\n" +#~ " zeroth arg passed to FILE, as login does. If the `-c' option\n" +#~ " is supplied, FILE is executed with a null environment. The `-a'\n" +#~ " option means to make set argv[0] of the executed process to NAME.\n" +#~ " If the file cannot be executed and the shell is not interactive,\n" +#~ " then the shell exits, unless the shell option `execfail' is set." +#~ msgstr "" +#~ "Uruchomienie FILE, zastêpuj±c bie¿±c± pow³okê podanym programem.\n" +#~ " Gdy nie podano FILE, przekierowanie dotyczy bie¿±cej pow³oki. Je¶li\n" +#~ " pierwszym argumentem jest `-l', to zerowym argumentem przekazywanym\n" +#~ " do FILE jest my¶lnik tak, jak to robi login. Gdy podano opcjê `-c',\n" +#~ " FILE jest uruchamiane z pustym ¶rodowiskiem. Opcja `-a' oznacza\n" +#~ " ustawienie argv[0] uruchomionego procesu na NAME. Je¶li pliku nie\n" +#~ " mo¿na uruchomiæ a pow³oka nie jest interakcyjna, to koñczy ona\n" +#~ " dzia³anie, chyba ¿e ustawiono opcjê pow³oki `execfail'." + +#~ msgid "Logout of a login shell." +#~ msgstr "Wylogowanie z pow³oki logowania" + +#~ msgid "" +#~ "For each NAME, the full pathname of the command is determined and\n" +#~ " remembered. If the -p option is supplied, PATHNAME is used as the\n" +#~ " full pathname of NAME, and no path search is performed. The -r\n" +#~ " option causes the shell to forget all remembered locations. The -d\n" +#~ " option causes the shell to forget the remembered location of each " +#~ "NAME.\n" +#~ " If the -t option is supplied the full pathname to which each NAME\n" +#~ " corresponds is printed. If multiple NAME arguments are supplied " +#~ "with\n" +#~ " -t, the NAME is printed before the hashed full pathname. The -l " +#~ "option\n" +#~ " causes output to be displayed in a format that may be reused as " +#~ "input.\n" +#~ " If no arguments are given, information about remembered commands is " +#~ "displayed." +#~ msgstr "" +#~ "Dla ka¿dego NAME, okre¶lana i zapamiêtywana jest pe³na ¶cie¿ka " +#~ "polecenia.\n" +#~ " Gdy podano opcjê -p, to jako pe³na ¶cie¿ka dla NAME jest u¿ywane\n" +#~ " PATHNAME i nie odbywa siê poszukiwanie ¶cie¿ki. Opcja -r powoduje,\n" +#~ " ¿e pow³oka zapomina wszystkie pamiêtane po³o¿enia. Opcja -d " +#~ "powoduje,\n" +#~ " ¿e pow³oka zapomina pamiêtane po³o¿enia wszystkich NAME. Podanie " +#~ "opcji\n" +#~ " -t powoduje wypisanie pe³nej ¶cie¿ki odpowiadaj±cej ka¿demu NAME.\n" +#~ " Gdy przy -t podanych zostanie wiele NAME, s± one wypisywane przed\n" +#~ " zapamiêtan± pe³n± ¶cie¿k±. Opcja -l powoduje wypisanie danych w " +#~ "postaci,\n" +#~ " która mo¿e s³u¿yæ jako dane wej¶ciowe. W przypadku nie podania " +#~ "¿adnych\n" +#~ " argumentów, wypisywane s± informacje o pamiêtanych poleceniach." + +#~ msgid "" +#~ "Display helpful information about builtin commands. If PATTERN is\n" +#~ " specified, gives detailed help on all commands matching PATTERN,\n" +#~ " otherwise a list of the builtins is printed. The -s option\n" +#~ " restricts the output for each builtin command matching PATTERN to\n" +#~ " a short usage synopsis." +#~ msgstr "" +#~ "Wypisanie pomocnych informacji o wbudowanych poleceniach. Gdy podano\n" +#~ " PATTERN, wypisywane s± szczegó³owe informacje pomocnicze dla\n" +#~ " wszystkich poleceñ pasuj±cych do wzorca PATTERN, a w przeciwnym\n" +#~ " przypadku wypisywana jest tylko lista poleceñ wewnêtrznych. Opcja -s\n" +#~ " ogranicza opis ka¿dego z poleceñ wewnêtrznych pasuj±cych do wzorca\n" +#~ " PATTERN do krótkiego opisu sk³adni." + +#~ msgid "" +#~ "By default, removes each JOBSPEC argument from the table of active jobs.\n" +#~ " If the -h option is given, the job is not removed from the table, but " +#~ "is\n" +#~ " marked so that SIGHUP is not sent to the job if the shell receives a\n" +#~ " SIGHUP. The -a option, when JOBSPEC is not supplied, means to remove " +#~ "all\n" +#~ " jobs from the job table; the -r option means to remove only running " +#~ "jobs." +#~ msgstr "" +#~ "Domy¶lnie, usuwanie wszystkich argumentów JOBSPEC z tablicy aktywnych " +#~ "zadañ.\n" +#~ " Przy podaniu opcji -h, zadanie nie jest usuwane z tablicy ale, " +#~ "oznaczane\n" +#~ " w ten sposób, ¿e nie jest do niego wysy³any SIGHUP, gdy pow³oka " +#~ "otrzyma\n" +#~ " SIGHUP. Opcja -a, gdy nie jest podane JOBSPEC, oznacza usuniêcie\n" +#~ " wszystkich zadañ z tablicy zadañ; opcja -r oznacza usuniêcie tylko\n" +#~ " dzia³aj±cych zadañ." + +#~ msgid "" +#~ "Causes a function to exit with the return value specified by N. If N\n" +#~ " is omitted, the return status is that of the last command." +#~ msgstr "" +#~ "Powoduje zakoñczenie funkcji z kodem powrotu okre¶lonym przez N. Gdy N\n" +#~ " zostanie pominiête, kodem powrotu jest kod powrotu ostatniego " +#~ "polecenia." + +#~ msgid "" +#~ "For each NAME, remove the corresponding variable or function. Given\n" +#~ " the `-v', unset will only act on variables. Given the `-f' flag,\n" +#~ " unset will only act on functions. With neither flag, unset first\n" +#~ " tries to unset a variable, and if that fails, then tries to unset a\n" +#~ " function. Some variables cannot be unset; also see readonly." +#~ msgstr "" +#~ "Dla ka¿dego NAME, usuwana jest odpowiednia zmienna lub funkcja. Po " +#~ "podaniu\n" +#~ " `-v' unset dzia³a tylko dla zmiennych. Po podaniu znacznika`-f' " +#~ "unset\n" +#~ " dzia³a tylko dla funkcji. Bez ¿adnego ze znaczników, unset najpierw\n" +#~ " próbuje unicestwiæ zmienn±, a gdy to siê nie uda, próbuje unicestwiæ\n" +#~ " funkcjê. Niektórych zmiennych nie mo¿na unicestwiæ; patrz tak¿e " +#~ "readonly." + +#~ msgid "" +#~ "NAMEs are marked for automatic export to the environment of\n" +#~ " subsequently executed commands. If the -f option is given,\n" +#~ " the NAMEs refer to functions. If no NAMEs are given, or if `-p'\n" +#~ " is given, a list of all names that are exported in this shell is\n" +#~ " printed. An argument of `-n' says to remove the export property\n" +#~ " from subsequent NAMEs. An argument of `--' disables further option\n" +#~ " processing." +#~ msgstr "" +#~ "Wszystkie NAME s± oznaczane jako eksportowane automatycznie do " +#~ "¶rodowiska\n" +#~ " kolenjno uruchamianych poleceñ. Je¶li zostanie podana opcja -f, to " +#~ "NAME\n" +#~ " oznaczaj± funkcje. W przypadku nie podania ¿adnego NAME lub podania " +#~ "opcji\n" +#~ " `-p', wypisywana jest lista wszystkich eksportowanych z tej pow³oki " +#~ "nazw.\n" +#~ " Argument `-n' oznacza, ¿e nale¿y usuni±æ w³asno¶æ eksportowania\n" +#~ " z wszystkich nastêpnych NAME. Argument `--' wy³±cza przetwarzanie\n" +#~ " dalszych opcji." + +#~ msgid "" +#~ "The given NAMEs are marked readonly and the values of these NAMEs may\n" +#~ " not be changed by subsequent assignment. If the -f option is given,\n" +#~ " then functions corresponding to the NAMEs are so marked. If no\n" +#~ " arguments are given, or if `-p' is given, a list of all readonly " +#~ "names\n" +#~ " is printed. The `-a' option means to treat each NAME as\n" +#~ " an array variable. An argument of `--' disables further option\n" +#~ " processing." +#~ msgstr "" +#~ "Oznaczanie podanych NAME jako tylko do odczytu tak, ¿e warto¶ci tych " +#~ "NAME\n" +#~ " nie mog± zostaæ zmienione przez pó¿niejsze przypisania. Gdy podana\n" +#~ " zostanie opcja -f, odpowiednio oznaczane s± równie¿ funkcje " +#~ "odpowiadaj±ce\n" +#~ " NAME. Gdy nie podano argumentów lub podano `-p', wypisywana jest " +#~ "lista\n" +#~ " wszystkich nazw tylko do odczytu. Opcja `-a' oznacza, ¿e NAME nale¿y\n" +#~ " traktowaæ jak zmienne tablicowe. Argument `--' wy³±cza przetwarzanie\n" +#~ " dalszych opcji." + +#~ msgid "" +#~ "The positional parameters from $N+1 ... are renamed to $1 ... If N is\n" +#~ " not given, it is assumed to be 1." +#~ msgstr "" +#~ "Przemianowanie parametrów pozycyjnych od $N+1 ... na $1 ... Je¶li N nie\n" +#~ " zostanie podane, zak³ada siê, ¿e jest równe 1." + +#~ msgid "" +#~ "Suspend the execution of this shell until it receives a SIGCONT\n" +#~ " signal. The `-f' if specified says not to complain about this\n" +#~ " being a login shell if it is; just suspend anyway." +#~ msgstr "" +#~ "Zawieszenie wykonania bie¿±cej pow³oki do czasu otrzymania sygna³u " +#~ "SIGCONT.\n" +#~ " Podanie `-f' oznacza, ¿e pow³oka, bêd±ca pow³ok± logowania, nie " +#~ "powinna\n" +#~ " wobec tego protestowaæ, lecz zawiesiæ siê pomimo to." + +#~ msgid "" +#~ "Print the accumulated user and system times for processes run from\n" +#~ " the shell." +#~ msgstr "" +#~ "Wypisywanie ³±cznych czasów u¿ytkownika i systemu dla procesów " +#~ "uruchomionych\n" +#~ " z pow³oki." + +#~ msgid "" +#~ "The user file-creation mask is set to MODE. If MODE is omitted, or if\n" +#~ " `-S' is supplied, the current value of the mask is printed. The `-" +#~ "S'\n" +#~ " option makes the output symbolic; otherwise an octal number is " +#~ "output.\n" +#~ " If `-p' is supplied, and MODE is omitted, the output is in a form\n" +#~ " that may be used as input. If MODE begins with a digit, it is\n" +#~ " interpreted as an octal number, otherwise it is a symbolic mode " +#~ "string\n" +#~ " like that accepted by chmod(1)." +#~ msgstr "" +#~ "Ustawienie maski dla plików tworzonych przez u¿ytkownika na MODE. Gdy " +#~ "MODE\n" +#~ " zostanie pominiête lub gdy podane zostanie `-S', wypisywana jest " +#~ "bie¿±ca\n" +#~ " warto¶c maski. Opcja `-S' powoduje wyprowadzanie symboliczne; w " +#~ "przeciwnym\n" +#~ " przypadku wyprowadzana jest liczba ósemkowa. Gdy podane zostanie `-" +#~ "p'\n" +#~ " a MODE zostanie pominiête, wyprowadzane s± dane w takim formacie, " +#~ "jaki\n" +#~ " powinny mieæ dane wej¶ciowe. Gdy MODE zaczyna siê od cyfry, jest\n" +#~ " interpretowane jako liczba ósemkowa, w przeciwnym razie jest " +#~ "³añcuchem\n" +#~ " trybu w postaci symbolicznej, podobnej do akceptowanej przez chmod(1)." + +#~ msgid "" +#~ "Wait for the specified process and report its termination status. If\n" +#~ " N is not given, all currently active child processes are waited for,\n" +#~ " and the return code is zero. N is a process ID; if it is not given,\n" +#~ " all child processes of the shell are waited for." +#~ msgstr "" +#~ "Oczekiwanie na podany proces i zg³oszenie jego statusu zakoñczenia. Gdy " +#~ "nie\n" +#~ " zostanie podane N, oczekiwanie dotyczy wszystkich aktualnie " +#~ "aktywnych\n" +#~ " procesów potomnych, a kodem powrotu jest zero. N jest PID; gdy nie\n" +#~ " zostanie podane, oczekiwanie dotyczy wszystkich procesów potomnych\n" +#~ " pow³oki." + +#~ msgid "" +#~ "Create a simple command invoked by NAME which runs COMMANDS.\n" +#~ " Arguments on the command line along with NAME are passed to the\n" +#~ " function as $0 .. $n." +#~ msgstr "" +#~ "Utworzenie prostego polecenia wywo³ywanego przez NAME, które uruchamia\n" +#~ " polecenia COMMANDS. Argumenty z wiersza poleceñ podane po NAME s±\n" +#~ " przekazywane do funkcji jako $0 .. $n." + +#~ msgid "" +#~ "For each NAME, specify how arguments are to be completed.\n" +#~ " If the -p option is supplied, or if no options are supplied, " +#~ "existing\n" +#~ " completion specifications are printed in a way that allows them to " +#~ "be\n" +#~ " reused as input. The -r option removes a completion specification " +#~ "for\n" +#~ " each NAME, or, if no NAMEs are supplied, all completion " +#~ "specifications." +#~ msgstr "" +#~ "Okre¶lenie, jak argumenty maja byc uzupe³niane dla poszczególnych NAME.\n" +#~ " Gdy podano opcjê -p, lub nie podano ¿adnych opcji, wypisywane s±\n" +#~ " istniej±ce specyfikacje uzupe³nieñ w postaci, umo¿liwiaj±cej ich " +#~ "ponowne\n" +#~ " u¿ycie jako danych wej¶ciowych. Opcja -r powoduje usuniêcie " +#~ "specyfikacji\n" +#~ " uzupe³nieñ dla wszystkich NAME lub, gdy nie podano ¿adnego NAME,\n" +#~ " wszystkich specyfikacji uzupe³nieñ." diff --git a/po/pt_BR.gmo b/po/pt_BR.gmo new file mode 100644 index 0000000000000000000000000000000000000000..d9d25b04033c05fac2bfeed4e7f8dc6561efee11 GIT binary patch literal 9926 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, 2002. +# +msgid "" +msgstr "" +"Project-Id-Version: bash 2.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2009-01-06 11:56-0500\n" +"PO-Revision-Date: 2002-05-08 13:50GMT -3\n" +"Last-Translator: Halley Pacheco de Oliveira \n" +"Language-Team: Brazilian Portuguese \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-1\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 0.9.5\n" + +#: arrayfunc.c:50 +msgid "bad array subscript" +msgstr "índice da matriz (array) incorreto" + +#: arrayfunc.c:313 builtins/declare.def:474 +#, c-format +msgid "%s: cannot convert indexed to associative array" +msgstr "" + +#: arrayfunc.c:479 +#, fuzzy, c-format +msgid "%s: invalid associative array key" +msgstr "%c%c: opção incorreta" + +#: arrayfunc.c:481 +#, c-format +msgid "%s: cannot assign to non-numeric index" +msgstr "%s: impossível atribuir a índice não numérico" + +#: arrayfunc.c:517 +#, c-format +msgid "%s: %s: must use subscript when assigning associative array" +msgstr "" + +#: bashhist.c:380 +#, c-format +msgid "%s: cannot create: %s" +msgstr "%s: impossível criar: %s" + +#: bashline.c:3413 +msgid "bash_execute_unix_command: cannot find keymap for command" +msgstr "" + +#: bashline.c:3491 +#, c-format +msgid "%s: first non-whitespace character is not `\"'" +msgstr "" + +#: bashline.c:3520 +#, c-format +msgid "no closing `%c' in %s" +msgstr "" + +#: bashline.c:3554 +#, c-format +msgid "%s: missing colon separator" +msgstr "" + +#: builtins/bind.def:120 builtins/bind.def:123 +msgid "line editing not enabled" +msgstr "" + +#: builtins/bind.def:206 +#, c-format +msgid "`%s': invalid keymap name" +msgstr "" + +#: builtins/bind.def:245 +#, fuzzy, c-format +msgid "%s: cannot read: %s" +msgstr "%s: impossível criar: %s" + +#: builtins/bind.def:260 +#, fuzzy, c-format +msgid "`%s': cannot unbind" +msgstr "%s: comando não encontrado" + +#: builtins/bind.def:295 builtins/bind.def:325 +#, fuzzy, c-format +msgid "`%s': unknown function name" +msgstr "%s: função somente para leitura" + +#: builtins/bind.def:303 +#, c-format +msgid "%s is not bound to any keys.\n" +msgstr "" + +#: builtins/bind.def:307 +#, c-format +msgid "%s can be invoked via " +msgstr "" + +#: builtins/break.def:77 builtins/break.def:117 +#, fuzzy +msgid "loop count" +msgstr "logout" + +#: builtins/break.def:137 +msgid "only meaningful in a `for', `while', or `until' loop" +msgstr "" + +#: builtins/caller.def:133 +msgid "" +"Returns the context of the current subroutine call.\n" +" \n" +" Without EXPR, returns " +msgstr "" + +#: builtins/cd.def:215 +msgid "HOME not set" +msgstr "" + +#: builtins/cd.def:227 +msgid "OLDPWD not set" +msgstr "" + +#: builtins/common.c:101 +#, fuzzy, c-format +msgid "line %d: " +msgstr "encaixe (slot) %3d: " + +#: builtins/common.c:139 error.c:260 +#, fuzzy, c-format +msgid "warning: " +msgstr "escrevendo" + +#: builtins/common.c:153 +#, c-format +msgid "%s: usage: " +msgstr "" + +#: builtins/common.c:166 test.c:822 +msgid "too many arguments" +msgstr "número excessivo de argumentos" + +#: builtins/common.c:191 shell.c:493 shell.c:774 +#, fuzzy, c-format +msgid "%s: option requires an argument" +msgstr "a opção requer um argumento: -" + +#: builtins/common.c:198 +#, c-format +msgid "%s: numeric argument required" +msgstr "" + +#: builtins/common.c:205 +#, fuzzy, c-format +msgid "%s: not found" +msgstr "%s: comando não encontrado" + +#: builtins/common.c:214 shell.c:787 +#, fuzzy, c-format +msgid "%s: invalid option" +msgstr "%c%c: opção incorreta" + +#: builtins/common.c:221 +#, fuzzy, c-format +msgid "%s: invalid option name" +msgstr "%c%c: opção incorreta" + +#: builtins/common.c:228 general.c:231 general.c:236 +#, fuzzy, c-format +msgid "`%s': not a valid identifier" +msgstr "`%s' não é um identificador válido" + +#: builtins/common.c:238 +#, fuzzy +msgid "invalid octal number" +msgstr "número do sinal incorreto" + +#: builtins/common.c:240 +#, fuzzy +msgid "invalid hex number" +msgstr "número do sinal incorreto" + +#: builtins/common.c:242 expr.c:1255 +#, fuzzy +msgid "invalid number" +msgstr "número do sinal incorreto" + +#: builtins/common.c:250 +#, c-format +msgid "%s: invalid signal specification" +msgstr "" + +#: builtins/common.c:257 +#, c-format +msgid "`%s': not a pid or valid job spec" +msgstr "" + +#: builtins/common.c:264 error.c:453 +#, c-format +msgid "%s: readonly variable" +msgstr "%s: a variável permite somente leitura" + +#: builtins/common.c:272 +#, c-format +msgid "%s: %s out of range" +msgstr "" + +#: builtins/common.c:272 builtins/common.c:274 +#, fuzzy +msgid "argument" +msgstr "esperado argumento" + +#: builtins/common.c:274 +#, c-format +msgid "%s out of range" +msgstr "" + +#: builtins/common.c:282 +#, c-format +msgid "%s: no such job" +msgstr "" + +#: builtins/common.c:290 +#, fuzzy, c-format +msgid "%s: no job control" +msgstr "nenhum controle de trabalho nesta `shell'" + +#: builtins/common.c:292 +#, fuzzy +msgid "no job control" +msgstr "nenhum controle de trabalho nesta `shell'" + +#: builtins/common.c:302 +#, fuzzy, c-format +msgid "%s: restricted" +msgstr "%s: o trabalho terminou" + +#: builtins/common.c:304 +#, fuzzy +msgid "restricted" +msgstr "Terminado" + +#: builtins/common.c:312 +#, c-format +msgid "%s: not a shell builtin" +msgstr "" + +#: builtins/common.c:321 +#, fuzzy, c-format +msgid "write error: %s" +msgstr "erro de `pipe': %s" + +#: builtins/common.c:553 +#, c-format +msgid "%s: error retrieving current directory: %s: %s\n" +msgstr "" + +#: builtins/common.c:619 builtins/common.c:621 +#, fuzzy, c-format +msgid "%s: ambiguous job spec" +msgstr "%s: Redirecionamento ambíguo" + +#: builtins/complete.def:270 +#, c-format +msgid "%s: invalid action name" +msgstr "" + +#: builtins/complete.def:430 builtins/complete.def:615 +#: builtins/complete.def:813 +#, c-format +msgid "%s: no completion specification" +msgstr "" + +#: builtins/complete.def:667 +msgid "warning: -F option may not work as you expect" +msgstr "" + +#: builtins/complete.def:669 +msgid "warning: -C option may not work as you expect" +msgstr "" + +#: builtins/complete.def:786 +msgid "not currently executing completion function" +msgstr "" + +#: builtins/declare.def:122 +#, fuzzy +msgid "can only be used in a function" +msgstr "somente pode ser usado dentro de funções; faz com que o escopo visível" + +#: builtins/declare.def:353 +msgid "cannot use `-f' to make functions" +msgstr "" + +#: builtins/declare.def:365 execute_cmd.c:4731 +#, c-format +msgid "%s: readonly function" +msgstr "%s: função somente para leitura" + +#: builtins/declare.def:461 +#, fuzzy, c-format +msgid "%s: cannot destroy array variables in this way" +msgstr "$%s: impossível atribuir desta maneira" + +#: builtins/declare.def:468 +#, c-format +msgid "%s: cannot convert associative to indexed array" +msgstr "" + +#: builtins/enable.def:137 builtins/enable.def:145 +msgid "dynamic loading not available" +msgstr "" + +#: builtins/enable.def:312 +#, fuzzy, c-format +msgid "cannot open shared object %s: %s" +msgstr "impossível abrir o `named pipe' %s para %s: %s" + +#: builtins/enable.def:335 +#, c-format +msgid "cannot find %s in shared object %s: %s" +msgstr "" + +#: builtins/enable.def:459 +#, c-format +msgid "%s: not dynamically loaded" +msgstr "" + +#: builtins/enable.def:474 +#, fuzzy, c-format +msgid "%s: cannot delete: %s" +msgstr "%s: impossível criar: %s" + +#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4588 +#: shell.c:1439 +#, c-format +msgid "%s: is a directory" +msgstr "%s: é um diretório" + +#: builtins/evalfile.c:139 +#, fuzzy, c-format +msgid "%s: not a regular file" +msgstr "%s: impossível executar o arquivo binário" + +#: builtins/evalfile.c:147 +#, c-format +msgid "%s: file is too large" +msgstr "" + +#: builtins/evalfile.c:185 execute_cmd.c:4658 shell.c:1449 +#, c-format +msgid "%s: cannot execute binary file" +msgstr "%s: impossível executar o arquivo binário" + +#: builtins/exec.def:212 +#, fuzzy, c-format +msgid "%s: cannot execute: %s" +msgstr "%s: impossível criar: %s" + +#: builtins/exit.def:65 +#, fuzzy, c-format +msgid "logout\n" +msgstr "logout" + +#: builtins/exit.def:88 +msgid "not login shell: use `exit'" +msgstr "" + +#: builtins/exit.def:120 +#, c-format +msgid "There are stopped jobs.\n" +msgstr "" + +#: builtins/exit.def:122 +#, c-format +msgid "There are running jobs.\n" +msgstr "" + +#: builtins/fc.def:261 +#, fuzzy +msgid "no command found" +msgstr "%s: comando não encontrado" + +#: builtins/fc.def:341 +msgid "history specification" +msgstr "" + +#: builtins/fc.def:362 +#, fuzzy, c-format +msgid "%s: cannot open temp file: %s" +msgstr "%s: impossível criar: %s" + +#: builtins/fg_bg.def:149 builtins/jobs.def:282 +msgid "current" +msgstr "" + +#: builtins/fg_bg.def:158 +#, c-format +msgid "job %d started without job control" +msgstr "" + +#: builtins/getopt.c:110 +#, fuzzy, c-format +msgid "%s: illegal option -- %c\n" +msgstr "Opção ilegal: -" + +#: builtins/getopt.c:111 +#, fuzzy, c-format +msgid "%s: option requires an argument -- %c\n" +msgstr "a opção requer um argumento: -" + +#: builtins/hash.def:92 +msgid "hashing disabled" +msgstr "" + +#: builtins/hash.def:138 +#, c-format +msgid "%s: hash table empty\n" +msgstr "" + +#: builtins/hash.def:244 +#, fuzzy, c-format +msgid "hits\tcommand\n" +msgstr "`r', o último comando seja executado novamente." + +#: builtins/help.def:130 +#, c-format +msgid "Shell commands matching keyword `" +msgid_plural "Shell commands matching keywords `" +msgstr[0] "" +msgstr[1] "" + +#: builtins/help.def:168 +#, c-format +msgid "" +"no help topics match `%s'. Try `help help' or `man -k %s' or `info %s'." +msgstr "" + +#: builtins/help.def:185 +#, fuzzy, c-format +msgid "%s: cannot open: %s" +msgstr "%s: impossível criar: %s" + +#: builtins/help.def:337 +#, c-format +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:154 +msgid "cannot use more than one of -anrw" +msgstr "" + +#: builtins/history.def:186 +msgid "history position" +msgstr "" + +#: builtins/history.def:365 +#, fuzzy, c-format +msgid "%s: history expansion failed" +msgstr "%s: esperado expressão de número inteiro" + +#: builtins/inlib.def:71 +#, fuzzy, c-format +msgid "%s: inlib failed" +msgstr "%s: esperado expressão de número inteiro" + +#: builtins/jobs.def:109 +msgid "no other options allowed with `-x'" +msgstr "" + +#: builtins/kill.def:197 +#, c-format +msgid "%s: arguments must be process or job IDs" +msgstr "" + +#: builtins/kill.def:260 +#, fuzzy +msgid "Unknown error" +msgstr "Erro desconhecido %d" + +#: builtins/let.def:95 builtins/let.def:120 expr.c:501 expr.c:516 +msgid "expression expected" +msgstr "esperado uma expressão" + +#: builtins/mapfile.def:215 builtins/read.def:272 +#, c-format +msgid "%s: invalid file descriptor specification" +msgstr "" + +#: builtins/mapfile.def:223 builtins/read.def:279 +#, c-format +msgid "%d: invalid file descriptor: %s" +msgstr "" + +#: builtins/mapfile.def:232 builtins/mapfile.def:270 +#, fuzzy, c-format +msgid "%s: invalid line count" +msgstr "%c%c: opção incorreta" + +#: builtins/mapfile.def:243 +#, fuzzy, c-format +msgid "%s: invalid array origin" +msgstr "%c%c: opção incorreta" + +#: builtins/mapfile.def:260 +#, fuzzy, c-format +msgid "%s: invalid callback quantum" +msgstr "número do sinal incorreto" + +#: builtins/mapfile.def:292 +#, fuzzy +msgid "empty array variable name" +msgstr "%s: variável não vinculada" + +#: builtins/mapfile.def:313 +msgid "array variable support required" +msgstr "" + +#: builtins/printf.def:367 +#, c-format +msgid "`%s': missing format character" +msgstr "" + +#: builtins/printf.def:544 +#, c-format +msgid "`%c': invalid format character" +msgstr "" + +#: builtins/printf.def:571 +#, c-format +msgid "warning: %s: %s" +msgstr "" + +#: builtins/printf.def:750 +msgid "missing hex digit for \\x" +msgstr "" + +#: builtins/pushd.def:195 +#, fuzzy +msgid "no other directory" +msgstr "o novo diretório que ocupa o topo da pilha." + +#: builtins/pushd.def:462 +#, fuzzy +msgid "" +msgstr "\tnovo diretório atual de trabalho." + +#: builtins/pushd.def:506 +msgid "directory stack empty" +msgstr "" + +#: builtins/pushd.def:508 +#, fuzzy +msgid "directory stack index" +msgstr "Estouro na base da pilha de recursividade" + +#: builtins/pushd.def:683 +msgid "" +"Display the list of currently remembered directories. Directories\n" +" find their way onto the list with the `pushd' command; you can get\n" +" back up through the list with the `popd' command.\n" +" \n" +" Options:\n" +" -c\tclear the directory stack by deleting all of the elements\n" +" -l\tdo not print tilde-prefixed versions of directories relative\n" +" \tto your home directory\n" +" -p\tprint the directory stack with one entry per line\n" +" -v\tprint the directory stack with one entry per line prefixed\n" +" \twith its position in the stack\n" +" \n" +" Arguments:\n" +" +N\tDisplays the Nth entry counting from the left of the list shown " +"by\n" +" \tdirs when invoked without options, starting with zero.\n" +" \n" +" -N\tDisplays the Nth entry counting from the right of the list shown " +"by\n" +"\tdirs when invoked without options, starting with zero." +msgstr "" + +#: builtins/pushd.def:705 +msgid "" +"Adds a directory to the top of the directory stack, or rotates\n" +" the stack, making the new top of the stack the current working\n" +" directory. With no arguments, exchanges the top two directories.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when adding\n" +" \tdirectories to the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the left of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" -N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the right of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" dir\tAdds DIR to the directory stack at the top, making it the\n" +" \tnew current working directory.\n" +" \n" +" The `dirs' builtin displays the directory stack." +msgstr "" + +#: builtins/pushd.def:730 +msgid "" +"Removes entries from the directory stack. With no arguments, removes\n" +" the top directory from the stack, and changes to the new top directory.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when removing\n" +" \tdirectories from the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRemoves the Nth entry counting from the left of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd +0'\n" +" \tremoves the first directory, `popd +1' the second.\n" +" \n" +" -N\tRemoves the Nth entry counting from the right of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd -0'\n" +" \tremoves the last directory, `popd -1' the next to last.\n" +" \n" +" The `dirs' builtin displays the directory stack." +msgstr "" + +#: builtins/read.def:248 +#, c-format +msgid "%s: invalid timeout specification" +msgstr "" + +#: builtins/read.def:574 +#, fuzzy, c-format +msgid "read error: %d: %s" +msgstr "erro de `pipe': %s" + +#: builtins/return.def:73 +msgid "can only `return' from a function or sourced script" +msgstr "" + +#: builtins/set.def:768 +#, fuzzy +msgid "cannot simultaneously unset a function and a variable" +msgstr "somente pode ser usado dentro de funções; faz com que o escopo visível" + +#: builtins/set.def:805 +#, fuzzy, c-format +msgid "%s: cannot unset" +msgstr "%s: impossível criar: %s" + +#: builtins/set.def:812 +#, fuzzy, c-format +msgid "%s: cannot unset: readonly %s" +msgstr "%s: impossível criar: %s" + +#: builtins/set.def:823 +#, fuzzy, c-format +msgid "%s: not an array variable" +msgstr "%s: variável não vinculada" + +#: builtins/setattr.def:186 +#, fuzzy, c-format +msgid "%s: not a function" +msgstr "%s: função somente para leitura" + +#: builtins/shift.def:71 builtins/shift.def:77 +#, fuzzy +msgid "shift count" +msgstr "shift [n]" + +#: builtins/shopt.def:254 +msgid "cannot set and unset shell options simultaneously" +msgstr "" + +#: builtins/shopt.def:319 +#, c-format +msgid "%s: invalid shell option name" +msgstr "" + +#: builtins/source.def:128 +msgid "filename argument required" +msgstr "" + +#: builtins/source.def:153 +#, fuzzy, c-format +msgid "%s: file not found" +msgstr "%s: comando não encontrado" + +#: builtins/suspend.def:101 +msgid "cannot suspend" +msgstr "" + +#: builtins/suspend.def:111 +#, fuzzy +msgid "cannot suspend a login shell" +msgstr "Sair de uma shell de login." + +#: builtins/type.def:234 +#, c-format +msgid "%s is aliased to `%s'\n" +msgstr "" + +#: builtins/type.def:255 +#, c-format +msgid "%s is a shell keyword\n" +msgstr "" + +#: builtins/type.def:274 +#, fuzzy, c-format +msgid "%s is a function\n" +msgstr "%s: função somente para leitura" + +#: builtins/type.def:296 +#, c-format +msgid "%s is a shell builtin\n" +msgstr "" + +#: builtins/type.def:317 builtins/type.def:391 +#, c-format +msgid "%s is %s\n" +msgstr "" + +#: builtins/type.def:337 +#, c-format +msgid "%s is hashed (%s)\n" +msgstr "" + +#: builtins/ulimit.def:372 +#, c-format +msgid "%s: invalid limit argument" +msgstr "" + +#: builtins/ulimit.def:398 +#, fuzzy, c-format +msgid "`%c': bad command" +msgstr "%c%c: opção incorreta" + +#: builtins/ulimit.def:427 +#, fuzzy, c-format +msgid "%s: cannot get limit: %s" +msgstr "%s: impossível criar: %s" + +#: builtins/ulimit.def:453 +#, fuzzy +msgid "limit" +msgstr "Tempo limite de CPU excedido" + +#: builtins/ulimit.def:465 builtins/ulimit.def:765 +#, fuzzy, c-format +msgid "%s: cannot modify limit: %s" +msgstr "%s: impossível criar: %s" + +#: builtins/umask.def:118 +#, fuzzy +msgid "octal number" +msgstr "número do sinal incorreto" + +#: builtins/umask.def:231 +#, c-format +msgid "`%c': invalid symbolic mode operator" +msgstr "" + +#: builtins/umask.def:286 +#, c-format +msgid "`%c': invalid symbolic mode character" +msgstr "" + +#: error.c:89 error.c:320 error.c:322 error.c:324 +msgid " line " +msgstr "" + +#: error.c:164 +#, fuzzy, c-format +msgid "last command: %s\n" +msgstr "`r', o último comando seja executado novamente." + +#: error.c:172 +#, c-format +msgid "Aborting..." +msgstr "" + +#: error.c:405 +#, fuzzy +msgid "unknown command error" +msgstr "Erro desconhecido %d" + +#: error.c:406 +#, fuzzy +msgid "bad command type" +msgstr "usado como nome de um comando." + +#: error.c:407 +#, fuzzy +msgid "bad connector" +msgstr "conector incorreto `%d'" + +#: error.c:408 +#, fuzzy +msgid "bad jump" +msgstr "Desvio incorreto %d" + +#: error.c:446 +#, c-format +msgid "%s: unbound variable" +msgstr "%s: variável não vinculada" + +#: eval.c:181 +#, fuzzy, c-format +msgid "\atimed out waiting for input: auto-logout\n" +msgstr "" +"%ctempo limite de espera excedido aguardando entrada:\n" +"fim automático da sessão\n" + +#: execute_cmd.c:491 +#, c-format +msgid "cannot redirect standard input from /dev/null: %s" +msgstr "" + +#: execute_cmd.c:1091 +#, c-format +msgid "TIMEFORMAT: `%c': invalid format character" +msgstr "" + +#: execute_cmd.c:1942 +#, fuzzy +msgid "pipe error" +msgstr "erro de `pipe': %s" + +#: execute_cmd.c:4276 +#, c-format +msgid "%s: restricted: cannot specify `/' in command names" +msgstr "%s: restrição: não é permitido especificar `/' em nomes de comandos" + +#: execute_cmd.c:4367 +#, c-format +msgid "%s: command not found" +msgstr "%s: comando não encontrado" + +#: execute_cmd.c:4621 +#, fuzzy, c-format +msgid "%s: %s: bad interpreter" +msgstr "%s: é um diretório" + +#: execute_cmd.c:4770 +#, fuzzy, c-format +msgid "cannot duplicate fd %d to fd %d" +msgstr "impossível duplicar fd (descritor de arquivo) %d para fd 0: %s" + +#: expr.c:241 +msgid "expression recursion level exceeded" +msgstr "excedido o nível de recursividade da expressão" + +#: expr.c:265 +#, fuzzy +msgid "recursion stack underflow" +msgstr "Estouro na base da pilha de recursividade" + +#: expr.c:379 +msgid "syntax error in expression" +msgstr "erro de sintaxe na expressão" + +#: expr.c:419 +msgid "attempted assignment to non-variable" +msgstr "tentativa de atribuição para algo que não é uma variável" + +#: expr.c:440 expr.c:445 expr.c:756 +msgid "division by 0" +msgstr "divisão por 0" + +#: expr.c:471 +#, fuzzy +msgid "bug: bad expassign token" +msgstr "Erro de programação: `token' inválido `%d' passado para expassign()" + +#: expr.c:513 +msgid "`:' expected for conditional expression" +msgstr "`:' esperado para expressão condicional" + +#: expr.c:781 +msgid "exponent less than 0" +msgstr "" + +#: expr.c:826 +msgid "identifier expected after pre-increment or pre-decrement" +msgstr "" + +#: expr.c:854 +msgid "missing `)'" +msgstr "faltando `)'" + +#: expr.c:897 expr.c:1175 +#, fuzzy +msgid "syntax error: operand expected" +msgstr "erro de sintaxe: fim prematuro do arquivo" + +#: expr.c:1177 +msgid "syntax error: invalid arithmetic operator" +msgstr "" + +#: expr.c:1201 +#, fuzzy, c-format +msgid "%s%s%s: %s (error token is \"%s\")" +msgstr "%s: %s: %s (erro: o `token' é \"%s\")\n" + +#: expr.c:1259 +msgid "invalid arithmetic base" +msgstr "" + +#: expr.c:1279 +msgid "value too great for base" +msgstr "valor muito grande para esta base de numeração" + +#: expr.c:1328 +#, fuzzy, c-format +msgid "%s: expression error\n" +msgstr "%s: esperado expressão de número inteiro" + +#: general.c:61 +#, fuzzy +msgid "getcwd: cannot access parent directories" +msgstr "getwd: impossível acessar os diretórios pais (anteriores)" + +#: input.c:94 subst.c:4559 +#, fuzzy, c-format +msgid "cannot reset nodelay mode for fd %d" +msgstr "impossível duplicar fd (descritor de arquivo) %d para fd 0: %s" + +#: input.c:258 +#, fuzzy, c-format +msgid "cannot allocate new file descriptor for bash input from fd %d" +msgstr "" +"impossível alocar novo descritor de arquivo (fd) para a entrada\n" +"do `bash' a partir do descritor de arquivo (fd) %d: %s" + +#: input.c:266 +#, fuzzy, c-format +msgid "save_bash_input: buffer already exists for new fd %d" +msgstr "" +"check_bash_input: já existe o espaço intermediário (buffer)\n" +"para o novo descritor de arquivo (fd) %d" + +#: jobs.c:466 +msgid "start_pipeline: pgrp pipe" +msgstr "" + +#: jobs.c:882 +#, c-format +msgid "forked pid %d appears in running job %d" +msgstr "" + +#: jobs.c:1000 +#, c-format +msgid "deleting stopped job %d with process group %ld" +msgstr "" + +#: jobs.c:1105 +#, c-format +msgid "add_process: process %5ld (%s) in the_pipeline" +msgstr "" + +#: jobs.c:1108 +#, c-format +msgid "add_process: pid %5ld (%s) marked as still alive" +msgstr "" + +#: jobs.c:1396 +#, fuzzy, c-format +msgid "describe_pid: %ld: no such pid" +msgstr "describe_pid: o identificador do processo (pid) não existe (%d)!\n" + +#: jobs.c:1411 +#, fuzzy, c-format +msgid "Signal %d" +msgstr "Sinal desconhecido #%d" + +#: jobs.c:1425 jobs.c:1450 +msgid "Done" +msgstr "Concluído" + +#: jobs.c:1430 siglist.c:122 +msgid "Stopped" +msgstr "Parado" + +#: jobs.c:1434 +#, fuzzy, c-format +msgid "Stopped(%s)" +msgstr "Parado" + +#: jobs.c:1438 +msgid "Running" +msgstr "Executando" + +#: jobs.c:1452 +#, c-format +msgid "Done(%d)" +msgstr "Concluído(%d)" + +#: jobs.c:1454 +#, c-format +msgid "Exit %d" +msgstr "Fim da execução com status %d" + +#: jobs.c:1457 +msgid "Unknown status" +msgstr "Status desconhecido" + +#: jobs.c:1544 +#, c-format +msgid "(core dumped) " +msgstr "(imagem do núcleo gravada)" + +#: jobs.c:1563 +#, fuzzy, c-format +msgid " (wd: %s)" +msgstr "(wd agora: %s)\n" + +#: jobs.c:1766 +#, fuzzy, c-format +msgid "child setpgid (%ld to %ld)" +msgstr "`setpgid' filho (%d para %d) erro %d: %s\n" + +#: jobs.c:2094 nojobs.c:576 +#, fuzzy, c-format +msgid "wait: pid %ld is not a child of this shell" +msgstr "wait: o pid %d não é um filho deste `shell'" + +#: jobs.c:2321 +#, c-format +msgid "wait_for: No record of process %ld" +msgstr "" + +#: jobs.c:2593 +#, c-format +msgid "wait_for_job: job %d is stopped" +msgstr "" + +#: jobs.c:2815 +#, c-format +msgid "%s: job has terminated" +msgstr "%s: o trabalho terminou" + +#: jobs.c:2824 +#, c-format +msgid "%s: job %d already in background" +msgstr "" + +#: jobs.c:3487 +#, fuzzy, c-format +msgid "%s: line %d: " +msgstr "encaixe (slot) %3d: " + +#: jobs.c:3501 nojobs.c:805 +#, c-format +msgid " (core dumped)" +msgstr " (imagem do núcleo gravada)" + +#: jobs.c:3513 jobs.c:3526 +#, c-format +msgid "(wd now: %s)\n" +msgstr "(wd agora: %s)\n" + +#: jobs.c:3558 +#, fuzzy +msgid "initialize_job_control: getpgrp failed" +msgstr "initialize_jobs: getpgrp falhou: %s" + +#: jobs.c:3618 +#, fuzzy +msgid "initialize_job_control: line discipline" +msgstr "initialize_jobs: disciplina da linha: %s" + +#: jobs.c:3628 +#, fuzzy +msgid "initialize_job_control: setpgid" +msgstr "initialize_jobs: getpgrp falhou: %s" + +#: jobs.c:3656 +#, c-format +msgid "cannot set terminal process group (%d)" +msgstr "" + +#: jobs.c:3661 +msgid "no job control in this shell" +msgstr "nenhum controle de trabalho nesta `shell'" + +#: lib/malloc/malloc.c:296 +#, c-format +msgid "malloc: failed assertion: %s\n" +msgstr "" + +#: lib/malloc/malloc.c:312 +#, c-format +msgid "" +"\r\n" +"malloc: %s:%d: assertion botched\r\n" +msgstr "" + +#: lib/malloc/malloc.c:313 +#, fuzzy +msgid "unknown" +msgstr "" + +#: lib/malloc/malloc.c:797 +msgid "malloc: block on free list clobbered" +msgstr "" + +#: lib/malloc/malloc.c:874 +msgid "free: called with already freed block argument" +msgstr "" + +#: lib/malloc/malloc.c:877 +msgid "free: called with unallocated block argument" +msgstr "" + +#: lib/malloc/malloc.c:896 +msgid "free: underflow detected; mh_nbytes out of range" +msgstr "" + +#: lib/malloc/malloc.c:902 +msgid "free: start and end chunk sizes differ" +msgstr "" + +#: lib/malloc/malloc.c:1001 +msgid "realloc: called with unallocated block argument" +msgstr "" + +#: lib/malloc/malloc.c:1016 +msgid "realloc: underflow detected; mh_nbytes out of range" +msgstr "" + +#: lib/malloc/malloc.c:1022 +msgid "realloc: start and end chunk sizes differ" +msgstr "" + +#: lib/malloc/table.c:177 +#, c-format +msgid "register_alloc: alloc table is full with FIND_ALLOC?\n" +msgstr "" + +#: lib/malloc/table.c:184 +#, c-format +msgid "register_alloc: %p already in table as allocated?\n" +msgstr "" + +#: lib/malloc/table.c:220 +#, c-format +msgid "register_free: %p already in table as free?\n" +msgstr "" + +#: lib/sh/fmtulong.c:101 +msgid "invalid base" +msgstr "" + +#: lib/sh/netopen.c:168 +#, fuzzy, c-format +msgid "%s: host unknown" +msgstr "desconhecido" + +#: lib/sh/netopen.c:175 +#, c-format +msgid "%s: invalid service" +msgstr "" + +#: lib/sh/netopen.c:306 +#, c-format +msgid "%s: bad network path specification" +msgstr "" + +#: lib/sh/netopen.c:346 +msgid "network operations not supported" +msgstr "" + +#: mailcheck.c:433 +msgid "You have mail in $_" +msgstr "Você tem mensagem de correio em $_" + +#: mailcheck.c:458 +msgid "You have new mail in $_" +msgstr "Você tem mensagem nova de correio em $_" + +#: mailcheck.c:474 +#, c-format +msgid "The mail in %s has been read\n" +msgstr "As mensagens de correio em %s foram lidas\n" + +#: make_cmd.c:322 +#, fuzzy +msgid "syntax error: arithmetic expression required" +msgstr "erro de sintaxe na expressão" + +#: make_cmd.c:324 +#, fuzzy +msgid "syntax error: `;' unexpected" +msgstr "erro de sintaxe: fim prematuro do arquivo" + +#: make_cmd.c:325 +#, fuzzy, c-format +msgid "syntax error: `((%s))'" +msgstr "erro de sintaxe" + +#: make_cmd.c:567 +#, c-format +msgid "make_here_document: bad instruction type %d" +msgstr "make_here_document: o tipo da instrução está incorreto %d" + +#: make_cmd.c:651 +#, c-format +msgid "here-document at line %d delimited by end-of-file (wanted `%s')" +msgstr "" + +#: make_cmd.c:746 +#, c-format +msgid "make_redirection: redirection instruction `%d' out of range" +msgstr "" + +#: parse.y:2986 parse.y:3218 +#, fuzzy, c-format +msgid "unexpected EOF while looking for matching `%c'" +msgstr "encontrado EOF não esperado enquanto procurava por `%c'" + +#: parse.y:3722 +#, fuzzy +msgid "unexpected EOF while looking for `]]'" +msgstr "encontrado EOF não esperado enquanto procurava por `%c'" + +#: parse.y:3727 +#, fuzzy, c-format +msgid "syntax error in conditional expression: unexpected token `%s'" +msgstr "erro de sintaxe próximo do `token' não esperado `%s'" + +#: parse.y:3731 +#, fuzzy +msgid "syntax error in conditional expression" +msgstr "erro de sintaxe na expressão" + +#: parse.y:3809 +#, c-format +msgid "unexpected token `%s', expected `)'" +msgstr "" + +#: parse.y:3813 +#, fuzzy +msgid "expected `)'" +msgstr "esperado `)'" + +#: parse.y:3841 +#, c-format +msgid "unexpected argument `%s' to conditional unary operator" +msgstr "" + +#: parse.y:3845 +msgid "unexpected argument to conditional unary operator" +msgstr "" + +#: parse.y:3885 +#, fuzzy, c-format +msgid "unexpected token `%s', conditional binary operator expected" +msgstr "%s: esperado operador binário" + +#: parse.y:3889 +#, fuzzy +msgid "conditional binary operator expected" +msgstr "%s: esperado operador binário" + +#: parse.y:3906 +#, c-format +msgid "unexpected argument `%s' to conditional binary operator" +msgstr "" + +#: parse.y:3910 +msgid "unexpected argument to conditional binary operator" +msgstr "" + +#: parse.y:3921 +#, fuzzy, c-format +msgid "unexpected token `%c' in conditional command" +msgstr "`:' esperado para expressão condicional" + +#: parse.y:3924 +#, fuzzy, c-format +msgid "unexpected token `%s' in conditional command" +msgstr "`:' esperado para expressão condicional" + +#: parse.y:3928 +#, fuzzy, c-format +msgid "unexpected token %d in conditional command" +msgstr "`:' esperado para expressão condicional" + +#: parse.y:5195 +#, c-format +msgid "syntax error near unexpected token `%s'" +msgstr "erro de sintaxe próximo do `token' não esperado `%s'" + +#: parse.y:5213 +#, fuzzy, c-format +msgid "syntax error near `%s'" +msgstr "erro de sintaxe próximo do `token' não esperado `%s'" + +#: parse.y:5223 +msgid "syntax error: unexpected end of file" +msgstr "erro de sintaxe: fim prematuro do arquivo" + +#: parse.y:5223 +msgid "syntax error" +msgstr "erro de sintaxe" + +#: parse.y:5285 +#, c-format +msgid "Use \"%s\" to leave the shell.\n" +msgstr "Use \"%s\" para sair da `shell'.\n" + +#: parse.y:5447 +#, fuzzy +msgid "unexpected EOF while looking for matching `)'" +msgstr "encontrado EOF não esperado enquanto procurava por `%c'" + +#: pcomplete.c:1016 +#, c-format +msgid "completion: function `%s' not found" +msgstr "" + +#: pcomplib.c:179 +#, c-format +msgid "progcomp_insert: %s: NULL COMPSPEC" +msgstr "" + +#: print_cmd.c:287 +#, c-format +msgid "print_command: bad connector `%d'" +msgstr "print_command: conector incorreto `%d'" + +#: print_cmd.c:1347 +#, c-format +msgid "cprintf: `%c': invalid format character" +msgstr "" + +#: redir.c:105 +msgid "file descriptor out of range" +msgstr "" + +#: redir.c:148 +#, fuzzy, c-format +msgid "%s: ambiguous redirect" +msgstr "%s: Redirecionamento ambíguo" + +#: redir.c:152 +#, fuzzy, c-format +msgid "%s: cannot overwrite existing file" +msgstr "%s: Impossível sobrescrever arquivo existente" + +#: redir.c:157 +#, fuzzy, c-format +msgid "%s: restricted: cannot redirect output" +msgstr "%s: restrição: não é permitido especificar `/' em nomes de comandos" + +#: redir.c:162 +#, fuzzy, c-format +msgid "cannot create temp file for here-document: %s" +msgstr "impossível criar `pipe' para a substituição do processo: %s" + +#: redir.c:517 +msgid "/dev/(tcp|udp)/host/port not supported without networking" +msgstr "" + +#: redir.c:1023 +#, fuzzy +msgid "redirection error: cannot duplicate fd" +msgstr "erro de redirecionamento" + +#: shell.c:328 +msgid "could not find /tmp, please create!" +msgstr "" + +#: shell.c:332 +msgid "/tmp must be a valid directory name" +msgstr "" + +#: shell.c:876 +#, fuzzy, c-format +msgid "%c%c: invalid option" +msgstr "%c%c: opção incorreta" + +#: shell.c:1638 +msgid "I have no name!" +msgstr "Eu não tenho nome!" + +#: shell.c:1778 +#, fuzzy, c-format +msgid "GNU bash, version %s-(%s)\n" +msgstr "GNU %s, versão %s\n" + +#: shell.c:1779 +#, c-format +msgid "" +"Usage:\t%s [GNU long option] [option] ...\n" +"\t%s [GNU long option] [option] script-file ...\n" +msgstr "" +"Utilização:\t%s [opção-longa-GNU] [opção] ...\n" +"\t%s [opção-longa-GNU] [opção] arquivo-de-script ...\n" + +#: shell.c:1781 +msgid "GNU long options:\n" +msgstr "opções-longas-GNU:\n" + +#: shell.c:1785 +msgid "Shell options:\n" +msgstr "Opções da `shell':\n" + +#: shell.c:1786 +#, fuzzy +msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n" +msgstr "\t-irsD ou -c comando\t\t(somente para chamada)\n" + +#: shell.c:1801 +#, c-format +msgid "\t-%s or -o option\n" +msgstr "\t-%s ou -o opção\n" + +#: shell.c:1807 +#, c-format +msgid "Type `%s -c \"help set\"' for more information about shell options.\n" +msgstr "" +"Digite `%s -c \"help set\"' para mais informações sobre as opções da " +"`shell'.\n" + +#: shell.c:1808 +#, c-format +msgid "Type `%s -c help' for more information about shell builtin commands.\n" +msgstr "" +"Digite `%s -c help' para mais informações sobre os comandos internos do " +"`shell'.\n" + +#: shell.c:1809 +#, c-format +msgid "Use the `bashbug' command to report bugs.\n" +msgstr "" + +#: sig.c:583 +#, c-format +msgid "sigprocmask: %d: invalid operation" +msgstr "" + +#: siglist.c:47 +msgid "Bogus signal" +msgstr "Sinal falso" + +#: siglist.c:50 +msgid "Hangup" +msgstr "Hangup" + +#: siglist.c:54 +msgid "Interrupt" +msgstr "Interromper" + +#: siglist.c:58 +msgid "Quit" +msgstr "Sair" + +#: siglist.c:62 +msgid "Illegal instruction" +msgstr "Instrução ilegal" + +#: siglist.c:66 +msgid "BPT trace/trap" +msgstr "BPT Rastreamento/Captura (BPT trace/trap)" + +#: siglist.c:74 +msgid "ABORT instruction" +msgstr "Instrução ABORT" + +#: siglist.c:78 +msgid "EMT instruction" +msgstr "Instrução EMT" + +#: siglist.c:82 +msgid "Floating point exception" +msgstr "Exceção de ponto flutuante" + +#: siglist.c:86 +msgid "Killed" +msgstr "Morto (Killed)" + +#: siglist.c:90 +msgid "Bus error" +msgstr "Erro do barramento" + +#: siglist.c:94 +msgid "Segmentation fault" +msgstr "Falha de segmentação" + +#: siglist.c:98 +msgid "Bad system call" +msgstr "Chamada incorreta do sistema" + +#: siglist.c:102 +msgid "Broken pipe" +msgstr "`Pipe' partido (Escrita sem leitura)" + +#: siglist.c:106 +msgid "Alarm clock" +msgstr "Relógio de alarme" + +#: siglist.c:110 +#, fuzzy +msgid "Terminated" +msgstr "exibida." + +#: siglist.c:114 +msgid "Urgent IO condition" +msgstr "Condição urgente de Entrada/Saída" + +#: siglist.c:118 +msgid "Stopped (signal)" +msgstr "Parado (sinal)" + +#: siglist.c:126 +msgid "Continue" +msgstr "Continuar" + +#: siglist.c:134 +msgid "Child death or stop" +msgstr "Processo filho parado ou terminado" + +#: siglist.c:138 +msgid "Stopped (tty input)" +msgstr "Parado (entrada tty)" + +#: siglist.c:142 +msgid "Stopped (tty output)" +msgstr "Parado (saída tty)" + +#: siglist.c:146 +msgid "I/O ready" +msgstr "Entrada/Saída pronta" + +#: siglist.c:150 +msgid "CPU limit" +msgstr "Tempo limite de CPU excedido" + +#: siglist.c:154 +msgid "File limit" +msgstr "Tamanho limite do arquivo excedido" + +#: siglist.c:158 +msgid "Alarm (virtual)" +msgstr "Alarme virtual de tempo" + +#: siglist.c:162 +msgid "Alarm (profile)" +msgstr "Alarme (profile)" + +#: siglist.c:166 +msgid "Window changed" +msgstr "Janela mudada" + +#: siglist.c:170 +msgid "Record lock" +msgstr "Registro bloqueado (lock)" + +#: siglist.c:174 +msgid "User signal 1" +msgstr "Sinal 1 definido pelo usuário" + +#: siglist.c:178 +msgid "User signal 2" +msgstr "Sinal 2 definido pelo usuário" + +#: siglist.c:182 +msgid "HFT input data pending" +msgstr "entrada de dados HFT pendente" + +#: siglist.c:186 +msgid "power failure imminent" +msgstr "falha iminente de energia" + +#: siglist.c:190 +msgid "system crash imminent" +msgstr "falha iminente do sistema" + +#: siglist.c:194 +msgid "migrate process to another CPU" +msgstr "migrar o processo para outra CPU" + +#: siglist.c:198 +msgid "programming error" +msgstr "erro de programação" + +#: siglist.c:202 +msgid "HFT monitor mode granted" +msgstr "modo monitor HFT autorizado" + +#: siglist.c:206 +msgid "HFT monitor mode retracted" +msgstr "modo monitor HFT rescindido" + +#: siglist.c:210 +msgid "HFT sound sequence has completed" +msgstr "a seqüência de som HFT foi completada" + +#: siglist.c:214 +msgid "Information request" +msgstr "" + +#: siglist.c:222 +msgid "Unknown Signal #" +msgstr "Sinal desconhecido #" + +#: siglist.c:224 +#, c-format +msgid "Unknown Signal #%d" +msgstr "Sinal desconhecido #%d" + +#: subst.c:1181 subst.c:1302 +#, fuzzy, c-format +msgid "bad substitution: no closing `%s' in %s" +msgstr "substituição incorreta: nenhum `%s' em %s" + +#: subst.c:2458 +#, c-format +msgid "%s: cannot assign list to array member" +msgstr "%s: impossível atribuir uma lista a um membro de uma matriz (array)" + +#: subst.c:4456 subst.c:4472 +#, fuzzy +msgid "cannot make pipe for process substitution" +msgstr "impossível criar `pipe' para a substituição do processo: %s" + +#: subst.c:4504 +#, fuzzy +msgid "cannot make child for process substitution" +msgstr "impossível criar um processo filho para a substituição do processo: %s" + +#: subst.c:4549 +#, fuzzy, c-format +msgid "cannot open named pipe %s for reading" +msgstr "impossível abrir o `named pipe' %s para %s: %s" + +#: subst.c:4551 +#, fuzzy, c-format +msgid "cannot open named pipe %s for writing" +msgstr "impossível abrir o `named pipe' %s para %s: %s" + +#: subst.c:4569 +#, fuzzy, c-format +msgid "cannot duplicate named pipe %s as fd %d" +msgstr "" +"impossível duplicar o `named pipe' %s\n" +"como descritor de arquivo (fd) %d: %s" + +#: subst.c:4765 +#, fuzzy +msgid "cannot make pipe for command substitution" +msgstr "impossível construir `pipes' para substituição do comando: %s" + +#: subst.c:4799 +#, fuzzy +msgid "cannot make child for command substitution" +msgstr "impossível criar um processo filho para substituição do comando: %s" + +#: subst.c:4816 +#, fuzzy +msgid "command_substitute: cannot duplicate pipe as fd 1" +msgstr "" +"command_substitute: impossível duplicar o `pipe' como\n" +"descritor de arquivo (fd) 1: %s" + +#: subst.c:5318 +#, c-format +msgid "%s: parameter null or not set" +msgstr "%s: parâmetro nulo ou não inicializado" + +#: subst.c:5608 +#, c-format +msgid "%s: substring expression < 0" +msgstr "%s: expressão de substring < 0" + +#: subst.c:6660 +#, c-format +msgid "%s: bad substitution" +msgstr "%s: substituição incorreta" + +#: subst.c:6740 +#, c-format +msgid "$%s: cannot assign in this way" +msgstr "$%s: impossível atribuir desta maneira" + +#: subst.c:7479 +#, fuzzy, c-format +msgid "bad substitution: no closing \"`\" in %s" +msgstr "substituição incorreta: nenhum `%s' em %s" + +#: subst.c:8354 +#, c-format +msgid "no match: %s" +msgstr "" + +#: test.c:145 +msgid "argument expected" +msgstr "esperado argumento" + +#: test.c:154 +#, c-format +msgid "%s: integer expression expected" +msgstr "%s: esperado expressão de número inteiro" + +#: test.c:262 +msgid "`)' expected" +msgstr "esperado `)'" + +#: test.c:264 +#, c-format +msgid "`)' expected, found %s" +msgstr "esperado `)', encontrado %s" + +#: test.c:279 test.c:688 test.c:691 +#, c-format +msgid "%s: unary operator expected" +msgstr "%s: esperado operador unário" + +#: test.c:444 test.c:731 +#, c-format +msgid "%s: binary operator expected" +msgstr "%s: esperado operador binário" + +#: test.c:806 +msgid "missing `]'" +msgstr "faltando `]'" + +#: trap.c:201 +#, fuzzy +msgid "invalid signal number" +msgstr "número do sinal incorreto" + +#: trap.c:324 +#, c-format +msgid "run_pending_traps: bad value in trap_list[%d]: %p" +msgstr "" + +#: trap.c:328 +#, c-format +msgid "" +"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself" +msgstr "" + +#: trap.c:372 +#, fuzzy, c-format +msgid "trap_handler: bad signal %d" +msgstr "trap_handler: Sinal incorreto %d" + +#: variables.c:358 +#, c-format +msgid "error importing function definition for `%s'" +msgstr "erro ao importar a definição da função para `%s'" + +#: variables.c:736 +#, c-format +msgid "shell level (%d) too high, resetting to 1" +msgstr "" + +#: variables.c:1898 +msgid "make_local_variable: no function context at current scope" +msgstr "" + +#: variables.c:3127 +msgid "all_local_variables: no function context at current scope" +msgstr "" + +#: variables.c:3344 variables.c:3353 +#, c-format +msgid "invalid character %d in exportstr for %s" +msgstr "" + +#: variables.c:3359 +#, c-format +msgid "no `=' in exportstr for %s" +msgstr "" + +#: variables.c:3794 +msgid "pop_var_context: head of shell_variables not a function context" +msgstr "" + +#: variables.c:3807 +msgid "pop_var_context: no global_variables context" +msgstr "" + +#: variables.c:3881 +msgid "pop_scope: head of shell_variables not a temporary environment scope" +msgstr "" + +#: version.c:46 +msgid "Copyright (C) 2009 Free Software Foundation, Inc." +msgstr "" + +#: version.c:47 +msgid "" +"License GPLv3+: GNU GPL version 3 or later \n" +msgstr "" + +#: version.c:86 +#, fuzzy, c-format +msgid "GNU bash, version %s (%s)\n" +msgstr "GNU %s, versão %s\n" + +#: version.c:91 +#, c-format +msgid "This is free software; you are free to change and redistribute it.\n" +msgstr "" + +#: version.c:92 +#, c-format +msgid "There is NO WARRANTY, to the extent permitted by law.\n" +msgstr "" + +#: xmalloc.c:92 +#, c-format +msgid "xmalloc: cannot allocate %lu bytes (%lu bytes allocated)" +msgstr "xmalloc: impossível alocar %lu bytes (%lu bytes alocados)" + +#: xmalloc.c:94 +#, fuzzy, c-format +msgid "xmalloc: cannot allocate %lu bytes" +msgstr "xmalloc: impossível alocar %lu bytes (%lu bytes alocados)" + +#: xmalloc.c:114 +#, c-format +msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)" +msgstr "xrealloc: impossível realocar %lu bytes (%lu bytes alocados)" + +#: xmalloc.c:116 +#, fuzzy, c-format +msgid "xrealloc: cannot allocate %lu bytes" +msgstr "xrealloc: impossível realocar %lu bytes (%lu bytes alocados)" + +#: xmalloc.c:150 +#, fuzzy, c-format +msgid "xmalloc: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)" +msgstr "xmalloc: impossível alocar %lu bytes (%lu bytes alocados)" + +#: xmalloc.c:152 +#, fuzzy, c-format +msgid "xmalloc: %s:%d: cannot allocate %lu bytes" +msgstr "xmalloc: impossível alocar %lu bytes (%lu bytes alocados)" + +#: xmalloc.c:174 +#, fuzzy, c-format +msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)" +msgstr "xrealloc: impossível realocar %lu bytes (%lu bytes alocados)" + +#: xmalloc.c:176 +#, fuzzy, c-format +msgid "xrealloc: %s:%d: cannot allocate %lu bytes" +msgstr "xrealloc: impossível realocar %lu bytes (%lu bytes alocados)" + +#: builtins.c:43 +msgid "alias [-p] [name[=value] ... ]" +msgstr "alias [-p] [NOME[=VALOR] ... ]" + +#: builtins.c:47 +#, fuzzy +msgid "unalias [-a] name [name ...]" +msgstr "unalias [-a] [NOME ...]" + +#: builtins.c:51 +#, fuzzy +msgid "" +"bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-" +"x keyseq:shell-command] [keyseq:readline-function or readline-command]" +msgstr "" +"bind [-lpvsPVS] [-m MAPA-TECLAS] [-f ARQUIVO] [-q NOME-FUNÇÃO] [-r SEQ-" +"TECLAS] [SEQ-TECLAS:FUNÇÃO-DE-LEITURA-DE-LINHA]" + +#: builtins.c:54 +msgid "break [n]" +msgstr "break [n]" + +#: builtins.c:56 +msgid "continue [n]" +msgstr "continue [n]" + +#: builtins.c:58 +msgid "builtin [shell-builtin [arg ...]]" +msgstr "builtin [COMANDO-INTERNO-DA-SHELL [ARG ...]]" + +#: builtins.c:61 +#, fuzzy +msgid "caller [expr]" +msgstr "test [EXPR]" + +#: builtins.c:64 +#, fuzzy +msgid "cd [-L|-P] [dir]" +msgstr "cd [-PL] [DIR]" + +#: builtins.c:66 +#, fuzzy +msgid "pwd [-LP]" +msgstr "pwd [-PL]" + +#: builtins.c:68 +msgid ":" +msgstr ":" + +#: builtins.c:70 +msgid "true" +msgstr "" + +#: builtins.c:72 +msgid "false" +msgstr "" + +#: builtins.c:74 +msgid "command [-pVv] command [arg ...]" +msgstr "command [-pVv] COMANDO [ARG ...]" + +#: builtins.c:76 +#, fuzzy +msgid "declare [-aAfFilrtux] [-p] [name[=value] ...]" +msgstr "declare [-afFrxi] [-p] NOME[=VALOR] ..." + +#: builtins.c:78 +#, fuzzy +msgid "typeset [-aAfFilrtux] [-p] name[=value] ..." +msgstr "typeset [-afFrxi] [-p] NOME[=VALOR] ..." + +#: builtins.c:80 +#, fuzzy +msgid "local [option] name[=value] ..." +msgstr "local NOME[=VALOR] ..." + +#: builtins.c:83 +msgid "echo [-neE] [arg ...]" +msgstr "echo [-neE] [ARG ...]" + +#: builtins.c:87 +msgid "echo [-n] [arg ...]" +msgstr "echo [-n] [ARG ...]" + +#: builtins.c:90 +#, fuzzy +msgid "enable [-a] [-dnps] [-f filename] [name ...]" +msgstr "enable [-pnds] [-a] [-f ARQUIVO] [NOME ...]" + +#: builtins.c:92 +msgid "eval [arg ...]" +msgstr "eval [ARG ...]" + +#: builtins.c:94 +msgid "getopts optstring name [arg]" +msgstr "getopts OPÇÕES NOME [ARG]" + +#: builtins.c:96 +#, fuzzy +msgid "exec [-cl] [-a name] [command [arguments ...]] [redirection ...]" +msgstr "exec [-cl] [-a NOME] ARQUIVO [REDIRECIONAMENTO ...]" + +#: builtins.c:98 +msgid "exit [n]" +msgstr "exit [n]" + +#: builtins.c:100 +#, fuzzy +msgid "logout [n]" +msgstr "logout" + +#: builtins.c:103 +#, fuzzy +msgid "fc [-e ename] [-lnr] [first] [last] or fc -s [pat=rep] [command]" +msgstr "" +"fc [-e EDITOR] [-nlr] [PRIMEIRO] [ÚLTIMO] ou fc -s [ANTIGO=NOVO] [COMANDO]" + +#: builtins.c:107 +msgid "fg [job_spec]" +msgstr "fg [JOB-ESPECIFICADO]" + +#: builtins.c:111 +#, fuzzy +msgid "bg [job_spec ...]" +msgstr "bg [JOB-ESPECIFICADO]" + +#: builtins.c:114 +#, fuzzy +msgid "hash [-lr] [-p pathname] [-dt] [name ...]" +msgstr "hash [-r] [-p CAMINHO] [NOME ...]" + +#: builtins.c:117 +#, fuzzy +msgid "help [-ds] [pattern ...]" +msgstr "help [PADRÃO ...]" + +#: builtins.c:121 +#, fuzzy +msgid "" +"history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg " +"[arg...]" +msgstr "" +"history [-c] [n] ou history -awrn [ARQUIVO] ou history -ps ARG [ARG...]" + +#: builtins.c:125 +msgid "jobs [-lnprs] [jobspec ...] or jobs -x command [args]" +msgstr "jobs [-lnprs] [JOB-ESPECIFICADO ...] ou jobs -x COMANDO [ARGS]" + +#: builtins.c:129 +#, fuzzy +msgid "disown [-h] [-ar] [jobspec ...]" +msgstr "disown [JOB-ESPECIFICADO ...]" + +#: builtins.c:132 +#, fuzzy +msgid "" +"kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l " +"[sigspec]" +msgstr "" +"kill [-s SIGSPEC | -n SIGNUM | -SIGSPEC] [PID | JOB]... ou kill -l [SIGSPEC]" + +#: builtins.c:134 +msgid "let arg [arg ...]" +msgstr "let ARG [ARG ...]" + +#: builtins.c:136 +msgid "" +"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-p prompt] [-t " +"timeout] [-u fd] [name ...]" +msgstr "" + +#: builtins.c:138 +msgid "return [n]" +msgstr "return [n]" + +#: builtins.c:140 +#, fuzzy +msgid "set [--abefhkmnptuvxBCHP] [-o option-name] [arg ...]" +msgstr "set [--abefhkmnptuvxBCHP] [-o OPÇÃO] [ARG ...]" + +#: builtins.c:142 +msgid "unset [-f] [-v] [name ...]" +msgstr "unset [-f] [-v] [NOME ...]" + +#: builtins.c:144 +#, fuzzy +msgid "export [-fn] [name[=value] ...] or export -p" +msgstr "export [-nf] [NOME ...] ou export -p" + +#: builtins.c:146 +#, fuzzy +msgid "readonly [-af] [name[=value] ...] or readonly -p" +msgstr "readonly [-anf] [NOME ...] ou readonly -p" + +#: builtins.c:148 +#, fuzzy +msgid "shift [n]" +msgstr "exit [n]" + +#: builtins.c:150 +#, fuzzy +msgid "source filename [arguments]" +msgstr "arquivo fonte" + +#: builtins.c:152 +#, fuzzy +msgid ". filename [arguments]" +msgstr ". ARQUIVO" + +#: builtins.c:155 +msgid "suspend [-f]" +msgstr "suspend [-f]" + +#: builtins.c:158 +msgid "test [expr]" +msgstr "test [EXPR]" + +#: builtins.c:160 +msgid "[ arg... ]" +msgstr "[ ARG... ]" + +#: builtins.c:162 +msgid "times" +msgstr "times" + +#: builtins.c:164 +#, fuzzy +msgid "trap [-lp] [[arg] signal_spec ...]" +msgstr "trap [ARG] [SINAL-ESPEC] ou trap -l" + +#: builtins.c:166 +#, fuzzy +msgid "type [-afptP] name [name ...]" +msgstr "type [-apt] NOME [NOME ...]" + +#: builtins.c:169 +#, fuzzy +msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]" +msgstr "ulimit [-SHacdfmstpnuv] [LIMITE]" + +#: builtins.c:172 +#, fuzzy +msgid "umask [-p] [-S] [mode]" +msgstr "umask [-S] [MODO]" + +#: builtins.c:175 +#, fuzzy +msgid "wait [id]" +msgstr "wait [n]" + +#: builtins.c:179 +#, fuzzy +msgid "wait [pid]" +msgstr "wait [n]" + +#: builtins.c:182 +#, fuzzy +msgid "for NAME [in WORDS ... ] ; do COMMANDS; done" +msgstr "for NOME [in PALAVRAS ... ;] do COMANDOS; done" + +#: builtins.c:184 +#, fuzzy +msgid "for (( exp1; exp2; exp3 )); do COMMANDS; done" +msgstr "for NOME [in PALAVRAS ... ;] do COMANDOS; done" + +#: builtins.c:186 +msgid "select NAME [in WORDS ... ;] do COMMANDS; done" +msgstr "select NOME [in PALAVRAS ... ;] do COMANDOS; done" + +#: builtins.c:188 +msgid "time [-p] pipeline" +msgstr "" + +#: builtins.c:190 +msgid "case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac" +msgstr "case PALAVRA in [PADRÃO [| PADRÃO]...) COMANDOS ;;]... esac" + +#: builtins.c:192 +msgid "" +"if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else " +"COMMANDS; ] fi" +msgstr "" +"if COMANDOS; then COMANDOS; [ elif COMANDOS; then COMANDOS; ]... [ else " +"COMANDOS; ] fi" + +#: builtins.c:194 +msgid "while COMMANDS; do COMMANDS; done" +msgstr "while COMANDOS; do COMANDOS; done" + +#: builtins.c:196 +msgid "until COMMANDS; do COMMANDS; done" +msgstr "until COMANDOS; do COMANDOS; done" + +#: builtins.c:198 +#, fuzzy +msgid "function name { COMMANDS ; } or name () { COMMANDS ; }" +msgstr "function NOME { COMANDOS ; } ou NOME () { COMANDOS ; }" + +#: builtins.c:200 +#, fuzzy +msgid "{ COMMANDS ; }" +msgstr "{ COMANDOS }" + +#: builtins.c:202 +#, fuzzy +msgid "job_spec [&]" +msgstr "fg [JOB-ESPECIFICADO]" + +#: builtins.c:204 +#, fuzzy +msgid "(( expression ))" +msgstr "esperado uma expressão" + +#: builtins.c:206 +#, fuzzy +msgid "[[ expression ]]" +msgstr "esperado uma expressão" + +#: builtins.c:208 +#, fuzzy +msgid "variables - Names and meanings of some shell variables" +msgstr "As variáveis da `shell' podem ser operandos. O nome da variável é" + +#: builtins.c:211 +#, fuzzy +msgid "pushd [-n] [+N | -N | dir]" +msgstr "pushd [DIR | +N | -N] [-n]" + +#: builtins.c:215 +#, fuzzy +msgid "popd [-n] [+N | -N]" +msgstr "popd [+N | -N] [-n]" + +#: builtins.c:219 +msgid "dirs [-clpv] [+N] [-N]" +msgstr "dirs [-clpv] [+N] [-N]" + +#: builtins.c:222 +#, fuzzy +msgid "shopt [-pqsu] [-o] [optname ...]" +msgstr "shopt [-pqsu] [-o OPÇÃO-LONGA] NOME-OPÇÃO [NOME-OPÇÃO...]" + +#: builtins.c:224 +msgid "printf [-v var] format [arguments]" +msgstr "" + +#: builtins.c:227 +msgid "" +"complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W " +"wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] " +"[name ...]" +msgstr "" + +#: builtins.c:231 +msgid "" +"compgen [-abcdefgjksuv] [-o option] [-A action] [-G globpat] [-W wordlist] " +"[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]" +msgstr "" + +#: builtins.c:235 +#, fuzzy +msgid "compopt [-o|+o option] [name ...]" +msgstr "type [-apt] NOME [NOME ...]" + +#: builtins.c:238 +msgid "" +"mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c " +"quantum] [array]" +msgstr "" + +#: builtins.c:250 +msgid "" +"Define or display aliases.\n" +" \n" +" Without arguments, `alias' prints the list of aliases in the reusable\n" +" form `alias NAME=VALUE' on standard output.\n" +" \n" +" Otherwise, an alias is defined for each NAME whose VALUE is given.\n" +" A trailing space in VALUE causes the next word to be checked for\n" +" alias substitution when the alias is expanded.\n" +" \n" +" Options:\n" +" -p\tPrint all defined aliases in a reusable format\n" +" \n" +" Exit Status:\n" +" alias returns true unless a NAME is supplied for which no alias has " +"been\n" +" defined." +msgstr "" + +#: builtins.c:272 +#, fuzzy +msgid "" +"Remove each NAME from the list of defined aliases.\n" +" \n" +" Options:\n" +" -a\tremove all alias definitions.\n" +" \n" +" Return success unless a NAME is not an existing alias." +msgstr "" +"Remove NOMEs da lista de aliases definidos. Se a opção -a for fornecida," + +#: builtins.c:285 +msgid "" +"Set Readline key bindings and variables.\n" +" \n" +" Bind a key sequence to a Readline function or a macro, or set a\n" +" Readline variable. The non-option argument syntax is equivalent to\n" +" that found in ~/.inputrc, but must be passed as a single argument:\n" +" e.g., bind '\"\\C-x\\C-r\": re-read-init-file'.\n" +" \n" +" Options:\n" +" -m keymap Use KEYMAP as the keymap for the duration of this\n" +" command. Acceptable keymap names are emacs,\n" +" emacs-standard, emacs-meta, emacs-ctlx, vi, vi-" +"move,\n" +" vi-command, and vi-insert.\n" +" -l List names of functions.\n" +" -P List function names and bindings.\n" +" -p List functions and bindings in a form that can be\n" +" reused as input.\n" +" -S List key sequences that invoke macros and their " +"values\n" +" -s List key sequences that invoke macros and their " +"values\n" +" in a form that can be reused as input.\n" +" -V List variable names and values\n" +" -v List variable names and values in a form that can\n" +" be reused as input.\n" +" -q function-name Query about which keys invoke the named function.\n" +" -u function-name Unbind all keys which are bound to the named " +"function.\n" +" -r keyseq Remove the binding for KEYSEQ.\n" +" -f filename Read key bindings from FILENAME.\n" +" -x keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n" +" \t\t\t\tKEYSEQ is entered.\n" +" \n" +" Exit Status:\n" +" bind returns 0 unless an unrecognized option is given or an error occurs." +msgstr "" + +#: builtins.c:322 +#, fuzzy +msgid "" +"Exit for, while, or until loops.\n" +" \n" +" Exit a FOR, WHILE or UNTIL loop. If N is specified, break N enclosing\n" +" loops.\n" +" \n" +" Exit Status:\n" +" The exit status is 0 unless N is not greater than or equal to 1." +msgstr "Prossegue no próximo ciclo do laço FOR, WHILE ou UNTIL envolvente." + +#: builtins.c:334 +#, fuzzy +msgid "" +"Resume for, while, or until loops.\n" +" \n" +" Resumes the next iteration of the enclosing FOR, WHILE or UNTIL loop.\n" +" If N is specified, resumes the Nth enclosing loop.\n" +" \n" +" Exit Status:\n" +" The exit status is 0 unless N is not greater than or equal to 1." +msgstr "Prossegue no próximo ciclo do laço FOR, WHILE ou UNTIL envolvente." + +#: builtins.c:346 +msgid "" +"Execute shell builtins.\n" +" \n" +" Execute SHELL-BUILTIN with arguments ARGs without performing command\n" +" lookup. This is useful when you wish to reimplement a shell builtin\n" +" as a shell function, but need to execute the builtin within the " +"function.\n" +" \n" +" Exit Status:\n" +" Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is\n" +" not a shell builtin.." +msgstr "" + +#: builtins.c:361 +msgid "" +"Return the context of the current subroutine call.\n" +" \n" +" Without EXPR, returns \"$line $filename\". With EXPR, returns\n" +" \"$line $subroutine $filename\"; this extra information can be used to\n" +" provide a stack trace.\n" +" \n" +" The value of EXPR indicates how many call frames to go back before the\n" +" current one; the top frame is frame 0.\n" +" \n" +" Exit Status:\n" +" Returns 0 unless the shell is not executing a shell function or EXPR\n" +" is invalid." +msgstr "" + +#: builtins.c:379 +msgid "" +"Change the shell working directory.\n" +" \n" +" Change the current directory to DIR. The default DIR is the value of " +"the\n" +" HOME shell variable.\n" +" \n" +" The variable CDPATH defines the search path for the directory " +"containing\n" +" DIR. Alternative directory names in CDPATH are separated by a colon " +"(:).\n" +" A null directory name is the same as the current directory. If DIR " +"begins\n" +" with a slash (/), then CDPATH is not used.\n" +" \n" +" If the directory is not found, and the shell option `cdable_vars' is " +"set,\n" +" the word is assumed to be a variable name. If that variable has a " +"value,\n" +" its value is used for DIR.\n" +" \n" +" Options:\n" +" -L\tforce symbolic links to be followed\n" +" -P\tuse the physical directory structure without following symbolic\n" +" \tlinks\n" +" \n" +" The default is to follow symbolic links, as if `-L' were specified.\n" +" \n" +" Exit Status:\n" +" Returns 0 if the directory is changed; non-zero otherwise." +msgstr "" + +#: builtins.c:407 +msgid "" +"Print the name of the current working directory.\n" +" \n" +" Options:\n" +" -L\tprint the value of $PWD if it names the current working\n" +" \tdirectory\n" +" -P\tprint the physical directory, without any symbolic links\n" +" \n" +" By default, `pwd' behaves as if `-L' were specified.\n" +" \n" +" Exit Status:\n" +" Returns 0 unless an invalid option is given or the current directory\n" +" cannot be read." +msgstr "" + +#: builtins.c:424 +#, fuzzy +msgid "" +"Null command.\n" +" \n" +" No effect; the command does nothing.\n" +" \n" +" Exit Status:\n" +" Always succeeds." +msgstr "" +"Nenhum efeito; o comando não faz nada. Retorna zero no código de saída." + +#: builtins.c:435 +msgid "" +"Return a successful result.\n" +" \n" +" Exit Status:\n" +" Always succeeds." +msgstr "" + +#: builtins.c:444 +msgid "" +"Return an unsuccessful result.\n" +" \n" +" Exit Status:\n" +" Always fails." +msgstr "" + +#: builtins.c:453 +msgid "" +"Execute a simple command or display information about commands.\n" +" \n" +" Runs COMMAND with ARGS suppressing shell function lookup, or display\n" +" information about the specified COMMANDs. Can be used to invoke " +"commands\n" +" on disk when a function with the same name exists.\n" +" \n" +" Options:\n" +" -p\tuse a default value for PATH that is guaranteed to find all of\n" +" \tthe standard utilities\n" +" -v\tprint a description of COMMAND similar to the `type' builtin\n" +" -V\tprint a more verbose description of each COMMAND\n" +" \n" +" Exit Status:\n" +" Returns exit status of COMMAND, or failure if COMMAND is not found." +msgstr "" + +#: builtins.c:472 +msgid "" +"Set variable values and attributes.\n" +" \n" +" Declare variables and give them attributes. If no NAMEs are given,\n" +" display the attributes and values of all variables.\n" +" \n" +" Options:\n" +" -f\trestrict action or display to function names and definitions\n" +" -F\trestrict display to function names only (plus line number and\n" +" \tsource file when debugging)\n" +" -p\tdisplay the attributes and value of each NAME\n" +" \n" +" Options which set attributes:\n" +" -a\tto make NAMEs indexed arrays (if supported)\n" +" -A\tto make NAMEs associative arrays (if supported)\n" +" -i\tto make NAMEs have the `integer' attribute\n" +" -l\tto convert NAMEs to lower case on assignment\n" +" -r\tto make NAMEs readonly\n" +" -t\tto make NAMEs have the `trace' attribute\n" +" -u\tto convert NAMEs to upper case on assignment\n" +" -x\tto make NAMEs export\n" +" \n" +" Using `+' instead of `-' turns off the given attribute.\n" +" \n" +" Variables with the integer attribute have arithmetic evaluation (see\n" +" the `let' command) performed when the variable is assigned a value.\n" +" \n" +" When used in a function, `declare' makes NAMEs local, as with the " +"`local'\n" +" command.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" + +#: builtins.c:508 +msgid "" +"Set variable values and attributes.\n" +" \n" +" Obsolete. See `help declare'." +msgstr "" + +#: builtins.c:516 +msgid "" +"Define local variables.\n" +" \n" +" Create a local variable called NAME, and give it VALUE. OPTION can\n" +" be any option accepted by `declare'.\n" +" \n" +" Local variables can only be used within a function; they are visible\n" +" only to the function where they are defined and its children.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied, an error occurs,\n" +" or the shell is not executing a function." +msgstr "" + +#: builtins.c:533 +msgid "" +"Write arguments to the standard output.\n" +" \n" +" Display the ARGs on the standard output followed by a newline.\n" +" \n" +" Options:\n" +" -n\tdo not append a newline\n" +" -e\tenable interpretation of the following backslash escapes\n" +" -E\texplicitly suppress interpretation of backslash escapes\n" +" \n" +" `echo' interprets the following backslash-escaped characters:\n" +" \\a\talert (bell)\n" +" \\b\tbackspace\n" +" \\c\tsuppress further output\n" +" \\e\tescape character\n" +" \\f\tform feed\n" +" \\n\tnew line\n" +" \\r\tcarriage return\n" +" \\t\thorizontal tab\n" +" \\v\tvertical tab\n" +" \\\\\tbackslash\n" +" \\0nnn\tthe character whose ASCII code is NNN (octal). NNN can be\n" +" \t0 to 3 octal digits\n" +" \\xHH\tthe eight-bit character whose value is HH (hexadecimal). HH\n" +" \tcan be one or two hex digits\n" +" \n" +" Exit Status:\n" +" Returns success unless a write error occurs." +msgstr "" + +#: builtins.c:567 +msgid "" +"Write arguments to the standard output.\n" +" \n" +" Display the ARGs on the standard output followed by a newline.\n" +" \n" +" Options:\n" +" -n\tdo not append a newline\n" +" \n" +" Exit Status:\n" +" Returns success unless a write error occurs." +msgstr "" + +#: builtins.c:582 +msgid "" +"Enable and disable shell builtins.\n" +" \n" +" Enables and disables builtin shell commands. Disabling allows you to\n" +" execute a disk command which has the same name as a shell builtin\n" +" without using a full pathname.\n" +" \n" +" Options:\n" +" -a\tprint a list of builtins showing whether or not each is enabled\n" +" -n\tdisable each NAME or display a list of disabled builtins\n" +" -p\tprint the list of builtins in a reusable format\n" +" -s\tprint only the names of Posix `special' builtins\n" +" \n" +" Options controlling dynamic loading:\n" +" -f\tLoad builtin NAME from shared object FILENAME\n" +" -d\tRemove a builtin loaded with -f\n" +" \n" +" Without options, each NAME is enabled.\n" +" \n" +" To use the `test' found in $PATH instead of the shell builtin\n" +" version, type `enable -n test'.\n" +" \n" +" Exit Status:\n" +" Returns success unless NAME is not a shell builtin or an error occurs." +msgstr "" + +#: builtins.c:610 +msgid "" +"Execute arguments as a shell command.\n" +" \n" +" Combine ARGs into a single string, use the result as input to the " +"shell,\n" +" and execute the resulting commands.\n" +" \n" +" Exit Status:\n" +" Returns exit status of command or success if command is null." +msgstr "" + +#: builtins.c:622 +msgid "" +"Parse option arguments.\n" +" \n" +" Getopts is used by shell procedures to parse positional parameters\n" +" as options.\n" +" \n" +" OPTSTRING contains the option letters to be recognized; if a letter\n" +" is followed by a colon, the option is expected to have an argument,\n" +" which should be separated from it by white space.\n" +" \n" +" Each time it is invoked, getopts will place the next option in the\n" +" shell variable $name, initializing name if it does not exist, and\n" +" the index of the next argument to be processed into the shell\n" +" variable OPTIND. OPTIND is initialized to 1 each time the shell or\n" +" a shell script is invoked. When an option requires an argument,\n" +" getopts places that argument into the shell variable OPTARG.\n" +" \n" +" getopts reports errors in one of two ways. If the first character\n" +" of OPTSTRING is a colon, getopts uses silent error reporting. In\n" +" this mode, no error messages are printed. If an invalid option is\n" +" seen, getopts places the option character found into OPTARG. If a\n" +" required argument is not found, getopts places a ':' into NAME and\n" +" sets OPTARG to the option character found. If getopts is not in\n" +" silent mode, and an invalid option is seen, getopts places '?' into\n" +" NAME and unsets OPTARG. If a required argument is not found, a '?'\n" +" is placed in NAME, OPTARG is unset, and a diagnostic message is\n" +" printed.\n" +" \n" +" If the shell variable OPTERR has the value 0, getopts disables the\n" +" printing of error messages, even if the first character of\n" +" OPTSTRING is not a colon. OPTERR has the value 1 by default.\n" +" \n" +" Getopts normally parses the positional parameters ($0 - $9), but if\n" +" more arguments are given, they are parsed instead.\n" +" \n" +" Exit Status:\n" +" Returns success if an option is found; fails if the end of options is\n" +" encountered or an error occurs." +msgstr "" + +#: builtins.c:664 +msgid "" +"Replace the shell with the given command.\n" +" \n" +" Execute COMMAND, replacing this shell with the specified program.\n" +" ARGUMENTS become the arguments to COMMAND. If COMMAND is not " +"specified,\n" +" any redirections take effect in the current shell.\n" +" \n" +" Options:\n" +" -a name\tpass NAME as the zeroth argument to COMMAND\n" +" -c\t\texecute COMMAND with an empty environment\n" +" -l\t\tplace a dash in the zeroth argument to COMMAND\n" +" \n" +" If the command cannot be executed, a non-interactive shell exits, " +"unless\n" +" the shell option `execfail' is set.\n" +" \n" +" Exit Status:\n" +" Returns success unless COMMAND is not found or a redirection error " +"occurs." +msgstr "" + +#: builtins.c:685 +#, fuzzy +msgid "" +"Exit the shell.\n" +" \n" +" Exits the shell with a status of N. If N is omitted, the exit status\n" +" is that of the last command executed." +msgstr "Sair da `shell' com status igual a N. Se N for omitido, o status" + +#: builtins.c:694 +msgid "" +"Exit a login shell.\n" +" \n" +" Exits a login shell with exit status N. Returns an error if not " +"executed\n" +" in a login shell." +msgstr "" + +#: builtins.c:704 +msgid "" +"Display or execute commands from the history list.\n" +" \n" +" fc is used to list or edit and re-execute commands from the history " +"list.\n" +" FIRST and LAST can be numbers specifying the range, or FIRST can be a\n" +" string, which means the most recent command beginning with that\n" +" string.\n" +" \n" +" Options:\n" +" -e ENAME\tselect which editor to use. Default is FCEDIT, then " +"EDITOR,\n" +" \t\tthen vi\n" +" -l \tlist lines instead of editing\n" +" -n\tomit line numbers when listing\n" +" -r\treverse the order of the lines (newest listed first)\n" +" \n" +" With the `fc -s [pat=rep ...] [command]' format, COMMAND is\n" +" re-executed after the substitution OLD=NEW is performed.\n" +" \n" +" A useful alias to use with this is r='fc -s', so that typing `r cc'\n" +" runs the last command beginning with `cc' and typing `r' re-executes\n" +" the last command.\n" +" \n" +" Exit Status:\n" +" Returns success or status of executed command; non-zero if an error " +"occurs." +msgstr "" + +#: builtins.c:734 +#, fuzzy +msgid "" +"Move job to the foreground.\n" +" \n" +" Place the job identified by JOB_SPEC in the foreground, making it the\n" +" current job. If JOB_SPEC is not present, the shell's notion of the\n" +" current job is used.\n" +" \n" +" Exit Status:\n" +" Status of command placed in foreground, or failure if an error occurs." +msgstr "" +"Colocar JOB-ESPECIFICADO no primeiro plano, e torná-lo o trabalho atual." + +#: builtins.c:749 +msgid "" +"Move jobs to the background.\n" +" \n" +" Place the jobs identified by each JOB_SPEC in the background, as if " +"they\n" +" had been started with `&'. If JOB_SPEC is not present, the shell's " +"notion\n" +" of the current job is used.\n" +" \n" +" Exit Status:\n" +" Returns success unless job control is not enabled or an error occurs." +msgstr "" + +#: builtins.c:763 +msgid "" +"Remember or display program locations.\n" +" \n" +" Determine and remember the full pathname of each command NAME. If\n" +" no arguments are given, information about remembered commands is " +"displayed.\n" +" \n" +" Options:\n" +" -d\t\tforget the remembered location of each NAME\n" +" -l\t\tdisplay in a format that may be reused as input\n" +" -p pathname\tuse PATHNAME is the full pathname of NAME\n" +" -r\t\tforget all remembered locations\n" +" -t\t\tprint the remembered location of each NAME, preceding\n" +" \t\teach location with the corresponding NAME if multiple\n" +" \t\tNAMEs are given\n" +" Arguments:\n" +" NAME\t\tEach NAME is searched for in $PATH and added to the list\n" +" \t\tof remembered commands.\n" +" \n" +" Exit Status:\n" +" Returns success unless NAME is not found or an invalid option is given." +msgstr "" + +#: builtins.c:788 +msgid "" +"Display information about builtin commands.\n" +" \n" +" Displays brief summaries of builtin commands. If PATTERN is\n" +" specified, gives detailed help on all commands matching PATTERN,\n" +" otherwise the list of help topics is printed.\n" +" \n" +" Options:\n" +" -d\toutput short description for each topic\n" +" -m\tdisplay usage in pseudo-manpage format\n" +" -s\toutput only a short usage synopsis for each topic matching\n" +" \tPATTERN\n" +" \n" +" Arguments:\n" +" PATTERN\tPattern specifiying a help topic\n" +" \n" +" Exit Status:\n" +" Returns success unless PATTERN is not found or an invalid option is " +"given." +msgstr "" + +#: builtins.c:812 +msgid "" +"Display or manipulate the history list.\n" +" \n" +" Display the history list with line numbers, prefixing each modified\n" +" entry with a `*'. An argument of N lists only the last N entries.\n" +" \n" +" Options:\n" +" -c\tclear the history list by deleting all of the entries\n" +" -d offset\tdelete the history entry at offset OFFSET.\n" +" \n" +" -a\tappend history lines from this session to the history file\n" +" -n\tread all history lines not already read from the history file\n" +" -r\tread the history file and append the contents to the history\n" +" \tlist\n" +" -w\twrite the current history to the history file\n" +" \tand append them to the history list\n" +" \n" +" -p\tperform history expansion on each ARG and display the result\n" +" \twithout storing it in the history list\n" +" -s\tappend the ARGs to the history list as a single entry\n" +" \n" +" If FILENAME is given, it is used as the history file. Otherwise,\n" +" if $HISTFILE has a value, that is used, else ~/.bash_history.\n" +" \n" +" If the $HISTTIMEFORMAT variable is set and not null, its value is used\n" +" as a format string for strftime(3) to print the time stamp associated\n" +" with each displayed history entry. No time stamps are printed " +"otherwise.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or an error occurs." +msgstr "" + +#: builtins.c:848 +msgid "" +"Display status of jobs.\n" +" \n" +" Lists the active jobs. JOBSPEC restricts output to that job.\n" +" Without options, the status of all active jobs is displayed.\n" +" \n" +" Options:\n" +" -l\tlists process IDs in addition to the normal information\n" +" -n\tlist only processes that have changed status since the last\n" +" \tnotification\n" +" -p\tlists process IDs only\n" +" -r\trestrict output to running jobs\n" +" -s\trestrict output to stopped jobs\n" +" \n" +" If -x is supplied, COMMAND is run after all job specifications that\n" +" appear in ARGS have been replaced with the process ID of that job's\n" +" process group leader.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or an error occurs.\n" +" If -x is used, returns the exit status of COMMAND." +msgstr "" + +#: builtins.c:875 +msgid "" +"Remove jobs from current shell.\n" +" \n" +" Removes each JOBSPEC argument from the table of active jobs. Without\n" +" any JOBSPECs, the shell uses its notion of the current job.\n" +" \n" +" Options:\n" +" -a\tremove all jobs if JOBSPEC is not supplied\n" +" -h\tmark each JOBSPEC so that SIGHUP is not sent to the job if the\n" +" \tshell receives a SIGHUP\n" +" -r\tremove only running jobs\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option or JOBSPEC is given." +msgstr "" + +#: builtins.c:894 +msgid "" +"Send a signal to a job.\n" +" \n" +" Send the processes identified by PID or JOBSPEC the signal named by\n" +" SIGSPEC or SIGNUM. If neither SIGSPEC nor SIGNUM is present, then\n" +" SIGTERM is assumed.\n" +" \n" +" Options:\n" +" -s sig\tSIG is a signal name\n" +" -n sig\tSIG is a signal number\n" +" -l\tlist the signal names; if arguments follow `-l' they are\n" +" \tassumed to be signal numbers for which names should be listed\n" +" \n" +" Kill is a shell builtin for two reasons: it allows job IDs to be used\n" +" instead of process IDs, and allows processes to be killed if the limit\n" +" on processes that you can create is reached.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or an error occurs." +msgstr "" + +#: builtins.c:917 +msgid "" +"Evaluate arithmetic expressions.\n" +" \n" +" Evaluate each ARG as an arithmetic expression. Evaluation is done in\n" +" fixed-width integers with no check for overflow, though division by 0\n" +" is trapped and flagged as an error. The following list of operators is\n" +" grouped into levels of equal-precedence operators. The levels are " +"listed\n" +" in order of decreasing precedence.\n" +" \n" +" \tid++, id--\tvariable post-increment, post-decrement\n" +" \t++id, --id\tvariable pre-increment, pre-decrement\n" +" \t-, +\t\tunary minus, plus\n" +" \t!, ~\t\tlogical and bitwise negation\n" +" \t**\t\texponentiation\n" +" \t*, /, %\t\tmultiplication, division, remainder\n" +" \t+, -\t\taddition, subtraction\n" +" \t<<, >>\t\tleft and right bitwise shifts\n" +" \t<=, >=, <, >\tcomparison\n" +" \t==, !=\t\tequality, inequality\n" +" \t&\t\tbitwise AND\n" +" \t^\t\tbitwise XOR\n" +" \t|\t\tbitwise OR\n" +" \t&&\t\tlogical AND\n" +" \t||\t\tlogical OR\n" +" \texpr ? expr : expr\n" +" \t\t\tconditional operator\n" +" \t=, *=, /=, %=,\n" +" \t+=, -=, <<=, >>=,\n" +" \t&=, ^=, |=\tassignment\n" +" \n" +" Shell variables are allowed as operands. The name of the variable\n" +" is replaced by its value (coerced to a fixed-width integer) within\n" +" an expression. The variable need not have its integer attribute\n" +" turned on to be used in an expression.\n" +" \n" +" Operators are evaluated in order of precedence. Sub-expressions in\n" +" parentheses are evaluated first and may override the precedence\n" +" rules above.\n" +" \n" +" Exit Status:\n" +" If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise.." +msgstr "" + +#: builtins.c:962 +msgid "" +"Read a line from the standard input and split it into fields.\n" +" \n" +" Reads a single line from the standard input, or from file descriptor FD\n" +" if the -u option is supplied. The line is split into fields as with " +"word\n" +" splitting, and the first word is assigned to the first NAME, the second\n" +" word to the second NAME, and so on, with any leftover words assigned to\n" +" the last NAME. Only the characters found in $IFS are recognized as " +"word\n" +" delimiters.\n" +" \n" +" If no NAMEs are supplied, the line read is stored in the REPLY " +"variable.\n" +" \n" +" Options:\n" +" -a array\tassign the words read to sequential indices of the array\n" +" \t\tvariable ARRAY, starting at zero\n" +" -d delim\tcontinue until the first character of DELIM is read, rather\n" +" \t\tthan newline\n" +" -e\t\tuse Readline to obtain the line in an interactive shell\n" +" -i text\tUse TEXT as the initial text for Readline\n" +" -n nchars\treturn after reading NCHARS characters rather than waiting\n" +" \t\tfor a newline\n" +" -p prompt\toutput the string PROMPT without a trailing newline before\n" +" \t\tattempting to read\n" +" -r\t\tdo not allow backslashes to escape any characters\n" +" -s\t\tdo not echo input coming from a terminal\n" +" -t timeout\ttime out and return failure if a complete line of input " +"is\n" +" \t\tnot read withint TIMEOUT seconds. The value of the TMOUT\n" +" \t\tvariable is the default timeout. TIMEOUT may be a\n" +" \t\tfractional number. If TIMEOUT is 0, read returns success only\n" +" \t\tif input is available on the specified file descriptor. The\n" +" \t\texit status is greater than 128 if the timeout is exceeded\n" +" -u fd\t\tread from file descriptor FD instead of the standard input\n" +" \n" +" Exit Status:\n" +" The return code is zero, unless end-of-file is encountered, read times " +"out,\n" +" or an invalid file descriptor is supplied as the argument to -u." +msgstr "" + +#: builtins.c:1002 +msgid "" +"Return from a shell function.\n" +" \n" +" Causes a function or sourced script to exit with the return value\n" +" specified by N. If N is omitted, the return status is that of the\n" +" last command executed within the function or script.\n" +" \n" +" Exit Status:\n" +" Returns N, or failure if the shell is not executing a function or script." +msgstr "" + +#: builtins.c:1015 +msgid "" +"Set or unset values of shell options and positional parameters.\n" +" \n" +" Change the value of shell attributes and positional parameters, or\n" +" display the names and values of shell variables.\n" +" \n" +" Options:\n" +" -a Mark variables which are modified or created for export.\n" +" -b Notify of job termination immediately.\n" +" -e Exit immediately if a command exits with a non-zero status.\n" +" -f Disable file name generation (globbing).\n" +" -h Remember the location of commands as they are looked up.\n" +" -k All assignment arguments are placed in the environment for a\n" +" command, not just those that precede the command name.\n" +" -m Job control is enabled.\n" +" -n Read commands but do not execute them.\n" +" -o option-name\n" +" Set the variable corresponding to option-name:\n" +" allexport same as -a\n" +" braceexpand same as -B\n" +" emacs use an emacs-style line editing interface\n" +" errexit same as -e\n" +" errtrace same as -E\n" +" functrace same as -T\n" +" hashall same as -h\n" +" histexpand same as -H\n" +" history enable command history\n" +" ignoreeof the shell will not exit upon reading EOF\n" +" interactive-comments\n" +" allow comments to appear in interactive commands\n" +" keyword same as -k\n" +" monitor same as -m\n" +" noclobber same as -C\n" +" noexec same as -n\n" +" noglob same as -f\n" +" nolog currently accepted but ignored\n" +" notify same as -b\n" +" nounset same as -u\n" +" onecmd same as -t\n" +" physical same as -P\n" +" pipefail the return value of a pipeline is the status of\n" +" the last command to exit with a non-zero status,\n" +" or zero if no command exited with a non-zero " +"status\n" +" posix change the behavior of bash where the default\n" +" operation differs from the Posix standard to\n" +" match the standard\n" +" privileged same as -p\n" +" verbose same as -v\n" +" vi use a vi-style line editing interface\n" +" xtrace same as -x\n" +" -p Turned on whenever the real and effective user ids do not match.\n" +" Disables processing of the $ENV file and importing of shell\n" +" functions. Turning this option off causes the effective uid and\n" +" gid to be set to the real uid and gid.\n" +" -t Exit after reading and executing one command.\n" +" -u Treat unset variables as an error when substituting.\n" +" -v Print shell input lines as they are read.\n" +" -x Print commands and their arguments as they are executed.\n" +" -B the shell will perform brace expansion\n" +" -C If set, disallow existing regular files to be overwritten\n" +" by redirection of output.\n" +" -E If set, the ERR trap is inherited by shell functions.\n" +" -H Enable ! style history substitution. This flag is on\n" +" by default when the shell is interactive.\n" +" -P If set, do not follow symbolic links when executing commands\n" +" such as cd which change the current directory.\n" +" -T If set, the DEBUG trap is inherited by shell functions.\n" +" - Assign any remaining arguments to the positional parameters.\n" +" The -x and -v options are turned off.\n" +" \n" +" Using + rather than - causes these flags to be turned off. The\n" +" flags can also be used upon invocation of the shell. The current\n" +" set of flags may be found in $-. The remaining n ARGs are positional\n" +" parameters and are assigned, in order, to $1, $2, .. $n. If no\n" +" ARGs are given, all shell variables are printed.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given." +msgstr "" + +#: builtins.c:1097 +msgid "" +"Unset values and attributes of shell variables and functions.\n" +" \n" +" For each NAME, remove the corresponding variable or function.\n" +" \n" +" Options:\n" +" -f\ttreat each NAME as a shell function\n" +" -v\ttreat each NAME as a shell variable\n" +" \n" +" Without options, unset first tries to unset a variable, and if that " +"fails,\n" +" tries to unset a function.\n" +" \n" +" Some variables cannot be unset; also see `readonly'.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or a NAME is read-only." +msgstr "" + +#: builtins.c:1117 +msgid "" +"Set export attribute for shell variables.\n" +" \n" +" Marks each NAME for automatic export to the environment of subsequently\n" +" executed commands. If VALUE is supplied, assign VALUE before " +"exporting.\n" +" \n" +" Options:\n" +" -f\trefer to shell functions\n" +" -n\tremove the export property from each NAME\n" +" -p\tdisplay a list of all exported variables and functions\n" +" \n" +" An argument of `--' disables further option processing.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or NAME is invalid." +msgstr "" + +#: builtins.c:1136 +msgid "" +"Mark shell variables as unchangeable.\n" +" \n" +" Mark each NAME as read-only; the values of these NAMEs may not be\n" +" changed by subsequent assignment. If VALUE is supplied, assign VALUE\n" +" before marking as read-only.\n" +" \n" +" Options:\n" +" -a\trefer to indexed array variables\n" +" -A\trefer to associative array variables\n" +" -f\trefer to shell functions\n" +" -p\tdisplay a list of all readonly variables and functions\n" +" \n" +" An argument of `--' disables further option processing.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or NAME is invalid." +msgstr "" + +#: builtins.c:1157 +msgid "" +"Shift positional parameters.\n" +" \n" +" Rename the positional parameters $N+1,$N+2 ... to $1,$2 ... If N is\n" +" not given, it is assumed to be 1.\n" +" \n" +" Exit Status:\n" +" Returns success unless N is negative or greater than $#." +msgstr "" + +#: builtins.c:1169 builtins.c:1184 +msgid "" +"Execute commands from a file in the current shell.\n" +" \n" +" Read and execute commands from FILENAME in the current shell. The\n" +" entries in $PATH are used to find the directory containing FILENAME.\n" +" If any ARGUMENTS are supplied, they become the positional parameters\n" +" when FILENAME is executed.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed in FILENAME; fails if\n" +" FILENAME cannot be read." +msgstr "" + +#: builtins.c:1200 +msgid "" +"Suspend shell execution.\n" +" \n" +" Suspend the execution of this shell until it receives a SIGCONT signal.\n" +" Unless forced, login shells cannot be suspended.\n" +" \n" +" Options:\n" +" -f\tforce the suspend, even if the shell is a login shell\n" +" \n" +" Exit Status:\n" +" Returns success unless job control is not enabled or an error occurs." +msgstr "" + +#: builtins.c:1216 +msgid "" +"Evaluate conditional expression.\n" +" \n" +" Exits with a status of 0 (true) or 1 (false) depending on\n" +" the evaluation of EXPR. Expressions may be unary or binary. Unary\n" +" expressions are often used to examine the status of a file. There\n" +" are string operators as well, and numeric comparison operators.\n" +" \n" +" File operators:\n" +" \n" +" -a FILE True if file exists.\n" +" -b FILE True if file is block special.\n" +" -c FILE True if file is character special.\n" +" -d FILE True if file is a directory.\n" +" -e FILE True if file exists.\n" +" -f FILE True if file exists and is a regular file.\n" +" -g FILE True if file is set-group-id.\n" +" -h FILE True if file is a symbolic link.\n" +" -L FILE True if file is a symbolic link.\n" +" -k FILE True if file has its `sticky' bit set.\n" +" -p FILE True if file is a named pipe.\n" +" -r FILE True if file is readable by you.\n" +" -s FILE True if file exists and is not empty.\n" +" -S FILE True if file is a socket.\n" +" -t FD True if FD is opened on a terminal.\n" +" -u FILE True if the file is set-user-id.\n" +" -w FILE True if the file is writable by you.\n" +" -x FILE True if the file is executable by you.\n" +" -O FILE True if the file is effectively owned by you.\n" +" -G FILE True if the file is effectively owned by your group.\n" +" -N FILE True if the file has been modified since it was last " +"read.\n" +" \n" +" FILE1 -nt FILE2 True if file1 is newer than file2 (according to\n" +" modification date).\n" +" \n" +" FILE1 -ot FILE2 True if file1 is older than file2.\n" +" \n" +" FILE1 -ef FILE2 True if file1 is a hard link to file2.\n" +" \n" +" String operators:\n" +" \n" +" -z STRING True if string is empty.\n" +" \n" +" -n STRING\n" +" STRING True if string is not empty.\n" +" \n" +" STRING1 = STRING2\n" +" True if the strings are equal.\n" +" STRING1 != STRING2\n" +" True if the strings are not equal.\n" +" STRING1 < STRING2\n" +" True if STRING1 sorts before STRING2 " +"lexicographically.\n" +" STRING1 > STRING2\n" +" True if STRING1 sorts after STRING2 lexicographically.\n" +" \n" +" Other operators:\n" +" \n" +" -o OPTION True if the shell option OPTION is enabled.\n" +" ! EXPR True if expr is false.\n" +" EXPR1 -a EXPR2 True if both expr1 AND expr2 are true.\n" +" EXPR1 -o EXPR2 True if either expr1 OR expr2 is true.\n" +" \n" +" arg1 OP arg2 Arithmetic tests. OP is one of -eq, -ne,\n" +" -lt, -le, -gt, or -ge.\n" +" \n" +" Arithmetic binary operators return true if ARG1 is equal, not-equal,\n" +" less-than, less-than-or-equal, greater-than, or greater-than-or-equal\n" +" than ARG2.\n" +" \n" +" Exit Status:\n" +" Returns success if EXPR evaluates to true; fails if EXPR evaluates to\n" +" false or an invalid argument is given." +msgstr "" + +#: builtins.c:1292 +#, fuzzy +msgid "" +"Evaluate conditional expression.\n" +" \n" +" This is a synonym for the \"test\" builtin, but the last argument must\n" +" be a literal `]', to match the opening `['." +msgstr "argumento deve ser o literal `]', para fechar o `[' de abertura." + +#: builtins.c:1301 +msgid "" +"Display process times.\n" +" \n" +" Prints the accumulated user and system times for the shell and all of " +"its\n" +" child processes.\n" +" \n" +" Exit Status:\n" +" Always succeeds." +msgstr "" + +#: builtins.c:1313 +msgid "" +"Trap signals and other events.\n" +" \n" +" Defines and activates handlers to be run when the shell receives " +"signals\n" +" or other conditions.\n" +" \n" +" ARG is a command to be read and executed when the shell receives the\n" +" signal(s) SIGNAL_SPEC. If ARG is absent (and a single SIGNAL_SPEC\n" +" is supplied) or `-', each specified signal is reset to its original\n" +" value. If ARG is the null string each SIGNAL_SPEC is ignored by the\n" +" shell and by the commands it invokes.\n" +" \n" +" If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell. " +"If\n" +" a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command.\n" +" \n" +" If no arguments are supplied, trap prints the list of commands " +"associated\n" +" with each signal.\n" +" \n" +" Options:\n" +" -l\tprint a list of signal names and their corresponding numbers\n" +" -p\tdisplay the trap commands associated with each SIGNAL_SPEC\n" +" \n" +" Each SIGNAL_SPEC is either a signal name in or a signal " +"number.\n" +" Signal names are case insensitive and the SIG prefix is optional. A\n" +" signal may be sent to the shell with \"kill -signal $$\".\n" +" \n" +" Exit Status:\n" +" Returns success unless a SIGSPEC is invalid or an invalid option is " +"given." +msgstr "" + +#: builtins.c:1345 +msgid "" +"Display information about command type.\n" +" \n" +" For each NAME, indicate how it would be interpreted if used as a\n" +" command name.\n" +" \n" +" Options:\n" +" -a\tdisplay all locations containing an executable named NAME;\n" +" \tincludes aliases, builtins, and functions, if and only if\n" +" \tthe `-p' option is not also used\n" +" -f\tsuppress shell function lookup\n" +" -P\tforce a PATH search for each NAME, even if it is an alias,\n" +" \tbuiltin, or function, and returns the name of the disk file\n" +" \tthat would be executed\n" +" -p\treturns either the name of the disk file that would be executed,\n" +" \tor nothing if `type -t NAME' would not return `file'.\n" +" -t\toutput a single word which is one of `alias', `keyword',\n" +" \t`function', `builtin', `file' or `', if NAME is an alias, shell\n" +" \treserved word, shell function, shell builtin, disk file, or not\n" +" \tfound, respectively\n" +" \n" +" Arguments:\n" +" NAME\tCommand name to be interpreted.\n" +" \n" +" Exit Status:\n" +" Returns success if all of the NAMEs are found; fails if any are not " +"found." +msgstr "" + +#: builtins.c:1376 +msgid "" +"Modify shell resource limits.\n" +" \n" +" Provides control over the resources available to the shell and " +"processes\n" +" it creates, on systems that allow such control.\n" +" \n" +" Options:\n" +" -S\tuse the `soft' resource limit\n" +" -H\tuse the `hard' resource limit\n" +" -a\tall current limits are reported\n" +" -b\tthe socket buffer size\n" +" -c\tthe maximum size of core files created\n" +" -d\tthe maximum size of a process's data segment\n" +" -e\tthe maximum scheduling priority (`nice')\n" +" -f\tthe maximum size of files written by the shell and its children\n" +" -i\tthe maximum number of pending signals\n" +" -l\tthe maximum size a process may lock into memory\n" +" -m\tthe maximum resident set size\n" +" -n\tthe maximum number of open file descriptors\n" +" -p\tthe pipe buffer size\n" +" -q\tthe maximum number of bytes in POSIX message queues\n" +" -r\tthe maximum real-time scheduling priority\n" +" -s\tthe maximum stack size\n" +" -t\tthe maximum amount of cpu time in seconds\n" +" -u\tthe maximum number of user processes\n" +" -v\tthe size of virtual memory\n" +" -x\tthe maximum number of file locks\n" +" \n" +" If LIMIT is given, it is the new value of the specified resource; the\n" +" special LIMIT values `soft', `hard', and `unlimited' stand for the\n" +" current soft limit, the current hard limit, and no limit, respectively.\n" +" Otherwise, the current value of the specified resource is printed. If\n" +" no option is given, then -f is assumed.\n" +" \n" +" Values are in 1024-byte increments, except for -t, which is in seconds,\n" +" -p, which is in increments of 512 bytes, and -u, which is an unscaled\n" +" number of processes.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" + +#: builtins.c:1421 +msgid "" +"Display or set file mode mask.\n" +" \n" +" Sets the user file-creation mask to MODE. If MODE is omitted, prints\n" +" the current value of the mask.\n" +" \n" +" If MODE begins with a digit, it is interpreted as an octal number;\n" +" otherwise it is a symbolic mode string like that accepted by chmod(1).\n" +" \n" +" Options:\n" +" -p\tif MODE is omitted, output in a form that may be reused as input\n" +" -S\tmakes the output symbolic; otherwise an octal number is output\n" +" \n" +" Exit Status:\n" +" Returns success unless MODE is invalid or an invalid option is given." +msgstr "" + +#: builtins.c:1441 +msgid "" +"Wait for job completion and return exit status.\n" +" \n" +" Waits for the process identified by ID, which may be a process ID or a\n" +" job specification, and reports its termination status. If ID is not\n" +" given, waits for all currently active child processes, and the return\n" +" status is zero. If ID is a a job specification, waits for all " +"processes\n" +" in the job's pipeline.\n" +" \n" +" Exit Status:\n" +" Returns the status of ID; fails if ID is invalid or an invalid option " +"is\n" +" given." +msgstr "" + +#: builtins.c:1459 +msgid "" +"Wait for process completion and return exit status.\n" +" \n" +" Waits for the specified process and reports its termination status. If\n" +" PID is not given, all currently active child processes are waited for,\n" +" and the return code is zero. PID must be a process ID.\n" +" \n" +" Exit Status:\n" +" Returns the status of ID; fails if ID is invalid or an invalid option " +"is\n" +" given." +msgstr "" + +#: builtins.c:1474 +msgid "" +"Execute commands for each member in a list.\n" +" \n" +" The `for' loop executes a sequence of commands for each member in a\n" +" list of items. If `in WORDS ...;' is not present, then `in \"$@\"' is\n" +" assumed. For each element in WORDS, NAME is set to that element, and\n" +" the COMMANDS are executed.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" + +#: builtins.c:1488 +msgid "" +"Arithmetic for loop.\n" +" \n" +" Equivalent to\n" +" \t(( EXP1 ))\n" +" \twhile (( EXP2 )); do\n" +" \t\tCOMMANDS\n" +" \t\t(( EXP3 ))\n" +" \tdone\n" +" EXP1, EXP2, and EXP3 are arithmetic expressions. If any expression is\n" +" omitted, it behaves as if it evaluates to 1.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" + +#: builtins.c:1506 +msgid "" +"Select words from a list and execute commands.\n" +" \n" +" The WORDS are expanded, generating a list of words. The\n" +" set of expanded words is printed on the standard error, each\n" +" preceded by a number. If `in WORDS' is not present, `in \"$@\"'\n" +" is assumed. The PS3 prompt is then displayed and a line read\n" +" from the standard input. If the line consists of the number\n" +" corresponding to one of the displayed words, then NAME is set\n" +" to that word. If the line is empty, WORDS and the prompt are\n" +" redisplayed. If EOF is read, the command completes. Any other\n" +" value read causes NAME to be set to null. The line read is saved\n" +" in the variable REPLY. COMMANDS are executed after each selection\n" +" until a break command is executed.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" + +#: builtins.c:1527 +msgid "" +"Report time consumed by pipeline's execution.\n" +" \n" +" Execute PIPELINE and print a summary of the real time, user CPU time,\n" +" and system CPU time spent executing PIPELINE when it terminates.\n" +" \n" +" Options:\n" +" -p\tprint the timing summary in the portable Posix format\n" +" \n" +" The value of the TIMEFORMAT variable is used as the output format.\n" +" \n" +" Exit Status:\n" +" The return status is the return status of PIPELINE." +msgstr "" + +#: builtins.c:1544 +#, fuzzy +msgid "" +"Execute commands based on pattern matching.\n" +" \n" +" Selectively execute COMMANDS based upon WORD matching PATTERN. The\n" +" `|' is used to separate multiple patterns.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"Executar seletivamente COMANDOS tomando por base a correspondência entre" + +#: builtins.c:1556 +msgid "" +"Execute commands based on conditional.\n" +" \n" +" The `if COMMANDS' list is executed. If its exit status is zero, then " +"the\n" +" `then COMMANDS' list is executed. Otherwise, each `elif COMMANDS' list " +"is\n" +" executed in turn, and if its exit status is zero, the corresponding\n" +" `then COMMANDS' list is executed and the if command completes. " +"Otherwise,\n" +" the `else COMMANDS' list is executed, if present. The exit status of " +"the\n" +" entire construct is the exit status of the last command executed, or " +"zero\n" +" if no condition tested true.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" + +#: builtins.c:1573 +#, fuzzy +msgid "" +"Execute commands as long as a test succeeds.\n" +" \n" +" Expand and execute COMMANDS as long as the final command in the\n" +" `while' COMMANDS has an exit status of zero.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "Expande e executa COMANDOS enquanto o comando final nos" + +#: builtins.c:1585 +#, fuzzy +msgid "" +"Execute commands as long as a test does not succeed.\n" +" \n" +" Expand and execute COMMANDS as long as the final command in the\n" +" `until' COMMANDS has an exit status which is not zero.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "Expande e executa COMANDOS enquanto o comando final nos" + +#: builtins.c:1597 +msgid "" +"Define shell function.\n" +" \n" +" Create a shell function named NAME. When invoked as a simple command,\n" +" NAME runs COMMANDs in the calling shell's context. When NAME is " +"invoked,\n" +" the arguments are passed to the function as $1...$n, and the function's\n" +" name is in $FUNCNAME.\n" +" \n" +" Exit Status:\n" +" Returns success unless NAME is readonly." +msgstr "" + +#: builtins.c:1611 +#, fuzzy +msgid "" +"Group commands as a unit.\n" +" \n" +" Run a set of commands in a group. This is one way to redirect an\n" +" entire set of commands.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "Executa um conjunto de comandos agrupando-os. Esta é uma forma de" + +#: builtins.c:1623 +msgid "" +"Resume job in foreground.\n" +" \n" +" Equivalent to the JOB_SPEC argument to the `fg' command. Resume a\n" +" stopped or background job. JOB_SPEC can specify either a job name\n" +" or a job number. Following JOB_SPEC with a `&' places the job in\n" +" the background, as if the job specification had been supplied as an\n" +" argument to `bg'.\n" +" \n" +" Exit Status:\n" +" Returns the status of the resumed job." +msgstr "" + +#: builtins.c:1638 +msgid "" +"Evaluate arithmetic expression.\n" +" \n" +" The EXPRESSION is evaluated according to the rules for arithmetic\n" +" evaluation. Equivalent to \"let EXPRESSION\".\n" +" \n" +" Exit Status:\n" +" Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise." +msgstr "" + +#: builtins.c:1650 +msgid "" +"Execute conditional command.\n" +" \n" +" Returns a status of 0 or 1 depending on the evaluation of the " +"conditional\n" +" expression EXPRESSION. Expressions are composed of the same primaries " +"used\n" +" by the `test' builtin, and may be combined using the following " +"operators:\n" +" \n" +" ( EXPRESSION )\tReturns the value of EXPRESSION\n" +" ! EXPRESSION\t\tTrue if EXPRESSION is false; else false\n" +" EXPR1 && EXPR2\tTrue if both EXPR1 and EXPR2 are true; else false\n" +" EXPR1 || EXPR2\tTrue if either EXPR1 or EXPR2 is true; else false\n" +" \n" +" When the `==' and `!=' operators are used, the string to the right of\n" +" the operator is used as a pattern and pattern matching is performed.\n" +" When the `=~' operator is used, the string to the right of the operator\n" +" is matched as a regular expression.\n" +" \n" +" The && and || operators do not evaluate EXPR2 if EXPR1 is sufficient to\n" +" determine the expression's value.\n" +" \n" +" Exit Status:\n" +" 0 or 1 depending on value of EXPRESSION." +msgstr "" + +#: builtins.c:1676 +msgid "" +"Common shell variable names and usage.\n" +" \n" +" BASH_VERSION\tVersion information for this Bash.\n" +" CDPATH\tA colon-separated list of directories to search\n" +" \t\tfor directories given as arguments to `cd'.\n" +" GLOBIGNORE\tA colon-separated list of patterns describing filenames to\n" +" \t\tbe ignored by pathname expansion.\n" +" HISTFILE\tThe name of the file where your command history is stored.\n" +" HISTFILESIZE\tThe maximum number of lines this file can contain.\n" +" HISTSIZE\tThe maximum number of history lines that a running\n" +" \t\tshell can access.\n" +" HOME\tThe complete pathname to your login directory.\n" +" HOSTNAME\tThe name of the current host.\n" +" HOSTTYPE\tThe type of CPU this version of Bash is running under.\n" +" IGNOREEOF\tControls the action of the shell on receipt of an EOF\n" +" \t\tcharacter as the sole input. If set, then the value\n" +" \t\tof it is the number of EOF characters that can be seen\n" +" \t\tin a row on an empty line before the shell will exit\n" +" \t\t(default 10). When unset, EOF signifies the end of input.\n" +" MACHTYPE\tA string describing the current system Bash is running on.\n" +" MAILCHECK\tHow often, in seconds, Bash checks for new mail.\n" +" MAILPATH\tA colon-separated list of filenames which Bash checks\n" +" \t\tfor new mail.\n" +" OSTYPE\tThe version of Unix this version of Bash is running on.\n" +" PATH\tA colon-separated list of directories to search when\n" +" \t\tlooking for commands.\n" +" PROMPT_COMMAND\tA command to be executed before the printing of each\n" +" \t\tprimary prompt.\n" +" PS1\t\tThe primary prompt string.\n" +" PS2\t\tThe secondary prompt string.\n" +" PWD\t\tThe full pathname of the current directory.\n" +" SHELLOPTS\tA colon-separated list of enabled shell options.\n" +" TERM\tThe name of the current terminal type.\n" +" TIMEFORMAT\tThe output format for timing statistics displayed by the\n" +" \t\t`time' reserved word.\n" +" auto_resume\tNon-null means a command word appearing on a line by\n" +" \t\titself is first looked for in the list of currently\n" +" \t\tstopped jobs. If found there, that job is foregrounded.\n" +" \t\tA value of `exact' means that the command word must\n" +" \t\texactly match a command in the list of stopped jobs. A\n" +" \t\tvalue of `substring' means that the command word must\n" +" \t\tmatch a substring of the job. Any other value means that\n" +" \t\tthe command must be a prefix of a stopped job.\n" +" histchars\tCharacters controlling history expansion and quick\n" +" \t\tsubstitution. The first character is the history\n" +" \t\tsubstitution character, usually `!'. The second is\n" +" \t\tthe `quick substitution' character, usually `^'. The\n" +" \t\tthird is the `history comment' character, usually `#'.\n" +" HISTIGNORE\tA colon-separated list of patterns used to decide which\n" +" \t\tcommands should be saved on the history list.\n" +msgstr "" + +#: builtins.c:1733 +msgid "" +"Add directories to stack.\n" +" \n" +" Adds a directory to the top of the directory stack, or rotates\n" +" the stack, making the new top of the stack the current working\n" +" directory. With no arguments, exchanges the top two directories.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when adding\n" +" \tdirectories to the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the left of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" -N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the right of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" dir\tAdds DIR to the directory stack at the top, making it the\n" +" \tnew current working directory.\n" +" \n" +" The `dirs' builtin displays the directory stack.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid argument is supplied or the directory\n" +" change fails." +msgstr "" + +#: builtins.c:1767 +msgid "" +"Remove directories from stack.\n" +" \n" +" Removes entries from the directory stack. With no arguments, removes\n" +" the top directory from the stack, and changes to the new top directory.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when removing\n" +" \tdirectories from the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRemoves the Nth entry counting from the left of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd +0'\n" +" \tremoves the first directory, `popd +1' the second.\n" +" \n" +" -N\tRemoves the Nth entry counting from the right of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd -0'\n" +" \tremoves the last directory, `popd -1' the next to last.\n" +" \n" +" The `dirs' builtin displays the directory stack.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid argument is supplied or the directory\n" +" change fails." +msgstr "" + +#: builtins.c:1797 +msgid "" +"Display directory stack.\n" +" \n" +" Display the list of currently remembered directories. Directories\n" +" find their way onto the list with the `pushd' command; you can get\n" +" back up through the list with the `popd' command.\n" +" \n" +" Options:\n" +" -c\tclear the directory stack by deleting all of the elements\n" +" -l\tdo not print tilde-prefixed versions of directories relative\n" +" \tto your home directory\n" +" -p\tprint the directory stack with one entry per line\n" +" -v\tprint the directory stack with one entry per line prefixed\n" +" \twith its position in the stack\n" +" \n" +" Arguments:\n" +" +N\tDisplays the Nth entry counting from the left of the list shown " +"by\n" +" \tdirs when invoked without options, starting with zero.\n" +" \n" +" -N\tDisplays the Nth entry counting from the right of the list shown " +"by\n" +" \tdirs when invoked without options, starting with zero.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" + +#: builtins.c:1826 +msgid "" +"Set and unset shell options.\n" +" \n" +" Change the setting of each shell option OPTNAME. Without any option\n" +" arguments, list all shell options with an indication of whether or not " +"each\n" +" is set.\n" +" \n" +" Options:\n" +" -o\trestrict OPTNAMEs to those defined for use with `set -o'\n" +" -p\tprint each shell option with an indication of its status\n" +" -q\tsuppress output\n" +" -s\tenable (set) each OPTNAME\n" +" -u\tdisable (unset) each OPTNAME\n" +" \n" +" Exit Status:\n" +" Returns success if OPTNAME is enabled; fails if an invalid option is\n" +" given or OPTNAME is disabled." +msgstr "" + +#: builtins.c:1847 +msgid "" +"Formats and prints ARGUMENTS under control of the FORMAT.\n" +" \n" +" Options:\n" +" -v var\tassign the output to shell variable VAR rather than\n" +" \t\tdisplay it on the standard output\n" +" \n" +" FORMAT is a character string which contains three types of objects: " +"plain\n" +" characters, which are simply copied to standard output; character " +"escape\n" +" sequences, which are converted and copied to the standard output; and\n" +" format specifications, each of which causes printing of the next " +"successive\n" +" argument.\n" +" \n" +" In addition to the standard format specifications described in printf" +"(1)\n" +" and printf(3), printf interprets:\n" +" \n" +" %b\texpand backslash escape sequences in the corresponding argument\n" +" %q\tquote the argument in a way that can be reused as shell input\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or a write or " +"assignment\n" +" error occurs." +msgstr "" + +#: builtins.c:1874 +msgid "" +"Specify how arguments are to be completed by Readline.\n" +" \n" +" For each NAME, specify how arguments are to be completed. If no " +"options\n" +" are supplied, existing completion specifications are printed in a way " +"that\n" +" allows them to be reused as input.\n" +" \n" +" Options:\n" +" -p\tprint existing completion specifications in a reusable format\n" +" -r\tremove a completion specification for each NAME, or, if no\n" +" \tNAMEs are supplied, all completion specifications\n" +" \n" +" When completion is attempted, the actions are applied in the order the\n" +" uppercase-letter options are listed above.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" + +#: builtins.c:1897 +msgid "" +"Display possible completions depending on the options.\n" +" \n" +" Intended to be used from within a shell function generating possible\n" +" completions. If the optional WORD argument is supplied, matches " +"against\n" +" WORD are generated.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" + +#: builtins.c:1912 +msgid "" +"Modify or display completion options.\n" +" \n" +" Modify the completion options for each NAME, or, if no NAMEs are " +"supplied,\n" +" the completion currently begin executed. If no OPTIONs are givenm, " +"print\n" +" the completion options for each NAME or the current completion " +"specification.\n" +" \n" +" Options:\n" +" \t-o option\tSet completion option OPTION for each NAME\n" +" \n" +" Using `+o' instead of `-o' turns off the specified option.\n" +" \n" +" Arguments:\n" +" \n" +" Each NAME refers to a command for which a completion specification must\n" +" have previously been defined using the `complete' builtin. If no NAMEs\n" +" are supplied, compopt must be called by a function currently generating\n" +" completions, and the options for that currently-executing completion\n" +" generator are modified.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or NAME does not\n" +" have a completion specification defined." +msgstr "" + +#: builtins.c:1940 +msgid "" +"Read lines from a file into an array variable.\n" +" \n" +" Read lines from the standard input into the array variable ARRAY, or " +"from\n" +" file descriptor FD if the -u option is supplied. The variable MAPFILE " +"is\n" +" the default ARRAY.\n" +" \n" +" Options:\n" +" -n count\tCopy at most COUNT lines. If COUNT is 0, all lines are " +"copied.\n" +" -O origin\tBegin assigning to ARRAY at index ORIGIN. The default " +"index is 0.\n" +" -s count \tDiscard the first COUNT lines read.\n" +" -t\t\tRemove a trailing newline from each line read.\n" +" -u fd\t\tRead lines from file descriptor FD instead of the standard " +"input.\n" +" -C callback\tEvaluate CALLBACK each time QUANTUM lines are read.\n" +" -c quantum\tSpecify the number of lines read between each call to " +"CALLBACK.\n" +" \n" +" Arguments:\n" +" ARRAY\t\tArray variable name to use for file data.\n" +" \n" +" If -C is supplied without -c, the default quantum is 5000.\n" +" \n" +" If not supplied with an explicit origin, mapfile will clear ARRAY " +"before\n" +" assigning to it.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or ARRAY is readonly." +msgstr "" + +#~ msgid "Display the list of currently remembered directories. Directories" +#~ msgstr "Exibe a lista atual de diretórios memorizados. Os diretórios são" + +#~ msgid "find their way onto the list with the `pushd' command; you can get" +#~ msgstr "introduzidos na lista através do comando `pushd'; os diretórios são" + +#~ msgid "back up through the list with the `popd' command." +#~ msgstr "removidos da lista através do comando `popd'." + +#~ msgid "" +#~ "The -l flag specifies that `dirs' should not print shorthand versions" +#~ msgstr "A opção -l especifica que `dirs' não deve exibir a versão resumida" + +#~ msgid "" +#~ "of directories which are relative to your home directory. This means" +#~ msgstr "" +#~ "dos diretórios relativos ao seu diretório `home'. Isto significa que" + +#~ msgid "that `~/bin' might be displayed as `/homes/bfox/bin'. The -v flag" +#~ msgstr "" +#~ "`~/bin' deve ser exibido como `/home/você/bin'. A opção -v faz com que" + +#~ msgid "causes `dirs' to print the directory stack with one entry per line," +#~ msgstr "`dirs' exiba a pilha de diretórios com uma entrada por linha," + +#~ msgid "" +#~ "prepending the directory name with its position in the stack. The -p" +#~ msgstr "antecedendo o nome do diretório com a sua posição na pilha. A opção" + +#~ msgid "flag does the same thing, but the stack position is not prepended." +#~ msgstr "-p faz a mesma coisa, mas a posição na pilha não é exibida. A opção" + +#~ msgid "" +#~ "The -c flag clears the directory stack by deleting all of the elements." +#~ msgstr "-c limpa a pilha de diretórios apagando todos os seus elementos." + +#, fuzzy +#~ msgid "" +#~ "+N displays the Nth entry counting from the left of the list shown by" +#~ msgstr "" +#~ "+N\texibe a n-ésima entrada contada a partir da esquerda da lista exibida" + +#, fuzzy +#~ msgid " dirs when invoked without options, starting with zero." +#~ msgstr "\tpor `dirs', quando este é chamado sem opções, começando por zero." + +#, fuzzy +#~ msgid "" +#~ "-N displays the Nth entry counting from the right of the list shown by" +#~ msgstr "" +#~ "-N\texibe a n-ésima entrada contada a partir da direita da lista exibida" + +#~ msgid "Adds a directory to the top of the directory stack, or rotates" +#~ msgstr "Adiciona o diretório no topo da pilha de diretórios, ou rotaciona a" + +#~ msgid "the stack, making the new top of the stack the current working" +#~ msgstr "" +#~ "pilha, fazendo o diretório atual de trabalho ficar no topo da pilha." + +#~ msgid "directory. With no arguments, exchanges the top two directories." +#~ msgstr "Sem nenhum argumento, troca os dois diretórios do topo." + +#, fuzzy +#~ msgid "+N Rotates the stack so that the Nth directory (counting" +#~ msgstr "" +#~ "+N\tRotaciona a pilha de tal forma que o n-ésimo diretório (contado a" + +#, fuzzy +#~ msgid " from the left of the list shown by `dirs', starting with" +#~ msgstr "\tpartir da esquerda da lista exibida por `dirs') fique no topo." + +#, fuzzy +#~ msgid " zero) is at the top." +#~ msgstr "\tpartir da direita) fique no topo." + +#, fuzzy +#~ msgid "-N Rotates the stack so that the Nth directory (counting" +#~ msgstr "" +#~ "-N\tRotaciona a pilha de tal forma que o n-ésimo diretório (contado a" + +#, fuzzy +#~ msgid " from the right of the list shown by `dirs', starting with" +#~ msgstr "\tpartir da esquerda da lista exibida por `dirs') fique no topo." + +#, fuzzy +#~ msgid "-n suppress the normal change of directory when adding directories" +#~ msgstr "-n\tsuprime a troca normal de diretório ao se adicionar diretórios" + +#, fuzzy +#~ msgid " to the stack, so only the stack is manipulated." +#~ msgstr "\tà pilha, fazendo com que somente a pilha seja manipulada." + +#, fuzzy +#~ msgid "dir adds DIR to the directory stack at the top, making it the" +#~ msgstr "dir\tadiciona DIR à pilha de diretórios, no topo, tornando-o o" + +#, fuzzy +#~ msgid " new current working directory." +#~ msgstr "\tnovo diretório atual de trabalho." + +#~ msgid "You can see the directory stack with the `dirs' command." +#~ msgstr "Você pode exibir a pilha de diretórios através do comando `dirs'." + +#~ msgid "Removes entries from the directory stack. With no arguments," +#~ msgstr "Remove entradas da pilha de diretórios. Sem nenhum argumento," + +#~ msgid "removes the top directory from the stack, and cd's to the new" +#~ msgstr "remove o diretório que está no topo da pilha, e executa `cd' para" + +#~ msgid "top directory." +#~ msgstr "o novo diretório que ocupa o topo da pilha." + +#, fuzzy +#~ msgid "+N removes the Nth entry counting from the left of the list" +#~ msgstr "+N\tremove a n-ésima entrada contada a partir da esquerda da lista" + +#, fuzzy +#~ msgid " shown by `dirs', starting with zero. For example: `popd +0'" +#~ msgstr "\texibida por `dirs', começando por zero. Por exemplo: `popd +0'" + +#, fuzzy +#~ msgid " removes the first directory, `popd +1' the second." +#~ msgstr "\tremove o primeiro diretório, `popd +1' o segundo." + +#, fuzzy +#~ msgid "-N removes the Nth entry counting from the right of the list" +#~ msgstr "-N\tremove a n-ésima entrada contada a partir da direita da lista" + +#, fuzzy +#~ msgid " shown by `dirs', starting with zero. For example: `popd -0'" +#~ msgstr "\texibida por `dirs', começando por zero. Por exemplo: `popd -0'" + +#, fuzzy +#~ msgid " removes the last directory, `popd -1' the next to last." +#~ msgstr "\tremove o último diretório, `popd -1' o penúltimo." + +#, fuzzy +#~ msgid "" +#~ "-n suppress the normal change of directory when removing directories" +#~ msgstr "-n\tsuprime a troca normal de diretório ao remover-se diretórios" + +#, fuzzy +#~ msgid " from the stack, so only the stack is manipulated." +#~ msgstr "\tda pilha, fazendo com que somente a pilha seja manipulada." + +#, fuzzy +#~ msgid "" +#~ "Exit from within a FOR, WHILE or UNTIL loop. If N is specified,\n" +#~ " break N levels." +#~ msgstr "Sair de um laço FOR, WHILE ou UNTIL." + +#~ msgid "Obsolete. See `declare'." +#~ msgstr "Obsoleta. Veja `declare'." + +#~ msgid "" +#~ "Output the ARGs. If -n is specified, the trailing newline is suppressed." +#~ msgstr "" +#~ "Exibe ARGS. Se -n for fornecido, o caracter final de nova linha é " +#~ "suprimido." + +#~ msgid "" +#~ "Read ARGs as input to the shell and execute the resulting command(s)." +#~ msgstr "" +#~ "Ler ARGs como entrada da `shell' e executar o(s) comando(s) resultante(s)." + +#~ msgid "Logout of a login shell." +#~ msgstr "Sair de uma shell de login." + +#, fuzzy +#~ msgid "" +#~ "Causes a function to exit with the return value specified by N. If N\n" +#~ " is omitted, the return status is that of the last command." +#~ msgstr "Faz a função terminar com o valor de retorno especificado por N." + +#, fuzzy +#~ msgid "" +#~ "The positional parameters from $N+1 ... are renamed to $1 ... If N is\n" +#~ " not given, it is assumed to be 1." +#~ msgstr "" +#~ "Os parâmetros posicionais a partir de $N+1 ... são deslocados para $1 ..." + +#, fuzzy +#~ msgid "" +#~ "Print the accumulated user and system times for processes run from\n" +#~ " the shell." +#~ msgstr "" +#~ "Exibe os tempos acumulados do usuário e do sistema para os processos" + +#~ msgid "Missing `}'" +#~ msgstr "Faltando `}'" + +#~ msgid "brace_expand> " +#~ msgstr "brace_expand> " + +#~ msgid "Attempt to free unknown command type `%d'.\n" +#~ msgstr "Tentativa de liberar um tipo de comando desconhecido `%d'.\n" + +#~ msgid "Report this to %s\n" +#~ msgstr "Informar o ocorrido para %s\n" + +#~ msgid "Stopping myself..." +#~ msgstr "Parando-me..." + +#~ msgid "Tell %s to fix this someday.\n" +#~ msgstr "Informar %s para corrigir o ocorrido.\n" + +#~ msgid "execute_command: bad command type `%d'" +#~ msgstr "execute_command: `%d' é um tipo incorreto de comando " + +#~ msgid "real\t" +#~ msgstr "real\t" + +#~ msgid "user\t" +#~ msgstr "usuário\t" + +#~ msgid "sys\t" +#~ msgstr "sistema\t" + +#~ msgid "" +#~ "real\t0m0.00s\n" +#~ "user\t0m0.00s\n" +#~ "sys\t0m0.00s\n" +#~ msgstr "" +#~ "real \t0m0.00s\n" +#~ "usuário\t0m0.00s\n" +#~ "sistema\t0m0.00s\n" + +#~ msgid "cannot duplicate fd %d to fd 1: %s" +#~ msgstr "impossível duplicar fd (descritor de arquivo) %d para fd 1: %s" + +#~ msgid "%s: output redirection restricted" +#~ msgstr "%s: redirecionamento da saída restringido" + +#~ msgid "Out of memory!" +#~ msgstr "Memória esgotada!" + +#~ msgid "You have already added item `%s'\n" +#~ msgstr "Você já adicionou o item `%s'\n" + +#~ msgid "You have entered %d (%d) items. The distribution is:\n" +#~ msgstr "Entrados %d (%d) itens. A distribuição é:\n" + +#~ msgid "%s: bg background job?" +#~ msgstr "%s: bg trabalho no segundo plano?" + +#~ msgid "" +#~ "Redirection instruction from yyparse () '%d' is\n" +#~ "out of range in make_redirection ()." +#~ msgstr "" +#~ "A instrução de redirecionamento do yyparse () '%d' está\n" +#~ "fora do intervalo em make_redirection ()." + +#~ msgid "clean_simple_command () got a command with type %d." +#~ msgstr "clean_simple_command () recebeu um comando do tipo %d." + +#~ msgid "got errno %d while waiting for %d" +#~ msgstr "recebido erro número %d enquanto aguardava por %d" + +#~ msgid "syntax error near unexpected token `%c'" +#~ msgstr "erro de sintaxe próximo do `token' não esperado `%c'" + +#~ msgid "print_command: bad command type `%d'" +#~ msgstr "print_command: tipo de comando incorreto `%d'" + +#~ msgid "cprintf: bad `%%' argument (%c)" +#~ msgstr "cprintf: argumento `%%' incorreto (%c)" + +#~ msgid "option `%s' requires an argument" +#~ msgstr "a opção `%s' requer um argumento" + +#~ msgid "%s: unrecognized option" +#~ msgstr "%s: a opção não é reconhecida" + +#~ msgid "`-c' requires an argument" +#~ msgstr "A opção `-c' requer um argumento" + +#~ msgid "%s: cannot execute directories" +#~ msgstr "%s: impossível executar diretórios" + +#~ msgid "Bad code in sig.c: sigprocmask" +#~ msgstr "Código incorreto em sig.c: sigprocmask" + +#~ msgid "bad substitution: no ending `}' in %s" +#~ msgstr "substituição incorreta: falta o `}' final em %s" + +#~ msgid "%s: bad array subscript" +#~ msgstr "%s: indice da matriz (array) incorreto" + +#~ msgid "can't make pipes for process substitution: %s" +#~ msgstr "impossível criar `pipes' para a substituição do processo: %s" + +#~ msgid "reading" +#~ msgstr "lendo" + +#~ msgid "process substitution" +#~ msgstr "substituição de processo" + +#~ msgid "command substitution" +#~ msgstr "substituição de comando" + +#~ msgid "Can't reopen pipe to command substitution (fd %d): %s" +#~ msgstr "" +#~ "Impossível reabrir o `pipe' para substituição de comando (fd %d): %s" + +#~ msgid "$%c: unbound variable" +#~ msgstr "$%c: variável não vinculada" + +#~ msgid "%s: bad arithmetic substitution" +#~ msgstr "%s: substituição aritmética incorreta" + +#~ msgid "-%s: binary operator expected" +#~ msgstr "-%s: esperado operador binário" + +#~ msgid "%s[%s: bad subscript" +#~ msgstr "%s[%s: índice incorreto" + +#~ msgid "[%s: bad subscript" +#~ msgstr "[%s: índice incorreto" + +#~ msgid "digits occur in two different argv-elements.\n" +#~ msgstr "os dígitos aparecem em dois elementos argv diferentes.\n" + +#~ msgid "option %c\n" +#~ msgstr "opção %c\n" + +#~ msgid "option a\n" +#~ msgstr "opção a\n" + +#~ msgid "option b\n" +#~ msgstr "opção b\n" + +#~ msgid "option c with value `%s'\n" +#~ msgstr "opção c com o valor `%s'\n" + +#~ msgid "?? sh_getopt returned character code 0%o ??\n" +#~ msgstr "?? sh_getopt retornou o código de caracter 0%o ??\n" + +#~ msgid "non-option ARGV-elements: " +#~ msgstr "elementos de ARGV que não são opção:" + +#~ msgid "%s: Unknown flag %s.\n" +#~ msgstr "%s: Opção %s desconhecida.\n" + +#~ msgid "Unknown directive `%s'" +#~ msgstr "Diretiva desconhecida `%s'" + +#~ msgid "%s requires an argument" +#~ msgstr "%s requer um argumento" + +#~ msgid "%s must be inside of a $BUILTIN block" +#~ msgstr "%s deve estar dentro de um bloco $BUILTIN" + +#~ msgid "%s found before $END" +#~ msgstr "%s encontrado antes de $END" + +#~ msgid "%s already has a function (%s)" +#~ msgstr "%s já possui uma função (%s)" + +#~ msgid "%s already had a docname (%s)" +#~ msgstr "%s já possui um nome de documento (%s)" + +#~ msgid "%s already has short documentation (%s)" +#~ msgstr "%s já possui uma documentação curta (%s)" + +#~ msgid "%s already has a %s definition" +#~ msgstr "%s já possui a definição %s" + +#~ msgid "mkbuiltins: Out of virtual memory!\n" +#~ msgstr "mkbuiltins: Memória virtual esgotada!\n" + +#~ msgid "read [-r] [-p prompt] [-a array] [-e] [name ...]" +#~ msgstr "read [-r] [-p MENSAGEM] [-a MATRIZ] [-e] [NOME ...]" + +#~ msgid "%[DIGITS | WORD] [&]" +#~ msgstr "%[DÍGITOS | PALAVRA] [&]" + +#~ msgid "variables - Some variable names and meanings" +#~ msgstr "variáveis - Alguns nomes de variáveis e suas descrições" + +#~ msgid "`alias' with no arguments or with the -p option prints the list" +#~ msgstr "`alias' sem nenhum argumento, ou com a opção -p, exibe a lista" + +#~ msgid "of aliases in the form alias NAME=VALUE on standard output." +#~ msgstr "de aliases na forma `alias NOME=VALOR' na saída padrão." + +#~ msgid "Otherwise, an alias is defined for each NAME whose VALUE is given." +#~ msgstr "" +#~ "Ou então, um alias é definido para cada NOME cujo VALOR for fornecido." + +#~ msgid "A trailing space in VALUE causes the next word to be checked for" +#~ msgstr "Um espaço após VALOR faz a próxima palavra ser verificada para" + +#~ msgid "alias substitution when the alias is expanded. Alias returns" +#~ msgstr "substituição do alias quando o alias é expandido. Alias retorna" + +#~ msgid "true unless a NAME is given for which no alias has been defined." +#~ msgstr "" +#~ "verdadeiro, a não ser que seja fornecido um NOME sem alias definido." + +#~ msgid "then remove all alias definitions." +#~ msgstr "então todas as definições de alias são removidas." + +#~ msgid "Bind a key sequence to a Readline function, or to a macro. The" +#~ msgstr "" +#~ "Víncula uma seqüência de teclas a uma função de leitura de linha, ou a uma" + +#~ msgid "syntax is equivalent to that found in ~/.inputrc, but must be" +#~ msgstr "" +#~ "macro. A sintaxe é equivalente à encontrada em ~/.inputrc, mas deve ser" + +#~ msgid "" +#~ "passed as a single argument: bind '\"\\C-x\\C-r\": re-read-init-file'." +#~ msgstr "" +#~ "passada como um único argumento: bind '\"\\C-x\\C-r\": re-read-init-file'." + +#~ msgid "Arguments we accept:" +#~ msgstr "Argumentos permitidos:" + +#~ msgid "" +#~ " -m keymap Use `keymap' as the keymap for the duration of this" +#~ msgstr "" +#~ " -m MAPA-TECLAS Usar `MAPA-TECLAS' como mapa das teclas pela duração" + +#~ msgid " command. Acceptable keymap names are emacs," +#~ msgstr " deste comando. Os nomes aceitos são emacs," + +#~ msgid "" +#~ " emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move," +#~ msgstr "" +#~ " emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move," + +#~ msgid " vi-command, and vi-insert." +#~ msgstr " vi-command, and vi-insert." + +#~ msgid " -l List names of functions." +#~ msgstr " -l Listar os nomes das funções." + +#~ msgid " -P List function names and bindings." +#~ msgstr " -P Listar nomes e vinculações das funções." + +#~ msgid "" +#~ " -p List functions and bindings in a form that can be" +#~ msgstr "" +#~ " -p Listar nomes e vinculações das funções de uma forma" + +#~ msgid " reused as input." +#~ msgstr " que pode ser reutilizada como entrada." + +#~ msgid " -r keyseq Remove the binding for KEYSEQ." +#~ msgstr " -r SEQ-TECLAS Remove o vínculo para SEQ-TECLAS." + +#~ msgid " -f filename Read key bindings from FILENAME." +#~ msgstr " -f ARQUIVO Ler os vínculos das teclas em ARQUIVO." + +#~ msgid "" +#~ " -q function-name Query about which keys invoke the named function." +#~ msgstr " -q NOME-FUNÇÃO Consultar quais teclas chamam esta função." + +#~ msgid " -V List variable names and values" +#~ msgstr " -V Listar os nomes e os valores das variáveis." + +#~ msgid "" +#~ " -v List variable names and values in a form that can" +#~ msgstr "" +#~ " -v Listar os nomes e os valores das variáveis de uma" + +#~ msgid " be reused as input." +#~ msgstr " forma que pode ser reutilizada como entrada." + +#~ msgid "" +#~ " -S List key sequences that invoke macros and their " +#~ "values" +#~ msgstr "" +#~ " -S Listar as seqüências de teclas que chamam macros\n" +#~ " e seus valores." + +#~ msgid "" +#~ " -s List key sequences that invoke macros and their " +#~ "values in" +#~ msgstr " -s Listar seqüências de teclas que chamam macros" + +#~ msgid " a form that can be reused as input." +#~ msgstr "" +#~ " e seus valores de uma forma que pode ser\n" +#~ " reutilizada como entrada." + +#~ msgid "break N levels." +#~ msgstr "Se N for especificado, sai de N níveis." + +#~ msgid "If N is specified, resume at the N-th enclosing loop." +#~ msgstr "Se N for especificado, prossegue no N-ésimo laço envolvente." + +#~ msgid "Run a shell builtin. This is useful when you wish to rename a" +#~ msgstr "" +#~ "Executa um comando interno da `shell'. Útil quando desejamos substituir" + +#~ msgid "shell builtin to be a function, but need the functionality of the" +#~ msgstr "um comando interno da `shell' por uma função, mas necessitamos da" + +#~ msgid "builtin within the function itself." +#~ msgstr "funcionalidade do comando interno dentro da própria função." + +#~ msgid "Change the current directory to DIR. The variable $HOME is the" +#~ msgstr "Troca o diretório atual para DIR. A variável $HOME é o padrão" + +#~ msgid "default DIR. The variable $CDPATH defines the search path for" +#~ msgstr "para DIR. A variável $CDPATH define o caminho de procura para" + +#~ msgid "the directory containing DIR. Alternative directory names in CDPATH" +#~ msgstr "" +#~ "o diretório que contém DIR. Nomes de diretórios alternativos em CDPATH" + +#~ msgid "are separated by a colon (:). A null directory name is the same as" +#~ msgstr "" +#~ "são separados por dois pontos (:). Um nome de diretório nulo é o mesmo" + +#~ msgid "the current directory, i.e. `.'. If DIR begins with a slash (/)," +#~ msgstr "que o diretório atual, i.e. `.'. Se DIR inicia com uma barra (/)," + +#~ msgid "then $CDPATH is not used. If the directory is not found, and the" +#~ msgstr "então $CDPATH não é usado. Se o diretório não for encontrado, e a" + +#~ msgid "shell option `cdable_vars' is set, then try the word as a variable" +#~ msgstr "" +#~ "opção `cdable_vars' estiver definida, tentar usar DIR como um nome de" + +#~ msgid "name. If that variable has a value, then cd to the value of that" +#~ msgstr "" +#~ "variável. Se esta variável tiver valor, então `cd' para o valor desta" + +#~ msgid "" +#~ "variable. The -P option says to use the physical directory structure" +#~ msgstr "" +#~ "variável. A opção -P indica para usar a estrutura física do diretório" + +#~ msgid "" +#~ "instead of following symbolic links; the -L option forces symbolic links" +#~ msgstr "em vez de seguir os vínculos simbólicos; a opção -L força seguir os" + +#~ msgid "to be followed." +#~ msgstr "vínculos simbólicos." + +#~ msgid "Print the current working directory. With the -P option, pwd prints" +#~ msgstr "Exibe o diretório atual de trabalho. Com a opção -P, `pwd' exibe" + +#~ msgid "the physical directory, without any symbolic links; the -L option" +#~ msgstr "o diretório físico, sem nenhum vínculo simbólico; a opção -L faz" + +#~ msgid "makes pwd follow symbolic links." +#~ msgstr "com que `pwd' siga os vínculos simbólicos." + +#~ msgid "" +#~ "Runs COMMAND with ARGS ignoring shell functions. If you have a shell" +#~ msgstr "" +#~ "Executa COMANDO com ARGs ignorando as funções da `shell'. Ex: Havendo" + +#~ msgid "function called `ls', and you wish to call the command `ls', you can" +#~ msgstr "" +#~ "uma função `ls', e se for necessário executar o comando `ls', executa-se" + +#~ msgid "" +#~ "say \"command ls\". If the -p option is given, a default value is used" +#~ msgstr "" +#~ "\"command ls\". Se a opção -p for fornecida, o valor padrão é utilizado" + +#~ msgid "" +#~ "for PATH that is guaranteed to find all of the standard utilities. If" +#~ msgstr "" +#~ "para PATH, garantindo-se o encontro de todos os utilitários padrão. Se" + +#~ msgid "" +#~ "the -V or -v option is given, a string is printed describing COMMAND." +#~ msgstr "a opção -V ou -v for fornecida, é exibida a descrição do COMANDO." + +#~ msgid "The -V option produces a more verbose description." +#~ msgstr "A opção -V produz uma descrição mais extensa." + +#~ msgid "Declare variables and/or give them attributes. If no NAMEs are" +#~ msgstr "Declara variáveis e/ou dá-lhes atributos. Se nenhum nome for" + +#~ msgid "given, then display the values of variables instead. The -p option" +#~ msgstr "fornecido, então são exibidos os valores das variáveis. A opção -p" + +#~ msgid "will display the attributes and values of each NAME." +#~ msgstr "exibe os atributos e valores para cada NOME." + +#~ msgid "The flags are:" +#~ msgstr "As opções são:" + +#~ msgid " -a\tto make NAMEs arrays (if supported)" +#~ msgstr " -a\tpara tornar NOMEs matrizes (arrays), se suportado" + +#~ msgid " -f\tto select from among function names only" +#~ msgstr " -f\tpara selecionar somente entre nomes de funções" + +#~ msgid " -F\tto display function names without definitions" +#~ msgstr " -F\tpara exibir os nomes das funções omitindo suas definições" + +#~ msgid " -r\tto make NAMEs readonly" +#~ msgstr " -r\tpara tornar NOMEs somente para leitura" + +#~ msgid " -x\tto make NAMEs export" +#~ msgstr " -x\tpara fazer a exportação de NOMEs" + +#~ msgid " -i\tto make NAMEs have the `integer' attribute set" +#~ msgstr " -i\tpara ativar o atributo `inteiro' em NOMEs " + +#~ msgid "Variables with the integer attribute have arithmetic evaluation (see" +#~ msgstr "Variáveis com atributo inteiro são avaliadas aritmeticamente (veja" + +#~ msgid "`let') done when the variable is assigned to." +#~ msgstr "`let') quando é feita uma atribuição de valor." + +#~ msgid "When displaying values of variables, -f displays a function's name" +#~ msgstr "Ao exibir os valores das variáveis, -f exibe o nome da função e" + +#~ msgid "and definition. The -F option restricts the display to function" +#~ msgstr "sua definição. A opção -F restringe a exibição ao nome da função" + +#~ msgid "name only." +#~ msgstr "somente." + +#~ msgid "" +#~ "Using `+' instead of `-' turns off the given attribute instead. When" +#~ msgstr "Usando `+' em vez de `-' faz o atributo ser desabilitado. Quando" + +#~ msgid "used in a function, makes NAMEs local, as with the `local' command." +#~ msgstr "usado em uma função, torna NOMEs local, como no comando `local'." + +#~ msgid "Create a local variable called NAME, and give it VALUE. LOCAL" +#~ msgstr "Cria uma variável local chamada NOME, e atribui VALOR. LOCAL" + +#~ msgid "have a visible scope restricted to that function and its children." +#~ msgstr "da variável NOME fique restrito à própria função e às suas filhas." + +#~ msgid "Output the ARGs. If -n is specified, the trailing newline is" +#~ msgstr "Exibe ARGs. Se -n for fornecido, o caracter final de nova linha é" + +#~ msgid "suppressed. If the -e option is given, interpretation of the" +#~ msgstr "" +#~ "suprimido. Se a opção -e for fornecida, a interpretação dos seguintes" + +#~ msgid "following backslash-escaped characters is turned on:" +#~ msgstr "caracteres após a contrabarra é ativada:" + +#~ msgid "\t\\a\talert (bell)" +#~ msgstr "\t\\a\talerta (bell)" + +#~ msgid "\t\\b\tbackspace" +#~ msgstr "\t\\b\tbackspace" + +#~ msgid "\t\\c\tsuppress trailing newline" +#~ msgstr "\t\\c\tsuprimir o caracter final de nova linha" + +#~ msgid "\t\\E\tescape character" +#~ msgstr "\t\\E\to caracter de escape" + +#~ msgid "\t\\f\tform feed" +#~ msgstr "\t\\f\talimentação de formulário (form feed)" + +#~ msgid "\t\\n\tnew line" +#~ msgstr "\t\\n\tnova linha" + +#~ msgid "\t\\r\tcarriage return" +#~ msgstr "\t\\r\tretorno de carro (cr)" + +#~ msgid "\t\\t\thorizontal tab" +#~ msgstr "\t\\t\ttabulação horizontal (ht)" + +#~ msgid "\t\\v\tvertical tab" +#~ msgstr "\t\\v\ttabulação vertical (vt)" + +#~ msgid "\t\\\\\tbackslash" +#~ msgstr "\t\\\\\tcontrabarra" + +#~ msgid "\t\\num\tthe character whose ASCII code is NUM (octal)." +#~ msgstr "\t\\num\to caracter com código ASCII igual a NUM (octal)." + +#~ msgid "" +#~ "You can explicitly turn off the interpretation of the above characters" +#~ msgstr "" +#~ "Pode-se explicitamente desabilitar a interpretação dos caracteres acima" + +#~ msgid "with the -E option." +#~ msgstr "através da opção -E." + +#~ msgid "Enable and disable builtin shell commands. This allows" +#~ msgstr "" +#~ "Habilita e desabilita os comandos internos da `shell', permitindo usar" + +#~ msgid "you to use a disk command which has the same name as a shell" +#~ msgstr "" +#~ "um comando de disco que tenha o mesmo nome do comando interno da `shell'." + +#~ msgid "builtin. If -n is used, the NAMEs become disabled; otherwise" +#~ msgstr "" +#~ "Se -n for especificado, os NOMEs são desabilitados, senão os nomes são" + +#~ msgid "NAMEs are enabled. For example, to use the `test' found on your" +#~ msgstr "" +#~ "habilitados. Por exemplo, para usar `test' encontrado pelo PATH em vez" + +#~ msgid "path instead of the shell builtin version, type `enable -n test'." +#~ msgstr "" +#~ "da versão interna do comando, digite `enable -n test'. Em sistemas que" + +#~ msgid "On systems supporting dynamic loading, the -f option may be used" +#~ msgstr "" +#~ "suportam carregamento dinâmico, pode-se usar a opção -f para carregar" + +#~ msgid "to load new builtins from the shared object FILENAME. The -d" +#~ msgstr "" +#~ "novos comandos internos do objeto compartilhado ARQUIVO. A opção -d" + +#~ msgid "option will delete a builtin previously loaded with -f. If no" +#~ msgstr "" +#~ "elimina os comandos internos previamente carregados com -f. Se nenhum" + +#~ msgid "non-option names are given, or the -p option is supplied, a list" +#~ msgstr "" +#~ "nome for fornecido, ou se a opção -p for fornecida, uma lista de comandos" + +#~ msgid "of builtins is printed. The -a option means to print every builtin" +#~ msgstr "" +#~ "internos é exibida. A opção -a faz com que todos os comandos internos" + +#~ msgid "with an indication of whether or not it is enabled. The -s option" +#~ msgstr "sejam exibidos indicando se estão habilitados ou não. A opção -s" + +#~ msgid "restricts the output to the Posix.2 `special' builtins. The -n" +#~ msgstr "" +#~ "restringe a saída aos comandos internos `especiais' Posix.2. A opção" + +#~ msgid "option displays a list of all disabled builtins." +#~ msgstr "-n exibe a lista de todos os comandos internos desabilitados." + +#~ msgid "Getopts is used by shell procedures to parse positional parameters." +#~ msgstr "" +#~ "Getopts é utilizado pelos procedimentos da `shell' para fazer a leitura\n" +#~ " (parse) dos parâmetros posicionais." + +#~ msgid "OPTSTRING contains the option letters to be recognized; if a letter" +#~ msgstr "OPÇÕES contém as letras das opções a serem reconhecidas; Se uma" + +#~ msgid "is followed by a colon, the option is expected to have an argument," +#~ msgstr "letra é seguida por dois pontos, a opção espera a presença de um" + +#~ msgid "which should be separated from it by white space." +#~ msgstr "argumento que deve ser separado dela por espaço em branco." + +#~ msgid "Each time it is invoked, getopts will place the next option in the" +#~ msgstr "Cada vez que for chamada, `getopts' irá colocar a próxima opção na" + +#~ msgid "shell variable $name, initializing name if it does not exist, and" +#~ msgstr "variável da `shell' $NOME, inicializando NOME caso não exista, e o" + +#~ msgid "the index of the next argument to be processed into the shell" +#~ msgstr "índice do próximo argumento a ser processado dentro da variável da" + +#~ msgid "variable OPTIND. OPTIND is initialized to 1 each time the shell or" +#~ msgstr "`shell' OPTIND. OPTIND é inicializado com 1 cada vez que o script" + +#~ msgid "a shell script is invoked. When an option requires an argument," +#~ msgstr "" +#~ "da `shell' é chamado. Quando uma opção requer um argumento, `getopts'" + +#~ msgid "getopts places that argument into the shell variable OPTARG." +#~ msgstr "coloca este argumento dentro da variável da `shell' OPTARG." + +#~ msgid "getopts reports errors in one of two ways. If the first character" +#~ msgstr "" +#~ "`getopts' informa os erros de duas maneiras. Se o primeiro caracter de" + +#~ msgid "of OPTSTRING is a colon, getopts uses silent error reporting. In" +#~ msgstr "OPÇÕES for dois pontos, `getopts' usa o modo silencioso. Neste" + +#~ msgid "this mode, no error messages are printed. If an illegal option is" +#~ msgstr "modo, nenhuma mensagem de erro é exibida. Se uma opção ilegal for" + +#~ msgid "seen, getopts places the option character found into OPTARG. If a" +#~ msgstr "encontrada, `getopts' coloca o caracter da opção em OPTARG. Se um" + +#~ msgid "required argument is not found, getopts places a ':' into NAME and" +#~ msgstr "" +#~ "argumento requerido não for encontrado, `getopts' coloca ':' em NOME e" + +#~ msgid "sets OPTARG to the option character found. If getopts is not in" +#~ msgstr "" +#~ "atribui a OPTARG o caracter de opção encontrado. Se `getopts' não está em" + +#~ msgid "silent mode, and an illegal option is seen, getopts places '?' into" +#~ msgstr "" +#~ "modo silencioso, e uma opção ilegal é encontrada, `getopts' coloca '?' em" + +#~ msgid "NAME and unsets OPTARG. If a required option is not found, a '?'" +#~ msgstr "" +#~ "NOME e desativa OPTARG. Se uma opção requerida não é encontrada, uma '?'" + +#~ msgid "is placed in NAME, OPTARG is unset, and a diagnostic message is" +#~ msgstr "" +#~ "é colocada em NOME, OPTARG é desativado, e uma mensagem de diagnóstico é" + +#~ msgid "If the shell variable OPTERR has the value 0, getopts disables the" +#~ msgstr "" +#~ "Se a variável da `shell' OPTERR tem o valor 0, `getopts' desabilita a" + +#~ msgid "printing of error messages, even if the first character of" +#~ msgstr "exibição de mensagens de erro, mesmo que o primeiro caracter de" + +#~ msgid "OPTSTRING is not a colon. OPTERR has the value 1 by default." +#~ msgstr "OPTSTRING não seja dois pontos. OPTERR tem o valor 1 por padrão." + +#~ msgid "Getopts normally parses the positional parameters ($0 - $9), but if" +#~ msgstr "" +#~ "`getopts' normalmente faz a leitura dos parãmetros posicionais ($0 - $9)," + +#~ msgid "more arguments are given, they are parsed instead." +#~ msgstr "mas, se mais argumentos forem fornecidos, então estes são lidos." + +#~ msgid "Exec FILE, replacing this shell with the specified program." +#~ msgstr "" +#~ "Executa ARQUIVO, substituindo esta `shell' pelo programa especificado." + +#~ msgid "If FILE is not specified, the redirections take effect in this" +#~ msgstr "" +#~ "Se ARQUIVO não for especificado, os redirecionamentos são efetivados" + +#~ msgid "shell. If the first argument is `-l', then place a dash in the" +#~ msgstr "" +#~ "nesta `shell'. Se o primeiro argumento for `-l', coloca um hífen no" + +#~ msgid "zeroth arg passed to FILE, as login does. If the `-c' option" +#~ msgstr "argumento `0' passado para ARQUIVO, como no login. Se a opção `-c'" + +#~ msgid "is supplied, FILE is executed with a null environment. The `-a'" +#~ msgstr "for fornecida, ARQUIVO é executado com um ambiente nulo. A opção" + +#~ msgid "option means to make set argv[0] of the executed process to NAME." +#~ msgstr "`-a' significa atribuir NOME para argv[0] do processo executado." + +#~ msgid "If the file cannot be executed and the shell is not interactive," +#~ msgstr "" +#~ "Se o arquivo não puder ser executado e a `shell' não for interativa," + +#~ msgid "then the shell exits, unless the variable \"no_exit_on_failed_exec\"" +#~ msgstr "" +#~ "então a `shell' termina, a menos que a variável \"no_exit_on_failed_exec\"" + +#~ msgid "is set." +#~ msgstr "esteja inicializada." + +#~ msgid "is that of the last command executed." +#~ msgstr "de saída é igual ao do último comando executado." + +#~ msgid "" +#~ "FIRST and LAST can be numbers specifying the range, or FIRST can be a" +#~ msgstr "PRIMEIRO e ÚLTIMO podem ser números especificando o intervalo, ou" + +#~ msgid "string, which means the most recent command beginning with that" +#~ msgstr "PRIMEIRO pode ser uma cadeia de caracteres, representando o comando" + +#~ msgid "string." +#~ msgstr "mais recente começado por estes caracteres." + +#~ msgid "" +#~ " -e ENAME selects which editor to use. Default is FCEDIT, then EDITOR," +#~ msgstr "" +#~ " -e EDITOR seleciona qual editor usar. O padrão é FCEDIT, depois " +#~ "EDITOR," + +#~ msgid "" +#~ " then the editor which corresponds to the current readline editing" +#~ msgstr "" +#~ " depois o editor correspondente ao modo de edição atual da leitura" + +#~ msgid " mode, then vi." +#~ msgstr " de linha, e depois o vi." + +#~ msgid " -l means list lines instead of editing." +#~ msgstr " -l indica para listar as linha em vez de editá-las." + +#~ msgid " -n means no line numbers listed." +#~ msgstr " -n indica para não listar os números das linhas." + +#~ msgid "" +#~ " -r means reverse the order of the lines (making it newest listed " +#~ "first)." +#~ msgstr "" +#~ " -r faz reverter a ordem das linhas (a última torna-se a primeira)." + +#~ msgid "With the `fc -s [pat=rep ...] [command]' format, the command is" +#~ msgstr "" +#~ "No formato `fc -s [ANTIGO=NOVO ...] [COMANDO]', o comando é executado" + +#~ msgid "re-executed after the substitution OLD=NEW is performed." +#~ msgstr "novamente após a substituição de ANTIGO por NOVO ser realizada." + +#~ msgid "A useful alias to use with this is r='fc -s', so that typing `r cc'" +#~ msgstr "" +#~ "Um alias útil a ser usado é r='fc -s' para que, ao se digitar `r cc'," + +#~ msgid "runs the last command beginning with `cc' and typing `r' re-executes" +#~ msgstr "seja executado o último comando começado por `cc' e, ao se digitar" + +#~ msgid "JOB_SPEC is not present, the shell's notion of the current job is" +#~ msgstr "" +#~ "Se JOB-ESPECIFICADO não estiver presente, a noção da `shell' do trabalho" + +#~ msgid "used." +#~ msgstr "atual é utilizada." + +#~ msgid "Place JOB_SPEC in the background, as if it had been started with" +#~ msgstr "" +#~ "Colocar JOB-ESPECIFICADO no segundo plano, como se tivesse sido ativado" + +#~ msgid "`&'. If JOB_SPEC is not present, the shell's notion of the current" +#~ msgstr "" +#~ "com `&'. Se JOB-ESPECIFICADO não estiver presente, a noção da `shell'" + +#~ msgid "job is used." +#~ msgstr "do trabalho atual é utilizada." + +#~ msgid "For each NAME, the full pathname of the command is determined and" +#~ msgstr "" +#~ "Para cada NOME, o caminho completo do comando é determinado e lembrado." + +#~ msgid "remembered. If the -p option is supplied, PATHNAME is used as the" +#~ msgstr "" +#~ "Se a opção -p for fornecida, CAMINHO é utilizado como o caminho completo" + +#~ msgid "full pathname of NAME, and no path search is performed. The -r" +#~ msgstr "para NOME, e nenhuma procura de caminho é realizada. A opção -r" + +#~ msgid "option causes the shell to forget all remembered locations. If no" +#~ msgstr "" +#~ "faz com que a `shell' esqueça todas as localizações lembradas. Sem nenhum" + +#~ msgid "" +#~ "arguments are given, information about remembered commands is displayed." +#~ msgstr "argumento, as informações sobre os comandos lembrados são exibidas." + +#~ msgid "Display helpful information about builtin commands. If PATTERN is" +#~ msgstr "Exibe informações úteis sobre os comandos internos. Se PADRÃO for" + +#~ msgid "specified, gives detailed help on all commands matching PATTERN," +#~ msgstr "especificado, fornece ajuda detalhada para todos os comandos que" + +#~ msgid "otherwise a list of the builtins is printed." +#~ msgstr "" +#~ "correspondem ao PADRÃO, senão a lista dos comandos internos é exibida." + +#~ msgid "Display the history list with line numbers. Lines listed with" +#~ msgstr "" +#~ "Exibe a lista histórica com os números das linhas. Linhas contendo um" + +#~ msgid "with a `*' have been modified. Argument of N says to list only" +#~ msgstr "`*' foram modificadas. O argumento N faz listar somente as últimas" + +#~ msgid "the last N lines. The -c option causes the history list to be" +#~ msgstr "N linhas. A opção -c faz com que a lista histórica seja apagada" + +#~ msgid "" +#~ "cleared by deleting all of the entries. The `-w' option writes out the" +#~ msgstr "" +#~ "removendo todas as entradas. A opção `-w' escreve o histórico atual no" + +#~ msgid "" +#~ "current history to the history file; `-r' means to read the file and" +#~ msgstr "" +#~ "arquivo de histórico; A opção `-r' significa ler o arquivo e apensar seu" + +#~ msgid "append the contents to the history list instead. `-a' means" +#~ msgstr "" +#~ "conteúdo à lista histórica. A opção `-a' significa apensar as linhas de" + +#~ msgid "to append history lines from this session to the history file." +#~ msgstr "histórico desta sessão ao arquivo de histórico." + +#~ msgid "Argument `-n' means to read all history lines not already read" +#~ msgstr "A opção `-n' faz ler todas as linhas de histórico ainda não lidas" + +#~ msgid "from the history file and append them to the history list. If" +#~ msgstr "" +#~ "do arquivo histórico, e apensá-las à lista de histórico. Se ARQUIVO" + +#~ msgid "FILENAME is given, then that is used as the history file else" +#~ msgstr "for fornecido, então este é usado como arquivo de histórico, senão" + +#~ msgid "if $HISTFILE has a value, that is used, else ~/.bash_history." +#~ msgstr "" +#~ "se $HISTFILE possui valor, este é usado, senão ~/.bash_history. Se a" + +#~ msgid "If the -s option is supplied, the non-option ARGs are appended to" +#~ msgstr "" +#~ "opção -s for fornecida, os ARGs, que não forem opções, são apensados à" + +#~ msgid "the history list as a single entry. The -p option means to perform" +#~ msgstr "" +#~ "lista histórica como uma única entrada. A opção -p significa realizar a" + +#~ msgid "" +#~ "history expansion on each ARG and display the result, without storing" +#~ msgstr "" +#~ "expansão da história em cada ARG e exibir o resultado, sem armazenar" + +#~ msgid "anything in the history list." +#~ msgstr "nada na lista de histórico." + +#~ msgid "Lists the active jobs. The -l option lists process id's in addition" +#~ msgstr "" +#~ "Lista os trabalhos ativos. A opção -l lista os ID's dos processos além" + +#~ msgid "to the normal information; the -p option lists process id's only." +#~ msgstr "" +#~ "das informações usuais; a opção -p lista somente os ID's dos processos." + +#~ msgid "" +#~ "If -n is given, only processes that have changed status since the last" +#~ msgstr "" +#~ "Se -n for fornecido, somente os processos que mudaram de status desde a" + +#~ msgid "" +#~ "notification are printed. JOBSPEC restricts output to that job. The" +#~ msgstr "" +#~ "última notificação são exibidos. JOB-ESPECIFICADO restringe a saída a " +#~ "este" + +#~ msgid "-r and -s options restrict output to running and stopped jobs only," +#~ msgstr "" +#~ "trabalho. As opções -r e -s restringem a saída apenas aos trabalhos" + +#~ msgid "respectively. Without options, the status of all active jobs is" +#~ msgstr "" +#~ "executando e parados, respectivamente. Sem opções, o status de todos os" + +#~ msgid "" +#~ "printed. If -x is given, COMMAND is run after all job specifications" +#~ msgstr "" +#~ "trabalhos ativos são exibidos. Se -x for fornecido, COMANDO é executado" + +#~ msgid "" +#~ "that appear in ARGS have been replaced with the process ID of that job's" +#~ msgstr "" +#~ "após todas as especificações de trabalho que aparecem em ARGS terem sido" + +#~ msgid "process group leader." +#~ msgstr "substituídas pelo ID do processo líder deste grupo de processos." + +#~ msgid "Removes each JOBSPEC argument from the table of active jobs." +#~ msgstr "" +#~ "Remove cada argumento JOB-ESPECIFICADO da tabela de trabalhos ativos." + +#~ msgid "Send the processes named by PID (or JOB) the signal SIGSPEC. If" +#~ msgstr "" +#~ "Envia ao processo identificado pelo PID (ou JOB) o sinal SIGSPEC. Se" + +#~ msgid "" +#~ "SIGSPEC is not present, then SIGTERM is assumed. An argument of `-l'" +#~ msgstr "" +#~ "SIGSPEC não estiver presente, então SIGTERM é assumido. A opção `-l'" + +#~ msgid "lists the signal names; if arguments follow `-l' they are assumed to" +#~ msgstr "" +#~ "lista os nomes dos sinais; havendo argumentos após `-l', são assumidos" + +#~ msgid "be signal numbers for which names should be listed. Kill is a shell" +#~ msgstr "" +#~ "como sendo os números dos sinais cujos nomes devem ser exibidos. Kill" + +#~ msgid "builtin for two reasons: it allows job IDs to be used instead of" +#~ msgstr "" +#~ "é um comando interno por duas razões: permite o uso do ID do trabalho em" + +#~ msgid "process IDs, and, if you have reached the limit on processes that" +#~ msgstr "" +#~ "vez do ID do processo e, caso tenha sido atingido o limite de processos " +#~ "que" + +#~ msgid "" +#~ "you can create, you don't have to start a process to kill another one." +#~ msgstr "" +#~ "podem ser criados, não é necessário um novo processo para remover outro." + +#~ msgid "Each ARG is an arithmetic expression to be evaluated. Evaluation" +#~ msgstr "Cada ARG é uma expressão aritmética a ser avaliada. A avaliação é" + +#~ msgid "is done in long integers with no check for overflow, though division" +#~ msgstr "" +#~ "feita usando inteiros longos sem verificar estouro, embora a divisão" + +#~ msgid "by 0 is trapped and flagged as an error. The following list of" +#~ msgstr "por 0 seja capturada e indicada como erro. A lista abaixo está" + +#~ msgid "operators is grouped into levels of equal-precedence operators." +#~ msgstr "grupada em níveis de igual de precedência dos operadores." + +#~ msgid "The levels are listed in order of decreasing precedence." +#~ msgstr "Os níveis estão listados em ordem decrescente de precedência." + +#~ msgid "\t-, +\t\tunary minus, plus" +#~ msgstr "\t-, +\t\tmenos, mais unários" + +#~ msgid "\t!, ~\t\tlogical and bitwise negation" +#~ msgstr "\t!, ~\t\tnegação lógica e bit a bit" + +#~ msgid "\t*, /, %\t\tmultiplication, division, remainder" +#~ msgstr "\t*, /, %\t\tmultiplicação, divisão, resto" + +#~ msgid "\t+, -\t\taddition, subtraction" +#~ msgstr "\t+, -\t\tadição, subtração" + +#~ msgid "\t<<, >>\t\tleft and right bitwise shifts" +#~ msgstr "\t<<, >>\t\tdeslocamento à esquerda e à direita bit a bit" + +#~ msgid "\t<=, >=, <, >\tcomparison" +#~ msgstr "\t<=, >=, <, >\tcomparação" + +#~ msgid "\t==, !=\t\tequality, inequality" +#~ msgstr "\t==, !=\t\tigualdade, desigualdade" + +#~ msgid "\t&\t\tbitwise AND" +#~ msgstr "\t&\t\tE bit a bit" + +#~ msgid "\t^\t\tbitwise XOR" +#~ msgstr "\t^\t\tOU Exclusivo (XOR) bit a bit" + +#~ msgid "\t|\t\tbitwise OR" +#~ msgstr "\t|\t\tOU Inclusivo (OR) bit a bit" + +#~ msgid "\t&&\t\tlogical AND" +#~ msgstr "\t&&\t\tE lógico" + +#~ msgid "\t||\t\tlogical OR" +#~ msgstr "\t||\t\tOU lógico" + +#~ msgid "\texpr ? expr : expr" +#~ msgstr "\texpr ? expr : expr" + +#~ msgid "\t\t\tconditional expression" +#~ msgstr "\t\t\texpressão condicional" + +#~ msgid "\t=, *=, /=, %=," +#~ msgstr "\t=, *=, /=, %=," + +#~ msgid "\t+=, -=, <<=, >>=," +#~ msgstr "\t+=, -=, <<=, >>=," + +#~ msgid "\t&=, ^=, |=\tassignment" +#~ msgstr "\t&=, ^=, |=\tatribuição" + +#~ msgid "is replaced by its value (coerced to a long integer) within" +#~ msgstr "substituído pelo seu valor (convertido em inteiro longo) dentro" + +#~ msgid "an expression. The variable need not have its integer attribute" +#~ msgstr "da expressão. A variável não precisa ter seu atributo inteiro" + +#~ msgid "turned on to be used in an expression." +#~ msgstr "ativo para ser usada em uma expressão." + +#~ msgid "Operators are evaluated in order of precedence. Sub-expressions in" +#~ msgstr "" +#~ "Os operadores são avaliados em ordem de precedência. Sub-expressões" + +#~ msgid "parentheses are evaluated first and may override the precedence" +#~ msgstr "entre parênteses são avaliadas primeiro e podem prevalecer sobre as" + +#~ msgid "rules above." +#~ msgstr "regras de precedência anteriores." + +#~ msgid "If the last ARG evaluates to 0, let returns 1; 0 is returned" +#~ msgstr "Se o último argumento for avaliado como 0, `let' retorna 1, caso" + +#~ msgid "otherwise." +#~ msgstr "contrário, retorna 0." + +#~ msgid "One line is read from the standard input, and the first word is" +#~ msgstr "Uma linha é lida a partir da entrada padrão, e a primeira palavra é" + +#~ msgid "" +#~ "assigned to the first NAME, the second word to the second NAME, and so" +#~ msgstr "" +#~ "atribuída ao primeiro NOME, a segunda ao segundo NOME, e assim por diante," + +#~ msgid "" +#~ "on, with leftover words assigned to the last NAME. Only the characters" +#~ msgstr "" +#~ "com as palavras restantes atribuídas ao último NOME. Somente os " +#~ "caracteres" + +#~ msgid "found in $IFS are recognized as word delimiters. The return code is" +#~ msgstr "" +#~ "encontrados em $IFS são reconhecidos como delimitadores. O código de " +#~ "retorno" + +#~ msgid "" +#~ "zero, unless end-of-file is encountered. If no NAMEs are supplied, the" +#~ msgstr "" +#~ "é zero, a menos que EOF seja encontrado. Se nenhum NOME for fornecido," + +#~ msgid "" +#~ "line read is stored in the REPLY variable. If the -r option is given," +#~ msgstr "" +#~ "a linha lida é armazenada na variável REPLY. Se a opção -r for fornecida," + +#~ msgid "this signifies `raw' input, and backslash escaping is disabled. If" +#~ msgstr "" +#~ "significa entrada `textual', desabilitando a interpretação da contrabarra." + +#~ msgid "the `-p' option is supplied, the string supplied as an argument is" +#~ msgstr "" +#~ "Se a opção `-p' for fornecida a MENSAGEM fornecida como argumento é " +#~ "exibida," + +#~ msgid "" +#~ "output without a trailing newline before attempting to read. If -a is" +#~ msgstr "" +#~ "sem o caracter de nova linha, antes de efetuar a leitura. Se a opção -a" + +#~ msgid "" +#~ "supplied, the words read are assigned to sequential indices of ARRAY," +#~ msgstr "" +#~ "for fornecida, as palavras lidas são atribuídas aos índices seqüenciais" + +#~ msgid "starting at zero. If -e is supplied and the shell is interactive," +#~ msgstr "" +#~ "da MATRIZ, começando por zero. Se a opção -e for fornecida, e a shell for" + +#~ msgid "readline is used to obtain the line." +#~ msgstr "interativa, `readline' é utilizado para ler a linha." + +#~ msgid "is omitted, the return status is that of the last command." +#~ msgstr "Se N for omitido, retorna o status do último comando executado." + +#~ msgid " -a Mark variables which are modified or created for export." +#~ msgstr "" +#~ " -a Marcar para exportação as variáveis que são criadas ou " +#~ "modificadas." + +#~ msgid " -b Notify of job termination immediately." +#~ msgstr " -b Notificar imediatamente o término do trabalho." + +#~ msgid " -e Exit immediately if a command exits with a non-zero status." +#~ msgstr "" +#~ " -e Terminar imediatamente se um comando terminar com status != 0." + +#~ msgid " -f Disable file name generation (globbing)." +#~ msgstr " -f Desabilitar a geração de nome de arquivo (metacaracteres)." + +#~ msgid " -h Remember the location of commands as they are looked up." +#~ msgstr " -h Lembrar da localização dos comandos ao procurá-los." + +#~ msgid "" +#~ " -i Force the shell to be an \"interactive\" one. Interactive shells" +#~ msgstr " -i Forçar a `shell' ser do tipo \"interativa\". `Shells'" + +#~ msgid " always read `~/.bashrc' on startup." +#~ msgstr " interativas sempre lêem `~/.bashrc' ao iniciar." + +#~ msgid " -k All assignment arguments are placed in the environment for a" +#~ msgstr "" +#~ " -k Todos os argumentos de atribuição são colocados no ambiente," + +#~ msgid " command, not just those that precede the command name." +#~ msgstr " e não somente os que precedem o nome do comando." + +#~ msgid " -m Job control is enabled." +#~ msgstr " -m O controle de trabalho está habilitado." + +#~ msgid " -n Read commands but do not execute them." +#~ msgstr " -n Ler os comandos, mas não executá-los." + +#~ msgid " -o option-name" +#~ msgstr " -o NOME-DA-OPÇÃO" + +#~ msgid " Set the variable corresponding to option-name:" +#~ msgstr " Inicializar a variável correspondente ao nome da opção:" + +#~ msgid " allexport same as -a" +#~ msgstr " allexport o mesmo que -a" + +#~ msgid " braceexpand same as -B" +#~ msgstr " braceexpand o mesmo que -B" + +#~ msgid " emacs use an emacs-style line editing interface" +#~ msgstr "" +#~ " emacs usar interface de edição de linha estilo emacs" + +#~ msgid " errexit same as -e" +#~ msgstr " errexit o mesmo que -e" + +#~ msgid " hashall same as -h" +#~ msgstr " hashall o mesmo que -h" + +#~ msgid " histexpand same as -H" +#~ msgstr " histexpand o mesmo que -H" + +#~ msgid " ignoreeof the shell will not exit upon reading EOF" +#~ msgstr " ignoreeof a `shell' não termina após ler EOF" + +#~ msgid " interactive-comments" +#~ msgstr " interactive-comments" + +#~ msgid "" +#~ " allow comments to appear in interactive commands" +#~ msgstr "" +#~ " permite comentários em comandos interativos" + +#~ msgid " keyword same as -k" +#~ msgstr " keyword o mesmo que -k" + +#~ msgid " monitor same as -m" +#~ msgstr " monitor o mesmo que -m" + +#~ msgid " noclobber same as -C" +#~ msgstr " noclobber o mesmo que -C" + +#~ msgid " noexec same as -n" +#~ msgstr " noexec o mesmo que -n" + +#~ msgid " noglob same as -f" +#~ msgstr " noglob o mesmo que -f" + +#~ msgid " notify save as -b" +#~ msgstr " notify o mesmo que -b" + +#~ msgid " nounset same as -u" +#~ msgstr " nounset o mesmo que -u" + +#~ msgid " onecmd same as -t" +#~ msgstr " onecmd o mesmo que -t" + +#~ msgid " physical same as -P" +#~ msgstr " physical o mesmo que -P" + +#~ msgid "" +#~ " posix change the behavior of bash where the default" +#~ msgstr "" +#~ " posix mudar o comportamento do `bash' onde o padrão" + +#~ msgid "" +#~ " operation differs from the 1003.2 standard to" +#~ msgstr "" +#~ " for diferente do padrão 1003.2, para tornar" + +#~ msgid " match the standard" +#~ msgstr " igual ao padrão" + +#~ msgid " privileged same as -p" +#~ msgstr " privileged o mesmo que -p" + +#~ msgid " verbose same as -v" +#~ msgstr " verbose o mesmo que -v" + +#~ msgid " vi use a vi-style line editing interface" +#~ msgstr "" +#~ " vi usar interface de edição de linha estilo vi" + +#~ msgid " xtrace same as -x" +#~ msgstr " xtrace o mesmo que -x" + +#~ msgid "" +#~ " -p Turned on whenever the real and effective user ids do not match." +#~ msgstr "" +#~ " -p Habilitado sempre que o usuário real e efetivo forem diferentes." + +#~ msgid " Disables processing of the $ENV file and importing of shell" +#~ msgstr "" +#~ " Desabilita o processamento do arquivo $ENV e importação das " +#~ "funções" + +#~ msgid "" +#~ " functions. Turning this option off causes the effective uid and" +#~ msgstr "" +#~ " da `shell'. Desabilitando esta opção faz com que o `uid' e `gid'" + +#~ msgid " gid to be set to the real uid and gid." +#~ msgstr " efetivos sejam feitos o mesmo que o `uid' e `gid' reais." + +#~ msgid " -t Exit after reading and executing one command." +#~ msgstr " -t Sair após ler e executar um comando." + +#~ msgid " -u Treat unset variables as an error when substituting." +#~ msgstr "" +#~ " -u Tratar como erro as variáveis não inicializadas na substituição." + +#~ msgid " -v Print shell input lines as they are read." +#~ msgstr " -v Exibir as linhas de entrada da `shell' ao lê-las." + +#~ msgid " -x Print commands and their arguments as they are executed." +#~ msgstr " -x Exibir os comandos e seus argumentos ao executá-los." + +#~ msgid " -B the shell will perform brace expansion" +#~ msgstr " -B a `shell' irá realizar a expansão das chaves {}" + +#~ msgid " -H Enable ! style history substitution. This flag is on" +#~ msgstr " -H Habilitar o estilo ! para substituição do histórico." + +#~ msgid " by default." +#~ msgstr " Esta opção está ativa por padrão." + +#~ msgid " -C If set, disallow existing regular files to be overwritten" +#~ msgstr " -C Não permite que arquivos regulares existentes sejam" + +#~ msgid " by redirection of output." +#~ msgstr " sobrescritos pelo redirecionamento da saída." + +#~ msgid " -P If set, do not follow symbolic links when executing commands" +#~ msgstr " -P Não seguir os vínculos simbólicos ao executar comandos," + +#~ msgid " such as cd which change the current directory." +#~ msgstr " tais como `cd', que troca o diretório atual." + +#~ msgid "Using + rather than - causes these flags to be turned off. The" +#~ msgstr "Usando + em vez de - faz com que as opções sejam desabilitadas. As" + +#~ msgid "flags can also be used upon invocation of the shell. The current" +#~ msgstr "" +#~ "opções também podem ser usadas na chamada da `shell'. O conjunto atual" + +#~ msgid "" +#~ "set of flags may be found in $-. The remaining n ARGs are positional" +#~ msgstr "" +#~ "de opções pode ser encontrado em $-. Os n ARGs restantes são parâmetros" + +#~ msgid "parameters and are assigned, in order, to $1, $2, .. $n. If no" +#~ msgstr "posicionais e são atribuídos, em ordem, a $1, $2, .. $n. Se nenhum" + +#~ msgid "ARGs are given, all shell variables are printed." +#~ msgstr "ARG for fornecido, todas as variáveis da `shell' são exibidas." + +#~ msgid "For each NAME, remove the corresponding variable or function. Given" +#~ msgstr "" +#~ "Para cada NOME, remove a variável ou a função correspondente. Usando-se a" + +#~ msgid "the `-v', unset will only act on variables. Given the `-f' flag," +#~ msgstr "" +#~ "opção `-v', `unset' atua somente nas variáveis. Usando-se a opção `-f'" + +#~ msgid "unset will only act on functions. With neither flag, unset first" +#~ msgstr "`unset' atua somente nas funções. Sem nenhuma opção, inicialmente" + +#~ msgid "tries to unset a variable, and if that fails, then tries to unset a" +#~ msgstr "`unset' tenta remover uma variável e, se falhar, tenta remover uma" + +#~ msgid "" +#~ "function. Some variables (such as PATH and IFS) cannot be unset; also" +#~ msgstr "" +#~ "função. Algumas variáveis (como PATH e IFS) não podem ser removidas." + +#~ msgid "see readonly." +#~ msgstr "Veja também o comando `readonly'." + +#~ msgid "NAMEs are marked for automatic export to the environment of" +#~ msgstr "" +#~ "NOMEs são marcados para serem automaticamente exportados para o ambiente" + +#~ msgid "subsequently executed commands. If the -f option is given," +#~ msgstr "dos comando executados a seguir. Se a opção -f for fornecida," + +#~ msgid "the NAMEs refer to functions. If no NAMEs are given, or if `-p'" +#~ msgstr "" +#~ "os NOMEs se referem a funções. Se nenhum nome for fornecido, ou se `-p'" + +#~ msgid "is given, a list of all names that are exported in this shell is" +#~ msgstr "" +#~ "for usado, uma lista com todos os nomes que são exportados nesta `shell' é" + +#~ msgid "printed. An argument of `-n' says to remove the export property" +#~ msgstr "" +#~ "exibida. O argumento `-n' faz remover a propriedade de exportação dos" + +#~ msgid "from subsequent NAMEs. An argument of `--' disables further option" +#~ msgstr "NOMEs subseqüentes. O argumento `--' desabilita o processamento de" + +#~ msgid "processing." +#~ msgstr "opções posteriores." + +#~ msgid "" +#~ "The given NAMEs are marked readonly and the values of these NAMEs may" +#~ msgstr "" +#~ "Os NOMEs são marcados como somente para leitura, e os valores destes" + +#~ msgid "not be changed by subsequent assignment. If the -f option is given," +#~ msgstr "" +#~ "NOMEs não poderão ser alterados por novas atribuições. Se a opção -f for" + +#~ msgid "then functions corresponding to the NAMEs are so marked. If no" +#~ msgstr "" +#~ "fornecida, as funções correspondentes a NOMEs também são marcadas. Sem" + +#~ msgid "" +#~ "arguments are given, or if `-p' is given, a list of all readonly names" +#~ msgstr "" +#~ "nenhum argumento, ou se `-p' for usado, uma lista com todos os nomes" + +#~ msgid "" +#~ "is printed. An argument of `-n' says to remove the readonly property" +#~ msgstr "" +#~ "somente para leitura é exibida. O argumento `-n' remove a propriedade" + +#~ msgid "from subsequent NAMEs. The `-a' option means to treat each NAME as" +#~ msgstr "somente para leitura. A opção `-a' faz tratar cada NOME como uma" + +#~ msgid "an array variable. An argument of `--' disables further option" +#~ msgstr "" +#~ "variável tipo matriz. Um argumento `--' desabilita o processamento de" + +#~ msgid "not given, it is assumed to be 1." +#~ msgstr "Se N não for especificado, o valor 1 é assumido ($2 vira $1 ...)." + +#~ msgid "Read and execute commands from FILENAME and return. The pathnames" +#~ msgstr "Ler e executar os comandos em ARQUIVO e retornar. Os caminhos em" + +#~ msgid "in $PATH are used to find the directory containing FILENAME." +#~ msgstr "$PATH são usados para encontrar o diretório contendo o ARQUIVO." + +#~ msgid "Suspend the execution of this shell until it receives a SIGCONT" +#~ msgstr "" +#~ "Suspender a execução desta `shell' até que o sinal SIGCONT seja recebido." + +#~ msgid "signal. The `-f' if specified says not to complain about this" +#~ msgstr "Se a opção `-f' for especificada indica para não reclamar sobre ser" + +#~ msgid "being a login shell if it is; just suspend anyway." +#~ msgstr "" +#~ "uma `shell de login', caso seja; simplesmente suspender de qualquer forma." + +#~ msgid "Exits with a status of 0 (trueness) or 1 (falseness) depending on" +#~ msgstr "" +#~ "Termina com status 0 (verdadeiro) ou 1 (falso) conforme EXPR for avaliada." + +#~ msgid "the evaluation of EXPR. Expressions may be unary or binary. Unary" +#~ msgstr "" +#~ "As expressões podem ser unárias ou binárias. As expressões unárias são" + +#~ msgid "expressions are often used to examine the status of a file. There" +#~ msgstr "" +#~ "muito usadas para examinar o status de um arquivo. Existem, também," + +#~ msgid "are string operators as well, and numeric comparison operators." +#~ msgstr "" +#~ "operadores para cadeias de caracteres (strings) e comparações numéricas." + +#~ msgid "File operators:" +#~ msgstr "Operadores para arquivos:" + +#~ msgid " -b FILE True if file is block special." +#~ msgstr " -b ARQUIVO Verdade se o arquivo for do tipo especial de bloco." + +#~ msgid " -c FILE True if file is character special." +#~ msgstr "" +#~ " -c ARQUIVO Verdade se o arquivo for do tipo especial de caracter." + +#~ msgid " -d FILE True if file is a directory." +#~ msgstr " -d ARQUIVO Verdade se o arquivo for um diretório." + +#~ msgid " -e FILE True if file exists." +#~ msgstr " -e ARQUIVO Verdade se o arquivo existir." + +#~ msgid " -f FILE True if file exists and is a regular file." +#~ msgstr " -f ARQUIVO Verdade se o arquivo existir e for do tipo regular." + +#~ msgid " -g FILE True if file is set-group-id." +#~ msgstr "" +#~ " -g ARQUIVO Verdade se o arquivo tiver o bit \"set-group-id\" ativo." + +#~ msgid " -h FILE True if file is a symbolic link. Use \"-L\"." +#~ msgstr "" +#~ " -h ARQUIVO Verdade se arquivo for um vínculo simbólico. Usar \"-L\"." + +#~ msgid " -L FILE True if file is a symbolic link." +#~ msgstr " -L ARQUIVO Verdade se o arquivo for um vínculo simbólico." + +#~ msgid " -k FILE True if file has its \"sticky\" bit set." +#~ msgstr " -k ARQUIVO Verdade se o arquivo tiver o bit \"sticky\" ativo." + +#~ msgid " -p FILE True if file is a named pipe." +#~ msgstr " -p ARQUIVO Verdade se o arquivo for um `named pipe'." + +#~ msgid " -r FILE True if file is readable by you." +#~ msgstr "" +#~ " -r ARQUIVO Verdade se você tiver autorização para ler o arquivo." + +#~ msgid " -s FILE True if file exists and is not empty." +#~ msgstr " -s ARQUIVO Verdade se o arquivo existir e não estiver vazio." + +#~ msgid " -S FILE True if file is a socket." +#~ msgstr " -S ARQUIVO Verdade se o arquivo for um soquete." + +#~ msgid " -t FD True if FD is opened on a terminal." +#~ msgstr "" +#~ " -t FD Verdade se o descritor de arquivo (FD) estiver aberto\n" +#~ " em um terminal." + +#~ msgid " -u FILE True if the file is set-user-id." +#~ msgstr "" +#~ " -u ARQUIVO Verdade se o arquivo tiver o bit \"set-user-id\" ativo." + +#~ msgid " -w FILE True if the file is writable by you." +#~ msgstr "" +#~ " -w ARQUIVO Verdade se você tiver autorização para escrever no " +#~ "arquivo." + +#~ msgid " -x FILE True if the file is executable by you." +#~ msgstr "" +#~ " -x ARQUIVO Verdade se você tiver autorização para executar o arquivo." + +#~ msgid " -O FILE True if the file is effectively owned by you." +#~ msgstr "" +#~ " -O ARQUIVO Verdade se o arquivo pertencer ao seu usuário efetivo." + +#~ msgid "" +#~ " -G FILE True if the file is effectively owned by your group." +#~ msgstr "" +#~ " -G ARQUIVO Verdade se o arquivo pertencer ao seu grupo efetivo." + +#~ msgid " FILE1 -nt FILE2 True if file1 is newer than (according to" +#~ msgstr " ARQ1 -nt ARQ2 Verdade se ARQ1 for mais novo (conforme a data" + +#~ msgid " modification date) file2." +#~ msgstr " de modificação) do que ARQ2." + +#~ msgid " FILE1 -ot FILE2 True if file1 is older than file2." +#~ msgstr " ARQ1 -ot ARQ2 Verdade se ARQ1 for mais antigo que ARQ2." + +#~ msgid " FILE1 -ef FILE2 True if file1 is a hard link to file2." +#~ msgstr "" +#~ " ARQ1 -ef ARQ2 Verdade se ARQ1 for um vínculo direto para ARQ2.\n" +#~ " (mesma unidade e mesmo número do inode)" + +#~ msgid "String operators:" +#~ msgstr "Operadores para cadeias de caracteres (strings):" + +#~ msgid " -z STRING True if string is empty." +#~ msgstr " -z STRING Verdade se STRING estiver vazia." + +#~ msgid " -n STRING" +#~ msgstr " -n STRING" + +#~ msgid " STRING True if string is not empty." +#~ msgstr " STRING Verdade se STRING não estiver vazia." + +#~ msgid " STRING1 = STRING2" +#~ msgstr " STRING1 = STRING2" + +#~ msgid " True if the strings are equal." +#~ msgstr " Verdade se STRING1 for idêntica à STRING2." + +#~ msgid " STRING1 != STRING2" +#~ msgstr " STRING1 != STRING2" + +#~ msgid " True if the strings are not equal." +#~ msgstr " Verdade se STRING1 não for idêntica à STRING2." + +#~ msgid " STRING1 < STRING2" +#~ msgstr " STRING1 < STRING2" + +#~ msgid "" +#~ " True if STRING1 sorts before STRING2 lexicographically" +#~ msgstr "" +#~ " Verdade se STRING1 tiver ordenação anterior à STRING2." + +#~ msgid " STRING1 > STRING2" +#~ msgstr " STRING1 > STRING2" + +#~ msgid "" +#~ " True if STRING1 sorts after STRING2 lexicographically" +#~ msgstr "" +#~ " Verdade se STRING1 tiver ordenação posterior à STRING2." + +#~ msgid "Other operators:" +#~ msgstr "Outros operadores:" + +#~ msgid " ! EXPR True if expr is false." +#~ msgstr " ! EXPR Verdade se a expressão EXPR for falsa." + +#~ msgid " EXPR1 -a EXPR2 True if both expr1 AND expr2 are true." +#~ msgstr " EXPR1 -a EXPR2 Verdade se EXPR1 `E' EXPR2 forem verdadeiras." + +#~ msgid " EXPR1 -o EXPR2 True if either expr1 OR expr2 is true." +#~ msgstr " EXPR1 -o EXPR2 Verdade se EXPR1 `OU' EXPR2 for verdadeira." + +#~ msgid " arg1 OP arg2 Arithmetic tests. OP is one of -eq, -ne," +#~ msgstr " arg1 OP arg2 Testes aritméticos. OP pode ser -eq, -ne," + +#~ msgid " -lt, -le, -gt, or -ge." +#~ msgstr " -lt, -le, -gt, ou -ge." + +#~ msgid "Arithmetic binary operators return true if ARG1 is equal, not-equal," +#~ msgstr "" +#~ "Operadores aritméticos binários retornam verdadeiro se ARG1 for igual," + +#~ msgid "" +#~ "less-than, less-than-or-equal, greater-than, or greater-than-or-equal" +#~ msgstr "diferente, menor, menor ou igual, maior, ou maior ou igual do que" + +#~ msgid "than ARG2." +#~ msgstr "ARG2, respectivamente." + +#~ msgid "This is a synonym for the \"test\" builtin, but the last" +#~ msgstr "É um sinônimo para o comando interno \"test\", mas o último" + +#~ msgid "the shell." +#~ msgstr "executados por esta `shell'." + +#~ msgid "The command ARG is to be read and executed when the shell receives" +#~ msgstr "" +#~ "O comando em ARG é para ser lido e executado quando a `shell' receber o(s)" + +#~ msgid "signal(s) SIGNAL_SPEC. If ARG is absent all specified signals are" +#~ msgstr "" +#~ "sinal(is) SINAL-ESPEC. Se ARG for omitido, todos os sinais especificados" + +#~ msgid "reset to their original values. If ARG is the null string each" +#~ msgstr "" +#~ "retornam aos seus valores originais. Se ARG for uma string nula, cada" + +#~ msgid "SIGNAL_SPEC is ignored by the shell and by the commands it invokes." +#~ msgstr "" +#~ "SINAL-ESPEC é ignorado pela `shell' e pelos comandos chamados por ela." + +#~ msgid "If SIGNAL_SPEC is EXIT (0) the command ARG is executed on exit from" +#~ msgstr "" +#~ "Se SINAL-ESPEC for EXIT (0) o comando em ARG é executado na saída da" + +#~ msgid "the shell. If SIGNAL_SPEC is DEBUG, ARG is executed after every" +#~ msgstr "" +#~ "`shell'. Se SINAL-ESPEC for DEBUG, o comando em ARG é executado após cada" + +#~ msgid "command. If ARG is `-p' then the trap commands associated with" +#~ msgstr "" +#~ "comando. Se ARG for `-p' então os comandos de captura associados com cada" + +#~ msgid "each SIGNAL_SPEC are displayed. If no arguments are supplied or if" +#~ msgstr "SINAL-ESPEC são exibidos. Se nenhum argumento for fornecido, ou se" + +#~ msgid "only `-p' is given, trap prints the list of commands associated with" +#~ msgstr "" +#~ "somente `-p' for fornecido, é exibida a lista dos comandos associados" + +#~ msgid "" +#~ "each signal number. SIGNAL_SPEC is either a signal name in " +#~ msgstr "" +#~ "com cada número de sinal. SINAL-ESPEC é um nome de sinal em ou" + +#~ msgid "" +#~ "or a signal number. `trap -l' prints a list of signal names and their" +#~ msgstr "" +#~ "um número de sinal. `trap -l' exibe a lista de nomes de sinais com seus" + +#~ msgid "corresponding numbers. Note that a signal can be sent to the shell" +#~ msgstr "" +#~ "números correspondentes. Note que o sinal pode ser enviado para a `shell'" + +#~ msgid "with \"kill -signal $$\"." +#~ msgstr "através do comando \"kill -SINAL $$\"." + +#~ msgid "For each NAME, indicate how it would be interpreted if used as a" +#~ msgstr "Para cada NOME, indica como este deve ser interpretado caso seja" + +#~ msgid "If the -t option is used, returns a single word which is one of" +#~ msgstr "" +#~ "Se a opção -t for fornecida, `type' retorna uma única palavra dentre" + +#~ msgid "" +#~ "`alias', `keyword', `function', `builtin', `file' or `', if NAME is an" +#~ msgstr "" +#~ "`alias', `keyword', `function', `builtin', `file' ou `', se NOME for um" + +#~ msgid "" +#~ "alias, shell reserved word, shell function, shell builtin, disk file," +#~ msgstr "" +#~ "alias, uma palavra reservada, função ou comando interno da shell, um " +#~ "arquivo" + +#~ msgid "or unfound, respectively." +#~ msgstr "em disco, ou não for encontrado, respectivamente." + +#~ msgid "If the -p flag is used, either returns the name of the disk file" +#~ msgstr "Se a opção -p for fornecida, retorna o nome do arquivo em disco que" + +#~ msgid "that would be executed, or nothing if -t would not return `file'." +#~ msgstr "deve ser executado, ou nada, caso -t não retorne `file'." + +#~ msgid "If the -a flag is used, displays all of the places that contain an" +#~ msgstr "Se a opção -a for fornecida, exibe todos os locais que contém um" + +#~ msgid "" +#~ "executable named `file'. This includes aliases and functions, if and" +#~ msgstr "" +#~ "arquivo executável chamado `ARQUIVO', incluindo os aliases e funções," + +#~ msgid "only if the -p flag is not also used." +#~ msgstr "mas somente se a opção -p não for fornecida conjuntamente." + +#~ msgid "Type accepts -all, -path, and -type in place of -a, -p, and -t," +#~ msgstr "O comando `type' aceita -all, -path, e -type no lugar de" + +#~ msgid "respectively." +#~ msgstr "-a, -p, and -t, respectivamente." + +#~ msgid "Ulimit provides control over the resources available to processes" +#~ msgstr "" +#~ "Ulimit estabelece controle sobre os recursos disponíveis para os processos" + +#~ msgid "started by the shell, on systems that allow such control. If an" +#~ msgstr "" +#~ "iniciados por esta shell, em sistemas que permitem estes controles. Se uma" + +#~ msgid "option is given, it is interpreted as follows:" +#~ msgstr "opção for fornecida, é interpretada como mostrado a seguir:" + +#~ msgid " -S\tuse the `soft' resource limit" +#~ msgstr " -S\tutilizar os limites correntes (`soft') dos recursos" + +#~ msgid " -H\tuse the `hard' resource limit" +#~ msgstr " -H\tutilizar os limites absolutos (`hard') dos recursos" + +#~ msgid " -a\tall current limits are reported" +#~ msgstr " -a\ttodos os limites correntes são informados" + +#~ msgid " -c\tthe maximum size of core files created" +#~ msgstr "" +#~ " -c\to tamanho máximo para os arquivos de imagem do núcleo criados" + +#~ msgid " -d\tthe maximum size of a process's data segment" +#~ msgstr " -d\to tamanho máximo do segmento de dados de um processo" + +#~ msgid " -m\tthe maximum resident set size" +#~ msgstr "" +#~ " -m\to tamanho máximo do conjunto de processos residentes em memória" + +#~ msgid " -s\tthe maximum stack size" +#~ msgstr " -s\to tamanho máximo da pilha" + +#~ msgid " -t\tthe maximum amount of cpu time in seconds" +#~ msgstr " -t\ta quantidade máxima de tempo de CPU em segundos" + +#~ msgid " -f\tthe maximum size of files created by the shell" +#~ msgstr " -f\to tamanho máximo dos arquivos criados pela `shell'" + +#~ msgid " -p\tthe pipe buffer size" +#~ msgstr " -p\to tamanho da área intermediária (buffer) do `pipe'" + +#~ msgid " -n\tthe maximum number of open file descriptors" +#~ msgstr " -n\to número máximo de descritores de arquivos abertos" + +#~ msgid " -u\tthe maximum number of user processes" +#~ msgstr " -u\to número máximo de processos do usuário" + +#~ msgid " -v\tthe size of virtual memory" +#~ msgstr " -v\to tamanho da memória virtual" + +#~ msgid "If LIMIT is given, it is the new value of the specified resource." +#~ msgstr "" +#~ "Se LIMITE for fornecido, torna-se o novo valor do recurso especificado." + +#~ msgid "Otherwise, the current value of the specified resource is printed." +#~ msgstr "Senão, o valor atual do recurso especificado é exibido." + +#~ msgid "If no option is given, then -f is assumed. Values are in 1k" +#~ msgstr "" +#~ "Se nenhuma opção for fornecida, então -f é assumido. Os valores são em" + +#~ msgid "increments, except for -t, which is in seconds, -p, which is in" +#~ msgstr "incrementos de 1k, exceto para -t, que é em segundos, -p, que é em" + +#~ msgid "increments of 512 bytes, and -u, which is an unscaled number of" +#~ msgstr "incrementos de 512 bytes, e -u, que é o número cardinal de" + +#~ msgid "processes." +#~ msgstr "processos." + +#~ msgid "" +#~ "The user file-creation mask is set to MODE. If MODE is omitted, or if" +#~ msgstr "" +#~ "MODO é atribuído à máscara de criação de arquivos do usuário. Se omitido," + +#~ msgid "" +#~ "`-S' is supplied, the current value of the mask is printed. The `-S'" +#~ msgstr "" +#~ "ou se `-S' for especificado, a máscara em uso é exibida. A opção `-S'" + +#~ msgid "" +#~ "option makes the output symbolic; otherwise an octal number is output." +#~ msgstr "exibe símbolos na saída; sem esta opção um número octal é exibido." + +#~ msgid "If MODE begins with a digit, it is interpreted as an octal number," +#~ msgstr "" +#~ "Se MODO começar por um dígito, é interpretado como sendo um número octal," + +#~ msgid "" +#~ "otherwise it is a symbolic mode string like that accepted by chmod(1)." +#~ msgstr "" +#~ "senão devem ser caracteres simbólicos, como os aceitos por chmod(1)." + +#~ msgid "" +#~ "Wait for the specified process and report its termination status. If" +#~ msgstr "" +#~ "Aguardar pelo processo especificado e informar seu status de término. Se N" + +#~ msgid "N is not given, all currently active child processes are waited for," +#~ msgstr "" +#~ "não for especificado, todos os processos filhos ativos são aguardados," + +#~ msgid "and the return code is zero. N may be a process ID or a job" +#~ msgstr "e o código de retorno é zero. N pode ser o ID de um processo ou a" + +#~ msgid "specification; if a job spec is given, all processes in the job's" +#~ msgstr "" +#~ "especificação de um trabalho; Se for a especificação de um trabalho, todos" + +#~ msgid "pipeline are waited for." +#~ msgstr "os processos presentes no `pipeline' do trabalho são aguardados." + +#~ msgid "and the return code is zero. N is a process ID; if it is not given," +#~ msgstr "" +#~ "e o código de retorno é zero. N é o ID de um processo; se N não for" + +#~ msgid "all child processes of the shell are waited for." +#~ msgstr "especificado, todos os processos filhos da `shell' são aguardados." + +#~ msgid "The `for' loop executes a sequence of commands for each member in a" +#~ msgstr "" +#~ "O laço `for' executa a seqüência de comandos para cada membro na lista de" + +#~ msgid "" +#~ "list of items. If `in WORDS ...;' is not present, then `in \"$@\"' is" +#~ msgstr "" +#~ "items. Se `in PALAVRAS ...;' não estiver presente, então `in \"$@\"'" + +#~ msgid "" +#~ "assumed. For each element in WORDS, NAME is set to that element, and" +#~ msgstr "" +#~ "(parâmetros posicionais) é assumido. Para cada elemento em PALAVRAS, NOME" + +#~ msgid "the COMMANDS are executed." +#~ msgstr "assume seu valor, e os COMANDOS são executados." + +#~ msgid "The WORDS are expanded, generating a list of words. The" +#~ msgstr "" +#~ "As palavras são expandidas, gerando uma lista de palavras. O conjunto" + +#~ msgid "set of expanded words is printed on the standard error, each" +#~ msgstr "" +#~ "de palavras expandidas é enviado para a saída de erro padrão, cada uma" + +#~ msgid "preceded by a number. If `in WORDS' is not present, `in \"$@\"'" +#~ msgstr "" +#~ "precedida por um número. Se `in PALAVRAS' for omitido, `in \"$@\"' é" + +#~ msgid "is assumed. The PS3 prompt is then displayed and a line read" +#~ msgstr "assumido. Em seguida o prompt PS3 é exibido, e uma linha é lida da" + +#~ msgid "from the standard input. If the line consists of the number" +#~ msgstr "" +#~ "entrada padrão. Se a linha consistir do número correspondente ao número" + +#~ msgid "corresponding to one of the displayed words, then NAME is set" +#~ msgstr "de uma das palavras exibidas, então NOME é atribuído para esta" + +#~ msgid "to that word. If the line is empty, WORDS and the prompt are" +#~ msgstr "" +#~ "PALAVRA. Se a linha estiver vazia, PALAVRAS e o prompt são exibidos" + +#~ msgid "redisplayed. If EOF is read, the command completes. Any other" +#~ msgstr "" +#~ "novamente. Se EOF for lido, o comando termina. Qualquer outro valor" + +#~ msgid "value read causes NAME to be set to null. The line read is saved" +#~ msgstr "lido faz com que NOME seja tornado nulo. A linha lida é salva" + +#~ msgid "in the variable REPLY. COMMANDS are executed after each selection" +#~ msgstr "na variável REPLY. COMANDOS são executados após cada seleção" + +#~ msgid "until a break or return command is executed." +#~ msgstr "até que o comando `break' ou `return' seja executado." + +#~ msgid "`|' is used to separate multiple patterns." +#~ msgstr "" +#~ "PALAVRA e PADRÃO. O caracter `|' é usado para separar múltiplos padrões." + +#~ msgid "" +#~ "The if COMMANDS are executed. If the exit status is zero, then the then" +#~ msgstr "" +#~ "Os COMANDOS `if' são executados. Se os status de saída for zero, então os" + +#~ msgid "" +#~ "COMMANDS are executed. Otherwise, each of the elif COMMANDS are executed" +#~ msgstr "" +#~ "COMANDOS `then' são executados, senão, os COMANDOS `elif' são executados " +#~ "em" + +#~ msgid "" +#~ "in turn, and if the exit status is zero, the corresponding then COMMANDS" +#~ msgstr "" +#~ "seqüência e, se o status de saída for zero, os COMANDOS `then' associados" + +#~ msgid "" +#~ "are executed and the if command completes. Otherwise, the else COMMANDS" +#~ msgstr "" +#~ "são executados e o `if' termina. Senão, os COMANDOS da cláusula `else'" + +#~ msgid "" +#~ "are executed, if present. The exit status is the exit status of the last" +#~ msgstr "" +#~ "são executados, se houver. O status de saída é o status de saída do" + +#~ msgid "command executed, or zero if no condition tested true." +#~ msgstr "" +#~ "último comando executado, ou zero, se nenhuma condição for verdadeira." + +#~ msgid "`while' COMMANDS has an exit status of zero." +#~ msgstr "COMANDOS `while' tiver um status de saída igual a zero." + +#~ msgid "`until' COMMANDS has an exit status which is not zero." +#~ msgstr "COMANDOS `until' tiver um status de saída diferente de zero." + +#~ msgid "Create a simple command invoked by NAME which runs COMMANDS." +#~ msgstr "Cria um comando chamado NOME o qual executa COMANDOS." + +#~ msgid "Arguments on the command line along with NAME are passed to the" +#~ msgstr "Os argumentos na linha de comando juntamente com NOME são passados" + +#~ msgid "function as $0 .. $n." +#~ msgstr "para a função como $0 .. $n." + +#~ msgid "entire set of commands." +#~ msgstr "redirecionar todo um conjunto de comandos." + +#~ msgid "This is similar to the `fg' command. Resume a stopped or background" +#~ msgstr "" +#~ "Semelhante ao comando `fg'. Prossegue a execução de um trabalho parado ou" + +#~ msgid "job. If you specifiy DIGITS, then that job is used. If you specify" +#~ msgstr "" +#~ "em segundo plano. Se DÍGITOS for especificado, então este trabalho é " +#~ "usado." + +#~ msgid "" +#~ "WORD, then the job whose name begins with WORD is used. Following the" +#~ msgstr "" +#~ "Se for especificado PALAVRA, o trabalho começado por PALAVRA é usado." + +#~ msgid "job specification with a `&' places the job in the background." +#~ msgstr "" +#~ "Seguindo-se a especificação por um `&' põe o trabalho em segundo plano." + +#~ msgid "BASH_VERSION The version numbers of this Bash." +#~ msgstr "BASH_VERSION Os números da versão desta `bash'." + +#~ msgid "CDPATH A colon separated list of directories to search" +#~ msgstr "CDPATH Uma lista, separada por dois pontos, de diretórios" + +#~ msgid "\t\twhen the argument to `cd' is not found in the current" +#~ msgstr "\t\ta serem pesquisados quando o argumento para `cd' não for" + +#~ msgid "\t\tdirectory." +#~ msgstr "\t\tencontrado no diretório atual." + +#~ msgid "" +#~ "HISTFILE The name of the file where your command history is stored." +#~ msgstr "" +#~ "HISTFILE O nome do arquivo onde o histórico de comandos é " +#~ "armazenado." + +#~ msgid "HISTFILESIZE The maximum number of lines this file can contain." +#~ msgstr "" +#~ "HISTFILESIZE O número máximo de linhas que este arquivo pode conter." + +#~ msgid "HISTSIZE The maximum number of history lines that a running" +#~ msgstr "HISTSIZE O número máximo de linhas do histórico que uma" + +#~ msgid "\t\tshell can access." +#~ msgstr "\t\t`shell' em execução pode acessar." + +#~ msgid "HOME The complete pathname to your login directory." +#~ msgstr "" +#~ "HOME O nome completo do caminho do seu diretório de login." + +#~ msgid "" +#~ "HOSTTYPE The type of CPU this version of Bash is running under." +#~ msgstr "" +#~ "HOSTTYPE O tipo de CPU sob a qual esta `bash' está executando." + +#~ msgid "" +#~ "IGNOREEOF Controls the action of the shell on receipt of an EOF" +#~ msgstr "IGNOREEOF Controla a ação da `shell' ao receber um caracter" + +#~ msgid "\t\tcharacter as the sole input. If set, then the value" +#~ msgstr "\t\tEOF como única entrada. Se estiver ativa, então o valor da" + +#~ msgid "\t\tof it is the number of EOF characters that can be seen" +#~ msgstr "\t\tvariável é o número de caracteres EOF que podem ser recebidos," + +#~ msgid "\t\tin a row on an empty line before the shell will exit" +#~ msgstr "\t\tde forma seguida em uma linha vazia, antes da `shell' terminar" + +#~ msgid "\t\t(default 10). When unset, EOF signifies the end of input." +#~ msgstr "" +#~ "\t\t(padrão 10). Caso contrário, EOF significa o fim da entrada de dados." + +#~ msgid "MAILCHECK\tHow often, in seconds, Bash checks for new mail." +#~ msgstr "" +#~ "MAILCHECK\tFreqüência, em segundos, para a `bash' verificar novo e-mail." + +#~ msgid "MAILPATH\tA colon-separated list of filenames which Bash checks" +#~ msgstr "" +#~ "MAILPATH\tUma lista, separada por dois pontos, de nomes de arquivos," + +#~ msgid "\t\tfor new mail." +#~ msgstr "\t\tnos quais a `bash' vai verificar se existe novo e-mail." + +#~ msgid "OSTYPE\t\tThe version of Unix this version of Bash is running on." +#~ msgstr "OSTYPE\t\tA versão do Unix sob a qual a `bash' está executando." + +#~ msgid "PATH A colon-separated list of directories to search when" +#~ msgstr "" +#~ "PATH Uma lista, separada por dois pontos, de diretórios a" + +#~ msgid "\t\tlooking for commands." +#~ msgstr "\t\tserem pesquisados quando os comandos forem procurados." + +#~ msgid "PROMPT_COMMAND A command to be executed before the printing of each" +#~ msgstr "PROMPT_COMMAND O comando a ser executado antes da exibição de cada" + +#~ msgid "\t\tprimary prompt." +#~ msgstr "\t\tmensagem de prompt primária." + +#~ msgid "PS1 The primary prompt string." +#~ msgstr "PS1 A mensagem primária de prompt exibida." + +#~ msgid "PS2 The secondary prompt string." +#~ msgstr "PS2 A mensagem secundária de prompt exibida." + +#~ msgid "TERM The name of the current terminal type." +#~ msgstr "TERM O nome do tipo de terminal em uso no momento." + +#~ msgid "auto_resume Non-null means a command word appearing on a line by" +#~ msgstr "" +#~ "auto_resume Não nulo significa que um comando aparecendo sozinho em" + +#~ msgid "\t\titself is first looked for in the list of currently" +#~ msgstr "" +#~ "\t\tlinha deve ser procurado primeiro na lista de trabalhos parados." + +#~ msgid "\t\tstopped jobs. If found there, that job is foregrounded." +#~ msgstr "" +#~ "\t\tSe for encontrado na lista, o trabalho vai para o primeiro plano." + +#~ msgid "\t\tA value of `exact' means that the command word must" +#~ msgstr "" +#~ "\t\tO valor `exact' significa que a palavra do comando deve corresponder" + +#~ msgid "\t\texactly match a command in the list of stopped jobs. A" +#~ msgstr "\t\texatamente a um comando da lista de trabalhos parados." + +#~ msgid "\t\tvalue of `substring' means that the command word must" +#~ msgstr "\t\tO valor `substring' significa que a palavra do comando deve" + +#~ msgid "\t\tmatch a substring of the job. Any other value means that" +#~ msgstr "\t\tcorresponder a uma parte do trabalho. Qualquer outro valor" + +#~ msgid "\t\tthe command must be a prefix of a stopped job." +#~ msgstr "" +#~ "\t\tsignifica que o comando deve ser um prefixo de um trabalho parado." + +#~ msgid "command_oriented_history" +#~ msgstr "command_oriented_history" + +#~ msgid "" +#~ " Non-null means to save multiple-line commands together on" +#~ msgstr "" +#~ " Se não for nulo significa salvar comandos com múltiplas" + +#~ msgid " a single history line." +#~ msgstr " linhas, juntas em uma única linha do histórico." + +#~ msgid "histchars Characters controlling history expansion and quick" +#~ msgstr "" +#~ "histchars Caracteres que controlam a expansão do histórico e a" + +#~ msgid "\t\tsubstitution. The first character is the history" +#~ msgstr "\t\tsubstituição rápida. O primeiro caracter é o de substituição" + +#~ msgid "\t\tsubstitution character, usually `!'. The second is" +#~ msgstr "\t\tdo histórico, geralmente o `!'. O segundo caracter é o" + +#~ msgid "\t\tthe `quick substitution' character, usually `^'. The" +#~ msgstr "\t\tde substituição rápida, geralmente o `^'. O terceiro caracter" + +#~ msgid "\t\tthird is the `history comment' character, usually `#'." +#~ msgstr "\t\té o de comentário do histórico, geralmente o `#'." + +#~ msgid "HISTCONTROL\tSet to a value of `ignorespace', it means don't enter" +#~ msgstr "" +#~ "HISTCONTROL\tCom valor igual a `ignorespace', significa não introduzir" + +#~ msgid "\t\tlines which begin with a space or tab on the history" +#~ msgstr "" +#~ "\t\tlinhas que iniciam por espaço ou tabulação na lista de histórico." + +#~ msgid "\t\tlist. Set to a value of `ignoredups', it means don't" +#~ msgstr "\t\tCom valor igual a `ignoredups', significa não introduzir linhas" + +#~ msgid "\t\tenter lines which match the last entered line. Set to" +#~ msgstr "\t\tque correspondam à última linha introduzida. Com valor igual a" + +#~ msgid "\t\t`ignoreboth' means to combine the two options. Unset," +#~ msgstr "\t\t`ignoreboth' significa combinar as duas opções. Remover," + +#~ msgid "\t\tor set to any other value than those above means to save" +#~ msgstr "" +#~ "\t\tou atribuir algum outro valor que não os acima, significa salvar" + +#~ msgid "\t\tall lines on the history list." +#~ msgstr "\t\ttodas as linhas na lista de histórico." + +#~ msgid "Toggle the values of variables controlling optional behavior." +#~ msgstr "" +#~ "Alterna os valores das variáveis controladoras de comportamentos " +#~ "opcionais." + +#~ msgid "The -s flag means to enable (set) each OPTNAME; the -u flag" +#~ msgstr "A opção -s ativa (set) cada NOME-OPÇÃO; a opção -u desativa cada" + +#~ msgid "unsets each OPTNAME. The -q flag suppresses output; the exit" +#~ msgstr "" +#~ "NOME-OPÇÃO. A opção -q suprime a saída; o status de término indica se" + +#~ msgid "status indicates whether each OPTNAME is set or unset. The -o" +#~ msgstr "cada NOME-OPÇÃO foi ativado ou desativado A opção -o restringe" + +#~ msgid "option restricts the OPTNAMEs to those defined for use with" +#~ msgstr "NOME-OPÇÃO para aqueles definidos para uso através de `set -o'." + +#~ msgid "`set -o'. With no options, or with the -p option, a list of all" +#~ msgstr "Sem nenhuma opção, ou com a opção -p, uma lista com todas as" + +#~ msgid "settable options is displayed, with an indication of whether or" +#~ msgstr "" +#~ "opções que podem ser ativadas é exibida, com indicação sobre se cada uma" + +#~ msgid "not each is set." +#~ msgstr "das opções está ativa ou não." diff --git a/po/ro.gmo b/po/ro.gmo new file mode 100644 index 0000000000000000000000000000000000000000..456ebc489ff31d8bdcfcaaa8c618c8672384ba5e GIT binary patch literal 9699 zc-oa%Yiu0Xb-r=jB&KCiq)1ufL%e*2WUZx0*_I_zc1%fB%vgMwq-@9RS{lyYU0!Q; zW-<>xlr(*$MhetTf2B=;HYgGULDK{X;G#tZ|EbfuKvNWPP_%)Yrj0iRf~FPxqXkm8 zVEUbV?#wP9k>!P!XYc#G&-wI&*1JD1@c9hBUHCq9w-B#@UjC3UpQHB*(F%GD^dRU7 z(Bq(!plzVf-OJ|!&<}&YWa%rQ?VxYk{cqcG^8q1xKnD--z0;saK%WKerh5+XzTdX= zE1(a8{`moZ=RZL^L7VR5_dk3e^EC;If8t~K^FF!{w1xNsZ3gu${S@fE#HT&?1v~#$ zP+Tqk%&z|>=slp{vGh&Q!=OI`CDr^C6si*MJILb?9OQeNK|cuE1KI>S1bP(o)IpZ_ z$%8EK^L9Q3?Ew88s095Z&<}wAjlJ)UgZ%yv5AypzvE!fFefKmoABUQm@AhVXzqgs+ z8)@cy&e{3Ppoc)0oB2M~%zE5vW_~}{%y#%9=y}oy=rrg%_T1x#_}-@uvHnVj_?{T_ zS46sB-_gSRM?mifeYAz&z0$(^zt+O~se%rH{zeP?&(~Ynp5Mlw z0nmT8_uSRW`ZxmG3o1b;K+m_bK7YBD@BLCM-}}d{%+G7BeEvJF>}Nj$JwbA|GM__- z*{-J#^S+PZPe16=VLrccnEmlZ(5FGa4EiwW{~TsMPeQ2=fKIhB|J63@cb0ykjnBW_ z#(e!n8}t9YHa`DO8|&o&m>UJXzn$g0)XwrOSXyjn|9PRE_4Q&q>*pKoEZ2A2`Mn>5 z{sQQKwX^-+X=i`9?+Bl7Kf>>i9bvy*wBzfbXDA*)CqZ8aeI5aJ*Zu4_&QaFa`cZ!O z#iM-wYe!k`Zyja+-?Fsj7;*{u(J{^w&mH4?e(f0R>vxZ_{IA)4e}9bcxdl2%{C2S3 z9_(O#7CP9EUg}`Kd%1(pz1G2eeZPbK_9q>j7yhq<<=^h$xM=C*_1;d_)2U8A_gE+2 zJ8S1vC*S*tPPYGVb+UcFX!pHr$FFv>o&MVHd&A!UFLwTIJO7S7_n|KKF9|wM`L~Pb z%U$djpYCEm{(Kkn@uznGYh7&rf9PWU)$ICDyZF7kyV-x+yIEhyyZQY|&=JbJ-E60z zoAbzTcC*~S)6M$-Qa9`AoA#b>b#vbR+iv#vAA|l9#l>;v=l74ZzkTyKpMTxXe-G3J z{g319p9?)aziH`9mi}Q6^Zh41EYDx{us+}HVLSa>5BtG?_wYS!lJ#;<^1DUJa>bJO z{efh8UzO~~uY;Z@zU{f5Ue@2^y{zZiUYpN)Z9ePedp`^M5Z!0jzuU|D_+c;e`R~2# zw?FG;yFSpz`aTP~0Qz(vzx&lb*2@q2*v@bFu|E6yna{`inV%>6+0U=^^ZFYUVW$FEvQa*TIaGmi4`$gl2;^G(W?^Lj#EmQ8t zHxe8dSM2(6ODT5A-#$t;POuMCJWbej^7Re-oAMIH0L7y(IBuR4oL4?$_uOac2}`L4 zQJi13;~P{1jpG#tV;MxU5Xc}*bl^7$IqU|JlBKj7s?vxU7>p;R>-c_Z z)m0Vkvkg1^z%Te|RYlqb7bUgXxXq1}lc)(f7&p$UP35ME%J?a3Pw{e4tvY^5(w=gV z`plU26ID@$+eqQrz~9L@q;_OUN0HotCiv&n`T50V@POA+7G%nEqN*GYqkwch zl8x7Ol%$TAja@HruZ!~w%QA@^SDnP)P@E@6+KLl}b;t9>`Jj@>rSkqofmf!k#UOJ3k4q`xqLPe4bmGVvikI)?`XEO5NU6HVfYOLSeBCbHxtjtrGw!bvk- z4SY>Ht_CF~E0N=qp7$(7ij)Vw#1C*sfy$6kZ%UhMo}6j;z^C=l6WeGh>HrQElFdD#nktS=OtCCDnD`Pm@GS~ zmx!e`MgE&hy9C9;7cwe`**+uni6q%#ee9YG(!@+I*CSz z#f~eo>tnI7=B;P+UlQ*9)Mv)w!;&uBk{}Ed{ReKW=*(vaC!f z)gTd6H4;5K4pcxF8Zw;?iZ)J5R4Xh)YY-k`QvY2X63FG$N{}-|ftNQ~#v?@-Y~Xkq z!Ix6zsv>`a2N6Pz$yLiebAFp4Iw=PUhl5~58+D;QgtH=>zV~w)%?T&6%(c1)Wy}hLoIn1D!BD^7k z9IpS&R?)U>;-wuY?f6d4E=0i#&|+bxRCrpMU?q2f?oN%4H7zPi4~5ydqDzJIX(cW! z2NSYsVSc%AfuzIk!bQ_tpBfuGTNoQJjGdO_;}Z{`E{r`qHinIbMaB8a?i)XQ_L0Ka znZo!Za{SE1L#G}Xdl36BJ8@E2Mi&%&)Ok+G=@dm$J`p&+>&SD8Mr)6!(W>JY;I-w= z(I|Kfr_l1Ca2A%8Q=O2D0qm(Aw6lr5iJnccR)~Vf2}{JIXrUrk!6p?o>Z|0jrrDX< z>AK+KkeOOTxI=*&gb6h7o5{)0bF@E6wJ?HbJUX*9UpRB-;j@KP_09BRSw)3u-wmkA zn~-N#b<)H*Dt1x^Qrj9{yFZfhQ}i%sD#>P!slxIW+7Fi;7rkJ;c?Xu-*3_iH({!oE z3pjHVl7>mG-o6`PBkbLwflKCE(nQUmsVMbQZJSDf!6{;khZOCgkMq0@QY02D_GSoQyC=nmI9<97{Em(gy6#&0^=o>YF;sk=ecmPBR78*(uke z8Z%Ja51;`{0BYqJ%@!%+mC^t<24S@frH$m{9Hm`Q4&@J;-HpLLobIZuqi0+hET!*DnR ze1-?~4cIXMW$@e%0RisBjJiqYL@~AxusZ_i0mhNtA!j9pBC7%EQ*g*?>7{-}OEliV zIh4qVO}Jo091}Dn4?wFU4Q9I$c(8~Xws>zuAbxXPN4p)uS73Jcyn%Z$s;|4Q{Ouau z7K8J|ELy1NKvfq3(5RM^=yR!bs?yi4hCdjuV$cUaf~KLSnMNIGg8^&e@2uX@xa6p7 z_`1P>C<$<)n7nyWZKHgW`x6!u5@Afg>XwTwN~9xu5#xxMx9W5}3qlH% zbS!p+LgvY^0FK6CMzUc8Y;2g>4I0HPH9;QofI*Bl_9-rrhNr?>>}=~CGa}#%&I>6N z57Y=dQ9b~IkyWsn1Hf&qAyf=a+SILgusyoxTE6j)F3jRyar%X6oZXk(u$e>N^n)15 z6Yz4Mxj{nQq;Wr=tWj)~H2E`NW@-RuO5v136e z<4t}88Zn^L>H)REcod75dUe@SbW;?p@c;3B=1z%A@ILegNNTaWrmL&u{Zs33OU9eG z4Bl**@BvA0?FONZ$&;GvUE>p6z9LEp86Kte5Wb7_88*}(m(@zhw6+tErWTJktrn~?Ymxj!{{Eph#=mGw*^>O`(2o2=!JK=HI5Y>pAZcqME!yG8>qRfn(t*Tw7*g;`0Pbx6vil?<@%x3~+g z+R1lAt5gsh;A(E5JBF)?4!N8))Cu;t9JEFmXq6^;IbLEaGyR8-r^C1==&yo$r6Zf?BtKz(aRjb9 oH)?gD`*Tj`FgJrGghdTb4S?ps?r_6zv$(ArF|IvE<2yO{{{)Xl*8l(j literal 0 Hc-jL100001 diff --git a/po/ro.po b/po/ro.po new file mode 100644 index 000000000..5638bd8cc --- /dev/null +++ b/po/ro.po @@ -0,0 +1,6262 @@ +# Mesajele în limba românã pentru pachetul bash +# Copyright (C) 2003 Free Software Foundation, Inc. +# Eugen Hoanca , 2003. +# +msgid "" +msgstr "" +"Project-Id-Version: bash 2.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2009-01-06 11:56-0500\n" +"PO-Revision-Date: 1997-08-17 18:42+0300\n" +"Last-Translator: Eugen Hoanca \n" +"Language-Team: Romanian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-2\n" +"Content-Transfer-Encoding: 8bit\n" + +#: arrayfunc.c:50 +msgid "bad array subscript" +msgstr "incluziune greºitã în interval" + +#: arrayfunc.c:313 builtins/declare.def:474 +#, c-format +msgid "%s: cannot convert indexed to associative array" +msgstr "" + +#: arrayfunc.c:479 +#, fuzzy, c-format +msgid "%s: invalid associative array key" +msgstr "%c%c: opþiune invalidã" + +#: arrayfunc.c:481 +#, c-format +msgid "%s: cannot assign to non-numeric index" +msgstr "%s: nu se poate atribui cãtre index ne-numeric" + +#: arrayfunc.c:517 +#, c-format +msgid "%s: %s: must use subscript when assigning associative array" +msgstr "" + +#: bashhist.c:380 +#, c-format +msgid "%s: cannot create: %s" +msgstr "%s: nu s-a putut crea: %s" + +#: bashline.c:3413 +msgid "bash_execute_unix_command: cannot find keymap for command" +msgstr "" + +#: bashline.c:3491 +#, c-format +msgid "%s: first non-whitespace character is not `\"'" +msgstr "" + +#: bashline.c:3520 +#, c-format +msgid "no closing `%c' in %s" +msgstr "" + +#: bashline.c:3554 +#, c-format +msgid "%s: missing colon separator" +msgstr "" + +#: builtins/bind.def:120 builtins/bind.def:123 +msgid "line editing not enabled" +msgstr "" + +#: builtins/bind.def:206 +#, c-format +msgid "`%s': invalid keymap name" +msgstr "" + +#: builtins/bind.def:245 +#, fuzzy, c-format +msgid "%s: cannot read: %s" +msgstr "%s: nu s-a putut crea: %s" + +#: builtins/bind.def:260 +#, fuzzy, c-format +msgid "`%s': cannot unbind" +msgstr "%s: comandã negãsitã" + +#: builtins/bind.def:295 builtins/bind.def:325 +#, fuzzy, c-format +msgid "`%s': unknown function name" +msgstr "%s: funcþie doar în citire (readonly)" + +#: builtins/bind.def:303 +#, c-format +msgid "%s is not bound to any keys.\n" +msgstr "" + +#: builtins/bind.def:307 +#, c-format +msgid "%s can be invoked via " +msgstr "" + +#: builtins/break.def:77 builtins/break.def:117 +#, fuzzy +msgid "loop count" +msgstr "logout" + +#: builtins/break.def:137 +msgid "only meaningful in a `for', `while', or `until' loop" +msgstr "" + +#: builtins/caller.def:133 +msgid "" +"Returns the context of the current subroutine call.\n" +" \n" +" Without EXPR, returns " +msgstr "" + +#: builtins/cd.def:215 +msgid "HOME not set" +msgstr "" + +#: builtins/cd.def:227 +msgid "OLDPWD not set" +msgstr "" + +#: builtins/common.c:101 +#, fuzzy, c-format +msgid "line %d: " +msgstr "slot %3d: " + +#: builtins/common.c:139 error.c:260 +#, fuzzy, c-format +msgid "warning: " +msgstr "în scriere" + +#: builtins/common.c:153 +#, c-format +msgid "%s: usage: " +msgstr "" + +#: builtins/common.c:166 test.c:822 +msgid "too many arguments" +msgstr "prea mulþi parametri" + +#: builtins/common.c:191 shell.c:493 shell.c:774 +#, fuzzy, c-format +msgid "%s: option requires an argument" +msgstr "opþiunea necesitã un parametru: -" + +#: builtins/common.c:198 +#, c-format +msgid "%s: numeric argument required" +msgstr "" + +#: builtins/common.c:205 +#, fuzzy, c-format +msgid "%s: not found" +msgstr "%s: comandã negãsitã" + +#: builtins/common.c:214 shell.c:787 +#, fuzzy, c-format +msgid "%s: invalid option" +msgstr "%c%c: opþiune invalidã" + +#: builtins/common.c:221 +#, fuzzy, c-format +msgid "%s: invalid option name" +msgstr "%c%c: opþiune invalidã" + +#: builtins/common.c:228 general.c:231 general.c:236 +#, fuzzy, c-format +msgid "`%s': not a valid identifier" +msgstr "`%s' nu este un identificator valid" + +#: builtins/common.c:238 +#, fuzzy +msgid "invalid octal number" +msgstr "numãr de semnal invalid" + +#: builtins/common.c:240 +#, fuzzy +msgid "invalid hex number" +msgstr "numãr de semnal invalid" + +#: builtins/common.c:242 expr.c:1255 +#, fuzzy +msgid "invalid number" +msgstr "numãr de semnal invalid" + +#: builtins/common.c:250 +#, c-format +msgid "%s: invalid signal specification" +msgstr "" + +#: builtins/common.c:257 +#, c-format +msgid "`%s': not a pid or valid job spec" +msgstr "" + +#: builtins/common.c:264 error.c:453 +#, c-format +msgid "%s: readonly variable" +msgstr "%s: variabilã doar în citire" + +#: builtins/common.c:272 +#, c-format +msgid "%s: %s out of range" +msgstr "" + +#: builtins/common.c:272 builtins/common.c:274 +#, fuzzy +msgid "argument" +msgstr "se aºteaptã parametru" + +#: builtins/common.c:274 +#, c-format +msgid "%s out of range" +msgstr "" + +#: builtins/common.c:282 +#, c-format +msgid "%s: no such job" +msgstr "" + +#: builtins/common.c:290 +#, fuzzy, c-format +msgid "%s: no job control" +msgstr "nici un control de job în acest shell" + +#: builtins/common.c:292 +#, fuzzy +msgid "no job control" +msgstr "nici un control de job în acest shell" + +#: builtins/common.c:302 +#, fuzzy, c-format +msgid "%s: restricted" +msgstr "%s: jobul a fost terminat" + +#: builtins/common.c:304 +#, fuzzy +msgid "restricted" +msgstr "Terminat" + +#: builtins/common.c:312 +#, c-format +msgid "%s: not a shell builtin" +msgstr "" + +#: builtins/common.c:321 +#, fuzzy, c-format +msgid "write error: %s" +msgstr "eroare de legãturã (pipe): %s" + +#: builtins/common.c:553 +#, c-format +msgid "%s: error retrieving current directory: %s: %s\n" +msgstr "" + +#: builtins/common.c:619 builtins/common.c:621 +#, fuzzy, c-format +msgid "%s: ambiguous job spec" +msgstr "%s: Redirectare ambiguã" + +#: builtins/complete.def:270 +#, c-format +msgid "%s: invalid action name" +msgstr "" + +#: builtins/complete.def:430 builtins/complete.def:615 +#: builtins/complete.def:813 +#, c-format +msgid "%s: no completion specification" +msgstr "" + +#: builtins/complete.def:667 +msgid "warning: -F option may not work as you expect" +msgstr "" + +#: builtins/complete.def:669 +msgid "warning: -C option may not work as you expect" +msgstr "" + +#: builtins/complete.def:786 +msgid "not currently executing completion function" +msgstr "" + +#: builtins/declare.def:122 +#, fuzzy +msgid "can only be used in a function" +msgstr "poate fi folosit doar într-o funcþie, ºi face ca variabila NUME" + +#: builtins/declare.def:353 +msgid "cannot use `-f' to make functions" +msgstr "" + +#: builtins/declare.def:365 execute_cmd.c:4731 +#, c-format +msgid "%s: readonly function" +msgstr "%s: funcþie doar în citire (readonly)" + +#: builtins/declare.def:461 +#, fuzzy, c-format +msgid "%s: cannot destroy array variables in this way" +msgstr "$%s: nu se poate asigna în acest mod" + +#: builtins/declare.def:468 +#, c-format +msgid "%s: cannot convert associative to indexed array" +msgstr "" + +#: builtins/enable.def:137 builtins/enable.def:145 +msgid "dynamic loading not available" +msgstr "" + +#: builtins/enable.def:312 +#, fuzzy, c-format +msgid "cannot open shared object %s: %s" +msgstr "nu pot deschide legãtura numitã %s pentru %s: %s" + +#: builtins/enable.def:335 +#, c-format +msgid "cannot find %s in shared object %s: %s" +msgstr "" + +#: builtins/enable.def:459 +#, c-format +msgid "%s: not dynamically loaded" +msgstr "" + +#: builtins/enable.def:474 +#, fuzzy, c-format +msgid "%s: cannot delete: %s" +msgstr "%s: nu s-a putut crea: %s" + +#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4588 +#: shell.c:1439 +#, c-format +msgid "%s: is a directory" +msgstr "%s: este director" + +#: builtins/evalfile.c:139 +#, fuzzy, c-format +msgid "%s: not a regular file" +msgstr "%s: nu se poate executa fiºierul binar" + +#: builtins/evalfile.c:147 +#, c-format +msgid "%s: file is too large" +msgstr "" + +#: builtins/evalfile.c:185 execute_cmd.c:4658 shell.c:1449 +#, c-format +msgid "%s: cannot execute binary file" +msgstr "%s: nu se poate executa fiºierul binar" + +#: builtins/exec.def:212 +#, fuzzy, c-format +msgid "%s: cannot execute: %s" +msgstr "%s: nu s-a putut crea: %s" + +#: builtins/exit.def:65 +#, fuzzy, c-format +msgid "logout\n" +msgstr "logout" + +#: builtins/exit.def:88 +msgid "not login shell: use `exit'" +msgstr "" + +#: builtins/exit.def:120 +#, c-format +msgid "There are stopped jobs.\n" +msgstr "" + +#: builtins/exit.def:122 +#, c-format +msgid "There are running jobs.\n" +msgstr "" + +#: builtins/fc.def:261 +#, fuzzy +msgid "no command found" +msgstr "%s: comandã negãsitã" + +#: builtins/fc.def:341 +msgid "history specification" +msgstr "" + +#: builtins/fc.def:362 +#, fuzzy, c-format +msgid "%s: cannot open temp file: %s" +msgstr "%s: nu s-a putut crea: %s" + +#: builtins/fg_bg.def:149 builtins/jobs.def:282 +msgid "current" +msgstr "" + +#: builtins/fg_bg.def:158 +#, c-format +msgid "job %d started without job control" +msgstr "" + +#: builtins/getopt.c:110 +#, fuzzy, c-format +msgid "%s: illegal option -- %c\n" +msgstr "opþiune ilegalã: -" + +#: builtins/getopt.c:111 +#, fuzzy, c-format +msgid "%s: option requires an argument -- %c\n" +msgstr "opþiunea necesitã un parametru: -" + +#: builtins/hash.def:92 +msgid "hashing disabled" +msgstr "" + +#: builtins/hash.def:138 +#, c-format +msgid "%s: hash table empty\n" +msgstr "" + +#: builtins/hash.def:244 +#, fuzzy, c-format +msgid "hits\tcommand\n" +msgstr "ultima comandã." + +#: builtins/help.def:130 +#, c-format +msgid "Shell commands matching keyword `" +msgid_plural "Shell commands matching keywords `" +msgstr[0] "" +msgstr[1] "" + +#: builtins/help.def:168 +#, c-format +msgid "" +"no help topics match `%s'. Try `help help' or `man -k %s' or `info %s'." +msgstr "" + +#: builtins/help.def:185 +#, fuzzy, c-format +msgid "%s: cannot open: %s" +msgstr "%s: nu s-a putut crea: %s" + +#: builtins/help.def:337 +#, c-format +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:154 +msgid "cannot use more than one of -anrw" +msgstr "" + +#: builtins/history.def:186 +msgid "history position" +msgstr "" + +#: builtins/history.def:365 +#, fuzzy, c-format +msgid "%s: history expansion failed" +msgstr "%s: se aºteaptã expresie întreagã (integer)" + +#: builtins/inlib.def:71 +#, fuzzy, c-format +msgid "%s: inlib failed" +msgstr "%s: variabilã fãrã limitã" + +#: builtins/jobs.def:109 +msgid "no other options allowed with `-x'" +msgstr "" + +#: builtins/kill.def:197 +#, c-format +msgid "%s: arguments must be process or job IDs" +msgstr "" + +#: builtins/kill.def:260 +#, fuzzy +msgid "Unknown error" +msgstr "Eroare necunoscutã %d" + +#: builtins/let.def:95 builtins/let.def:120 expr.c:501 expr.c:516 +msgid "expression expected" +msgstr "se aºteaptã expresie" + +#: builtins/mapfile.def:215 builtins/read.def:272 +#, c-format +msgid "%s: invalid file descriptor specification" +msgstr "" + +#: builtins/mapfile.def:223 builtins/read.def:279 +#, c-format +msgid "%d: invalid file descriptor: %s" +msgstr "" + +#: builtins/mapfile.def:232 builtins/mapfile.def:270 +#, fuzzy, c-format +msgid "%s: invalid line count" +msgstr "%c%c: opþiune invalidã" + +#: builtins/mapfile.def:243 +#, fuzzy, c-format +msgid "%s: invalid array origin" +msgstr "%c%c: opþiune invalidã" + +#: builtins/mapfile.def:260 +#, fuzzy, c-format +msgid "%s: invalid callback quantum" +msgstr "numãr de semnal invalid" + +#: builtins/mapfile.def:292 +#, fuzzy +msgid "empty array variable name" +msgstr "%s: variabilã fãrã limitã" + +#: builtins/mapfile.def:313 +msgid "array variable support required" +msgstr "" + +#: builtins/printf.def:367 +#, c-format +msgid "`%s': missing format character" +msgstr "" + +#: builtins/printf.def:544 +#, c-format +msgid "`%c': invalid format character" +msgstr "" + +#: builtins/printf.def:571 +#, c-format +msgid "warning: %s: %s" +msgstr "" + +#: builtins/printf.def:750 +msgid "missing hex digit for \\x" +msgstr "" + +#: builtins/pushd.def:195 +#, fuzzy +msgid "no other directory" +msgstr "director superior." + +#: builtins/pushd.def:462 +#, fuzzy +msgid "" +msgstr "\tnoul director de lucru curent." + +#: builtins/pushd.def:506 +msgid "directory stack empty" +msgstr "" + +#: builtins/pushd.def:508 +msgid "directory stack index" +msgstr "" + +#: builtins/pushd.def:683 +msgid "" +"Display the list of currently remembered directories. Directories\n" +" find their way onto the list with the `pushd' command; you can get\n" +" back up through the list with the `popd' command.\n" +" \n" +" Options:\n" +" -c\tclear the directory stack by deleting all of the elements\n" +" -l\tdo not print tilde-prefixed versions of directories relative\n" +" \tto your home directory\n" +" -p\tprint the directory stack with one entry per line\n" +" -v\tprint the directory stack with one entry per line prefixed\n" +" \twith its position in the stack\n" +" \n" +" Arguments:\n" +" +N\tDisplays the Nth entry counting from the left of the list shown " +"by\n" +" \tdirs when invoked without options, starting with zero.\n" +" \n" +" -N\tDisplays the Nth entry counting from the right of the list shown " +"by\n" +"\tdirs when invoked without options, starting with zero." +msgstr "" + +#: builtins/pushd.def:705 +msgid "" +"Adds a directory to the top of the directory stack, or rotates\n" +" the stack, making the new top of the stack the current working\n" +" directory. With no arguments, exchanges the top two directories.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when adding\n" +" \tdirectories to the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the left of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" -N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the right of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" dir\tAdds DIR to the directory stack at the top, making it the\n" +" \tnew current working directory.\n" +" \n" +" The `dirs' builtin displays the directory stack." +msgstr "" + +#: builtins/pushd.def:730 +msgid "" +"Removes entries from the directory stack. With no arguments, removes\n" +" the top directory from the stack, and changes to the new top directory.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when removing\n" +" \tdirectories from the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRemoves the Nth entry counting from the left of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd +0'\n" +" \tremoves the first directory, `popd +1' the second.\n" +" \n" +" -N\tRemoves the Nth entry counting from the right of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd -0'\n" +" \tremoves the last directory, `popd -1' the next to last.\n" +" \n" +" The `dirs' builtin displays the directory stack." +msgstr "" + +#: builtins/read.def:248 +#, c-format +msgid "%s: invalid timeout specification" +msgstr "" + +#: builtins/read.def:574 +#, fuzzy, c-format +msgid "read error: %d: %s" +msgstr "eroare de legãturã (pipe): %s" + +#: builtins/return.def:73 +msgid "can only `return' from a function or sourced script" +msgstr "" + +#: builtins/set.def:768 +#, fuzzy +msgid "cannot simultaneously unset a function and a variable" +msgstr "poate fi folosit doar într-o funcþie, ºi face ca variabila NUME" + +#: builtins/set.def:805 +#, fuzzy, c-format +msgid "%s: cannot unset" +msgstr "%s: nu s-a putut crea: %s" + +#: builtins/set.def:812 +#, fuzzy, c-format +msgid "%s: cannot unset: readonly %s" +msgstr "%s: nu s-a putut crea: %s" + +#: builtins/set.def:823 +#, fuzzy, c-format +msgid "%s: not an array variable" +msgstr "%s: variabilã fãrã limitã" + +#: builtins/setattr.def:186 +#, fuzzy, c-format +msgid "%s: not a function" +msgstr "%s: funcþie doar în citire (readonly)" + +#: builtins/shift.def:71 builtins/shift.def:77 +#, fuzzy +msgid "shift count" +msgstr "shift [n]" + +#: builtins/shopt.def:254 +msgid "cannot set and unset shell options simultaneously" +msgstr "" + +#: builtins/shopt.def:319 +#, c-format +msgid "%s: invalid shell option name" +msgstr "" + +#: builtins/source.def:128 +msgid "filename argument required" +msgstr "" + +#: builtins/source.def:153 +#, fuzzy, c-format +msgid "%s: file not found" +msgstr "%s: comandã negãsitã" + +#: builtins/suspend.def:101 +msgid "cannot suspend" +msgstr "" + +#: builtins/suspend.def:111 +#, fuzzy +msgid "cannot suspend a login shell" +msgstr "Ieºire dintr-un login al shell-ului." + +#: builtins/type.def:234 +#, c-format +msgid "%s is aliased to `%s'\n" +msgstr "" + +#: builtins/type.def:255 +#, c-format +msgid "%s is a shell keyword\n" +msgstr "" + +#: builtins/type.def:274 +#, fuzzy, c-format +msgid "%s is a function\n" +msgstr "%s: funcþie doar în citire (readonly)" + +#: builtins/type.def:296 +#, c-format +msgid "%s is a shell builtin\n" +msgstr "" + +#: builtins/type.def:317 builtins/type.def:391 +#, c-format +msgid "%s is %s\n" +msgstr "" + +#: builtins/type.def:337 +#, c-format +msgid "%s is hashed (%s)\n" +msgstr "" + +#: builtins/ulimit.def:372 +#, c-format +msgid "%s: invalid limit argument" +msgstr "" + +#: builtins/ulimit.def:398 +#, fuzzy, c-format +msgid "`%c': bad command" +msgstr "%c%c: opþiune invalidã" + +#: builtins/ulimit.def:427 +#, fuzzy, c-format +msgid "%s: cannot get limit: %s" +msgstr "%s: nu s-a putut crea: %s" + +#: builtins/ulimit.def:453 +#, fuzzy +msgid "limit" +msgstr "limitã CPU" + +#: builtins/ulimit.def:465 builtins/ulimit.def:765 +#, fuzzy, c-format +msgid "%s: cannot modify limit: %s" +msgstr "%s: nu s-a putut crea: %s" + +#: builtins/umask.def:118 +#, fuzzy +msgid "octal number" +msgstr "numãr de semnal invalid" + +#: builtins/umask.def:231 +#, c-format +msgid "`%c': invalid symbolic mode operator" +msgstr "" + +#: builtins/umask.def:286 +#, c-format +msgid "`%c': invalid symbolic mode character" +msgstr "" + +#: error.c:89 error.c:320 error.c:322 error.c:324 +msgid " line " +msgstr "" + +#: error.c:164 +#, fuzzy, c-format +msgid "last command: %s\n" +msgstr "ultima comandã." + +#: error.c:172 +#, c-format +msgid "Aborting..." +msgstr "" + +#: error.c:405 +#, fuzzy +msgid "unknown command error" +msgstr "Eroare necunoscutã %d" + +#: error.c:406 +#, fuzzy +msgid "bad command type" +msgstr "ºi nume de comandã." + +#: error.c:407 +#, fuzzy +msgid "bad connector" +msgstr "conector greºit `%d'" + +#: error.c:408 +#, fuzzy +msgid "bad jump" +msgstr "Salt invalid %d" + +#: error.c:446 +#, c-format +msgid "%s: unbound variable" +msgstr "%s: variabilã fãrã limitã" + +#: eval.c:181 +#, fuzzy, c-format +msgid "\atimed out waiting for input: auto-logout\n" +msgstr "%ca expirat aºteptând introducere de date: auto-logout\n" + +#: execute_cmd.c:491 +#, c-format +msgid "cannot redirect standard input from /dev/null: %s" +msgstr "" + +#: execute_cmd.c:1091 +#, c-format +msgid "TIMEFORMAT: `%c': invalid format character" +msgstr "" + +#: execute_cmd.c:1942 +#, fuzzy +msgid "pipe error" +msgstr "eroare de legãturã (pipe): %s" + +#: execute_cmd.c:4276 +#, c-format +msgid "%s: restricted: cannot specify `/' in command names" +msgstr "%s: limitat: nu se poate specifica `/' în numele comenzilor" + +#: execute_cmd.c:4367 +#, c-format +msgid "%s: command not found" +msgstr "%s: comandã negãsitã" + +#: execute_cmd.c:4621 +#, fuzzy, c-format +msgid "%s: %s: bad interpreter" +msgstr "%s: este director" + +#: execute_cmd.c:4770 +#, fuzzy, c-format +msgid "cannot duplicate fd %d to fd %d" +msgstr "nu se poate duplica fd %d în fd 0: %s" + +#: expr.c:241 +msgid "expression recursion level exceeded" +msgstr "nivel de recursivitate al expresiei depãºit" + +#: expr.c:265 +#, fuzzy +msgid "recursion stack underflow" +msgstr "Stivã recursivitate prea puþin folositã(underflow)" + +#: expr.c:379 +msgid "syntax error in expression" +msgstr "eroare de sintaxã în expresie " + +#: expr.c:419 +msgid "attempted assignment to non-variable" +msgstr "s-a încercat asignare cãtre non-variabilã" + +#: expr.c:440 expr.c:445 expr.c:756 +msgid "division by 0" +msgstr "împãrþire la 0" + +#: expr.c:471 +#, fuzzy +msgid "bug: bad expassign token" +msgstr "bug: identificator(token) expassign greºit %d" + +#: expr.c:513 +msgid "`:' expected for conditional expression" +msgstr "`:' aºteptat dupã expresie condiþionalã" + +#: expr.c:781 +msgid "exponent less than 0" +msgstr "" + +#: expr.c:826 +msgid "identifier expected after pre-increment or pre-decrement" +msgstr "" + +#: expr.c:854 +msgid "missing `)'" +msgstr "`)' lipsã" + +#: expr.c:897 expr.c:1175 +#, fuzzy +msgid "syntax error: operand expected" +msgstr "eroare de sintaxã: sfârºit de fiºier neaºteptat" + +#: expr.c:1177 +msgid "syntax error: invalid arithmetic operator" +msgstr "" + +#: expr.c:1201 +#, fuzzy, c-format +msgid "%s%s%s: %s (error token is \"%s\")" +msgstr "%s: %s: %s (identificatorul erorii este \"%s\")\n" + +#: expr.c:1259 +msgid "invalid arithmetic base" +msgstr "" + +#: expr.c:1279 +msgid "value too great for base" +msgstr "valoare prea mare pentru bazã" + +#: expr.c:1328 +#, fuzzy, c-format +msgid "%s: expression error\n" +msgstr "eroare de redirectare" + +#: general.c:61 +#, fuzzy +msgid "getcwd: cannot access parent directories" +msgstr "getwd: nu s-au putut accesa directoarele pãrinte" + +#: input.c:94 subst.c:4559 +#, c-format +msgid "cannot reset nodelay mode for fd %d" +msgstr "" + +#: input.c:258 +#, fuzzy, c-format +msgid "cannot allocate new file descriptor for bash input from fd %d" +msgstr "" +"nu se poate aloca descriptor de fiºier nou pentru inputul bash din fd %d: %s" + +#: input.c:266 +#, fuzzy, c-format +msgid "save_bash_input: buffer already exists for new fd %d" +msgstr "check_bash_input: buffer deja existent pentru fd nou %d" + +#: jobs.c:466 +msgid "start_pipeline: pgrp pipe" +msgstr "" + +#: jobs.c:882 +#, c-format +msgid "forked pid %d appears in running job %d" +msgstr "" + +#: jobs.c:1000 +#, c-format +msgid "deleting stopped job %d with process group %ld" +msgstr "" + +#: jobs.c:1105 +#, c-format +msgid "add_process: process %5ld (%s) in the_pipeline" +msgstr "" + +#: jobs.c:1108 +#, c-format +msgid "add_process: pid %5ld (%s) marked as still alive" +msgstr "" + +#: jobs.c:1396 +#, fuzzy, c-format +msgid "describe_pid: %ld: no such pid" +msgstr "describe_pid: Nu existã pid-ul (%d)!\n" + +#: jobs.c:1411 +#, fuzzy, c-format +msgid "Signal %d" +msgstr "Semnal Necunoscut #%d" + +#: jobs.c:1425 jobs.c:1450 +msgid "Done" +msgstr "Finalizat" + +#: jobs.c:1430 siglist.c:122 +msgid "Stopped" +msgstr "Stopat" + +#: jobs.c:1434 +#, fuzzy, c-format +msgid "Stopped(%s)" +msgstr "Stopat" + +#: jobs.c:1438 +msgid "Running" +msgstr "În rulare" + +#: jobs.c:1452 +#, c-format +msgid "Done(%d)" +msgstr "Finalizat(%d)" + +#: jobs.c:1454 +#, c-format +msgid "Exit %d" +msgstr "Ieºire %d" + +#: jobs.c:1457 +msgid "Unknown status" +msgstr "Stare necunoscutã" + +#: jobs.c:1544 +#, c-format +msgid "(core dumped) " +msgstr "(core dumped) " + +#: jobs.c:1563 +#, fuzzy, c-format +msgid " (wd: %s)" +msgstr "(wd actual: %s)\n" + +#: jobs.c:1766 +#, fuzzy, c-format +msgid "child setpgid (%ld to %ld)" +msgstr "setpgid copil (de la %d la %d) a întâlnit o eroare %d: %s\n" + +#: jobs.c:2094 nojobs.c:576 +#, fuzzy, c-format +msgid "wait: pid %ld is not a child of this shell" +msgstr "aºteptaþi: pid-ul %d nu este rezultat(child) al acestui shell" + +#: jobs.c:2321 +#, c-format +msgid "wait_for: No record of process %ld" +msgstr "" + +#: jobs.c:2593 +#, c-format +msgid "wait_for_job: job %d is stopped" +msgstr "" + +#: jobs.c:2815 +#, c-format +msgid "%s: job has terminated" +msgstr "%s: jobul a fost terminat" + +#: jobs.c:2824 +#, c-format +msgid "%s: job %d already in background" +msgstr "" + +#: jobs.c:3487 +#, fuzzy, c-format +msgid "%s: line %d: " +msgstr "slot %3d: " + +#: jobs.c:3501 nojobs.c:805 +#, c-format +msgid " (core dumped)" +msgstr " (core dumped)" + +#: jobs.c:3513 jobs.c:3526 +#, c-format +msgid "(wd now: %s)\n" +msgstr "(wd actual: %s)\n" + +#: jobs.c:3558 +#, fuzzy +msgid "initialize_job_control: getpgrp failed" +msgstr "initialize_jobs: getpgrp eºuat: %s" + +#: jobs.c:3618 +#, fuzzy +msgid "initialize_job_control: line discipline" +msgstr "initialize_jobs: disciplinã linie: %s" + +#: jobs.c:3628 +#, fuzzy +msgid "initialize_job_control: setpgid" +msgstr "initialize_jobs: getpgrp eºuat: %s" + +#: jobs.c:3656 +#, c-format +msgid "cannot set terminal process group (%d)" +msgstr "" + +#: jobs.c:3661 +msgid "no job control in this shell" +msgstr "nici un control de job în acest shell" + +#: lib/malloc/malloc.c:296 +#, c-format +msgid "malloc: failed assertion: %s\n" +msgstr "" + +#: lib/malloc/malloc.c:312 +#, c-format +msgid "" +"\r\n" +"malloc: %s:%d: assertion botched\r\n" +msgstr "" + +#: lib/malloc/malloc.c:313 +msgid "unknown" +msgstr "necunoscut" + +#: lib/malloc/malloc.c:797 +msgid "malloc: block on free list clobbered" +msgstr "" + +#: lib/malloc/malloc.c:874 +msgid "free: called with already freed block argument" +msgstr "" + +#: lib/malloc/malloc.c:877 +msgid "free: called with unallocated block argument" +msgstr "" + +#: lib/malloc/malloc.c:896 +msgid "free: underflow detected; mh_nbytes out of range" +msgstr "" + +#: lib/malloc/malloc.c:902 +msgid "free: start and end chunk sizes differ" +msgstr "" + +#: lib/malloc/malloc.c:1001 +msgid "realloc: called with unallocated block argument" +msgstr "" + +#: lib/malloc/malloc.c:1016 +msgid "realloc: underflow detected; mh_nbytes out of range" +msgstr "" + +#: lib/malloc/malloc.c:1022 +msgid "realloc: start and end chunk sizes differ" +msgstr "" + +#: lib/malloc/table.c:177 +#, c-format +msgid "register_alloc: alloc table is full with FIND_ALLOC?\n" +msgstr "" + +#: lib/malloc/table.c:184 +#, c-format +msgid "register_alloc: %p already in table as allocated?\n" +msgstr "" + +#: lib/malloc/table.c:220 +#, c-format +msgid "register_free: %p already in table as free?\n" +msgstr "" + +#: lib/sh/fmtulong.c:101 +msgid "invalid base" +msgstr "" + +#: lib/sh/netopen.c:168 +#, fuzzy, c-format +msgid "%s: host unknown" +msgstr "necunoscut" + +#: lib/sh/netopen.c:175 +#, c-format +msgid "%s: invalid service" +msgstr "" + +#: lib/sh/netopen.c:306 +#, c-format +msgid "%s: bad network path specification" +msgstr "" + +#: lib/sh/netopen.c:346 +msgid "network operations not supported" +msgstr "" + +#: mailcheck.c:433 +msgid "You have mail in $_" +msgstr "Aveþi mail în $_" + +#: mailcheck.c:458 +msgid "You have new mail in $_" +msgstr "Aveþi mail nou în $_" + +#: mailcheck.c:474 +#, c-format +msgid "The mail in %s has been read\n" +msgstr "Mailul din %s a fost citit\n" + +#: make_cmd.c:322 +#, fuzzy +msgid "syntax error: arithmetic expression required" +msgstr "eroare de sintaxã în expresie " + +#: make_cmd.c:324 +#, fuzzy +msgid "syntax error: `;' unexpected" +msgstr "eroare de sintaxã: sfârºit de fiºier neaºteptat" + +#: make_cmd.c:325 +#, fuzzy, c-format +msgid "syntax error: `((%s))'" +msgstr "eroare de sintaxã" + +#: make_cmd.c:567 +#, c-format +msgid "make_here_document: bad instruction type %d" +msgstr "make_here_document: tip de instrucþiune greºit %d" + +#: make_cmd.c:651 +#, c-format +msgid "here-document at line %d delimited by end-of-file (wanted `%s')" +msgstr "" + +#: make_cmd.c:746 +#, c-format +msgid "make_redirection: redirection instruction `%d' out of range" +msgstr "" + +#: parse.y:2986 parse.y:3218 +#, fuzzy, c-format +msgid "unexpected EOF while looking for matching `%c'" +msgstr "EOF brusc în cãutare dupã `%c'" + +#: parse.y:3722 +#, fuzzy +msgid "unexpected EOF while looking for `]]'" +msgstr "EOF brusc în cãutare dupã `%c'" + +#: parse.y:3727 +#, fuzzy, c-format +msgid "syntax error in conditional expression: unexpected token `%s'" +msgstr "eroare de sintaxã neaºteptatã lângã `%s'" + +#: parse.y:3731 +#, fuzzy +msgid "syntax error in conditional expression" +msgstr "eroare de sintaxã în expresie " + +#: parse.y:3809 +#, c-format +msgid "unexpected token `%s', expected `)'" +msgstr "" + +#: parse.y:3813 +#, fuzzy +msgid "expected `)'" +msgstr "se aºteaptã `)'" + +#: parse.y:3841 +#, c-format +msgid "unexpected argument `%s' to conditional unary operator" +msgstr "" + +#: parse.y:3845 +msgid "unexpected argument to conditional unary operator" +msgstr "" + +#: parse.y:3885 +#, fuzzy, c-format +msgid "unexpected token `%s', conditional binary operator expected" +msgstr "%s: se aºteaptã operator binar" + +#: parse.y:3889 +#, fuzzy +msgid "conditional binary operator expected" +msgstr "%s: se aºteaptã operator binar" + +#: parse.y:3906 +#, c-format +msgid "unexpected argument `%s' to conditional binary operator" +msgstr "" + +#: parse.y:3910 +msgid "unexpected argument to conditional binary operator" +msgstr "" + +#: parse.y:3921 +#, fuzzy, c-format +msgid "unexpected token `%c' in conditional command" +msgstr "`:' aºteptat dupã expresie condiþionalã" + +#: parse.y:3924 +#, fuzzy, c-format +msgid "unexpected token `%s' in conditional command" +msgstr "`:' aºteptat dupã expresie condiþionalã" + +#: parse.y:3928 +#, fuzzy, c-format +msgid "unexpected token %d in conditional command" +msgstr "`:' aºteptat dupã expresie condiþionalã" + +#: parse.y:5195 +#, c-format +msgid "syntax error near unexpected token `%s'" +msgstr "eroare de sintaxã neaºteptatã lângã `%s'" + +#: parse.y:5213 +#, fuzzy, c-format +msgid "syntax error near `%s'" +msgstr "eroare de sintaxã neaºteptatã lângã `%s'" + +#: parse.y:5223 +msgid "syntax error: unexpected end of file" +msgstr "eroare de sintaxã: sfârºit de fiºier neaºteptat" + +#: parse.y:5223 +msgid "syntax error" +msgstr "eroare de sintaxã" + +#: parse.y:5285 +#, c-format +msgid "Use \"%s\" to leave the shell.\n" +msgstr "Folosiþi \"%s\" pentru a pãrãsi shellul.\n" + +#: parse.y:5447 +#, fuzzy +msgid "unexpected EOF while looking for matching `)'" +msgstr "EOF brusc în cãutare dupã `%c'" + +#: pcomplete.c:1016 +#, c-format +msgid "completion: function `%s' not found" +msgstr "" + +#: pcomplib.c:179 +#, c-format +msgid "progcomp_insert: %s: NULL COMPSPEC" +msgstr "" + +#: print_cmd.c:287 +#, c-format +msgid "print_command: bad connector `%d'" +msgstr "print_command: conector greºitr `%d'" + +#: print_cmd.c:1347 +#, c-format +msgid "cprintf: `%c': invalid format character" +msgstr "" + +#: redir.c:105 +msgid "file descriptor out of range" +msgstr "" + +#: redir.c:148 +#, fuzzy, c-format +msgid "%s: ambiguous redirect" +msgstr "%s: Redirectare ambiguã" + +#: redir.c:152 +#, fuzzy, c-format +msgid "%s: cannot overwrite existing file" +msgstr "%s: nu se poate accesa(clobber) fiºierul existent" + +#: redir.c:157 +#, fuzzy, c-format +msgid "%s: restricted: cannot redirect output" +msgstr "%s: limitat: nu se poate specifica `/' în numele comenzilor" + +#: redir.c:162 +#, fuzzy, c-format +msgid "cannot create temp file for here-document: %s" +msgstr "nu pot face legãturã (pipe) pentru substituþia procesului: %s" + +#: redir.c:517 +msgid "/dev/(tcp|udp)/host/port not supported without networking" +msgstr "" + +#: redir.c:1023 +#, fuzzy +msgid "redirection error: cannot duplicate fd" +msgstr "eroare de redirectare" + +#: shell.c:328 +msgid "could not find /tmp, please create!" +msgstr "" + +#: shell.c:332 +msgid "/tmp must be a valid directory name" +msgstr "" + +#: shell.c:876 +#, fuzzy, c-format +msgid "%c%c: invalid option" +msgstr "%c%c: opþiune invalidã" + +#: shell.c:1638 +msgid "I have no name!" +msgstr "Nu am nici un nume!" + +#: shell.c:1778 +#, fuzzy, c-format +msgid "GNU bash, version %s-(%s)\n" +msgstr "GNU %s, versiunea %s\n" + +#: shell.c:1779 +#, c-format +msgid "" +"Usage:\t%s [GNU long option] [option] ...\n" +"\t%s [GNU long option] [option] script-file ...\n" +msgstr "" +"Folosire:\t%s [GNU opþiune lungã] [opþiune] ...\n" +"\t%s [GNU opþiune lungã] [opþiune] fiºier script ...\n" + +#: shell.c:1781 +msgid "GNU long options:\n" +msgstr "opþiuni lungi GNU:\n" + +#: shell.c:1785 +msgid "Shell options:\n" +msgstr "Opþiuni ale shell-ului:\n" + +#: shell.c:1786 +#, fuzzy +msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n" +msgstr "\t-irsD sau -c comandã\t\t(doar invocaþie)\n" + +#: shell.c:1801 +#, c-format +msgid "\t-%s or -o option\n" +msgstr "\t-%s sau -o opþiune\n" + +#: shell.c:1807 +#, c-format +msgid "Type `%s -c \"help set\"' for more information about shell options.\n" +msgstr "" +"Apãsaþi `%s -c \"set-ajutor\"' pentru mai multe informaþii despre opþiunile " +"shell-ului.\n" + +#: shell.c:1808 +#, c-format +msgid "Type `%s -c help' for more information about shell builtin commands.\n" +msgstr "" +"Apãsaþi `%s -c ajutor' pentru mai multe informaþii despre comenzile interne " +"ale shell-ului.\n" + +#: shell.c:1809 +#, c-format +msgid "Use the `bashbug' command to report bugs.\n" +msgstr "" + +#: sig.c:583 +#, c-format +msgid "sigprocmask: %d: invalid operation" +msgstr "" + +#: siglist.c:47 +msgid "Bogus signal" +msgstr "Semnal fals" + +#: siglist.c:50 +msgid "Hangup" +msgstr "Deconectare" + +#: siglist.c:54 +msgid "Interrupt" +msgstr "Întrerupere" + +#: siglist.c:58 +msgid "Quit" +msgstr "Pãrãsire" + +#: siglist.c:62 +msgid "Illegal instruction" +msgstr "Instrucþiune ilegalã" + +#: siglist.c:66 +msgid "BPT trace/trap" +msgstr "BPT trace/trap" + +#: siglist.c:74 +msgid "ABORT instruction" +msgstr "instrucþiune ABORT" + +#: siglist.c:78 +msgid "EMT instruction" +msgstr "instrucþiune EMT" + +#: siglist.c:82 +msgid "Floating point exception" +msgstr "Excepþie virgulã mobilã" + +#: siglist.c:86 +msgid "Killed" +msgstr "Terminat(killed)" + +#: siglist.c:90 +msgid "Bus error" +msgstr "Eroare de bus" + +#: siglist.c:94 +msgid "Segmentation fault" +msgstr "Eroare de segmentare (Segmentation fault)" + +#: siglist.c:98 +msgid "Bad system call" +msgstr "Apelare sistem invalidã" + +#: siglist.c:102 +msgid "Broken pipe" +msgstr "Legãturã(pipe) întreruptã" + +#: siglist.c:106 +msgid "Alarm clock" +msgstr "Ceas alarmã" + +#: siglist.c:110 +msgid "Terminated" +msgstr "Terminat" + +#: siglist.c:114 +msgid "Urgent IO condition" +msgstr "Condiþie IO urgentã" + +#: siglist.c:118 +msgid "Stopped (signal)" +msgstr "Oprit (semnal)" + +#: siglist.c:126 +msgid "Continue" +msgstr "Continuare" + +#: siglist.c:134 +msgid "Child death or stop" +msgstr "Succesor mort sau oprit" + +#: siglist.c:138 +msgid "Stopped (tty input)" +msgstr "Oprit (tty input)" + +#: siglist.c:142 +msgid "Stopped (tty output)" +msgstr "Oprit (tty output)" + +#: siglist.c:146 +msgid "I/O ready" +msgstr "I/O pregãtit" + +#: siglist.c:150 +msgid "CPU limit" +msgstr "limitã CPU" + +#: siglist.c:154 +msgid "File limit" +msgstr "limitã fiºier" + +#: siglist.c:158 +msgid "Alarm (virtual)" +msgstr "Alarmã (virtual)" + +#: siglist.c:162 +msgid "Alarm (profile)" +msgstr "Alarmã (profil)" + +#: siglist.c:166 +msgid "Window changed" +msgstr "Fereastrã schimbatã" + +#: siglist.c:170 +msgid "Record lock" +msgstr "Reþinere (lock) înregistrare" + +#: siglist.c:174 +msgid "User signal 1" +msgstr "Semnal utilizator 1" + +#: siglist.c:178 +msgid "User signal 2" +msgstr "Semnal utilizator 2" + +#: siglist.c:182 +msgid "HFT input data pending" +msgstr "Date de intrare HFT în curs de rezolvare(pending)" + +#: siglist.c:186 +msgid "power failure imminent" +msgstr "probleme electrice iminente" + +#: siglist.c:190 +msgid "system crash imminent" +msgstr "crash de sistem iminent" + +#: siglist.c:194 +msgid "migrate process to another CPU" +msgstr "migrare proces spre alt CPU" + +#: siglist.c:198 +msgid "programming error" +msgstr "eroare de programare" + +#: siglist.c:202 +msgid "HFT monitor mode granted" +msgstr "mod monitor HFT acordat" + +#: siglist.c:206 +msgid "HFT monitor mode retracted" +msgstr "mod monitor HFT retras" + +#: siglist.c:210 +msgid "HFT sound sequence has completed" +msgstr "secvenþã de sunet HFT completatã" + +#: siglist.c:214 +msgid "Information request" +msgstr "" + +#: siglist.c:222 +msgid "Unknown Signal #" +msgstr "Semnal Necunoscut #" + +#: siglist.c:224 +#, c-format +msgid "Unknown Signal #%d" +msgstr "Semnal Necunoscut #%d" + +#: subst.c:1181 subst.c:1302 +#, fuzzy, c-format +msgid "bad substitution: no closing `%s' in %s" +msgstr "substituþie invalidã: nu existã '%s' în %s" + +#: subst.c:2458 +#, c-format +msgid "%s: cannot assign list to array member" +msgstr "%s: nu pot asigna listã membrului intervalului" + +#: subst.c:4456 subst.c:4472 +#, fuzzy +msgid "cannot make pipe for process substitution" +msgstr "nu pot face legãturã (pipe) pentru substituþia procesului: %s" + +#: subst.c:4504 +#, fuzzy +msgid "cannot make child for process substitution" +msgstr "nu pot crea un proces copil pentru substituirea procesului: %s" + +#: subst.c:4549 +#, fuzzy, c-format +msgid "cannot open named pipe %s for reading" +msgstr "nu pot deschide legãtura numitã %s pentru %s: %s" + +#: subst.c:4551 +#, fuzzy, c-format +msgid "cannot open named pipe %s for writing" +msgstr "nu pot deschide legãtura numitã %s pentru %s: %s" + +#: subst.c:4569 +#, fuzzy, c-format +msgid "cannot duplicate named pipe %s as fd %d" +msgstr "nu se poate duplica legãtura numitã %s ca fd %d: %s " + +#: subst.c:4765 +#, fuzzy +msgid "cannot make pipe for command substitution" +msgstr "nu pot face legãturi(pipes) pentru substituþia de comenzi: %s" + +#: subst.c:4799 +#, fuzzy +msgid "cannot make child for command substitution" +msgstr "nu pot crea un copil pentru substituþia de comenzi: %s" + +#: subst.c:4816 +#, fuzzy +msgid "command_substitute: cannot duplicate pipe as fd 1" +msgstr "command_substitute: nu se poate duplica legãtura (pipe) ca fd 1: %s" + +#: subst.c:5318 +#, c-format +msgid "%s: parameter null or not set" +msgstr "%s: parametru null sau nesetat" + +#: subst.c:5608 +#, c-format +msgid "%s: substring expression < 0" +msgstr "%s: expresie subºir < 0" + +#: subst.c:6660 +#, c-format +msgid "%s: bad substitution" +msgstr "%s: substituþie invalidã" + +#: subst.c:6740 +#, c-format +msgid "$%s: cannot assign in this way" +msgstr "$%s: nu se poate asigna în acest mod" + +#: subst.c:7479 +#, fuzzy, c-format +msgid "bad substitution: no closing \"`\" in %s" +msgstr "substituþie invalidã: nu existã ')' de final în %s" + +#: subst.c:8354 +#, c-format +msgid "no match: %s" +msgstr "" + +#: test.c:145 +msgid "argument expected" +msgstr "se aºteaptã parametru" + +#: test.c:154 +#, c-format +msgid "%s: integer expression expected" +msgstr "%s: se aºteaptã expresie întreagã (integer)" + +#: test.c:262 +msgid "`)' expected" +msgstr "se aºteaptã `)'" + +#: test.c:264 +#, c-format +msgid "`)' expected, found %s" +msgstr "se aºteaptã `)', s-a primit %s" + +#: test.c:279 test.c:688 test.c:691 +#, c-format +msgid "%s: unary operator expected" +msgstr "%s: se aºteaptã operator unar" + +#: test.c:444 test.c:731 +#, c-format +msgid "%s: binary operator expected" +msgstr "%s: se aºteaptã operator binar" + +#: test.c:806 +msgid "missing `]'" +msgstr "lipseºte ']'" + +#: trap.c:201 +#, fuzzy +msgid "invalid signal number" +msgstr "numãr de semnal invalid" + +#: trap.c:324 +#, c-format +msgid "run_pending_traps: bad value in trap_list[%d]: %p" +msgstr "" + +#: trap.c:328 +#, c-format +msgid "" +"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself" +msgstr "" + +#: trap.c:372 +#, fuzzy, c-format +msgid "trap_handler: bad signal %d" +msgstr "trap_handler: Semnal invalid %d" + +#: variables.c:358 +#, c-format +msgid "error importing function definition for `%s'" +msgstr "eroare în importarea definiþiei funcþiei pentru '%s'" + +#: variables.c:736 +#, c-format +msgid "shell level (%d) too high, resetting to 1" +msgstr "" + +#: variables.c:1898 +msgid "make_local_variable: no function context at current scope" +msgstr "" + +#: variables.c:3127 +msgid "all_local_variables: no function context at current scope" +msgstr "" + +#: variables.c:3344 variables.c:3353 +#, c-format +msgid "invalid character %d in exportstr for %s" +msgstr "" + +#: variables.c:3359 +#, c-format +msgid "no `=' in exportstr for %s" +msgstr "" + +#: variables.c:3794 +msgid "pop_var_context: head of shell_variables not a function context" +msgstr "" + +#: variables.c:3807 +msgid "pop_var_context: no global_variables context" +msgstr "" + +#: variables.c:3881 +msgid "pop_scope: head of shell_variables not a temporary environment scope" +msgstr "" + +#: version.c:46 +msgid "Copyright (C) 2009 Free Software Foundation, Inc." +msgstr "" + +#: version.c:47 +msgid "" +"License GPLv3+: GNU GPL version 3 or later \n" +msgstr "" + +#: version.c:86 +#, fuzzy, c-format +msgid "GNU bash, version %s (%s)\n" +msgstr "GNU %s, versiunea %s\n" + +#: version.c:91 +#, c-format +msgid "This is free software; you are free to change and redistribute it.\n" +msgstr "" + +#: version.c:92 +#, c-format +msgid "There is NO WARRANTY, to the extent permitted by law.\n" +msgstr "" + +#: xmalloc.c:92 +#, c-format +msgid "xmalloc: cannot allocate %lu bytes (%lu bytes allocated)" +msgstr "xmalloc: nu pot aloca %lu octeþi (%lu octeþi alocaþi)" + +#: xmalloc.c:94 +#, fuzzy, c-format +msgid "xmalloc: cannot allocate %lu bytes" +msgstr "xmalloc: nu pot aloca %lu octeþi (%lu octeþi alocaþi)" + +#: xmalloc.c:114 +#, c-format +msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)" +msgstr "xrealloc: nu pot realoca %lu octeþi (%lu octeþi alocaþi)" + +#: xmalloc.c:116 +#, fuzzy, c-format +msgid "xrealloc: cannot allocate %lu bytes" +msgstr "xrealloc: nu pot realoca %lu octeþi (%lu octeþi alocaþi)" + +#: xmalloc.c:150 +#, fuzzy, c-format +msgid "xmalloc: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)" +msgstr "xmalloc: nu pot aloca %lu octeþi (%lu octeþi alocaþi)" + +#: xmalloc.c:152 +#, fuzzy, c-format +msgid "xmalloc: %s:%d: cannot allocate %lu bytes" +msgstr "xmalloc: nu pot aloca %lu octeþi (%lu octeþi alocaþi)" + +#: xmalloc.c:174 +#, fuzzy, c-format +msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)" +msgstr "xrealloc: nu pot realoca %lu octeþi (%lu octeþi alocaþi)" + +#: xmalloc.c:176 +#, fuzzy, c-format +msgid "xrealloc: %s:%d: cannot allocate %lu bytes" +msgstr "xrealloc: nu pot realoca %lu octeþi (%lu octeþi alocaþi)" + +#: builtins.c:43 +msgid "alias [-p] [name[=value] ... ]" +msgstr "alias [-p] [nume[=valoare] ... ]" + +#: builtins.c:47 +#, fuzzy +msgid "unalias [-a] name [name ...]" +msgstr "unalias [-a] [nume ...]" + +#: builtins.c:51 +#, fuzzy +msgid "" +"bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-" +"x keyseq:shell-command] [keyseq:readline-function or readline-command]" +msgstr "" +"bind [-lpvsPVS] [-m keymap] [-f nume_fiºier] [-q nume] [-r keyseq] [keyseq:" +"funcþie readline]" + +#: builtins.c:54 +msgid "break [n]" +msgstr "break [n]" + +#: builtins.c:56 +msgid "continue [n]" +msgstr "continue [n]" + +#: builtins.c:58 +msgid "builtin [shell-builtin [arg ...]]" +msgstr "builtin [shell-builtin [arg ...]]" + +#: builtins.c:61 +#, fuzzy +msgid "caller [expr]" +msgstr "test [expr]" + +#: builtins.c:64 +#, fuzzy +msgid "cd [-L|-P] [dir]" +msgstr "cd [-PL] [dir]" + +#: builtins.c:66 +#, fuzzy +msgid "pwd [-LP]" +msgstr "pwd [-PL]" + +#: builtins.c:68 +msgid ":" +msgstr ":" + +#: builtins.c:70 +msgid "true" +msgstr "" + +#: builtins.c:72 +msgid "false" +msgstr "" + +#: builtins.c:74 +msgid "command [-pVv] command [arg ...]" +msgstr "command [-pVv] comandã [arg ...]" + +#: builtins.c:76 +#, fuzzy +msgid "declare [-aAfFilrtux] [-p] [name[=value] ...]" +msgstr "declare [-afFrxi] [-p] nume[=valoare] ..." + +#: builtins.c:78 +#, fuzzy +msgid "typeset [-aAfFilrtux] [-p] name[=value] ..." +msgstr "typeset [-afFrxi] [-p] nume[=valoare] ..." + +#: builtins.c:80 +#, fuzzy +msgid "local [option] name[=value] ..." +msgstr "local nume[=valoare] ..." + +#: builtins.c:83 +msgid "echo [-neE] [arg ...]" +msgstr "echo [-neE] [arg ...]" + +#: builtins.c:87 +msgid "echo [-n] [arg ...]" +msgstr "echo [-n] [arg ...]" + +#: builtins.c:90 +#, fuzzy +msgid "enable [-a] [-dnps] [-f filename] [name ...]" +msgstr "enable [-pnds] [-a] [-f nume_fiºier] [nume ...]" + +#: builtins.c:92 +msgid "eval [arg ...]" +msgstr "eval [arg ...]" + +#: builtins.c:94 +msgid "getopts optstring name [arg]" +msgstr "getopts optstring nume [arg]" + +#: builtins.c:96 +#, fuzzy +msgid "exec [-cl] [-a name] [command [arguments ...]] [redirection ...]" +msgstr "exec [-cl] [-a nume] fiºier [redirectare ...]" + +#: builtins.c:98 +msgid "exit [n]" +msgstr "exit [n]" + +#: builtins.c:100 +#, fuzzy +msgid "logout [n]" +msgstr "logout" + +#: builtins.c:103 +#, fuzzy +msgid "fc [-e ename] [-lnr] [first] [last] or fc -s [pat=rep] [command]" +msgstr "fc [-e enume] [-nlr] [prim] [u8ltim] sau fc -s [pat=rep] [cmd]" + +#: builtins.c:107 +msgid "fg [job_spec]" +msgstr "fg [job_spec]" + +#: builtins.c:111 +#, fuzzy +msgid "bg [job_spec ...]" +msgstr "bg [job_spec]" + +#: builtins.c:114 +#, fuzzy +msgid "hash [-lr] [-p pathname] [-dt] [name ...]" +msgstr "hash [-r] [-p nume_cale] [nume ...]" + +#: builtins.c:117 +#, fuzzy +msgid "help [-ds] [pattern ...]" +msgstr "help [tipar ...]" + +#: builtins.c:121 +#, fuzzy +msgid "" +"history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg " +"[arg...]" +msgstr "" +"history [-c] [n] sau history -awrn [nume_fiºier] sau history -ps arg [arg...]" + +#: builtins.c:125 +msgid "jobs [-lnprs] [jobspec ...] or jobs -x command [args]" +msgstr "jobs [-lnprs] [jobspec ...] sau jobs -x comandã [args]" + +#: builtins.c:129 +#, fuzzy +msgid "disown [-h] [-ar] [jobspec ...]" +msgstr "disown [jobspec ...]" + +#: builtins.c:132 +#, fuzzy +msgid "" +"kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l " +"[sigspec]" +msgstr "" +"kill [-s sigspec | -n signum | -sigspec] [pid | job]... sau kill -l [sigspec]" + +#: builtins.c:134 +msgid "let arg [arg ...]" +msgstr "let arg [arg ...]" + +#: builtins.c:136 +msgid "" +"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-p prompt] [-t " +"timeout] [-u fd] [name ...]" +msgstr "" + +#: builtins.c:138 +msgid "return [n]" +msgstr "return [n]" + +#: builtins.c:140 +#, fuzzy +msgid "set [--abefhkmnptuvxBCHP] [-o option-name] [arg ...]" +msgstr "set [--abefhkmnptuvxBCHP] [-o opþiune] [arg ...]" + +#: builtins.c:142 +msgid "unset [-f] [-v] [name ...]" +msgstr "unset [-f] [-v] [nume ...]" + +#: builtins.c:144 +#, fuzzy +msgid "export [-fn] [name[=value] ...] or export -p" +msgstr "export [-nf] [nume ...] sau export -p" + +#: builtins.c:146 +#, fuzzy +msgid "readonly [-af] [name[=value] ...] or readonly -p" +msgstr "readonly [-anf] [nume ...] sau readonly -p" + +#: builtins.c:148 +msgid "shift [n]" +msgstr "shift [n]" + +#: builtins.c:150 +#, fuzzy +msgid "source filename [arguments]" +msgstr "nume fiºier sursã" + +#: builtins.c:152 +#, fuzzy +msgid ". filename [arguments]" +msgstr ". nume fiºier" + +#: builtins.c:155 +msgid "suspend [-f]" +msgstr "suspend [-f]" + +#: builtins.c:158 +msgid "test [expr]" +msgstr "test [expr]" + +#: builtins.c:160 +msgid "[ arg... ]" +msgstr "[ arg... ]" + +#: builtins.c:162 +msgid "times" +msgstr "ori" + +#: builtins.c:164 +#, fuzzy +msgid "trap [-lp] [[arg] signal_spec ...]" +msgstr "trap [arg] [signal_spec] sau trap -l" + +#: builtins.c:166 +#, fuzzy +msgid "type [-afptP] name [name ...]" +msgstr "type [-apt] nume [nume ...]" + +#: builtins.c:169 +#, fuzzy +msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]" +msgstr "ulimit [-SHacdfmstpnuv] [limitã]" + +#: builtins.c:172 +#, fuzzy +msgid "umask [-p] [-S] [mode]" +msgstr "umask [-S] [mod]" + +#: builtins.c:175 +#, fuzzy +msgid "wait [id]" +msgstr "wait [n]" + +#: builtins.c:179 +#, fuzzy +msgid "wait [pid]" +msgstr "wait [n]" + +#: builtins.c:182 +#, fuzzy +msgid "for NAME [in WORDS ... ] ; do COMMANDS; done" +msgstr "for NUME [în EXPRESIE ... ;] executã COMENZI; done" + +#: builtins.c:184 +#, fuzzy +msgid "for (( exp1; exp2; exp3 )); do COMMANDS; done" +msgstr "for NUME [în EXPRESIE ... ;] executã COMENZI; done" + +#: builtins.c:186 +msgid "select NAME [in WORDS ... ;] do COMMANDS; done" +msgstr "select NUME [în EXPRESIE ... ;] executã COMENZI; done" + +#: builtins.c:188 +msgid "time [-p] pipeline" +msgstr "" + +#: builtins.c:190 +msgid "case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac" +msgstr "case EXPRESIE în [TIPAR[[TIPAR]..) COMENZI ;;]... esac" + +#: builtins.c:192 +msgid "" +"if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else " +"COMMANDS; ] fi" +msgstr "" +"if COMENZI; then COMENZI; [elif COMENZI; then COMENZI; ]... [ else " +"COMENZI; ] fi" + +#: builtins.c:194 +msgid "while COMMANDS; do COMMANDS; done" +msgstr "while COMENZI; do COMENZI; done" + +#: builtins.c:196 +msgid "until COMMANDS; do COMMANDS; done" +msgstr "until COMENZI; do COMENZI; done" + +#: builtins.c:198 +#, fuzzy +msgid "function name { COMMANDS ; } or name () { COMMANDS ; }" +msgstr "function NUME { COMENZI ; } sau NUME () { COMENZI ; }" + +#: builtins.c:200 +#, fuzzy +msgid "{ COMMANDS ; }" +msgstr "{ COMENZI }" + +#: builtins.c:202 +#, fuzzy +msgid "job_spec [&]" +msgstr "fg [job_spec]" + +#: builtins.c:204 +#, fuzzy +msgid "(( expression ))" +msgstr "se aºteaptã expresie" + +#: builtins.c:206 +#, fuzzy +msgid "[[ expression ]]" +msgstr "se aºteaptã expresie" + +#: builtins.c:208 +#, fuzzy +msgid "variables - Names and meanings of some shell variables" +msgstr "Variabilele shell-ului sunt admise ca operanzi. Numele variabilei" + +#: builtins.c:211 +#, fuzzy +msgid "pushd [-n] [+N | -N | dir]" +msgstr "pushd [dir | +N | -N] [-n]" + +#: builtins.c:215 +#, fuzzy +msgid "popd [-n] [+N | -N]" +msgstr "popd [+N | -N] [-n]" + +#: builtins.c:219 +msgid "dirs [-clpv] [+N] [-N]" +msgstr "dirs [-clpv] [+N] [-N]" + +#: builtins.c:222 +#, fuzzy +msgid "shopt [-pqsu] [-o] [optname ...]" +msgstr "shopt [-pqsu] [-o opþiune lungã] nume_opt [nume_opt...]" + +#: builtins.c:224 +msgid "printf [-v var] format [arguments]" +msgstr "" + +#: builtins.c:227 +msgid "" +"complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W " +"wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] " +"[name ...]" +msgstr "" + +#: builtins.c:231 +msgid "" +"compgen [-abcdefgjksuv] [-o option] [-A action] [-G globpat] [-W wordlist] " +"[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]" +msgstr "" + +#: builtins.c:235 +#, fuzzy +msgid "compopt [-o|+o option] [name ...]" +msgstr "type [-apt] nume [nume ...]" + +#: builtins.c:238 +msgid "" +"mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c " +"quantum] [array]" +msgstr "" + +#: builtins.c:250 +msgid "" +"Define or display aliases.\n" +" \n" +" Without arguments, `alias' prints the list of aliases in the reusable\n" +" form `alias NAME=VALUE' on standard output.\n" +" \n" +" Otherwise, an alias is defined for each NAME whose VALUE is given.\n" +" A trailing space in VALUE causes the next word to be checked for\n" +" alias substitution when the alias is expanded.\n" +" \n" +" Options:\n" +" -p\tPrint all defined aliases in a reusable format\n" +" \n" +" Exit Status:\n" +" alias returns true unless a NAME is supplied for which no alias has " +"been\n" +" defined." +msgstr "" + +#: builtins.c:272 +msgid "" +"Remove each NAME from the list of defined aliases.\n" +" \n" +" Options:\n" +" -a\tremove all alias definitions.\n" +" \n" +" Return success unless a NAME is not an existing alias." +msgstr "" + +#: builtins.c:285 +msgid "" +"Set Readline key bindings and variables.\n" +" \n" +" Bind a key sequence to a Readline function or a macro, or set a\n" +" Readline variable. The non-option argument syntax is equivalent to\n" +" that found in ~/.inputrc, but must be passed as a single argument:\n" +" e.g., bind '\"\\C-x\\C-r\": re-read-init-file'.\n" +" \n" +" Options:\n" +" -m keymap Use KEYMAP as the keymap for the duration of this\n" +" command. Acceptable keymap names are emacs,\n" +" emacs-standard, emacs-meta, emacs-ctlx, vi, vi-" +"move,\n" +" vi-command, and vi-insert.\n" +" -l List names of functions.\n" +" -P List function names and bindings.\n" +" -p List functions and bindings in a form that can be\n" +" reused as input.\n" +" -S List key sequences that invoke macros and their " +"values\n" +" -s List key sequences that invoke macros and their " +"values\n" +" in a form that can be reused as input.\n" +" -V List variable names and values\n" +" -v List variable names and values in a form that can\n" +" be reused as input.\n" +" -q function-name Query about which keys invoke the named function.\n" +" -u function-name Unbind all keys which are bound to the named " +"function.\n" +" -r keyseq Remove the binding for KEYSEQ.\n" +" -f filename Read key bindings from FILENAME.\n" +" -x keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n" +" \t\t\t\tKEYSEQ is entered.\n" +" \n" +" Exit Status:\n" +" bind returns 0 unless an unrecognized option is given or an error occurs." +msgstr "" + +#: builtins.c:322 +msgid "" +"Exit for, while, or until loops.\n" +" \n" +" Exit a FOR, WHILE or UNTIL loop. If N is specified, break N enclosing\n" +" loops.\n" +" \n" +" Exit Status:\n" +" The exit status is 0 unless N is not greater than or equal to 1." +msgstr "" + +#: builtins.c:334 +msgid "" +"Resume for, while, or until loops.\n" +" \n" +" Resumes the next iteration of the enclosing FOR, WHILE or UNTIL loop.\n" +" If N is specified, resumes the Nth enclosing loop.\n" +" \n" +" Exit Status:\n" +" The exit status is 0 unless N is not greater than or equal to 1." +msgstr "" + +#: builtins.c:346 +msgid "" +"Execute shell builtins.\n" +" \n" +" Execute SHELL-BUILTIN with arguments ARGs without performing command\n" +" lookup. This is useful when you wish to reimplement a shell builtin\n" +" as a shell function, but need to execute the builtin within the " +"function.\n" +" \n" +" Exit Status:\n" +" Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is\n" +" not a shell builtin.." +msgstr "" + +#: builtins.c:361 +msgid "" +"Return the context of the current subroutine call.\n" +" \n" +" Without EXPR, returns \"$line $filename\". With EXPR, returns\n" +" \"$line $subroutine $filename\"; this extra information can be used to\n" +" provide a stack trace.\n" +" \n" +" The value of EXPR indicates how many call frames to go back before the\n" +" current one; the top frame is frame 0.\n" +" \n" +" Exit Status:\n" +" Returns 0 unless the shell is not executing a shell function or EXPR\n" +" is invalid." +msgstr "" + +#: builtins.c:379 +msgid "" +"Change the shell working directory.\n" +" \n" +" Change the current directory to DIR. The default DIR is the value of " +"the\n" +" HOME shell variable.\n" +" \n" +" The variable CDPATH defines the search path for the directory " +"containing\n" +" DIR. Alternative directory names in CDPATH are separated by a colon " +"(:).\n" +" A null directory name is the same as the current directory. If DIR " +"begins\n" +" with a slash (/), then CDPATH is not used.\n" +" \n" +" If the directory is not found, and the shell option `cdable_vars' is " +"set,\n" +" the word is assumed to be a variable name. If that variable has a " +"value,\n" +" its value is used for DIR.\n" +" \n" +" Options:\n" +" -L\tforce symbolic links to be followed\n" +" -P\tuse the physical directory structure without following symbolic\n" +" \tlinks\n" +" \n" +" The default is to follow symbolic links, as if `-L' were specified.\n" +" \n" +" Exit Status:\n" +" Returns 0 if the directory is changed; non-zero otherwise." +msgstr "" + +#: builtins.c:407 +msgid "" +"Print the name of the current working directory.\n" +" \n" +" Options:\n" +" -L\tprint the value of $PWD if it names the current working\n" +" \tdirectory\n" +" -P\tprint the physical directory, without any symbolic links\n" +" \n" +" By default, `pwd' behaves as if `-L' were specified.\n" +" \n" +" Exit Status:\n" +" Returns 0 unless an invalid option is given or the current directory\n" +" cannot be read." +msgstr "" + +#: builtins.c:424 +#, fuzzy +msgid "" +"Null command.\n" +" \n" +" No effect; the command does nothing.\n" +" \n" +" Exit Status:\n" +" Always succeeds." +msgstr "" +"Nici un efect, comanda nu face nimic. Un cod de ieºire zero este returnat." + +#: builtins.c:435 +msgid "" +"Return a successful result.\n" +" \n" +" Exit Status:\n" +" Always succeeds." +msgstr "" + +#: builtins.c:444 +msgid "" +"Return an unsuccessful result.\n" +" \n" +" Exit Status:\n" +" Always fails." +msgstr "" + +#: builtins.c:453 +msgid "" +"Execute a simple command or display information about commands.\n" +" \n" +" Runs COMMAND with ARGS suppressing shell function lookup, or display\n" +" information about the specified COMMANDs. Can be used to invoke " +"commands\n" +" on disk when a function with the same name exists.\n" +" \n" +" Options:\n" +" -p\tuse a default value for PATH that is guaranteed to find all of\n" +" \tthe standard utilities\n" +" -v\tprint a description of COMMAND similar to the `type' builtin\n" +" -V\tprint a more verbose description of each COMMAND\n" +" \n" +" Exit Status:\n" +" Returns exit status of COMMAND, or failure if COMMAND is not found." +msgstr "" + +#: builtins.c:472 +msgid "" +"Set variable values and attributes.\n" +" \n" +" Declare variables and give them attributes. If no NAMEs are given,\n" +" display the attributes and values of all variables.\n" +" \n" +" Options:\n" +" -f\trestrict action or display to function names and definitions\n" +" -F\trestrict display to function names only (plus line number and\n" +" \tsource file when debugging)\n" +" -p\tdisplay the attributes and value of each NAME\n" +" \n" +" Options which set attributes:\n" +" -a\tto make NAMEs indexed arrays (if supported)\n" +" -A\tto make NAMEs associative arrays (if supported)\n" +" -i\tto make NAMEs have the `integer' attribute\n" +" -l\tto convert NAMEs to lower case on assignment\n" +" -r\tto make NAMEs readonly\n" +" -t\tto make NAMEs have the `trace' attribute\n" +" -u\tto convert NAMEs to upper case on assignment\n" +" -x\tto make NAMEs export\n" +" \n" +" Using `+' instead of `-' turns off the given attribute.\n" +" \n" +" Variables with the integer attribute have arithmetic evaluation (see\n" +" the `let' command) performed when the variable is assigned a value.\n" +" \n" +" When used in a function, `declare' makes NAMEs local, as with the " +"`local'\n" +" command.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" + +#: builtins.c:508 +msgid "" +"Set variable values and attributes.\n" +" \n" +" Obsolete. See `help declare'." +msgstr "" + +#: builtins.c:516 +msgid "" +"Define local variables.\n" +" \n" +" Create a local variable called NAME, and give it VALUE. OPTION can\n" +" be any option accepted by `declare'.\n" +" \n" +" Local variables can only be used within a function; they are visible\n" +" only to the function where they are defined and its children.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied, an error occurs,\n" +" or the shell is not executing a function." +msgstr "" + +#: builtins.c:533 +msgid "" +"Write arguments to the standard output.\n" +" \n" +" Display the ARGs on the standard output followed by a newline.\n" +" \n" +" Options:\n" +" -n\tdo not append a newline\n" +" -e\tenable interpretation of the following backslash escapes\n" +" -E\texplicitly suppress interpretation of backslash escapes\n" +" \n" +" `echo' interprets the following backslash-escaped characters:\n" +" \\a\talert (bell)\n" +" \\b\tbackspace\n" +" \\c\tsuppress further output\n" +" \\e\tescape character\n" +" \\f\tform feed\n" +" \\n\tnew line\n" +" \\r\tcarriage return\n" +" \\t\thorizontal tab\n" +" \\v\tvertical tab\n" +" \\\\\tbackslash\n" +" \\0nnn\tthe character whose ASCII code is NNN (octal). NNN can be\n" +" \t0 to 3 octal digits\n" +" \\xHH\tthe eight-bit character whose value is HH (hexadecimal). HH\n" +" \tcan be one or two hex digits\n" +" \n" +" Exit Status:\n" +" Returns success unless a write error occurs." +msgstr "" + +#: builtins.c:567 +msgid "" +"Write arguments to the standard output.\n" +" \n" +" Display the ARGs on the standard output followed by a newline.\n" +" \n" +" Options:\n" +" -n\tdo not append a newline\n" +" \n" +" Exit Status:\n" +" Returns success unless a write error occurs." +msgstr "" + +#: builtins.c:582 +msgid "" +"Enable and disable shell builtins.\n" +" \n" +" Enables and disables builtin shell commands. Disabling allows you to\n" +" execute a disk command which has the same name as a shell builtin\n" +" without using a full pathname.\n" +" \n" +" Options:\n" +" -a\tprint a list of builtins showing whether or not each is enabled\n" +" -n\tdisable each NAME or display a list of disabled builtins\n" +" -p\tprint the list of builtins in a reusable format\n" +" -s\tprint only the names of Posix `special' builtins\n" +" \n" +" Options controlling dynamic loading:\n" +" -f\tLoad builtin NAME from shared object FILENAME\n" +" -d\tRemove a builtin loaded with -f\n" +" \n" +" Without options, each NAME is enabled.\n" +" \n" +" To use the `test' found in $PATH instead of the shell builtin\n" +" version, type `enable -n test'.\n" +" \n" +" Exit Status:\n" +" Returns success unless NAME is not a shell builtin or an error occurs." +msgstr "" + +#: builtins.c:610 +msgid "" +"Execute arguments as a shell command.\n" +" \n" +" Combine ARGs into a single string, use the result as input to the " +"shell,\n" +" and execute the resulting commands.\n" +" \n" +" Exit Status:\n" +" Returns exit status of command or success if command is null." +msgstr "" + +#: builtins.c:622 +msgid "" +"Parse option arguments.\n" +" \n" +" Getopts is used by shell procedures to parse positional parameters\n" +" as options.\n" +" \n" +" OPTSTRING contains the option letters to be recognized; if a letter\n" +" is followed by a colon, the option is expected to have an argument,\n" +" which should be separated from it by white space.\n" +" \n" +" Each time it is invoked, getopts will place the next option in the\n" +" shell variable $name, initializing name if it does not exist, and\n" +" the index of the next argument to be processed into the shell\n" +" variable OPTIND. OPTIND is initialized to 1 each time the shell or\n" +" a shell script is invoked. When an option requires an argument,\n" +" getopts places that argument into the shell variable OPTARG.\n" +" \n" +" getopts reports errors in one of two ways. If the first character\n" +" of OPTSTRING is a colon, getopts uses silent error reporting. In\n" +" this mode, no error messages are printed. If an invalid option is\n" +" seen, getopts places the option character found into OPTARG. If a\n" +" required argument is not found, getopts places a ':' into NAME and\n" +" sets OPTARG to the option character found. If getopts is not in\n" +" silent mode, and an invalid option is seen, getopts places '?' into\n" +" NAME and unsets OPTARG. If a required argument is not found, a '?'\n" +" is placed in NAME, OPTARG is unset, and a diagnostic message is\n" +" printed.\n" +" \n" +" If the shell variable OPTERR has the value 0, getopts disables the\n" +" printing of error messages, even if the first character of\n" +" OPTSTRING is not a colon. OPTERR has the value 1 by default.\n" +" \n" +" Getopts normally parses the positional parameters ($0 - $9), but if\n" +" more arguments are given, they are parsed instead.\n" +" \n" +" Exit Status:\n" +" Returns success if an option is found; fails if the end of options is\n" +" encountered or an error occurs." +msgstr "" + +#: builtins.c:664 +msgid "" +"Replace the shell with the given command.\n" +" \n" +" Execute COMMAND, replacing this shell with the specified program.\n" +" ARGUMENTS become the arguments to COMMAND. If COMMAND is not " +"specified,\n" +" any redirections take effect in the current shell.\n" +" \n" +" Options:\n" +" -a name\tpass NAME as the zeroth argument to COMMAND\n" +" -c\t\texecute COMMAND with an empty environment\n" +" -l\t\tplace a dash in the zeroth argument to COMMAND\n" +" \n" +" If the command cannot be executed, a non-interactive shell exits, " +"unless\n" +" the shell option `execfail' is set.\n" +" \n" +" Exit Status:\n" +" Returns success unless COMMAND is not found or a redirection error " +"occurs." +msgstr "" + +#: builtins.c:685 +#, fuzzy +msgid "" +"Exit the shell.\n" +" \n" +" Exits the shell with a status of N. If N is omitted, the exit status\n" +" is that of the last command executed." +msgstr "Iese din shell cu starea lui N. Dacã N este omis, starea de ieºire" + +#: builtins.c:694 +msgid "" +"Exit a login shell.\n" +" \n" +" Exits a login shell with exit status N. Returns an error if not " +"executed\n" +" in a login shell." +msgstr "" + +#: builtins.c:704 +msgid "" +"Display or execute commands from the history list.\n" +" \n" +" fc is used to list or edit and re-execute commands from the history " +"list.\n" +" FIRST and LAST can be numbers specifying the range, or FIRST can be a\n" +" string, which means the most recent command beginning with that\n" +" string.\n" +" \n" +" Options:\n" +" -e ENAME\tselect which editor to use. Default is FCEDIT, then " +"EDITOR,\n" +" \t\tthen vi\n" +" -l \tlist lines instead of editing\n" +" -n\tomit line numbers when listing\n" +" -r\treverse the order of the lines (newest listed first)\n" +" \n" +" With the `fc -s [pat=rep ...] [command]' format, COMMAND is\n" +" re-executed after the substitution OLD=NEW is performed.\n" +" \n" +" A useful alias to use with this is r='fc -s', so that typing `r cc'\n" +" runs the last command beginning with `cc' and typing `r' re-executes\n" +" the last command.\n" +" \n" +" Exit Status:\n" +" Returns success or status of executed command; non-zero if an error " +"occurs." +msgstr "" + +#: builtins.c:734 +msgid "" +"Move job to the foreground.\n" +" \n" +" Place the job identified by JOB_SPEC in the foreground, making it the\n" +" current job. If JOB_SPEC is not present, the shell's notion of the\n" +" current job is used.\n" +" \n" +" Exit Status:\n" +" Status of command placed in foreground, or failure if an error occurs." +msgstr "" + +#: builtins.c:749 +msgid "" +"Move jobs to the background.\n" +" \n" +" Place the jobs identified by each JOB_SPEC in the background, as if " +"they\n" +" had been started with `&'. If JOB_SPEC is not present, the shell's " +"notion\n" +" of the current job is used.\n" +" \n" +" Exit Status:\n" +" Returns success unless job control is not enabled or an error occurs." +msgstr "" + +#: builtins.c:763 +msgid "" +"Remember or display program locations.\n" +" \n" +" Determine and remember the full pathname of each command NAME. If\n" +" no arguments are given, information about remembered commands is " +"displayed.\n" +" \n" +" Options:\n" +" -d\t\tforget the remembered location of each NAME\n" +" -l\t\tdisplay in a format that may be reused as input\n" +" -p pathname\tuse PATHNAME is the full pathname of NAME\n" +" -r\t\tforget all remembered locations\n" +" -t\t\tprint the remembered location of each NAME, preceding\n" +" \t\teach location with the corresponding NAME if multiple\n" +" \t\tNAMEs are given\n" +" Arguments:\n" +" NAME\t\tEach NAME is searched for in $PATH and added to the list\n" +" \t\tof remembered commands.\n" +" \n" +" Exit Status:\n" +" Returns success unless NAME is not found or an invalid option is given." +msgstr "" + +#: builtins.c:788 +msgid "" +"Display information about builtin commands.\n" +" \n" +" Displays brief summaries of builtin commands. If PATTERN is\n" +" specified, gives detailed help on all commands matching PATTERN,\n" +" otherwise the list of help topics is printed.\n" +" \n" +" Options:\n" +" -d\toutput short description for each topic\n" +" -m\tdisplay usage in pseudo-manpage format\n" +" -s\toutput only a short usage synopsis for each topic matching\n" +" \tPATTERN\n" +" \n" +" Arguments:\n" +" PATTERN\tPattern specifiying a help topic\n" +" \n" +" Exit Status:\n" +" Returns success unless PATTERN is not found or an invalid option is " +"given." +msgstr "" + +#: builtins.c:812 +msgid "" +"Display or manipulate the history list.\n" +" \n" +" Display the history list with line numbers, prefixing each modified\n" +" entry with a `*'. An argument of N lists only the last N entries.\n" +" \n" +" Options:\n" +" -c\tclear the history list by deleting all of the entries\n" +" -d offset\tdelete the history entry at offset OFFSET.\n" +" \n" +" -a\tappend history lines from this session to the history file\n" +" -n\tread all history lines not already read from the history file\n" +" -r\tread the history file and append the contents to the history\n" +" \tlist\n" +" -w\twrite the current history to the history file\n" +" \tand append them to the history list\n" +" \n" +" -p\tperform history expansion on each ARG and display the result\n" +" \twithout storing it in the history list\n" +" -s\tappend the ARGs to the history list as a single entry\n" +" \n" +" If FILENAME is given, it is used as the history file. Otherwise,\n" +" if $HISTFILE has a value, that is used, else ~/.bash_history.\n" +" \n" +" If the $HISTTIMEFORMAT variable is set and not null, its value is used\n" +" as a format string for strftime(3) to print the time stamp associated\n" +" with each displayed history entry. No time stamps are printed " +"otherwise.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or an error occurs." +msgstr "" + +#: builtins.c:848 +msgid "" +"Display status of jobs.\n" +" \n" +" Lists the active jobs. JOBSPEC restricts output to that job.\n" +" Without options, the status of all active jobs is displayed.\n" +" \n" +" Options:\n" +" -l\tlists process IDs in addition to the normal information\n" +" -n\tlist only processes that have changed status since the last\n" +" \tnotification\n" +" -p\tlists process IDs only\n" +" -r\trestrict output to running jobs\n" +" -s\trestrict output to stopped jobs\n" +" \n" +" If -x is supplied, COMMAND is run after all job specifications that\n" +" appear in ARGS have been replaced with the process ID of that job's\n" +" process group leader.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or an error occurs.\n" +" If -x is used, returns the exit status of COMMAND." +msgstr "" + +#: builtins.c:875 +msgid "" +"Remove jobs from current shell.\n" +" \n" +" Removes each JOBSPEC argument from the table of active jobs. Without\n" +" any JOBSPECs, the shell uses its notion of the current job.\n" +" \n" +" Options:\n" +" -a\tremove all jobs if JOBSPEC is not supplied\n" +" -h\tmark each JOBSPEC so that SIGHUP is not sent to the job if the\n" +" \tshell receives a SIGHUP\n" +" -r\tremove only running jobs\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option or JOBSPEC is given." +msgstr "" + +#: builtins.c:894 +msgid "" +"Send a signal to a job.\n" +" \n" +" Send the processes identified by PID or JOBSPEC the signal named by\n" +" SIGSPEC or SIGNUM. If neither SIGSPEC nor SIGNUM is present, then\n" +" SIGTERM is assumed.\n" +" \n" +" Options:\n" +" -s sig\tSIG is a signal name\n" +" -n sig\tSIG is a signal number\n" +" -l\tlist the signal names; if arguments follow `-l' they are\n" +" \tassumed to be signal numbers for which names should be listed\n" +" \n" +" Kill is a shell builtin for two reasons: it allows job IDs to be used\n" +" instead of process IDs, and allows processes to be killed if the limit\n" +" on processes that you can create is reached.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or an error occurs." +msgstr "" + +#: builtins.c:917 +msgid "" +"Evaluate arithmetic expressions.\n" +" \n" +" Evaluate each ARG as an arithmetic expression. Evaluation is done in\n" +" fixed-width integers with no check for overflow, though division by 0\n" +" is trapped and flagged as an error. The following list of operators is\n" +" grouped into levels of equal-precedence operators. The levels are " +"listed\n" +" in order of decreasing precedence.\n" +" \n" +" \tid++, id--\tvariable post-increment, post-decrement\n" +" \t++id, --id\tvariable pre-increment, pre-decrement\n" +" \t-, +\t\tunary minus, plus\n" +" \t!, ~\t\tlogical and bitwise negation\n" +" \t**\t\texponentiation\n" +" \t*, /, %\t\tmultiplication, division, remainder\n" +" \t+, -\t\taddition, subtraction\n" +" \t<<, >>\t\tleft and right bitwise shifts\n" +" \t<=, >=, <, >\tcomparison\n" +" \t==, !=\t\tequality, inequality\n" +" \t&\t\tbitwise AND\n" +" \t^\t\tbitwise XOR\n" +" \t|\t\tbitwise OR\n" +" \t&&\t\tlogical AND\n" +" \t||\t\tlogical OR\n" +" \texpr ? expr : expr\n" +" \t\t\tconditional operator\n" +" \t=, *=, /=, %=,\n" +" \t+=, -=, <<=, >>=,\n" +" \t&=, ^=, |=\tassignment\n" +" \n" +" Shell variables are allowed as operands. The name of the variable\n" +" is replaced by its value (coerced to a fixed-width integer) within\n" +" an expression. The variable need not have its integer attribute\n" +" turned on to be used in an expression.\n" +" \n" +" Operators are evaluated in order of precedence. Sub-expressions in\n" +" parentheses are evaluated first and may override the precedence\n" +" rules above.\n" +" \n" +" Exit Status:\n" +" If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise.." +msgstr "" + +#: builtins.c:962 +msgid "" +"Read a line from the standard input and split it into fields.\n" +" \n" +" Reads a single line from the standard input, or from file descriptor FD\n" +" if the -u option is supplied. The line is split into fields as with " +"word\n" +" splitting, and the first word is assigned to the first NAME, the second\n" +" word to the second NAME, and so on, with any leftover words assigned to\n" +" the last NAME. Only the characters found in $IFS are recognized as " +"word\n" +" delimiters.\n" +" \n" +" If no NAMEs are supplied, the line read is stored in the REPLY " +"variable.\n" +" \n" +" Options:\n" +" -a array\tassign the words read to sequential indices of the array\n" +" \t\tvariable ARRAY, starting at zero\n" +" -d delim\tcontinue until the first character of DELIM is read, rather\n" +" \t\tthan newline\n" +" -e\t\tuse Readline to obtain the line in an interactive shell\n" +" -i text\tUse TEXT as the initial text for Readline\n" +" -n nchars\treturn after reading NCHARS characters rather than waiting\n" +" \t\tfor a newline\n" +" -p prompt\toutput the string PROMPT without a trailing newline before\n" +" \t\tattempting to read\n" +" -r\t\tdo not allow backslashes to escape any characters\n" +" -s\t\tdo not echo input coming from a terminal\n" +" -t timeout\ttime out and return failure if a complete line of input " +"is\n" +" \t\tnot read withint TIMEOUT seconds. The value of the TMOUT\n" +" \t\tvariable is the default timeout. TIMEOUT may be a\n" +" \t\tfractional number. If TIMEOUT is 0, read returns success only\n" +" \t\tif input is available on the specified file descriptor. The\n" +" \t\texit status is greater than 128 if the timeout is exceeded\n" +" -u fd\t\tread from file descriptor FD instead of the standard input\n" +" \n" +" Exit Status:\n" +" The return code is zero, unless end-of-file is encountered, read times " +"out,\n" +" or an invalid file descriptor is supplied as the argument to -u." +msgstr "" + +#: builtins.c:1002 +msgid "" +"Return from a shell function.\n" +" \n" +" Causes a function or sourced script to exit with the return value\n" +" specified by N. If N is omitted, the return status is that of the\n" +" last command executed within the function or script.\n" +" \n" +" Exit Status:\n" +" Returns N, or failure if the shell is not executing a function or script." +msgstr "" + +#: builtins.c:1015 +msgid "" +"Set or unset values of shell options and positional parameters.\n" +" \n" +" Change the value of shell attributes and positional parameters, or\n" +" display the names and values of shell variables.\n" +" \n" +" Options:\n" +" -a Mark variables which are modified or created for export.\n" +" -b Notify of job termination immediately.\n" +" -e Exit immediately if a command exits with a non-zero status.\n" +" -f Disable file name generation (globbing).\n" +" -h Remember the location of commands as they are looked up.\n" +" -k All assignment arguments are placed in the environment for a\n" +" command, not just those that precede the command name.\n" +" -m Job control is enabled.\n" +" -n Read commands but do not execute them.\n" +" -o option-name\n" +" Set the variable corresponding to option-name:\n" +" allexport same as -a\n" +" braceexpand same as -B\n" +" emacs use an emacs-style line editing interface\n" +" errexit same as -e\n" +" errtrace same as -E\n" +" functrace same as -T\n" +" hashall same as -h\n" +" histexpand same as -H\n" +" history enable command history\n" +" ignoreeof the shell will not exit upon reading EOF\n" +" interactive-comments\n" +" allow comments to appear in interactive commands\n" +" keyword same as -k\n" +" monitor same as -m\n" +" noclobber same as -C\n" +" noexec same as -n\n" +" noglob same as -f\n" +" nolog currently accepted but ignored\n" +" notify same as -b\n" +" nounset same as -u\n" +" onecmd same as -t\n" +" physical same as -P\n" +" pipefail the return value of a pipeline is the status of\n" +" the last command to exit with a non-zero status,\n" +" or zero if no command exited with a non-zero " +"status\n" +" posix change the behavior of bash where the default\n" +" operation differs from the Posix standard to\n" +" match the standard\n" +" privileged same as -p\n" +" verbose same as -v\n" +" vi use a vi-style line editing interface\n" +" xtrace same as -x\n" +" -p Turned on whenever the real and effective user ids do not match.\n" +" Disables processing of the $ENV file and importing of shell\n" +" functions. Turning this option off causes the effective uid and\n" +" gid to be set to the real uid and gid.\n" +" -t Exit after reading and executing one command.\n" +" -u Treat unset variables as an error when substituting.\n" +" -v Print shell input lines as they are read.\n" +" -x Print commands and their arguments as they are executed.\n" +" -B the shell will perform brace expansion\n" +" -C If set, disallow existing regular files to be overwritten\n" +" by redirection of output.\n" +" -E If set, the ERR trap is inherited by shell functions.\n" +" -H Enable ! style history substitution. This flag is on\n" +" by default when the shell is interactive.\n" +" -P If set, do not follow symbolic links when executing commands\n" +" such as cd which change the current directory.\n" +" -T If set, the DEBUG trap is inherited by shell functions.\n" +" - Assign any remaining arguments to the positional parameters.\n" +" The -x and -v options are turned off.\n" +" \n" +" Using + rather than - causes these flags to be turned off. The\n" +" flags can also be used upon invocation of the shell. The current\n" +" set of flags may be found in $-. The remaining n ARGs are positional\n" +" parameters and are assigned, in order, to $1, $2, .. $n. If no\n" +" ARGs are given, all shell variables are printed.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given." +msgstr "" + +#: builtins.c:1097 +msgid "" +"Unset values and attributes of shell variables and functions.\n" +" \n" +" For each NAME, remove the corresponding variable or function.\n" +" \n" +" Options:\n" +" -f\ttreat each NAME as a shell function\n" +" -v\ttreat each NAME as a shell variable\n" +" \n" +" Without options, unset first tries to unset a variable, and if that " +"fails,\n" +" tries to unset a function.\n" +" \n" +" Some variables cannot be unset; also see `readonly'.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or a NAME is read-only." +msgstr "" + +#: builtins.c:1117 +msgid "" +"Set export attribute for shell variables.\n" +" \n" +" Marks each NAME for automatic export to the environment of subsequently\n" +" executed commands. If VALUE is supplied, assign VALUE before " +"exporting.\n" +" \n" +" Options:\n" +" -f\trefer to shell functions\n" +" -n\tremove the export property from each NAME\n" +" -p\tdisplay a list of all exported variables and functions\n" +" \n" +" An argument of `--' disables further option processing.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or NAME is invalid." +msgstr "" + +#: builtins.c:1136 +msgid "" +"Mark shell variables as unchangeable.\n" +" \n" +" Mark each NAME as read-only; the values of these NAMEs may not be\n" +" changed by subsequent assignment. If VALUE is supplied, assign VALUE\n" +" before marking as read-only.\n" +" \n" +" Options:\n" +" -a\trefer to indexed array variables\n" +" -A\trefer to associative array variables\n" +" -f\trefer to shell functions\n" +" -p\tdisplay a list of all readonly variables and functions\n" +" \n" +" An argument of `--' disables further option processing.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or NAME is invalid." +msgstr "" + +#: builtins.c:1157 +msgid "" +"Shift positional parameters.\n" +" \n" +" Rename the positional parameters $N+1,$N+2 ... to $1,$2 ... If N is\n" +" not given, it is assumed to be 1.\n" +" \n" +" Exit Status:\n" +" Returns success unless N is negative or greater than $#." +msgstr "" + +#: builtins.c:1169 builtins.c:1184 +msgid "" +"Execute commands from a file in the current shell.\n" +" \n" +" Read and execute commands from FILENAME in the current shell. The\n" +" entries in $PATH are used to find the directory containing FILENAME.\n" +" If any ARGUMENTS are supplied, they become the positional parameters\n" +" when FILENAME is executed.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed in FILENAME; fails if\n" +" FILENAME cannot be read." +msgstr "" + +#: builtins.c:1200 +msgid "" +"Suspend shell execution.\n" +" \n" +" Suspend the execution of this shell until it receives a SIGCONT signal.\n" +" Unless forced, login shells cannot be suspended.\n" +" \n" +" Options:\n" +" -f\tforce the suspend, even if the shell is a login shell\n" +" \n" +" Exit Status:\n" +" Returns success unless job control is not enabled or an error occurs." +msgstr "" + +#: builtins.c:1216 +msgid "" +"Evaluate conditional expression.\n" +" \n" +" Exits with a status of 0 (true) or 1 (false) depending on\n" +" the evaluation of EXPR. Expressions may be unary or binary. Unary\n" +" expressions are often used to examine the status of a file. There\n" +" are string operators as well, and numeric comparison operators.\n" +" \n" +" File operators:\n" +" \n" +" -a FILE True if file exists.\n" +" -b FILE True if file is block special.\n" +" -c FILE True if file is character special.\n" +" -d FILE True if file is a directory.\n" +" -e FILE True if file exists.\n" +" -f FILE True if file exists and is a regular file.\n" +" -g FILE True if file is set-group-id.\n" +" -h FILE True if file is a symbolic link.\n" +" -L FILE True if file is a symbolic link.\n" +" -k FILE True if file has its `sticky' bit set.\n" +" -p FILE True if file is a named pipe.\n" +" -r FILE True if file is readable by you.\n" +" -s FILE True if file exists and is not empty.\n" +" -S FILE True if file is a socket.\n" +" -t FD True if FD is opened on a terminal.\n" +" -u FILE True if the file is set-user-id.\n" +" -w FILE True if the file is writable by you.\n" +" -x FILE True if the file is executable by you.\n" +" -O FILE True if the file is effectively owned by you.\n" +" -G FILE True if the file is effectively owned by your group.\n" +" -N FILE True if the file has been modified since it was last " +"read.\n" +" \n" +" FILE1 -nt FILE2 True if file1 is newer than file2 (according to\n" +" modification date).\n" +" \n" +" FILE1 -ot FILE2 True if file1 is older than file2.\n" +" \n" +" FILE1 -ef FILE2 True if file1 is a hard link to file2.\n" +" \n" +" String operators:\n" +" \n" +" -z STRING True if string is empty.\n" +" \n" +" -n STRING\n" +" STRING True if string is not empty.\n" +" \n" +" STRING1 = STRING2\n" +" True if the strings are equal.\n" +" STRING1 != STRING2\n" +" True if the strings are not equal.\n" +" STRING1 < STRING2\n" +" True if STRING1 sorts before STRING2 " +"lexicographically.\n" +" STRING1 > STRING2\n" +" True if STRING1 sorts after STRING2 lexicographically.\n" +" \n" +" Other operators:\n" +" \n" +" -o OPTION True if the shell option OPTION is enabled.\n" +" ! EXPR True if expr is false.\n" +" EXPR1 -a EXPR2 True if both expr1 AND expr2 are true.\n" +" EXPR1 -o EXPR2 True if either expr1 OR expr2 is true.\n" +" \n" +" arg1 OP arg2 Arithmetic tests. OP is one of -eq, -ne,\n" +" -lt, -le, -gt, or -ge.\n" +" \n" +" Arithmetic binary operators return true if ARG1 is equal, not-equal,\n" +" less-than, less-than-or-equal, greater-than, or greater-than-or-equal\n" +" than ARG2.\n" +" \n" +" Exit Status:\n" +" Returns success if EXPR evaluates to true; fails if EXPR evaluates to\n" +" false or an invalid argument is given." +msgstr "" + +#: builtins.c:1292 +msgid "" +"Evaluate conditional expression.\n" +" \n" +" This is a synonym for the \"test\" builtin, but the last argument must\n" +" be a literal `]', to match the opening `['." +msgstr "" + +#: builtins.c:1301 +msgid "" +"Display process times.\n" +" \n" +" Prints the accumulated user and system times for the shell and all of " +"its\n" +" child processes.\n" +" \n" +" Exit Status:\n" +" Always succeeds." +msgstr "" + +#: builtins.c:1313 +msgid "" +"Trap signals and other events.\n" +" \n" +" Defines and activates handlers to be run when the shell receives " +"signals\n" +" or other conditions.\n" +" \n" +" ARG is a command to be read and executed when the shell receives the\n" +" signal(s) SIGNAL_SPEC. If ARG is absent (and a single SIGNAL_SPEC\n" +" is supplied) or `-', each specified signal is reset to its original\n" +" value. If ARG is the null string each SIGNAL_SPEC is ignored by the\n" +" shell and by the commands it invokes.\n" +" \n" +" If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell. " +"If\n" +" a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command.\n" +" \n" +" If no arguments are supplied, trap prints the list of commands " +"associated\n" +" with each signal.\n" +" \n" +" Options:\n" +" -l\tprint a list of signal names and their corresponding numbers\n" +" -p\tdisplay the trap commands associated with each SIGNAL_SPEC\n" +" \n" +" Each SIGNAL_SPEC is either a signal name in or a signal " +"number.\n" +" Signal names are case insensitive and the SIG prefix is optional. A\n" +" signal may be sent to the shell with \"kill -signal $$\".\n" +" \n" +" Exit Status:\n" +" Returns success unless a SIGSPEC is invalid or an invalid option is " +"given." +msgstr "" + +#: builtins.c:1345 +msgid "" +"Display information about command type.\n" +" \n" +" For each NAME, indicate how it would be interpreted if used as a\n" +" command name.\n" +" \n" +" Options:\n" +" -a\tdisplay all locations containing an executable named NAME;\n" +" \tincludes aliases, builtins, and functions, if and only if\n" +" \tthe `-p' option is not also used\n" +" -f\tsuppress shell function lookup\n" +" -P\tforce a PATH search for each NAME, even if it is an alias,\n" +" \tbuiltin, or function, and returns the name of the disk file\n" +" \tthat would be executed\n" +" -p\treturns either the name of the disk file that would be executed,\n" +" \tor nothing if `type -t NAME' would not return `file'.\n" +" -t\toutput a single word which is one of `alias', `keyword',\n" +" \t`function', `builtin', `file' or `', if NAME is an alias, shell\n" +" \treserved word, shell function, shell builtin, disk file, or not\n" +" \tfound, respectively\n" +" \n" +" Arguments:\n" +" NAME\tCommand name to be interpreted.\n" +" \n" +" Exit Status:\n" +" Returns success if all of the NAMEs are found; fails if any are not " +"found." +msgstr "" + +#: builtins.c:1376 +msgid "" +"Modify shell resource limits.\n" +" \n" +" Provides control over the resources available to the shell and " +"processes\n" +" it creates, on systems that allow such control.\n" +" \n" +" Options:\n" +" -S\tuse the `soft' resource limit\n" +" -H\tuse the `hard' resource limit\n" +" -a\tall current limits are reported\n" +" -b\tthe socket buffer size\n" +" -c\tthe maximum size of core files created\n" +" -d\tthe maximum size of a process's data segment\n" +" -e\tthe maximum scheduling priority (`nice')\n" +" -f\tthe maximum size of files written by the shell and its children\n" +" -i\tthe maximum number of pending signals\n" +" -l\tthe maximum size a process may lock into memory\n" +" -m\tthe maximum resident set size\n" +" -n\tthe maximum number of open file descriptors\n" +" -p\tthe pipe buffer size\n" +" -q\tthe maximum number of bytes in POSIX message queues\n" +" -r\tthe maximum real-time scheduling priority\n" +" -s\tthe maximum stack size\n" +" -t\tthe maximum amount of cpu time in seconds\n" +" -u\tthe maximum number of user processes\n" +" -v\tthe size of virtual memory\n" +" -x\tthe maximum number of file locks\n" +" \n" +" If LIMIT is given, it is the new value of the specified resource; the\n" +" special LIMIT values `soft', `hard', and `unlimited' stand for the\n" +" current soft limit, the current hard limit, and no limit, respectively.\n" +" Otherwise, the current value of the specified resource is printed. If\n" +" no option is given, then -f is assumed.\n" +" \n" +" Values are in 1024-byte increments, except for -t, which is in seconds,\n" +" -p, which is in increments of 512 bytes, and -u, which is an unscaled\n" +" number of processes.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" + +#: builtins.c:1421 +msgid "" +"Display or set file mode mask.\n" +" \n" +" Sets the user file-creation mask to MODE. If MODE is omitted, prints\n" +" the current value of the mask.\n" +" \n" +" If MODE begins with a digit, it is interpreted as an octal number;\n" +" otherwise it is a symbolic mode string like that accepted by chmod(1).\n" +" \n" +" Options:\n" +" -p\tif MODE is omitted, output in a form that may be reused as input\n" +" -S\tmakes the output symbolic; otherwise an octal number is output\n" +" \n" +" Exit Status:\n" +" Returns success unless MODE is invalid or an invalid option is given." +msgstr "" + +#: builtins.c:1441 +msgid "" +"Wait for job completion and return exit status.\n" +" \n" +" Waits for the process identified by ID, which may be a process ID or a\n" +" job specification, and reports its termination status. If ID is not\n" +" given, waits for all currently active child processes, and the return\n" +" status is zero. If ID is a a job specification, waits for all " +"processes\n" +" in the job's pipeline.\n" +" \n" +" Exit Status:\n" +" Returns the status of ID; fails if ID is invalid or an invalid option " +"is\n" +" given." +msgstr "" + +#: builtins.c:1459 +msgid "" +"Wait for process completion and return exit status.\n" +" \n" +" Waits for the specified process and reports its termination status. If\n" +" PID is not given, all currently active child processes are waited for,\n" +" and the return code is zero. PID must be a process ID.\n" +" \n" +" Exit Status:\n" +" Returns the status of ID; fails if ID is invalid or an invalid option " +"is\n" +" given." +msgstr "" + +#: builtins.c:1474 +msgid "" +"Execute commands for each member in a list.\n" +" \n" +" The `for' loop executes a sequence of commands for each member in a\n" +" list of items. If `in WORDS ...;' is not present, then `in \"$@\"' is\n" +" assumed. For each element in WORDS, NAME is set to that element, and\n" +" the COMMANDS are executed.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" + +#: builtins.c:1488 +msgid "" +"Arithmetic for loop.\n" +" \n" +" Equivalent to\n" +" \t(( EXP1 ))\n" +" \twhile (( EXP2 )); do\n" +" \t\tCOMMANDS\n" +" \t\t(( EXP3 ))\n" +" \tdone\n" +" EXP1, EXP2, and EXP3 are arithmetic expressions. If any expression is\n" +" omitted, it behaves as if it evaluates to 1.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" + +#: builtins.c:1506 +msgid "" +"Select words from a list and execute commands.\n" +" \n" +" The WORDS are expanded, generating a list of words. The\n" +" set of expanded words is printed on the standard error, each\n" +" preceded by a number. If `in WORDS' is not present, `in \"$@\"'\n" +" is assumed. The PS3 prompt is then displayed and a line read\n" +" from the standard input. If the line consists of the number\n" +" corresponding to one of the displayed words, then NAME is set\n" +" to that word. If the line is empty, WORDS and the prompt are\n" +" redisplayed. If EOF is read, the command completes. Any other\n" +" value read causes NAME to be set to null. The line read is saved\n" +" in the variable REPLY. COMMANDS are executed after each selection\n" +" until a break command is executed.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" + +#: builtins.c:1527 +msgid "" +"Report time consumed by pipeline's execution.\n" +" \n" +" Execute PIPELINE and print a summary of the real time, user CPU time,\n" +" and system CPU time spent executing PIPELINE when it terminates.\n" +" \n" +" Options:\n" +" -p\tprint the timing summary in the portable Posix format\n" +" \n" +" The value of the TIMEFORMAT variable is used as the output format.\n" +" \n" +" Exit Status:\n" +" The return status is the return status of PIPELINE." +msgstr "" + +#: builtins.c:1544 +msgid "" +"Execute commands based on pattern matching.\n" +" \n" +" Selectively execute COMMANDS based upon WORD matching PATTERN. The\n" +" `|' is used to separate multiple patterns.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" + +#: builtins.c:1556 +msgid "" +"Execute commands based on conditional.\n" +" \n" +" The `if COMMANDS' list is executed. If its exit status is zero, then " +"the\n" +" `then COMMANDS' list is executed. Otherwise, each `elif COMMANDS' list " +"is\n" +" executed in turn, and if its exit status is zero, the corresponding\n" +" `then COMMANDS' list is executed and the if command completes. " +"Otherwise,\n" +" the `else COMMANDS' list is executed, if present. The exit status of " +"the\n" +" entire construct is the exit status of the last command executed, or " +"zero\n" +" if no condition tested true.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" + +#: builtins.c:1573 +msgid "" +"Execute commands as long as a test succeeds.\n" +" \n" +" Expand and execute COMMANDS as long as the final command in the\n" +" `while' COMMANDS has an exit status of zero.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" + +#: builtins.c:1585 +msgid "" +"Execute commands as long as a test does not succeed.\n" +" \n" +" Expand and execute COMMANDS as long as the final command in the\n" +" `until' COMMANDS has an exit status which is not zero.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" + +#: builtins.c:1597 +msgid "" +"Define shell function.\n" +" \n" +" Create a shell function named NAME. When invoked as a simple command,\n" +" NAME runs COMMANDs in the calling shell's context. When NAME is " +"invoked,\n" +" the arguments are passed to the function as $1...$n, and the function's\n" +" name is in $FUNCNAME.\n" +" \n" +" Exit Status:\n" +" Returns success unless NAME is readonly." +msgstr "" + +#: builtins.c:1611 +msgid "" +"Group commands as a unit.\n" +" \n" +" Run a set of commands in a group. This is one way to redirect an\n" +" entire set of commands.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" + +#: builtins.c:1623 +msgid "" +"Resume job in foreground.\n" +" \n" +" Equivalent to the JOB_SPEC argument to the `fg' command. Resume a\n" +" stopped or background job. JOB_SPEC can specify either a job name\n" +" or a job number. Following JOB_SPEC with a `&' places the job in\n" +" the background, as if the job specification had been supplied as an\n" +" argument to `bg'.\n" +" \n" +" Exit Status:\n" +" Returns the status of the resumed job." +msgstr "" + +#: builtins.c:1638 +msgid "" +"Evaluate arithmetic expression.\n" +" \n" +" The EXPRESSION is evaluated according to the rules for arithmetic\n" +" evaluation. Equivalent to \"let EXPRESSION\".\n" +" \n" +" Exit Status:\n" +" Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise." +msgstr "" + +#: builtins.c:1650 +msgid "" +"Execute conditional command.\n" +" \n" +" Returns a status of 0 or 1 depending on the evaluation of the " +"conditional\n" +" expression EXPRESSION. Expressions are composed of the same primaries " +"used\n" +" by the `test' builtin, and may be combined using the following " +"operators:\n" +" \n" +" ( EXPRESSION )\tReturns the value of EXPRESSION\n" +" ! EXPRESSION\t\tTrue if EXPRESSION is false; else false\n" +" EXPR1 && EXPR2\tTrue if both EXPR1 and EXPR2 are true; else false\n" +" EXPR1 || EXPR2\tTrue if either EXPR1 or EXPR2 is true; else false\n" +" \n" +" When the `==' and `!=' operators are used, the string to the right of\n" +" the operator is used as a pattern and pattern matching is performed.\n" +" When the `=~' operator is used, the string to the right of the operator\n" +" is matched as a regular expression.\n" +" \n" +" The && and || operators do not evaluate EXPR2 if EXPR1 is sufficient to\n" +" determine the expression's value.\n" +" \n" +" Exit Status:\n" +" 0 or 1 depending on value of EXPRESSION." +msgstr "" + +#: builtins.c:1676 +msgid "" +"Common shell variable names and usage.\n" +" \n" +" BASH_VERSION\tVersion information for this Bash.\n" +" CDPATH\tA colon-separated list of directories to search\n" +" \t\tfor directories given as arguments to `cd'.\n" +" GLOBIGNORE\tA colon-separated list of patterns describing filenames to\n" +" \t\tbe ignored by pathname expansion.\n" +" HISTFILE\tThe name of the file where your command history is stored.\n" +" HISTFILESIZE\tThe maximum number of lines this file can contain.\n" +" HISTSIZE\tThe maximum number of history lines that a running\n" +" \t\tshell can access.\n" +" HOME\tThe complete pathname to your login directory.\n" +" HOSTNAME\tThe name of the current host.\n" +" HOSTTYPE\tThe type of CPU this version of Bash is running under.\n" +" IGNOREEOF\tControls the action of the shell on receipt of an EOF\n" +" \t\tcharacter as the sole input. If set, then the value\n" +" \t\tof it is the number of EOF characters that can be seen\n" +" \t\tin a row on an empty line before the shell will exit\n" +" \t\t(default 10). When unset, EOF signifies the end of input.\n" +" MACHTYPE\tA string describing the current system Bash is running on.\n" +" MAILCHECK\tHow often, in seconds, Bash checks for new mail.\n" +" MAILPATH\tA colon-separated list of filenames which Bash checks\n" +" \t\tfor new mail.\n" +" OSTYPE\tThe version of Unix this version of Bash is running on.\n" +" PATH\tA colon-separated list of directories to search when\n" +" \t\tlooking for commands.\n" +" PROMPT_COMMAND\tA command to be executed before the printing of each\n" +" \t\tprimary prompt.\n" +" PS1\t\tThe primary prompt string.\n" +" PS2\t\tThe secondary prompt string.\n" +" PWD\t\tThe full pathname of the current directory.\n" +" SHELLOPTS\tA colon-separated list of enabled shell options.\n" +" TERM\tThe name of the current terminal type.\n" +" TIMEFORMAT\tThe output format for timing statistics displayed by the\n" +" \t\t`time' reserved word.\n" +" auto_resume\tNon-null means a command word appearing on a line by\n" +" \t\titself is first looked for in the list of currently\n" +" \t\tstopped jobs. If found there, that job is foregrounded.\n" +" \t\tA value of `exact' means that the command word must\n" +" \t\texactly match a command in the list of stopped jobs. A\n" +" \t\tvalue of `substring' means that the command word must\n" +" \t\tmatch a substring of the job. Any other value means that\n" +" \t\tthe command must be a prefix of a stopped job.\n" +" histchars\tCharacters controlling history expansion and quick\n" +" \t\tsubstitution. The first character is the history\n" +" \t\tsubstitution character, usually `!'. The second is\n" +" \t\tthe `quick substitution' character, usually `^'. The\n" +" \t\tthird is the `history comment' character, usually `#'.\n" +" HISTIGNORE\tA colon-separated list of patterns used to decide which\n" +" \t\tcommands should be saved on the history list.\n" +msgstr "" + +#: builtins.c:1733 +msgid "" +"Add directories to stack.\n" +" \n" +" Adds a directory to the top of the directory stack, or rotates\n" +" the stack, making the new top of the stack the current working\n" +" directory. With no arguments, exchanges the top two directories.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when adding\n" +" \tdirectories to the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the left of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" -N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the right of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" dir\tAdds DIR to the directory stack at the top, making it the\n" +" \tnew current working directory.\n" +" \n" +" The `dirs' builtin displays the directory stack.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid argument is supplied or the directory\n" +" change fails." +msgstr "" + +#: builtins.c:1767 +msgid "" +"Remove directories from stack.\n" +" \n" +" Removes entries from the directory stack. With no arguments, removes\n" +" the top directory from the stack, and changes to the new top directory.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when removing\n" +" \tdirectories from the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRemoves the Nth entry counting from the left of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd +0'\n" +" \tremoves the first directory, `popd +1' the second.\n" +" \n" +" -N\tRemoves the Nth entry counting from the right of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd -0'\n" +" \tremoves the last directory, `popd -1' the next to last.\n" +" \n" +" The `dirs' builtin displays the directory stack.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid argument is supplied or the directory\n" +" change fails." +msgstr "" + +#: builtins.c:1797 +msgid "" +"Display directory stack.\n" +" \n" +" Display the list of currently remembered directories. Directories\n" +" find their way onto the list with the `pushd' command; you can get\n" +" back up through the list with the `popd' command.\n" +" \n" +" Options:\n" +" -c\tclear the directory stack by deleting all of the elements\n" +" -l\tdo not print tilde-prefixed versions of directories relative\n" +" \tto your home directory\n" +" -p\tprint the directory stack with one entry per line\n" +" -v\tprint the directory stack with one entry per line prefixed\n" +" \twith its position in the stack\n" +" \n" +" Arguments:\n" +" +N\tDisplays the Nth entry counting from the left of the list shown " +"by\n" +" \tdirs when invoked without options, starting with zero.\n" +" \n" +" -N\tDisplays the Nth entry counting from the right of the list shown " +"by\n" +" \tdirs when invoked without options, starting with zero.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" + +#: builtins.c:1826 +msgid "" +"Set and unset shell options.\n" +" \n" +" Change the setting of each shell option OPTNAME. Without any option\n" +" arguments, list all shell options with an indication of whether or not " +"each\n" +" is set.\n" +" \n" +" Options:\n" +" -o\trestrict OPTNAMEs to those defined for use with `set -o'\n" +" -p\tprint each shell option with an indication of its status\n" +" -q\tsuppress output\n" +" -s\tenable (set) each OPTNAME\n" +" -u\tdisable (unset) each OPTNAME\n" +" \n" +" Exit Status:\n" +" Returns success if OPTNAME is enabled; fails if an invalid option is\n" +" given or OPTNAME is disabled." +msgstr "" + +#: builtins.c:1847 +msgid "" +"Formats and prints ARGUMENTS under control of the FORMAT.\n" +" \n" +" Options:\n" +" -v var\tassign the output to shell variable VAR rather than\n" +" \t\tdisplay it on the standard output\n" +" \n" +" FORMAT is a character string which contains three types of objects: " +"plain\n" +" characters, which are simply copied to standard output; character " +"escape\n" +" sequences, which are converted and copied to the standard output; and\n" +" format specifications, each of which causes printing of the next " +"successive\n" +" argument.\n" +" \n" +" In addition to the standard format specifications described in printf" +"(1)\n" +" and printf(3), printf interprets:\n" +" \n" +" %b\texpand backslash escape sequences in the corresponding argument\n" +" %q\tquote the argument in a way that can be reused as shell input\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or a write or " +"assignment\n" +" error occurs." +msgstr "" + +#: builtins.c:1874 +msgid "" +"Specify how arguments are to be completed by Readline.\n" +" \n" +" For each NAME, specify how arguments are to be completed. If no " +"options\n" +" are supplied, existing completion specifications are printed in a way " +"that\n" +" allows them to be reused as input.\n" +" \n" +" Options:\n" +" -p\tprint existing completion specifications in a reusable format\n" +" -r\tremove a completion specification for each NAME, or, if no\n" +" \tNAMEs are supplied, all completion specifications\n" +" \n" +" When completion is attempted, the actions are applied in the order the\n" +" uppercase-letter options are listed above.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" + +#: builtins.c:1897 +msgid "" +"Display possible completions depending on the options.\n" +" \n" +" Intended to be used from within a shell function generating possible\n" +" completions. If the optional WORD argument is supplied, matches " +"against\n" +" WORD are generated.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" + +#: builtins.c:1912 +msgid "" +"Modify or display completion options.\n" +" \n" +" Modify the completion options for each NAME, or, if no NAMEs are " +"supplied,\n" +" the completion currently begin executed. If no OPTIONs are givenm, " +"print\n" +" the completion options for each NAME or the current completion " +"specification.\n" +" \n" +" Options:\n" +" \t-o option\tSet completion option OPTION for each NAME\n" +" \n" +" Using `+o' instead of `-o' turns off the specified option.\n" +" \n" +" Arguments:\n" +" \n" +" Each NAME refers to a command for which a completion specification must\n" +" have previously been defined using the `complete' builtin. If no NAMEs\n" +" are supplied, compopt must be called by a function currently generating\n" +" completions, and the options for that currently-executing completion\n" +" generator are modified.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or NAME does not\n" +" have a completion specification defined." +msgstr "" + +#: builtins.c:1940 +msgid "" +"Read lines from a file into an array variable.\n" +" \n" +" Read lines from the standard input into the array variable ARRAY, or " +"from\n" +" file descriptor FD if the -u option is supplied. The variable MAPFILE " +"is\n" +" the default ARRAY.\n" +" \n" +" Options:\n" +" -n count\tCopy at most COUNT lines. If COUNT is 0, all lines are " +"copied.\n" +" -O origin\tBegin assigning to ARRAY at index ORIGIN. The default " +"index is 0.\n" +" -s count \tDiscard the first COUNT lines read.\n" +" -t\t\tRemove a trailing newline from each line read.\n" +" -u fd\t\tRead lines from file descriptor FD instead of the standard " +"input.\n" +" -C callback\tEvaluate CALLBACK each time QUANTUM lines are read.\n" +" -c quantum\tSpecify the number of lines read between each call to " +"CALLBACK.\n" +" \n" +" Arguments:\n" +" ARRAY\t\tArray variable name to use for file data.\n" +" \n" +" If -C is supplied without -c, the default quantum is 5000.\n" +" \n" +" If not supplied with an explicit origin, mapfile will clear ARRAY " +"before\n" +" assigning to it.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or ARRAY is readonly." +msgstr "" + +#~ msgid "Missing `}'" +#~ msgstr "`}' lipsã" + +#~ msgid "brace_expand> " +#~ msgstr "brace_expand> " + +#~ msgid "Attempt to free unknown command type `%d'.\n" +#~ msgstr "Încercare de eliberare(free) tip comandã necunoscutã `%d'.\n" + +#~ msgid "Report this to %s\n" +#~ msgstr "Raportaþi asta la %s\n" + +#~ msgid "Stopping myself..." +#~ msgstr "Mã opresc..." + +#~ msgid "Tell %s to fix this someday.\n" +#~ msgstr "Spuneþi lui %s sã repare asta într-o bun zi.\n" + +#~ msgid "execute_command: bad command type `%d'" +#~ msgstr "execute_command: tip de comandã greºitã `%d'" + +#~ msgid "real\t" +#~ msgstr "real\t" + +#~ msgid "user\t" +#~ msgstr "user\t" + +#~ msgid "sys\t" +#~ msgstr "sis\t" + +#~ msgid "" +#~ "real\t0m0.00s\n" +#~ "user\t0m0.00s\n" +#~ "sys\t0m0.00s\n" +#~ msgstr "" +#~ "real\t0m0.00s\n" +#~ "user\t0m0.00s\n" +#~ "sis\t0m0.00s\n" + +#~ msgid "cannot duplicate fd %d to fd 1: %s" +#~ msgstr "nu se poate duplica fd %d în fd 1: %s" + +#~ msgid "%s: output redirection restricted" +#~ msgstr "%s redirectare spre output limitatã" + +#~ msgid "Out of memory!" +#~ msgstr "Memorie plinã!" + +#~ msgid "You have already added item `%s'\n" +#~ msgstr "Aþi adãugat deja elementul `%s'\n" + +#~ msgid "You have entered %d (%d) items. The distribution is:\n" +#~ msgstr "Aþi introdus %d (%d) elemente. Distribuþia este:\n" + +#~ msgid "" +#~ msgstr "" + +#~ msgid "%s: bg background job?" +#~ msgstr "%s: bg job din fundal?" + +#~ msgid "" +#~ "Redirection instruction from yyparse () '%d' is\n" +#~ "out of range in make_redirection ()." +#~ msgstr "" +#~ "Redirectare instrucþiune din yyparse () '%d' is\n" +#~ "în afara intervalului în make_redirection ()." + +#~ msgid "clean_simple_command () got a command with type %d." +#~ msgstr "clean_simple_command () a primit o comandã de tipul %d." + +#~ msgid "got errno %d while waiting for %d" +#~ msgstr "s-a primit errno %d în aºteptarea lui %d" + +#~ msgid "syntax error near unexpected token `%c'" +#~ msgstr "eroare de sintaxã neaºteptatã lângã `%c'" + +#~ msgid "print_command: bad command type `%d'" +#~ msgstr "print_command: tip comandã greºit `%d'" + +#~ msgid "cprintf: bad `%%' argument (%c)" +#~ msgstr "cprintf: parametru `%%' invalid (%c)" + +#~ msgid "option `%s' requires an argument" +#~ msgstr "opþiunea `%s' necesitã un parametru" + +#~ msgid "%s: unrecognized option" +#~ msgstr "%s: opþiune necunoscutã" + +#~ msgid "`-c' requires an argument" +#~ msgstr "`-c' necesitã un parametru" + +#~ msgid "%s: cannot execute directories" +#~ msgstr "%s: directoarele nu se pot executa" + +#~ msgid "Bad code in sig.c: sigprocmask" +#~ msgstr "Cod invalid în sig.c: sigprocmask" + +#~ msgid "%s: bad array subscript" +#~ msgstr "%s:subscriere interval invalid" + +#~ msgid "can't make pipes for process substitution: %s" +#~ msgstr "nu pot face legãturi (pipes) pentru substituþia procesului: %s" + +#~ msgid "reading" +#~ msgstr "în citire" + +#~ msgid "process substitution" +#~ msgstr "substituire de proces" + +#~ msgid "command substitution" +#~ msgstr "substituire de comenzi" + +#~ msgid "Can't reopen pipe to command substitution (fd %d): %s" +#~ msgstr "" +#~ "Nu se poate redeschide legãtura (pipe) cãtre substituþia de comenzi (fd %" +#~ "d): %s" + +#~ msgid "$%c: unbound variable" +#~ msgstr "$%c: variabilã fãrã limitã" + +#~ msgid "%s: bad arithmetic substitution" +#~ msgstr "%s: substituþie aritmeticã greºitã" + +#~ msgid "-%s: binary operator expected" +#~ msgstr "-%s: se aºteaptã operator binar" + +#~ msgid "%s[%s: bad subscript" +#~ msgstr "%s[%s: subsctipþie invalidã" + +#~ msgid "[%s: bad subscript" +#~ msgstr "[%s: subscripþie invalidã" + +#~ msgid "digits occur in two different argv-elements.\n" +#~ msgstr "se regãsesc digiþi în douã elemente argv diferite.\n" + +#~ msgid "option %c\n" +#~ msgstr "opþiunea %c\n" + +#~ msgid "option a\n" +#~ msgstr "opþiunea a\n" + +#~ msgid "option b\n" +#~ msgstr "opþiunea b\n" + +#~ msgid "option c with value `%s'\n" +#~ msgstr "opþiunea c cu valoarea '%s'\n" + +#~ msgid "?? sh_getopt returned character code 0%o ??\n" +#~ msgstr "?? sh_getopt a returnat codul de caracter 0%o ??\n" + +#~ msgid "non-option ARGV-elements: " +#~ msgstr "elemente ARGV fãrã opþiuni: " + +#~ msgid "%s: Unknown flag %s.\n" +#~ msgstr "%s: Marcaj (flag) necunoscut %s.\n" + +#~ msgid "Unknown directive `%s'" +#~ msgstr "Directivã necunoscutã '%s'" + +#~ msgid "%s requires an argument" +#~ msgstr "%s necesitã un parametru" + +#~ msgid "%s must be inside of a $BUILTIN block" +#~ msgstr "%s trebuie sa fie înãuntrul unui bloc $BUILTIN" + +#~ msgid "%s found before $END" +#~ msgstr "s-a gãsit %s înainte de $END" + +#~ msgid "%s already has a function (%s)" +#~ msgstr "%s avea deja o funcþie (%s)" + +#~ msgid "%s already had a docname (%s)" +#~ msgstr "%s avea deja un docname (%s)" + +#~ msgid "%s already has short documentation (%s)" +#~ msgstr "%s are deja documentaþie scurtã (%s)" + +#~ msgid "%s already has a %s definition" +#~ msgstr "%s are deja o definiþie %s" + +#~ msgid "mkbuiltins: Out of virtual memory!\n" +#~ msgstr "mkbuiltins: Memorie virtualã plinã!\n" + +#~ msgid "read [-r] [-p prompt] [-a array] [-e] [name ...]" +#~ msgstr "read [-r] [-p prompt] [-a interval] [-e] [nume ...]" + +#~ msgid "%[DIGITS | WORD] [&]" +#~ msgstr "%[DIGIÞI | CUVÂNT] [&]" + +#~ msgid "variables - Some variable names and meanings" +#~ msgstr "variabile - Câteva nume de variabile ºi ce înseamnã" + +#~ msgid "`alias' with no arguments or with the -p option prints the list" +#~ msgstr "`alias' fãrã parametri sau cu opþiunea -p printeazã lista" + +#~ msgid "of aliases in the form alias NAME=VALUE on standard output." +#~ msgstr "aliasurilor în forma alias NUME=VALOARE la ieºirea standard" + +#~ msgid "Otherwise, an alias is defined for each NAME whose VALUE is given." +#~ msgstr "" +#~ "În caz contrar, aliasul este definit pentru fiecare NUME a cãrui VALOARE " +#~ "este datã." + +#~ msgid "A trailing space in VALUE causes the next word to be checked for" +#~ msgstr "" +#~ "Un spaþiu la sfârºit în VALOARE va face ca urmãtorul cuvânt sa fie " +#~ "interogat de" + +#~ msgid "alias substitution when the alias is expanded. Alias returns" +#~ msgstr "substituþii de alias când aliasul este extins. Aliasul returneazã" + +#~ msgid "true unless a NAME is given for which no alias has been defined." +#~ msgstr "" +#~ "adevãrat în afarã de cazul în care NUME nu este dat ºi pentru care nu a " +#~ "fost definit nici un alias." + +#~ msgid "" +#~ "Remove NAMEs from the list of defined aliases. If the -a option is given," +#~ msgstr "" +#~ "Eliminã NUME din lista de aliasuri definite. Dacã este datã opþiunea -a," + +#~ msgid "then remove all alias definitions." +#~ msgstr "atunci ºterge toate definiþiile aliasurilor." + +#~ msgid "Bind a key sequence to a Readline function, or to a macro. The" +#~ msgstr "" +#~ "Leagã (bind) o secvenþã de taste de o funcþie Readline, sau de un macro. " + +#~ msgid "syntax is equivalent to that found in ~/.inputrc, but must be" +#~ msgstr "" +#~ "Sintaxa este echivalentã cu cea întâlnitã în ~/.inputrc, dar trebuie" + +#~ msgid "" +#~ "passed as a single argument: bind '\"\\C-x\\C-r\": re-read-init-file'." +#~ msgstr "" +#~ "trimisã parametru singular: bind '\"\\C-x\\C-r\": re-read-init-file'." + +#~ msgid "Arguments we accept:" +#~ msgstr "Parametri acceptaþi:" + +#~ msgid "" +#~ " -m keymap Use `keymap' as the keymap for the duration of this" +#~ msgstr "" +#~ " -m keymap Foloseºte `keymap' ca ºi mapare de taste pentru " +#~ "durata" + +#~ msgid " command. Acceptable keymap names are emacs," +#~ msgstr "" +#~ " acestei comenzi. Nume acceptate de keymaps sunt " +#~ "emacs," + +#~ msgid "" +#~ " emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move," +#~ msgstr "" +#~ " emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move," + +#~ msgid " vi-command, and vi-insert." +#~ msgstr " vi-command, ºi vi-insert." + +#~ msgid " -l List names of functions." +#~ msgstr " -l Listeazã numele funcþiilor." + +#~ msgid " -P List function names and bindings." +#~ msgstr "" +#~ " -P Listeazã numele funcþiilor ºi legãturile (bindings)." + +#~ msgid "" +#~ " -p List functions and bindings in a form that can be" +#~ msgstr "" +#~ " -p Listeazã funcþiile ºi legãturile (bindings) într-o " +#~ "formã care" + +#~ msgid " reused as input." +#~ msgstr " poate fi refolositã ca intrare(input)." + +#~ msgid " -r keyseq Remove the binding for KEYSEQ." +#~ msgstr " -r keyseq Eliminã legãturile(bindings) pentru KEYSEQ." + +#~ msgid " -f filename Read key bindings from FILENAME." +#~ msgstr "" +#~ " -f nume_fiºier Citeºte legãturile (bindings) din NUME_FIªIER" + +#~ msgid "" +#~ " -q function-name Query about which keys invoke the named function." +#~ msgstr " -q nume_funcþie Verificã tastele care invocã funcþia numitã." + +#~ msgid " -V List variable names and values" +#~ msgstr " -V Listeazã numele variabilelor ºi valorile" + +#~ msgid "" +#~ " -v List variable names and values in a form that can" +#~ msgstr "" +#~ " -v Listeazã numele variabilelor ºi valorile într-o " +#~ "formã care poate" + +#~ msgid " be reused as input." +#~ msgstr " fi reutilizatã ca date de intrare." + +#~ msgid "" +#~ " -S List key sequences that invoke macros and their " +#~ "values" +#~ msgstr "" +#~ " -S Listeazã secvenþele de taste care invocã macrourile " +#~ "ºi valorile lor" + +#~ msgid "" +#~ " -s List key sequences that invoke macros and their " +#~ "values in" +#~ msgstr "" +#~ " -s Listeazã secvenþele de taste care invocã macrourile " +#~ "ºi valorile lorîntr-o" + +#~ msgid " a form that can be reused as input." +#~ msgstr "" +#~ " formã care poate fi reutilizatã ca date de intrare." + +#~ msgid "Exit from within a FOR, WHILE or UNTIL loop. If N is specified," +#~ msgstr "" +#~ "Ieºire dintr-un ciclu FOR, WHILE sau UNTIL. Daca N este specificat," + +#~ msgid "break N levels." +#~ msgstr "întrerupe N nivele" + +#~ msgid "Resume the next iteration of the enclosing FOR, WHILE or UNTIL loop." +#~ msgstr "" +#~ "Continuã urmatoarea iteraþie din ciclul închis FOR, WHILE sau UNTIL." + +#~ msgid "If N is specified, resume at the N-th enclosing loop." +#~ msgstr "Dacã N este specificat, continuã al N-ulea ciclu închis." + +#~ msgid "Run a shell builtin. This is useful when you wish to rename a" +#~ msgstr "" +#~ "Ruleazã un shell intern. Aceasta este folositoare când doriþi sa " +#~ "redenumiþi " + +#~ msgid "shell builtin to be a function, but need the functionality of the" +#~ msgstr "un shell intern drept funcþie, dar aveþi nevoie de funcþionalitatea" + +#~ msgid "builtin within the function itself." +#~ msgstr "funcþiei interne de asemenea." + +#~ msgid "Change the current directory to DIR. The variable $HOME is the" +#~ msgstr "Schimbã directorul curent cu DIR. Variabila $HOME este" + +#~ msgid "default DIR. The variable $CDPATH defines the search path for" +#~ msgstr "DIR implicit. Variabila $CDPATH defineºte calea de cãutare pentru" + +#~ msgid "the directory containing DIR. Alternative directory names in CDPATH" +#~ msgstr "" +#~ "directorul care conþine DIR. Numele de directoare alternative în CDPATH" + +#~ msgid "are separated by a colon (:). A null directory name is the same as" +#~ msgstr "" +#~ "sunt separate de douã puncte (:). Un nume de director nul reprezintã " +#~ "referire la" + +#~ msgid "the current directory, i.e. `.'. If DIR begins with a slash (/)," +#~ msgstr "directorul curent, i.e. `.'. Dacã DIR începe cu un slash (/)," + +#~ msgid "then $CDPATH is not used. If the directory is not found, and the" +#~ msgstr "atunci $CDPATH nu este folositã. Dacã directorul nu este gãsit, ºi" + +#~ msgid "shell option `cdable_vars' is set, then try the word as a variable" +#~ msgstr "" +#~ "opþiunea de shell `cdable_vars' este setatã, atunci cuvântul este un nume" + +#~ msgid "name. If that variable has a value, then cd to the value of that" +#~ msgstr "" +#~ "de variabilã. Dacã variabila are o valoare, se va face cd pe valoarea " +#~ "acelei" + +#~ msgid "" +#~ "variable. The -P option says to use the physical directory structure" +#~ msgstr "" +#~ "variabile. Opþiunea -P trimite la folosirea structurii fizice de " +#~ "directoare" + +#~ msgid "" +#~ "instead of following symbolic links; the -L option forces symbolic links" +#~ msgstr "" +#~ "în loc de urmarea legãturilor simbolice; opþiunea -L forþeazã urmarea" + +#~ msgid "to be followed." +#~ msgstr "legãturilor simbolice." + +#~ msgid "Print the current working directory. With the -P option, pwd prints" +#~ msgstr "Afiºeazã directorul de lucru curent. Cu opþiunea -P, pwd afiºeazã" + +#~ msgid "the physical directory, without any symbolic links; the -L option" +#~ msgstr "directoarele simbolice, fãrã nici o legãturã simbolicã; opþiunea -L" + +#~ msgid "makes pwd follow symbolic links." +#~ msgstr "face ca pwd sã urmeze legãturile simbolice." + +#~ msgid "" +#~ "Runs COMMAND with ARGS ignoring shell functions. If you have a shell" +#~ msgstr "" +#~ "Ruleazã COMANDA cu PARAMETRI ignorând funcþiile shellului. Dacã aveþi" + +#~ msgid "function called `ls', and you wish to call the command `ls', you can" +#~ msgstr "" +#~ "o funcþie a shellului care se cheamã `ls', ºi doriþi sa numiþi comanda " +#~ "`ls', puteþi" + +#~ msgid "" +#~ "say \"command ls\". If the -p option is given, a default value is used" +#~ msgstr "" +#~ "spune \"command ls\". Daca este datã opþiunea -p este folositã o valoare " +#~ "implicitã" + +#~ msgid "" +#~ "for PATH that is guaranteed to find all of the standard utilities. If" +#~ msgstr "" +#~ "pentru CALE care e garantatã sã gãseascã toate utilitarele standard. Dacã" + +#~ msgid "" +#~ "the -V or -v option is given, a string is printed describing COMMAND." +#~ msgstr "" +#~ "sunt date opþiunile -V sau -v, este tipãrit un ºir care descrie COMANDA." + +#~ msgid "The -V option produces a more verbose description." +#~ msgstr "Opþiunea -V produce o descriere mult mai detaliatã." + +#~ msgid "Declare variables and/or give them attributes. If no NAMEs are" +#~ msgstr "" +#~ "Declarã variabile ºi/sau le dã atribute. Dacã nu e dat nici un NUME," + +#~ msgid "given, then display the values of variables instead. The -p option" +#~ msgstr "va afiºa în loc valorile variabilelor. Opþiunea -p" + +#~ msgid "will display the attributes and values of each NAME." +#~ msgstr "va afiºa atributele ºi valorile fiecãrui NUME." + +#~ msgid "The flags are:" +#~ msgstr "Marcajele(flags) sunt:" + +#~ msgid " -a\tto make NAMEs arrays (if supported)" +#~ msgstr " -a\tpentru a crea intervale de NUME (dacã este suportat)" + +#~ msgid " -f\tto select from among function names only" +#~ msgstr " -f\tpentru a selecta doar prin numele funcþiilor" + +#~ msgid " -F\tto display function names without definitions" +#~ msgstr " -F\tpentru a afiºa numele funcþiilor fãrã definiþii" + +#~ msgid " -r\tto make NAMEs readonly" +#~ msgstr " -r\tpentru a face NUME doar în citire (readonly)" + +#~ msgid " -x\tto make NAMEs export" +#~ msgstr " -x\tpentru a exporta NUME" + +#~ msgid " -i\tto make NAMEs have the `integer' attribute set" +#~ msgstr " -i\tpentru ca NUME sã aibe setat atributul de `integer'" + +#~ msgid "Variables with the integer attribute have arithmetic evaluation (see" +#~ msgstr "Variabilele cu atributul integer au evaluarea aritmeticã (vezi" + +#~ msgid "`let') done when the variable is assigned to." +#~ msgstr "`let') efectuatã când îi este atribuitã variabila." + +#~ msgid "When displaying values of variables, -f displays a function's name" +#~ msgstr "La afiºarea valorilor variabilelor, -f afiºeazã numele funcþiei" + +#~ msgid "and definition. The -F option restricts the display to function" +#~ msgstr "ºi definiþia. Opþiunea -F restrânge afiºarea doar la" + +#~ msgid "name only." +#~ msgstr "numele funcþiei." + +#~ msgid "" +#~ "Using `+' instead of `-' turns off the given attribute instead. When" +#~ msgstr "Folosirea `+' în locul `-' dezactiveazã atributul dat. Când" + +#~ msgid "used in a function, makes NAMEs local, as with the `local' command." +#~ msgstr "" +#~ "este folosit într-o funcþie, se considerã NUME locale, ca ºi în comanda " +#~ "`local'." + +#~ msgid "Obsolete. See `declare'." +#~ msgstr "Învechit. Vezi `declare'." + +#~ msgid "Create a local variable called NAME, and give it VALUE. LOCAL" +#~ msgstr "" +#~ "Creeazã o variabilã localã denumitã NUME, ºi îi atribuie VALOARE. LOCAL" + +#~ msgid "have a visible scope restricted to that function and its children." +#~ msgstr "" +#~ "sã aibã un domeniu vizibil restrâns la acea funcþie ºi copilul (children) " +#~ "ei." + +#~ msgid "Output the ARGs. If -n is specified, the trailing newline is" +#~ msgstr "" +#~ "Afiºeazã (output) ARGumenetele. Dacã -n este specificat,sfârºitul de " +#~ "linie este" + +#~ msgid "suppressed. If the -e option is given, interpretation of the" +#~ msgstr "suprimat. Dacã este datã opþiunea -e, interpretarea" + +#~ msgid "following backslash-escaped characters is turned on:" +#~ msgstr "" +#~ "urmãtorului caracterelor speciale (backslash-escaped) este activatã:" + +#~ msgid "\t\\a\talert (bell)" +#~ msgstr "\t\\a\talertã (clopoþel (bell))" + +#~ msgid "\t\\b\tbackspace" +#~ msgstr "\t\\b\tbackspace" + +#~ msgid "\t\\c\tsuppress trailing newline" +#~ msgstr "\t\\c\tsuprimã sfârºitul de linie" + +#~ msgid "\t\\E\tescape character" +#~ msgstr "\t\\E\tcaracterul escape" + +#~ msgid "\t\\f\tform feed" +#~ msgstr "\t\\f\ttrecere la început de linie (form feed)" + +#~ msgid "\t\\n\tnew line" +#~ msgstr "\t\\n\tlinie nouã" + +#~ msgid "\t\\r\tcarriage return" +#~ msgstr "\t\\r\tretur de car (carriage return)" + +#~ msgid "\t\\t\thorizontal tab" +#~ msgstr "\t\\t\ttab orizontal" + +#~ msgid "\t\\v\tvertical tab" +#~ msgstr "\t\\v\ttab vertical" + +#~ msgid "\t\\\\\tbackslash" +#~ msgstr "\t\\\\\tbackslash" + +#~ msgid "\t\\num\tthe character whose ASCII code is NUM (octal)." +#~ msgstr "\t\\num\tcaracterul al cãrui cod ASCII este NUM (octal)." + +#~ msgid "" +#~ "You can explicitly turn off the interpretation of the above characters" +#~ msgstr "Puteþi dezactiva explicit interpretarea caracterelor de mai sus" + +#~ msgid "with the -E option." +#~ msgstr "cu ajutorul opþiunii -E." + +#~ msgid "" +#~ "Output the ARGs. If -n is specified, the trailing newline is suppressed." +#~ msgstr "" +#~ "Afiºeazã (output) ARGumentele. Dacã este specificat -n, sfârºitul de " +#~ "linie este suprimat." + +#~ msgid "Enable and disable builtin shell commands. This allows" +#~ msgstr "" +#~ "Activeazã ºi dezactiveazã comenzile interne ale shell-ului. Aceasta vã" + +#~ msgid "you to use a disk command which has the same name as a shell" +#~ msgstr "" +#~ "permite utilizarea unei comenzi disk care sã aibã acelaºi nume ca ºi cea " + +#~ msgid "builtin. If -n is used, the NAMEs become disabled; otherwise" +#~ msgstr "" +#~ "internã a shell-ului. Dacã este folosit -n, NUME devine dezactivat; în " +#~ "caz contrar" + +#~ msgid "NAMEs are enabled. For example, to use the `test' found on your" +#~ msgstr "" +#~ "NUME este activat. De exemplu, pentru a folosi funcþia `test; aflatã în" + +#~ msgid "path instead of the shell builtin version, type `enable -n test'." +#~ msgstr "" +#~ "calea(path) dumneavoastrã în loc de versiunea internã, tastaþi `enable -n " +#~ "test'." + +#~ msgid "On systems supporting dynamic loading, the -f option may be used" +#~ msgstr "" +#~ "Pe sistemele care suportã încãrcarea dinamicã, opþiunea -f poate fi " +#~ "folositã" + +#~ msgid "to load new builtins from the shared object FILENAME. The -d" +#~ msgstr "" +#~ "pentru a încãrca noile elemente (builtins) din obiectul distribuit " +#~ "(shared object) NUME_FIªIER. Opþiunea -d" + +#~ msgid "option will delete a builtin previously loaded with -f. If no" +#~ msgstr "va ºterge un element (builtin) deja încãrcat cu -f. Dacã nu" + +#~ msgid "non-option names are given, or the -p option is supplied, a list" +#~ msgstr "" +#~ "este dat nici un nume non-opþiune, sau este prezentã opþiunea -p, o listã" + +#~ msgid "of builtins is printed. The -a option means to print every builtin" +#~ msgstr "" +#~ "de elemente(builtins) este tipãritã. Opþiunea -a înseamnã tipãrirea " +#~ "fiecãrui " + +#~ msgid "with an indication of whether or not it is enabled. The -s option" +#~ msgstr "" +#~ "element(builtin) cu o indicaþie dacã este sau nu activ. Opþiunea -s" + +#~ msgid "restricts the output to the Posix.2 `special' builtins. The -n" +#~ msgstr "" +#~ "restricþioneazã output-ul la elementele(builtins) `speciale' Posix 2. " +#~ "Opþiunea" + +#~ msgid "option displays a list of all disabled builtins." +#~ msgstr "-n afiºeazã o listã a tuturor elementelor(builtins) inactive." + +#~ msgid "" +#~ "Read ARGs as input to the shell and execute the resulting command(s)." +#~ msgstr "" +#~ "Citeºte ARGumente ca input al shell-ului ºi executã comanda(comenzile) " +#~ "rezultatã(e)." + +#~ msgid "Getopts is used by shell procedures to parse positional parameters." +#~ msgstr "" +#~ "Getopts este folosit de procedurile de shell pentru a analiza(parse) " +#~ "parametrii poziþionali." + +#~ msgid "OPTSTRING contains the option letters to be recognized; if a letter" +#~ msgstr "" +#~ "OPTSTRING conþine literele optiunilor care vor fi recunoscute; dacã o " +#~ "literã" + +#~ msgid "is followed by a colon, the option is expected to have an argument," +#~ msgstr "e urmatã de douã puncte, opþiunea va trebui sã aibã un parametru," + +#~ msgid "which should be separated from it by white space." +#~ msgstr "care va fi separat de aceasta printr-un spaþiu." + +#~ msgid "Each time it is invoked, getopts will place the next option in the" +#~ msgstr "" +#~ "De fiecare datã când este invocat, getopts va pune urmãtoarea opþiune în" + +#~ msgid "shell variable $name, initializing name if it does not exist, and" +#~ msgstr "variabile de shell $name, iniþializând name dacã nu existã, ºi" + +#~ msgid "the index of the next argument to be processed into the shell" +#~ msgstr "indexul urmãtorilor parametri care vor fi procesaþi în variabila" + +#~ msgid "variable OPTIND. OPTIND is initialized to 1 each time the shell or" +#~ msgstr "" +#~ "de shell OPTIND. OPTIND este iniþializatã cu 1 de fiecare datã când " +#~ "shellul sau" + +#~ msgid "a shell script is invoked. When an option requires an argument," +#~ msgstr "" +#~ "un script al shellului este invocat. Când opþiunea necesitã un parametru," + +#~ msgid "getopts places that argument into the shell variable OPTARG." +#~ msgstr "getopts plaseazã acest parametru în variabila de shell OPTARG." + +#~ msgid "getopts reports errors in one of two ways. If the first character" +#~ msgstr "getopts raporteazã erori în douã feluri. Dacã primul caracter" + +#~ msgid "of OPTSTRING is a colon, getopts uses silent error reporting. In" +#~ msgstr "" +#~ "al OPTSTRING este 'douã puncte', getopts va folosi raportarea " +#~ "silenþioasã. În" + +#~ msgid "this mode, no error messages are printed. If an illegal option is" +#~ msgstr "" +#~ "acest mod, nici un mesaj de eroare nu este tipãrit. Dacã o opþiune " +#~ "ilegalã este" + +#~ msgid "seen, getopts places the option character found into OPTARG. If a" +#~ msgstr "întâlnitã, getopts plaseazã caracterul opþiunii în OPTARG. Dacã un" + +#~ msgid "required argument is not found, getopts places a ':' into NAME and" +#~ msgstr "parametru necesar nu este întâlnit, getopts pune ':' la NUME ºi" + +#~ msgid "sets OPTARG to the option character found. If getopts is not in" +#~ msgstr "" +#~ "seteazã OPTARG la caracterul întâlnit al opþiunii. Dacã getopts nu este " +#~ "în" + +#~ msgid "silent mode, and an illegal option is seen, getopts places '?' into" +#~ msgstr "" +#~ "modul silenþios, ºi se întâlneºte o opþiune ilegalã, getopts pune '?' în" + +#~ msgid "NAME and unsets OPTARG. If a required option is not found, a '?'" +#~ msgstr "" +#~ "NUME ºi deseteazã OPTARG. Dacã o opþiune necesarã nu este întâlnitã, un " +#~ "'?'" + +#~ msgid "is placed in NAME, OPTARG is unset, and a diagnostic message is" +#~ msgstr "" +#~ "va fi pus în NUME, OPTARG va fi desetat, ºi un mesaj de diagnosticare va " +#~ "fi" + +#~ msgid "printed." +#~ msgstr "afiºat." + +#~ msgid "If the shell variable OPTERR has the value 0, getopts disables the" +#~ msgstr "Dacã variabila de shell OPTERR are valoarea 0, getopts dezactiveazã" + +#~ msgid "printing of error messages, even if the first character of" +#~ msgstr "afiºarea mesajelor de eroare, chiar daca primul caracter al" + +#~ msgid "OPTSTRING is not a colon. OPTERR has the value 1 by default." +#~ msgstr "OPTSTRING nu este 'douã puncte'. OPTERR are implicit valoarea 1." + +#~ msgid "Getopts normally parses the positional parameters ($0 - $9), but if" +#~ msgstr "" +#~ "Getopts analizeazã(parses) normal parametrii poziþionali ($0 - $9), dar " +#~ "dacã" + +#~ msgid "more arguments are given, they are parsed instead." +#~ msgstr "sunt daþi mai mulþi parametri, aceºtia sunt analizaþi în loc." + +#~ msgid "Exec FILE, replacing this shell with the specified program." +#~ msgstr "Exec FIªIER, înlocuind acest shell cu un program specificat." + +#~ msgid "If FILE is not specified, the redirections take effect in this" +#~ msgstr "Dacã FIªIER nu este specificat, redirectãrile au efect în acest" + +#~ msgid "shell. If the first argument is `-l', then place a dash in the" +#~ msgstr "" +#~ "shell. Dacã primul parametru este `-l', atunci se va plasa o liniuþã în" + +#~ msgid "zeroth arg passed to FILE, as login does. If the `-c' option" +#~ msgstr "" +#~ "al zero-ulea arg pasat FIªIERului, cum face login-ul. Dacã opþiunea `-c'" + +#~ msgid "is supplied, FILE is executed with a null environment. The `-a'" +#~ msgstr "este furnizatã, FIªIER este executat cu un mediu null. Opþiunea" + +#~ msgid "option means to make set argv[0] of the executed process to NAME." +#~ msgstr "'-a' înseamnã setarea argv[0] a procesului executat la NUME." + +#~ msgid "If the file cannot be executed and the shell is not interactive," +#~ msgstr "Dacã fiºierul nu poate fi executat ºi shell-ul nu este interactiv," + +#~ msgid "then the shell exits, unless the variable \"no_exit_on_failed_exec\"" +#~ msgstr "atunci shell-ul iese, dacã variabila \"no_exit_on_failed_exec\"" + +#~ msgid "is set." +#~ msgstr "nu este setatã." + +#~ msgid "is that of the last command executed." +#~ msgstr "este aceea a ultimei comenzi executate." + +#~ msgid "" +#~ "FIRST and LAST can be numbers specifying the range, or FIRST can be a" +#~ msgstr "" +#~ "PRIMUL ºi ULTIMUL pot fi numere care specificã intervalul, sau PRIMUL " +#~ "poate fi" + +#~ msgid "string, which means the most recent command beginning with that" +#~ msgstr "" +#~ "un ºir care reprezintã cea mai recentã comandã care începea cu acest" + +#~ msgid "string." +#~ msgstr "ºir." + +#~ msgid "" +#~ " -e ENAME selects which editor to use. Default is FCEDIT, then EDITOR," +#~ msgstr "" +#~ " -e ENUME selecteazã editorul de folosit. implicit este FCEDIT, apoi " +#~ "EDITOR," + +#~ msgid "" +#~ " then the editor which corresponds to the current readline editing" +#~ msgstr "" +#~ " apoi editorul care corespunde cu modul de editare al liniei" +#~ "(readline)" + +#~ msgid " mode, then vi." +#~ msgstr " curente, ºi apoi vi." + +#~ msgid " -l means list lines instead of editing." +#~ msgstr " -l reprezintã afiºarea liniilor în locul editãrii acestora." + +#~ msgid " -n means no line numbers listed." +#~ msgstr " -n înseamnã cã nu vor fi afiºate numerele liniilor." + +#~ msgid "" +#~ " -r means reverse the order of the lines (making it newest listed " +#~ "first)." +#~ msgstr "" +#~ " -r reprezintã inversarea ordinii liniilor (cele mai noi fiind listate " +#~ "primele)." + +#~ msgid "With the `fc -s [pat=rep ...] [command]' format, the command is" +#~ msgstr "Cu `fc -s [pat=rep ...] [comandã]' format, comanda este" + +#~ msgid "re-executed after the substitution OLD=NEW is performed." +#~ msgstr "reexecutatã dupã ce s-a produs substituþia VECHI=NOU." + +#~ msgid "A useful alias to use with this is r='fc -s', so that typing `r cc'" +#~ msgstr "Un alias folositor este r='fc -s', aºa cã tastând `r cc'" + +#~ msgid "runs the last command beginning with `cc' and typing `r' re-executes" +#~ msgstr "" +#~ "se ruleazã ultima comandã care începe cu `cc' ºi tastând `r' se reexecutã" + +#~ msgid "Place JOB_SPEC in the foreground, and make it the current job. If" +#~ msgstr "" +#~ "Aduce JOB_SPEC în prim plan(foreground), ?ºi îl face jobul curent. Dacã" + +#~ msgid "JOB_SPEC is not present, the shell's notion of the current job is" +#~ msgstr "" +#~ "JOB_SPEC nu este prezent, este folositã noþiunea shell-ului despre jobul" + +#~ msgid "used." +#~ msgstr "curent." + +#~ msgid "Place JOB_SPEC in the background, as if it had been started with" +#~ msgstr "Pune JOB_SPEC în fundal(background), ca ºi cum ar fi fost pornit cu" + +#~ msgid "`&'. If JOB_SPEC is not present, the shell's notion of the current" +#~ msgstr "" +#~ "`&'. Dacã JOB_SPEC nu este prezent, va fi folositã noþiunea shell-ului " +#~ "despre" + +#~ msgid "job is used." +#~ msgstr "jobul curent." + +#~ msgid "For each NAME, the full pathname of the command is determined and" +#~ msgstr "Pentru fiecare NUME, calea întreagã a comenzii este determinatã ºi" + +#~ msgid "remembered. If the -p option is supplied, PATHNAME is used as the" +#~ msgstr "" +#~ "reþinutã. Daca este furnizatã ºi opþiunea -p, CALE este folositã ca ºi" + +#~ msgid "full pathname of NAME, and no path search is performed. The -r" +#~ msgstr "" +#~ "cale de cãutare întreagã a NUMElui, ºi nu se mai face cãutare în calea " +#~ "curentã. " + +#~ msgid "option causes the shell to forget all remembered locations. If no" +#~ msgstr "" +#~ "Opþiunea -r face ca shell-ul sã uite toate locaþiile reþinute. Dacã nu" + +#~ msgid "" +#~ "arguments are given, information about remembered commands is displayed." +#~ msgstr "" +#~ "este furnizat nici un parametru sunt afiºate informaþii despre comenzile " +#~ "reþinute." + +#~ msgid "Display helpful information about builtin commands. If PATTERN is" +#~ msgstr "" +#~ "Se afiºeazã informaþii folositoare despre comenzile interne. Dacã TIPAR " +#~ "este" + +#~ msgid "specified, gives detailed help on all commands matching PATTERN," +#~ msgstr "" +#~ "specificat, se dã ajutor detaliat pentru toate comenzile potrivite " +#~ "TIPARului," + +#~ msgid "otherwise a list of the builtins is printed." +#~ msgstr "în caz contrar se va tipãri o listã a comenzilor interne." + +#~ msgid "Display the history list with line numbers. Lines listed with" +#~ msgstr "Afiºeazã istoricul cu numerele liniilor. Liniile listate cu" + +#~ msgid "with a `*' have been modified. Argument of N says to list only" +#~ msgstr "un `*' au fost modificate. Parametrul N va aduce afiºarea doar " + +#~ msgid "the last N lines. The -c option causes the history list to be" +#~ msgstr "a ultimelor N linii. Opþiunea -c face ca lista istoricului sã fie" + +#~ msgid "" +#~ "cleared by deleting all of the entries. The `-w' option writes out the" +#~ msgstr "ºtearsã prin ºtergerea tuturor intrãrilor. Opþiunea `-w' scrie" + +#~ msgid "" +#~ "current history to the history file; `-r' means to read the file and" +#~ msgstr "" +#~ "istoricul curent în fiºierul de istoric; `-r' înseamnã citirea " +#~ "fiºierului ºi" + +#~ msgid "append the contents to the history list instead. `-a' means" +#~ msgstr "adãugare a conþinutului listei istoricului în loc. `-a' înseamnã" + +#~ msgid "to append history lines from this session to the history file." +#~ msgstr "" +#~ "adãugare a liniilor istoricului din aceastã sesiune la fiºierul de " +#~ "istoric." + +#~ msgid "Argument `-n' means to read all history lines not already read" +#~ msgstr "" +#~ "Parametrul `-n' înseamnã citirea tuturor liniilor istoricului care nu " +#~ "sunt deja citite" + +#~ msgid "from the history file and append them to the history list. If" +#~ msgstr "" +#~ "din fiºierul de istoric ºi adãugarea lor la lista istoricului. Dacã" + +#~ msgid "FILENAME is given, then that is used as the history file else" +#~ msgstr "" +#~ "este dat NUME_FIªIER, acesta va fi utilizat ca fiºier de istoric, în caz " +#~ "contrar" + +#~ msgid "if $HISTFILE has a value, that is used, else ~/.bash_history." +#~ msgstr "" +#~ "dacã $HISTFILE are valoare, aceasta este utilizatã, altfel ~/." +#~ "bash_history." + +#~ msgid "If the -s option is supplied, the non-option ARGs are appended to" +#~ msgstr "" +#~ "Dacã este furnizatã opþiunea -s ARGumentele non-opþiuni sunt adãugate la" + +#~ msgid "the history list as a single entry. The -p option means to perform" +#~ msgstr "lista istoricului ca intrãri singure. Opþiunea -p înseamnã" + +#~ msgid "" +#~ "history expansion on each ARG and display the result, without storing" +#~ msgstr "" +#~ "expandarea istoricului la fiecare ARGument ºi afiºarea rezultatului, fãrã " +#~ "a stoca" + +#~ msgid "anything in the history list." +#~ msgstr "nimic în lista istoricului." + +#~ msgid "Lists the active jobs. The -l option lists process id's in addition" +#~ msgstr "" +#~ "Listeazã joburile active. Opþiunea -l listeazã id-urile proceselor în " +#~ "plus faþã de" + +#~ msgid "to the normal information; the -p option lists process id's only." +#~ msgstr "" +#~ "informaþiile normale; optiunea -p listeazã doar id-urile proceselor." + +#~ msgid "" +#~ "If -n is given, only processes that have changed status since the last" +#~ msgstr "" +#~ "Dacã este dat -n,sunt afiºate doar procesele care ºi-au schimbat starea" + +#~ msgid "" +#~ "notification are printed. JOBSPEC restricts output to that job. The" +#~ msgstr "" +#~ "de la ultima notificare. JOBSPEC restricþioneazã output-ul spre acel " +#~ "job. " + +#~ msgid "-r and -s options restrict output to running and stopped jobs only," +#~ msgstr "" +#~ "Opþiunile -r ºi -s restricþioneazã output-ul doar spre joburile care " +#~ "ruleazã ºi respectiv," + +#~ msgid "respectively. Without options, the status of all active jobs is" +#~ msgstr "care sunt stopate. Fãrã opþiuni, este afiºatã starea joburilor" + +#~ msgid "" +#~ "printed. If -x is given, COMMAND is run after all job specifications" +#~ msgstr "" +#~ "active. Dacã este furnizat -x, COMANDà este rulatã dupã ce toate " +#~ "specificaþiile" + +#~ msgid "" +#~ "that appear in ARGS have been replaced with the process ID of that job's" +#~ msgstr "" +#~ "joburilor care aparîn ARGS au fost înlocuite cu ID-urile proceselor a" + +#~ msgid "process group leader." +#~ msgstr "liderului de grup al proceselor acelui job(process group-leader)." + +#~ msgid "Removes each JOBSPEC argument from the table of active jobs." +#~ msgstr "ªterge fiecare parametru JOBSPEC din tabela de joburi active." + +#~ msgid "Send the processes named by PID (or JOB) the signal SIGSPEC. If" +#~ msgstr "Trimite proceselor numite de PID (sau JOB) semnalul SIGSPEC. Dacã" + +#~ msgid "" +#~ "SIGSPEC is not present, then SIGTERM is assumed. An argument of `-l'" +#~ msgstr "SIGSPEC nu este prezent, atunci se asumã SIGTERM. Parametrul `-l'" + +#~ msgid "lists the signal names; if arguments follow `-l' they are assumed to" +#~ msgstr "" +#~ "listeazã numele semnalelor; dacã urmeazã parametri dupã `-l' se asumã cã" + +#~ msgid "be signal numbers for which names should be listed. Kill is a shell" +#~ msgstr "" +#~ "sunt numere de semnale pentru care numele ar trebui listate. Kill este " +#~ "comandã" + +#~ msgid "builtin for two reasons: it allows job IDs to be used instead of" +#~ msgstr "" +#~ "internã a sehll-ului din douã motive: permite utilizarea ID-urilor de " +#~ "joburi în locul" + +#~ msgid "process IDs, and, if you have reached the limit on processes that" +#~ msgstr "ID-urilor de procese, ºi, daca s-a ajuns la limita de procese care " + +#~ msgid "" +#~ "you can create, you don't have to start a process to kill another one." +#~ msgstr "" +#~ "se pot crea, nu mai e nevoie sã se porneascã un proces pentru a omorî " +#~ "altul." + +#~ msgid "Each ARG is an arithmetic expression to be evaluated. Evaluation" +#~ msgstr "" +#~ "Fiecare ARGument este o expresie aritmeticã ce va fi evaluatã. Evaluarea" + +#~ msgid "is done in long integers with no check for overflow, though division" +#~ msgstr "" +#~ "se face în întregi lungi (long integers) fãrã verificãri de overflow, " +#~ "totuºi împãrþirea" + +#~ msgid "by 0 is trapped and flagged as an error. The following list of" +#~ msgstr "la 0 este reþinutã ºi marcatã ca eroare. Urmãtoarea listã de" + +#~ msgid "operators is grouped into levels of equal-precedence operators." +#~ msgstr "operatori este grupatã în nivele de operatori 'equal-precedence'." + +#~ msgid "The levels are listed in order of decreasing precedence." +#~ msgstr "Nivelele sunt listate în ordinea inversã a întâietãþii." + +#~ msgid "\t-, +\t\tunary minus, plus" +#~ msgstr "\t-, +\t\tplus, minus unar" + +#~ msgid "\t!, ~\t\tlogical and bitwise negation" +#~ msgstr "\t!, ~\t\tnegare logicã" + +#~ msgid "\t*, /, %\t\tmultiplication, division, remainder" +#~ msgstr "\t*, /, %\t\tînmulþire, împãrþire, rest" + +#~ msgid "\t+, -\t\taddition, subtraction" +#~ msgstr "\t+, -\t\tadãugare, scãdere" + +#~ msgid "\t<<, >>\t\tleft and right bitwise shifts" +#~ msgstr "\t<<, >>\t\toperaþii pe un bit la stânga ºi la dreapta" + +#~ msgid "\t<=, >=, <, >\tcomparison" +#~ msgstr "\t<=, >=, <, >\tcomparare" + +#~ msgid "\t==, !=\t\tequality, inequality" +#~ msgstr "\t==, !=\t\tegalitate, inegalitate" + +#~ msgid "\t&\t\tbitwise AND" +#~ msgstr "\t&\t\tªI pe un bit" + +#~ msgid "\t^\t\tbitwise XOR" +#~ msgstr "\t^\t\tSAU exclusiv(XOR) pe un bit" + +#~ msgid "\t|\t\tbitwise OR" +#~ msgstr "\t|\t\tSAU pe un bit" + +#~ msgid "\t&&\t\tlogical AND" +#~ msgstr "\t&&\t\tªI logic" + +#~ msgid "\t||\t\tlogical OR" +#~ msgstr "\t||\t\tSAU logic" + +#~ msgid "\texpr ? expr : expr" +#~ msgstr "\texpr ? expr : expr" + +#~ msgid "\t\t\tconditional expression" +#~ msgstr "\t\t\texpresie condiþionalã" + +#~ msgid "\t=, *=, /=, %=," +#~ msgstr "\t=, *=, /=, %=," + +#~ msgid "\t+=, -=, <<=, >>=," +#~ msgstr "\t+=, -=, <<=, >>=," + +#~ msgid "\t&=, ^=, |=\tassignment" +#~ msgstr "\t&=, ^=, |=\tatribuire" + +#~ msgid "is replaced by its value (coerced to a long integer) within" +#~ msgstr "este înlocuit de valoarea sa (trunchiatã la un întreg lung) într-o" + +#~ msgid "an expression. The variable need not have its integer attribute" +#~ msgstr "expresie. Variabila nu trebuie sã aibã atributul sãu întreg" + +#~ msgid "turned on to be used in an expression." +#~ msgstr "activat pentru a fi folositã într-o expresie." + +#~ msgid "Operators are evaluated in order of precedence. Sub-expressions in" +#~ msgstr "Operatorii sunt evaluaþi în ordinea întâietãþii. Subexpresiile din" + +#~ msgid "parentheses are evaluated first and may override the precedence" +#~ msgstr "paranteze sunt evaluate primele ºi pot suprascrie regulile de" + +#~ msgid "rules above." +#~ msgstr "întâietate de mai sus." + +#~ msgid "If the last ARG evaluates to 0, let returns 1; 0 is returned" +#~ msgstr "" +#~ "Dacã ultimul ARGument este evaluat la 0 let returneazã 1; 0 este returnat" + +#~ msgid "otherwise." +#~ msgstr "în caz contrar." + +#~ msgid "One line is read from the standard input, and the first word is" +#~ msgstr "" +#~ "Linia este cititã de la intrarea(input) standard, ºi primul cuvânt este" + +#~ msgid "" +#~ "assigned to the first NAME, the second word to the second NAME, and so" +#~ msgstr "" +#~ "atribuit primului NUME, al doilea cuvânt celui de-al doilea NUME, ºi aºa" + +#~ msgid "" +#~ "on, with leftover words assigned to the last NAME. Only the characters" +#~ msgstr "" +#~ "mai departe, cu cele rãmase atribuite ultimelor NUME. Doar caracterele" + +#~ msgid "found in $IFS are recognized as word delimiters. The return code is" +#~ msgstr "" +#~ "gãsite în $IFS sunt recunoscute ca delimitatoare de cuvinte. Codul " +#~ "returnat este" + +#~ msgid "" +#~ "zero, unless end-of-file is encountered. If no NAMEs are supplied, the" +#~ msgstr "" +#~ "zero, cu excepþia cazului în care este întâlnit sfârºit de fiºier. Dacã " +#~ "nici un NUME" + +#~ msgid "" +#~ "line read is stored in the REPLY variable. If the -r option is given," +#~ msgstr "" +#~ "nu este furnizat, linia cititã este stocatã în variabila RÃSPUNS. Dacã e " +#~ "datã " + +#~ msgid "this signifies `raw' input, and backslash escaping is disabled. If" +#~ msgstr "" +#~ "opþiunea -r, aceasta înseamnã intrare `brutã' ºi caractere speciale " +#~ "dezactivate." + +#~ msgid "the `-p' option is supplied, the string supplied as an argument is" +#~ msgstr "Dacã este datã opþiunea `-p', ºirul furnizat ca argument este" + +#~ msgid "" +#~ "output without a trailing newline before attempting to read. If -a is" +#~ msgstr "trimis la output cu linie nouã înainte de citire. Dacã -a este" + +#~ msgid "" +#~ "supplied, the words read are assigned to sequential indices of ARRAY," +#~ msgstr "" +#~ "furnizatã, cuvintele citite sunt atribuite indicilor secvenþiali de " +#~ "INTERVAL," + +#~ msgid "starting at zero. If -e is supplied and the shell is interactive," +#~ msgstr "" +#~ "începând de la zero. Dacã -e este furnizat ºi shell-ul este interactiv," + +#~ msgid "readline is used to obtain the line." +#~ msgstr "se va citi linia pentru obþinerea acesteia." + +#~ msgid "" +#~ "Causes a function to exit with the return value specified by N. If N" +#~ msgstr "" +#~ "Cauzeazã terminarea unei funcþii cu valoarea specificatã de N. Dacã N" + +#~ msgid "is omitted, the return status is that of the last command." +#~ msgstr "este omis, starea returnatã va fi aceea a ultimei comenzi." + +#~ msgid " -a Mark variables which are modified or created for export." +#~ msgstr "" +#~ " -a Marcheazã variabilele de modificat sau create pentru export." + +#~ msgid " -b Notify of job termination immediately." +#~ msgstr " -b Notificare de terminare de job imediatã." + +#~ msgid " -e Exit immediately if a command exits with a non-zero status." +#~ msgstr "" +#~ " -e Iese imediat dacã existã o comandã cu stare diferitã de zero." + +#~ msgid " -f Disable file name generation (globbing)." +#~ msgstr " -f Inhibã generarea de nume de fiºiere (globalizare)." + +#~ msgid " -h Remember the location of commands as they are looked up." +#~ msgstr " -h Reþine locaþiile comenzilor pe mãsura verificãrii lor." + +#~ msgid "" +#~ " -i Force the shell to be an \"interactive\" one. Interactive shells" +#~ msgstr "" +#~ " -i Forþeazã shell-ul sã fie unul \"interactiv\". Shell-urile " +#~ "interactive" + +#~ msgid " always read `~/.bashrc' on startup." +#~ msgstr " citesc întotdeauna `~/.bashrc' la rulare." + +#~ msgid " -k All assignment arguments are placed in the environment for a" +#~ msgstr " -k Toþi parametrii atribuirii sunt plasaþi în mediu pentru o" + +#~ msgid " command, not just those that precede the command name." +#~ msgstr " comandã, nu doar cele care preced numele comenzii." + +#~ msgid " -m Job control is enabled." +#~ msgstr " -m Controlul job-urilor este activat." + +#~ msgid " -n Read commands but do not execute them." +#~ msgstr " -n Citeºte comenzile, dar nu le executã." + +#~ msgid " -o option-name" +#~ msgstr " -o nume-opþiune" + +#~ msgid " Set the variable corresponding to option-name:" +#~ msgstr " Seteazã variabila corespunzãtoare numelui opþiunii:" + +#~ msgid " allexport same as -a" +#~ msgstr " allexport la fel ca -a" + +#~ msgid " braceexpand same as -B" +#~ msgstr " braceexpand la fel ca -B" + +#~ msgid " emacs use an emacs-style line editing interface" +#~ msgstr "" +#~ " emacs foloseºte o interfaþã de editare de linii stil " +#~ "emacs" + +#~ msgid " errexit same as -e" +#~ msgstr " errexit la fel ca -e" + +#~ msgid " hashall same as -h" +#~ msgstr " hashall la fel ca -h" + +#~ msgid " histexpand same as -H" +#~ msgstr " histexpand la fel ca -H" + +#~ msgid " ignoreeof the shell will not exit upon reading EOF" +#~ msgstr " ignoreeof shellul nu va ieºi dupã citirea EOF" + +#~ msgid " interactive-comments" +#~ msgstr " interactive-comments" + +#~ msgid "" +#~ " allow comments to appear in interactive commands" +#~ msgstr "" +#~ " permite comentariilor sã aparã în comenzi " +#~ "interactive." + +#~ msgid " keyword same as -k" +#~ msgstr " keyword la fel ca -k" + +#~ msgid " monitor same as -m" +#~ msgstr " monitor sla fel ca -m" + +#~ msgid " noclobber same as -C" +#~ msgstr " noclobber la fel ca -C" + +#~ msgid " noexec same as -n" +#~ msgstr " noexec la fel ca -n" + +#~ msgid " noglob same as -f" +#~ msgstr " noglob la fel ca -f" + +#~ msgid " notify save as -b" +#~ msgstr " notify la fel ca -b" + +#~ msgid " nounset same as -u" +#~ msgstr " nounset la fel ca -u" + +#~ msgid " onecmd same as -t" +#~ msgstr " onecmd la fel ca -t" + +#~ msgid " physical same as -P" +#~ msgstr " physical la fel ca -P" + +#~ msgid "" +#~ " posix change the behavior of bash where the default" +#~ msgstr "" +#~ " posix schimbã comportamentul bash în care implicit" + +#~ msgid "" +#~ " operation differs from the 1003.2 standard to" +#~ msgstr "" +#~ " operaþiile diferã de standardul 1003.2 pentru" + +#~ msgid " match the standard" +#~ msgstr " a se potrivi standardului" + +#~ msgid " privileged same as -p" +#~ msgstr " privileged la fel ca -p" + +#~ msgid " verbose same as -v" +#~ msgstr " verbose la fel ca -v" + +#~ msgid " vi use a vi-style line editing interface" +#~ msgstr "" +#~ " vi foloseºte o interfaþã de editare de linii stil vi" + +#~ msgid " xtrace same as -x" +#~ msgstr " xtrace la fel ca -x" + +#~ msgid "" +#~ " -p Turned on whenever the real and effective user ids do not match." +#~ msgstr "" +#~ " -p Activat de fiecare datã când id-urile de user real ºi efectiv nu " +#~ "se potrivesc." + +#~ msgid " Disables processing of the $ENV file and importing of shell" +#~ msgstr " Inhibã procesarea fiºierului $ENV ºi importarea funcþiilor" + +#~ msgid "" +#~ " functions. Turning this option off causes the effective uid and" +#~ msgstr "" +#~ " shell-ului. Dezactivarea acestei opþiuni face ca uid-ul ºi gid-ul" + +#~ msgid " gid to be set to the real uid and gid." +#~ msgstr " efectiv sã fie setate drept uid-ul ºi gid-ul real." + +#~ msgid " -t Exit after reading and executing one command." +#~ msgstr " -t Iese dupã citirea ºi executarea unei comenzi." + +#~ msgid " -u Treat unset variables as an error when substituting." +#~ msgstr " -u Trateazã variabilele nesetate drept erori în substituþie." + +#~ msgid " -v Print shell input lines as they are read." +#~ msgstr "" +#~ " -v Tipãreºte liniile de intrare(input) ale shell-ului pe mãsurã ce " +#~ "sunt citite." + +#~ msgid " -x Print commands and their arguments as they are executed." +#~ msgstr "" +#~ " -x Tipãreºte comenzile ºi parametrii acestora pe mãsura executãrii." + +#~ msgid " -B the shell will perform brace expansion" +#~ msgstr " -B shell-ul va executa expansiune de legãturi(brace)" + +#~ msgid " -H Enable ! style history substitution. This flag is on" +#~ msgstr "" +#~ " -H Activeazã substituþia istoricului stil ! . Acest marcaj(flag) " +#~ "este activat" + +#~ msgid " by default." +#~ msgstr " în mod implicit." + +#~ msgid " -C If set, disallow existing regular files to be overwritten" +#~ msgstr "" +#~ " -C Dacã este setat, nu va permite suprascrierea fiºierelor existente" + +#~ msgid " by redirection of output." +#~ msgstr " prin redirectarea output-ului." + +#~ msgid " -P If set, do not follow symbolic links when executing commands" +#~ msgstr "" +#~ " -P Dacã este setat, nu va urma legãturile simbolice în executarea " +#~ "comenzilor" + +#~ msgid " such as cd which change the current directory." +#~ msgstr " precum cd care schimbã directorul curent." + +#~ msgid "Using + rather than - causes these flags to be turned off. The" +#~ msgstr "" +#~ "Folosind + în locul lui - provoacã dezactivarea acestor marcaje(flags)." + +#~ msgid "flags can also be used upon invocation of the shell. The current" +#~ msgstr "" +#~ " Marcajele pot fi folosite de asemenea pentru invocarea shell-ului. " +#~ "Setul" + +#~ msgid "" +#~ "set of flags may be found in $-. The remaining n ARGs are positional" +#~ msgstr "" +#~ "curent de marcaje(flags) poate fi gãsit în $-. ARGumentele n rãmase sunt" + +#~ msgid "parameters and are assigned, in order, to $1, $2, .. $n. If no" +#~ msgstr "" +#~ "parametri poziþionali ºi sunt atribuiþi, în ordine, lui $1, $2, .. $n. " +#~ "Dacã nu" + +#~ msgid "ARGs are given, all shell variables are printed." +#~ msgstr "" +#~ "este dat nici un ARGument, sunt tipãrite toate variabilele shell-ului." + +#~ msgid "For each NAME, remove the corresponding variable or function. Given" +#~ msgstr "" +#~ "Pentru fiecare NUME, ºterge variabila sau funcþia corespunzãtoare. Dacã " +#~ "se" + +#~ msgid "the `-v', unset will only act on variables. Given the `-f' flag," +#~ msgstr "" +#~ "dã `-v', desetarea(unset) va acþiona numai pe variabile. Dacã se dã `-f'," + +#~ msgid "unset will only act on functions. With neither flag, unset first" +#~ msgstr "" +#~ "desetarea(unset) va acþiona numai pe funcþii. Fãrã nici un marcaj(flag), " + +#~ msgid "tries to unset a variable, and if that fails, then tries to unset a" +#~ msgstr "" +#~ "desetarea(unset) va încerca întâi pe variabile, ºi dacã eºueazãm va " +#~ "încerca" + +#~ msgid "" +#~ "function. Some variables (such as PATH and IFS) cannot be unset; also" +#~ msgstr "" +#~ "pe o funcþie. Anumite variabile ( precum PATH ºi IFS) nu pot fi desetate" +#~ "(unset);" + +#~ msgid "see readonly." +#~ msgstr "de asemenea, vedeþi readonly." + +#~ msgid "NAMEs are marked for automatic export to the environment of" +#~ msgstr "NUMEle sunt marcate pentru exportul automat cãtre mediul" + +#~ msgid "subsequently executed commands. If the -f option is given," +#~ msgstr "comenzilor executate ulterior. Dacã este datã opþiunea -f," + +#~ msgid "the NAMEs refer to functions. If no NAMEs are given, or if `-p'" +#~ msgstr "" +#~ "NUMEle se referã la funcþii. Dacã nu este dat nici un NUME, sau este dat " +#~ "`-p'`," + +#~ msgid "is given, a list of all names that are exported in this shell is" +#~ msgstr "" +#~ "va fi tipãritã o listã a tuturor numelor care sunt exportate în acest" + +#~ msgid "printed. An argument of `-n' says to remove the export property" +#~ msgstr "shell. Parametrul `-n' va elimina proprietatea de export " + +#~ msgid "from subsequent NAMEs. An argument of `--' disables further option" +#~ msgstr "" +#~ "din NUMEle ulterioare. Parametrul `--' dezactiveazã procesarea opþiunilor" + +#~ msgid "processing." +#~ msgstr "viitoare." + +#~ msgid "" +#~ "The given NAMEs are marked readonly and the values of these NAMEs may" +#~ msgstr "NUMEle date sunt marcate readonly ºi valorile acestor NUME nu poate" + +#~ msgid "not be changed by subsequent assignment. If the -f option is given," +#~ msgstr "fi schimbat de atribuiri ulterioare. Dacã este datã opþiunea -f," + +#~ msgid "then functions corresponding to the NAMEs are so marked. If no" +#~ msgstr "atunci funcþiile corespunzãtoare NUMElor sunt marcate. Dacã nu" + +#~ msgid "" +#~ "arguments are given, or if `-p' is given, a list of all readonly names" +#~ msgstr "" +#~ "sunt furnizaþidaþ paramet, sau este dat parametrul `-p'` o listã de nume " +#~ "readonlyri " + +#~ msgid "" +#~ "is printed. An argument of `-n' says to remove the readonly property" +#~ msgstr "" +#~ "va fi tipãritã. Parametrul `-n' va elimina proprietatea de readonly" + +#~ msgid "from subsequent NAMEs. The `-a' option means to treat each NAME as" +#~ msgstr "" +#~ "pentru NUMEle ulterioare. Opþiunea `-a' reprezintã tratarea fiecãrui " +#~ "NUME ca" + +#~ msgid "an array variable. An argument of `--' disables further option" +#~ msgstr "o variabilã interval. Parametrul `--' dezactiveazã alte opþiuni" + +#~ msgid "" +#~ "The positional parameters from $N+1 ... are renamed to $1 ... If N is" +#~ msgstr "" +#~ "Parametrii poziþionali de la $N+1 ... sunt redenumiþi în $1 ... Dacã N " +#~ "nu este" + +#~ msgid "not given, it is assumed to be 1." +#~ msgstr "furnizat, se presupune cã e 1." + +#~ msgid "Read and execute commands from FILENAME and return. The pathnames" +#~ msgstr "Citeºte ºi executã comenzi din NUME_FIªIER ºi returnare. Cãile" + +#~ msgid "in $PATH are used to find the directory containing FILENAME." +#~ msgstr "" +#~ "din $PATH sunt folosite pentru a gãsi directorul care conþine NUME_FIªIER." + +#~ msgid "Suspend the execution of this shell until it receives a SIGCONT" +#~ msgstr "" +#~ "Suspendã execuþia acestui shell pânã se va primi un semnal de SIGCONT." + +#~ msgid "signal. The `-f' if specified says not to complain about this" +#~ msgstr " Dacã este specificat `-f' va elimina avertismentele despre acest " + +#~ msgid "being a login shell if it is; just suspend anyway." +#~ msgstr "login shell; va suspenda oricum." + +#~ msgid "Exits with a status of 0 (trueness) or 1 (falseness) depending on" +#~ msgstr "Iese cu o stare de 0 (adevãr) sau 1 (falsitate) depinzând de" + +#~ msgid "the evaluation of EXPR. Expressions may be unary or binary. Unary" +#~ msgstr "evaluarea EXPR. Expresiile pot fi unare sau binare. Expresiile" + +#~ msgid "expressions are often used to examine the status of a file. There" +#~ msgstr "" +#~ "unare sunt des folosite pentru a examina starea unui fiºier. Mai existã" + +#~ msgid "are string operators as well, and numeric comparison operators." +#~ msgstr "operatori de ºir de asemenea, ºi operator de comparare numericã." + +#~ msgid "File operators:" +#~ msgstr "Operatori de fiºier:" + +#~ msgid " -b FILE True if file is block special." +#~ msgstr " -b FIªIER Adevãrat dacã fiºierul este bloc special." + +#~ msgid " -c FILE True if file is character special." +#~ msgstr " -c FIªIER Adevãrat dacã fiºierul este caracter special." + +#~ msgid " -d FILE True if file is a directory." +#~ msgstr " -b FIªIER Adevãrat dacã fiºierul este director." + +#~ msgid " -e FILE True if file exists." +#~ msgstr " -e FIªIER Adevãrat dacã fiºierul existã." + +#~ msgid " -f FILE True if file exists and is a regular file." +#~ msgstr "" +#~ " -b FIªIER Adevãrat dacã fiºierul existã ºi este fiºier " +#~ "obiºnuit (regular)." + +#~ msgid " -g FILE True if file is set-group-id." +#~ msgstr "" +#~ " -g FIªIER Adevãrat dacã fiºierul are setat id-ul de grup." + +#~ msgid " -h FILE True if file is a symbolic link. Use \"-L\"." +#~ msgstr "" +#~ " -h FIªIER Adevãrat dacã fiºierul este legãturã simbolicã. " +#~ "Folosiþi \"-L\"." + +#~ msgid " -L FILE True if file is a symbolic link." +#~ msgstr "" +#~ " -L FIªIER Adevãrat dacã fiºierul este legãturã simbolicã." + +#~ msgid " -k FILE True if file has its \"sticky\" bit set." +#~ msgstr "" +#~ " -k FIªIER Adevãrat dacã fiºierul are setat \"sticky\" bit." + +#~ msgid " -p FILE True if file is a named pipe." +#~ msgstr "" +#~ " -p FIªIER Adevãrat dacã fiºierul este o legãturã(pipe) numitã." + +#~ msgid " -r FILE True if file is readable by you." +#~ msgstr " -r FIªIER Adevãrat dacã fiºierul poate fi citit de tine." + +#~ msgid " -s FILE True if file exists and is not empty." +#~ msgstr " -s FIªIER Adevãrat dacã fiºierul existã ºi nu este vid." + +#~ msgid " -S FILE True if file is a socket." +#~ msgstr " -S FIªIER Adevãrat dacã fiºierul este un socket." + +#~ msgid " -t FD True if FD is opened on a terminal." +#~ msgstr " -t FD Adevãrat dacã FD este deschis într-un terminal." + +#~ msgid " -u FILE True if the file is set-user-id." +#~ msgstr " -u FIªIER Adevãrat dacã fiºierul are setat user id-ul." + +#~ msgid " -w FILE True if the file is writable by you." +#~ msgstr " -w FIªIER Adevãrat dacã fiºierul poate fi scris de tine." + +#~ msgid " -x FILE True if the file is executable by you." +#~ msgstr "" +#~ " -x FIªIER Adevãrat dacã fiºierul poate fi executat de cãtre " +#~ "tine." + +#~ msgid " -O FILE True if the file is effectively owned by you." +#~ msgstr "" +#~ " -O FIªIER Adevãrat dacã fiºierul este efectiv propriu(owned) " +#~ "þie." + +#~ msgid "" +#~ " -G FILE True if the file is effectively owned by your group." +#~ msgstr "" +#~ " -O FIªIER Adevãrat dacã fiºierul este efectiv propriu(owned) " +#~ "grupului tãu." + +#~ msgid " FILE1 -nt FILE2 True if file1 is newer than (according to" +#~ msgstr "" +#~ " FIªIER1 -nt FIªIER2 Adevãrat dacã fiºier1 este mai nou decât (potrivit " + +#~ msgid " modification date) file2." +#~ msgstr " datei modificãrii) fiºier2." + +#~ msgid " FILE1 -ot FILE2 True if file1 is older than file2." +#~ msgstr "" +#~ " FIªIER1 -ot FIªIER2 Adevãrat dacã fiºier1 este mai vechi decât fiºier2." + +#~ msgid " FILE1 -ef FILE2 True if file1 is a hard link to file2." +#~ msgstr "" +#~ " FIªIER1 -ef FIªIER2 Adevãrat dacã fiºier1 este hard link cãtre fiºier2." + +#~ msgid "String operators:" +#~ msgstr "Operatori de ºiruri:" + +#~ msgid " -z STRING True if string is empty." +#~ msgstr " -z ªIR Adevãrat dacã ºirul este vid." + +#~ msgid " -n STRING" +#~ msgstr " -n ªIR" + +#~ msgid " STRING True if string is not empty." +#~ msgstr " ªIR Adevãrat dacã ºirul nu este vid." + +#~ msgid " STRING1 = STRING2" +#~ msgstr " ªIR1 = ªIR2" + +#~ msgid " True if the strings are equal." +#~ msgstr " Adevãrat dacã ºirurile sunt egale." + +#~ msgid " STRING1 != STRING2" +#~ msgstr " ªIR1 != ªIR2" + +#~ msgid " True if the strings are not equal." +#~ msgstr " Adevãrat dacã ºirurile nu sunt egale." + +#~ msgid " STRING1 < STRING2" +#~ msgstr " ªIR1 < ªIR2" + +#~ msgid "" +#~ " True if STRING1 sorts before STRING2 lexicographically" +#~ msgstr "" +#~ " Adevãrat dacã ªIR1 se ordoneazã lexical înaintea lui " +#~ "ªIR2" + +#~ msgid " STRING1 > STRING2" +#~ msgstr " ªIR1 > ªIR2" + +#~ msgid "" +#~ " True if STRING1 sorts after STRING2 lexicographically" +#~ msgstr "" +#~ " Adevãrat dacã ªIR1 se ordoneazã lexical dupã ªIR2" + +#~ msgid "Other operators:" +#~ msgstr "Alþi operatori:" + +#~ msgid " ! EXPR True if expr is false." +#~ msgstr " ! EXPR Adevãrat dacã expr e falsã." + +#~ msgid " EXPR1 -a EXPR2 True if both expr1 AND expr2 are true." +#~ msgstr " EXPR1 -a EXPR2 Adevãrat dacã ºi expr1 ªI expr2 sunt adevãrate." + +#~ msgid " EXPR1 -o EXPR2 True if either expr1 OR expr2 is true." +#~ msgstr "" +#~ " EXPR1 -a EXPR2 Adevãrat dacã una din expr1 sau expr2 e adevãratã." + +#~ msgid " arg1 OP arg2 Arithmetic tests. OP is one of -eq, -ne," +#~ msgstr " arg1 OP arg2 Teste aritmetice. OP este unul din -eq, -ne," + +#~ msgid " -lt, -le, -gt, or -ge." +#~ msgstr " -lt, -le, -gt, or -ge." + +#~ msgid "Arithmetic binary operators return true if ARG1 is equal, not-equal," +#~ msgstr "Operatorii aritmetici binari returneazã adevãrat(true) dacã ARG1 " + +#~ msgid "" +#~ "less-than, less-than-or-equal, greater-than, or greater-than-or-equal" +#~ msgstr "" +#~ "este egal cu, nu este egal cu,mai mic, mai mic sau egal, mai mare, mai " +#~ "mare sau egal" + +#~ msgid "than ARG2." +#~ msgstr "decât ARG2." + +#~ msgid "This is a synonym for the \"test\" builtin, but the last" +#~ msgstr "Acesta este un sinonim pentru comanda internã \"test\", dar ultimul" + +#~ msgid "argument must be a literal `]', to match the opening `['." +#~ msgstr "argument trebuie sã fie un `]' literal, pentru a închide un `['." + +#~ msgid "Print the accumulated user and system times for processes run from" +#~ msgstr "" +#~ "Afiºeazã timpurile acumulate de user ºi sistem pentru procesele rulate din" + +#~ msgid "the shell." +#~ msgstr "shell." + +#~ msgid "The command ARG is to be read and executed when the shell receives" +#~ msgstr "" +#~ "ARGumentele comenzii vor fi citite ºi executate când shell-ul primeºte" + +#~ msgid "signal(s) SIGNAL_SPEC. If ARG is absent all specified signals are" +#~ msgstr "" +#~ "semnal(e). SIGNAL_SPEC. Dacã ARGumentul este absent toate semnalele" + +#~ msgid "reset to their original values. If ARG is the null string each" +#~ msgstr "" +#~ "specifice sunt resetate la valorile lor originale. Dacã ARGumentul este " +#~ "un ºir vid" + +#~ msgid "SIGNAL_SPEC is ignored by the shell and by the commands it invokes." +#~ msgstr "" +#~ "fiecare SIGNAL_SPEC este ignorat de shell ºi de comanda invocatã de " +#~ "acesta." + +#~ msgid "If SIGNAL_SPEC is EXIT (0) the command ARG is executed on exit from" +#~ msgstr "" +#~ "Dacã SIGNAL_SPEC este EXIT (0) ARGumentele comenzii sunt executate la " + +#~ msgid "the shell. If SIGNAL_SPEC is DEBUG, ARG is executed after every" +#~ msgstr "" +#~ "ieºirea din shell. Dacã SIGNAL_SPEC este DEBUG, ARGument este executat" + +#~ msgid "command. If ARG is `-p' then the trap commands associated with" +#~ msgstr "" +#~ "dupã fiecare comandã. Dacã ARGument este `-' atunci vor fi afiºate " +#~ "comenzile" + +#~ msgid "each SIGNAL_SPEC are displayed. If no arguments are supplied or if" +#~ msgstr "trap asociate cu fiecare SIGNAL_SPEC. Dacã nu sunt furnizaþi " + +#~ msgid "only `-p' is given, trap prints the list of commands associated with" +#~ msgstr "" +#~ "parametri sau este dat doar `-p', trap afiºeazã lista de comenzi asociate " +#~ "cu " + +#~ msgid "" +#~ "each signal number. SIGNAL_SPEC is either a signal name in " +#~ msgstr "" +#~ "fiecare numãr de semnal. SIGNAL_SPEC este ori un nume de semnal din " +#~ "" + +#~ msgid "" +#~ "or a signal number. `trap -l' prints a list of signal names and their" +#~ msgstr "" +#~ "sau un numãr de semnal. `trap -l' tipãreºte o listã de numere de semnale " +#~ "ºi " + +#~ msgid "corresponding numbers. Note that a signal can be sent to the shell" +#~ msgstr "" +#~ "numerele corespunzãtoare. Notaþi cã un semnal poate fi trimis shell-ului" + +#~ msgid "with \"kill -signal $$\"." +#~ msgstr "cu \"kill -signal $$\"." + +#~ msgid "For each NAME, indicate how it would be interpreted if used as a" +#~ msgstr "" +#~ "Pentru fiecare NUME, indicã în ce mod va fi interpretat dacã este " +#~ "utilizat ca" + +#~ msgid "If the -t option is used, returns a single word which is one of" +#~ msgstr "" +#~ "Dacã este folositã opþiunea -t, returneazã un singur cuvânt care este " +#~ "unul din" + +#~ msgid "" +#~ "`alias', `keyword', `function', `builtin', `file' or `', if NAME is an" +#~ msgstr "" +#~ "`alias', `keyword', `function', `builtin', `file' or `', dacã NUME este un" + +#~ msgid "" +#~ "alias, shell reserved word, shell function, shell builtin, disk file," +#~ msgstr "" +#~ "alias, cuvânt rezervat de shell, funcþie de shell, comandã internã, " +#~ "fiºier de pe disk," + +#~ msgid "or unfound, respectively." +#~ msgstr "sau negãsit, respectiv." + +#~ msgid "If the -p flag is used, either returns the name of the disk file" +#~ msgstr "" +#~ "Dacã este utilizat marcajul(flag) -p se returneazã fie numele fiºierului " +#~ "de disk" + +#~ msgid "that would be executed, or nothing if -t would not return `file'." +#~ msgstr "" +#~ "care urmeazã sã fie executat, sau nimic dacã -t nu va returna `fiºier'." + +#~ msgid "If the -a flag is used, displays all of the places that contain an" +#~ msgstr "Dacã este folosit -a, se vor afiºa toate locurile care conþin" + +#~ msgid "" +#~ "executable named `file'. This includes aliases and functions, if and" +#~ msgstr "" +#~ "un executabil numit `fiºier'. Aceasta include aliasuri ºi funcþii, ºi " +#~ "numai" + +#~ msgid "only if the -p flag is not also used." +#~ msgstr "marcajul(flag) -p nu este folosit de asemenea." + +#~ msgid "Type accepts -all, -path, and -type in place of -a, -p, and -t," +#~ msgstr "Type acceptã -all, -path ºi -type în loc de -a, -p ºi -t," + +#~ msgid "respectively." +#~ msgstr "respectiv" + +#~ msgid "Ulimit provides control over the resources available to processes" +#~ msgstr "Ulimit oferã control al resurselor disponibile pentru procesele" + +#~ msgid "started by the shell, on systems that allow such control. If an" +#~ msgstr "" +#~ "rulate de shell, în sisteme care permit acest tip de control. Dacã este" + +#~ msgid "option is given, it is interpreted as follows:" +#~ msgstr "datã o opþiune, este interpretatã precum urmeazã:" + +#~ msgid " -S\tuse the `soft' resource limit" +#~ msgstr " -S\tfoloseºte limita `soft' a resursei" + +#~ msgid " -H\tuse the `hard' resource limit" +#~ msgstr " -H\tfoloseºte limita `hard' a resursei" + +#~ msgid " -a\tall current limits are reported" +#~ msgstr " -a\tsunt raportate toate limitele curente" + +#~ msgid " -c\tthe maximum size of core files created" +#~ msgstr " -c\tmãrimea maximã de fiºiere core creatã" + +#~ msgid " -d\tthe maximum size of a process's data segment" +#~ msgstr " -d\ttmãrimea maximã a unui segment de date al procesului" + +#~ msgid " -m\tthe maximum resident set size" +#~ msgstr " -m\tmãrimea maximã de rezidenþã" + +#~ msgid " -s\tthe maximum stack size" +#~ msgstr " -s\tmãrimea maximã a stivei(stack)" + +#~ msgid " -t\tthe maximum amount of cpu time in seconds" +#~ msgstr " -t\tsuma maximã a timpului cpu în secunde" + +#~ msgid " -f\tthe maximum size of files created by the shell" +#~ msgstr " -f\ttmãrimea maximã a fiºierelor create de shell" + +#~ msgid " -p\tthe pipe buffer size" +#~ msgstr " -p\tmãrimea tamponului de legãturã (pipe buffer)" + +#~ msgid " -n\tthe maximum number of open file descriptors" +#~ msgstr " -n\tnumãrul maxim de fiºiere deschise" + +#~ msgid " -u\tthe maximum number of user processes" +#~ msgstr " -u\tnumãrul maxim de procese utilizator" + +#~ msgid " -v\tthe size of virtual memory" +#~ msgstr " -v\tmãrimea memoriei virtuale" + +#~ msgid "If LIMIT is given, it is the new value of the specified resource." +#~ msgstr "Dacã este datã LIMITÃ, va fi noua valoare a resursei specificate." + +#~ msgid "Otherwise, the current value of the specified resource is printed." +#~ msgstr "" +#~ "În caz contrar, este tipãritã valoarea curentã a resursei specificate." + +#~ msgid "If no option is given, then -f is assumed. Values are in 1k" +#~ msgstr "" +#~ "Dacã nu este datã nici o opþiune se presupune -f. Valorile sunt exprimate" + +#~ msgid "increments, except for -t, which is in seconds, -p, which is in" +#~ msgstr "" +#~ "în incrementãri de 1k, exceptând -t, care este în secunde, -p, care este " +#~ "în" + +#~ msgid "increments of 512 bytes, and -u, which is an unscaled number of" +#~ msgstr "incrementãri de 512 octeþi, ºi -u, care este un numãr nescalat de" + +#~ msgid "processes." +#~ msgstr "procese." + +#~ msgid "" +#~ "The user file-creation mask is set to MODE. If MODE is omitted, or if" +#~ msgstr "" +#~ "Masca de crearecreation mask) a fiºierului utilizatorului e setatã la " +#~ "MOD. Dacã" + +#~ msgid "" +#~ "`-S' is supplied, the current value of the mask is printed. The `-S'" +#~ msgstr "" +#~ "MOD este omis sau este dat `-S', este tipãritã valoarea curentã a " +#~ "mãºtii. Opþiunea" + +#~ msgid "" +#~ "option makes the output symbolic; otherwise an octal number is output." +#~ msgstr "" +#~ "`-S' returneazã output simbolic; în caz contrar outputul este un numãr " +#~ "octal." + +#~ msgid "If MODE begins with a digit, it is interpreted as an octal number," +#~ msgstr "Dacã MOD începe cu un digit, este interpretat ca numãr octal," + +#~ msgid "" +#~ "otherwise it is a symbolic mode string like that accepted by chmod(1)." +#~ msgstr "în caz contrar este un ºir mod simbolic premis de chmod(1)." + +#~ msgid "" +#~ "Wait for the specified process and report its termination status. If" +#~ msgstr "" +#~ "Aºteaptã dupã procesul specificat ºi raporteazã starea de terminare. Dacã" + +#~ msgid "N is not given, all currently active child processes are waited for," +#~ msgstr "" +#~ "N nu este dat,se aºteaptã dupã toate procesele copil(child) curente," + +#~ msgid "and the return code is zero. N may be a process ID or a job" +#~ msgstr "" +#~ "ºi codul returnat este zero. N poate fi un ID de proces sau o " +#~ "specificaþie" + +#~ msgid "specification; if a job spec is given, all processes in the job's" +#~ msgstr "de job; Dacã este datã o specificaþie de job,se aºteaptã dupã" + +#~ msgid "pipeline are waited for." +#~ msgstr " toate procesele din legãturã(pipeline)." + +#~ msgid "and the return code is zero. N is a process ID; if it is not given," +#~ msgstr "" +#~ "ºi codul returnat este zero. N este un ID de proces; dacã nu este dat," + +#~ msgid "all child processes of the shell are waited for." +#~ msgstr "se va aºtepta dupã doate procesele copil(child) din shell." + +#~ msgid "The `for' loop executes a sequence of commands for each member in a" +#~ msgstr "" +#~ "Ciclul `for' executã o secvenþã de comenzi pentru fiecare membru dintr-o" + +#~ msgid "" +#~ "list of items. If `in WORDS ...;' is not present, then `in \"$@\"' is" +#~ msgstr "" +#~ "listã de elemente. Dacã `in CUVINTE...;' nu este prezent, atunci `in \"$@" +#~ "\"'" + +#~ msgid "" +#~ "assumed. For each element in WORDS, NAME is set to that element, and" +#~ msgstr "" +#~ "este presupus. Pentru fiecare element din CUVINTE, NUME este setat ca " +#~ "acel" + +#~ msgid "the COMMANDS are executed." +#~ msgstr "element ºi COMENZI sunt executate." + +#~ msgid "The WORDS are expanded, generating a list of words. The" +#~ msgstr "CUVINTEle sunt expandate, generând o listã de cuvinte. Setul de" + +#~ msgid "set of expanded words is printed on the standard error, each" +#~ msgstr "" +#~ "de cuvinte expandate este tipãrit la dispozitivul de eroare standard, " +#~ "fiecare" + +#~ msgid "preceded by a number. If `in WORDS' is not present, `in \"$@\"'" +#~ msgstr "" +#~ "fiind precedat de un numãr. Dacã `in CUVINTE' nu este prezent, `in \"$@" +#~ "\"'" + +#~ msgid "is assumed. The PS3 prompt is then displayed and a line read" +#~ msgstr "" +#~ "este presupus. Promptul PS3 este apoi afiºat ºi o linie va fi cititã de" + +#~ msgid "from the standard input. If the line consists of the number" +#~ msgstr "" +#~ "la intrare(input) standard. Dacã linia e alcãtuitã dintr-unul din " +#~ "numerele" + +#~ msgid "corresponding to one of the displayed words, then NAME is set" +#~ msgstr "corespunzãtoare unuia din cuvintele afiºate, atunci NUME este setat" + +#~ msgid "to that word. If the line is empty, WORDS and the prompt are" +#~ msgstr "" +#~ "drept cuvântul respectiv. Dacã linia este vidã, CUVINTEle ºi promptul " +#~ "sunt" + +#~ msgid "redisplayed. If EOF is read, the command completes. Any other" +#~ msgstr "" +#~ "reafiºate. Dacã se citeºte EOF, comanda ajunge la sfârºit. Orice altã" + +#~ msgid "value read causes NAME to be set to null. The line read is saved" +#~ msgstr "" +#~ "valoare cititã va face ca NUMEle setat sã fie setat null. Linia cititã " +#~ "este salvatã" + +#~ msgid "in the variable REPLY. COMMANDS are executed after each selection" +#~ msgstr "" +#~ "în variabila RÃSPUNS. COMENZIle sunt executate dupã fiecare selecþie" + +#~ msgid "until a break or return command is executed." +#~ msgstr "pânã când se executã o comandã break sau return." + +#~ msgid "Selectively execute COMMANDS based upon WORD matching PATTERN. The" +#~ msgstr "" +#~ "Executã selectiv COMENZI bazându-se pe potrivirea CUVÂNTului în TIPAR." + +#~ msgid "`|' is used to separate multiple patterns." +#~ msgstr " `|' este folosit pentru a separa mai multe tipare." + +#~ msgid "" +#~ "The if COMMANDS are executed. If the exit status is zero, then the then" +#~ msgstr "" +#~ "COMENZIle if sunt executate. Dacã starea de ieºire este zero, atunc" + +#~ msgid "" +#~ "COMMANDS are executed. Otherwise, each of the elif COMMANDS are executed" +#~ msgstr "" +#~ "COMENZIle then sunt executate. În caz contrar, fiecare din COMENZIle " +#~ "elif sunt executate" + +#~ msgid "" +#~ "in turn, and if the exit status is zero, the corresponding then COMMANDS" +#~ msgstr "" +#~ "pe rând, ºi dacã starea de ieºire este zero, atunci COMENZIle then " +#~ "corespunzãtoare" + +#~ msgid "" +#~ "are executed and the if command completes. Otherwise, the else COMMANDS" +#~ msgstr "" +#~ "sunt executate ºi comanda if se terminã. În caz contrar, COMENZIle else" + +#~ msgid "" +#~ "are executed, if present. The exit status is the exit status of the last" +#~ msgstr "" +#~ "sunt executate, în cazul în care sunt prezente. Starea de ieºire este " +#~ "starea de ieºire" + +#~ msgid "command executed, or zero if no condition tested true." +#~ msgstr "" +#~ "a ultimei comenzi executate, sau zero dacã nici o condiþie nu s-a dovedit " +#~ "adevãratã." + +#~ msgid "Expand and execute COMMANDS as long as the final command in the" +#~ msgstr "Expandeazã ºi executã COMENZI atâta timp cât comanda finalã din" + +#~ msgid "`while' COMMANDS has an exit status of zero." +#~ msgstr "COMENZIle `while' au o stare de ieºire de zero." + +#~ msgid "`until' COMMANDS has an exit status which is not zero." +#~ msgstr "COMENZIle `until' au o stare de ieºire diferitã de zero." + +#~ msgid "Create a simple command invoked by NAME which runs COMMANDS." +#~ msgstr "Creazã o comandã simplã invocatã de NUME care ruleazã COMENZI." + +#~ msgid "Arguments on the command line along with NAME are passed to the" +#~ msgstr "Parametrii din linia de comandã împreunã cu NUMEle sunt pasaþi" + +#~ msgid "function as $0 .. $n." +#~ msgstr "funcþiei drept $0 .. $n." + +#~ msgid "Run a set of commands in a group. This is one way to redirect an" +#~ msgstr "" +#~ "Ruleazã un set de comenzi dintr-un grup. Aceasta este o cale de a " +#~ "redirecta un" + +#~ msgid "entire set of commands." +#~ msgstr "întreg set de comenzi." + +#~ msgid "This is similar to the `fg' command. Resume a stopped or background" +#~ msgstr "" +#~ "Aceasta este similarã comenzii `fg'. Continuã(resume) un job stopat sau " +#~ "din" + +#~ msgid "job. If you specifiy DIGITS, then that job is used. If you specify" +#~ msgstr "" +#~ "fundal(background). Dacã se specificã DIGIÞI, atunci este folosit acel " +#~ "job. Dacã" + +#~ msgid "" +#~ "WORD, then the job whose name begins with WORD is used. Following the" +#~ msgstr "" +#~ "se specificã CUVÂNT, atunci e folosit jobul al cãrui nume începe cu " +#~ "CUVÂNT." + +#~ msgid "job specification with a `&' places the job in the background." +#~ msgstr "" +#~ "Specificând jobului un `&' dupã, va plasa jobul în fundal(background)." + +#~ msgid "BASH_VERSION The version numbers of this Bash." +#~ msgstr "BASH_VERSION Numãrul de versiune a acestui Bash." + +#~ msgid "CDPATH A colon separated list of directories to search" +#~ msgstr "" +#~ "CDPATH O listã de directoare separatã prin douã-puncte pentru a " +#~ "se" + +#~ msgid "\t\twhen the argument to `cd' is not found in the current" +#~ msgstr "" +#~ "\t\tcãuta atunci când parametrii specificaþi comenzii `cd' nu sunt gãsiþi " +#~ "în" + +#~ msgid "\t\tdirectory." +#~ msgstr "\t\tdirectorul curent." + +#~ msgid "" +#~ "HISTFILE The name of the file where your command history is stored." +#~ msgstr "" +#~ "HISTFILE Numele fiºierului unde istoricul comenzilor voastre este " +#~ "stocat." + +#~ msgid "HISTFILESIZE The maximum number of lines this file can contain." +#~ msgstr "" +#~ "HISTFILESIZE Numãrul maxim de linii pe care acest fiºier poate sã le " +#~ "conþinã." + +#~ msgid "HISTSIZE The maximum number of history lines that a running" +#~ msgstr "" +#~ "HISTSIZE Numãrul maxim de linii de istoric care pot fi accesate" + +#~ msgid "\t\tshell can access." +#~ msgstr "\t\tde un shell activ." + +#~ msgid "HOME The complete pathname to your login directory." +#~ msgstr "HOME Calea completã cãtre directorul vostru de login." + +#~ msgid "" +#~ "HOSTTYPE The type of CPU this version of Bash is running under." +#~ msgstr "" +#~ "HOSTTYPE Tipul de CPU pe care ruleazã aceastã versiune de Bash." + +#~ msgid "" +#~ "IGNOREEOF Controls the action of the shell on receipt of an EOF" +#~ msgstr "" +#~ "IGNOREEOF Controleazã acþiunea shell-ului la întâlnirea unui " +#~ "caracter" + +#~ msgid "\t\tcharacter as the sole input. If set, then the value" +#~ msgstr "" +#~ "\t\tEOF ca singurã intrare(input). Dacã este setat, atunci valoarea" + +#~ msgid "\t\tof it is the number of EOF characters that can be seen" +#~ msgstr "\t\tacestuia este numãrul de caractere EOF care pot fi întâlnite" + +#~ msgid "\t\tin a row on an empty line before the shell will exit" +#~ msgstr "\t\tpe rând într-o linie vidã înainte de ieºirea shell-ului." + +#~ msgid "\t\t(default 10). When unset, EOF signifies the end of input." +#~ msgstr "" +#~ "\t\t(implicit 10). Când este desetat(unset), EOF semnificã sfârºitul " +#~ "intrãrii(input)." + +#~ msgid "MAILCHECK\tHow often, in seconds, Bash checks for new mail." +#~ msgstr "" +#~ "MAILCHECK\tCât de des, în secunde, Bash-ul sã verifice dacã existã mail " +#~ "nou." + +#~ msgid "MAILPATH\tA colon-separated list of filenames which Bash checks" +#~ msgstr "" +#~ "MAILPATH\tO listã de fiºiere separate prin douã-puncte pe care Bash o " +#~ "verificã" + +#~ msgid "\t\tfor new mail." +#~ msgstr "\t\tpentru mail nou." + +#~ msgid "OSTYPE\t\tThe version of Unix this version of Bash is running on." +#~ msgstr "" +#~ "OSTYPE\t\tVersiunea de Unix pe care aceastã versiune de Bash ruleazã." + +#~ msgid "PATH A colon-separated list of directories to search when" +#~ msgstr "" +#~ "PATH O listã de directoare separatã prin douã-puncte care se va" + +#~ msgid "\t\tlooking for commands." +#~ msgstr "\t\tindexa în cãutarea comenzilor." + +#~ msgid "PROMPT_COMMAND A command to be executed before the printing of each" +#~ msgstr "" +#~ "PROMPT_COMMAND O comandã care va fi executatã înainte de tipãrirea " +#~ "fiecãrui" + +#~ msgid "\t\tprimary prompt." +#~ msgstr "\t\tprompt primar." + +#~ msgid "PS1 The primary prompt string." +#~ msgstr "PS1 ªirul promptului primar." + +#~ msgid "PS2 The secondary prompt string." +#~ msgstr "PS2 ªirul promptului secundar." + +#~ msgid "TERM The name of the current terminal type." +#~ msgstr "TERM Numele tipului de terminal curent." + +#~ msgid "auto_resume Non-null means a command word appearing on a line by" +#~ msgstr "" +#~ "auto_resume Dacã nu e vid rezultã cã un cuvânt comandã ce apare pe o " +#~ "linie" + +#~ msgid "\t\titself is first looked for in the list of currently" +#~ msgstr "\t\tsingur este prima datã cãutat în lista " + +#~ msgid "\t\tstopped jobs. If found there, that job is foregrounded." +#~ msgstr "" +#~ "\t\tjoburilor.curente stopate. Dacã este gãsit acolo, acel job este adus " +#~ "în prim-plan(foreground)." + +#~ msgid "\t\tA value of `exact' means that the command word must" +#~ msgstr "\t\tO valoare de `exact' înseamnã cã acel cuvânt comandã trebuie" + +#~ msgid "\t\texactly match a command in the list of stopped jobs. A" +#~ msgstr "" +#~ "\t\tsã se potriveascã perfect unei comenzi din lista de joburi stopate. O" + +#~ msgid "\t\tvalue of `substring' means that the command word must" +#~ msgstr "\t\tvaloare de `substring' înseamnã cã acel cuvânt comandã trebuie" + +#~ msgid "\t\tmatch a substring of the job. Any other value means that" +#~ msgstr "" +#~ "\t\tsã se potriveascã unui subºir al jobului. Orice altã valoare " +#~ "înseamnã cã" + +#~ msgid "\t\tthe command must be a prefix of a stopped job." +#~ msgstr "\t\tacea comandã trebuie sã fie prefixul unui job stopat." + +#~ msgid "command_oriented_history" +#~ msgstr "command_oriented_history" + +#~ msgid "" +#~ " Non-null means to save multiple-line commands together on" +#~ msgstr "" +#~ " Nevid reprezintã salvarea mai multor linii de comandã " +#~ "împreunã într-o" + +#~ msgid " a single history line." +#~ msgstr " singurã linie de istoric." + +#~ msgid "histchars Characters controlling history expansion and quick" +#~ msgstr "" +#~ "histchars Caractere care controleazã expansiunea istoricului ºi" + +#~ msgid "\t\tsubstitution. The first character is the history" +#~ msgstr "" +#~ "\t\tsubstituþii rapide. Primul caracter este caracterul de substituþie al" + +#~ msgid "\t\tsubstitution character, usually `!'. The second is" +#~ msgstr "\t\tistoricului, de obicei `!'. Al doilea este" + +#~ msgid "\t\tthe `quick substitution' character, usually `^'. The" +#~ msgstr "\t\tcaracterul de `quick substitution', de obicei `^'. Al treilea" + +#~ msgid "\t\tthird is the `history comment' character, usually `#'." +#~ msgstr "\t\teste caracterul de `history comment', de obicei `#'." + +#~ msgid "HISTCONTROL\tSet to a value of `ignorespace', it means don't enter" +#~ msgstr "" +#~ "HISTCONTROL\tSeteazã o valoare de `ignorespace', care înseamnã sã nu" + +#~ msgid "\t\tlines which begin with a space or tab on the history" +#~ msgstr "\t\tintroduci în lista de istoric linii care încep cu un" + +#~ msgid "\t\tlist. Set to a value of `ignoredups', it means don't" +#~ msgstr "" +#~ "\t\tspaþiu sau un tab. Seteazã o valoare de `ignoredups', care înseamnã" + +#~ msgid "\t\tenter lines which match the last entered line. Set to" +#~ msgstr "" +#~ "\t\ta nu se introduce linii care sunt asemãnãtoare ultimei linii " +#~ "introduse." + +#~ msgid "\t\t`ignoreboth' means to combine the two options. Unset," +#~ msgstr "" +#~ "\t\tSeteazã o valaore de `ignoreboth' însemnând combinarea celor douã " +#~ "opþiuni." + +#~ msgid "\t\tor set to any other value than those above means to save" +#~ msgstr "" +#~ "\t\t Desetat(unset) sau setat la orice altã valoare decât acelea de mai " +#~ "sus" + +#~ msgid "\t\tall lines on the history list." +#~ msgstr "\t\taînseamnã salvarea tuturor liniilor în lista istoricului." + +#~ msgid "Adds a directory to the top of the directory stack, or rotates" +#~ msgstr "" +#~ "Adaugã un director în partea superioarã a stivei de directoare, sau " +#~ "roteºte" + +#~ msgid "the stack, making the new top of the stack the current working" +#~ msgstr "stiva, fãcând noul element superior al listei directorul curent" + +#~ msgid "directory. With no arguments, exchanges the top two directories." +#~ msgstr "" +#~ "de lucru. Fãrã parametri, interchimbã cele douã directoare superioare." + +#~ msgid "+N\tRotates the stack so that the Nth directory (counting" +#~ msgstr "+N\tRoteºte stiva astfel încât al N-ulea director (numãrând" + +#~ msgid "\tfrom the left of the list shown by `dirs') is at the top." +#~ msgstr "\tde la stânga listei afiºatã de `dirs') va fi în vârf(top)." + +#~ msgid "-N\tRotates the stack so that the Nth directory (counting" +#~ msgstr "-N\tRoteºte stiva astfel încât al N-ulea director (numãrând" + +#~ msgid "\tfrom the right) is at the top." +#~ msgstr "\tde la dreapta) va fi în vârf." + +#~ msgid "-n\tsuppress the normal change of directory when adding directories" +#~ msgstr "" +#~ "-n\tinhibã schimbarea normalã de directoare la adãugarea directoarelor" + +#~ msgid "\tto the stack, so only the stack is manipulated." +#~ msgstr "\tîn stivã, astfel încât doar stiva sã fie manipulatã." + +#~ msgid "dir\tadds DIR to the directory stack at the top, making it the" +#~ msgstr "dir\tadaugã DIR în vârful stivei de directoare, fãcându-l" + +#~ msgid "You can see the directory stack with the `dirs' command." +#~ msgstr "Puteþi vedea stiva de directoare cu ajutorul comenzii `dirs'." + +#~ msgid "Removes entries from the directory stack. With no arguments," +#~ msgstr "ªterge intrãrile din stiva de directoare. Fãrã parametri, " + +#~ msgid "removes the top directory from the stack, and cd's to the new" +#~ msgstr "ºterge directorul superior din stivã, ºi face cd la noul" + +#~ msgid "+N\tremoves the Nth entry counting from the left of the list" +#~ msgstr "+N\tºterge al N-ulea element numãrând din stânga listei" + +#~ msgid "\tshown by `dirs', starting with zero. For example: `popd +0'" +#~ msgstr "\tafiºate de `dirs', începând cu zero. De exemplu: `popd +0'" + +#~ msgid "\tremoves the first directory, `popd +1' the second." +#~ msgstr "\tºterge primul director, `popd +1' al doilea." + +#~ msgid "-N\tremoves the Nth entry counting from the right of the list" +#~ msgstr "-N\tºterge al N-ulea element numãrând din dreapta listei" + +#~ msgid "\tshown by `dirs', starting with zero. For example: `popd -0'" +#~ msgstr "\tafiºate de `dirs', începând cu zero. De exemplu: `popd -0'" + +#~ msgid "\tremoves the last directory, `popd -1' the next to last." +#~ msgstr "\tºterge ultimul director, `popd -1' penultimul." + +#~ msgid "" +#~ "-n\tsuppress the normal change of directory when removing directories" +#~ msgstr "" +#~ "-n\tinhibã schimbarea normalã de directoare când se ºterg diurectoare" + +#~ msgid "\tfrom the stack, so only the stack is manipulated." +#~ msgstr "\tdin stivã, astfel încât numai stiva sã fie manipulatã." + +#~ msgid "Display the list of currently remembered directories. Directories" +#~ msgstr "Afiºeazã lista curentã de directoare reþinute. Directoarele" + +#~ msgid "find their way onto the list with the `pushd' command; you can get" +#~ msgstr "" +#~ "îºi gasesc locul în listã cu ajutorul comenzii `pushd'; puteþi merge" + +#~ msgid "back up through the list with the `popd' command." +#~ msgstr "prin listã cu ajutorul comenzii `popd'." + +#~ msgid "" +#~ "The -l flag specifies that `dirs' should not print shorthand versions" +#~ msgstr "" +#~ "Parametrul(flag) -l specificã faptul cã `dirs' nu ar trebui sã " +#~ "tipãreascã " + +#~ msgid "" +#~ "of directories which are relative to your home directory. This means" +#~ msgstr "" +#~ "versiuni prescurtate ale directoarelor care au legãturã(relative) cu home-" +#~ "directory-ul." + +#~ msgid "that `~/bin' might be displayed as `/homes/bfox/bin'. The -v flag" +#~ msgstr "" +#~ " Aceasta înseamnã cã `~/bin' poate fi afiºat ca `/homes/bfox/bin' " +#~ "Parametrul" + +#~ msgid "causes `dirs' to print the directory stack with one entry per line," +#~ msgstr "" +#~ "-v face ca `dirs' sã afiºeze stiva de directoare doar câte o intrare pe " +#~ "linie," + +#~ msgid "" +#~ "prepending the directory name with its position in the stack. The -p" +#~ msgstr "prefixând numele directorului cu poziþia în stivã. Parametrul -p" + +#~ msgid "flag does the same thing, but the stack position is not prepended." +#~ msgstr "face acelaºi lucru, dar poziþia în stivã nu este prefix." + +#~ msgid "" +#~ "The -c flag clears the directory stack by deleting all of the elements." +#~ msgstr "" +#~ "Parametrul(flag) -c ºterge stiva de directoare prin ºtergerea tuturor " +#~ "elementelor." + +#~ msgid "" +#~ "+N\tdisplays the Nth entry counting from the left of the list shown by" +#~ msgstr "+N\tafiºeazã a N-a intrare numãrând de la stânga listei afiºate de" + +#~ msgid "\tdirs when invoked without options, starting with zero." +#~ msgstr "\tdirs atunci când e invocatã fãrã opþiuni, începând cu zero." + +#~ msgid "" +#~ "-N\tdisplays the Nth entry counting from the right of the list shown by" +#~ msgstr "-N\tafiºeazã a N-a intrare numãrând de la dreapta listei afiºate de" + +#~ msgid "Toggle the values of variables controlling optional behavior." +#~ msgstr "" +#~ "Schimbã(toggle) valorile variabilelor, controlând comportamentul opþional." + +#~ msgid "The -s flag means to enable (set) each OPTNAME; the -u flag" +#~ msgstr "" +#~ "Parametrul -s înseamnã activarea(setarea) fiecãrei NUME_OPT; parametrul -u" + +#~ msgid "unsets each OPTNAME. The -q flag suppresses output; the exit" +#~ msgstr "deseteazã(unset) fiecare NUME_OPT. Parametrul -q inhibã output-ul;" + +#~ msgid "status indicates whether each OPTNAME is set or unset. The -o" +#~ msgstr "" +#~ "starea de ieºire indicã dacã fiecare NUME_OPT este setat sau desetat." + +#~ msgid "option restricts the OPTNAMEs to those defined for use with" +#~ msgstr "" +#~ " Parametrul -o restricþioneazã NUME_OPT la acelea definite pentru a fi " + +#~ msgid "`set -o'. With no options, or with the -p option, a list of all" +#~ msgstr "" +#~ "folosite cu `set -o'. Fãrã nici o opþiune, sau cu opþiunea -p, este " +#~ "afiºatã" + +#~ msgid "settable options is displayed, with an indication of whether or" +#~ msgstr "" +#~ "o listã a tuturor opþiunilor setabile, ceea ce indicã dacã fiecare este" + +#~ msgid "not each is set." +#~ msgstr "setatã sau nu." diff --git a/po/ru.gmo b/po/ru.gmo index 53c5ef4bc4406b39cc02327d141e01c1bbd86222..45d4cd1d3772bd16d69e9602c25b9d94ac4abadd 100644 GIT binary patch delta 2570 zc-mc-TWnNC7{}-ILhW|%r`#=r-G$czM{U z52l2O7|{4YOhpYEQR7h`EK<~j)F>|o-_TTv;x$GR(KJN;fBjElb&|<%XU?4OKHu3- zd*0hz{K{W;RAJ;XW0*%um68o-g_Ars($>a!N!xC$H41A8;pbBI4IbtqTo;!1vY~zuv4%1gI@44 zeeRhm%6ki34xZKPD^+yJ=~OBM{VL()i(OzC+zBoNA9C{Gi%wepu9J$+IjP`l&;tL~ z=PZ{}QE;V;o_D*rzsp4j3NFf-a8b`B=z@MV<)Xk(Tnz0cy{>T6;yTSXHx+CH)8a7* zXVhUg6&(Ye;<1|sd;q$|V7t#+id1>HoFAXVr>G?tM8t}N6a$W~(!P8#EUld*RQs5t6Mj(Jwb&_Mv zJ|8`P92A3J@lnA$J{tO=j|O}JM!?HHdhYTwaxp&@ukbTs9hzJHMIPw$vjz%&3Vy=R zkUs6FN5}R4G`I@KK&v$D+V$#6FCLMjlWCYF?O$xef(vb3M z<|+zK8MrRhe155hIh(6tM9csMwFLNHZ-DzF0UC59z#^UsNR=z~ZGZ-tLEeTeST8B+ z59+E6Qo&@99=;!B$bSv8TFnpzXF@#R16~X63-S5$A@&CwTnWyE==oJJEANLXzavbC zc7*2*E~?QmbNFnS#rIm67S4nz;Lk8a>WNTsLxhI4N9gf=5ehySVLx~|LU}V0*1&}b zBlS~+sdPkneo0hn3He_aWzls-d0>B(3MQiT_+*r!JRfCa`U}iSBx3r0$M{|$MnzA> zSZpU_><`m1*4Au{j{K(2IpM9;pK8R9aqtGPMMAikIsIiZ1((Jd+61^1Toq^W^ntC? z@#0i;D$X2#8K>uSaYn2%!RwbyuofB;Jl_izMZv=f7Q@j5@AGM}Q7qPUT7167VwDeQ zj#v!!qhK?5$f5yfEk@>|MUSsoOrv`BpHDTuoHYCNzZ=- zSA+f(pLeF1lKvD!eker;CQ~%z;}jz}n_^0@rWiR3iw1CGy2xS}P1DkeGzGl`8gid8 z?@<)8i62C@O@A%LuzU4hPE(@Lt*A_j`A)sRPO)*xSdV#=L{U;9`8V|gDH8Eg3=*&I z#=Kveh+;nL)xV=uQ=+g>BA^(VMRGNzvnk$&A;n_DM^xP^9Z(8fKEIf^%l%JkLBR#W zD>Z$ZQUiA>7N?B0a*rilm?e7e4#hrj8|ICQ?Nx47`2x8&YwpCnMG9W-f34n>d`Ux* z{7WjN36;tH#@sH&f;p&Ixia=(UXMAf*ZTj;e5K2ftGh=1cS!ZOWA0V_;E8_Kr&x_1 zeQ2{(wqgZKQD*-qWXpoz(ih|kKA_hdHKj306WgWO4Z9W!sLa%jS^0vM$y@nFqvON* z5r-Xfww2m@J=2E0+Sg{-Z~D6pdwq3BiTzO^Y^>crIGQhvXS&9QhWBLJ9~>IX^yFJD z$JXwi%!b0?fQZO+42%!9S}U^ImP|I6$u?WLTx(NvCfj5ip<%;*E?QP*znxfKV*j2z UW7yxPPZ;)W-CT)XyKJfP4^qVJEC2ui delta 4215 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\n" "Language-Team: Russian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=KOI8-R\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%" +"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -#: arrayfunc.c:48 +#: arrayfunc.c:50 msgid "bad array subscript" msgstr "ÎÅÐÒÁ×ÉÌØÎÙÊ ÉÎÄÅËÓ ÍÁÓÓÉ×Á" -#: arrayfunc.c:360 +#: arrayfunc.c:313 builtins/declare.def:474 +#, c-format +msgid "%s: cannot convert indexed to associative array" +msgstr "" + +#: arrayfunc.c:479 +#, fuzzy, c-format +msgid "%s: invalid associative array key" +msgstr "%s: ÎÅÄÏÐÕÓÔÉÍÏÅ ÉÍÑ ÏÐÃÉÉ" + +#: arrayfunc.c:481 #, c-format msgid "%s: cannot assign to non-numeric index" msgstr "%s; ÎÅ ÍÏÇÕ ÐÒÉÐÉÓÁÔØ ÎÅ ÞÉÓÌÏ×ÏÊ ÉÎÄÅËÓ" -#: bashhist.c:328 +#: arrayfunc.c:517 +#, c-format +msgid "%s: %s: must use subscript when assigning associative array" +msgstr "" + +#: bashhist.c:380 #, c-format msgid "%s: cannot create: %s" msgstr "%s: ÎÅ ÍÏÇÕ ÓÏÚÄÁÔØ: %s" -#: bashline.c:2947 +#: bashline.c:3413 msgid "bash_execute_unix_command: cannot find keymap for command" msgstr "" -#: bashline.c:2996 +#: bashline.c:3491 #, c-format msgid "%s: first non-whitespace character is not `\"'" msgstr "%s: ÐÅÒ×ÙÊ ÎÅÐÒÏÂÅÌØÎÙÊ ÓÉÍ×ÏÌ ÎÅ `\"'" -#: bashline.c:3025 +#: bashline.c:3520 #, c-format msgid "no closing `%c' in %s" msgstr "ÎÅÔ ÚÁËÒÙ×ÁÀÝÅÇÏ `%c' × %s" -#: bashline.c:3059 +#: bashline.c:3554 #, c-format msgid "%s: missing colon separator" msgstr "%s: ÐÒÏÐÕÝÅÎ ÒÁÚÄÅÌÉÔÅÌØ Ä×ÏÅÔÏÞÉÅ" -#: builtins/bind.def:194 +#: builtins/bind.def:120 builtins/bind.def:123 +msgid "line editing not enabled" +msgstr "" + +#: builtins/bind.def:206 #, c-format msgid "`%s': invalid keymap name" msgstr "" -#: builtins/bind.def:233 +#: builtins/bind.def:245 #, c-format msgid "%s: cannot read: %s" msgstr "%s: ÎÅ ÍÏÇÕ ÐÒÏÞÉÔÁÔØ: %s" -#: builtins/bind.def:248 +#: builtins/bind.def:260 #, c-format msgid "`%s': cannot unbind" msgstr "" -#: builtins/bind.def:283 +#: builtins/bind.def:295 builtins/bind.def:325 #, c-format msgid "`%s': unknown function name" msgstr "`%s': ÉÍÑ ÆÕÎËÃÉÉ ÎÅÉÚ×ÅÓÔÎÏ" -#: builtins/bind.def:291 +#: builtins/bind.def:303 #, c-format msgid "%s is not bound to any keys.\n" msgstr "%s ÎÅ ÐÒÉ×ÑÚÁÎÁ ÎÅ Ë ÏÄÎÏÊ ÉÚ ËÌÁ×ÉÛ.\n" -#: builtins/bind.def:295 +#: builtins/bind.def:307 #, c-format msgid "%s can be invoked via " msgstr "%s ÍÏÖÅÔ ÂÙÔØ ×ÙÚ×ÁÎ Ó ÐÏÍÏÝØÀ" -#: builtins/break.def:128 +#: builtins/break.def:77 builtins/break.def:117 +msgid "loop count" +msgstr "" + +#: builtins/break.def:137 msgid "only meaningful in a `for', `while', or `until' loop" msgstr "ÉÍÅÅÔ ÓÍÙÓÌ ÔÏÌØËÏ × ÃÉËÌÁÈ `for', `while', ÉÌÉ `until'" -#: builtins/caller.def:132 -msgid "Returns the context of the current subroutine call." -msgstr "" - #: builtins/caller.def:133 -#: builtins/caller.def:137 -#: builtins/pushd.def:660 -#: builtins/pushd.def:668 -#: builtins/pushd.def:671 -#: builtins/pushd.def:681 -#: builtins/pushd.def:685 -#: builtins/pushd.def:689 -#: builtins/pushd.def:692 -#: builtins/pushd.def:695 -#: builtins/pushd.def:704 -#: builtins/pushd.def:708 -#: builtins/pushd.def:712 -#: builtins/pushd.def:715 -msgid " " -msgstr "" - -#: builtins/caller.def:134 -msgid "Without EXPR, returns returns \"$line $filename\". With EXPR," -msgstr "âÅÚ ÷ùòáö ×ÏÚ×ÒÁÝÁÅÔ \"$ÓÔÒÏËÁ $ÉÍÑÆÁÊÌÁ\". ó ÷ùòáö," - -#: builtins/caller.def:135 -msgid "returns \"$line $subroutine $filename\"; this extra information" -msgstr "÷ÏÚ×ÒÁÝÁÅÔ \"$ÓÔÒÏËÁ $ÐÒÏÃÅÄÕÒÁ $ÉÍÑÆÁÊÌÁ\"; ÜÔÁ ÄÏÐÏÌÎÉÔÅÌØÎÁÑ ÉÎÆÏÒÍÁÃÉÑ " - -#: builtins/caller.def:136 -msgid "can be used used to provide a stack trace." -msgstr "ÍÏÖÅÔ ÂÙÔØ ÉÓÐÏÌØÚÏ×ÁÎÁ ÄÌÑ ÓÏÚÄÁÎÉÑ `stack trace'" - -#: builtins/caller.def:138 -msgid "The value of EXPR indicates how many call frames to go back before the" -msgstr "" - -#: builtins/caller.def:139 -msgid "current one; the top frame is frame 0." +msgid "" +"Returns the context of the current subroutine call.\n" +" \n" +" Without EXPR, returns " msgstr "" -#: builtins/cd.def:203 +#: builtins/cd.def:215 msgid "HOME not set" msgstr "ÐÅÒÅÍÅÎÎÁÑ HOME ÎÅ ÕÓÔÁÎÏ×ÌÅÎÁ" -#: builtins/cd.def:215 +#: builtins/cd.def:227 msgid "OLDPWD not set" msgstr "ÐÅÒÅÍÅÎÎÁÑ OLDPWD ÎÅ ÕÓÔÁÎÏ×ÌÅÎÁ" -#: builtins/common.c:133 -#: test.c:921 +#: builtins/common.c:101 +#, c-format +msgid "line %d: " +msgstr "" + +#: builtins/common.c:139 error.c:260 +#, fuzzy, c-format +msgid "warning: " +msgstr "%s: ÐÒÅÄÕÐÒÅÖÄÅÎÉÅ:" + +#: builtins/common.c:153 +#, fuzzy, c-format +msgid "%s: usage: " +msgstr "%s: ÐÒÅÄÕÐÒÅÖÄÅÎÉÅ:" + +#: builtins/common.c:166 test.c:822 msgid "too many arguments" msgstr "ÓÌÉÛËÏÍ ÍÎÏÇÏ ÁÒÇÕÍÅÎÔÏ×" -#: builtins/common.c:157 -#: shell.c:474 -#: shell.c:747 +#: builtins/common.c:191 shell.c:493 shell.c:774 #, c-format msgid "%s: option requires an argument" msgstr "%s: ÏÐÃÉÑ ÔÒÅÂÕÅÔ ÁÒÇÕÍÅÎÔÁ" -#: builtins/common.c:164 +#: builtins/common.c:198 #, c-format msgid "%s: numeric argument required" msgstr "%s: ÔÒÅÂÕÅÔÓÑ ÞÉÓÌÏ×ÏÊ ÁÒÇÕÍÅÎÔ" -#: builtins/common.c:171 +#: builtins/common.c:205 #, c-format msgid "%s: not found" msgstr "%s: ÎÅ ÎÁÊÄÅÎ" -#: builtins/common.c:180 -#: shell.c:760 +#: builtins/common.c:214 shell.c:787 #, c-format msgid "%s: invalid option" msgstr "%s: ÎÅÐÒÁ×ÉÌØÎÁÑ ÏÐÃÉÑ" -#: builtins/common.c:187 +#: builtins/common.c:221 #, c-format msgid "%s: invalid option name" msgstr "%s: ÎÅÄÏÐÕÓÔÉÍÏÅ ÉÍÑ ÏÐÃÉÉ" -#: builtins/common.c:194 -#: general.c:231 -#: general.c:236 +#: builtins/common.c:228 general.c:231 general.c:236 #, c-format msgid "`%s': not a valid identifier" msgstr "`%s': ÎÅÐÒÁ×ÉÌØÎÙÊ ÉÄÅÎÔÉÆÉËÁÔÏÒ" -#: builtins/common.c:201 -#, c-format -msgid "%s: invalid number" -msgstr "%s: ÎÅÄÏÐÕÓÔÉÍÏÅ ÞÉÓÌÏ" +#: builtins/common.c:238 +#, fuzzy +msgid "invalid octal number" +msgstr "ÎÅÄÏÐÕÓÔÉÍÙÊ ÎÏÍÅÒ ÓÉÇÎÁÌÁ" + +#: builtins/common.c:240 +#, fuzzy +msgid "invalid hex number" +msgstr "ÎÅÄÏÐÕÓÔÉÍÏÅ ÞÉÓÌÏ" + +#: builtins/common.c:242 expr.c:1255 +msgid "invalid number" +msgstr "ÎÅÄÏÐÕÓÔÉÍÏÅ ÞÉÓÌÏ" -#: builtins/common.c:208 +#: builtins/common.c:250 #, c-format msgid "%s: invalid signal specification" msgstr "%s: ÎÅÄÏÐÕÓÔÉÍÁÑ ÓÐÅÃÉÆÉËÁÃÉÑ ÓÉÇÎÁÌÁ" -#: builtins/common.c:215 +#: builtins/common.c:257 #, c-format msgid "`%s': not a pid or valid job spec" msgstr "`%s': ÎÅ ÉÄÅÎÔÉÆÉËÁÔÏÒ ÐÒÏÃÅÓÓÁ ÉÌÉ ÐÒÁ×ÉÌØÎÏÅ ÉÍÑ ÚÁÄÁÞÉ" -#: builtins/common.c:222 -#: error.c:453 +#: builtins/common.c:264 error.c:453 #, c-format msgid "%s: readonly variable" msgstr "%s: ÄÏÓÔÕÐÎÁÑ ÔÏÌØËÏ ÎÁ ÞÔÅÎÉÅ ÐÅÒÅÍÅÎÎÁÑ" -#: builtins/common.c:230 +#: builtins/common.c:272 #, c-format msgid "%s: %s out of range" msgstr "%s: %s ×ÙÈÏÄÉÔ ÚÁ ÐÒÅÄÅÌÙ ÄÏÐÕÓÔÉÍÙÈ ÚÎÁÞÅÎÉÊ" -#: builtins/common.c:230 -#: builtins/common.c:232 +#: builtins/common.c:272 builtins/common.c:274 msgid "argument" msgstr "ÁÒÇÕÍÅÎÔ" -#: builtins/common.c:232 +#: builtins/common.c:274 #, c-format msgid "%s out of range" msgstr "%s ×ÙÈÏÄÉÔ ÚÁ ÐÒÅÄÅÌÙ ÄÏÐÕÓÔÉÍÙÈ ÚÎÁÞÅÎÉÊ" -#: builtins/common.c:240 +#: builtins/common.c:282 #, c-format msgid "%s: no such job" msgstr "%s: ÎÅ ÔÁËÏÊ ÚÁÄÁÞÉ" -#: builtins/common.c:248 +#: builtins/common.c:290 #, c-format msgid "%s: no job control" msgstr "" -#: builtins/common.c:250 +#: builtins/common.c:292 msgid "no job control" msgstr "" -#: builtins/common.c:260 +#: builtins/common.c:302 #, c-format msgid "%s: restricted" msgstr "" -#: builtins/common.c:262 +#: builtins/common.c:304 msgid "restricted" msgstr "" -#: builtins/common.c:270 +#: builtins/common.c:312 #, c-format msgid "%s: not a shell builtin" msgstr "%s: ÎÅ ×ÓÔÒÏÅÎÎÁ × ÏÂÏÌÏÞËÕ" -#: builtins/common.c:276 +#: builtins/common.c:321 #, c-format msgid "write error: %s" msgstr "ÏÛÉÂËÁ ÚÁÐÉÓÉ: %s" -#: builtins/common.c:484 +#: builtins/common.c:553 #, c-format msgid "%s: error retrieving current directory: %s: %s\n" msgstr "%s: ÏÛÉÂËÁ ÐÏÌÕÞÅÎÉÑ ÔÅËÕÝÅÊ ÄÉÒÅËÔÏÒÉÉ: %s: %s\n" -#: builtins/common.c:550 -#: builtins/common.c:552 +#: builtins/common.c:619 builtins/common.c:621 #, c-format msgid "%s: ambiguous job spec" msgstr "" -#: builtins/complete.def:251 +#: builtins/complete.def:270 #, c-format msgid "%s: invalid action name" msgstr "" -#: builtins/complete.def:381 -#: builtins/complete.def:524 +#: builtins/complete.def:430 builtins/complete.def:615 +#: builtins/complete.def:813 #, c-format msgid "%s: no completion specification" msgstr "" -#: builtins/complete.def:571 +#: builtins/complete.def:667 msgid "warning: -F option may not work as you expect" msgstr "" -#: builtins/complete.def:573 +#: builtins/complete.def:669 msgid "warning: -C option may not work as you expect" msgstr "" -#: builtins/declare.def:105 +#: builtins/complete.def:786 +msgid "not currently executing completion function" +msgstr "" + +#: builtins/declare.def:122 msgid "can only be used in a function" msgstr "ÍÏÖÅÔ ÂÙÔØ ÉÓÐÏÌØÚÏ×ÁÎÁ ÔÏÌØËÏ × ÆÕÎËÃÉÉ" -#: builtins/declare.def:301 +#: builtins/declare.def:353 msgid "cannot use `-f' to make functions" msgstr "" -#: builtins/declare.def:313 -#: execute_cmd.c:3986 +#: builtins/declare.def:365 execute_cmd.c:4731 #, c-format msgid "%s: readonly function" msgstr "%s: ÄÏÓÔÕÐÎÁÑ ÔÏÌØËÏ ÎÁ ÞÔÅÎÉÅ ÆÕÎËÃÉÑ" -#: builtins/declare.def:401 +#: builtins/declare.def:461 #, c-format msgid "%s: cannot destroy array variables in this way" msgstr "%s: ÎÅ ÍÏÇÕ ÕÄÁÌÉÔØ ÐÅÒÅÍÅÎÎÕÀ-ÍÁÓÓÉ× ÔÁËÉÍ ÓÐÏÓÏÂÏÍ" -#: builtins/enable.def:128 -#: builtins/enable.def:136 +#: builtins/declare.def:468 +#, c-format +msgid "%s: cannot convert associative to indexed array" +msgstr "" + +#: builtins/enable.def:137 builtins/enable.def:145 msgid "dynamic loading not available" msgstr "" -#: builtins/enable.def:303 +#: builtins/enable.def:312 #, c-format msgid "cannot open shared object %s: %s" msgstr "" -#: builtins/enable.def:326 +#: builtins/enable.def:335 #, c-format msgid "cannot find %s in shared object %s: %s" msgstr "" -#: builtins/enable.def:450 +#: builtins/enable.def:459 #, c-format msgid "%s: not dynamically loaded" msgstr "" -#: builtins/enable.def:465 +#: builtins/enable.def:474 #, c-format msgid "%s: cannot delete: %s" msgstr "%s: ÎÅ ÍÏÇÕ ÕÄÁÌÉÔØ: %s" -#: builtins/evalfile.c:129 -#: execute_cmd.c:3852 -#: shell.c:1408 +#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4588 +#: shell.c:1439 #, c-format msgid "%s: is a directory" msgstr "%s: Ñ×ÌÑÅÔÓÑ ÄÉÒÅËÔÏÒÉÅÊ" -#: builtins/evalfile.c:134 +#: builtins/evalfile.c:139 #, c-format msgid "%s: not a regular file" msgstr "%s: ÎÅ Ñ×ÌÑÅÔÓÑ ÏÂÙÞÎÙÍ ÆÁÊÌÏÍ" -#: builtins/evalfile.c:142 +#: builtins/evalfile.c:147 #, c-format msgid "%s: file is too large" msgstr "%s: ÓÌÉÛËÏÍ ÂÏÌØÛÏÊ ÆÁÊÌ" -#: builtins/exec.def:205 +#: builtins/evalfile.c:185 execute_cmd.c:4658 shell.c:1449 +#, c-format +msgid "%s: cannot execute binary file" +msgstr "%s: ÎÅ ÍÏÇÕ ÚÁÐÕÓÔÉÔØ ÂÉÎÁÒÎÙÊ ÆÁÊÌ" + +#: builtins/exec.def:212 #, c-format msgid "%s: cannot execute: %s" msgstr "%s: ÎÅ ÍÏÇÕ ÚÁÐÕÓÔÉÔØ: %s" -#: builtins/exit.def:83 +#: builtins/exit.def:65 +#, c-format +msgid "logout\n" +msgstr "" + +#: builtins/exit.def:88 msgid "not login shell: use `exit'" -msgstr "ÏÂÏÌÏÞËÁ ÎÅ Ñ×ÌÑÅÔÓÑ ÚÁÐÕÝÅÎÎÏÊ ÐÏÓÌÅ ×ÈÏÄÁ × ÓÉÓÔÅÍÕ: ÉÓÐÏÌØÚÕÊÔÅ `exit' " +msgstr "" +"ÏÂÏÌÏÞËÁ ÎÅ Ñ×ÌÑÅÔÓÑ ÚÁÐÕÝÅÎÎÏÊ ÐÏÓÌÅ ×ÈÏÄÁ × ÓÉÓÔÅÍÕ: ÉÓÐÏÌØÚÕÊÔÅ `exit' " -#: builtins/exit.def:111 +#: builtins/exit.def:120 +#, c-format msgid "There are stopped jobs.\n" msgstr "åÓÔØ ÐÒÉÏÓÔÁÎÏ×ÌÅÎÎÙÅ ÚÁÄÁÞÉ.\n" -#: builtins/fc.def:259 +#: builtins/exit.def:122 +#, fuzzy, c-format +msgid "There are running jobs.\n" +msgstr "åÓÔØ ÐÒÉÏÓÔÁÎÏ×ÌÅÎÎÙÅ ÚÁÄÁÞÉ.\n" + +#: builtins/fc.def:261 msgid "no command found" msgstr "ÎÅ ÎÁÛÅÌ ÔÁËÕÀ ËÏÍÁÎÄÕ" -#: builtins/fc.def:329 +#: builtins/fc.def:341 msgid "history specification" msgstr "" -#: builtins/fc.def:350 +#: builtins/fc.def:362 #, c-format msgid "%s: cannot open temp file: %s" msgstr "%s: ÎÅ ÍÏÇÕ ÏÔËÒÙÔØ ×ÒÅÍÅÎÎÙÊ ÆÁÊÌ: %s" -#: builtins/fg_bg.def:149 +#: builtins/fg_bg.def:149 builtins/jobs.def:282 +msgid "current" +msgstr "" + +#: builtins/fg_bg.def:158 #, c-format msgid "job %d started without job control" msgstr "" -#: builtins/getopt.c:109 +#: builtins/getopt.c:110 #, c-format msgid "%s: illegal option -- %c\n" msgstr "%s: ÎÅÄÏÐÕÓÔÉÍÁÑ ÏÐÃÉÑ -- %c\n" -#: builtins/getopt.c:110 +#: builtins/getopt.c:111 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "" -#: builtins/hash.def:83 +#: builtins/hash.def:92 msgid "hashing disabled" msgstr "" -#: builtins/hash.def:128 +#: builtins/hash.def:138 #, c-format msgid "%s: hash table empty\n" msgstr "" -#: builtins/help.def:108 -msgid "Shell commands matching keywords `" -msgstr "" +#: builtins/hash.def:244 +#, fuzzy, c-format +msgid "hits\tcommand\n" +msgstr "ÐÏÓÌÅÄÎÑÑ ËÏÍÁÎÄÁ: %s\n" -#: builtins/help.def:110 +#: builtins/help.def:130 +#, c-format msgid "Shell commands matching keyword `" -msgstr "" +msgid_plural "Shell commands matching keywords `" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" -#: builtins/help.def:138 +#: builtins/help.def:168 #, c-format -msgid "no help topics match `%s'. Try `help help' or `man -k %s' or `info %s'." +msgid "" +"no help topics match `%s'. Try `help help' or `man -k %s' or `info %s'." msgstr "" -#: builtins/help.def:164 +#: builtins/help.def:185 #, c-format msgid "%s: cannot open: %s" msgstr "%s: ÎÅ ÍÏÇÕ ÏÔËÒÙÔØ: %s" -#: builtins/help.def:182 +#: builtins/help.def:337 +#, c-format 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" @@ -411,369 +451,330 @@ msgid "" "\n" msgstr "" -#: builtins/history.def:150 +#: builtins/history.def:154 msgid "cannot use more than one of -anrw" msgstr "" -#: builtins/history.def:182 +#: builtins/history.def:186 msgid "history position" msgstr "" -#: builtins/history.def:400 +#: builtins/history.def:365 #, c-format msgid "%s: history expansion failed" msgstr "" -#: builtins/jobs.def:99 +#: builtins/inlib.def:71 +#, fuzzy, c-format +msgid "%s: inlib failed" +msgstr "%s: ÎÅÄÏÐÕÓÔÉÍÙÊ ÓÅÒ×ÉÓ" + +#: builtins/jobs.def:109 msgid "no other options allowed with `-x'" msgstr "" -#: builtins/kill.def:187 +#: builtins/kill.def:197 #, c-format msgid "%s: arguments must be process or job IDs" msgstr "" -#: builtins/kill.def:250 +#: builtins/kill.def:260 msgid "Unknown error" msgstr "îÅÉÚ×ÅÓÔÎÁÑ ÏÛÉÂËÁ" -#: builtins/let.def:94 -#: builtins/let.def:119 -#: expr.c:497 -#: expr.c:512 +#: builtins/let.def:95 builtins/let.def:120 expr.c:501 expr.c:516 msgid "expression expected" msgstr "ÏÖÉÄÁÌÏÓØ ×ÙÒÁÖÅÎÉÅ" -#: builtins/printf.def:327 +#: builtins/mapfile.def:215 builtins/read.def:272 #, c-format -msgid "`%s': missing format character" -msgstr "`%s': ÐÒÏÐÕÝÅÎ ÓÉÍ×ÏÌ ÆÏÒÍÁÔÉÒÏ×ÁÎÉÑ" +msgid "%s: invalid file descriptor specification" +msgstr "%s: ÎÅÄÏÐÕÓÔÉÍÏÅ ÏÐÉÓÁÎÉÅ ÆÁÊÌÏ×ÏÇÏ ÄÅÓËÒÉÐÔÏÒÁ" -#: builtins/printf.def:502 +#: builtins/mapfile.def:223 builtins/read.def:279 #, c-format -msgid "`%c': invalid format character" -msgstr "%c': ÎÅÄÏÐÕÓÔÉÍÙÊ ÓÉÍ×ÏÌ ÆÏÒÍÁÔÉÒÏ×ÁÎÉÑ" - -#: builtins/printf.def:708 -msgid "missing hex digit for \\x" -msgstr "" - -#: builtins/pushd.def:173 -msgid "no other directory" -msgstr "ÎÅÔ ÄÒÕÇÏÊ ÄÉÒÅËÔÏÒÉÉ" - -#: builtins/pushd.def:440 -msgid "" -msgstr "" - -#: builtins/pushd.def:657 -msgid "Display the list of currently remembered directories. Directories" -msgstr "" - -#: builtins/pushd.def:658 -msgid "find their way onto the list with the `pushd' command; you can get" -msgstr "" - -#: builtins/pushd.def:659 -msgid "back up through the list with the `popd' command." -msgstr "" - -#: builtins/pushd.def:661 -msgid "The -l flag specifies that `dirs' should not print shorthand versions" -msgstr "" +msgid "%d: invalid file descriptor: %s" +msgstr "%d: ÎÅÄÏÐÕÓÔÉÍÙÊ ÄÅÓËÒÉÐÔÏÒ ÆÁÊÌÁ: %s" -#: builtins/pushd.def:662 -msgid "of directories which are relative to your home directory. This means" -msgstr "" +#: builtins/mapfile.def:232 builtins/mapfile.def:270 +#, fuzzy, c-format +msgid "%s: invalid line count" +msgstr "%s: ÎÅÐÒÁ×ÉÌØÎÁÑ ÏÐÃÉÑ" -#: builtins/pushd.def:663 -msgid "that `~/bin' might be displayed as `/homes/bfox/bin'. The -v flag" -msgstr "" +#: builtins/mapfile.def:243 +#, fuzzy, c-format +msgid "%s: invalid array origin" +msgstr "%s: ÎÅÐÒÁ×ÉÌØÎÁÑ ÏÐÃÉÑ" -#: builtins/pushd.def:664 -msgid "causes `dirs' to print the directory stack with one entry per line," -msgstr "" +#: builtins/mapfile.def:260 +#, fuzzy, c-format +msgid "%s: invalid callback quantum" +msgstr "%s: ÎÅÄÏÐÕÓÔÉÍÏÅ ÞÉÓÌÏ" -#: builtins/pushd.def:665 -msgid "prepending the directory name with its position in the stack. The -p" -msgstr "" +#: builtins/mapfile.def:292 +#, fuzzy +msgid "empty array variable name" +msgstr "%s: ÎÅ ÐÅÒÅÍÅÎÎÁÑ-ÍÁÓÓÉ×" -#: builtins/pushd.def:666 -msgid "flag does the same thing, but the stack position is not prepended." +#: builtins/mapfile.def:313 +msgid "array variable support required" msgstr "" -#: builtins/pushd.def:667 -msgid "The -c flag clears the directory stack by deleting all of the elements." -msgstr "" +#: builtins/printf.def:367 +#, c-format +msgid "`%s': missing format character" +msgstr "`%s': ÐÒÏÐÕÝÅÎ ÓÉÍ×ÏÌ ÆÏÒÍÁÔÉÒÏ×ÁÎÉÑ" -#: builtins/pushd.def:669 -msgid "+N displays the Nth entry counting from the left of the list shown by" -msgstr "" +#: builtins/printf.def:544 +#, c-format +msgid "`%c': invalid format character" +msgstr "%c': ÎÅÄÏÐÕÓÔÉÍÙÊ ÓÉÍ×ÏÌ ÆÏÒÍÁÔÉÒÏ×ÁÎÉÑ" -#: builtins/pushd.def:670 -#: builtins/pushd.def:673 -msgid " dirs when invoked without options, starting with zero." -msgstr "" +#: builtins/printf.def:571 +#, fuzzy, c-format +msgid "warning: %s: %s" +msgstr "%s: ÐÒÅÄÕÐÒÅÖÄÅÎÉÅ:" -#: builtins/pushd.def:672 -msgid "-N displays the Nth entry counting from the right of the list shown by" +#: builtins/printf.def:750 +msgid "missing hex digit for \\x" msgstr "" -#: builtins/pushd.def:678 -msgid "Adds a directory to the top of the directory stack, or rotates" -msgstr "" +#: builtins/pushd.def:195 +msgid "no other directory" +msgstr "ÎÅÔ ÄÒÕÇÏÊ ÄÉÒÅËÔÏÒÉÉ" -#: builtins/pushd.def:679 -msgid "the stack, making the new top of the stack the current working" +#: builtins/pushd.def:462 +msgid "" msgstr "" -#: builtins/pushd.def:680 -msgid "directory. With no arguments, exchanges the top two directories." +#: builtins/pushd.def:506 +msgid "directory stack empty" msgstr "" -#: builtins/pushd.def:682 -msgid "+N Rotates the stack so that the Nth directory (counting" +#: builtins/pushd.def:508 +msgid "directory stack index" msgstr "" #: builtins/pushd.def:683 -msgid " from the left of the list shown by `dirs', starting with" -msgstr "" - -#: builtins/pushd.def:684 -#: builtins/pushd.def:688 -msgid " zero) is at the top." -msgstr "" - -#: builtins/pushd.def:686 -msgid "-N Rotates the stack so that the Nth directory (counting" -msgstr "" - -#: builtins/pushd.def:687 -msgid " from the right of the list shown by `dirs', starting with" -msgstr "" - -#: builtins/pushd.def:690 -msgid "-n suppress the normal change of directory when adding directories" -msgstr "" - -#: builtins/pushd.def:691 -msgid " to the stack, so only the stack is manipulated." -msgstr "" - -#: builtins/pushd.def:693 -msgid "dir adds DIR to the directory stack at the top, making it the" -msgstr "" - -#: builtins/pushd.def:694 -msgid " new current working directory." -msgstr "" - -#: builtins/pushd.def:696 -#: builtins/pushd.def:716 -msgid "You can see the directory stack with the `dirs' command." -msgstr "" - -#: builtins/pushd.def:701 -msgid "Removes entries from the directory stack. With no arguments," -msgstr "" - -#: builtins/pushd.def:702 -msgid "removes the top directory from the stack, and cd's to the new" -msgstr "" - -#: builtins/pushd.def:703 -msgid "top directory." +msgid "" +"Display the list of currently remembered directories. Directories\n" +" find their way onto the list with the `pushd' command; you can get\n" +" back up through the list with the `popd' command.\n" +" \n" +" Options:\n" +" -c\tclear the directory stack by deleting all of the elements\n" +" -l\tdo not print tilde-prefixed versions of directories relative\n" +" \tto your home directory\n" +" -p\tprint the directory stack with one entry per line\n" +" -v\tprint the directory stack with one entry per line prefixed\n" +" \twith its position in the stack\n" +" \n" +" Arguments:\n" +" +N\tDisplays the Nth entry counting from the left of the list shown " +"by\n" +" \tdirs when invoked without options, starting with zero.\n" +" \n" +" -N\tDisplays the Nth entry counting from the right of the list shown " +"by\n" +"\tdirs when invoked without options, starting with zero." msgstr "" #: builtins/pushd.def:705 -msgid "+N removes the Nth entry counting from the left of the list" -msgstr "" - -#: builtins/pushd.def:706 -msgid " shown by `dirs', starting with zero. For example: `popd +0'" -msgstr "" - -#: builtins/pushd.def:707 -msgid " removes the first directory, `popd +1' the second." -msgstr "" - -#: builtins/pushd.def:709 -msgid "-N removes the Nth entry counting from the right of the list" -msgstr "" - -#: builtins/pushd.def:710 -msgid " shown by `dirs', starting with zero. For example: `popd -0'" -msgstr "" - -#: builtins/pushd.def:711 -msgid " removes the last directory, `popd -1' the next to last." -msgstr "" - -#: builtins/pushd.def:713 -msgid "-n suppress the normal change of directory when removing directories" +msgid "" +"Adds a directory to the top of the directory stack, or rotates\n" +" the stack, making the new top of the stack the current working\n" +" directory. With no arguments, exchanges the top two directories.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when adding\n" +" \tdirectories to the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the left of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" -N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the right of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" dir\tAdds DIR to the directory stack at the top, making it the\n" +" \tnew current working directory.\n" +" \n" +" The `dirs' builtin displays the directory stack." msgstr "" -#: builtins/pushd.def:714 -msgid " from the stack, so only the stack is manipulated." +#: builtins/pushd.def:730 +msgid "" +"Removes entries from the directory stack. With no arguments, removes\n" +" the top directory from the stack, and changes to the new top directory.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when removing\n" +" \tdirectories from the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRemoves the Nth entry counting from the left of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd +0'\n" +" \tremoves the first directory, `popd +1' the second.\n" +" \n" +" -N\tRemoves the Nth entry counting from the right of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd -0'\n" +" \tremoves the last directory, `popd -1' the next to last.\n" +" \n" +" The `dirs' builtin displays the directory stack." msgstr "" -#: builtins/read.def:211 +#: builtins/read.def:248 #, c-format msgid "%s: invalid timeout specification" msgstr "" -#: builtins/read.def:234 -#, c-format -msgid "%s: invalid file descriptor specification" -msgstr "%s: ÎÅÄÏÐÕÓÔÉÍÏÅ ÏÐÉÓÁÎÉÅ ÆÁÊÌÏ×ÏÇÏ ÄÅÓËÒÉÐÔÏÒÁ" - -#: builtins/read.def:241 -#, c-format -msgid "%d: invalid file descriptor: %s" -msgstr "%d: ÎÅÄÏÐÕÓÔÉÍÙÊ ÄÅÓËÒÉÐÔÏÒ ÆÁÊÌÁ: %s" - -#: builtins/read.def:474 +#: builtins/read.def:574 #, c-format msgid "read error: %d: %s" msgstr "ÏÛÉÂËÁ ÞÔÅÎÉÑ: %d: %s" -#: builtins/return.def:63 +#: builtins/return.def:73 msgid "can only `return' from a function or sourced script" msgstr "" -#: builtins/set.def:745 +#: builtins/set.def:768 msgid "cannot simultaneously unset a function and a variable" msgstr "" -#: builtins/set.def:782 +#: builtins/set.def:805 #, c-format msgid "%s: cannot unset" msgstr "%s: ÎÅ ÍÏÇÕ ÓÂÒÏÓÉÔØ" -#: builtins/set.def:789 +#: builtins/set.def:812 #, c-format msgid "%s: cannot unset: readonly %s" msgstr "%s: ÎÅ ÍÏÇÕ ÓÂÒÏÓÉÔØ: ÄÏÓÔÕÐÎÏ ÔÏÌØËÏ ÄÌÑ ÞÔÅÎÉÑ %s" -#: builtins/set.def:800 +#: builtins/set.def:823 #, c-format msgid "%s: not an array variable" msgstr "%s: ÎÅ ÐÅÒÅÍÅÎÎÁÑ-ÍÁÓÓÉ×" -#: builtins/setattr.def:166 +#: builtins/setattr.def:186 #, c-format msgid "%s: not a function" msgstr "%s: ÎÅ ÆÕÎËÃÉÑ" -#: builtins/shift.def:66 -#: builtins/shift.def:72 +#: builtins/shift.def:71 builtins/shift.def:77 msgid "shift count" msgstr "" -#: builtins/shopt.def:227 +#: builtins/shopt.def:254 msgid "cannot set and unset shell options simultaneously" msgstr "" -#: builtins/shopt.def:292 +#: builtins/shopt.def:319 #, c-format msgid "%s: invalid shell option name" msgstr "%s: ÎÅÄÏÐÕÓÔÉÍÏÅ ÉÍÑ ÏÐÃÉÉ ÏÂÏÌÏÞËÉ" -#: builtins/source.def:117 +#: builtins/source.def:128 msgid "filename argument required" msgstr "ÔÒÅÂÕÅÔÓÑ ÁÒÇÕÍÅÎÔ ÉÍÑ ÆÁÊÌÁ" -#: builtins/source.def:137 +#: builtins/source.def:153 #, c-format msgid "%s: file not found" msgstr "%s: ÆÁÊÌ ÎÅ ÎÁÊÄÅÎ" -#: builtins/suspend.def:93 +#: builtins/suspend.def:101 msgid "cannot suspend" msgstr "" -#: builtins/suspend.def:103 +#: builtins/suspend.def:111 msgid "cannot suspend a login shell" msgstr "" -#: builtins/type.def:232 +#: builtins/type.def:234 #, c-format msgid "%s is aliased to `%s'\n" msgstr "" -#: builtins/type.def:253 +#: builtins/type.def:255 #, c-format msgid "%s is a shell keyword\n" msgstr "%s Ñ×ÌÑÅÔÓÑ ËÌÀÞÅ×ÙÍ ÓÌÏ×ÏÍ ÏÂÏÌÏÞËÉ\n" -#: builtins/type.def:273 +#: builtins/type.def:274 #, c-format msgid "%s is a function\n" msgstr "%s Ñ×ÌÑÅÔÓÑ ÆÕÎËÃÉÅÊ\n" -#: builtins/type.def:298 +#: builtins/type.def:296 #, c-format msgid "%s is a shell builtin\n" msgstr "" -#: builtins/type.def:319 +#: builtins/type.def:317 builtins/type.def:391 #, c-format msgid "%s is %s\n" msgstr "" -#: builtins/type.def:339 +#: builtins/type.def:337 #, c-format msgid "%s is hashed (%s)\n" msgstr "" -#: builtins/ulimit.def:344 +#: builtins/ulimit.def:372 #, c-format msgid "%s: invalid limit argument" msgstr "" -#: builtins/ulimit.def:370 +#: builtins/ulimit.def:398 #, c-format msgid "`%c': bad command" msgstr "`%c': ÐÌÏÈÁÑ ËÏÍÁÎÄÁ" -#: builtins/ulimit.def:399 +#: builtins/ulimit.def:427 #, c-format msgid "%s: cannot get limit: %s" msgstr "" -#: builtins/ulimit.def:437 +#: builtins/ulimit.def:453 +msgid "limit" +msgstr "" + +#: builtins/ulimit.def:465 builtins/ulimit.def:765 #, c-format msgid "%s: cannot modify limit: %s" msgstr "" -#: builtins/umask.def:112 +#: builtins/umask.def:118 msgid "octal number" msgstr "ÞÉÓÌÏ × ×ÏÓØÍÅÒÉÞÎÏÊ ÓÉÓÔÅÍÅ ÉÓÞÉÓÌÅÎÉÑ" -#: builtins/umask.def:226 +#: builtins/umask.def:231 #, c-format msgid "`%c': invalid symbolic mode operator" msgstr "" -#: builtins/umask.def:281 +#: builtins/umask.def:286 #, c-format msgid "`%c': invalid symbolic mode character" msgstr "" -#: error.c:165 +#: error.c:89 error.c:320 error.c:322 error.c:324 +msgid " line " +msgstr "" + +#: error.c:164 #, c-format msgid "last command: %s\n" msgstr "ÐÏÓÌÅÄÎÑÑ ËÏÍÁÎÄÁ: %s\n" -#: error.c:173 +#: error.c:172 +#, c-format msgid "Aborting..." msgstr "úÁ×ÅÒÛÁÀ ÒÁÂÏÔÕ..." -#: error.c:260 -#, c-format -msgid "%s: warning: " -msgstr "%s: ÐÒÅÄÕÐÒÅÖÄÅÎÉÅ:" - #: error.c:405 msgid "unknown command error" msgstr "ÎÅÉÚ×ÅÓÔÎÁÑ ÏÛÉÂËÁ ËÏÍÁÎÄÙ" @@ -795,272 +796,368 @@ msgstr "" msgid "%s: unbound variable" msgstr "" -#: eval.c:176 -msgid "timed out waiting for input: auto-logout\n" +#: eval.c:181 +#, c-format +msgid "\atimed out waiting for input: auto-logout\n" msgstr "" -#: execute_cmd.c:471 +#: execute_cmd.c:491 #, c-format msgid "cannot redirect standard input from /dev/null: %s" msgstr "" -#: execute_cmd.c:1036 +#: execute_cmd.c:1091 #, c-format msgid "TIMEFORMAT: `%c': invalid format character" msgstr "" -#: execute_cmd.c:3551 +#: execute_cmd.c:1942 +#, fuzzy +msgid "pipe error" +msgstr "ÏÛÉÂËÁ ÚÁÐÉÓÉ: %s" + +#: execute_cmd.c:4276 #, c-format msgid "%s: restricted: cannot specify `/' in command names" msgstr "" -#: execute_cmd.c:3639 +#: execute_cmd.c:4367 #, c-format msgid "%s: command not found" msgstr "%s: ËÏÍÁÎÄÁ ÎÅ ÎÁÊÄÅÎÁ" -#: execute_cmd.c:3876 +#: execute_cmd.c:4621 #, c-format msgid "%s: %s: bad interpreter" msgstr "%s: %s: ÐÌÏÈÏÊ ÉÎÔÅÒÐÒÅÔÁÔÏÒ" -#: execute_cmd.c:3913 -#, c-format -msgid "%s: cannot execute binary file" -msgstr "%s: ÎÅ ÍÏÇÕ ÚÁÐÕÓÔÉÔØ ÂÉÎÁÒÎÙÊ ÆÁÊÌ" - -#: execute_cmd.c:4025 +#: execute_cmd.c:4770 #, c-format msgid "cannot duplicate fd %d to fd %d" msgstr "ÎÅ ÍÏÇÕ ÄÕÂÌÉÒÏ×ÁÔØ fd %d × fd %d" -#: expr.c:240 +#: expr.c:241 msgid "expression recursion level exceeded" msgstr "" -#: expr.c:264 +#: expr.c:265 msgid "recursion stack underflow" msgstr "" -#: expr.c:375 +#: expr.c:379 msgid "syntax error in expression" msgstr "ÓÉÎÔÁËÓÉÞÅÓËÁÑ ÏÛÉÂËÁ × ×ÙÒÁÖÅÎÉÅ" -#: expr.c:415 +#: expr.c:419 msgid "attempted assignment to non-variable" msgstr "ÐÏÐÙÔËÁ ÐÒÉÓ×ÏÅÎÉÑ ÎÅ-ÐÅÒÅÍÅÎÎÏÊ" -#: expr.c:436 -#: expr.c:441 -#: expr.c:751 +#: expr.c:440 expr.c:445 expr.c:756 msgid "division by 0" msgstr "ÄÅÌÅÎÉÅ ÎÁ 0" -#: expr.c:467 +#: expr.c:471 msgid "bug: bad expassign token" msgstr "" -#: expr.c:509 +#: expr.c:513 msgid "`:' expected for conditional expression" msgstr "" -#: expr.c:776 +#: expr.c:781 msgid "exponent less than 0" msgstr "" -#: expr.c:821 +#: expr.c:826 msgid "identifier expected after pre-increment or pre-decrement" msgstr "" -#: expr.c:849 +#: expr.c:854 msgid "missing `)'" msgstr "ÐÒÏÐÕÝÅÎ `)'" -#: expr.c:892 +#: expr.c:897 expr.c:1175 msgid "syntax error: operand expected" msgstr "ÏÛÉÂËÁ ÓÉÎÔÁËÓÉÓÁ: ÏÖÉÄÁÅÔÓÑ ÏÐÅÒÁÎÄ" -#: expr.c:1178 -msgid "invalid number" -msgstr "ÎÅÄÏÐÕÓÔÉÍÏÅ ÞÉÓÌÏ" +#: expr.c:1177 +msgid "syntax error: invalid arithmetic operator" +msgstr "" + +#: expr.c:1201 +#, c-format +msgid "%s%s%s: %s (error token is \"%s\")" +msgstr "" -#: expr.c:1182 +#: expr.c:1259 msgid "invalid arithmetic base" msgstr "" -#: expr.c:1202 +#: expr.c:1279 msgid "value too great for base" msgstr "" -#: general.c:62 +#: expr.c:1328 +#, fuzzy, c-format +msgid "%s: expression error\n" +msgstr "ÏÖÉÄÁÌÏÓØ ×ÙÒÁÖÅÎÉÅ" + +#: general.c:61 msgid "getcwd: cannot access parent directories" msgstr "" -#: input.c:231 +#: input.c:94 subst.c:4559 +#, fuzzy, c-format +msgid "cannot reset nodelay mode for fd %d" +msgstr "ÎÅ ÍÏÇÕ ÄÕÂÌÉÒÏ×ÁÔØ fd %d × fd %d" + +#: input.c:258 #, c-format msgid "cannot allocate new file descriptor for bash input from fd %d" msgstr "" -#: input.c:239 +#: input.c:266 #, c-format msgid "save_bash_input: buffer already exists for new fd %d" msgstr "" -#: jobs.c:923 -#, c-format -msgid "deleting stopped job %d with process group %ld" +#: jobs.c:466 +msgid "start_pipeline: pgrp pipe" msgstr "" -#: jobs.c:1308 +#: jobs.c:882 #, c-format -msgid "describe_pid: %ld: no such pid" +msgid "forked pid %d appears in running job %d" msgstr "" -#: jobs.c:1981 -#: nojobs.c:648 +#: jobs.c:1000 #, c-format -msgid "wait: pid %ld is not a child of this shell" +msgid "deleting stopped job %d with process group %ld" msgstr "" -#: jobs.c:2180 +#: jobs.c:1105 #, c-format -msgid "wait_for: No record of process %ld" +msgid "add_process: process %5ld (%s) in the_pipeline" msgstr "" -#: jobs.c:2435 +#: jobs.c:1108 #, c-format -msgid "wait_for_job: job %d is stopped" +msgid "add_process: pid %5ld (%s) marked as still alive" msgstr "" -#: jobs.c:2657 +#: jobs.c:1396 #, c-format -msgid "%s: job has terminated" +msgid "describe_pid: %ld: no such pid" msgstr "" -#: jobs.c:2666 +#: jobs.c:1411 #, c-format -msgid "%s: job %d already in background" +msgid "Signal %d" msgstr "" -#: jobs.c:3452 -msgid "no job control in this shell" +#: jobs.c:1425 jobs.c:1450 +msgid "Done" msgstr "" -#: lib/malloc/malloc.c:298 -#, c-format -msgid "malloc: failed assertion: %s\n" +#: jobs.c:1430 siglist.c:122 +msgid "Stopped" msgstr "" -#: lib/malloc/malloc.c:314 +#: jobs.c:1434 #, c-format -msgid "" -"\r\n" -"malloc: %s:%d: assertion botched\r\n" +msgid "Stopped(%s)" msgstr "" -#: lib/malloc/malloc.c:740 -msgid "malloc: block on free list clobbered" +#: jobs.c:1438 +msgid "Running" msgstr "" -#: lib/malloc/malloc.c:817 -msgid "free: called with already freed block argument" +#: jobs.c:1452 +#, c-format +msgid "Done(%d)" msgstr "" -#: lib/malloc/malloc.c:820 -msgid "free: called with unallocated block argument" +#: jobs.c:1454 +#, c-format +msgid "Exit %d" msgstr "" -#: lib/malloc/malloc.c:839 -msgid "free: underflow detected; mh_nbytes out of range" +#: jobs.c:1457 +msgid "Unknown status" msgstr "" -#: lib/malloc/malloc.c:845 -msgid "free: start and end chunk sizes differ" +#: jobs.c:1544 +#, c-format +msgid "(core dumped) " msgstr "" -#: lib/malloc/malloc.c:942 -msgid "realloc: called with unallocated block argument" +#: jobs.c:1563 +#, c-format +msgid " (wd: %s)" msgstr "" -#: lib/malloc/malloc.c:957 -msgid "realloc: underflow detected; mh_nbytes out of range" +#: jobs.c:1766 +#, c-format +msgid "child setpgid (%ld to %ld)" msgstr "" -#: lib/malloc/malloc.c:963 -msgid "realloc: start and end chunk sizes differ" +#: jobs.c:2094 nojobs.c:576 +#, c-format +msgid "wait: pid %ld is not a child of this shell" msgstr "" -#: lib/malloc/table.c:175 -msgid "register_alloc: alloc table is full with FIND_ALLOC?\n" +#: jobs.c:2321 +#, c-format +msgid "wait_for: No record of process %ld" msgstr "" -#: lib/malloc/table.c:182 +#: jobs.c:2593 #, c-format -msgid "register_alloc: %p already in table as allocated?\n" +msgid "wait_for_job: job %d is stopped" msgstr "" -#: lib/malloc/table.c:218 +#: jobs.c:2815 #, c-format -msgid "register_free: %p already in table as free?\n" +msgid "%s: job has terminated" msgstr "" -#: lib/malloc/watch.c:46 -msgid "allocated" +#: jobs.c:2824 +#, c-format +msgid "%s: job %d already in background" msgstr "" -#: lib/malloc/watch.c:48 -msgid "freed" +#: jobs.c:3487 +#, fuzzy, c-format +msgid "%s: line %d: " +msgstr "%s: ÐÒÅÄÕÐÒÅÖÄÅÎÉÅ:" + +#: jobs.c:3501 nojobs.c:805 +#, c-format +msgid " (core dumped)" +msgstr "" + +#: jobs.c:3513 jobs.c:3526 +#, c-format +msgid "(wd now: %s)\n" +msgstr "" + +#: jobs.c:3558 +msgid "initialize_job_control: getpgrp failed" +msgstr "" + +#: jobs.c:3618 +msgid "initialize_job_control: line discipline" +msgstr "" + +#: jobs.c:3628 +msgid "initialize_job_control: setpgid" +msgstr "" + +#: jobs.c:3656 +#, c-format +msgid "cannot set terminal process group (%d)" +msgstr "" + +#: jobs.c:3661 +msgid "no job control in this shell" +msgstr "" + +#: lib/malloc/malloc.c:296 +#, c-format +msgid "malloc: failed assertion: %s\n" +msgstr "" + +#: lib/malloc/malloc.c:312 +#, c-format +msgid "" +"\r\n" +"malloc: %s:%d: assertion botched\r\n" +msgstr "" + +#: lib/malloc/malloc.c:313 +#, fuzzy +msgid "unknown" +msgstr "%s: ÈÏÓÔ ÎÅÉÚ×ÅÓÔÅÎ" + +#: lib/malloc/malloc.c:797 +msgid "malloc: block on free list clobbered" +msgstr "" + +#: lib/malloc/malloc.c:874 +msgid "free: called with already freed block argument" +msgstr "" + +#: lib/malloc/malloc.c:877 +msgid "free: called with unallocated block argument" +msgstr "" + +#: lib/malloc/malloc.c:896 +msgid "free: underflow detected; mh_nbytes out of range" msgstr "" -#: lib/malloc/watch.c:50 -msgid "requesting resize" +#: lib/malloc/malloc.c:902 +msgid "free: start and end chunk sizes differ" msgstr "" -#: lib/malloc/watch.c:52 -msgid "just resized" +#: lib/malloc/malloc.c:1001 +msgid "realloc: called with unallocated block argument" msgstr "" -#: lib/malloc/watch.c:54 -msgid "bug: unknown operation" -msgstr "ÏÛÉÂËÁ: ÎÅÉÚ×ÅÓÔÎÁÑ ÏÐÅÒÁÃÉÑ" +#: lib/malloc/malloc.c:1016 +msgid "realloc: underflow detected; mh_nbytes out of range" +msgstr "" -#: lib/malloc/watch.c:56 +#: lib/malloc/malloc.c:1022 +msgid "realloc: start and end chunk sizes differ" +msgstr "" + +#: lib/malloc/table.c:177 #, c-format -msgid "malloc: watch alert: %p %s " +msgid "register_alloc: alloc table is full with FIND_ALLOC?\n" +msgstr "" + +#: lib/malloc/table.c:184 +#, c-format +msgid "register_alloc: %p already in table as allocated?\n" +msgstr "" + +#: lib/malloc/table.c:220 +#, c-format +msgid "register_free: %p already in table as free?\n" msgstr "" #: lib/sh/fmtulong.c:101 msgid "invalid base" msgstr "" -#: lib/sh/netopen.c:158 +#: lib/sh/netopen.c:168 #, c-format msgid "%s: host unknown" msgstr "%s: ÈÏÓÔ ÎÅÉÚ×ÅÓÔÅÎ" -#: lib/sh/netopen.c:165 +#: lib/sh/netopen.c:175 #, c-format msgid "%s: invalid service" msgstr "%s: ÎÅÄÏÐÕÓÔÉÍÙÊ ÓÅÒ×ÉÓ" -#: lib/sh/netopen.c:296 +#: lib/sh/netopen.c:306 #, c-format msgid "%s: bad network path specification" msgstr "" -#: lib/sh/netopen.c:336 +#: lib/sh/netopen.c:346 msgid "network operations not supported" msgstr "" -#: mailcheck.c:386 +#: mailcheck.c:433 msgid "You have mail in $_" msgstr "õ ×ÁÓ ÅÓÔØ ÐÏÞÔÁ × $_" -#: mailcheck.c:411 +#: mailcheck.c:458 msgid "You have new mail in $_" msgstr "õ ×ÁÓ ÅÓÔØ ÎÏ×ÁÑ ÐÏÞÔÁ × $_" -#: mailcheck.c:427 +#: mailcheck.c:474 #, c-format msgid "The mail in %s has been read\n" msgstr "ðÏÞÔÁ × %s ÂÙÌÁ ÐÒÏÞÉÔÁÎÁ\n" @@ -1078,113 +1175,118 @@ msgstr " msgid "syntax error: `((%s))'" msgstr "ÏÛÉÂËÁ ÓÉÎÔÁËÓÉÓÁ: `((%s))'" -#: make_cmd.c:566 +#: make_cmd.c:567 #, c-format msgid "make_here_document: bad instruction type %d" msgstr "" -#: make_cmd.c:736 +#: make_cmd.c:651 +#, c-format +msgid "here-document at line %d delimited by end-of-file (wanted `%s')" +msgstr "" + +#: make_cmd.c:746 #, c-format msgid "make_redirection: redirection instruction `%d' out of range" msgstr "" -#: parse.y:2747 +#: parse.y:2986 parse.y:3218 #, c-format msgid "unexpected EOF while looking for matching `%c'" msgstr "" -#: parse.y:3043 +#: parse.y:3722 msgid "unexpected EOF while looking for `]]'" msgstr "" -#: parse.y:3048 +#: parse.y:3727 #, c-format msgid "syntax error in conditional expression: unexpected token `%s'" msgstr "" -#: parse.y:3052 +#: parse.y:3731 msgid "syntax error in conditional expression" msgstr "" -#: parse.y:3130 +#: parse.y:3809 #, c-format msgid "unexpected token `%s', expected `)'" msgstr "" -#: parse.y:3134 +#: parse.y:3813 msgid "expected `)'" msgstr "ÏÖÉÄÁÌÓÑ `)'" -#: parse.y:3162 +#: parse.y:3841 #, c-format msgid "unexpected argument `%s' to conditional unary operator" msgstr "" -#: parse.y:3166 +#: parse.y:3845 msgid "unexpected argument to conditional unary operator" msgstr "" -#: parse.y:3203 +#: parse.y:3885 #, c-format msgid "unexpected token `%s', conditional binary operator expected" msgstr "" -#: parse.y:3207 +#: parse.y:3889 msgid "conditional binary operator expected" msgstr "" -#: parse.y:3223 +#: parse.y:3906 #, c-format msgid "unexpected argument `%s' to conditional binary operator" msgstr "" -#: parse.y:3227 +#: parse.y:3910 msgid "unexpected argument to conditional binary operator" msgstr "" -#: parse.y:3238 +#: parse.y:3921 #, c-format msgid "unexpected token `%c' in conditional command" msgstr "" -#: parse.y:3241 +#: parse.y:3924 #, c-format msgid "unexpected token `%s' in conditional command" msgstr "" -#: parse.y:3245 +#: parse.y:3928 #, c-format msgid "unexpected token %d in conditional command" msgstr "" -#: parse.y:4461 +#: parse.y:5195 #, c-format msgid "syntax error near unexpected token `%s'" msgstr "" -#: parse.y:4479 +#: parse.y:5213 #, c-format msgid "syntax error near `%s'" msgstr "ÏÛÉÂËÁ ÓÉÎÔÁËÓÉÓÁ ÏËÏÌÏ `%s'" -#: parse.y:4489 +#: parse.y:5223 msgid "syntax error: unexpected end of file" msgstr "ÏÛÉÂËÁ ÓÉÎÔÁËÓÉÓÁ: ÎÅÏÖÉÄÁÎÎÙÊ ËÏÎÅà ÆÁÊÌÁ" -#: parse.y:4489 +#: parse.y:5223 msgid "syntax error" msgstr "ÏÛÉÂËÁ ÓÉÎÔÁËÓÉÓÁ" -#: parse.y:4551 +#: parse.y:5285 #, c-format msgid "Use \"%s\" to leave the shell.\n" msgstr "éÓÐÏÌØÚÕÊÔÅ \"%s\", ÞÔÏÂÙ ÚÁ×ÅÒÛÉÔØÓÑ ÒÁÂÏÔÕ Ó ÏÂÏÌÏÞËÏÊ.\n" -#: parse.y:4710 +#: parse.y:5447 msgid "unexpected EOF while looking for matching `)'" msgstr "" -#: pcomplete.c:1001 +#: pcomplete.c:1016 #, c-format msgid "completion: function `%s' not found" msgstr "" @@ -1194,66 +1296,71 @@ msgstr "" msgid "progcomp_insert: %s: NULL COMPSPEC" msgstr "" -#: print_cmd.c:264 +#: print_cmd.c:287 #, c-format msgid "print_command: bad connector `%d'" msgstr "" -#: print_cmd.c:1236 +#: print_cmd.c:1347 #, c-format msgid "cprintf: `%c': invalid format character" msgstr "" -#: redir.c:99 +#: redir.c:105 msgid "file descriptor out of range" msgstr "ÆÁÊÌÏ×ÙÊ ÄÅÓËÒÉÐÔÏÒ ÚÁ ÐÒÅÄÅÌÁÍÉ ÄÏÐÕÓÔÉÍÏÇÏ ÄÉÁÐÁÚÏÎÁ" -#: redir.c:141 +#: redir.c:148 #, c-format msgid "%s: ambiguous redirect" msgstr "" -#: redir.c:145 +#: redir.c:152 #, c-format msgid "%s: cannot overwrite existing file" msgstr "%s: ÎÅ ÍÏÇÕ ÐÅÒÅÐÉÓÁÔØ ÕÖÅ ÓÕÝÅÓÔ×ÕÀÝÉÊ ÆÁÊÌ" -#: redir.c:150 +#: redir.c:157 #, c-format msgid "%s: restricted: cannot redirect output" msgstr "" -#: redir.c:155 +#: redir.c:162 #, c-format -msgid "cannot create temp file for here document: %s" +msgid "cannot create temp file for here-document: %s" msgstr "" -#: redir.c:509 +#: redir.c:517 msgid "/dev/(tcp|udp)/host/port not supported without networking" msgstr "" -#: redir.c:956 +#: redir.c:1023 msgid "redirection error: cannot duplicate fd" msgstr "ÏÛÉÂËÁ ÐÅÒÅÎÁÐÒÁ×ÌÅÎÉÑ: ÎÅ ÍÏÇÕ ÄÕÂÌÉÒÏ×ÁÔØ fd" -#: shell.c:309 +#: shell.c:328 msgid "could not find /tmp, please create!" msgstr "ÎÅ ÍÏÇÕ ÎÁÊÔÉ /tmp, ÐÏÖÁÌÕÊÓÔÁ ÓÏÚÄÁÊÔÅ!" -#: shell.c:313 +#: shell.c:332 msgid "/tmp must be a valid directory name" msgstr "/tmp ÄÏÌÖÎÁ ÂÙÔØ ÄÅÊÓÔ×ÉÔÅÌØÎÙÍ ÉÍÅÎÅÍ ÄÉÒÅËÔÏÒÉÉ" -#: shell.c:849 +#: shell.c:876 #, c-format msgid "%c%c: invalid option" msgstr "%c%c: ÎÅÄÏÐÕÓÔÉÍÁÑ ÏÐÃÉÑ" -#: shell.c:1598 +#: shell.c:1638 msgid "I have no name!" msgstr "õ ÍÅÎÑ ÎÅÔ ÉÍÅÎÉ!" -#: shell.c:1733 +#: shell.c:1778 +#, c-format +msgid "GNU bash, version %s-(%s)\n" +msgstr "" + +#: shell.c:1779 #, c-format msgid "" "Usage:\t%s [GNU long option] [option] ...\n" @@ -1263,467 +1370,1136 @@ msgstr "" "%s [ÄÌÉÎÎÙÅ ÏÐÃÉÉ Á-ÌÑ `GNU'] [ÏÐÃÉÉ] ...\n" "\t%s [ÄÌÉÎÎÙÅ ÏÐÃÉÉ Á-ÌÑ `GNU'] [ÏÐÃÉÉ] ÆÁÊÌ_ÓÏ_ÓËÒÉÐÔÏÍ...\n" -#: shell.c:1735 +#: shell.c:1781 msgid "GNU long options:\n" msgstr "äÌÉÎÎÙÅ ÏÐÃÉÉ × ÓÔÅÌÅ GNU:\n" -#: shell.c:1739 +#: shell.c:1785 msgid "Shell options:\n" msgstr "ïÐÃÉÉ ÏÂÏÌÏÞËÉ:\n" -#: shell.c:1740 +#: shell.c:1786 msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n" msgstr "" -#: shell.c:1755 +#: shell.c:1801 #, c-format msgid "\t-%s or -o option\n" msgstr "\t-%s ÉÌÉ ÏÐÃÉÑ -o\n" -#: shell.c:1761 +#: shell.c:1807 #, c-format msgid "Type `%s -c \"help set\"' for more information about shell options.\n" msgstr "" -#: shell.c:1762 +#: shell.c:1808 #, c-format msgid "Type `%s -c help' for more information about shell builtin commands.\n" msgstr "" -#: shell.c:1763 +#: shell.c:1809 +#, c-format msgid "Use the `bashbug' command to report bugs.\n" msgstr "" -#: sig.c:494 +#: sig.c:583 #, c-format msgid "sigprocmask: %d: invalid operation" msgstr "" -#: subst.c:1123 +#: 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 +#, fuzzy +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:1181 subst.c:1302 #, c-format msgid "bad substitution: no closing `%s' in %s" msgstr "" -#: subst.c:2269 +#: subst.c:2458 #, c-format msgid "%s: cannot assign list to array member" msgstr "" -#: subst.c:4208 -#: subst.c:4224 +#: subst.c:4456 subst.c:4472 msgid "cannot make pipe for process substitution" msgstr "" -#: subst.c:4255 +#: subst.c:4504 msgid "cannot make child for process substitution" msgstr "" -#: subst.c:4300 +#: subst.c:4549 #, c-format msgid "cannot open named pipe %s for reading" msgstr "ÎÅ ÍÏÇÕ ÏÔËÒÙÔØ ÉÍÅÎÎÏÊ ËÁÎÁÌ %s ÄÌÑ ÞÔÅÎÉÑ" -#: subst.c:4302 +#: subst.c:4551 #, c-format msgid "cannot open named pipe %s for writing" msgstr "ÎÅ ÍÏÇÕ ÏÔËÒÙÔØ ÉÍÅÎÎÏÊ ËÁÎÁÌ %s ÄÌÑ ÚÁÐÉÓÉ" -#: subst.c:4310 -#, c-format -msgid "cannout reset nodelay mode for fd %d" -msgstr "" - -#: subst.c:4320 +#: subst.c:4569 #, c-format msgid "cannot duplicate named pipe %s as fd %d" msgstr "" -#: subst.c:4495 +#: subst.c:4765 msgid "cannot make pipe for command substitution" msgstr "" -#: subst.c:4531 +#: subst.c:4799 msgid "cannot make child for command substitution" msgstr "" -#: subst.c:4548 +#: subst.c:4816 msgid "command_substitute: cannot duplicate pipe as fd 1" msgstr "" -#: subst.c:5013 +#: subst.c:5318 #, c-format msgid "%s: parameter null or not set" msgstr "%s: ÐÁÒÁÍÅÔÒ null ÉÌÉ ÎÅ ÕÓÔÁÎÏ×ÌÅÎ" -#: subst.c:5287 +#: subst.c:5608 #, c-format msgid "%s: substring expression < 0" msgstr "" -#: subst.c:6058 +#: subst.c:6660 #, c-format msgid "%s: bad substitution" msgstr "" -#: subst.c:6134 +#: subst.c:6740 #, c-format msgid "$%s: cannot assign in this way" msgstr "" -#: subst.c:7687 +#: subst.c:7479 +#, fuzzy, c-format +msgid "bad substitution: no closing \"`\" in %s" +msgstr "ÎÅÔ ÚÁËÒÙ×ÁÀÝÅÇÏ `%c' × %s" + +#: subst.c:8354 #, c-format msgid "no match: %s" msgstr "ÎÅÔ ÓÏ×ÐÁÄÅÎÉÑ Ó: %s" -#: test.c:154 +#: test.c:145 msgid "argument expected" msgstr "ÐÒÅÄÐÏÌÁÇÁÅÔÓÑ ÞÔÏ ÂÕÄÅÔ ÉÓÐÏÌØÚÏ×ÁÎ ÁÒÇÕÍÅÎÔ" -#: test.c:163 +#: test.c:154 #, c-format msgid "%s: integer expression expected" msgstr "" -#: test.c:361 +#: test.c:262 msgid "`)' expected" msgstr "ÏÖÉÄÁÅÔÓÑ `)' " -#: test.c:363 +#: test.c:264 #, c-format msgid "`)' expected, found %s" msgstr "ÏÖÉÄÁÌÓÑ `)', ÎÁÊÄÅÎ %s" -#: test.c:378 -#: test.c:787 -#: test.c:790 +#: test.c:279 test.c:688 test.c:691 #, c-format msgid "%s: unary operator expected" msgstr "%s: ÏÖÉÄÁÅÔÓÑ ÉÓÐÏÌØÚÏ×ÁÎÉÅ ÕÎÁÒÎÏÇÏ ÏÐÅÒÁÔÏÒÁ" -#: test.c:543 -#: test.c:830 +#: test.c:444 test.c:731 #, c-format msgid "%s: binary operator expected" msgstr "%s: ÏÖÉÄÁÅÔÓÑ ÉÓÐÏÌØÚÏ×ÁÎÉÅ ÂÉÎÁÒÎÏÇÏ ÏÐÅÒÁÔÏÒÁ" -#: test.c:905 +#: test.c:806 msgid "missing `]'" msgstr "ÐÒÏÐÕÝÅÎ `]'" -#: trap.c:194 +#: trap.c:201 msgid "invalid signal number" msgstr "ÎÅÄÏÐÕÓÔÉÍÙÊ ÎÏÍÅÒ ÓÉÇÎÁÌÁ" -#: trap.c:309 +#: trap.c:324 #, c-format msgid "run_pending_traps: bad value in trap_list[%d]: %p" msgstr "" -#: trap.c:313 +#: trap.c:328 #, c-format -msgid "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself" +msgid "" +"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself" msgstr "" -#: trap.c:349 +#: trap.c:372 #, c-format msgid "trap_handler: bad signal %d" msgstr "" -#: variables.c:320 +#: variables.c:358 #, c-format msgid "error importing function definition for `%s'" msgstr "" -#: variables.c:692 +#: variables.c:736 #, c-format msgid "shell level (%d) too high, resetting to 1" msgstr "" -#: variables.c:1651 +#: variables.c:1898 msgid "make_local_variable: no function context at current scope" msgstr "" -#: variables.c:2807 +#: variables.c:3127 msgid "all_local_variables: no function context at current scope" msgstr "" -#: variables.c:3021 -#: variables.c:3030 +#: variables.c:3344 variables.c:3353 #, c-format msgid "invalid character %d in exportstr for %s" msgstr "" -#: variables.c:3036 +#: variables.c:3359 #, c-format msgid "no `=' in exportstr for %s" msgstr "" -#: variables.c:3463 +#: variables.c:3794 msgid "pop_var_context: head of shell_variables not a function context" msgstr "" -#: variables.c:3476 +#: variables.c:3807 msgid "pop_var_context: no global_variables context" msgstr "" -#: variables.c:3548 +#: variables.c:3881 msgid "pop_scope: head of shell_variables not a temporary environment scope" msgstr "" -#: version.c:82 -msgid "Copyright (C) 2005 Free Software Foundation, Inc.\n" +#: version.c:46 +msgid "Copyright (C) 2009 Free Software Foundation, Inc." +msgstr "" + +#: version.c:47 +msgid "" +"License GPLv3+: GNU GPL version 3 or later \n" +msgstr "" + +#: version.c:86 +#, c-format +msgid "GNU bash, version %s (%s)\n" +msgstr "" + +#: version.c:91 +#, c-format +msgid "This is free software; you are free to change and redistribute it.\n" msgstr "" -#: xmalloc.c:93 +#: version.c:92 +#, c-format +msgid "There is NO WARRANTY, to the extent permitted by law.\n" +msgstr "" + +#: xmalloc.c:92 #, c-format msgid "xmalloc: cannot allocate %lu bytes (%lu bytes allocated)" msgstr "" -#: xmalloc.c:95 +#: xmalloc.c:94 #, c-format msgid "xmalloc: cannot allocate %lu bytes" msgstr "" -#: xmalloc.c:115 +#: xmalloc.c:114 #, c-format msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)" msgstr "" -#: xmalloc.c:117 +#: xmalloc.c:116 #, c-format msgid "xrealloc: cannot allocate %lu bytes" msgstr "" -#: xmalloc.c:151 +#: xmalloc.c:150 #, c-format msgid "xmalloc: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)" msgstr "" -#: xmalloc.c:153 +#: xmalloc.c:152 #, 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)" +#: xmalloc.c:174 +#, c-format +msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)" +msgstr "" + +#: xmalloc.c:176 +#, c-format +msgid "xrealloc: %s:%d: cannot allocate %lu bytes" +msgstr "" + +#: builtins.c:43 +msgid "alias [-p] [name[=value] ... ]" +msgstr "" + +#: builtins.c:47 +msgid "unalias [-a] name [name ...]" +msgstr "" + +#: builtins.c:51 +msgid "" +"bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-" +"x keyseq:shell-command] [keyseq:readline-function or readline-command]" +msgstr "" + +#: builtins.c:54 +msgid "break [n]" +msgstr "" + +#: builtins.c:56 +msgid "continue [n]" +msgstr "" + +#: builtins.c:58 +msgid "builtin [shell-builtin [arg ...]]" +msgstr "" + +#: builtins.c:61 +msgid "caller [expr]" +msgstr "" + +#: builtins.c:64 +msgid "cd [-L|-P] [dir]" +msgstr "" + +#: builtins.c:66 +msgid "pwd [-LP]" +msgstr "" + +#: builtins.c:68 +msgid ":" +msgstr "" + +#: builtins.c:70 +msgid "true" +msgstr "" + +#: builtins.c:72 +msgid "false" +msgstr "" + +#: builtins.c:74 +msgid "command [-pVv] command [arg ...]" +msgstr "" + +#: builtins.c:76 +msgid "declare [-aAfFilrtux] [-p] [name[=value] ...]" +msgstr "" + +#: builtins.c:78 +msgid "typeset [-aAfFilrtux] [-p] name[=value] ..." +msgstr "" + +#: builtins.c:80 +msgid "local [option] name[=value] ..." +msgstr "" + +#: builtins.c:83 +msgid "echo [-neE] [arg ...]" +msgstr "" + +#: builtins.c:87 +msgid "echo [-n] [arg ...]" +msgstr "" + +#: builtins.c:90 +msgid "enable [-a] [-dnps] [-f filename] [name ...]" +msgstr "" + +#: builtins.c:92 +msgid "eval [arg ...]" +msgstr "" + +#: builtins.c:94 +msgid "getopts optstring name [arg]" +msgstr "" + +#: builtins.c:96 +msgid "exec [-cl] [-a name] [command [arguments ...]] [redirection ...]" +msgstr "" + +#: builtins.c:98 +msgid "exit [n]" +msgstr "" + +#: builtins.c:100 +msgid "logout [n]" +msgstr "" + +#: builtins.c:103 +msgid "fc [-e ename] [-lnr] [first] [last] or fc -s [pat=rep] [command]" +msgstr "" + +#: builtins.c:107 +msgid "fg [job_spec]" +msgstr "" + +#: builtins.c:111 +msgid "bg [job_spec ...]" +msgstr "" + +#: builtins.c:114 +msgid "hash [-lr] [-p pathname] [-dt] [name ...]" +msgstr "" + +#: builtins.c:117 +msgid "help [-ds] [pattern ...]" +msgstr "" + +#: builtins.c:121 +msgid "" +"history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg " +"[arg...]" +msgstr "" + +#: builtins.c:125 +msgid "jobs [-lnprs] [jobspec ...] or jobs -x command [args]" +msgstr "" + +#: builtins.c:129 +msgid "disown [-h] [-ar] [jobspec ...]" +msgstr "" + +#: builtins.c:132 +msgid "" +"kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l " +"[sigspec]" +msgstr "" + +#: builtins.c:134 +msgid "let arg [arg ...]" +msgstr "" + +#: builtins.c:136 +msgid "" +"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-p prompt] [-t " +"timeout] [-u fd] [name ...]" +msgstr "" + +#: builtins.c:138 +msgid "return [n]" +msgstr "" + +#: builtins.c:140 +msgid "set [--abefhkmnptuvxBCHP] [-o option-name] [arg ...]" +msgstr "" + +#: builtins.c:142 +msgid "unset [-f] [-v] [name ...]" +msgstr "" + +#: builtins.c:144 +msgid "export [-fn] [name[=value] ...] or export -p" +msgstr "" + +#: builtins.c:146 +msgid "readonly [-af] [name[=value] ...] or readonly -p" +msgstr "" + +#: builtins.c:148 +msgid "shift [n]" +msgstr "" + +#: builtins.c:150 +#, fuzzy +msgid "source filename [arguments]" +msgstr "ÔÒÅÂÕÅÔÓÑ ÁÒÇÕÍÅÎÔ ÉÍÑ ÆÁÊÌÁ" + +#: builtins.c:152 +#, fuzzy +msgid ". filename [arguments]" +msgstr "ÔÒÅÂÕÅÔÓÑ ÁÒÇÕÍÅÎÔ ÉÍÑ ÆÁÊÌÁ" + +#: builtins.c:155 +msgid "suspend [-f]" +msgstr "" + +#: builtins.c:158 +msgid "test [expr]" +msgstr "" + +#: builtins.c:160 +msgid "[ arg... ]" +msgstr "" + +#: builtins.c:162 +msgid "times" +msgstr "" + +#: builtins.c:164 +msgid "trap [-lp] [[arg] signal_spec ...]" +msgstr "" + +#: builtins.c:166 +msgid "type [-afptP] name [name ...]" +msgstr "" + +#: builtins.c:169 +msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]" +msgstr "" + +#: builtins.c:172 +msgid "umask [-p] [-S] [mode]" +msgstr "" + +#: builtins.c:175 +msgid "wait [id]" +msgstr "" + +#: builtins.c:179 +msgid "wait [pid]" +msgstr "" + +#: builtins.c:182 +msgid "for NAME [in WORDS ... ] ; do COMMANDS; done" +msgstr "" + +#: builtins.c:184 +msgid "for (( exp1; exp2; exp3 )); do COMMANDS; done" +msgstr "" + +#: builtins.c:186 +msgid "select NAME [in WORDS ... ;] do COMMANDS; done" +msgstr "" + +#: builtins.c:188 +msgid "time [-p] pipeline" +msgstr "" + +#: builtins.c:190 +msgid "case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac" +msgstr "" + +#: builtins.c:192 +msgid "" +"if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else " +"COMMANDS; ] fi" +msgstr "" + +#: builtins.c:194 +msgid "while COMMANDS; do COMMANDS; done" +msgstr "" + +#: builtins.c:196 +msgid "until COMMANDS; do COMMANDS; done" +msgstr "" + +#: builtins.c:198 +msgid "function name { COMMANDS ; } or name () { COMMANDS ; }" +msgstr "" + +#: builtins.c:200 +msgid "{ COMMANDS ; }" +msgstr "" + +#: builtins.c:202 +msgid "job_spec [&]" +msgstr "" + +#: builtins.c:204 +#, fuzzy +msgid "(( expression ))" +msgstr "ÏÖÉÄÁÌÏÓØ ×ÙÒÁÖÅÎÉÅ" + +#: builtins.c:206 +#, fuzzy +msgid "[[ expression ]]" +msgstr "ÏÖÉÄÁÌÏÓØ ×ÙÒÁÖÅÎÉÅ" + +#: builtins.c:208 +msgid "variables - Names and meanings of some shell variables" +msgstr "" + +#: builtins.c:211 +msgid "pushd [-n] [+N | -N | dir]" +msgstr "" + +#: builtins.c:215 +msgid "popd [-n] [+N | -N]" +msgstr "" + +#: builtins.c:219 +msgid "dirs [-clpv] [+N] [-N]" +msgstr "" + +#: builtins.c:222 +msgid "shopt [-pqsu] [-o] [optname ...]" +msgstr "" + +#: builtins.c:224 +msgid "printf [-v var] format [arguments]" +msgstr "" + +#: builtins.c:227 +msgid "" +"complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W " +"wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] " +"[name ...]" +msgstr "" + +#: builtins.c:231 +msgid "" +"compgen [-abcdefgjksuv] [-o option] [-A action] [-G globpat] [-W wordlist] " +"[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]" +msgstr "" + +#: builtins.c:235 +msgid "compopt [-o|+o option] [name ...]" msgstr "" -#: xmalloc.c:177 -#, c-format -msgid "xrealloc: %s:%d: cannot allocate %lu bytes" +#: builtins.c:238 +msgid "" +"mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c " +"quantum] [array]" msgstr "" -#: builtins.c:244 +#: builtins.c:250 msgid "" -" `alias' with no arguments or with the -p option prints the list\n" -" of aliases in the form alias NAME=VALUE on standard output.\n" +"Define or display aliases.\n" +" \n" +" Without arguments, `alias' prints the list of aliases in the reusable\n" +" form `alias NAME=VALUE' on standard output.\n" +" \n" " Otherwise, an alias is defined for each NAME whose VALUE is given.\n" " A trailing space in VALUE causes the next word to be checked for\n" -" alias substitution when the alias is expanded. Alias returns\n" -" true unless a NAME is given for which no alias has been defined." +" alias substitution when the alias is expanded.\n" +" \n" +" Options:\n" +" -p\tPrint all defined aliases in a reusable format\n" +" \n" +" Exit Status:\n" +" alias returns true unless a NAME is supplied for which no alias has " +"been\n" +" defined." msgstr "" -#: builtins.c:257 +#: builtins.c:272 msgid "" -" Remove NAMEs from the list of defined aliases. If the -a option is given,\n" -" then remove all alias definitions." +"Remove each NAME from the list of defined aliases.\n" +" \n" +" Options:\n" +" -a\tremove all alias definitions.\n" +" \n" +" Return success unless a NAME is not an existing alias." msgstr "" -#: builtins.c:266 +#: builtins.c:285 msgid "" -" Bind a key sequence to a Readline function or a macro, or set\n" -" a Readline variable. The non-option argument syntax is equivalent\n" -" to that found in ~/.inputrc, but must be passed as a single argument:\n" -" bind '\"\\C-x\\C-r\": re-read-init-file'.\n" -" bind accepts the following options:\n" -" -m keymap Use `keymap' as the keymap for the duration of this\n" +"Set Readline key bindings and variables.\n" +" \n" +" Bind a key sequence to a Readline function or a macro, or set a\n" +" Readline variable. The non-option argument syntax is equivalent to\n" +" that found in ~/.inputrc, but must be passed as a single argument:\n" +" e.g., bind '\"\\C-x\\C-r\": re-read-init-file'.\n" +" \n" +" Options:\n" +" -m keymap Use KEYMAP as the keymap for the duration of this\n" " command. Acceptable keymap names are emacs,\n" -" emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move,\n" +" emacs-standard, emacs-meta, emacs-ctlx, vi, vi-" +"move,\n" " vi-command, and vi-insert.\n" " -l List names of functions.\n" " -P List function names and bindings.\n" " -p List functions and bindings in a form that can be\n" " reused as input.\n" -" -r keyseq Remove the binding for KEYSEQ.\n" -" -x keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n" -" \t\t\t\tKEYSEQ is entered.\n" -" -f filename Read key bindings from FILENAME.\n" -" -q function-name Query about which keys invoke the named function.\n" -" -u function-name Unbind all keys which are bound to the named function.\n" +" -S List key sequences that invoke macros and their " +"values\n" +" -s List key sequences that invoke macros and their " +"values\n" +" in a form that can be reused as input.\n" " -V List variable names and values\n" " -v List variable names and values in a form that can\n" " be reused as input.\n" -" -S List key sequences that invoke macros and their values\n" -" -s List key sequences that invoke macros and their values\n" -" in a form that can be reused as input." +" -q function-name Query about which keys invoke the named function.\n" +" -u function-name Unbind all keys which are bound to the named " +"function.\n" +" -r keyseq Remove the binding for KEYSEQ.\n" +" -f filename Read key bindings from FILENAME.\n" +" -x keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n" +" \t\t\t\tKEYSEQ is entered.\n" +" \n" +" Exit Status:\n" +" bind returns 0 unless an unrecognized option is given or an error occurs." msgstr "" -#: builtins.c:297 +#: builtins.c:322 msgid "" -" Exit from within a FOR, WHILE or UNTIL loop. If N is specified,\n" -" break N levels." +"Exit for, while, or until loops.\n" +" \n" +" Exit a FOR, WHILE or UNTIL loop. If N is specified, break N enclosing\n" +" loops.\n" +" \n" +" Exit Status:\n" +" The exit status is 0 unless N is not greater than or equal to 1." msgstr "" -#: builtins.c:304 +#: builtins.c:334 msgid "" -" Resume the next iteration of the enclosing FOR, WHILE or UNTIL loop.\n" -" If N is specified, resume at the N-th enclosing loop." +"Resume for, while, or until loops.\n" +" \n" +" Resumes the next iteration of the enclosing FOR, WHILE or UNTIL loop.\n" +" If N is specified, resumes the Nth enclosing loop.\n" +" \n" +" Exit Status:\n" +" The exit status is 0 unless N is not greater than or equal to 1." msgstr "" -#: builtins.c:311 +#: builtins.c:346 msgid "" -" Run a shell builtin. This is useful when you wish to rename a\n" -" shell builtin to be a function, but need the functionality of the\n" -" builtin within the function itself." +"Execute shell builtins.\n" +" \n" +" Execute SHELL-BUILTIN with arguments ARGs without performing command\n" +" lookup. This is useful when you wish to reimplement a shell builtin\n" +" as a shell function, but need to execute the builtin within the " +"function.\n" +" \n" +" Exit Status:\n" +" Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is\n" +" not a shell builtin.." msgstr "" -#: builtins.c:320 +#: builtins.c:361 msgid "" -" Returns the context of the current subroutine call.\n" +"Return the context of the current subroutine call.\n" " \n" -" Without EXPR, returns returns \"$line $filename\". With EXPR,\n" -" returns \"$line $subroutine $filename\"; this extra information\n" -" can be used used to provide a stack trace.\n" +" Without EXPR, returns \"$line $filename\". With EXPR, returns\n" +" \"$line $subroutine $filename\"; this extra information can be used to\n" +" provide a stack trace.\n" " \n" " The value of EXPR indicates how many call frames to go back before the\n" -" current one; the top frame is frame 0." +" current one; the top frame is frame 0.\n" +" \n" +" Exit Status:\n" +" Returns 0 unless the shell is not executing a shell function or EXPR\n" +" is invalid." msgstr "" -#: builtins.c:334 +#: builtins.c:379 msgid "" -" Change the current directory to DIR. The variable $HOME is the\n" -" default DIR. The variable CDPATH defines the search path for\n" -" the directory containing DIR. Alternative directory names in CDPATH\n" -" are separated by a colon (:). A null directory name is the same as\n" -" the current directory, i.e. `.'. If DIR begins with a slash (/),\n" -" then CDPATH is not used. If the directory is not found, and the\n" -" shell option `cdable_vars' is set, then try the word as a variable\n" -" name. If that variable has a value, then cd to the value of that\n" -" variable. The -P option says to use the physical directory structure\n" -" instead of following symbolic links; the -L option forces symbolic links\n" -" to be followed." +"Change the shell working directory.\n" +" \n" +" Change the current directory to DIR. The default DIR is the value of " +"the\n" +" HOME shell variable.\n" +" \n" +" The variable CDPATH defines the search path for the directory " +"containing\n" +" DIR. Alternative directory names in CDPATH are separated by a colon " +"(:).\n" +" A null directory name is the same as the current directory. If DIR " +"begins\n" +" with a slash (/), then CDPATH is not used.\n" +" \n" +" If the directory is not found, and the shell option `cdable_vars' is " +"set,\n" +" the word is assumed to be a variable name. If that variable has a " +"value,\n" +" its value is used for DIR.\n" +" \n" +" Options:\n" +" -L\tforce symbolic links to be followed\n" +" -P\tuse the physical directory structure without following symbolic\n" +" \tlinks\n" +" \n" +" The default is to follow symbolic links, as if `-L' were specified.\n" +" \n" +" Exit Status:\n" +" Returns 0 if the directory is changed; non-zero otherwise." msgstr "" -#: builtins.c:350 +#: builtins.c:407 msgid "" -" Print the current working directory. With the -P option, pwd prints\n" -" the physical directory, without any symbolic links; the -L option\n" -" makes pwd follow symbolic links." +"Print the name of the current working directory.\n" +" \n" +" Options:\n" +" -L\tprint the value of $PWD if it names the current working\n" +" \tdirectory\n" +" -P\tprint the physical directory, without any symbolic links\n" +" \n" +" By default, `pwd' behaves as if `-L' were specified.\n" +" \n" +" Exit Status:\n" +" Returns 0 unless an invalid option is given or the current directory\n" +" cannot be read." msgstr "" -#: builtins.c:358 -msgid " No effect; the command does nothing. A zero exit code is returned." -msgstr " îÅÔ ËÁËÏÇÏ-ÌÉÂÏ ÜÆÆÅËÔÁ; ËÏÍÁÎÄÁ ÎÉÞÅÇÏ ÎÅ ÄÅÌÁÅÔ. îÕÌØ ×ÏÚ×ÒÁÝÁÅÔÓÑ × ËÁÞÅÓÔ×Å ÒÅÚÕÌØÔÁÔÁ." +#: builtins.c:424 +#, fuzzy +msgid "" +"Null command.\n" +" \n" +" No effect; the command does nothing.\n" +" \n" +" Exit Status:\n" +" Always succeeds." +msgstr "" +" îÅÔ ËÁËÏÇÏ-ÌÉÂÏ ÜÆÆÅËÔÁ; ËÏÍÁÎÄÁ ÎÉÞÅÇÏ ÎÅ ÄÅÌÁÅÔ. îÕÌØ ×ÏÚ×ÒÁÝÁÅÔÓÑ × " +"ËÁÞÅÓÔ×Å ÒÅÚÕÌØÔÁÔÁ." -#: builtins.c:364 -msgid " Return a successful result." -msgstr "÷ÏÚ×ÒÁÝÁÅÔ ÒÅÚÕÌØÔÁÔ: ×ÓÅ ÈÏÒÏÛÏ." +#: builtins.c:435 +msgid "" +"Return a successful result.\n" +" \n" +" Exit Status:\n" +" Always succeeds." +msgstr "" -#: builtins.c:370 -msgid " Return an unsuccessful result." +#: builtins.c:444 +#, fuzzy +msgid "" +"Return an unsuccessful result.\n" +" \n" +" Exit Status:\n" +" Always fails." msgstr "÷ÏÚ×ÒÁÝÁÅÔ ÒÅÚÕÌØÔÁÔ: ÎÅÕÄÁÞÁ." -#: builtins.c:376 +#: builtins.c:453 msgid "" -" Runs COMMAND with ARGS ignoring shell functions. If you have a shell\n" -" function called `ls', and you wish to call the command `ls', you can\n" -" say \"command ls\". If the -p option is given, a default value is used\n" -" for PATH that is guaranteed to find all of the standard utilities. If\n" -" the -V or -v option is given, a string is printed describing COMMAND.\n" -" The -V option produces a more verbose description." +"Execute a simple command or display information about commands.\n" +" \n" +" Runs COMMAND with ARGS suppressing shell function lookup, or display\n" +" information about the specified COMMANDs. Can be used to invoke " +"commands\n" +" on disk when a function with the same name exists.\n" +" \n" +" Options:\n" +" -p\tuse a default value for PATH that is guaranteed to find all of\n" +" \tthe standard utilities\n" +" -v\tprint a description of COMMAND similar to the `type' builtin\n" +" -V\tprint a more verbose description of each COMMAND\n" +" \n" +" Exit Status:\n" +" Returns exit status of COMMAND, or failure if COMMAND is not found." msgstr "" -#: builtins.c:387 +#: builtins.c:472 msgid "" -" Declare variables and/or give them attributes. If no NAMEs are\n" -" given, then display the values of variables instead. The -p option\n" -" will display the attributes and values of each NAME.\n" +"Set variable values and attributes.\n" " \n" -" The flags are:\n" +" Declare variables and give them attributes. If no NAMEs are given,\n" +" display the attributes and values of all variables.\n" " \n" -" -a\tto make NAMEs arrays (if supported)\n" -" -f\tto select from among function names only\n" -" -F\tto display function names (and line number and source file name if\n" -" \tdebugging) without definitions\n" +" Options:\n" +" -f\trestrict action or display to function names and definitions\n" +" -F\trestrict display to function names only (plus line number and\n" +" \tsource file when debugging)\n" +" -p\tdisplay the attributes and value of each NAME\n" +" \n" +" Options which set attributes:\n" +" -a\tto make NAMEs indexed arrays (if supported)\n" +" -A\tto make NAMEs associative arrays (if supported)\n" " -i\tto make NAMEs have the `integer' attribute\n" +" -l\tto convert NAMEs to lower case on assignment\n" " -r\tto make NAMEs readonly\n" " -t\tto make NAMEs have the `trace' attribute\n" +" -u\tto convert NAMEs to upper case on assignment\n" " -x\tto make NAMEs export\n" " \n" +" Using `+' instead of `-' turns off the given attribute.\n" +" \n" " Variables with the integer attribute have arithmetic evaluation (see\n" -" `let') done when the variable is assigned to.\n" +" the `let' command) performed when the variable is assigned a value.\n" " \n" -" When displaying values of variables, -f displays a function's name\n" -" and definition. The -F option restricts the display to function\n" -" name only.\n" +" When used in a function, `declare' makes NAMEs local, as with the " +"`local'\n" +" command.\n" " \n" -" Using `+' instead of `-' turns off the given attribute instead. When\n" -" used in a function, makes NAMEs local, as with the `local' command." +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." msgstr "" -#: builtins.c:416 -msgid " Obsolete. See `declare'." -msgstr " ÷ÙÛÅÌ ÉÚ ÕÐÏÔÒÅÂÌÅÎÉÑ. óÍ. `declare'." +#: builtins.c:508 +msgid "" +"Set variable values and attributes.\n" +" \n" +" Obsolete. See `help declare'." +msgstr "" -#: builtins.c:422 +#: builtins.c:516 msgid "" -" Create a local variable called NAME, and give it VALUE. LOCAL\n" -" can only be used within a function; it makes the variable NAME\n" -" have a visible scope restricted to that function and its children." +"Define local variables.\n" +" \n" +" Create a local variable called NAME, and give it VALUE. OPTION can\n" +" be any option accepted by `declare'.\n" +" \n" +" Local variables can only be used within a function; they are visible\n" +" only to the function where they are defined and its children.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied, an error occurs,\n" +" or the shell is not executing a function." msgstr "" -#: builtins.c:431 +#: builtins.c:533 msgid "" -" Output the ARGs. If -n is specified, the trailing newline is\n" -" suppressed. If the -e option is given, interpretation of the\n" -" following backslash-escaped characters is turned on:\n" -" \t\\a\talert (bell)\n" -" \t\\b\tbackspace\n" -" \t\\c\tsuppress trailing newline\n" -" \t\\E\tescape character\n" -" \t\\f\tform feed\n" -" \t\\n" -"\tnew line\n" -" \t\\r\tcarriage return\n" -" \t\\t\thorizontal tab\n" -" \t\\v\tvertical tab\n" -" \t\\\\\tbackslash\n" -" \t\\n" -"um\tthe character whose ASCII code is NUM (octal).\n" +"Write arguments to the standard output.\n" +" \n" +" Display the ARGs on the standard output followed by a newline.\n" +" \n" +" Options:\n" +" -n\tdo not append a newline\n" +" -e\tenable interpretation of the following backslash escapes\n" +" -E\texplicitly suppress interpretation of backslash escapes\n" " \n" -" You can explicitly turn off the interpretation of the above characters\n" -" with the -E option." +" `echo' interprets the following backslash-escaped characters:\n" +" \\a\talert (bell)\n" +" \\b\tbackspace\n" +" \\c\tsuppress further output\n" +" \\e\tescape character\n" +" \\f\tform feed\n" +" \\n\tnew line\n" +" \\r\tcarriage return\n" +" \\t\thorizontal tab\n" +" \\v\tvertical tab\n" +" \\\\\tbackslash\n" +" \\0nnn\tthe character whose ASCII code is NNN (octal). NNN can be\n" +" \t0 to 3 octal digits\n" +" \\xHH\tthe eight-bit character whose value is HH (hexadecimal). HH\n" +" \tcan be one or two hex digits\n" +" \n" +" Exit Status:\n" +" Returns success unless a write error occurs." msgstr "" -#: builtins.c:455 -msgid " Output the ARGs. If -n is specified, the trailing newline is suppressed." +#: builtins.c:567 +msgid "" +"Write arguments to the standard output.\n" +" \n" +" Display the ARGs on the standard output followed by a newline.\n" +" \n" +" Options:\n" +" -n\tdo not append a newline\n" +" \n" +" Exit Status:\n" +" Returns success unless a write error occurs." msgstr "" -#: builtins.c:462 +#: builtins.c:582 msgid "" -" Enable and disable builtin shell commands. This allows\n" -" you to use a disk command which has the same name as a shell\n" -" builtin without specifying a full pathname. If -n is used, the\n" -" NAMEs become disabled; otherwise NAMEs are enabled. For example,\n" -" to use the `test' found in $PATH instead of the shell builtin\n" -" version, type `enable -n test'. On systems supporting dynamic\n" -" loading, the -f option may be used to load new builtins from the\n" -" shared object FILENAME. The -d option will delete a builtin\n" -" previously loaded with -f. If no non-option names are given, or\n" -" the -p option is supplied, a list of builtins is printed. The\n" -" -a option means to print every builtin with an indication of whether\n" -" or not it is enabled. The -s option restricts the output to the POSIX.2\n" -" `special' builtins. The -n option displays a list of all disabled builtins." +"Enable and disable shell builtins.\n" +" \n" +" Enables and disables builtin shell commands. Disabling allows you to\n" +" execute a disk command which has the same name as a shell builtin\n" +" without using a full pathname.\n" +" \n" +" Options:\n" +" -a\tprint a list of builtins showing whether or not each is enabled\n" +" -n\tdisable each NAME or display a list of disabled builtins\n" +" -p\tprint the list of builtins in a reusable format\n" +" -s\tprint only the names of Posix `special' builtins\n" +" \n" +" Options controlling dynamic loading:\n" +" -f\tLoad builtin NAME from shared object FILENAME\n" +" -d\tRemove a builtin loaded with -f\n" +" \n" +" Without options, each NAME is enabled.\n" +" \n" +" To use the `test' found in $PATH instead of the shell builtin\n" +" version, type `enable -n test'.\n" +" \n" +" Exit Status:\n" +" Returns success unless NAME is not a shell builtin or an error occurs." msgstr "" -#: builtins.c:480 -msgid " Read ARGs as input to the shell and execute the resulting command(s)." +#: builtins.c:610 +msgid "" +"Execute arguments as a shell command.\n" +" \n" +" Combine ARGs into a single string, use the result as input to the " +"shell,\n" +" and execute the resulting commands.\n" +" \n" +" Exit Status:\n" +" Returns exit status of command or success if command is null." msgstr "" -#: builtins.c:486 +#: builtins.c:622 msgid "" -" Getopts is used by shell procedures to parse positional parameters.\n" +"Parse option arguments.\n" +" \n" +" Getopts is used by shell procedures to parse positional parameters\n" +" as options.\n" " \n" " OPTSTRING contains the option letters to be recognized; if a letter\n" " is followed by a colon, the option is expected to have an argument,\n" @@ -1752,155 +2528,262 @@ msgid "" " OPTSTRING is not a colon. OPTERR has the value 1 by default.\n" " \n" " Getopts normally parses the positional parameters ($0 - $9), but if\n" -" more arguments are given, they are parsed instead." +" more arguments are given, they are parsed instead.\n" +" \n" +" Exit Status:\n" +" Returns success if an option is found; fails if the end of options is\n" +" encountered or an error occurs." msgstr "" -#: builtins.c:521 +#: builtins.c:664 msgid "" -" Exec FILE, replacing this shell with the specified program.\n" -" If FILE is not specified, the redirections take effect in this\n" -" shell. If the first argument is `-l', then place a dash in the\n" -" zeroth arg passed to FILE, as login does. If the `-c' option\n" -" is supplied, FILE is executed with a null environment. The `-a'\n" -" option means to make set argv[0] of the executed process to NAME.\n" -" If the file cannot be executed and the shell is not interactive,\n" -" then the shell exits, unless the shell option `execfail' is set." +"Replace the shell with the given command.\n" +" \n" +" Execute COMMAND, replacing this shell with the specified program.\n" +" ARGUMENTS become the arguments to COMMAND. If COMMAND is not " +"specified,\n" +" any redirections take effect in the current shell.\n" +" \n" +" Options:\n" +" -a name\tpass NAME as the zeroth argument to COMMAND\n" +" -c\t\texecute COMMAND with an empty environment\n" +" -l\t\tplace a dash in the zeroth argument to COMMAND\n" +" \n" +" If the command cannot be executed, a non-interactive shell exits, " +"unless\n" +" the shell option `execfail' is set.\n" +" \n" +" Exit Status:\n" +" Returns success unless COMMAND is not found or a redirection error " +"occurs." msgstr "" -#: builtins.c:534 +#: builtins.c:685 msgid "" -" Exit the shell with a status of N. If N is omitted, the exit status\n" +"Exit the shell.\n" +" \n" +" Exits the shell with a status of N. If N is omitted, the exit status\n" " is that of the last command executed." msgstr "" -#: builtins.c:541 -msgid " Logout of a login shell." -msgstr "úÁ×ÅÒÛÅÎÉÑ ÓÅÁÎÓÁ ËÏÍÁÎÄÎÏÇÏ ÉÎÔÅÒÐÒÅÔÁÔÏÒÁ ÚÁÐÕÝÅÎÎÏÇÏ ÐÏÓÌÅ ×ÈÏÄÁ × ÓÉÓÔÅÍÕ." +#: builtins.c:694 +msgid "" +"Exit a login shell.\n" +" \n" +" Exits a login shell with exit status N. Returns an error if not " +"executed\n" +" in a login shell." +msgstr "" -#: builtins.c:548 +#: builtins.c:704 msgid "" -" fc is used to list or edit and re-execute commands from the history list.\n" +"Display or execute commands from the history list.\n" +" \n" +" fc is used to list or edit and re-execute commands from the history " +"list.\n" " FIRST and LAST can be numbers specifying the range, or FIRST can be a\n" " string, which means the most recent command beginning with that\n" " string.\n" " \n" -" -e ENAME selects which editor to use. Default is FCEDIT, then EDITOR,\n" -" then vi.\n" +" Options:\n" +" -e ENAME\tselect which editor to use. Default is FCEDIT, then " +"EDITOR,\n" +" \t\tthen vi\n" +" -l \tlist lines instead of editing\n" +" -n\tomit line numbers when listing\n" +" -r\treverse the order of the lines (newest listed first)\n" " \n" -" -l means list lines instead of editing.\n" -" -n means no line numbers listed.\n" -" -r means reverse the order of the lines (making it newest listed first).\n" -" \n" -" With the `fc -s [pat=rep ...] [command]' format, the command is\n" +" With the `fc -s [pat=rep ...] [command]' format, COMMAND is\n" " re-executed after the substitution OLD=NEW is performed.\n" " \n" " A useful alias to use with this is r='fc -s', so that typing `r cc'\n" " runs the last command beginning with `cc' and typing `r' re-executes\n" -" the last command." +" the last command.\n" +" \n" +" Exit Status:\n" +" Returns success or status of executed command; non-zero if an error " +"occurs." msgstr "" -#: builtins.c:573 +#: builtins.c:734 msgid "" -" Place JOB_SPEC in the foreground, and make it the current job. If\n" -" JOB_SPEC is not present, the shell's notion of the current job is\n" -" used." +"Move job to the foreground.\n" +" \n" +" Place the job identified by JOB_SPEC in the foreground, making it the\n" +" current job. If JOB_SPEC is not present, the shell's notion of the\n" +" current job is used.\n" +" \n" +" Exit Status:\n" +" Status of command placed in foreground, or failure if an error occurs." msgstr "" -#: builtins.c:583 +#: builtins.c:749 msgid "" -" Place each JOB_SPEC in the background, as if it had been started with\n" -" `&'. If JOB_SPEC is not present, the shell's notion of the current\n" -" job is used." +"Move jobs to the background.\n" +" \n" +" Place the jobs identified by each JOB_SPEC in the background, as if " +"they\n" +" had been started with `&'. If JOB_SPEC is not present, the shell's " +"notion\n" +" of the current job is used.\n" +" \n" +" Exit Status:\n" +" Returns success unless job control is not enabled or an error occurs." msgstr "" -#: builtins.c:592 +#: builtins.c:763 msgid "" -" For each NAME, the full pathname of the command is determined and\n" -" remembered. If the -p option is supplied, PATHNAME is used as the\n" -" full pathname of NAME, and no path search is performed. The -r\n" -" option causes the shell to forget all remembered locations. The -d\n" -" option causes the shell to forget the remembered location of each NAME.\n" -" If the -t option is supplied the full pathname to which each NAME\n" -" corresponds is printed. If multiple NAME arguments are supplied with\n" -" -t, the NAME is printed before the hashed full pathname. The -l option\n" -" causes output to be displayed in a format that may be reused as input.\n" -" If no arguments are given, information about remembered commands is displayed." +"Remember or display program locations.\n" +" \n" +" Determine and remember the full pathname of each command NAME. If\n" +" no arguments are given, information about remembered commands is " +"displayed.\n" +" \n" +" Options:\n" +" -d\t\tforget the remembered location of each NAME\n" +" -l\t\tdisplay in a format that may be reused as input\n" +" -p pathname\tuse PATHNAME is the full pathname of NAME\n" +" -r\t\tforget all remembered locations\n" +" -t\t\tprint the remembered location of each NAME, preceding\n" +" \t\teach location with the corresponding NAME if multiple\n" +" \t\tNAMEs are given\n" +" Arguments:\n" +" NAME\t\tEach NAME is searched for in $PATH and added to the list\n" +" \t\tof remembered commands.\n" +" \n" +" Exit Status:\n" +" Returns success unless NAME is not found or an invalid option is given." msgstr "" -#: builtins.c:608 +#: builtins.c:788 msgid "" -" Display helpful information about builtin commands. If PATTERN is\n" +"Display information about builtin commands.\n" +" \n" +" Displays brief summaries of builtin commands. If PATTERN is\n" " specified, gives detailed help on all commands matching PATTERN,\n" -" otherwise a list of the builtins is printed. The -s option\n" -" restricts the output for each builtin command matching PATTERN to\n" -" a short usage synopsis." +" otherwise the list of help topics is printed.\n" +" \n" +" Options:\n" +" -d\toutput short description for each topic\n" +" -m\tdisplay usage in pseudo-manpage format\n" +" -s\toutput only a short usage synopsis for each topic matching\n" +" \tPATTERN\n" +" \n" +" Arguments:\n" +" PATTERN\tPattern specifiying a help topic\n" +" \n" +" Exit Status:\n" +" Returns success unless PATTERN is not found or an invalid option is " +"given." msgstr "" -#: builtins.c:620 +#: builtins.c:812 msgid "" -" Display the history list with line numbers. Lines listed with\n" -" with a `*' have been modified. Argument of N says to list only\n" -" the last N lines. The `-c' option causes the history list to be\n" -" cleared by deleting all of the entries. The `-d' option deletes\n" -" the history entry at offset OFFSET. The `-w' option writes out the\n" -" current history to the history file; `-r' means to read the file and\n" -" append the contents to the history list instead. `-a' means\n" -" to append history lines from this session to the history file.\n" -" Argument `-n' means to read all history lines not already read\n" -" from the history file and append them to the history list.\n" +"Display or manipulate the history list.\n" " \n" -" If FILENAME is given, then that is used as the history file else\n" +" Display the history list with line numbers, prefixing each modified\n" +" entry with a `*'. An argument of N lists only the last N entries.\n" +" \n" +" Options:\n" +" -c\tclear the history list by deleting all of the entries\n" +" -d offset\tdelete the history entry at offset OFFSET.\n" +" \n" +" -a\tappend history lines from this session to the history file\n" +" -n\tread all history lines not already read from the history file\n" +" -r\tread the history file and append the contents to the history\n" +" \tlist\n" +" -w\twrite the current history to the history file\n" +" \tand append them to the history list\n" +" \n" +" -p\tperform history expansion on each ARG and display the result\n" +" \twithout storing it in the history list\n" +" -s\tappend the ARGs to the history list as a single entry\n" +" \n" +" If FILENAME is given, it is used as the history file. Otherwise,\n" " if $HISTFILE has a value, that is used, else ~/.bash_history.\n" -" If the -s option is supplied, the non-option ARGs are appended to\n" -" the history list as a single entry. The -p option means to perform\n" -" history expansion on each ARG and display the result, without storing\n" -" anything in the history list.\n" " \n" " If the $HISTTIMEFORMAT variable is set and not null, its value is used\n" " as a format string for strftime(3) to print the time stamp associated\n" -" with each displayed history entry. No time stamps are printed otherwise." +" with each displayed history entry. No time stamps are printed " +"otherwise.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or an error occurs." msgstr "" -#: builtins.c:648 +#: builtins.c:848 msgid "" -" Lists the active jobs. The -l option lists process id's in addition\n" -" to the normal information; the -p option lists process id's only.\n" -" If -n is given, only processes that have changed status since the last\n" -" notification are printed. JOBSPEC restricts output to that job. The\n" -" -r and -s options restrict output to running and stopped jobs only,\n" -" respectively. Without options, the status of all active jobs is\n" -" printed. If -x is given, COMMAND is run after all job specifications\n" -" that appear in ARGS have been replaced with the process ID of that job's\n" -" process group leader." +"Display status of jobs.\n" +" \n" +" Lists the active jobs. JOBSPEC restricts output to that job.\n" +" Without options, the status of all active jobs is displayed.\n" +" \n" +" Options:\n" +" -l\tlists process IDs in addition to the normal information\n" +" -n\tlist only processes that have changed status since the last\n" +" \tnotification\n" +" -p\tlists process IDs only\n" +" -r\trestrict output to running jobs\n" +" -s\trestrict output to stopped jobs\n" +" \n" +" If -x is supplied, COMMAND is run after all job specifications that\n" +" appear in ARGS have been replaced with the process ID of that job's\n" +" process group leader.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or an error occurs.\n" +" If -x is used, returns the exit status of COMMAND." msgstr "" -#: builtins.c:664 +#: builtins.c:875 msgid "" -" By default, removes each JOBSPEC argument from the table of active jobs.\n" -" If the -h option is given, the job is not removed from the table, but is\n" -" marked so that SIGHUP is not sent to the job if the shell receives a\n" -" SIGHUP. The -a option, when JOBSPEC is not supplied, means to remove all\n" -" jobs from the job table; the -r option means to remove only running jobs." +"Remove jobs from current shell.\n" +" \n" +" Removes each JOBSPEC argument from the table of active jobs. Without\n" +" any JOBSPECs, the shell uses its notion of the current job.\n" +" \n" +" Options:\n" +" -a\tremove all jobs if JOBSPEC is not supplied\n" +" -h\tmark each JOBSPEC so that SIGHUP is not sent to the job if the\n" +" \tshell receives a SIGHUP\n" +" -r\tremove only running jobs\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option or JOBSPEC is given." msgstr "" -#: builtins.c:675 +#: builtins.c:894 msgid "" -" Send the processes named by PID (or JOBSPEC) the signal SIGSPEC. If\n" -" SIGSPEC is not present, then SIGTERM is assumed. An argument of `-l'\n" -" lists the signal names; if arguments follow `-l' they are assumed to\n" -" be signal numbers for which names should be listed. Kill is a shell\n" -" builtin for two reasons: it allows job IDs to be used instead of\n" -" process IDs, and, if you have reached the limit on processes that\n" -" you can create, you don't have to start a process to kill another one." +"Send a signal to a job.\n" +" \n" +" Send the processes identified by PID or JOBSPEC the signal named by\n" +" SIGSPEC or SIGNUM. If neither SIGSPEC nor SIGNUM is present, then\n" +" SIGTERM is assumed.\n" +" \n" +" Options:\n" +" -s sig\tSIG is a signal name\n" +" -n sig\tSIG is a signal number\n" +" -l\tlist the signal names; if arguments follow `-l' they are\n" +" \tassumed to be signal numbers for which names should be listed\n" +" \n" +" Kill is a shell builtin for two reasons: it allows job IDs to be used\n" +" instead of process IDs, and allows processes to be killed if the limit\n" +" on processes that you can create is reached.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or an error occurs." msgstr "" -#: builtins.c:687 +#: builtins.c:917 msgid "" -" Each ARG is an arithmetic expression to be evaluated. Evaluation\n" -" is done in fixed-width integers with no check for overflow, though\n" -" division by 0 is trapped and flagged as an error. The following\n" -" list of operators is grouped into levels of equal-precedence operators.\n" -" The levels are listed in order of decreasing precedence.\n" +"Evaluate arithmetic expressions.\n" +" \n" +" Evaluate each ARG as an arithmetic expression. Evaluation is done in\n" +" fixed-width integers with no check for overflow, though division by 0\n" +" is trapped and flagged as an error. The following list of operators is\n" +" grouped into levels of equal-precedence operators. The levels are " +"listed\n" +" in order of decreasing precedence.\n" " \n" " \tid++, id--\tvariable post-increment, post-decrement\n" " \t++id, --id\tvariable pre-increment, pre-decrement\n" @@ -1932,196 +2815,279 @@ msgid "" " parentheses are evaluated first and may override the precedence\n" " rules above.\n" " \n" -" If the last ARG evaluates to 0, let returns 1; 0 is returned\n" -" otherwise." +" Exit Status:\n" +" If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise.." msgstr "" -#: builtins.c:730 +#: builtins.c:962 msgid "" -" One line is read from the standard input, or from file descriptor FD if the\n" -" -u option is supplied, and the first word is assigned to the first NAME,\n" -" the second word to the second NAME, and so on, with leftover words assigned\n" -" to the last NAME. Only the characters found in $IFS are recognized as word\n" -" delimiters. If no NAMEs are supplied, the line read is stored in the REPLY\n" -" variable. If the -r option is given, this signifies `raw' input, and\n" -" backslash escaping is disabled. The -d option causes read to continue\n" -" until the first character of DELIM is read, rather than newline. If the -p\n" -" option is supplied, the string PROMPT is output without a trailing newline\n" -" before attempting to read. If -a is supplied, the words read are assigned\n" -" to sequential indices of ARRAY, starting at zero. If -e is supplied and\n" -" the shell is interactive, readline is used to obtain the line. If -n is\n" -" supplied with a non-zero NCHARS argument, read returns after NCHARS\n" -" characters have been read. The -s option causes input coming from a\n" -" terminal to not be echoed.\n" +"Read a line from the standard input and split it into fields.\n" +" \n" +" Reads a single line from the standard input, or from file descriptor FD\n" +" if the -u option is supplied. The line is split into fields as with " +"word\n" +" splitting, and the first word is assigned to the first NAME, the second\n" +" word to the second NAME, and so on, with any leftover words assigned to\n" +" the last NAME. Only the characters found in $IFS are recognized as " +"word\n" +" delimiters.\n" +" \n" +" If no NAMEs are supplied, the line read is stored in the REPLY " +"variable.\n" " \n" -" The -t option causes read to time out and return failure if a complete line\n" -" of input is not read within TIMEOUT seconds. If the TMOUT variable is set,\n" -" its value is the default timeout. The return code is zero, unless end-of-file\n" -" is encountered, read times out, or an invalid file descriptor is supplied as\n" -" the argument to -u." +" Options:\n" +" -a array\tassign the words read to sequential indices of the array\n" +" \t\tvariable ARRAY, starting at zero\n" +" -d delim\tcontinue until the first character of DELIM is read, rather\n" +" \t\tthan newline\n" +" -e\t\tuse Readline to obtain the line in an interactive shell\n" +" -i text\tUse TEXT as the initial text for Readline\n" +" -n nchars\treturn after reading NCHARS characters rather than waiting\n" +" \t\tfor a newline\n" +" -p prompt\toutput the string PROMPT without a trailing newline before\n" +" \t\tattempting to read\n" +" -r\t\tdo not allow backslashes to escape any characters\n" +" -s\t\tdo not echo input coming from a terminal\n" +" -t timeout\ttime out and return failure if a complete line of input " +"is\n" +" \t\tnot read withint TIMEOUT seconds. The value of the TMOUT\n" +" \t\tvariable is the default timeout. TIMEOUT may be a\n" +" \t\tfractional number. If TIMEOUT is 0, read returns success only\n" +" \t\tif input is available on the specified file descriptor. The\n" +" \t\texit status is greater than 128 if the timeout is exceeded\n" +" -u fd\t\tread from file descriptor FD instead of the standard input\n" +" \n" +" Exit Status:\n" +" The return code is zero, unless end-of-file is encountered, read times " +"out,\n" +" or an invalid file descriptor is supplied as the argument to -u." msgstr "" -#: builtins.c:756 +#: builtins.c:1002 msgid "" -" Causes a function to exit with the return value specified by N. If N\n" -" is omitted, the return status is that of the last command." +"Return from a shell function.\n" +" \n" +" Causes a function or sourced script to exit with the return value\n" +" specified by N. If N is omitted, the return status is that of the\n" +" last command executed within the function or script.\n" +" \n" +" Exit Status:\n" +" Returns N, or failure if the shell is not executing a function or script." msgstr "" -#: builtins.c:763 +#: builtins.c:1015 msgid "" -" -a Mark variables which are modified or created for export.\n" -" -b Notify of job termination immediately.\n" -" -e Exit immediately if a command exits with a non-zero status.\n" -" -f Disable file name generation (globbing).\n" -" -h Remember the location of commands as they are looked up.\n" -" -k All assignment arguments are placed in the environment for a\n" -" command, not just those that precede the command name.\n" -" -m Job control is enabled.\n" -" -n Read commands but do not execute them.\n" -" -o option-name\n" -" Set the variable corresponding to option-name:\n" -" allexport same as -a\n" -" braceexpand same as -B\n" -" emacs use an emacs-style line editing interface\n" -" errexit same as -e\n" -" errtrace same as -E\n" -" functrace same as -T\n" -" hashall same as -h\n" -" histexpand same as -H\n" -" history enable command history\n" -" ignoreeof the shell will not exit upon reading EOF\n" -" interactive-comments\n" -" allow comments to appear in interactive commands\n" -" keyword same as -k\n" -" monitor same as -m\n" -" noclobber same as -C\n" -" noexec same as -n\n" -" noglob same as -f\n" -" nolog currently accepted but ignored\n" -" notify same as -b\n" -" nounset same as -u\n" -" onecmd same as -t\n" -" physical same as -P\n" -" pipefail the return value of a pipeline is the status of\n" -" the last command to exit with a non-zero status,\n" -" or zero if no command exited with a non-zero status\n" -" posix change the behavior of bash where the default\n" -" operation differs from the 1003.2 standard to\n" -" match the standard\n" -" privileged same as -p\n" -" verbose same as -v\n" -" vi use a vi-style line editing interface\n" -" xtrace same as -x\n" -" -p Turned on whenever the real and effective user ids do not match.\n" -" Disables processing of the $ENV file and importing of shell\n" -" functions. Turning this option off causes the effective uid and\n" -" gid to be set to the real uid and gid.\n" -" -t Exit after reading and executing one command.\n" -" -u Treat unset variables as an error when substituting.\n" -" -v Print shell input lines as they are read.\n" -" -x Print commands and their arguments as they are executed.\n" -" -B the shell will perform brace expansion\n" -" -C If set, disallow existing regular files to be overwritten\n" -" by redirection of output.\n" -" -E If set, the ERR trap is inherited by shell functions.\n" -" -H Enable ! style history substitution. This flag is on\n" -" by default when the shell is interactive.\n" -" -P If set, do not follow symbolic links when executing commands\n" -" such as cd which change the current directory.\n" -" -T If set, the DEBUG trap is inherited by shell functions.\n" -" - Assign any remaining arguments to the positional parameters.\n" -" The -x and -v options are turned off.\n" +"Set or unset values of shell options and positional parameters.\n" +" \n" +" Change the value of shell attributes and positional parameters, or\n" +" display the names and values of shell variables.\n" +" \n" +" Options:\n" +" -a Mark variables which are modified or created for export.\n" +" -b Notify of job termination immediately.\n" +" -e Exit immediately if a command exits with a non-zero status.\n" +" -f Disable file name generation (globbing).\n" +" -h Remember the location of commands as they are looked up.\n" +" -k All assignment arguments are placed in the environment for a\n" +" command, not just those that precede the command name.\n" +" -m Job control is enabled.\n" +" -n Read commands but do not execute them.\n" +" -o option-name\n" +" Set the variable corresponding to option-name:\n" +" allexport same as -a\n" +" braceexpand same as -B\n" +" emacs use an emacs-style line editing interface\n" +" errexit same as -e\n" +" errtrace same as -E\n" +" functrace same as -T\n" +" hashall same as -h\n" +" histexpand same as -H\n" +" history enable command history\n" +" ignoreeof the shell will not exit upon reading EOF\n" +" interactive-comments\n" +" allow comments to appear in interactive commands\n" +" keyword same as -k\n" +" monitor same as -m\n" +" noclobber same as -C\n" +" noexec same as -n\n" +" noglob same as -f\n" +" nolog currently accepted but ignored\n" +" notify same as -b\n" +" nounset same as -u\n" +" onecmd same as -t\n" +" physical same as -P\n" +" pipefail the return value of a pipeline is the status of\n" +" the last command to exit with a non-zero status,\n" +" or zero if no command exited with a non-zero " +"status\n" +" posix change the behavior of bash where the default\n" +" operation differs from the Posix standard to\n" +" match the standard\n" +" privileged same as -p\n" +" verbose same as -v\n" +" vi use a vi-style line editing interface\n" +" xtrace same as -x\n" +" -p Turned on whenever the real and effective user ids do not match.\n" +" Disables processing of the $ENV file and importing of shell\n" +" functions. Turning this option off causes the effective uid and\n" +" gid to be set to the real uid and gid.\n" +" -t Exit after reading and executing one command.\n" +" -u Treat unset variables as an error when substituting.\n" +" -v Print shell input lines as they are read.\n" +" -x Print commands and their arguments as they are executed.\n" +" -B the shell will perform brace expansion\n" +" -C If set, disallow existing regular files to be overwritten\n" +" by redirection of output.\n" +" -E If set, the ERR trap is inherited by shell functions.\n" +" -H Enable ! style history substitution. This flag is on\n" +" by default when the shell is interactive.\n" +" -P If set, do not follow symbolic links when executing commands\n" +" such as cd which change the current directory.\n" +" -T If set, the DEBUG trap is inherited by shell functions.\n" +" - Assign any remaining arguments to the positional parameters.\n" +" The -x and -v options are turned off.\n" " \n" " Using + rather than - causes these flags to be turned off. The\n" " flags can also be used upon invocation of the shell. The current\n" " set of flags may be found in $-. The remaining n ARGs are positional\n" " parameters and are assigned, in order, to $1, $2, .. $n. If no\n" -" ARGs are given, all shell variables are printed." +" ARGs are given, all shell variables are printed.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given." msgstr "" -#: builtins.c:836 +#: builtins.c:1097 msgid "" -" For each NAME, remove the corresponding variable or function. Given\n" -" the `-v', unset will only act on variables. Given the `-f' flag,\n" -" unset will only act on functions. With neither flag, unset first\n" -" tries to unset a variable, and if that fails, then tries to unset a\n" -" function. Some variables cannot be unset; also see readonly." +"Unset values and attributes of shell variables and functions.\n" +" \n" +" For each NAME, remove the corresponding variable or function.\n" +" \n" +" Options:\n" +" -f\ttreat each NAME as a shell function\n" +" -v\ttreat each NAME as a shell variable\n" +" \n" +" Without options, unset first tries to unset a variable, and if that " +"fails,\n" +" tries to unset a function.\n" +" \n" +" Some variables cannot be unset; also see `readonly'.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or a NAME is read-only." msgstr "" -#: builtins.c:846 +#: builtins.c:1117 msgid "" -" NAMEs are marked for automatic export to the environment of\n" -" subsequently executed commands. If the -f option is given,\n" -" the NAMEs refer to functions. If no NAMEs are given, or if `-p'\n" -" is given, a list of all names that are exported in this shell is\n" -" printed. An argument of `-n' says to remove the export property\n" -" from subsequent NAMEs. An argument of `--' disables further option\n" -" processing." +"Set export attribute for shell variables.\n" +" \n" +" Marks each NAME for automatic export to the environment of subsequently\n" +" executed commands. If VALUE is supplied, assign VALUE before " +"exporting.\n" +" \n" +" Options:\n" +" -f\trefer to shell functions\n" +" -n\tremove the export property from each NAME\n" +" -p\tdisplay a list of all exported variables and functions\n" +" \n" +" An argument of `--' disables further option processing.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or NAME is invalid." msgstr "" -#: builtins.c:858 +#: builtins.c:1136 msgid "" -" The given NAMEs are marked readonly and the values of these NAMEs may\n" -" not be changed by subsequent assignment. If the -f option is given,\n" -" then functions corresponding to the NAMEs are so marked. If no\n" -" arguments are given, or if `-p' is given, a list of all readonly names\n" -" is printed. The `-a' option means to treat each NAME as\n" -" an array variable. An argument of `--' disables further option\n" -" processing." +"Mark shell variables as unchangeable.\n" +" \n" +" Mark each NAME as read-only; the values of these NAMEs may not be\n" +" changed by subsequent assignment. If VALUE is supplied, assign VALUE\n" +" before marking as read-only.\n" +" \n" +" Options:\n" +" -a\trefer to indexed array variables\n" +" -A\trefer to associative array variables\n" +" -f\trefer to shell functions\n" +" -p\tdisplay a list of all readonly variables and functions\n" +" \n" +" An argument of `--' disables further option processing.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or NAME is invalid." msgstr "" -#: builtins.c:870 +#: builtins.c:1157 msgid "" -" The positional parameters from $N+1 ... are renamed to $1 ... If N is\n" -" not given, it is assumed to be 1." +"Shift positional parameters.\n" +" \n" +" Rename the positional parameters $N+1,$N+2 ... to $1,$2 ... If N is\n" +" not given, it is assumed to be 1.\n" +" \n" +" Exit Status:\n" +" Returns success unless N is negative or greater than $#." msgstr "" -#: builtins.c:877 -#: builtins.c:886 +#: builtins.c:1169 builtins.c:1184 msgid "" -" Read and execute commands from FILENAME and return. The pathnames\n" -" in $PATH are used to find the directory containing FILENAME. If any\n" -" ARGUMENTS are supplied, they become the positional parameters when\n" -" FILENAME is executed." +"Execute commands from a file in the current shell.\n" +" \n" +" Read and execute commands from FILENAME in the current shell. The\n" +" entries in $PATH are used to find the directory containing FILENAME.\n" +" If any ARGUMENTS are supplied, they become the positional parameters\n" +" when FILENAME is executed.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed in FILENAME; fails if\n" +" FILENAME cannot be read." msgstr "" -#: builtins.c:896 +#: builtins.c:1200 msgid "" -" Suspend the execution of this shell until it receives a SIGCONT\n" -" signal. The `-f' if specified says not to complain about this\n" -" being a login shell if it is; just suspend anyway." +"Suspend shell execution.\n" +" \n" +" Suspend the execution of this shell until it receives a SIGCONT signal.\n" +" Unless forced, login shells cannot be suspended.\n" +" \n" +" Options:\n" +" -f\tforce the suspend, even if the shell is a login shell\n" +" \n" +" Exit Status:\n" +" Returns success unless job control is not enabled or an error occurs." msgstr "" -#: builtins.c:905 +#: builtins.c:1216 msgid "" -" Exits with a status of 0 (true) or 1 (false) depending on\n" +"Evaluate conditional expression.\n" +" \n" +" Exits with a status of 0 (true) or 1 (false) depending on\n" " the evaluation of EXPR. Expressions may be unary or binary. Unary\n" " expressions are often used to examine the status of a file. There\n" " are string operators as well, and numeric comparison operators.\n" " \n" " File operators:\n" " \n" -" -a FILE True if file exists.\n" -" -b FILE True if file is block special.\n" -" -c FILE True if file is character special.\n" -" -d FILE True if file is a directory.\n" -" -e FILE True if file exists.\n" -" -f FILE True if file exists and is a regular file.\n" -" -g FILE True if file is set-group-id.\n" -" -h FILE True if file is a symbolic link.\n" -" -L FILE True if file is a symbolic link.\n" -" -k FILE True if file has its `sticky' bit set.\n" -" -p FILE True if file is a named pipe.\n" -" -r FILE True if file is readable by you.\n" -" -s FILE True if file exists and is not empty.\n" -" -S FILE True if file is a socket.\n" -" -t FD True if FD is opened on a terminal.\n" -" -u FILE True if the file is set-user-id.\n" -" -w FILE True if the file is writable by you.\n" -" -x FILE True if the file is executable by you.\n" -" -O FILE True if the file is effectively owned by you.\n" -" -G FILE True if the file is effectively owned by your group.\n" -" -N FILE True if the file has been modified since it was last read.\n" +" -a FILE True if file exists.\n" +" -b FILE True if file is block special.\n" +" -c FILE True if file is character special.\n" +" -d FILE True if file is a directory.\n" +" -e FILE True if file exists.\n" +" -f FILE True if file exists and is a regular file.\n" +" -g FILE True if file is set-group-id.\n" +" -h FILE True if file is a symbolic link.\n" +" -L FILE True if file is a symbolic link.\n" +" -k FILE True if file has its `sticky' bit set.\n" +" -p FILE True if file is a named pipe.\n" +" -r FILE True if file is readable by you.\n" +" -s FILE True if file exists and is not empty.\n" +" -S FILE True if file is a socket.\n" +" -t FD True if FD is opened on a terminal.\n" +" -u FILE True if the file is set-user-id.\n" +" -w FILE True if the file is writable by you.\n" +" -x FILE True if the file is executable by you.\n" +" -O FILE True if the file is effectively owned by you.\n" +" -G FILE True if the file is effectively owned by your group.\n" +" -N FILE True if the file has been modified since it was last " +"read.\n" " \n" " FILE1 -nt FILE2 True if file1 is newer than file2 (according to\n" " modification date).\n" @@ -2132,175 +3098,254 @@ msgid "" " \n" " String operators:\n" " \n" -" -z STRING True if string is empty.\n" +" -z STRING True if string is empty.\n" " \n" -" -n STRING\n" -" STRING True if string is not empty.\n" +" -n STRING\n" +" STRING True if string is not empty.\n" " \n" -" STRING1 = STRING2\n" -" True if the strings are equal.\n" -" STRING1 != STRING2\n" -" True if the strings are not equal.\n" -" STRING1 < STRING2\n" -" True if STRING1 sorts before STRING2 lexicographically.\n" -" STRING1 > STRING2\n" -" True if STRING1 sorts after STRING2 lexicographically.\n" +" STRING1 = STRING2\n" +" True if the strings are equal.\n" +" STRING1 != STRING2\n" +" True if the strings are not equal.\n" +" STRING1 < STRING2\n" +" True if STRING1 sorts before STRING2 " +"lexicographically.\n" +" STRING1 > STRING2\n" +" True if STRING1 sorts after STRING2 lexicographically.\n" " \n" " Other operators:\n" " \n" -" -o OPTION True if the shell option OPTION is enabled.\n" -" ! EXPR True if expr is false.\n" -" EXPR1 -a EXPR2 True if both expr1 AND expr2 are true.\n" -" EXPR1 -o EXPR2 True if either expr1 OR expr2 is true.\n" +" -o OPTION True if the shell option OPTION is enabled.\n" +" ! EXPR True if expr is false.\n" +" EXPR1 -a EXPR2 True if both expr1 AND expr2 are true.\n" +" EXPR1 -o EXPR2 True if either expr1 OR expr2 is true.\n" " \n" -" arg1 OP arg2 Arithmetic tests. OP is one of -eq, -ne,\n" -" -lt, -le, -gt, or -ge.\n" +" arg1 OP arg2 Arithmetic tests. OP is one of -eq, -ne,\n" +" -lt, -le, -gt, or -ge.\n" " \n" " Arithmetic binary operators return true if ARG1 is equal, not-equal,\n" " less-than, less-than-or-equal, greater-than, or greater-than-or-equal\n" -" than ARG2." +" than ARG2.\n" +" \n" +" Exit Status:\n" +" Returns success if EXPR evaluates to true; fails if EXPR evaluates to\n" +" false or an invalid argument is given." msgstr "" -#: builtins.c:975 +#: builtins.c:1292 msgid "" -" This is a synonym for the \"test\" builtin, but the last\n" -" argument must be a literal `]', to match the opening `['." +"Evaluate conditional expression.\n" +" \n" +" This is a synonym for the \"test\" builtin, but the last argument must\n" +" be a literal `]', to match the opening `['." msgstr "" -#: builtins.c:982 +#: builtins.c:1301 msgid "" -" Print the accumulated user and system times for processes run from\n" -" the shell." +"Display process times.\n" +" \n" +" Prints the accumulated user and system times for the shell and all of " +"its\n" +" child processes.\n" +" \n" +" Exit Status:\n" +" Always succeeds." msgstr "" -#: builtins.c:989 +#: builtins.c:1313 msgid "" -" The command ARG is to be read and executed when the shell receives\n" +"Trap signals and other events.\n" +" \n" +" Defines and activates handlers to be run when the shell receives " +"signals\n" +" or other conditions.\n" +" \n" +" ARG is a command to be read and executed when the shell receives the\n" " signal(s) SIGNAL_SPEC. If ARG is absent (and a single SIGNAL_SPEC\n" " is supplied) or `-', each specified signal is reset to its original\n" " value. If ARG is the null string each SIGNAL_SPEC is ignored by the\n" -" shell and by the commands it invokes. If a SIGNAL_SPEC is EXIT (0)\n" -" the command ARG is executed on exit from the shell. If a SIGNAL_SPEC\n" -" is DEBUG, ARG is executed after every simple command. If the`-p' option\n" -" is supplied then the trap commands associated with each SIGNAL_SPEC are\n" -" displayed. If no arguments are supplied or if only `-p' is given, trap\n" -" prints the list of commands associated with each signal. Each SIGNAL_SPEC\n" -" is either a signal name in or a signal number. Signal names\n" -" are case insensitive and the SIG prefix is optional. `trap -l' prints\n" -" a list of signal names and their corresponding numbers. Note that a\n" -" signal can be sent to the shell with \"kill -signal $$\"." +" shell and by the commands it invokes.\n" +" \n" +" If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell. " +"If\n" +" a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command.\n" +" \n" +" If no arguments are supplied, trap prints the list of commands " +"associated\n" +" with each signal.\n" +" \n" +" Options:\n" +" -l\tprint a list of signal names and their corresponding numbers\n" +" -p\tdisplay the trap commands associated with each SIGNAL_SPEC\n" +" \n" +" Each SIGNAL_SPEC is either a signal name in or a signal " +"number.\n" +" Signal names are case insensitive and the SIG prefix is optional. A\n" +" signal may be sent to the shell with \"kill -signal $$\".\n" +" \n" +" Exit Status:\n" +" Returns success unless a SIGSPEC is invalid or an invalid option is " +"given." msgstr "" -#: builtins.c:1008 +#: builtins.c:1345 msgid "" -" For each NAME, indicate how it would be interpreted if used as a\n" -" command name.\n" -" \n" -" If the -t option is used, `type' outputs a single word which is one of\n" -" `alias', `keyword', `function', `builtin', `file' or `', if NAME is an\n" -" alias, shell reserved word, shell function, shell builtin, disk file,\n" -" or unfound, respectively.\n" +"Display information about command type.\n" " \n" -" If the -p flag is used, `type' either returns the name of the disk\n" -" file that would be executed, or nothing if `type -t NAME' would not\n" -" return `file'.\n" +" For each NAME, indicate how it would be interpreted if used as a\n" +" command name.\n" " \n" -" If the -a flag is used, `type' displays all of the places that contain\n" -" an executable named `file'. This includes aliases, builtins, and\n" -" functions, if and only if the -p flag is not also used.\n" +" Options:\n" +" -a\tdisplay all locations containing an executable named NAME;\n" +" \tincludes aliases, builtins, and functions, if and only if\n" +" \tthe `-p' option is not also used\n" +" -f\tsuppress shell function lookup\n" +" -P\tforce a PATH search for each NAME, even if it is an alias,\n" +" \tbuiltin, or function, and returns the name of the disk file\n" +" \tthat would be executed\n" +" -p\treturns either the name of the disk file that would be executed,\n" +" \tor nothing if `type -t NAME' would not return `file'.\n" +" -t\toutput a single word which is one of `alias', `keyword',\n" +" \t`function', `builtin', `file' or `', if NAME is an alias, shell\n" +" \treserved word, shell function, shell builtin, disk file, or not\n" +" \tfound, respectively\n" " \n" -" The -f flag suppresses shell function lookup.\n" +" Arguments:\n" +" NAME\tCommand name to be interpreted.\n" " \n" -" The -P flag forces a PATH search for each NAME, even if it is an alias,\n" -" builtin, or function, and returns the name of the disk file that would\n" -" be executed." +" Exit Status:\n" +" Returns success if all of the NAMEs are found; fails if any are not " +"found." msgstr "" -#: builtins.c:1035 +#: builtins.c:1376 msgid "" -" Ulimit provides control over the resources available to processes\n" -" started by the shell, on systems that allow such control. If an\n" -" option is given, it is interpreted as follows:\n" +"Modify shell resource limits.\n" +" \n" +" Provides control over the resources available to the shell and " +"processes\n" +" it creates, on systems that allow such control.\n" " \n" -" -S\tuse the `soft' resource limit\n" -" -H\tuse the `hard' resource limit\n" -" -a\tall current limits are reported\n" -" -c\tthe maximum size of core files created\n" -" -d\tthe maximum size of a process's data segment\n" -" -f\tthe maximum size of files created by the shell\n" -" -i the maximum number of pending signals\n" -" -l\tthe maximum size a process may lock into memory\n" -" -m\tthe maximum resident set size\n" -" -n\tthe maximum number of open file descriptors\n" -" -p\tthe pipe buffer size\n" -" -q the maximum number of bytes in POSIX message queues\n" -" -s\tthe maximum stack size\n" -" -t\tthe maximum amount of cpu time in seconds\n" -" -u\tthe maximum number of user processes\n" -" -v\tthe size of virtual memory\n" -" -x the maximum number of file locks\n" +" Options:\n" +" -S\tuse the `soft' resource limit\n" +" -H\tuse the `hard' resource limit\n" +" -a\tall current limits are reported\n" +" -b\tthe socket buffer size\n" +" -c\tthe maximum size of core files created\n" +" -d\tthe maximum size of a process's data segment\n" +" -e\tthe maximum scheduling priority (`nice')\n" +" -f\tthe maximum size of files written by the shell and its children\n" +" -i\tthe maximum number of pending signals\n" +" -l\tthe maximum size a process may lock into memory\n" +" -m\tthe maximum resident set size\n" +" -n\tthe maximum number of open file descriptors\n" +" -p\tthe pipe buffer size\n" +" -q\tthe maximum number of bytes in POSIX message queues\n" +" -r\tthe maximum real-time scheduling priority\n" +" -s\tthe maximum stack size\n" +" -t\tthe maximum amount of cpu time in seconds\n" +" -u\tthe maximum number of user processes\n" +" -v\tthe size of virtual memory\n" +" -x\tthe maximum number of file locks\n" " \n" -" If LIMIT is given, it is the new value of the specified resource;\n" -" the special LIMIT values `soft', `hard', and `unlimited' stand for\n" -" the current soft limit, the current hard limit, and no limit, respectively.\n" -" Otherwise, the current value of the specified resource is printed.\n" -" If no option is given, then -f is assumed. Values are in 1024-byte\n" -" increments, except for -t, which is in seconds, -p, which is in\n" -" increments of 512 bytes, and -u, which is an unscaled number of\n" -" processes." +" If LIMIT is given, it is the new value of the specified resource; the\n" +" special LIMIT values `soft', `hard', and `unlimited' stand for the\n" +" current soft limit, the current hard limit, and no limit, respectively.\n" +" Otherwise, the current value of the specified resource is printed. If\n" +" no option is given, then -f is assumed.\n" +" \n" +" Values are in 1024-byte increments, except for -t, which is in seconds,\n" +" -p, which is in increments of 512 bytes, and -u, which is an unscaled\n" +" number of processes.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." msgstr "" -#: builtins.c:1071 +#: builtins.c:1421 msgid "" -" The user file-creation mask is set to MODE. If MODE is omitted, or if\n" -" `-S' is supplied, the current value of the mask is printed. The `-S'\n" -" option makes the output symbolic; otherwise an octal number is output.\n" -" If `-p' is supplied, and MODE is omitted, the output is in a form\n" -" that may be used as input. If MODE begins with a digit, it is\n" -" interpreted as an octal number, otherwise it is a symbolic mode string\n" -" like that accepted by chmod(1)." +"Display or set file mode mask.\n" +" \n" +" Sets the user file-creation mask to MODE. If MODE is omitted, prints\n" +" the current value of the mask.\n" +" \n" +" If MODE begins with a digit, it is interpreted as an octal number;\n" +" otherwise it is a symbolic mode string like that accepted by chmod(1).\n" +" \n" +" Options:\n" +" -p\tif MODE is omitted, output in a form that may be reused as input\n" +" -S\tmakes the output symbolic; otherwise an octal number is output\n" +" \n" +" Exit Status:\n" +" Returns success unless MODE is invalid or an invalid option is given." msgstr "" -#: builtins.c:1084 +#: builtins.c:1441 msgid "" -" Wait for the specified process and report its termination status. If\n" -" N is not given, all currently active child processes are waited for,\n" -" and the return code is zero. N may be a process ID or a job\n" -" specification; if a job spec is given, all processes in the job's\n" -" pipeline are waited for." +"Wait for job completion and return exit status.\n" +" \n" +" Waits for the process identified by ID, which may be a process ID or a\n" +" job specification, and reports its termination status. If ID is not\n" +" given, waits for all currently active child processes, and the return\n" +" status is zero. If ID is a a job specification, waits for all " +"processes\n" +" in the job's pipeline.\n" +" \n" +" Exit Status:\n" +" Returns the status of ID; fails if ID is invalid or an invalid option " +"is\n" +" given." msgstr "" -#: builtins.c:1096 +#: builtins.c:1459 msgid "" -" Wait for the specified process and report its termination status. If\n" -" N is not given, all currently active child processes are waited for,\n" -" and the return code is zero. N is a process ID; if it is not given,\n" -" all child processes of the shell are waited for." +"Wait for process completion and return exit status.\n" +" \n" +" Waits for the specified process and reports its termination status. If\n" +" PID is not given, all currently active child processes are waited for,\n" +" and the return code is zero. PID must be a process ID.\n" +" \n" +" Exit Status:\n" +" Returns the status of ID; fails if ID is invalid or an invalid option " +"is\n" +" given." msgstr "" -#: builtins.c:1106 +#: builtins.c:1474 msgid "" -" The `for' loop executes a sequence of commands for each member in a\n" +"Execute commands for each member in a list.\n" +" \n" +" The `for' loop executes a sequence of commands for each member in a\n" " list of items. If `in WORDS ...;' is not present, then `in \"$@\"' is\n" " assumed. For each element in WORDS, NAME is set to that element, and\n" -" the COMMANDS are executed." +" the COMMANDS are executed.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." msgstr "" -#: builtins.c:1115 +#: builtins.c:1488 msgid "" -" Equivalent to\n" +"Arithmetic for loop.\n" +" \n" +" Equivalent to\n" " \t(( EXP1 ))\n" " \twhile (( EXP2 )); do\n" " \t\tCOMMANDS\n" " \t\t(( EXP3 ))\n" " \tdone\n" " EXP1, EXP2, and EXP3 are arithmetic expressions. If any expression is\n" -" omitted, it behaves as if it evaluates to 1." +" omitted, it behaves as if it evaluates to 1.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." msgstr "" -#: builtins.c:1128 +#: builtins.c:1506 msgid "" -" The WORDS are expanded, generating a list of words. The\n" +"Select words from a list and execute commands.\n" +" \n" +" The WORDS are expanded, generating a list of words. The\n" " set of expanded words is printed on the standard error, each\n" " preceded by a number. If `in WORDS' is not present, `in \"$@\"'\n" " is assumed. The PS3 prompt is then displayed and a line read\n" @@ -2310,107 +3355,177 @@ msgid "" " redisplayed. If EOF is read, the command completes. Any other\n" " value read causes NAME to be set to null. The line read is saved\n" " in the variable REPLY. COMMANDS are executed after each selection\n" -" until a break command is executed." +" until a break command is executed.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." msgstr "" -#: builtins.c:1144 +#: builtins.c:1527 msgid "" -" Execute PIPELINE and print a summary of the real time, user CPU time,\n" +"Report time consumed by pipeline's execution.\n" +" \n" +" Execute PIPELINE and print a summary of the real time, user CPU time,\n" " and system CPU time spent executing PIPELINE when it terminates.\n" -" The return status is the return status of PIPELINE. The `-p' option\n" -" prints the timing summary in a slightly different format. This uses\n" -" the value of the TIMEFORMAT variable as the output format." +" \n" +" Options:\n" +" -p\tprint the timing summary in the portable Posix format\n" +" \n" +" The value of the TIMEFORMAT variable is used as the output format.\n" +" \n" +" Exit Status:\n" +" The return status is the return status of PIPELINE." msgstr "" -#: builtins.c:1154 +#: builtins.c:1544 msgid "" -" Selectively execute COMMANDS based upon WORD matching PATTERN. The\n" -" `|' is used to separate multiple patterns." +"Execute commands based on pattern matching.\n" +" \n" +" Selectively execute COMMANDS based upon WORD matching PATTERN. The\n" +" `|' is used to separate multiple patterns.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." msgstr "" -#: builtins.c:1161 +#: builtins.c:1556 msgid "" -" The `if COMMANDS' list is executed. If its exit status is zero, then the\n" -" `then COMMANDS' list is executed. Otherwise, each `elif COMMANDS' list is\n" +"Execute commands based on conditional.\n" +" \n" +" The `if COMMANDS' list is executed. If its exit status is zero, then " +"the\n" +" `then COMMANDS' list is executed. Otherwise, each `elif COMMANDS' list " +"is\n" " executed in turn, and if its exit status is zero, the corresponding\n" -" `then COMMANDS' list is executed and the if command completes. Otherwise,\n" -" the `else COMMANDS' list is executed, if present. The exit status of the\n" -" entire construct is the exit status of the last command executed, or zero\n" -" if no condition tested true." +" `then COMMANDS' list is executed and the if command completes. " +"Otherwise,\n" +" the `else COMMANDS' list is executed, if present. The exit status of " +"the\n" +" entire construct is the exit status of the last command executed, or " +"zero\n" +" if no condition tested true.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." msgstr "" -#: builtins.c:1173 +#: builtins.c:1573 msgid "" -" Expand and execute COMMANDS as long as the final command in the\n" -" `while' COMMANDS has an exit status of zero." +"Execute commands as long as a test succeeds.\n" +" \n" +" Expand and execute COMMANDS as long as the final command in the\n" +" `while' COMMANDS has an exit status of zero.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." msgstr "" -#: builtins.c:1180 +#: builtins.c:1585 msgid "" -" Expand and execute COMMANDS as long as the final command in the\n" -" `until' COMMANDS has an exit status which is not zero." +"Execute commands as long as a test does not succeed.\n" +" \n" +" Expand and execute COMMANDS as long as the final command in the\n" +" `until' COMMANDS has an exit status which is not zero.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." msgstr "" -#: builtins.c:1187 +#: builtins.c:1597 msgid "" -" Create a simple command invoked by NAME which runs COMMANDS.\n" -" Arguments on the command line along with NAME are passed to the\n" -" function as $0 .. $n." +"Define shell function.\n" +" \n" +" Create a shell function named NAME. When invoked as a simple command,\n" +" NAME runs COMMANDs in the calling shell's context. When NAME is " +"invoked,\n" +" the arguments are passed to the function as $1...$n, and the function's\n" +" name is in $FUNCNAME.\n" +" \n" +" Exit Status:\n" +" Returns success unless NAME is readonly." msgstr "" -#: builtins.c:1195 +#: builtins.c:1611 msgid "" -" Run a set of commands in a group. This is one way to redirect an\n" -" entire set of commands." +"Group commands as a unit.\n" +" \n" +" Run a set of commands in a group. This is one way to redirect an\n" +" entire set of commands.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." msgstr "" -#: builtins.c:1202 +#: builtins.c:1623 msgid "" -" Equivalent to the JOB_SPEC argument to the `fg' command. Resume a\n" +"Resume job in foreground.\n" +" \n" +" Equivalent to the JOB_SPEC argument to the `fg' command. Resume a\n" " stopped or background job. JOB_SPEC can specify either a job name\n" " or a job number. Following JOB_SPEC with a `&' places the job in\n" " the background, as if the job specification had been supplied as an\n" -" argument to `bg'." +" argument to `bg'.\n" +" \n" +" Exit Status:\n" +" Returns the status of the resumed job." msgstr "" -#: builtins.c:1212 +#: builtins.c:1638 msgid "" -" The EXPRESSION is evaluated according to the rules for arithmetic\n" -" evaluation. Equivalent to \"let EXPRESSION\"." +"Evaluate arithmetic expression.\n" +" \n" +" The EXPRESSION is evaluated according to the rules for arithmetic\n" +" evaluation. Equivalent to \"let EXPRESSION\".\n" +" \n" +" Exit Status:\n" +" Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise." msgstr "" -#: builtins.c:1219 +#: builtins.c:1650 msgid "" -" Returns a status of 0 or 1 depending on the evaluation of the conditional\n" -" expression EXPRESSION. Expressions are composed of the same primaries used\n" -" by the `test' builtin, and may be combined using the following operators\n" +"Execute conditional command.\n" " \n" -" \t( EXPRESSION )\tReturns the value of EXPRESSION\n" -" \t! EXPRESSION\tTrue if EXPRESSION is false; else false\n" -" \tEXPR1 && EXPR2\tTrue if both EXPR1 and EXPR2 are true; else false\n" -" \tEXPR1 || EXPR2\tTrue if either EXPR1 or EXPR2 is true; else false\n" +" Returns a status of 0 or 1 depending on the evaluation of the " +"conditional\n" +" expression EXPRESSION. Expressions are composed of the same primaries " +"used\n" +" by the `test' builtin, and may be combined using the following " +"operators:\n" " \n" -" When the `==' and `!=' operators are used, the string to the right of the\n" -" operator is used as a pattern and pattern matching is performed. The\n" -" && and || operators do not evaluate EXPR2 if EXPR1 is sufficient to\n" -" determine the expression's value." +" ( EXPRESSION )\tReturns the value of EXPRESSION\n" +" ! EXPRESSION\t\tTrue if EXPRESSION is false; else false\n" +" EXPR1 && EXPR2\tTrue if both EXPR1 and EXPR2 are true; else false\n" +" EXPR1 || EXPR2\tTrue if either EXPR1 or EXPR2 is true; else false\n" +" \n" +" When the `==' and `!=' operators are used, the string to the right of\n" +" the operator is used as a pattern and pattern matching is performed.\n" +" When the `=~' operator is used, the string to the right of the operator\n" +" is matched as a regular expression.\n" +" \n" +" The && and || operators do not evaluate EXPR2 if EXPR1 is sufficient to\n" +" determine the expression's value.\n" +" \n" +" Exit Status:\n" +" 0 or 1 depending on value of EXPRESSION." msgstr "" -#: builtins.c:1237 +#: builtins.c:1676 msgid "" -" BASH_VERSION Version information for this Bash.\n" -" CDPATH A colon-separated list of directories to search\n" -" \t\tfor directries given as arguments to `cd'.\n" +"Common shell variable names and usage.\n" +" \n" +" BASH_VERSION\tVersion information for this Bash.\n" +" CDPATH\tA colon-separated list of directories to search\n" +" \t\tfor directories given as arguments to `cd'.\n" " GLOBIGNORE\tA colon-separated list of patterns describing filenames to\n" " \t\tbe ignored by pathname expansion.\n" -" HISTFILE The name of the file where your command history is stored.\n" -" HISTFILESIZE The maximum number of lines this file can contain.\n" -" HISTSIZE The maximum number of history lines that a running\n" +" HISTFILE\tThe name of the file where your command history is stored.\n" +" HISTFILESIZE\tThe maximum number of lines this file can contain.\n" +" HISTSIZE\tThe maximum number of history lines that a running\n" " \t\tshell can access.\n" -" HOME The complete pathname to your login directory.\n" +" HOME\tThe complete pathname to your login directory.\n" " HOSTNAME\tThe name of the current host.\n" -" HOSTTYPE The type of CPU this version of Bash is running under.\n" -" IGNOREEOF Controls the action of the shell on receipt of an EOF\n" +" HOSTTYPE\tThe type of CPU this version of Bash is running under.\n" +" IGNOREEOF\tControls the action of the shell on receipt of an EOF\n" " \t\tcharacter as the sole input. If set, then the value\n" " \t\tof it is the number of EOF characters that can be seen\n" " \t\tin a row on an empty line before the shell will exit\n" @@ -2419,19 +3534,19 @@ msgid "" " MAILCHECK\tHow often, in seconds, Bash checks for new mail.\n" " MAILPATH\tA colon-separated list of filenames which Bash checks\n" " \t\tfor new mail.\n" -" OSTYPE\t\tThe version of Unix this version of Bash is running on.\n" -" PATH A colon-separated list of directories to search when\n" +" OSTYPE\tThe version of Unix this version of Bash is running on.\n" +" PATH\tA colon-separated list of directories to search when\n" " \t\tlooking for commands.\n" -" PROMPT_COMMAND A command to be executed before the printing of each\n" +" PROMPT_COMMAND\tA command to be executed before the printing of each\n" " \t\tprimary prompt.\n" -" PS1 The primary prompt string.\n" -" PS2 The secondary prompt string.\n" +" PS1\t\tThe primary prompt string.\n" +" PS2\t\tThe secondary prompt string.\n" " PWD\t\tThe full pathname of the current directory.\n" " SHELLOPTS\tA colon-separated list of enabled shell options.\n" -" TERM The name of the current terminal type.\n" +" TERM\tThe name of the current terminal type.\n" " TIMEFORMAT\tThe output format for timing statistics displayed by the\n" " \t\t`time' reserved word.\n" -" auto_resume Non-null means a command word appearing on a line by\n" +" auto_resume\tNon-null means a command word appearing on a line by\n" " \t\titself is first looked for in the list of currently\n" " \t\tstopped jobs. If found there, that job is foregrounded.\n" " \t\tA value of `exact' means that the command word must\n" @@ -2439,7 +3554,7 @@ msgid "" " \t\tvalue of `substring' means that the command word must\n" " \t\tmatch a substring of the job. Any other value means that\n" " \t\tthe command must be a prefix of a stopped job.\n" -" histchars Characters controlling history expansion and quick\n" +" histchars\tCharacters controlling history expansion and quick\n" " \t\tsubstitution. The first character is the history\n" " \t\tsubstitution character, usually `!'. The second is\n" " \t\tthe `quick substitution' character, usually `^'. The\n" @@ -2448,113 +3563,274 @@ msgid "" " \t\tcommands should be saved on the history list.\n" msgstr "" -#: builtins.c:1292 +#: builtins.c:1733 msgid "" -" Adds a directory to the top of the directory stack, or rotates\n" +"Add directories to stack.\n" +" \n" +" Adds a directory to the top of the directory stack, or rotates\n" " the stack, making the new top of the stack the current working\n" " directory. With no arguments, exchanges the top two directories.\n" " \n" -" +N\tRotates the stack so that the Nth directory (counting\n" +" Options:\n" +" -n\tSuppresses the normal change of directory when adding\n" +" \tdirectories to the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRotates the stack so that the Nth directory (counting\n" " \tfrom the left of the list shown by `dirs', starting with\n" " \tzero) is at the top.\n" " \n" -" -N\tRotates the stack so that the Nth directory (counting\n" +" -N\tRotates the stack so that the Nth directory (counting\n" " \tfrom the right of the list shown by `dirs', starting with\n" " \tzero) is at the top.\n" " \n" -" -n\tsuppress the normal change of directory when adding directories\n" -" \tto the stack, so only the stack is manipulated.\n" -" \n" -" dir\tadds DIR to the directory stack at the top, making it the\n" +" dir\tAdds DIR to the directory stack at the top, making it the\n" " \tnew current working directory.\n" " \n" -" You can see the directory stack with the `dirs' command." +" The `dirs' builtin displays the directory stack.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid argument is supplied or the directory\n" +" change fails." msgstr "" -#: builtins.c:1318 +#: builtins.c:1767 msgid "" -" Removes entries from the directory stack. With no arguments,\n" -" removes the top directory from the stack, and cd's to the new\n" -" top directory.\n" +"Remove directories from stack.\n" +" \n" +" Removes entries from the directory stack. With no arguments, removes\n" +" the top directory from the stack, and changes to the new top directory.\n" " \n" -" +N\tremoves the Nth entry counting from the left of the list\n" +" Options:\n" +" -n\tSuppresses the normal change of directory when removing\n" +" \tdirectories from the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRemoves the Nth entry counting from the left of the list\n" " \tshown by `dirs', starting with zero. For example: `popd +0'\n" " \tremoves the first directory, `popd +1' the second.\n" " \n" -" -N\tremoves the Nth entry counting from the right of the list\n" +" -N\tRemoves the Nth entry counting from the right of the list\n" " \tshown by `dirs', starting with zero. For example: `popd -0'\n" " \tremoves the last directory, `popd -1' the next to last.\n" " \n" -" -n\tsuppress the normal change of directory when removing directories\n" -" \tfrom the stack, so only the stack is manipulated.\n" +" The `dirs' builtin displays the directory stack.\n" " \n" -" You can see the directory stack with the `dirs' command." +" Exit Status:\n" +" Returns success unless an invalid argument is supplied or the directory\n" +" change fails." msgstr "" -#: builtins.c:1341 +#: builtins.c:1797 msgid "" -" Display the list of currently remembered directories. Directories\n" +"Display directory stack.\n" +" \n" +" Display the list of currently remembered directories. Directories\n" " find their way onto the list with the `pushd' command; you can get\n" " back up through the list with the `popd' command.\n" " \n" -" The -l flag specifies that `dirs' should not print shorthand versions\n" -" of directories which are relative to your home directory. This means\n" -" that `~/bin' might be displayed as `/homes/bfox/bin'. The -v flag\n" -" causes `dirs' to print the directory stack with one entry per line,\n" -" prepending the directory name with its position in the stack. The -p\n" -" flag does the same thing, but the stack position is not prepended.\n" -" The -c flag clears the directory stack by deleting all of the elements.\n" +" Options:\n" +" -c\tclear the directory stack by deleting all of the elements\n" +" -l\tdo not print tilde-prefixed versions of directories relative\n" +" \tto your home directory\n" +" -p\tprint the directory stack with one entry per line\n" +" -v\tprint the directory stack with one entry per line prefixed\n" +" \twith its position in the stack\n" " \n" -" +N\tdisplays the Nth entry counting from the left of the list shown by\n" +" Arguments:\n" +" +N\tDisplays the Nth entry counting from the left of the list shown " +"by\n" " \tdirs when invoked without options, starting with zero.\n" " \n" -" -N\tdisplays the Nth entry counting from the right of the list shown by\n" -" \tdirs when invoked without options, starting with zero." +" -N\tDisplays the Nth entry counting from the right of the list shown " +"by\n" +" \tdirs when invoked without options, starting with zero.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." msgstr "" -#: builtins.c:1364 +#: builtins.c:1826 msgid "" -" Toggle the values of variables controlling optional behavior.\n" -" The -s flag means to enable (set) each OPTNAME; the -u flag\n" -" unsets each OPTNAME. The -q flag suppresses output; the exit\n" -" status indicates whether each OPTNAME is set or unset. The -o\n" -" option restricts the OPTNAMEs to those defined for use with\n" -" `set -o'. With no options, or with the -p option, a list of all\n" -" settable options is displayed, with an indication of whether or\n" -" not each is set." +"Set and unset shell options.\n" +" \n" +" Change the setting of each shell option OPTNAME. Without any option\n" +" arguments, list all shell options with an indication of whether or not " +"each\n" +" is set.\n" +" \n" +" Options:\n" +" -o\trestrict OPTNAMEs to those defined for use with `set -o'\n" +" -p\tprint each shell option with an indication of its status\n" +" -q\tsuppress output\n" +" -s\tenable (set) each OPTNAME\n" +" -u\tdisable (unset) each OPTNAME\n" +" \n" +" Exit Status:\n" +" Returns success if OPTNAME is enabled; fails if an invalid option is\n" +" given or OPTNAME is disabled." msgstr "" -#: builtins.c:1377 +#: builtins.c:1847 msgid "" -" printf formats and prints ARGUMENTS under control of the FORMAT. FORMAT\n" -" is a character string which contains three types of objects: plain\n" -" characters, which are simply copied to standard output, character escape\n" -" sequences which are converted and copied to the standard output, and\n" -" format specifications, each of which causes printing of the next successive\n" -" argument. In addition to the standard printf(1) formats, %b means to\n" -" expand backslash escape sequences in the corresponding argument, and %q\n" -" means to quote the argument in a way that can be reused as shell input.\n" -" If the -v option is supplied, the output is placed into the value of the\n" -" shell variable VAR rather than being sent to the standard output." +"Formats and prints ARGUMENTS under control of the FORMAT.\n" +" \n" +" Options:\n" +" -v var\tassign the output to shell variable VAR rather than\n" +" \t\tdisplay it on the standard output\n" +" \n" +" FORMAT is a character string which contains three types of objects: " +"plain\n" +" characters, which are simply copied to standard output; character " +"escape\n" +" sequences, which are converted and copied to the standard output; and\n" +" format specifications, each of which causes printing of the next " +"successive\n" +" argument.\n" +" \n" +" In addition to the standard format specifications described in printf" +"(1)\n" +" and printf(3), printf interprets:\n" +" \n" +" %b\texpand backslash escape sequences in the corresponding argument\n" +" %q\tquote the argument in a way that can be reused as shell input\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or a write or " +"assignment\n" +" error occurs." msgstr "" -#: builtins.c:1393 +#: builtins.c:1874 msgid "" -" For each NAME, specify how arguments are to be completed.\n" -" If the -p option is supplied, or if no options are supplied, existing\n" -" completion specifications are printed in a way that allows them to be\n" -" reused as input. The -r option removes a completion specification for\n" -" each NAME, or, if no NAMEs are supplied, all completion specifications." +"Specify how arguments are to be completed by Readline.\n" +" \n" +" For each NAME, specify how arguments are to be completed. If no " +"options\n" +" are supplied, existing completion specifications are printed in a way " +"that\n" +" allows them to be reused as input.\n" +" \n" +" Options:\n" +" -p\tprint existing completion specifications in a reusable format\n" +" -r\tremove a completion specification for each NAME, or, if no\n" +" \tNAMEs are supplied, all completion specifications\n" +" \n" +" When completion is attempted, the actions are applied in the order the\n" +" uppercase-letter options are listed above.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." msgstr "" -#: builtins.c:1405 +#: builtins.c:1897 +#, fuzzy msgid "" -" Display the possible completions depending on the options. Intended\n" -" to be used from within a shell function generating possible completions.\n" -" If the optional WORD argument is supplied, matches against WORD are\n" -" generated." +"Display possible completions depending on the options.\n" +" \n" +" Intended to be used from within a shell function generating possible\n" +" completions. If the optional WORD argument is supplied, matches " +"against\n" +" WORD are generated.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." msgstr "" "ðÏËÁÚÙ×ÁÅÔ ×ÏÚÍÏÖÎÙÅ ÄÏÐÏÌÎÅÎÉÑ × ÚÁ×ÉÓÉÍÏÓÔÉ ÏÐÃÉÊ. ðÒÅÄÐÏÌÁÇÁÅÔÓÑ,\n" -" ÞÔÏ ÂÕÄÅÔ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ ×ÎÕÔÒÉ ÆÕÎËÃÉÊ ËÏÍÁÎÄÎÏÇÏ ÉÎÔÅÒÐÒÅÔÁÔÏÒÁ, ÇÅÎÅÒÉÒÕÀÝÅÊ ×ÏÚÍÏÖÎÙÅ ÄÏÐÏÌÎÅÎÉÑ.\n" -" åÓÌÉ ÎÅÏÂÑÚÁÔÅÌØÎÙÊ ÁÒÇÕÍÅÎÔ óìï÷ï ÂÙÌ ÉÓÐÏÌØÚÏ×ÁÎ, ÔÏ ÂÕÄÕÔ ÓÇÅÎÅÒÉÒÏ×ÁÎÙ ÔÏÌØËÏ ÓÏ×ÐÁÄÅÎÉÑ Ó óìï÷ï." +" ÞÔÏ ÂÕÄÅÔ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ ×ÎÕÔÒÉ ÆÕÎËÃÉÊ ËÏÍÁÎÄÎÏÇÏ ÉÎÔÅÒÐÒÅÔÁÔÏÒÁ, " +"ÇÅÎÅÒÉÒÕÀÝÅÊ ×ÏÚÍÏÖÎÙÅ ÄÏÐÏÌÎÅÎÉÑ.\n" +" åÓÌÉ ÎÅÏÂÑÚÁÔÅÌØÎÙÊ ÁÒÇÕÍÅÎÔ óìï÷ï ÂÙÌ ÉÓÐÏÌØÚÏ×ÁÎ, ÔÏ ÂÕÄÕÔ " +"ÓÇÅÎÅÒÉÒÏ×ÁÎÙ ÔÏÌØËÏ ÓÏ×ÐÁÄÅÎÉÑ Ó óìï÷ï." + +#: builtins.c:1912 +msgid "" +"Modify or display completion options.\n" +" \n" +" Modify the completion options for each NAME, or, if no NAMEs are " +"supplied,\n" +" the completion currently begin executed. If no OPTIONs are givenm, " +"print\n" +" the completion options for each NAME or the current completion " +"specification.\n" +" \n" +" Options:\n" +" \t-o option\tSet completion option OPTION for each NAME\n" +" \n" +" Using `+o' instead of `-o' turns off the specified option.\n" +" \n" +" Arguments:\n" +" \n" +" Each NAME refers to a command for which a completion specification must\n" +" have previously been defined using the `complete' builtin. If no NAMEs\n" +" are supplied, compopt must be called by a function currently generating\n" +" completions, and the options for that currently-executing completion\n" +" generator are modified.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or NAME does not\n" +" have a completion specification defined." +msgstr "" + +#: builtins.c:1940 +msgid "" +"Read lines from a file into an array variable.\n" +" \n" +" Read lines from the standard input into the array variable ARRAY, or " +"from\n" +" file descriptor FD if the -u option is supplied. The variable MAPFILE " +"is\n" +" the default ARRAY.\n" +" \n" +" Options:\n" +" -n count\tCopy at most COUNT lines. If COUNT is 0, all lines are " +"copied.\n" +" -O origin\tBegin assigning to ARRAY at index ORIGIN. The default " +"index is 0.\n" +" -s count \tDiscard the first COUNT lines read.\n" +" -t\t\tRemove a trailing newline from each line read.\n" +" -u fd\t\tRead lines from file descriptor FD instead of the standard " +"input.\n" +" -C callback\tEvaluate CALLBACK each time QUANTUM lines are read.\n" +" -c quantum\tSpecify the number of lines read between each call to " +"CALLBACK.\n" +" \n" +" Arguments:\n" +" ARRAY\t\tArray variable name to use for file data.\n" +" \n" +" If -C is supplied without -c, the default quantum is 5000.\n" +" \n" +" If not supplied with an explicit origin, mapfile will clear ARRAY " +"before\n" +" assigning to it.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or ARRAY is readonly." +msgstr "" + +#~ msgid "Without EXPR, returns returns \"$line $filename\". With EXPR," +#~ msgstr "âÅÚ ÷ùòáö ×ÏÚ×ÒÁÝÁÅÔ \"$ÓÔÒÏËÁ $ÉÍÑÆÁÊÌÁ\". ó ÷ùòáö," + +#~ msgid "returns \"$line $subroutine $filename\"; this extra information" +#~ msgstr "" +#~ "÷ÏÚ×ÒÁÝÁÅÔ \"$ÓÔÒÏËÁ $ÐÒÏÃÅÄÕÒÁ $ÉÍÑÆÁÊÌÁ\"; ÜÔÁ ÄÏÐÏÌÎÉÔÅÌØÎÁÑ " +#~ "ÉÎÆÏÒÍÁÃÉÑ " + +#~ msgid "can be used used to provide a stack trace." +#~ msgstr "ÍÏÖÅÔ ÂÙÔØ ÉÓÐÏÌØÚÏ×ÁÎÁ ÄÌÑ ÓÏÚÄÁÎÉÑ `stack trace'" + +#~ msgid "bug: unknown operation" +#~ msgstr "ÏÛÉÂËÁ: ÎÅÉÚ×ÅÓÔÎÁÑ ÏÐÅÒÁÃÉÑ" + +#, fuzzy +#~ msgid "Return a successful result." +#~ msgstr "÷ÏÚ×ÒÁÝÁÅÔ ÒÅÚÕÌØÔÁÔ: ×ÓÅ ÈÏÒÏÛÏ." + +#, fuzzy +#~ msgid "Obsolete. See `declare'." +#~ msgstr " ÷ÙÛÅÌ ÉÚ ÕÐÏÔÒÅÂÌÅÎÉÑ. óÍ. `declare'." +#, fuzzy +#~ msgid "Logout of a login shell." +#~ msgstr "" +#~ "úÁ×ÅÒÛÅÎÉÑ ÓÅÁÎÓÁ ËÏÍÁÎÄÎÏÇÏ ÉÎÔÅÒÐÒÅÔÁÔÏÒÁ ÚÁÐÕÝÅÎÎÏÇÏ ÐÏÓÌÅ ×ÈÏÄÁ × " +#~ "ÓÉÓÔÅÍÕ." diff --git a/po/sk.gmo b/po/sk.gmo new file mode 100644 index 0000000000000000000000000000000000000000..228e3f9c54cdefadb5c4aaf66fff3ee560d57403 GIT binary patch literal 49408 zc-qB%3t(Jlb>>xROKcu3w7g17F4;JiVvQ^(0gN0c`2C12Iks%aRut*Z%$4SPX6~KL zojdZ#DI`3TWkVA3AP@*BiPJd52_Yd56Fb=|rdwdU%eD)|NlLF>$Sglr$zrxby?PLQu)ePTh{(xu&jT0vnBto zT4q@nQh9*N*HZa@D%Vi?F)Gie@(-z8O6A{E`O8$k>;lVr3zbW${BAnQ2FxZmSt1<1}cAz%GFf9fyy1r z0atN3`hP~tr>X3w@(-vykIMhG9B}^Z?Fp^=Q8}c~-U{GNt` znFD^ta)9ed4(;#BVSgXh=TqA6YdOsO{T$ZC$Y=O|qYvY~tq*W)=)-tUANKJEt$(Nw zc>0o-e?sM}c^|Z07a{v%D!W$#4_B`Qe65wBlRK$=1(gr41U{cyiFto-CE)vyRKAnS zzoPPAFkST1m{e}>$NL@qpz}gM#)pT_Whfe0{)*}3b}C3 zTFn0|YXSecYXN_cmTR^C%C%@eLggTp`L)2y<5Yft;C^8(*0uR^;N=P`?;tq$Q@NS< zVLjG$@dm)ThRTgp4sO8ww{O5a_isSE;~TKAU)TURzO(`R{>=>-|3@1j|9-Xs__<&s z=xWtQtb0hy5|u*)-wjl*XS&^FS@i$buW!cq2R8$r@@CM_yEkK9|7tVly@$%HsC;ZQ z#y@8Z=DlEx@{N{bThOn%1^uqu0{*yl3*dWb3+8)b3+V2}Es#@Rr;_+_4RO z@x(UJ-w(F|p8vTGe0t7yz|p-OaO~U;xSj1-XMH>RUB4ZCdee5y_qpvD_djjNc(1*} zvOY@X`Bz|HpS}Y7@vpDII=*=Y#`}jWz~@VM0KUtpBvP_QcR-%rvjcGb{tnFZ-*#Z$ z*X+bTtk$xy6LRt+T0XNAc>Ru+=L~}W`>0&S^f3szaDzS{9mKfbpz>{0{^KC_^O7Op zd&3am9@p}{R1UB{83KO3Jp?}c??ag96}vEQFO{swuc7kORQ``$nD>q=G0rnr0^i@f z68rdnuEhIS?#6oicY`0U+6{b+@5X+9WH<12a<|G)E&p~m=-`|^z}vZdfalBifPQ!G z!M>LFp#6LHfX?ouvX|*f%RkwJ^)DGFTBP!g!`Sx&!+!^G?%ZYuk zBfh&2kmL~Tz&v}+I;}{a1LO+<^k9h|LOqxJ$3+e^&FK$yiW(fC+iQQ96ktq zO&kQjR1RYQng_A}cO8TrxmU|$RIXtA;~@C%&kn-Q`i&9L)4mbx_Yo>-D(mATpqIZJ zf&6^!)hOR`HSlxc)u7uAS7Tp_S1Wy74LsdRTgfxjEY{;a+R`+fKt(9_XtK+n%!1Ah7U*QmXw zeuZ`LAQJ$8}fLr=P}>!vjXt+vjX_%wMDh>irA+si-6xR0*-r%poh~% z(93s=*zYAS;5yd@-d4Dv%ggk6qYF6qyMS}rh2Fo*1-;$lV&9*2A$Py$0*+Tq0FLt} zP=EP^>ZJ+r{~c7mgYBLP@byn8fd5sKz;AI9a{jJKtm9v6`PY-6`!|;$clMXSFGosP z&-+Ti&&NxkpC?P8_pg^Q&yPyjj|)8PXTOJe)_7Rwgay6i9 z{Iy!vt_6MHujQX#i+wz|j(!7m)bFW--fpXdUryFR*Wb|cf9m_!g?PU%1l~vV`GX9i90iGu#=#_6rfa9Dd-oLX6zS-Y|erYr@?oCb5!O^DDRTKO6ttR;8ADh^x z{wcuyt|{~%n?ikK3hQ|P6yQ3l?f&f)#{a7+toxk9nE%a(LFcOv1OAD_=zqgujCbE* z;NkO!0rxlb`NxN`uHR^>9o51-<1NtLds>jcA8COPez%43e`y-@V^3qhH%_Dd=rrVD zWg7FgrZMhK)8LN>r!n7uorb^nD@XADHAk=yeMiv$T}RM==Mm_c(IfD0u04Wz4j%y? zKBWEb*YXSc{`a)}`Vs8k_jKG}y^i*Q1mbT|*-rqhy&mKGH-JB*8!+$nRDO=$-+BY= zqIK^hT4nw6KESj2{m|W=q=UQd4r<+neC{rSmfop5%~9R z1U-J_M)3R58`U1UQT^E)K}TP`5p@5Z8zKLHdL!iMFW*Eo%k+E`_90K@48eWmCamYT zK8$g?sr)g)x%$K4|GrzW?$#}U^Li>DWIyi~^>=SY|Lt1ty%qF1ekHg@5cH+csKC#iMwI^&bB;_H*{r;J?58H0+mG ze1>EN%Q-3^W&QdYz;o9O_VxE>AV+^N1H8WJKFoK)eOTw+jzWxc~Hi!25UiV|~B=0N~m70Qh0* z0odaod;s+Fl?TATfAj$6`HKet&p$o@I=Sd5_IJxsv=6D=!S?Y{@Wt;Rg!gYXYO@F2$h(t}v{Paj0wsP}h37a^59c^`iV`}q&QgYnip1bILH5Y~Cq zLs;jh9s>VALFE|Bv16d;iDQs2Q^z2uZaoHn?~jiG{}(+By3Icf_-}X^_`3aJwI8+q z>kmWTeE(tSt6%;s;Cbt3G0*1DLZ9uYvdR4PS>W$AkD!0|BajmVk3imTdIa=wCG4E_G#G2riS9s@jY{T#*_ z{2buSe-7(>fXXdAkJkVF=fEEWk851waq!`L9>;w5JPy3P@HpoAuC{ym=K5_jZcCOk35Ne zIIiV0`hJ$mE0|871l?}_0@_c10q-CA0_gg`d;##C{}l9T-&2qqZ+{Bw8+}USNl#%t z4?KnafBq@p`K#Lgn@=Hb+4VH&cgxd&fBb34u^XPox=%a}e183D?8nQWLHUknfXB&a zu-*?p1HJUjGnnT;JOlasXU{-y|95@=zn+1=_L^rg-#ebg`>UP>++)vT{2QKyynXyx z!1pKG{>RT^A6|a~bUSzg`~R^MSkJe$T=qrC<+7F!eG%*U-WP$-*FT4H=W~!R?|%;X z{@QbpJ1;v4cwc!Ea`A$bfN#S|$W8Yo#=ZF@_T$SZv7di*Qtj@Ofd8CRSntKBfR_WO zKyQ<$(Eo^*&z!>eKRyLMc*FCMXSwIGzLDp#Z}&eBI{5PQ;NMrg0J$^p0^s_<3($YZ zUr;~n1=y`OTfj5p@D8fDs0;La4a;=;eODLG0c%u#)dI}_5mhq(tGXZu_}|rR&sxCS zl=fpAr=q{Vt?jO4JZjyWwY*l}eO60e^VgU@_4&`3M)dbO>T|RUahJ_ncfv~kF@BfP z`|B*o@{-ms*K#$z`<(t}-NkXTAF$19f%gw9OxIhmNf}X}q`!C4-+Soq?^1K|x#_Q) zwOFuC_@AwHf6KH=zdvq)9}Zfe)2FEJ9Qu2CmzDYVBeq?r?nU-xsJz<(pYq90zEpXh?V`jCznQuz-o4|QDD4Rxyf82iE&Y@>*tpX>siepK5%O3&|S zdxv?G_m7@$Pr>*$`u!RDdxZXWX+58N9B5m|7wGvprZbLB((iY(?6VMaVE*}(wm(i~ zqYJS^{>MDl?1C0Pj*4(v0nI+ zjx#`YEtXI8x0QZ>h|T}=sdc@bet$m&%MBJ}E&topwtoKSQr*9`;Kw}E z_U;JPJH_qkgCMlFAu>dQXp z#q>AM^uYRveqTU;kFyW0ZCPivpsm}m6&ciB#0n~I*_)rI&z+l;&EcU{N0 zRNKCcb&A$KtaX3IcAeI73}HLf7wPZwtaqq9pZ+RFE_FfQKBj#=-Vgfw7RMwl$o8x0 z`4#$p3zf4h@2K2Ie|NG>;ByfR`t0T|oG-@oXW_i)UHbf6Iu6GYSWiB~{LONh%I|2K zzveiHwtF3wA7nqq!nrK}J4odpY1`jtIj{As$F9}iS5Wy&^!M*AoI8J%e*ZT8jp%!h zMf_?Pbp0=A-43%C7IY}vRUb*M@PXa!nm*yi+_Uk7~2i0 z`CqMLJgen3tUE2loUUhhwEjMp`)vO+-|>ETNk~|1pdWLbQQO@@K5%FYS>eb*YNyFdm^aYo?nX^1GW=2f?Oq-q}NNW zCAnpxP49An9n>0L;B%E%4>w9>!7c>Vs^b^sX~+&s)MyM1mn`Y_{AN&a_`weRN~>q7 z^{S;+r&0+D1NO3TU|EqS3q!XqE%HI5P;!f}T58#L_f(Nv^jLPq^Ih9IpIX}m$M=H< z_wXit0@iMnypR^qvX&K=(TFsgQ}K!lr^Tb2stK>++C?`k)V*3GsPotst&2vq^Degv z%7l-m=h$3Lqb>`V>MzHhi2MRpZfe4kTdCOj$g2?U+N;ZMYbvN0t#9!p=gbrO`@d8bJ0ZMgMX-KGD=_0=eB*iq=(VU!1&?5PqB3T!il(66B2(QYWA8AJ$oM5W0y=lM@bi}M_ zUw55`s}vj87Tt>5sWxoXgO)C->C`dK0bA?`T5^2De(1SvtL)Q%6{us(S>Udzf}gWK!N z5stR+RNZX75MfaFCOtp zi&>m8Hd&8}iyIKh5ZBeK#NcMzWaX?I<*Dk?&N7_`6#_YQYmUfGdFKbrB{dQ>yqvi} z(R-eQ1R4pQim3{tLW%43xsg(!sj9j=84+tFERE`nVomD(Hi;I$DYgj99+L~noxmyT z8nawxM7JRXn*7>`aEZ6NTUr-lvJ}NE@IK8xjJPUmRGN-ype{fdSrkj33@YN<%)06< z#J!l!lE;+X11YeECyQ;qX4tWoJ-%`|lSeG^2u{dA(VlhQ{uGa2YWK^_XaPkU`LI(m za7UptNs`^_?oJQa(_@h_N645GgKnwSCwtC7*dwtyFlwzVy3Li{jY93Zs95V+$%1QT zEvPqu#;C@>Nn1{NjS{nn+6Dx>wX#84#h4S04OWVI1#CEAUCPwlF3c~p)~z4fJxtgk zJVe--b$ObJ#_j9tv(^!bR_$)GQ5fbP^W606jmW8(=K|TYWo!MeVY@+s+g(Zjty$~Y zI%$QZ@w`%$h9Cm0^>s1WYF^E?)>F0U4r{}%y%1T}hLTsIHMnf}u!L&_HERR0 znde8Ywb2V}6=H^DiD82{zi+8c|KvZWMWf`x${{OI*G|M%cVX+e36?xJ?Bj0nlMFNA zu_;<|y*e8XWWkfE5)a86Ay4DAC@dA18}eFXw}MCvYqAq$7!l-AjT)0|nk;o3BB&)J zq!uzHycZ70gH7(nl0wBLsllDvmT%`W>h5|-K>;O$#d1PPLg3uGeCAOc7K@!ZaGn{8|yJB#Ol1(V>2WcG4BwA9;uX<3$ z?zs~UgJ0Q6a{H!8{{RI`2=WllgK?}3*Fu(ty$p>o8CEsz)`Qfp6C%z67_u))|D4cl zI!rdio`%zi6j!_5MpP#fAw?&iOXOF$aQt?Y!3#xjRXkVRV@GX7J17t{hJ7(3(^iEZ zTXl)H4T+Y?CN45i0X9&fO+mJe3^Z~g#DyTy7qOQqXyIkhwi|V7bPjQ(&(fR+HFL^9 zsd-5ZY@0~UNA}A8q1_u3m6uvnuU&Q6Wv8`IIxIqEFm3Ld+1%p)8)On|$bY(*6??2r zJF`N4lX^NC`y$K$h6a1KZrZUUw|?)o9mCrOK@W+~x^DNDFs2@2z=?n@t4SlcWS~kA zl%pDr zTw#3G!gd%Pd-KrlUVH!6Z96t`)4hYk+jdA((C46#0}N88!#r71WvX?3(#34gnyr{S zbb9&2ZOf)X`wayS8t-dT{BPDdM00Eikxx=#{IBY>HnS@NmA#qFPvtC@;O^mq3twV0 z5sA}ak}g8$2p#R+xoL2C4^392q1A#mLX6hFbKUR)YOu+M*Af$-U|tnFkb%Mm7`x2g zw{EvhJXlirArVO=Lh#VagIGKGMWwa3;d77F;%OP_L6LUhMw7<6}(I2*s8fg zK|%fyDKIvTD~{51JVMy3omo(X%m^&nYaS@O4VpEnnaS;QYLHqX?F4POn;A=^D;#(s zd?!P8SmYYp@a%+aQP#tuQC)`yrG@A+9pdB=TPR`~o8`NQ8%BB=1Hnj)jI6euVi6j- z9h{EStB0F+Ib4TXC%RYlV0=SL6Wtg0^y<$fs;7ja)UqtUL_z~aF~q_O2N8h91cSy% zCf#rW9Eig$~7Dl9L zB|OAGg%x60vzlSc;9gpKSn4&_odizB7wPmWm%JjEc+%+Ifu+{g&BIuUU340bt@>H2 ztAX#amsAakr1@gtK&~bHESESX>tfj ze44jf+g1*V3)!-^X;dez^0xV)E91P9e`vAAP_IX|hIIu8f{NA-ui*M5)wk^0(Y$!Y zfX%C>-!VEaX6#l({#{yXG-?AYS5Ep-Ur?W1SwYuucz0&6_CW4S%$vVb$1 zYB9RFe{s~GUTb!F>ir8FI>kQg%81m{ZkKqwXp5)1+pPvoH{;)k+1TzzqFpGKcigCh zYeG7CKO0JZkl0GS>}GOr8HqcQ51Z;3k0m4YLRy#jq#`u((RZh^ofe=Ef5{#)4mswa zWZ*OHS9Hj z>@yHOlXO`Ko^_QeUWN2=i#$x^^I@H}$DL#-ApS*2S$jkktFIEmcjJA~^GbXCOfAB= zNum??Af` zHVLiaB)-i%T_t?7RkBRZSV;^Dw>!n9{I>3jl~@OsI84n4tjUW|;YwbF#%YYv!tF@# zd%mkDsXm9F+2bS2*B+PvN6m~ATvYX(&VjZD`_GTHr6xMfC0$!&$RDmk4w|O zrF#jCagQ{*m@5nRH5Qlp-xcjlu-m!vawbI?Xx=g6b+QsM2Zva~(sjbUcK3xnF|Rq$ z?N!$i55Q@tA&FQsbtP6~SA^sW;ZtxxJCiHe=LssvOgL}3Ts{yGyp+)baMDLAvL&e@ zfa)`LHcW3;Mx*S-k(jOI`!D8H5J8(N1ZT|?Tt#bdeUh1c+YoykubJOtC`C~~PtL9Yw2unSJ)E>1)M$*Cm(NPP`%V+fp zm30Po&c2R~FEOAO*UFq(SbX0ibq<{OWcD!CktAEy0YmB=b0F3ME`E(LN6izNjxpkU z59tBWewhnq5Bk2UsaEy;CINWT>bryRhS0jRD;78VqJuZYz z`%j{9jEqdDG8W%HkW;~U!5l4M(ZRS?^ED(lod!0CZm|Z9QIb9UGp9kxF`m=ln+4+Z z$Bv-6w-FyvF$rRz_=by>B1?%|Xoc^KnwFlaNGu*Xr4{b`WsvY_F zM10uBPuJS!R}}xM%Pk}KTK;`le-DUg$?2r@MypwkG7;qB-IU7`T4|bFh{lch^edVK z?{fsgT&F3!zGX!62xf{OY42rOqZS{Uk$4(m(&i`JAhXBoVka$!-I*LM%Q0CH)eA%f zy18*56C0OMMSK8jZu#(SG%_AUrnO%!VAS(wsoO7eP88YN$z0A!F1APywkC4LpdeH% z_fyREoQTXpnM?)|4V)e=dC$93l=DHhV~F80?Swj(Nz^7J`NRgM#M<;~ifLAL$}BSZ zC^1Dt**jC6n;J1NZ&QJ6QG>=U7aCJ;2W8hhp`^ve?82=$3e?_eA+*G&=WzfowYzc* z%_sQT9%QBvFBe^onu?C$i8Fh`Ef^7U-6(6daDbBxaL0FpD6F*7J@jryCB_cl->BJg zhGCjzI_vl;!skhykfC%&if3PQG$y-PV3-DDF?qSkt+<%2glxb~ ztGGvvj5r$7$rs3=pFC6!qbAG2AhyZqVVz!Z;ul-&$x4u~ISqc;&oQPVTgK9EbBs2A zxxr4PXYMMN4IG?B$6b16%fI)~)=c0xk0$Go5MT$eNDyX#`+o?V*!Tv|dR91)a#L8h zC6{iv4FSo(Ubi9zZ+eu(c$xRgWYmI{v7P3rQmP`AP27yc`!H2Bdm@;XZpa-^MO4uVt;`5j~fY%VJ ziY;ogy7_@b8<~z0(-BeEFO_vBIjAiarKJZbSrX5=<=O4 zIa;+Qcu{=6Lrt@a&s!=%J1RM-CDT!}9FYSt>{{~fl7)|26DjMEp4yC=%ysbi4%XaD zag24`;aatZ|9g@A_hP%JXN_G9Vo}ZyILJ#5fnj^m{+Ify+C)f1mHjjK`*Ui&dqL89HU5PxCV@8^G z+U0n~#01F*G?Vk$i3<6}MUu(9pKI)DY0S^J8gAPK`;1FxA4#b^`?uvfAXj(yw7sz= z-9}+5G5j6G6>Cl=u*Z2gr!EM~ zSQ3VzX3VTL_N3~{BpEZ7{WZNg%Ga#;$eU5yV)W&L2?Q&;r{v&Ec(%tf7n6xm1r9>h z1nG8$M(EhQ7dwLK+(?P^yBf#aCS{cXN?(}kO>sr`dTQc$Cr-07!N*v{j5*IQ)N%15 zKm{oRR9N0bie?*pQjk23*tGBk-iu|!jYuV>YDxZCBGE`0O}k^vpnBjxz<1O&iHJZx5+KQh zm_K6GY|tPQZ?nm4g7N&&XSLm@&pyVXc(`tUfQbeaB%mnyLLja(J}B?!lu?i4xx>pX ziC@IGf)S3=+id2}e;h2~wkgkX06rs|QOm82@Q{ED9|q7!e1s)2mvKVq@?Lvf?tU$o z%U|Pi`)j$}(XzxXLztcXhA|=W0m7KWIs-E%;Y1Cva>ym9v*Y0UO|Kpx=m+lLL8$$h zvd@`@YG=2({Rx}wT&1I$>BdF1oL3C8j3UdtMyRd}??ikqQ6(Rrm5aD1NvtmuY!pVd z^eWE?u6T_a*Cl;Xo;YKYw`h#GoOlx7BMt7|v4eHau06XpZIC8)rz&?76|H0YpH z=b49JO5^w|6ogzw(UF}#ruUx4_%jFn3=>y!coeD|V^uP;tT@V3bn2mo1^HLS3chmN zvu(@R#?3o=CDMk=XUp{bfn!pw(5*~Zq0@B7By_IdDd!{Jw0IHnnIJ-f63dn79QEW- zUk49m&1eS)g=1?Yxtx=CCrah2Uu#6o!|OL}-IWf!sAPQLpqd6Olq zry)|6FN{)4Zvqwre!*mrkEWT6t_>rZ2xox_(-6W~A6A{P46aG;1*ulE5c}@@X^oJ5 ze1bDzi^VD5o|v#8dAHQ8v7nF z-;P=l6TgP$a(v9iQFyBM&3U9V7m5@zHw|sZ&2zb*Z}J_CkCN$l##Zq)7&ZdWrg=}M zbsT7sU}+<;7l?r_x?gnWZZBb`MNa~bgZr88VU8<1FlS-;Su_sMu5quusJQYxeKWB@ z^Ubt5us0?@q$3VtSZcDVHku_m{;DCZR@!w8lqK_}d|F@*8To~=EpzsuTxjJP)tHtm z^&x+7mc8O1TAaaybX##$f7Q%SJ^!y1&8G~G9`VT~z1WrDrehN&u+HG zOmp_*x5Yzu)dN1W&21~@_Tdux0FK}<>Fek3G*>O%EmxXyJHtt@m|GuBhPmNjz+Sp* zXgIfl8H!D`jgm6sqW=DO=K5FV`rmG^S~c*tx99rb*56MJbGu!fj3n(==T`OSE_xgN z9Ju7775%HI-3}*g?jpa_spR<6Bffr9lgDuF z#cOQ*T-)uhUAwBszTED&2kdVDvb7i47hGWbm#)2pD_2qFMQfH?FMsi7;<#q3RzE!> zXVjieHD$-2JxNFzL6do?WJ$Zn|OBLyn@VS0()sOovV>%H$|2 zlv;Tn0?L*~RRBH}XDVXUWP3w_n4X;y7BMx-e!X~$0DqjcgQOLiJ>K-)YD7En;;D#- zt_6*{n`gY&f{4H;yeCBf2}-SwZP*>Cx^U|`1F znwdR84Uv|DIg#+s2}K;Xbx11tuy%-hOa_lEorAo2{nNadD&eC-ulSY@;mTRK3%MM~ zqd{y=*cA*$ox6~9bwj4^)Q0d}d`^sxvSY^NS+h_MGOk0m~{5v|S693nwHdotz%M>w9)#XJIjFE^sunTqe0 z0^2DPPZIu}Yw;#FSvELwAf%;gOyAJKGrQMp_^q5_4%25#O+XuL! z#1;cpWdL7qkBIP9+xU}8?til?2TN;7>Ok`SYP ztN?JemEt5(h0^RvBC4QRB+7$rQ)~u@@+5Sebb~e+X$&4!)MPSnqFh<31Z+bZRlqja zi~-4aRTjBvS)#U4x+=)GXzvd(p3@QwFVAc|rCS?`KQmV$>h-BIClpe-WfWK}tnl1y zoj&Ch32qT0MrWSPW|dMtP1-K*ZRd!N?$Z9A0%SJr!p*o6%{htK!Toxm_qj zR^+R0aXMaGP|fROC&jHs5vdW9BD}F}Lzq6MOQf2fB;`tylth}$D9wQNEp|&85<-bK zg(&;8|p5Kx@8N@vlGRfJe)I?h=I4jxkhlZ4k> z3uUfSq6)|(sjGpVcc-kX4MlvOEN1N%ha`}vf3av=rKuWMYf-~7wU{zgRzWLxkV1V z%X*%f!miJrAh@A~r}J*z=Y)BN9tb;pq<>I}l^#LA(@tKtr06!nvgiR=(UG-_^sOTT zg>>=3fLy+5TAtdn)qwXy>;W30=2S_II56G}j)G?DTgsQ#-(IJ`H3tPtIUOOgS(-5^ zlKB)9aFwZBj$etw*HF{AH7Av*&OUki6!EYO)@%`q#0`a1blV0AYCJ}23HwB!q_ShN zt1cFW*!bj!2efgt$;kp>3{z#*Zqg<-%Er1Smh@cx_Epkk5!1AwS!t|Ld~#O|UbjB& zx#=OB(JVZ4K6S8+-t5RFV> z5Z7#pWZ`Ec3!^@JIAEv=L9@q+9Niahp%oPPlZjMHEj2^b`a6L%KUn}c_Li;cWeud^ zBBJa@Vm>C&BX9@kNWaZg$x)`cX52&C#9hQ*i6iK@y)=_0BgK%4UX;C!sUF4!;7}lE zVoOhV!`horJb%!fJQZ4H8aGMErBle^RSJIeU}Yj5!gN|L^pMP4eM;e=xMTKUuN}ob z2az6(WTqnyJ@HA?59<1p$IYna&M0fI<=F%ugR!AM`@oAgpPq@W2omfJ%BsG!y#e!$ zjLLnpCw;G4Moa<5V!`u>CTkT{;DsRK%k!Mm%cr00KxQiBFT*J#yR@*x|&Yz{CWY=udeRxb}I zosKa}NR+Y|@n;+4(2;7Yb0ml57x6K^byF9g?TcRWw0y5D=3KerMAK2F)w?u1qVJSA z{Kw*-Y}Te*6x4WCGlqPFxxieYPqek$97H!pVlPQmES)H#?3_L&!6wArNy4g@oU9)P*IJ(#MfR!K9MSEf`6R}}B zpNmW++>)H$%`5^LZ3?%WWY;RniGX2nwkru<)(CEyU1O3?`4)*io1}Y?xLqcsO%w!G zEXOi)1@b?W-e4rjNCYf#fy)FMpQFqkZ%e;5O{CO0`xf4$l5Z6&CGj(0;#zR?K$AFm z;?>WdAcVU1*3H9K#NTHzc@tNi@~S5DRwOS;%R41MYRvOm6}E?UO*bRnNSe$olj>rD z%8ihc3pk2B>>2W3ny#F8kuO99MkBj^@K$Tz%6*ImHlD;0AB?e?(yG?!lWbVB4;*Ov z3gL{ziK5>J*&m`2Bv%&$(;-Ia!mc^1+80~4aqKS%w$h>sG5;C& zbbh~N$CAWOCavuUjR?8B91a>***G8rGjVCn@ajUC8Is&x$#4^`X$`IzlbnqRlMVvT z4M(YH1qpbkKVt-gglO2cnqtq2Oio~$a-K4DtIuJ9;D67 zRM@jjEJcNnYl7_^-2Jp}w+<57k#|BIC^ot^R16!m65lf>eM|h#*d=i~d&Fne&0bH4 zHo}VNBQTvI^6Q0?pLQwQ2aiiP}kCFvesg03`0GS^~TX=k$$wz!1B|AjIq%dRZou^KMRQs67YRk`^g& z$m@&oGuPQ#g!=~o+FdWENOru4COf)W_MjtHbA|tBGBkoh5 zF<%txQEB#MYCXBLUQe4B`A@i>T*vhULNOiJl#?~#qJXwahlM(Z2uz$tVfEy$Kq@w) zQ2(xs`O$#`t$VLmp*CHG-bs0>;;*4**P?Xc%I0z>Z;xBXjpmFI=RE5)g23-_ z{ElOpLEbI+9M73E2)?-D5uj~#+_^&B6rL!DuvlvP$D_8KoPF0;+E7ev{rsr9nj;H5z`~e5s z4mx-$SivjM`(SgsX>;?*Ihtp{RiamDHMnObCzp=8Aw7Iuq;qvIe3AI1nQzRHR^T{O z)pLC}xw;`&easl#eSk+@AT1mpRP(u)YvYESjKwYx?GX*xDM4JScXNUCaI)T!web0z z1yjT&4kj5?dJPbla1xuptY1SL1ja|^*)!m{I&%<@Ls!Qf028I)h`$z;`G4>ref3kW zBF62kUrD~+vM9GH$P2~G~y)#Hk=9F(n2H~9u^Ub&uWd#vu2UZZKJ(PXm@ zH?e3J$G>y^r{)<$`xuH7yJ4Xmb1|>!wWfrBsG9gkkQ7S`PB|y6Fa{1-AnhCvGsXiT z?@RW~Toceqou;6Rf7kWMb4-RnD!O#dfC4iHdCi$B(r-2FJ!VqTshZbLIa8g^Oegv% z5smZar_03FlhAsnOm$$tQA^|cb~kMZKAogZ>FIc9P#nfM+7GCWvNDHhasVDw0}e>j zi1^TtSvr09BEHwkw?<;q%8GZ|sRU&liTGmr&%LEAdk%Y-Nhe~s<73v+uc&})7{fIY7kQ*;)hb! zMCR&UTj!)pSdMC*Z;%{mem=Huk&|!US>uV!Ibp16W>2*D(ywlDjb(v%nOuGC*fku_ zLCFaXXvq0-K8nw#=j|j;0CN(b7%{8ktUjI6PtKhsr{BJVL%TVlAD77Hw`=$8%~z~D zcwpXaekLk0YMEqyb1w7z6QuX+C^SIBDkT<9@@KpRNu*~E0i7h5-dJ-ws3V&me7`Xc zF(e7~%G!E^;bY{}<6dK&RIl#D8TH8a@EzpTHaHWB&YSByX81%wbKjDp@m za*0#f0T=22#6kCk^8|Jrd!*;&J zl-wq7S+G<)2ky@znc!TjPmb6;7vWfwQLro$6gmdJvbi!FU+!Iec0r{HT?$+2ZT9+n zNe1T_n`!DwqNYeVs0sY}vX&d0Uxt9slx@&httJGJ+yyoH1~cCWwPhSkd=>HcGkFJT z5V^3)(rZrU!A^9hCS#I-FzX5FU49cnEY}0^?)Zwesx7LFhVX<+DK9Z~TCLntV{O%^n z45uA)H!ivOL^dj4%8ytgvJ21ZF;6CPv~VBaRdarB5BZWs?zEZjGUSUjKBpD8)I3Qa z{xXkfzlRr5nLW;j#yX6|8aVS!IsX2t*l=;$m`;R~*|H=7B3RMz)sd9FVE?u`@XWT6 zyol*$abCo^-=oRB6Vdf$nw!J0xNurcq+B)5mZQjrhrN>1{@k=6DYNAjW;X!^u5vL)iulySB>jbi3SCJ@yY9`hzrd?tAmlSj?7 zIPd#(p2bw{LU|UAkz(>K;&Uj+N}sxU4awZX8kbZjd$_6B9cnlfO555@C5{s>(|pl$ zdWPtU&#oJ|7NimLRExPaL0IKug@xNEG56%-9%grr81nT8{mRDC&rLIGyhCcnIci>a z)TC&ftLIXA8qwJRgmjGxW~MgV&g5@wpIT>*^EkHkvXWz61!}&Wj>(-rEB!H(rgk(I zXeXU&Wxilf<#^QZ#BgD;W17cwP%ydVGk>PXmlE@woA@z(NjGhHK!nJ>mW-HArGG4o zqmN@PG0SlTH0_WLAm2X3jlnOeuj}XLfdqb#2r~XC5V;_eS8d54&9{DI`Z)=bLh6@* zVq{cY&Ui;AGTG2_=q}-B`HYw_&EJnC(N77VCy%44$C7)Pc%tCR-4918)GP2A>(z%X z{qUOkPkk#lKKDy~y>raM=Qm<1u0^CZ!}~f}I(F;C-Uh<5Y}mGc;mV$S)_d|&f&R85 zZ~g+O1sepHUTk|$dGc&eWah9l&Nw;e2o!aF)&d{qHOWb@HsZrp)yLTm7KJg?`E%=?wDZrZfnQT?>vnv@*#n zD^3#!#B*{^8s~_UYsh^?VNCH;8_d~Ghy0ai8m(PS%o#yR)3j^PX4x@|rG&+N@eOJs zLw%=4WGR?$OJ&)9^f7-nOH%(CO|pn|md1ONq?Wq#ofBFTtu2($Qp5>NsN_@DIaw`n z85<@cEq%J_Ag$$evCck;iYb%XvZI%2E^8d0Kgs0+?p()QmuKS(#GQU_cOV|=C3ys? zHkoLI@j7FSrL@*OVZF|IGUHF0^`m-MT;~`gCp)If49b1lzJibND{`cErd*kw=Tfan zJyKuFE}Ssa9OCKL^N5Sdnn~7JCE`!Dja5a!#CbEPeZFbMNzvVkQ;m~nhHl>Nm^ag{ z%X&;qNrJ~X8Oo;3oW0@T(7tv*8JRQN+~kEbXR1pA>7S1G#E}R+SCjmincNJmFevk7 z8U*PHSfmKxa{(ulQj=C6`F7ATon~hKd6H@-S99YCt4XW5z}LSWlWXF;*GzUzkUFwG zy4ffBBtMRL5>u;jyVzz7dhBQ=iFV?6R@*3nhDX|mr(tg)0aOm=>zOpj%*O&mW{l?P zC=pkr;Oy|O4R&g}hBa*}F=tzcw$M<@ZPR$yoC!Mmc&TV|wtXfPt@%3705r)`&n?7p zDWf>~Zqtl>(1$OlBTd<9PKuMHogkQ;d}V88@{%~IOV%ASceeRo9g=s(mk^RGkQ(A^ z%i#%4meFVno*OL%F+BU@No_Un?X$tcyawISy@hHx`qx@VTyp);al%n$r z#d(EYp%c!|+%0_R-Foe_JGWZwV9D7)oaP4tNFVVLj$S*On~XHYEJ#P1*46Eb+n6DT zV9;owt35f=jAf3qk8yTVzUkVs<%EHw2QBtP;xG8pd9(DueGxfIjbDV@6^)=|e9kDH zp)@`QGhe&d=0w@;kf}6@kI5%E@z+gJEtn3766F9h`=pl{GIb`Y(gvFo%W, 2007, 2008. +# +msgid "" +msgstr "" +"Project-Id-Version: bash 4.0-pre1\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2009-01-06 11:56-0500\n" +"PO-Revision-Date: 2008-10-25 20:42+0100\n" +"Last-Translator: Ivan Masár \n" +"Language-Team: Slovak \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" + +#: arrayfunc.c:50 +msgid "bad array subscript" +msgstr "chybný index poľa" + +#: arrayfunc.c:313 builtins/declare.def:474 +#, c-format +msgid "%s: cannot convert indexed to associative array" +msgstr "%s: nie je možné previesÅ¥ indexované pole na asociatívne" + +#: arrayfunc.c:479 +#, c-format +msgid "%s: invalid associative array key" +msgstr "%s: neplatný kľúč asociatívneho poľa" + +#: arrayfunc.c:481 +#, c-format +msgid "%s: cannot assign to non-numeric index" +msgstr "%s: nie je možné priradiÅ¥ nenumerickému indexu" + +#: arrayfunc.c:517 +#, c-format +msgid "%s: %s: must use subscript when assigning associative array" +msgstr "%s: %s: pri priraďovaní asociatívnemu poľu je potrebné použiÅ¥ index" + +#: bashhist.c:380 +#, c-format +msgid "%s: cannot create: %s" +msgstr "%s: nedá sa vytvoriÅ¥: %s" + +#: bashline.c:3413 +msgid "bash_execute_unix_command: cannot find keymap for command" +msgstr "bash_execute_unix_command: nedá sa nájsÅ¥ klávesová mapa pre príkaz" + +#: bashline.c:3491 +#, c-format +msgid "%s: first non-whitespace character is not `\"'" +msgstr "%s: prvý znak (okrem bielych znakov) nie je „\"“" + +#: bashline.c:3520 +#, c-format +msgid "no closing `%c' in %s" +msgstr "chýba zatvárajúca „%c“ v %s" + +#: bashline.c:3554 +#, c-format +msgid "%s: missing colon separator" +msgstr "%s: chýba oddeľovač dvojbodka" + +#: builtins/bind.def:120 builtins/bind.def:123 +msgid "line editing not enabled" +msgstr "" + +#: builtins/bind.def:206 +#, c-format +msgid "`%s': invalid keymap name" +msgstr "„%s“: neplatný názov klávesovej mapy" + +#: builtins/bind.def:245 +#, c-format +msgid "%s: cannot read: %s" +msgstr "%s: nedá sa čítaÅ¥: %s" + +#: builtins/bind.def:260 +#, c-format +msgid "`%s': cannot unbind" +msgstr "„%s“: nedá sa zruÅ¡iÅ¥ väzba (unbind)" + +#: builtins/bind.def:295 builtins/bind.def:325 +#, c-format +msgid "`%s': unknown function name" +msgstr "„%s“: neznámy názov funkcie" + +#: builtins/bind.def:303 +#, c-format +msgid "%s is not bound to any keys.\n" +msgstr "%s nie je zviazaný (bind) s žiadnymi klávesmi.\n" + +#: builtins/bind.def:307 +#, c-format +msgid "%s can be invoked via " +msgstr "%s je možné vyvolaÅ¥ ako " + +#: builtins/break.def:77 builtins/break.def:117 +msgid "loop count" +msgstr "počet cyklov" + +#: builtins/break.def:137 +msgid "only meaningful in a `for', `while', or `until' loop" +msgstr "dáva zmysel iba v cykle „for“, „while“ alebo „until“" + +#: builtins/caller.def:133 +#, fuzzy +msgid "" +"Returns the context of the current subroutine call.\n" +" \n" +" Without EXPR, returns " +msgstr "Vracia kontext aktuálneho volania podprocedúry." + +#: builtins/cd.def:215 +msgid "HOME not set" +msgstr "HOME nebola nastavená" + +#: builtins/cd.def:227 +msgid "OLDPWD not set" +msgstr "OLDPWD nebola nastavená" + +#: builtins/common.c:101 +#, c-format +msgid "line %d: " +msgstr "riadok %d: " + +#: builtins/common.c:139 error.c:260 +#, c-format +msgid "warning: " +msgstr "upozornenie: " + +#: builtins/common.c:153 +#, c-format +msgid "%s: usage: " +msgstr "%s: použitie " + +#: builtins/common.c:166 test.c:822 +msgid "too many arguments" +msgstr "príliÅ¡ veľa argumentov" + +#: builtins/common.c:191 shell.c:493 shell.c:774 +#, c-format +msgid "%s: option requires an argument" +msgstr "%s: voľba vyžaduje argument" + +#: builtins/common.c:198 +#, c-format +msgid "%s: numeric argument required" +msgstr "%s: vyžaduje sa numerický argument" + +#: builtins/common.c:205 +#, c-format +msgid "%s: not found" +msgstr "%s: nenájdené" + +#: builtins/common.c:214 shell.c:787 +#, c-format +msgid "%s: invalid option" +msgstr "%s: neplatná voľba" + +#: builtins/common.c:221 +#, c-format +msgid "%s: invalid option name" +msgstr "%s: neplatný názov voľby" + +#: builtins/common.c:228 general.c:231 general.c:236 +#, c-format +msgid "`%s': not a valid identifier" +msgstr "„%s“: nie je platný identifikátor" + +#: builtins/common.c:238 +msgid "invalid octal number" +msgstr "neplatné osmičkové číslo" + +#: builtins/common.c:240 +msgid "invalid hex number" +msgstr "neplatné Å¡estnástkové číslo" + +#: builtins/common.c:242 expr.c:1255 +msgid "invalid number" +msgstr "neplatné číslo" + +#: builtins/common.c:250 +#, c-format +msgid "%s: invalid signal specification" +msgstr "%s: neplatné určenie signálu" + +#: builtins/common.c:257 +#, c-format +msgid "`%s': not a pid or valid job spec" +msgstr "„%s“: nie je pid ani platný Å¡pecifikátor úlohy" + +#: builtins/common.c:264 error.c:453 +#, c-format +msgid "%s: readonly variable" +msgstr "%s: premenná len na čítanie" + +#: builtins/common.c:272 +#, c-format +msgid "%s: %s out of range" +msgstr "%s: %s je mimo rozsahu" + +#: builtins/common.c:272 builtins/common.c:274 +msgid "argument" +msgstr "argument" + +#: builtins/common.c:274 +#, c-format +msgid "%s out of range" +msgstr "%s mimo rozsahu" + +#: builtins/common.c:282 +#, c-format +msgid "%s: no such job" +msgstr "%s: taká úloha neexistuje" + +#: builtins/common.c:290 +#, c-format +msgid "%s: no job control" +msgstr "%s: riadenie úloh nedostupné" + +#: builtins/common.c:292 +msgid "no job control" +msgstr "riadenie úloh nedostupné" + +#: builtins/common.c:302 +#, c-format +msgid "%s: restricted" +msgstr "%s: obmedzené" + +#: builtins/common.c:304 +msgid "restricted" +msgstr "obmedzené" + +#: builtins/common.c:312 +#, c-format +msgid "%s: not a shell builtin" +msgstr "%s: nie je vstavaný príkaz (builtin) shellu" + +#: builtins/common.c:321 +#, c-format +msgid "write error: %s" +msgstr "chyba zapisovania: %s" + +#: builtins/common.c:553 +#, c-format +msgid "%s: error retrieving current directory: %s: %s\n" +msgstr "%s: chyba pri zisÅ¥ovaní aktuálneho adresára: %s: %s\n" + +#: builtins/common.c:619 builtins/common.c:621 +#, c-format +msgid "%s: ambiguous job spec" +msgstr "%s: nejednoznačné určenie úlohy" + +#: builtins/complete.def:270 +#, c-format +msgid "%s: invalid action name" +msgstr "%s: neplatný názov akcie" + +#: builtins/complete.def:430 builtins/complete.def:615 +#: builtins/complete.def:813 +#, c-format +msgid "%s: no completion specification" +msgstr "%s: chýba Å¡pecifikácia dokončovania" + +#: builtins/complete.def:667 +msgid "warning: -F option may not work as you expect" +msgstr "upozornenie: voľba -F nemusí fungovaÅ¥ tak ako očakávate" + +#: builtins/complete.def:669 +msgid "warning: -C option may not work as you expect" +msgstr "upozornenie: voľba -C nemusí fungovaÅ¥ tak ako očakávate" + +#: builtins/complete.def:786 +msgid "not currently executing completion function" +msgstr "momentálne sa nevykonáva funkcia doplňovania" + +#: builtins/declare.def:122 +msgid "can only be used in a function" +msgstr "je možné použiÅ¥ iba vo funkcii" + +#: builtins/declare.def:353 +msgid "cannot use `-f' to make functions" +msgstr "nie je možné použiÅ¥ „-f“ pre tvorbu funkcií" + +#: builtins/declare.def:365 execute_cmd.c:4731 +#, c-format +msgid "%s: readonly function" +msgstr "%s: funkcia iba na čítanie" + +#: builtins/declare.def:461 +#, c-format +msgid "%s: cannot destroy array variables in this way" +msgstr "%s: nie je možné takto robiÅ¥ deÅ¡trukciu premenných polí" + +#: builtins/declare.def:468 +#, c-format +msgid "%s: cannot convert associative to indexed array" +msgstr "%s: nie je možné previesÅ¥ asociatívne pole na indexované" + +#: builtins/enable.def:137 builtins/enable.def:145 +msgid "dynamic loading not available" +msgstr "dynamické načítavanie nie je dostupné" + +#: builtins/enable.def:312 +#, c-format +msgid "cannot open shared object %s: %s" +msgstr "nedá sa otvoriÅ¥ zdieľaný objekt %s: %s" + +#: builtins/enable.def:335 +#, c-format +msgid "cannot find %s in shared object %s: %s" +msgstr "nemožem nájsÅ¥ %s v zdieľanom objekte %s: %s" + +#: builtins/enable.def:459 +#, c-format +msgid "%s: not dynamically loaded" +msgstr "%s: nie je dynamicky načítané" + +#: builtins/enable.def:474 +#, c-format +msgid "%s: cannot delete: %s" +msgstr "%s: nedá sa zmazaÅ¥: %s" + +#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4588 +#: shell.c:1439 +#, c-format +msgid "%s: is a directory" +msgstr "%s: je adresár" + +#: builtins/evalfile.c:139 +#, c-format +msgid "%s: not a regular file" +msgstr "%s: nie je obyčajný súbor" + +#: builtins/evalfile.c:147 +#, c-format +msgid "%s: file is too large" +msgstr "%s: súbor je príliÅ¡ veľký" + +#: builtins/evalfile.c:185 execute_cmd.c:4658 shell.c:1449 +#, c-format +msgid "%s: cannot execute binary file" +msgstr "%s: nie je možné vykonaÅ¥ binárny súbor" + +#: builtins/exec.def:212 +#, c-format +msgid "%s: cannot execute: %s" +msgstr "%s: nedá sa spustiÅ¥: %s" + +#: builtins/exit.def:65 +#, c-format +msgid "logout\n" +msgstr "odhlásenie\n" + +#: builtins/exit.def:88 +msgid "not login shell: use `exit'" +msgstr "toto nie je login shell: použite „exit“" + +#: builtins/exit.def:120 +#, c-format +msgid "There are stopped jobs.\n" +msgstr "Existujú zastavené úlohy.\n" + +#: builtins/exit.def:122 +#, c-format +msgid "There are running jobs.\n" +msgstr "Existujú bežiace úlohy.\n" + +#: builtins/fc.def:261 +msgid "no command found" +msgstr "prákaz nenájdený" + +#: builtins/fc.def:341 +msgid "history specification" +msgstr "Å¡pecifikácia histórie" + +#: builtins/fc.def:362 +#, c-format +msgid "%s: cannot open temp file: %s" +msgstr "%s: nedá sa otvoriÅ¥ odkladací súbor: %s" + +#: builtins/fg_bg.def:149 builtins/jobs.def:282 +msgid "current" +msgstr "aktuálny" + +#: builtins/fg_bg.def:158 +#, c-format +msgid "job %d started without job control" +msgstr "úloha %d začala bez riadenia úloh" + +#: builtins/getopt.c:110 +#, c-format +msgid "%s: illegal option -- %c\n" +msgstr "%s: neplatná voľba -- %c\n" + +#: builtins/getopt.c:111 +#, c-format +msgid "%s: option requires an argument -- %c\n" +msgstr "%s: voľba vyžaduje argument -- %c\n" + +#: builtins/hash.def:92 +msgid "hashing disabled" +msgstr "haÅ¡ovanie vypnuté" + +#: builtins/hash.def:138 +#, c-format +msgid "%s: hash table empty\n" +msgstr "%s: haÅ¡ovacia tabuľka je prázdna\n" + +#: builtins/hash.def:244 +#, c-format +msgid "hits\tcommand\n" +msgstr "" + +#: builtins/help.def:130 +#, c-format +msgid "Shell commands matching keyword `" +msgid_plural "Shell commands matching keywords `" +msgstr[0] "Príkazy shellu zodpovedajúce kľúčovému slovu „" +msgstr[1] "Príkazy shellu zodpovedajúce kľúčovým slovám „" +msgstr[2] "Príkazy shellu zodpovedajúce kľúčovým slovám „" + +#: builtins/help.def:168 +#, c-format +msgid "" +"no help topics match `%s'. Try `help help' or `man -k %s' or `info %s'." +msgstr "" +"pre „%s“ neboli nájdené zodpovedajúce témy pomocníka. Skúste „help help“ " +"alebo „man -k %s“ alebo „info %s“." + +#: builtins/help.def:185 +#, c-format +msgid "%s: cannot open: %s" +msgstr "%s: nedá sa otvoriÅ¥: %s" + +#: builtins/help.def:337 +#, c-format +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 "" +"Tieto príkazy shellu sú definované interne. Napísaním „help“ zobrazíte tento " +"zoznam.\n" +"Napísaním „help názov“ zistíte viac o funkcii „názov“.\n" +"Napísaním „info bash“ zistíte viac o shelli vo vÅ¡eobecnosti.\n" +"Napísaním „man -k“ alebo „info“ zistíte viac príkazoch, ktoré nie sú v " +"zozname.\n" +"\n" +"Hviezdička (*) vedľa názvu znamená, že príkaz je vypnutý.\n" +"\n" + +#: builtins/history.def:154 +msgid "cannot use more than one of -anrw" +msgstr "nie je možné použiÅ¥ viac ako jednu z volieb -anrw" + +#: builtins/history.def:186 +msgid "history position" +msgstr "poloha histórie" + +#: builtins/history.def:365 +#, c-format +msgid "%s: history expansion failed" +msgstr "%s: rozšírenie histórie zlyhalo" + +#: builtins/inlib.def:71 +#, c-format +msgid "%s: inlib failed" +msgstr "%s: inlib zlyhalo" + +#: builtins/jobs.def:109 +msgid "no other options allowed with `-x'" +msgstr "iné voľby prípustné s „-x“" + +#: builtins/kill.def:197 +#, c-format +msgid "%s: arguments must be process or job IDs" +msgstr "%s: argumenty musia byÅ¥ ID procesov alebo úloh" + +#: builtins/kill.def:260 +msgid "Unknown error" +msgstr "Neznáma chyba" + +#: builtins/let.def:95 builtins/let.def:120 expr.c:501 expr.c:516 +msgid "expression expected" +msgstr "očakával sa výraz" + +#: builtins/mapfile.def:215 builtins/read.def:272 +#, c-format +msgid "%s: invalid file descriptor specification" +msgstr "%s: neplatná Å¡pecifikácia popisovača súboru" + +#: builtins/mapfile.def:223 builtins/read.def:279 +#, c-format +msgid "%d: invalid file descriptor: %s" +msgstr "%d: neplatný popisovač súboru: %s" + +#: builtins/mapfile.def:232 builtins/mapfile.def:270 +#, c-format +msgid "%s: invalid line count" +msgstr "%s: neplatný počet riadkov" + +#: builtins/mapfile.def:243 +#, c-format +msgid "%s: invalid array origin" +msgstr "%s: neplatný začiatok poľa" + +#: builtins/mapfile.def:260 +#, c-format +msgid "%s: invalid callback quantum" +msgstr "%s: neplatné kvantum spätného volania" + +#: builtins/mapfile.def:292 +msgid "empty array variable name" +msgstr "názov prázdnej premennej poľa" + +#: builtins/mapfile.def:313 +msgid "array variable support required" +msgstr "vyžaduje sa podpora premennej poľa" + +#: builtins/printf.def:367 +#, c-format +msgid "`%s': missing format character" +msgstr "„%s“: chýba formátovací znak" + +#: builtins/printf.def:544 +#, c-format +msgid "`%c': invalid format character" +msgstr "„%c“: neplatný formátovací znak" + +#: builtins/printf.def:571 +#, c-format +msgid "warning: %s: %s" +msgstr "upozornenie: %s: %s" + +#: builtins/printf.def:750 +msgid "missing hex digit for \\x" +msgstr "chýba hexadecimálna číslica v \\x" + +#: builtins/pushd.def:195 +msgid "no other directory" +msgstr "žiadny iný adresár" + +#: builtins/pushd.def:462 +msgid "" +msgstr "<žiadny aktuálny adresár>" + +#: builtins/pushd.def:506 +msgid "directory stack empty" +msgstr "zásobník adresárov je prázdny" + +#: builtins/pushd.def:508 +msgid "directory stack index" +msgstr "index zásobníka adresárov" + +#: builtins/pushd.def:683 +#, fuzzy +msgid "" +"Display the list of currently remembered directories. Directories\n" +" find their way onto the list with the `pushd' command; you can get\n" +" back up through the list with the `popd' command.\n" +" \n" +" Options:\n" +" -c\tclear the directory stack by deleting all of the elements\n" +" -l\tdo not print tilde-prefixed versions of directories relative\n" +" \tto your home directory\n" +" -p\tprint the directory stack with one entry per line\n" +" -v\tprint the directory stack with one entry per line prefixed\n" +" \twith its position in the stack\n" +" \n" +" Arguments:\n" +" +N\tDisplays the Nth entry counting from the left of the list shown " +"by\n" +" \tdirs when invoked without options, starting with zero.\n" +" \n" +" -N\tDisplays the Nth entry counting from the right of the list shown " +"by\n" +"\tdirs when invoked without options, starting with zero." +msgstr "" +"Zobrazí zoznam momentálne zapamätaných adresárov. Adresáre\n" +" sa do zoznamu dostávajú príkazom „pushd“; zo zoznamu ich môžete\n" +" vyberaÅ¥ postupne príkazom „popd“.\n" +" \n" +" Voľba -l určuje, že „dirs“ nemá vypisovaÅ¥ skrátené verzie adresárov\n" +" relatívne vzhľadom na váš domovský adresár. To znamená, že\n" +" „~/bin“ sa môže zobraziÅ¥ ako „/homes/bfox/bin“. Voľba -v spôsobí,\n" +" že „dirs“ vypíše zásobník adresárov vo formáte jedna položka na,\n" +" riadok a pred adresár vypíše jej pozíciu v zásobníku. Voľba -p robí\n" +" to sité, ale nepripája pozíciu v zásobníku.\n" +" Voľba -c vyprázdni zásobník adresárov zmazaním vÅ¡etkých položiek.\n" +" \n" +" +N\tzobrazuje N-tú položku počítajúc zľava zoznamu, ktorý zobrazuje\n" +" \tdirs vyvolaný bez volieb, počínajúc nulou.\n" +" \n" +" -N\tzobrazuje N-tú položku počítajúc sprava zoznamu, ktorý zobrazuje\n" +" \tdirs vyvolaný bez volieb, počínajúc nulou." + +#: builtins/pushd.def:705 +#, fuzzy +msgid "" +"Adds a directory to the top of the directory stack, or rotates\n" +" the stack, making the new top of the stack the current working\n" +" directory. With no arguments, exchanges the top two directories.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when adding\n" +" \tdirectories to the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the left of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" -N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the right of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" dir\tAdds DIR to the directory stack at the top, making it the\n" +" \tnew current working directory.\n" +" \n" +" The `dirs' builtin displays the directory stack." +msgstr "" +"Pridá adresár na vrchol zásobníka adresárov alebo ho otočí tak, že\n" +" nový vrchol zásobníka sa stane aktuálnym pracovným adresárom.\n" +" Bez argumentov vymení vrchné dva adresáre.\n" +" \n" +" +N\tOtočí zásobník tak, že N-tý adresár (počítajúc zľava zoznamu,\n" +" \tktorý zobrazuje „dirs“, počínajúc nulou) je na vrchu.\n" +" \n" +" -N\tOtočí zásobník tak, že N-tý adresár (počítajúc sprava zoznamu,\n" +" \tktorý zobrazuje „dirs“, počínajúc nulou) je na vrchu.\n" +" \n" +" -n\tpotlačí normálnu zmenu adresára pri odstraňovaní položiek\n" +" \tzo zásobníka, takže sa zmení iba zásobník.\n" +" \n" +" adr\tpridá ADR na vrchol zásobníka adresárov, čím sa tento stane\n" +" \tnovým aktuálnym pracovným adresárom.\n" +" \n" +" Zásobník adresárov môžete zobraziÅ¥ príkazom „dirs“." + +#: builtins/pushd.def:730 +#, fuzzy +msgid "" +"Removes entries from the directory stack. With no arguments, removes\n" +" the top directory from the stack, and changes to the new top directory.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when removing\n" +" \tdirectories from the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRemoves the Nth entry counting from the left of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd +0'\n" +" \tremoves the first directory, `popd +1' the second.\n" +" \n" +" -N\tRemoves the Nth entry counting from the right of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd -0'\n" +" \tremoves the last directory, `popd -1' the next to last.\n" +" \n" +" The `dirs' builtin displays the directory stack." +msgstr "" +"Odstráni položky zo zásobníka adresárov. Bez argumentov odstráni\n" +" vrchnú položku zo zásobníka a zmení adresár na adresár, ktorý\n" +" sa následne nachádza na vrchu zásobníka.\n" +" \n" +" +N\todstráni N-tú položku položku počítajúc zľava zoznamu,\n" +" \tktorý zobrazuje „dirs“, počínajúc nulou. Napríklad: „popd +0“\n" +" \todstráni prvý adresár, „popd +1“ druhý.\n" +" \n" +" -N\todstráni N-tú položku položku počítajúc sprava zoznamu,\n" +" \tktorý zobrazuje „dirs“, počínajúc nulou. Napríklad: „popd -0“\n" +" \todstráni posledný adresár, „popd -1“ predposledný.\n" +" \n" +" -n\tpotlačí normálnu zmenu adresára pri odstraňovaní položiek\n" +" \tzo zásobníka, takže sa zmení iba zásobník.\n" +" \n" +" Zásobník adresárov môžete zobraziÅ¥ príkazom „dirs“." + +#: builtins/read.def:248 +#, c-format +msgid "%s: invalid timeout specification" +msgstr "%s: neplatná Å¡pecifikácia expirácie (timeout)" + +#: builtins/read.def:574 +#, c-format +msgid "read error: %d: %s" +msgstr "chyba pri čítaní: %d: %s" + +#: builtins/return.def:73 +msgid "can only `return' from a function or sourced script" +msgstr "" +"návrat („return“) je možné vykonaÅ¥ iba z funkcie alebo skriptu vyvolaného " +"pomocou „source“" + +#: builtins/set.def:768 +msgid "cannot simultaneously unset a function and a variable" +msgstr "nie je možné zároveň zruÅ¡iÅ¥ funkciu a premennú" + +#: builtins/set.def:805 +#, c-format +msgid "%s: cannot unset" +msgstr "%s: nie je možné zruÅ¡iÅ¥" + +#: builtins/set.def:812 +#, c-format +msgid "%s: cannot unset: readonly %s" +msgstr "%s: nie je možné zruÅ¡iÅ¥: len na čítanie %s" + +#: builtins/set.def:823 +#, c-format +msgid "%s: not an array variable" +msgstr "%s: nie je premenná poľa" + +#: builtins/setattr.def:186 +#, c-format +msgid "%s: not a function" +msgstr "%s: nie je funkcia" + +#: builtins/shift.def:71 builtins/shift.def:77 +msgid "shift count" +msgstr "posun o" + +#: builtins/shopt.def:254 +msgid "cannot set and unset shell options simultaneously" +msgstr "nie je možné zároveň nastaviÅ¥ aj zruÅ¡iÅ¥ voľby shellu" + +#: builtins/shopt.def:319 +#, c-format +msgid "%s: invalid shell option name" +msgstr "%s: neplatný názov voľby shellu" + +#: builtins/source.def:128 +msgid "filename argument required" +msgstr "vyžaduje sa argument názov súboru" + +#: builtins/source.def:153 +#, c-format +msgid "%s: file not found" +msgstr "%s: súbor sa nepodarilo nájsÅ¥" + +#: builtins/suspend.def:101 +msgid "cannot suspend" +msgstr "nie je možné suspendovaÅ¥" + +#: builtins/suspend.def:111 +msgid "cannot suspend a login shell" +msgstr "nie je možné suspendovaÅ¥ login shell" + +#: builtins/type.def:234 +#, c-format +msgid "%s is aliased to `%s'\n" +msgstr "%s má alias „%s“\n" + +#: builtins/type.def:255 +#, c-format +msgid "%s is a shell keyword\n" +msgstr "%s je kľúčové slovo shellu\n" + +#: builtins/type.def:274 +#, c-format +msgid "%s is a function\n" +msgstr "%s je funkcia\n" + +#: builtins/type.def:296 +#, c-format +msgid "%s is a shell builtin\n" +msgstr "%s je vstavaný príkaz (builtin) shellu\n" + +#: builtins/type.def:317 builtins/type.def:391 +#, c-format +msgid "%s is %s\n" +msgstr "%s je %s\n" + +#: builtins/type.def:337 +#, c-format +msgid "%s is hashed (%s)\n" +msgstr "%s je haÅ¡ovaný (%s)\n" + +#: builtins/ulimit.def:372 +#, c-format +msgid "%s: invalid limit argument" +msgstr "%s: neplatný argument limitu" + +#: builtins/ulimit.def:398 +#, c-format +msgid "`%c': bad command" +msgstr "„%c“: chybný príkaz" + +#: builtins/ulimit.def:427 +#, c-format +msgid "%s: cannot get limit: %s" +msgstr "%s: nedá sa zistiÅ¥ limit: %s" + +#: builtins/ulimit.def:453 +msgid "limit" +msgstr "obmedzenie" + +#: builtins/ulimit.def:465 builtins/ulimit.def:765 +#, c-format +msgid "%s: cannot modify limit: %s" +msgstr "%s: nedá sa zmeniÅ¥ limit: %s" + +#: builtins/umask.def:118 +msgid "octal number" +msgstr "osmičkové číslo" + +#: builtins/umask.def:231 +#, c-format +msgid "`%c': invalid symbolic mode operator" +msgstr "„%c“: neplatný operátor symbolického režimu" + +#: builtins/umask.def:286 +#, c-format +msgid "`%c': invalid symbolic mode character" +msgstr "„%c“: neplatný znak symbolického režimu" + +#: error.c:89 error.c:320 error.c:322 error.c:324 +msgid " line " +msgstr " riadok " + +#: error.c:164 +#, c-format +msgid "last command: %s\n" +msgstr "posledný príkaz: %s\n" + +#: error.c:172 +#, c-format +msgid "Aborting..." +msgstr "Ruší sa..." + +#: error.c:405 +msgid "unknown command error" +msgstr "chyba neznámeho príkazu" + +#: error.c:406 +msgid "bad command type" +msgstr "chybný typ príkazu" + +#: error.c:407 +msgid "bad connector" +msgstr "chybný konektor" + +#: error.c:408 +msgid "bad jump" +msgstr "chybný skok" + +#: error.c:446 +#, c-format +msgid "%s: unbound variable" +msgstr "%s: neviazaná premenná" + +#: eval.c:181 +#, c-format +msgid "\atimed out waiting for input: auto-logout\n" +msgstr "\ačas vyprÅ¡al pri čakaní na vstup: automatické odhlásenie\n" + +#: execute_cmd.c:491 +#, c-format +msgid "cannot redirect standard input from /dev/null: %s" +msgstr "nie je možné presmerovaÅ¥ Å¡tandardný vstup z /dev/null: %s" + +#: execute_cmd.c:1091 +#, c-format +msgid "TIMEFORMAT: `%c': invalid format character" +msgstr "TIMEFORMAT: „%c“: neplatný formátovácí znak" + +#: execute_cmd.c:1942 +msgid "pipe error" +msgstr "chyba rúry" + +#: execute_cmd.c:4276 +#, c-format +msgid "%s: restricted: cannot specify `/' in command names" +msgstr "%s: obmedzené: nie jemožné uviesÅ¥ „/“ v názvoch príkazov" + +#: execute_cmd.c:4367 +#, c-format +msgid "%s: command not found" +msgstr "%s: príkaz nenájdený" + +#: execute_cmd.c:4621 +#, c-format +msgid "%s: %s: bad interpreter" +msgstr "%s: %s: chybný interpreter" + +#: execute_cmd.c:4770 +#, c-format +msgid "cannot duplicate fd %d to fd %d" +msgstr "nie je možné duplokovaÅ¥ fd %d na fd %d" + +#: expr.c:241 +msgid "expression recursion level exceeded" +msgstr "bola prekročená úroveň rekurzie výrazu" + +#: expr.c:265 +msgid "recursion stack underflow" +msgstr "podtečenie zásobníka rekurzie" + +#: expr.c:379 +msgid "syntax error in expression" +msgstr "chyba syntaxe vo výraze" + +#: expr.c:419 +msgid "attempted assignment to non-variable" +msgstr "pokus o priradenie mimo premennej" + +#: expr.c:440 expr.c:445 expr.c:756 +msgid "division by 0" +msgstr "delenie nulou" + +#: expr.c:471 +msgid "bug: bad expassign token" +msgstr "chyba: chybný expassign token" + +#: expr.c:513 +msgid "`:' expected for conditional expression" +msgstr "pre podmienený výraz sa očakáva „:“" + +#: expr.c:781 +msgid "exponent less than 0" +msgstr "exponent menší ako 0" + +#: expr.c:826 +msgid "identifier expected after pre-increment or pre-decrement" +msgstr "po pre-inkrementácii alebo pre-dekrementácii sa očakáva identifikátor" + +#: expr.c:854 +msgid "missing `)'" +msgstr "chýba „)“" + +#: expr.c:897 expr.c:1175 +msgid "syntax error: operand expected" +msgstr "chyba syntaxe: očakáva sa operand" + +#: expr.c:1177 +msgid "syntax error: invalid arithmetic operator" +msgstr "chyba syntaxe: neplatný aritmetický operátor" + +#: expr.c:1201 +#, c-format +msgid "%s%s%s: %s (error token is \"%s\")" +msgstr "%s%s%s: %s (chybný token je „%s”)" + +#: expr.c:1259 +msgid "invalid arithmetic base" +msgstr "neplatný aritmetický základ" + +#: expr.c:1279 +msgid "value too great for base" +msgstr "hodnota je ako základ príliÅ¡ veľká" + +#: expr.c:1328 +#, c-format +msgid "%s: expression error\n" +msgstr "%s: chyba výrazu\n" + +#: general.c:61 +msgid "getcwd: cannot access parent directories" +msgstr "getcwd: nie je možné pristupovaÅ¥ k rodičovským adresárom" + +#: input.c:94 subst.c:4559 +#, c-format +msgid "cannot reset nodelay mode for fd %d" +msgstr "nie j emožné resetovaÅ¥ nodelay režim fd %d" + +#: input.c:258 +#, c-format +msgid "cannot allocate new file descriptor for bash input from fd %d" +msgstr "nedá sa alokovaÅ¥ nový popisovač súboru pre vstup bashu z fd %d" + +#: input.c:266 +#, c-format +msgid "save_bash_input: buffer already exists for new fd %d" +msgstr "save_bash_input: bufer už existuje pre nový fd %d" + +#: jobs.c:466 +msgid "start_pipeline: pgrp pipe" +msgstr "start_pipeline: pgrp rúra" + +#: jobs.c:882 +#, c-format +msgid "forked pid %d appears in running job %d" +msgstr "pid %d získaný pomocou fork sa vyskytuje v bežiacej úlohe %d" + +#: jobs.c:1000 +#, c-format +msgid "deleting stopped job %d with process group %ld" +msgstr "mažem zastavenú úlohu %d so skupinou procesu %ld" + +#: jobs.c:1105 +#, c-format +msgid "add_process: process %5ld (%s) in the_pipeline" +msgstr "add_process: proces %5ld (%s) v the_pipeline" + +#: jobs.c:1108 +#, c-format +msgid "add_process: pid %5ld (%s) marked as still alive" +msgstr "add_process: pid %5ld (%s) je stále označený ako živý" + +#: jobs.c:1396 +#, c-format +msgid "describe_pid: %ld: no such pid" +msgstr "describe_pid: %ld: taký pid neexistuje" + +#: jobs.c:1411 +#, c-format +msgid "Signal %d" +msgstr "Signál %d" + +#: jobs.c:1425 jobs.c:1450 +msgid "Done" +msgstr "Hotovo" + +#: jobs.c:1430 siglist.c:122 +msgid "Stopped" +msgstr "Zastavené" + +#: jobs.c:1434 +#, c-format +msgid "Stopped(%s)" +msgstr "Zastavené(%s)" + +#: jobs.c:1438 +msgid "Running" +msgstr "Beží" + +#: jobs.c:1452 +#, c-format +msgid "Done(%d)" +msgstr "Hotovo(%d)" + +#: jobs.c:1454 +#, c-format +msgid "Exit %d" +msgstr "Ukončenie %d" + +#: jobs.c:1457 +msgid "Unknown status" +msgstr "Neznámy stav" + +#: jobs.c:1544 +#, c-format +msgid "(core dumped) " +msgstr "" + +#: jobs.c:1563 +#, c-format +msgid " (wd: %s)" +msgstr " (wd: %s)" + +#: jobs.c:1766 +#, c-format +msgid "child setpgid (%ld to %ld)" +msgstr "setpgid detského procesu (%ld to %ld)" + +#: jobs.c:2094 nojobs.c:576 +#, c-format +msgid "wait: pid %ld is not a child of this shell" +msgstr "wait: pid %ld nie je dieÅ¥a tohto shellu" + +#: jobs.c:2321 +#, c-format +msgid "wait_for: No record of process %ld" +msgstr "wait_for: Neexistuje záznam o procese %ld" + +#: jobs.c:2593 +#, c-format +msgid "wait_for_job: job %d is stopped" +msgstr "wait_for_job: úloha %d je zastavená" + +#: jobs.c:2815 +#, c-format +msgid "%s: job has terminated" +msgstr "%s: úloha skončila" + +#: jobs.c:2824 +#, c-format +msgid "%s: job %d already in background" +msgstr "%s: úloha %d už je v pozadí" + +#: jobs.c:3487 +#, c-format +msgid "%s: line %d: " +msgstr "%s: riadok %d: " + +#: jobs.c:3501 nojobs.c:805 +#, c-format +msgid " (core dumped)" +msgstr "" + +#: jobs.c:3513 jobs.c:3526 +#, c-format +msgid "(wd now: %s)\n" +msgstr "(wd teraz: %s)\n" + +#: jobs.c:3558 +msgid "initialize_job_control: getpgrp failed" +msgstr "initialize_job_control: funkcia getpgrp zlyhala" + +#: jobs.c:3618 +msgid "initialize_job_control: line discipline" +msgstr "" + +#: jobs.c:3628 +msgid "initialize_job_control: setpgid" +msgstr "" + +#: jobs.c:3656 +#, c-format +msgid "cannot set terminal process group (%d)" +msgstr "nie je možné nastaviÅ¥ skupinu procesu terminálu (%d)" + +#: jobs.c:3661 +msgid "no job control in this shell" +msgstr "v tomto shelli nie je riadenie úloh" + +#: lib/malloc/malloc.c:296 +#, c-format +msgid "malloc: failed assertion: %s\n" +msgstr "malloc: zlyhal predpoklad: %s\n" + +#: lib/malloc/malloc.c:312 +#, c-format +msgid "" +"\r\n" +"malloc: %s:%d: assertion botched\r\n" +msgstr "" +"\r\n" +"malloc: %s:%d: zbabraný predpoklad\r\n" + +#: lib/malloc/malloc.c:313 +msgid "unknown" +msgstr "neznámy" + +#: lib/malloc/malloc.c:797 +msgid "malloc: block on free list clobbered" +msgstr "malloc: blok na zozname voľných zaprataný" + +#: lib/malloc/malloc.c:874 +msgid "free: called with already freed block argument" +msgstr "free: zavolaný s argumentom už uvoľneného bloku" + +#: lib/malloc/malloc.c:877 +msgid "free: called with unallocated block argument" +msgstr "free: zavolaný s argumentom nealokovaného bloku" + +#: lib/malloc/malloc.c:896 +msgid "free: underflow detected; mh_nbytes out of range" +msgstr "free: bolo detekované podtečenie; mh_nbytes mimo rozsahu" + +#: lib/malloc/malloc.c:902 +msgid "free: start and end chunk sizes differ" +msgstr "free: veľkosti začiatočného a konečného bloku (chunk) sa líšia" + +#: lib/malloc/malloc.c:1001 +msgid "realloc: called with unallocated block argument" +msgstr "realloc: zavolaný s argumentom nealokovaného bloku" + +#: lib/malloc/malloc.c:1016 +msgid "realloc: underflow detected; mh_nbytes out of range" +msgstr "realloc: bolo detekované podtečenie; mh_nbytes mimo rozsahu" + +#: lib/malloc/malloc.c:1022 +msgid "realloc: start and end chunk sizes differ" +msgstr "realloc: veľkosti začiatočného a konečného bloku (chunk) sa líšia" + +#: lib/malloc/table.c:177 +#, c-format +msgid "register_alloc: alloc table is full with FIND_ALLOC?\n" +msgstr "register_alloc: alok. tabuľla je plná s FIND_ALLOC?\n" + +#: lib/malloc/table.c:184 +#, c-format +msgid "register_alloc: %p already in table as allocated?\n" +msgstr "register_alloc: %p už je v tabuľke ako alokovaný?\n" + +#: lib/malloc/table.c:220 +#, c-format +msgid "register_free: %p already in table as free?\n" +msgstr "register_free: %p už je v tabuľke ako voľný?\n" + +#: lib/sh/fmtulong.c:101 +msgid "invalid base" +msgstr "neplatný základ" + +#: lib/sh/netopen.c:168 +#, c-format +msgid "%s: host unknown" +msgstr "%s: hostiteľ neznámy" + +#: lib/sh/netopen.c:175 +#, c-format +msgid "%s: invalid service" +msgstr "%s: neplatná služba" + +#: lib/sh/netopen.c:306 +#, c-format +msgid "%s: bad network path specification" +msgstr "%s: zlá Å¡pecifikácia sieÅ¥ovej cesty" + +#: lib/sh/netopen.c:346 +msgid "network operations not supported" +msgstr "sieÅ¥ové operácie nie sú podporované" + +#: mailcheck.c:433 +msgid "You have mail in $_" +msgstr "Máte poÅ¡tu v $_" + +#: mailcheck.c:458 +msgid "You have new mail in $_" +msgstr "Máte novú poÅ¡tu v $_" + +#: mailcheck.c:474 +#, c-format +msgid "The mail in %s has been read\n" +msgstr "PoÅ¡ta v %s bola prečítaná\n" + +#: make_cmd.c:322 +msgid "syntax error: arithmetic expression required" +msgstr "chyba syntaxe: vyžaduje sa aritmetický výraz" + +#: make_cmd.c:324 +msgid "syntax error: `;' unexpected" +msgstr "chyba syntaxe: neočakávaný „;“ unexpected" + +#: make_cmd.c:325 +#, c-format +msgid "syntax error: `((%s))'" +msgstr "chyba syntaxe: „((%s))“" + +#: make_cmd.c:567 +#, c-format +msgid "make_here_document: bad instruction type %d" +msgstr "make_here_document: chybný typ inÅ¡trukcie %d" + +#: make_cmd.c:651 +#, c-format +msgid "here-document at line %d delimited by end-of-file (wanted `%s')" +msgstr "" +"here-document na riadku %d oddelený znakom konca riadku (očakávalo sa „%s”)" + +#: make_cmd.c:746 +#, c-format +msgid "make_redirection: redirection instruction `%d' out of range" +msgstr "make_redirection: inÅ¡trukcia presmerovania „%d“ mimo rozsahu" + +#: parse.y:2986 parse.y:3218 +#, c-format +msgid "unexpected EOF while looking for matching `%c'" +msgstr "neočakávaný koniec súboru počas hľadania zodpovedajúceho „%c“" + +#: parse.y:3722 +msgid "unexpected EOF while looking for `]]'" +msgstr "neočakávaný koniec súboru počas hľadania „]]“" + +#: parse.y:3727 +#, c-format +msgid "syntax error in conditional expression: unexpected token `%s'" +msgstr "chyba syntaxe v podmienečnom príkaze: neočakávaný token „%s“" + +#: parse.y:3731 +msgid "syntax error in conditional expression" +msgstr "chyba syntaxe v podmienečnom príkaze" + +#: parse.y:3809 +#, c-format +msgid "unexpected token `%s', expected `)'" +msgstr "neočakávaný token „%s“, očakávalo sa `)'" + +#: parse.y:3813 +msgid "expected `)'" +msgstr "očakávalo sa `)'" + +#: parse.y:3841 +#, c-format +msgid "unexpected argument `%s' to conditional unary operator" +msgstr "neočakávaný argument „%s“ podmienečného unárneho operátora" + +#: parse.y:3845 +msgid "unexpected argument to conditional unary operator" +msgstr "neočakávaný argument podmienečného unárneho operátora" + +#: parse.y:3885 +#, c-format +msgid "unexpected token `%s', conditional binary operator expected" +msgstr "neočakávaný token „%s“, očakáva sa podmienečný binárny operátor" + +#: parse.y:3889 +msgid "conditional binary operator expected" +msgstr "očakáva sa podmienečný binárny operátor" + +#: parse.y:3906 +#, c-format +msgid "unexpected argument `%s' to conditional binary operator" +msgstr "neočakávaný argument „%s“ v podmienečnom binárnom operátore" + +#: parse.y:3910 +msgid "unexpected argument to conditional binary operator" +msgstr "neočakávaný argument v podmienečnom binárnom operátore" + +#: parse.y:3921 +#, c-format +msgid "unexpected token `%c' in conditional command" +msgstr "neočakávaný token „%c“ v podmienečnom príkaze" + +#: parse.y:3924 +#, c-format +msgid "unexpected token `%s' in conditional command" +msgstr "neočakávaný token „%s“ v podmienečnom príkaze" + +#: parse.y:3928 +#, c-format +msgid "unexpected token %d in conditional command" +msgstr "neočakávaný token %d v podmienečnom príkaze" + +#: parse.y:5195 +#, c-format +msgid "syntax error near unexpected token `%s'" +msgstr "chyba syntaxe neďaleko neočakávaného tokenu „%s“" + +#: parse.y:5213 +#, c-format +msgid "syntax error near `%s'" +msgstr "chyba syntaxe neďaleko „%s“" + +#: parse.y:5223 +msgid "syntax error: unexpected end of file" +msgstr "chyba syntaxe: neočakávaný koniec súboru" + +#: parse.y:5223 +msgid "syntax error" +msgstr "chyba syntaxe" + +#: parse.y:5285 +#, c-format +msgid "Use \"%s\" to leave the shell.\n" +msgstr "Na opustenie shellu použite „%s“.\n" + +#: parse.y:5447 +msgid "unexpected EOF while looking for matching `)'" +msgstr "neočakávaný koniec súboru počas hľadania zodpovedajúceho „)“" + +#: pcomplete.c:1016 +#, c-format +msgid "completion: function `%s' not found" +msgstr "dokončovanie: funkcia „%s“ nebola nájdená" + +#: pcomplib.c:179 +#, c-format +msgid "progcomp_insert: %s: NULL COMPSPEC" +msgstr "progcomp_insert: %s: NULL COMPSPEC" + +#: print_cmd.c:287 +#, c-format +msgid "print_command: bad connector `%d'" +msgstr "print_command: chybný konektor `%d'" + +#: print_cmd.c:1347 +#, c-format +msgid "cprintf: `%c': invalid format character" +msgstr "cprintf: „%c“: neplatný formátovací znak" + +#: redir.c:105 +msgid "file descriptor out of range" +msgstr "popisovač súboru mimo rozsahu" + +#: redir.c:148 +#, c-format +msgid "%s: ambiguous redirect" +msgstr "%s: nejednoznačné presmerovanie" + +#: redir.c:152 +#, c-format +msgid "%s: cannot overwrite existing file" +msgstr "%s: nedá sa prepísaÅ¥ existujúci súbor" + +#: redir.c:157 +#, c-format +msgid "%s: restricted: cannot redirect output" +msgstr "%s: ombedzené: nie je možné presmerovaÅ¥ výstup" + +#: redir.c:162 +#, c-format +msgid "cannot create temp file for here-document: %s" +msgstr "nedá sa vytvoriÅ¥ odkladací súbor pre here-document: %s" + +#: redir.c:517 +msgid "/dev/(tcp|udp)/host/port not supported without networking" +msgstr "/dev/(tcp|udp)/host/port nie je podporovaný bez podpory sietí" + +#: redir.c:1023 +msgid "redirection error: cannot duplicate fd" +msgstr "chyba presmerovania: nedá sa duplikovaÅ¥ fd" + +#: shell.c:328 +msgid "could not find /tmp, please create!" +msgstr "nenaÅ¡iel sa /tmp, vytvorte ho prosím!" + +#: shell.c:332 +msgid "/tmp must be a valid directory name" +msgstr "/tmp musí byÅ¥ platný názov adresára" + +#: shell.c:876 +#, c-format +msgid "%c%c: invalid option" +msgstr "%c%c: neplatná voľba" + +#: shell.c:1638 +msgid "I have no name!" +msgstr "Nemám meno!" + +#: shell.c:1778 +#, c-format +msgid "GNU bash, version %s-(%s)\n" +msgstr "GNU bash, verzia %s-(%s)\n" + +#: shell.c:1779 +#, c-format +msgid "" +"Usage:\t%s [GNU long option] [option] ...\n" +"\t%s [GNU long option] [option] script-file ...\n" +msgstr "" +"Použitie:\t%s [GNU dlhá voľba] [voľba] ...\n" +"\t%s [GNU dlhá voľba] [voľba] súbor-skriptu ...\n" + +#: shell.c:1781 +msgid "GNU long options:\n" +msgstr "GNU dlhé voľby:\n" + +#: shell.c:1785 +msgid "Shell options:\n" +msgstr "Voľby shellu:\n" + +#: shell.c:1786 +msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n" +msgstr "\t-irsD alebo -c príkaz alebo -O krátka_voľba\t\t(iba vyvolanie)\n" + +#: shell.c:1801 +#, c-format +msgid "\t-%s or -o option\n" +msgstr "\t-%s alebo -o voľba\n" + +#: shell.c:1807 +#, c-format +msgid "Type `%s -c \"help set\"' for more information about shell options.\n" +msgstr "" +"Napísaním „%s -c \"help set\"“ získate viac informácií o voľbách shellu.\n" + +#: shell.c:1808 +#, c-format +msgid "Type `%s -c help' for more information about shell builtin commands.\n" +msgstr "" +"Napísaním „%s -c help“ získate viac informácií o vstavaných príkazoch " +"(builtins) shellu.\n" + +#: shell.c:1809 +#, c-format +msgid "Use the `bashbug' command to report bugs.\n" +msgstr "Na ohlasovanie chýb použite príkaz „bashbug“.\n" + +#: sig.c:583 +#, c-format +msgid "sigprocmask: %d: invalid operation" +msgstr "sigprocmask: %d: neplatná operácia" + +#: siglist.c:47 +msgid "Bogus signal" +msgstr "Neplatný signál" + +#: siglist.c:50 +msgid "Hangup" +msgstr "Zavesenie" + +#: siglist.c:54 +msgid "Interrupt" +msgstr "PreruÅ¡enie" + +#: siglist.c:58 +msgid "Quit" +msgstr "Ukončenie" + +#: siglist.c:62 +msgid "Illegal instruction" +msgstr "Neplatná inÅ¡trukcia" + +#: siglist.c:66 +msgid "BPT trace/trap" +msgstr "BPT trace/trap" + +#: siglist.c:74 +msgid "ABORT instruction" +msgstr "inÅ¡trukcia ABORT" + +#: siglist.c:78 +msgid "EMT instruction" +msgstr "inÅ¡trukcia EMT" + +#: siglist.c:82 +msgid "Floating point exception" +msgstr "Výnimka pri operácii s plávajúcou desatinnou čiarkou" + +#: siglist.c:86 +msgid "Killed" +msgstr "Zabitý" + +#: siglist.c:90 +msgid "Bus error" +msgstr "chyba zbernice" + +#: siglist.c:94 +msgid "Segmentation fault" +msgstr "Chyba segmentácie" + +#: siglist.c:98 +msgid "Bad system call" +msgstr "Chybné systémové volanie" + +#: siglist.c:102 +msgid "Broken pipe" +msgstr "PreruÅ¡ená rúra" + +#: siglist.c:106 +msgid "Alarm clock" +msgstr "Budík" + +#: siglist.c:110 +msgid "Terminated" +msgstr "Ukončené" + +#: siglist.c:114 +msgid "Urgent IO condition" +msgstr "Naliehavý stav V/V" + +#: siglist.c:118 +msgid "Stopped (signal)" +msgstr "Zastavené (signál)" + +#: siglist.c:126 +msgid "Continue" +msgstr "PokračovaÅ¥" + +#: siglist.c:134 +msgid "Child death or stop" +msgstr "Zastavenie alebo zabitie detského procesu" + +#: siglist.c:138 +msgid "Stopped (tty input)" +msgstr "Zastavené (vstup z tty)" + +#: siglist.c:142 +msgid "Stopped (tty output)" +msgstr "Zastavené (výstup na tty)" + +#: siglist.c:146 +msgid "I/O ready" +msgstr "V/V pripravený" + +#: siglist.c:150 +msgid "CPU limit" +msgstr "obmedzenie CPU" + +#: siglist.c:154 +msgid "File limit" +msgstr "obmedzenie súborov" + +#: siglist.c:158 +msgid "Alarm (virtual)" +msgstr "Budík (virtuálny)" + +#: siglist.c:162 +msgid "Alarm (profile)" +msgstr "Budík (profil)" + +#: siglist.c:166 +msgid "Window changed" +msgstr "Okno sa zmenilo" + +#: siglist.c:170 +msgid "Record lock" +msgstr "Zámok záznamu" + +#: siglist.c:174 +msgid "User signal 1" +msgstr "Používateľský signál 1" + +#: siglist.c:178 +msgid "User signal 2" +msgstr "Používateľský signál 2" + +#: siglist.c:182 +msgid "HFT input data pending" +msgstr "čaká sa na vstupné údaje HFT" + +#: siglist.c:186 +msgid "power failure imminent" +msgstr "nastane výpadok napájania" + +#: siglist.c:190 +msgid "system crash imminent" +msgstr "nastane havária systému" + +#: siglist.c:194 +msgid "migrate process to another CPU" +msgstr "presunúť proces na iný CPU" + +#: siglist.c:198 +msgid "programming error" +msgstr "chyba programovania" + +#: siglist.c:202 +msgid "HFT monitor mode granted" +msgstr "udelený režim monitoru HFT" + +#: siglist.c:206 +msgid "HFT monitor mode retracted" +msgstr "stiahnutý režim monitoru HFT" + +#: siglist.c:210 +msgid "HFT sound sequence has completed" +msgstr "dokončila sa zvuková sekvencia HFT" + +#: siglist.c:214 +msgid "Information request" +msgstr "ŽiadosÅ¥ o informácie" + +#: siglist.c:222 +msgid "Unknown Signal #" +msgstr "Neznáme číslo signálu" + +#: siglist.c:224 +#, c-format +msgid "Unknown Signal #%d" +msgstr "Neznámy signál #%d" + +#: subst.c:1181 subst.c:1302 +#, c-format +msgid "bad substitution: no closing `%s' in %s" +msgstr "chybná substitúcia: chýba „%s“ v %s" + +#: subst.c:2458 +#, c-format +msgid "%s: cannot assign list to array member" +msgstr "%s: nie je možné priradiÅ¥ zoznam položke poľa" + +#: subst.c:4456 subst.c:4472 +msgid "cannot make pipe for process substitution" +msgstr "nedá sa vytvoriÅ¥ rúra pre substitúciu procesov" + +#: subst.c:4504 +msgid "cannot make child for process substitution" +msgstr "nedá sa vytvoriÅ¥ dieÅ¥a pre substitúciu procesov" + +#: subst.c:4549 +#, c-format +msgid "cannot open named pipe %s for reading" +msgstr "nedá sa otvoriÅ¥ pomenovaná rúra %s na čítanie" + +#: subst.c:4551 +#, c-format +msgid "cannot open named pipe %s for writing" +msgstr "nedá sa otvoriÅ¥ pomenovaná rúra %s na zápis" + +#: subst.c:4569 +#, c-format +msgid "cannot duplicate named pipe %s as fd %d" +msgstr "nedá sa duplikovaÅ¥ pomenovaná rúra %s ako fd %d" + +#: subst.c:4765 +msgid "cannot make pipe for command substitution" +msgstr "nedá sa vytvoriÅ¥ rúra pre substitúciu príkazov" + +#: subst.c:4799 +msgid "cannot make child for command substitution" +msgstr "nedá sa vytvoriÅ¥ dieÅ¥a pre substitúciu príkazov" + +#: subst.c:4816 +msgid "command_substitute: cannot duplicate pipe as fd 1" +msgstr "command_substitute: nedá sa duplikovaÅ¥ rúra ako fd 1" + +#: subst.c:5318 +#, c-format +msgid "%s: parameter null or not set" +msgstr "%s: parameter je null alebo nenastavený" + +#: subst.c:5608 +#, c-format +msgid "%s: substring expression < 0" +msgstr "%s: výraz podreÅ¥azca < 0" + +#: subst.c:6660 +#, c-format +msgid "%s: bad substitution" +msgstr "%s: chybná substitúcia" + +#: subst.c:6740 +#, c-format +msgid "$%s: cannot assign in this way" +msgstr "$%s: nie je možné vykonaÅ¥ priradenie takýmto spôsobom" + +#: subst.c:7479 +#, c-format +msgid "bad substitution: no closing \"`\" in %s" +msgstr "chybná substitúcia: : v reÅ¥azci %s chýba uzatvárajúci „`”" + +#: subst.c:8354 +#, c-format +msgid "no match: %s" +msgstr "bez zhody: %s" + +#: test.c:145 +msgid "argument expected" +msgstr "očakával sa argument" + +#: test.c:154 +#, c-format +msgid "%s: integer expression expected" +msgstr "%s: očakával sa celočíselný výraz" + +#: test.c:262 +msgid "`)' expected" +msgstr "očakávala sa „)“" + +#: test.c:264 +#, c-format +msgid "`)' expected, found %s" +msgstr "očakávala sa „)“, bolo nájdené %s" + +#: test.c:279 test.c:688 test.c:691 +#, c-format +msgid "%s: unary operator expected" +msgstr "%s: očakával sa unárny operátor" + +#: test.c:444 test.c:731 +#, c-format +msgid "%s: binary operator expected" +msgstr "%s: očakával sa binárny operátor" + +#: test.c:806 +msgid "missing `]'" +msgstr "chýba „]“" + +#: trap.c:201 +msgid "invalid signal number" +msgstr "neplatné číslo signálu" + +#: trap.c:324 +#, c-format +msgid "run_pending_traps: bad value in trap_list[%d]: %p" +msgstr "run_pending_traps: chybná hodnota v trap_list[%d]: %p" + +#: trap.c:328 +#, c-format +msgid "" +"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself" +msgstr "" +"run_pending_traps: obsluha signálu je SIG_DFL, znovu posielam %d (%s) sebe" + +#: trap.c:372 +#, c-format +msgid "trap_handler: bad signal %d" +msgstr "trap_handler: chybný signál %d" + +#: variables.c:358 +#, c-format +msgid "error importing function definition for `%s'" +msgstr "chyba pri importe definície funkcie „%s“" + +#: variables.c:736 +#, c-format +msgid "shell level (%d) too high, resetting to 1" +msgstr "úroveň shellu (%d) je príliÅ¡ vysoká, nastavujem späť na 1" + +#: variables.c:1898 +msgid "make_local_variable: no function context at current scope" +msgstr "make_local_variable: v aktuálnom rozsahu sa nenachádza kontext funkcie" + +#: variables.c:3127 +msgid "all_local_variables: no function context at current scope" +msgstr "all_local_variables: v aktuálnom rozsahu sa nenachádza kontext funkcie" + +#: variables.c:3344 variables.c:3353 +#, c-format +msgid "invalid character %d in exportstr for %s" +msgstr "neplatný znak %d v exportstr %s" + +#: variables.c:3359 +#, c-format +msgid "no `=' in exportstr for %s" +msgstr "žiadne „=“ v exportstr %s" + +#: variables.c:3794 +msgid "pop_var_context: head of shell_variables not a function context" +msgstr "pop_var_context: hlavička shell_variables nie je kontext funkcie" + +#: variables.c:3807 +msgid "pop_var_context: no global_variables context" +msgstr "pop_var_context: chýba kontext global_variables" + +#: variables.c:3881 +msgid "pop_scope: head of shell_variables not a temporary environment scope" +msgstr "pop_scope: hlavička shell_variables nie je dočasný rozsah prostredia" + +#: version.c:46 +#, fuzzy +msgid "Copyright (C) 2009 Free Software Foundation, Inc." +msgstr "Copyright (C) 2008 Free Software Foundation, Inc." + +#: version.c:47 +msgid "" +"License GPLv3+: GNU GPL version 3 or later \n" +msgstr "" +"Licencia GPLv3+: GNU GPL verzie 3 alebo novÅ¡ia \n" + +#: version.c:86 +#, c-format +msgid "GNU bash, version %s (%s)\n" +msgstr "GNU bash, verzia %s (%s)\n" + +#: version.c:91 +#, c-format +msgid "This is free software; you are free to change and redistribute it.\n" +msgstr "" + +#: version.c:92 +#, c-format +msgid "There is NO WARRANTY, to the extent permitted by law.\n" +msgstr "" + +#: xmalloc.c:92 +#, c-format +msgid "xmalloc: cannot allocate %lu bytes (%lu bytes allocated)" +msgstr "xmalloc: nedá sa alokovaÅ¥ %lu bajtov (%lu bajtov alokovaných)" + +#: xmalloc.c:94 +#, c-format +msgid "xmalloc: cannot allocate %lu bytes" +msgstr "xmalloc: nedá sa alokovaÅ¥ %lu bajtov" + +#: xmalloc.c:114 +#, c-format +msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)" +msgstr "xrealloc: nedá sa realokovaÅ¥ %lu bajtov (%lu bajtov alokovaných)" + +#: xmalloc.c:116 +#, c-format +msgid "xrealloc: cannot allocate %lu bytes" +msgstr "xrealloc: nedá sa alokovaÅ¥ %lu bajtov" + +#: xmalloc.c:150 +#, c-format +msgid "xmalloc: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)" +msgstr "xmalloc: %s:%d: nedá sa alokovaÅ¥ %lu bajtov (%lu bajtov alokovaných)" + +#: xmalloc.c:152 +#, c-format +msgid "xmalloc: %s:%d: cannot allocate %lu bytes" +msgstr "xmalloc: %s:%d: nedá sa alokovaÅ¥ %lu bajtov" + +#: xmalloc.c:174 +#, c-format +msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)" +msgstr "" +"xrealloc: %s:%d: nedá sa realokovaÅ¥ %lu bajtov (%lu bajtov alokovaných)" + +#: xmalloc.c:176 +#, c-format +msgid "xrealloc: %s:%d: cannot allocate %lu bytes" +msgstr "xrealloc: %s:%d: nedá sa alokovaÅ¥ %lu bajtov" + +#: builtins.c:43 +msgid "alias [-p] [name[=value] ... ]" +msgstr "alias [-p] [názov[=hodnota] ... ]" + +#: builtins.c:47 +msgid "unalias [-a] name [name ...]" +msgstr "unalias [-a] názov [názov ...]" + +#: builtins.c:51 +msgid "" +"bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-" +"x keyseq:shell-command] [keyseq:readline-function or readline-command]" +msgstr "" +"bind [-lpvsPVS] [-m kláv_mapa] [-f názov_súboru] [-q názov] [-u názov] [-r " +"postup_kláv] [-x postup_kláv:príkaz_shellu] [postup_kláv:funkcia_readline " +"alebo príkaz-readline]" + +#: builtins.c:54 +msgid "break [n]" +msgstr "break [n]" + +#: builtins.c:56 +msgid "continue [n]" +msgstr "continue [n]" + +#: builtins.c:58 +msgid "builtin [shell-builtin [arg ...]]" +msgstr "builtin [vstavaná funcia shellu [arg ...]]" + +#: builtins.c:61 +msgid "caller [expr]" +msgstr "caller [výraz]" + +#: builtins.c:64 +msgid "cd [-L|-P] [dir]" +msgstr "cd [-L|-P] [adresár]" + +#: builtins.c:66 +msgid "pwd [-LP]" +msgstr "pwd [-LP]" + +#: builtins.c:68 +msgid ":" +msgstr ":" + +#: builtins.c:70 +msgid "true" +msgstr "pravda" + +#: builtins.c:72 +msgid "false" +msgstr "nepravda" + +#: builtins.c:74 +msgid "command [-pVv] command [arg ...]" +msgstr "command [-pVv] command [arg ...]" + +#: builtins.c:76 +msgid "declare [-aAfFilrtux] [-p] [name[=value] ...]" +msgstr "declare [-aAfFilrtux] [-p] [názov[=hodnota] ...]" + +#: builtins.c:78 +msgid "typeset [-aAfFilrtux] [-p] name[=value] ..." +msgstr "typeset [-aAfFilrtux] [-p] názov[=hodnota] ..." + +#: builtins.c:80 +msgid "local [option] name[=value] ..." +msgstr "local [voľba] názov[=hodnota] ..." + +#: builtins.c:83 +msgid "echo [-neE] [arg ...]" +msgstr "echo [-neE] [arg ...]" + +#: builtins.c:87 +msgid "echo [-n] [arg ...]" +msgstr "echo [-n] [arg ...]" + +#: builtins.c:90 +msgid "enable [-a] [-dnps] [-f filename] [name ...]" +msgstr "enable [-a] [-dnps] [-f názov_súboru] [názov ...]" + +#: builtins.c:92 +msgid "eval [arg ...]" +msgstr "eval [arg ...]" + +#: builtins.c:94 +msgid "getopts optstring name [arg]" +msgstr "getopts názov_reÅ¥azca_volieb [arg]" + +#: builtins.c:96 +msgid "exec [-cl] [-a name] [command [arguments ...]] [redirection ...]" +msgstr "exec [-cl] [-a názov] [príkaz [argumenty ...]] [presmerovanie ...]" + +#: builtins.c:98 +msgid "exit [n]" +msgstr "exit [n]" + +#: builtins.c:100 +msgid "logout [n]" +msgstr "logout [n]" + +#: builtins.c:103 +msgid "fc [-e ename] [-lnr] [first] [last] or fc -s [pat=rep] [command]" +msgstr "" +"fc [-e enázov] [-lnr] [prvý] [posledný] alebo fc -s [vzor=opak] [príkaz]" + +#: builtins.c:107 +msgid "fg [job_spec]" +msgstr "fg [Å¡pec_úlohy]" + +#: builtins.c:111 +msgid "bg [job_spec ...]" +msgstr "bg [Å¡pec_úlohy ...]" + +#: builtins.c:114 +msgid "hash [-lr] [-p pathname] [-dt] [name ...]" +msgstr "hash [-lr] [-p cesta] [-dt] [názov ...]" + +#: builtins.c:117 +msgid "help [-ds] [pattern ...]" +msgstr "help [-ds] [vzor ...]" + +#: builtins.c:121 +msgid "" +"history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg " +"[arg...]" +msgstr "" +"history [-c] [-d ofset] [n] alebo history -anrw [názov_súboru] alebo history " +"-ps arg [arg...]" + +#: builtins.c:125 +msgid "jobs [-lnprs] [jobspec ...] or jobs -x command [args]" +msgstr "jobs [-lnprs] [Å¡pec_úlohy ...] alebo jobs -x príkaz [argumenty]" + +#: builtins.c:129 +msgid "disown [-h] [-ar] [jobspec ...]" +msgstr "disown [-h] [-ar] [Å¡pec_úlohy ...]" + +#: builtins.c:132 +msgid "" +"kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l " +"[sigspec]" +msgstr "" +"kill [-s Å¡pec_signálu | -n číslo_signálu | -Å¡pec_signálu] pid | " +"Å¡pec_úlohy ... alebo kill -l [Å¡pec_signálu]" + +#: builtins.c:134 +msgid "let arg [arg ...]" +msgstr "let arg [arg ...]" + +#: builtins.c:136 +msgid "" +"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-p prompt] [-t " +"timeout] [-u fd] [name ...]" +msgstr "" +"read [-ers] [-a pole] [-d oddeľovač] [-i text] [-n nznakov] [-p výzva] [-t " +"zdržadnie] [-u fd] [názov ...]" + +#: builtins.c:138 +msgid "return [n]" +msgstr "return [n]" + +#: builtins.c:140 +msgid "set [--abefhkmnptuvxBCHP] [-o option-name] [arg ...]" +msgstr "set [--abefhkmnptuvxBCHP] [-o názov_voľby] [arg ...]" + +#: builtins.c:142 +msgid "unset [-f] [-v] [name ...]" +msgstr "unset [-f] [-v] [názov ...]" + +#: builtins.c:144 +msgid "export [-fn] [name[=value] ...] or export -p" +msgstr "export [-fn] [názov[=hodnota] ...] alebo export -p" + +#: builtins.c:146 +msgid "readonly [-af] [name[=value] ...] or readonly -p" +msgstr "readonly [-af] [názov[=hodnota] ...] alebo readonly -p" + +#: builtins.c:148 +msgid "shift [n]" +msgstr "shift [n]" + +#: builtins.c:150 +msgid "source filename [arguments]" +msgstr "source názov_súboru [argumenty]" + +#: builtins.c:152 +msgid ". filename [arguments]" +msgstr ". názov_súboru [argumenty]" + +#: builtins.c:155 +msgid "suspend [-f]" +msgstr "suspend [-f]" + +#: builtins.c:158 +msgid "test [expr]" +msgstr "test [výraz]" + +#: builtins.c:160 +msgid "[ arg... ]" +msgstr "[ arg... ]" + +#: builtins.c:162 +msgid "times" +msgstr "-krát" + +#: builtins.c:164 +msgid "trap [-lp] [[arg] signal_spec ...]" +msgstr "trap [-lp] [[arg] Å¡pec_signálu ...]" + +#: builtins.c:166 +msgid "type [-afptP] name [name ...]" +msgstr "type [-afptP] názov [názov ...]" + +#: builtins.c:169 +msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]" +msgstr "ulimit [-SHacdefilmnpqrstuvx] [obmedzenie]" + +#: builtins.c:172 +msgid "umask [-p] [-S] [mode]" +msgstr "umask [-p] [-S] [režim]" + +#: builtins.c:175 +msgid "wait [id]" +msgstr "wait [id]" + +#: builtins.c:179 +msgid "wait [pid]" +msgstr "wait [pid]" + +#: builtins.c:182 +msgid "for NAME [in WORDS ... ] ; do COMMANDS; done" +msgstr "for NAME [in SLOVÁ ... ] ; do PRÍKAZY; done" + +#: builtins.c:184 +msgid "for (( exp1; exp2; exp3 )); do COMMANDS; done" +msgstr "for (( výraz1; výraz2; výraz3 )); do PRÍKAZY; done" + +#: builtins.c:186 +msgid "select NAME [in WORDS ... ;] do COMMANDS; done" +msgstr "select NÁZOV [in SLOVÁ ... ;] do PRÍKAZY; done" + +#: builtins.c:188 +msgid "time [-p] pipeline" +msgstr "time [-p] rúra" + +#: builtins.c:190 +msgid "case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac" +msgstr "case SLOVO in [VZOR [| VZOR]...) PRÍKAZY ;;]... esac" + +#: builtins.c:192 +msgid "" +"if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else " +"COMMANDS; ] fi" +msgstr "" +"if PRÍKAZY; then PRÍKAZY; [ elif PRÍKAZY; then PRÍKAZY; ]... [ else " +"PRÍKAZY; ] fi" + +#: builtins.c:194 +msgid "while COMMANDS; do COMMANDS; done" +msgstr "while PRÍKAZY; do PRÍKAZY; done" + +#: builtins.c:196 +msgid "until COMMANDS; do COMMANDS; done" +msgstr "until PRÍKAZY; do PRÍKAZY; done" + +#: builtins.c:198 +msgid "function name { COMMANDS ; } or name () { COMMANDS ; }" +msgstr "" +"function názov_funkcie { PRÍKAZY ; } alebo názov_funkcie () { PRÍKAZY ; }" + +#: builtins.c:200 +msgid "{ COMMANDS ; }" +msgstr "{ PRÍKAZY ; }" + +#: builtins.c:202 +msgid "job_spec [&]" +msgstr "Å¡pec_úlohy [&]" + +#: builtins.c:204 +msgid "(( expression ))" +msgstr "(( výraz ))" + +#: builtins.c:206 +msgid "[[ expression ]]" +msgstr "[[ výraz ]]" + +#: builtins.c:208 +msgid "variables - Names and meanings of some shell variables" +msgstr "premenné - Názvy a významy niektorých premenných shellu" + +#: builtins.c:211 +msgid "pushd [-n] [+N | -N | dir]" +msgstr "pushd [-n] [+N | -N | adr]" + +#: builtins.c:215 +msgid "popd [-n] [+N | -N]" +msgstr "popd [-n] [+N | -N]" + +#: builtins.c:219 +msgid "dirs [-clpv] [+N] [-N]" +msgstr "dirs [-clpv] [+N] [-N]" + +#: builtins.c:222 +msgid "shopt [-pqsu] [-o] [optname ...]" +msgstr "shopt [-pqsu] [-o] [názov_voľby ...]" + +#: builtins.c:224 +msgid "printf [-v var] format [arguments]" +msgstr "printf [-v var] formát [argumenty]" + +#: builtins.c:227 +msgid "" +"complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W " +"wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] " +"[name ...]" +msgstr "" +"complete [-abcdefgjksuv] [-pr] [-o voľba] [-A operácia] [-G glob_vzor] [-W " +"zoznam_slov] [-F funkcia] [-C príkaz] [-X vzor_filtra] [-P predpona] [-S " +"prípona] [názov ...]" + +#: builtins.c:231 +msgid "" +"compgen [-abcdefgjksuv] [-o option] [-A action] [-G globpat] [-W wordlist] " +"[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]" +msgstr "" +"compgen [-abcdefgjksuv] [-o voľba] [-A operácia] [-G glob_vzor] [-W " +"zoznam_slov] [-F funkcia] [-C príkaz] [-X vzor_filtra] [-P predpona] [-S " +"prípona] [slovo]" + +#: builtins.c:235 +msgid "compopt [-o|+o option] [name ...]" +msgstr "compopt [-o|+o voľba] [názov ...]" + +#: builtins.c:238 +msgid "" +"mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c " +"quantum] [array]" +msgstr "" +"mapfile [-n počet] [-O začiatok] [-s počet] [-t] [-u fd] [-C spätné_volanie] " +"[-c kvantum] [pole]" + +#: builtins.c:250 +#, fuzzy +msgid "" +"Define or display aliases.\n" +" \n" +" Without arguments, `alias' prints the list of aliases in the reusable\n" +" form `alias NAME=VALUE' on standard output.\n" +" \n" +" Otherwise, an alias is defined for each NAME whose VALUE is given.\n" +" A trailing space in VALUE causes the next word to be checked for\n" +" alias substitution when the alias is expanded.\n" +" \n" +" Options:\n" +" -p\tPrint all defined aliases in a reusable format\n" +" \n" +" Exit Status:\n" +" alias returns true unless a NAME is supplied for which no alias has " +"been\n" +" defined." +msgstr "" +"„alias“ bez argumentov alebo s voľbou -p vypíše na Å¡tandardný\n" +" výstup zoznam aliasov v tvare NÁZOV=HODNOTA.\n" +" Inak je alias definovaný pre každý NÁZOV, ktorého HODNOTA je zadaná.\n" +" Medzera na konci HODNOTY spôsobí, že sa v ďalÅ¡om slove\n" +" skontroluje substitúcia aliasu pri expanzii aliasu. Alias vracia\n" +" true ak nie je zadaný NÁZOV, pre ktorý nebol definovaný žiadny alias." + +#: builtins.c:272 +#, fuzzy +msgid "" +"Remove each NAME from the list of defined aliases.\n" +" \n" +" Options:\n" +" -a\tremove all alias definitions.\n" +" \n" +" Return success unless a NAME is not an existing alias." +msgstr "" +"Odstráni NÁZVY zo zoznamu definovaných aliasov. Ak je uvedená voľba -a,\n" +" odstráni vÅ¡etky definície aliasov." + +#: builtins.c:285 +#, fuzzy +msgid "" +"Set Readline key bindings and variables.\n" +" \n" +" Bind a key sequence to a Readline function or a macro, or set a\n" +" Readline variable. The non-option argument syntax is equivalent to\n" +" that found in ~/.inputrc, but must be passed as a single argument:\n" +" e.g., bind '\"\\C-x\\C-r\": re-read-init-file'.\n" +" \n" +" Options:\n" +" -m keymap Use KEYMAP as the keymap for the duration of this\n" +" command. Acceptable keymap names are emacs,\n" +" emacs-standard, emacs-meta, emacs-ctlx, vi, vi-" +"move,\n" +" vi-command, and vi-insert.\n" +" -l List names of functions.\n" +" -P List function names and bindings.\n" +" -p List functions and bindings in a form that can be\n" +" reused as input.\n" +" -S List key sequences that invoke macros and their " +"values\n" +" -s List key sequences that invoke macros and their " +"values\n" +" in a form that can be reused as input.\n" +" -V List variable names and values\n" +" -v List variable names and values in a form that can\n" +" be reused as input.\n" +" -q function-name Query about which keys invoke the named function.\n" +" -u function-name Unbind all keys which are bound to the named " +"function.\n" +" -r keyseq Remove the binding for KEYSEQ.\n" +" -f filename Read key bindings from FILENAME.\n" +" -x keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n" +" \t\t\t\tKEYSEQ is entered.\n" +" \n" +" Exit Status:\n" +" bind returns 0 unless an unrecognized option is given or an error occurs." +msgstr "" +"Naviaže sekvenciu klávesov na funkciu alebo makro Readline alebo\n" +" nastaviÅ¥ premennú Readline. Syntax argumentu je rovnaká ako tá\n" +" v ~/.inputrc, ale musí sa podaÅ¥ ako jediný argument:\n" +" bind '\"\\C-x\\C-r\": re-read-init-file'.\n" +" bind akceptuje nasledovné voľby:\n" +" -m klávmap Použije „klávmap“ ako mapu klávesov počas trvania\n" +" tohto príkazu. Prijateľné názvy klávesových máp sú\n" +" emacs emacs-standard, emacs-meta, emacs-ctlx, vi,\n" +" vi-move, vi-command a vi-insert.\n" +" -l Vypíše názvy funkcií.\n" +" -P Vypíše názvy funkcií a väzby.\n" +" -p Vypíše názvy funkcií a väzby v tvare, ktorý je\n" +" možné znova použiÅ¥ ako vstup.\n" +" -r kláv_sek Odstráni väzbu pre kláv_sek.\n" +" -x kláv_sek:príkaz_shellu\tSpôsobí vykonanie PRÍKAZU_SHELLU po\n" +" \t\t\t\tzadaní KLÁV_SEK.\n" +" -f súboru Načíta klávesové väzby z SÚBORU.\n" +" -q názov-funkcie Zistí, ktoré klávesy vyvolávajú túto funkciu.\n" +" -u názov-funkcie Zruší väzby vÅ¡etkých kláves naviazaných na túto " +"funkciu.\n" +" -V Vypíše názvy premenných a hodnoty\n" +" -v Vypíše názvy premenných a hodnoty v tvare, ktorý " +"je\n" +" možné znova použiÅ¥ ako vstup.\n" +" -S Vypíše klávesové sekvencie, ktoré vyvolávajú makrá " +"a ich hodnoty\n" +" -s Vypíše klávesové sekvencie, ktoré vyvolávajú makrá " +"a ich hodnoty\n" +" v tvare, ktorý je možné znova použiÅ¥ ako vstup." + +#: builtins.c:322 +msgid "" +"Exit for, while, or until loops.\n" +" \n" +" Exit a FOR, WHILE or UNTIL loop. If N is specified, break N enclosing\n" +" loops.\n" +" \n" +" Exit Status:\n" +" The exit status is 0 unless N is not greater than or equal to 1." +msgstr "" +"Ukončenie cyklu for, while alebo until.\n" +" \n" +" UkončiÅ¥ cyklus FOR, WHILE alebo UNTIL. Ak je zadané N, ukončiÅ¥ N\n" +" nadradených vnorených cyklov.\n" +" \n" +" Návratový kód:\n" +" Návratový kód je 0 ak N nie je väčšie alebo rovné 1." + +#: builtins.c:334 +#, fuzzy +msgid "" +"Resume for, while, or until loops.\n" +" \n" +" Resumes the next iteration of the enclosing FOR, WHILE or UNTIL loop.\n" +" If N is specified, resumes the Nth enclosing loop.\n" +" \n" +" Exit Status:\n" +" The exit status is 0 unless N is not greater than or equal to 1." +msgstr "" +"Pokračuje v nasledujúcej iterácii cyklu FOR, WHILE alebo UNTIL.\n" +"Ak je uvedené N, pokračovaÅ¥ v ďalÅ¡ej iterácii cyklu o N úrovní vyÅ¡Å¡ej." + +#: builtins.c:346 +msgid "" +"Execute shell builtins.\n" +" \n" +" Execute SHELL-BUILTIN with arguments ARGs without performing command\n" +" lookup. This is useful when you wish to reimplement a shell builtin\n" +" as a shell function, but need to execute the builtin within the " +"function.\n" +" \n" +" Exit Status:\n" +" Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is\n" +" not a shell builtin.." +msgstr "" +"VykonaÅ¥ vstavenú funkciu shellu.\n" +" \n" +" Vykoná vstavenú funkciu shellu s argumentami ARG bez vykonania\n" +" vyhľadania príkazu. To sa hodí, keď chcete reimplementovaÅ¥ vstavanú\n" +" funkciu shellu ako funkciu shellu, ale potrebujete vstavanú funkciu " +"volaÅ¥\n" +" v rámci vaÅ¡ej funkcie.\n" +" \n" +" Návratový kód:\n" +" Vracia návratový kód vstavanej funkcie shellu alebo 0 ak argument nie " +"je\n" +" vstavaná funkcia shellu." + +#: builtins.c:361 +#, fuzzy +msgid "" +"Return the context of the current subroutine call.\n" +" \n" +" Without EXPR, returns \"$line $filename\". With EXPR, returns\n" +" \"$line $subroutine $filename\"; this extra information can be used to\n" +" provide a stack trace.\n" +" \n" +" The value of EXPR indicates how many call frames to go back before the\n" +" current one; the top frame is frame 0.\n" +" \n" +" Exit Status:\n" +" Returns 0 unless the shell is not executing a shell function or EXPR\n" +" is invalid." +msgstr "" +"Vracia kontext aktuálneho volania podprocedúry.\n" +"\n" +" Bez VÝR, vráti „$line $filename“. S VÝR,\n" +" vráti „$line $subroutine $filename“; túto informáciu\n" +" je možné využiÅ¥ pre trasovanie zásobníka. \n" +" Hodnota VÝR určuje o koľko rámcov volania sa vrátiÅ¥\n" +" pred aktuálny; najvyšší rámec má číslo 0." + +#: builtins.c:379 +#, fuzzy +msgid "" +"Change the shell working directory.\n" +" \n" +" Change the current directory to DIR. The default DIR is the value of " +"the\n" +" HOME shell variable.\n" +" \n" +" The variable CDPATH defines the search path for the directory " +"containing\n" +" DIR. Alternative directory names in CDPATH are separated by a colon " +"(:).\n" +" A null directory name is the same as the current directory. If DIR " +"begins\n" +" with a slash (/), then CDPATH is not used.\n" +" \n" +" If the directory is not found, and the shell option `cdable_vars' is " +"set,\n" +" the word is assumed to be a variable name. If that variable has a " +"value,\n" +" its value is used for DIR.\n" +" \n" +" Options:\n" +" -L\tforce symbolic links to be followed\n" +" -P\tuse the physical directory structure without following symbolic\n" +" \tlinks\n" +" \n" +" The default is to follow symbolic links, as if `-L' were specified.\n" +" \n" +" Exit Status:\n" +" Returns 0 if the directory is changed; non-zero otherwise." +msgstr "" +"Zmení aktuálny adresár na ADR. Premenná $HOME je Å¡tandardný\n" +" ADR. Premenná CDPATH definuje cesty, v ktorých sa hľadá adresár\n" +" obsahujúci ADR. Alternatívne názvy adresárov vCDPATH sú\n" +" oddelené dvojbodkou (:). Prázdny (null) názov adresára zodpovedá\n" +" aktuálnemu adresáru, t.j. „.“. Ak ADR začína lomkou (/), CDPATH\n" +" sa nepoužije. Ak adresár nebol nájdený a je nastavená voľba shellu\n" +" „cdable_vars“ skúste toto slovo ako názov premennej. Ak táto\n" +" premenná má hodnotu, vykoná cd na hodnotu premennej.\n" +" Voľba -P vraví, že sa má použiÅ¥ fyzická Å¡truktúra adresárov a nie\n" +" nasledovaÅ¥ symbolické odkazy; voľba -L vynúti nasledovanie\n" +" symbolických odkazov." + +#: builtins.c:407 +msgid "" +"Print the name of the current working directory.\n" +" \n" +" Options:\n" +" -L\tprint the value of $PWD if it names the current working\n" +" \tdirectory\n" +" -P\tprint the physical directory, without any symbolic links\n" +" \n" +" By default, `pwd' behaves as if `-L' were specified.\n" +" \n" +" Exit Status:\n" +" Returns 0 unless an invalid option is given or the current directory\n" +" cannot be read." +msgstr "" +"VypísaÅ¥ názov aktuálneho pracovného adresára.\n" +" \n" +" Voľby:\n" +" -L\tvypísaÅ¥ hodnotu $PWD ak pomenúva aktuálny pracovný\n" +" \tadresár\n" +" -P\tvypísaÅ¥ fyzický adresár bez symbolických odkazov\n" +" \n" +" Å tandardne sa „pwd“ správa ako keby bolo uvedené „-L“.\n" +" \n" +" Návratový kód:\n" +" Vracia 0 ak nie je zadaná neplatná voľba alebo nie je možné\n" +" prečítaÅ¥ aktuálny adresár." + +#: builtins.c:424 +#, fuzzy +msgid "" +"Null command.\n" +" \n" +" No effect; the command does nothing.\n" +" \n" +" Exit Status:\n" +" Always succeeds." +msgstr "Bez účinku; príkaz nič nerobí. Vráti návratový kód nula." + +#: builtins.c:435 +msgid "" +"Return a successful result.\n" +" \n" +" Exit Status:\n" +" Always succeeds." +msgstr "" +"Vráti úspeÅ¡ný výsledok\n" +" \n" +" Návratový kód:\n" +" Vždy vráti 0." + +#: builtins.c:444 +#, fuzzy +msgid "" +"Return an unsuccessful result.\n" +" \n" +" Exit Status:\n" +" Always fails." +msgstr "Vráti neúspeÅ¡ný výsledok." + +#: builtins.c:453 +msgid "" +"Execute a simple command or display information about commands.\n" +" \n" +" Runs COMMAND with ARGS suppressing shell function lookup, or display\n" +" information about the specified COMMANDs. Can be used to invoke " +"commands\n" +" on disk when a function with the same name exists.\n" +" \n" +" Options:\n" +" -p\tuse a default value for PATH that is guaranteed to find all of\n" +" \tthe standard utilities\n" +" -v\tprint a description of COMMAND similar to the `type' builtin\n" +" -V\tprint a more verbose description of each COMMAND\n" +" \n" +" Exit Status:\n" +" Returns exit status of COMMAND, or failure if COMMAND is not found." +msgstr "" + +#: builtins.c:472 +msgid "" +"Set variable values and attributes.\n" +" \n" +" Declare variables and give them attributes. If no NAMEs are given,\n" +" display the attributes and values of all variables.\n" +" \n" +" Options:\n" +" -f\trestrict action or display to function names and definitions\n" +" -F\trestrict display to function names only (plus line number and\n" +" \tsource file when debugging)\n" +" -p\tdisplay the attributes and value of each NAME\n" +" \n" +" Options which set attributes:\n" +" -a\tto make NAMEs indexed arrays (if supported)\n" +" -A\tto make NAMEs associative arrays (if supported)\n" +" -i\tto make NAMEs have the `integer' attribute\n" +" -l\tto convert NAMEs to lower case on assignment\n" +" -r\tto make NAMEs readonly\n" +" -t\tto make NAMEs have the `trace' attribute\n" +" -u\tto convert NAMEs to upper case on assignment\n" +" -x\tto make NAMEs export\n" +" \n" +" Using `+' instead of `-' turns off the given attribute.\n" +" \n" +" Variables with the integer attribute have arithmetic evaluation (see\n" +" the `let' command) performed when the variable is assigned a value.\n" +" \n" +" When used in a function, `declare' makes NAMEs local, as with the " +"`local'\n" +" command.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" + +#: builtins.c:508 +msgid "" +"Set variable values and attributes.\n" +" \n" +" Obsolete. See `help declare'." +msgstr "" + +#: builtins.c:516 +msgid "" +"Define local variables.\n" +" \n" +" Create a local variable called NAME, and give it VALUE. OPTION can\n" +" be any option accepted by `declare'.\n" +" \n" +" Local variables can only be used within a function; they are visible\n" +" only to the function where they are defined and its children.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied, an error occurs,\n" +" or the shell is not executing a function." +msgstr "" + +#: builtins.c:533 +#, fuzzy +msgid "" +"Write arguments to the standard output.\n" +" \n" +" Display the ARGs on the standard output followed by a newline.\n" +" \n" +" Options:\n" +" -n\tdo not append a newline\n" +" -e\tenable interpretation of the following backslash escapes\n" +" -E\texplicitly suppress interpretation of backslash escapes\n" +" \n" +" `echo' interprets the following backslash-escaped characters:\n" +" \\a\talert (bell)\n" +" \\b\tbackspace\n" +" \\c\tsuppress further output\n" +" \\e\tescape character\n" +" \\f\tform feed\n" +" \\n\tnew line\n" +" \\r\tcarriage return\n" +" \\t\thorizontal tab\n" +" \\v\tvertical tab\n" +" \\\\\tbackslash\n" +" \\0nnn\tthe character whose ASCII code is NNN (octal). NNN can be\n" +" \t0 to 3 octal digits\n" +" \\xHH\tthe eight-bit character whose value is HH (hexadecimal). HH\n" +" \tcan be one or two hex digits\n" +" \n" +" Exit Status:\n" +" Returns success unless a write error occurs." +msgstr "" +"Vypíše ARGumenty. S voľbou -n bude posledný znak nového\n" +" riadka potlačený. S voľbou -e sa zapne interpretácia\n" +" nasledovných znakov začínajúcich spätnou lomkou:\n" +" \t\\a\tvýstraha (zvonček)\n" +" \t\\b\tbackspace\n" +" \t\\c\tptlačiÅ¥ posledný znak nového riadka\n" +" \t\\E\tvykonaÅ¥ escape znaku\n" +" \t\\f\tform feed\n" +" \t\\n\tnový riadok\n" +" \t\\r\tnávrat vozíka\n" +" \t\\t\thorizontálny tabulátor\n" +" \t\\v\tvertikálny tabulátor\n" +" \t\\\\\tspätná lomka\n" +" \t\\0nnn\tznak s ASCII kódom NNN (osmičkový). NNN môže maÅ¥\n" +" \t\t0 až 3 osmičkové číslice\n" +" \n" +" Voľbou -E môžete explicitne vypnuÅ¥ interpretáciu vyÅ¡Å¡ie \n" +" uvedených znakov." + +#: builtins.c:567 +msgid "" +"Write arguments to the standard output.\n" +" \n" +" Display the ARGs on the standard output followed by a newline.\n" +" \n" +" Options:\n" +" -n\tdo not append a newline\n" +" \n" +" Exit Status:\n" +" Returns success unless a write error occurs." +msgstr "" + +#: builtins.c:582 +msgid "" +"Enable and disable shell builtins.\n" +" \n" +" Enables and disables builtin shell commands. Disabling allows you to\n" +" execute a disk command which has the same name as a shell builtin\n" +" without using a full pathname.\n" +" \n" +" Options:\n" +" -a\tprint a list of builtins showing whether or not each is enabled\n" +" -n\tdisable each NAME or display a list of disabled builtins\n" +" -p\tprint the list of builtins in a reusable format\n" +" -s\tprint only the names of Posix `special' builtins\n" +" \n" +" Options controlling dynamic loading:\n" +" -f\tLoad builtin NAME from shared object FILENAME\n" +" -d\tRemove a builtin loaded with -f\n" +" \n" +" Without options, each NAME is enabled.\n" +" \n" +" To use the `test' found in $PATH instead of the shell builtin\n" +" version, type `enable -n test'.\n" +" \n" +" Exit Status:\n" +" Returns success unless NAME is not a shell builtin or an error occurs." +msgstr "" + +#: builtins.c:610 +msgid "" +"Execute arguments as a shell command.\n" +" \n" +" Combine ARGs into a single string, use the result as input to the " +"shell,\n" +" and execute the resulting commands.\n" +" \n" +" Exit Status:\n" +" Returns exit status of command or success if command is null." +msgstr "" + +#: builtins.c:622 +#, fuzzy +msgid "" +"Parse option arguments.\n" +" \n" +" Getopts is used by shell procedures to parse positional parameters\n" +" as options.\n" +" \n" +" OPTSTRING contains the option letters to be recognized; if a letter\n" +" is followed by a colon, the option is expected to have an argument,\n" +" which should be separated from it by white space.\n" +" \n" +" Each time it is invoked, getopts will place the next option in the\n" +" shell variable $name, initializing name if it does not exist, and\n" +" the index of the next argument to be processed into the shell\n" +" variable OPTIND. OPTIND is initialized to 1 each time the shell or\n" +" a shell script is invoked. When an option requires an argument,\n" +" getopts places that argument into the shell variable OPTARG.\n" +" \n" +" getopts reports errors in one of two ways. If the first character\n" +" of OPTSTRING is a colon, getopts uses silent error reporting. In\n" +" this mode, no error messages are printed. If an invalid option is\n" +" seen, getopts places the option character found into OPTARG. If a\n" +" required argument is not found, getopts places a ':' into NAME and\n" +" sets OPTARG to the option character found. If getopts is not in\n" +" silent mode, and an invalid option is seen, getopts places '?' into\n" +" NAME and unsets OPTARG. If a required argument is not found, a '?'\n" +" is placed in NAME, OPTARG is unset, and a diagnostic message is\n" +" printed.\n" +" \n" +" If the shell variable OPTERR has the value 0, getopts disables the\n" +" printing of error messages, even if the first character of\n" +" OPTSTRING is not a colon. OPTERR has the value 1 by default.\n" +" \n" +" Getopts normally parses the positional parameters ($0 - $9), but if\n" +" more arguments are given, they are parsed instead.\n" +" \n" +" Exit Status:\n" +" Returns success if an option is found; fails if the end of options is\n" +" encountered or an error occurs." +msgstr "" +"Getopts používajú procedúry shellu na analýzu pozičných parametrov.\n" +" \n" +" OPTSTRING obsahuje písmená volieb, ktoré pozná; ak po písmene\n" +" nasleduje dvojbodka, po voľbe sa očakáva argument, ktorý by mal\n" +" od nej byÅ¥ oddelený netlačiteľným znakom (medzera).\n" +" \n" +" Po každom zavolaní getopts dá nasledujúcu voľbu do premennej\n" +" shellu $name, ak name neexeistuje, tak ho inicializuje a index\n" +" ďalÅ¡ieho argumentu, ktorý sa má spracovaÅ¥, dá do premennej\n" +" shellu OPTIND. OPTIND je inicializovaný na 1 po každom vyvolaní\n" +" shellu alebo shell skriptu. Keď voľba vyžaduje argument, getopts\n" +" dá tento argument do premennej shellu OPTARG.\n" +" \n" +" getopts oznamuje chyby jedným z dvoch spôsobov. Ak je prvý znak\n" +" OPTSTRING dvojbodka, getopts použije tiché oznamovanie chýb. V\n" +" Tomto režime sa nevypíšu žiadne chybové správy. Ak getopts vidí\n" +" neplatnú voľbu, dá znak nájdenej voľby do OPTARG. Ak nenájde\n" +" požadovaný argument, getopts dá do NAME „:“ a nastaví OPTARG\n" +" na znak nájdenej voľby. Ak getopts nie je v tichom režime a vidí\n" +" neplatnú voľbu, dá do NAME „?“ a zruší (unset) OPTARG. Ak nenájde\n" +" požadovaný argument, getopts dá do NAME „?“, zruší (unset) OPTARG\n" +" a vypíše diagnostickú správu.\n" +" \n" +" Ak premenná shellu OPTERR má hodnotu 0, getopts vypne vypisovanie\n" +" chybových správ, aj ak prvý znak OPTSTRING nie je dvojbodka.\n" +" OPTERR má Å¡tandardne hodnotu 1.\n" +" \n" +" Getopts normálne spracúva pozičné parametre ($0 - $9), ale ak je\n" +" zadaných viac argumentov, spracuje tieto." + +#: builtins.c:664 +msgid "" +"Replace the shell with the given command.\n" +" \n" +" Execute COMMAND, replacing this shell with the specified program.\n" +" ARGUMENTS become the arguments to COMMAND. If COMMAND is not " +"specified,\n" +" any redirections take effect in the current shell.\n" +" \n" +" Options:\n" +" -a name\tpass NAME as the zeroth argument to COMMAND\n" +" -c\t\texecute COMMAND with an empty environment\n" +" -l\t\tplace a dash in the zeroth argument to COMMAND\n" +" \n" +" If the command cannot be executed, a non-interactive shell exits, " +"unless\n" +" the shell option `execfail' is set.\n" +" \n" +" Exit Status:\n" +" Returns success unless COMMAND is not found or a redirection error " +"occurs." +msgstr "" + +#: builtins.c:685 +#, fuzzy +msgid "" +"Exit the shell.\n" +" \n" +" Exits the shell with a status of N. If N is omitted, the exit status\n" +" is that of the last command executed." +msgstr "" +"UkončiÅ¥ shell so stavom N. Ak sa N vynechá, stav sa nastaví\n" +" podľa stavu posledného vykonaného príkazu." + +#: builtins.c:694 +msgid "" +"Exit a login shell.\n" +" \n" +" Exits a login shell with exit status N. Returns an error if not " +"executed\n" +" in a login shell." +msgstr "" + +#: builtins.c:704 +#, fuzzy +msgid "" +"Display or execute commands from the history list.\n" +" \n" +" fc is used to list or edit and re-execute commands from the history " +"list.\n" +" FIRST and LAST can be numbers specifying the range, or FIRST can be a\n" +" string, which means the most recent command beginning with that\n" +" string.\n" +" \n" +" Options:\n" +" -e ENAME\tselect which editor to use. Default is FCEDIT, then " +"EDITOR,\n" +" \t\tthen vi\n" +" -l \tlist lines instead of editing\n" +" -n\tomit line numbers when listing\n" +" -r\treverse the order of the lines (newest listed first)\n" +" \n" +" With the `fc -s [pat=rep ...] [command]' format, COMMAND is\n" +" re-executed after the substitution OLD=NEW is performed.\n" +" \n" +" A useful alias to use with this is r='fc -s', so that typing `r cc'\n" +" runs the last command beginning with `cc' and typing `r' re-executes\n" +" the last command.\n" +" \n" +" Exit Status:\n" +" Returns success or status of executed command; non-zero if an error " +"occurs." +msgstr "" +"fc sa používa na vypísanie alebo úpravu a opätovné vykonanie príkazov.\n" +" z histórie\n" +" PRVÝ a POSLEDNÝ môžu byÅ¥ čísla udávajúce rozsah alebo PRVÝ môže byÅ¥\n" +" reÅ¥azec, ktorý znamená najnedávnejší príkaz začínajúci týmto reÅ¥azcom.\n" +" \n" +" -e ENAME zvolí editor, ktorý sa má použiÅ¥. Å tandardne je to FCEDIT, " +"potom EDITOR,\n" +" potom vi.\n" +" \n" +" -l znamená vypísaÅ¥ riadky namiesto úpravy.\n" +" -n znamená nevypisovaÅ¥ čísla riadkov.\n" +" -r znamená obrátiÅ¥ poradie riadkov (najnovÅ¡ie budú vypísané prvé).\n" +" \n" +" S formátom „fc -s [pat=rep ...] [príkaz]“ sa znova vykoná uvedený\n" +" príkaz po vykonaní náhrady OLD=NEW.\n" +" \n" +" Užitočný alias, ktorý sa dá s týmto použiÅ¥, je r='fc -s', takže " +"napísaním\n" +" „r cc“ spustíte posledný príkaz začínajúci „cc“ a napísaním „r“ " +"opätovne\n" +" vykonáte posledný príkaz." + +#: builtins.c:734 +#, fuzzy +msgid "" +"Move job to the foreground.\n" +" \n" +" Place the job identified by JOB_SPEC in the foreground, making it the\n" +" current job. If JOB_SPEC is not present, the shell's notion of the\n" +" current job is used.\n" +" \n" +" Exit Status:\n" +" Status of command placed in foreground, or failure if an error occurs." +msgstr "" +"Dá JOB_SPEC do popredia a urobí ju aktuálnou úlohou. Ak JOB_SPEC\n" +" nie je prítomná, použije sa aktuálna úloha shellu." + +#: builtins.c:749 +#, fuzzy +msgid "" +"Move jobs to the background.\n" +" \n" +" Place the jobs identified by each JOB_SPEC in the background, as if " +"they\n" +" had been started with `&'. If JOB_SPEC is not present, the shell's " +"notion\n" +" of the current job is used.\n" +" \n" +" Exit Status:\n" +" Returns success unless job control is not enabled or an error occurs." +msgstr "" +"Dá každú JOB_SPEC do pozadia, ako keby bola spustená s „&“. Ak\n" +" JOB_SPEC nie je prítomná, použije sa aktuálna úloha shellu." + +#: builtins.c:763 +msgid "" +"Remember or display program locations.\n" +" \n" +" Determine and remember the full pathname of each command NAME. If\n" +" no arguments are given, information about remembered commands is " +"displayed.\n" +" \n" +" Options:\n" +" -d\t\tforget the remembered location of each NAME\n" +" -l\t\tdisplay in a format that may be reused as input\n" +" -p pathname\tuse PATHNAME is the full pathname of NAME\n" +" -r\t\tforget all remembered locations\n" +" -t\t\tprint the remembered location of each NAME, preceding\n" +" \t\teach location with the corresponding NAME if multiple\n" +" \t\tNAMEs are given\n" +" Arguments:\n" +" NAME\t\tEach NAME is searched for in $PATH and added to the list\n" +" \t\tof remembered commands.\n" +" \n" +" Exit Status:\n" +" Returns success unless NAME is not found or an invalid option is given." +msgstr "" + +#: builtins.c:788 +msgid "" +"Display information about builtin commands.\n" +" \n" +" Displays brief summaries of builtin commands. If PATTERN is\n" +" specified, gives detailed help on all commands matching PATTERN,\n" +" otherwise the list of help topics is printed.\n" +" \n" +" Options:\n" +" -d\toutput short description for each topic\n" +" -m\tdisplay usage in pseudo-manpage format\n" +" -s\toutput only a short usage synopsis for each topic matching\n" +" \tPATTERN\n" +" \n" +" Arguments:\n" +" PATTERN\tPattern specifiying a help topic\n" +" \n" +" Exit Status:\n" +" Returns success unless PATTERN is not found or an invalid option is " +"given." +msgstr "" + +#: builtins.c:812 +#, fuzzy +msgid "" +"Display or manipulate the history list.\n" +" \n" +" Display the history list with line numbers, prefixing each modified\n" +" entry with a `*'. An argument of N lists only the last N entries.\n" +" \n" +" Options:\n" +" -c\tclear the history list by deleting all of the entries\n" +" -d offset\tdelete the history entry at offset OFFSET.\n" +" \n" +" -a\tappend history lines from this session to the history file\n" +" -n\tread all history lines not already read from the history file\n" +" -r\tread the history file and append the contents to the history\n" +" \tlist\n" +" -w\twrite the current history to the history file\n" +" \tand append them to the history list\n" +" \n" +" -p\tperform history expansion on each ARG and display the result\n" +" \twithout storing it in the history list\n" +" -s\tappend the ARGs to the history list as a single entry\n" +" \n" +" If FILENAME is given, it is used as the history file. Otherwise,\n" +" if $HISTFILE has a value, that is used, else ~/.bash_history.\n" +" \n" +" If the $HISTTIMEFORMAT variable is set and not null, its value is used\n" +" as a format string for strftime(3) to print the time stamp associated\n" +" with each displayed history entry. No time stamps are printed " +"otherwise.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or an error occurs." +msgstr "" +"Zobrazí históriu s číslami riadkov. Riadky s „*“ boli zmenené.\n" +" Argument N znamená zobraziÅ¥ iba posledných N riadkov. Voľba\n" +" „-c“ spôsobí vyčistenie histórie vymazaním vÅ¡etkých jej položiek.\n" +" Voľba „-d“ zmaže položku histórie na ofsete OFSET. Voľba „-w“\n" +" vypíše aktuálnu históriu do súbora histórie; „-r“ znamená prečítaÅ¥\n" +" súbor a pridaÅ¥ jeho obsah do zoznamu histórie. „-a“ znamená\n" +" pridaÅ¥ riadky histórie z aktuálnej relácie do súbory s históriou.\n" +" Argument „-n“ znamená prečítaÅ¥ vÅ¡etky zatiaľ neprečítané riadky\n" +" zo súboru histórie a pridaÅ¥ ich do zoznamu histórie.\n" +" \n" +" If FILENAME is given, then that is used as the history file else\n" +" if $HISTFILE has a value, that is used, else ~/.bash_history.\n" +" If the -s option is supplied, the non-option ARGs are appended to\n" +" the history list as a single entry. The -p option means to perform\n" +" history expansion on each ARG and display the result, without storing\n" +" anything in the history list.\n" +" \n" +" If the $HISTTIMEFORMAT variable is set and not null, its value is used\n" +" as a format string for strftime(3) to print the time stamp associated\n" +" with each displayed history entry. No time stamps are printed otherwise." + +#: builtins.c:848 +#, fuzzy +msgid "" +"Display status of jobs.\n" +" \n" +" Lists the active jobs. JOBSPEC restricts output to that job.\n" +" Without options, the status of all active jobs is displayed.\n" +" \n" +" Options:\n" +" -l\tlists process IDs in addition to the normal information\n" +" -n\tlist only processes that have changed status since the last\n" +" \tnotification\n" +" -p\tlists process IDs only\n" +" -r\trestrict output to running jobs\n" +" -s\trestrict output to stopped jobs\n" +" \n" +" If -x is supplied, COMMAND is run after all job specifications that\n" +" appear in ARGS have been replaced with the process ID of that job's\n" +" process group leader.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or an error occurs.\n" +" If -x is used, returns the exit status of COMMAND." +msgstr "" +"Vypíše aktívne úlohy. Voľba „-l“ vypíše naviac aj ID procesov.\n" +" Voľba „-p“ vypíše iba ID procesov. Ak je uvedená voľba „-n“,\n" +" vypíšu sa iba procesy, ktorých stav sa zmenil od poslednej kontroly.\n" +" JOBSPEC vypíše iba úlohu s daným JOBSPEC. Voľby „-r“ a „-s“\n" +" obmedzia výstup iba na bežiace a zastavené úlohy. Bez volieb sa\n" +" vypíše stav vÅ¡etkých aktívnych úloh. S voľbou „-x“ sa spustí PRÍKAZ\n" +" po tom, ako každá zo Å¡pecifikácií úloh, ktoré sú uvedené v ARGS,\n" +" boli nahradené ID procesu lídra skupiny procesov danej úlohy." + +#: builtins.c:875 +msgid "" +"Remove jobs from current shell.\n" +" \n" +" Removes each JOBSPEC argument from the table of active jobs. Without\n" +" any JOBSPECs, the shell uses its notion of the current job.\n" +" \n" +" Options:\n" +" -a\tremove all jobs if JOBSPEC is not supplied\n" +" -h\tmark each JOBSPEC so that SIGHUP is not sent to the job if the\n" +" \tshell receives a SIGHUP\n" +" -r\tremove only running jobs\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option or JOBSPEC is given." +msgstr "" + +#: builtins.c:894 +#, fuzzy +msgid "" +"Send a signal to a job.\n" +" \n" +" Send the processes identified by PID or JOBSPEC the signal named by\n" +" SIGSPEC or SIGNUM. If neither SIGSPEC nor SIGNUM is present, then\n" +" SIGTERM is assumed.\n" +" \n" +" Options:\n" +" -s sig\tSIG is a signal name\n" +" -n sig\tSIG is a signal number\n" +" -l\tlist the signal names; if arguments follow `-l' they are\n" +" \tassumed to be signal numbers for which names should be listed\n" +" \n" +" Kill is a shell builtin for two reasons: it allows job IDs to be used\n" +" instead of process IDs, and allows processes to be killed if the limit\n" +" on processes that you can create is reached.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or an error occurs." +msgstr "" +"PoÅ¡le procesom s uvedeným PID (alebo JOBSPEC) signál SIGSPEC. Ak\n" +" nie je SIGSPEC uvedená, predpokladá sa SIGTERM. Argument „-l“\n" +" vypíše názvy signálov; ak sú argumenty uvedené po „-l“, predpokladá\n" +" sa, že sú to čísla signálov ktorých názvy sa majú zobraziÅ¥. Kill je\n" +" vstavaný (builtin) príkaz shellu z dvoch dôvodov: umožňuje použitie\n" +" ID úlohy okrem ID procesu a ak dosiahnete limi tprocesov, ktoré\n" +" môžete vytvoriÅ¥, nemusíte spúšťaÅ¥ proces na ukončenie iného." + +#: builtins.c:917 +#, fuzzy +msgid "" +"Evaluate arithmetic expressions.\n" +" \n" +" Evaluate each ARG as an arithmetic expression. Evaluation is done in\n" +" fixed-width integers with no check for overflow, though division by 0\n" +" is trapped and flagged as an error. The following list of operators is\n" +" grouped into levels of equal-precedence operators. The levels are " +"listed\n" +" in order of decreasing precedence.\n" +" \n" +" \tid++, id--\tvariable post-increment, post-decrement\n" +" \t++id, --id\tvariable pre-increment, pre-decrement\n" +" \t-, +\t\tunary minus, plus\n" +" \t!, ~\t\tlogical and bitwise negation\n" +" \t**\t\texponentiation\n" +" \t*, /, %\t\tmultiplication, division, remainder\n" +" \t+, -\t\taddition, subtraction\n" +" \t<<, >>\t\tleft and right bitwise shifts\n" +" \t<=, >=, <, >\tcomparison\n" +" \t==, !=\t\tequality, inequality\n" +" \t&\t\tbitwise AND\n" +" \t^\t\tbitwise XOR\n" +" \t|\t\tbitwise OR\n" +" \t&&\t\tlogical AND\n" +" \t||\t\tlogical OR\n" +" \texpr ? expr : expr\n" +" \t\t\tconditional operator\n" +" \t=, *=, /=, %=,\n" +" \t+=, -=, <<=, >>=,\n" +" \t&=, ^=, |=\tassignment\n" +" \n" +" Shell variables are allowed as operands. The name of the variable\n" +" is replaced by its value (coerced to a fixed-width integer) within\n" +" an expression. The variable need not have its integer attribute\n" +" turned on to be used in an expression.\n" +" \n" +" Operators are evaluated in order of precedence. Sub-expressions in\n" +" parentheses are evaluated first and may override the precedence\n" +" rules above.\n" +" \n" +" Exit Status:\n" +" If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise.." +msgstr "" +"Každý ARG je aritmetický výraz, ktorý sa má vyhodnotiÅ¥. Vyhodnocuje\n" +" sa v celých číslach bez kontroly pretečenia, hoci delenie nulou sa\n" +" detekuje a označí ako chyba. Nasledujúci zoznam operátorov je\n" +" zoskupený do úrovní s rovnakou precedenciou operátorov.\n" +" Úrovne sú v poradí so zvyÅ¡ujúcou sa precedenciou.\n" +" \n" +" \tid++, id--\tpostinkrementácia premennej, postdekrementácia\n" +" \t++id, --id--\tpreinkrementácia premennej, predekrementácia\n" +" \t-, +\t\tunárne mínus, plus\n" +" \t!, ~\t\tlogická negácia a negácia po bitoch\n" +" \t**\t\tumocnenie\n" +" \t*, /, %\t\tnásobenie, delenie, zvyÅ¡ok po delení\n" +" \t+, -\t\tsčítanie, odčítanie\n" +" \t<<, >>\t\tposun doľava resp. doprava po bitoch\n" +" \t<=, >=, <, >\tporovnanie\n" +" \t==, !=\t\trovnosÅ¥, nerovnosÅ¥\n" +" \t&\t\tA po bitoch\n" +" \t^\t\tXOR po bitoch\n" +" \t|\t\tALEBO po bitoch\n" +" \t&&\t\tkonjunkcia\n" +" \t||\t\talternatíva\n" +" \tvýraz ? výraz : výraz\n" +" \t\t\tpodmienený operator\n" +" \t=, *=, /=, %=,\n" +" \t+=, -=, <<=, >>=,\n" +" \t&=, ^=, |=\tpriradenie\n" +" \n" +" Premenné shellu sú prípustné ako oeprandy. Názov premennej sa\n" +" v rámci výrazu nahradí jej hodotou (vyžiadanou ako celé číslo).\n" +" Nie je nutné, aby bol celočíselný atribút premennej zapnutý,\n" +" aby ju bolo možné použiÅ¥ vo výraze.\n" +" \n" +" Operátory sa vyhodnocujú v pradí podľa precedencie. Sub-výrazy\n" +" v zátvorkách sa vyhodnocujú ako prvé a majú prednosÅ¥ pred\n" +" hore uvedenými pravidlami precedencie.\n" +" \n" +" Ak sa posledný ARG vuhodnotí na 0, let vráti 1; 0 inak sa vráti 0." + +#: builtins.c:962 +#, fuzzy +msgid "" +"Read a line from the standard input and split it into fields.\n" +" \n" +" Reads a single line from the standard input, or from file descriptor FD\n" +" if the -u option is supplied. The line is split into fields as with " +"word\n" +" splitting, and the first word is assigned to the first NAME, the second\n" +" word to the second NAME, and so on, with any leftover words assigned to\n" +" the last NAME. Only the characters found in $IFS are recognized as " +"word\n" +" delimiters.\n" +" \n" +" If no NAMEs are supplied, the line read is stored in the REPLY " +"variable.\n" +" \n" +" Options:\n" +" -a array\tassign the words read to sequential indices of the array\n" +" \t\tvariable ARRAY, starting at zero\n" +" -d delim\tcontinue until the first character of DELIM is read, rather\n" +" \t\tthan newline\n" +" -e\t\tuse Readline to obtain the line in an interactive shell\n" +" -i text\tUse TEXT as the initial text for Readline\n" +" -n nchars\treturn after reading NCHARS characters rather than waiting\n" +" \t\tfor a newline\n" +" -p prompt\toutput the string PROMPT without a trailing newline before\n" +" \t\tattempting to read\n" +" -r\t\tdo not allow backslashes to escape any characters\n" +" -s\t\tdo not echo input coming from a terminal\n" +" -t timeout\ttime out and return failure if a complete line of input " +"is\n" +" \t\tnot read withint TIMEOUT seconds. The value of the TMOUT\n" +" \t\tvariable is the default timeout. TIMEOUT may be a\n" +" \t\tfractional number. If TIMEOUT is 0, read returns success only\n" +" \t\tif input is available on the specified file descriptor. The\n" +" \t\texit status is greater than 128 if the timeout is exceeded\n" +" -u fd\t\tread from file descriptor FD instead of the standard input\n" +" \n" +" Exit Status:\n" +" The return code is zero, unless end-of-file is encountered, read times " +"out,\n" +" or an invalid file descriptor is supplied as the argument to -u." +msgstr "" +"Zo Å¡tandardného vstupu alebo, ak je daná voľba -u, z popisovača FD\n" +" sa načíta jeden riadok a prvé slovo sa priradí prvému NÁZVU, druhé\n" +" slovo druhému NÁZVU atď. až zvyÅ¡né slová sa priradia poslednému\n" +" NÁZVU. Iba znaky, ktoré sa nachádzajú v $IFS sa považujú za\n" +" oddeľovače slov. Ak nie sú uvedené žiadne NÁZVY, načítaný riadok sa\n" +" uloží do premennej REPLY. Ak je zadaná voľba -r, značí to " +"„nespracovaný“\n" +" vstup a zápis únikových klauzúl pomocou spätnej lomky je vypnutý. Voľba\n" +" -d spôsobí pokračovanie čítania až kým sa nevyskytne prvý znak znak " +"DELIM\n" +" namiesto znaku nového riadka. Ak je zadaná voľba -p, pred pokusom o\n" +" čítanie sa vypíše reÅ¥azec PROMPT bez koncového znaku nového riadka.\n" +" Ak je zadaná voľba -a a shell je interaktívny, vÅ¡etky načítané slová sa\n" +" priradia postupne indexom poľa ARRAY, počínajúc nulou. Ak je zadaná\n" +" voľba -e a shell je interaktívny, na načítanie riadka sa použije " +"readline.\n" +" Ak je zadaná voľba -n s nenulovým argumentom NCHARS, čítanie vstupu\n" +" skončí po načítaní NCHARS znakov. Voľba -s spôsobí, že sa vstup " +"načítaný\n" +" z terminálu nebude vypisovaÅ¥.\n" +" \n" +" Voľba -t spôsobí ukončenie čítania po vyprÅ¡aní časového intervalu a ak " +"sa do\n" +" intervalu nenačíta úplný riadok vstupu, vráti chybu. Ak je nastavená " +"premenná\n" +" TMOUT, jej hodnota je Å¡tandardný interval expirácie. Návratová hodnota " +"je\n" +" nula ak sa nenarazí na znak konca súboru, čítanie nevyprší alebo sa " +"ako argument voľby -u nezadá neplatný popisovač súboru." + +#: builtins.c:1002 +msgid "" +"Return from a shell function.\n" +" \n" +" Causes a function or sourced script to exit with the return value\n" +" specified by N. If N is omitted, the return status is that of the\n" +" last command executed within the function or script.\n" +" \n" +" Exit Status:\n" +" Returns N, or failure if the shell is not executing a function or script." +msgstr "" + +#: builtins.c:1015 +#, fuzzy +msgid "" +"Set or unset values of shell options and positional parameters.\n" +" \n" +" Change the value of shell attributes and positional parameters, or\n" +" display the names and values of shell variables.\n" +" \n" +" Options:\n" +" -a Mark variables which are modified or created for export.\n" +" -b Notify of job termination immediately.\n" +" -e Exit immediately if a command exits with a non-zero status.\n" +" -f Disable file name generation (globbing).\n" +" -h Remember the location of commands as they are looked up.\n" +" -k All assignment arguments are placed in the environment for a\n" +" command, not just those that precede the command name.\n" +" -m Job control is enabled.\n" +" -n Read commands but do not execute them.\n" +" -o option-name\n" +" Set the variable corresponding to option-name:\n" +" allexport same as -a\n" +" braceexpand same as -B\n" +" emacs use an emacs-style line editing interface\n" +" errexit same as -e\n" +" errtrace same as -E\n" +" functrace same as -T\n" +" hashall same as -h\n" +" histexpand same as -H\n" +" history enable command history\n" +" ignoreeof the shell will not exit upon reading EOF\n" +" interactive-comments\n" +" allow comments to appear in interactive commands\n" +" keyword same as -k\n" +" monitor same as -m\n" +" noclobber same as -C\n" +" noexec same as -n\n" +" noglob same as -f\n" +" nolog currently accepted but ignored\n" +" notify same as -b\n" +" nounset same as -u\n" +" onecmd same as -t\n" +" physical same as -P\n" +" pipefail the return value of a pipeline is the status of\n" +" the last command to exit with a non-zero status,\n" +" or zero if no command exited with a non-zero " +"status\n" +" posix change the behavior of bash where the default\n" +" operation differs from the Posix standard to\n" +" match the standard\n" +" privileged same as -p\n" +" verbose same as -v\n" +" vi use a vi-style line editing interface\n" +" xtrace same as -x\n" +" -p Turned on whenever the real and effective user ids do not match.\n" +" Disables processing of the $ENV file and importing of shell\n" +" functions. Turning this option off causes the effective uid and\n" +" gid to be set to the real uid and gid.\n" +" -t Exit after reading and executing one command.\n" +" -u Treat unset variables as an error when substituting.\n" +" -v Print shell input lines as they are read.\n" +" -x Print commands and their arguments as they are executed.\n" +" -B the shell will perform brace expansion\n" +" -C If set, disallow existing regular files to be overwritten\n" +" by redirection of output.\n" +" -E If set, the ERR trap is inherited by shell functions.\n" +" -H Enable ! style history substitution. This flag is on\n" +" by default when the shell is interactive.\n" +" -P If set, do not follow symbolic links when executing commands\n" +" such as cd which change the current directory.\n" +" -T If set, the DEBUG trap is inherited by shell functions.\n" +" - Assign any remaining arguments to the positional parameters.\n" +" The -x and -v options are turned off.\n" +" \n" +" Using + rather than - causes these flags to be turned off. The\n" +" flags can also be used upon invocation of the shell. The current\n" +" set of flags may be found in $-. The remaining n ARGs are positional\n" +" parameters and are assigned, in order, to $1, $2, .. $n. If no\n" +" ARGs are given, all shell variables are printed.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given." +msgstr "" +" -a Označí premenné, ktoré sú zmenené alebo vytvorené na export.\n" +" -b Okamžite oznámi ukončenie úlohy.\n" +" -e Okamžite sa ukončí, keď sa príkaz ukončí s nenulovou návratovou " +"hodnotou.\n" +" -f Vypnúť tvorbu názvov súborov (globbing).\n" +" -h PamätaÅ¥ si, kde sú umiestnené príkazy po ich vyhľadaní.\n" +" -k VÅ¡etky argumenty priradenia sa odovzdávajú do prostredia\n" +" príkazu, nie len tie, ktoré predchádzajú názvy príkazu.\n" +" -m Riadenie úloh je zapnuté.\n" +" -n NačítaÅ¥ príkazy, ale nevykonávaÅ¥ ich.\n" +" -o názov-voľby\n" +" Nastaví premennú zodpovedajúcu názvu-voľby:\n" +" allexport rovnaké ako -a\n" +" braceexpand rovnaké ako -B\n" +" emacs použiÅ¥ rozhranie na úpravu príkazového riadka v " +"Å¡týle emacs\n" +" errexit rovnaké ako -e\n" +" errtrace rovnaké ako -E\n" +" functrace rovnaké ako -T\n" +" hashall rovnaké ako -h\n" +" histexpand rovnaké ako -H\n" +" history zapnúť históriu príkazov\n" +" ignoreeof shell sa neukončí po načítaní znaku EOF\n" +" interactive-comments\n" +" umožní výskyt komentárov v interaktívnych " +"príkazoch\n" +" keyword rovnaké ako -k\n" +" monitor rovnaké ako -m\n" +" noclobber rovnaké ako -C\n" +" noexec rovnaké ako -n\n" +" noglob rovnaké ako -f\n" +" nolog momentálne sa prijme, ale ignoruje sa\n" +" notify rovnaké ako -b\n" +" nounset rovnaké ako -u\n" +" onecmd rovnaké ako -t\n" +" physical rovnaké ako -P\n" +" pipefail návratová hodnota postupnosti rúr je hodnota\n" +" posledného príkazu, ktorý skončil s nenulovou " +"hodnotou,\n" +" alebo nula ak žiadny príkaz nevrátil nenulovú " +"hodnotu\n" +" posix zmeniÅ¥ správanie bash, kde sa Å¡tandardné " +"správanie\n" +" líši od Å¡tandardu 1003.2 tak, aby mu " +"zodpovedalo\n" +" privileged rovnaké ako -p\n" +" verbose rovnaké ako -v\n" +" vi použiÅ¥ rozhranie na úpravu príkazového riadka v " +"Å¡týle vi\n" +" xtrace rovnaké ako -x\n" +" -p Zapnuté vždy, keď sa skutočné a účinné ID používateľa " +"nezhoduje.\n" +" Vypína spracúvanie súboru $ENV a importovanie funkcií shellu.\n" +" Vypnutie tejto voľby spôsobí, že účinný UID a GID sa nastavia\n" +" na skutočný UID a GID.\n" +" -t UkončiÅ¥ po načítaní a vykonaní jedného príkazu.\n" +" -u PovažovaÅ¥ nenastavené premenné za chybu pri substitúcii.\n" +" -v VypisovaÅ¥ vstupné riadky shellu postupne ako sa načítavajú.\n" +" -x VypisovaÅ¥ príkazy a ich argumenty postupne ako sa načítavajú.\n" +" -B shell bude vykonávaÅ¥ expanziu zložených zátvoriek\n" +" -C Ak je voľba nastavená, zamedzí prepísaniu existujúcich súborov\n" +" persmerovaním výstupu.\n" +" -E Ak je voľba nastavená, zachytenie ERR zdedia funkcie shellu.\n" +" -H Zapne substitúciu príkazov z histórie pomocou znaku !. Tento\n" +" prepínač je Å¡tandardne zapnutý, keď je shell interaktívny.\n" +" -P Ak je voľba nastavená, nenasledovaÅ¥ symbolické odkazy pri\n" +" vykonávaní príkazov ako cd, ktoré menia aktuálny adresár.\n" +" -T Ak je voľba nastavená, zachytenie DEBUG zdedia funkcie shellu.\n" +" - OdovzdaÅ¥ vÅ¡etky zostávajúce argumenty pozičným parametrom.\n" +" Voľby -x a -v sú vypnuté.\n" +" \n" +" Použitie + namiesto - spôsobí vypnutie voľby. Voľby je tiež možné\n" +" použiÅ¥ pri vyvolaní shellu. Momentálne nastavené voľby možno nájsÅ¥ v\n" +" $-. Zostávajúcich n ARGumentov je pozičných a priradia sa postupne\n" +" premenným $1, $2, .. $n. Ak nie sú zadané žiadne ARGumenty, vÅ¡etky\n" +" premenné shellu sa vypíšu." + +#: builtins.c:1097 +msgid "" +"Unset values and attributes of shell variables and functions.\n" +" \n" +" For each NAME, remove the corresponding variable or function.\n" +" \n" +" Options:\n" +" -f\ttreat each NAME as a shell function\n" +" -v\ttreat each NAME as a shell variable\n" +" \n" +" Without options, unset first tries to unset a variable, and if that " +"fails,\n" +" tries to unset a function.\n" +" \n" +" Some variables cannot be unset; also see `readonly'.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or a NAME is read-only." +msgstr "" + +#: builtins.c:1117 +msgid "" +"Set export attribute for shell variables.\n" +" \n" +" Marks each NAME for automatic export to the environment of subsequently\n" +" executed commands. If VALUE is supplied, assign VALUE before " +"exporting.\n" +" \n" +" Options:\n" +" -f\trefer to shell functions\n" +" -n\tremove the export property from each NAME\n" +" -p\tdisplay a list of all exported variables and functions\n" +" \n" +" An argument of `--' disables further option processing.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or NAME is invalid." +msgstr "" + +#: builtins.c:1136 +msgid "" +"Mark shell variables as unchangeable.\n" +" \n" +" Mark each NAME as read-only; the values of these NAMEs may not be\n" +" changed by subsequent assignment. If VALUE is supplied, assign VALUE\n" +" before marking as read-only.\n" +" \n" +" Options:\n" +" -a\trefer to indexed array variables\n" +" -A\trefer to associative array variables\n" +" -f\trefer to shell functions\n" +" -p\tdisplay a list of all readonly variables and functions\n" +" \n" +" An argument of `--' disables further option processing.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or NAME is invalid." +msgstr "" + +#: builtins.c:1157 +msgid "" +"Shift positional parameters.\n" +" \n" +" Rename the positional parameters $N+1,$N+2 ... to $1,$2 ... If N is\n" +" not given, it is assumed to be 1.\n" +" \n" +" Exit Status:\n" +" Returns success unless N is negative or greater than $#." +msgstr "" + +#: builtins.c:1169 builtins.c:1184 +#, fuzzy +msgid "" +"Execute commands from a file in the current shell.\n" +" \n" +" Read and execute commands from FILENAME in the current shell. The\n" +" entries in $PATH are used to find the directory containing FILENAME.\n" +" If any ARGUMENTS are supplied, they become the positional parameters\n" +" when FILENAME is executed.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed in FILENAME; fails if\n" +" FILENAME cannot be read." +msgstr "" +"NačítaÅ¥ a vykonaÅ¥ prákazy zo SÚBORu a vrátiÅ¥ sa. Na nájdenie adresára\n" +" obsahujúceho SÚBOR sa použijú cesty z $PATH. Ak sú zadané nejaké\n" +" ARGUMENTY, použijú sa ako pozičné argumenty pri vykonaní SÚBORu." + +#: builtins.c:1200 +msgid "" +"Suspend shell execution.\n" +" \n" +" Suspend the execution of this shell until it receives a SIGCONT signal.\n" +" Unless forced, login shells cannot be suspended.\n" +" \n" +" Options:\n" +" -f\tforce the suspend, even if the shell is a login shell\n" +" \n" +" Exit Status:\n" +" Returns success unless job control is not enabled or an error occurs." +msgstr "" + +#: builtins.c:1216 +#, fuzzy +msgid "" +"Evaluate conditional expression.\n" +" \n" +" Exits with a status of 0 (true) or 1 (false) depending on\n" +" the evaluation of EXPR. Expressions may be unary or binary. Unary\n" +" expressions are often used to examine the status of a file. There\n" +" are string operators as well, and numeric comparison operators.\n" +" \n" +" File operators:\n" +" \n" +" -a FILE True if file exists.\n" +" -b FILE True if file is block special.\n" +" -c FILE True if file is character special.\n" +" -d FILE True if file is a directory.\n" +" -e FILE True if file exists.\n" +" -f FILE True if file exists and is a regular file.\n" +" -g FILE True if file is set-group-id.\n" +" -h FILE True if file is a symbolic link.\n" +" -L FILE True if file is a symbolic link.\n" +" -k FILE True if file has its `sticky' bit set.\n" +" -p FILE True if file is a named pipe.\n" +" -r FILE True if file is readable by you.\n" +" -s FILE True if file exists and is not empty.\n" +" -S FILE True if file is a socket.\n" +" -t FD True if FD is opened on a terminal.\n" +" -u FILE True if the file is set-user-id.\n" +" -w FILE True if the file is writable by you.\n" +" -x FILE True if the file is executable by you.\n" +" -O FILE True if the file is effectively owned by you.\n" +" -G FILE True if the file is effectively owned by your group.\n" +" -N FILE True if the file has been modified since it was last " +"read.\n" +" \n" +" FILE1 -nt FILE2 True if file1 is newer than file2 (according to\n" +" modification date).\n" +" \n" +" FILE1 -ot FILE2 True if file1 is older than file2.\n" +" \n" +" FILE1 -ef FILE2 True if file1 is a hard link to file2.\n" +" \n" +" String operators:\n" +" \n" +" -z STRING True if string is empty.\n" +" \n" +" -n STRING\n" +" STRING True if string is not empty.\n" +" \n" +" STRING1 = STRING2\n" +" True if the strings are equal.\n" +" STRING1 != STRING2\n" +" True if the strings are not equal.\n" +" STRING1 < STRING2\n" +" True if STRING1 sorts before STRING2 " +"lexicographically.\n" +" STRING1 > STRING2\n" +" True if STRING1 sorts after STRING2 lexicographically.\n" +" \n" +" Other operators:\n" +" \n" +" -o OPTION True if the shell option OPTION is enabled.\n" +" ! EXPR True if expr is false.\n" +" EXPR1 -a EXPR2 True if both expr1 AND expr2 are true.\n" +" EXPR1 -o EXPR2 True if either expr1 OR expr2 is true.\n" +" \n" +" arg1 OP arg2 Arithmetic tests. OP is one of -eq, -ne,\n" +" -lt, -le, -gt, or -ge.\n" +" \n" +" Arithmetic binary operators return true if ARG1 is equal, not-equal,\n" +" less-than, less-than-or-equal, greater-than, or greater-than-or-equal\n" +" than ARG2.\n" +" \n" +" Exit Status:\n" +" Returns success if EXPR evaluates to true; fails if EXPR evaluates to\n" +" false or an invalid argument is given." +msgstr "" +"UkončiÅ¥ s návratovou hodnotou 0 (pravda) alebo 1 (nepravda)\n" +" v závislosti na vyhodnotení VÝR. Výrazy môžu byÅ¥ unárne alebo\n" +" binárne. Unárne výrazy sa často používajú na vyhodnotenie stavu\n" +" súboru. Existujú aj operátory pracujúce s reÅ¥azcami a na\n" +" porovnávanie.\n" +" \n" +" Operátory súborov:\n" +" \n" +" -a SÚBOR Pravda ak súbor existuje.\n" +" -b SÚBOR Pravda ak je súbor Å¡peciálne blokové zariadenie.\n" +" -c SÚBOR Pravda ak je súbor Å¡peciálne znakové zariadenie.\n" +" -d SÚBOR Pravda ak je súbor adresárom.\n" +" -e SÚBOR Pravda ak súbor existuje.\n" +" -f SÚBOR Pravda ak súbor existuje a je to obyčajný súbor.\n" +" -g SÚBOR Pravda ak je súbor set-group-id.\n" +" -h SÚBOR Pravda ak je súbor symbolický odkaz.\n" +" -L SÚBOR Pravda ak je súbor symbolický odkaz.\n" +" -k SÚBOR Pravda ak má súbor nastavený „sticky“ bit.\n" +" -p SÚBOR Pravda ak je súbor pomenovaná rúra.\n" +" -r SÚBOR Pravda ak je pre vás súbor čitateľný.\n" +" -s SÚBOR Pravda ak súbor existuje a nie je prázdny.\n" +" -S SÚBOR Pravda ak súbor socket.\n" +" -t FD Pravda ak je deskriptor FD otvorený v termináli.\n" +" -u SÚBOR Pravda ak je súbor set-user-id.\n" +" -w SÚBOR Pravda ak je pre vás súbor zapisovateľný.\n" +" -x SÚBOR Pravda ak je pre vás súbor vykonateľný.\n" +" -O SÚBOR Pravda ak ste účinným vlastníkom súboru.\n" +" -G SÚBOR Pravda ak je vaÅ¡a skupina účinným vlastníkom " +"súboru.\n" +" -N SÚBOR Pravda ak bol súbor od posledného čítania zmenený.\n" +" \n" +" SÚBOR1 -nt SÚBOR2 Pravda ak je SÚBOR1 novší ako SÚBOR2 (podľa\n" +" dátumu poslednej zmeny).\n" +" \n" +" SÚBOR1 -ot SÚBOR2 Pravda ak je SÚBOR1 starší ako SÚBOR2.\n" +" \n" +" SÚBOR1 -ef SÚBOR2 Pravda ak je SÚBOR1 pevným odkazom na SÚBOR2.\n" +" \n" +" Operátory reÅ¥azcov:\n" +" \n" +" -z REŤAZEC Pravda ak je reÅ¥azec prázdny.\n" +" \n" +" -n REŤAZEC\n" +" REŤAZEC Pravda ak je reÅ¥azec neprázdny\n" +" \n" +" REŤAZEC1 = REŤAZEC2\n" +" Pravda ak sa reÅ¥azce rovnajú.\n" +" REŤAZEC1 != REŤAZEC2\n" +" Pravda ak sa reÅ¥azce nerovnajú.\n" +" REŤAZEC1 < REŤAZEC2\n" +" Pravda ak je REŤAZEC1 pre REŤAZCOM2 v lexikografickom " +"poradí.\n" +" REŤAZEC1 > REŤAZEC2\n" +" Pravda ak je REŤAZEC1 po REŤAZCI2 v lexikografickom " +"poradí.\n" +" \n" +" Iné operátory:\n" +" \n" +" -o VOĽBA Pravda ak je VOĽBA shellu zapnutá.\n" +" ! VÝR Pravda ak je VÝR nepravdivý.\n" +" VÝR1 -a VÝR2 Pavda ak sú oba VÝR1 aj VÝR2 pravdivé.\n" +" VÝR1 -o VÝR2 Pavda ak je aspoň jeden z VÝR1 a VÝR2 pravdivý.\n" +" \n" +" arg1 OP arg2 Aritmetické testy. OP je jeden z -eq, -ne,\n" +" -lt, -le, -gt alebo -ge.\n" +" \n" +" Aritmetické binárne operátory vracajú pravdu, keď sa ARG1 rovná,\n" +" nerovná, je menší, menší alebo rovný, väčší, väčší alebo rovný ako\n" +" ARG2." + +#: builtins.c:1292 +#, fuzzy +msgid "" +"Evaluate conditional expression.\n" +" \n" +" This is a synonym for the \"test\" builtin, but the last argument must\n" +" be a literal `]', to match the opening `['." +msgstr "" +"Toto je synonymum vsatavanej funkcie „test“, ale posledný\n" +" argument musí byÅ¥ literál „]“, ktorý uzatvára otvárajúcu „[“." + +#: builtins.c:1301 +msgid "" +"Display process times.\n" +" \n" +" Prints the accumulated user and system times for the shell and all of " +"its\n" +" child processes.\n" +" \n" +" Exit Status:\n" +" Always succeeds." +msgstr "" + +#: builtins.c:1313 +#, fuzzy +msgid "" +"Trap signals and other events.\n" +" \n" +" Defines and activates handlers to be run when the shell receives " +"signals\n" +" or other conditions.\n" +" \n" +" ARG is a command to be read and executed when the shell receives the\n" +" signal(s) SIGNAL_SPEC. If ARG is absent (and a single SIGNAL_SPEC\n" +" is supplied) or `-', each specified signal is reset to its original\n" +" value. If ARG is the null string each SIGNAL_SPEC is ignored by the\n" +" shell and by the commands it invokes.\n" +" \n" +" If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell. " +"If\n" +" a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command.\n" +" \n" +" If no arguments are supplied, trap prints the list of commands " +"associated\n" +" with each signal.\n" +" \n" +" Options:\n" +" -l\tprint a list of signal names and their corresponding numbers\n" +" -p\tdisplay the trap commands associated with each SIGNAL_SPEC\n" +" \n" +" Each SIGNAL_SPEC is either a signal name in or a signal " +"number.\n" +" Signal names are case insensitive and the SIG prefix is optional. A\n" +" signal may be sent to the shell with \"kill -signal $$\".\n" +" \n" +" Exit Status:\n" +" Returns success unless a SIGSPEC is invalid or an invalid option is " +"given." +msgstr "" +"Príkaz ARG sa načíta a vykoná, keď shell dostane signál(y) SIGNAL_SPEC.\n" +" Ak ARG chýba (a je uvedený jediný SIGNAL_SPEC) alebo je „-“,\n" +" každý uvedený signál sa obnoví na pôvodnú hodnotu. Ak je ARG\n" +" prázdny režazec, každý SIGNAL_SPEC shell a príkaz, ktorý vyvolá,\n" +" ignoruje. Ak SIGNAL_SPEC je EXIT (0), príkaz ARG sa vykoná pri\n" +" ukončení shellu. Ak je SIGNAL_SPEC DEBUG, ARG sa vykoná po každom\n" +" jednom príkaze. Ak je uvedená voľba „-p“, potom sa zobrazia príkazy\n" +" trap asociované s každým SIGNAL_SPEC. Ak nie sú uvedené žiadne\n" +" argumenty alebo iba voľba „-p“. Trap vypíše zoznam príkazov\n" +" asociovaných s každým signálom. SIGNAL_SPEC je buď názov signálu\n" +" ako v alebo číslo signálu. V názvoch signálov sa nerozliÅ¡uje\n" +" veľkosÅ¥ písmen a predpona SIG je nepovinná. „trap -l“ vypíše zoznam\n" +" názvov signálov a ich zodpovedajúce čísla. Majte na pamäti, že signál\n" +" je možné shellu poslaÅ¥ príkazom „kill -signal $$“." + +#: builtins.c:1345 +msgid "" +"Display information about command type.\n" +" \n" +" For each NAME, indicate how it would be interpreted if used as a\n" +" command name.\n" +" \n" +" Options:\n" +" -a\tdisplay all locations containing an executable named NAME;\n" +" \tincludes aliases, builtins, and functions, if and only if\n" +" \tthe `-p' option is not also used\n" +" -f\tsuppress shell function lookup\n" +" -P\tforce a PATH search for each NAME, even if it is an alias,\n" +" \tbuiltin, or function, and returns the name of the disk file\n" +" \tthat would be executed\n" +" -p\treturns either the name of the disk file that would be executed,\n" +" \tor nothing if `type -t NAME' would not return `file'.\n" +" -t\toutput a single word which is one of `alias', `keyword',\n" +" \t`function', `builtin', `file' or `', if NAME is an alias, shell\n" +" \treserved word, shell function, shell builtin, disk file, or not\n" +" \tfound, respectively\n" +" \n" +" Arguments:\n" +" NAME\tCommand name to be interpreted.\n" +" \n" +" Exit Status:\n" +" Returns success if all of the NAMEs are found; fails if any are not " +"found." +msgstr "" + +#: builtins.c:1376 +#, fuzzy +msgid "" +"Modify shell resource limits.\n" +" \n" +" Provides control over the resources available to the shell and " +"processes\n" +" it creates, on systems that allow such control.\n" +" \n" +" Options:\n" +" -S\tuse the `soft' resource limit\n" +" -H\tuse the `hard' resource limit\n" +" -a\tall current limits are reported\n" +" -b\tthe socket buffer size\n" +" -c\tthe maximum size of core files created\n" +" -d\tthe maximum size of a process's data segment\n" +" -e\tthe maximum scheduling priority (`nice')\n" +" -f\tthe maximum size of files written by the shell and its children\n" +" -i\tthe maximum number of pending signals\n" +" -l\tthe maximum size a process may lock into memory\n" +" -m\tthe maximum resident set size\n" +" -n\tthe maximum number of open file descriptors\n" +" -p\tthe pipe buffer size\n" +" -q\tthe maximum number of bytes in POSIX message queues\n" +" -r\tthe maximum real-time scheduling priority\n" +" -s\tthe maximum stack size\n" +" -t\tthe maximum amount of cpu time in seconds\n" +" -u\tthe maximum number of user processes\n" +" -v\tthe size of virtual memory\n" +" -x\tthe maximum number of file locks\n" +" \n" +" If LIMIT is given, it is the new value of the specified resource; the\n" +" special LIMIT values `soft', `hard', and `unlimited' stand for the\n" +" current soft limit, the current hard limit, and no limit, respectively.\n" +" Otherwise, the current value of the specified resource is printed. If\n" +" no option is given, then -f is assumed.\n" +" \n" +" Values are in 1024-byte increments, except for -t, which is in seconds,\n" +" -p, which is in increments of 512 bytes, and -u, which is an unscaled\n" +" number of processes.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" +"Ulimit poskytuje kontrolu nad prostriedkami dostupnými procesu,\n" +" ktorý spustil shell na systémoch, ktoré takúto kontrolu umožňujú.\n" +" Ak sú zadané voľby, vyhodnocujú sa nasledovne:\n" +" \n" +" -S\tpoužiÅ¥ „mäkký“ limit prostriedkov\n" +" -H\tpoužiÅ¥ „tvrdý“ limit prostriedkov\n" +" -a\toznámi vÅ¡etky aktuálne limity\n" +" -c\tmaximálna veľkosÅ¥ vytvorených core súborov\n" +" -d\tmaximálna veľkosÅ¥ dátového segmentu procesu\n" +" -e\tmaximálna priorita plánovania („nice“)\n" +" -f\tmaximálna veľkosÅ¥ súborov, ktoré zapíše shell a jeho potomkovia\n" +" -i\tmaximálny počet čakajúcich signálov\n" +" -l\tmaximálna veľkosÅ¥ pamäte, ktorú môže proces uzamknúť\n" +" -m\tmaximálna veľkosÅ¥ pracovnej množiny\n" +" -n\tmaximálny počet otvorených popisovačov súborov\n" +" -p\tveľkosÅ¥ bufera rúry\n" +" -q\tmaximálny počet bajtov v POSIX frontoch správ\n" +" -r\tmaximálna priorita plánovania v reálnom čase\n" +" -s\tmaximálna veľkosÅ¥ zásobníka\n" +" -t\tmaximálne množstvo času CPU v sekundách\n" +" -u\tmaximálny počet používateľských procesov\n" +" -v\tveľkosÅ¥ virtuálnej pamäte\n" +" -x\tmaximálny počet zámkov súborov\n" +" \n" +" Ak je zadaný LIMIT, je to nová hodnota zadaného prostriedku;\n" +" Å¡peciálne hodnoty LIMIT sú „soft“, „hard“ a „unlimited“, ktoré\n" +" znamenajú aktuálny mäkký limit, aktuálny tvrdý limit resp. žiadny " +"limit.\n" +" Inak sa vypíše aktuálna hodnota zadaného prostriedku.\n" +" Ak nie je zadaná žiada voľba, predpokladá sa -f. Hodnoty sú v\n" +" násobkoch 1024 bajtov okrem -t, ktorý je v sekundách, -p, ktorý je v\n" +" násobkoch 512 bajtov a -u, čo znamená neobmedzený počet procesov." + +#: builtins.c:1421 +msgid "" +"Display or set file mode mask.\n" +" \n" +" Sets the user file-creation mask to MODE. If MODE is omitted, prints\n" +" the current value of the mask.\n" +" \n" +" If MODE begins with a digit, it is interpreted as an octal number;\n" +" otherwise it is a symbolic mode string like that accepted by chmod(1).\n" +" \n" +" Options:\n" +" -p\tif MODE is omitted, output in a form that may be reused as input\n" +" -S\tmakes the output symbolic; otherwise an octal number is output\n" +" \n" +" Exit Status:\n" +" Returns success unless MODE is invalid or an invalid option is given." +msgstr "" + +#: builtins.c:1441 +msgid "" +"Wait for job completion and return exit status.\n" +" \n" +" Waits for the process identified by ID, which may be a process ID or a\n" +" job specification, and reports its termination status. If ID is not\n" +" given, waits for all currently active child processes, and the return\n" +" status is zero. If ID is a a job specification, waits for all " +"processes\n" +" in the job's pipeline.\n" +" \n" +" Exit Status:\n" +" Returns the status of ID; fails if ID is invalid or an invalid option " +"is\n" +" given." +msgstr "" + +#: builtins.c:1459 +#, fuzzy +msgid "" +"Wait for process completion and return exit status.\n" +" \n" +" Waits for the specified process and reports its termination status. If\n" +" PID is not given, all currently active child processes are waited for,\n" +" and the return code is zero. PID must be a process ID.\n" +" \n" +" Exit Status:\n" +" Returns the status of ID; fails if ID is invalid or an invalid option " +"is\n" +" given." +msgstr "" +"ČakaÅ¥ na ukončenie zadaného procesu a vypísaÅ¥ jeho návratovú\n" +" hodnotu. Ak nie je N zadané, čaká sa na vÅ¡etky momentálne\n" +" aktívne procesy potomkov a návratová hodnota je nula. N môže\n" +" byÅ¥ ID procesu alebo určenie úlohy; ak je určená úloha, čaká sa\n" +" na ukončenie vÅ¡etkých procesov v rúre úlohy." + +#: builtins.c:1474 +#, fuzzy +msgid "" +"Execute commands for each member in a list.\n" +" \n" +" The `for' loop executes a sequence of commands for each member in a\n" +" list of items. If `in WORDS ...;' is not present, then `in \"$@\"' is\n" +" assumed. For each element in WORDS, NAME is set to that element, and\n" +" the COMMANDS are executed.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"Cyklus „for“ vykonáva postupnosÅ¥ príkazov pre každú položku v zozname.\n" +" Ak nie je prítomné „in SLOVÁ ...;“, potom sa predpokladá „in \"$@\"“.\n" +" Pre každý prvok v SLOVÁch sa NÁZOV nastaví na hodnotu položky a\n" +" vykonajú sa PRÍKAZY." + +#: builtins.c:1488 +#, fuzzy +msgid "" +"Arithmetic for loop.\n" +" \n" +" Equivalent to\n" +" \t(( EXP1 ))\n" +" \twhile (( EXP2 )); do\n" +" \t\tCOMMANDS\n" +" \t\t(( EXP3 ))\n" +" \tdone\n" +" EXP1, EXP2, and EXP3 are arithmetic expressions. If any expression is\n" +" omitted, it behaves as if it evaluates to 1.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"Ekvivalent\n" +" \t(( VÝR1 ))\n" +" \twhile (( VÝR2 )); do\n" +" \t\tPRÍKAZY\n" +" \t\t(( VÝR3 ))\n" +" \tdone\n" +" VÝR1, VÝR2 a VÝR3 sú aritmetické výrazy. Ak sa vykoná ktorýkoľvek\n" +" výraz, chovanie je ako by sa vyhodnotil na 1." + +#: builtins.c:1506 +#, fuzzy +msgid "" +"Select words from a list and execute commands.\n" +" \n" +" The WORDS are expanded, generating a list of words. The\n" +" set of expanded words is printed on the standard error, each\n" +" preceded by a number. If `in WORDS' is not present, `in \"$@\"'\n" +" is assumed. The PS3 prompt is then displayed and a line read\n" +" from the standard input. If the line consists of the number\n" +" corresponding to one of the displayed words, then NAME is set\n" +" to that word. If the line is empty, WORDS and the prompt are\n" +" redisplayed. If EOF is read, the command completes. Any other\n" +" value read causes NAME to be set to null. The line read is saved\n" +" in the variable REPLY. COMMANDS are executed after each selection\n" +" until a break command is executed.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"SLOVÁ sa rozbalia, čím sa vytvorí zoznam slov. Zoznam slov sa\n" +" vypíše na Å¡tandardný chybový výstup, pred každým z nich číslo.\n" +" Ak nie je prítomné „in SLOVÁ“, použije sa „in \"$@\"“. Zobrazí sa\n" +" výzva PS3 a načíta sa riadok zo Å¡tandardného vstupu. Ak riadok\n" +" pozostáva z čísla zodpovedajúcemu jednému zo zobrazených slov,\n" +" NÁZOV sa nastaví na dané slovo. Ak je riadok prázdny, SLOVÁ a\n" +" výzva sa znova zobrazia. Po načítaní znaku konca súboru príkaz\n" +" končí. Načítanie akejkoľvek inej hodnoty spôsobí nastavenie NÁZVU\n" +" na NULL. Načítaný riadok sa uloží do premennej ODPOVEĎ. PRÍKAZY\n" +" sa vykonajú po každom výbere až kým sa nevykoná príkaz break." + +#: builtins.c:1527 +#, fuzzy +msgid "" +"Report time consumed by pipeline's execution.\n" +" \n" +" Execute PIPELINE and print a summary of the real time, user CPU time,\n" +" and system CPU time spent executing PIPELINE when it terminates.\n" +" \n" +" Options:\n" +" -p\tprint the timing summary in the portable Posix format\n" +" \n" +" The value of the TIMEFORMAT variable is used as the output format.\n" +" \n" +" Exit Status:\n" +" The return status is the return status of PIPELINE." +msgstr "" +"VykonaÅ¥ RÚRU a po jej skončení vypísaÅ¥ zhrnutie skutočného času,\n" +" času CPU a systémového času CPU stráveného vykonaním RÚRY.\n" +" Návratová hodnota je návratová hodnota RÚRY. Voľba „-p“ vypíše\n" +" zhrnutie časov v mierne odliÅ¡nom formáte. Ten použuje pre\n" +" formátovanie výstupu premennú TIMEFORMAT." + +#: builtins.c:1544 +#, fuzzy +msgid "" +"Execute commands based on pattern matching.\n" +" \n" +" Selectively execute COMMANDS based upon WORD matching PATTERN. The\n" +" `|' is used to separate multiple patterns.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"Selektívne vykonávaÅ¥ PRÍKAZY na základe toho, či SLOVO zodpovedá VZORu.\n" +" „|“ sa použije na oddelenie viacerých vzorov." + +#: builtins.c:1556 +#, fuzzy +msgid "" +"Execute commands based on conditional.\n" +" \n" +" The `if COMMANDS' list is executed. If its exit status is zero, then " +"the\n" +" `then COMMANDS' list is executed. Otherwise, each `elif COMMANDS' list " +"is\n" +" executed in turn, and if its exit status is zero, the corresponding\n" +" `then COMMANDS' list is executed and the if command completes. " +"Otherwise,\n" +" the `else COMMANDS' list is executed, if present. The exit status of " +"the\n" +" entire construct is the exit status of the last command executed, or " +"zero\n" +" if no condition tested true.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"Vykoná sa zoznam „if PRÍKAZY“. Ak je jeho návratová hodnota nula, vykoná\n" +" sa zoznam „then PRÍKAZY“. Inak sa postupne vykoná každý zoznam\n" +" „elif PRÍKAZY“ a ak je jeho návratová hodnota nula, vykoná sa " +"zodpovedajúci\n" +" zoznam „then PRÍKAZY“ a príkaz if skončí. Inak sa vykoná „else " +"PRÍKAZY“,\n" +" ak je prítomný. Návratová hodnota celej konÅ¡trukcie je návratová " +"hodnota\n" +" posledného vykonaného príkazu alebo nula ak sa žiadna podmienka\n" +" nevyhodnotila na pravdu." + +#: builtins.c:1573 +#, fuzzy +msgid "" +"Execute commands as long as a test succeeds.\n" +" \n" +" Expand and execute COMMANDS as long as the final command in the\n" +" `while' COMMANDS has an exit status of zero.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"RozbaliÅ¥ a vykonávaÅ¥ PRÍKAZY pokým posledný príkaz medzi PRÍKAZMI\n" +" „while“ nemá návratovú hodnotu nula." + +#: builtins.c:1585 +#, fuzzy +msgid "" +"Execute commands as long as a test does not succeed.\n" +" \n" +" Expand and execute COMMANDS as long as the final command in the\n" +" `until' COMMANDS has an exit status which is not zero.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"RozbaliÅ¥ a vykonávaÅ¥ PRÍKAZY pokým posledný príkaz medzi PRÍKAZMI\n" +" „until“ nemá nenulovú návratovú hodnotu." + +#: builtins.c:1597 +msgid "" +"Define shell function.\n" +" \n" +" Create a shell function named NAME. When invoked as a simple command,\n" +" NAME runs COMMANDs in the calling shell's context. When NAME is " +"invoked,\n" +" the arguments are passed to the function as $1...$n, and the function's\n" +" name is in $FUNCNAME.\n" +" \n" +" Exit Status:\n" +" Returns success unless NAME is readonly." +msgstr "" + +#: builtins.c:1611 +#, fuzzy +msgid "" +"Group commands as a unit.\n" +" \n" +" Run a set of commands in a group. This is one way to redirect an\n" +" entire set of commands.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"SpustiÅ¥ množinu príkazov v skupine. Toto je jeden zo spôsobov ako\n" +" presmerovaÅ¥ celú možinu príkazov." + +#: builtins.c:1623 +#, fuzzy +msgid "" +"Resume job in foreground.\n" +" \n" +" Equivalent to the JOB_SPEC argument to the `fg' command. Resume a\n" +" stopped or background job. JOB_SPEC can specify either a job name\n" +" or a job number. Following JOB_SPEC with a `&' places the job in\n" +" the background, as if the job specification had been supplied as an\n" +" argument to `bg'.\n" +" \n" +" Exit Status:\n" +" Returns the status of the resumed job." +msgstr "" +"Ekvivalentné argumentu JOB_SPEC príkazu „fg“ Obnoví beh\n" +" zastavenej úlohy alebo úlohyu bežiacej v pozadí. JOB_SPEC môže\n" +" určiÅ¥ buď názov alebo číslo úlohy. Ak po JOB_SPEC nasleduje „&“, úloha\n" +" sa umiestni do pozadia, ako keby bola Å¡pecifikácia úlohy zadaná ako\n" +" argument príkazu „bg“." + +#: builtins.c:1638 +#, fuzzy +msgid "" +"Evaluate arithmetic expression.\n" +" \n" +" The EXPRESSION is evaluated according to the rules for arithmetic\n" +" evaluation. Equivalent to \"let EXPRESSION\".\n" +" \n" +" Exit Status:\n" +" Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise." +msgstr "" +"VÝRAZ sa vyhodnotí podľa pravidiel aritmetického vyhodnocovania.\n" +" Ekvivalentné s „let VÝRAZ“." + +#: builtins.c:1650 +#, fuzzy +msgid "" +"Execute conditional command.\n" +" \n" +" Returns a status of 0 or 1 depending on the evaluation of the " +"conditional\n" +" expression EXPRESSION. Expressions are composed of the same primaries " +"used\n" +" by the `test' builtin, and may be combined using the following " +"operators:\n" +" \n" +" ( EXPRESSION )\tReturns the value of EXPRESSION\n" +" ! EXPRESSION\t\tTrue if EXPRESSION is false; else false\n" +" EXPR1 && EXPR2\tTrue if both EXPR1 and EXPR2 are true; else false\n" +" EXPR1 || EXPR2\tTrue if either EXPR1 or EXPR2 is true; else false\n" +" \n" +" When the `==' and `!=' operators are used, the string to the right of\n" +" the operator is used as a pattern and pattern matching is performed.\n" +" When the `=~' operator is used, the string to the right of the operator\n" +" is matched as a regular expression.\n" +" \n" +" The && and || operators do not evaluate EXPR2 if EXPR1 is sufficient to\n" +" determine the expression's value.\n" +" \n" +" Exit Status:\n" +" 0 or 1 depending on value of EXPRESSION." +msgstr "" +"Vráti 0 alebo 1 v závislosti na vyhodnotení výrazu podmienky VÝRAZ.\n" +" Výrazy sa skladajú z rovnakých zložiek ako pri vstavanom príkaze\n" +" „test“ a je možné ich kombinovaÅ¥ pomocou nasledovných operátorov\n" +" \n" +" \t( VÝRAZ )\tVracia hodnoru výrazu VÝRAZ\n" +" \t! VÝRAZ\tPravdivý, ak je VÝRAZ nepravdivý; inak pravdivý\n" +" \tVÝR1 && VÝR2\tPravdivý ak je VÝR1 a zároveň VÝR2 pravdivý; inak " +"nepravdivý\n" +" \tVÝR1 || VÝR2\tPravdivý ak je VÝR1 alebo VÝR2 pravdivý; inak " +"nepravdivý\n" +" \n" +" Ak sú použité operátory „==“ a „!=“, reÅ¥azec napravo od operátora\n" +" sa použije ako vzor a vykoná sa hľadanie zhody reÅ¥azcov. Operátory\n" +" && a || nevyhodnocujú VÝR2 ak hodnota VÝR1 postačuje na určenie\n" +" hodnoty výrazu." + +#: builtins.c:1676 +#, fuzzy +msgid "" +"Common shell variable names and usage.\n" +" \n" +" BASH_VERSION\tVersion information for this Bash.\n" +" CDPATH\tA colon-separated list of directories to search\n" +" \t\tfor directories given as arguments to `cd'.\n" +" GLOBIGNORE\tA colon-separated list of patterns describing filenames to\n" +" \t\tbe ignored by pathname expansion.\n" +" HISTFILE\tThe name of the file where your command history is stored.\n" +" HISTFILESIZE\tThe maximum number of lines this file can contain.\n" +" HISTSIZE\tThe maximum number of history lines that a running\n" +" \t\tshell can access.\n" +" HOME\tThe complete pathname to your login directory.\n" +" HOSTNAME\tThe name of the current host.\n" +" HOSTTYPE\tThe type of CPU this version of Bash is running under.\n" +" IGNOREEOF\tControls the action of the shell on receipt of an EOF\n" +" \t\tcharacter as the sole input. If set, then the value\n" +" \t\tof it is the number of EOF characters that can be seen\n" +" \t\tin a row on an empty line before the shell will exit\n" +" \t\t(default 10). When unset, EOF signifies the end of input.\n" +" MACHTYPE\tA string describing the current system Bash is running on.\n" +" MAILCHECK\tHow often, in seconds, Bash checks for new mail.\n" +" MAILPATH\tA colon-separated list of filenames which Bash checks\n" +" \t\tfor new mail.\n" +" OSTYPE\tThe version of Unix this version of Bash is running on.\n" +" PATH\tA colon-separated list of directories to search when\n" +" \t\tlooking for commands.\n" +" PROMPT_COMMAND\tA command to be executed before the printing of each\n" +" \t\tprimary prompt.\n" +" PS1\t\tThe primary prompt string.\n" +" PS2\t\tThe secondary prompt string.\n" +" PWD\t\tThe full pathname of the current directory.\n" +" SHELLOPTS\tA colon-separated list of enabled shell options.\n" +" TERM\tThe name of the current terminal type.\n" +" TIMEFORMAT\tThe output format for timing statistics displayed by the\n" +" \t\t`time' reserved word.\n" +" auto_resume\tNon-null means a command word appearing on a line by\n" +" \t\titself is first looked for in the list of currently\n" +" \t\tstopped jobs. If found there, that job is foregrounded.\n" +" \t\tA value of `exact' means that the command word must\n" +" \t\texactly match a command in the list of stopped jobs. A\n" +" \t\tvalue of `substring' means that the command word must\n" +" \t\tmatch a substring of the job. Any other value means that\n" +" \t\tthe command must be a prefix of a stopped job.\n" +" histchars\tCharacters controlling history expansion and quick\n" +" \t\tsubstitution. The first character is the history\n" +" \t\tsubstitution character, usually `!'. The second is\n" +" \t\tthe `quick substitution' character, usually `^'. The\n" +" \t\tthird is the `history comment' character, usually `#'.\n" +" HISTIGNORE\tA colon-separated list of patterns used to decide which\n" +" \t\tcommands should be saved on the history list.\n" +msgstr "" +"BASH_VERSION\tInformácie o verzii tohto Bash.\n" +" CDPATH\tBodkočiarkami oddelený zoznam adresárov, v ktorých sa budú\n" +" \t\thľadaÅ¥ adresáre dané ako argument príkazu „cd“.\n" +" GLOBIGNORE\tBodkočiarkami oddelený zoznam vzorov popisujúcich názvy\n" +" \t\tsúborov, ktoré má expanzia názvov ciest ignorovaÅ¥.\n" +" HISTFILE\tNázov súboru, kde je uložená vaÅ¡a história príkazov.\n" +" HISTFILESIZE\tMaximálny počet riadkov, ktorý môže obsahovaÅ¥.\n" +" HISTSIZE\tMaximálny počet riadkov, su ktorým môže pristupovaÅ¥\n" +" \t\tbežiaci shell.\n" +" HOME\tÚplná cesta k vášmu prihlasovaciemu adresáru.\n" +" HOSTNAME\tNázov stroja, na ktorom sa momentálne nachádzate.\n" +" HOSTTYPE\tTyp procesora, na ktorom beží táto verzia Bash.\n" +" IGNOREEOF\tRiadi činnosÅ¥ shellu po prijatí znaku EOF ako\n" +" \t\tjediného na vstupe. Ak je voľba nastavená, jej hodnota je\n" +" \t\tpočet znakov EOF, ktoré budú za sebou prijaté na prázdnom\n" +" \t\triadku predtým, než sa shell ukončí (Å¡tadnardne 10). Ak voľba\n" +" \t\tNie je nastavená, EOF značí koniec vstupu.\n" +" MACHTYPE\tReÅ¥azec popisujúci systém, na ktorom Bash práve beží.\n" +" MAILCHECK\tAko často v sekundách Bash kontroluje novú poÅ¡tu.\n" +" MAILPATH\tBodkočiarkami oddelený zoznam názvov súborov,\n" +" \t\tv ktorých Bash kontroluje novú poÅ¡tu.\n" +" OSTYPE\tVerzia Unixu na ktorej tento Bash beží.\n" +" PATH\tBodkočiarkami oddelený zoznam adresárov, v ktorých sa\n" +" \t\tmajú hľadaÅ¥ príkazy.\n" +" PROMPT_COMMAND\tPríkaz, ktorý sa má vykonaÅ¥ pred každým\n" +" \t\tvypísaním primárnej výzvy.\n" +" PS1\t\tReÅ¥azec primárnej výzvy.\n" +" PS2\t\tReÅ¥azec sekundárnej výzvy.\n" +" PWD\t\tPlná cesta k aktuálnemu adresáru.\n" +" SHELLOPTS\tBodkočiarkami oddelený zoznam zapnutých volieb shellu.\n" +" TERM\tNázov aktuálneho typu terminálu.\n" +" TIMEFORMAT\tFormát výstupu Å¡tatistiky doby behu, ktorú zobrazuje\n" +" \t\trezervované slovo „time“.\n" +" auto_resume\tNenulová hodnota značí príkaz, ktorý keď sa vyskytuje na " +"samostatnom\n" +" \t\triadku, vyhľadá sa v zozname momentálne zastavených\n" +" \t\túloh. Ak sa je tam nachádza, úloha sa prenesie do popredia.\n" +" \t\tHodnota „exact“ znamená, že slovo príkazu sa musí presne\n" +" \t\tzhodovaÅ¥ s príkazom v zozname zastavených úloh. Hodnota\n" +" \t\t„substring“ znamená, že slovo príkazu sa musí zhodovaÅ¥ s\n" +" \t\tpodreÅ¥azcom úlohy. Akákoľvek iná hodnota znamená, že\n" +" \t\tpríkaz musí byÅ¥ predponou zastavenej úlohy.\n" +" histchars\tZnaky riadiace dopĺňanie histórie a rýchle\n" +" \t\tnahrádzanie. prvý znak je znak nahrádzania z\n" +" \t\thistórie, zvyčajne „!“. Druhý je znak „rýchleho\n" +" \t\tnahrádzania“, zvyčajne „^“. Tretí je znak\n" +" \t\t„komentára histórie“, zvyčajne „#“.\n" +" HISTIGNORE\tBodkočiarkami oddelený zoznam vzoriek, ktoré\n" +" \t\tsa používajú na rozhodovanie, či sa príkaz uloží do histórie.\n" + +#: builtins.c:1733 +#, fuzzy +msgid "" +"Add directories to stack.\n" +" \n" +" Adds a directory to the top of the directory stack, or rotates\n" +" the stack, making the new top of the stack the current working\n" +" directory. With no arguments, exchanges the top two directories.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when adding\n" +" \tdirectories to the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the left of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" -N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the right of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" dir\tAdds DIR to the directory stack at the top, making it the\n" +" \tnew current working directory.\n" +" \n" +" The `dirs' builtin displays the directory stack.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid argument is supplied or the directory\n" +" change fails." +msgstr "" +"Pridá adresár na vrchol zásobníka adresárov alebo ho otočí tak, že\n" +" nový vrchol zásobníka sa stane aktuálnym pracovným adresárom.\n" +" Bez argumentov vymení vrchné dva adresáre.\n" +" \n" +" +N\tOtočí zásobník tak, že N-tý adresár (počítajúc zľava zoznamu,\n" +" \tktorý zobrazuje „dirs“, počínajúc nulou) je na vrchu.\n" +" \n" +" -N\tOtočí zásobník tak, že N-tý adresár (počítajúc sprava zoznamu,\n" +" \tktorý zobrazuje „dirs“, počínajúc nulou) je na vrchu.\n" +" \n" +" -n\tpotlačí normálnu zmenu adresára pri odstraňovaní položiek\n" +" \tzo zásobníka, takže sa zmení iba zásobník.\n" +" \n" +" adr\tpridá ADR na vrchol zásobníka adresárov, čím sa tento stane\n" +" \tnovým aktuálnym pracovným adresárom.\n" +" \n" +" Zásobník adresárov môžete zobraziÅ¥ príkazom „dirs“. \n" +" Návratový kód:\n" +" Vráti 0 ak nebol zadaný neplatný argument a nevyskytla sa\n" +" chyba pri zmene adresára." + +#: builtins.c:1767 +msgid "" +"Remove directories from stack.\n" +" \n" +" Removes entries from the directory stack. With no arguments, removes\n" +" the top directory from the stack, and changes to the new top directory.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when removing\n" +" \tdirectories from the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRemoves the Nth entry counting from the left of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd +0'\n" +" \tremoves the first directory, `popd +1' the second.\n" +" \n" +" -N\tRemoves the Nth entry counting from the right of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd -0'\n" +" \tremoves the last directory, `popd -1' the next to last.\n" +" \n" +" The `dirs' builtin displays the directory stack.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid argument is supplied or the directory\n" +" change fails." +msgstr "" +"Odstráni položky zo zásobníka adresárov.\n" +" \n" +" Odstráni položky zo zásobníka adresárov. Bez argumentov odstráni\n" +" vrchnú položku zo zásobníka a zmení adresár na adresár, ktorý\n" +" sa následne nachádza na vrchu zásobníka.\n" +" \n" +" Voľby:\n" +" -n\tpotlačí normálnu zmenu adresára pri odstraňovaní položiek\n" +" \tzo zásobníka, takže sa zmení iba zásobník.\n" +" \n" +" +N\todstráni N-tú položku položku počítajúc zľava zoznamu,\n" +" \tktorý zobrazuje „dirs“, počínajúc nulou. Napríklad: „popd +0“\n" +" \todstráni prvý adresár, „popd +1“ druhý.\n" +" \n" +" -N\todstráni N-tú položku položku počítajúc sprava zoznamu,\n" +" \tktorý zobrazuje „dirs“, počínajúc nulou. Napríklad: „popd -0“\n" +" \todstráni posledný adresár, „popd -1“ predposledný.\n" +" \n" +" Zásobník adresárov môžete zobraziÅ¥ príkazom „dirs“.\n" +" \n" +" Návratový kód:\n" +" Vráti 0 ak nebol zadaný neplatný argument a nevyskytla sa\n" +" chyba pri zmene adresára." + +#: builtins.c:1797 +msgid "" +"Display directory stack.\n" +" \n" +" Display the list of currently remembered directories. Directories\n" +" find their way onto the list with the `pushd' command; you can get\n" +" back up through the list with the `popd' command.\n" +" \n" +" Options:\n" +" -c\tclear the directory stack by deleting all of the elements\n" +" -l\tdo not print tilde-prefixed versions of directories relative\n" +" \tto your home directory\n" +" -p\tprint the directory stack with one entry per line\n" +" -v\tprint the directory stack with one entry per line prefixed\n" +" \twith its position in the stack\n" +" \n" +" Arguments:\n" +" +N\tDisplays the Nth entry counting from the left of the list shown " +"by\n" +" \tdirs when invoked without options, starting with zero.\n" +" \n" +" -N\tDisplays the Nth entry counting from the right of the list shown " +"by\n" +" \tdirs when invoked without options, starting with zero.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" +"Zobrazí zoznam momentálne zapamätaných adresárov.\n" +" \n" +" Zobrazí zoznam momentálne zapamätaných adresárov. Adresáre\n" +" sa do zoznamu dostávajú príkazom „pushd“; zo zoznamu ich môžete\n" +" vyberaÅ¥ postupne príkazom „popd“.\n" +" \n" +" Voľby:\n" +" -c\tvyprázdniÅ¥ zásobník adresárov zmazaním vÅ¡etkých položiek.\n" +" -l\tnevypisovaÅ¥ skrátené verzie adresárov vzhľadom na domovský\n" +" \trelatívne k vášmu domovskému adresáru\n" +" -p\tvypisovaÅ¥ zásobník adresárov vo formáte jedna položka na riadok\n" +" -v\tvypisovaÅ¥ zásobník adresárov vo formáte jedna položka na\n" +" \triadok a pred adresár vypísaÅ¥ jeho pozíciu v zásobníku.\n" +" \n" +" +N\tzobrazuje N-tú položku počítajúc zľava zoznamu, ktorý zobrazuje\n" +" \tdirs vyvolaný bez volieb, počínajúc nulou.\n" +" \n" +" -N\tzobrazuje N-tú položku počítajúc sprava zoznamu, ktorý zobrazuje\n" +" \tdirs vyvolaný bez volieb, počínajúc nulou.\n" +" \n" +" Návratový kód:\n" +" Vráti 0 ak nebol zadaný neplatný argument a nevyskytla sa chyba." + +#: builtins.c:1826 +msgid "" +"Set and unset shell options.\n" +" \n" +" Change the setting of each shell option OPTNAME. Without any option\n" +" arguments, list all shell options with an indication of whether or not " +"each\n" +" is set.\n" +" \n" +" Options:\n" +" -o\trestrict OPTNAMEs to those defined for use with `set -o'\n" +" -p\tprint each shell option with an indication of its status\n" +" -q\tsuppress output\n" +" -s\tenable (set) each OPTNAME\n" +" -u\tdisable (unset) each OPTNAME\n" +" \n" +" Exit Status:\n" +" Returns success if OPTNAME is enabled; fails if an invalid option is\n" +" given or OPTNAME is disabled." +msgstr "" + +#: builtins.c:1847 +msgid "" +"Formats and prints ARGUMENTS under control of the FORMAT.\n" +" \n" +" Options:\n" +" -v var\tassign the output to shell variable VAR rather than\n" +" \t\tdisplay it on the standard output\n" +" \n" +" FORMAT is a character string which contains three types of objects: " +"plain\n" +" characters, which are simply copied to standard output; character " +"escape\n" +" sequences, which are converted and copied to the standard output; and\n" +" format specifications, each of which causes printing of the next " +"successive\n" +" argument.\n" +" \n" +" In addition to the standard format specifications described in printf" +"(1)\n" +" and printf(3), printf interprets:\n" +" \n" +" %b\texpand backslash escape sequences in the corresponding argument\n" +" %q\tquote the argument in a way that can be reused as shell input\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or a write or " +"assignment\n" +" error occurs." +msgstr "" +"printf formátuje a vypisuje ARGUMENTY podľa FORMÁTu.\n" +" \n" +" FORMÁT je reÅ¥azec znakov, ktorý obsahuje tri typy objektov: čisté " +"znaky, ktoré sa jednoducho skopírujú na Å¡tandardný výstup, únikové " +"klauzuly,\n" +" ktoré sa nahradia zodpovedajúcim výstupom a skopírujú na Å¡tandardný\n" +" výstup a Å¡pecifikácie formátu, z ktorých každá spôsobí vypísanie\n" +" nasledovného argumentu.\n" +" \n" +" Okrem Å¡tandardných formátov popísaných v printf(1) a printf(3)\n" +" printf rozoznáva:\n" +" \n" +" %b\trozšíriÅ¥ únikové klauzuly backspace v zodpovedajúcom argumente\n" +" %q\tdaÅ¥ argument do zátvoriek tak, aby ho bolo možné použiÅ¥ ako\n" +" \tvstup shellu.\n" +" \n" +" Návratový kód:\n" +" Vráti 0 ak nebola zadaná neplatná voľba a nevyskytla sa chyba pri\n" +" zápise či priradení." + +#: builtins.c:1874 +msgid "" +"Specify how arguments are to be completed by Readline.\n" +" \n" +" For each NAME, specify how arguments are to be completed. If no " +"options\n" +" are supplied, existing completion specifications are printed in a way " +"that\n" +" allows them to be reused as input.\n" +" \n" +" Options:\n" +" -p\tprint existing completion specifications in a reusable format\n" +" -r\tremove a completion specification for each NAME, or, if no\n" +" \tNAMEs are supplied, all completion specifications\n" +" \n" +" When completion is attempted, the actions are applied in the order the\n" +" uppercase-letter options are listed above.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" + +#: builtins.c:1897 +msgid "" +"Display possible completions depending on the options.\n" +" \n" +" Intended to be used from within a shell function generating possible\n" +" completions. If the optional WORD argument is supplied, matches " +"against\n" +" WORD are generated.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" +"Zobrazí možné dokončenie v závislosti na voľbách.\n" +" \n" +" Slúži na použitie z shell funkcií tvoriacich možné dokončenia\n" +" Ak je daný voliteľný parameter SLOVO, tvoria sa zhody so SLOVOm.\n" +" \n" +" Návratový kód:\n" +" Vráti 0 ak nebola zadaná neplatná voľba a nevyskytla sa chyba." + +#: builtins.c:1912 +msgid "" +"Modify or display completion options.\n" +" \n" +" Modify the completion options for each NAME, or, if no NAMEs are " +"supplied,\n" +" the completion currently begin executed. If no OPTIONs are givenm, " +"print\n" +" the completion options for each NAME or the current completion " +"specification.\n" +" \n" +" Options:\n" +" \t-o option\tSet completion option OPTION for each NAME\n" +" \n" +" Using `+o' instead of `-o' turns off the specified option.\n" +" \n" +" Arguments:\n" +" \n" +" Each NAME refers to a command for which a completion specification must\n" +" have previously been defined using the `complete' builtin. If no NAMEs\n" +" are supplied, compopt must be called by a function currently generating\n" +" completions, and the options for that currently-executing completion\n" +" generator are modified.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or NAME does not\n" +" have a completion specification defined." +msgstr "" + +#: builtins.c:1940 +msgid "" +"Read lines from a file into an array variable.\n" +" \n" +" Read lines from the standard input into the array variable ARRAY, or " +"from\n" +" file descriptor FD if the -u option is supplied. The variable MAPFILE " +"is\n" +" the default ARRAY.\n" +" \n" +" Options:\n" +" -n count\tCopy at most COUNT lines. If COUNT is 0, all lines are " +"copied.\n" +" -O origin\tBegin assigning to ARRAY at index ORIGIN. The default " +"index is 0.\n" +" -s count \tDiscard the first COUNT lines read.\n" +" -t\t\tRemove a trailing newline from each line read.\n" +" -u fd\t\tRead lines from file descriptor FD instead of the standard " +"input.\n" +" -C callback\tEvaluate CALLBACK each time QUANTUM lines are read.\n" +" -c quantum\tSpecify the number of lines read between each call to " +"CALLBACK.\n" +" \n" +" Arguments:\n" +" ARRAY\t\tArray variable name to use for file data.\n" +" \n" +" If -C is supplied without -c, the default quantum is 5000.\n" +" \n" +" If not supplied with an explicit origin, mapfile will clear ARRAY " +"before\n" +" assigning to it.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or ARRAY is readonly." +msgstr "" + +#~ msgid " " +#~ msgstr " " + +#~ msgid "Without EXPR, returns returns \"$line $filename\". With EXPR," +#~ msgstr "Bez VÝR, vráti „$line $filename“. S VÝR," + +#~ msgid "returns \"$line $subroutine $filename\"; this extra information" +#~ msgstr "vráti „$line $subroutine $filename“; túto informáciu" + +#~ msgid "can be used used to provide a stack trace." +#~ msgstr "je možné využiÅ¥ pre trasovanie zásobníka." + +#~ msgid "" +#~ "The value of EXPR indicates how many call frames to go back before the" +#~ msgstr "Hodnota VÝR určuje o koľko rámcov volania sa vrátiÅ¥" + +#~ msgid "current one; the top frame is frame 0." +#~ msgstr "pred aktuálny; najvyšší rámec má číslo 0." + +#~ msgid "%s: invalid number" +#~ msgstr "%s: neplatné číslo" + +#~ msgid "Shell commands matching keywords `" +#~ msgstr "Príkazy shellu zodpovedajúce kľúčovým slovám „" + +#~ msgid "Display the list of currently remembered directories. Directories" +#~ msgstr "ZobraziÅ¥ zoznam momentálne zapamätaných adresárov. Adresáre" + +#~ msgid "find their way onto the list with the `pushd' command; you can get" +#~ msgstr "sa do zoznamu dostanú príkazom „pushd“; späť hore v zozname" + +#~ msgid "back up through the list with the `popd' command." +#~ msgstr "sa môžete dostaÅ¥ príkazom „popd“." + +#~ msgid "" +#~ "The -l flag specifies that `dirs' should not print shorthand versions" +#~ msgstr "Voľba -l hovorí, že „dirs“ by nemal vypísovaÅ¥ skrátené verzie" + +#~ msgid "" +#~ "of directories which are relative to your home directory. This means" +#~ msgstr "" +#~ "adresárov, ktoré sa vzÅ¥ahujú k vášmu domovskému adresáru. To znamená," + +#~ msgid "that `~/bin' might be displayed as `/homes/bfox/bin'. The -v flag" +#~ msgstr "že „~/bin“ sa može zobraziÅ¥ ako „/homes/bfox/bin“. Voľba -v" + +#~ msgid "causes `dirs' to print the directory stack with one entry per line," +#~ msgstr "" +#~ "hovorí, aby „dirs“ vypísal zásobník adresárov s jednou položkou na riadok," + +#~ msgid "" +#~ "prepending the directory name with its position in the stack. The -p" +#~ msgstr "a pred názov adresára vypísal jeho polohu v zásobníku. Voľba -p" + +#~ msgid "flag does the same thing, but the stack position is not prepended." +#~ msgstr "robí presne to isté, len sa nepridáva poloha v zásobníku." + +#~ msgid "" +#~ "The -c flag clears the directory stack by deleting all of the elements." +#~ msgstr "Voľba -c čistí zásobník adresárov odstránením vÅ¡etkých prvkov." + +#~ msgid "" +#~ "+N displays the Nth entry counting from the left of the list shown by" +#~ msgstr "+N zobrazí N-tú položku zľava zoznamu zobrazenú pomocou" + +#~ msgid " dirs when invoked without options, starting with zero." +#~ msgstr " dirs vyvolaného bez volieb, počínajúc nulou." + +#~ msgid "" +#~ "-N displays the Nth entry counting from the right of the list shown by" +#~ msgstr "+N zobrazí N-tú položku sprava zoznamu zobrazenú pomocou" + +#~ msgid "Adds a directory to the top of the directory stack, or rotates" +#~ msgstr "Pridá adresár na vrch zásobníka adresárov alebo otočí" + +#~ msgid "the stack, making the new top of the stack the current working" +#~ msgstr "zásobník, čím aktuálny pracovný adresár bude na vrchu" + +#~ msgid "directory. With no arguments, exchanges the top two directories." +#~ msgstr "zásobníka. Bez argumentov vymení vrchné dva adresáre." + +#~ msgid "+N Rotates the stack so that the Nth directory (counting" +#~ msgstr "+N Otočí zásobník tak, že N-tý adresár (počítajúc" + +#~ msgid " from the left of the list shown by `dirs', starting with" +#~ msgstr " zľava zoznamu, ktorý vráti „dirs“, počínajúc nulou)" + +#~ msgid " zero) is at the top." +#~ msgstr " je na vrchu." + +#~ msgid "-N Rotates the stack so that the Nth directory (counting" +#~ msgstr "-N Otočí zásobník tak, že N-tý adresár (počítajúc" + +#~ msgid " from the right of the list shown by `dirs', starting with" +#~ msgstr " sprava zoznamu, ktorý vráti „dirs“, počínajúc nulou)" + +#~ msgid "-n suppress the normal change of directory when adding directories" +#~ msgstr "-n potlačiÅ¥ normálnu zmenu adresára pri pridávaní adresárov" + +#~ msgid " to the stack, so only the stack is manipulated." +#~ msgstr " na zásobník, takže sa zmení iba zásobník." + +#~ msgid "dir adds DIR to the directory stack at the top, making it the" +#~ msgstr "dir pridá DIR na vrch zásobníka adreárov, čím ho učiní" + +#~ msgid " new current working directory." +#~ msgstr " novým aktuálnym adresárom." + +#~ msgid "You can see the directory stack with the `dirs' command." +#~ msgstr "Zásobník adresárov môžete zobraziÅ¥ príkazom „dirs“." + +#~ msgid "Removes entries from the directory stack. With no arguments," +#~ msgstr "Odstráni položky zo zásobníka adresárov. Bez argumentov" + +#~ msgid "removes the top directory from the stack, and cd's to the new" +#~ msgstr "odstráni vrchný adresár zo zásobníka a zmení aktuálny adresár" + +#~ msgid "top directory." +#~ msgstr "na nový vrchol zásobníka." + +#~ msgid "+N removes the Nth entry counting from the left of the list" +#~ msgstr "+N Odstráni N-túä položku (počítajúc zľava zoznamu," + +#~ msgid " shown by `dirs', starting with zero. For example: `popd +0'" +#~ msgstr " ktorý vráti „dirs“, počínajúc nulou). Napríklad: „popd +0“" + +#~ msgid " removes the first directory, `popd +1' the second." +#~ msgstr " odstráni prvý adresár, „popd +1“ druhý." + +#~ msgid "-N removes the Nth entry counting from the right of the list" +#~ msgstr "-N Odstráni N-túä položku (počítajúc sprava zoznamu," + +#~ msgid " shown by `dirs', starting with zero. For example: `popd -0'" +#~ msgstr " ktorý vráti „dirs“, počínajúc nulou). Napríklad: „popd -0“" + +#~ msgid " removes the last directory, `popd -1' the next to last." +#~ msgstr " odstráni posledný adresár, „popd -1“ predposledný." + +#~ msgid "" +#~ "-n suppress the normal change of directory when removing directories" +#~ msgstr "-n potlačiÅ¥ normálnu zmenu adresára pri odoberaní adresárov" + +#~ msgid " from the stack, so only the stack is manipulated." +#~ msgstr " zo zásobníka, takže sa zmení iba zásobník." + +#~ msgid "allocated" +#~ msgstr "alokované" + +#~ msgid "freed" +#~ msgstr "uvoľnené" + +#~ msgid "requesting resize" +#~ msgstr "žiadam o zmenu veľkosti" + +#~ msgid "just resized" +#~ msgstr "veľkosÅ¥ bola práve zmenená" + +#~ msgid "bug: unknown operation" +#~ msgstr "chyba: neznáma operácia" + +#~ msgid "malloc: watch alert: %p %s " +#~ msgstr "malloc: upozornenie sledovania: %p %s " + +#~ msgid "" +#~ "Exit from within a FOR, WHILE or UNTIL loop. If N is specified,\n" +#~ " break N levels." +#~ msgstr "" +#~ "Vyskočí zvnútra cyklu FOR, WHILE alebo UNTIL. Ak je uvedené N,\n" +#~ " vyskočí o N úrovní." + +#~ msgid "" +#~ "Run a shell builtin. This is useful when you wish to rename a\n" +#~ " shell builtin to be a function, but need the functionality of the\n" +#~ " builtin within the function itself." +#~ msgstr "" +#~ "Spustí vstavaný príkaz (builtin) shellu. Toto je užitočné, keď\n" +#~ " chcete premenovaÅ¥ vstavaný príkaz shellu na funkciu, ale\n" +#~ " potrebujete funkcionalitu samotného vstavaného príkazu\n" +#~ " vnútri funkcie." + +#~ msgid "" +#~ "Print the current working directory. With the -P option, pwd prints\n" +#~ " the physical directory, without any symbolic links; the -L option\n" +#~ " makes pwd follow symbolic links." +#~ msgstr "" +#~ "Vypíše aktuálny pracovný adresár. S voľbou -P pwd vypíše\n" +#~ " fyzický adresár bez symbolických odkazov; s voľbou -L\n" +#~ " bude pwd nasledovaÅ¥ symbolické odkazy." + +#~ msgid "Return a successful result." +#~ msgstr "Vráti úspeÅ¡ný výsledok." + +#~ msgid "" +#~ "Runs COMMAND with ARGS ignoring shell functions. If you have a shell\n" +#~ " function called `ls', and you wish to call the command `ls', you can\n" +#~ " say \"command ls\". If the -p option is given, a default value is " +#~ "used\n" +#~ " for PATH that is guaranteed to find all of the standard utilities. " +#~ "If\n" +#~ " the -V or -v option is given, a string is printed describing " +#~ "COMMAND.\n" +#~ " The -V option produces a more verbose description." +#~ msgstr "" +#~ "Spustí PRÍKAZ s ARG ignorujúc funkcie shellu. Ak máte funkciu shellu\n" +#~ " zvanú „ls“ a chcete zavolaÅ¥ príkaz „ls“, môžete napísaÅ¥\n" +#~ " „command ls“. Ak je zadaná voľba -p, použije sa Å¡tandardná hodnota\n" +#~ " PATH, ktorá zaručene nájde vÅ¡etky Å¡tandardné nástroje. Ak je zadaná\n" +#~ " voľba -V alebo -v, vypíše sa popis PRÍKAZU.\n" +#~ " Voľba -V poskytuje podrobnejší výstup." + +#~ msgid "" +#~ "Declare variables and/or give them attributes. If no NAMEs are\n" +#~ " given, then display the values of variables instead. The -p option\n" +#~ " will display the attributes and values of each NAME.\n" +#~ " \n" +#~ " The flags are:\n" +#~ " \n" +#~ " -a\tto make NAMEs arrays (if supported)\n" +#~ " -f\tto select from among function names only\n" +#~ " -F\tto display function names (and line number and source file name " +#~ "if\n" +#~ " \tdebugging) without definitions\n" +#~ " -i\tto make NAMEs have the `integer' attribute\n" +#~ " -r\tto make NAMEs readonly\n" +#~ " -t\tto make NAMEs have the `trace' attribute\n" +#~ " -x\tto make NAMEs export\n" +#~ " \n" +#~ " Variables with the integer attribute have arithmetic evaluation (see\n" +#~ " `let') done when the variable is assigned to.\n" +#~ " \n" +#~ " When displaying values of variables, -f displays a function's name\n" +#~ " and definition. The -F option restricts the display to function\n" +#~ " name only.\n" +#~ " \n" +#~ " Using `+' instead of `-' turns off the given attribute instead. " +#~ "When\n" +#~ " used in a function, makes NAMEs local, as with the `local' command." +#~ msgstr "" +#~ "Deklaruje premenné a/alebo im dodá argumenty. Ak nie sú zadané\n" +#~ " NÁZVY, zobraziÅ¥ hodnoty premenných. Voľba -p zobrazí atribúty\n" +#~ " a hotnoty každého NÁZVU.\n" +#~ " \n" +#~ " Príznaky sú:\n" +#~ " \n" +#~ " -a\tna vytvorenie polí NÁZVOV (ak sú podporované)\n" +#~ " -f\tna výber iba spomedzi názvov funkcií\n" +#~ " -F\tna zobrazenie názvov funkcií (a čísla riadku a zdrojového " +#~ "súboru\n" +#~ " \tpre ladenie) bez definícií\n" +#~ " -i\taby mali NÁZVY atribút „integer“\n" +#~ " -r\taby boli NÁZVY len na čítanie\n" +#~ " -t\taby mali NÁZVY atribút „trace“\n" +#~ " -x\taby sa NÁZVY exportovali\n" +#~ " \n" +#~ " Premenné s atribútom integer vykonávajú aritmetické vyhodnocovanie " +#~ "(pozri\n" +#~ " „let“) po priradení výrazu premennej.\n" +#~ " \n" +#~ " Pri zobrazovaní hodnôt premennÃ½ch, -f zobrazí názov a definíciu\n" +#~ " funkcie. Voľba -F obmedzí zobrazovanie iba na názov funkcie.\n" +#~ " \n" +#~ " Pomocou „+“ namiesto „-“ sa vypína daný atribút. Keď sa použije vo\n" +#~ " funkcii, spôsobí lokálnosÅ¥ NÁZVOV ako pri príkaze „local“ command." + +#~ msgid "Obsolete. See `declare'." +#~ msgstr "Zastaralé. Pozri „declare“." + +#~ msgid "" +#~ "Create a local variable called NAME, and give it VALUE. LOCAL\n" +#~ " can only be used within a function; it makes the variable NAME\n" +#~ " have a visible scope restricted to that function and its children." +#~ msgstr "" +#~ "Vytvorí lokálnu premennú s NÁZVOM a priradí jej HODNOTU. LOCAL\n" +#~ " je možné použiÅ¥ iba v rámci funkcie; spôsobí obmedzenie viditeľnosti\n" +#~ " premennej NÁZOV iba na túto funkciu a jej potomkov." + +#~ msgid "" +#~ "Output the ARGs. If -n is specified, the trailing newline is suppressed." +#~ msgstr "" +#~ "Vypíše ARGumenty. S voľbou -n bude posledný znak nového riadka potlačený." + +#~ msgid "" +#~ "Enable and disable builtin shell commands. This allows\n" +#~ " you to use a disk command which has the same name as a shell\n" +#~ " builtin without specifying a full pathname. If -n is used, the\n" +#~ " NAMEs become disabled; otherwise NAMEs are enabled. For example,\n" +#~ " to use the `test' found in $PATH instead of the shell builtin\n" +#~ " version, type `enable -n test'. On systems supporting dynamic\n" +#~ " loading, the -f option may be used to load new builtins from the\n" +#~ " shared object FILENAME. The -d option will delete a builtin\n" +#~ " previously loaded with -f. If no non-option names are given, or\n" +#~ " the -p option is supplied, a list of builtins is printed. The\n" +#~ " -a option means to print every builtin with an indication of whether\n" +#~ " or not it is enabled. The -s option restricts the output to the " +#~ "POSIX.2\n" +#~ " `special' builtins. The -n option displays a list of all disabled " +#~ "builtins." +#~ msgstr "" +#~ "Zapína a vypína vstavené (builtin) príkazy shellu. Toto vám umožní\n" +#~ " použiÅ¥ príkaz s rovnakým názvom ako má vstavaný príkaz shellu\n" +#~ " bez toho, aby ste uvádzali plnú cestu. S voľbou -n budú NÁZVY\n" +#~ " vypnuté; inak budú NÁZVY zapnuté. Napríklad ak chcete použiÅ¥\n" +#~ " „test“, ktorý sa nachádza v $PATH namiesto vstavaného príkazu,\n" +#~ " napíšte „enable -n test“. Na systémoch, ktoré podporujú dynamické\n" +#~ " nahrávanie je možné použiÅ¥ voľbu -f na načítanie nových vstavaných\n" +#~ " príkazov zo zdieľaného objektu NÁZOVSÚBORU. Voľba -d zmaže\n" +#~ " vstavaný príkaz, ktorý bol predtým načítaný pomocou -f. Ak nie sú\n" +#~ " zadané žiadne názvy okrem volieb alebo je zadaná voľba -p , vypíše\n" +#~ " sa zoznam vstavaných príkazov. Voľba -a znamená, že sa má vypísaÅ¥\n" +#~ " každý vstavaný príkaz a či je zapnutý alebo vypnutý. Voľba -s " +#~ "obmedzí\n" +#~ " výstup na POSIX.2 „special“ vstavané príkazy. Voľba -n zobrazí " +#~ "zoznam\n" +#~ " vÅ¡etkých vypnutých vstavaných príkazov." + +#~ msgid "" +#~ "Read ARGs as input to the shell and execute the resulting command(s)." +#~ msgstr "Prečíta ARGumenty ako vstup do shellu a vykoná výsledné príkazy." + +#~ msgid "" +#~ "Exec FILE, replacing this shell with the specified program.\n" +#~ " If FILE is not specified, the redirections take effect in this\n" +#~ " shell. If the first argument is `-l', then place a dash in the\n" +#~ " zeroth arg passed to FILE, as login does. If the `-c' option\n" +#~ " is supplied, FILE is executed with a null environment. The `-a'\n" +#~ " option means to make set argv[0] of the executed process to NAME.\n" +#~ " If the file cannot be executed and the shell is not interactive,\n" +#~ " then the shell exits, unless the shell option `execfail' is set." +#~ msgstr "" +#~ "Vykoná SÚBOR, pričom nahradí tento shell uvedeným programom.\n" +#~ " Ak SÚBOR nie je zadaný, presmerovania sa uskutočnia v tomto\n" +#~ " shelli. Ak je prvý argument „-l“, potom dá znak spojovník do\n" +#~ " nultého arg, ktorý sa dáva SÚBORU, tak ako to robí login. Ak sa\n" +#~ " zadá voľba „-c“, SÚBOR sa vykoná s null prostredím. Voľba „-a“\n" +#~ " znamená nastaviľ argv[0] vykonávaného procesu na NÁZOV.\n" +#~ " Ak súbor nie je možné vykonaÅ¥ a shell nie je interaktívny, potom,\n" +#~ " shell skončí, ak nie je nastavená voľba „execfail“." + +#~ msgid "Logout of a login shell." +#~ msgstr "OdhlásiÅ¥ sa z login shelu." + +#~ msgid "" +#~ "For each NAME, the full pathname of the command is determined and\n" +#~ " remembered. If the -p option is supplied, PATHNAME is used as the\n" +#~ " full pathname of NAME, and no path search is performed. The -r\n" +#~ " option causes the shell to forget all remembered locations. The -d\n" +#~ " option causes the shell to forget the remembered location of each " +#~ "NAME.\n" +#~ " If the -t option is supplied the full pathname to which each NAME\n" +#~ " corresponds is printed. If multiple NAME arguments are supplied " +#~ "with\n" +#~ " -t, the NAME is printed before the hashed full pathname. The -l " +#~ "option\n" +#~ " causes output to be displayed in a format that may be reused as " +#~ "input.\n" +#~ " If no arguments are given, information about remembered commands is " +#~ "displayed." +#~ msgstr "" +#~ "Pre každý NÁZOV sa určí a zapamätá plná cesta k príkazu. Ak je daná voľba " +#~ "-p\n" +#~ " CESTA sa použije ako plná cesta k NÁZOV a nevykoná sa hľadanie " +#~ "cesty.\n" +#~ " Voľba -r spôsobí, že shell zabudne vÅ¡etky zapamätané miesta.\n" +#~ " Voľba -d spôsobí, že shell zabudne zapamätané miesto každého NÁZVU.\n" +#~ " Ak je zadaná voľba -t, vypíše sa plná cesta zodpovedajúca každému\n" +#~ " NÁZVU. Ak sú s voľbou -t uvedené viaceré argumenty NÁZOV, pred\n" +#~ " plnou cestou sa vypíše NÁZOV. Voľba -l vypíše výstup vo forme, ktorú\n" +#~ " je možné znova použiÅ¥ ako vstup. Ak nie sú zadané žiadne argumenty,\n" +#~ " zobrazia sa informácie o zapamätaných príkazoch." + +#~ msgid "" +#~ "Display helpful information about builtin commands. If PATTERN is\n" +#~ " specified, gives detailed help on all commands matching PATTERN,\n" +#~ " otherwise a list of the builtins is printed. The -s option\n" +#~ " restricts the output for each builtin command matching PATTERN to\n" +#~ " a short usage synopsis." +#~ msgstr "" +#~ "Zobrazí užitočné informácie o vstavaných (builtin) príkazoch. Ak je\n" +#~ " uvedený VZOR, poskytne podrobné informácie o vÅ¡etkých príkazoch\n" +#~ " zodpovedajúcich VZORU. Inak sa vypíše zoznam vstavaných príkazov.\n" +#~ " Voľba -s obmedzí výstup pre každý príkaz zodpovedajúci VZORU na\n" +#~ " krátke zhrnutie použitia." + +#~ msgid "" +#~ "By default, removes each JOBSPEC argument from the table of active jobs.\n" +#~ " If the -h option is given, the job is not removed from the table, but " +#~ "is\n" +#~ " marked so that SIGHUP is not sent to the job if the shell receives a\n" +#~ " SIGHUP. The -a option, when JOBSPEC is not supplied, means to remove " +#~ "all\n" +#~ " jobs from the job table; the -r option means to remove only running " +#~ "jobs." +#~ msgstr "" +#~ "Å tandardne odstráni argument JOBSPEC z tabuľky aktívnych úloh.\n" +#~ " Ak je uvedená voľba „-h“, úloha sa neodstráni z tabuľky, ale označí " +#~ "sa\n" +#~ " tak, že SIGHUP sa nepoÅ¡le úlohe, ak shell dostane SIGHUP. Voľba „-a“\n" +#~ " bez uvedenej JOBSPEC znamená odstránenie vÅ¡etkých úloh z tabuľky\n" +#~ " úloh; voľba „-r“ znamená odstrániÅ¥ iba bežiace úlohy." + +#~ msgid "" +#~ "Causes a function to exit with the return value specified by N. If N\n" +#~ " is omitted, the return status is that of the last command." +#~ msgstr "" +#~ "Spôsobí, že sa funkcia ukončí s návratovou hodnotou N. Ak N\n" +#~ " vynecháte, vráti sa návratová hodnota posledného vykonaného\n" +#~ " príkazu." + +#~ msgid "" +#~ "For each NAME, remove the corresponding variable or function. Given\n" +#~ " the `-v', unset will only act on variables. Given the `-f' flag,\n" +#~ " unset will only act on functions. With neither flag, unset first\n" +#~ " tries to unset a variable, and if that fails, then tries to unset a\n" +#~ " function. Some variables cannot be unset; also see readonly." +#~ msgstr "" +#~ "Pre každý NÁZOV odstráni zodpovedajúcu premennú alebo funkciu.\n" +#~ " Ak je zadaný prepínač „-v“, unset bude účinkovaÅ¥ iba na premenné.\n" +#~ " Ak je zadaný prepínač „-t“, unset bude účinkovaÅ¥ iba na funkcie.\n" +#~ " Bez prepínačov sa unset pokúsi najprv zruÅ¡iÅ¥ nastavenie premennej\n" +#~ " a ak to zlyhá, pokúsi sa zruÅ¡iÅ¥ nastavenie funkcie.\n" +#~ " Niektoré premenné nemožno zruÅ¡iÅ¥; pozri aj readonly." + +#~ msgid "" +#~ "NAMEs are marked for automatic export to the environment of\n" +#~ " subsequently executed commands. If the -f option is given,\n" +#~ " the NAMEs refer to functions. If no NAMEs are given, or if `-p'\n" +#~ " is given, a list of all names that are exported in this shell is\n" +#~ " printed. An argument of `-n' says to remove the export property\n" +#~ " from subsequent NAMEs. An argument of `--' disables further option\n" +#~ " processing." +#~ msgstr "" +#~ "NÁZVY sa označia na automatický export do prostredia následne\n" +#~ " vykonaných príkazov. Ak je zadaná voľba -f, NÁZVY odkazujú na\n" +#~ " funkcie. Ak nezadáte žiadne NÁZVY alebo zadáte voľbu „-p“,\n" +#~ " vypíše sa zoznam vÅ¡etkých názvov, ktoré sú exportované v tomto\n" +#~ " shelli. Argument „-n“ hovorí, že sa má odstrániÅ¥ vlastnosÅ¥ export z\n" +#~ " nasledujúcich NÁZVOV. Argument „--“ vypína spracovanie ďalších\n" +#~ " volieb." + +#~ msgid "" +#~ "The given NAMEs are marked readonly and the values of these NAMEs may\n" +#~ " not be changed by subsequent assignment. If the -f option is given,\n" +#~ " then functions corresponding to the NAMEs are so marked. If no\n" +#~ " arguments are given, or if `-p' is given, a list of all readonly " +#~ "names\n" +#~ " is printed. The `-a' option means to treat each NAME as\n" +#~ " an array variable. An argument of `--' disables further option\n" +#~ " processing." +#~ msgstr "" +#~ "Zadané NÁZVY sa označia iba na čítanie a hodnoty týchto NÁZVOV nebude\n" +#~ " možné zmeniÅ¥ ďalším priradením. Ak je zadaná voľba -f, označia sa " +#~ "takto\n" +#~ " funkcie zodpovedajúce NÁZVU. Ak nie sú zadané žiadne argumenty alebo\n" +#~ " je zadané „-p“, vypíše sa zoznam vÅ¡etkých názvov len na čítanie. " +#~ "Voľba „-a“\n" +#~ " znamená, že sa každá premenná NÁZOV bude považovaÅ¥ za pole. Argument\n" +#~ " „--“ vypína spracovanie ďalších volieb." + +#~ msgid "" +#~ "The positional parameters from $N+1 ... are renamed to $1 ... If N is\n" +#~ " not given, it is assumed to be 1." +#~ msgstr "" +#~ "Pozičné parametre od $N+1 ... sa premenujú na $1 ... Ak\n" +#~ " neuvediete N, predpokladá sa 1." + +#~ msgid "" +#~ "Suspend the execution of this shell until it receives a SIGCONT\n" +#~ " signal. The `-f' if specified says not to complain about this\n" +#~ " being a login shell if it is; just suspend anyway." +#~ msgstr "" +#~ "OdstaviÅ¥ vykonávanie tohto shellu, kým nedostane signál\n" +#~ " SIGCONT. Zadanie voľby „-f“ hovorí, že sa shell nemá sÅ¥ažovaÅ¥,\n" +#~ " ak je prihlasovací a napriek tomu sa má odhlásiÅ¥." + +#~ msgid "" +#~ "Print the accumulated user and system times for processes run from\n" +#~ " the shell." +#~ msgstr "" +#~ "VypísaÅ¥ kumulatívne používateľské a systémové časy procesov\n" +#~ " spustených zo shellu." + +#~ msgid "" +#~ "For each NAME, indicate how it would be interpreted if used as a\n" +#~ " command name.\n" +#~ " \n" +#~ " If the -t option is used, `type' outputs a single word which is one " +#~ "of\n" +#~ " `alias', `keyword', `function', `builtin', `file' or `', if NAME is " +#~ "an\n" +#~ " alias, shell reserved word, shell function, shell builtin, disk " +#~ "file,\n" +#~ " or unfound, respectively.\n" +#~ " \n" +#~ " If the -p flag is used, `type' either returns the name of the disk\n" +#~ " file that would be executed, or nothing if `type -t NAME' would not\n" +#~ " return `file'.\n" +#~ " \n" +#~ " If the -a flag is used, `type' displays all of the places that " +#~ "contain\n" +#~ " an executable named `file'. This includes aliases, builtins, and\n" +#~ " functions, if and only if the -p flag is not also used.\n" +#~ " \n" +#~ " The -f flag suppresses shell function lookup.\n" +#~ " \n" +#~ " The -P flag forces a PATH search for each NAME, even if it is an " +#~ "alias,\n" +#~ " builtin, or function, and returns the name of the disk file that " +#~ "would\n" +#~ " be executed." +#~ msgstr "" +#~ "Pre každý NÁZOV určí ako by sa interpretoval, keby sa použil ako\n" +#~ " názov príkazu.\n" +#~ " \n" +#~ " Ak je použitá voľba -t, „type“ vypíše jediné slovo, ktoré je jedno z\n" +#~ " „alias“, „keyword“, „function“, „builtin“, „file“ alebo „“, ak NÁZOV\n" +#~ " je alias, vyhradené slovo shellu, funkcia shellu, vstavaný príkaz " +#~ "shellu,\n" +#~ " súbor na disku resp. nezistený typ.\n" +#~ " \n" +#~ " Ak je použitá voľba -p, „type“ vypíše buď názov súboru na disku,\n" +#~ " ktorý by sa vykonal alebo nič ak by „type -t NÁZOV“ nevrátilo\n" +#~ " „file“.\n" +#~ " \n" +#~ " Ak je použitá voľba -a, „type“ vypíše vÅ¡etky miesta, ktoré obsahujú\n" +#~ " spustiteľný súbor s názvom Ak je použitá voľba -t, „file“. Sem " +#~ "patria\n" +#~ " aliasy, vstavané premenné a funkcie ak a iba ak nie je zároveň " +#~ "zadaný\n" +#~ " prepínač -p.\n" +#~ " \n" +#~ " Voľba -f potlačí vyhľadávanie funkcií shellu.\n" +#~ " \n" +#~ " Voľba -P vynúti vyhľadanie každého NÁZVU v ceste (premenná PATH),\n" +#~ " aj ak je to alias, vstavaný príkaz shellu alebo funkcia a vráti " +#~ "názov\n" +#~ " súboru na disku, ktorý by sa vykonal." + +#~ msgid "" +#~ "The user file-creation mask is set to MODE. If MODE is omitted, or if\n" +#~ " `-S' is supplied, the current value of the mask is printed. The `-" +#~ "S'\n" +#~ " option makes the output symbolic; otherwise an octal number is " +#~ "output.\n" +#~ " If `-p' is supplied, and MODE is omitted, the output is in a form\n" +#~ " that may be used as input. If MODE begins with a digit, it is\n" +#~ " interpreted as an octal number, otherwise it is a symbolic mode " +#~ "string\n" +#~ " like that accepted by chmod(1)." +#~ msgstr "" +#~ "Používateľská maska pre tvorbu súborov sa nastaví na REŽIM. Ak\n" +#~ " vynecháte REŽIM alebo zadáte „-S“, vypíše sa aktuálna hodnota masky.\n" +#~ " Voľba „-S“ vypisuje symbolický výstup; inak sa vypisuje číslo v " +#~ "osmičkovej\n" +#~ " sústave. Ak je zadaná voľba „-p“ a REŽIM sa vynechá, výstup je v " +#~ "tvare,\n" +#~ " ktorý je možné použiÅ¥ ako vstup. Ak REŽIM začína číslicou, " +#~ "interpretuje sa\n" +#~ " ako číslo v osmičkovej sústave, inak je to symbolický reÅ¥azec " +#~ "režimu,\n" +#~ " v tvare, aký prijíma chmod(1)." + +#~ msgid "" +#~ "Wait for the specified process and report its termination status. If\n" +#~ " N is not given, all currently active child processes are waited for,\n" +#~ " and the return code is zero. N is a process ID; if it is not given,\n" +#~ " all child processes of the shell are waited for." +#~ msgstr "" +#~ "ČakaÅ¥ na ukončenie zadaného procesu a vypísaÅ¥ jeho návratovú\n" +#~ " hodnotu. Ak nie je N zadané, čaká sa na vÅ¡etky momentálne\n" +#~ " aktívne procesy potomkov a návratová hodnota je nula. N je\n" +#~ " ID procesu; ak nie je zadaný, čaká sa na ukončenie vÅ¡etkých\n" +#~ " procesov potomkov shellu." + +#~ msgid "" +#~ "Create a simple command invoked by NAME which runs COMMANDS.\n" +#~ " Arguments on the command line along with NAME are passed to the\n" +#~ " function as $0 .. $n." +#~ msgstr "" +#~ "VytvoriÅ¥ jednoduchý príkaz, ktorý sa vyvolá pomocou NÁZVU a spustí\n" +#~ " PRÍKAZY. Argumenty príkazového riadka sa spolu s NÁZVOM dodajú\n" +#~ " funkcii v premenných $0 až $n." + +#~ msgid "" +#~ "Toggle the values of variables controlling optional behavior.\n" +#~ " The -s flag means to enable (set) each OPTNAME; the -u flag\n" +#~ " unsets each OPTNAME. The -q flag suppresses output; the exit\n" +#~ " status indicates whether each OPTNAME is set or unset. The -o\n" +#~ " option restricts the OPTNAMEs to those defined for use with\n" +#~ " `set -o'. With no options, or with the -p option, a list of all\n" +#~ " settable options is displayed, with an indication of whether or\n" +#~ " not each is set." +#~ msgstr "" +#~ "Obráti hodnoty premenných riadiacich voliteľné správanie.\n" +#~ " Voľba -s znamená zapnúť (nastaviÅ¥) naždého NÁZVU_VOĽBY;\n" +#~ " voľba -u ruší nastavenie každého NÁZVU_VOĽBY. Voľba -q\n" +#~ " potlačí výpis; stav ukončenia indikuje, či je každý NÁZOV_VOĽBY\n" +#~ " nastavený alebo nenastavený. Voľba -o obmedzuje NÁZOV_VOĽBY\n" +#~ " na tie, ktoré sú definované pre použitie so „set -o“. Bez volieb\n" +#~ " alebo s voľbou -p sa vypíše zoznam nastaviteľných volieb\n" +#~ " s označením, či je každá nastavená alebo nenastavená." + +#~ msgid "" +#~ "For each NAME, specify how arguments are to be completed.\n" +#~ " If the -p option is supplied, or if no options are supplied, " +#~ "existing\n" +#~ " completion specifications are printed in a way that allows them to " +#~ "be\n" +#~ " reused as input. The -r option removes a completion specification " +#~ "for\n" +#~ " each NAME, or, if no NAMEs are supplied, all completion " +#~ "specifications." +#~ msgstr "" +#~ "Pre každý NÁZOV určí, koľko argumentov sa má doplniÅ¥.\n" +#~ " Ak je daná voľba -p alebo žiadne voľby, vypíšu sa existujúce " +#~ "Å¡pecifikácie doplnení v takom formáte, že je ich možné použiÅ¥ na\n" +#~ " vstupe. Voľba -r odstráni Å¡pecifikáciu doplnenia pre každý NÁZOV,\n" +#~ " alebo, ak nebol uvedený žiadny NÁZOV, pre vÅ¡etky Å¡pecifikácie." diff --git a/po/sv.gmo b/po/sv.gmo new file mode 100644 index 0000000000000000000000000000000000000000..56a30c5ec41ce146dd26b828ba3bad68e612bd7e GIT binary patch literal 149365 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

sI-$EG zKHxj+qknaMembR0pI=TX)5{O~fU~zA^$bzU`{dMm!2Q?P0}d};kN&)MJ^J%mN|_G+ z7p08f58Z(A3{cASWjCd~j~=0v_y5}{W%=w6H=sZFxO$!U`>cn#8hG*nN_m}r>}vGm zTUP@f_uYv3ymTYRRiN}yOgA>7|DV|ixLmYpo$wE%lro>$q?Gx+-=mcI@h|H0Mc3f@ z0Hw^AEmO+-&)cs-J>RC3`GJS`0bg#Wl=+jFQOf-3=P70W?!Nu&gw7o92i(Jc)brwg zwEyXT)bsOx%=fMVRQZCZZqsB z-Y<`Jw>}T}+>pn-mhvd~;ym!>b$Q^+H}h!cyLqhZbwhy9l|!iS7^Td&g_QEX^n6NL z&isub%=edv(2su_Lc0&%f^l8D1$g(^Er7?fC}sZP&0El)Z*0N1A2hs9_`|)!nBS)j z126t`82I%)N<|JF!Mxls0y^@j5zvVur6*ZV)9*hYLBAikb)D=V*HFrQ=?zh>d1@QzTDT40&ul|`FWH9qeET-Q`~BO{&gZrP&;Lok-+w#s>fw~m zFdl42zBg)pA|dmQttJArS{+lhMKtm(V-{T(~e-aqUFeD8f7=*-6J(9gY;p5S(_1N{Er zI>6`8C}sZXYu91?-?M!gD9=}+h zKe!wC|L?oezialO{O}&YeQXcLbL$@9)l)Tn=^o(EAMH{4x(9Io*dFYc|GWqD-HlZ+7Ens+VK>y!$0QtYJ`FbXRPxqU^zIBDBw@je^7foQk-Z_E( zeQ*Nn^Skp|ev%?AOeU#FDqBJVp0_}}9Y_M84gXeXqURBN3H^2yYJHhEVO=yI|Km0NNv3x!qqDw&ZC1|r-_YM*;k`6@EqjUi z$8hMOe1TK0rs-FCZt49v{e4WozriWXGR~{%?=b!SGs{;_9VB{rKjk^+x_Pf>xG^p1 zfvxn7^hfNo_cWeIEyFb6Kk3~EdSE~QO-ld4sq>!ekp83d?%OQS>GRKfU=Ix`oz-{5 z@_V@p_KXgcX{x0_;vdIPWpS5mS>)g=_aq)>lwe<=1YHn z$aPTP-^{vh54O#hYn{voNA&wSOpoZVkA5$*&QHIy9RF6{6X|)LeHirpH?>U?xy6Rh z{~qm(Mev7ZC6+&W;BWJXl>Qa(OD2Qj8HwfIlvDP1>Gz-W{_MPaI{jvy#G~ks#9ePM z{r!d07SqcQGwodmpC0$$ziP@n3G-q5sqFjd?;GqpLC+*kir)nP6FaO^mg(Ygh6(q9 zc?-4!d$61Hzwc4Xw%u>)^Y1d>qGf-^ZPNRP_rMQ=X>*@`WBc|;Sm&bUeyHiQc%Nro z7k_v9@khLVDbKg*?yKoMayY`unvW*zft@<5|y7&rGj*kAJY1 zVf!h|g#Y5S^(LrVz2~tmjpu^?p0D3VG;PwmKVlyR`un23V;l7}J->kdZguK=sxyyw zFdszE*U=w~`!8a>jDBYx|6Jm9{8UX^d0L!%B&~QdT!7( zXV6;l`WcM(jI+Eh%^3JQ{k~E2exH6SnuY+U&Z}* z8@<1h{?26HkI}m)a5)dYjc@9KuNw24@6k36Y2Ghu`cit|=C*lHT?=j!v!GDMUz0iSUi+O3*-|D-EK&5E^J%#sD<_YMJ?d9Ls_eCz- z17BA6-vj8~EA{u2JopSgmHFcy_=jE913#;6{7iq};`wJd(%(xw_)HZuIL7~2H_iH& zllsgu8_T6nq`a}ddkfPz<_-AaKCP%47X5m=<)00rR#YqdrFzqkYK?Yl)DPONdcIOG z)8}3y1`aukov>86S|B1;0?QR)bnmo{stP0%baljJaHYR9mVS0)Fu8 zwaW59uXj;zHK}fyRG~V< zxX_Fmt$LH2@@SY;qdy;VuKFT@XDJGNeoeJ*ihK1};FsF90svv�z1i;?K9E3V|~F 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 GUH@P1nxE$Y literal 0 Hc-jL100001 diff --git a/po/sv.po b/po/sv.po new file mode 100644 index 000000000..caf381648 --- /dev/null +++ b/po/sv.po @@ -0,0 +1,5279 @@ +# Swedish translation of bash +# Copyright © 2008 Free Software Foundation, Inc. +# This file is distributed under the same license as the bash package. +# Göran Uddeborg , 2008. +# +# $Revision: 1.3 $ +# +msgid "" +msgstr "" +"Project-Id-Version: bash 4.0-pre1\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2009-01-06 11:56-0500\n" +"PO-Revision-Date: 2008-09-15 13:09+0200\n" +"Last-Translator: Göran Uddeborg \n" +"Language-Team: Swedish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: arrayfunc.c:50 +msgid "bad array subscript" +msgstr "felaktigt vektorindex" + +#: arrayfunc.c:313 builtins/declare.def:474 +#, c-format +msgid "%s: cannot convert indexed to associative array" +msgstr "%s: det gÃ¥r inte att konvertera en indexerad vektor till associativ" + +#: arrayfunc.c:479 +#, c-format +msgid "%s: invalid associative array key" +msgstr "%s: ogiltig nyckel till associativ vektor" + +#: arrayfunc.c:481 +#, c-format +msgid "%s: cannot assign to non-numeric index" +msgstr "%s: det gÃ¥r inte att tilldela till ickenumeriska index" + +#: arrayfunc.c:517 +#, c-format +msgid "%s: %s: must use subscript when assigning associative array" +msgstr "%s: %s: mÃ¥ste använda index vid tilldelning av associativ vektor" + +#: bashhist.c:380 +#, c-format +msgid "%s: cannot create: %s" +msgstr "%s: det gÃ¥r inte att skapa: %s" + +#: bashline.c:3413 +msgid "bash_execute_unix_command: cannot find keymap for command" +msgstr "" +"bash_execute_unix_command: det gÃ¥r inte att hitta en tangentbindning för " +"kommandot" + +#: bashline.c:3491 +#, c-format +msgid "%s: first non-whitespace character is not `\"'" +msgstr "%s: första ickeblanka tecknet är inte '\"'" + +#: bashline.c:3520 +#, c-format +msgid "no closing `%c' in %s" +msgstr "ingen avslutande \"%c\" i %s" + +#: bashline.c:3554 +#, c-format +msgid "%s: missing colon separator" +msgstr "%s: kolonseparator saknas" + +#: builtins/bind.def:120 builtins/bind.def:123 +msgid "line editing not enabled" +msgstr "" + +#: builtins/bind.def:206 +#, c-format +msgid "`%s': invalid keymap name" +msgstr "\"%s\": ogiltigt tangentbindningsnamn" + +#: builtins/bind.def:245 +#, c-format +msgid "%s: cannot read: %s" +msgstr "%s: det gÃ¥r inte att läsa: %s" + +#: builtins/bind.def:260 +#, c-format +msgid "`%s': cannot unbind" +msgstr "\"%s\": det gÃ¥r inte att avbinda" + +#: builtins/bind.def:295 builtins/bind.def:325 +#, c-format +msgid "`%s': unknown function name" +msgstr "\"%s\": okänt funktionsnamn" + +#: builtins/bind.def:303 +#, c-format +msgid "%s is not bound to any keys.\n" +msgstr "%s är inte bundet till nÃ¥gra tangenter.\n" + +#: builtins/bind.def:307 +#, c-format +msgid "%s can be invoked via " +msgstr "%s kan anropas via " + +#: builtins/break.def:77 builtins/break.def:117 +msgid "loop count" +msgstr "slingräknare" + +#: builtins/break.def:137 +msgid "only meaningful in a `for', `while', or `until' loop" +msgstr "endast meningsfullt i en \"for\"-, \"while\"- eller \"until\"-slinga" + +#: builtins/caller.def:133 +msgid "" +"Returns the context of the current subroutine call.\n" +" \n" +" Without EXPR, returns " +msgstr "" + +#: builtins/cd.def:215 +msgid "HOME not set" +msgstr "HOME är inte satt" + +#: builtins/cd.def:227 +msgid "OLDPWD not set" +msgstr "OLDPWD är inte satt" + +#: builtins/common.c:101 +#, c-format +msgid "line %d: " +msgstr "rad %d: " + +#: builtins/common.c:139 error.c:260 +#, c-format +msgid "warning: " +msgstr "varning: " + +#: builtins/common.c:153 +#, c-format +msgid "%s: usage: " +msgstr "%s: användning: " + +#: builtins/common.c:166 test.c:822 +msgid "too many arguments" +msgstr "för mÃ¥nga argument" + +#: builtins/common.c:191 shell.c:493 shell.c:774 +#, c-format +msgid "%s: option requires an argument" +msgstr "%s: flaggan kräver ett argument" + +#: builtins/common.c:198 +#, c-format +msgid "%s: numeric argument required" +msgstr "%s: numeriskt argument krävs" + +#: builtins/common.c:205 +#, c-format +msgid "%s: not found" +msgstr "%s: finns inte" + +#: builtins/common.c:214 shell.c:787 +#, c-format +msgid "%s: invalid option" +msgstr "%s: ogiltig flagga" + +#: builtins/common.c:221 +#, c-format +msgid "%s: invalid option name" +msgstr "%s: ogiltigt flaggnamn" + +#: builtins/common.c:228 general.c:231 general.c:236 +#, c-format +msgid "`%s': not a valid identifier" +msgstr "\"%s\": inte en giltig identifierare" + +#: builtins/common.c:238 +msgid "invalid octal number" +msgstr "ogiltigt oktalt tal" + +#: builtins/common.c:240 +msgid "invalid hex number" +msgstr "ogiltigt hexadecimalt tal" + +#: builtins/common.c:242 expr.c:1255 +msgid "invalid number" +msgstr "ogiltigt tal" + +#: builtins/common.c:250 +#, c-format +msgid "%s: invalid signal specification" +msgstr "%s: ogiltig signalspecifikation" + +#: builtins/common.c:257 +#, c-format +msgid "`%s': not a pid or valid job spec" +msgstr "\"%s\": inte en pid eller giltig jobbspecifikation" + +#: builtins/common.c:264 error.c:453 +#, c-format +msgid "%s: readonly variable" +msgstr "%s: endast läsbar variabel" + +#: builtins/common.c:272 +#, c-format +msgid "%s: %s out of range" +msgstr "%s: %s utanför giltigt intervall" + +#: builtins/common.c:272 builtins/common.c:274 +msgid "argument" +msgstr "argument" + +#: builtins/common.c:274 +#, c-format +msgid "%s out of range" +msgstr "%s utanför giltigt intervall" + +#: builtins/common.c:282 +#, c-format +msgid "%s: no such job" +msgstr "%s: inget sÃ¥dant jobb" + +#: builtins/common.c:290 +#, c-format +msgid "%s: no job control" +msgstr "%s: ingen jobbstyrning" + +#: builtins/common.c:292 +msgid "no job control" +msgstr "ingen jobbstyrning" + +#: builtins/common.c:302 +#, c-format +msgid "%s: restricted" +msgstr "%s: begränsat" + +#: builtins/common.c:304 +msgid "restricted" +msgstr "begränsat" + +#: builtins/common.c:312 +#, c-format +msgid "%s: not a shell builtin" +msgstr "%s: inte inbyggt i skalet" + +#: builtins/common.c:321 +#, c-format +msgid "write error: %s" +msgstr "skrivfel: %s" + +#: builtins/common.c:553 +#, c-format +msgid "%s: error retrieving current directory: %s: %s\n" +msgstr "%s: fel när aktuell katalog hämtades: %s: %s\n" + +#: builtins/common.c:619 builtins/common.c:621 +#, c-format +msgid "%s: ambiguous job spec" +msgstr "%s: tvetydig jobbspecifikation" + +#: builtins/complete.def:270 +#, c-format +msgid "%s: invalid action name" +msgstr "%s: ogiltigt Ã¥tgärdsnamn" + +#: builtins/complete.def:430 builtins/complete.def:615 +#: builtins/complete.def:813 +#, c-format +msgid "%s: no completion specification" +msgstr "%s: ingen kompletteringsspecifikation" + +#: builtins/complete.def:667 +msgid "warning: -F option may not work as you expect" +msgstr "varning: flaggan -F fungerar kanske inte som du väntar dig" + +#: builtins/complete.def:669 +msgid "warning: -C option may not work as you expect" +msgstr "varning: flaggan -C fungerar kanske inte som du väntar dig" + +#: builtins/complete.def:786 +msgid "not currently executing completion function" +msgstr "kör inte en kompletteringsfunktion" + +#: builtins/declare.def:122 +msgid "can only be used in a function" +msgstr "kan endast användas i en funktion" + +#: builtins/declare.def:353 +msgid "cannot use `-f' to make functions" +msgstr "det gÃ¥r inte att använda \"-f\" för att göra funktioner" + +#: builtins/declare.def:365 execute_cmd.c:4731 +#, c-format +msgid "%s: readonly function" +msgstr "%s: endast läsbar funktion" + +#: builtins/declare.def:461 +#, c-format +msgid "%s: cannot destroy array variables in this way" +msgstr "%s: det gÃ¥r inte att förstöra vektorvariabler pÃ¥ detta sätt" + +#: builtins/declare.def:468 +#, c-format +msgid "%s: cannot convert associative to indexed array" +msgstr "%s: det gÃ¥r inte att konvertera en associativ vektor till indexerad" + +#: builtins/enable.def:137 builtins/enable.def:145 +msgid "dynamic loading not available" +msgstr "dynamisk laddning är inte tillgängligt" + +#: builtins/enable.def:312 +#, c-format +msgid "cannot open shared object %s: %s" +msgstr "det gÃ¥r inte att öppna delat objekt %s: %s" + +#: builtins/enable.def:335 +#, c-format +msgid "cannot find %s in shared object %s: %s" +msgstr "kan inte hitta %s i det delade objektet %s: %s" + +#: builtins/enable.def:459 +#, c-format +msgid "%s: not dynamically loaded" +msgstr "%s: inte dynamiskt laddad" + +#: builtins/enable.def:474 +#, c-format +msgid "%s: cannot delete: %s" +msgstr "%s: kan inte ta bort: %s" + +#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4588 +#: shell.c:1439 +#, c-format +msgid "%s: is a directory" +msgstr "%s: är en katalog" + +#: builtins/evalfile.c:139 +#, c-format +msgid "%s: not a regular file" +msgstr "%s: inte en normal fil" + +#: builtins/evalfile.c:147 +#, c-format +msgid "%s: file is too large" +msgstr "%s: filen är för stor" + +#: builtins/evalfile.c:185 execute_cmd.c:4658 shell.c:1449 +#, c-format +msgid "%s: cannot execute binary file" +msgstr "%s: det kÃ¥r inte att köra binär fil" + +#: builtins/exec.def:212 +#, c-format +msgid "%s: cannot execute: %s" +msgstr "%s: kan inte köra: %s" + +#: builtins/exit.def:65 +#, c-format +msgid "logout\n" +msgstr "utloggning\n" + +#: builtins/exit.def:88 +msgid "not login shell: use `exit'" +msgstr "inte ett inloggningsskal: använd \"exit\"" + +#: builtins/exit.def:120 +#, c-format +msgid "There are stopped jobs.\n" +msgstr "Det finns stoppade jobb.\n" + +#: builtins/exit.def:122 +#, c-format +msgid "There are running jobs.\n" +msgstr "Det finns körande jobb.\n" + +#: builtins/fc.def:261 +msgid "no command found" +msgstr "hittar inget kommando" + +#: builtins/fc.def:341 +msgid "history specification" +msgstr "historiespecifikation" + +#: builtins/fc.def:362 +#, c-format +msgid "%s: cannot open temp file: %s" +msgstr "%s: det gÃ¥r inte att öppna temporärfil: %s" + +#: builtins/fg_bg.def:149 builtins/jobs.def:282 +msgid "current" +msgstr "aktuell" + +#: builtins/fg_bg.def:158 +#, c-format +msgid "job %d started without job control" +msgstr "jobb %d startade utan jobbstyrning" + +#: builtins/getopt.c:110 +#, c-format +msgid "%s: illegal option -- %c\n" +msgstr "%s: ogiltig flagga -- %c\n" + +#: builtins/getopt.c:111 +#, c-format +msgid "%s: option requires an argument -- %c\n" +msgstr "%s: flaggan kräver ett argument -- %c\n" + +#: builtins/hash.def:92 +msgid "hashing disabled" +msgstr "hasning avslaget" + +#: builtins/hash.def:138 +#, c-format +msgid "%s: hash table empty\n" +msgstr "%s: hashtabellen tom\n" + +#: builtins/hash.def:244 +#, c-format +msgid "hits\tcommand\n" +msgstr "träffar\tkommando\n" + +#: builtins/help.def:130 +#, c-format +msgid "Shell commands matching keyword `" +msgid_plural "Shell commands matching keywords `" +msgstr[0] "Skalkommandon som matchar nyckelordet '" +msgstr[1] "Skalkommandon som matchar nyckelorden '" + +#: builtins/help.def:168 +#, c-format +msgid "" +"no help topics match `%s'. Try `help help' or `man -k %s' or `info %s'." +msgstr "" +"inget hjälpämne matchar \"%s\". Prova \"help help\" eller \"man -k %s\" " +"eller \"info %s\"." + +#: builtins/help.def:185 +#, c-format +msgid "%s: cannot open: %s" +msgstr "%s: det gÃ¥r inte att öppna: %s" + +#: builtins/help.def:337 +#, c-format +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 "" +"Dessa skalkommandon är definierade internt. Skriv \"help\" för att se\n" +"denna lista. Skriv \"help namn\" för att fÃ¥ reda pÃ¥ mer om funktionen\n" +"\"namn\". Använd \"info bash\" fÃ¥r att fÃ¥ reda pÃ¥ mer om skalet rent\n" +"allmänt. Använd \"man -k\" eller \"info\" för att fÃ¥ reda pÃ¥ mer om\n" +"kommandon som inte är i listan.\n" +"\n" +"En stjärna (*) bredvid ett namn betyder att det kommandot är avstängt.\n" +"\n" + +#: builtins/history.def:154 +msgid "cannot use more than one of -anrw" +msgstr "det gÃ¥r inte att använda mer än en av -anrw" + +#: builtins/history.def:186 +msgid "history position" +msgstr "historieposition" + +#: builtins/history.def:365 +#, c-format +msgid "%s: history expansion failed" +msgstr "%s: historieexpansionen misslyckades" + +#: builtins/inlib.def:71 +#, c-format +msgid "%s: inlib failed" +msgstr "%s: inlib misslyckades" + +#: builtins/jobs.def:109 +msgid "no other options allowed with `-x'" +msgstr "inga andra flaggor är tillÃ¥tna med \"-x\"" + +#: builtins/kill.def:197 +#, c-format +msgid "%s: arguments must be process or job IDs" +msgstr "%s: argument mÃ¥ste vara processer eller job-id:n" + +#: builtins/kill.def:260 +msgid "Unknown error" +msgstr "Okänt fel" + +#: builtins/let.def:95 builtins/let.def:120 expr.c:501 expr.c:516 +msgid "expression expected" +msgstr "uttryck förväntades" + +#: builtins/mapfile.def:215 builtins/read.def:272 +#, c-format +msgid "%s: invalid file descriptor specification" +msgstr "%s: ogiltig filidentifierarspecifikation" + +#: builtins/mapfile.def:223 builtins/read.def:279 +#, c-format +msgid "%d: invalid file descriptor: %s" +msgstr "%d: ogiltig filbeskrivare: %s" + +#: builtins/mapfile.def:232 builtins/mapfile.def:270 +#, c-format +msgid "%s: invalid line count" +msgstr "%s: ogiltigt radantal" + +#: builtins/mapfile.def:243 +#, c-format +msgid "%s: invalid array origin" +msgstr "%s: ogiltig vektorstart" + +#: builtins/mapfile.def:260 +#, c-format +msgid "%s: invalid callback quantum" +msgstr "%s: ogiltigt Ã¥teranropskvanta" + +#: builtins/mapfile.def:292 +msgid "empty array variable name" +msgstr "tomt vektorvariabelnamn" + +#: builtins/mapfile.def:313 +msgid "array variable support required" +msgstr "stöd för vektorvariabler krävs" + +#: builtins/printf.def:367 +#, c-format +msgid "`%s': missing format character" +msgstr "\"%s\": formateringstecken saknas" + +#: builtins/printf.def:544 +#, c-format +msgid "`%c': invalid format character" +msgstr "\"%c\": ogiltigt formateringstecken" + +#: builtins/printf.def:571 +#, c-format +msgid "warning: %s: %s" +msgstr "varning: %s: %s" + +#: builtins/printf.def:750 +msgid "missing hex digit for \\x" +msgstr "hexadecimal siffra saknas för \\x" + +#: builtins/pushd.def:195 +msgid "no other directory" +msgstr "ingen annan katalog" + +#: builtins/pushd.def:462 +msgid "" +msgstr "" + +#: builtins/pushd.def:506 +msgid "directory stack empty" +msgstr "katalogstacken är tom" + +#: builtins/pushd.def:508 +msgid "directory stack index" +msgstr "katalogstackindex" + +#: builtins/pushd.def:683 +msgid "" +"Display the list of currently remembered directories. Directories\n" +" find their way onto the list with the `pushd' command; you can get\n" +" back up through the list with the `popd' command.\n" +" \n" +" Options:\n" +" -c\tclear the directory stack by deleting all of the elements\n" +" -l\tdo not print tilde-prefixed versions of directories relative\n" +" \tto your home directory\n" +" -p\tprint the directory stack with one entry per line\n" +" -v\tprint the directory stack with one entry per line prefixed\n" +" \twith its position in the stack\n" +" \n" +" Arguments:\n" +" +N\tDisplays the Nth entry counting from the left of the list shown " +"by\n" +" \tdirs when invoked without options, starting with zero.\n" +" \n" +" -N\tDisplays the Nth entry counting from the right of the list shown " +"by\n" +"\tdirs when invoked without options, starting with zero." +msgstr "" +"Visa listan av kataloger i minnet just nu. Kataloger hamnar i listan\n" +" med kommandot \"pushd\" command. Du kan komma tillbaka upp genom\n" +" listan med kommandot \"popd\".\n" +" \n" +" Flaggor:\n" +" -c\tnollställ katalogstacken genom att bo bort alla elementen\n" +" -l\tskriv inte ut versioner med tildeprefix av kataloger som är\n" +" \trelativa din hemkatalog\n" +" -p\tskriv katalogstacken med en post per rad\n" +" -v\tskriv katalogstacken med en post per rad inledda med dess\n" +" \tposition i stacken\n" +" \n" +" Argument:\n" +" +N\tVisa den N:e posten räknat frÃ¥n vänster i listan som visas\n" +" \tav dirs när det anropas utan flaggor, räknat frÃ¥n noll.\n" +" \n" +" -N\tVisa den N:e posten räkntat frÃ¥n höger i listan som visas\n" +"\tav dirs när det anropas utan flaggor, räknat frÃ¥n noll." + +#: builtins/pushd.def:705 +msgid "" +"Adds a directory to the top of the directory stack, or rotates\n" +" the stack, making the new top of the stack the current working\n" +" directory. With no arguments, exchanges the top two directories.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when adding\n" +" \tdirectories to the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the left of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" -N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the right of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" dir\tAdds DIR to the directory stack at the top, making it the\n" +" \tnew current working directory.\n" +" \n" +" The `dirs' builtin displays the directory stack." +msgstr "" +"Lägger till en katalog till toppen av katalogstacken, eller roterar\n" +" stacken, och gör den nya toppen av stacken till den aktuella\n" +" arbetskatalogen. Utan argument, byt de tvÃ¥ toppkatalogerna.\n" +" \n" +" Flaggor:\n" +" -n\tUndertryck det normala bytet av katalog när kataloger\n" +" \tläggs till pÃ¥ stacken, sÃ¥ att endast stacken ändras.\n" +" \n" +" Argument:\n" +" +N\tRoterar stacken sÃ¥ att den N:e katalogen (räknat frÃ¥n\n" +" \tvänster i listan som visas av \"dirs\", med början pÃ¥ noll) hamnar\n" +" \tpÃ¥ toppen.\n" +" \n" +" -N\tRoterar stacken sÃ¥ att den N:e katalogen (räknat frÃ¥n\n" +" \thöger i listan som visas av \"dirs\", med början pÃ¥ noll) hamnar\n" +" \tpÃ¥ toppen.\n" +" \n" +" kat\tLägger till KAT till toppen av katalogstacken, och gör den\n" +" \ttill den nya aktuella arbetskatalogen.\n" +" \n" +" Den inbyggda \"dirs\" visar katalogstacken." + +#: builtins/pushd.def:730 +msgid "" +"Removes entries from the directory stack. With no arguments, removes\n" +" the top directory from the stack, and changes to the new top directory.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when removing\n" +" \tdirectories from the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRemoves the Nth entry counting from the left of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd +0'\n" +" \tremoves the first directory, `popd +1' the second.\n" +" \n" +" -N\tRemoves the Nth entry counting from the right of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd -0'\n" +" \tremoves the last directory, `popd -1' the next to last.\n" +" \n" +" The `dirs' builtin displays the directory stack." +msgstr "" +"Tar bort poster frÃ¥n katalogstacken. Utan argument tas den översta\n" +" katalogen bort frÃ¥n stacken, och byte görs till den nya toppkatalogen.\n" +" \n" +" Flaggor:\n" +" -n\tUndertryck det normala bytet av katalog när kataloger\n" +" \tläggs till pÃ¥ stacken, sÃ¥ att endast stacken ändras.\n" +" \n" +" Arguments:\n" +" +N\tTar bort den N:e posten räknat frÃ¥n vänster i listan\n" +" \tsom visas av \"dirs\", med början pÃ¥ noll. Till exempel: \"popd +0\"\n" +" \ttar bort den första katalogen, \"popd +1\" den andra.\n" +" \n" +" -N\tTar bort den N:e posten räknat frÃ¥n höger i listan\n" +" \tsom visas av \"dirs\", med början pÃ¥ noll. Till exempel: \"popd -0\"\n" +" \ttar bort den sista katalogen, \"popd -1\" den näst sista.\n" +" \n" +" Den inbyggda \"dirs\" visar katalogstacken." + +#: builtins/read.def:248 +#, c-format +msgid "%s: invalid timeout specification" +msgstr "%s: ogiltig tidsgränsspecifikation" + +#: builtins/read.def:574 +#, c-format +msgid "read error: %d: %s" +msgstr "läsfel: %d: %s" + +#: builtins/return.def:73 +msgid "can only `return' from a function or sourced script" +msgstr "" +"det gÃ¥r bara att göra \"return\" frÃ¥n en funktion eller källinläst skript" + +#: builtins/set.def:768 +msgid "cannot simultaneously unset a function and a variable" +msgstr "det gÃ¥r inte att samtidigt ta bort en funktion och en variabel" + +#: builtins/set.def:805 +#, c-format +msgid "%s: cannot unset" +msgstr "%s: det gÃ¥r inte att ta bort tilldelning" + +#: builtins/set.def:812 +#, c-format +msgid "%s: cannot unset: readonly %s" +msgstr "%s: det gÃ¥r inte att ta bort tilldelning: endast läsbar %s" + +#: builtins/set.def:823 +#, c-format +msgid "%s: not an array variable" +msgstr "%s: inte en vektorvariabel" + +#: builtins/setattr.def:186 +#, c-format +msgid "%s: not a function" +msgstr "%s: inte en funktion" + +#: builtins/shift.def:71 builtins/shift.def:77 +msgid "shift count" +msgstr "skiftantal" + +#: builtins/shopt.def:254 +msgid "cannot set and unset shell options simultaneously" +msgstr "det gÃ¥r inte att sätta och ta bort skalflaggor samtidigt" + +#: builtins/shopt.def:319 +#, c-format +msgid "%s: invalid shell option name" +msgstr "%s: ogiltigt skalflaggsnamn" + +#: builtins/source.def:128 +msgid "filename argument required" +msgstr "filnamnsargument krävs" + +#: builtins/source.def:153 +#, c-format +msgid "%s: file not found" +msgstr "%s: filen finns inte" + +#: builtins/suspend.def:101 +msgid "cannot suspend" +msgstr "det gÃ¥r inte att suspendera" + +#: builtins/suspend.def:111 +msgid "cannot suspend a login shell" +msgstr "det gÃ¥r inte att suspendera ett inloggningsskal" + +#: builtins/type.def:234 +#, c-format +msgid "%s is aliased to `%s'\n" +msgstr "%s är ett alias för \"%s\"\n" + +#: builtins/type.def:255 +#, c-format +msgid "%s is a shell keyword\n" +msgstr "%s är ett nyckelord i skalet\n" + +#: builtins/type.def:274 +#, c-format +msgid "%s is a function\n" +msgstr "%s är en funktion\n" + +#: builtins/type.def:296 +#, c-format +msgid "%s is a shell builtin\n" +msgstr "%s är inbyggt i skalet\n" + +#: builtins/type.def:317 builtins/type.def:391 +#, c-format +msgid "%s is %s\n" +msgstr "%s är %s\n" + +#: builtins/type.def:337 +#, c-format +msgid "%s is hashed (%s)\n" +msgstr "%s är hashad (%s)\n" + +#: builtins/ulimit.def:372 +#, c-format +msgid "%s: invalid limit argument" +msgstr "%s: ogiltigt gränsargument" + +#: builtins/ulimit.def:398 +#, c-format +msgid "`%c': bad command" +msgstr "\"%c\": felaktigt kommando" + +#: builtins/ulimit.def:427 +#, c-format +msgid "%s: cannot get limit: %s" +msgstr "%s: kan inte avgöra gränsen: %s" + +#: builtins/ulimit.def:453 +msgid "limit" +msgstr "gräns" + +#: builtins/ulimit.def:465 builtins/ulimit.def:765 +#, c-format +msgid "%s: cannot modify limit: %s" +msgstr "%s: kan inte ändra gränsen: %s" + +#: builtins/umask.def:118 +msgid "octal number" +msgstr "oktalt tal" + +#: builtins/umask.def:231 +#, c-format +msgid "`%c': invalid symbolic mode operator" +msgstr "\"%c\": ogiltig operator för symboliskt läge" + +#: builtins/umask.def:286 +#, c-format +msgid "`%c': invalid symbolic mode character" +msgstr "\"%c\": ogiltigt tecken för symboliskt läge" + +#: error.c:89 error.c:320 error.c:322 error.c:324 +msgid " line " +msgstr " rad " + +#: error.c:164 +#, c-format +msgid "last command: %s\n" +msgstr "senaste kommando: %s\n" + +#: error.c:172 +#, c-format +msgid "Aborting..." +msgstr "Avbryter..." + +#: error.c:405 +msgid "unknown command error" +msgstr "okänt kommandofel" + +#: error.c:406 +msgid "bad command type" +msgstr "felaktig kommandotyp" + +#: error.c:407 +msgid "bad connector" +msgstr "felaktig anslutning" + +#: error.c:408 +msgid "bad jump" +msgstr "felaktigt hopp" + +#: error.c:446 +#, c-format +msgid "%s: unbound variable" +msgstr "%s: obunden variabel" + +#: eval.c:181 +#, c-format +msgid "\atimed out waiting for input: auto-logout\n" +msgstr "\atiden gick ut i väntan pÃ¥ indata: automatisk utloggning\n" + +#: execute_cmd.c:491 +#, c-format +msgid "cannot redirect standard input from /dev/null: %s" +msgstr "det gÃ¥r inte att omdiregera standard in frÃ¥n /dev/null: %s" + +#: execute_cmd.c:1091 +#, c-format +msgid "TIMEFORMAT: `%c': invalid format character" +msgstr "TIMEFORMAT: \"%c\": ogiltigt formateringstecken" + +#: execute_cmd.c:1942 +msgid "pipe error" +msgstr "rörfel" + +#: execute_cmd.c:4276 +#, c-format +msgid "%s: restricted: cannot specify `/' in command names" +msgstr "%s: begränsat: det gÃ¥r inte att ange \"/\" i kommandonamn" + +#: execute_cmd.c:4367 +#, c-format +msgid "%s: command not found" +msgstr "%s: kommandot finns inte" + +#: execute_cmd.c:4621 +#, c-format +msgid "%s: %s: bad interpreter" +msgstr "%s: %s: felaktig tolk" + +#: execute_cmd.c:4770 +#, c-format +msgid "cannot duplicate fd %d to fd %d" +msgstr "det gÃ¥r inte att duplicera fb %d till fb %d" + +#: expr.c:241 +msgid "expression recursion level exceeded" +msgstr "rekursionsnivÃ¥ i uttryck överskriden" + +#: expr.c:265 +msgid "recursion stack underflow" +msgstr "underspill i rekursionsstacken" + +#: expr.c:379 +msgid "syntax error in expression" +msgstr "syntaxfel i uttrycket" + +#: expr.c:419 +msgid "attempted assignment to non-variable" +msgstr "försök att tilldela till en icke-variabel" + +#: expr.c:440 expr.c:445 expr.c:756 +msgid "division by 0" +msgstr "division med 0" + +#: expr.c:471 +msgid "bug: bad expassign token" +msgstr "bug: felaktig expassign-token" + +#: expr.c:513 +msgid "`:' expected for conditional expression" +msgstr "\":\" förväntades i villkorligt uttryck" + +#: expr.c:781 +msgid "exponent less than 0" +msgstr "exponenten är mindre än 0" + +#: expr.c:826 +msgid "identifier expected after pre-increment or pre-decrement" +msgstr "en identifierare förväntades efter pre-ökning eller pre-minskning" + +#: expr.c:854 +msgid "missing `)'" +msgstr "\")\" saknas" + +#: expr.c:897 expr.c:1175 +msgid "syntax error: operand expected" +msgstr "syntaxfel: en operand förväntades" + +#: expr.c:1177 +msgid "syntax error: invalid arithmetic operator" +msgstr "syntaxfel: ogiltig aritmetisk operator" + +#: expr.c:1201 +#, c-format +msgid "%s%s%s: %s (error token is \"%s\")" +msgstr "%s%s%s: %s (felsymbol är \"%s\")" + +#: expr.c:1259 +msgid "invalid arithmetic base" +msgstr "ogiltig aritmetisk bas" + +#: expr.c:1279 +msgid "value too great for base" +msgstr "värdet är för stort för basen" + +#: expr.c:1328 +#, c-format +msgid "%s: expression error\n" +msgstr "%s: uttrycksfel\n" + +#: general.c:61 +msgid "getcwd: cannot access parent directories" +msgstr "getcwd: det gÃ¥r inte att komma Ã¥t föräldrakatalogen" + +#: input.c:94 subst.c:4559 +#, c-format +msgid "cannot reset nodelay mode for fd %d" +msgstr "det gÃ¥r inte att Ã¥terställa fördröjningsfritt läge för fb %d" + +#: input.c:258 +#, c-format +msgid "cannot allocate new file descriptor for bash input from fd %d" +msgstr "" +"det gÃ¥r inte att allokera en ny filbeskrivare för bashindata frÃ¥n fb %d" + +#: input.c:266 +#, c-format +msgid "save_bash_input: buffer already exists for new fd %d" +msgstr "save_bash_input: buffert finns redan för ny fb %d" + +#: jobs.c:466 +msgid "start_pipeline: pgrp pipe" +msgstr "start_pipeline: pgrp rör" + +#: jobs.c:882 +#, c-format +msgid "forked pid %d appears in running job %d" +msgstr "avgrenad pid %d fins i körande jobb %d" + +#: jobs.c:1000 +#, c-format +msgid "deleting stopped job %d with process group %ld" +msgstr "tar bort stoppat jobb %d med processgrupp %ld" + +#: jobs.c:1105 +#, c-format +msgid "add_process: process %5ld (%s) in the_pipeline" +msgstr "add_process: process %5ld (%s) i the_pipeline" + +#: jobs.c:1108 +#, c-format +msgid "add_process: pid %5ld (%s) marked as still alive" +msgstr "add_process: pid %5ld (%s) markerad som fortfarande vid liv" + +#: jobs.c:1396 +#, c-format +msgid "describe_pid: %ld: no such pid" +msgstr "describe_pid: %ld: ingen sÃ¥dan pid" + +#: jobs.c:1411 +#, c-format +msgid "Signal %d" +msgstr "Signal %d" + +#: jobs.c:1425 jobs.c:1450 +msgid "Done" +msgstr "Klart" + +#: jobs.c:1430 siglist.c:122 +msgid "Stopped" +msgstr "Stoppat" + +#: jobs.c:1434 +#, c-format +msgid "Stopped(%s)" +msgstr "Stoppat(%s)" + +#: jobs.c:1438 +msgid "Running" +msgstr "Kör" + +#: jobs.c:1452 +#, c-format +msgid "Done(%d)" +msgstr "Klart(%d)" + +#: jobs.c:1454 +#, c-format +msgid "Exit %d" +msgstr "Avslut %d" + +#: jobs.c:1457 +msgid "Unknown status" +msgstr "Okänd status" + +#: jobs.c:1544 +#, c-format +msgid "(core dumped) " +msgstr "(minnesutskrift skapad) " + +#: jobs.c:1563 +#, c-format +msgid " (wd: %s)" +msgstr " (ak: %s)" + +#: jobs.c:1766 +#, c-format +msgid "child setpgid (%ld to %ld)" +msgstr "barns setpgid (%ld till %ld)" + +#: jobs.c:2094 nojobs.c:576 +#, c-format +msgid "wait: pid %ld is not a child of this shell" +msgstr "wait: pid %ld är inte ett barn till detta skal" + +#: jobs.c:2321 +#, c-format +msgid "wait_for: No record of process %ld" +msgstr "wait_for: Ingen uppgift om process %ld" + +#: jobs.c:2593 +#, c-format +msgid "wait_for_job: job %d is stopped" +msgstr "wait_for_job: jobb %d är stoppat" + +#: jobs.c:2815 +#, c-format +msgid "%s: job has terminated" +msgstr "%s: jobbet har avslutat" + +#: jobs.c:2824 +#, c-format +msgid "%s: job %d already in background" +msgstr "%s: jobb %d är redan i bakgrunden" + +#: jobs.c:3487 +#, c-format +msgid "%s: line %d: " +msgstr "%s: rad %d: " + +#: jobs.c:3501 nojobs.c:805 +#, c-format +msgid " (core dumped)" +msgstr " (minnesutskrift skapad)" + +#: jobs.c:3513 jobs.c:3526 +#, c-format +msgid "(wd now: %s)\n" +msgstr "(ak nu: %s)\n" + +#: jobs.c:3558 +msgid "initialize_job_control: getpgrp failed" +msgstr "initialize_job_control: getpgrp misslyckades" + +#: jobs.c:3618 +msgid "initialize_job_control: line discipline" +msgstr "initialize_job_control: linjedisciplin" + +#: jobs.c:3628 +msgid "initialize_job_control: setpgid" +msgstr "initialize_job_control: setpgid" + +#: jobs.c:3656 +#, c-format +msgid "cannot set terminal process group (%d)" +msgstr "det gÃ¥r inte att sätta terminalprocessgrupp (%d)" + +#: jobs.c:3661 +msgid "no job control in this shell" +msgstr "ingen jobbstyrning i detta skal" + +#: lib/malloc/malloc.c:296 +#, c-format +msgid "malloc: failed assertion: %s\n" +msgstr "malloc: försäkran misslyckades: %s\n" + +#: lib/malloc/malloc.c:312 +#, c-format +msgid "" +"\r\n" +"malloc: %s:%d: assertion botched\r\n" +msgstr "" +"\r\n" +"malloc: %s:%d: försäkran gick fel\r\n" + +#: lib/malloc/malloc.c:313 +msgid "unknown" +msgstr "okänd" + +#: lib/malloc/malloc.c:797 +msgid "malloc: block on free list clobbered" +msgstr "malloc: block pÃ¥ frilista överskrivet" + +#: lib/malloc/malloc.c:874 +msgid "free: called with already freed block argument" +msgstr "free: anropad med redan frigjort block som argument" + +#: lib/malloc/malloc.c:877 +msgid "free: called with unallocated block argument" +msgstr "free: anropad med oallokerat block som argument" + +#: lib/malloc/malloc.c:896 +msgid "free: underflow detected; mh_nbytes out of range" +msgstr "free: underspill upptäckt: mh_nbytes utanför giltigt intervall" + +#: lib/malloc/malloc.c:902 +msgid "free: start and end chunk sizes differ" +msgstr "free: start- och slutstyckesstorlekar skiljer" + +#: lib/malloc/malloc.c:1001 +msgid "realloc: called with unallocated block argument" +msgstr "realloc: anropat med oallokerat block som argument" + +#: lib/malloc/malloc.c:1016 +msgid "realloc: underflow detected; mh_nbytes out of range" +msgstr "realloc: underspill upptäckt: mh_nbytes utanför giltigt intervall" + +#: lib/malloc/malloc.c:1022 +msgid "realloc: start and end chunk sizes differ" +msgstr "realloc: start- och slutstycesstorlekar skiljer" + +#: lib/malloc/table.c:177 +#, c-format +msgid "register_alloc: alloc table is full with FIND_ALLOC?\n" +msgstr "register_alloc: allokeringstabellen är full med FIND_ALLOC?\n" + +#: lib/malloc/table.c:184 +#, c-format +msgid "register_alloc: %p already in table as allocated?\n" +msgstr "register_alloc: %p finns redan i tabellen som allokerat?\n" + +#: lib/malloc/table.c:220 +#, c-format +msgid "register_free: %p already in table as free?\n" +msgstr "register_free: %p finns redan i tabellen som fritt?\n" + +#: lib/sh/fmtulong.c:101 +msgid "invalid base" +msgstr "ogiltig bas" + +#: lib/sh/netopen.c:168 +#, c-format +msgid "%s: host unknown" +msgstr "%s: okänd värd" + +#: lib/sh/netopen.c:175 +#, c-format +msgid "%s: invalid service" +msgstr "%s: ogiltig tjänst" + +#: lib/sh/netopen.c:306 +#, c-format +msgid "%s: bad network path specification" +msgstr "%s: felaktig specifikation av nätverkssökväg" + +#: lib/sh/netopen.c:346 +msgid "network operations not supported" +msgstr "nätverksoperationer stöds inte" + +#: mailcheck.c:433 +msgid "You have mail in $_" +msgstr "Du har post i $_" + +#: mailcheck.c:458 +msgid "You have new mail in $_" +msgstr "Du har ny post i $_" + +#: mailcheck.c:474 +#, c-format +msgid "The mail in %s has been read\n" +msgstr "Posten i %s har lästs\n" + +#: make_cmd.c:322 +msgid "syntax error: arithmetic expression required" +msgstr "syntaxfel: aritmetiskt uttryck krävs" + +#: make_cmd.c:324 +msgid "syntax error: `;' unexpected" +msgstr "syntaxfel: oväntat \";\"" + +#: make_cmd.c:325 +#, c-format +msgid "syntax error: `((%s))'" +msgstr "syntaxfel: \"((%s))\"" + +#: make_cmd.c:567 +#, c-format +msgid "make_here_document: bad instruction type %d" +msgstr "make_here_document: felaktig instruktionstyp %d" + +#: make_cmd.c:651 +#, c-format +msgid "here-document at line %d delimited by end-of-file (wanted `%s')" +msgstr "här-dokument pÃ¥ rad %d avgränsas av filslut (ville ha \"%s\")" + +#: make_cmd.c:746 +#, c-format +msgid "make_redirection: redirection instruction `%d' out of range" +msgstr "" +"make_redirection: omdirigeringsinstruktion \"%d\" utanför giltigt intervall" + +#: parse.y:2986 parse.y:3218 +#, c-format +msgid "unexpected EOF while looking for matching `%c'" +msgstr "oväntat filslut vid sökning efter matchande \"%c\"" + +#: parse.y:3722 +msgid "unexpected EOF while looking for `]]'" +msgstr "oväntat filslut vid sökning efter \"]]\"" + +#: parse.y:3727 +#, c-format +msgid "syntax error in conditional expression: unexpected token `%s'" +msgstr "syntaxfel i villkorligt uttryck: oväntad symbol \"%s\"" + +#: parse.y:3731 +msgid "syntax error in conditional expression" +msgstr "syntaxfel i villkorligt uttryck" + +#: parse.y:3809 +#, c-format +msgid "unexpected token `%s', expected `)'" +msgstr "oväntad symbol \"%s\", \")\" förväntades" + +#: parse.y:3813 +msgid "expected `)'" +msgstr "\")\" förväntades" + +#: parse.y:3841 +#, c-format +msgid "unexpected argument `%s' to conditional unary operator" +msgstr "oväntat argument \"%s\" till villkorlig unär operator" + +#: parse.y:3845 +msgid "unexpected argument to conditional unary operator" +msgstr "oväntat argument till villkorlig unär operator" + +#: parse.y:3885 +#, c-format +msgid "unexpected token `%s', conditional binary operator expected" +msgstr "oväntad symbol \"%s\", villkorlig binär operator förväntades" + +#: parse.y:3889 +msgid "conditional binary operator expected" +msgstr "villkorlig binär operato förväntades" + +#: parse.y:3906 +#, c-format +msgid "unexpected argument `%s' to conditional binary operator" +msgstr "oväntat argument \"%s\" till villkorlig binär operator" + +#: parse.y:3910 +msgid "unexpected argument to conditional binary operator" +msgstr "oväntat argument till villkorlig binär operator" + +#: parse.y:3921 +#, c-format +msgid "unexpected token `%c' in conditional command" +msgstr "oväntad symbol \"%c\" i villkorligt kommando" + +#: parse.y:3924 +#, c-format +msgid "unexpected token `%s' in conditional command" +msgstr "oväntad symbol \"%s\" i villkorligt kommando" + +#: parse.y:3928 +#, c-format +msgid "unexpected token %d in conditional command" +msgstr "oväntad symbol %d i villkorligt kommando" + +#: parse.y:5195 +#, c-format +msgid "syntax error near unexpected token `%s'" +msgstr "syntaxfel när den oväntade symbolen \"%s\"" + +#: parse.y:5213 +#, c-format +msgid "syntax error near `%s'" +msgstr "syntaxfel nära \"%s\"" + +#: parse.y:5223 +msgid "syntax error: unexpected end of file" +msgstr "syntaxfel: oväntat filslut" + +#: parse.y:5223 +msgid "syntax error" +msgstr "syntaxfel" + +#: parse.y:5285 +#, c-format +msgid "Use \"%s\" to leave the shell.\n" +msgstr "Använd \"%s\" fär att lämna skalet.\n" + +#: parse.y:5447 +msgid "unexpected EOF while looking for matching `)'" +msgstr "oväntat filslut när matchande \")\" söktes" + +#: pcomplete.c:1016 +#, c-format +msgid "completion: function `%s' not found" +msgstr "komplettering: funktion \"%s\" finns inte" + +#: pcomplib.c:179 +#, c-format +msgid "progcomp_insert: %s: NULL COMPSPEC" +msgstr "progcomp_insert: %s: NULL COMPSPEC" + +#: print_cmd.c:287 +#, c-format +msgid "print_command: bad connector `%d'" +msgstr "print_command: felaktig anslutning \"%d\"" + +#: print_cmd.c:1347 +#, c-format +msgid "cprintf: `%c': invalid format character" +msgstr "cprintf: \"%c\": ogiltigt formateringstecken" + +#: redir.c:105 +msgid "file descriptor out of range" +msgstr "filbeskrivare utanför giltigt intervall" + +#: redir.c:148 +#, c-format +msgid "%s: ambiguous redirect" +msgstr "%s: tvetydig omdirigering" + +#: redir.c:152 +#, c-format +msgid "%s: cannot overwrite existing file" +msgstr "%s: begränsad: det gÃ¥r inte att skriva över en existerande fil" + +#: redir.c:157 +#, c-format +msgid "%s: restricted: cannot redirect output" +msgstr "%s: begränsad: det gÃ¥r inte att omdirigera utdata" + +#: redir.c:162 +#, c-format +msgid "cannot create temp file for here-document: %s" +msgstr "det gÃ¥r inte att skapa temporärfil för här-dokument: %s" + +#: redir.c:517 +msgid "/dev/(tcp|udp)/host/port not supported without networking" +msgstr "/dev/(tcp|udp)/host/port stöds inte utan nätverksfunktion" + +#: redir.c:1023 +msgid "redirection error: cannot duplicate fd" +msgstr "omdirigeringsfel: det gÃ¥r inte att duplicera fb" + +#: shell.c:328 +msgid "could not find /tmp, please create!" +msgstr "hittade inte /tmp, var god skapa!" + +#: shell.c:332 +msgid "/tmp must be a valid directory name" +msgstr "/tmp mÃ¥ste vara ett giltigt katalognamn" + +#: shell.c:876 +#, c-format +msgid "%c%c: invalid option" +msgstr "%c%c: ogiltig flagga" + +#: shell.c:1638 +msgid "I have no name!" +msgstr "Jag har inget namn!" + +#: shell.c:1778 +#, c-format +msgid "GNU bash, version %s-(%s)\n" +msgstr "GNU bash, version %s-(%s)\n" + +#: shell.c:1779 +#, c-format +msgid "" +"Usage:\t%s [GNU long option] [option] ...\n" +"\t%s [GNU long option] [option] script-file ...\n" +msgstr "" +"Användning:\t%s [GNU lÃ¥ng flagga] [flagga] ...\n" +"\t\t%s [GNU lÃ¥ng flagga] [flagga] skriptfil ...\n" + +#: shell.c:1781 +msgid "GNU long options:\n" +msgstr "GNU lÃ¥nga flaggor:\n" + +#: shell.c:1785 +msgid "Shell options:\n" +msgstr "Skalflaggor:\n" + +#: shell.c:1786 +msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n" +msgstr "\t-irsD eller -c kommando eller -O shopt_flagga\t\t(bara uppstart)\n" + +#: shell.c:1801 +#, c-format +msgid "\t-%s or -o option\n" +msgstr "\t-%s eller -o flagga\n" + +#: shell.c:1807 +#, c-format +msgid "Type `%s -c \"help set\"' for more information about shell options.\n" +msgstr "Skriv \"%s -c 'help set'\" för mer information om skalflaggor.\n" + +#: shell.c:1808 +#, c-format +msgid "Type `%s -c help' for more information about shell builtin commands.\n" +msgstr "Skriv \"%s -c help\" för mer information om inbyggda skalkommandon.\n" + +#: shell.c:1809 +#, c-format +msgid "Use the `bashbug' command to report bugs.\n" +msgstr "" +"Använd kommandot \"bashbug\" för att rapportera fel.\n" +"Skicka synpunkter pÃ¥ översättningen till .\n" + +#: sig.c:583 +#, c-format +msgid "sigprocmask: %d: invalid operation" +msgstr "sigprocmask: %d: ogiltig operation" + +#: siglist.c:47 +msgid "Bogus signal" +msgstr "Felatkig signal" + +#: siglist.c:50 +msgid "Hangup" +msgstr "Avringd" + +#: siglist.c:54 +msgid "Interrupt" +msgstr "Avbruten" + +#: siglist.c:58 +msgid "Quit" +msgstr "Lämnad" + +#: siglist.c:62 +msgid "Illegal instruction" +msgstr "OtillÃ¥ten instruktion" + +#: siglist.c:66 +msgid "BPT trace/trap" +msgstr "Brytpunkt/spÃ¥rningsfälla" + +#: siglist.c:74 +msgid "ABORT instruction" +msgstr "ABORT-instruktion" + +#: siglist.c:78 +msgid "EMT instruction" +msgstr "Emulatorfälla" + +#: siglist.c:82 +msgid "Floating point exception" +msgstr "Flyttalsfel" + +#: siglist.c:86 +msgid "Killed" +msgstr "Dödad" + +#: siglist.c:90 +msgid "Bus error" +msgstr "Bussfel" + +#: siglist.c:94 +msgid "Segmentation fault" +msgstr "Segmenteringsfel" + +#: siglist.c:98 +msgid "Bad system call" +msgstr "Felaktigt systemanrop" + +#: siglist.c:102 +msgid "Broken pipe" +msgstr "Brutet rör" + +#: siglist.c:106 +msgid "Alarm clock" +msgstr "Alarmklocka" + +#: siglist.c:110 +msgid "Terminated" +msgstr "Avslutat" + +#: siglist.c:114 +msgid "Urgent IO condition" +msgstr "Viktigt I/O-tillstÃ¥nd" + +#: siglist.c:118 +msgid "Stopped (signal)" +msgstr "Stoppad (signal)" + +#: siglist.c:126 +msgid "Continue" +msgstr "Återupptagen" + +#: siglist.c:134 +msgid "Child death or stop" +msgstr "Barn dött eller stoppat" + +#: siglist.c:138 +msgid "Stopped (tty input)" +msgstr "Stoppad (terminalläsning)" + +#: siglist.c:142 +msgid "Stopped (tty output)" +msgstr "Stoppad (terminalskrivning)" + +#: siglist.c:146 +msgid "I/O ready" +msgstr "I/O möjligt" + +#: siglist.c:150 +msgid "CPU limit" +msgstr "CPU-gräns" + +#: siglist.c:154 +msgid "File limit" +msgstr "Filgräns" + +#: siglist.c:158 +msgid "Alarm (virtual)" +msgstr "Alarm (virtuell tid)" + +#: siglist.c:162 +msgid "Alarm (profile)" +msgstr "Alarm (profilering)" + +#: siglist.c:166 +msgid "Window changed" +msgstr "Ändrat fönster" + +#: siglist.c:170 +msgid "Record lock" +msgstr "PostlÃ¥s" + +#: siglist.c:174 +msgid "User signal 1" +msgstr "Användarsignal 1" + +#: siglist.c:178 +msgid "User signal 2" +msgstr "Användarsignal 2" + +#: siglist.c:182 +msgid "HFT input data pending" +msgstr "HFT-indata väntar" + +#: siglist.c:186 +msgid "power failure imminent" +msgstr "strömavbrott omedelbart förestÃ¥ende" + +#: siglist.c:190 +msgid "system crash imminent" +msgstr "systemkrash omedelbart förestÃ¥ende" + +#: siglist.c:194 +msgid "migrate process to another CPU" +msgstr "migrera process till en annan CPU" + +#: siglist.c:198 +msgid "programming error" +msgstr "programmeringsfel" + +#: siglist.c:202 +msgid "HFT monitor mode granted" +msgstr "HFT-övervakningsläge givet" + +#: siglist.c:206 +msgid "HFT monitor mode retracted" +msgstr "HFT-överakare borttagen" + +#: siglist.c:210 +msgid "HFT sound sequence has completed" +msgstr "HFT-ljudsekevens har avslutat" + +#: siglist.c:214 +msgid "Information request" +msgstr "Informationsbegäran" + +#: siglist.c:222 +msgid "Unknown Signal #" +msgstr "Okänd signal nr " + +#: siglist.c:224 +#, c-format +msgid "Unknown Signal #%d" +msgstr "Okänd signal nr %d" + +#: subst.c:1181 subst.c:1302 +#, c-format +msgid "bad substitution: no closing `%s' in %s" +msgstr "felaktig substitution: ingen avslutande \"%s\" i %s" + +#: subst.c:2458 +#, c-format +msgid "%s: cannot assign list to array member" +msgstr "%s: det gÃ¥r inte att tilldela listor till vektormedlemmar" + +#: subst.c:4456 subst.c:4472 +msgid "cannot make pipe for process substitution" +msgstr "det gÃ¥r inte att skapa rör för processubstitution" + +#: subst.c:4504 +msgid "cannot make child for process substitution" +msgstr "det gÃ¥r inte att skapa barn för processubstitution" + +#: subst.c:4549 +#, c-format +msgid "cannot open named pipe %s for reading" +msgstr "det gÃ¥r inte att öppna namngivet rör %s för läsning" + +#: subst.c:4551 +#, c-format +msgid "cannot open named pipe %s for writing" +msgstr "det gÃ¥r inte att öppna namngivet rör %s för skrivning" + +#: subst.c:4569 +#, c-format +msgid "cannot duplicate named pipe %s as fd %d" +msgstr "det gÃ¥r inte att duplicera namngivet rör %s som fb %d" + +#: subst.c:4765 +msgid "cannot make pipe for command substitution" +msgstr "det gÃ¥r inte att skapa rör för kommandosubstitution" + +#: subst.c:4799 +msgid "cannot make child for command substitution" +msgstr "det gÃ¥r inte att skapa barn för kommandosubstitution" + +#: subst.c:4816 +msgid "command_substitute: cannot duplicate pipe as fd 1" +msgstr "command_substitute: det gÃ¥r inte att duplicera rör som fb 1" + +#: subst.c:5318 +#, c-format +msgid "%s: parameter null or not set" +msgstr "%s: parametern tom eller inte satt" + +#: subst.c:5608 +#, c-format +msgid "%s: substring expression < 0" +msgstr "%s: delstränguttryck < 0" + +#: subst.c:6660 +#, c-format +msgid "%s: bad substitution" +msgstr "%s: felaktig substitution" + +#: subst.c:6740 +#, c-format +msgid "$%s: cannot assign in this way" +msgstr "$%s: det gÃ¥r inte att tilldela pÃ¥ detta sätt" + +#: subst.c:7479 +#, c-format +msgid "bad substitution: no closing \"`\" in %s" +msgstr "felaktig ersättning: ingen avslutande \"`\" i %s" + +#: subst.c:8354 +#, c-format +msgid "no match: %s" +msgstr "ingen match: %s" + +#: test.c:145 +msgid "argument expected" +msgstr "argument förväntades" + +#: test.c:154 +#, c-format +msgid "%s: integer expression expected" +msgstr "%s: heltalsuttryck förväntades" + +#: test.c:262 +msgid "`)' expected" +msgstr "\")\" förväntades" + +#: test.c:264 +#, c-format +msgid "`)' expected, found %s" +msgstr "\")\" förväntades, fann %s" + +#: test.c:279 test.c:688 test.c:691 +#, c-format +msgid "%s: unary operator expected" +msgstr "%s: unär operator förväntades" + +#: test.c:444 test.c:731 +#, c-format +msgid "%s: binary operator expected" +msgstr "%s: binär operator förväntades" + +#: test.c:806 +msgid "missing `]'" +msgstr "\"]\" saknas" + +#: trap.c:201 +msgid "invalid signal number" +msgstr "ogiltigt signalnummer" + +#: trap.c:324 +#, c-format +msgid "run_pending_traps: bad value in trap_list[%d]: %p" +msgstr "run_pending_traps: felaktigt värde i trap_list[%d]: %p" + +#: trap.c:328 +#, c-format +msgid "" +"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself" +msgstr "" +"run_pending_traps: signalhanterare är SIG_DFL, skickar om %d (%s) till mig " +"själv" + +#: trap.c:372 +#, c-format +msgid "trap_handler: bad signal %d" +msgstr "trap_handler: felaktig signal %d" + +#: variables.c:358 +#, c-format +msgid "error importing function definition for `%s'" +msgstr "fel vid import av funktionsdefinition för \"%s\"" + +#: variables.c:736 +#, c-format +msgid "shell level (%d) too high, resetting to 1" +msgstr "skalnivÃ¥ (%d) för hög, Ã¥terställer till 1" + +#: variables.c:1898 +msgid "make_local_variable: no function context at current scope" +msgstr "make_local_variable: ingen funktionskontext i aktuellt sammanhang" + +#: variables.c:3127 +msgid "all_local_variables: no function context at current scope" +msgstr "all_local_variables: ingen funktionskontext i aktuellt sammanhang" + +#: variables.c:3344 variables.c:3353 +#, c-format +msgid "invalid character %d in exportstr for %s" +msgstr "ogiltigt tecken %d i exportstr för %s" + +#: variables.c:3359 +#, c-format +msgid "no `=' in exportstr for %s" +msgstr "inget \"=\" i exportstr för %s" + +#: variables.c:3794 +msgid "pop_var_context: head of shell_variables not a function context" +msgstr "" +"pop_var_context: huvudet pÃ¥ shell_variables är inte en funktionskontext" + +#: variables.c:3807 +msgid "pop_var_context: no global_variables context" +msgstr "pop_var_context: ingen kontext global_variables" + +#: variables.c:3881 +msgid "pop_scope: head of shell_variables not a temporary environment scope" +msgstr "" +"pop_scope: huvudet pÃ¥ shell_variables är inte en temporär omgivningsräckvidd" + +#: version.c:46 +#, fuzzy +msgid "Copyright (C) 2009 Free Software Foundation, Inc." +msgstr "Copyright © 2008 Free Software Foundation, Inc." + +#: version.c:47 +msgid "" +"License GPLv3+: GNU GPL version 3 or later \n" +msgstr "" +"Licens GPLv3+: GNU GPL version 3 eller senare \n" + +#: version.c:86 +#, c-format +msgid "GNU bash, version %s (%s)\n" +msgstr "GNU bash, version %s (%s)\n" + +#: version.c:91 +#, c-format +msgid "This is free software; you are free to change and redistribute it.\n" +msgstr "" +"Detta är fri programvara, det fÃ¥r fritt ändra och vidaredistribuera den.\n" + +#: version.c:92 +#, c-format +msgid "There is NO WARRANTY, to the extent permitted by law.\n" +msgstr "Det finns INGEN GARANTI, sÃ¥ lÃ¥ngt lagen tillÃ¥ter.\n" + +#: xmalloc.c:92 +#, c-format +msgid "xmalloc: cannot allocate %lu bytes (%lu bytes allocated)" +msgstr "xmalloc: kan inte allokera %lu byte (%lu byte allokerade)" + +#: xmalloc.c:94 +#, c-format +msgid "xmalloc: cannot allocate %lu bytes" +msgstr "xmalloc: kan inte allokera %lu byte" + +#: xmalloc.c:114 +#, c-format +msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)" +msgstr "xrealloc: kan inte reallokera %lu byte (%lu byte allokerade)" + +#: xmalloc.c:116 +#, c-format +msgid "xrealloc: cannot allocate %lu bytes" +msgstr "xrealloc: kan inte allokera %lu byte" + +#: xmalloc.c:150 +#, c-format +msgid "xmalloc: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)" +msgstr "xmalloc: %s: %d: kan inte allokera %lu byte (%lu byte allokerade)" + +#: xmalloc.c:152 +#, c-format +msgid "xmalloc: %s:%d: cannot allocate %lu bytes" +msgstr "xmalloc: %s: %d: kan inte allokera %lu byte" + +#: xmalloc.c:174 +#, c-format +msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)" +msgstr "xrealloc: %s: %d: kan inte areallokera %lu byte (%lu byte allokerade)" + +#: xmalloc.c:176 +#, c-format +msgid "xrealloc: %s:%d: cannot allocate %lu bytes" +msgstr "xrealloc: %s: %d: kan inte allokera %lu byte" + +#: builtins.c:43 +msgid "alias [-p] [name[=value] ... ]" +msgstr "alias [-p] [namn[=värde] ... ]" + +#: builtins.c:47 +msgid "unalias [-a] name [name ...]" +msgstr "unalias [-a] namn [namn ...]" + +#: builtins.c:51 +msgid "" +"bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-" +"x keyseq:shell-command] [keyseq:readline-function or readline-command]" +msgstr "" +"bind [-lpvsPVS] [-m tangentkarta] [-f filenamn] [-q namn] [-u namn] [-r " +"tangentsekv] [-x tangentsekv:skalkommando] [tangentsekv:readline-funktion " +"eller readline-kommando]" + +#: builtins.c:54 +msgid "break [n]" +msgstr "break [n]" + +#: builtins.c:56 +msgid "continue [n]" +msgstr "continue [n]" + +#: builtins.c:58 +msgid "builtin [shell-builtin [arg ...]]" +msgstr "builtin [skalinbyggd [arg ...]]" + +#: builtins.c:61 +msgid "caller [expr]" +msgstr "caller [uttr]" + +#: builtins.c:64 +msgid "cd [-L|-P] [dir]" +msgstr "cd [-L|-P] [kat]" + +#: builtins.c:66 +msgid "pwd [-LP]" +msgstr "pwd [-LP]" + +#: builtins.c:68 +msgid ":" +msgstr ":" + +#: builtins.c:70 +msgid "true" +msgstr "true" + +#: builtins.c:72 +msgid "false" +msgstr "false" + +#: builtins.c:74 +msgid "command [-pVv] command [arg ...]" +msgstr "command [-pVv] kommando [arg ...]" + +#: builtins.c:76 +msgid "declare [-aAfFilrtux] [-p] [name[=value] ...]" +msgstr "declare [-aAfFilrtux] [-p] [namn[=värde] ...]" + +#: builtins.c:78 +msgid "typeset [-aAfFilrtux] [-p] name[=value] ..." +msgstr "typeset [-aAfFilrtux] [-p] namn[=värde] ..." + +#: builtins.c:80 +msgid "local [option] name[=value] ..." +msgstr "local [flagga] namn[=värde] ..." + +#: builtins.c:83 +msgid "echo [-neE] [arg ...]" +msgstr "echo [-neE] [arg ...]" + +#: builtins.c:87 +msgid "echo [-n] [arg ...]" +msgstr "echo [-n] [arg ...]" + +#: builtins.c:90 +msgid "enable [-a] [-dnps] [-f filename] [name ...]" +msgstr "enable [-a] [-dnps] [-f filenamn] [namn ...]" + +#: builtins.c:92 +msgid "eval [arg ...]" +msgstr "eval [arg ...]" + +#: builtins.c:94 +msgid "getopts optstring name [arg]" +msgstr "getopts flgsträng namn [arg]" + +#: builtins.c:96 +msgid "exec [-cl] [-a name] [command [arguments ...]] [redirection ...]" +msgstr "exec [-cl] [-a namn] [kommando [argument ...]] [omdirigering ...]" + +#: builtins.c:98 +msgid "exit [n]" +msgstr "exit [n]" + +#: builtins.c:100 +msgid "logout [n]" +msgstr "logout [n]" + +#: builtins.c:103 +msgid "fc [-e ename] [-lnr] [first] [last] or fc -s [pat=rep] [command]" +msgstr "" +"fc [-e rnamn] [-lnr] [första] [sista] eller fc -s [mnst=ers] [kommando]" + +#: builtins.c:107 +msgid "fg [job_spec]" +msgstr "fg [jobbspec]" + +#: builtins.c:111 +msgid "bg [job_spec ...]" +msgstr "bg [jobbspec ...]" + +#: builtins.c:114 +msgid "hash [-lr] [-p pathname] [-dt] [name ...]" +msgstr "hash [-lr] [-p sökväg] [-dt] [namn ...]" + +#: builtins.c:117 +msgid "help [-ds] [pattern ...]" +msgstr "help [-ds] [mönster ...]" + +#: builtins.c:121 +msgid "" +"history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg " +"[arg...]" +msgstr "" +"history [-c] [-d avstÃ¥nd] [n] eller history -anrw [filnamn] eller history -" +"ps arg [arg...]" + +#: builtins.c:125 +msgid "jobs [-lnprs] [jobspec ...] or jobs -x command [args]" +msgstr "jobs [-lnprs] [jobbspec ...] eller jobs -x kommando [arg]" + +#: builtins.c:129 +msgid "disown [-h] [-ar] [jobspec ...]" +msgstr "disown [-h] [-ar] [jobbspec ...]" + +#: builtins.c:132 +msgid "" +"kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l " +"[sigspec]" +msgstr "" +"kill [-s sigspec | -n signum | -sigspec] pid | jobbspec ... eller kill -l " +"[sigspec]" + +#: builtins.c:134 +msgid "let arg [arg ...]" +msgstr "let arg [arg ...]" + +#: builtins.c:136 +msgid "" +"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-p prompt] [-t " +"timeout] [-u fd] [name ...]" +msgstr "" +"read [-ers] [-a vektor] [-d avgr] [-i text] [-n ntkn] [-p prompt] [-t " +"tidgräns] [-u fb] [namn ...]" + +#: builtins.c:138 +msgid "return [n]" +msgstr "return [n]" + +#: builtins.c:140 +msgid "set [--abefhkmnptuvxBCHP] [-o option-name] [arg ...]" +msgstr "set [--abefhkmnptuvxBCHP] [-o flaggnamn] [arg ...]" + +#: builtins.c:142 +msgid "unset [-f] [-v] [name ...]" +msgstr "unset [-f] [-v] [namn ...]" + +#: builtins.c:144 +msgid "export [-fn] [name[=value] ...] or export -p" +msgstr "export [-fn] [namn[=värde] ...] eller export -p" + +#: builtins.c:146 +msgid "readonly [-af] [name[=value] ...] or readonly -p" +msgstr "readonly [-af] [namn[=värde] ...] eller readonly -p" + +#: builtins.c:148 +msgid "shift [n]" +msgstr "skift [n]" + +#: builtins.c:150 +msgid "source filename [arguments]" +msgstr "source filnamn [argument]" + +#: builtins.c:152 +msgid ". filename [arguments]" +msgstr ". filnamn [argument]" + +#: builtins.c:155 +msgid "suspend [-f]" +msgstr "suspend [-f]" + +#: builtins.c:158 +msgid "test [expr]" +msgstr "test [uttr]" + +#: builtins.c:160 +msgid "[ arg... ]" +msgstr "[ arg... ]" + +#: builtins.c:162 +msgid "times" +msgstr "times" + +#: builtins.c:164 +msgid "trap [-lp] [[arg] signal_spec ...]" +msgstr "trap [-lp] [[arg] signalspec ...]" + +#: builtins.c:166 +msgid "type [-afptP] name [name ...]" +msgstr "type [-afptP] namn [namn ...]" + +#: builtins.c:169 +msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]" +msgstr "ulimit [-SHacdefilmnpqrstuvx] [gräns]" + +#: builtins.c:172 +msgid "umask [-p] [-S] [mode]" +msgstr "umask [-p] [-S] [rättigheter]" + +#: builtins.c:175 +msgid "wait [id]" +msgstr "wait [id]" + +#: builtins.c:179 +msgid "wait [pid]" +msgstr "wait [pid]" + +#: builtins.c:182 +msgid "for NAME [in WORDS ... ] ; do COMMANDS; done" +msgstr "for NAMN [in ORD ... ] ; do KOMMANDON; done" + +#: builtins.c:184 +msgid "for (( exp1; exp2; exp3 )); do COMMANDS; done" +msgstr "for (( utr1; utr2; utr3 )); do KOMMANDON; done" + +#: builtins.c:186 +msgid "select NAME [in WORDS ... ;] do COMMANDS; done" +msgstr "select NAMN [in ORD ... ;] do KOMMANDON; done" + +#: builtins.c:188 +msgid "time [-p] pipeline" +msgstr "time [-p] rör" + +#: builtins.c:190 +msgid "case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac" +msgstr "case ORD in [MÖNSTER [| MÖNSTER]...) KOMMANDON ;;]... esac" + +#: builtins.c:192 +msgid "" +"if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else " +"COMMANDS; ] fi" +msgstr "" +"if KOMMANDON; then KOMMANDON; [ elif KOMMANDON; then KOMMANDON; ]... [ else " +"KOMMANDON; ] fi" + +#: builtins.c:194 +msgid "while COMMANDS; do COMMANDS; done" +msgstr "while KOMMANDON; do KOMMANDON; done" + +#: builtins.c:196 +msgid "until COMMANDS; do COMMANDS; done" +msgstr "until KOMMANDON; do KOMMANDON; done" + +#: builtins.c:198 +msgid "function name { COMMANDS ; } or name () { COMMANDS ; }" +msgstr "function namn { KOMMANDON ; } or namn () { KOMMANDON ; }" + +#: builtins.c:200 +msgid "{ COMMANDS ; }" +msgstr "{ KOMMANDON ; }" + +#: builtins.c:202 +msgid "job_spec [&]" +msgstr "jobbspec [&]" + +#: builtins.c:204 +msgid "(( expression ))" +msgstr "(( uttryck ))" + +#: builtins.c:206 +msgid "[[ expression ]]" +msgstr "[[ uttryck ]]" + +#: builtins.c:208 +msgid "variables - Names and meanings of some shell variables" +msgstr "variabler - Namn och betydelse av nÃ¥gra skalvariabler" + +#: builtins.c:211 +msgid "pushd [-n] [+N | -N | dir]" +msgstr "pushd [-n] [+N | -N | kat]" + +#: builtins.c:215 +msgid "popd [-n] [+N | -N]" +msgstr "popd [-n] [+N | -N]" + +#: builtins.c:219 +msgid "dirs [-clpv] [+N] [-N]" +msgstr "dirs [-clpv] [+N] [-N]" + +#: builtins.c:222 +msgid "shopt [-pqsu] [-o] [optname ...]" +msgstr "shopt [-pqsu] [-o] [flgnamn ...]" + +#: builtins.c:224 +msgid "printf [-v var] format [arguments]" +msgstr "printf [-v var] format [argument]" + +#: builtins.c:227 +msgid "" +"complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W " +"wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] " +"[name ...]" +msgstr "" +"complete [-abcdefgjksuv] [-pr] [-o flagga] [-A Ã¥tgärd] [-G globmnst] [-W " +"ordlista] [-F funktion] [-C kommando] [-X filtermnst] [-P prefix] [-S " +"suffix] [namn ...]" + +#: builtins.c:231 +msgid "" +"compgen [-abcdefgjksuv] [-o option] [-A action] [-G globpat] [-W wordlist] " +"[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]" +msgstr "" +"compgen [-abcdefgjksuv] [-o flagga] [-A Ã¥tgärd] [-G globmnst] [-W " +"ordlista] [-F funktion] [-C kommando] [-X filtermnst] [-P prefix] [-S " +"suffix] [ord]" + +#: builtins.c:235 +msgid "compopt [-o|+o option] [name ...]" +msgstr "compopt [-o|+o flagga] [namn ...]" + +#: builtins.c:238 +msgid "" +"mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c " +"quantum] [array]" +msgstr "" +"mapfile [-n antal] [-O start] [-s antal] [-t] [-u fb] [-C Ã¥teranrop] [-c " +"kvanta] [vektor]" + +#: builtins.c:250 +msgid "" +"Define or display aliases.\n" +" \n" +" Without arguments, `alias' prints the list of aliases in the reusable\n" +" form `alias NAME=VALUE' on standard output.\n" +" \n" +" Otherwise, an alias is defined for each NAME whose VALUE is given.\n" +" A trailing space in VALUE causes the next word to be checked for\n" +" alias substitution when the alias is expanded.\n" +" \n" +" Options:\n" +" -p\tPrint all defined aliases in a reusable format\n" +" \n" +" Exit Status:\n" +" alias returns true unless a NAME is supplied for which no alias has " +"been\n" +" defined." +msgstr "" +"Definiera eller visa alias.\n" +" \n" +" Utan argumen skriver \"alias\" listan pÃ¥ alias pÃ¥ den Ã¥teranvändbara " +"formen\n" +" \"alias NAMN=VÄRDE\" pÃ¥ standard ut.\n" +" \n" +" Annars är ett alias definierat för varje NAMN vars VÄRDE är angivet.\n" +" Ett avlutande blanktecken i VÄRDE gör att nästa ord undersöks för\n" +" aliassubstitution när aliaset expanderas.\n" +" \n" +" Flaggor:\n" +" -p\tSkriv alla definerade alias i pÃ¥ en Ã¥teranvändbar form\n" +" \n" +" Slutstatus:\n" +" alias returnerar sant om inte ett NAMN ges för vilket inget alias har\n" +" definierats." + +#: builtins.c:272 +msgid "" +"Remove each NAME from the list of defined aliases.\n" +" \n" +" Options:\n" +" -a\tremove all alias definitions.\n" +" \n" +" Return success unless a NAME is not an existing alias." +msgstr "" +"Ta bort alla NAMN frÃ¥n listan med definierade alias.\n" +" \n" +" Flaggor:\n" +" -a\tta bort alla aliasdefinitioner.\n" +" \n" +" Returnerar framgÃ¥ng om inte ett NAMN inte är ett existerande alias." + +#: builtins.c:285 +msgid "" +"Set Readline key bindings and variables.\n" +" \n" +" Bind a key sequence to a Readline function or a macro, or set a\n" +" Readline variable. The non-option argument syntax is equivalent to\n" +" that found in ~/.inputrc, but must be passed as a single argument:\n" +" e.g., bind '\"\\C-x\\C-r\": re-read-init-file'.\n" +" \n" +" Options:\n" +" -m keymap Use KEYMAP as the keymap for the duration of this\n" +" command. Acceptable keymap names are emacs,\n" +" emacs-standard, emacs-meta, emacs-ctlx, vi, vi-" +"move,\n" +" vi-command, and vi-insert.\n" +" -l List names of functions.\n" +" -P List function names and bindings.\n" +" -p List functions and bindings in a form that can be\n" +" reused as input.\n" +" -S List key sequences that invoke macros and their " +"values\n" +" -s List key sequences that invoke macros and their " +"values\n" +" in a form that can be reused as input.\n" +" -V List variable names and values\n" +" -v List variable names and values in a form that can\n" +" be reused as input.\n" +" -q function-name Query about which keys invoke the named function.\n" +" -u function-name Unbind all keys which are bound to the named " +"function.\n" +" -r keyseq Remove the binding for KEYSEQ.\n" +" -f filename Read key bindings from FILENAME.\n" +" -x keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n" +" \t\t\t\tKEYSEQ is entered.\n" +" \n" +" Exit Status:\n" +" bind returns 0 unless an unrecognized option is given or an error occurs." +msgstr "" +"Sätt Readline-tangentbindningar och -variabler.\n" +" \n" +" Bind en tangentsekvens till en Readline-funktion eller -makro, eller " +"sätt\n" +" en Readline-variabel. Syntaxen för argument vid sidan om flaggor är\n" +" densamma som den i ~/.inputrc, men mÃ¥ste skickas som ett ensamt " +"argument:\n" +" t.ex., bind '\"\\C-x\\C-r\": re-read-init-file'.\n" +" \n" +" Flaggor:\n" +" -m tangentkarta Använt TANGENTKARTA som tangentkarta under detta\n" +" kommando. Acceptabla tangentkartenamn är emacs,\n" +" emacs-standard, emacs-meta, emacs-ctlx, vi, vi-" +"move,\n" +" vi-command och vi-insert.\n" +" -l Lista namnen pÃ¥ funktioner.\n" +" -P List funktionsnamn och bindningar.\n" +" -p List funktioner och bindningar pÃ¥ ett sätt som kan\n" +" Ã¥teranvändas som indata.\n" +" -S Lista tangentsekvenser som anropar makron och " +"deras\n" +" värden.\n" +" -s Lista tangentskevenser som anropar makron och " +"deras\n" +" värden pÃ¥ ett sätt som kan Ã¥teranvändas som " +"indata.\n" +" -V Lista variabelnamn och värden\n" +" -v Lista variabelnamn och värden pÃ¥ ett sätt som kan\n" +" Ã¥teranvändas som indata.\n" +" -q funktionsnamn FrÃ¥ga efter vilka tangenter som anroper den " +"namngivna\n" +" funktionen\n" +" -u funktionsnamn Tag bort alla tangenter som är bundna till den\n" +" namngivna funktionen.\n" +" -r tangentsekv Ta bort bindningen för TANGENTSEKV.\n" +" -f filnamn Läs tangentbindningar frÃ¥n FILNAMN.\n" +" -x tangentsekv:skalkommando Görs sÃ¥ att SKALKOMMANDO körs när\n" +" \t\t\t\t TANGENTSEKV skrivs.\n" +" \n" +" Slutstatus:\n" +" bind returnerar 0 om inte en okänd flagga ges eller ett fel inträffar." + +#: builtins.c:322 +msgid "" +"Exit for, while, or until loops.\n" +" \n" +" Exit a FOR, WHILE or UNTIL loop. If N is specified, break N enclosing\n" +" loops.\n" +" \n" +" Exit Status:\n" +" The exit status is 0 unless N is not greater than or equal to 1." +msgstr "" +"Avsluta for-, while- eller until-slinga.\n" +" \n" +" Avsluta en FOR-, WHILE eller UNTIL-slinga. Om N anges, avbryt N\n" +" omslutande slingor.\n" +" \n" +" Slutstatus:\n" +" Returvärdet är 0 förutsatt att N är större eller lika med 1." + +#: builtins.c:334 +msgid "" +"Resume for, while, or until loops.\n" +" \n" +" Resumes the next iteration of the enclosing FOR, WHILE or UNTIL loop.\n" +" If N is specified, resumes the Nth enclosing loop.\n" +" \n" +" Exit Status:\n" +" The exit status is 0 unless N is not greater than or equal to 1." +msgstr "" +"Återuppta for-, while eller until-slinga.\n" +" \n" +" Återuppta nästa iteration i den omslutande FOR-, WHILE- eller UNTIL-" +"slingan.\n" +" Om N anges, Ã¥teruppta den N:e omslutande slingan.\n" +" \n" +" Slutstatus:\n" +" Slutstatus är 0 förutsatt att N är större eller lika med 1." + +#: builtins.c:346 +msgid "" +"Execute shell builtins.\n" +" \n" +" Execute SHELL-BUILTIN with arguments ARGs without performing command\n" +" lookup. This is useful when you wish to reimplement a shell builtin\n" +" as a shell function, but need to execute the builtin within the " +"function.\n" +" \n" +" Exit Status:\n" +" Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is\n" +" not a shell builtin.." +msgstr "" +"Exekvera en i skalet inbyggd funktion.\n" +" \n" +" Exekvera SKALINBYGGD med argument ARG utan att utföra " +"kommandouppslagning.\n" +" Detta är användbart när du vill implementera om en inbyggd funktion i\n" +" skalet som en skalfunktion, men behöver köra den inbyggda funktionen i\n" +" skalfunktionen.\n" +" \n" +" Slutstatus:\n" +" Returnerar slutstatus frÃ¥n SKALINBYGGD, eller falkst om SKALINBYGGD " +"inte\n" +" är inbyggd i skalet." + +#: builtins.c:361 +msgid "" +"Return the context of the current subroutine call.\n" +" \n" +" Without EXPR, returns \"$line $filename\". With EXPR, returns\n" +" \"$line $subroutine $filename\"; this extra information can be used to\n" +" provide a stack trace.\n" +" \n" +" The value of EXPR indicates how many call frames to go back before the\n" +" current one; the top frame is frame 0.\n" +" \n" +" Exit Status:\n" +" Returns 0 unless the shell is not executing a shell function or EXPR\n" +" is invalid." +msgstr "" +"Returnera kontexten för det aktuella funktionsanropet.\n" +" \n" +" Utan UTTR, returneras \"$rad $filnamn\". Med UTTR, returneras\n" +" \"$rad $subrutin $filnamn\". Denna extra information kan användas för\n" +" att ge en stackspÃ¥rning.\n" +" \n" +" Värdet pÃ¥ UTTR indikerar hur mÃ¥nga anropsramar att gÃ¥ tillbaka före den\n" +" aktuella, toppramen är ram 0.\n" +" \n" +" Slutstatus:\n" +" Returnerar 0 om inte skalet inte kör en skalfunktion eller UTTR är\n" +" ogiltigt." + +#: builtins.c:379 +msgid "" +"Change the shell working directory.\n" +" \n" +" Change the current directory to DIR. The default DIR is the value of " +"the\n" +" HOME shell variable.\n" +" \n" +" The variable CDPATH defines the search path for the directory " +"containing\n" +" DIR. Alternative directory names in CDPATH are separated by a colon " +"(:).\n" +" A null directory name is the same as the current directory. If DIR " +"begins\n" +" with a slash (/), then CDPATH is not used.\n" +" \n" +" If the directory is not found, and the shell option `cdable_vars' is " +"set,\n" +" the word is assumed to be a variable name. If that variable has a " +"value,\n" +" its value is used for DIR.\n" +" \n" +" Options:\n" +" -L\tforce symbolic links to be followed\n" +" -P\tuse the physical directory structure without following symbolic\n" +" \tlinks\n" +" \n" +" The default is to follow symbolic links, as if `-L' were specified.\n" +" \n" +" Exit Status:\n" +" Returns 0 if the directory is changed; non-zero otherwise." +msgstr "" +"Ändra skalets arbetskatalog.\n" +" \n" +" Ändra den aktuella katalogen till KAT. Standardvärde pÃ¥ KAT är värdet\n" +" pÃ¥ skalvariabeln HOME.\n" +" \n" +" Variabeln CDPATH definierar sökvägen för katalogen som innehÃ¥ller KAT.\n" +" Alternativa katalognamn i CDPATH separeras av ett kolon (:). Ett tomt\n" +" katalognamn är detsamma som aktuell katalog. Om KAT börjar med ett\n" +" snedstreck (/) används inte CDPATH.\n" +" \n" +" Om katalogen inte kan hittas, och skalvariabeln \"cdable_vars\" är " +"satt,\n" +" antas ordet vara ett variabelnamn. Om den variabeln har ett värde\n" +" används dess värde för KAT.\n" +" \n" +" Flaggor:\n" +" -L\tframtvinga att symboliska länkar följs\n" +" -P\tanvänd den fysiska katalogstrukturen utan att följa\n" +" \tsymboliska länkar\n" +" \n" +" Standardvärde är att följa symboliska längar, som om \"-L\" vore " +"angivet.\n" +" \n" +" Slutstatus:\n" +" Returnerar 0 om katalogen är ändrad; skilt frÃ¥n noll annars." + +#: builtins.c:407 +msgid "" +"Print the name of the current working directory.\n" +" \n" +" Options:\n" +" -L\tprint the value of $PWD if it names the current working\n" +" \tdirectory\n" +" -P\tprint the physical directory, without any symbolic links\n" +" \n" +" By default, `pwd' behaves as if `-L' were specified.\n" +" \n" +" Exit Status:\n" +" Returns 0 unless an invalid option is given or the current directory\n" +" cannot be read." +msgstr "" +"Skriv namnet pÃ¥ den aktuella arbetskatalogen.\n" +" \n" +" Flaggor:\n" +" -L\tskriv värdet pÃ¥ $PWD om det är namnet pÃ¥ den aktuella\n" +" \tarbetskatalogen\n" +" -P\tskriv den fysiska katalogen, utan nÃ¥gra symboliska länkar\n" +" \n" +" Som standard beter sig \"pwd\" som om \"-L\" vore angivet.\n" +" \n" +" Slutstatus:\n" +" Returnerar 0 om inte en ogiltig flagga anges eller den aktuella " +"katalogen\n" +" inte kan läsas." + +#: builtins.c:424 +msgid "" +"Null command.\n" +" \n" +" No effect; the command does nothing.\n" +" \n" +" Exit Status:\n" +" Always succeeds." +msgstr "" +"Tomt kommando.\n" +" \n" +" Ingen effekt. Kommandot gör ingenting.\n" +" \n" +" Slutstatus:\n" +" Lyckas alltid." + +#: builtins.c:435 +msgid "" +"Return a successful result.\n" +" \n" +" Exit Status:\n" +" Always succeeds." +msgstr "" +"Returnerar ett lyckat resultat.\n" +" \n" +" Slutstatus:\n" +" Lyckas alltid." + +#: builtins.c:444 +msgid "" +"Return an unsuccessful result.\n" +" \n" +" Exit Status:\n" +" Always fails." +msgstr "" +"Returnera ett misslyckat resultat.\n" +" \n" +" Slutstatus:\n" +" Misslyckas alltid." + +#: builtins.c:453 +msgid "" +"Execute a simple command or display information about commands.\n" +" \n" +" Runs COMMAND with ARGS suppressing shell function lookup, or display\n" +" information about the specified COMMANDs. Can be used to invoke " +"commands\n" +" on disk when a function with the same name exists.\n" +" \n" +" Options:\n" +" -p\tuse a default value for PATH that is guaranteed to find all of\n" +" \tthe standard utilities\n" +" -v\tprint a description of COMMAND similar to the `type' builtin\n" +" -V\tprint a more verbose description of each COMMAND\n" +" \n" +" Exit Status:\n" +" Returns exit status of COMMAND, or failure if COMMAND is not found." +msgstr "" +"Exekvera ett enkelt kommando eller visa information om kommandon.\n" +" \n" +" Kör KOMMANDO med ARGument och utelämna uppslagning av skalfunktioner,\n" +" eller visa information om det angivna KOMMANDOt. Kan användas för att\n" +" anropa kommandon pÃ¥ disk när det finns en funktion med samma namn.\n" +" \n" +" Flaggor:\n" +" -p\tanvänd ett standardvärde pÃ¥ PATH som är garanterat att hitta\n" +" \talla standardverktygen\n" +" -v\tskriv en beskrivning av KOMMANDO liknande den inbyggda \"type\"\n" +" -V\tskriv en mer utförlig beskrivning om varje KOMMANDO\n" +" \n" +" Slutstatus:\n" +" Returnerar slutstatus frÃ¥n KOMMANDO, eller misslyckande om KOMMANDO " +"inte\n" +" finns." + +#: builtins.c:472 +msgid "" +"Set variable values and attributes.\n" +" \n" +" Declare variables and give them attributes. If no NAMEs are given,\n" +" display the attributes and values of all variables.\n" +" \n" +" Options:\n" +" -f\trestrict action or display to function names and definitions\n" +" -F\trestrict display to function names only (plus line number and\n" +" \tsource file when debugging)\n" +" -p\tdisplay the attributes and value of each NAME\n" +" \n" +" Options which set attributes:\n" +" -a\tto make NAMEs indexed arrays (if supported)\n" +" -A\tto make NAMEs associative arrays (if supported)\n" +" -i\tto make NAMEs have the `integer' attribute\n" +" -l\tto convert NAMEs to lower case on assignment\n" +" -r\tto make NAMEs readonly\n" +" -t\tto make NAMEs have the `trace' attribute\n" +" -u\tto convert NAMEs to upper case on assignment\n" +" -x\tto make NAMEs export\n" +" \n" +" Using `+' instead of `-' turns off the given attribute.\n" +" \n" +" Variables with the integer attribute have arithmetic evaluation (see\n" +" the `let' command) performed when the variable is assigned a value.\n" +" \n" +" When used in a function, `declare' makes NAMEs local, as with the " +"`local'\n" +" command.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" +"Sätt variabelvärden och -attribut.\n" +" \n" +" Deklarera variabler och ge dem attribut. Om inget NAMN anges, visa\n" +" attributen och värdena pÃ¥ alla variabler.\n" +" \n" +" Flaggor:\n" +" -f\tbegränsa Ã¥tgärden till att visa funktionsnamn och -definitioner\n" +" -F\tbegränsa visandet till endast funktionsnamn (plus radnummer\n" +" \toch källkodsfil vid felsökning)\n" +" -p\tvisa attributen och värden pÃ¥ varje NAMN\n" +" \n" +" Flaggor som sätter attribut:\n" +" -a\tför att göra NAMN till indexerade vektorer (om det stöds)\n" +" -A\tför att göra NAMN till associativa vektorer (om det stöds)\n" +" -i\tför att ge NAMN attributet \"heltal\"\n" +" -l\tför att konvertera NAMN till gemena vid tilldelning\n" +" -r\tför att göra NAMN endast läsbart\n" +" -t\tför att ge NAMN attributet \"spÃ¥ra\"\n" +" -u\tför att konvertera NAMN till versaler vid tilldelning\n" +" -x\tför att exportera NAMN\n" +" \n" +" Användning av \"+\" istället för \"-\" slÃ¥r av det angivna attributet.\n" +" \n" +" För variabler med attributet heltal utförs atitmetisk beräkning (se\n" +" kommandot \"let\") när variabeln tilldelas ett värde.\n" +" \n" +" Vid användning i en funktion gör \"declare\" NAMN lokala, som med " +"kommandot\n" +" \"local\".\n" +" \n" +" Slutstatus:\n" +" Returnerar framgÃ¥ng om inte en ogiltig flagga ges eller ett fel " +"inträffar." + +#: builtins.c:508 +msgid "" +"Set variable values and attributes.\n" +" \n" +" Obsolete. See `help declare'." +msgstr "" +"Sätt variabelvärden och -attribut.\n" +" \n" +" FörÃ¥ldrat. Se \"help declare\"." + +#: builtins.c:516 +msgid "" +"Define local variables.\n" +" \n" +" Create a local variable called NAME, and give it VALUE. OPTION can\n" +" be any option accepted by `declare'.\n" +" \n" +" Local variables can only be used within a function; they are visible\n" +" only to the function where they are defined and its children.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied, an error occurs,\n" +" or the shell is not executing a function." +msgstr "" +"Definiera lokala variabler.\n" +" \n" +" Skapa en lokal variabel kallad NAMN, och ge den VÄRDE. FLAGGA kan\n" +" vara alla flaggor som accepteras av \"declare\".\n" +" \n" +" Lokala variabler kan endast användas i en funktion; de är synliga " +"endast\n" +" för funktionen de definieras i och dess barn.\n" +" \n" +" Slutstatus:\n" +" Returnerar framgÃ¥ng om inte en ogiltig flagga ges, ett fel inträffar\n" +" eller skalet inte exekverar en funktion." + +#: builtins.c:533 +msgid "" +"Write arguments to the standard output.\n" +" \n" +" Display the ARGs on the standard output followed by a newline.\n" +" \n" +" Options:\n" +" -n\tdo not append a newline\n" +" -e\tenable interpretation of the following backslash escapes\n" +" -E\texplicitly suppress interpretation of backslash escapes\n" +" \n" +" `echo' interprets the following backslash-escaped characters:\n" +" \\a\talert (bell)\n" +" \\b\tbackspace\n" +" \\c\tsuppress further output\n" +" \\e\tescape character\n" +" \\f\tform feed\n" +" \\n\tnew line\n" +" \\r\tcarriage return\n" +" \\t\thorizontal tab\n" +" \\v\tvertical tab\n" +" \\\\\tbackslash\n" +" \\0nnn\tthe character whose ASCII code is NNN (octal). NNN can be\n" +" \t0 to 3 octal digits\n" +" \\xHH\tthe eight-bit character whose value is HH (hexadecimal). HH\n" +" \tcan be one or two hex digits\n" +" \n" +" Exit Status:\n" +" Returns success unless a write error occurs." +msgstr "" +"Skriv argument pÃ¥ standard ut.\n" +" \n" +" Visa ARGumenten pÃ¥ standard ut följt av en nyrad.\n" +" \n" +" Flaggor:\n" +" -n\tlägg inte till en nyrad\n" +" -e\taktivera tolkning av nedanstÃ¥ende specialsekvenser\n" +" -E\tundertryck uttryckligen tolkning av specialsekvenser\n" +" \n" +" \"echo\" tolkar följande bakstrecksekvenser:\n" +" \\a\talarm (klocka)\n" +" \\b\tbacksteg\n" +" \\c\tundertryck följande utdata\n" +" \\e\tescape-tecknet\n" +" \\f\tsidmatning\n" +" \\n\tnyrad\n" +" \\r\tvagnretur\n" +" \\t\thorisontell tabulator\n" +" \\v\tvertikal tabulator\n" +" \\\\\tbakstreck\n" +" \\0nnn\ttecknet vars ASCII-kod är NNN (oktalt). NNN kan vara\n" +" \t0 till 3 oktala siffror\n" +" \\xHH\tdet Ã¥ttabitarstecken vars värde är HH (hexadecimalt). HH\n" +" \tkan vara en eller tvÃ¥ hexadecimala siffror\n" +" \n" +" Slutstatus:\n" +" Returnerar framgÃ¥ng om inte ett skrivfel inträffar." + +#: builtins.c:567 +msgid "" +"Write arguments to the standard output.\n" +" \n" +" Display the ARGs on the standard output followed by a newline.\n" +" \n" +" Options:\n" +" -n\tdo not append a newline\n" +" \n" +" Exit Status:\n" +" Returns success unless a write error occurs." +msgstr "" +"Skriv argument pÃ¥ standard ut.\n" +" \n" +" Visa ARGumenten pÃ¥ standard ut följt av en nyrad.\n" +" \n" +" Flaggor:\n" +" -n\tlägg inte till en nyrad\n" +" \n" +" Slutstatus:\n" +" Returnerar framgÃ¥ng om inte ett skrivfel inträffar." + +#: builtins.c:582 +msgid "" +"Enable and disable shell builtins.\n" +" \n" +" Enables and disables builtin shell commands. Disabling allows you to\n" +" execute a disk command which has the same name as a shell builtin\n" +" without using a full pathname.\n" +" \n" +" Options:\n" +" -a\tprint a list of builtins showing whether or not each is enabled\n" +" -n\tdisable each NAME or display a list of disabled builtins\n" +" -p\tprint the list of builtins in a reusable format\n" +" -s\tprint only the names of Posix `special' builtins\n" +" \n" +" Options controlling dynamic loading:\n" +" -f\tLoad builtin NAME from shared object FILENAME\n" +" -d\tRemove a builtin loaded with -f\n" +" \n" +" Without options, each NAME is enabled.\n" +" \n" +" To use the `test' found in $PATH instead of the shell builtin\n" +" version, type `enable -n test'.\n" +" \n" +" Exit Status:\n" +" Returns success unless NAME is not a shell builtin or an error occurs." +msgstr "" +"Aktivera och avaktivera inbyggda kommandon i skalet.\n" +" \n" +" Aktiverar och avaktiverar inbyggda skalkommandon. Avaktivering lÃ¥ter\n" +" dig exekvera diskkommandon som har samma namn som ett inbyggt\n" +" skalkommando utan att använda en fullständig sökväg.\n" +" \n" +" Flaggor:\n" +" -a\tskriv en lista av inbyggda kommando och visa om de är\n" +" \taktiverade eller ej\n" +" -n\tavaktivera varje NAMN eller visa en lista av avaktiverade\n" +" \tkommandon\n" +" -p\tskriv listan av inbyggda kommandon pÃ¥ en Ã¥teranvändningsbar\n" +" \tform\n" +" -s\tskriv endast namnen pÃ¥ Posix \"special\"-inbyggda\n" +" \n" +" Flaggor som styr dynamisk inläsning:\n" +" -f\tLäs int inbyggt NAMN frÃ¥n en delad objektfil FILNAMN\n" +" -d\tTa bort en inbyggd inläst med -f\n" +" \n" +" Utan flaggor aktiveras varje NAMN.\n" +" \n" +" För att använda den \"test\" som finns i sökvägen istället för den i\n" +" skalet inbyggda versionen, skriv \"enable -n test\".\n" +" \n" +" Slutstatus:\n" +" Returnerar framgÃ¥ng om inte NAMN inte är inbyggd i skalet eller ett fel\n" +" inträffar." + +#: builtins.c:610 +msgid "" +"Execute arguments as a shell command.\n" +" \n" +" Combine ARGs into a single string, use the result as input to the " +"shell,\n" +" and execute the resulting commands.\n" +" \n" +" Exit Status:\n" +" Returns exit status of command or success if command is null." +msgstr "" +"Exekvera argument som ett skalkommando.\n" +" \n" +" Kombinera ARGument till en enda sträng, och använd resultatet som " +"indata\n" +" till skalet och exekvera de resulterande kommandona.\n" +" \n" +" Slutstatus:\n" +" Returnerar slutstatus av kommandot eller framgÃ¥ng om kommandot är tomt." + +#: builtins.c:622 +msgid "" +"Parse option arguments.\n" +" \n" +" Getopts is used by shell procedures to parse positional parameters\n" +" as options.\n" +" \n" +" OPTSTRING contains the option letters to be recognized; if a letter\n" +" is followed by a colon, the option is expected to have an argument,\n" +" which should be separated from it by white space.\n" +" \n" +" Each time it is invoked, getopts will place the next option in the\n" +" shell variable $name, initializing name if it does not exist, and\n" +" the index of the next argument to be processed into the shell\n" +" variable OPTIND. OPTIND is initialized to 1 each time the shell or\n" +" a shell script is invoked. When an option requires an argument,\n" +" getopts places that argument into the shell variable OPTARG.\n" +" \n" +" getopts reports errors in one of two ways. If the first character\n" +" of OPTSTRING is a colon, getopts uses silent error reporting. In\n" +" this mode, no error messages are printed. If an invalid option is\n" +" seen, getopts places the option character found into OPTARG. If a\n" +" required argument is not found, getopts places a ':' into NAME and\n" +" sets OPTARG to the option character found. If getopts is not in\n" +" silent mode, and an invalid option is seen, getopts places '?' into\n" +" NAME and unsets OPTARG. If a required argument is not found, a '?'\n" +" is placed in NAME, OPTARG is unset, and a diagnostic message is\n" +" printed.\n" +" \n" +" If the shell variable OPTERR has the value 0, getopts disables the\n" +" printing of error messages, even if the first character of\n" +" OPTSTRING is not a colon. OPTERR has the value 1 by default.\n" +" \n" +" Getopts normally parses the positional parameters ($0 - $9), but if\n" +" more arguments are given, they are parsed instead.\n" +" \n" +" Exit Status:\n" +" Returns success if an option is found; fails if the end of options is\n" +" encountered or an error occurs." +msgstr "" +"Tolka flaggargument.\n" +" \n" +" Getopts används av skalprocedurer för att tolka positionsparametrar\n" +" som flaggor.\n" +" \n" +" FLGSTRÄNG innehÃ¥ller de flaggtecken som skall kännas igen. Om ett\n" +" tecken följs av ett kolon förväntas flaggan ha ett argument, som\n" +" skall separeras frÃ¥n den med blanktecken.\n" +" \n" +" Varje gÃ¥ng det anropas kommer getopts placera nästa flagga i skal-\n" +" variabeln $namn, initiera namnet om det inte redan finns, och\n" +" index pÃ¥ nästa argument läggas i skalvariabeln OPTIND. OPTIND\n" +" initieras till 1 varje gÃ¥ng skalet eller ett skalskrpt startas. När\n" +" en flagga behöver ett argument placerar getopts det argumentet i\n" +" skalvariabeln OPTARG.\n" +" \n" +" getopts rapporterar fel pÃ¥ ett av tvÃ¥ sätt. Om det första tecknet\n" +" i OPTSTRING är ett kolon använder getopts tyst felrapportering. I\n" +" detta läge skrivs inget felmeddelande ut. Om en ogiltig flagga ses\n" +" placerar getopts det funna flaggtecknet i OPTARG. Om ett nödvändigt\n" +" argument inte finns placerar getopts ett \":\" i NAMN och sätter OPTARG\n" +" till det funna flaggtecknet. Om getopts inte är i tyst läge och en\n" +" felaktig flagga upptäcks placerar getopts \"?\" i NAMN och tar bort\n" +" OPTARG. Om ett nödvändigt argument inte hittas placeras ett \"?\" i\n" +" NAMN, OPTARG tas bort och ett felmeddelande skrivs.\n" +" \n" +" Om skalvariabeln OPTERR har värdet 0 avaktiverar getopts utskriften\n" +" av felmeddelanden, även om det första tecknet i FLGSTRÄNG inte är ett\n" +" kolon. OPTERR har värdet 1 som standard.\n" +" \n" +" Getopts tolkar normalt positionsparametrarna ($0 - $9), men om fler\n" +" argument ges tolkas de istället.\n" +" \n" +" Slutstatus:\n" +" Returnerar framgÃ¥ng om en flagga hittas, misslyckas om slutet av\n" +" flaggorna nÃ¥s eller ett fel inträffar." + +#: builtins.c:664 +msgid "" +"Replace the shell with the given command.\n" +" \n" +" Execute COMMAND, replacing this shell with the specified program.\n" +" ARGUMENTS become the arguments to COMMAND. If COMMAND is not " +"specified,\n" +" any redirections take effect in the current shell.\n" +" \n" +" Options:\n" +" -a name\tpass NAME as the zeroth argument to COMMAND\n" +" -c\t\texecute COMMAND with an empty environment\n" +" -l\t\tplace a dash in the zeroth argument to COMMAND\n" +" \n" +" If the command cannot be executed, a non-interactive shell exits, " +"unless\n" +" the shell option `execfail' is set.\n" +" \n" +" Exit Status:\n" +" Returns success unless COMMAND is not found or a redirection error " +"occurs." +msgstr "" +"Ersätt skalet med det givna kommandot.\n" +" \n" +" Exekvera KOMMANDO genom att ersätta detta skal med det angivna " +"programmet.\n" +" ARGUMENT blir argument till KOMMANDO. Om KOMMANDO inte anges kommer\n" +" eventuella omdirigeringar att gälla för det aktuella skalet.\n" +" \n" +" Flaggor:\n" +" -a namn\tskicka NAMN som det nollte argumentet till KOMMANDO\n" +" -c\texekvera KOMMANDO med en tom miljö\n" +" -l\tplacera ett streck i det nollte argumentet till KOMMANDO\n" +" \n" +" Om kommandot inte kan exekveras avslutar ett ickeinteraktivt skal, om\n" +" inte skalflaggan \"execfail\" är satt.\n" +" \n" +" Sluttatus:\n" +" Returnerar framgÃ¥ng om inte KOMMANDO inte finns eller ett fel vid\n" +" omdirigering inträffar." + +#: builtins.c:685 +msgid "" +"Exit the shell.\n" +" \n" +" Exits the shell with a status of N. If N is omitted, the exit status\n" +" is that of the last command executed." +msgstr "" +"Avsluta skalet.\n" +" \n" +" Avslutar skalet med statusen N. Om N utelämnas är slutstatusen den\n" +" hos det sist körda kommandot." + +#: builtins.c:694 +msgid "" +"Exit a login shell.\n" +" \n" +" Exits a login shell with exit status N. Returns an error if not " +"executed\n" +" in a login shell." +msgstr "" +"Avsluta ett inloggningsskal.\n" +" \n" +" Avslutar ett inloggningsskal med slutstatus N. Returnerar ett fel om\n" +" det inte körs i ett inloggningsskal." + +#: builtins.c:704 +msgid "" +"Display or execute commands from the history list.\n" +" \n" +" fc is used to list or edit and re-execute commands from the history " +"list.\n" +" FIRST and LAST can be numbers specifying the range, or FIRST can be a\n" +" string, which means the most recent command beginning with that\n" +" string.\n" +" \n" +" Options:\n" +" -e ENAME\tselect which editor to use. Default is FCEDIT, then " +"EDITOR,\n" +" \t\tthen vi\n" +" -l \tlist lines instead of editing\n" +" -n\tomit line numbers when listing\n" +" -r\treverse the order of the lines (newest listed first)\n" +" \n" +" With the `fc -s [pat=rep ...] [command]' format, COMMAND is\n" +" re-executed after the substitution OLD=NEW is performed.\n" +" \n" +" A useful alias to use with this is r='fc -s', so that typing `r cc'\n" +" runs the last command beginning with `cc' and typing `r' re-executes\n" +" the last command.\n" +" \n" +" Exit Status:\n" +" Returns success or status of executed command; non-zero if an error " +"occurs." +msgstr "" +"Visa eller kör kommandon frÃ¥n historielistan.\n" +" \n" +" fc används för att lista eller redigera och köra om kommandon frÃ¥n\n" +" historielistan. FÖRSTA och SISTA kan vara tal som anger intervallet,\n" +" eller sÃ¥ kan FÖRSTA vara en sträng, som betyder det senaste kommandot\n" +" som börjar med den strängen.\n" +" \n" +" Flaggor:\n" +" -e RNAMN\tvälj vilken redigerar som skall användas. Standard är\n" +" \t\tFCEDIT, sedan EDITOR, sedan vi\n" +" -l \tlista rader istället för att redigera\n" +" -n\tutelämna radnummer vid listningen\n" +" -r\treversera ordningen pÃ¥ raderna (nyaste listas först)\n" +" \n" +" Med formatet \"fc -s [mnst=ers ...] [kommando]\" körs KOMMANDO om efter\n" +" att substitutionen GAMMALT=NYTT har utförts.\n" +" \n" +" Ett användbart alias att använda med detta är r=\"fc -s\", sÃ¥ att " +"skriva\n" +" \"r cc\" kör senaste kommandot som börjar med \"cc\" och att skriva \"r" +"\" kör\n" +" om senaste kommandot.\n" +" \n" +" Slutstatus:\n" +" Returnerar framgÃ¥ng eller status pÃ¥ exekverat kommando, skilt frÃ¥n noll\n" +" om ett fel inträffar." + +#: builtins.c:734 +msgid "" +"Move job to the foreground.\n" +" \n" +" Place the job identified by JOB_SPEC in the foreground, making it the\n" +" current job. If JOB_SPEC is not present, the shell's notion of the\n" +" current job is used.\n" +" \n" +" Exit Status:\n" +" Status of command placed in foreground, or failure if an error occurs." +msgstr "" +"Flytta ett jobb till förgrunden.\n" +" \n" +" Placera jobbet som identifieras av JOBBSPEC i förgrunden, och gör det\n" +" till det aktuella jobbet. Om ingen JOBBSPEC finns används skalets\n" +" begrep om det aktuella jobbet.\n" +" \n" +" Slutstatus:\n" +" Status pÃ¥ kommandot som placerades i förgrunden, eller misslyckande om\n" +" ett fel inträffar." + +#: builtins.c:749 +msgid "" +"Move jobs to the background.\n" +" \n" +" Place the jobs identified by each JOB_SPEC in the background, as if " +"they\n" +" had been started with `&'. If JOB_SPEC is not present, the shell's " +"notion\n" +" of the current job is used.\n" +" \n" +" Exit Status:\n" +" Returns success unless job control is not enabled or an error occurs." +msgstr "" +"Flytta jobb till bakgrunden.\n" +" \n" +" Placera jobben som idintifieras av varje JOBBSPEC i bakgrunden som om " +"de\n" +" hade startats med \"&\". Om ingen JOBBSPEC finns används skalets " +"begrepp\n" +" om det aktuella jobbet.\n" +" \n" +" Slutstatus:\n" +" Returnerar framgÃ¥ng om inte jobbstyrning inte är aktiverat eller ett " +"fel\n" +" inträffar." + +#: builtins.c:763 +msgid "" +"Remember or display program locations.\n" +" \n" +" Determine and remember the full pathname of each command NAME. If\n" +" no arguments are given, information about remembered commands is " +"displayed.\n" +" \n" +" Options:\n" +" -d\t\tforget the remembered location of each NAME\n" +" -l\t\tdisplay in a format that may be reused as input\n" +" -p pathname\tuse PATHNAME is the full pathname of NAME\n" +" -r\t\tforget all remembered locations\n" +" -t\t\tprint the remembered location of each NAME, preceding\n" +" \t\teach location with the corresponding NAME if multiple\n" +" \t\tNAMEs are given\n" +" Arguments:\n" +" NAME\t\tEach NAME is searched for in $PATH and added to the list\n" +" \t\tof remembered commands.\n" +" \n" +" Exit Status:\n" +" Returns success unless NAME is not found or an invalid option is given." +msgstr "" +"Kom ihÃ¥g eller visa programlägen.\n" +" \n" +" Bestäm och kom ihÃ¥g den fullständiga sökvägen till varje kommando NAMN.\n" +" Om inget argument ges visas information om kommandon som finns i " +"minnet.\n" +" \n" +" Flaggor:\n" +" -d\t\tglöm platsen i minnet för varje NAMN\n" +" -l\t\tvisa i ett format som kan Ã¥teranvändas som indata\n" +" -p sökväg \tanvänd SÖKVÄG som den fullständiga sökvägen till NAMN\n" +" -r\t\tglömm alla platser i minnet\n" +" -t\t\tskriv platsen i minnet för varje NAMN, med NAMN före\n" +" \t\tvarje motsvarande plats om flera NAMN ges\n" +" Argument:\n" +" NAMN\t\tVarje NAMN söks efter i $PATH och läggs till i listan\n" +" \t\tav kommandon i minnet.\n" +" \n" +" Slutstatus:\n" +" Returnerar framgÃ¥ng om inte NAMN inte hittas eller en ogiltig flagga ges." + +#: builtins.c:788 +msgid "" +"Display information about builtin commands.\n" +" \n" +" Displays brief summaries of builtin commands. If PATTERN is\n" +" specified, gives detailed help on all commands matching PATTERN,\n" +" otherwise the list of help topics is printed.\n" +" \n" +" Options:\n" +" -d\toutput short description for each topic\n" +" -m\tdisplay usage in pseudo-manpage format\n" +" -s\toutput only a short usage synopsis for each topic matching\n" +" \tPATTERN\n" +" \n" +" Arguments:\n" +" PATTERN\tPattern specifiying a help topic\n" +" \n" +" Exit Status:\n" +" Returns success unless PATTERN is not found or an invalid option is " +"given." +msgstr "" +"Visa information om inbyggda kommandon.\n" +" \n" +" Visar korta sammanfattningar om inbyggda kommandon. Om MÖNSTER anges\n" +" ges detaljerad hjälp om alla kommandon som matchar MÖNSTER, annars " +"skrivs\n" +" listan med hjälpämnen.\n" +" \n" +" Flaggor:\n" +" -d\tvisa en kort beskrivning för varje ämne\n" +" -m\tvisa användning i lÃ¥tsas-mansideformat\n" +" -s\tvisa endast ett kort användningsformat för varje ämne som\n" +" \tmatchar MÖNSTER\n" +" \n" +" Argument:\n" +" MÖNSTER\tMönster som anger hjälpämnen\n" +" \n" +" Slutstatus:\n" +" Returnerar framgÃ¥ng om inte MÖNSTER inte finns eller en ogiltig flagga " +"ges." + +#: builtins.c:812 +msgid "" +"Display or manipulate the history list.\n" +" \n" +" Display the history list with line numbers, prefixing each modified\n" +" entry with a `*'. An argument of N lists only the last N entries.\n" +" \n" +" Options:\n" +" -c\tclear the history list by deleting all of the entries\n" +" -d offset\tdelete the history entry at offset OFFSET.\n" +" \n" +" -a\tappend history lines from this session to the history file\n" +" -n\tread all history lines not already read from the history file\n" +" -r\tread the history file and append the contents to the history\n" +" \tlist\n" +" -w\twrite the current history to the history file\n" +" \tand append them to the history list\n" +" \n" +" -p\tperform history expansion on each ARG and display the result\n" +" \twithout storing it in the history list\n" +" -s\tappend the ARGs to the history list as a single entry\n" +" \n" +" If FILENAME is given, it is used as the history file. Otherwise,\n" +" if $HISTFILE has a value, that is used, else ~/.bash_history.\n" +" \n" +" If the $HISTTIMEFORMAT variable is set and not null, its value is used\n" +" as a format string for strftime(3) to print the time stamp associated\n" +" with each displayed history entry. No time stamps are printed " +"otherwise.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or an error occurs." +msgstr "" +"Visa eller hantera historielistan.\n" +" \n" +" Visa historielistan med radnummer, inled varje modifierad post med en\n" +" \"*\". Ett argument N listar endast de N senaste posterna.\n" +" \n" +" Flaggor:\n" +" -c\tnollställ historielistan genom att ta bort alla poster\n" +" -d avstÃ¥nd\tta bort historieposten pÃ¥ avstÃ¥nd AVSTÅND\n" +" \n" +" -a\tlägg till historierader frÃ¥n denna session till historiefilen\n" +" -n\tläs alla historierader som inte redan lästs frÃ¥n historiefilen\n" +" -r\tläs historiefilen och lägg till innehÃ¥llet till historielistan\n" +" -w\tskriv den aktuella historien till hstoriefilen och lägg till\n" +" \tdem till historielistan\n" +" \n" +" -p\tutför historieexpansion pÃ¥ varje ARG och visa resultatet utan\n" +" \tatt lagra det i historielistan\n" +" -s\tlägg till ARG till historielistan som en ensam post\n" +" \n" +" Om FILENAMN anges används det som historiefil. Annars, om $HISTFILE " +"har\n" +" ett värde används det, annars ~/.bash_history.\n" +" \n" +" Om variabeln $HISTTIMEFORMAT är satt och inte tom används dess värde " +"som\n" +" en formatsträng till strftime(3) för att skriva tidsstämplar " +"tillhörande\n" +" varje visad historiepost. Inga tidsstämplar skrivs annars.\n" +" \n" +" Slutstatus:\n" +" Returnerar framgÃ¥ng om inte en ogiltig flagga ges eller ett fel " +"inträffar." + +#: builtins.c:848 +msgid "" +"Display status of jobs.\n" +" \n" +" Lists the active jobs. JOBSPEC restricts output to that job.\n" +" Without options, the status of all active jobs is displayed.\n" +" \n" +" Options:\n" +" -l\tlists process IDs in addition to the normal information\n" +" -n\tlist only processes that have changed status since the last\n" +" \tnotification\n" +" -p\tlists process IDs only\n" +" -r\trestrict output to running jobs\n" +" -s\trestrict output to stopped jobs\n" +" \n" +" If -x is supplied, COMMAND is run after all job specifications that\n" +" appear in ARGS have been replaced with the process ID of that job's\n" +" process group leader.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or an error occurs.\n" +" If -x is used, returns the exit status of COMMAND." +msgstr "" +"Visa status pÃ¥ jobb.\n" +" \n" +" Lista de aktiva jobben. JOBBSPEC begränsar utdata till det jobbet.\n" +" Utan flaggor visas status pÃ¥ alla aktiva jobb.\n" +" \n" +" Flaggor:\n" +" -l\tlistar process-id:n utöver den normala informationen\n" +" -n\tlistar endast processer som har ändrat status sedan senaste\n" +" \tnotifiering\n" +" -p\tlistar endast process-id:n\n" +" -r\tbegränsar utdata till körande jobb\n" +" -s\tbegränsar utdata till stoppade jobb\n" +" \n" +" Om -x anges körs KOMMANDO efter alla jobbspecifikationer som förekommer\n" +" i ARG har ersatts med process-id:t för det jobbets processgruppledare.\n" +" \n" +" Slutstatus:\n" +" Returnerar framgÃ¥ng om inte en ogiltig flagga ges eller ett fel " +"inträffar.\n" +" Om -x används returneras slutstatus frÃ¥n KOMMANDO." + +#: builtins.c:875 +msgid "" +"Remove jobs from current shell.\n" +" \n" +" Removes each JOBSPEC argument from the table of active jobs. Without\n" +" any JOBSPECs, the shell uses its notion of the current job.\n" +" \n" +" Options:\n" +" -a\tremove all jobs if JOBSPEC is not supplied\n" +" -h\tmark each JOBSPEC so that SIGHUP is not sent to the job if the\n" +" \tshell receives a SIGHUP\n" +" -r\tremove only running jobs\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option or JOBSPEC is given." +msgstr "" +"Ta bort jobb frÃ¥n det aktuella skalet.\n" +" \n" +" Tar bort varje JOBBSPEC-argument frÃ¥n tabellen över aktiva jobb. Utan\n" +" nÃ¥gon JOBBSPEC använder skalet sitt begrepp om det aktuella jobbet.\n" +" \n" +" Flaggor:\n" +" -a\tta bort alla jobb om JOBBSPEC inte anges\n" +" -h\tmärk varje JOBBSPEC sÃ¥ att SIGHUP inte skickas till jobbet om\n" +" \tskalet tar emot en SIGHUP\n" +" -r\ttar bara bort körande jobb\n" +" \n" +" Slutstatus:\n" +" Returnerar framgÃ¥ng om inte en ogiltig flagga eller JOBBSPEC ges." + +#: builtins.c:894 +msgid "" +"Send a signal to a job.\n" +" \n" +" Send the processes identified by PID or JOBSPEC the signal named by\n" +" SIGSPEC or SIGNUM. If neither SIGSPEC nor SIGNUM is present, then\n" +" SIGTERM is assumed.\n" +" \n" +" Options:\n" +" -s sig\tSIG is a signal name\n" +" -n sig\tSIG is a signal number\n" +" -l\tlist the signal names; if arguments follow `-l' they are\n" +" \tassumed to be signal numbers for which names should be listed\n" +" \n" +" Kill is a shell builtin for two reasons: it allows job IDs to be used\n" +" instead of process IDs, and allows processes to be killed if the limit\n" +" on processes that you can create is reached.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or an error occurs." +msgstr "" +"Skicka en signal till ett jobb.\n" +" \n" +" Skicka processerna som identifieras av PID eller JOBBSPEC signalerna " +"som\n" +" namnges av SIGSPEC eller SIGNUM. Om varken SIGSPEC eller SIGNUM är\n" +" angivna antas SIGTERM.\n" +" \n" +" Flaggor:\n" +" -s sig\tSIG är ett signalnamn\n" +" -n sig\tSIG är ett signalnummer\n" +" -l\tlista signalnamnen. Om argument följer \"-l\" antas de vara\n" +" \tsignalnummer som namn skall listas för\n" +" \n" +" Kill är inbyggt i skalet av tvÃ¥ skäl: det tillÃ¥ter att jobb-id:n " +"används\n" +" istället för process-id:n, och det tillÃ¥ter processer att dödas om " +"gränsen\n" +" för hur mÃ¥nga processer du fÃ¥r skapa har nÃ¥tts.\n" +" \n" +" Slutstatus:\n" +" Returnerar framgÃ¥ng om inte en ogiltig flagga angivits eller ett fel\n" +" inträffar." + +#: builtins.c:917 +msgid "" +"Evaluate arithmetic expressions.\n" +" \n" +" Evaluate each ARG as an arithmetic expression. Evaluation is done in\n" +" fixed-width integers with no check for overflow, though division by 0\n" +" is trapped and flagged as an error. The following list of operators is\n" +" grouped into levels of equal-precedence operators. The levels are " +"listed\n" +" in order of decreasing precedence.\n" +" \n" +" \tid++, id--\tvariable post-increment, post-decrement\n" +" \t++id, --id\tvariable pre-increment, pre-decrement\n" +" \t-, +\t\tunary minus, plus\n" +" \t!, ~\t\tlogical and bitwise negation\n" +" \t**\t\texponentiation\n" +" \t*, /, %\t\tmultiplication, division, remainder\n" +" \t+, -\t\taddition, subtraction\n" +" \t<<, >>\t\tleft and right bitwise shifts\n" +" \t<=, >=, <, >\tcomparison\n" +" \t==, !=\t\tequality, inequality\n" +" \t&\t\tbitwise AND\n" +" \t^\t\tbitwise XOR\n" +" \t|\t\tbitwise OR\n" +" \t&&\t\tlogical AND\n" +" \t||\t\tlogical OR\n" +" \texpr ? expr : expr\n" +" \t\t\tconditional operator\n" +" \t=, *=, /=, %=,\n" +" \t+=, -=, <<=, >>=,\n" +" \t&=, ^=, |=\tassignment\n" +" \n" +" Shell variables are allowed as operands. The name of the variable\n" +" is replaced by its value (coerced to a fixed-width integer) within\n" +" an expression. The variable need not have its integer attribute\n" +" turned on to be used in an expression.\n" +" \n" +" Operators are evaluated in order of precedence. Sub-expressions in\n" +" parentheses are evaluated first and may override the precedence\n" +" rules above.\n" +" \n" +" Exit Status:\n" +" If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise.." +msgstr "" +"Evaluera aritmetiska uttryck.\n" +" \n" +" Evaluera varje ARG som ett aritmetiskt uttryck. Evaluering görs i " +"heltal\n" +" med fix bredd utan kontroll av spill, fast division med 0 fÃ¥ngas och\n" +" flaggas som ett fel. Följande lista över operatorer är grupperad i\n" +" nivÃ¥er av operatorer med samma precedens. NivÃ¥erna är listade i " +"ordning\n" +" med sjunkande precedens.\n" +" \n" +" \tid++, id--\tpostinkrementering av variabel, postdekrementering\n" +" \t++id, --id\tpreinkrementering av variabel, predekrementering\n" +" \t-, +\t\tunärt minus, plus\n" +" \t!, ~\t\tlogisk och bitvis negering\n" +" \t**\t\texponentiatiering\n" +" \t*, /, %\t\tmultiplikation, division, rest\n" +" \t+, -\t\taddition, subtraktion\n" +" \t<<, >>\t\tvänster och höger bitvisa skift\n" +" \t<=, >=, <, >\tjämförelse\n" +" \t==, !=\t\tlikhet, olikhet\n" +" \t&\t\tbitvis OCH\n" +" \t^\t\tbitvis EXKLUSIVT ELLER\n" +" \t|\t\tbitvis ELLER\n" +" \t&&\t\tlogiskt OCH\n" +" \t||\t\tlogiskt ELLER\n" +" \tuttf ? uttr : uttr\n" +" \t\t\tvillkorlig operator\n" +" \t=, *=, /=, %=,\n" +" \t+=, -=, <<=, >>=,\n" +" \t&=, ^=, |=\ttilldelning\n" +" \n" +" Skalvariabler är tillÃ¥tna som operander. namnet pÃ¥ variablerna ersätts\n" +" med deras värde (omformat till ett heltal med fix bredd) inom ett\n" +" uttryck. Variablerna behöver inte ha sina heltalsattribut pÃ¥slagna för\n" +" att användas i ett uttryck.\n" +" \n" +" Operatorer beräknas i precedensordning. Delutryck i parenteser " +"beräknas\n" +" först och kan Ã¥sidosätta precedensreglerna ovan.\n" +" \n" +" Slutstatus:\n" +" Om det sista ARG beräknas till 0, returnerar let 1; let returnerar 0 " +"annars." + +#: builtins.c:962 +#, fuzzy +msgid "" +"Read a line from the standard input and split it into fields.\n" +" \n" +" Reads a single line from the standard input, or from file descriptor FD\n" +" if the -u option is supplied. The line is split into fields as with " +"word\n" +" splitting, and the first word is assigned to the first NAME, the second\n" +" word to the second NAME, and so on, with any leftover words assigned to\n" +" the last NAME. Only the characters found in $IFS are recognized as " +"word\n" +" delimiters.\n" +" \n" +" If no NAMEs are supplied, the line read is stored in the REPLY " +"variable.\n" +" \n" +" Options:\n" +" -a array\tassign the words read to sequential indices of the array\n" +" \t\tvariable ARRAY, starting at zero\n" +" -d delim\tcontinue until the first character of DELIM is read, rather\n" +" \t\tthan newline\n" +" -e\t\tuse Readline to obtain the line in an interactive shell\n" +" -i text\tUse TEXT as the initial text for Readline\n" +" -n nchars\treturn after reading NCHARS characters rather than waiting\n" +" \t\tfor a newline\n" +" -p prompt\toutput the string PROMPT without a trailing newline before\n" +" \t\tattempting to read\n" +" -r\t\tdo not allow backslashes to escape any characters\n" +" -s\t\tdo not echo input coming from a terminal\n" +" -t timeout\ttime out and return failure if a complete line of input " +"is\n" +" \t\tnot read withint TIMEOUT seconds. The value of the TMOUT\n" +" \t\tvariable is the default timeout. TIMEOUT may be a\n" +" \t\tfractional number. If TIMEOUT is 0, read returns success only\n" +" \t\tif input is available on the specified file descriptor. The\n" +" \t\texit status is greater than 128 if the timeout is exceeded\n" +" -u fd\t\tread from file descriptor FD instead of the standard input\n" +" \n" +" Exit Status:\n" +" The return code is zero, unless end-of-file is encountered, read times " +"out,\n" +" or an invalid file descriptor is supplied as the argument to -u." +msgstr "" +"Läs en rad frÃ¥n standard in och dela upp den i fält.\n" +" \n" +" Läser en ensam rad frÃ¥n standard in, eller frÃ¥n filbeskrivare FB om\n" +" flaggan -u ges. Raden delas upp i fält som vid orduppdelning, och " +"första\n" +" ordet tilldelas det första NAMNet, andra ordet till det andra NAMNet, " +"och\n" +" sÃ¥ vidare, med eventuella Ã¥terstÃ¥ende ord tilldelade till det sista\n" +" NAMNet. Endast tecknen som finns i $IFS används som ordavgränsare.\n" +" \n" +" Om inga NAMN anges, lagras den inlästa raden i variabeln REPLY.\n" +" \n" +" Flaggor:\n" +" -a vektor\ttilldela de inlästa orden till sekvensiella index i " +"vektor-\n" +" \t\tvariabeln VEKTOR, med start frÃ¥n noll\n" +" -d avgr\tfortsätt tills det första tecknet i AVGR lästs, istället för\n" +" \t\tnyrad\n" +" -e\t\tanvänd Readline för att fÃ¥ in raden i ett interaktivt\n" +" \t\t\tskal\n" +" -i text\tAnvänd TEXT som starttext för Readline\n" +" -n ntkn\treturnera efter att ha läst NTKN tecken istället för att\n" +" \t\tvänta pÃ¥ en nyrad\n" +" -p prompt\tskriv ut strängen PROMPT utan en avslutande nyrad före\n" +" \t\tförsök att läsa\n" +" -r\t\ttillÃ¥t inte bakstreck att skydda nÃ¥gra tecken\n" +" -s\t\teka inte indata som kommer frÃ¥n terminalen\n" +" -t tidgräns\tsluta vänta och returnera misslyckande om inte en\n" +" \t\tkomplett rad lästs inom TIDSGRÄNS sekunder. Värdet pÃ¥ variabeln\n" +" \t\tTMOUT är standardvärdet pÃ¥ tidsgränsen. TIDSGRÄNS kan vara ett\n" +" \t\tbrÃ¥ktal. Slutstatus är större än 128 om tidsgränsen överskrids\n" +" -u fb\t\tläs frÃ¥n filbeskrivare FB istället för standard in\n" +" \n" +" Slutstatus:\n" +" Returkoden är noll om inte filslut nÃ¥s, läsningens tidsgräns överskrids\n" +" eller en ogiltig filbeskrivare ges som argument till -u." + +#: builtins.c:1002 +msgid "" +"Return from a shell function.\n" +" \n" +" Causes a function or sourced script to exit with the return value\n" +" specified by N. If N is omitted, the return status is that of the\n" +" last command executed within the function or script.\n" +" \n" +" Exit Status:\n" +" Returns N, or failure if the shell is not executing a function or script." +msgstr "" +"Returnera frÃ¥n en skalfunktion.\n" +" \n" +" FÃ¥r en funktion eller ett källinläst skript att avsluta med returvärdet\n" +" som anges av N. Om N utelämnas är returstatus den hos det sista\n" +" kommandot som körts i funktionen eller skriptet.\n" +" \n" +" Slutstatus:\n" +" Returnerar N, eller misslyckande om skalet inte kör en funktion eller\n" +" skript." + +#: builtins.c:1015 +msgid "" +"Set or unset values of shell options and positional parameters.\n" +" \n" +" Change the value of shell attributes and positional parameters, or\n" +" display the names and values of shell variables.\n" +" \n" +" Options:\n" +" -a Mark variables which are modified or created for export.\n" +" -b Notify of job termination immediately.\n" +" -e Exit immediately if a command exits with a non-zero status.\n" +" -f Disable file name generation (globbing).\n" +" -h Remember the location of commands as they are looked up.\n" +" -k All assignment arguments are placed in the environment for a\n" +" command, not just those that precede the command name.\n" +" -m Job control is enabled.\n" +" -n Read commands but do not execute them.\n" +" -o option-name\n" +" Set the variable corresponding to option-name:\n" +" allexport same as -a\n" +" braceexpand same as -B\n" +" emacs use an emacs-style line editing interface\n" +" errexit same as -e\n" +" errtrace same as -E\n" +" functrace same as -T\n" +" hashall same as -h\n" +" histexpand same as -H\n" +" history enable command history\n" +" ignoreeof the shell will not exit upon reading EOF\n" +" interactive-comments\n" +" allow comments to appear in interactive commands\n" +" keyword same as -k\n" +" monitor same as -m\n" +" noclobber same as -C\n" +" noexec same as -n\n" +" noglob same as -f\n" +" nolog currently accepted but ignored\n" +" notify same as -b\n" +" nounset same as -u\n" +" onecmd same as -t\n" +" physical same as -P\n" +" pipefail the return value of a pipeline is the status of\n" +" the last command to exit with a non-zero status,\n" +" or zero if no command exited with a non-zero " +"status\n" +" posix change the behavior of bash where the default\n" +" operation differs from the Posix standard to\n" +" match the standard\n" +" privileged same as -p\n" +" verbose same as -v\n" +" vi use a vi-style line editing interface\n" +" xtrace same as -x\n" +" -p Turned on whenever the real and effective user ids do not match.\n" +" Disables processing of the $ENV file and importing of shell\n" +" functions. Turning this option off causes the effective uid and\n" +" gid to be set to the real uid and gid.\n" +" -t Exit after reading and executing one command.\n" +" -u Treat unset variables as an error when substituting.\n" +" -v Print shell input lines as they are read.\n" +" -x Print commands and their arguments as they are executed.\n" +" -B the shell will perform brace expansion\n" +" -C If set, disallow existing regular files to be overwritten\n" +" by redirection of output.\n" +" -E If set, the ERR trap is inherited by shell functions.\n" +" -H Enable ! style history substitution. This flag is on\n" +" by default when the shell is interactive.\n" +" -P If set, do not follow symbolic links when executing commands\n" +" such as cd which change the current directory.\n" +" -T If set, the DEBUG trap is inherited by shell functions.\n" +" - Assign any remaining arguments to the positional parameters.\n" +" The -x and -v options are turned off.\n" +" \n" +" Using + rather than - causes these flags to be turned off. The\n" +" flags can also be used upon invocation of the shell. The current\n" +" set of flags may be found in $-. The remaining n ARGs are positional\n" +" parameters and are assigned, in order, to $1, $2, .. $n. If no\n" +" ARGs are given, all shell variables are printed.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given." +msgstr "" +"Sätt eller ta bort satta värden pÃ¥ skalflaggor och positionsparametrar.\n" +" \n" +" Ändra värdet pÃ¥ skalattribut och positionsparametrar, eller visa namnen\n" +" och värdena pÃ¥ skalvariabler.\n" +" \n" +" Flaggor:\n" +" -a Markera variabler om ändras eller skapas för export.\n" +" -b Rapportera om avlutade jobb omedelbart.\n" +" -e Avsluta omedelbart om ett kommando avslutar med nollskild status.\n" +" -f Avaktivera filnamnsgenerering (globbing).\n" +" -h Kom ihÃ¥g platsen för kommandon när de slÃ¥s upp.\n" +" -k Alla tilldelningsargument placeras i miljön för ett kommando, " +"inte\n" +" bara de som föregÃ¥r kommandonamnet.\n" +" -m Jobbstyrning är aktiverat.\n" +" -n Läs kommandon men exekvera dem inte.\n" +" -o flaggnamn\n" +" Sätt variabeln som motsvarar flaggnamn:\n" +" allexport samma som -a\n" +" braceexpand samma som -B\n" +" emacs använd radredigeringsgränssnitt i emacsstil\n" +" errexit samma som -e\n" +" errtrace samma som -E\n" +" functrace samma som -T\n" +" hashall samma som -h\n" +" histexpand samma som -H\n" +" history aktivera kommandohistoria\n" +" ignoreeof skalet kommer inte avsluta vid läsning av " +"filslut\n" +" interactive-comments\n" +" tillÃ¥t kommentarer att förekomma i interaktiva\n" +" kommandon\n" +" keyword samma som -k\n" +" monitor samma som -m\n" +" noclobber samma som -C\n" +" noexec samma som -n\n" +" noglob samma som -f\n" +" nolog accepteras men ignoreras för närvarande\n" +" notify samma som -b\n" +" nounset samma som -u\n" +" onecmd samma som -t\n" +" physical samma som -P\n" +" pipefail returvärdet av ett rör är status pÃ¥ det sista\n" +" kommandot som avslutas med en status skild frÃ¥n\n" +" noll, eller nol om inget kommando avslutas med\n" +" en status skild frÃ¥n noll\n" +" posix ändra beteendet pÃ¥ bash där standardbeteendet\n" +" skiljer sig frÃ¥n Posixstandarden till att stämma\n" +" med standarden\n" +" privileged samma som -p\n" +" verbose samma som -v\n" +" vi använd radredigeringsgränssnitt i vi-stil\n" +" xtrace samma som -x\n" +" -p SlÃ¥s pÃ¥ när den verkliga och effektiva användar-id:n inte stämmer\n" +" överens. Avaktiverar bearbetning av $ENV-filen och import av\n" +" skalfunktioner. Att slÃ¥ av denna flagga fÃ¥r den effektiva uid " +"och\n" +" gid att sättas till den verkliga uid och gid.\n" +" -t Avsluta efter att ha läst och exekverat ett kommando.\n" +" -u Behandla osatta variabler som fel vid substitution.\n" +" -v Skriv skalindatarader allteftersom de läses.\n" +" -x Skriv kommandon och deras argument allteftersom de körs.\n" +" -B skalet kommer utföra klammerexpansion\n" +" -C Om satt tillÃ¥ts inte existerande normala filer att skrivas över\n" +" av omdirigering av utdata.\n" +" -E Om satt ärvs ERR-fällan av skalfunktioner.\n" +" -H Aktivera historiesubstituion i !-stil. Denna flagga är pÃ¥ som\n" +" standard när skalet är interaktivt.\n" +" -P Om satt följs inte symboliska länkar när kommandon sÃ¥som cd körs\n" +" som ändrar aktuell katalog.\n" +" -T Om satt ärvs DEBUG-fällan av skalfunktioner.\n" +" - Tilldela eventuella Ã¥terstÃ¥ende argument till " +"positionsparametrar.\n" +" Flaggorna -x och -v slÃ¥s av.\n" +" \n" +" Användning av + istället för - fÃ¥r dessa flaggor att slÃ¥s av. " +"Flaggorna\n" +" kan även användas vid uppstart av skalet. Den aktuella uppsättningen\n" +" flaggor finns i $-. De Ã¥terstÃ¥ende n ARGumenten är positionsparametrar\n" +" och tilldelas, i ordning, till $1, $2, .. $n. Om inga ARGument ges\n" +" skrivs alla skalvariabler ut.\n" +" \n" +" Slutstatus:\n" +" Returnerar framgÃ¥ng om inte en ogiltig flagga ges." + +#: builtins.c:1097 +msgid "" +"Unset values and attributes of shell variables and functions.\n" +" \n" +" For each NAME, remove the corresponding variable or function.\n" +" \n" +" Options:\n" +" -f\ttreat each NAME as a shell function\n" +" -v\ttreat each NAME as a shell variable\n" +" \n" +" Without options, unset first tries to unset a variable, and if that " +"fails,\n" +" tries to unset a function.\n" +" \n" +" Some variables cannot be unset; also see `readonly'.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or a NAME is read-only." +msgstr "" +"Ta bort värden och attribut pÃ¥ skalvariabler och -funktioner.\n" +" \n" +" Tag för varje NAMN bort motsvarande variabel eller funktion.\n" +" \n" +" Flaggor:\n" +" -f\tbehandla varje NAMN som en skalfunktion\n" +" -v\tbehandla varje NAMN som en skalvariabel\n" +" \n" +" Utan flaggor försöker unset först att ta bort en variabel, och, om det\n" +" misslyckas, försöker den ta bort en funktion.\n" +" \n" +" NÃ¥gra variabler kan inte tas bort, se även \"readonly\".\n" +" \n" +" Slutstatus:\n" +" Returnerar framgÃ¥ng om inte en ogiltig flagga ges eller NAMN endast är\n" +" läsbart." + +#: builtins.c:1117 +msgid "" +"Set export attribute for shell variables.\n" +" \n" +" Marks each NAME for automatic export to the environment of subsequently\n" +" executed commands. If VALUE is supplied, assign VALUE before " +"exporting.\n" +" \n" +" Options:\n" +" -f\trefer to shell functions\n" +" -n\tremove the export property from each NAME\n" +" -p\tdisplay a list of all exported variables and functions\n" +" \n" +" An argument of `--' disables further option processing.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or NAME is invalid." +msgstr "" +"Sätt exportattribut pÃ¥ skalvariabler.\n" +" \n" +" Markerar varje NAMN för automatisk export till miljön för senare\n" +" exekverade kommandon. Om VÄRDE anges tilldelas VÄRDE före export.\n" +" \n" +" Flaggor:\n" +" -f\treferera till skalfunktioner\n" +" -n\tta bort exportegenskapen frÃ¥n varje NAMN\n" +" -p\tvisa en lista av alla exporterade variabler och funktioner\n" +" \n" +" Ett argument \"--\" avslutar vidare flaggbearbetning.\n" +" \n" +" Slutstatus:\n" +" Returnerar framgÃ¥ng om inte en ogiltig flagga ges eller NAMN är ogiltigt." + +#: builtins.c:1136 +msgid "" +"Mark shell variables as unchangeable.\n" +" \n" +" Mark each NAME as read-only; the values of these NAMEs may not be\n" +" changed by subsequent assignment. If VALUE is supplied, assign VALUE\n" +" before marking as read-only.\n" +" \n" +" Options:\n" +" -a\trefer to indexed array variables\n" +" -A\trefer to associative array variables\n" +" -f\trefer to shell functions\n" +" -p\tdisplay a list of all readonly variables and functions\n" +" \n" +" An argument of `--' disables further option processing.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or NAME is invalid." +msgstr "" +"Markera skalvariabler som oföränderliga.\n" +" \n" +" Markera varje NAMN som oföränderligt. Värdena pÃ¥ dessa NAMN kan inte\n" +" ändras av senare tilldelningar. Om VÄRDE anges tilldelas VÄRDE före\n" +" variabeln markeras oföränderlig.\n" +" \n" +" Flaggor:\n" +" -a\treferera till indexerade vektorvariabler\n" +" -A\trefererar till assoicativa vektorvariabler\n" +" -f\treferara till skalfunktioner\n" +" -p\tvisa en lista över alla oföränderliga variabler och funktioner\n" +" \n" +" Ett argument \"--\" avslutar vidare flaggbearbetning.\n" +" \n" +" Slutstatus:\n" +" Returnerar framgÃ¥ng om inte en ogiltig flagga ges eller NAMN är ogiltigt." + +#: builtins.c:1157 +msgid "" +"Shift positional parameters.\n" +" \n" +" Rename the positional parameters $N+1,$N+2 ... to $1,$2 ... If N is\n" +" not given, it is assumed to be 1.\n" +" \n" +" Exit Status:\n" +" Returns success unless N is negative or greater than $#." +msgstr "" +"Skifta positionsparametrar.\n" +" \n" +" Byt namn pÃ¥ positionsparametrarna $N+1,$N+2 ... till $1,$2 ... Om N " +"inte\n" +" anges antas det vara 1.\n" +" \n" +" Slutstatus:\n" +" Returnerar framgÃ¥ng om inte N är negativt eller större än $#." + +#: builtins.c:1169 builtins.c:1184 +msgid "" +"Execute commands from a file in the current shell.\n" +" \n" +" Read and execute commands from FILENAME in the current shell. The\n" +" entries in $PATH are used to find the directory containing FILENAME.\n" +" If any ARGUMENTS are supplied, they become the positional parameters\n" +" when FILENAME is executed.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed in FILENAME; fails if\n" +" FILENAME cannot be read." +msgstr "" +"Exekvera kommandon frÃ¥n en fil i det aktuella skalet.\n" +" \n" +" Läs och exekvera kommandon frÃ¥n FILNAMN i det aktuella skalet. " +"Posterna\n" +" i $PATH används för att hitta katalogen som innehÃ¥ller FILNAMN. Om\n" +" nÃ¥got ARGUMENT ges blir de positionsparametrar när FILNAMN körs.\n" +" \n" +" Slutstatus:\n" +" Returnerar status pÃ¥ det sista kommandot som körs i FILNAMN, misslyckas\n" +" om FILNAMN inte kan läsas." + +#: builtins.c:1200 +msgid "" +"Suspend shell execution.\n" +" \n" +" Suspend the execution of this shell until it receives a SIGCONT signal.\n" +" Unless forced, login shells cannot be suspended.\n" +" \n" +" Options:\n" +" -f\tforce the suspend, even if the shell is a login shell\n" +" \n" +" Exit Status:\n" +" Returns success unless job control is not enabled or an error occurs." +msgstr "" +"Suspendera skalexekvering.\n" +" \n" +" Suspendera exekveringen av detta skal tills det fÃ¥r en SIGCONT-signal.\n" +" Om det inte framtvingas kan inloggningsskal inte suspenderas.\n" +" \n" +" Flaggor:\n" +" -f\tframtvinga suspendering, även om skalet är ett inloggningsskal\n" +" \n" +" Slutstatus:\n" +" Returnerar framgÃ¥ng om inte jobbstyrning inte är aktiverat eller ett " +"fel\n" +" inträffar." + +#: builtins.c:1216 +msgid "" +"Evaluate conditional expression.\n" +" \n" +" Exits with a status of 0 (true) or 1 (false) depending on\n" +" the evaluation of EXPR. Expressions may be unary or binary. Unary\n" +" expressions are often used to examine the status of a file. There\n" +" are string operators as well, and numeric comparison operators.\n" +" \n" +" File operators:\n" +" \n" +" -a FILE True if file exists.\n" +" -b FILE True if file is block special.\n" +" -c FILE True if file is character special.\n" +" -d FILE True if file is a directory.\n" +" -e FILE True if file exists.\n" +" -f FILE True if file exists and is a regular file.\n" +" -g FILE True if file is set-group-id.\n" +" -h FILE True if file is a symbolic link.\n" +" -L FILE True if file is a symbolic link.\n" +" -k FILE True if file has its `sticky' bit set.\n" +" -p FILE True if file is a named pipe.\n" +" -r FILE True if file is readable by you.\n" +" -s FILE True if file exists and is not empty.\n" +" -S FILE True if file is a socket.\n" +" -t FD True if FD is opened on a terminal.\n" +" -u FILE True if the file is set-user-id.\n" +" -w FILE True if the file is writable by you.\n" +" -x FILE True if the file is executable by you.\n" +" -O FILE True if the file is effectively owned by you.\n" +" -G FILE True if the file is effectively owned by your group.\n" +" -N FILE True if the file has been modified since it was last " +"read.\n" +" \n" +" FILE1 -nt FILE2 True if file1 is newer than file2 (according to\n" +" modification date).\n" +" \n" +" FILE1 -ot FILE2 True if file1 is older than file2.\n" +" \n" +" FILE1 -ef FILE2 True if file1 is a hard link to file2.\n" +" \n" +" String operators:\n" +" \n" +" -z STRING True if string is empty.\n" +" \n" +" -n STRING\n" +" STRING True if string is not empty.\n" +" \n" +" STRING1 = STRING2\n" +" True if the strings are equal.\n" +" STRING1 != STRING2\n" +" True if the strings are not equal.\n" +" STRING1 < STRING2\n" +" True if STRING1 sorts before STRING2 " +"lexicographically.\n" +" STRING1 > STRING2\n" +" True if STRING1 sorts after STRING2 lexicographically.\n" +" \n" +" Other operators:\n" +" \n" +" -o OPTION True if the shell option OPTION is enabled.\n" +" ! EXPR True if expr is false.\n" +" EXPR1 -a EXPR2 True if both expr1 AND expr2 are true.\n" +" EXPR1 -o EXPR2 True if either expr1 OR expr2 is true.\n" +" \n" +" arg1 OP arg2 Arithmetic tests. OP is one of -eq, -ne,\n" +" -lt, -le, -gt, or -ge.\n" +" \n" +" Arithmetic binary operators return true if ARG1 is equal, not-equal,\n" +" less-than, less-than-or-equal, greater-than, or greater-than-or-equal\n" +" than ARG2.\n" +" \n" +" Exit Status:\n" +" Returns success if EXPR evaluates to true; fails if EXPR evaluates to\n" +" false or an invalid argument is given." +msgstr "" +"Beräkna villkorligt uttryck.\n" +" \n" +" Avslutar med en status pÃ¥ 0 (sant) eller 1 (falskt) beroende pÃ¥\n" +" beräkningen av UTTR. Uttryck kan vara unära eller binära. Unära\n" +" uttryck är ofta till för att undersöka status för en fil. Det finns\n" +" stränoperatorer ocksÃ¥, och numeriska jämförelseoperatoer.\n" +" \n" +" Filoperatorer:\n" +" \n" +" -a FIL Sant om filen finns.\n" +" -b FIL Sant om filen är en blockspecialfil.\n" +" -c FIL Sant om filen är en teckenspecialfil.\n" +" -d FIL Sant om filen är en katalog.\n" +" -e FIL Sant om filen finns.\n" +" -f FIL Sant om filen finns, och är en normal fil.\n" +" -g FIL Sant om filen är sätt-gruppid.\n" +" -h FIL Sant om filen är en symbolisk länk.\n" +" -L FIL Sant om filen är en symbolisk länk.\n" +" -k FIL Sant om filen har \"fastbiten\" satt.\n" +" -p FIL Sant om filen är ett namngivet rör.\n" +" -r FIL Sant om filen kan läsas av dig.\n" +" -s FIL Sant om filen finns och inte är tom.\n" +" -S FIL Sant om filen är ett uttag (socket).\n" +" -t FB Sant om FB är öppnad mot en terminal.\n" +" -u FIL Sant om filen är sätt-användarid.\n" +" -w FIL Sant om filen är skrivbar av dig.\n" +" -x FIL Sant om filen är exekverbar av dig.\n" +" -O FIL Sant om filen ägs av din verksamma användare.\n" +" -G FIL Sant om filen ägs av din verksamma grupp.\n" +" -N FIL Sant om filen har ändrats sedan den sist lästes.\n" +" \n" +" FIL1 -nt FIL2 Sant om fil1 är nyare än fil2 (enligt\n" +" modifieringsdatum).\n" +" \n" +" FIL1 -ot FIL2 Sant om fil1 är äldre än fil2.\n" +" \n" +" FIL1 -ef FIL2 Sant om fil1 är en hÃ¥rd länk till fil2.\n" +" \n" +" Strängoperatorer:\n" +" \n" +" -z STRÄNG Sant om strängen är tom.\n" +" \n" +" -n STRÄNG\n" +" STRÄNG Sant om strängen inte är tom.\n" +" \n" +" STRÄNG1 = STRÄNG2\n" +" Sant om strängarna är lika.\n" +" STRÄNG1 != STRÄNG2\n" +" Sant om strängarna inte är lika.\n" +" STRÄNG1 < STRÄNG2\n" +" Sant om STRÄNG1 kommer före STRÄNG2 lexikografiskt.\n" +" STRÄNG1 > STRÄNG2\n" +" Sant om STRÄNG1 kommer efter STRÄNG2 lexikografiskt.\n" +" \n" +" Andra operatorer:\n" +" \n" +" -o FLAGGA Sant om skalflaggan FLAGGA är aktiv.\n" +" ! UTTR Sant om uttr är falskt.\n" +" UTTR1 -a UTTR2 Sant om bÃ¥de uttr1 OCH uttr2 är sanna.\n" +" UTTR1 -o UTTR2 Sant om antingen uttr1 ELLER uttr2 är sanna.\n" +" \n" +" arg1 OP arg2 Aritmetiska test. OP är en av -eq, -ne,\n" +" -lt, -le, -gt eller -ge.\n" +" \n" +" Aritmetiska binära operatorer returnerar sant om ARG1 är lika-med,\n" +" inte-lika-med, mindre-än, mindre-än-eller-lika-med, större-än eller\n" +" större-än-eller-lika-med ARG2.\n" +" \n" +" Slutstatus:\n" +" Returnerar framgÃ¥ng om UTTR beräknas till sant. Misslyckas ifall UTTR\n" +" beräknas till falskt eller ett ogiltigt argument ges." + +#: builtins.c:1292 +msgid "" +"Evaluate conditional expression.\n" +" \n" +" This is a synonym for the \"test\" builtin, but the last argument must\n" +" be a literal `]', to match the opening `['." +msgstr "" +"Beräkna villkorligt uttryck.\n" +" \n" +" Detta är en synonym till det inbyggda \"test\", men det sista " +"argumentet\n" +" mÃ¥ste vara en bokstavlig \"]\", för att matcha den inledande \"[\"." + +#: builtins.c:1301 +msgid "" +"Display process times.\n" +" \n" +" Prints the accumulated user and system times for the shell and all of " +"its\n" +" child processes.\n" +" \n" +" Exit Status:\n" +" Always succeeds." +msgstr "" +"Visa processtider.\n" +" \n" +" Skriver ut den sammanlagda användar- och systemtiden för skalet och " +"alla\n" +" dess barnprocesser.\n" +" \n" +" Slutstatus:\n" +" Lyckas alltid." + +#: builtins.c:1313 +msgid "" +"Trap signals and other events.\n" +" \n" +" Defines and activates handlers to be run when the shell receives " +"signals\n" +" or other conditions.\n" +" \n" +" ARG is a command to be read and executed when the shell receives the\n" +" signal(s) SIGNAL_SPEC. If ARG is absent (and a single SIGNAL_SPEC\n" +" is supplied) or `-', each specified signal is reset to its original\n" +" value. If ARG is the null string each SIGNAL_SPEC is ignored by the\n" +" shell and by the commands it invokes.\n" +" \n" +" If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell. " +"If\n" +" a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command.\n" +" \n" +" If no arguments are supplied, trap prints the list of commands " +"associated\n" +" with each signal.\n" +" \n" +" Options:\n" +" -l\tprint a list of signal names and their corresponding numbers\n" +" -p\tdisplay the trap commands associated with each SIGNAL_SPEC\n" +" \n" +" Each SIGNAL_SPEC is either a signal name in or a signal " +"number.\n" +" Signal names are case insensitive and the SIG prefix is optional. A\n" +" signal may be sent to the shell with \"kill -signal $$\".\n" +" \n" +" Exit Status:\n" +" Returns success unless a SIGSPEC is invalid or an invalid option is " +"given." +msgstr "" +"FÃ¥nga signaler och andra händelser.\n" +" \n" +" Definierar och aktiverar hanterare som skall köras när skalet tar emot\n" +" signaler eller andra omständigheter.\n" +" \n" +" ARG är ett kommando som skall läsas och exekveras när skalet tar emot\n" +" signalen SIGNALSPEC. Om ARG inte anges (och en ensam SIGNALSPEC ges)\n" +" eller \"-\" Ã¥terställs varje angiven signal till sitt orginalvärde. Om\n" +" ARG är den tomma strängen ingoreras varje SIGNALSPEC av skalet och av\n" +" kommandon det startar.\n" +" \n" +" Om en SIGNALSPEC är EXIT (0) exekveras ARG vid avslut frÃ¥n skalet. Om\n" +" en SIGNALSPEC är DEBUG exekveras ARG före varje enkelt kommando.\n" +" \n" +" Om inga argument ges skriver trap listan av kommandon som hör till " +"varje\n" +" signal.\n" +" \n" +" Flaggor:\n" +" -l\tskriv en lista av signalnamn och deras motsvarande nummer\n" +" -p\tvisa trap-kommandona associerade med varje SIGNALSPEC\n" +" \n" +" Varje SIGNALSPEC är antingen ett signalnamn i eller ett\n" +" signalnummer. Signalnamn är skiftlägesokänsliga och SIG-prefixet är\n" +" frivilligt. En signal kan skickas till skalet med \"kill -signal $$\".\n" +" \n" +" Slutstatus:\n" +" Returnerar framgÃ¥ng om inte en SIGSPEC är ogiltig eller en ogiltig " +"flagga\n" +" ges." + +#: builtins.c:1345 +msgid "" +"Display information about command type.\n" +" \n" +" For each NAME, indicate how it would be interpreted if used as a\n" +" command name.\n" +" \n" +" Options:\n" +" -a\tdisplay all locations containing an executable named NAME;\n" +" \tincludes aliases, builtins, and functions, if and only if\n" +" \tthe `-p' option is not also used\n" +" -f\tsuppress shell function lookup\n" +" -P\tforce a PATH search for each NAME, even if it is an alias,\n" +" \tbuiltin, or function, and returns the name of the disk file\n" +" \tthat would be executed\n" +" -p\treturns either the name of the disk file that would be executed,\n" +" \tor nothing if `type -t NAME' would not return `file'.\n" +" -t\toutput a single word which is one of `alias', `keyword',\n" +" \t`function', `builtin', `file' or `', if NAME is an alias, shell\n" +" \treserved word, shell function, shell builtin, disk file, or not\n" +" \tfound, respectively\n" +" \n" +" Arguments:\n" +" NAME\tCommand name to be interpreted.\n" +" \n" +" Exit Status:\n" +" Returns success if all of the NAMEs are found; fails if any are not " +"found." +msgstr "" +"Visa information om kommandotyper.\n" +" \n" +" Indikera för varje NAMN hur det skulle tolkats om det användes som ett\n" +" kommandonamn.\n" +" \n" +" Flaggor:\n" +" -a\tvisa alla platser som innehÃ¥ller ett körbart program med\n" +" \tnamnet NAMN, inklusive alias, inbyggda och funktioner, om och endast\n" +" \tom flaggan \"-p\" inte ocksÃ¥ används\n" +" -f\tutelämna uppslagning av skalfunktioner\n" +" -P\tframtvinga en PATH-sökning för varje NAMN, även om det är ett\n" +" \talias, inbyggt eller funktion, och returnera namnet pÃ¥ diskfilen som\n" +" \tskulle blivit exekverad\n" +" -p\treturnerar antingen namnet pÃ¥ diskfilen som skulle exekverats,\n" +" \teller ingenting om \"type -t NAMN\" inte skulle returnerat \"file\".\n" +" -t\tskriv ut ett ensamt ord som är ett av \"alias\", \"keyword\",\n" +" \t\"function\", \"builtin\", \"file\" eller \"\", om NAMN är ett alias, " +"ett\n" +" \treserverat ord i skalet, en skalfunktion, inbyggt i skalet, en " +"diskfil\n" +" \trespektive inte finns\n" +" \n" +" Argument:\n" +" NAMN\tKomandonamn som skall tolkas.\n" +" \n" +" Slutstatus:\n" +" Returnerar framgÃ¥ng om alla NAMNen finns, misslyckas om nÃ¥got inte finns." + +#: builtins.c:1376 +msgid "" +"Modify shell resource limits.\n" +" \n" +" Provides control over the resources available to the shell and " +"processes\n" +" it creates, on systems that allow such control.\n" +" \n" +" Options:\n" +" -S\tuse the `soft' resource limit\n" +" -H\tuse the `hard' resource limit\n" +" -a\tall current limits are reported\n" +" -b\tthe socket buffer size\n" +" -c\tthe maximum size of core files created\n" +" -d\tthe maximum size of a process's data segment\n" +" -e\tthe maximum scheduling priority (`nice')\n" +" -f\tthe maximum size of files written by the shell and its children\n" +" -i\tthe maximum number of pending signals\n" +" -l\tthe maximum size a process may lock into memory\n" +" -m\tthe maximum resident set size\n" +" -n\tthe maximum number of open file descriptors\n" +" -p\tthe pipe buffer size\n" +" -q\tthe maximum number of bytes in POSIX message queues\n" +" -r\tthe maximum real-time scheduling priority\n" +" -s\tthe maximum stack size\n" +" -t\tthe maximum amount of cpu time in seconds\n" +" -u\tthe maximum number of user processes\n" +" -v\tthe size of virtual memory\n" +" -x\tthe maximum number of file locks\n" +" \n" +" If LIMIT is given, it is the new value of the specified resource; the\n" +" special LIMIT values `soft', `hard', and `unlimited' stand for the\n" +" current soft limit, the current hard limit, and no limit, respectively.\n" +" Otherwise, the current value of the specified resource is printed. If\n" +" no option is given, then -f is assumed.\n" +" \n" +" Values are in 1024-byte increments, except for -t, which is in seconds,\n" +" -p, which is in increments of 512 bytes, and -u, which is an unscaled\n" +" number of processes.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" +"Modifiera skalresursgränser.\n" +" \n" +" Ger kontroll över resurserna som är tillgängliga till skalet och " +"processer\n" +" det skapar, pÃ¥ system som möjliggör sÃ¥dan styrning.\n" +" \n" +" Flaggor:\n" +" -S\tanvänd den \"mjuka\" resursgränsen\n" +" -H\tanvänd den \"hÃ¥rda\" resursgränsen\n" +" -a\talla aktuella gränser rapporteras\n" +" -b\tstorleken pÃ¥ uttagsbuffertar\n" +" -c\tden maximala storleken pÃ¥ minnesutskrifter som skapas\n" +" -d\tden maximala storleken pÃ¥ en process datasegmen\n" +" -e\tden maximala schemaläggningsprioriteten (\"nice\")\n" +" -f\tden maximala storleken pÃ¥ filer som skrivs av skalet och dess\n" +" \tbarn\n" +" -i\tdet maximala antalet väntande signaler\n" +" -l\tden maximala storleken en process kan lÃ¥sa i minnet\n" +" -m\tden maximala residenta mängdstorleken\n" +" -n\tdet maximala antalet öppna filbeskrivare\n" +" -p\trörbuffertstorleken\n" +" -q\tdet maximala antalet byte i POSIX-meddelandeköer\n" +" -r\tden maximala realtidsschemaläggningsprioriteten\n" +" -s\tden maximala stackstorleken\n" +" -t\tden maximala mängden cpu-tid i sekunder\n" +" -u\tdet maximala antalet användarprocesser\n" +" -v\tstorleken pÃ¥ det virtuella minnet\n" +" -x\tdet maximala antalet fillÃ¥s\n" +" \n" +" Om GRÄNS anges är det ett nytt värde för den specificerade resursen; de\n" +" speciella GRÄNS-värdena \"soft\", \"hard\" och \"unlimited\" stÃ¥r för " +"den\n" +" aktuella mjuka gränsen, den aktuella hÃ¥rda grÃ¥nsen respektive inge " +"gräns.\n" +" Annars skrivs det aktuella värdet pÃ¥ den specificerade resursen. Om\n" +" ingen flagga ges antas -f.\n" +" \n" +" Värden är i 1024-bytesteg, utom för -t som är i sekunder, -p som är i " +"steg\n" +" pÃ¥ 512 byte och -u som är ett antal processer utan nÃ¥gon skalning.\n" +" \n" +" Slutstatus:\n" +" Returnerar framgÃ¥ng om inte en ogiltig flagga anges eller ett fel " +"inträffar." + +#: builtins.c:1421 +msgid "" +"Display or set file mode mask.\n" +" \n" +" Sets the user file-creation mask to MODE. If MODE is omitted, prints\n" +" the current value of the mask.\n" +" \n" +" If MODE begins with a digit, it is interpreted as an octal number;\n" +" otherwise it is a symbolic mode string like that accepted by chmod(1).\n" +" \n" +" Options:\n" +" -p\tif MODE is omitted, output in a form that may be reused as input\n" +" -S\tmakes the output symbolic; otherwise an octal number is output\n" +" \n" +" Exit Status:\n" +" Returns success unless MODE is invalid or an invalid option is given." +msgstr "" +"Visa eller sätt filrättighetsmask.\n" +" \n" +" Sätter användarens filskapningsmask till RÄTTIGHETER. Om RÄTTIGHETER\n" +" utelämnas skrivs det aktuella värdet pÃ¥ masken.\n" +" \n" +" Om RÄTTIGHETER börjar med en siffra tolkas det som ett oktalt tal, " +"annars\n" +" är det en symbolisk rättighetssträng som den som tas av chmod(1).\n" +" \n" +" Flaggor:\n" +" -p\tom RÄTTIGHETER utelämnas, skriv ut i en form som kan\n" +" \tÃ¥teranvändas som indata\n" +" -S\tgör utmatningen symbolisk, annars används oktala tal\n" +" \n" +" Slutstatus:\n" +" Returnerar framgÃ¥ng om inte RÄTTIGHETER är ogiltig eller en ogiltig " +"flagga\n" +" ges." + +#: builtins.c:1441 +msgid "" +"Wait for job completion and return exit status.\n" +" \n" +" Waits for the process identified by ID, which may be a process ID or a\n" +" job specification, and reports its termination status. If ID is not\n" +" given, waits for all currently active child processes, and the return\n" +" status is zero. If ID is a a job specification, waits for all " +"processes\n" +" in the job's pipeline.\n" +" \n" +" Exit Status:\n" +" Returns the status of ID; fails if ID is invalid or an invalid option " +"is\n" +" given." +msgstr "" +"Vänta pÃ¥ att jobb blir färdiga och returnerar slutstatus.\n" +" \n" +" Väntar pÃ¥ processen som identifieras av ID, som kan vara en process-id\n" +" eller en jobbspecifikation, och rapportera dess avslutningsstatus. Om\n" +" ID inte ges, vänta pÃ¥ alla nu körande barnprocesser, och returstatus är\n" +" noll. Om ID är en jobbspecifikation, vänta pÃ¥ alla processer i det\n" +" jobbets rör.\n" +" \n" +" Slutstatus:\n" +" Returnerar status pÃ¥ ID, misslyckas ifall ID är ogiltig eller en " +"ogiltig\n" +" flagga ges." + +#: builtins.c:1459 +msgid "" +"Wait for process completion and return exit status.\n" +" \n" +" Waits for the specified process and reports its termination status. If\n" +" PID is not given, all currently active child processes are waited for,\n" +" and the return code is zero. PID must be a process ID.\n" +" \n" +" Exit Status:\n" +" Returns the status of ID; fails if ID is invalid or an invalid option " +"is\n" +" given." +msgstr "" +"Vänta pÃ¥ att en process blir färdig och returnerar slutstatus.\n" +" \n" +" Väntar pÃ¥ den angivna processen och rapportera dess avslutningsstatus. " +"Om\n" +" PID inte ges, vänta pÃ¥ alla nu körande barnprocesser, och returstatus " +"är\n" +" noll. PID mÃ¥ste vara en process-id.\n" +" \n" +" Slutstatus:\n" +" Returnerar status pÃ¥ ID, misslyckas ifall ID är ogiltig eller en " +"ogiltig\n" +" flagga ges." + +#: builtins.c:1474 +msgid "" +"Execute commands for each member in a list.\n" +" \n" +" The `for' loop executes a sequence of commands for each member in a\n" +" list of items. If `in WORDS ...;' is not present, then `in \"$@\"' is\n" +" assumed. For each element in WORDS, NAME is set to that element, and\n" +" the COMMANDS are executed.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"Exekvera kommandon för varje medlem i en lista.\n" +" \n" +" \"for\"-slingan exekverar en sekvens av kommandon för varje medlem i en\n" +" lista av element. Om \"in ORD ...;\" inte är med antas 'in \"$@\"'. " +"För\n" +" varje element i ORD sätts NAMN till det elementet, och KOMMANDON\n" +" exekveras.\n" +" \n" +" Slutstatus:\n" +" Returnerar status för det sist exekverade kommandot." + +#: builtins.c:1488 +msgid "" +"Arithmetic for loop.\n" +" \n" +" Equivalent to\n" +" \t(( EXP1 ))\n" +" \twhile (( EXP2 )); do\n" +" \t\tCOMMANDS\n" +" \t\t(( EXP3 ))\n" +" \tdone\n" +" EXP1, EXP2, and EXP3 are arithmetic expressions. If any expression is\n" +" omitted, it behaves as if it evaluates to 1.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"Aritmetisk for-slinga.\n" +" \n" +" Likvärdigt med\n" +" \t(( UTR1 ))\n" +" \twhile (( UTR2 )); do\n" +" \t\tKOMMANDON\n" +" \t\t(( UTR3 ))\n" +" \tdone\n" +" UTR1, UTR2 och UTR3 är aritmetiska uttryck. Om nÃ¥got uttryck utelämnas\n" +" beter det sig som om det beräknas till 1.\n" +" \n" +" Slutstatus:\n" +" Returnerar statusen frÃ¥n det sist exekverade kommandot." + +#: builtins.c:1506 +msgid "" +"Select words from a list and execute commands.\n" +" \n" +" The WORDS are expanded, generating a list of words. The\n" +" set of expanded words is printed on the standard error, each\n" +" preceded by a number. If `in WORDS' is not present, `in \"$@\"'\n" +" is assumed. The PS3 prompt is then displayed and a line read\n" +" from the standard input. If the line consists of the number\n" +" corresponding to one of the displayed words, then NAME is set\n" +" to that word. If the line is empty, WORDS and the prompt are\n" +" redisplayed. If EOF is read, the command completes. Any other\n" +" value read causes NAME to be set to null. The line read is saved\n" +" in the variable REPLY. COMMANDS are executed after each selection\n" +" until a break command is executed.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"Välj ord frÃ¥n en lista och exekvera kommandon.\n" +" \n" +" ORD expanderas och genererar en lista med ord. Mängden av\n" +" expanderade ord skrivs pÃ¥ standard fel, vart och ett föregÃ¥nget\n" +" av ett tal. Om `in ORD' inte är med antas 'in \"$@\"'. Prompten\n" +" PS3 skrivs sedan och en rad läses frÃ¥n standard in. OM raden\n" +" bestÃ¥r av numret motsvarande en av de visade orden sätts NAMN\n" +" till det ordet. Om raden är tom visas ORD och prompten igen.\n" +" Om filslut läses avslutar kommandot. Alla andra värden fÃ¥r NAMN\n" +" att bli satt till tomt. Den inlästa raden sparas i variabeln\n" +" REPLY. KOMMANDON exekveras efter varje val tills ett\n" +" break-kommando exekveras.\n" +" \n" +" Sluttatus:\n" +" Returnerar statusen frÃ¥n det sist exekverade kommandot." + +#: builtins.c:1527 +msgid "" +"Report time consumed by pipeline's execution.\n" +" \n" +" Execute PIPELINE and print a summary of the real time, user CPU time,\n" +" and system CPU time spent executing PIPELINE when it terminates.\n" +" \n" +" Options:\n" +" -p\tprint the timing summary in the portable Posix format\n" +" \n" +" The value of the TIMEFORMAT variable is used as the output format.\n" +" \n" +" Exit Status:\n" +" The return status is the return status of PIPELINE." +msgstr "" +"Rapportera tiden som används av rörets exekvering.\n" +" \n" +" Exekvera RÖR och skriv en sammanfattning av den verkliga tiden,\n" +" användar-CPU-tiden och system-CPU-tiden som använts för att exekvera\n" +" RÖRet när det avslutar.\n" +" \n" +" Flaggor:\n" +" -p\tskriv tidssammanfattningen i det portabla Posix-formatet\n" +" \n" +" Värdet pÃ¥ variablen TIMEFORMAT används som utmatningsformat.\n" +" \n" +" Slutstatus:\n" +" Returstatusen är returstatusen frÃ¥n RÖR." + +#: builtins.c:1544 +msgid "" +"Execute commands based on pattern matching.\n" +" \n" +" Selectively execute COMMANDS based upon WORD matching PATTERN. The\n" +" `|' is used to separate multiple patterns.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"Exekvera kommandon baserat pÃ¥ mönstermatchning.\n" +" \n" +" Välj att exekvera KOMMANDON baserat pÃ¥ om ORD matchar MÖNSTER. Ett\n" +" \"|\" används för att separera flera mönster.\n" +" \n" +" Slutstatus:\n" +" Returnerar statusen frÃ¥n det sist exekverade kommandot." + +#: builtins.c:1556 +msgid "" +"Execute commands based on conditional.\n" +" \n" +" The `if COMMANDS' list is executed. If its exit status is zero, then " +"the\n" +" `then COMMANDS' list is executed. Otherwise, each `elif COMMANDS' list " +"is\n" +" executed in turn, and if its exit status is zero, the corresponding\n" +" `then COMMANDS' list is executed and the if command completes. " +"Otherwise,\n" +" the `else COMMANDS' list is executed, if present. The exit status of " +"the\n" +" entire construct is the exit status of the last command executed, or " +"zero\n" +" if no condition tested true.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"Exekvera kommndon baserat pÃ¥ ett villkor.\n" +" \n" +" Listan \"if KOMMANDON\" exekveras. Om des slutstatus är noll sÃ¥ " +"exekveras\n" +" listan \"then COMMANDS\". Annars exekveras varje lista \"elif KOMMANDON" +"\"\n" +" i tur och ordning, och om dess slutstatus är noll exekveras motsvarande\n" +" lista \"then COMMANDS\" och if-kommandot avslutar. Annars exekveras " +"listan\n" +" \"else COMMANDS\" om den finns. Slutstatus av hela konstruktionen är\n" +" slutstatusen pÃ¥ det sist exekverade kommandot, eller noll om inget\n" +" villkor returnerade sant.\n" +" \n" +" Slutstatus:\n" +" Returnerar status frÃ¥n det sist exekverade kommandot." + +#: builtins.c:1573 +msgid "" +"Execute commands as long as a test succeeds.\n" +" \n" +" Expand and execute COMMANDS as long as the final command in the\n" +" `while' COMMANDS has an exit status of zero.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"Exekvera kommandon sÃ¥ länge ett test lyckas.\n" +" \n" +" Expandera och exekvera KOMMANDON sÃ¥ länge det sista kommandont i\n" +" \"while\"-KOMMANDONa har en sluttstatus pÃ¥ noll.\n" +" \n" +" Slutstatus:\n" +" Returnerar statusen frÃ¥n det sist exekverade kommandot." + +#: builtins.c:1585 +msgid "" +"Execute commands as long as a test does not succeed.\n" +" \n" +" Expand and execute COMMANDS as long as the final command in the\n" +" `until' COMMANDS has an exit status which is not zero.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"Exekvera kommandon sÃ¥ länge ett test inte lyckas.\n" +" \n" +" Expandera och exekvera KOMMANDON sÃ¥ länge det sista kommandot i\n" +" \"until\"-KOMMANDONa har en slutstatus som inte är noll.\n" +" \n" +" Slutstatus:\n" +" Returnerar statusen frÃ¥n det sist exekverade kommandot." + +#: builtins.c:1597 +msgid "" +"Define shell function.\n" +" \n" +" Create a shell function named NAME. When invoked as a simple command,\n" +" NAME runs COMMANDs in the calling shell's context. When NAME is " +"invoked,\n" +" the arguments are passed to the function as $1...$n, and the function's\n" +" name is in $FUNCNAME.\n" +" \n" +" Exit Status:\n" +" Returns success unless NAME is readonly." +msgstr "" +"Definiera en skalfunktion.\n" +" \n" +" Skapa en skalfunktion med namnet NAMN. När den anropas som ett enkelt\n" +" kommando kör NAMN KOMMANDON i det anropande skalets kontext. När NAMN\n" +" anropas skickas argumenten till funktionen som $1...$n och funktionens\n" +" namn finns i $FUNCNAME.\n" +" \n" +" Slutstatus:\n" +" Returnerar framgÃ¥ng om inte NAMN endast är läsbart." + +#: builtins.c:1611 +msgid "" +"Group commands as a unit.\n" +" \n" +" Run a set of commands in a group. This is one way to redirect an\n" +" entire set of commands.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"Gruppera kommandon som en enhet.\n" +" \n" +" Kör ett antal kommandon i en grupp. Detta är ett sätt at omdirigera\n" +" en hel mängd kommandon.\n" +" \n" +" Slutstatus:\n" +" Returnerar stutusen frÃ¥n det sist exekverade kommandot." + +#: builtins.c:1623 +msgid "" +"Resume job in foreground.\n" +" \n" +" Equivalent to the JOB_SPEC argument to the `fg' command. Resume a\n" +" stopped or background job. JOB_SPEC can specify either a job name\n" +" or a job number. Following JOB_SPEC with a `&' places the job in\n" +" the background, as if the job specification had been supplied as an\n" +" argument to `bg'.\n" +" \n" +" Exit Status:\n" +" Returns the status of the resumed job." +msgstr "" +"Återuppta jobb i förgrunden.\n" +" \n" +" Likvärdigt med JOBBSPEC-argumentet till kommandot \"fg\". Återuppta\n" +" ett stoppat eller bakgrundsjobb. JOBBSPEC kan ange antingen ett\n" +" jobbnamn eller ett jobbnummer. Om JOBBSPEC följs av ett \"&\" placeras\n" +" jobbet i bakgrunden, som om jobbspecifikationen hade givits som ett\n" +" argument till \"bg\".\n" +" \n" +" Slutstatus:\n" +" Returnerar statusen pÃ¥ det Ã¥terupptagna jobbet." + +#: builtins.c:1638 +msgid "" +"Evaluate arithmetic expression.\n" +" \n" +" The EXPRESSION is evaluated according to the rules for arithmetic\n" +" evaluation. Equivalent to \"let EXPRESSION\".\n" +" \n" +" Exit Status:\n" +" Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise." +msgstr "" +"Beräkna aritmetiskt uttryck.\n" +" \n" +" UTTRYCKet beräknas enligt reglerna för aritmetisk beräkning.\n" +" Likvärdigt med \"let UTTRYCK\".\n" +" \n" +" Slutstatus:\n" +" Returnerar 1 om UTTRYCK beräknas till 0, returnerar 0 annars." + +#: builtins.c:1650 +msgid "" +"Execute conditional command.\n" +" \n" +" Returns a status of 0 or 1 depending on the evaluation of the " +"conditional\n" +" expression EXPRESSION. Expressions are composed of the same primaries " +"used\n" +" by the `test' builtin, and may be combined using the following " +"operators:\n" +" \n" +" ( EXPRESSION )\tReturns the value of EXPRESSION\n" +" ! EXPRESSION\t\tTrue if EXPRESSION is false; else false\n" +" EXPR1 && EXPR2\tTrue if both EXPR1 and EXPR2 are true; else false\n" +" EXPR1 || EXPR2\tTrue if either EXPR1 or EXPR2 is true; else false\n" +" \n" +" When the `==' and `!=' operators are used, the string to the right of\n" +" the operator is used as a pattern and pattern matching is performed.\n" +" When the `=~' operator is used, the string to the right of the operator\n" +" is matched as a regular expression.\n" +" \n" +" The && and || operators do not evaluate EXPR2 if EXPR1 is sufficient to\n" +" determine the expression's value.\n" +" \n" +" Exit Status:\n" +" 0 or 1 depending on value of EXPRESSION." +msgstr "" +"Kör ett villkorligt kommando.\n" +" \n" +" Returnerar en status av 0 eller 1 beroende pÃ¥ evalueringen av det\n" +" villkorliga uttrycket UTTRYCK. Uttryck är sammansatta av samma " +"primitiver\n" +" som används av det inbyggda \"test\", och kan kombineras med följande\n" +" operatorer:\n" +" \n" +" ( UTTRYCK )\tReturnerar värdet pÃ¥ UTTRYCK\n" +" ! UTTRYCK\t\tSant om UTTRYCK är falskt, annars falskt\n" +" UTTR1 && UTTR2\tSant om bÃ¥de UTTR1 och UTTR2 är sanna, annars falskt\n" +" UTTR1 || UTTR2\tSant om antingen UTTR1 eller UTTR2 är sant, annars\n" +" falskt\n" +" \n" +" När operatorerna \"==\" och \"!=\" används används strängen till höger " +"om\n" +" som ett mönster och mönstermatchning utförs. När operatorn \"=~\" " +"används\n" +" matchas strängen till höger om operatorn som ett reguljärt uttryck.\n" +" \n" +" Operatorerna && och || beräknar inte UTTR2 om UTTR1 är tillräckligt för\n" +" att avgöra uttryckets värde.\n" +" \n" +" Slutstatus:\n" +" 0 eller 1 beroende pÃ¥ värdet av UTTRYCK." + +#: builtins.c:1676 +msgid "" +"Common shell variable names and usage.\n" +" \n" +" BASH_VERSION\tVersion information for this Bash.\n" +" CDPATH\tA colon-separated list of directories to search\n" +" \t\tfor directories given as arguments to `cd'.\n" +" GLOBIGNORE\tA colon-separated list of patterns describing filenames to\n" +" \t\tbe ignored by pathname expansion.\n" +" HISTFILE\tThe name of the file where your command history is stored.\n" +" HISTFILESIZE\tThe maximum number of lines this file can contain.\n" +" HISTSIZE\tThe maximum number of history lines that a running\n" +" \t\tshell can access.\n" +" HOME\tThe complete pathname to your login directory.\n" +" HOSTNAME\tThe name of the current host.\n" +" HOSTTYPE\tThe type of CPU this version of Bash is running under.\n" +" IGNOREEOF\tControls the action of the shell on receipt of an EOF\n" +" \t\tcharacter as the sole input. If set, then the value\n" +" \t\tof it is the number of EOF characters that can be seen\n" +" \t\tin a row on an empty line before the shell will exit\n" +" \t\t(default 10). When unset, EOF signifies the end of input.\n" +" MACHTYPE\tA string describing the current system Bash is running on.\n" +" MAILCHECK\tHow often, in seconds, Bash checks for new mail.\n" +" MAILPATH\tA colon-separated list of filenames which Bash checks\n" +" \t\tfor new mail.\n" +" OSTYPE\tThe version of Unix this version of Bash is running on.\n" +" PATH\tA colon-separated list of directories to search when\n" +" \t\tlooking for commands.\n" +" PROMPT_COMMAND\tA command to be executed before the printing of each\n" +" \t\tprimary prompt.\n" +" PS1\t\tThe primary prompt string.\n" +" PS2\t\tThe secondary prompt string.\n" +" PWD\t\tThe full pathname of the current directory.\n" +" SHELLOPTS\tA colon-separated list of enabled shell options.\n" +" TERM\tThe name of the current terminal type.\n" +" TIMEFORMAT\tThe output format for timing statistics displayed by the\n" +" \t\t`time' reserved word.\n" +" auto_resume\tNon-null means a command word appearing on a line by\n" +" \t\titself is first looked for in the list of currently\n" +" \t\tstopped jobs. If found there, that job is foregrounded.\n" +" \t\tA value of `exact' means that the command word must\n" +" \t\texactly match a command in the list of stopped jobs. A\n" +" \t\tvalue of `substring' means that the command word must\n" +" \t\tmatch a substring of the job. Any other value means that\n" +" \t\tthe command must be a prefix of a stopped job.\n" +" histchars\tCharacters controlling history expansion and quick\n" +" \t\tsubstitution. The first character is the history\n" +" \t\tsubstitution character, usually `!'. The second is\n" +" \t\tthe `quick substitution' character, usually `^'. The\n" +" \t\tthird is the `history comment' character, usually `#'.\n" +" HISTIGNORE\tA colon-separated list of patterns used to decide which\n" +" \t\tcommands should be saved on the history list.\n" +msgstr "" +"Vanliga skalvariablers namn och användning.\n" +" \n" +" BASH_VERSION\tVersionsinformation för denna Bash.\n" +" CDPATH\tEn kolonseparerad lista av kataloger att söka i efter\n" +" \t\tkataloger givna som argument till \"cd\".\n" +" GLOBIGNORE\tEn kolonseparerad lista av mönster som beskriver filnamn\n" +" \t\tatt ignorera vid söknamnsexpansion.\n" +" HISTFILE\tNamnet pÃ¥ filen där din kommandohistorik sparas.\n" +" HISTFILESIZE\tDet maximala antalet rade denna fil kan innehÃ¥lla.\n" +" HISTSIZE\tDet maximala antalet historierade ett körande skal kan\n" +" \t\tkomma Ã¥t.\n" +" HOME\tDen fullständiga sökvägen till din inloggningskatalog.\n" +" HOSTNAME\tNamnet pÃ¥ den aktuella värden.\n" +" HOSTTYPE\tTyp av CPU denna version av Bash kör under.\n" +" IGNOREEOF\tStyr skalets Ã¥tgärd när det tar emot ett filslutstecken\n" +" \t\tsom enda indata. Om den är satt är dess värde det antal\n" +" \t\tfilslutstecken som kan ses i rad pÃ¥ en tom rad innan\n" +" \t\tskalet avslutar (10 som standard). När den inte är satt\n" +" \t\tbetyder filslut slut pÃ¥ indata.\n" +" MACHTYPE\tEn sträng som bexkriver det aktuella systemet Bash kör pÃ¥.\n" +" MAILCHECK\tHur ofta, i sekunder, Bash tittar efter ny post.\n" +" MAILPATH\tEn kolonseparerad lista av filnamn som Bash tittar efter\n" +" \t\tny post i.\n" +" OSTYPE\tDen version av Unix denna version av Bash kör pÃ¥.\n" +" PATH\tEn kolonseparerad lista av kataloger att söka i när\n" +" \t\tkommandon skall letas upp.\n" +" PROMPT_COMMAND\tEtt kommando att köra före utskriften av varje\n" +" \t\tprimär prompt.\n" +" PS1\t\tDen primära promptsträngen.\n" +" PS2\t\tDen sekundära promptsträngen.\n" +" PWD\t\tDet fullständiga söknamnet till den aktuella katalogen.\n" +" SHELLOPTS\tEn kolonseparerad lista av aktiverade skalflaggor.\n" +" TERM\tNamnet pÃ¥ den aktuella terminaltypen.\n" +" TIMEFORMAT\tUtmatningsformatet för tidsstatistik som visas av det\n" +" \t\treserverade ordet \"time\".\n" +" auto_resume\tOm inte tomt betyder att ett kommandoord som förekommer\n" +" \t\tensamt pÃ¥ en rad först letas efter i listan av för tillfället\n" +" \t\tstoppade jobb. Om det hittas där läggs det jobbet i\n" +" \t\tförgrunden. Ett värde av \"exact\" betyder att kommandoordet\n" +" \t\texakt mÃ¥ste stämma med ett kommando i listan över stoppade\n" +" \t\tjobb. Ett värde av \"substring\" betyder att kommandoordet\n" +" \t\tmÃ¥ste stämma med en delsträng av jobbet. Alla andra värden\n" +" \t\tbetyder att kommandot mÃ¥ste vara ett prefix av ett stoppat\n" +" \t\tjobb.\n" +" histchars\tTecken som styr historieexpansion och snabbsubstitution.\n" +" \t\tDet första tecknet är tecknet för historiesubstitution,\n" +" \t\tvanligen \"!\". Det andra tecknet är tecknet för \"snabb\n" +" \t\tsubstitution\", vanligen \"^\". Det tredje är tecknet för\n" +" \t\t\"historiekommentar\", vanligen \"#\".\n" +" HISTIGNORE\tEn kolonseparerad lista av mönster som används för att\n" +" \t\tbestämma vilka kommandon som skall sparas i historielistan.\n" + +#: builtins.c:1733 +msgid "" +"Add directories to stack.\n" +" \n" +" Adds a directory to the top of the directory stack, or rotates\n" +" the stack, making the new top of the stack the current working\n" +" directory. With no arguments, exchanges the top two directories.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when adding\n" +" \tdirectories to the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the left of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" -N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the right of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" dir\tAdds DIR to the directory stack at the top, making it the\n" +" \tnew current working directory.\n" +" \n" +" The `dirs' builtin displays the directory stack.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid argument is supplied or the directory\n" +" change fails." +msgstr "" +"Lägg till kataloger pÃ¥ stacken.\n" +" \n" +" Lägger till en katalog till toppen av katalogstacken, eller roterar\n" +" stacken, och gör den nya toppen av stacken till den aktuella\n" +" arbetskatalogen. Utan argument byts de tvÃ¥ toppkatalogerna.\n" +" \n" +" Flaggor:\n" +" -n\tUndertryck det normala bytet av katalog när kataloger\n" +" \tläggs till pÃ¥ stacken, sÃ¥ att endast stacken ändras.\n" +" \n" +" Argument:\n" +" +N\tRotera stacken sÃ¥ att den N:e katalogen (räknat frÃ¥n\n" +" \tvänster i listan som visas av \"dirs\", med start pÃ¥ noll) hamnar\n" +" \tpÃ¥ toppen.\n" +" \n" +" -N\tRotera stacken sÃ¥ att den N:e katalogen (räknat frÃ¥n\n" +" \thöger i listan som visas av \"dirs\", med start pÃ¥ noll) hamnar\n" +" \tpÃ¥ toppen.\n" +" \n" +" kat\tLägger till KAT till toppen av katalogstacken, och gör\n" +" \tden till den nya aktuella arbetskatalogen.\n" +" \n" +" Den inbyggda \"dirs\" visar katalogstacken.\n" +" \n" +" Slutstatus:\n" +" Returnerar framgÃ¥ng om inte ett ogiltigt argument ges eller bytet av\n" +" katalog misslyckas." + +#: builtins.c:1767 +msgid "" +"Remove directories from stack.\n" +" \n" +" Removes entries from the directory stack. With no arguments, removes\n" +" the top directory from the stack, and changes to the new top directory.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when removing\n" +" \tdirectories from the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRemoves the Nth entry counting from the left of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd +0'\n" +" \tremoves the first directory, `popd +1' the second.\n" +" \n" +" -N\tRemoves the Nth entry counting from the right of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd -0'\n" +" \tremoves the last directory, `popd -1' the next to last.\n" +" \n" +" The `dirs' builtin displays the directory stack.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid argument is supplied or the directory\n" +" change fails." +msgstr "" +"Ta bort kataloger frÃ¥n stacken.\n" +" \n" +" Tar bort poster frÃ¥n katalogstacken. Utan argument tas toppkatalogen\n" +" bort frÃ¥n stacken, och byter till den nya toppkatalogen.\n" +" \n" +" Flaggor:\n" +" -n\tUndertryck det normala bytet av katalog när kataloger\n" +" \ttas bort frÃ¥n stacken, sÃ¥ att endast stacken ändras.\n" +" \n" +" Argument:\n" +" +N\tTar bort den N:e katalogen räknat frÃ¥n vänster i listan\n" +" \tsom visas av \"dirs\", med start pÃ¥ noll. Till exempel: \"popd +0\"\n" +" \ttar bort den första katalogen, \"popd +1\" den andra.\n" +" \n" +" -N\tTar bort den N:e katalogen räknat frÃ¥n höger i listan\n" +" \tsom visas av \"dirs\", med start pÃ¥ noll. Till exempel: \"popd -0\"\n" +" \ttar bort den sista katalogen, \"popd -1\" den näst sista.\n" +" \n" +" Den inbyggda \"dirs\" visar katalogstacken.\n" +" \n" +" Slutstatus:\n" +" Returnerar framgÃ¥ng om inte ett ogiltigt argument ges eller bytet av\n" +" katalog misslyckas." + +#: builtins.c:1797 +msgid "" +"Display directory stack.\n" +" \n" +" Display the list of currently remembered directories. Directories\n" +" find their way onto the list with the `pushd' command; you can get\n" +" back up through the list with the `popd' command.\n" +" \n" +" Options:\n" +" -c\tclear the directory stack by deleting all of the elements\n" +" -l\tdo not print tilde-prefixed versions of directories relative\n" +" \tto your home directory\n" +" -p\tprint the directory stack with one entry per line\n" +" -v\tprint the directory stack with one entry per line prefixed\n" +" \twith its position in the stack\n" +" \n" +" Arguments:\n" +" +N\tDisplays the Nth entry counting from the left of the list shown " +"by\n" +" \tdirs when invoked without options, starting with zero.\n" +" \n" +" -N\tDisplays the Nth entry counting from the right of the list shown " +"by\n" +" \tdirs when invoked without options, starting with zero.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" +"Visa katalogstacken.\n" +" \n" +" Visa listan av kataloger i minnet för närvarande. Kataloger kommer\n" +" in pÃ¥ listan med kommandot \"pushd\". Du kan komma tillbaka upp genom\n" +" listan med kommandot \"popd\".\n" +" \n" +" Flaggor:\n" +" -c\tnollställer katalogstacken genom att ta bort alla element\n" +" -l\tskriv inte ut versioner med tildeprefix av kataloger som\n" +" \tär relativa till din hemkatalog\n" +" -p\tskriv katalogstacken med en post per rad\n" +" -v\tskriv katalogstacken med en post per rad föregÃ¥ngna av\n" +" \tdess position i stacken\n" +" \n" +" Argument:\n" +" +N\tVisar den N:e posten räknat frÃ¥n vänster i listan som visas\n" +" \tav dirs när det anropas utan flaggor, med början frÃ¥n noll.\n" +" \n" +" -N\tVisar den N:e posten räknat frÃ¥n höger i listan som visas\n" +" \tav dirs när det anropas utan fläggor, med början frÃ¥n noll.\n" +" \n" +" Slutstatus:\n" +" Returnerar framgÃ¥ng om inte en ogiltig flagga ges eller ett fel " +"inträffar." + +#: builtins.c:1826 +msgid "" +"Set and unset shell options.\n" +" \n" +" Change the setting of each shell option OPTNAME. Without any option\n" +" arguments, list all shell options with an indication of whether or not " +"each\n" +" is set.\n" +" \n" +" Options:\n" +" -o\trestrict OPTNAMEs to those defined for use with `set -o'\n" +" -p\tprint each shell option with an indication of its status\n" +" -q\tsuppress output\n" +" -s\tenable (set) each OPTNAME\n" +" -u\tdisable (unset) each OPTNAME\n" +" \n" +" Exit Status:\n" +" Returns success if OPTNAME is enabled; fails if an invalid option is\n" +" given or OPTNAME is disabled." +msgstr "" +"SlÃ¥ pÃ¥ och av skalflaggor.\n" +" \n" +" Ändra inställningen av varje flagga FLGNAMN. Utan nÃ¥gra flaggargument\n" +" listas alla skalflaggor med en indikation om var och en är satt.\n" +" \n" +" Flaggor:\n" +" -o\tbegränsa FLGNAMN till de som kan användas med \"set -o\"\n" +" -p\tskriv raje skalflagga med en indikation pÃ¥ dess status\n" +" -q\tutelämna utmatning\n" +" -s\taktivera (slÃ¥ pÃ¥) varje FLGNAMN\n" +" -u\tavaktivera (slÃ¥ av) varje FLGNAMN\n" +" \n" +" Slutstatus:\n" +" Returnerar framgÃ¥ng om FLGNAMN är aktiverat, misslyckas om en ogiltig\n" +" flagga ges eller FLGNAMN är avaktiverat." + +#: builtins.c:1847 +msgid "" +"Formats and prints ARGUMENTS under control of the FORMAT.\n" +" \n" +" Options:\n" +" -v var\tassign the output to shell variable VAR rather than\n" +" \t\tdisplay it on the standard output\n" +" \n" +" FORMAT is a character string which contains three types of objects: " +"plain\n" +" characters, which are simply copied to standard output; character " +"escape\n" +" sequences, which are converted and copied to the standard output; and\n" +" format specifications, each of which causes printing of the next " +"successive\n" +" argument.\n" +" \n" +" In addition to the standard format specifications described in printf" +"(1)\n" +" and printf(3), printf interprets:\n" +" \n" +" %b\texpand backslash escape sequences in the corresponding argument\n" +" %q\tquote the argument in a way that can be reused as shell input\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or a write or " +"assignment\n" +" error occurs." +msgstr "" +"Formatera och skriv ARGUMENT styrda av FORMAT.\n" +" \n" +" Flaggor:\n" +" -v var\ttilldela utdata till skalvariabeln VAR istället för att\n" +" \t\tskriva den pÃ¥ standard ut\n" +" \n" +" FORMAT är en teckensträng som innehÃ¥ller tre sortes objekt: vanliga\n" +" tecken, som helt enkelt kopieras till standard ut, teckenstyrsekvenser\n" +" som konverteras och kopieras till standard ut och " +"formatspecifikationer,\n" +" där var och en medför utskrift av det nästföljande argumentet.\n" +" argument.\n" +" \n" +" Förutom de standardformatspecifikationer som beskrivs a printf(1) och\n" +" printf(3) tolkar printf:\n" +" \n" +" %b\texpandera bakstrecksstyrsekvenser i motsvarande argument\n" +" %q\tcitera argumentet pÃ¥ ett sätt som kan Ã¥teranvändas som\n" +" \t\tindata till ett skal\n" +" \n" +" Slutstatus:\n" +" Returnerar framgÃ¥ng om inte en ogiltig flagga ges eller ett skriv-\n" +" eller tilldelningsfel inträffar." + +#: builtins.c:1874 +msgid "" +"Specify how arguments are to be completed by Readline.\n" +" \n" +" For each NAME, specify how arguments are to be completed. If no " +"options\n" +" are supplied, existing completion specifications are printed in a way " +"that\n" +" allows them to be reused as input.\n" +" \n" +" Options:\n" +" -p\tprint existing completion specifications in a reusable format\n" +" -r\tremove a completion specification for each NAME, or, if no\n" +" \tNAMEs are supplied, all completion specifications\n" +" \n" +" When completion is attempted, the actions are applied in the order the\n" +" uppercase-letter options are listed above.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" +"Ange hur argument skal kompletteras av Readline.\n" +" \n" +" För varje NAMN, ange hur argument skall kompletteras. Om inga flaggor\n" +" är givna skrivs nuvarande kompletteringsspecifikationer ut pÃ¥ ett sätt\n" +" som gör att de kan användas som indata.\n" +" \n" +" Flaggor:\n" +" -p\tskriv existerande kompletteringsspecifikationer pÃ¥ ett\n" +" \tÃ¥teranvändningsbart format\n" +" -r\tta bort en kompletteringsspecifikation för varje NAMN eller\n" +" \tom inga NAMN är givna, alla kompletteringsinformationer\n" +" \n" +" När komplettering försöker göras försöks Ã¥tgärder i den ordning de\n" +" versala flaggorna är uppräknade ovan.\n" +" \n" +" Slutstatus:\n" +" Returnerar framgÃ¥ng om inte en ogiltig flagga ges eller ett fel " +"inträffar." + +#: builtins.c:1897 +msgid "" +"Display possible completions depending on the options.\n" +" \n" +" Intended to be used from within a shell function generating possible\n" +" completions. If the optional WORD argument is supplied, matches " +"against\n" +" WORD are generated.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" +"Visa möjliga kompletteringar beroende pÃ¥ flaggorna.\n" +" \n" +" Avsett att användas inifrÃ¥n en skalfunktion för att generera möjliga\n" +" kompletteringar. Om det valfria argumentet ORD är givet genereras\n" +" matchningar av ORD.\n" +" \n" +" Slutstatus:\n" +" Returnerar framgÃ¥ng om inte en ogiltig flagga ges eller ett fel " +"inträffar." + +#: builtins.c:1912 +msgid "" +"Modify or display completion options.\n" +" \n" +" Modify the completion options for each NAME, or, if no NAMEs are " +"supplied,\n" +" the completion currently begin executed. If no OPTIONs are givenm, " +"print\n" +" the completion options for each NAME or the current completion " +"specification.\n" +" \n" +" Options:\n" +" \t-o option\tSet completion option OPTION for each NAME\n" +" \n" +" Using `+o' instead of `-o' turns off the specified option.\n" +" \n" +" Arguments:\n" +" \n" +" Each NAME refers to a command for which a completion specification must\n" +" have previously been defined using the `complete' builtin. If no NAMEs\n" +" are supplied, compopt must be called by a function currently generating\n" +" completions, and the options for that currently-executing completion\n" +" generator are modified.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or NAME does not\n" +" have a completion specification defined." +msgstr "" +"Modifiera eller visa kompletteringsflaggor.\n" +" \n" +" Modifiera kompletteringsflaggorna för varje NAMN, eller, om inga NAMN " +"är\n" +" givna, den komplettering som för närvarande körs. Om ingen FLAGGA är\n" +" given skrivs kompletteringsflaggorna för varje NAMN eller den aktuella\n" +" kompletteringsspecifikationen.\n" +" \n" +" Flaggor:\n" +" \t-o flagga\tSätt kompletteringsflagga FLAGGA för varje NAMN\n" +" \n" +" Genom att använda \"+o\" istället för \"-o\" slÃ¥s den angivna flaggan " +"av.\n" +" \n" +" Argument:\n" +" \n" +" Varje NAMN refererar till ett kommando för vilket en kompletterings-\n" +" specifikation mÃ¥ste ha definierats tidigare med det inbyggda \"complete" +"\".\n" +" Om inget NAMN ges mÃ¥ste compopt anropas av en funktion som just nu\n" +" genererar kompletteringar, och flaggorna för den just nu exekverande\n" +" kompletteringsgeneratorn modifieras.\n" +" \n" +" Slutstatus:\n" +" Returnerar framgÃ¥ng om inte en ogiltig flagga ges eller NAMN inte har\n" +" nÃ¥gon kompletteringsspecifikaation definierad." + +#: builtins.c:1940 +#, fuzzy +msgid "" +"Read lines from a file into an array variable.\n" +" \n" +" Read lines from the standard input into the array variable ARRAY, or " +"from\n" +" file descriptor FD if the -u option is supplied. The variable MAPFILE " +"is\n" +" the default ARRAY.\n" +" \n" +" Options:\n" +" -n count\tCopy at most COUNT lines. If COUNT is 0, all lines are " +"copied.\n" +" -O origin\tBegin assigning to ARRAY at index ORIGIN. The default " +"index is 0.\n" +" -s count \tDiscard the first COUNT lines read.\n" +" -t\t\tRemove a trailing newline from each line read.\n" +" -u fd\t\tRead lines from file descriptor FD instead of the standard " +"input.\n" +" -C callback\tEvaluate CALLBACK each time QUANTUM lines are read.\n" +" -c quantum\tSpecify the number of lines read between each call to " +"CALLBACK.\n" +" \n" +" Arguments:\n" +" ARRAY\t\tArray variable name to use for file data.\n" +" \n" +" If -C is supplied without -c, the default quantum is 5000.\n" +" \n" +" If not supplied with an explicit origin, mapfile will clear ARRAY " +"before\n" +" assigning to it.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or ARRAY is readonly." +msgstr "" +"Läs rader fÃ¥n en fil till en vektorvariabel.\n" +" \n" +" Läs rader frÃ¥n standard in till vektorvariabeln VEKTOR, eller frÃ¥n\n" +" filbeskrivaren FB om flaggan -u ges. Variabeln MAPFILE är standard\n" +" för VEKTOR.\n" +" \n" +" Flaggor:\n" +" -n antal\tKopiera högs ANTAL rader. Om ANTAL är 0 kopieras alla " +"rader.\n" +" -O start\tBörja tilldela till VEKTOR vid index START. Standardindex " +"är 0.\n" +" -s antal \tSläng de första ANTAL inlästa raderna.\n" +" -t\t\tTa bort en avslutande nyrad frÃ¥n varje inläst rad.\n" +" -u fb\t\tLäs rader frÃ¥n filbeskrivare FB istället för standard in.\n" +" -C Ã¥teranrop\tBeräkna ÅTERANROP för varje KVANTA rader som läses.\n" +" -c kvanta \tAnge antalet rader att läsa mellan varje anrop av\n" +" \t\t \tÅTERANROP.\n" +" \n" +" Argument:\n" +" VEKTOR\t\tNamn pÃ¥ vektorvariabel att använda för fildata.\n" +" \n" +" Om -C ges utan -c är standardkvanta 5000.\n" +" \n" +" Om det inte ges nÃ¥gon specificerad start kommer mapfile nollställa " +"VEKTOR\n" +" före tilldelning till den.\n" +" \n" +" Slutstatus:\n" +" Returnerar framgÃ¥ng om inte en ogiltig flagga ges eller VEKTOR är\n" +" oföränderlig." diff --git a/po/tr.gmo b/po/tr.gmo new file mode 100644 index 0000000000000000000000000000000000000000..3e8ed1aa224fb9361678b4336b88ba76abcdcf60 GIT binary patch literal 25573 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 literal 0 Hc-jL100001 diff --git a/po/tr.po b/po/tr.po new file mode 100644 index 000000000..1e9b876d4 --- /dev/null +++ b/po/tr.po @@ -0,0 +1,5364 @@ +# translation of bash-3.2.po to Turkish +# Copyright (C) 2006 Free Software Foundation, Inc. +# Nilgün Belma Bugüner , 2006. +# +msgid "" +msgstr "" +"Project-Id-Version: bash 3.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2009-01-06 11:56-0500\n" +"PO-Revision-Date: 2006-10-30 20:00+0200\n" +"Last-Translator: Nilgün Belma Bugüner \n" +"Language-Team: Turkish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.1\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: arrayfunc.c:50 +msgid "bad array subscript" +msgstr "hatalı dizi indisi" + +#: arrayfunc.c:313 builtins/declare.def:474 +#, c-format +msgid "%s: cannot convert indexed to associative array" +msgstr "" + +#: arrayfunc.c:479 +#, fuzzy, c-format +msgid "%s: invalid associative array key" +msgstr "%s: eylem adı geçersiz" + +#: arrayfunc.c:481 +#, c-format +msgid "%s: cannot assign to non-numeric index" +msgstr "%s: sayısal olmayan indise atama yapılamaz" + +#: arrayfunc.c:517 +#, c-format +msgid "%s: %s: must use subscript when assigning associative array" +msgstr "" + +#: bashhist.c:380 +#, c-format +msgid "%s: cannot create: %s" +msgstr "%s: oluşturulamıyor: %s" + +#: bashline.c:3413 +msgid "bash_execute_unix_command: cannot find keymap for command" +msgstr "bash_execute_unix_command: komut için kısayol bulunamıyor" + +#: bashline.c:3491 +#, c-format +msgid "%s: first non-whitespace character is not `\"'" +msgstr "%s: boşluk olmayan ilk karakter `\"' değil" + +#: bashline.c:3520 +#, c-format +msgid "no closing `%c' in %s" +msgstr "%2$s içinde kapatan `%1$c' yok" + +#: bashline.c:3554 +#, c-format +msgid "%s: missing colon separator" +msgstr "%s: ikinokta imi eksik" + +#: builtins/bind.def:120 builtins/bind.def:123 +msgid "line editing not enabled" +msgstr "" + +#: builtins/bind.def:206 +#, c-format +msgid "`%s': invalid keymap name" +msgstr "`%s': kısayol ismi geçersiz" + +#: builtins/bind.def:245 +#, c-format +msgid "%s: cannot read: %s" +msgstr "%s: okunamıyor: %s" + +#: builtins/bind.def:260 +#, c-format +msgid "`%s': cannot unbind" +msgstr "`%s': kısayol değiştirilemiyor" + +#: builtins/bind.def:295 builtins/bind.def:325 +#, c-format +msgid "`%s': unknown function name" +msgstr "`%s': işlev ismi bilinmiyor" + +#: builtins/bind.def:303 +#, c-format +msgid "%s is not bound to any keys.\n" +msgstr "%s için bir kısayol atanmamış.\n" + +#: builtins/bind.def:307 +#, c-format +msgid "%s can be invoked via " +msgstr "%s bunun üzerinden çağrılabilir: " + +#: builtins/break.def:77 builtins/break.def:117 +msgid "loop count" +msgstr "" + +#: builtins/break.def:137 +msgid "only meaningful in a `for', `while', or `until' loop" +msgstr "sadece bir `for', `while' veya `until' döngüsünde anlamlı" + +#: builtins/caller.def:133 +#, fuzzy +msgid "" +"Returns the context of the current subroutine call.\n" +" \n" +" Without EXPR, returns " +msgstr "Geçerli altyordam çağrısının bağlamı döner." + +#: builtins/cd.def:215 +msgid "HOME not set" +msgstr "HOME atanmamış" + +#: builtins/cd.def:227 +msgid "OLDPWD not set" +msgstr "OLDPWD boş" + +#: builtins/common.c:101 +#, c-format +msgid "line %d: " +msgstr "" + +#: builtins/common.c:139 error.c:260 +#, fuzzy, c-format +msgid "warning: " +msgstr "%s: uyarı: " + +#: builtins/common.c:153 +#, fuzzy, c-format +msgid "%s: usage: " +msgstr "%s: uyarı: " + +#: builtins/common.c:166 test.c:822 +msgid "too many arguments" +msgstr "çok fazla argüman" + +#: builtins/common.c:191 shell.c:493 shell.c:774 +#, c-format +msgid "%s: option requires an argument" +msgstr "%s: seçenek bir argüman gerektirir" + +#: builtins/common.c:198 +#, c-format +msgid "%s: numeric argument required" +msgstr "%s: sayısal argüman gerekli" + +#: builtins/common.c:205 +#, c-format +msgid "%s: not found" +msgstr "%s:yok" + +#: builtins/common.c:214 shell.c:787 +#, c-format +msgid "%s: invalid option" +msgstr "%s: seçenek geçersiz" + +#: builtins/common.c:221 +#, c-format +msgid "%s: invalid option name" +msgstr "%s: seçenek ismi geçersiz" + +#: builtins/common.c:228 general.c:231 general.c:236 +#, c-format +msgid "`%s': not a valid identifier" +msgstr "`%s': geçerli bir belirteç değil" + +#: builtins/common.c:238 +#, fuzzy +msgid "invalid octal number" +msgstr "geçersiz sinyal numarası" + +#: builtins/common.c:240 +#, fuzzy +msgid "invalid hex number" +msgstr "geçersiz sayı" + +#: builtins/common.c:242 expr.c:1255 +msgid "invalid number" +msgstr "geçersiz sayı" + +#: builtins/common.c:250 +#, c-format +msgid "%s: invalid signal specification" +msgstr "%s: sinyal belirtimi geçersiz" + +#: builtins/common.c:257 +#, c-format +msgid "`%s': not a pid or valid job spec" +msgstr "`%s': geçerli bir iş belirtimi veya süreç numarası değil" + +#: builtins/common.c:264 error.c:453 +#, c-format +msgid "%s: readonly variable" +msgstr "%s: salt okunur değişken" + +#: builtins/common.c:272 +#, c-format +msgid "%s: %s out of range" +msgstr "%s: %s aralık dışı" + +#: builtins/common.c:272 builtins/common.c:274 +msgid "argument" +msgstr "argüman" + +#: builtins/common.c:274 +#, c-format +msgid "%s out of range" +msgstr "%s aralık dışı" + +#: builtins/common.c:282 +#, c-format +msgid "%s: no such job" +msgstr "%s: böyle bir iş yok" + +#: builtins/common.c:290 +#, c-format +msgid "%s: no job control" +msgstr "%s: iş denetimi yok" + +#: builtins/common.c:292 +msgid "no job control" +msgstr "iş denetimi yok" + +#: builtins/common.c:302 +#, c-format +msgid "%s: restricted" +msgstr "%s: kısıtlı" + +#: builtins/common.c:304 +msgid "restricted" +msgstr "kısıtlı" + +#: builtins/common.c:312 +#, c-format +msgid "%s: not a shell builtin" +msgstr "%s: bir kabuk yerleşiği değil" + +#: builtins/common.c:321 +#, c-format +msgid "write error: %s" +msgstr "yazma hatası: %s" + +#: builtins/common.c:553 +#, c-format +msgid "%s: error retrieving current directory: %s: %s\n" +msgstr "%s: geçerli dizin alınırken hata: %s: %s\n" + +#: builtins/common.c:619 builtins/common.c:621 +#, c-format +msgid "%s: ambiguous job spec" +msgstr "%s: iş belirtimi belirsiz" + +#: builtins/complete.def:270 +#, c-format +msgid "%s: invalid action name" +msgstr "%s: eylem adı geçersiz" + +#: builtins/complete.def:430 builtins/complete.def:615 +#: builtins/complete.def:813 +#, c-format +msgid "%s: no completion specification" +msgstr "%s: tamamlama belirtimi yok" + +#: builtins/complete.def:667 +msgid "warning: -F option may not work as you expect" +msgstr "uyarı: -F seçeneği umduğunuz gibi çalışmayabilir" + +#: builtins/complete.def:669 +msgid "warning: -C option may not work as you expect" +msgstr "uyarı: -C seçeneği umduğunuz gibi çalışmayabilir" + +#: builtins/complete.def:786 +msgid "not currently executing completion function" +msgstr "" + +#: builtins/declare.def:122 +msgid "can only be used in a function" +msgstr "sadece bir işlevde kullanılabilir" + +#: builtins/declare.def:353 +msgid "cannot use `-f' to make functions" +msgstr "işlev yapmak için `-f' kullanılamaz" + +#: builtins/declare.def:365 execute_cmd.c:4731 +#, c-format +msgid "%s: readonly function" +msgstr "%s: salt okunur işlev" + +#: builtins/declare.def:461 +#, c-format +msgid "%s: cannot destroy array variables in this way" +msgstr "%s: dizi değişkenleri bu yolla iptal edilemez" + +#: builtins/declare.def:468 +#, c-format +msgid "%s: cannot convert associative to indexed array" +msgstr "" + +#: builtins/enable.def:137 builtins/enable.def:145 +msgid "dynamic loading not available" +msgstr "özdevimli yükleme mümkün değil" + +#: builtins/enable.def:312 +#, c-format +msgid "cannot open shared object %s: %s" +msgstr "%s paylaşımlı nesnesi açılamıyor: %s" + +#: builtins/enable.def:335 +#, c-format +msgid "cannot find %s in shared object %s: %s" +msgstr "%2$s paylaşımlı nesnesinde %1$s bulunamıyor: %3$s" + +#: builtins/enable.def:459 +#, c-format +msgid "%s: not dynamically loaded" +msgstr "%s: özdevimli olarak yüklenmemiş" + +#: builtins/enable.def:474 +#, c-format +msgid "%s: cannot delete: %s" +msgstr "%s: silinemiyor: %s" + +#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4588 +#: shell.c:1439 +#, c-format +msgid "%s: is a directory" +msgstr "%s: bir dizin" + +#: builtins/evalfile.c:139 +#, c-format +msgid "%s: not a regular file" +msgstr "%s: bir dosya değil" + +#: builtins/evalfile.c:147 +#, c-format +msgid "%s: file is too large" +msgstr "%s: dosya çok büyük" + +#: builtins/evalfile.c:185 execute_cmd.c:4658 shell.c:1449 +#, c-format +msgid "%s: cannot execute binary file" +msgstr "%s: ikili dosya çalıştırılamıyor" + +#: builtins/exec.def:212 +#, c-format +msgid "%s: cannot execute: %s" +msgstr "%s: çalıştırılamıyor: %s" + +#: builtins/exit.def:65 +#, c-format +msgid "logout\n" +msgstr "" + +#: builtins/exit.def:88 +msgid "not login shell: use `exit'" +msgstr "oturum açma kabuğu değil: `exit' kullanın" + +#: builtins/exit.def:120 +#, c-format +msgid "There are stopped jobs.\n" +msgstr "Durmuş işler var.\n" + +#: builtins/exit.def:122 +#, fuzzy, c-format +msgid "There are running jobs.\n" +msgstr "Durmuş işler var.\n" + +#: builtins/fc.def:261 +msgid "no command found" +msgstr "komut yok" + +#: builtins/fc.def:341 +msgid "history specification" +msgstr "geçmiş belirtimi" + +#: builtins/fc.def:362 +#, c-format +msgid "%s: cannot open temp file: %s" +msgstr "%s: geçici dosya açılamıyor: %s" + +#: builtins/fg_bg.def:149 builtins/jobs.def:282 +msgid "current" +msgstr "" + +#: builtins/fg_bg.def:158 +#, c-format +msgid "job %d started without job control" +msgstr "%d. iş, iş denetimsiz başlamış" + +#: builtins/getopt.c:110 +#, c-format +msgid "%s: illegal option -- %c\n" +msgstr "%s: kuraldışı seçenek -- %c\n" + +#: builtins/getopt.c:111 +#, c-format +msgid "%s: option requires an argument -- %c\n" +msgstr "%s: seçenek bir argüman gerektirir -- %c\n" + +#: builtins/hash.def:92 +msgid "hashing disabled" +msgstr "çitleme iptal edildi" + +#: builtins/hash.def:138 +#, c-format +msgid "%s: hash table empty\n" +msgstr "%s: çitleme tablosu boş\n" + +#: builtins/hash.def:244 +#, fuzzy, c-format +msgid "hits\tcommand\n" +msgstr "son komut: %s\n" + +#: builtins/help.def:130 +#, fuzzy, c-format +msgid "Shell commands matching keyword `" +msgid_plural "Shell commands matching keywords `" +msgstr[0] "Bu anahtar sözcüğe uygun kabuk komutları: `" +msgstr[1] "Bu anahtar sözcüğe uygun kabuk komutları: `" + +#: builtins/help.def:168 +#, c-format +msgid "" +"no help topics match `%s'. Try `help help' or `man -k %s' or `info %s'." +msgstr "" +"`%s' ile ilgili bir yardım metni yok. `help help' veya `man -k %s' ya da " +"`info %s'.yazmayı deneyebilirsiniz." + +#: builtins/help.def:185 +#, c-format +msgid "%s: cannot open: %s" +msgstr "%s: açılamıyor: %s" + +#: builtins/help.def:337 +#, c-format +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 "" +"Bu kabuk komutları dahili olarak tanımlı. Listeyi görmek için `help'yazın.\n" +"`AD' gibi bir işlev hakkında bilgi almak için `help AD' yazınız.\n" +"Kabuk hakkında genel bir bilgi edinmek için `info bash'yazınız.\n" +"Bu listede olmayan komutlar hakkında bilgi bulmak isterseniz,\n" +"`man -k' veya `info' yazın.\n" +"\n" +"Bir ismin yanında bir yıldız imi (*) varsa komut iptal edilmiş demektir.\n" +"\n" + +#: builtins/history.def:154 +msgid "cannot use more than one of -anrw" +msgstr "tek bir -anrw kullanılabilir" + +#: builtins/history.def:186 +msgid "history position" +msgstr "geçmiş konumu" + +#: builtins/history.def:365 +#, c-format +msgid "%s: history expansion failed" +msgstr "%s: geçmiş yorumlaması başarısız" + +#: builtins/inlib.def:71 +#, fuzzy, c-format +msgid "%s: inlib failed" +msgstr "%s: geçmiş yorumlaması başarısız" + +#: builtins/jobs.def:109 +msgid "no other options allowed with `-x'" +msgstr "`-x' ile başka seçenek kullanılamaz" + +#: builtins/kill.def:197 +#, c-format +msgid "%s: arguments must be process or job IDs" +msgstr "%s: argümanlar süreç veya iş kimlikleri olmalı" + +#: builtins/kill.def:260 +msgid "Unknown error" +msgstr "Bilinmeyen hata" + +#: builtins/let.def:95 builtins/let.def:120 expr.c:501 expr.c:516 +msgid "expression expected" +msgstr "ifade bekleniyordu" + +#: builtins/mapfile.def:215 builtins/read.def:272 +#, c-format +msgid "%s: invalid file descriptor specification" +msgstr "%s: dosya tanıtıcı belirtimi geçersiz" + +#: builtins/mapfile.def:223 builtins/read.def:279 +#, c-format +msgid "%d: invalid file descriptor: %s" +msgstr "%d: dosya tanıtıcı geçersiz: %s" + +#: builtins/mapfile.def:232 builtins/mapfile.def:270 +#, fuzzy, c-format +msgid "%s: invalid line count" +msgstr "%s: seçenek geçersiz" + +#: builtins/mapfile.def:243 +#, fuzzy, c-format +msgid "%s: invalid array origin" +msgstr "%s: seçenek geçersiz" + +#: builtins/mapfile.def:260 +#, fuzzy, c-format +msgid "%s: invalid callback quantum" +msgstr "%s: eylem adı geçersiz" + +#: builtins/mapfile.def:292 +#, fuzzy +msgid "empty array variable name" +msgstr "%s: bir dizi değişkeni değil" + +#: builtins/mapfile.def:313 +msgid "array variable support required" +msgstr "" + +#: builtins/printf.def:367 +#, c-format +msgid "`%s': missing format character" +msgstr "`%s': biçim karakteri eksik" + +#: builtins/printf.def:544 +#, c-format +msgid "`%c': invalid format character" +msgstr "`%c': biçim karakteri geçersiz" + +#: builtins/printf.def:571 +#, fuzzy, c-format +msgid "warning: %s: %s" +msgstr "%s: uyarı: " + +#: builtins/printf.def:750 +msgid "missing hex digit for \\x" +msgstr "\\x için onaltılık rakam eksik" + +#: builtins/pushd.def:195 +msgid "no other directory" +msgstr "başka dizin yok" + +#: builtins/pushd.def:462 +msgid "" +msgstr "" + +#: builtins/pushd.def:506 +msgid "directory stack empty" +msgstr "" + +#: builtins/pushd.def:508 +#, fuzzy +msgid "directory stack index" +msgstr "özyineleme yığıtı alttan taştı" + +#: builtins/pushd.def:683 +#, fuzzy +msgid "" +"Display the list of currently remembered directories. Directories\n" +" find their way onto the list with the `pushd' command; you can get\n" +" back up through the list with the `popd' command.\n" +" \n" +" Options:\n" +" -c\tclear the directory stack by deleting all of the elements\n" +" -l\tdo not print tilde-prefixed versions of directories relative\n" +" \tto your home directory\n" +" -p\tprint the directory stack with one entry per line\n" +" -v\tprint the directory stack with one entry per line prefixed\n" +" \twith its position in the stack\n" +" \n" +" Arguments:\n" +" +N\tDisplays the Nth entry counting from the left of the list shown " +"by\n" +" \tdirs when invoked without options, starting with zero.\n" +" \n" +" -N\tDisplays the Nth entry counting from the right of the list shown " +"by\n" +"\tdirs when invoked without options, starting with zero." +msgstr "" +"\rdirs [-clpv] [+N] [-N]\n" +" O an anımsanan dizinleri listeler. Dizinler listeye `pushd'\n" +" komutuyla eklenir; listeden tek tek geri almak içinse `popd'\n" +" komutu kullanılır.\n" +" -l seçeneği `dirs'in dizinleri ev dizininize göreli kısayollar\n" +" olarak göstermemesine yol açar. Yani `~/bin' yerine `/homes/bfox/bin'\n" +" gibi bir gösterimle karşılaşabilirsiniz. -v seçeneği `dirs'in\n" +" dizin yığıtını dizin adının önüne yığıt konumunu ekleyerek her\n" +" satırda bir girdi göstermesini sağlar. -p seçeneği yığıttaki\n" +" konumu göstermemesi dışında aynı çıktıyı verir. -c seçeneği tüm\n" +" girdileri silerek dizin yığıtını boşaltır. \n" +" +N dirs seçeneksiz çağrıldığında gösterdiği listenin solundan\n" +" sıfırla başlayarak sayılan N'inci girdiyi gösterir.\n" +"\n" +" -N dirs seçeneksiz çağrıldığında gösterdiği listenin sağından\n" +" sıfırla başlayarak sayılan N'inci girdiyi gösterir." + +#: builtins/pushd.def:705 +#, fuzzy +msgid "" +"Adds a directory to the top of the directory stack, or rotates\n" +" the stack, making the new top of the stack the current working\n" +" directory. With no arguments, exchanges the top two directories.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when adding\n" +" \tdirectories to the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the left of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" -N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the right of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" dir\tAdds DIR to the directory stack at the top, making it the\n" +" \tnew current working directory.\n" +" \n" +" The `dirs' builtin displays the directory stack." +msgstr "" +"\rpushd [DZN | +N | -N] [-n]\n" +" Dizin yığıtının en üstüne bir dizin ekler, ya da geçerli çalışma\n" +" dizini yığıtın tepesine gelecek şekilde yığıtı döndürür. Hiç\n" +" argüman verilmemişse en üstteki iki dizini yer değiştirir.\n" +"\n" +" +N (`dirs' tarafından gösterilen listenin solundan saymaya\n" +" sıfırla başlandığında) N'inci dizin tepeye gelecek şekilde\n" +" yığıtı döndürür.\n" +"\n" +" -N (`dirs' tarafından gösterilen listenin sağından saymaya\n" +" sıfırla başlandığında) N'inci dizin tepeye gelecek şekilde\n" +" yığıtı döndürür.\n" +"\n" +" +n dizinleri yığıta eklerken normal dizin değişikliğini engeller,\n" +" böylece sadece yığıt değiştirilmiş olur.\n" +"\n" +" DZN DiZiNi yeni çalışma dizini yaparak dizin yığıtının\n" +" tepesine ekler.\n" +"\n" +" Dizin yığıtını `dirs' komutuyla görebilirsiniz." + +#: builtins/pushd.def:730 +#, fuzzy +msgid "" +"Removes entries from the directory stack. With no arguments, removes\n" +" the top directory from the stack, and changes to the new top directory.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when removing\n" +" \tdirectories from the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRemoves the Nth entry counting from the left of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd +0'\n" +" \tremoves the first directory, `popd +1' the second.\n" +" \n" +" -N\tRemoves the Nth entry counting from the right of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd -0'\n" +" \tremoves the last directory, `popd -1' the next to last.\n" +" \n" +" The `dirs' builtin displays the directory stack." +msgstr "" +"\rpopd [+N | -N] [-n]\n" +" Dizin yığıtından girdileri siler. Hiç argüman verilmemişse,\n" +" yığıtın en üstündeki dizini yığıttan kaldırır ve yığıtın\n" +" tepesinde kalan dizine geçer. \n" +" +N `dirs' tarafından gösterilen listenin solundan saymaya\n" +" sıfırla başlandığında N'inci girdiyi siler. Örneğin,\n" +" `popd +0' ilk dizini `popd +1' ikincisini siler. \n" +" -N `dirs' tarafından gösterilen listenin sağından saymaya\n" +" sıfırla başlandığında N'inci girdiyi siler. Örneğin,\n" +" `popd -0' son dizini `popd -1' sonuncudan öncekini siler. \n" +" -n dizinleri yığıttan silerken normal dizin değişikliğini\n" +" engeller, böylece sadece yığıt değiştirilmiş olur. \n" +" Dizin yığıtını `dirs' komutuyla görebilirsiniz." + +#: builtins/read.def:248 +#, c-format +msgid "%s: invalid timeout specification" +msgstr "%s: zamanaşımı belirtimi geçersiz" + +#: builtins/read.def:574 +#, c-format +msgid "read error: %d: %s" +msgstr "okuma hatası: %d: %s" + +#: builtins/return.def:73 +msgid "can only `return' from a function or sourced script" +msgstr "sadece bir işlev veya betikten kaynaklı olarak `return' yapılabilir" + +#: builtins/set.def:768 +msgid "cannot simultaneously unset a function and a variable" +msgstr "bir işlev ve bir değişken aynı anda unset yapılamaz" + +#: builtins/set.def:805 +#, c-format +msgid "%s: cannot unset" +msgstr "%s: unset yapılamaz" + +#: builtins/set.def:812 +#, c-format +msgid "%s: cannot unset: readonly %s" +msgstr "%s:unset yapılamaz: %s salt okunur" + +#: builtins/set.def:823 +#, c-format +msgid "%s: not an array variable" +msgstr "%s: bir dizi değişkeni değil" + +#: builtins/setattr.def:186 +#, c-format +msgid "%s: not a function" +msgstr "%s: bir işlev değil" + +#: builtins/shift.def:71 builtins/shift.def:77 +msgid "shift count" +msgstr "shift sayısı" + +#: builtins/shopt.def:254 +msgid "cannot set and unset shell options simultaneously" +msgstr "kabuk seçenekleri aynı anda hem atanıp hem de iptal edilemez" + +#: builtins/shopt.def:319 +#, c-format +msgid "%s: invalid shell option name" +msgstr "%s: kabuk seçenek ismi geçersiz" + +#: builtins/source.def:128 +msgid "filename argument required" +msgstr "dosya ismi argüman gerekir" + +#: builtins/source.def:153 +#, c-format +msgid "%s: file not found" +msgstr "%s: dosya yok" + +#: builtins/suspend.def:101 +msgid "cannot suspend" +msgstr "engellenemez" + +#: builtins/suspend.def:111 +msgid "cannot suspend a login shell" +msgstr "bir oturum açma kabuğu engellenemez" + +#: builtins/type.def:234 +#, c-format +msgid "%s is aliased to `%s'\n" +msgstr "%s `%s' için takma addır\n" + +#: builtins/type.def:255 +#, c-format +msgid "%s is a shell keyword\n" +msgstr "%s bir kabuk anahtar sözcüğüdür\n" + +#: builtins/type.def:274 +#, c-format +msgid "%s is a function\n" +msgstr "%s bir işlevdir\n" + +#: builtins/type.def:296 +#, c-format +msgid "%s is a shell builtin\n" +msgstr "%s bir kabuk yerleşiğidir\n" + +#: builtins/type.def:317 builtins/type.def:391 +#, c-format +msgid "%s is %s\n" +msgstr "%s %s'dir\n" + +#: builtins/type.def:337 +#, c-format +msgid "%s is hashed (%s)\n" +msgstr "%s çitilmiş (%s)\n" + +#: builtins/ulimit.def:372 +#, c-format +msgid "%s: invalid limit argument" +msgstr "%s: sınırlama argümanı geçersiz" + +#: builtins/ulimit.def:398 +#, c-format +msgid "`%c': bad command" +msgstr "`%c': hatalı komut" + +#: builtins/ulimit.def:427 +#, c-format +msgid "%s: cannot get limit: %s" +msgstr "%s: sınır alınamıyor: %s" + +#: builtins/ulimit.def:453 +msgid "limit" +msgstr "" + +#: builtins/ulimit.def:465 builtins/ulimit.def:765 +#, c-format +msgid "%s: cannot modify limit: %s" +msgstr "%s: sınır değiştirilemiyor: %s" + +#: builtins/umask.def:118 +msgid "octal number" +msgstr "sekizlik sayı" + +#: builtins/umask.def:231 +#, c-format +msgid "`%c': invalid symbolic mode operator" +msgstr "`%c': simgesel kip işleci geçersiz" + +#: builtins/umask.def:286 +#, c-format +msgid "`%c': invalid symbolic mode character" +msgstr "`%c': simgesel kip karakteri geçersiz" + +#: error.c:89 error.c:320 error.c:322 error.c:324 +msgid " line " +msgstr "" + +#: error.c:164 +#, c-format +msgid "last command: %s\n" +msgstr "son komut: %s\n" + +#: error.c:172 +#, c-format +msgid "Aborting..." +msgstr "Çıkılıyor..." + +#: error.c:405 +msgid "unknown command error" +msgstr "bilinmeyen komut hatası" + +#: error.c:406 +msgid "bad command type" +msgstr "hatalı komut türü" + +#: error.c:407 +msgid "bad connector" +msgstr "hatalı bağlantı" + +#: error.c:408 +msgid "bad jump" +msgstr "hatalı sıçrama" + +#: error.c:446 +#, c-format +msgid "%s: unbound variable" +msgstr "%s: bağlanmamış değişken" + +#: eval.c:181 +#, c-format +msgid "\atimed out waiting for input: auto-logout\n" +msgstr "\agirdi beklerken zamanaşımı: auto-logout\n" + +#: execute_cmd.c:491 +#, c-format +msgid "cannot redirect standard input from /dev/null: %s" +msgstr "/dev/null'dan standart girdiye yönlendirme yapılamaz: %s" + +#: execute_cmd.c:1091 +#, c-format +msgid "TIMEFORMAT: `%c': invalid format character" +msgstr "TIMEFORMAT: `%c': biçim karakteri geçersiz" + +#: execute_cmd.c:1942 +#, fuzzy +msgid "pipe error" +msgstr "yazma hatası: %s" + +#: execute_cmd.c:4276 +#, c-format +msgid "%s: restricted: cannot specify `/' in command names" +msgstr "%s: kısıtlı: komut adında `/' kullanamazsınız" + +#: execute_cmd.c:4367 +#, c-format +msgid "%s: command not found" +msgstr "%s: komut yok" + +#: execute_cmd.c:4621 +#, c-format +msgid "%s: %s: bad interpreter" +msgstr "%s: %s: hatalı yorumlayıcı" + +#: execute_cmd.c:4770 +#, c-format +msgid "cannot duplicate fd %d to fd %d" +msgstr "fd %d, fd %d olarak yinelenemiyor" + +#: expr.c:241 +msgid "expression recursion level exceeded" +msgstr "ifade özyineleme düzeyi aşıldı" + +#: expr.c:265 +msgid "recursion stack underflow" +msgstr "özyineleme yığıtı alttan taştı" + +#: expr.c:379 +msgid "syntax error in expression" +msgstr "ifadede sözdizimi hatası" + +#: expr.c:419 +msgid "attempted assignment to non-variable" +msgstr "değişken olmayana atama yapmaya çalışıldı" + +#: expr.c:440 expr.c:445 expr.c:756 +msgid "division by 0" +msgstr "sıfırla bölme" + +#: expr.c:471 +msgid "bug: bad expassign token" +msgstr "yazılım hatası: bad expassign token" + +#: expr.c:513 +msgid "`:' expected for conditional expression" +msgstr "koşullu ifade için `:' bekleniyordu" + +#: expr.c:781 +msgid "exponent less than 0" +msgstr "üs sıfırdan küçük" + +#: expr.c:826 +msgid "identifier expected after pre-increment or pre-decrement" +msgstr "belirteç ön-arttırım veya ön-eksiltim sonrası bekleniyordu" + +#: expr.c:854 +msgid "missing `)'" +msgstr "eksik `)'" + +#: expr.c:897 expr.c:1175 +msgid "syntax error: operand expected" +msgstr "sözdizimi hatası: terim umuluyordu" + +#: expr.c:1177 +msgid "syntax error: invalid arithmetic operator" +msgstr "sözdizimi hatası: geçersiz aritmetik işleci" + +#: expr.c:1201 +#, c-format +msgid "%s%s%s: %s (error token is \"%s\")" +msgstr "" + +#: expr.c:1259 +msgid "invalid arithmetic base" +msgstr "geçersiz sayı tabanı" + +#: expr.c:1279 +msgid "value too great for base" +msgstr "değer taban için fazla büyük" + +#: expr.c:1328 +#, fuzzy, c-format +msgid "%s: expression error\n" +msgstr "%s: tamsayı ifadesi bekleniyordu" + +#: general.c:61 +msgid "getcwd: cannot access parent directories" +msgstr "getcwd: üst dizinlere erişilemiyor" + +#: input.c:94 subst.c:4559 +#, fuzzy, c-format +msgid "cannot reset nodelay mode for fd %d" +msgstr "fd %d için geciktirmeme kipi sıfırlanamıyor" + +#: input.c:258 +#, c-format +msgid "cannot allocate new file descriptor for bash input from fd %d" +msgstr "" +"fd %d tanıtıcısındaki bash girdisi için yeni dosya tanıtıcısı ayrılamıyor" + +#: input.c:266 +#, c-format +msgid "save_bash_input: buffer already exists for new fd %d" +msgstr "save_bash_input: yeni fd %d için tampon zaten var" + +#: jobs.c:466 +msgid "start_pipeline: pgrp pipe" +msgstr "" + +#: jobs.c:882 +#, c-format +msgid "forked pid %d appears in running job %d" +msgstr "çatallanan pid %d, çalışan iş %d içinde görünüyor" + +#: jobs.c:1000 +#, c-format +msgid "deleting stopped job %d with process group %ld" +msgstr "durdurulan %2$ld süreç gruplu iş %1$d siliniyor" + +#: jobs.c:1105 +#, c-format +msgid "add_process: process %5ld (%s) in the_pipeline" +msgstr "" + +#: jobs.c:1108 +#, c-format +msgid "add_process: pid %5ld (%s) marked as still alive" +msgstr "" + +#: jobs.c:1396 +#, c-format +msgid "describe_pid: %ld: no such pid" +msgstr "describe_pid: %ld: böyle bir pid yok" + +#: jobs.c:1411 +#, c-format +msgid "Signal %d" +msgstr "" + +#: jobs.c:1425 jobs.c:1450 +msgid "Done" +msgstr "" + +#: jobs.c:1430 siglist.c:122 +msgid "Stopped" +msgstr "" + +#: jobs.c:1434 +#, c-format +msgid "Stopped(%s)" +msgstr "" + +#: jobs.c:1438 +msgid "Running" +msgstr "" + +#: jobs.c:1452 +#, c-format +msgid "Done(%d)" +msgstr "" + +#: jobs.c:1454 +#, c-format +msgid "Exit %d" +msgstr "" + +#: jobs.c:1457 +msgid "Unknown status" +msgstr "" + +#: jobs.c:1544 +#, c-format +msgid "(core dumped) " +msgstr "" + +#: jobs.c:1563 +#, c-format +msgid " (wd: %s)" +msgstr "" + +#: jobs.c:1766 +#, c-format +msgid "child setpgid (%ld to %ld)" +msgstr "" + +#: jobs.c:2094 nojobs.c:576 +#, c-format +msgid "wait: pid %ld is not a child of this shell" +msgstr "wait: pid %ld bu kabuğun bir alt sürecine ait değil" + +#: jobs.c:2321 +#, c-format +msgid "wait_for: No record of process %ld" +msgstr "wait_for: süreç %ld için kayıt yok" + +#: jobs.c:2593 +#, c-format +msgid "wait_for_job: job %d is stopped" +msgstr "wait_for_job: iş %d durdu" + +#: jobs.c:2815 +#, c-format +msgid "%s: job has terminated" +msgstr "%s: iş sonlanmış" + +#: jobs.c:2824 +#, c-format +msgid "%s: job %d already in background" +msgstr "%s: iş %d zaten artalanda" + +#: jobs.c:3487 +#, fuzzy, c-format +msgid "%s: line %d: " +msgstr "%s: uyarı: " + +#: jobs.c:3501 nojobs.c:805 +#, c-format +msgid " (core dumped)" +msgstr "" + +#: jobs.c:3513 jobs.c:3526 +#, c-format +msgid "(wd now: %s)\n" +msgstr "" + +#: jobs.c:3558 +msgid "initialize_job_control: getpgrp failed" +msgstr "" + +#: jobs.c:3618 +msgid "initialize_job_control: line discipline" +msgstr "" + +#: jobs.c:3628 +msgid "initialize_job_control: setpgid" +msgstr "" + +#: jobs.c:3656 +#, c-format +msgid "cannot set terminal process group (%d)" +msgstr "" + +#: jobs.c:3661 +msgid "no job control in this shell" +msgstr "bu kabukta iş denetimi yok" + +#: lib/malloc/malloc.c:296 +#, c-format +msgid "malloc: failed assertion: %s\n" +msgstr "malloc: kanaat doğrulaması başarısız: %s\n" + +#: lib/malloc/malloc.c:312 +#, c-format +msgid "" +"\r\n" +"malloc: %s:%d: assertion botched\r\n" +msgstr "" +"\r\n" +"malloc: %s:%d: kanaat doğrulaması battı\r\n" + +#: lib/malloc/malloc.c:313 +#, fuzzy +msgid "unknown" +msgstr "%s: konak bilinmiyor" + +#: lib/malloc/malloc.c:797 +msgid "malloc: block on free list clobbered" +msgstr "malloc: serbest bırakılmış liste üstünde blok üste yazdı" + +#: lib/malloc/malloc.c:874 +msgid "free: called with already freed block argument" +msgstr "free: zaten serbest bırakılmış blok argümanı ile çağrıldı" + +#: lib/malloc/malloc.c:877 +msgid "free: called with unallocated block argument" +msgstr "free: ayrılmamış blok argümanı ile çağrıldı" + +#: lib/malloc/malloc.c:896 +msgid "free: underflow detected; mh_nbytes out of range" +msgstr "free: alttan taşma saptandı; mh_nbytes aralık dışında" + +#: lib/malloc/malloc.c:902 +msgid "free: start and end chunk sizes differ" +msgstr "free: başlangıç ve son tomar boyutları farklı" + +#: lib/malloc/malloc.c:1001 +msgid "realloc: called with unallocated block argument" +msgstr "realloc: ayrılmamış blok argümanı ile çağrıldı" + +#: lib/malloc/malloc.c:1016 +msgid "realloc: underflow detected; mh_nbytes out of range" +msgstr "realloc: alttan taşma saptandı; mh_nbytes aralık dışında" + +#: lib/malloc/malloc.c:1022 +msgid "realloc: start and end chunk sizes differ" +msgstr "realloc: başlangıç ve son tomar boyutları farklı" + +#: lib/malloc/table.c:177 +#, c-format +msgid "register_alloc: alloc table is full with FIND_ALLOC?\n" +msgstr "register_alloc: alloc tablosu FIND_ALLOC ile dolu olabilir mi?\n" + +#: lib/malloc/table.c:184 +#, c-format +msgid "register_alloc: %p already in table as allocated?\n" +msgstr "register_alloc: %p zaten ayrılmış olarak tabloda değil mi?\n" + +#: lib/malloc/table.c:220 +#, c-format +msgid "register_free: %p already in table as free?\n" +msgstr "register_free: %p zaten serbest bırakılmış olarak tabloda değil mi?\n" + +#: lib/sh/fmtulong.c:101 +msgid "invalid base" +msgstr "geçersiz taban" + +#: lib/sh/netopen.c:168 +#, c-format +msgid "%s: host unknown" +msgstr "%s: konak bilinmiyor" + +#: lib/sh/netopen.c:175 +#, c-format +msgid "%s: invalid service" +msgstr "%s: geçersiz hizmet" + +#: lib/sh/netopen.c:306 +#, c-format +msgid "%s: bad network path specification" +msgstr "%s: hatalı ağ yolu belirtimi" + +#: lib/sh/netopen.c:346 +msgid "network operations not supported" +msgstr "desteklenmeyen ağ işlemleri" + +#: mailcheck.c:433 +msgid "You have mail in $_" +msgstr "$_'de postanız var" + +#: mailcheck.c:458 +msgid "You have new mail in $_" +msgstr "$_'de yeni postanız var" + +#: mailcheck.c:474 +#, c-format +msgid "The mail in %s has been read\n" +msgstr "%s'deki posta okundu\n" + +#: make_cmd.c:322 +msgid "syntax error: arithmetic expression required" +msgstr "sözdizimi hatası: aritmetik ifadesi gerekli" + +#: make_cmd.c:324 +msgid "syntax error: `;' unexpected" +msgstr "sözdizimi hatası: `;' beklenmiyordu" + +#: make_cmd.c:325 +#, c-format +msgid "syntax error: `((%s))'" +msgstr "sözdizimi hatası: `((%s))'" + +#: make_cmd.c:567 +#, c-format +msgid "make_here_document: bad instruction type %d" +msgstr "make_here_document: hatalı yönerge türü %d" + +#: make_cmd.c:651 +#, c-format +msgid "here-document at line %d delimited by end-of-file (wanted `%s')" +msgstr "" + +#: make_cmd.c:746 +#, c-format +msgid "make_redirection: redirection instruction `%d' out of range" +msgstr "make_redirection: yönlendirme yönergesi `%d' aralık dışında" + +#: parse.y:2986 parse.y:3218 +#, c-format +msgid "unexpected EOF while looking for matching `%c'" +msgstr "`%c' için eşleşme aranırken beklenmedik dosya sonu" + +#: parse.y:3722 +msgid "unexpected EOF while looking for `]]'" +msgstr "`]]' aranırken beklenmedik dosya sonu" + +#: parse.y:3727 +#, c-format +msgid "syntax error in conditional expression: unexpected token `%s'" +msgstr "koşullu ifadede sözdizimi hatası: beklenmedik dizgecik `%s'" + +#: parse.y:3731 +msgid "syntax error in conditional expression" +msgstr "koşullu ifadede sözdizimi hatası" + +#: parse.y:3809 +#, c-format +msgid "unexpected token `%s', expected `)'" +msgstr "beklenmedik dizgecik `%s', `)' umuluyordu" + +#: parse.y:3813 +msgid "expected `)'" +msgstr "`)' umuluyordu" + +#: parse.y:3841 +#, c-format +msgid "unexpected argument `%s' to conditional unary operator" +msgstr "koşullu tek terimli işlece beklenmedik argüman `%s'" + +#: parse.y:3845 +msgid "unexpected argument to conditional unary operator" +msgstr "koşullu tek terimli işlece beklenmedik argüman" + +#: parse.y:3885 +#, c-format +msgid "unexpected token `%s', conditional binary operator expected" +msgstr "beklenmedik dizgecik `%s', koşullu iki terimli işleç umuluyordu" + +#: parse.y:3889 +msgid "conditional binary operator expected" +msgstr "koşullu iki terimli işleç umuluyordu" + +#: parse.y:3906 +#, c-format +msgid "unexpected argument `%s' to conditional binary operator" +msgstr "koşullu iki terimli işlece beklenmedik argüman `%s'" + +#: parse.y:3910 +msgid "unexpected argument to conditional binary operator" +msgstr "koşullu iki terimli işlece beklenmedik argüman" + +#: parse.y:3921 +#, c-format +msgid "unexpected token `%c' in conditional command" +msgstr "koşullu komutta beklenmeyen dizgecik `%c'" + +#: parse.y:3924 +#, c-format +msgid "unexpected token `%s' in conditional command" +msgstr "koşullu komutta beklenmeyen dizgecik `%s'" + +#: parse.y:3928 +#, c-format +msgid "unexpected token %d in conditional command" +msgstr "koşullu komutta beklenmeyen dizgecik %d" + +#: parse.y:5195 +#, c-format +msgid "syntax error near unexpected token `%s'" +msgstr "beklenmeyen dizgecik `%s' yakınında sözdizimi hatası" + +#: parse.y:5213 +#, c-format +msgid "syntax error near `%s'" +msgstr "`%s' yakınında sözdizimi hatası" + +#: parse.y:5223 +msgid "syntax error: unexpected end of file" +msgstr "sözdizimi hatası: beklenmeyen dosya sonu" + +#: parse.y:5223 +msgid "syntax error" +msgstr "sözdizimi hatası" + +#: parse.y:5285 +#, c-format +msgid "Use \"%s\" to leave the shell.\n" +msgstr "Kabuğu bırakmak için \"%s\" kullanın.\n" + +#: parse.y:5447 +msgid "unexpected EOF while looking for matching `)'" +msgstr "`)' için eşleşme aranırken beklenmedik dosya sonu" + +#: pcomplete.c:1016 +#, c-format +msgid "completion: function `%s' not found" +msgstr "completion: `%s' işlevi yok" + +#: pcomplib.c:179 +#, c-format +msgid "progcomp_insert: %s: NULL COMPSPEC" +msgstr "progcomp_insert: %s: NULL COMPSPEC" + +#: print_cmd.c:287 +#, c-format +msgid "print_command: bad connector `%d'" +msgstr "print_command: hatalı bağlayıcı `%d'" + +#: print_cmd.c:1347 +#, c-format +msgid "cprintf: `%c': invalid format character" +msgstr "cprintf: `%c': geçersiz biçim karakteri" + +#: redir.c:105 +msgid "file descriptor out of range" +msgstr "dosya tanıtıcı aralık dışında" + +#: redir.c:148 +#, c-format +msgid "%s: ambiguous redirect" +msgstr "%s: belirsiz yönlendirme" + +#: redir.c:152 +#, c-format +msgid "%s: cannot overwrite existing file" +msgstr "%s: mevcut dosyanın üzerine yazılamıyor" + +#: redir.c:157 +#, c-format +msgid "%s: restricted: cannot redirect output" +msgstr "%s: kısıtlı: çıktı yönlendirilemiyor" + +#: redir.c:162 +#, fuzzy, c-format +msgid "cannot create temp file for here-document: %s" +msgstr "belge için geçici dosya oluşturulamıyor: %s" + +#: redir.c:517 +msgid "/dev/(tcp|udp)/host/port not supported without networking" +msgstr "/dev/(tcp|udp)/host/port ağ olmaksızın desteklenmiyor" + +#: redir.c:1023 +msgid "redirection error: cannot duplicate fd" +msgstr "yönlendirme hatası: fd yinelenemiyor" + +#: shell.c:328 +msgid "could not find /tmp, please create!" +msgstr "/tmp bulunamadı, lütfen oluşturun!" + +#: shell.c:332 +msgid "/tmp must be a valid directory name" +msgstr "/tmp geçerli bir dizinin adı olmalıdır" + +#: shell.c:876 +#, c-format +msgid "%c%c: invalid option" +msgstr "%c%c: geçersiz seçenek" + +#: shell.c:1638 +msgid "I have no name!" +msgstr "Hiç ismim yok!" + +#: shell.c:1778 +#, c-format +msgid "GNU bash, version %s-(%s)\n" +msgstr "" + +#: shell.c:1779 +#, c-format +msgid "" +"Usage:\t%s [GNU long option] [option] ...\n" +"\t%s [GNU long option] [option] script-file ...\n" +msgstr "" +"Kullanım:\t%s [GNU uzun seçeneği] [seçenek] ...\n" +"\t%s [GNU uzun seçeneği] [seçenek] betik-dosyası ...\n" + +#: shell.c:1781 +msgid "GNU long options:\n" +msgstr "GNU uzun seçenekleri:\n" + +#: shell.c:1785 +msgid "Shell options:\n" +msgstr "Kabuk seçenekleri:\n" + +#: shell.c:1786 +msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n" +msgstr "\t-irsD veya -c KOMUT veya -O shopt_seçeneği\t(sadece çağrı için)\n" + +#: shell.c:1801 +#, c-format +msgid "\t-%s or -o option\n" +msgstr "\t-%s ya da -o seçeneği\n" + +#: shell.c:1807 +#, c-format +msgid "Type `%s -c \"help set\"' for more information about shell options.\n" +msgstr "" +"Kabuk seçenekleriyle ilgili daha fazla bilgi için `%s -c \"help set\"' " +"yazın.\n" + +#: shell.c:1808 +#, c-format +msgid "Type `%s -c help' for more information about shell builtin commands.\n" +msgstr "" +"Kabuk yerleşik komutlarıyla ilgili bilgi almak için `%s -c help' yazın.\n" + +#: shell.c:1809 +#, c-format +msgid "Use the `bashbug' command to report bugs.\n" +msgstr "" +"Yazılım hatalarını raporlamak için `bashbug' komutunu kullanınız.\n" +"Çeviri hatalarını ise adresine bildiriniz.\n" + +#: sig.c:583 +#, c-format +msgid "sigprocmask: %d: invalid operation" +msgstr "sigprocmask: %d: geçersiz işlem" + +#: 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 +#, fuzzy +msgid "Bus error" +msgstr "sözdizimi hatası" + +#: 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 +#, fuzzy +msgid "Terminated" +msgstr "kısıtlı" + +#: 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:1181 subst.c:1302 +#, c-format +msgid "bad substitution: no closing `%s' in %s" +msgstr "hatalı ikame: %2$s içinde kapatan `%1$s' yok" + +#: subst.c:2458 +#, c-format +msgid "%s: cannot assign list to array member" +msgstr "%s: dizi üyesine liste atanamaz" + +#: subst.c:4456 subst.c:4472 +msgid "cannot make pipe for process substitution" +msgstr "süreç ikamesi için borulama yapılamıyor" + +#: subst.c:4504 +msgid "cannot make child for process substitution" +msgstr "süreç ikamesi için alt süreç yapılamıyor" + +#: subst.c:4549 +#, c-format +msgid "cannot open named pipe %s for reading" +msgstr "isimli boru %s okumak için açılamıyor" + +#: subst.c:4551 +#, c-format +msgid "cannot open named pipe %s for writing" +msgstr "isimli boru %s yazmak için açılamıyor" + +#: subst.c:4569 +#, c-format +msgid "cannot duplicate named pipe %s as fd %d" +msgstr "isimli boru %s fd %d olarak yinelenemiyor" + +#: subst.c:4765 +msgid "cannot make pipe for command substitution" +msgstr "komut ikamesi için boru yapılamıyor" + +#: subst.c:4799 +msgid "cannot make child for command substitution" +msgstr "komut ikamesi için alt süreç yapılamıyor" + +#: subst.c:4816 +msgid "command_substitute: cannot duplicate pipe as fd 1" +msgstr "command_substitute: boru fd 1 olarak yinelenemiyor" + +#: subst.c:5318 +#, c-format +msgid "%s: parameter null or not set" +msgstr "%s: parametre boş ya da değer atanmamış" + +#: subst.c:5608 +#, c-format +msgid "%s: substring expression < 0" +msgstr "%s: altdizge ifadesi < 0" + +#: subst.c:6660 +#, c-format +msgid "%s: bad substitution" +msgstr "%s: hatalı ikame" + +#: subst.c:6740 +#, c-format +msgid "$%s: cannot assign in this way" +msgstr "$%s: bu yolla atama yapılmaz" + +#: subst.c:7479 +#, fuzzy, c-format +msgid "bad substitution: no closing \"`\" in %s" +msgstr "hatalı ikame: %2$s içinde kapatan `%1$s' yok" + +#: subst.c:8354 +#, c-format +msgid "no match: %s" +msgstr "eşleşme yok: %s" + +#: test.c:145 +msgid "argument expected" +msgstr "argüman bekleniyordu" + +#: test.c:154 +#, c-format +msgid "%s: integer expression expected" +msgstr "%s: tamsayı ifadesi bekleniyordu" + +#: test.c:262 +msgid "`)' expected" +msgstr "`)' bekleniyordu" + +#: test.c:264 +#, c-format +msgid "`)' expected, found %s" +msgstr "`)' bekleniyordu, %s bulundu" + +#: test.c:279 test.c:688 test.c:691 +#, c-format +msgid "%s: unary operator expected" +msgstr "%s: tek terimli işleci bekleniyordu" + +#: test.c:444 test.c:731 +#, c-format +msgid "%s: binary operator expected" +msgstr "%s: iki terimli işleci bekleniyordu" + +#: test.c:806 +msgid "missing `]'" +msgstr "eksik `]'" + +#: trap.c:201 +msgid "invalid signal number" +msgstr "geçersiz sinyal numarası" + +#: trap.c:324 +#, c-format +msgid "run_pending_traps: bad value in trap_list[%d]: %p" +msgstr "run_pending_traps:trap_list[%d] içinde hatalı değer: %p" + +#: trap.c:328 +#, c-format +msgid "" +"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself" +msgstr "" +"run_pending_traps: sinyal yakalayıcı SIG_DFL'dir, kendime %d (%s) göndererek" + +#: trap.c:372 +#, c-format +msgid "trap_handler: bad signal %d" +msgstr "trap_handler:hatalı sinyal %d" + +#: variables.c:358 +#, c-format +msgid "error importing function definition for `%s'" +msgstr "`%s'nin işlev tanımının içeri aktarılmasında hata" + +#: variables.c:736 +#, c-format +msgid "shell level (%d) too high, resetting to 1" +msgstr "kabuk düzeyi (%d) çok yüksek, 1 yapılıyor" + +#: variables.c:1898 +msgid "make_local_variable: no function context at current scope" +msgstr "make_local_variable: geçerli etki alanında hiç işlev bağlamı yok" + +#: variables.c:3127 +msgid "all_local_variables: no function context at current scope" +msgstr "all_local_variables: geçerli etki alanında hiç işlev bağlamı yok" + +#: variables.c:3344 variables.c:3353 +#, c-format +msgid "invalid character %d in exportstr for %s" +msgstr "%2$s için exportstr içinde geçersiz karakter %1$d" + +#: variables.c:3359 +#, c-format +msgid "no `=' in exportstr for %s" +msgstr "%s için exportstr içinde `=' yok" + +#: variables.c:3794 +msgid "pop_var_context: head of shell_variables not a function context" +msgstr "pop_var_context: kabuk değişkenlerinin başı bir işlev bağlamı değil" + +#: variables.c:3807 +msgid "pop_var_context: no global_variables context" +msgstr "pop_var_context: genel değişkenler bağlamı yok" + +#: variables.c:3881 +msgid "pop_scope: head of shell_variables not a temporary environment scope" +msgstr "" +"pop_scope: kabuk değişkenlerinin başı bir geçici ortam etki alanı değil" + +#: version.c:46 +#, fuzzy +msgid "Copyright (C) 2009 Free Software Foundation, Inc." +msgstr "Copyright © 2006 Free Software Foundation, Inc.\n" + +#: version.c:47 +msgid "" +"License GPLv3+: GNU GPL version 3 or later \n" +msgstr "" + +#: version.c:86 +#, c-format +msgid "GNU bash, version %s (%s)\n" +msgstr "" + +#: version.c:91 +#, c-format +msgid "This is free software; you are free to change and redistribute it.\n" +msgstr "" + +#: version.c:92 +#, c-format +msgid "There is NO WARRANTY, to the extent permitted by law.\n" +msgstr "" + +#: xmalloc.c:92 +#, c-format +msgid "xmalloc: cannot allocate %lu bytes (%lu bytes allocated)" +msgstr "xmalloc: %lu bayt ayrılamıyor (%lu bayt ayrıldı)" + +#: xmalloc.c:94 +#, c-format +msgid "xmalloc: cannot allocate %lu bytes" +msgstr "xmalloc: %lu bayt ayrılamıyor" + +#: xmalloc.c:114 +#, c-format +msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)" +msgstr "xrealloc: %lu bayt yeniden ayrılamıyor (%lu bayt ayrıldı)" + +#: xmalloc.c:116 +#, c-format +msgid "xrealloc: cannot allocate %lu bytes" +msgstr "xrealloc: %lu bayt yeniden ayrılamıyor" + +#: xmalloc.c:150 +#, c-format +msgid "xmalloc: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)" +msgstr "xmalloc: %s:%d: %lu bayt ayrılamıyor (%lu bayt ayrıldı)" + +#: xmalloc.c:152 +#, c-format +msgid "xmalloc: %s:%d: cannot allocate %lu bytes" +msgstr "xmalloc: %s:%d: %lu bayt ayrılamıyor" + +#: xmalloc.c:174 +#, c-format +msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)" +msgstr "xrealloc: %s:%d: %lu bayt yeniden ayrılamıyor (%lu bayt ayrıldı)" + +#: xmalloc.c:176 +#, c-format +msgid "xrealloc: %s:%d: cannot allocate %lu bytes" +msgstr "xrealloc: %s:%d: %lu bayt yeniden ayrılamıyor" + +#: builtins.c:43 +msgid "alias [-p] [name[=value] ... ]" +msgstr "" + +#: builtins.c:47 +msgid "unalias [-a] name [name ...]" +msgstr "" + +#: builtins.c:51 +msgid "" +"bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-" +"x keyseq:shell-command] [keyseq:readline-function or readline-command]" +msgstr "" + +#: builtins.c:54 +msgid "break [n]" +msgstr "" + +#: builtins.c:56 +msgid "continue [n]" +msgstr "" + +#: builtins.c:58 +msgid "builtin [shell-builtin [arg ...]]" +msgstr "" + +#: builtins.c:61 +msgid "caller [expr]" +msgstr "" + +#: builtins.c:64 +msgid "cd [-L|-P] [dir]" +msgstr "" + +#: builtins.c:66 +msgid "pwd [-LP]" +msgstr "" + +#: builtins.c:68 +msgid ":" +msgstr "" + +#: builtins.c:70 +msgid "true" +msgstr "" + +#: builtins.c:72 +msgid "false" +msgstr "" + +#: builtins.c:74 +msgid "command [-pVv] command [arg ...]" +msgstr "" + +#: builtins.c:76 +msgid "declare [-aAfFilrtux] [-p] [name[=value] ...]" +msgstr "" + +#: builtins.c:78 +msgid "typeset [-aAfFilrtux] [-p] name[=value] ..." +msgstr "" + +#: builtins.c:80 +msgid "local [option] name[=value] ..." +msgstr "" + +#: builtins.c:83 +msgid "echo [-neE] [arg ...]" +msgstr "" + +#: builtins.c:87 +msgid "echo [-n] [arg ...]" +msgstr "" + +#: builtins.c:90 +msgid "enable [-a] [-dnps] [-f filename] [name ...]" +msgstr "" + +#: builtins.c:92 +msgid "eval [arg ...]" +msgstr "" + +#: builtins.c:94 +msgid "getopts optstring name [arg]" +msgstr "" + +#: builtins.c:96 +msgid "exec [-cl] [-a name] [command [arguments ...]] [redirection ...]" +msgstr "" + +#: builtins.c:98 +msgid "exit [n]" +msgstr "" + +#: builtins.c:100 +msgid "logout [n]" +msgstr "" + +#: builtins.c:103 +msgid "fc [-e ename] [-lnr] [first] [last] or fc -s [pat=rep] [command]" +msgstr "" + +#: builtins.c:107 +msgid "fg [job_spec]" +msgstr "" + +#: builtins.c:111 +msgid "bg [job_spec ...]" +msgstr "" + +#: builtins.c:114 +msgid "hash [-lr] [-p pathname] [-dt] [name ...]" +msgstr "" + +#: builtins.c:117 +msgid "help [-ds] [pattern ...]" +msgstr "" + +#: builtins.c:121 +msgid "" +"history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg " +"[arg...]" +msgstr "" + +#: builtins.c:125 +msgid "jobs [-lnprs] [jobspec ...] or jobs -x command [args]" +msgstr "" + +#: builtins.c:129 +msgid "disown [-h] [-ar] [jobspec ...]" +msgstr "" + +#: builtins.c:132 +msgid "" +"kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l " +"[sigspec]" +msgstr "" + +#: builtins.c:134 +msgid "let arg [arg ...]" +msgstr "" + +#: builtins.c:136 +msgid "" +"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-p prompt] [-t " +"timeout] [-u fd] [name ...]" +msgstr "" + +#: builtins.c:138 +msgid "return [n]" +msgstr "" + +#: builtins.c:140 +msgid "set [--abefhkmnptuvxBCHP] [-o option-name] [arg ...]" +msgstr "" + +#: builtins.c:142 +msgid "unset [-f] [-v] [name ...]" +msgstr "" + +#: builtins.c:144 +msgid "export [-fn] [name[=value] ...] or export -p" +msgstr "" + +#: builtins.c:146 +msgid "readonly [-af] [name[=value] ...] or readonly -p" +msgstr "" + +#: builtins.c:148 +#, fuzzy +msgid "shift [n]" +msgstr "shift sayısı" + +#: builtins.c:150 +#, fuzzy +msgid "source filename [arguments]" +msgstr "dosya ismi argüman gerekir" + +#: builtins.c:152 +#, fuzzy +msgid ". filename [arguments]" +msgstr "dosya ismi argüman gerekir" + +#: builtins.c:155 +msgid "suspend [-f]" +msgstr "" + +#: builtins.c:158 +msgid "test [expr]" +msgstr "" + +#: builtins.c:160 +msgid "[ arg... ]" +msgstr "" + +#: builtins.c:162 +msgid "times" +msgstr "" + +#: builtins.c:164 +msgid "trap [-lp] [[arg] signal_spec ...]" +msgstr "" + +#: builtins.c:166 +msgid "type [-afptP] name [name ...]" +msgstr "" + +#: builtins.c:169 +msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]" +msgstr "" + +#: builtins.c:172 +msgid "umask [-p] [-S] [mode]" +msgstr "" + +#: builtins.c:175 +msgid "wait [id]" +msgstr "" + +#: builtins.c:179 +msgid "wait [pid]" +msgstr "" + +#: builtins.c:182 +msgid "for NAME [in WORDS ... ] ; do COMMANDS; done" +msgstr "" + +#: builtins.c:184 +msgid "for (( exp1; exp2; exp3 )); do COMMANDS; done" +msgstr "" + +#: builtins.c:186 +msgid "select NAME [in WORDS ... ;] do COMMANDS; done" +msgstr "" + +#: builtins.c:188 +msgid "time [-p] pipeline" +msgstr "" + +#: builtins.c:190 +msgid "case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac" +msgstr "" + +#: builtins.c:192 +msgid "" +"if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else " +"COMMANDS; ] fi" +msgstr "" + +#: builtins.c:194 +msgid "while COMMANDS; do COMMANDS; done" +msgstr "" + +#: builtins.c:196 +msgid "until COMMANDS; do COMMANDS; done" +msgstr "" + +#: builtins.c:198 +msgid "function name { COMMANDS ; } or name () { COMMANDS ; }" +msgstr "" + +#: builtins.c:200 +msgid "{ COMMANDS ; }" +msgstr "" + +#: builtins.c:202 +msgid "job_spec [&]" +msgstr "" + +#: builtins.c:204 +#, fuzzy +msgid "(( expression ))" +msgstr "ifade bekleniyordu" + +#: builtins.c:206 +#, fuzzy +msgid "[[ expression ]]" +msgstr "ifade bekleniyordu" + +#: builtins.c:208 +msgid "variables - Names and meanings of some shell variables" +msgstr "" + +#: builtins.c:211 +msgid "pushd [-n] [+N | -N | dir]" +msgstr "" + +#: builtins.c:215 +msgid "popd [-n] [+N | -N]" +msgstr "" + +#: builtins.c:219 +msgid "dirs [-clpv] [+N] [-N]" +msgstr "" + +#: builtins.c:222 +msgid "shopt [-pqsu] [-o] [optname ...]" +msgstr "" + +#: builtins.c:224 +msgid "printf [-v var] format [arguments]" +msgstr "" + +#: builtins.c:227 +msgid "" +"complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W " +"wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] " +"[name ...]" +msgstr "" + +#: builtins.c:231 +msgid "" +"compgen [-abcdefgjksuv] [-o option] [-A action] [-G globpat] [-W wordlist] " +"[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]" +msgstr "" + +#: builtins.c:235 +msgid "compopt [-o|+o option] [name ...]" +msgstr "" + +#: builtins.c:238 +msgid "" +"mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c " +"quantum] [array]" +msgstr "" + +#: builtins.c:250 +#, fuzzy +msgid "" +"Define or display aliases.\n" +" \n" +" Without arguments, `alias' prints the list of aliases in the reusable\n" +" form `alias NAME=VALUE' on standard output.\n" +" \n" +" Otherwise, an alias is defined for each NAME whose VALUE is given.\n" +" A trailing space in VALUE causes the next word to be checked for\n" +" alias substitution when the alias is expanded.\n" +" \n" +" Options:\n" +" -p\tPrint all defined aliases in a reusable format\n" +" \n" +" Exit Status:\n" +" alias returns true unless a NAME is supplied for which no alias has " +"been\n" +" defined." +msgstr "" +"\ralias [-p] [Ä°SÄ°M[=DEĞER] ...]\n" +" `alias' argümansız olarak veya -p seçeneği ile kullanıldığında rumuz\n" +" listesini alias Ä°SÄ°M=DEĞER biçiminde standart çıktıya basar.\n" +" Aksi takdirde belirtilen Ä°SÄ°M belirtilen DEĞERe rumuz olarak atanır.\n" +" DEĞERden sonra gelen boşluklar takma ad yorumlaması sırasında\n" +" sonraki sözcüğün takma ad ikamesi için sınanmasına sebep olur.\n" +" Hiçbir şeyin rumuzu olmayan bir Ä°SÄ°M verilmedikçe alias doğru döndürür." + +#: builtins.c:272 +#, fuzzy +msgid "" +"Remove each NAME from the list of defined aliases.\n" +" \n" +" Options:\n" +" -a\tremove all alias definitions.\n" +" \n" +" Return success unless a NAME is not an existing alias." +msgstr "" +"\runalias [-a] [Ä°SÄ°M ... ]\n" +" Ä°SÄ°Mleri tanımlı rümuzlar listesinden siler. Eğer -a seçeneği " +"verilmişse,\n" +" tüm rümuz tanımları silinir." + +#: builtins.c:285 +#, fuzzy +msgid "" +"Set Readline key bindings and variables.\n" +" \n" +" Bind a key sequence to a Readline function or a macro, or set a\n" +" Readline variable. The non-option argument syntax is equivalent to\n" +" that found in ~/.inputrc, but must be passed as a single argument:\n" +" e.g., bind '\"\\C-x\\C-r\": re-read-init-file'.\n" +" \n" +" Options:\n" +" -m keymap Use KEYMAP as the keymap for the duration of this\n" +" command. Acceptable keymap names are emacs,\n" +" emacs-standard, emacs-meta, emacs-ctlx, vi, vi-" +"move,\n" +" vi-command, and vi-insert.\n" +" -l List names of functions.\n" +" -P List function names and bindings.\n" +" -p List functions and bindings in a form that can be\n" +" reused as input.\n" +" -S List key sequences that invoke macros and their " +"values\n" +" -s List key sequences that invoke macros and their " +"values\n" +" in a form that can be reused as input.\n" +" -V List variable names and values\n" +" -v List variable names and values in a form that can\n" +" be reused as input.\n" +" -q function-name Query about which keys invoke the named function.\n" +" -u function-name Unbind all keys which are bound to the named " +"function.\n" +" -r keyseq Remove the binding for KEYSEQ.\n" +" -f filename Read key bindings from FILENAME.\n" +" -x keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n" +" \t\t\t\tKEYSEQ is entered.\n" +" \n" +" Exit Status:\n" +" bind returns 0 unless an unrecognized option is given or an error occurs." +msgstr "" +"\rbind [-m TUŞDÄ°ZÄ°SÄ°] [-lpsvPSV]\n" +"bind [-m TUŞDÄ°ZÄ°SÄ°] [-q İŞLEV] [-u İŞLEV] [-r TUŞDÄ°ZÄ°SÄ°]\n" +"bind [-m TUŞDÄ°ZÄ°SÄ°] -f DOSYAÄ°SMÄ°\n" +"bind [-m TUŞDÄ°ZÄ°SÄ°] -x TUŞDÄ°ZÄ°SÄ°:KABUK-KOMUTU\n" +"bind [-m TUŞDÄ°ZÄ°SÄ°] TUŞDÄ°ZÄ°SÄ°:İŞLEV-Ä°SMÄ°\n" +"bind [READLINE-KOMUTU]\n" +" Bir tuş dizilimini bir Readline işlevine veya makrosuna bağlar ya da\n" +" bir Readline değişkeni atar. Seçeneksiz argüman sözdizimi ~/.initrc\n" +" içinde bulunana eşdeğerdir, ama tek bir argüman olarak aktarılması\n" +" gerekir: bind '\"\\C-x\\C-r\": re-read-init-file'.\n" +" bind şu seçenekleri kabul eder:\n" +" -m TUŞDÄ°ZÄ°SÄ° Bu komut süresince kısayol olarak TUŞDÄ°ZÄ°SÄ°\n" +" kullanılır. Olası kısayol isimleri: emacs,\n" +" emacs-standard, emacs-meta, emacs-ctlx, vi,\n" +" vi-move, vi-command ve vi-insert.\n" +" -l İşlev isimlerini listeler.\n" +" -P İşlev isimlerini ve kısayolları listeler.\n" +" -p İşlev isimlerini ve kısayolları, girdi olarak\n" +" kullanılabilir biçimde listeler.\n" +" -r TUŞDÄ°ZÄ°SÄ° TUŞDÄ°ZÄ°SÄ° için mevcut kısayolları kaldırır.\n" +" -x TUŞDÄ°ZÄ°SÄ°:KABUK-KOMUTU\n" +" TUŞDÄ°ZÄ°SÄ°nin her girilişinde KABUK-KOMUTUnun\n" +" çalıştırılmasını sağlar.\n" +" -f DOSYAÄ°SMÄ° Tuş kısayollarını DOSYAÄ°SMÄ°nden okur.\n" +" -q İŞLEV Ä°smi belirtilen İŞLEVi çağıran tuşlar hakkında " +"sorgu.\n" +" -u İŞLEV Ä°smi belirtilen İŞLEVi çağıran tüm tuş " +"kısayollarını\n" +" kaldırır.\n" +" -V Değişken isimlerini ve değerlerini listeler.\n" +" -v Değişken isimlerini ve değerlerini girdi olarak\n" +" kullanılabilir biçimde listeler.\n" +" -S Makroları çağıran tuş dizilerini ve değerlerini\n" +" listeler\n" +" -s Makroları çağıran tuş dizilerini ve değerlerini\n" +" girdi olarak kullanılabilir biçimde listeler." + +#: builtins.c:322 +#, fuzzy +msgid "" +"Exit for, while, or until loops.\n" +" \n" +" Exit a FOR, WHILE or UNTIL loop. If N is specified, break N enclosing\n" +" loops.\n" +" \n" +" Exit Status:\n" +" The exit status is 0 unless N is not greater than or equal to 1." +msgstr "" +"\rcontinue [N]\n" +" FOR, WHILE veya UNTIL döngülerinin sonraki yinelemesinden devam edilir.\n" +" N verilirse dışa doğru N. döngüden devam edilir. N >= 1 olmalıdır." + +#: builtins.c:334 +#, fuzzy +msgid "" +"Resume for, while, or until loops.\n" +" \n" +" Resumes the next iteration of the enclosing FOR, WHILE or UNTIL loop.\n" +" If N is specified, resumes the Nth enclosing loop.\n" +" \n" +" Exit Status:\n" +" The exit status is 0 unless N is not greater than or equal to 1." +msgstr "" +"\rcontinue [N]\n" +" FOR, WHILE veya UNTIL döngülerinin sonraki yinelemesinden devam edilir.\n" +" N verilirse dışa doğru N. döngüden devam edilir. N >= 1 olmalıdır." + +#: builtins.c:346 +msgid "" +"Execute shell builtins.\n" +" \n" +" Execute SHELL-BUILTIN with arguments ARGs without performing command\n" +" lookup. This is useful when you wish to reimplement a shell builtin\n" +" as a shell function, but need to execute the builtin within the " +"function.\n" +" \n" +" Exit Status:\n" +" Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is\n" +" not a shell builtin.." +msgstr "" + +#: builtins.c:361 +#, fuzzy +msgid "" +"Return the context of the current subroutine call.\n" +" \n" +" Without EXPR, returns \"$line $filename\". With EXPR, returns\n" +" \"$line $subroutine $filename\"; this extra information can be used to\n" +" provide a stack trace.\n" +" \n" +" The value of EXPR indicates how many call frames to go back before the\n" +" current one; the top frame is frame 0.\n" +" \n" +" Exit Status:\n" +" Returns 0 unless the shell is not executing a shell function or EXPR\n" +" is invalid." +msgstr "" +"\rcaller [Ä°FADE]\n" +" O anki altyordam çağrısının bağlamını döndürür.\n" +"\n" +" Ä°FADE olmaksızın, caller o anki altyordam çağrısının kaynak dosya " +"ismini\n" +" ve satır numarasını gösterir. Eğer Ä°FADE olarak negatiften farklı " +"bir\n" +" tamsayı belirtilmişse caller o anki icra çağrısı yığıtındaki o " +"konuma\n" +" karşılık gelen kaynak dosyası, satır numarası ve altyordam " +"ismini\n" +" gösterir; bu ek bilgi bir yığıtın izini sürmek için " +"kullanılabilir.\n" +"\n" +" Ä°FADE değeri şu ankinden önce kaç çağrı çerçevesinin geri " +"döneceğini\n" +" belirtir; tepe çerçeve 0. çerçevedir." + +#: builtins.c:379 +#, fuzzy +msgid "" +"Change the shell working directory.\n" +" \n" +" Change the current directory to DIR. The default DIR is the value of " +"the\n" +" HOME shell variable.\n" +" \n" +" The variable CDPATH defines the search path for the directory " +"containing\n" +" DIR. Alternative directory names in CDPATH are separated by a colon " +"(:).\n" +" A null directory name is the same as the current directory. If DIR " +"begins\n" +" with a slash (/), then CDPATH is not used.\n" +" \n" +" If the directory is not found, and the shell option `cdable_vars' is " +"set,\n" +" the word is assumed to be a variable name. If that variable has a " +"value,\n" +" its value is used for DIR.\n" +" \n" +" Options:\n" +" -L\tforce symbolic links to be followed\n" +" -P\tuse the physical directory structure without following symbolic\n" +" \tlinks\n" +" \n" +" The default is to follow symbolic links, as if `-L' were specified.\n" +" \n" +" Exit Status:\n" +" Returns 0 if the directory is changed; non-zero otherwise." +msgstr "" +"\rcd [-L|-P] [DÄ°ZÄ°N]\n" +" Bulunulan dizinden DÄ°ZÄ°Ne geçilmesini sağlar. DÄ°ZÄ°N verilmezse $HOME " +"ile\n" +" belirtilen dizine geçilir. CDPATH kabuk değişkeni mevcutsa " +"değeri,\n" +" DÄ°ZÄ°Ni arama yolu olarak kullanılır. CDPATH içindeki diğer dizin " +"isimleri\n" +" birer ikinokta imi (:) ile ayrılır. DÄ°ZÄ°N bir / ile başlıyorsa " +"CDPATH\n" +" kullanılmaz. Eğer dizin yoksa ve `cdable_vars' kabuk seçeneği " +"etkinse\n" +" sözcük bir değişken ismi olarak denenir. Eğer bu değişken bir " +"değere\n" +" sahipse bu değerdeki dizine geçilir. -P seçeneği sembolik " +"bağların\n" +" izlenmeyip fiziksel dizin yapısının kullanılmasını sağlar; -L " +"seçeneği\n" +" sembolik bağların mutlaka izlenmesini sağlar." + +#: builtins.c:407 +msgid "" +"Print the name of the current working directory.\n" +" \n" +" Options:\n" +" -L\tprint the value of $PWD if it names the current working\n" +" \tdirectory\n" +" -P\tprint the physical directory, without any symbolic links\n" +" \n" +" By default, `pwd' behaves as if `-L' were specified.\n" +" \n" +" Exit Status:\n" +" Returns 0 unless an invalid option is given or the current directory\n" +" cannot be read." +msgstr "" + +#: builtins.c:424 +#, fuzzy +msgid "" +"Null command.\n" +" \n" +" No effect; the command does nothing.\n" +" \n" +" Exit Status:\n" +" Always succeeds." +msgstr "" +"\r:\n" +" Etkisizdir; bu komut birşey yapmaz. Sıfır çıkış kodu döndürülür." + +#: builtins.c:435 +msgid "" +"Return a successful result.\n" +" \n" +" Exit Status:\n" +" Always succeeds." +msgstr "" + +#: builtins.c:444 +#, fuzzy +msgid "" +"Return an unsuccessful result.\n" +" \n" +" Exit Status:\n" +" Always fails." +msgstr "" +"\rfalse\n" +" Başarısız bir sonuç döndürür." + +#: builtins.c:453 +msgid "" +"Execute a simple command or display information about commands.\n" +" \n" +" Runs COMMAND with ARGS suppressing shell function lookup, or display\n" +" information about the specified COMMANDs. Can be used to invoke " +"commands\n" +" on disk when a function with the same name exists.\n" +" \n" +" Options:\n" +" -p\tuse a default value for PATH that is guaranteed to find all of\n" +" \tthe standard utilities\n" +" -v\tprint a description of COMMAND similar to the `type' builtin\n" +" -V\tprint a more verbose description of each COMMAND\n" +" \n" +" Exit Status:\n" +" Returns exit status of COMMAND, or failure if COMMAND is not found." +msgstr "" + +#: builtins.c:472 +#, fuzzy +msgid "" +"Set variable values and attributes.\n" +" \n" +" Declare variables and give them attributes. If no NAMEs are given,\n" +" display the attributes and values of all variables.\n" +" \n" +" Options:\n" +" -f\trestrict action or display to function names and definitions\n" +" -F\trestrict display to function names only (plus line number and\n" +" \tsource file when debugging)\n" +" -p\tdisplay the attributes and value of each NAME\n" +" \n" +" Options which set attributes:\n" +" -a\tto make NAMEs indexed arrays (if supported)\n" +" -A\tto make NAMEs associative arrays (if supported)\n" +" -i\tto make NAMEs have the `integer' attribute\n" +" -l\tto convert NAMEs to lower case on assignment\n" +" -r\tto make NAMEs readonly\n" +" -t\tto make NAMEs have the `trace' attribute\n" +" -u\tto convert NAMEs to upper case on assignment\n" +" -x\tto make NAMEs export\n" +" \n" +" Using `+' instead of `-' turns off the given attribute.\n" +" \n" +" Variables with the integer attribute have arithmetic evaluation (see\n" +" the `let' command) performed when the variable is assigned a value.\n" +" \n" +" When used in a function, `declare' makes NAMEs local, as with the " +"`local'\n" +" command.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" +"\rdeclare [-afFirtx] [-p] [Ä°SÄ°M[=DEĞER] ...]\n" +" Değişkenlerin özellikleri ile bildirilmesini sağlar. Hiçbir Ä°SÄ°M\n" +" verilmezse değişkenleri ve değerlerini listeler. -p seçeneği ile her\n" +" Ä°SÄ°M için değerler ve özellikleri gösterecektir.\n" +"\n" +" Seçenekler:\n" +"\n" +" -a Her Ä°SÄ°M bir dizi değişkenidir(destekleniyorsa)\n" +" -f Sadece işlev isimleri kullanılır.\n" +" -F Tanımları olmaksızın sadece işlev isimleri (ve hata ayıklaması\n" +" yapılıyorsa kaynak dosya isimleri ve satır sayıları) gösterilir\n" +" -i Her Ä°SÄ°Me `integer' özniteliği verir.\n" +" -r Ä°SÄ°Mleri salt-okunur yapar.\n" +" -t Her Ä°SÄ°Me `trace' özniteliği verir.\n" +" -x Ä°SÄ°Mleri ihraç edilebilir yapar\n" +"\n" +" Tamsayı öznitelikli değişkenlere bir DEĞER atandığında aritmetik\n" +" değerlendirme uygulanır (bkz, `let').\n" +"\n" +" Değişken değerleri gösterilirken, -f bir işlevin ismini ve tanımını\n" +" gösterir. -F seçeneği ile sadece işlev isminin gösterilmesini sağlar.\n" +"\n" +" `-' yerine `+' kullanarak belirtilen öznitelik kapatılabilir.\n" +" Bir işlevde kullanıldığında declare her Ä°SÄ°Mi `local' komutu " +"kullanılmış\n" +" gibi yerel yapar." + +#: builtins.c:508 +msgid "" +"Set variable values and attributes.\n" +" \n" +" Obsolete. See `help declare'." +msgstr "" + +#: builtins.c:516 +msgid "" +"Define local variables.\n" +" \n" +" Create a local variable called NAME, and give it VALUE. OPTION can\n" +" be any option accepted by `declare'.\n" +" \n" +" Local variables can only be used within a function; they are visible\n" +" only to the function where they are defined and its children.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied, an error occurs,\n" +" or the shell is not executing a function." +msgstr "" + +#: builtins.c:533 +#, fuzzy +msgid "" +"Write arguments to the standard output.\n" +" \n" +" Display the ARGs on the standard output followed by a newline.\n" +" \n" +" Options:\n" +" -n\tdo not append a newline\n" +" -e\tenable interpretation of the following backslash escapes\n" +" -E\texplicitly suppress interpretation of backslash escapes\n" +" \n" +" `echo' interprets the following backslash-escaped characters:\n" +" \\a\talert (bell)\n" +" \\b\tbackspace\n" +" \\c\tsuppress further output\n" +" \\e\tescape character\n" +" \\f\tform feed\n" +" \\n\tnew line\n" +" \\r\tcarriage return\n" +" \\t\thorizontal tab\n" +" \\v\tvertical tab\n" +" \\\\\tbackslash\n" +" \\0nnn\tthe character whose ASCII code is NNN (octal). NNN can be\n" +" \t0 to 3 octal digits\n" +" \\xHH\tthe eight-bit character whose value is HH (hexadecimal). HH\n" +" \tcan be one or two hex digits\n" +" \n" +" Exit Status:\n" +" Returns success unless a write error occurs." +msgstr "" +"\recho [-neE] [ARG ...]\n" +" ARGümanlarını çıktılar. -n seçeneği ile satırsonu karakteri " +"baskılanır.\n" +" -e seçeneği ile aşağıdaki tersbölü öncelemeli karakterlerin " +"yorumlanması\n" +" etkinleştirilir:\n" +" \t\\a\tsesli uyarı (bell)\n" +" \t\\b\tgerisilme\n" +" \t\\c\tkendisinden sonra gelen satırsonu karakterini kaldırır\n" +" \t\\E\tescape karakteri\n" +" \t\\f\tsayfa ileri\n" +" \t\\n\tsatırsonu\n" +" \t\\r\tsatırbaşı\n" +" \t\\t\tyatay sekme\n" +" \t\\v\tdüşey sekme\n" +" \t\\\\\ttersbölü\n" +" \t\\0nnn\tsekizlik değeri nnn olan sekiz bitlik karakter\n" +" \t \t(0, 1, 2 ya da 3 haneli olabilir)\n" +" \n" +" -E seçeneği ile yukarıdaki karakterlerin yorumlanmasını öntanımlı\n" +" olarak etkin olduğu sistemlerde bile kapatabilirsiniz." + +#: builtins.c:567 +msgid "" +"Write arguments to the standard output.\n" +" \n" +" Display the ARGs on the standard output followed by a newline.\n" +" \n" +" Options:\n" +" -n\tdo not append a newline\n" +" \n" +" Exit Status:\n" +" Returns success unless a write error occurs." +msgstr "" + +#: builtins.c:582 +msgid "" +"Enable and disable shell builtins.\n" +" \n" +" Enables and disables builtin shell commands. Disabling allows you to\n" +" execute a disk command which has the same name as a shell builtin\n" +" without using a full pathname.\n" +" \n" +" Options:\n" +" -a\tprint a list of builtins showing whether or not each is enabled\n" +" -n\tdisable each NAME or display a list of disabled builtins\n" +" -p\tprint the list of builtins in a reusable format\n" +" -s\tprint only the names of Posix `special' builtins\n" +" \n" +" Options controlling dynamic loading:\n" +" -f\tLoad builtin NAME from shared object FILENAME\n" +" -d\tRemove a builtin loaded with -f\n" +" \n" +" Without options, each NAME is enabled.\n" +" \n" +" To use the `test' found in $PATH instead of the shell builtin\n" +" version, type `enable -n test'.\n" +" \n" +" Exit Status:\n" +" Returns success unless NAME is not a shell builtin or an error occurs." +msgstr "" + +#: builtins.c:610 +msgid "" +"Execute arguments as a shell command.\n" +" \n" +" Combine ARGs into a single string, use the result as input to the " +"shell,\n" +" and execute the resulting commands.\n" +" \n" +" Exit Status:\n" +" Returns exit status of command or success if command is null." +msgstr "" + +#: builtins.c:622 +#, fuzzy +msgid "" +"Parse option arguments.\n" +" \n" +" Getopts is used by shell procedures to parse positional parameters\n" +" as options.\n" +" \n" +" OPTSTRING contains the option letters to be recognized; if a letter\n" +" is followed by a colon, the option is expected to have an argument,\n" +" which should be separated from it by white space.\n" +" \n" +" Each time it is invoked, getopts will place the next option in the\n" +" shell variable $name, initializing name if it does not exist, and\n" +" the index of the next argument to be processed into the shell\n" +" variable OPTIND. OPTIND is initialized to 1 each time the shell or\n" +" a shell script is invoked. When an option requires an argument,\n" +" getopts places that argument into the shell variable OPTARG.\n" +" \n" +" getopts reports errors in one of two ways. If the first character\n" +" of OPTSTRING is a colon, getopts uses silent error reporting. In\n" +" this mode, no error messages are printed. If an invalid option is\n" +" seen, getopts places the option character found into OPTARG. If a\n" +" required argument is not found, getopts places a ':' into NAME and\n" +" sets OPTARG to the option character found. If getopts is not in\n" +" silent mode, and an invalid option is seen, getopts places '?' into\n" +" NAME and unsets OPTARG. If a required argument is not found, a '?'\n" +" is placed in NAME, OPTARG is unset, and a diagnostic message is\n" +" printed.\n" +" \n" +" If the shell variable OPTERR has the value 0, getopts disables the\n" +" printing of error messages, even if the first character of\n" +" OPTSTRING is not a colon. OPTERR has the value 1 by default.\n" +" \n" +" Getopts normally parses the positional parameters ($0 - $9), but if\n" +" more arguments are given, they are parsed instead.\n" +" \n" +" Exit Status:\n" +" Returns success if an option is found; fails if the end of options is\n" +" encountered or an error occurs." +msgstr "" +"\rgetopts SÇNDÄ°ZGESÄ° AD [ARG ...]\n" +" getopts kabuk betikleri tarafından konumsal parametreleri " +"çözümlemekte\n" +" kullanılır.\n" +"\n" +" SÇNDÄ°ZGESÄ° tanınan seçenek karakterlerini içerir; bir karakterden " +"sonra\n" +" bir ikinokta imi (:) geliyorsa seçeneğin ondan bir boşlukla ayrılmış " +"bir\n" +" argümana sahip olacağı umulur.\n" +"\n" +" Her çağrılışında getopts işlenecek sonraki argümanın indisini " +"OPTIND\n" +" kabuk değişkenine ve AD değişkenini de mevcut değilse " +"ilklendirerek\n" +" sonraki seçeneği $AD kabuk değişkenine yerleştirir. OPTIND kabuğun ya " +"da\n" +" bir kabuk betiğinin her çağrılışında 1 ile ilklendirilir. Bir " +"seçenek\n" +" bir argüman gerektirdiğinde getopts argümanı OPTARG " +"değişkenine\n" +" yerleştirir.\n" +"\n" +" getopts hataları iki yolla raporlayabilir. Eğer SÇNDÄ°ZGESÄ°nin " +"ilk\n" +" karakteri bir ':' ise sessiz hata raporlaması kullanılır. Bu " +"kipte\n" +" hiçbir hata iletisi basılmaz. Bir geçersiz seçenek saptanırsa " +"getopt\n" +" OPTARG'a bulunan seçenek karakterini yerleştirir. Bir gerekli " +"argüman\n" +" verilmemişse, getopts AD'a bir ':' yerleştirir. Getopts sessiz " +"kipte\n" +" değilse ve geçersiz bir seçenek görüldüğünde, getopts ? karakterini " +"AD'a\n" +" yerleştirir ve OPTARG değişkenini kaldırır. Eğer bir gerekli " +"argüman\n" +" bulunamazsa ve getopts sessiz kipte değilse AD'a ? " +"karakteri\n" +" yerleştirilir, OPTARG kaldırılır ve bir tanı iletisi basılır.\n" +"\n" +" OPTERR değişkeninin değeri 0 ise SÇNDÄ°ZGESÄ°nin ilk karakteri bir " +"':'\n" +" olmasa bile hata iletileri gösterilmez. OPTERR değişkeninin " +"öntanımlı\n" +" değeri 1'dir.\n" +"\n" +" getopts normalde konumsal parametreleri ($0 - $9) çözümlese de " +"başka\n" +" argümanlar verilmişse bunları çözümler." + +#: builtins.c:664 +msgid "" +"Replace the shell with the given command.\n" +" \n" +" Execute COMMAND, replacing this shell with the specified program.\n" +" ARGUMENTS become the arguments to COMMAND. If COMMAND is not " +"specified,\n" +" any redirections take effect in the current shell.\n" +" \n" +" Options:\n" +" -a name\tpass NAME as the zeroth argument to COMMAND\n" +" -c\t\texecute COMMAND with an empty environment\n" +" -l\t\tplace a dash in the zeroth argument to COMMAND\n" +" \n" +" If the command cannot be executed, a non-interactive shell exits, " +"unless\n" +" the shell option `execfail' is set.\n" +" \n" +" Exit Status:\n" +" Returns success unless COMMAND is not found or a redirection error " +"occurs." +msgstr "" + +#: builtins.c:685 +#, fuzzy +msgid "" +"Exit the shell.\n" +" \n" +" Exits the shell with a status of N. If N is omitted, the exit status\n" +" is that of the last command executed." +msgstr "" +"\rexit [N]\n" +" N durumu ile dönerek kabuk çıkar. N verilmezse son çalıştırılan komutun\n" +" çıkış durumu döner." + +#: builtins.c:694 +msgid "" +"Exit a login shell.\n" +" \n" +" Exits a login shell with exit status N. Returns an error if not " +"executed\n" +" in a login shell." +msgstr "" + +#: builtins.c:704 +#, fuzzy +msgid "" +"Display or execute commands from the history list.\n" +" \n" +" fc is used to list or edit and re-execute commands from the history " +"list.\n" +" FIRST and LAST can be numbers specifying the range, or FIRST can be a\n" +" string, which means the most recent command beginning with that\n" +" string.\n" +" \n" +" Options:\n" +" -e ENAME\tselect which editor to use. Default is FCEDIT, then " +"EDITOR,\n" +" \t\tthen vi\n" +" -l \tlist lines instead of editing\n" +" -n\tomit line numbers when listing\n" +" -r\treverse the order of the lines (newest listed first)\n" +" \n" +" With the `fc -s [pat=rep ...] [command]' format, COMMAND is\n" +" re-executed after the substitution OLD=NEW is performed.\n" +" \n" +" A useful alias to use with this is r='fc -s', so that typing `r cc'\n" +" runs the last command beginning with `cc' and typing `r' re-executes\n" +" the last command.\n" +" \n" +" Exit Status:\n" +" Returns success or status of executed command; non-zero if an error " +"occurs." +msgstr "" +"\rfc [-e DÜZENLEYÄ°CÄ°] [-nlr] [Ä°LK] [SON]\n" +"fc -s [ESKÄ°=YENÄ°] [KOMUT]\n" +" fc, komut geçmişi listesindeki komutları listelemek, düzenlemek " +"ve\n" +" yeniden çalıştırmak için kullanılır. Ä°LK ve SON olarak numara " +"vererek\n" +" bir aralık belirtilebileceği gibi Ä°LK bir dizge de olabilir, bu " +"takdirde\n" +" bu dizge ile başlayan en son komut anlamına gelir.\n" +"\n" +" -e DÜZENLEYÄ°CÄ° ile hangi düzenleyicinin kullanılacağı belirtilir.\n" +" Belirtilmezse sırayla FCEDIT, EDITOR değişkenlerine bakılır\n" +" bunlarda da birşey belirtilmemişse vi kullanılır.\n" +"\n" +" -l ile komutlar stardart çıktıya listelenir.\n" +" -n ile listede satır numaraları bulunmaz.\n" +" -r ile komutlar ters sırada (en yeniler listesi olarak) listelenir\n" +"\n" +" `fc -s [ESKÄ°=YENÄ°] [KOMUT]' biçiminde, ESKÄ°=YENÄ° ikamesi yapıldıktan\n" +" sonra komut yeniden çalıştırılır.\n" +"\n" +" Bununla kullanılacak yararlı bir rümuz r='fc -s' olurdu.\n" +" Böylece `r cc' yazarak `cc' ile başlayan son komut,\n" +" r' yazarak en son komut çalıştırılabilir." + +#: builtins.c:734 +#, fuzzy +msgid "" +"Move job to the foreground.\n" +" \n" +" Place the job identified by JOB_SPEC in the foreground, making it the\n" +" current job. If JOB_SPEC is not present, the shell's notion of the\n" +" current job is used.\n" +" \n" +" Exit Status:\n" +" Status of command placed in foreground, or failure if an error occurs." +msgstr "" +"\rfg [İŞ_BELÄ°RTÄ°MÄ°]\n" +" İŞ_BELÄ°RTÄ°MÄ°ni önalana yerleştirir ve onu o an ki iş yapar.\n" +" Eğer İŞ_BELÄ°RTÄ°MÄ° belirtilmemişse kabuk iş belirtimi olarak\n" +" o an ki işi kullanır." + +#: builtins.c:749 +#, fuzzy +msgid "" +"Move jobs to the background.\n" +" \n" +" Place the jobs identified by each JOB_SPEC in the background, as if " +"they\n" +" had been started with `&'. If JOB_SPEC is not present, the shell's " +"notion\n" +" of the current job is used.\n" +" \n" +" Exit Status:\n" +" Returns success unless job control is not enabled or an error occurs." +msgstr "" +"\rbg [İŞ_BELÄ°RTÄ°MÄ°]\n" +" `&' ile başlatılmışçasına İŞ_BELÄ°RTÄ°MÄ°ni artalana yerleştirir.\n" +" İŞ_BELÄ°RTÄ°MÄ° verilmemişse, iş belirtimi olarak o an ki iş kullanılır." + +#: builtins.c:763 +msgid "" +"Remember or display program locations.\n" +" \n" +" Determine and remember the full pathname of each command NAME. If\n" +" no arguments are given, information about remembered commands is " +"displayed.\n" +" \n" +" Options:\n" +" -d\t\tforget the remembered location of each NAME\n" +" -l\t\tdisplay in a format that may be reused as input\n" +" -p pathname\tuse PATHNAME is the full pathname of NAME\n" +" -r\t\tforget all remembered locations\n" +" -t\t\tprint the remembered location of each NAME, preceding\n" +" \t\teach location with the corresponding NAME if multiple\n" +" \t\tNAMEs are given\n" +" Arguments:\n" +" NAME\t\tEach NAME is searched for in $PATH and added to the list\n" +" \t\tof remembered commands.\n" +" \n" +" Exit Status:\n" +" Returns success unless NAME is not found or an invalid option is given." +msgstr "" + +#: builtins.c:788 +msgid "" +"Display information about builtin commands.\n" +" \n" +" Displays brief summaries of builtin commands. If PATTERN is\n" +" specified, gives detailed help on all commands matching PATTERN,\n" +" otherwise the list of help topics is printed.\n" +" \n" +" Options:\n" +" -d\toutput short description for each topic\n" +" -m\tdisplay usage in pseudo-manpage format\n" +" -s\toutput only a short usage synopsis for each topic matching\n" +" \tPATTERN\n" +" \n" +" Arguments:\n" +" PATTERN\tPattern specifiying a help topic\n" +" \n" +" Exit Status:\n" +" Returns success unless PATTERN is not found or an invalid option is " +"given." +msgstr "" + +#: builtins.c:812 +#, fuzzy +msgid "" +"Display or manipulate the history list.\n" +" \n" +" Display the history list with line numbers, prefixing each modified\n" +" entry with a `*'. An argument of N lists only the last N entries.\n" +" \n" +" Options:\n" +" -c\tclear the history list by deleting all of the entries\n" +" -d offset\tdelete the history entry at offset OFFSET.\n" +" \n" +" -a\tappend history lines from this session to the history file\n" +" -n\tread all history lines not already read from the history file\n" +" -r\tread the history file and append the contents to the history\n" +" \tlist\n" +" -w\twrite the current history to the history file\n" +" \tand append them to the history list\n" +" \n" +" -p\tperform history expansion on each ARG and display the result\n" +" \twithout storing it in the history list\n" +" -s\tappend the ARGs to the history list as a single entry\n" +" \n" +" If FILENAME is given, it is used as the history file. Otherwise,\n" +" if $HISTFILE has a value, that is used, else ~/.bash_history.\n" +" \n" +" If the $HISTTIMEFORMAT variable is set and not null, its value is used\n" +" as a format string for strftime(3) to print the time stamp associated\n" +" with each displayed history entry. No time stamps are printed " +"otherwise.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or an error occurs." +msgstr "" +"\rhistory [-c] [-d KONUM] [N]\n" +"history [-anrw] [DOSYAÄ°SMÄ°]\n" +"history -ps ARG [ARG ...]\n" +" Seçeneksiz kullanıldığında komut geçmişi listesini satır numaraları ile\n" +" gösterir. Değişiklik yapılmış satırlarda numaralardan önce bir `*'\n" +" vardır. Argüman olarak N belirtildiğinde sadece son N satır listelenir.\n" +" -c komut geçmişi listesini tüm girdilerini silerek temizler. -d ile\n" +" satır numarası KONUM olan geçmiş girdisi silinir. -w ile geçmiş listesi\n" +" çıktısı geçmiş dosyasına yazılır. -r ile dosya okunur ve içeriği geçmiş\n" +" listesine eklenir. -a ile oturumunun başlangıcından itibaren girilen\n" +" geçmiş satırları geçmiş dosyasına eklenir. -n ile geçmiş dosyasından\n" +" henüz okunmamış olan geçmiş satırları, geçmiş listesine eklenir.\n" +"\n" +" DOSYAÄ°SMÄ° verilmezse, $HISTFILE değişkenindeki değer, o da yoksa\n" +" ~/.bash_history dosyası kullanılır. -s ile seçenek olmayan ARGümanlar\n" +" geçmiş listesine tek bir girdi olarak eklenir. -p seçeneği ile\n" +" argümanlar üzerinde geçmiş yorumlaması uygulanır ve geçmiş listesinde\n" +" hiçbir şey saklanmaksızın sonuçlar standart çıktıda gösterilir.\n" +"\n" +" $HISTTIMEFORMAT kabuk değişkeni tanımlanmış ve anlamlı bir değere\n" +" sahipse, değeri, gösterilen her geçmiş girdisi ile ilişkili zaman\n" +" damgasını basacak olan strftime(3) işlevine biçim girdisi olur; aksi\n" +" takdirde hiç zaman damgası basılmaz." + +#: builtins.c:848 +#, fuzzy +msgid "" +"Display status of jobs.\n" +" \n" +" Lists the active jobs. JOBSPEC restricts output to that job.\n" +" Without options, the status of all active jobs is displayed.\n" +" \n" +" Options:\n" +" -l\tlists process IDs in addition to the normal information\n" +" -n\tlist only processes that have changed status since the last\n" +" \tnotification\n" +" -p\tlists process IDs only\n" +" -r\trestrict output to running jobs\n" +" -s\trestrict output to stopped jobs\n" +" \n" +" If -x is supplied, COMMAND is run after all job specifications that\n" +" appear in ARGS have been replaced with the process ID of that job's\n" +" process group leader.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or an error occurs.\n" +" If -x is used, returns the exit status of COMMAND." +msgstr "" +"\rjobs [-lnprs] [İŞ_BELÄ°RTÄ°MÄ° ...]\n" +"jobs -x KOMUT [ARG ...]\n" +" Etkin işleri listeler. -l ile normal bilgilere ek olarak süreç\n" +" kimliklerini de (PID) listeler. -p ile işlerin sadece süreç\n" +" kimliklerini listeler. -n ile sadece kullanıcının durumları\n" +" hakkında aldığı son uyarıdan beri durumları değişen işler hakkında\n" +" bilgi gösterir. İŞ_BELÄ°RTÄ°MÄ° verilmişse, çıktı bu iş ile ilgili\n" +" bilgilerle sınırlıdır. -r ile sadece çalışmakta olan, -s ile ise\n" +" sadece durmuş olan işler listelenir. Seçeneksiz kullanıldığında jobs\n" +" tüm etkin işlerin durumlarını basar. -x seçeneği verilmişse,\n" +" ARGümanlar ile belirtilen tüm iş belirtimleri, işlerin süreç grup\n" +" liderinin süreç grup kimliğine yerleştirilip KOMUT çalıştırılır." + +#: builtins.c:875 +msgid "" +"Remove jobs from current shell.\n" +" \n" +" Removes each JOBSPEC argument from the table of active jobs. Without\n" +" any JOBSPECs, the shell uses its notion of the current job.\n" +" \n" +" Options:\n" +" -a\tremove all jobs if JOBSPEC is not supplied\n" +" -h\tmark each JOBSPEC so that SIGHUP is not sent to the job if the\n" +" \tshell receives a SIGHUP\n" +" -r\tremove only running jobs\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option or JOBSPEC is given." +msgstr "" + +#: builtins.c:894 +#, fuzzy +msgid "" +"Send a signal to a job.\n" +" \n" +" Send the processes identified by PID or JOBSPEC the signal named by\n" +" SIGSPEC or SIGNUM. If neither SIGSPEC nor SIGNUM is present, then\n" +" SIGTERM is assumed.\n" +" \n" +" Options:\n" +" -s sig\tSIG is a signal name\n" +" -n sig\tSIG is a signal number\n" +" -l\tlist the signal names; if arguments follow `-l' they are\n" +" \tassumed to be signal numbers for which names should be listed\n" +" \n" +" Kill is a shell builtin for two reasons: it allows job IDs to be used\n" +" instead of process IDs, and allows processes to be killed if the limit\n" +" on processes that you can create is reached.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or an error occurs." +msgstr "" +"\rkill [-s SÄ°NYAL | -n SÄ°NYALNUM | -SÄ°NYAL] PID | İŞ_BELÄ°RTÄ°MÄ° ...\n" +"kill -l [SÄ°NYAL]\n" +" PID ile belirtilen süreç kimliğine veya İŞ_BELÄ°RTÄ°MÄ° ile belirtilen\n" +" işin sürecine SÄ°NYAL veya SÄ°NYALNUM ile belirtilen sinyali gönderir.\n" +" SÄ°NYAL ya harf büyüklüğüne duyarsız olarak SIGINT gibi bir sinyal ismi\n" +" (SIG öneki olmadan da verilebilir) ya da bir sinyal numarası olabilir.\n" +" SÄ°NYALNUM ise bir sinyal numarası olmalıdır. SÄ°NYAL veya SÄ°NYALNUM\n" +" verilmezse öntanımlı olarak SIGTERM kullanılır. -l seçeneği ile sinyal\n" +" isimleri listelenir. Argümanlı -l seçeneğinde argümanların listelenecek\n" +" sinyal isimlerinin numaraları olduğu varsayılır. Kill iki sebepten\n" +" dolayı bir kabuk yerleşiğidir: süreç kimlikleri yerine iş " +"kimliklerinin\n" +" kullanımını mümkün kılar ve eğer oluşturabileceğiniz süreç sayısı\n" +" sınırını aşarsanız başka bir süreci öldürecek bir süreci başlatmak\n" +" zorunda kalmazsınız." + +#: builtins.c:917 +#, fuzzy +msgid "" +"Evaluate arithmetic expressions.\n" +" \n" +" Evaluate each ARG as an arithmetic expression. Evaluation is done in\n" +" fixed-width integers with no check for overflow, though division by 0\n" +" is trapped and flagged as an error. The following list of operators is\n" +" grouped into levels of equal-precedence operators. The levels are " +"listed\n" +" in order of decreasing precedence.\n" +" \n" +" \tid++, id--\tvariable post-increment, post-decrement\n" +" \t++id, --id\tvariable pre-increment, pre-decrement\n" +" \t-, +\t\tunary minus, plus\n" +" \t!, ~\t\tlogical and bitwise negation\n" +" \t**\t\texponentiation\n" +" \t*, /, %\t\tmultiplication, division, remainder\n" +" \t+, -\t\taddition, subtraction\n" +" \t<<, >>\t\tleft and right bitwise shifts\n" +" \t<=, >=, <, >\tcomparison\n" +" \t==, !=\t\tequality, inequality\n" +" \t&\t\tbitwise AND\n" +" \t^\t\tbitwise XOR\n" +" \t|\t\tbitwise OR\n" +" \t&&\t\tlogical AND\n" +" \t||\t\tlogical OR\n" +" \texpr ? expr : expr\n" +" \t\t\tconditional operator\n" +" \t=, *=, /=, %=,\n" +" \t+=, -=, <<=, >>=,\n" +" \t&=, ^=, |=\tassignment\n" +" \n" +" Shell variables are allowed as operands. The name of the variable\n" +" is replaced by its value (coerced to a fixed-width integer) within\n" +" an expression. The variable need not have its integer attribute\n" +" turned on to be used in an expression.\n" +" \n" +" Operators are evaluated in order of precedence. Sub-expressions in\n" +" parentheses are evaluated first and may override the precedence\n" +" rules above.\n" +" \n" +" Exit Status:\n" +" If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise.." +msgstr "" +"\rlet Ä°FADE [Ä°FADE ...]\n" +" Her Ä°FADE değerlendirilecek bir aritmetik ifadesidir. Değerlendirme\n" +" sabit genişlikli tamsayılarla, taşma denetimi uygulanmaksızın yapılır,\n" +" sıfırla bölme bir hata olarak bayraklanır ve onun için bir sinyal\n" +" kapanı vardır. İşleçler için öncelikler ve çağrışımsallık ve değerler\n" +" C dilindeki ile aynıdır. Aşağıdaki işleçler eşit öncelikli işleç\n" +" düzeylerine göre öbeklenmiş ve azalan öncelikle listelenmişlerdir.\n" +"\n" +" id++ id-- sonradan-arttırım ve sonradan-eksiltim\n" +" ++id --id önceden-arttırım ve önceden-eksiltim\n" +" - + tek terimli eksi ve artı imi\n" +" ! ~ mantıksal ve bitseviyesinde olumsuzlama\n" +" ** üs imi\n" +" * / % çarpma, bölme, kalan\n" +" + - toplama, çıkarma\n" +" << >> bitseviyesinde sola ve sağa ötelemeler\n" +" <= >= < > karşılaştırmalar\n" +" == != eşitlik, eşitsizlik\n" +" & bitseviyesinde VE\n" +" ^ bitseviyesinde ayrıcalıklı VEYA\n" +" | bitseviyesinde VEYA\n" +" && mantıksal VE\n" +" || mantıksal VEYA\n" +" ifade ? ifade : ifade koşullu üç terimlisi\n" +" = *= /= %=\n" +" += -= <<= \n" +" >>= &= ^= |=\n" +" atama iki terimlileri\n" +"\n" +" Kabuk değişkenleri terim olarak kullanılabilir. Ä°fade içinde değişken\n" +" ismi değeriyle değiştirilir (sabit genişlikli tamsayıya zorlanır).\n" +" Bir kabuk değişkeni ifade içinde kullanılırken tamsayı niteliğinin\n" +" etkinleştirilmesini gerektirmez.\n" +"\n" +" İşleçler öncelik sırasına göre değerlendirilir. Parantez içine alınmış\n" +" alt ifadeler öncelikle değerlendirilir. Bu nedenle parantez içine alma\n" +" işleçlerin önceliklerini arttırmak amacıyla kullanılabilir.\n" +"\n" +" Son ifade'nin sonucu 0 ise dönüş durumu 1 dir, aksi takdirde 0 dır." + +#: builtins.c:962 +#, fuzzy +msgid "" +"Read a line from the standard input and split it into fields.\n" +" \n" +" Reads a single line from the standard input, or from file descriptor FD\n" +" if the -u option is supplied. The line is split into fields as with " +"word\n" +" splitting, and the first word is assigned to the first NAME, the second\n" +" word to the second NAME, and so on, with any leftover words assigned to\n" +" the last NAME. Only the characters found in $IFS are recognized as " +"word\n" +" delimiters.\n" +" \n" +" If no NAMEs are supplied, the line read is stored in the REPLY " +"variable.\n" +" \n" +" Options:\n" +" -a array\tassign the words read to sequential indices of the array\n" +" \t\tvariable ARRAY, starting at zero\n" +" -d delim\tcontinue until the first character of DELIM is read, rather\n" +" \t\tthan newline\n" +" -e\t\tuse Readline to obtain the line in an interactive shell\n" +" -i text\tUse TEXT as the initial text for Readline\n" +" -n nchars\treturn after reading NCHARS characters rather than waiting\n" +" \t\tfor a newline\n" +" -p prompt\toutput the string PROMPT without a trailing newline before\n" +" \t\tattempting to read\n" +" -r\t\tdo not allow backslashes to escape any characters\n" +" -s\t\tdo not echo input coming from a terminal\n" +" -t timeout\ttime out and return failure if a complete line of input " +"is\n" +" \t\tnot read withint TIMEOUT seconds. The value of the TMOUT\n" +" \t\tvariable is the default timeout. TIMEOUT may be a\n" +" \t\tfractional number. If TIMEOUT is 0, read returns success only\n" +" \t\tif input is available on the specified file descriptor. The\n" +" \t\texit status is greater than 128 if the timeout is exceeded\n" +" -u fd\t\tread from file descriptor FD instead of the standard input\n" +" \n" +" Exit Status:\n" +" The return code is zero, unless end-of-file is encountered, read times " +"out,\n" +" or an invalid file descriptor is supplied as the argument to -u." +msgstr "" +"\rread [-ers] [-u DSYTNT] [-t ZMAŞM] [-p Ä°STEM] [-a DÄ°ZÄ°]\n" +" [-n KRKSAY] [-d AYRAÇ] [Ä°SÄ°M ...]\n" +" Standart girdiden ya da -u seçeneği ile sağlanan DoSYaTaNıTıcıdan tek\n" +" satır okur ve ilk sözcük ilk Ä°SÄ°Me, ikinci sözcük ikinci Ä°SÄ°Me ve böyle\n" +" giderek, aradaki sözcükler ve ayraçlar son Ä°SÄ°Me kadar atanır. Satırı\n" +" sözcüklere ayırmakta sadece $IFS değişkeninin değerindeki karakterler\n" +" kullanılır. Tersbölü satırın devam ettirilmesi için ve kendinden sonra\n" +" gelen özel karakterlerin yorumlanması için kullanılabilir. Hiç isim\n" +" verilmemişse, satırın tamamı okunur ve REPLY değişkenine atanır. -r\n" +" verildiğinde tersbölü bir önceleme karakteri olarak ele alınmaz,\n" +" dolayısıyla tersbölü-satırsonu çifti satırın alt satırda devam " +"edeceğini\n" +" belirtmekte kullanılamaz. -d ile satırın satırsonu karakterine " +"kadar\n" +" değil AYRAÇ karakterine kadar okunması sağlanır. -p ile " +"girdi\n" +" beklendiğini belirtecek Ä°STEM dizgesi satırsonu karakteri " +"olmaksızın\n" +" görüntülenir. Ä°stem sadece girdi bir uçbirimden gelecekse " +"gösterilir.\n" +" -a ile sözcükler sırayla DÄ°ZÄ° dizisinin elemanlarına atanır; dizinin " +"ilk\n" +" elemanının indisi 0'dır; atama yapılmadan önce DÄ°ZÄ° dizisinin " +"tüm\n" +" elemanları silinir; diğer Ä°SÄ°M argümanları yoksayılır. -e ile " +"kabuk\n" +" etkileşimliyse, satırı sağlamak için readline kullanılır. -n " +"ile\n" +" satırın okunması KRKSAYıncı karakterde sona erer; satırın kalanı " +"yok\n" +" sayılır. -s ile sessiz kipe girilir, girdi bir uçbirimden " +"geliyorsa\n" +" karakterler yansılanmaz. -t ile satır ZMAŞM saniye sonra " +"hala\n" +" sonlandırılmamışsa read zamanaşımına düşer ve hata döner. " +"$TMOUT\n" +" değişkeni bir değerle atanmışsa değeri öntanımlı zamanaşımı " +"değeri\n" +" olarak ele alınır. Bu seçenek, girdi bir uçbirim ya da " +"boruhattından\n" +" okunmuyorsa etkisizdir. Dosyasonu karakteri (Ctrl-D) " +"saptanmadıkça,\n" +" okuma zamanaşımına düşmedikçe ya da -u seçeneği ile sağlanan\n" +" DoSYaTaNıTıcı geçersiz olmadıkça dönüş durumu sıfırdır." + +#: builtins.c:1002 +msgid "" +"Return from a shell function.\n" +" \n" +" Causes a function or sourced script to exit with the return value\n" +" specified by N. If N is omitted, the return status is that of the\n" +" last command executed within the function or script.\n" +" \n" +" Exit Status:\n" +" Returns N, or failure if the shell is not executing a function or script." +msgstr "" + +#: builtins.c:1015 +#, fuzzy +msgid "" +"Set or unset values of shell options and positional parameters.\n" +" \n" +" Change the value of shell attributes and positional parameters, or\n" +" display the names and values of shell variables.\n" +" \n" +" Options:\n" +" -a Mark variables which are modified or created for export.\n" +" -b Notify of job termination immediately.\n" +" -e Exit immediately if a command exits with a non-zero status.\n" +" -f Disable file name generation (globbing).\n" +" -h Remember the location of commands as they are looked up.\n" +" -k All assignment arguments are placed in the environment for a\n" +" command, not just those that precede the command name.\n" +" -m Job control is enabled.\n" +" -n Read commands but do not execute them.\n" +" -o option-name\n" +" Set the variable corresponding to option-name:\n" +" allexport same as -a\n" +" braceexpand same as -B\n" +" emacs use an emacs-style line editing interface\n" +" errexit same as -e\n" +" errtrace same as -E\n" +" functrace same as -T\n" +" hashall same as -h\n" +" histexpand same as -H\n" +" history enable command history\n" +" ignoreeof the shell will not exit upon reading EOF\n" +" interactive-comments\n" +" allow comments to appear in interactive commands\n" +" keyword same as -k\n" +" monitor same as -m\n" +" noclobber same as -C\n" +" noexec same as -n\n" +" noglob same as -f\n" +" nolog currently accepted but ignored\n" +" notify same as -b\n" +" nounset same as -u\n" +" onecmd same as -t\n" +" physical same as -P\n" +" pipefail the return value of a pipeline is the status of\n" +" the last command to exit with a non-zero status,\n" +" or zero if no command exited with a non-zero " +"status\n" +" posix change the behavior of bash where the default\n" +" operation differs from the Posix standard to\n" +" match the standard\n" +" privileged same as -p\n" +" verbose same as -v\n" +" vi use a vi-style line editing interface\n" +" xtrace same as -x\n" +" -p Turned on whenever the real and effective user ids do not match.\n" +" Disables processing of the $ENV file and importing of shell\n" +" functions. Turning this option off causes the effective uid and\n" +" gid to be set to the real uid and gid.\n" +" -t Exit after reading and executing one command.\n" +" -u Treat unset variables as an error when substituting.\n" +" -v Print shell input lines as they are read.\n" +" -x Print commands and their arguments as they are executed.\n" +" -B the shell will perform brace expansion\n" +" -C If set, disallow existing regular files to be overwritten\n" +" by redirection of output.\n" +" -E If set, the ERR trap is inherited by shell functions.\n" +" -H Enable ! style history substitution. This flag is on\n" +" by default when the shell is interactive.\n" +" -P If set, do not follow symbolic links when executing commands\n" +" such as cd which change the current directory.\n" +" -T If set, the DEBUG trap is inherited by shell functions.\n" +" - Assign any remaining arguments to the positional parameters.\n" +" The -x and -v options are turned off.\n" +" \n" +" Using + rather than - causes these flags to be turned off. The\n" +" flags can also be used upon invocation of the shell. The current\n" +" set of flags may be found in $-. The remaining n ARGs are positional\n" +" parameters and are assigned, in order, to $1, $2, .. $n. If no\n" +" ARGs are given, all shell variables are printed.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given." +msgstr "" +"\rset [--abefhkmnptuvxBCHP] [-o seçenek] [arg ...]\n" +" -a Müteakip komutların ortamına aktarılmak üzere değiştirilen veya\n" +" oluşturulan işlev ve değişkenleri imler.\n" +" -b Sonlandırılan artalan işlerin durumunun anında raporlanmasını " +"sağlar.\n" +" -e Bir komut sıfırdan farklı bir çıkış durumu ile çıkarsa anında " +"çıkar.\n" +" -f Dosya ismi üretimini (globbing) iptal eder.\n" +" -h Çalıştırmak için aranan komutları bulur ve yerlerini hatırlar " +"(hash).\n" +" -k Atama deyimleri şeklindeki tüm argümanları komut isminden önce\n" +" belirtmek yerine ortama yerleştirir.\n" +" -m İş denetimi etkinleştirilir.\n" +" -n Komutları okur ama onları çalıştırmaz.\n" +" -o seçenek-ismi\n" +" seçenek-ismi olarak aşağıdakilerden biri verildiğinde karşılığı\n" +" olan seçenekler kullanılmış olur:\n" +" allexport -a ile aynı\n" +" braceexpand -B ile aynı\n" +" emacs emacs tarzı bir satır düzenleme arayüzü kullanılır\n" +" errexit -e ile aynı\n" +" errtrace -E ile aynı\n" +" functrace -T ile aynı\n" +" hashall -h ile aynı\n" +" histexpand -H ile aynı\n" +" history komut geçmişini etkinleştirir\n" +" ignoreeof kabuk dosyasonu karakterine rastlanınca çıkmaz.\n" +" interactive-comments\n" +" etkileşimli komutlarda görünecek açıklamalara\n" +" izin verir.\n" +" keyword -k ile aynı\n" +" monitor -m ile aynı\n" +" noclobber -C ile aynı\n" +" noexec -n ile aynı\n" +" noglob -f ile aynı\n" +" nolog o an kabul edilir ama yoksayılır\n" +" notify -b ile aynı\n" +" nounset -u ile aynı\n" +" onecmd -t ile aynı\n" +" physical -P ile aynı\n" +" pipefail bir boruhattının dönüş değeri ya sıfırdan farklı " +"bir\n" +" durumla çıkan son (en sağdaki) komutun değeridir " +"ya\n" +" da boruhattındaki tüm komutlar başarılıysa " +"sıfırdır\n" +" posix Standart uyumu için POSIX 1003.2 " +"standardındakinden\n" +" farklı öntanımlı işlemde Bash davranışını " +"değiştirir\n" +" privileged -p ile aynı\n" +" verbose -v ile aynı\n" +" vi vi tarzı bir satır düzenleme arayüzü kullanılır\n" +" xtrace -x ile aynı\n" +" -p Ayrıcalıklı kipi etkinleştirir. Bu kipte, $BASH_ENV ve $ENV " +"dosyaları\n" +" işlenmez, kabuk işlevleri ortamdan miras alınmaz. Kabuk, gerçek\n" +" kullanıcı (grup) kimliği ile aynı olmayan etkin kullanıcı (grup)\n" +" kimliği ile başlatılmışsa ve -p seçeneği verilmemişse, bu eylemler\n" +" alınır ve etkin kullanıcı (grup) kimliği, gerçek kullanıcı (grup)\n" +" kimliğine ayarlanır. Başlatırken -p seçeneği verilmişse, etkin\n" +" kullanıcı (grup) kimliği sıfırlanmaz. Bu seçeneğin kapatılması " +"etkin\n" +" kullanıcı ve grup kimliklerinin gerçek kullanıcı ve grup " +"kimliklerine\n" +" ayarlanmasına sebep olur.\n" +" -t Tek bir komutu okuyup çalıştırdıktan sonra çıkar..\n" +" -u Parametre yorumlaması uygulanırken bir hata sonucu değişkenlerin\n" +" kaldırılmasına benzer bir davranış gösterir.\n" +" -v Kabuk girdi satırlarını okunuyormuş gibi basar.\n" +" -x Komutları ve argümanlarını çalıştırılıyormuş gibi basar.\n" +" -B Kabuk kaşlı ayraç yorumlaması uygular.\n" +" -C Çıktının > kullanılarak yönlendirilmesini ve <> kullanılarak mevcut\n" +" dosyaların üzerine yazılmasını engeller.\n" +" -E Etkinse ERR üstündeki bir tuzak kabuk işlevlerince miras alınır.\n" +" -H ! tarzı geçmiş ikamesini etkinleştirir. Bu seçenek etkileşimli\n" +" kabuklarda öntanımlı olarak etkindir.\n" +" -P Verildiğinde, örneğin çalışılan dizini değiştirmek için cd gibi bir\n" +" komut sembolik bağları izlemez.\n" +" -T Etkinse DEBUG ve RETURN üstündeki bir tuzak kabuk işlevlerince\n" +" miras alınır.\n" +" - Seçeneklerin sonunu belirtir. Kalan tüm argümanlar konumsal\n" +" parametrelere ayarlanır. -x ve -v seçenekleri kapatılır.\n" +"\n" +" Seçeneklerdeki - işaretleri yerine + kullanıldığında bu seçenekler\n" +" kapatılır. Ayrıca, seçenekler kabuğun çağrılması sırasında da\n" +" kullanılabilir. Seçeneklerin mevcut listesi $- içinde bulunabilir.\n" +" Kalan N argüman konumsal parametrelerdir ve $1, $2, ... $N şeklinde\n" +" atanır. Özel parametre # ise N'e ayarlanır. Hiç argüman verilmezse,\n" +" tüm kabuk değişkenleri basılır." + +#: builtins.c:1097 +msgid "" +"Unset values and attributes of shell variables and functions.\n" +" \n" +" For each NAME, remove the corresponding variable or function.\n" +" \n" +" Options:\n" +" -f\ttreat each NAME as a shell function\n" +" -v\ttreat each NAME as a shell variable\n" +" \n" +" Without options, unset first tries to unset a variable, and if that " +"fails,\n" +" tries to unset a function.\n" +" \n" +" Some variables cannot be unset; also see `readonly'.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or a NAME is read-only." +msgstr "" + +#: builtins.c:1117 +msgid "" +"Set export attribute for shell variables.\n" +" \n" +" Marks each NAME for automatic export to the environment of subsequently\n" +" executed commands. If VALUE is supplied, assign VALUE before " +"exporting.\n" +" \n" +" Options:\n" +" -f\trefer to shell functions\n" +" -n\tremove the export property from each NAME\n" +" -p\tdisplay a list of all exported variables and functions\n" +" \n" +" An argument of `--' disables further option processing.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or NAME is invalid." +msgstr "" + +#: builtins.c:1136 +msgid "" +"Mark shell variables as unchangeable.\n" +" \n" +" Mark each NAME as read-only; the values of these NAMEs may not be\n" +" changed by subsequent assignment. If VALUE is supplied, assign VALUE\n" +" before marking as read-only.\n" +" \n" +" Options:\n" +" -a\trefer to indexed array variables\n" +" -A\trefer to associative array variables\n" +" -f\trefer to shell functions\n" +" -p\tdisplay a list of all readonly variables and functions\n" +" \n" +" An argument of `--' disables further option processing.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or NAME is invalid." +msgstr "" + +#: builtins.c:1157 +msgid "" +"Shift positional parameters.\n" +" \n" +" Rename the positional parameters $N+1,$N+2 ... to $1,$2 ... If N is\n" +" not given, it is assumed to be 1.\n" +" \n" +" Exit Status:\n" +" Returns success unless N is negative or greater than $#." +msgstr "" + +#: builtins.c:1169 builtins.c:1184 +#, fuzzy +msgid "" +"Execute commands from a file in the current shell.\n" +" \n" +" Read and execute commands from FILENAME in the current shell. The\n" +" entries in $PATH are used to find the directory containing FILENAME.\n" +" If any ARGUMENTS are supplied, they become the positional parameters\n" +" when FILENAME is executed.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed in FILENAME; fails if\n" +" FILENAME cannot be read." +msgstr "" +"\rsource DOSYAÄ°SMÄ° [ARGÜMANlar]\n" +". DOSYAÄ°SMÄ° [ARGÜMANlar]\n" +" DOSYAÄ°SMÄ°ndeki komutlar okunur ve çalıştırılır. DOSYAÄ°SMÄ° / " +"içermiyorsa\n" +" DOSYAÄ°SMÄ°nin yerini bulmak için $PATH değişkeni kullanılır. Bash " +"POSIX\n" +" kipinde değilse ve $PATH içinde DOSYAÄ°SMÄ° yoksa bulunulan dizine " +"bakılır.\n" +" Verilmiş ARGÜMANlar varsa, DOSYAÄ°SMÄ° çalıştırılırken bunlar " +"konumsal\n" +" parametreler haline gelir. Aksi takdirde, konumsal " +"parametreler\n" +" değiştirilmez." + +#: builtins.c:1200 +msgid "" +"Suspend shell execution.\n" +" \n" +" Suspend the execution of this shell until it receives a SIGCONT signal.\n" +" Unless forced, login shells cannot be suspended.\n" +" \n" +" Options:\n" +" -f\tforce the suspend, even if the shell is a login shell\n" +" \n" +" Exit Status:\n" +" Returns success unless job control is not enabled or an error occurs." +msgstr "" + +#: builtins.c:1216 +#, fuzzy +msgid "" +"Evaluate conditional expression.\n" +" \n" +" Exits with a status of 0 (true) or 1 (false) depending on\n" +" the evaluation of EXPR. Expressions may be unary or binary. Unary\n" +" expressions are often used to examine the status of a file. There\n" +" are string operators as well, and numeric comparison operators.\n" +" \n" +" File operators:\n" +" \n" +" -a FILE True if file exists.\n" +" -b FILE True if file is block special.\n" +" -c FILE True if file is character special.\n" +" -d FILE True if file is a directory.\n" +" -e FILE True if file exists.\n" +" -f FILE True if file exists and is a regular file.\n" +" -g FILE True if file is set-group-id.\n" +" -h FILE True if file is a symbolic link.\n" +" -L FILE True if file is a symbolic link.\n" +" -k FILE True if file has its `sticky' bit set.\n" +" -p FILE True if file is a named pipe.\n" +" -r FILE True if file is readable by you.\n" +" -s FILE True if file exists and is not empty.\n" +" -S FILE True if file is a socket.\n" +" -t FD True if FD is opened on a terminal.\n" +" -u FILE True if the file is set-user-id.\n" +" -w FILE True if the file is writable by you.\n" +" -x FILE True if the file is executable by you.\n" +" -O FILE True if the file is effectively owned by you.\n" +" -G FILE True if the file is effectively owned by your group.\n" +" -N FILE True if the file has been modified since it was last " +"read.\n" +" \n" +" FILE1 -nt FILE2 True if file1 is newer than file2 (according to\n" +" modification date).\n" +" \n" +" FILE1 -ot FILE2 True if file1 is older than file2.\n" +" \n" +" FILE1 -ef FILE2 True if file1 is a hard link to file2.\n" +" \n" +" String operators:\n" +" \n" +" -z STRING True if string is empty.\n" +" \n" +" -n STRING\n" +" STRING True if string is not empty.\n" +" \n" +" STRING1 = STRING2\n" +" True if the strings are equal.\n" +" STRING1 != STRING2\n" +" True if the strings are not equal.\n" +" STRING1 < STRING2\n" +" True if STRING1 sorts before STRING2 " +"lexicographically.\n" +" STRING1 > STRING2\n" +" True if STRING1 sorts after STRING2 lexicographically.\n" +" \n" +" Other operators:\n" +" \n" +" -o OPTION True if the shell option OPTION is enabled.\n" +" ! EXPR True if expr is false.\n" +" EXPR1 -a EXPR2 True if both expr1 AND expr2 are true.\n" +" EXPR1 -o EXPR2 True if either expr1 OR expr2 is true.\n" +" \n" +" arg1 OP arg2 Arithmetic tests. OP is one of -eq, -ne,\n" +" -lt, -le, -gt, or -ge.\n" +" \n" +" Arithmetic binary operators return true if ARG1 is equal, not-equal,\n" +" less-than, less-than-or-equal, greater-than, or greater-than-or-equal\n" +" than ARG2.\n" +" \n" +" Exit Status:\n" +" Returns success if EXPR evaluates to true; fails if EXPR evaluates to\n" +" false or an invalid argument is given." +msgstr "" +"\rtest [Ä°FADE]\n" +"[ [Ä°FADE] ]\n" +" Ä°FADEnin değerlendirilmesine bağlı olarak 0 (doğru) veya 1 (yanlış)\n" +" durumu ile çıkar. Ä°fadeler tek terimli ya da iki terimli olabilir.\n" +" Tek terimli ifadeler çoğunlukla bir dosyanın durumunu saptamakta\n" +" kullanılır. Dizge işleçleri ve sayısal karşılaştırma işleçleri de\n" +" vardır.\n" +"\n" +" Dosya işleçleri:\n" +"\n" +" -a DOSYA DOSYA varsa doğrudur.\n" +" -b DOSYA DOSYA varsa ve bloka özelse doğrudur.\n" +" -c DOSYA DOSYA varsa ve karaktere özelse doğrudur.\n" +" -d DOSYA DOSYA varsa ve bir dizinse doğrudur.\n" +" -e DOSYA DOSYA varsa doğrudur.\n" +" -f DOSYA DOSYA varsa ve normal bir dosyaysa doğrudur.\n" +" -g DOSYA DOSYA varsa ve grup kimliği biti 1 ise doğrudur.\n" +" -h DOSYA DOSYA varsa ve bir sembolik bağ ise doğrudur.\n" +" -L DOSYA DOSYA varsa ve bir sembolik bağ ise doğrudur.\n" +" -k DOSYA DOSYA dosya varsa ve yapışkan biti 1 ise doğrudur.\n" +" -p DOSYA DOSYA varsa ve bir isimli boru (FIFO) ise doğrudur.\n" +" -r DOSYA DOSYA varsa ve okuyabiliyorsanız doğrudur.\n" +" -s DOSYA DOSYA varsa ve uzunluğu sıfırdan büyükse doğrudur.\n" +" -S DOSYA DOSYA varsa ve bir soketse doğrudur.\n" +" -t DSYTNT DSYTNT açık ve bir uçbirime karşılıksa doğrudur.\n" +" -u DOSYA DOSYA varsa ve kullanıcı kimliği biti 1 ise " +"doğrudur.\n" +" -w DOSYA DOSYA dosya varsa ve yazabiliyorsanız doğrudur.\n" +" -x DOSYA DOSYA dosya varsa ve çalıştırabiliyorsanız " +"doğrudur.\n" +" -O DOSYA DOSYA varsa ve etkin sahibi sizseniz doğrudur.\n" +" -G DOSYA DOSYA varsa ve etkin grubu sizinkiyse doğrudur.\n" +" -N DOSYA DOSYA varsa ve son okunduğundan beri " +"değiştirilmişse\n" +" doğrudur.\n" +"\n" +" DOSYA1 -nt DOSYA2 dosya1, dosya2'den değişiklik tarihine göre\n" +" daha yeni ise ya da dosya1 mevcutken dosya2 yoksa\n" +" doğrudur.\n" +"\n" +" DOSYA1 -ot DOSYA2 dosya1, dosya2 den daha eski ise ya da dosya2\n" +" mevcutken dosya1 yoksa doğrudur.\n" +"\n" +" DOSYA1 -ef DOSYA2 dosya1 ile dosya2 aynı aygıt ve aynı dosya " +"düğümünü\n" +" gösteriyorsa (ona sabit bağ ise) doğrudur.\n" +"\n" +" Dizge işleçleri:\n" +" \n" +" -z DÄ°ZGE dizge uzunluğu sıfırsa doğrudur.\n" +" \n" +" -n DÄ°ZGE\n" +" DÄ°ZGE dizge uzunluğu sıfırdan farklıysa doğrudur.\n" +" \n" +" DÄ°ZGE1 = DÄ°ZGE2 dizgeler aynıysa doğrudur.\n" +" DÄ°ZGE1 != DÄ°ZGE2 dizgeler aynı değilse doğrudur.\n" +" DÄ°ZGE1 < DÄ°ZGE2 dizge1 yerele göre sıralamada dizge2'den\n" +" önceyse doğrudur.\n" +" DÄ°ZGE1 > DÄ°ZGE2 dizge1 yerele göre sıralamada dizge2'den\n" +" sonraysa doğrudur.\n" +"\n" +" Diğer işleçler:\n" +"\n" +" -o SEÇENEK Kabuk seçeneği SEÇENEK etkinse doğrudur.\n" +" ! Ä°FADE Ä°FADE yanlışsa doğrudur.\n" +" Ä°FADE1 -a Ä°FADE2 Ä°FADE1 ve Ä°FADE2 her ikisi de doğruysa doğrudur.\n" +" Ä°FADE1 -o Ä°FADE2 Ä°FADE1 veya Ä°FADE2 doğruysa doğrudur.\n" +"\n" +" arg1 Ä°M arg2 Aritmetik sınamalar. Ä°M bunlardan biri " +"olmalıdır:\n" +" -eq, -ne, -lt, -le, -gt veya -ge.\n" +"\n" +" Bir aritmetik ifadede ARG1 ve ARG2 arasında, aranan eşitlik, " +"eşitsizlik,\n" +" küçüklük, büyüklük, küçüklük veya eşitlik, büyüklük veya eşitlik varsa\n" +" ifadenin sonucu doğrudur." + +#: builtins.c:1292 +#, fuzzy +msgid "" +"Evaluate conditional expression.\n" +" \n" +" This is a synonym for the \"test\" builtin, but the last argument must\n" +" be a literal `]', to match the opening `['." +msgstr "" +"\r[ [Ä°FADE] ]\n" +" test yerleşiği ile aynıdır, fakat son argüman açan `[' ile eşleşen\n" +" kapatan `]' olmak zorundadır." + +#: builtins.c:1301 +msgid "" +"Display process times.\n" +" \n" +" Prints the accumulated user and system times for the shell and all of " +"its\n" +" child processes.\n" +" \n" +" Exit Status:\n" +" Always succeeds." +msgstr "" + +#: builtins.c:1313 +#, fuzzy +msgid "" +"Trap signals and other events.\n" +" \n" +" Defines and activates handlers to be run when the shell receives " +"signals\n" +" or other conditions.\n" +" \n" +" ARG is a command to be read and executed when the shell receives the\n" +" signal(s) SIGNAL_SPEC. If ARG is absent (and a single SIGNAL_SPEC\n" +" is supplied) or `-', each specified signal is reset to its original\n" +" value. If ARG is the null string each SIGNAL_SPEC is ignored by the\n" +" shell and by the commands it invokes.\n" +" \n" +" If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell. " +"If\n" +" a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command.\n" +" \n" +" If no arguments are supplied, trap prints the list of commands " +"associated\n" +" with each signal.\n" +" \n" +" Options:\n" +" -l\tprint a list of signal names and their corresponding numbers\n" +" -p\tdisplay the trap commands associated with each SIGNAL_SPEC\n" +" \n" +" Each SIGNAL_SPEC is either a signal name in or a signal " +"number.\n" +" Signal names are case insensitive and the SIG prefix is optional. A\n" +" signal may be sent to the shell with \"kill -signal $$\".\n" +" \n" +" Exit Status:\n" +" Returns success unless a SIGSPEC is invalid or an invalid option is " +"given." +msgstr "" +"\rtrap [-lp] [ARG SÄ°NYAL ...]\n" +" ARGüman içindeki komutlar, kabuk SÄ°NYAL sinyalini aldığında okunur ve\n" +" çalıştırılır. ARGüman verilmezse (ve tek bir SÄ°NYAL varsa) ya da `-'\n" +" verilirse, belirtilen tüm sinyallere kabuk başlatıldığındaki değerleri\n" +" yerleştirilir. ARGüman bir boş dizge ise her SÄ°NYAL sinyali kabuk ve\n" +" onu çağıran komutlar tarafından yoksayılır. Eğer SÄ°NYAL 0 ya da EXIT\n" +" ise ARGüman kabuk çıkarken çalıştırılır. Eğer SÄ°NYAL olarak DEBUG\n" +" verilmişse, ARGüman komutu her basit komuttan önce çalıştırılır. -p\n" +" seçeneği verilmişse trap, her SÄ°NYAL ile ilişkili trap komutlarını\n" +" gösterir. Hiç ARGüman verilmemişse veya sadece -p verilmişse, trap\n" +" her SÄ°NYAL ile ilişkili komutların listesini basar. Her SÄ°NYAL ya\n" +" dosyasındaki bir sinyal ismi ya da bir sinyal numarası\n" +" olarak verilmelidir. Sinyal isimleri harf büyüklüğüne duyarsızdır ve\n" +" SIG öneki isteğe bağlıdır. -l seçeneği kabuğun sinyal isimlerini\n" +" numaraları ile birlikte listelemesini sağlar. Kabuğa bir sinyal\n" +" göndermek isterseniz \"kill -SÄ°GNAL $$\" sözdizimini kullanabilirsiniz." + +#: builtins.c:1345 +msgid "" +"Display information about command type.\n" +" \n" +" For each NAME, indicate how it would be interpreted if used as a\n" +" command name.\n" +" \n" +" Options:\n" +" -a\tdisplay all locations containing an executable named NAME;\n" +" \tincludes aliases, builtins, and functions, if and only if\n" +" \tthe `-p' option is not also used\n" +" -f\tsuppress shell function lookup\n" +" -P\tforce a PATH search for each NAME, even if it is an alias,\n" +" \tbuiltin, or function, and returns the name of the disk file\n" +" \tthat would be executed\n" +" -p\treturns either the name of the disk file that would be executed,\n" +" \tor nothing if `type -t NAME' would not return `file'.\n" +" -t\toutput a single word which is one of `alias', `keyword',\n" +" \t`function', `builtin', `file' or `', if NAME is an alias, shell\n" +" \treserved word, shell function, shell builtin, disk file, or not\n" +" \tfound, respectively\n" +" \n" +" Arguments:\n" +" NAME\tCommand name to be interpreted.\n" +" \n" +" Exit Status:\n" +" Returns success if all of the NAMEs are found; fails if any are not " +"found." +msgstr "" + +#: builtins.c:1376 +#, fuzzy +msgid "" +"Modify shell resource limits.\n" +" \n" +" Provides control over the resources available to the shell and " +"processes\n" +" it creates, on systems that allow such control.\n" +" \n" +" Options:\n" +" -S\tuse the `soft' resource limit\n" +" -H\tuse the `hard' resource limit\n" +" -a\tall current limits are reported\n" +" -b\tthe socket buffer size\n" +" -c\tthe maximum size of core files created\n" +" -d\tthe maximum size of a process's data segment\n" +" -e\tthe maximum scheduling priority (`nice')\n" +" -f\tthe maximum size of files written by the shell and its children\n" +" -i\tthe maximum number of pending signals\n" +" -l\tthe maximum size a process may lock into memory\n" +" -m\tthe maximum resident set size\n" +" -n\tthe maximum number of open file descriptors\n" +" -p\tthe pipe buffer size\n" +" -q\tthe maximum number of bytes in POSIX message queues\n" +" -r\tthe maximum real-time scheduling priority\n" +" -s\tthe maximum stack size\n" +" -t\tthe maximum amount of cpu time in seconds\n" +" -u\tthe maximum number of user processes\n" +" -v\tthe size of virtual memory\n" +" -x\tthe maximum number of file locks\n" +" \n" +" If LIMIT is given, it is the new value of the specified resource; the\n" +" special LIMIT values `soft', `hard', and `unlimited' stand for the\n" +" current soft limit, the current hard limit, and no limit, respectively.\n" +" Otherwise, the current value of the specified resource is printed. If\n" +" no option is given, then -f is assumed.\n" +" \n" +" Values are in 1024-byte increments, except for -t, which is in seconds,\n" +" -p, which is in increments of 512 bytes, and -u, which is an unscaled\n" +" number of processes.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" +"\rulimit [-SHacdfilmnpqstuvx] [SINIR]\n" +" ulimit kabuk tarafından başlatılan süreçlerin kullanabildiği\n" +" özkaynaklar üzerinde, sistem buna izin veriyorsa, denetim sağlar.\n" +" Seçenekler verildiğinde şu anlamlara gelir:\n" +"\n" +" -S Yazılımsal (`soft') sınır kullanılır.\n" +" -H Donanımsal (`hard') sınır kullanılır.\n" +" -a Mevcut tüm sınırlamalar gösterilir. -c Oluşan core dosyalarının " +"azami boyu\n" +" -d Bir sürecin veri segmanının azami boyu\n" +" -e Azami zamanlama önceliği (`nice')\n" +" -f Kabuk ve çocukları tarafından oluşturulan dosyaların azami boyu\n" +" -i Askıdaki sinyallerin azami sayısı\n" +" -l Belleğe kilitlenebilen azami boyut\n" +" -m Azami bellek boyu\n" +" -n Açık dosya tanıtıcılarının azami sayısı\n" +" -p Boruhattı tamponunun boyu\n" +" -q POSIX ileti kuyruklarındaki azami bayt miktarı\n" +" -r Azami anında çalıştırma zamanlaması önceliği\n" +" -s Yığıtın azami boyu\n" +" -t İşlemci zamanının saniye cinsinden azami miktarı\n" +" -u Tek bir kullanıcının kullanabileceği azami süreç sayısı\n" +" -v Bir sürecin kullanabileceği sanal belleğin azami miktarı\n" +" -x Dosya kilitlerinin azami sayısı\n" +"\n" +" SINIR verilmişse, belirtilen özkaynağın yeni değeridir; özel sınır\n" +" değerleri mevcut donanımsal sınır için `hard', mevcut yazılımsal sınır\n" +" için `soft' ve sınırsız için `unlimited''dir. Aksi takdirde, belirtilen\n" +" özkaynak için mevcut değer gösterilir. Hiç seçenek verilmezse -f\n" +" seçeneği verilmiş kabul edilir. Değerler -t için saniye cinsinden, -p\n" +" için 512 baytlık blok sayısı olarak, -n ve -u için birimsiz, kalan\n" +" seçenekler için 1024 baytlık blok sayısı olarak belirtilmelidir." + +#: builtins.c:1421 +msgid "" +"Display or set file mode mask.\n" +" \n" +" Sets the user file-creation mask to MODE. If MODE is omitted, prints\n" +" the current value of the mask.\n" +" \n" +" If MODE begins with a digit, it is interpreted as an octal number;\n" +" otherwise it is a symbolic mode string like that accepted by chmod(1).\n" +" \n" +" Options:\n" +" -p\tif MODE is omitted, output in a form that may be reused as input\n" +" -S\tmakes the output symbolic; otherwise an octal number is output\n" +" \n" +" Exit Status:\n" +" Returns success unless MODE is invalid or an invalid option is given." +msgstr "" + +#: builtins.c:1441 +msgid "" +"Wait for job completion and return exit status.\n" +" \n" +" Waits for the process identified by ID, which may be a process ID or a\n" +" job specification, and reports its termination status. If ID is not\n" +" given, waits for all currently active child processes, and the return\n" +" status is zero. If ID is a a job specification, waits for all " +"processes\n" +" in the job's pipeline.\n" +" \n" +" Exit Status:\n" +" Returns the status of ID; fails if ID is invalid or an invalid option " +"is\n" +" given." +msgstr "" + +#: builtins.c:1459 +#, fuzzy +msgid "" +"Wait for process completion and return exit status.\n" +" \n" +" Waits for the specified process and reports its termination status. If\n" +" PID is not given, all currently active child processes are waited for,\n" +" and the return code is zero. PID must be a process ID.\n" +" \n" +" Exit Status:\n" +" Returns the status of ID; fails if ID is invalid or an invalid option " +"is\n" +" given." +msgstr "" +"\rwait [N]\n" +" Belirtilen süreci bekler ve sonlandırma durumunu raporlar. N\n" +" verilmezse, o an etkin olan tüm süreçler için beklenir ve sıfır\n" +" durumu ile dönülür. N bir süreç kimliği olabileceği gibi bir iş\n" +" belirtimi de olabilir; bir iş belirtimi verilirse işin\n" +" boruhattındaki tüm süreçler için beklenir." + +#: builtins.c:1474 +#, fuzzy +msgid "" +"Execute commands for each member in a list.\n" +" \n" +" The `for' loop executes a sequence of commands for each member in a\n" +" list of items. If `in WORDS ...;' is not present, then `in \"$@\"' is\n" +" assumed. For each element in WORDS, NAME is set to that element, and\n" +" the COMMANDS are executed.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"\rfor AD [in SÖZ ... ;] do KOMUT; done\n" +" SÖZcükler yorumlanır ve sonuçlanan listenin AD ile bağlantılı her\n" +" üyesi için KOMUTlar çalıştırılır. Deyimin `in SÖZ ... ;' parçası\n" +" yoksa, `in \"$@\"' belirtilmiş gibi kümeyi oluşturan her parametre\n" +" için KOMUTlar birer kere çalıştırılır." + +#: builtins.c:1488 +#, fuzzy +msgid "" +"Arithmetic for loop.\n" +" \n" +" Equivalent to\n" +" \t(( EXP1 ))\n" +" \twhile (( EXP2 )); do\n" +" \t\tCOMMANDS\n" +" \t\t(( EXP3 ))\n" +" \tdone\n" +" EXP1, EXP2, and EXP3 are arithmetic expressions. If any expression is\n" +" omitted, it behaves as if it evaluates to 1.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"\rfor ((: for (( Ä°FADE1; Ä°FADE2; Ä°FADE3 )); do KOMUTlar; done\n" +" Bu sözdizimi şu koda eşdeğerdir:\n" +" \t(( Ä°FADE1 ))\n" +" \twhile (( Ä°FADE2 )); do\n" +" \t\tKOMUTlar\n" +" \t\t(( Ä°FADE3 ))\n" +" \tdone\n" +" Ä°FADE1, Ä°FADE2 ve Ä°FADE3 aritmetik ifadelerdir. Verilmeyen her\n" +" ifade için 1 verilmiş gibi işlem yapılır." + +#: builtins.c:1506 +#, fuzzy +msgid "" +"Select words from a list and execute commands.\n" +" \n" +" The WORDS are expanded, generating a list of words. The\n" +" set of expanded words is printed on the standard error, each\n" +" preceded by a number. If `in WORDS' is not present, `in \"$@\"'\n" +" is assumed. The PS3 prompt is then displayed and a line read\n" +" from the standard input. If the line consists of the number\n" +" corresponding to one of the displayed words, then NAME is set\n" +" to that word. If the line is empty, WORDS and the prompt are\n" +" redisplayed. If EOF is read, the command completes. Any other\n" +" value read causes NAME to be set to null. The line read is saved\n" +" in the variable REPLY. COMMANDS are executed after each selection\n" +" until a break command is executed.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"\rselect AD [in SÖZ ... ;] do KOMUTlar; done\n" +" `SÖZ ...;' listesi yorumlanarak öğe listesi üretilir. Öğe " +"listesindeki\n" +" her öğenin başına bir numara eklenerek standart hataya çıktılanır. " +"Eğer\n" +" `in SÖZ ... ;' parçası verilmezse, in \"$@\"' verilmiş gibi konuma " +"bağlı\n" +" parametreler basılır ve standart girdide PS3 istemi ile girdi " +"beklenir.\n" +" Listede belirtilen numaralardan biri girdi olarak verilirse, o " +"konuma\n" +" bağlı SÖZcük ile AD eşleştirilir. Girdi satırı boş verilirse, " +"dosyasonu\n" +" okununcaya kadar komut istemi tekrarlanır. Listede belirtilenler " +"dışında\n" +" verilen her değer için AD null ile eşleştirilir. Okunan satır " +"$REPLY\n" +" değişkeninde tutulur. Her seçimden sonra bir break komutu ile\n" +" sonlandırılıncaya kadar komutlar çalıştırılır." + +#: builtins.c:1527 +#, fuzzy +msgid "" +"Report time consumed by pipeline's execution.\n" +" \n" +" Execute PIPELINE and print a summary of the real time, user CPU time,\n" +" and system CPU time spent executing PIPELINE when it terminates.\n" +" \n" +" Options:\n" +" -p\tprint the timing summary in the portable Posix format\n" +" \n" +" The value of the TIMEFORMAT variable is used as the output format.\n" +" \n" +" Exit Status:\n" +" The return status is the return status of PIPELINE." +msgstr "" +"\rtime [-p] [!] KOMUT1 [| KOMUT2 ...]\n" +" Bir boruhattındaki her komut bir kanal ile sonrakine bağlıdır. Böylece\n" +" her komut bir önceki komutun çıktısını okur. time boruhattındaki iş\n" +" sonuçlanınca geçen gerçek zaman, kullanıcı ve sistem zamanını basar.\n" +" Dönüş durumu boruhattının dönüş durumudur. -p seçeneği zaman\n" +" istatistiklerinin biraz farklı bir biçimde basılmasını sağlar; çıktı\n" +" biçimi olarak TIMEFORMAT değişkeninin değerini kullanır." + +#: builtins.c:1544 +#, fuzzy +msgid "" +"Execute commands based on pattern matching.\n" +" \n" +" Selectively execute COMMANDS based upon WORD matching PATTERN. The\n" +" `|' is used to separate multiple patterns.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"\rcase SÖZ in [KALIP [| KALIP]...) KOMUTlar ;;]... esac\n" +" SÖZcük ile eşleşen ilk KALIP'a karşı düşen KOMUTları çalıştırır.\n" +" `|' çok sayıda kalıbı ayırmak için kullanılır." + +#: builtins.c:1556 +#, fuzzy +msgid "" +"Execute commands based on conditional.\n" +" \n" +" The `if COMMANDS' list is executed. If its exit status is zero, then " +"the\n" +" `then COMMANDS' list is executed. Otherwise, each `elif COMMANDS' list " +"is\n" +" executed in turn, and if its exit status is zero, the corresponding\n" +" `then COMMANDS' list is executed and the if command completes. " +"Otherwise,\n" +" the `else COMMANDS' list is executed, if present. The exit status of " +"the\n" +" entire construct is the exit status of the last command executed, or " +"zero\n" +" if no condition tested true.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"\rif KOMUTlar; then KOMUTlar;\n" +"[ elif KOMUTlar; then KOMUTlar; ]...\n" +"[ else KOMUTlar; ]\n" +"fi\n" +"\n" +" `if KOMUTlar;' listesi çalıştırılır; çıkış durumu sıfırsa\n" +" `then KOMUTlar;' listesi çalıştırılır, değilse `elif KOMUTlar;'\n" +" listesi çalıştırılır; bunun çıkış durumu sıfırsa `then KOMUTlar;'\n" +" listesi çalıştırılır ve if komutu tamamlanır, değilse varsa\n" +" `else KOMUTlar;' listesi çalıştırılır ve if komutu tamamlanır.\n" +" Oluşumun tamamının dönüş durumu çalıştırılmış olan son komutun\n" +" çıkış durumudur. Bir komut çalıştırılmamışsa ve hiçbir koşul\n" +" doğru sonuç vermemişse sıfır döner." + +#: builtins.c:1573 +#, fuzzy +msgid "" +"Execute commands as long as a test succeeds.\n" +" \n" +" Expand and execute COMMANDS as long as the final command in the\n" +" `while' COMMANDS has an exit status of zero.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"\rwhile KOMUTlar; do KOMUTlar; done\n" +" `while KOMUTlar; listesinin çıkış durumu sıfır olduğu sürece\n" +" `do KOMUTlar;' listesi çalıştırılır." + +#: builtins.c:1585 +#, fuzzy +msgid "" +"Execute commands as long as a test does not succeed.\n" +" \n" +" Expand and execute COMMANDS as long as the final command in the\n" +" `until' COMMANDS has an exit status which is not zero.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"\runtil KOMUTlar; do KOMUTlar; done\n" +" `until KOMUTlar; listesinin çıkış durumu sıfırdan farklı olduğu sürece\n" +" `do KOMUTlar;' listesi çalıştırılır." + +#: builtins.c:1597 +msgid "" +"Define shell function.\n" +" \n" +" Create a shell function named NAME. When invoked as a simple command,\n" +" NAME runs COMMANDs in the calling shell's context. When NAME is " +"invoked,\n" +" the arguments are passed to the function as $1...$n, and the function's\n" +" name is in $FUNCNAME.\n" +" \n" +" Exit Status:\n" +" Returns success unless NAME is readonly." +msgstr "" + +#: builtins.c:1611 +#, fuzzy +msgid "" +"Group commands as a unit.\n" +" \n" +" Run a set of commands in a group. This is one way to redirect an\n" +" entire set of commands.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"\r{ KOMUTlar ; }\n" +" KOMUTlar bir grup olarak çalıştırılır. Bu, bir komut kümesini bir\n" +" yönlendirmede kullanmanın tek yoludur." + +#: builtins.c:1623 +#, fuzzy +msgid "" +"Resume job in foreground.\n" +" \n" +" Equivalent to the JOB_SPEC argument to the `fg' command. Resume a\n" +" stopped or background job. JOB_SPEC can specify either a job name\n" +" or a job number. Following JOB_SPEC with a `&' places the job in\n" +" the background, as if the job specification had been supplied as an\n" +" argument to `bg'.\n" +" \n" +" Exit Status:\n" +" Returns the status of the resumed job." +msgstr "" +"\r%: İŞ_BELÄ°RTÄ°MÄ° [&]\n" +" `fg' komutunu İŞ_BELÄ°RTÄ°MÄ° argümanı ile kullanmaya eşdeğerdir.\n" +" Durmuş veya artalandaki bir işin önalanda sürdürülmesini sağlar.\n" +" İŞ_BELÄ°RTÄ°MÄ° bir iş ismi veya iş numarası olarak belirtilebilir.\n" +" İŞ_BELÄ°RTÄ°MÄ°'nden sonra bir & gelmesi işin `bg' komutununa argüman\n" +" olarak kullanılmış gibi artalana yerleştirilmesine sebep olur." + +#: builtins.c:1638 +#, fuzzy +msgid "" +"Evaluate arithmetic expression.\n" +" \n" +" The EXPRESSION is evaluated according to the rules for arithmetic\n" +" evaluation. Equivalent to \"let EXPRESSION\".\n" +" \n" +" Exit Status:\n" +" Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise." +msgstr "" +"\r(( Ä°FADE ))\n" +" Verilen aritmetik Ä°FADE aritmetik değerlendirme kurallarına göre\n" +" değerlendirilir. \"let Ä°FADE\" ile eşdeğerdir." + +#: builtins.c:1650 +#, fuzzy +msgid "" +"Execute conditional command.\n" +" \n" +" Returns a status of 0 or 1 depending on the evaluation of the " +"conditional\n" +" expression EXPRESSION. Expressions are composed of the same primaries " +"used\n" +" by the `test' builtin, and may be combined using the following " +"operators:\n" +" \n" +" ( EXPRESSION )\tReturns the value of EXPRESSION\n" +" ! EXPRESSION\t\tTrue if EXPRESSION is false; else false\n" +" EXPR1 && EXPR2\tTrue if both EXPR1 and EXPR2 are true; else false\n" +" EXPR1 || EXPR2\tTrue if either EXPR1 or EXPR2 is true; else false\n" +" \n" +" When the `==' and `!=' operators are used, the string to the right of\n" +" the operator is used as a pattern and pattern matching is performed.\n" +" When the `=~' operator is used, the string to the right of the operator\n" +" is matched as a regular expression.\n" +" \n" +" The && and || operators do not evaluate EXPR2 if EXPR1 is sufficient to\n" +" determine the expression's value.\n" +" \n" +" Exit Status:\n" +" 0 or 1 depending on value of EXPRESSION." +msgstr "" +"\r[[ Ä°FADE ]]\n" +" Koşullu Ä°FADEnin değerine bağlı olarak 0 ya da 1 durumu ile döner.\n" +" Ä°fadeler test yerleşiği tarafından kullanılan aynı ilkelerle " +"oluşturulur\n" +" ve aşağıdaki işleçler kullanılarak biraraya getirilebilirler:\n" +"\n" +" ( Ä°FADE ) Ä°FADEnin değeri döner\n" +" ! Ä°FADE Ä°FADE yanlışsa doğru, doğruysa yanlıştır.\n" +" Ä°FADE1 && Ä°FADE2 Ä°FADE1 ve Ä°FADE2 her ikisi de doğruysa doğrudur\n" +" Ä°FADE1 || Ä°FADE2 Ä°FADE1 veya Ä°FADE2 doğruysa doğrudur\n" +"\n" +" == ve != işleçleri kullanıldığında, işlecin sağındaki dizge bir kalıp\n" +" olarak ele alınır ve kalıp eşleştirmesi uygulanır. && ve || işleçleri\n" +" eğer ilk ifade sonuç için belirleyici ise ikincisine bakmazlar." + +#: builtins.c:1676 +#, fuzzy +msgid "" +"Common shell variable names and usage.\n" +" \n" +" BASH_VERSION\tVersion information for this Bash.\n" +" CDPATH\tA colon-separated list of directories to search\n" +" \t\tfor directories given as arguments to `cd'.\n" +" GLOBIGNORE\tA colon-separated list of patterns describing filenames to\n" +" \t\tbe ignored by pathname expansion.\n" +" HISTFILE\tThe name of the file where your command history is stored.\n" +" HISTFILESIZE\tThe maximum number of lines this file can contain.\n" +" HISTSIZE\tThe maximum number of history lines that a running\n" +" \t\tshell can access.\n" +" HOME\tThe complete pathname to your login directory.\n" +" HOSTNAME\tThe name of the current host.\n" +" HOSTTYPE\tThe type of CPU this version of Bash is running under.\n" +" IGNOREEOF\tControls the action of the shell on receipt of an EOF\n" +" \t\tcharacter as the sole input. If set, then the value\n" +" \t\tof it is the number of EOF characters that can be seen\n" +" \t\tin a row on an empty line before the shell will exit\n" +" \t\t(default 10). When unset, EOF signifies the end of input.\n" +" MACHTYPE\tA string describing the current system Bash is running on.\n" +" MAILCHECK\tHow often, in seconds, Bash checks for new mail.\n" +" MAILPATH\tA colon-separated list of filenames which Bash checks\n" +" \t\tfor new mail.\n" +" OSTYPE\tThe version of Unix this version of Bash is running on.\n" +" PATH\tA colon-separated list of directories to search when\n" +" \t\tlooking for commands.\n" +" PROMPT_COMMAND\tA command to be executed before the printing of each\n" +" \t\tprimary prompt.\n" +" PS1\t\tThe primary prompt string.\n" +" PS2\t\tThe secondary prompt string.\n" +" PWD\t\tThe full pathname of the current directory.\n" +" SHELLOPTS\tA colon-separated list of enabled shell options.\n" +" TERM\tThe name of the current terminal type.\n" +" TIMEFORMAT\tThe output format for timing statistics displayed by the\n" +" \t\t`time' reserved word.\n" +" auto_resume\tNon-null means a command word appearing on a line by\n" +" \t\titself is first looked for in the list of currently\n" +" \t\tstopped jobs. If found there, that job is foregrounded.\n" +" \t\tA value of `exact' means that the command word must\n" +" \t\texactly match a command in the list of stopped jobs. A\n" +" \t\tvalue of `substring' means that the command word must\n" +" \t\tmatch a substring of the job. Any other value means that\n" +" \t\tthe command must be a prefix of a stopped job.\n" +" histchars\tCharacters controlling history expansion and quick\n" +" \t\tsubstitution. The first character is the history\n" +" \t\tsubstitution character, usually `!'. The second is\n" +" \t\tthe `quick substitution' character, usually `^'. The\n" +" \t\tthird is the `history comment' character, usually `#'.\n" +" HISTIGNORE\tA colon-separated list of patterns used to decide which\n" +" \t\tcommands should be saved on the history list.\n" +msgstr "" +"\rdeğişkenler: Bazı değişkenler ve anlamları:\n" +" BASH_VERSION Bu Bash'in sürüm bilgisi.\n" +" CDPATH ` cd'ye argüman olarak verilecek dizinlerin aranacağı\n" +" dizinlerin ikinokta imi ayraçlı listesi.\n" +" GLOBIGNORE Dosyayolu yorumlaması tarafından yoksayılacak dosya\n" +" isimlerini belirten kalıpların ikinokta imi ayraçlı\n" +" listesi.\n" +" HISTFILE Komut geçmişinizin saklanacağı dosyanın ismi.\n" +" HISTFILESIZE Bu dosyanın içerebileceği azami satır sayısı.\n" +" HISTSIZE Çalışan bir kabuğun erişebileceği geçmiş " +"satırlarının\n" +" azami sayısı.\n" +" HOME Kullanıcının ev dizininin tam yolu.\n" +" HOSTNAME Makinenizin ağdaki konak ismi.\n" +" HOSTTYPE Bash'in bu sürümünün altında çalıştığı işlemcinin " +"türü\n" +" IGNOREEOF Tek girdi olarak EOF karakteri alındığında kabuğun\n" +" eylemini kontrol eder. Atandığında değeri, kabuk\n" +" çıkmadan önce bir girdi satırındaki ilk karakter\n" +" olarak okunabilen ardışık EOF karakterlerinin " +"sayısını\n" +" gösterir (öntanımlı 10). Eğer değişken mevcut " +"değilse,\n" +" EOF girdi sonunu belirtir.\n" +" MACHTYPE Bash'in üzerinde çalıştığı sistemi açıklayan dizge.\n" +" MAILCHECK Bash'in yeni postaya kaç saniyede bir bakacağı.\n" +" MAILPATH Bash'in yeni posta var mı diye bakacağı dosya\n" +" isimlerinin ikinokta imi ayraçlı listesi.\n" +" OSTYPE Bash'in üzerinde çalıştığı çekirdeğin türü.\n" +" PATH Komutları ararken bakılacak dizinlerin ikinokta imi\n" +" ayraçlı listesi.\n" +" PROMPT_COMMAND Birincil komut istemi ($PS1) basılmadan önce\n" +" çalıştırılacak komut\n" +" PS1 Birincil komut istemi dizgesi.\n" +" PS2 Ä°kincil komut istemi dizgesi.\n" +" PWD Çalışma dizininizin tam yolu.\n" +" SHELLOPTS Etkin kabuk seçeneklerinin ikinokta imi ayraçlı " +"listesi\n" +" TERM Geçerli uçbirim türünün ismi.\n" +" TIMEFORMAT time anahtar sözcüğü ile başlayan zamanlama " +"bilgisinin\n" +" nasıl belirtileceğini gösteren biçim dizgesi.\n" +" auto_resume Değerin boş olmaması durmuş işin isminin onu\n" +" başlatmakta kullanılan komut satırı olduğudur ve\n" +" oradaysa iş önalana alınır. `exact' değeri, komut\n" +" sözcüğünün durmuş işler listesindeki komutla tam\n" +" olarak eşleşmesi gerektiği anlamına gelir. " +"`substring'\n" +" değeri, komut sözcüğünün işin bir altdizgesi ile\n" +" eşleşmesi gerektiğini belirtir. Bunlar dışında bir\n" +" değer komutun durmuş bir işe önek olması gerektiği\n" +" anlamına gelir.\n" +" histchars Geçmiş yorumlaması, hızlı ikame ve sembolleştirmeyi\n" +" denetleyen en çok üç karakter. Ä°lk karakter geçmiş\n" +" yorumlamasının başlatılmasını sağlayan geçmiş\n" +" yorumlama karakteridir ve normalde ! işaretidir.\n" +" Ä°kinci karakter, bir satırdaki ilk karakter " +"olduğunda\n" +" `hızlı ikame'yi imleyen karakterdir ve normalde ^\n" +" imidir. Ä°stemlik olan üçüncü karakter ise, bir\n" +" sözcüğün ilk karakteri olarak bulunduğunda satırın\n" +" kalanının açıklama olmasını sağlayan karakterdir ve\n" +" normalde # imidir.\n" +" HISTIGNORE Geçmiş listesine hangi satırların kaydedilmesi\n" +" gerektiğine karar vermek için kullanılan kalıpların\n" +" ikinokta imi ayraçlı listesi.\n" + +#: builtins.c:1733 +#, fuzzy +msgid "" +"Add directories to stack.\n" +" \n" +" Adds a directory to the top of the directory stack, or rotates\n" +" the stack, making the new top of the stack the current working\n" +" directory. With no arguments, exchanges the top two directories.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when adding\n" +" \tdirectories to the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the left of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" -N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the right of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" dir\tAdds DIR to the directory stack at the top, making it the\n" +" \tnew current working directory.\n" +" \n" +" The `dirs' builtin displays the directory stack.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid argument is supplied or the directory\n" +" change fails." +msgstr "" +"\rpushd [DZN | +N | -N] [-n]\n" +" Dizin yığıtının en üstüne bir dizin ekler, ya da geçerli çalışma\n" +" dizini yığıtın tepesine gelecek şekilde yığıtı döndürür. Hiç\n" +" argüman verilmemişse en üstteki iki dizini yer değiştirir.\n" +"\n" +" +N (`dirs' tarafından gösterilen listenin solundan saymaya\n" +" sıfırla başlandığında) N'inci dizin tepeye gelecek şekilde\n" +" yığıtı döndürür.\n" +"\n" +" -N (`dirs' tarafından gösterilen listenin sağından saymaya\n" +" sıfırla başlandığında) N'inci dizin tepeye gelecek şekilde\n" +" yığıtı döndürür.\n" +"\n" +" +n dizinleri yığıta eklerken normal dizin değişikliğini engeller,\n" +" böylece sadece yığıt değiştirilmiş olur.\n" +"\n" +" DZN DiZiNi yeni çalışma dizini yaparak dizin yığıtının\n" +" tepesine ekler.\n" +"\n" +" Dizin yığıtını `dirs' komutuyla görebilirsiniz." + +#: builtins.c:1767 +#, fuzzy +msgid "" +"Remove directories from stack.\n" +" \n" +" Removes entries from the directory stack. With no arguments, removes\n" +" the top directory from the stack, and changes to the new top directory.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when removing\n" +" \tdirectories from the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRemoves the Nth entry counting from the left of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd +0'\n" +" \tremoves the first directory, `popd +1' the second.\n" +" \n" +" -N\tRemoves the Nth entry counting from the right of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd -0'\n" +" \tremoves the last directory, `popd -1' the next to last.\n" +" \n" +" The `dirs' builtin displays the directory stack.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid argument is supplied or the directory\n" +" change fails." +msgstr "" +"\rpopd [+N | -N] [-n]\n" +" Dizin yığıtından girdileri siler. Hiç argüman verilmemişse,\n" +" yığıtın en üstündeki dizini yığıttan kaldırır ve yığıtın\n" +" tepesinde kalan dizine geçer. \n" +" +N `dirs' tarafından gösterilen listenin solundan saymaya\n" +" sıfırla başlandığında N'inci girdiyi siler. Örneğin,\n" +" `popd +0' ilk dizini `popd +1' ikincisini siler. \n" +" -N `dirs' tarafından gösterilen listenin sağından saymaya\n" +" sıfırla başlandığında N'inci girdiyi siler. Örneğin,\n" +" `popd -0' son dizini `popd -1' sonuncudan öncekini siler. \n" +" -n dizinleri yığıttan silerken normal dizin değişikliğini\n" +" engeller, böylece sadece yığıt değiştirilmiş olur. \n" +" Dizin yığıtını `dirs' komutuyla görebilirsiniz." + +#: builtins.c:1797 +#, fuzzy +msgid "" +"Display directory stack.\n" +" \n" +" Display the list of currently remembered directories. Directories\n" +" find their way onto the list with the `pushd' command; you can get\n" +" back up through the list with the `popd' command.\n" +" \n" +" Options:\n" +" -c\tclear the directory stack by deleting all of the elements\n" +" -l\tdo not print tilde-prefixed versions of directories relative\n" +" \tto your home directory\n" +" -p\tprint the directory stack with one entry per line\n" +" -v\tprint the directory stack with one entry per line prefixed\n" +" \twith its position in the stack\n" +" \n" +" Arguments:\n" +" +N\tDisplays the Nth entry counting from the left of the list shown " +"by\n" +" \tdirs when invoked without options, starting with zero.\n" +" \n" +" -N\tDisplays the Nth entry counting from the right of the list shown " +"by\n" +" \tdirs when invoked without options, starting with zero.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" +"\rdirs [-clpv] [+N] [-N]\n" +" O an anımsanan dizinleri listeler. Dizinler listeye `pushd'\n" +" komutuyla eklenir; listeden tek tek geri almak içinse `popd'\n" +" komutu kullanılır.\n" +" -l seçeneği `dirs'in dizinleri ev dizininize göreli kısayollar\n" +" olarak göstermemesine yol açar. Yani `~/bin' yerine `/homes/bfox/bin'\n" +" gibi bir gösterimle karşılaşabilirsiniz. -v seçeneği `dirs'in\n" +" dizin yığıtını dizin adının önüne yığıt konumunu ekleyerek her\n" +" satırda bir girdi göstermesini sağlar. -p seçeneği yığıttaki\n" +" konumu göstermemesi dışında aynı çıktıyı verir. -c seçeneği tüm\n" +" girdileri silerek dizin yığıtını boşaltır. \n" +" +N dirs seçeneksiz çağrıldığında gösterdiği listenin solundan\n" +" sıfırla başlayarak sayılan N'inci girdiyi gösterir.\n" +"\n" +" -N dirs seçeneksiz çağrıldığında gösterdiği listenin sağından\n" +" sıfırla başlayarak sayılan N'inci girdiyi gösterir." + +#: builtins.c:1826 +msgid "" +"Set and unset shell options.\n" +" \n" +" Change the setting of each shell option OPTNAME. Without any option\n" +" arguments, list all shell options with an indication of whether or not " +"each\n" +" is set.\n" +" \n" +" Options:\n" +" -o\trestrict OPTNAMEs to those defined for use with `set -o'\n" +" -p\tprint each shell option with an indication of its status\n" +" -q\tsuppress output\n" +" -s\tenable (set) each OPTNAME\n" +" -u\tdisable (unset) each OPTNAME\n" +" \n" +" Exit Status:\n" +" Returns success if OPTNAME is enabled; fails if an invalid option is\n" +" given or OPTNAME is disabled." +msgstr "" + +#: builtins.c:1847 +#, fuzzy +msgid "" +"Formats and prints ARGUMENTS under control of the FORMAT.\n" +" \n" +" Options:\n" +" -v var\tassign the output to shell variable VAR rather than\n" +" \t\tdisplay it on the standard output\n" +" \n" +" FORMAT is a character string which contains three types of objects: " +"plain\n" +" characters, which are simply copied to standard output; character " +"escape\n" +" sequences, which are converted and copied to the standard output; and\n" +" format specifications, each of which causes printing of the next " +"successive\n" +" argument.\n" +" \n" +" In addition to the standard format specifications described in printf" +"(1)\n" +" and printf(3), printf interprets:\n" +" \n" +" %b\texpand backslash escape sequences in the corresponding argument\n" +" %q\tquote the argument in a way that can be reused as shell input\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or a write or " +"assignment\n" +" error occurs." +msgstr "" +"\rprintf [-v DEĞİŞKEN] BİÇİM [ARGümanlar]\n" +" BİÇİMin denetimi altında ARGümanları standart çıktıya biçimleyerek\n" +" yazar. BİÇİM üç tür nesne içeren bir dizgedir: salt karakterler\n" +" basitçe standart çıktıya kopyalanır, öncelenmiş karakterler\n" +" dönüştürülüp standart çıktıya kopyalanır ve biçim belirtimleri;\n" +" belirtimlerin her biri sırayla karşı düşen ARGümanların basılmasını\n" +" sağlar. Standart printf(1) biçimlerine ek olarak, %b printf'in tersbölü\n" +" öncelemeli karakterlerin karşı düşen ARGümanda yorumlanmasını sağlar ve\n" +" %q printf'in karşı düşen ARGümanı kabuk girdisi olarak kullanılabilecek\n" +" biçimde çıktılamasını sağlar. -v seçeneği çıktının standart çıktıya\n" +" basılması yerine DEĞİŞKENe atanmasını sağlar. " + +#: builtins.c:1874 +msgid "" +"Specify how arguments are to be completed by Readline.\n" +" \n" +" For each NAME, specify how arguments are to be completed. If no " +"options\n" +" are supplied, existing completion specifications are printed in a way " +"that\n" +" allows them to be reused as input.\n" +" \n" +" Options:\n" +" -p\tprint existing completion specifications in a reusable format\n" +" -r\tremove a completion specification for each NAME, or, if no\n" +" \tNAMEs are supplied, all completion specifications\n" +" \n" +" When completion is attempted, the actions are applied in the order the\n" +" uppercase-letter options are listed above.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" + +#: builtins.c:1897 +#, fuzzy +msgid "" +"Display possible completions depending on the options.\n" +" \n" +" Intended to be used from within a shell function generating possible\n" +" completions. If the optional WORD argument is supplied, matches " +"against\n" +" WORD are generated.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" +"\rcompgen [-abcdefgjksuv] [-o SEÇENEK] [-A EYLEM] [-G KALIP] [-W SÖZLÄ°ST]\n" +" [-P ÖNEK] [-S SONEK] [-X SÜZGEÇ] [-F İŞLEV] [-C KOMUT] [SÖZCÜK]\n" +" Seçeneklere bağlı olarak olası tamamlamaları gösterir. Olası\n" +" tamamlamaları üretmek üzere bir kabuk işlevinin içinde kullanmak\n" +" amacıyla tasarlanmıştır. Ä°steğe bağlı SÖZCÜK argümanı sağlandığı\n" +" takdirde eşleşmelerden sadece SÖZCÜK ile eşleşenler üretilir." + +#: builtins.c:1912 +msgid "" +"Modify or display completion options.\n" +" \n" +" Modify the completion options for each NAME, or, if no NAMEs are " +"supplied,\n" +" the completion currently begin executed. If no OPTIONs are givenm, " +"print\n" +" the completion options for each NAME or the current completion " +"specification.\n" +" \n" +" Options:\n" +" \t-o option\tSet completion option OPTION for each NAME\n" +" \n" +" Using `+o' instead of `-o' turns off the specified option.\n" +" \n" +" Arguments:\n" +" \n" +" Each NAME refers to a command for which a completion specification must\n" +" have previously been defined using the `complete' builtin. If no NAMEs\n" +" are supplied, compopt must be called by a function currently generating\n" +" completions, and the options for that currently-executing completion\n" +" generator are modified.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or NAME does not\n" +" have a completion specification defined." +msgstr "" + +#: builtins.c:1940 +msgid "" +"Read lines from a file into an array variable.\n" +" \n" +" Read lines from the standard input into the array variable ARRAY, or " +"from\n" +" file descriptor FD if the -u option is supplied. The variable MAPFILE " +"is\n" +" the default ARRAY.\n" +" \n" +" Options:\n" +" -n count\tCopy at most COUNT lines. If COUNT is 0, all lines are " +"copied.\n" +" -O origin\tBegin assigning to ARRAY at index ORIGIN. The default " +"index is 0.\n" +" -s count \tDiscard the first COUNT lines read.\n" +" -t\t\tRemove a trailing newline from each line read.\n" +" -u fd\t\tRead lines from file descriptor FD instead of the standard " +"input.\n" +" -C callback\tEvaluate CALLBACK each time QUANTUM lines are read.\n" +" -c quantum\tSpecify the number of lines read between each call to " +"CALLBACK.\n" +" \n" +" Arguments:\n" +" ARRAY\t\tArray variable name to use for file data.\n" +" \n" +" If -C is supplied without -c, the default quantum is 5000.\n" +" \n" +" If not supplied with an explicit origin, mapfile will clear ARRAY " +"before\n" +" assigning to it.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or ARRAY is readonly." +msgstr "" + +#~ msgid " " +#~ msgstr " " + +#~ msgid "Without EXPR, returns returns \"$line $filename\". With EXPR," +#~ msgstr "Ä°FADE olmaksızın \"$line $filename\" döner. Ä°FADE ile ise" + +#~ msgid "returns \"$line $subroutine $filename\"; this extra information" +#~ msgstr "\"$line $subroutine $filename\" döner; bu ek bilgi" + +#~ msgid "can be used used to provide a stack trace." +#~ msgstr "bir yığıt izini sürmek için kullanılabilir." + +#~ msgid "" +#~ "The value of EXPR indicates how many call frames to go back before the" +#~ msgstr "" +#~ "Ä°FADE değeri şu ankinden önce kaç çağrı çerçevesinin geri döneceğini" + +#~ msgid "current one; the top frame is frame 0." +#~ msgstr "belirtir; tepe çerçeve 0. çerçevedir." + +#~ msgid "%s: invalid number" +#~ msgstr "%s: sayı geçersiz" + +#~ msgid "Shell commands matching keywords `" +#~ msgstr "Bu anahtar sözcüklere uygun kabuk komutları: `" + +#~ msgid "Display the list of currently remembered directories. Directories" +#~ msgstr "" +#~ "\rdirs [-clpv] [+N] [-N]\n" +#~ " O an anımsanan dizinleri listeler. Dizinler listeye" + +#~ msgid "find their way onto the list with the `pushd' command; you can get" +#~ msgstr "`pushd' komutuyla eklenir; listeden tek tek geri almak içinse" + +#~ msgid "back up through the list with the `popd' command." +#~ msgstr "`popd' komutu kullanılır." + +#~ msgid "" +#~ "The -l flag specifies that `dirs' should not print shorthand versions" +#~ msgstr "-l seçeneği `dirs'in dizinleri ev dizininize göreli kısayollar" + +#~ msgid "" +#~ "of directories which are relative to your home directory. This means" +#~ msgstr "" +#~ "olarak göstermemesine yol açar. Yani `~/bin' yerine `/homes/bfox/bin'" + +#~ msgid "that `~/bin' might be displayed as `/homes/bfox/bin'. The -v flag" +#~ msgstr "gibi bir gösterimle karşılaşabilirsiniz. -v seçeneği `dirs'in" + +#~ msgid "causes `dirs' to print the directory stack with one entry per line," +#~ msgstr "dizin yığıtını dizin adının önüne yığıt konumunu ekleyerek her" + +#~ msgid "" +#~ "prepending the directory name with its position in the stack. The -p" +#~ msgstr "satırda bir girdi göstermesini sağlar. -p seçeneği yığıttaki" + +#~ msgid "flag does the same thing, but the stack position is not prepended." +#~ msgstr "konumu göstermemesi dışında aynı çıktıyı verir." + +#~ msgid "" +#~ "The -c flag clears the directory stack by deleting all of the elements." +#~ msgstr "-c seçeneği tüm girdileri silerek dizin yığıtını boşaltır." + +#~ msgid "" +#~ "+N displays the Nth entry counting from the left of the list shown by" +#~ msgstr "+N dirs seçeneksiz çağrıldığında gösterdiği listenin solundan" + +#~ msgid " dirs when invoked without options, starting with zero." +#~ msgstr " sıfırla başlayarak sayılan N'inci girdiyi gösterir." + +#~ msgid "" +#~ "-N displays the Nth entry counting from the right of the list shown by" +#~ msgstr "-N dirs seçeneksiz çağrıldığında gösterdiği listenin sağından" + +#~ msgid "Adds a directory to the top of the directory stack, or rotates" +#~ msgstr "Dizin yığıtının en üstüne bir dizin ekler, ya da geçerli çalışma" + +#~ msgid "the stack, making the new top of the stack the current working" +#~ msgstr "dizini yığıtın tepesine gelecek şekilde yığıtı döndürür." + +#~ msgid "directory. With no arguments, exchanges the top two directories." +#~ msgstr "Hiç argüman verilmemişse en üstteki iki dizini yer değiştirir." + +#~ msgid "+N Rotates the stack so that the Nth directory (counting" +#~ msgstr "+N (`dirs' tarafından gösterilen listenin solundan saymaya" + +#~ msgid " from the left of the list shown by `dirs', starting with" +#~ msgstr " sıfırla başlandığında) N'inci dizin tepeye gelecek şekilde" + +#~ msgid " zero) is at the top." +#~ msgstr " yığıtı döndürür." + +#~ msgid "-N Rotates the stack so that the Nth directory (counting" +#~ msgstr "-N (`dirs' tarafından gösterilen listenin sağından saymaya" + +#~ msgid " from the right of the list shown by `dirs', starting with" +#~ msgstr " sıfırla başlandığında) N'inci dizin tepeye gelecek şekilde" + +#~ msgid "-n suppress the normal change of directory when adding directories" +#~ msgstr "+n dizinleri yığıta eklerken normal dizin değişikliğini engeller," + +#~ msgid " to the stack, so only the stack is manipulated." +#~ msgstr " böylece sadece yığıt değiştirilmiş olur." + +#~ msgid "dir adds DIR to the directory stack at the top, making it the" +#~ msgstr "dir DÄ°ZÄ°Ni yeni çalışma dizini yaparak dizin yığıtının" + +#~ msgid " new current working directory." +#~ msgstr " tepesine ekler." + +#~ msgid "You can see the directory stack with the `dirs' command." +#~ msgstr "Dizin yığıtını `dirs' komutuyla görebilirsiniz." + +#~ msgid "Removes entries from the directory stack. With no arguments," +#~ msgstr "Dizin yığıtından girdileri siler. Hiç argüman verilmemişse," + +#~ msgid "removes the top directory from the stack, and cd's to the new" +#~ msgstr "yığıtın en üstündeki dizini yığıttan kaldırır ve" + +#~ msgid "top directory." +#~ msgstr "yığıtın tepesinde kalan dizine geçer." + +#~ msgid "+N removes the Nth entry counting from the left of the list" +#~ msgstr "+N `dirs' tarafından gösterilen listenin solundan saymaya" + +#~ msgid " shown by `dirs', starting with zero. For example: `popd +0'" +#~ msgstr " sıfırla başlandığında N'inci girdiyi siler. Örneğin," + +#~ msgid " removes the first directory, `popd +1' the second." +#~ msgstr " `popd +0' ilk dizini `popd +1' ikincisini siler." + +#~ msgid "-N removes the Nth entry counting from the right of the list" +#~ msgstr "-N `dirs' tarafından gösterilen listenin sağından saymaya" + +#~ msgid " shown by `dirs', starting with zero. For example: `popd -0'" +#~ msgstr " sıfırla başlandığında N'inci girdiyi siler. Örneğin," + +#~ msgid " removes the last directory, `popd -1' the next to last." +#~ msgstr " `popd -0' son dizini `popd -1' sonuncudan öncekini siler." + +#~ msgid "" +#~ "-n suppress the normal change of directory when removing directories" +#~ msgstr "" +#~ "-n dizinleri yığıttan silerken normal dizin değişikliğini engeller," + +#~ msgid " from the stack, so only the stack is manipulated." +#~ msgstr " böylece sadece yığıt değiştirilmiş olur." + +#~ msgid "allocated" +#~ msgstr "ayrılmış" + +#~ msgid "freed" +#~ msgstr "serbest bırakılmış" + +#~ msgid "requesting resize" +#~ msgstr "yeniden boyutlandırma isteniyor" + +#~ msgid "just resized" +#~ msgstr "yeniden boyutlandırıldı" + +#~ msgid "bug: unknown operation" +#~ msgstr "yazılım hatası: unknown operation" + +#~ msgid "malloc: watch alert: %p %s " +#~ msgstr "malloc: yakalama alarmı: %p %s " + +#~ msgid "" +#~ "Exit from within a FOR, WHILE or UNTIL loop. If N is specified,\n" +#~ " break N levels." +#~ msgstr "" +#~ "\rbreak [N]\n" +#~ " FOR, WHILE veya UNTIL döngülerinden çıkılmasını sağlar. N " +#~ "verilmişse,\n" +#~ " dışa doğru N. döngüden çıkılır. N >= 1 olmalıdır." + +#~ msgid "" +#~ "Run a shell builtin. This is useful when you wish to rename a\n" +#~ " shell builtin to be a function, but need the functionality of the\n" +#~ " builtin within the function itself." +#~ msgstr "" +#~ "\rbuiltin [kabuk-yerleşiği [argümanlar]]\n" +#~ " Bir kabuk yerleşiğini çalıştırır. Bu bir kabuk işlevinin bir " +#~ "kabul\n" +#~ " yerleşiği ile aynı isimde atanması durumunda faydalıdır, fakat " +#~ "işlevin\n" +#~ " içinde yerleşiğin işlevselliğinin sağlanması gerekir." + +#~ msgid "" +#~ "Print the current working directory. With the -P option, pwd prints\n" +#~ " the physical directory, without any symbolic links; the -L option\n" +#~ " makes pwd follow symbolic links." +#~ msgstr "" +#~ "\rpwd [-LP]\n" +#~ " Geçerli çalışma dizinini basar. -P seçeneği ile sembolik bağlar\n" +#~ " olmaksızın fiziksel dizini basar; -L seçeneği ile sembolik bağları " +#~ "izler." + +#~ msgid "Return a successful result." +#~ msgstr "" +#~ "\rtrue\n" +#~ " Başarılı bir sonuç döndürür." + +#~ msgid "" +#~ "Runs COMMAND with ARGS ignoring shell functions. If you have a shell\n" +#~ " function called `ls', and you wish to call the command `ls', you can\n" +#~ " say \"command ls\". If the -p option is given, a default value is " +#~ "used\n" +#~ " for PATH that is guaranteed to find all of the standard utilities. " +#~ "If\n" +#~ " the -V or -v option is given, a string is printed describing " +#~ "COMMAND.\n" +#~ " The -V option produces a more verbose description." +#~ msgstr "" +#~ "\rcommand [-pVv] KOMUT [ARGümanlar ...]\n" +#~ " KOMUT komutunu KOMUT isimli kabuk işlevini yoksayarak " +#~ "ARGümanlarla\n" +#~ " çalıştırır. Örneğin, `ls' isimli bir kabuk işlevi varsa ve siz " +#~ "`ls'\n" +#~ " komutunu çalıştırmak istiyorsanız \"command ls\" " +#~ "diyebilirsiniz.\n" +#~ " -p seçeneği verilmişse, tüm standart uygulamaların bulunmasını " +#~ "garanti\n" +#~ " eden PATH için bir öntanımlı değer kullanılır. -V ya da -v " +#~ "seçeneği\n" +#~ " verilmişse, KOMUTu açıklayan bir dizge basılır. -V seçeneği " +#~ "daha\n" +#~ " ayrıntılı açıklama üretilmesini sağlar. " + +#~ msgid "Obsolete. See `declare'." +#~ msgstr "" +#~ "\rtypeset [-afFirtx] [-p] Ä°SÄ°M[=DEĞER] ...\n" +#~ " Geçersiz (eski). `declare'ye bakın." + +#~ msgid "" +#~ "Create a local variable called NAME, and give it VALUE. LOCAL\n" +#~ " can only be used within a function; it makes the variable NAME\n" +#~ " have a visible scope restricted to that function and its children." +#~ msgstr "" +#~ "\rlocal [seçenek] Ä°SÄ°M[=DEĞER] ...\n" +#~ " Ä°SÄ°M isimli bir yerel değişken oluşturulup, ona DEĞER atar.\n" +#~ " local sadece bir işlev içinde kullanılabilir; Ä°SÄ°M değişkeninin\n" +#~ " sadece işlev ve çocuklarının etki alanında görünür olmasını sağlar." + +#~ msgid "" +#~ "Output the ARGs. If -n is specified, the trailing newline is suppressed." +#~ msgstr "" +#~ "\recho [-neE] [ARG ...]\n" +#~ " ARGümanlarını çıktılar. -n belirtilmişse, satırsonu bastırılır." + +#~ msgid "" +#~ "Enable and disable builtin shell commands. This allows\n" +#~ " you to use a disk command which has the same name as a shell\n" +#~ " builtin without specifying a full pathname. If -n is used, the\n" +#~ " NAMEs become disabled; otherwise NAMEs are enabled. For example,\n" +#~ " to use the `test' found in $PATH instead of the shell builtin\n" +#~ " version, type `enable -n test'. On systems supporting dynamic\n" +#~ " loading, the -f option may be used to load new builtins from the\n" +#~ " shared object FILENAME. The -d option will delete a builtin\n" +#~ " previously loaded with -f. If no non-option names are given, or\n" +#~ " the -p option is supplied, a list of builtins is printed. The\n" +#~ " -a option means to print every builtin with an indication of whether\n" +#~ " or not it is enabled. The -s option restricts the output to the " +#~ "POSIX.2\n" +#~ " `special' builtins. The -n option displays a list of all disabled " +#~ "builtins." +#~ msgstr "" +#~ "\renable [-n] [-p] [-f DOSYAÄ°SMÄ°] [-ads] [Ä°SÄ°M ...]\n" +#~ " Yerleşik kabuk komutlarını etkinleştirir ve kaldırır. Bir " +#~ "kabuk\n" +#~ " yerleşiği ile aynı isme sahip bir disk komutunun tam dosya " +#~ "yolu\n" +#~ " belirtmeksizin kullanılabilmesini mümkün kılar. -n " +#~ "seçeneği\n" +#~ " kullanılmışsa Ä°SÄ°Mler kullanımdan kaldırılır; aksi takdirde " +#~ "Ä°SÄ°Mler\n" +#~ " etkin kılınır. Örneğin `test' yerleşiği yerine `test' " +#~ "uygulamasının\n" +#~ " yerleşik komut olarak kullanılmasını sağlamak için `enable -n " +#~ "test'\n" +#~ " yazmalısınız. Dinamik yüklemenin desteklendiği sistemlerde, -" +#~ "f\n" +#~ " seçeneği ile yeni bir Ä°SÄ°M yerleşik komutunun DOSYAÄ°SMÄ° ile " +#~ "belirtilen\n" +#~ " paylaşımlı nesneden yüklenmesi sağlanır. -d seçeneği -f ile " +#~ "yüklenen\n" +#~ " yerleşiği silmek için kullanılır. Hiç seçenek verilmezse ya da -" +#~ "p\n" +#~ " seçeneği verilirse kabuk yerleşiklerinin bir listesi gösterilir. -" +#~ "a\n" +#~ " seçeneği ile her yerleşik etkin olup olmadığı belirtilerek " +#~ "listelenir.\n" +#~ " -s seçeneği ile sadece POSIX'e özel yerleşikleri içerir. -n " +#~ "seçeneği\n" +#~ " bir Ä°SÄ°M belirtilmeksizin kullanılırsa kullanımdan " +#~ "kaldırılmış\n" +#~ " yerleşikleri listeler." + +#~ msgid "" +#~ "Read ARGs as input to the shell and execute the resulting command(s)." +#~ msgstr "" +#~ "\reval [ARG ...]\n" +#~ " Kabuğa girilmiş biçimleriyle ARG'ları okur ve sonuçlanan komutları " +#~ "çalıştır." + +#~ msgid "" +#~ "Exec FILE, replacing this shell with the specified program.\n" +#~ " If FILE is not specified, the redirections take effect in this\n" +#~ " shell. If the first argument is `-l', then place a dash in the\n" +#~ " zeroth arg passed to FILE, as login does. If the `-c' option\n" +#~ " is supplied, FILE is executed with a null environment. The `-a'\n" +#~ " option means to make set argv[0] of the executed process to NAME.\n" +#~ " If the file cannot be executed and the shell is not interactive,\n" +#~ " then the shell exits, unless the shell option `execfail' is set." +#~ msgstr "" +#~ "\rexec [-cl] [-a AD] DOSYA [YÖNLENDÄ°RMELER]]\n" +#~ " DOSYA'yı yeni bir süreç oluşturmadan kabukla değiştirip çalıştırır.\n" +#~ " Eğer DOSYA belirtilmemişse, kabukta YÖNLENDÄ°RMELER etkili olur.\n" +#~ " Eğer ilk argüman -l ise, login'in yaptığı gibi DOSYAya aktarılan\n" +#~ " sıfırıncı argümana bir tire yerleştirilir. -c seçeneği verilmişse,\n" +#~ " DOSYA boş bir ortamda çalıştırılır. -a seçeneği verilirse kabuk,\n" +#~ " DOSYAya ADı 0. argüman (argv[0]) olarak aktarır. Eğer DOSYA\n" +#~ " çalıştırılamazsa ve kabuk etkileşimli değilse, `execfail' kabuk\n" +#~ " değişkeni etkin olmadıkça kabuk çıkar." + +#~ msgid "Logout of a login shell." +#~ msgstr "" +#~ "\rlogout\n" +#~ " Oturum kabuğundan çıkıp oturumu kapatır." + +#~ msgid "" +#~ "For each NAME, the full pathname of the command is determined and\n" +#~ " remembered. If the -p option is supplied, PATHNAME is used as the\n" +#~ " full pathname of NAME, and no path search is performed. The -r\n" +#~ " option causes the shell to forget all remembered locations. The -d\n" +#~ " option causes the shell to forget the remembered location of each " +#~ "NAME.\n" +#~ " If the -t option is supplied the full pathname to which each NAME\n" +#~ " corresponds is printed. If multiple NAME arguments are supplied " +#~ "with\n" +#~ " -t, the NAME is printed before the hashed full pathname. The -l " +#~ "option\n" +#~ " causes output to be displayed in a format that may be reused as " +#~ "input.\n" +#~ " If no arguments are given, information about remembered commands is " +#~ "displayed." +#~ msgstr "" +#~ "\rhash [-lr] [-p DOSYAYOLU] [-dt] [AD]\n" +#~ " AD argümanları olarak belirtilen komutların tam dosya yollarını\n" +#~ " hatırlar, böylece müteakip çağrılarda aranmalarına gerek kalmaz.\n" +#~ " Komutlar $PATH içinde listelenmiş dizinler aranarak bulunur. -p\n" +#~ " seçeneği dosya yolu aramalarını engeller ve ADın konumu olarak\n" +#~ " DOSYAYOLU kullanılır. -r seçeneği hatırlanan tüm konumları kabuğun\n" +#~ " unutmasına sebep olur. -d seçeneği her AD için hatırlanan konumun\n" +#~ " kabuk tarafından unutulmasına sebep olur. -t seçeneği verildiğinde\n" +#~ " her ADa karşılık gelen dosya konumları basılır. -t seçeneği ile çok\n" +#~ " sayıda AD verilirse, AD hatırlanan tam dosya yolundan önce basılır.\n" +#~ " -l seçeneği çıktının girdi olarak tekrar kullanılmasını sağlayacak\n" +#~ " biçimde basılmasını sağlar. Hiç argüman belirtilmezse ya da sadece\n" +#~ " -l seçeneği belirtilirse hatırlanan komutlar hakkında bilgi basılır." + +#~ msgid "" +#~ "Display helpful information about builtin commands. If PATTERN is\n" +#~ " specified, gives detailed help on all commands matching PATTERN,\n" +#~ " otherwise a list of the builtins is printed. The -s option\n" +#~ " restricts the output for each builtin command matching PATTERN to\n" +#~ " a short usage synopsis." +#~ msgstr "" +#~ "\rhelp [-s] [KALIP]\n" +#~ " Yerleşik komutlar hakkında yardım bilgisi gösterir. KALIP " +#~ "belirtilmişse,\n" +#~ " help KALIP ile eşleşen tüm komutlar için yardım bilgisi gösterir, " +#~ "aksi\n" +#~ " takdirde yerleşikler listelenir. -s seçeneği ile yardım bilgisi " +#~ "yerine\n" +#~ " komutun kullanımını gösteren sözdizimini basar." + +#~ msgid "" +#~ "By default, removes each JOBSPEC argument from the table of active jobs.\n" +#~ " If the -h option is given, the job is not removed from the table, but " +#~ "is\n" +#~ " marked so that SIGHUP is not sent to the job if the shell receives a\n" +#~ " SIGHUP. The -a option, when JOBSPEC is not supplied, means to remove " +#~ "all\n" +#~ " jobs from the job table; the -r option means to remove only running " +#~ "jobs." +#~ msgstr "" +#~ "\rdisown [-h] [-ar] [İŞ_BELÄ°RTÄ°MÄ° ...]\n" +#~ " Seçeneksiz kullanımda her İŞ_BELÄ°RTÄ°MÄ° etkin işler tablosundan\n" +#~ " kaldırılır. -h seçeneği ile iş tablodan kaldırılmaz ama imlenir\n" +#~ " böylece kabuk bir SIGHUP alırsa bunu işe göndermez. İŞ_BELÄ°RTÄ°MÄ°\n" +#~ " verilmeden -a seçeneğinin kullanılması durumunda iş tablosundaki\n" +#~ " tüm işler kaldırılır. İŞ_BELÄ°RTÄ°MÄ° verilmeden -r seçeneğinin\n" +#~ " kullanılması durumunda ise sadece çalışmakta olan işler kaldırılır." + +#~ msgid "" +#~ "Causes a function to exit with the return value specified by N. If N\n" +#~ " is omitted, the return status is that of the last command." +#~ msgstr "" +#~ "\rreturn [N]\n" +#~ " Bir işlevin N değeri ile dönerek çıkmasına sebep olur. N verilmezse\n" +#~ " son komutun dönüş durumu döner." + +#~ msgid "" +#~ "For each NAME, remove the corresponding variable or function. Given\n" +#~ " the `-v', unset will only act on variables. Given the `-f' flag,\n" +#~ " unset will only act on functions. With neither flag, unset first\n" +#~ " tries to unset a variable, and if that fails, then tries to unset a\n" +#~ " function. Some variables cannot be unset; also see readonly." +#~ msgstr "" +#~ "\runset [-f] [-v] [AD ...]\n" +#~ " ADı belirtilen her işlev ya da değişken kaldırılır. -v verilmişse,\n" +#~ " işlem sadece kabuk değişkenlerine uygulanır. -f verilmişse, işlem\n" +#~ " sadece kabuk işlevlerine uygulanır ve işlev tanımı kaldırılır.\n" +#~ " Hiçbir seçenek verilmemişse, unset önce bir değişkeni kaldırmayı\n" +#~ " dener, başarısız olursa bir işlevi kaldırmayı dener. Salt-okunur\n" +#~ " değişkenler ve işlevler kaldırılamaz." + +#~ msgid "" +#~ "NAMEs are marked for automatic export to the environment of\n" +#~ " subsequently executed commands. If the -f option is given,\n" +#~ " the NAMEs refer to functions. If no NAMEs are given, or if `-p'\n" +#~ " is given, a list of all names that are exported in this shell is\n" +#~ " printed. An argument of `-n' says to remove the export property\n" +#~ " from subsequent NAMEs. An argument of `--' disables further option\n" +#~ " processing." +#~ msgstr "" +#~ "\rexport [-nf] [Ä°SÄ°M[=DEĞER] ...]\n" +#~ "export -p\n" +#~ " Ortamdaki çocuk sürece aktarılacak her Ä°SÄ°M'i imler. -f " +#~ "verilmişse\n" +#~ " Ä°SÄ°M'ler kabuk işlevleridir, aksi takdirde kabuk " +#~ "değişkenleridir.\n" +#~ " -n seçeneği verilirse aktarılacak Ä°SÄ°M'ler artık imlenmez. " +#~ "Ä°SÄ°M\n" +#~ " verilmemişse veya -p seçeneği verilmişse aktarılan Ä°SÄ°M'lerin " +#~ "listesi\n" +#~ " gösterilir. -p seçeneği çıktının girdi olarak tekrar " +#~ "kullanılabilir\n" +#~ " biçimde gösterilmesini sağlar. Bir değişken isminden sonra " +#~ "=DEĞER\n" +#~ " geliyorsa değer değişkenin değeri yapılır. `--' ile seçenek " +#~ "işlemleri\n" +#~ " kapatılır." + +#~ msgid "" +#~ "The given NAMEs are marked readonly and the values of these NAMEs may\n" +#~ " not be changed by subsequent assignment. If the -f option is given,\n" +#~ " then functions corresponding to the NAMEs are so marked. If no\n" +#~ " arguments are given, or if `-p' is given, a list of all readonly " +#~ "names\n" +#~ " is printed. The `-a' option means to treat each NAME as\n" +#~ " an array variable. An argument of `--' disables further option\n" +#~ " processing." +#~ msgstr "" +#~ "\rreadonly [-af] [Ä°SÄ°M[=DEĞER] ...]\n" +#~ "readonly -p\n" +#~ " Her Ä°SÄ°M'i salt-okunur olarak imler. Bu Ä°SÄ°M'lerin değerleri\n" +#~ " müteakip çağrılarda değiştirilemez. -f seçeneği verilirse, her\n" +#~ " Ä°SÄ°M bir kabuk işlevi olarak imlenir. -a seçeneği verilirse, her\n" +#~ " isim bir dizi değişkeni olarak ele alınır. Hiç argüman verilmezse\n" +#~ " veya -p seçeneği verilirse salt-okunur isimlerin hepsi basılır. Bir\n" +#~ " değişken isminden sonra bir =DEĞER geliyorsa DEĞER değişkenin değeri\n" +#~ " yapılır. `--' ile seçenek işlemleri kapatılır." + +#~ msgid "" +#~ "The positional parameters from $N+1 ... are renamed to $1 ... If N is\n" +#~ " not given, it is assumed to be 1." +#~ msgstr "" +#~ "\rshift [N]\n" +#~ " $N+1 ... konumsal parametreleri $1 ... olarak ele alınır.\n" +#~ " N verilmezse 1 kabul edilir." + +#~ msgid "" +#~ "Suspend the execution of this shell until it receives a SIGCONT\n" +#~ " signal. The `-f' if specified says not to complain about this\n" +#~ " being a login shell if it is; just suspend anyway." +#~ msgstr "" +#~ "\rsuspend [-f]\n" +#~ " Bu kabuğun çalışmasını bir SIGCONT sinyali alana kadar askıya alır.\n" +#~ " -f seçeneği kullanıldığında kabuk bir giriş kabuğu olsa bile askıya " +#~ "alınır." + +#~ msgid "" +#~ "Print the accumulated user and system times for processes run from\n" +#~ " the shell." +#~ msgstr "" +#~ "\rtimes\n" +#~ " Kabukta çalışan süreçlerden toplanan kullanıcı ve sistem zamanlarını " +#~ "basar." + +#~ msgid "" +#~ "For each NAME, indicate how it would be interpreted if used as a\n" +#~ " command name.\n" +#~ " \n" +#~ " If the -t option is used, `type' outputs a single word which is one " +#~ "of\n" +#~ " `alias', `keyword', `function', `builtin', `file' or `', if NAME is " +#~ "an\n" +#~ " alias, shell reserved word, shell function, shell builtin, disk " +#~ "file,\n" +#~ " or unfound, respectively.\n" +#~ " \n" +#~ " If the -p flag is used, `type' either returns the name of the disk\n" +#~ " file that would be executed, or nothing if `type -t NAME' would not\n" +#~ " return `file'.\n" +#~ " \n" +#~ " If the -a flag is used, `type' displays all of the places that " +#~ "contain\n" +#~ " an executable named `file'. This includes aliases, builtins, and\n" +#~ " functions, if and only if the -p flag is not also used.\n" +#~ " \n" +#~ " The -f flag suppresses shell function lookup.\n" +#~ " \n" +#~ " The -P flag forces a PATH search for each NAME, even if it is an " +#~ "alias,\n" +#~ " builtin, or function, and returns the name of the disk file that " +#~ "would\n" +#~ " be executed." +#~ msgstr "" +#~ "\rtype [-afptP] AD [AD ...]\n" +#~ " Her ADın bir komut ismi olarak kullanılırsa nasıl yorumlanması\n" +#~ " gerektiğini belirtir.\n" +#~ "\n" +#~ " -t seçeneği verildiğinde, AD bir takma ad ise `alias', bir işlev ise\n" +#~ " `function', bir yerleşik komut ise `builtin', bir disk dosyası ise \n" +#~ " `file' veya bir anahtar sözcük ise `keyword' sözcüğünü basar.\n" +#~ "\n" +#~ " -p seçeneği verildiğinde, AD, `type -t AD' çıktısı file sonucunu\n" +#~ " vermiyorsa hiçbir şey dönmez, aksi takdirde çalıştırılacak disk\n" +#~ " dosyasının ismi basılır.\n" +#~ "\n" +#~ " -a seçeneği verildiğinde, isim çalıştırılabilir dosyasının\n" +#~ " bulunabileceği yerleri basar. Bu, sadece ve sadece -p seçeneği\n" +#~ " kullanılmamışsa takma adları, yerleşik komutları ve işlevleri\n" +#~ " de içerir.\n" +#~ "\n" +#~ " -f seçeneği belirtilmişse type kabuk işlevlerini bulmaya çalışmaz.\n" +#~ "\n" +#~ " -P seçeneği her ADiçin, bir takma ad, yerleşik komut veya işlev " +#~ "olmasa\n" +#~ " bile bir yol araması yapılmasını için zorlar ve çalıştırılabilir " +#~ "disk\n" +#~ " dosyası ismi ile döner." + +#~ msgid "" +#~ "The user file-creation mask is set to MODE. If MODE is omitted, or if\n" +#~ " `-S' is supplied, the current value of the mask is printed. The `-" +#~ "S'\n" +#~ " option makes the output symbolic; otherwise an octal number is " +#~ "output.\n" +#~ " If `-p' is supplied, and MODE is omitted, the output is in a form\n" +#~ " that may be used as input. If MODE begins with a digit, it is\n" +#~ " interpreted as an octal number, otherwise it is a symbolic mode " +#~ "string\n" +#~ " like that accepted by chmod(1)." +#~ msgstr "" +#~ "\rumask [-p] [-S] [KÄ°P]\n" +#~ " Kabuk sürecinin dosya oluşturma maskesini KÄ°P olarak ayarlar.\n" +#~ " -S seçeneği bir KÄ°P olmaksızın verilirse, maske sembolik kipte\n" +#~ " gösterilir. -S seçeneği çıktının sembolik olmasını sağlar, yoksa\n" +#~ " sekizlik değer basılır. -p seçeneği bir KÄ°P olmaksızın verilirse,\n" +#~ " maske, kabuğa girdi olarak verilebilecek biçemde gösterilir. KÄ°P\n" +#~ " bir rakam ile başlıyorsa sekizlik bir sayı olarak yorumlanır;\n" +#~ " rakamla başlamıyorsa, chmod(1) komutundaki gibi bir sembolik kip\n" +#~ " maskesi olarak yorumlanır. Eğer KÄ°P verilmezse, maskenin mevcut\n" +#~ " değeri gösterilir." + +#~ msgid "" +#~ "Wait for the specified process and report its termination status. If\n" +#~ " N is not given, all currently active child processes are waited for,\n" +#~ " and the return code is zero. N is a process ID; if it is not given,\n" +#~ " all child processes of the shell are waited for." +#~ msgstr "" +#~ "\rwait [N]\n" +#~ " Belirtilen süreci bekler ve sonlandırma durumunu raporlar. N\n" +#~ " verilmezse, o an etkin olan tüm süreçler için beklenir ve sıfır\n" +#~ " durumu ile dönülür. N bir süreç kimliğidir; verilmezse kabuğun\n" +#~ " tüm alt süreçleri için beklenir." + +#~ msgid "" +#~ "Create a simple command invoked by NAME which runs COMMANDS.\n" +#~ " Arguments on the command line along with NAME are passed to the\n" +#~ " function as $0 .. $n." +#~ msgstr "" +#~ "\rfunction AD { KOMUTlar ; }\n" +#~ "\tveya\n" +#~ "AD () { KOMUTlar ; }\n" +#~ " ADıyla çağrılarak KOMUTları çalıştıran basit bir komut oluşturur.\n" +#~ " AD ile birlikte verilen komut satırı argümanları işleve $0 .. $N\n" +#~ " olarak aktarılır." + +#~ msgid "" +#~ "Toggle the values of variables controlling optional behavior.\n" +#~ " The -s flag means to enable (set) each OPTNAME; the -u flag\n" +#~ " unsets each OPTNAME. The -q flag suppresses output; the exit\n" +#~ " status indicates whether each OPTNAME is set or unset. The -o\n" +#~ " option restricts the OPTNAMEs to those defined for use with\n" +#~ " `set -o'. With no options, or with the -p option, a list of all\n" +#~ " settable options is displayed, with an indication of whether or\n" +#~ " not each is set." +#~ msgstr "" +#~ "\rshopt [-pqsu] [-o UZUN-SEÇENEK] SÇNKADI [SÇNKADI...]\n" +#~ " Ä°steğe bağlı kabuk davranışlarını kontrol eden değişken değerlerini " +#~ "açıp\n" +#~ " kapar. -s ile belirtilen her SÇNKADInı etkinleştirir. -u ile " +#~ "belirtilen\n" +#~ " her SÇNKADInı iptal eder. -q ile normal çıktıyı engeller; dönüş " +#~ "durumu\n" +#~ " SÇNKADInın etkin olup olmadığını gösterir. -o ile set yerleşiğinin " +#~ "-o\n" +#~ " seçeneğinde kullanılabilecek SÇNKADI değerlerini sınırlar. Seçeneksiz " +#~ "ya\n" +#~ " da -p seçeneği ile tüm atanabilir seçenekleri etkin olup " +#~ "olmadıklarını\n" +#~ " belirterek listeler." + +#~ msgid "" +#~ "For each NAME, specify how arguments are to be completed.\n" +#~ " If the -p option is supplied, or if no options are supplied, " +#~ "existing\n" +#~ " completion specifications are printed in a way that allows them to " +#~ "be\n" +#~ " reused as input. The -r option removes a completion specification " +#~ "for\n" +#~ " each NAME, or, if no NAMEs are supplied, all completion " +#~ "specifications." +#~ msgstr "" +#~ "\rcomplete [-abcdefgjksuv] [-pr] [-o SEÇENEK] [-A EYLEM] [-G KALIP]\n" +#~ " [-W SÖZLÄ°ST] [-P ÖNEK] [-S SONEK] [-X SÜZGEÇ] [-F İŞLEV]\n" +#~ " [-C KOMUT] [AD ...]\n" +#~ " Her AD için argümanların nasıl tamamlanmaları gerektiği belirtilir.\n" +#~ " -p seçeneği verilirse veya hiç seçenek verilmezse, mevcut tamamlama\n" +#~ " belirtimleri girdi olarak yeniden kullanılabilir şekilde basılır.\n" +#~ " -r seçeneği her AD için tamamlama belirtimini kaldırır,\n" +#~ " hiç AD belirtilmezse tümü kaldırılır." diff --git a/po/vi.gmo b/po/vi.gmo new file mode 100644 index 0000000000000000000000000000000000000000..43096def7072fb85f89376f96c722b24ebd424f8 GIT binary patch literal 164633 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, 2008. +# +msgid "" +msgstr "" +"Project-Id-Version: bash 4.0-pre1\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2009-01-06 11:56-0500\n" +"PO-Revision-Date: 2008-09-08 17:26+0930\n" +"Last-Translator: Clytie Siddall \n" +"Language-Team: Vietnamese \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: LocFactoryEditor 1.7b3\n" + +#: arrayfunc.c:50 +msgid "bad array subscript" +msgstr "sai mảng in thấp" + +#: arrayfunc.c:313 builtins/declare.def:474 +#, c-format +msgid "%s: cannot convert indexed to associative array" +msgstr "%s: không thể chuyển đổi mảng theo số mÅ© sang mảng kết hợp" + +#: arrayfunc.c:479 +#, c-format +msgid "%s: invalid associative array key" +msgstr "%s: khoá màng kết hợp không hợp lệ" + +#: arrayfunc.c:481 +#, c-format +msgid "%s: cannot assign to non-numeric index" +msgstr "%s: không thể cấp phát cho chỉ số không thuộc số" + +#: arrayfunc.c:517 +#, c-format +msgid "%s: %s: must use subscript when assigning associative array" +msgstr "%s: %s: phải sá»­ dụng chữ thấp khi gán mảng kết hợp" + +#: bashhist.c:380 +#, c-format +msgid "%s: cannot create: %s" +msgstr "%s: không thể tạo %s" + +#: bashline.c:3413 +msgid "bash_execute_unix_command: cannot find keymap for command" +msgstr "bash_execute_unix_command: không tìm thấy sÆ¡ đồ phím cho câu lệnh" + +#: bashline.c:3491 +#, c-format +msgid "%s: first non-whitespace character is not `\"'" +msgstr "" +"%s: ký tá»± khác khoảng trắng đầu tiên không phải là dấu sổ chéo ngược « / »" + +#: bashline.c:3520 +#, c-format +msgid "no closing `%c' in %s" +msgstr "thiếu « %c » đóng trong %s" + +#: bashline.c:3554 +#, c-format +msgid "%s: missing colon separator" +msgstr "%s: thiếu dấu hai chấm định giới" + +#: builtins/bind.def:120 builtins/bind.def:123 +msgid "line editing not enabled" +msgstr "" + +#: builtins/bind.def:206 +#, c-format +msgid "`%s': invalid keymap name" +msgstr "« %s »: tên sÆ¡ đồ phím không hợp lệ" + +#: builtins/bind.def:245 +#, c-format +msgid "%s: cannot read: %s" +msgstr "%s: không thể đọc %s" + +#: builtins/bind.def:260 +#, c-format +msgid "`%s': cannot unbind" +msgstr "« %s »: không thể hủy tổ hợp" + +#: builtins/bind.def:295 builtins/bind.def:325 +#, c-format +msgid "`%s': unknown function name" +msgstr "« %s »: tên hàm không rõ" + +#: builtins/bind.def:303 +#, c-format +msgid "%s is not bound to any keys.\n" +msgstr "%s không được tổ hợp với phím.\n" + +#: builtins/bind.def:307 +#, c-format +msgid "%s can be invoked via " +msgstr "%s có thể được gọi thông qua " + +#: builtins/break.def:77 builtins/break.def:117 +msgid "loop count" +msgstr "đếm vòng" + +#: builtins/break.def:137 +msgid "only meaningful in a `for', `while', or `until' loop" +msgstr "" +"chỉ có nghÄ©a trong vòng lặp:\n" +" • for\ttrong\n" +" • while\ttrong khi\n" +" • until\tđến khi" + +#: builtins/caller.def:133 +msgid "" +"Returns the context of the current subroutine call.\n" +" \n" +" Without EXPR, returns " +msgstr "" + +#: builtins/cd.def:215 +msgid "HOME not set" +msgstr "ChÆ°a đặt biến môi trường HOME (nhà)" + +#: builtins/cd.def:227 +msgid "OLDPWD not set" +msgstr "ChÆ°a đặt biến môi trường OLDPWD (mật khẩu cÅ©)" + +#: builtins/common.c:101 +#, c-format +msgid "line %d: " +msgstr "dòng %d:" + +#: builtins/common.c:139 error.c:260 +#, c-format +msgid "warning: " +msgstr "cảnh báo :" + +#: builtins/common.c:153 +#, c-format +msgid "%s: usage: " +msgstr "%s: sá»­ dụng:" + +#: builtins/common.c:166 test.c:822 +msgid "too many arguments" +msgstr "quá nhiều đối số" + +#: builtins/common.c:191 shell.c:493 shell.c:774 +#, c-format +msgid "%s: option requires an argument" +msgstr "%s: tùy chọn cần thiết một đối số" + +#: builtins/common.c:198 +#, c-format +msgid "%s: numeric argument required" +msgstr "%s: cần thiết đối số thuộc số" + +#: builtins/common.c:205 +#, c-format +msgid "%s: not found" +msgstr "%s: không tìm thấy" + +#: builtins/common.c:214 shell.c:787 +#, c-format +msgid "%s: invalid option" +msgstr "%s: tùy chọn không hợp lệ" + +#: builtins/common.c:221 +#, c-format +msgid "%s: invalid option name" +msgstr "%s: tên tùy chọn không hợp lệ" + +#: builtins/common.c:228 general.c:231 general.c:236 +#, c-format +msgid "`%s': not a valid identifier" +msgstr "« %s »: không phải đồ nhận diện hợp lệ" + +#: builtins/common.c:238 +msgid "invalid octal number" +msgstr "số bát phân không hợp lệ" + +#: builtins/common.c:240 +msgid "invalid hex number" +msgstr "số thập lục không hợp lệ" + +#: builtins/common.c:242 expr.c:1255 +msgid "invalid number" +msgstr "số không hợp lệ" + +#: builtins/common.c:250 +#, c-format +msgid "%s: invalid signal specification" +msgstr "%s: sai xác định tín hiệu" + +#: builtins/common.c:257 +#, c-format +msgid "`%s': not a pid or valid job spec" +msgstr "« %s »: không phải đặc tả hợp lệ cho PID hoặc công việc" + +#: builtins/common.c:264 error.c:453 +#, c-format +msgid "%s: readonly variable" +msgstr "%s: biến chỉ đọc" + +#: builtins/common.c:272 +#, c-format +msgid "%s: %s out of range" +msgstr "%s: %s ở ngoại phạm vi" + +#: builtins/common.c:272 builtins/common.c:274 +msgid "argument" +msgstr "đối số" + +#: builtins/common.c:274 +#, c-format +msgid "%s out of range" +msgstr "%s ở ngoại phạm vi" + +#: builtins/common.c:282 +#, c-format +msgid "%s: no such job" +msgstr "%s: không có công việc nhÆ° vậy" + +#: builtins/common.c:290 +#, c-format +msgid "%s: no job control" +msgstr "%s: không có điều khiển công việc" + +#: builtins/common.c:292 +msgid "no job control" +msgstr "không có điều khiển công việc" + +#: builtins/common.c:302 +#, c-format +msgid "%s: restricted" +msgstr "%s: bị hạn chế" + +#: builtins/common.c:304 +msgid "restricted" +msgstr "bị hạn chế" + +#: builtins/common.c:312 +#, c-format +msgid "%s: not a shell builtin" +msgstr "%s: không phải dá»±ng sẵn trình bao" + +#: builtins/common.c:321 +#, c-format +msgid "write error: %s" +msgstr "lỗi ghi: %s" + +#: builtins/common.c:553 +#, c-format +msgid "%s: error retrieving current directory: %s: %s\n" +msgstr "%s: gặp lỗi khi lấy thÆ° mục hiện thời: %s: %s\n" + +#: builtins/common.c:619 builtins/common.c:621 +#, c-format +msgid "%s: ambiguous job spec" +msgstr "%s: đặc tả công việc mÆ¡ hồ" + +#: builtins/complete.def:270 +#, c-format +msgid "%s: invalid action name" +msgstr "%s: tên hành vi không hợp lệ" + +#: builtins/complete.def:430 builtins/complete.def:615 +#: builtins/complete.def:813 +#, c-format +msgid "%s: no completion specification" +msgstr "%s: không có đặc tả điền nốt" + +#: builtins/complete.def:667 +msgid "warning: -F option may not work as you expect" +msgstr "cảnh báo: tùy chọn « -F » có lẽ không hoạt động nhÆ° mong đợi" + +#: builtins/complete.def:669 +msgid "warning: -C option may not work as you expect" +msgstr "cảnh báo: tùy chọn « -C » có lẽ không hoạt động nhÆ° mong đợi" + +#: builtins/complete.def:786 +msgid "not currently executing completion function" +msgstr "hiện thời không thá»±c thi chức năng điền nốt" + +#: builtins/declare.def:122 +msgid "can only be used in a function" +msgstr "chỉ có thể được dùng trong một hàm" + +#: builtins/declare.def:353 +msgid "cannot use `-f' to make functions" +msgstr "không thể dùng « -f » để tạo hàm" + +#: builtins/declare.def:365 execute_cmd.c:4731 +#, c-format +msgid "%s: readonly function" +msgstr "%s: hàm chỉ đọc" + +#: builtins/declare.def:461 +#, c-format +msgid "%s: cannot destroy array variables in this way" +msgstr "%s: không thể phá hủy biến mảng bằng cách này" + +#: builtins/declare.def:468 +#, c-format +msgid "%s: cannot convert associative to indexed array" +msgstr "%s: không thể chuyển đổi mảng kết hợp sang mảng theo số mÅ©" + +#: builtins/enable.def:137 builtins/enable.def:145 +msgid "dynamic loading not available" +msgstr "không có sẵn chức năng nạp động" + +#: builtins/enable.def:312 +#, c-format +msgid "cannot open shared object %s: %s" +msgstr "không thể mở đối tượng dùng chung %s: %s" + +#: builtins/enable.def:335 +#, c-format +msgid "cannot find %s in shared object %s: %s" +msgstr "không tìm thấy %s trong đối tượng dùng chung %s: %s" + +#: builtins/enable.def:459 +#, c-format +msgid "%s: not dynamically loaded" +msgstr "%s không phải được nạp động" + +#: builtins/enable.def:474 +#, c-format +msgid "%s: cannot delete: %s" +msgstr "%s: không thể xoá: %s" + +#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4588 +#: shell.c:1439 +#, c-format +msgid "%s: is a directory" +msgstr "%s: là thÆ° mục" + +#: builtins/evalfile.c:139 +#, c-format +msgid "%s: not a regular file" +msgstr "%s: không phải là tập tin chuẩn" + +#: builtins/evalfile.c:147 +#, c-format +msgid "%s: file is too large" +msgstr "%s: tập tin quá lớn" + +#: builtins/evalfile.c:185 execute_cmd.c:4658 shell.c:1449 +#, c-format +msgid "%s: cannot execute binary file" +msgstr "%s: không thể thá»±c hiện tập tin nhị phân" + +#: builtins/exec.def:212 +#, c-format +msgid "%s: cannot execute: %s" +msgstr "%s: không thể thá»±c hiện: %s" + +#: builtins/exit.def:65 +#, c-format +msgid "logout\n" +msgstr "đăng xuất\n" + +#: builtins/exit.def:88 +msgid "not login shell: use `exit'" +msgstr "không phải trình bao đăng nhập: hãy dùng lệnh « exit » (thoát)" + +#: builtins/exit.def:120 +#, c-format +msgid "There are stopped jobs.\n" +msgstr "Vẫn có công việc bị dừng.\n" + +#: builtins/exit.def:122 +#, c-format +msgid "There are running jobs.\n" +msgstr "Vẫn có công việc đang chạy.\n" + +#: builtins/fc.def:261 +msgid "no command found" +msgstr "không tìm thấy lệnh" + +#: builtins/fc.def:341 +msgid "history specification" +msgstr "đặc tả lịch sá»­" + +#: builtins/fc.def:362 +#, c-format +msgid "%s: cannot open temp file: %s" +msgstr "%s: không thể mở tập tin tạm thời: %s" + +#: builtins/fg_bg.def:149 builtins/jobs.def:282 +msgid "current" +msgstr "hiện thời" + +#: builtins/fg_bg.def:158 +#, c-format +msgid "job %d started without job control" +msgstr "công việc %d đã khởi chạy mà không có điều khiển công việc" + +#: builtins/getopt.c:110 +#, c-format +msgid "%s: illegal option -- %c\n" +msgstr "%s: tùy chọn không được phép -- %c\n" + +#: builtins/getopt.c:111 +#, c-format +msgid "%s: option requires an argument -- %c\n" +msgstr "%s: tùy chọn cần thiết đối số -- %c\n" + +#: builtins/hash.def:92 +msgid "hashing disabled" +msgstr "chức năng tạo ký hiệu lộn xộn bị tắt" + +#: builtins/hash.def:138 +#, c-format +msgid "%s: hash table empty\n" +msgstr "%s: bảng ký hiệu lộn xộn còn rỗng\n" + +#: builtins/hash.def:244 +#, c-format +msgid "hits\tcommand\n" +msgstr "gọi nhớ\tlệnh\n" + +#: builtins/help.def:130 +#, c-format +msgid "Shell commands matching keyword `" +msgid_plural "Shell commands matching keywords `" +msgstr[0] "Câu lệnh trình bao tÆ°Æ¡ng ứng với từ khoá `" + +#: builtins/help.def:168 +#, c-format +msgid "" +"no help topics match `%s'. Try `help help' or `man -k %s' or `info %s'." +msgstr "" +"không có chủ đề trợ giúp tÆ°Æ¡ng ứng với « %s ». Hãy thá»­ câu lệnh:\n" +" • help help\n" +" • man -k %s\n" +" • info %s" + +#: builtins/help.def:185 +#, c-format +msgid "%s: cannot open: %s" +msgstr "%s: không thể mở : %s" + +#: builtins/help.def:337 +#, c-format +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 "" +"Những câu lệnh trình bao này được xác định nội bộ. Hãy gõ :\n" +" • help\t\tđể xem danh sách này.\n" +" • info bash\tđể tìm thêm thông tin chung về trình bao.\n" +" • man -k\t} • info\t\t} để tìm thêm thông tin về lệnh không có trong danh " +"sách này.\n" +"\n" +"Dấu sao « * » bên cạnh tên thì ngụ ý nó bị tắt.\n" +"\n" + +#: builtins/history.def:154 +msgid "cannot use more than one of -anrw" +msgstr "chỉ có thể dùng một của những tùy chọn « -a », « -n », « -r », « -w »" + +#: builtins/history.def:186 +msgid "history position" +msgstr "vị trí lịch sá»­" + +#: builtins/history.def:365 +#, c-format +msgid "%s: history expansion failed" +msgstr "%s: lỗi mở rộng lịch sá»­" + +#: builtins/inlib.def:71 +#, c-format +msgid "%s: inlib failed" +msgstr "%s: inlib bị lỗi" + +#: builtins/jobs.def:109 +msgid "no other options allowed with `-x'" +msgstr "không cho phép dùng tùy chọn thêm với « -x »" + +#: builtins/kill.def:197 +#, c-format +msgid "%s: arguments must be process or job IDs" +msgstr "%s: đối số phải là mã số của tiến trình (PID) hoặc công việc" + +#: builtins/kill.def:260 +msgid "Unknown error" +msgstr "Lỗi không rõ" + +#: builtins/let.def:95 builtins/let.def:120 expr.c:501 expr.c:516 +msgid "expression expected" +msgstr "đợi biểu thức" + +#: builtins/mapfile.def:215 builtins/read.def:272 +#, c-format +msgid "%s: invalid file descriptor specification" +msgstr "%s: sai xác định bộ mô tả tập tin" + +#: builtins/mapfile.def:223 builtins/read.def:279 +#, c-format +msgid "%d: invalid file descriptor: %s" +msgstr "%d: bộ mô tả tập tin không hợp lệ: %s" + +#: builtins/mapfile.def:232 builtins/mapfile.def:270 +#, c-format +msgid "%s: invalid line count" +msgstr "%s: sai đếm dòng" + +#: builtins/mapfile.def:243 +#, c-format +msgid "%s: invalid array origin" +msgstr "%s: gốc mảng không hợp lệ" + +#: builtins/mapfile.def:260 +#, c-format +msgid "%s: invalid callback quantum" +msgstr "%s: lượng gọi ngược không hợp lệ" + +#: builtins/mapfile.def:292 +msgid "empty array variable name" +msgstr "%s: tên biến mảng vẫn trống" + +#: builtins/mapfile.def:313 +msgid "array variable support required" +msgstr "cần thiết hỗ trợ biến mảng" + +#: builtins/printf.def:367 +#, c-format +msgid "`%s': missing format character" +msgstr "« %s »: thiếu ký tá»± định dạng" + +#: builtins/printf.def:544 +#, c-format +msgid "`%c': invalid format character" +msgstr "« %c »: ký tá»± định dạng không hợp lệ" + +#: builtins/printf.def:571 +#, c-format +msgid "warning: %s: %s" +msgstr "cảnh báo : %s: %s" + +#: builtins/printf.def:750 +msgid "missing hex digit for \\x" +msgstr "thiếu chữ số thập phân cho \\x" + +#: builtins/pushd.def:195 +msgid "no other directory" +msgstr "không có thÆ° mục khác" + +#: builtins/pushd.def:462 +msgid "" +msgstr "" + +#: builtins/pushd.def:506 +msgid "directory stack empty" +msgstr "đống thÆ° mục vẫn trống" + +#: builtins/pushd.def:508 +msgid "directory stack index" +msgstr "chỉ mục đống thÆ° mục" + +#: builtins/pushd.def:683 +msgid "" +"Display the list of currently remembered directories. Directories\n" +" find their way onto the list with the `pushd' command; you can get\n" +" back up through the list with the `popd' command.\n" +" \n" +" Options:\n" +" -c\tclear the directory stack by deleting all of the elements\n" +" -l\tdo not print tilde-prefixed versions of directories relative\n" +" \tto your home directory\n" +" -p\tprint the directory stack with one entry per line\n" +" -v\tprint the directory stack with one entry per line prefixed\n" +" \twith its position in the stack\n" +" \n" +" Arguments:\n" +" +N\tDisplays the Nth entry counting from the left of the list shown " +"by\n" +" \tdirs when invoked without options, starting with zero.\n" +" \n" +" -N\tDisplays the Nth entry counting from the right of the list shown " +"by\n" +"\tdirs when invoked without options, starting with zero." +msgstr "" +"Hiển thị danh sách các thÆ° mục được nhớ hiện thời.\n" +"\tLệnh « pushd » thêm thÆ° mục vào danh sách này;\n" +"« popd » nâng thÆ° mục lên danh sách.\n" +"\n" +"\tTùy chọn:\n" +"\t\t-c\tgột đống thÆ° mục bằng cách xoá mọi phần tá»­\n" +"\t\t-l\tđừng in ra phiên bản thÆ° mục có dấu ngã nằm trước\n" +"\t\t\tmà tÆ°Æ¡ng ứng với thÆ° mục chính của người dùng\n" +"\t\t-p\tin ra đống thÆ° mục mỗi dòng một mục\n" +"\t\t-v\tin ra đống thÆ° mục mỗi dòng một mục\n" +"\t\t\tcó vị trí đống nằm trước\n" +"\n" +"\tĐối số :\n" +"\t\t+N\thiển thị mục thứ N đếm từ bên trái danh sách\n" +"\t\t\thiển thị theo thÆ° mục khi không đưa ra tùy chọn,\n" +"\t\t\tbắt đầu từ số không.\n" +"\n" +"\t\t-N\thiển thị mục thứ N đếm từ bên phải danh sách\n" +"\t\t\thiển thị theo thÆ° mục khi không đưa ra tùy chọn,\n" +"\t\t\tbắt đầu từ số không." + +#: builtins/pushd.def:705 +msgid "" +"Adds a directory to the top of the directory stack, or rotates\n" +" the stack, making the new top of the stack the current working\n" +" directory. With no arguments, exchanges the top two directories.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when adding\n" +" \tdirectories to the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the left of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" -N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the right of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" dir\tAdds DIR to the directory stack at the top, making it the\n" +" \tnew current working directory.\n" +" \n" +" The `dirs' builtin displays the directory stack." +msgstr "" +"Thêm một thÆ° mục vào đầu của đống thÆ° mục, hoặc xoay đống,\n" +"\tlàm cho thÆ° mục mới đầu đống là thÆ° mục làm việc hiện thời.\n" +"\tKhông có đối số thì trao đổi hai thÆ° mục đầu.\n" +"\n" +"\tTùy chọn:\n" +"\t\t-n\tthu hồi chức năng chuyển đổi thÆ° mục bình thường\n" +"\tkhi thêm thÆ° mục vào đống, thì chỉ thao tác đống chính nó.\n" +"\n" +"\tĐối số :\n" +"\t\t+N\txoay đống để mà thÆ° mục thứ N\n" +"\t\t\t(đếm từ bên trái danh sách hiển thị theo thÆ° mục,\n" +"\t\t\tbắt đầu từ số không) nằm ở đầu.\n" +"\n" +"\t\t-N\txoay đống để mà thÆ° mục thứ N\n" +"\t\t\t(đếm từ bên phải danh sách hiển thị theo thÆ° mục,\n" +"\t\t\tbắt đầu từ số không) nằm ở đầu.\n" +"\n" +"\t\tdir\tthêm DIR vào đầu đống thÆ° mục,\n" +"\t\tthì làm cho nó thÆ° mục làm việc hiện thời.\n" +"\n" +"\tDá»±ng sẵn « dirs » hiển thị đống thÆ° mục." + +#: builtins/pushd.def:730 +msgid "" +"Removes entries from the directory stack. With no arguments, removes\n" +" the top directory from the stack, and changes to the new top directory.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when removing\n" +" \tdirectories from the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRemoves the Nth entry counting from the left of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd +0'\n" +" \tremoves the first directory, `popd +1' the second.\n" +" \n" +" -N\tRemoves the Nth entry counting from the right of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd -0'\n" +" \tremoves the last directory, `popd -1' the next to last.\n" +" \n" +" The `dirs' builtin displays the directory stack." +msgstr "" +"Gỡ bỏ thÆ° mục khỏi đống thÆ° mục.\n" +"Không đưa ra đối số thì gỡ bỏ thÆ° mục đầu khỏi đống,\n" +"\tvà chuyển đổi sang thÆ° mục đầu mới.\n" +"\n" +"\tTùy chọn:\n" +"\t\t-n\tthu hồi chức năng chuyển đổi thÆ° mục bình thường\n" +"\t\tkhi gỡ bỏ thÆ° mục khỏi đống, thì chỉ thao tác đống chính nó.\n" +"\n" +"\tĐối số :\n" +"\t\t+N\tgỡ bỏ mục thứ N đếm từ bên trái danh sách\n" +"\t\t\thiển thị bằng « dirs », bắt đầu từ số không.\n" +"\tVí dụ : « popd +0 » sẽ gỡ bỏ thÆ° mục đầu tiên,\n" +"\t\t« popd +1 » gỡ bỏ thÆ° mục thứ hai, v.v.\n" +"\n" +"\t\t-N\tgỡ bỏ mục thứ N đếm từ bên phải danh sách\n" +"\t\t\thiển thị bằng « dirs », bắt đầu từ số không.\n" +"\tVí dụ : « popd -0 » sẽ gỡ bỏ thÆ° mục cuối cùng,\n" +"\t\t« popd -1 » gỡ bỏ thÆ° mục giáp cuối, v.v.\n" +"\n" +"\tDá»±ng sẵn « dirs » sẽ hiển thị đống thÆ° mục." + +#: builtins/read.def:248 +#, c-format +msgid "%s: invalid timeout specification" +msgstr "%s: sai xác định quá hạn" + +#: builtins/read.def:574 +#, c-format +msgid "read error: %d: %s" +msgstr "lỗi đọc: %d: %s" + +#: builtins/return.def:73 +msgid "can only `return' from a function or sourced script" +msgstr "" +"chỉ có thể « return » (trở về) từ một hàm hoặc văn lệnh được gọi từ nguồn" + +#: builtins/set.def:768 +msgid "cannot simultaneously unset a function and a variable" +msgstr "không thể hủy đặt đồng thời một hàm VÀ một biến" + +#: builtins/set.def:805 +#, c-format +msgid "%s: cannot unset" +msgstr "%s: không thể hủy đặt" + +#: builtins/set.def:812 +#, c-format +msgid "%s: cannot unset: readonly %s" +msgstr "%s: không thể hủy đặt: %s chỉ đọc" + +#: builtins/set.def:823 +#, c-format +msgid "%s: not an array variable" +msgstr "%s: không phải biến mảng" + +#: builtins/setattr.def:186 +#, c-format +msgid "%s: not a function" +msgstr "%s: không phải hàm" + +#: builtins/shift.def:71 builtins/shift.def:77 +msgid "shift count" +msgstr "đếm dời" + +#: builtins/shopt.def:254 +msgid "cannot set and unset shell options simultaneously" +msgstr "không thể đồng thời đặt và hủy đặt các tùy chọn trình bao" + +#: builtins/shopt.def:319 +#, c-format +msgid "%s: invalid shell option name" +msgstr "%s: tên tùy chọn trình bao không hợp lệ" + +#: builtins/source.def:128 +msgid "filename argument required" +msgstr "cần thiết đối số tên tập tin" + +#: builtins/source.def:153 +#, c-format +msgid "%s: file not found" +msgstr "%s: không tìm thấy tập tin" + +#: builtins/suspend.def:101 +msgid "cannot suspend" +msgstr "không thể ngÆ°ng" + +#: builtins/suspend.def:111 +msgid "cannot suspend a login shell" +msgstr "không thể ngÆ°ng trình bao đăng nhập" + +#: builtins/type.def:234 +#, c-format +msgid "%s is aliased to `%s'\n" +msgstr "%s có bí danh tới « %s »\n" + +#: builtins/type.def:255 +#, c-format +msgid "%s is a shell keyword\n" +msgstr "%s là từ khoá trình bao\n" + +#: builtins/type.def:274 +#, c-format +msgid "%s is a function\n" +msgstr "%s là hàm\n" + +#: builtins/type.def:296 +#, c-format +msgid "%s is a shell builtin\n" +msgstr "%s là dá»±ng sẵn trình bao\n" + +#: builtins/type.def:317 builtins/type.def:391 +#, c-format +msgid "%s is %s\n" +msgstr "%s là %s\n" + +#: builtins/type.def:337 +#, c-format +msgid "%s is hashed (%s)\n" +msgstr "%s có ký hiệu lộn xộn (%s)\n" + +#: builtins/ulimit.def:372 +#, c-format +msgid "%s: invalid limit argument" +msgstr "%s: đối số giới hạn không hợp lệ" + +#: builtins/ulimit.def:398 +#, c-format +msgid "`%c': bad command" +msgstr "« %c »: câu lệnh sai" + +#: builtins/ulimit.def:427 +#, c-format +msgid "%s: cannot get limit: %s" +msgstr "%s: không thể lấy giới hạn: %s" + +#: builtins/ulimit.def:453 +msgid "limit" +msgstr "giới hạn" + +#: builtins/ulimit.def:465 builtins/ulimit.def:765 +#, c-format +msgid "%s: cannot modify limit: %s" +msgstr "%s: không thể sá»­a đổi giới hạn: %s" + +#: builtins/umask.def:118 +msgid "octal number" +msgstr "số bát phân" + +#: builtins/umask.def:231 +#, c-format +msgid "`%c': invalid symbolic mode operator" +msgstr "« %c »: toán từ chế độ tượng trÆ°ng không hợp lệ" + +#: builtins/umask.def:286 +#, c-format +msgid "`%c': invalid symbolic mode character" +msgstr "« %c »: ký tá»± chế độ tượng trÆ°ng không hợp lệ" + +#: error.c:89 error.c:320 error.c:322 error.c:324 +msgid " line " +msgstr "dòng" + +#: error.c:164 +#, c-format +msgid "last command: %s\n" +msgstr "câu lệnh cuối cùng: %s\n" + +#: error.c:172 +#, c-format +msgid "Aborting..." +msgstr "Hủy bỏ..." + +#: error.c:405 +msgid "unknown command error" +msgstr "lỗi lệnh không rõ" + +#: error.c:406 +msgid "bad command type" +msgstr "kiểu lệnh sai" + +#: error.c:407 +msgid "bad connector" +msgstr "bộ kết nối sai" + +#: error.c:408 +msgid "bad jump" +msgstr "sai nhảy" + +#: error.c:446 +#, c-format +msgid "%s: unbound variable" +msgstr "%s: biến chÆ°a tổ hợp" + +#: eval.c:181 +#, c-format +msgid "\atimed out waiting for input: auto-logout\n" +msgstr "\tquá hạn trong khi đợi dữ liệu nhập nên tá»± động đăng xuất\n" + +#: execute_cmd.c:491 +#, c-format +msgid "cannot redirect standard input from /dev/null: %s" +msgstr "không thể chuyển hướng đầu vào tiêu chuẩn từ « /dev/null »: %s" + +#: execute_cmd.c:1091 +#, c-format +msgid "TIMEFORMAT: `%c': invalid format character" +msgstr "ĐỊNH DẠNG THỜI GIAN: « %c »: ký tá»± định dạng không hợp lệ" + +#: execute_cmd.c:1942 +msgid "pipe error" +msgstr "lỗi ống dẫn" + +#: execute_cmd.c:4276 +#, c-format +msgid "%s: restricted: cannot specify `/' in command names" +msgstr "%s: bị hạn chế: không thể ghi rõ dấu sổ chéo « / » trong tên câu lệnh" + +#: execute_cmd.c:4367 +#, c-format +msgid "%s: command not found" +msgstr "%s: không tìm thấy lệnh" + +#: execute_cmd.c:4621 +#, c-format +msgid "%s: %s: bad interpreter" +msgstr "%s: %s: bộ thông dịch sai" + +#: execute_cmd.c:4770 +#, c-format +msgid "cannot duplicate fd %d to fd %d" +msgstr "không thể nhân đôi fd %d tới fd %d" + +#: expr.c:241 +msgid "expression recursion level exceeded" +msgstr "vượt quá giới hạn mức độ đệ quy của biểu thức" + +#: expr.c:265 +msgid "recursion stack underflow" +msgstr "trán ngược đống đệ quy" + +#: expr.c:379 +msgid "syntax error in expression" +msgstr "lỗi cú pháp trong biểu thức" + +#: expr.c:419 +msgid "attempted assignment to non-variable" +msgstr "thá»­ gán cho đồ không phải biến" + +#: expr.c:440 expr.c:445 expr.c:756 +msgid "division by 0" +msgstr "chia cho không" + +#: expr.c:471 +msgid "bug: bad expassign token" +msgstr "lỗi (bug): hiệu bài ấn định biểu thức sai" + +#: expr.c:513 +msgid "`:' expected for conditional expression" +msgstr "đợi dấu hai chấm « : » cho biểu thức điều kiện" + +#: expr.c:781 +msgid "exponent less than 0" +msgstr "số mÅ© nhỏ hÆ¡n 0" + +#: expr.c:826 +msgid "identifier expected after pre-increment or pre-decrement" +msgstr "đợi đồ nhận diện đằng sau tăng/giảm dần sẵn" + +#: expr.c:854 +msgid "missing `)'" +msgstr "thiếu dấu ngoặc đóng « ) »" + +#: expr.c:897 expr.c:1175 +msgid "syntax error: operand expected" +msgstr "lỗi cú pháp: đợi toán hạng" + +#: expr.c:1177 +msgid "syntax error: invalid arithmetic operator" +msgstr "lỗi cú pháp: toán tá»­ số học không hợp lệ" + +#: expr.c:1201 +#, c-format +msgid "%s%s%s: %s (error token is \"%s\")" +msgstr "%s%s%s: %s (hiệu bài lỗi là « %s »)" + +#: expr.c:1259 +msgid "invalid arithmetic base" +msgstr "cÆ¡ số (số học) không hợp lệ" + +#: expr.c:1279 +msgid "value too great for base" +msgstr "cÆ¡ số có giá trị quá lớn" + +#: expr.c:1328 +#, c-format +msgid "%s: expression error\n" +msgstr "%s: lỗi biểu thức\n" + +#: general.c:61 +msgid "getcwd: cannot access parent directories" +msgstr "getcwd: không thể truy cập thÆ° mục cấp trên" + +#: input.c:94 subst.c:4559 +#, c-format +msgid "cannot reset nodelay mode for fd %d" +msgstr "không thể đặt lại chế độ nodelay (không hoãn) cho fd %d" + +#: input.c:258 +#, c-format +msgid "cannot allocate new file descriptor for bash input from fd %d" +msgstr "không thể cấp phát bộ mô tả tập tin mớ cho dữ liệu nhập bash từ fd %d" + +#: input.c:266 +#, c-format +msgid "save_bash_input: buffer already exists for new fd %d" +msgstr "save_bash_input: đã có bộ đệm cho fd mới %d" + +# NghÄ©a chữ ? +#: jobs.c:466 +msgid "start_pipeline: pgrp pipe" +msgstr "start_pipeline: pgrp pipe" + +#: jobs.c:882 +#, c-format +msgid "forked pid %d appears in running job %d" +msgstr "tiến trình con đã tạo (PID %d) xuất hiện trong công việc đang chạy %d" + +#: jobs.c:1000 +#, c-format +msgid "deleting stopped job %d with process group %ld" +msgstr "đang xoá công việc bị dừng chạy %d với nhóm tiến trình %ld" + +#: jobs.c:1105 +#, c-format +msgid "add_process: process %5ld (%s) in the_pipeline" +msgstr "add_process: tiến trình %5ld (%s) trong the_pipeline" + +#: jobs.c:1108 +#, c-format +msgid "add_process: pid %5ld (%s) marked as still alive" +msgstr "add_process: pid %5ld (%s) được đánh dấu vẫn hoạt động" + +#: jobs.c:1396 +#, c-format +msgid "describe_pid: %ld: no such pid" +msgstr "describe_pid: %ld: không có PID (mã số tiến trình) nhÆ° vậy" + +#: jobs.c:1411 +#, c-format +msgid "Signal %d" +msgstr "Tín hiệu %d" + +#: jobs.c:1425 jobs.c:1450 +msgid "Done" +msgstr "Hoàn tất" + +#: jobs.c:1430 siglist.c:122 +msgid "Stopped" +msgstr "Bị dừng" + +#: jobs.c:1434 +#, c-format +msgid "Stopped(%s)" +msgstr "Bị dừng(%s)" + +#: jobs.c:1438 +msgid "Running" +msgstr "Đang chạy" + +#: jobs.c:1452 +#, c-format +msgid "Done(%d)" +msgstr "Hoàn tất(%d)" + +#: jobs.c:1454 +#, c-format +msgid "Exit %d" +msgstr "Thoát %d" + +#: jobs.c:1457 +msgid "Unknown status" +msgstr "Không rõ trạng thái" + +#: jobs.c:1544 +#, c-format +msgid "(core dumped) " +msgstr "(lõi bị đổ)" + +#: jobs.c:1563 +#, c-format +msgid " (wd: %s)" +msgstr " (wd: %s)" + +#: jobs.c:1766 +#, c-format +msgid "child setpgid (%ld to %ld)" +msgstr "setpgid tiến trình con (%ld thành %ld)" + +#: jobs.c:2094 nojobs.c:576 +#, c-format +msgid "wait: pid %ld is not a child of this shell" +msgstr "wait: pid %ld không phải là tiến trình con của trình bao này" + +#: jobs.c:2321 +#, c-format +msgid "wait_for: No record of process %ld" +msgstr "wait_for: Không có mục ghi về tiến trình %ld" + +#: jobs.c:2593 +#, c-format +msgid "wait_for_job: job %d is stopped" +msgstr "wait_for_job: công việc %d bị dừng chạy" + +#: jobs.c:2815 +#, c-format +msgid "%s: job has terminated" +msgstr "%s: công việc bị chấm dứt" + +#: jobs.c:2824 +#, c-format +msgid "%s: job %d already in background" +msgstr "%s: công việc %d đã chạy trong nền" + +#: jobs.c:3487 +#, c-format +msgid "%s: line %d: " +msgstr "%s: dòng %d:" + +#: jobs.c:3501 nojobs.c:805 +#, c-format +msgid " (core dumped)" +msgstr " (lõi bị đổ)" + +#: jobs.c:3513 jobs.c:3526 +#, c-format +msgid "(wd now: %s)\n" +msgstr "(wd bây giờ: %s)\n" + +#: jobs.c:3558 +msgid "initialize_job_control: getpgrp failed" +msgstr "initialize_job_control: getpgrp bị lỗi" + +#: jobs.c:3618 +msgid "initialize_job_control: line discipline" +msgstr "initialize_job_control: ká»· luật dòng" + +# NghÄ©a chữ : dừng dịch +#: jobs.c:3628 +msgid "initialize_job_control: setpgid" +msgstr "initialize_job_control: setpgid" + +#: jobs.c:3656 +#, c-format +msgid "cannot set terminal process group (%d)" +msgstr "không thể đặt nhóm tiến trình cuối cùng (%d)" + +#: jobs.c:3661 +msgid "no job control in this shell" +msgstr "không có điều khiển công việc trong trình bao này" + +#: lib/malloc/malloc.c:296 +#, c-format +msgid "malloc: failed assertion: %s\n" +msgstr "malloc (cấp phát bộ nhớ): lỗi khẳng định: %s\n" + +#: lib/malloc/malloc.c:312 +#, c-format +msgid "" +"\r\n" +"malloc: %s:%d: assertion botched\r\n" +msgstr "" +"\r\n" +"malloc (cấp phát bộ nhớ): %s:%d: khẳng định bị hỏng\r\n" + +#: lib/malloc/malloc.c:313 +msgid "unknown" +msgstr "không rõ" + +#: lib/malloc/malloc.c:797 +msgid "malloc: block on free list clobbered" +msgstr "" +"malloc (cấp phát bộ nhớ): khối bộ nhớ dành riêng trên danh sách các khối còn " +"rảnh bị ghi vào" + +#: lib/malloc/malloc.c:874 +msgid "free: called with already freed block argument" +msgstr "free: đã được gọi với đối số khối đã giải phỏng" + +#: lib/malloc/malloc.c:877 +msgid "free: called with unallocated block argument" +msgstr "free: đã được gọi với đối số khối chÆ°a cấp phát" + +#: lib/malloc/malloc.c:896 +msgid "free: underflow detected; mh_nbytes out of range" +msgstr "free: phát hiện sá»± tràn ngược; mh_nbytes ở ngoại phạm vi" + +#: lib/malloc/malloc.c:902 +msgid "free: start and end chunk sizes differ" +msgstr "free: kích cỡ đoạn đầu và cuối không trùng" + +#: lib/malloc/malloc.c:1001 +msgid "realloc: called with unallocated block argument" +msgstr "realloc: đã được gọi với đối số khối chÆ°a cấp phát" + +#: lib/malloc/malloc.c:1016 +msgid "realloc: underflow detected; mh_nbytes out of range" +msgstr "realloc: phát hiện sá»± tràn ngược; mh_nbytes ở ngoại phạm vi" + +#: lib/malloc/malloc.c:1022 +msgid "realloc: start and end chunk sizes differ" +msgstr "realloc: kích cỡ đoạn đầu và cuối không trùng" + +#: lib/malloc/table.c:177 +#, c-format +msgid "register_alloc: alloc table is full with FIND_ALLOC?\n" +msgstr "register_alloc: bảng cấp phát đầy với FIND_ALLOC?\n" + +#: lib/malloc/table.c:184 +#, c-format +msgid "register_alloc: %p already in table as allocated?\n" +msgstr "register_alloc: %p đã có trong bảng nhÆ° được cấp phát ?\n" + +#: lib/malloc/table.c:220 +#, c-format +msgid "register_free: %p already in table as free?\n" +msgstr "register_free: %p đã có trong bảng nhÆ° còn rảnh ?\n" + +#: lib/sh/fmtulong.c:101 +msgid "invalid base" +msgstr "cÆ¡ số không hợp lệ" + +#: lib/sh/netopen.c:168 +#, c-format +msgid "%s: host unknown" +msgstr "%s: không rõ máy" + +#: lib/sh/netopen.c:175 +#, c-format +msgid "%s: invalid service" +msgstr "%s: dịch vụ không hợp lệ" + +#: lib/sh/netopen.c:306 +#, c-format +msgid "%s: bad network path specification" +msgstr "%s: đặc tả đường dẫn mạng sai" + +#: lib/sh/netopen.c:346 +msgid "network operations not supported" +msgstr "không hỗ trợ thao tác mạng" + +#: mailcheck.c:433 +msgid "You have mail in $_" +msgstr "Bạn có thÆ° trong $_" + +#: mailcheck.c:458 +msgid "You have new mail in $_" +msgstr "Bạn có thÆ° mới trong $_" + +#: mailcheck.c:474 +#, c-format +msgid "The mail in %s has been read\n" +msgstr "ThÆ° tín trong %s đã được đọc\n" + +#: make_cmd.c:322 +msgid "syntax error: arithmetic expression required" +msgstr "lỗi cú pháp: cần thiết biểu thức số học" + +#: make_cmd.c:324 +msgid "syntax error: `;' unexpected" +msgstr "lỗi cú pháp: dấu chấm phẩy « ; » bất thường" + +#: make_cmd.c:325 +#, c-format +msgid "syntax error: `((%s))'" +msgstr "lỗi cú pháp: `((%s))'" + +#: make_cmd.c:567 +#, c-format +msgid "make_here_document: bad instruction type %d" +msgstr "make_here_document: kiểu chỉ dẫn sai %d" + +#: make_cmd.c:651 +#, c-format +msgid "here-document at line %d delimited by end-of-file (wanted `%s')" +msgstr "" +"tài liệu này ở dòng %d định giới bằng kết thúc tập tin (mong đợi « %s »)" + +#: make_cmd.c:746 +#, c-format +msgid "make_redirection: redirection instruction `%d' out of range" +msgstr "make_redirection: chỉ dẫn chuyển hướng « %d » ở ngoại phạm vi" + +#: parse.y:2986 parse.y:3218 +#, c-format +msgid "unexpected EOF while looking for matching `%c'" +msgstr "gặp kết thúc tập tin bất thường trong khi tìm « %c » tÆ°Æ¡ng ứng" + +#: parse.y:3722 +msgid "unexpected EOF while looking for `]]'" +msgstr "gặp kết thúc tập tin bất thường trong khi tìm « ]] »" + +#: parse.y:3727 +#, c-format +msgid "syntax error in conditional expression: unexpected token `%s'" +msgstr "gặp lỗi cú pháp trong biểu thức điều kiện: hiệu bài bất thường « %s »" + +#: parse.y:3731 +msgid "syntax error in conditional expression" +msgstr "gặp lỗi cú pháp trong biểu thức điều kiện" + +#: parse.y:3809 +#, c-format +msgid "unexpected token `%s', expected `)'" +msgstr "gặp hiệu bài bất thường « %s », còn mong đợi dấu ngoặc đóng « ) »" + +#: parse.y:3813 +msgid "expected `)'" +msgstr "đợi dấu đóng ngoặc « ) »" + +#: parse.y:3841 +#, c-format +msgid "unexpected argument `%s' to conditional unary operator" +msgstr "đối số bất thường « %s » tới toán tá»­ nguyên phân điều kiện" + +#: parse.y:3845 +msgid "unexpected argument to conditional unary operator" +msgstr "đối số bất thường tới toán tá»­ nguyên phân điều kiện" + +#: parse.y:3885 +#, c-format +msgid "unexpected token `%s', conditional binary operator expected" +msgstr "hiệu bài bất thường « %s » còn đợi toán tá»­ nhị phân điều kiện" + +#: parse.y:3889 +msgid "conditional binary operator expected" +msgstr "đợi toán tá»­ nhị phân điều kiện" + +#: parse.y:3906 +#, c-format +msgid "unexpected argument `%s' to conditional binary operator" +msgstr "đối số bất thường « %s » tới toán tá»­ nhị phân điều kiện" + +#: parse.y:3910 +msgid "unexpected argument to conditional binary operator" +msgstr "đối số bất thường tới toán tá»­ nhị phân điều kiện" + +#: parse.y:3921 +#, c-format +msgid "unexpected token `%c' in conditional command" +msgstr "gặp hiệu bài bất thường « %c » trong câu lệnh điều kiện" + +#: parse.y:3924 +#, c-format +msgid "unexpected token `%s' in conditional command" +msgstr "gặp hiệu bài bất thường « %s » trong câu lệnh điều kiện" + +#: parse.y:3928 +#, c-format +msgid "unexpected token %d in conditional command" +msgstr "gặp hiệu bài bất thường « %d » trong câu lệnh điều kiện" + +#: parse.y:5195 +#, c-format +msgid "syntax error near unexpected token `%s'" +msgstr "gặp lỗi cú pháp ở gần hiệu bài bất thường « %s »" + +#: parse.y:5213 +#, c-format +msgid "syntax error near `%s'" +msgstr "gặp lỗi cú pháp gần « %s »" + +#: parse.y:5223 +msgid "syntax error: unexpected end of file" +msgstr "lỗi cú pháp: kết thúc tập tin bất thường" + +#: parse.y:5223 +msgid "syntax error" +msgstr "lỗi cú pháp" + +#: parse.y:5285 +#, c-format +msgid "Use \"%s\" to leave the shell.\n" +msgstr "Dùng « %s » để rời trình bao.\n" + +#: parse.y:5447 +msgid "unexpected EOF while looking for matching `)'" +msgstr "" +"gặp kết thúc tập tin bất thường trong khi tìm dấu ngoặc đóng « ) » tÆ°Æ¡ng ứng" + +#: pcomplete.c:1016 +#, c-format +msgid "completion: function `%s' not found" +msgstr "completion: không tìm thấy hàm « %s »" + +#: pcomplib.c:179 +#, c-format +msgid "progcomp_insert: %s: NULL COMPSPEC" +msgstr "progcomp_insert: %s: NULL COMPSPEC" + +#: print_cmd.c:287 +#, c-format +msgid "print_command: bad connector `%d'" +msgstr "print_command: bộ kết nối sai « %d »" + +#: print_cmd.c:1347 +#, c-format +msgid "cprintf: `%c': invalid format character" +msgstr "cprintf: « %c »: ký tá»± định dạng không hợp lệ" + +#: redir.c:105 +msgid "file descriptor out of range" +msgstr "bộ mô tả tập tin ở ngoại phạm vi" + +#: redir.c:148 +#, c-format +msgid "%s: ambiguous redirect" +msgstr "%s: lời chuyển hướng mÆ¡ hồ" + +#: redir.c:152 +#, c-format +msgid "%s: cannot overwrite existing file" +msgstr "%s: không thể ghi đè lên tập tin đã có" + +#: redir.c:157 +#, c-format +msgid "%s: restricted: cannot redirect output" +msgstr "%s: bị hạn chế: không thể chuyển hướng kết xuất" + +#: redir.c:162 +#, c-format +msgid "cannot create temp file for here-document: %s" +msgstr "không thể tạo tập tin tạm thời cho tài liệu này: %s" + +#: redir.c:517 +msgid "/dev/(tcp|udp)/host/port not supported without networking" +msgstr "" +"/dev/(tcp|udp)/host/port không được hỗ trợ khi không có chức năng chạy mạng" + +#: redir.c:1023 +msgid "redirection error: cannot duplicate fd" +msgstr "gặp lỗi chuyển hướng nên không thể nhân đôi fd" + +#: shell.c:328 +msgid "could not find /tmp, please create!" +msgstr "không tìm thấy « /tmp », hãy tạo." + +#: shell.c:332 +msgid "/tmp must be a valid directory name" +msgstr "« /tmp » phải là tên thÆ° mục hợp lệ" + +#: shell.c:876 +#, c-format +msgid "%c%c: invalid option" +msgstr "%c%c: tùy chọn không hợp lệ" + +#: shell.c:1638 +msgid "I have no name!" +msgstr "Không có tên." + +#: shell.c:1778 +#, c-format +msgid "GNU bash, version %s-(%s)\n" +msgstr "bash của GNU, phiên bản %s-(%s)\n" + +#: shell.c:1779 +#, c-format +msgid "" +"Usage:\t%s [GNU long option] [option] ...\n" +"\t%s [GNU long option] [option] script-file ...\n" +msgstr "" +"Sá»­ dụng:\t%s [tùy chọn GNU dài] [tùy chọn] ...\n" +"\t%s [tùy chọn GNU dài] [tùy chọn] tập-tin-văn-lệnh ...\n" + +#: shell.c:1781 +msgid "GNU long options:\n" +msgstr "Tùy chọn GNU dài:\n" + +#: shell.c:1785 +msgid "Shell options:\n" +msgstr "Tùy chọn trình bao :\n" + +#: shell.c:1786 +msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n" +msgstr "\t-irsD hoặc -c lệnh or -O shopt_option\t\t(chỉ cuộc gọi)\n" + +#: shell.c:1801 +#, c-format +msgid "\t-%s or -o option\n" +msgstr "\t-%s hoặc -o tùy chọn\n" + +#: shell.c:1807 +#, c-format +msgid "Type `%s -c \"help set\"' for more information about shell options.\n" +msgstr "" +"Gõ câu lệnh trợ giúp « %s -c \"help set\" » để xem thêm thông tin về các tùy " +"chọn trình bao.\n" + +#: shell.c:1808 +#, c-format +msgid "Type `%s -c help' for more information about shell builtin commands.\n" +msgstr "" +"Gõ câu lệnh trợ giúp « %s -c help » để xem thêm thông tin về các câu lệnh " +"trình bao dá»±ng sẵn.\n" + +#: shell.c:1809 +#, c-format +msgid "Use the `bashbug' command to report bugs.\n" +msgstr "Dùng lệnh « bashbug » để thông báo lỗi.\n" + +#: sig.c:583 +#, c-format +msgid "sigprocmask: %d: invalid operation" +msgstr "sigprocmask: %d: thao tác không hợp lệ" + +#: siglist.c:47 +msgid "Bogus signal" +msgstr "Tín hiệu giả" + +#: siglist.c:50 +msgid "Hangup" +msgstr "Treo máy" + +#: siglist.c:54 +msgid "Interrupt" +msgstr "Gián đoạn" + +#: siglist.c:58 +msgid "Quit" +msgstr "Thoát" + +#: siglist.c:62 +msgid "Illegal instruction" +msgstr "Câu lệnh không được phép" + +#: siglist.c:66 +msgid "BPT trace/trap" +msgstr "Theo vết/đặt bẫy BPT" + +#: siglist.c:74 +msgid "ABORT instruction" +msgstr "Câu lệnh HỦY BỎ" + +#: siglist.c:78 +msgid "EMT instruction" +msgstr "Câu lệnh EMT" + +#: siglist.c:82 +msgid "Floating point exception" +msgstr "Ngoại lệ chấm động" + +#: siglist.c:86 +msgid "Killed" +msgstr "Bị giết" + +#: siglist.c:90 +msgid "Bus error" +msgstr "lỗi mạch nối" + +#: siglist.c:94 +msgid "Segmentation fault" +msgstr "Lỗi chia ra từng đoạn" + +#: siglist.c:98 +msgid "Bad system call" +msgstr "Sai gọi hệ thống" + +#: siglist.c:102 +msgid "Broken pipe" +msgstr "Ống dẫn bị hỏng" + +#: siglist.c:106 +msgid "Alarm clock" +msgstr "Đồng hồ báo thức" + +#: siglist.c:110 +msgid "Terminated" +msgstr "Bị chấm dứt" + +#: siglist.c:114 +msgid "Urgent IO condition" +msgstr "Điều kiện VR gấp" + +#: siglist.c:118 +msgid "Stopped (signal)" +msgstr "Bị dừng (tín hiệu)" + +#: siglist.c:126 +msgid "Continue" +msgstr "Tiếp tục" + +#: siglist.c:134 +msgid "Child death or stop" +msgstr "Tiến trình con đã giết hoặc dừng" + +#: siglist.c:138 +msgid "Stopped (tty input)" +msgstr "Bị dừng (tty nhập)" + +#: siglist.c:142 +msgid "Stopped (tty output)" +msgstr "Bị dừng (tty xuất)" + +#: siglist.c:146 +msgid "I/O ready" +msgstr "V/R sẵn sàng" + +#: siglist.c:150 +msgid "CPU limit" +msgstr "Giới hạn CPU" + +#: siglist.c:154 +msgid "File limit" +msgstr "Giới hạn tập tin" + +#: siglist.c:158 +msgid "Alarm (virtual)" +msgstr "Báo động (ảo)" + +#: siglist.c:162 +msgid "Alarm (profile)" +msgstr "Báo động (hồ sÆ¡)" + +#: siglist.c:166 +msgid "Window changed" +msgstr "Cá»­a sổ bị thay đổi" + +#: siglist.c:170 +msgid "Record lock" +msgstr "Mục ghi bị khoá" + +#: siglist.c:174 +msgid "User signal 1" +msgstr "Tín hiệu người dùng 1" + +#: siglist.c:178 +msgid "User signal 2" +msgstr "Tín hiệu người dùng 2" + +#: siglist.c:182 +msgid "HFT input data pending" +msgstr "Dữ liệu nhập HFT bị hoãn" + +#: siglist.c:186 +msgid "power failure imminent" +msgstr "sắp bị cúp điện đột ngột" + +#: siglist.c:190 +msgid "system crash imminent" +msgstr "hệ thống sắp sụp đổ" + +#: siglist.c:194 +msgid "migrate process to another CPU" +msgstr "chuyển tiến trình sang CPU khác" + +#: siglist.c:198 +msgid "programming error" +msgstr "lỗi lập trình" + +#: siglist.c:202 +msgid "HFT monitor mode granted" +msgstr "Có chế độ màn hình HFT" + +#: siglist.c:206 +msgid "HFT monitor mode retracted" +msgstr "Không có chế độ màn hình HFT" + +#: siglist.c:210 +msgid "HFT sound sequence has completed" +msgstr "Đã hoàn thành chuỗi âm thanh HFT" + +#: siglist.c:214 +msgid "Information request" +msgstr "yêu cầu thông tin" + +#: siglist.c:222 +msgid "Unknown Signal #" +msgstr "Không rõ tín hiệu #" + +#: siglist.c:224 +#, c-format +msgid "Unknown Signal #%d" +msgstr "Không rõ tín hiệu #%d" + +#: subst.c:1181 subst.c:1302 +#, c-format +msgid "bad substitution: no closing `%s' in %s" +msgstr "sai thay thế: không có « %s » đóng trong %s" + +#: subst.c:2458 +#, c-format +msgid "%s: cannot assign list to array member" +msgstr "%s: không thể gán danh sách cho bộ phận của mảng" + +#: subst.c:4456 subst.c:4472 +msgid "cannot make pipe for process substitution" +msgstr "không thể tạo ống dẫn để thay thế tiến trình" + +#: subst.c:4504 +msgid "cannot make child for process substitution" +msgstr "không thể tạo tiến trình con để thay thế tiến trình" + +#: subst.c:4549 +#, c-format +msgid "cannot open named pipe %s for reading" +msgstr "không thể mở ống dẫn đặt tên %s để đọc" + +#: subst.c:4551 +#, c-format +msgid "cannot open named pipe %s for writing" +msgstr "không thể mở ống dẫn đặt tên %s để ghi" + +#: subst.c:4569 +#, c-format +msgid "cannot duplicate named pipe %s as fd %d" +msgstr "không thể nhân đôi ống dẫn đặt tên %s thành fd %d" + +#: subst.c:4765 +msgid "cannot make pipe for command substitution" +msgstr "không thể tạo ống dẫn để thay thế lệnh" + +#: subst.c:4799 +msgid "cannot make child for command substitution" +msgstr "không thể tạo tiến trình con để thay thế lệnh" + +#: subst.c:4816 +msgid "command_substitute: cannot duplicate pipe as fd 1" +msgstr "command_substitute: không thể nhân đôi ống dẫn thành fd 1" + +#: subst.c:5318 +#, c-format +msgid "%s: parameter null or not set" +msgstr "%s: tham số vô giá trị hoặc chÆ°a được đặt" + +#: subst.c:5608 +#, c-format +msgid "%s: substring expression < 0" +msgstr "%s: biểu thức chuỗi phụ < 0" + +#: subst.c:6660 +#, c-format +msgid "%s: bad substitution" +msgstr "%s: sai thay thế" + +#: subst.c:6740 +#, c-format +msgid "$%s: cannot assign in this way" +msgstr "$%s: không thể gán bằng cách này" + +#: subst.c:7479 +#, c-format +msgid "bad substitution: no closing \"`\" in %s" +msgstr "sai thay thế: không có « ` » đóng trong %s" + +#: subst.c:8354 +#, c-format +msgid "no match: %s" +msgstr "không khớp: %s" + +#: test.c:145 +msgid "argument expected" +msgstr "mong đợi đối số" + +#: test.c:154 +#, c-format +msgid "%s: integer expression expected" +msgstr "%s: đợi biểu thức số nguyên" + +#: test.c:262 +msgid "`)' expected" +msgstr "đợi dấu ngoặc đóng « ) »" + +#: test.c:264 +#, c-format +msgid "`)' expected, found %s" +msgstr "đợi dấu ngoặc đóng « ) », còn tìm %s" + +#: test.c:279 test.c:688 test.c:691 +#, c-format +msgid "%s: unary operator expected" +msgstr "%s: đợi toán tá»­ nguyên phân" + +#: test.c:444 test.c:731 +#, c-format +msgid "%s: binary operator expected" +msgstr "%s: đợi toán tá»­ nhị phân" + +#: test.c:806 +msgid "missing `]'" +msgstr "thiếu dấu ngoặc vụ đóng « ] »" + +#: trap.c:201 +msgid "invalid signal number" +msgstr "số thứ tá»± tín hiệu không hợp lệ" + +#: trap.c:324 +#, c-format +msgid "run_pending_traps: bad value in trap_list[%d]: %p" +msgstr "run_pending_traps: giá trị sai trong danh sách trap_list[%d]: %p" + +#: trap.c:328 +#, c-format +msgid "" +"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself" +msgstr "" +"run_pending_traps: bộ xá»­ lý tín hiệu là SIG_DFL, đang gá»­i lại %d (%s) cho " +"mình" + +#: trap.c:372 +#, c-format +msgid "trap_handler: bad signal %d" +msgstr "trap_handler: tín hiệu sai %d" + +#: variables.c:358 +#, c-format +msgid "error importing function definition for `%s'" +msgstr "gặp lỗi khi nhập lời xác định hàm cho « %s »" + +#: variables.c:736 +#, c-format +msgid "shell level (%d) too high, resetting to 1" +msgstr "cấp trình bao (%d) quá cao nên đặt lại thành 1" + +#: variables.c:1898 +msgid "make_local_variable: no function context at current scope" +msgstr "make_local_variable: không có ngữ cảnh hàm ở phạm vi hiện thời" + +#: variables.c:3127 +msgid "all_local_variables: no function context at current scope" +msgstr "all_local_variables: không có ngữ cảnh hàm ở phạm vi hiện thời" + +#: variables.c:3344 variables.c:3353 +#, c-format +msgid "invalid character %d in exportstr for %s" +msgstr "sai ký tá»± %d trong chuỗi exportstr cho %s" + +#: variables.c:3359 +#, c-format +msgid "no `=' in exportstr for %s" +msgstr "không có dấu bằng « = » trong chuỗi exportstr cho %s" + +#: variables.c:3794 +msgid "pop_var_context: head of shell_variables not a function context" +msgstr "" +"pop_var_context: đầu của shell_variables (các biến trình bao) không phải là " +"ngữ cảnh hàm" + +#: variables.c:3807 +msgid "pop_var_context: no global_variables context" +msgstr "" +"pop_var_context: không có ngữ cảnh global_variables (các biến toàn cục)" + +#: variables.c:3881 +msgid "pop_scope: head of shell_variables not a temporary environment scope" +msgstr "" +"pop_scope: đầu của shell_variables (các biến trình bao) không phải là phạm " +"vi môi trường tạm thời" + +#: version.c:46 +#, fuzzy +msgid "Copyright (C) 2009 Free Software Foundation, Inc." +msgstr "Tác quyền © năm 2008 của Tổ chức Phần mềm Tá»± do." + +#: version.c:47 +msgid "" +"License GPLv3+: GNU GPL version 3 or later \n" +msgstr "" +"Giấy phép GPLv3+: Giấy Phép Công Cộng GNU phiên bản 3 hay sau \n" + +#: version.c:86 +#, c-format +msgid "GNU bash, version %s (%s)\n" +msgstr "bash của GNU, phiên bản %s (%s)\n" + +#: version.c:91 +#, c-format +msgid "This is free software; you are free to change and redistribute it.\n" +msgstr "Đây là phần mềm tá»± do thì bạn có quyền sá»­a đổi và phát hành lại nó.\n" + +#: version.c:92 +#, c-format +msgid "There is NO WARRANTY, to the extent permitted by law.\n" +msgstr "KHÔNG BẢO ĐẢM GÌ CẢ, với điều kiện được pháp luật cho phép.\n" + +#: xmalloc.c:92 +#, c-format +msgid "xmalloc: cannot allocate %lu bytes (%lu bytes allocated)" +msgstr "xmalloc: không thể cấp phát %lu byte (%lu byte đã cấp phát)" + +#: xmalloc.c:94 +#, c-format +msgid "xmalloc: cannot allocate %lu bytes" +msgstr "xmalloc: không thể cấp phát %lu byte" + +#: xmalloc.c:114 +#, c-format +msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)" +msgstr "xrealloc: không thể cấp phát lại %lu byte (%lu byte đã cấp phát)" + +#: xmalloc.c:116 +#, c-format +msgid "xrealloc: cannot allocate %lu bytes" +msgstr "xrealloc: không thể cấp phát %lu byte" + +#: xmalloc.c:150 +#, c-format +msgid "xmalloc: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)" +msgstr "xmalloc: %s:%d: không thể cấp phát %lu byte (%lu byte đã cấp phát)" + +#: xmalloc.c:152 +#, c-format +msgid "xmalloc: %s:%d: cannot allocate %lu bytes" +msgstr "xmalloc: %s:%d: không thể cấp phát %lu byte" + +#: xmalloc.c:174 +#, c-format +msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)" +msgstr "" +"xrealloc: %s:%d: không thể cấp phát lại %lu byte (%lu byte đã cấp phát)" + +#: xmalloc.c:176 +#, c-format +msgid "xrealloc: %s:%d: cannot allocate %lu bytes" +msgstr "xrealloc: %s:%d: không thể cấp phát %lu byte" + +#: builtins.c:43 +msgid "alias [-p] [name[=value] ... ]" +msgstr "alias [-p] [tên[=giá-trị] ... ]" + +#: builtins.c:47 +msgid "unalias [-a] name [name ...]" +msgstr "unalias [-a] tên [tên ...]" + +#: builtins.c:51 +msgid "" +"bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-" +"x keyseq:shell-command] [keyseq:readline-function or readline-command]" +msgstr "" +"bind [-lpvsPVS] [-m sÆ¡_đồ_phím] [-f tên_tập_tin] [-q tên] [-u tên] [-r " +"dãy_phím] [-x dãy_phím:lệnh_trình_bao] [dãy_phím:chức_năng-readline hay lệnh-" +"readline]" + +#: builtins.c:54 +msgid "break [n]" +msgstr "break [n]" + +#: builtins.c:56 +msgid "continue [n]" +msgstr "tiếp tục [n]" + +#: builtins.c:58 +msgid "builtin [shell-builtin [arg ...]]" +msgstr "builtin [shell-builtin [arg ...]]" + +#: builtins.c:61 +msgid "caller [expr]" +msgstr "caller [b_thức]" + +#: builtins.c:64 +msgid "cd [-L|-P] [dir]" +msgstr "cd [-L|-P] [tmục]" + +#: builtins.c:66 +msgid "pwd [-LP]" +msgstr "pwd [-LP]" + +#: builtins.c:68 +msgid ":" +msgstr ":" + +#: builtins.c:70 +msgid "true" +msgstr "đúng" + +#: builtins.c:72 +msgid "false" +msgstr "sai" + +#: builtins.c:74 +msgid "command [-pVv] command [arg ...]" +msgstr "command [-pVv] command [arg ...]" + +#: builtins.c:76 +msgid "declare [-aAfFilrtux] [-p] [name[=value] ...]" +msgstr "declare [-aAfFilrtux] [-p] [tên[=giá_trị] ...]" + +#: builtins.c:78 +msgid "typeset [-aAfFilrtux] [-p] name[=value] ..." +msgstr "typeset [-aAfFilrtux] [-p] tên[=giá_trị] ..." + +#: builtins.c:80 +msgid "local [option] name[=value] ..." +msgstr "local [tùy_chọn] tên[=giá_trị] ..." + +#: builtins.c:83 +msgid "echo [-neE] [arg ...]" +msgstr "echo [-neE] [đối_số ...]" + +#: builtins.c:87 +msgid "echo [-n] [arg ...]" +msgstr "echo [-n] [đối_số ...]" + +#: builtins.c:90 +msgid "enable [-a] [-dnps] [-f filename] [name ...]" +msgstr "enable [-a] [-dnps] [-f tên_tập_tin] [tên ...]" + +#: builtins.c:92 +msgid "eval [arg ...]" +msgstr "eval [đối_số ...]" + +#: builtins.c:94 +msgid "getopts optstring name [arg]" +msgstr "getopts chuỗi_tùy_chọn tên [đối_số]" + +#: builtins.c:96 +msgid "exec [-cl] [-a name] [command [arguments ...]] [redirection ...]" +msgstr "exec [-cl] [-a tên] [lệnh [đối_số ...]] [chuyển_hướng ...]" + +#: builtins.c:98 +msgid "exit [n]" +msgstr "exit [n]" + +#: builtins.c:100 +msgid "logout [n]" +msgstr "đăng xuất [n]" + +#: builtins.c:103 +msgid "fc [-e ename] [-lnr] [first] [last] or fc -s [pat=rep] [command]" +msgstr "" +"fc [-e tên-e] [-lnr] [đầu] [cuối]\n" +"\thay\n" +"fc -s [mẫu=lập_lại] [lệnh]" + +#: builtins.c:107 +msgid "fg [job_spec]" +msgstr "fg [đặc_tả_công_việc]" + +#: builtins.c:111 +msgid "bg [job_spec ...]" +msgstr "bg [đặc_tả_công_việc ...]" + +#: builtins.c:114 +msgid "hash [-lr] [-p pathname] [-dt] [name ...]" +msgstr "hash [-lr] [-p đường_dẫn] [-dt] [tên ...]" + +#: builtins.c:117 +msgid "help [-ds] [pattern ...]" +msgstr "help [-ds] [mẫu ...]" + +#: builtins.c:121 +msgid "" +"history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg " +"[arg...]" +msgstr "" +"history [-c] [-d hiệu] [n]\n" +"\thay\n" +"history -anrw [tên_tập_tin]\n" +"\thay\n" +"history -ps đối_số [đối_số...]" + +#: builtins.c:125 +msgid "jobs [-lnprs] [jobspec ...] or jobs -x command [args]" +msgstr "" +"jobs [-lnprs] [đặc_tả_công_việc ...]\n" +"\thoặc\n" +"jobs -x lệnh [các_đối_số]" + +#: builtins.c:129 +msgid "disown [-h] [-ar] [jobspec ...]" +msgstr "disown [-h] [-ar] [đặc_tả_công_việc ...]" + +#: builtins.c:132 +msgid "" +"kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l " +"[sigspec]" +msgstr "" +"kill [-s đặc_tả_tín_hiệu | -n số_tín_hiệu | -đặc_tả_tín_hiệu] pid | " +"đặc_tả_công_việc ...\n" +"\thay\n" +"kill -l [đặc_tả_tín_hiệu]" + +#: builtins.c:134 +msgid "let arg [arg ...]" +msgstr "let đối_số [đối_số ...]" + +#: builtins.c:136 +msgid "" +"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-p prompt] [-t " +"timeout] [-u fd] [name ...]" +msgstr "" +"read [-ers] [-a mảng] [-d giới_hạn] [-i văn_bản] [-n số_ký_tá»±] [-p nhắc] [-t " +"thời_hạn] [-u fd] [tên ...]" + +# nghÄ©a chữ +#: builtins.c:138 +msgid "return [n]" +msgstr "return [n]" + +#: builtins.c:140 +msgid "set [--abefhkmnptuvxBCHP] [-o option-name] [arg ...]" +msgstr "set [--abefhkmnptuvxBCHP] [-o tùy_chọn] [đối_số ...]" + +#: builtins.c:142 +msgid "unset [-f] [-v] [name ...]" +msgstr "unset [-f] [-v] [tên ...]" + +#: builtins.c:144 +msgid "export [-fn] [name[=value] ...] or export -p" +msgstr "" +"export [-fn] [tên[=giá_trị] ...]\n" +"\thay\n" +"export -p" + +#: builtins.c:146 +msgid "readonly [-af] [name[=value] ...] or readonly -p" +msgstr "" +"readonly [-af] [tên[=giá_trị] ...]\n" +"\thay\n" +"readonly -p" + +#: builtins.c:148 +msgid "shift [n]" +msgstr "shift [n]" + +#: builtins.c:150 +msgid "source filename [arguments]" +msgstr "nguồn tên_tập_tin [đối_số ...]" + +#: builtins.c:152 +msgid ". filename [arguments]" +msgstr ". tên_tập_tin [đối_số ...]" + +#: builtins.c:155 +msgid "suspend [-f]" +msgstr "ngÆ°ng [-f]" + +#: builtins.c:158 +msgid "test [expr]" +msgstr "test [b_thức]" + +#: builtins.c:160 +msgid "[ arg... ]" +msgstr "[ đối_số ... ]" + +#: builtins.c:162 +msgid "times" +msgstr "lần" + +#: builtins.c:164 +msgid "trap [-lp] [[arg] signal_spec ...]" +msgstr "trap [-lp] [[đối_số] đặc_tả_tín_hiệu ...]" + +#: builtins.c:166 +msgid "type [-afptP] name [name ...]" +msgstr "type [-afptP] tên [tên ...]" + +#: builtins.c:169 +msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]" +msgstr "ulimit [-SHacdefilmnpqrstuvx] [giới_hạn]" + +#: builtins.c:172 +msgid "umask [-p] [-S] [mode]" +msgstr "umask [-p] [-S] [chế_độ]" + +#: builtins.c:175 +msgid "wait [id]" +msgstr "đợi [id]" + +#: builtins.c:179 +msgid "wait [pid]" +msgstr "đợi [pid]" + +#: builtins.c:182 +msgid "for NAME [in WORDS ... ] ; do COMMANDS; done" +msgstr "for TÊN [in CÁC-TỪ ... ;] do các_CÂU_LỆNH; done" + +#: builtins.c:184 +msgid "for (( exp1; exp2; exp3 )); do COMMANDS; done" +msgstr "for (( exp1; exp2; exp3 )); do các_CÂU_LỆNH; done" + +#: builtins.c:186 +msgid "select NAME [in WORDS ... ;] do COMMANDS; done" +msgstr "select TÊN [in CÁC-TỪ ... ;] do các_CÂU_LỆNH; done" + +#: builtins.c:188 +msgid "time [-p] pipeline" +msgstr "thời hạn [-p] ống dẫn" + +#: builtins.c:190 +msgid "case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac" +msgstr "case TỪ in [MẪU [| MẪU]...) các_CÂU_LỆNH ;;]... esac" + +#: builtins.c:192 +msgid "" +"if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else " +"COMMANDS; ] fi" +msgstr "" +"if các_CÂU_LỆNH; then các_CÂU_LỆNH; [ elif các_CÂU_LỆNH; then " +"các_CÂU_LỆNH; ]... [ else các_CÂU_LỆNH; ] fi" + +#: builtins.c:194 +msgid "while COMMANDS; do COMMANDS; done" +msgstr "while các_CÂU_LỆNH; do các_CÂU_LỆNH; done" + +#: builtins.c:196 +msgid "until COMMANDS; do COMMANDS; done" +msgstr "until các_CÂU_LỆNH; do các_CÂU_LỆNH; done" + +#: builtins.c:198 +msgid "function name { COMMANDS ; } or name () { COMMANDS ; }" +msgstr "" +"chức_năng tên { các_CÂU_LỆNH ; }\n" +"\thay\n" +"tên () { các_CÂU_LỆNH ; }" + +#: builtins.c:200 +msgid "{ COMMANDS ; }" +msgstr "{ LỆNH ; }" + +#: builtins.c:202 +msgid "job_spec [&]" +msgstr "đặc_tả_công_việc [&]" + +#: builtins.c:204 +msgid "(( expression ))" +msgstr "(( biểu_thức ))" + +#: builtins.c:206 +msgid "[[ expression ]]" +msgstr "[[ biểu_thức ]]" + +#: builtins.c:208 +msgid "variables - Names and meanings of some shell variables" +msgstr "biến — tên và nghÄ©a của một số biến trình bao" + +#: builtins.c:211 +msgid "pushd [-n] [+N | -N | dir]" +msgstr "pushd [-n] [+N | -N | tmục]" + +#: builtins.c:215 +msgid "popd [-n] [+N | -N]" +msgstr "popd [-n] [+N | -N]" + +#: builtins.c:219 +msgid "dirs [-clpv] [+N] [-N]" +msgstr "dirs [-clpv] [+N] [-N]" + +#: builtins.c:222 +msgid "shopt [-pqsu] [-o] [optname ...]" +msgstr "shopt [-pqsu] [-o] [tùy_chọn ...]" + +#: builtins.c:224 +msgid "printf [-v var] format [arguments]" +msgstr "printf [-v biến] định_dạng [đối_số]" + +#: builtins.c:227 +msgid "" +"complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W " +"wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] " +"[name ...]" +msgstr "" +"complete [-abcdefgjksuv] [-pr] [-o tùy_chọn] [-A hành_động] [-G mẫu_glob] [-" +"W danh_sách_từ] [-F hàm] [-C lệnh] [-X mẫu_lọc] [-P tiền_tố] [-S hậu_tố] " +"[tên ...]" + +#: builtins.c:231 +msgid "" +"compgen [-abcdefgjksuv] [-o option] [-A action] [-G globpat] [-W wordlist] " +"[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]" +msgstr "" +"compgen [-abcdefgjksuv] [-o tùy_chọn] [-A hành_động] [-G mẫu_glob] [-W " +"danh_sách_từ] [-F hàm] [-C lệnh] [-X mẫu_lọc] [-P tiền_tố] [-S hậu_tố] [từ]" + +#: builtins.c:235 +msgid "compopt [-o|+o option] [name ...]" +msgstr "compopt [-o|+o tùy_chọn] [tên ...]" + +#: builtins.c:238 +msgid "" +"mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c " +"quantum] [array]" +msgstr "" +"mapfile [-n đếm] [-O gốc] [-s đếm] [-t] [-u fd] [-C gọi_ngược] [-c lượng] " +"[mảng]" + +#: builtins.c:250 +msgid "" +"Define or display aliases.\n" +" \n" +" Without arguments, `alias' prints the list of aliases in the reusable\n" +" form `alias NAME=VALUE' on standard output.\n" +" \n" +" Otherwise, an alias is defined for each NAME whose VALUE is given.\n" +" A trailing space in VALUE causes the next word to be checked for\n" +" alias substitution when the alias is expanded.\n" +" \n" +" Options:\n" +" -p\tPrint all defined aliases in a reusable format\n" +" \n" +" Exit Status:\n" +" alias returns true unless a NAME is supplied for which no alias has " +"been\n" +" defined." +msgstr "" +"Xác định hoặc hiển thị bí danh.\n" +"\n" +"\tKhông đưa ra đối số thì « alias » in ra danh sách các bí danh\n" +"\ttheo định dạng có thể dùng lại được « bí_danh TÊN=GIÁ_TRỊ »\n" +"\ttrên đầu ra tiêu chuẩn.\n" +"\n" +"\tCó đối số thì một bí danh được xác định cho mỗi TÊN có giá trị đưa ra.\n" +"\tMột dấu cách theo sau trong GIÁ_TRỊ thì gây ra từ kế tiếp được kiểm tra\n" +"\tcó bí danh được thay thế khi bí danh được mở rộng.\n" +"\n" +"\tTùy chọn:\n" +"\t\t-p\tin ra tất cả các bí danh đã xác định theo một định dạng\n" +"\t\t\tcó thể dùng lại được\n" +"\n" +"\tTrạng thái thoát:\n" +"\tbí danh trả lại Đúng nếu không đưa ra TÊN chÆ°a có bí danh được xác định." + +#: builtins.c:272 +msgid "" +"Remove each NAME from the list of defined aliases.\n" +" \n" +" Options:\n" +" -a\tremove all alias definitions.\n" +" \n" +" Return success unless a NAME is not an existing alias." +msgstr "" +"Gỡ bỏ mỗi TÊN khỏi danh sách các bí danh đã xác định.\n" +"\n" +"\tTùy chọn:\n" +"\t\t-a\tgỡ bỏ tất cả các lời xác định bí danh.\n" +"\n" +"Trả lại thành công nếu không có TÊN là một bí danh không tồn tại." + +#: builtins.c:285 +msgid "" +"Set Readline key bindings and variables.\n" +" \n" +" Bind a key sequence to a Readline function or a macro, or set a\n" +" Readline variable. The non-option argument syntax is equivalent to\n" +" that found in ~/.inputrc, but must be passed as a single argument:\n" +" e.g., bind '\"\\C-x\\C-r\": re-read-init-file'.\n" +" \n" +" Options:\n" +" -m keymap Use KEYMAP as the keymap for the duration of this\n" +" command. Acceptable keymap names are emacs,\n" +" emacs-standard, emacs-meta, emacs-ctlx, vi, vi-" +"move,\n" +" vi-command, and vi-insert.\n" +" -l List names of functions.\n" +" -P List function names and bindings.\n" +" -p List functions and bindings in a form that can be\n" +" reused as input.\n" +" -S List key sequences that invoke macros and their " +"values\n" +" -s List key sequences that invoke macros and their " +"values\n" +" in a form that can be reused as input.\n" +" -V List variable names and values\n" +" -v List variable names and values in a form that can\n" +" be reused as input.\n" +" -q function-name Query about which keys invoke the named function.\n" +" -u function-name Unbind all keys which are bound to the named " +"function.\n" +" -r keyseq Remove the binding for KEYSEQ.\n" +" -f filename Read key bindings from FILENAME.\n" +" -x keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n" +" \t\t\t\tKEYSEQ is entered.\n" +" \n" +" Exit Status:\n" +" bind returns 0 unless an unrecognized option is given or an error occurs." +msgstr "" +"Đặt các tổ hợp phím và biến kiểu Readline.\n" +"\n" +"\tTổ hợp một dãy phím với một chức năng hay vÄ© lệnh kiểu Readline,\n" +"\t\thoặc đặt một biến Readline.\n" +"\tCú pháp đối số khác tùy chọn cÅ©ng tÆ°Æ¡ng đương với cú pháp\n" +"\t\ttrong « ~/.inputrc », nhÆ°ng phải được gá»­i dưới dạng\n" +"\t\tmột đối số riêng lẻ.\n" +"\t\tVí dụ : bind '\"\\C-x\\C-r\": re-read-init-file'.\n" +"\n" +"\tTùy chọn:\n" +"\t\t-m sÆ¡_đồ_phím\tdùng sÆ¡ đồ phím này làm sÆ¡ đồ phím\n" +"\t\t\ttrong khoảng thời gian chạy câu lệnh này.\n" +"\t\tTên sÆ¡ đồ phím hợp lệ:\n" +"\t\t\temacs, emacs-standard, emacs-meta,\n" +"\t\t\temacs-ctlx, vi, vi-move, vi-command,\n" +"\t\t\tvi-insert\n" +"\t\t-l\tliệt kê các tên chức năng\n" +"\t\t-P\tliệt kê các tên và tổ hợp của chức năng\n" +"\t\t-p\tliệt kê các chức năng và tổ hợp theo một định dạng\n" +"\t\t\tcó thể dùng lại được làm dữ liệu nhập vào\n" +"\t\t-S\tliệt kê các dãy phím mà gọi vÄ© lệnh và giá trị tÆ°Æ¡ng ứng\n" +"\t\t-S\tliệt kê các dãy phím mà gọi vÄ© lệnh và giá trị tÆ°Æ¡ng ứng\n" +"\t\t\ttheo một định dạng có thể dùng lại được\n" +"\t\t\tlàm dữ liệu nhập vào\n" +"\t\t-q tên_chức_năng\thỏi những phím nào gọi chức năng này\n" +"\t\t-u tên_chức_năng\ttháo tổ hợp tất cả các phím tổ hợp\n" +"\t\t\tvới chức năng này\n" +"\t\t-r dãy_phím\tgỡ bỏ tổ hợp đối với dãy phím này\n" +"\t\t-f tên_tập_tin\tđọc các tổ hợp phím từ tập tin này\n" +"\t\t-x dãy_phím:lệnh_trình_bao\tchạy câu lệnh trình bào này\n" +"\t\t\tkhi dãy phím này được nhập vào\n" +"\n" +"\tTrạng thái thoát:\n" +"\tbind trả lại 0 nếu không đưa ra tùy chọn không nhận ra hay gặp lỗi." + +#: builtins.c:322 +msgid "" +"Exit for, while, or until loops.\n" +" \n" +" Exit a FOR, WHILE or UNTIL loop. If N is specified, break N enclosing\n" +" loops.\n" +" \n" +" Exit Status:\n" +" The exit status is 0 unless N is not greater than or equal to 1." +msgstr "" +"Thoát khỏi vòng lặp kiểu trong, trong khi hay đến khi.\n" +"\n" +"\tThoát khỏi một vòng lặp kiểu TRONG, TRONG KHI hay ĐẾN KHI.\n" +"\tCó ghi rõ N thì ngắt N vòng lặp bao bọc.\n" +"\n" +"\tTrạng thái thoát:\n" +"\tTrạng thái thoát là 0 nếu N không nhỏ hÆ¡n hay bằng 1." + +#: builtins.c:334 +msgid "" +"Resume for, while, or until loops.\n" +" \n" +" Resumes the next iteration of the enclosing FOR, WHILE or UNTIL loop.\n" +" If N is specified, resumes the Nth enclosing loop.\n" +" \n" +" Exit Status:\n" +" The exit status is 0 unless N is not greater than or equal to 1." +msgstr "" +"Tiếp tục lại chạy vòng lặp kiểu trong, trong khi hay đến khi.\n" +"\n" +"\tTiếp tục lại lần lặp lại kế tiếp của vòng lặp bao bọc\n" +"\t\tkiểu TRONG, TRONG KHI hay ĐẾN KHI.\n" +"\tĐưa ra N thì tiếp tục chạy vòng lặp bao bọc thứ N.\n" +"\n" +"\tTrạng thái thoát:\n" +"\tTrạng thái thoát là 0 nếu N không nhỏ hÆ¡n hay bằng 1." + +#: builtins.c:346 +msgid "" +"Execute shell builtins.\n" +" \n" +" Execute SHELL-BUILTIN with arguments ARGs without performing command\n" +" lookup. This is useful when you wish to reimplement a shell builtin\n" +" as a shell function, but need to execute the builtin within the " +"function.\n" +" \n" +" Exit Status:\n" +" Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is\n" +" not a shell builtin.." +msgstr "" +"Chạy dá»±ng sẵn trình bao.\n" +"\n" +"\tChạy SHELL-BUILTIN (dá»±ng sẵn trình bao) với các ĐỐI_SỐ\n" +"\tmà không thá»±c thi chức năng dò tìm câu lệnh.\n" +"\tCó ích khi bạn muốn thá»±c thi lại một dá»±ng sẵn trình bao\n" +"\tdưới dạng một chức năng trình bao, nhÆ°ng cÅ©ng\n" +"\tcần thá»±c thi dá»±ng sẵn bên trong chức năng.\n" +"\n" +"\tTrạng thái thoát:\n" +"\tTrả lại trạng thái thoát của SHELL-BUILTIN,\n" +"\thoặc sai nếu SHELL-BUILTIN không phải là một\n" +"\tdá»±ng sẵn trình bao." + +#: builtins.c:361 +msgid "" +"Return the context of the current subroutine call.\n" +" \n" +" Without EXPR, returns \"$line $filename\". With EXPR, returns\n" +" \"$line $subroutine $filename\"; this extra information can be used to\n" +" provide a stack trace.\n" +" \n" +" The value of EXPR indicates how many call frames to go back before the\n" +" current one; the top frame is frame 0.\n" +" \n" +" Exit Status:\n" +" Returns 0 unless the shell is not executing a shell function or EXPR\n" +" is invalid." +msgstr "" +"Trả về ngữ cảnh của cuộc gọi hàm phụ hiện thời.\n" +"\n" +"\tKhông có B_THỨC thì trả lại « $line $filename ».\n" +"\tCó B_THỨC thì trả lại « $line $subroutine $filename »;\n" +"\tthông tin thêm này có thể được dùng để cung cấp vết đống.\n" +"\n" +"\tGiá trị của B_THỨC thì ngụ ý bao nhiêu khung gọi cần lùi lại\n" +"đằng trước khung hiện tại; khung đầu là khung 0.\n" +"\n" +"\tTrạng thái thoát:\n" +"\tTrả lại 0 nếu trình bao đang chạy chức năng trình bao,\n" +"\t\tB_THỨC cÅ©ng hợp lệ." + +#: builtins.c:379 +msgid "" +"Change the shell working directory.\n" +" \n" +" Change the current directory to DIR. The default DIR is the value of " +"the\n" +" HOME shell variable.\n" +" \n" +" The variable CDPATH defines the search path for the directory " +"containing\n" +" DIR. Alternative directory names in CDPATH are separated by a colon " +"(:).\n" +" A null directory name is the same as the current directory. If DIR " +"begins\n" +" with a slash (/), then CDPATH is not used.\n" +" \n" +" If the directory is not found, and the shell option `cdable_vars' is " +"set,\n" +" the word is assumed to be a variable name. If that variable has a " +"value,\n" +" its value is used for DIR.\n" +" \n" +" Options:\n" +" -L\tforce symbolic links to be followed\n" +" -P\tuse the physical directory structure without following symbolic\n" +" \tlinks\n" +" \n" +" The default is to follow symbolic links, as if `-L' were specified.\n" +" \n" +" Exit Status:\n" +" Returns 0 if the directory is changed; non-zero otherwise." +msgstr "" +"Chuyển đổi thÆ° mục làm việc của trình bao.\n" +"\n" +"\tChuyển đổi thÆ° mục hiện thời sang TMỤC.\n" +"\tThÆ° mục mặc định là giá trị của biến trình bao HOME.\n" +"\n" +"\tBiến CDPATH thì xác định đường dẫn tìm kiếm cho thÆ° mục chứa TMỤC.\n" +"\tCác tên thÆ° mục xen kẽ trong CDPATH cÅ©ng định giới bằng dấu hai chấm « : " +"».\n" +"\tMột tên thÆ° mục trống tÆ°Æ¡ng đương với thÆ° mục hiện tại.\n" +"\tNếu TMỤC bắt đầu với dấu chéo « / » thì không dùng CDPATH.\n" +"\n" +"\tNếu không tìm thấy thÆ° mục, và đặt biến trình bao « cdable_vars »,\n" +"\t\tthì giả sá»­ từ là một tên biến.\n" +"\tNếu biến đó có giá trị thì giá trị này được dùng cho TMỤC.\n" +"\n" +"\tTùy chọn:\n" +"\t\t-L\tép buộc theo liên kết tượng trÆ°ng\n" +"\t\t-P\tdùng cấu trúc thÆ° mục vật lý mà không theo liên kết tượng trÆ°ng\n" +"\n" +"\tMặc định là theo liên kết tượng trÆ°ng, nhÆ° là tùy chọn « -L » đưa ra.\n" +"\n" +"\tTrạng thái thoát:\n" +"\tTrả lại 0 nếu thÆ° mục được chuyển đổi; không thì khác số không." + +#: builtins.c:407 +msgid "" +"Print the name of the current working directory.\n" +" \n" +" Options:\n" +" -L\tprint the value of $PWD if it names the current working\n" +" \tdirectory\n" +" -P\tprint the physical directory, without any symbolic links\n" +" \n" +" By default, `pwd' behaves as if `-L' were specified.\n" +" \n" +" Exit Status:\n" +" Returns 0 unless an invalid option is given or the current directory\n" +" cannot be read." +msgstr "" +"In ra tên của thÆ° mục hoạt động hiện thời.\n" +"\n" +"\tTùy chọn:\n" +"\t\t-L\tin ra giá trị của $PWD nếu nó đặt tên\n" +"\t\t\tcủa thÆ° mục hoạt động hiện thời\n" +"\t\t-P\tin ra thÆ° mục vật lý, không có liên kết mềm\n" +"\n" +"\t\tMặc định là « pwd » hoạt động nhÆ° là « -L » được ghi rõ.\n" +"\n" +"\t\tTrạng thái thoát:\n" +"\t\tTrả lại 0 nếu không đưa ra tùy chọn sai\n" +"\t\tvà nếu đọc được thÆ° mục hiện thời." + +#: builtins.c:424 +msgid "" +"Null command.\n" +" \n" +" No effect; the command does nothing.\n" +" \n" +" Exit Status:\n" +" Always succeeds." +msgstr "" +"Câu lệnh vô giá trị.\n" +"\n" +"\tKhông có hiệu ứng: câu lệnh không làm gì.\n" +"\n" +"\tTrạng thái thoát:\n" +"\tLúc nào cÅ©ng thành công." + +#: builtins.c:435 +msgid "" +"Return a successful result.\n" +" \n" +" Exit Status:\n" +" Always succeeds." +msgstr "" +"Trả lại một kết quả thành công.\n" +"\n" +"\tTrạng thái thoát:\n" +"\tLúc nào cÅ©ng thành công." + +#: builtins.c:444 +msgid "" +"Return an unsuccessful result.\n" +" \n" +" Exit Status:\n" +" Always fails." +msgstr "" +"Trả về kết quả không thành công.\n" +"\n" +"\tTrạng thái thoát:\n" +"\tLúc nào cÅ©ng không thành công." + +#: builtins.c:453 +msgid "" +"Execute a simple command or display information about commands.\n" +" \n" +" Runs COMMAND with ARGS suppressing shell function lookup, or display\n" +" information about the specified COMMANDs. Can be used to invoke " +"commands\n" +" on disk when a function with the same name exists.\n" +" \n" +" Options:\n" +" -p\tuse a default value for PATH that is guaranteed to find all of\n" +" \tthe standard utilities\n" +" -v\tprint a description of COMMAND similar to the `type' builtin\n" +" -V\tprint a more verbose description of each COMMAND\n" +" \n" +" Exit Status:\n" +" Returns exit status of COMMAND, or failure if COMMAND is not found." +msgstr "" +"Thá»±c thi một câu lệnh đơn giản, hoặc hiển thị thông tin về các câu lệnh.\n" +"\n" +"Chạy LỆNH với các ĐỐI_SỐ thu hồi chức năng dò tìm chức năng trình bao,\n" +"hoạc hiển thị thông tin về các câu LỆNH được ghi rõ.\n" +"Có thể được dùng để gọi câu lệnh trên đĩa khi đã có một chức năng cùng tên.\n" +"\n" +"Tùy chọn:\n" +"\t-p\tdùng một giá trị mặc định cho ĐƯỜNG_DẪN\n" +"\t\tmà chắc chắn sẽ tìm mọi tiện ích tiêu chuẩn\n" +"\t-v\tin ra mô tả về câu LỆNH mà tÆ°Æ¡ng tá»± với dá»±ng sẵn « type » (kiểu)\n" +"\t-V\tin ra mô tả chi tiết hÆ¡n về mỗi câu LỆNH\n" +"\n" +"Trạng thái thoát:\n" +"Trả lại trạng thái thoát của câu LỆNH, hoặc bị lỗi nếu không tìm thấy câu " +"LỆNH." + +#: builtins.c:472 +msgid "" +"Set variable values and attributes.\n" +" \n" +" Declare variables and give them attributes. If no NAMEs are given,\n" +" display the attributes and values of all variables.\n" +" \n" +" Options:\n" +" -f\trestrict action or display to function names and definitions\n" +" -F\trestrict display to function names only (plus line number and\n" +" \tsource file when debugging)\n" +" -p\tdisplay the attributes and value of each NAME\n" +" \n" +" Options which set attributes:\n" +" -a\tto make NAMEs indexed arrays (if supported)\n" +" -A\tto make NAMEs associative arrays (if supported)\n" +" -i\tto make NAMEs have the `integer' attribute\n" +" -l\tto convert NAMEs to lower case on assignment\n" +" -r\tto make NAMEs readonly\n" +" -t\tto make NAMEs have the `trace' attribute\n" +" -u\tto convert NAMEs to upper case on assignment\n" +" -x\tto make NAMEs export\n" +" \n" +" Using `+' instead of `-' turns off the given attribute.\n" +" \n" +" Variables with the integer attribute have arithmetic evaluation (see\n" +" the `let' command) performed when the variable is assigned a value.\n" +" \n" +" When used in a function, `declare' makes NAMEs local, as with the " +"`local'\n" +" command.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" +"Đặt các giá trị và thuộc tính của biến.\n" +"\n" +"\tTuyên bố mỗi biến và gán cho nó một số thuộc tính.\n" +"\tKhông đưa ra TÊN thì hiển thị các thuộc tính và giá trị của mọi giá trị.\n" +"\n" +"\tTùy chọn:\n" +"\t\t-f\thạn chế hành động, hoặc hiển thị đối với tên và mô tả của chức năng\n" +"\t\t-F\thiển thị chỉ đối với tên chức năng\n" +"\t\t\t(và số thứ tá»± dòng và tập tin nguồn khi gỡ lỗi)\n" +"\t\t-p\thiển thị các thuộc tính và giá trị của mỗi TÊN\n" +"\n" +"\tTùy chọn cÅ©ng đặt thuộc tính:\n" +"\t\t-a\tđặt TÊN là mảng theo số mÅ© (nếu được hỗ trợ)\n" +"\t\t-A\tđặt TÊN là mảng kết hợp (nếu được hỗ trợ)\n" +"\t\t-i\tđặt TÊN có thuộc tính « integer » (số nguyên)\n" +"\t\t-l\tchuyển đổi TÊN sang chữ thường khi được gán\n" +"\t\t-r\tđặt TÊN là chỉ đọc\n" +"\t\t-t\tđặt TÊN có thuộc tính « trace » (theo vết)\n" +"\t\t-u\tchuyển đổi TÊN sang chữ hoa khi được gán\n" +"\t\t-x\tđặt TÊN xuất\n" +"\n" +"\tDùng « + » thay cho « - » thì tắt thuộc tính đưa ra.\n" +"\n" +"\tBiến có thuộc tính số nguyên thì định giá theo số học\n" +"\t\t(xem câu lệnh « let ») khi biến có giá trị được gán.\n" +"\n" +"\tKhi dùng trong chức năng, « declare » (tuyên bố) đặt TÊN là cục bộ,\n" +"\t\tnhÆ° khi dùng câu lệnh « local » (cục bộ).\n" +"\n" +"\n" +"\tTrạng thái thoát:\n" +"\tTrả lại thành công nếu không đưa ra tùy chọn sai hoặc gặp lỗi." + +#: builtins.c:508 +msgid "" +"Set variable values and attributes.\n" +" \n" +" Obsolete. See `help declare'." +msgstr "" +"Đặt các giá trị và thuộc tính của biến.\n" +"\n" +"\tQuá cÅ©. Xem « help declare »." + +#: builtins.c:516 +msgid "" +"Define local variables.\n" +" \n" +" Create a local variable called NAME, and give it VALUE. OPTION can\n" +" be any option accepted by `declare'.\n" +" \n" +" Local variables can only be used within a function; they are visible\n" +" only to the function where they are defined and its children.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied, an error occurs,\n" +" or the shell is not executing a function." +msgstr "" +"Xác định các biến cục bộ.\n" +"\n" +"\tTạo một biến cục bộ tên TÊN, và gán cho nó GIÁ_TRỊ.\n" +"\tTÙY_CHỌN có thể là bất cứ tùy chọn nào được « declare » chấp nhận.\n" +"\n" +"\tBiến cục bộ chỉ dùng được bên trong chức năng;\n" +"\t\tchỉ chức năng trong đó nó được xác định\n" +"\t\t(và các chức năng con) có khả năng phát hiện nó.\n" +"\n" +"\tTrạng thái thoát:\n" +"\tTrả lại thành công nếu không đưa ra tùy chọn sai hay gặp lỗi,\n" +"\tvà nếu trình bao đang chạy chức năng." + +#: builtins.c:533 +msgid "" +"Write arguments to the standard output.\n" +" \n" +" Display the ARGs on the standard output followed by a newline.\n" +" \n" +" Options:\n" +" -n\tdo not append a newline\n" +" -e\tenable interpretation of the following backslash escapes\n" +" -E\texplicitly suppress interpretation of backslash escapes\n" +" \n" +" `echo' interprets the following backslash-escaped characters:\n" +" \\a\talert (bell)\n" +" \\b\tbackspace\n" +" \\c\tsuppress further output\n" +" \\e\tescape character\n" +" \\f\tform feed\n" +" \\n\tnew line\n" +" \\r\tcarriage return\n" +" \\t\thorizontal tab\n" +" \\v\tvertical tab\n" +" \\\\\tbackslash\n" +" \\0nnn\tthe character whose ASCII code is NNN (octal). NNN can be\n" +" \t0 to 3 octal digits\n" +" \\xHH\tthe eight-bit character whose value is HH (hexadecimal). HH\n" +" \tcan be one or two hex digits\n" +" \n" +" Exit Status:\n" +" Returns success unless a write error occurs." +msgstr "" +"Ghi các đối số vào đầu ra tiêu chuẩn.\n" +"\n" +"\tHiển thị các ĐỐI_SỐ trên đầu ra tiêu chuẩn,\n" +"\t\tvới một ký tá»± dòng mới theo sau.\n" +"\n" +"\tTùy chọn:\n" +"\t\t-n\tđừng phụ thêm ký tá»± dòng mới\n" +"\t\t-e\tbật đọc ký tá»± thoát kiểu gạch chéo ngược mà theo sau\n" +"\t\t-E\tthu hồi dứt khoát đọc ký tá»± thoát kiểu gạch chéo ngược\n" +"\n" +"\t« echo » đọc những ký tá»± thoát này kiểu gạch chéo ngược:\n" +"\t\t\\a\tchuông báo\n" +"\t\t\\b\txoá lùi\n" +"\t\t\\c\tthu hồi kết xuất thêm nữa\n" +"\t\t\\e\tký tá»± thoát\n" +"\t\t\\f\tnạp giấy\n" +"\t\t\\n\tdòng mới\n" +"\t\t\\r\txuống dòng\n" +"\t\t\\0nnn\tký tá»± có mã ASCII NNN (1-3 chữ số bát phân)\n" +"\t\t\\xHH\tký tá»± 8-bit có giá trị HH (1-2 chữ số thập lục)\n" +"\n" +"\tTrạng thái thoát:\n" +"\tTrả lại thành công nếu không gặp lỗi ghi.\t\t\\t\tkhoảng tab theo chiều " +"ngang\n" +"\t\t\\v\tkhoảng tab theo chiều dọc\n" +"\t\t\\\\\tgạch chéo ngược" + +#: builtins.c:567 +msgid "" +"Write arguments to the standard output.\n" +" \n" +" Display the ARGs on the standard output followed by a newline.\n" +" \n" +" Options:\n" +" -n\tdo not append a newline\n" +" \n" +" Exit Status:\n" +" Returns success unless a write error occurs." +msgstr "" +"Ghi các đối số vào đầu ra tiêu chuẩn\n" +"\n" +"\tHiển thị các ĐỐI_SỐ trên đầu ra tiêu chuẩn với một dòng mới theo sau.\n" +"\n" +"\tTùy chọn:\n" +"\t\t-n\tđừng phụ thêm một dòng mới\n" +"\n" +"\tTrạng thái thoát:\n" +"\tTrả lại thành công nếu không gặp lỗi ghi." + +#: builtins.c:582 +msgid "" +"Enable and disable shell builtins.\n" +" \n" +" Enables and disables builtin shell commands. Disabling allows you to\n" +" execute a disk command which has the same name as a shell builtin\n" +" without using a full pathname.\n" +" \n" +" Options:\n" +" -a\tprint a list of builtins showing whether or not each is enabled\n" +" -n\tdisable each NAME or display a list of disabled builtins\n" +" -p\tprint the list of builtins in a reusable format\n" +" -s\tprint only the names of Posix `special' builtins\n" +" \n" +" Options controlling dynamic loading:\n" +" -f\tLoad builtin NAME from shared object FILENAME\n" +" -d\tRemove a builtin loaded with -f\n" +" \n" +" Without options, each NAME is enabled.\n" +" \n" +" To use the `test' found in $PATH instead of the shell builtin\n" +" version, type `enable -n test'.\n" +" \n" +" Exit Status:\n" +" Returns success unless NAME is not a shell builtin or an error occurs." +msgstr "" +"Bật/tắt dá»±ng sẵn trình bao.\n" +"\b\tBật và tắt các dá»±ng sẵn trình bao.\b\tChức năng tắt thì cho phép bạn " +"thá»±c thi một câu lệnh đĩa\n" +"\tmà cùng tên với một dá»±ng sẵn trình bao,\n" +"\tkhông cần dùng tên đường dẫn đầy đủ.\n" +"\n" +"\tTùy chọn:\n" +"\t\t-a\tin ra một danh sách các dá»±ng sẳn, cÅ©ng hiển thị trạng thái bật/tắt\n" +"\t\t-b\ttắt mỗi TÊN hoặc hiển thị danh sách các dá»±ng sẵn bị tắt\n" +"\t\t-p\tin ra danh sách các dá»±ng sẵn theo một định dạng có thể dùng lại " +"được\n" +"\t\t-s\tin ra chỉ tên mỗi dá»±ng sẵn Posix « đặc biệt »\n" +"\n" +"\tTùy chọn điều khiển chức năng nạp động:\n" +"\t\t-f\tnạp dá»±ng sẵn TÊN từ điều khiển dùng chung TÊN_TẬP_TIN\n" +"\t\t-d\tgỡ bỏ một dá»±ng sẵn được nạp dùng « -f »\n" +"\n" +"\tKhông có tùy chọn thì mỗi TÊN được bật lại.\n" +"\n" +"\tĐể sá»­ dụng « test » (hàm thá»­) nằm trên đường dẫn mặc định $PATH\n" +"\tthay cho phiên bản của dá»±ng sẵn trình bao,\n" +"\thãy gõ chuỗi « enable -n test ».\n" +"\n" +"\tTrạng thái thoát:\n" +"\tTrả lại thành công nếu TÊN là một dá»±ng sẵn trình bao, và không gặp lỗi." + +#: builtins.c:610 +msgid "" +"Execute arguments as a shell command.\n" +" \n" +" Combine ARGs into a single string, use the result as input to the " +"shell,\n" +" and execute the resulting commands.\n" +" \n" +" Exit Status:\n" +" Returns exit status of command or success if command is null." +msgstr "" +"Thá»±c thi các đối số dưới dạng một câu lệnh trình bao.\n" +"\n" +"\tPhối hợp các ĐỐI_SỐ thành một chuỗi riêng lẻ,\n" +"\tdùng kết quả làm dữ liệu nhập vào trình bao,\n" +"\tvà thá»±c thi các câu lệnh kết quả.\n" +"\n" +"\tTrạng thái thoát:\n" +"\tTrả lại trạng thái thoát của câu lệnh,\n" +"\thay thành công nếu câu lệnh vô giá trị." + +#: builtins.c:622 +msgid "" +"Parse option arguments.\n" +" \n" +" Getopts is used by shell procedures to parse positional parameters\n" +" as options.\n" +" \n" +" OPTSTRING contains the option letters to be recognized; if a letter\n" +" is followed by a colon, the option is expected to have an argument,\n" +" which should be separated from it by white space.\n" +" \n" +" Each time it is invoked, getopts will place the next option in the\n" +" shell variable $name, initializing name if it does not exist, and\n" +" the index of the next argument to be processed into the shell\n" +" variable OPTIND. OPTIND is initialized to 1 each time the shell or\n" +" a shell script is invoked. When an option requires an argument,\n" +" getopts places that argument into the shell variable OPTARG.\n" +" \n" +" getopts reports errors in one of two ways. If the first character\n" +" of OPTSTRING is a colon, getopts uses silent error reporting. In\n" +" this mode, no error messages are printed. If an invalid option is\n" +" seen, getopts places the option character found into OPTARG. If a\n" +" required argument is not found, getopts places a ':' into NAME and\n" +" sets OPTARG to the option character found. If getopts is not in\n" +" silent mode, and an invalid option is seen, getopts places '?' into\n" +" NAME and unsets OPTARG. If a required argument is not found, a '?'\n" +" is placed in NAME, OPTARG is unset, and a diagnostic message is\n" +" printed.\n" +" \n" +" If the shell variable OPTERR has the value 0, getopts disables the\n" +" printing of error messages, even if the first character of\n" +" OPTSTRING is not a colon. OPTERR has the value 1 by default.\n" +" \n" +" Getopts normally parses the positional parameters ($0 - $9), but if\n" +" more arguments are given, they are parsed instead.\n" +" \n" +" Exit Status:\n" +" Returns success if an option is found; fails if the end of options is\n" +" encountered or an error occurs." +msgstr "" +"Phân tích cú pháp của đối số tùy chọn.\n" +"\n" +"\tGetopts được thủ tục trình bao dùng để phân tích cú pháp\n" +"\t\tcủa tham số thuộc ví trị dưới dạng tùy chọn.\n" +"\n" +"\tOPTSTRING chứa những chữ tùy chọn cần nhận ra;\n" +"\tmột chữ có dấu hai chấm theo sau thì tùy chọn mong đợi một đối số,\n" +"\tmà nên định giới bằng khoảng trắng.\n" +"\n" +"\tMỗi lần được gọi, getopts sẽ đặt tùy chọn kế tiếp\n" +"\t\tvào biến trình bao $name\n" +"\t\t(cÅ©ng khởi tạo tên đó nếu nó chÆ°a tồn tại)\n" +"\t\tvà đặt chỉ mục của đối số kế tiếp cần xá»­ lý\n" +"\t\tvào biến trình bao OPTIND.\n" +"\tOPTIND được sÆ¡ khởi thành 1 mỗi lần trình bao\n" +"\thay một văn lệnh trình bao được gọi.\n" +"\tKhi một tùy chọn đòi hỏi một đối số,\n" +"\tgetopts đặt đối số đó vào biến trình bao OPTARG.\n" +"\n" +"\tgetopts thông báo lỗi bằng một của hai cách.\n" +"\tNếu ký tá»± đầu tiên của chuỗi OPTSTRING là dấu hai chấm,\n" +"\tgetopts dùng chức năng thông báo lỗi một cách im.\n" +"\tBằng chế độ này, không in ra thông điệp lỗi nào.\n" +"\tNếu gặp tùy chọn sai thì getopts đặt vào OPTARG\n" +"\tký tá»± tùy chọn được tìm. Không tìm thấy đối số cần thiết\n" +"\tthì getopts đặt một dấu hai chấm vào TÊN\n" +"\tvà đặt OPTARG thành ký tá»± tùy chọn được tìm.\n" +"\tNếu getopts không phải ở chế độ im, và gặp tùy chọn sai,\n" +"\tthì getopts đặt một dấu hỏi « ? » vào TÊN và bỏ đặt OPTARG.\n" +"\tKhông tìm thấy tùy chọn cần thiết thì « ? » được đặt vào TÊN,\n" +"\tOPTARG bị bỏ đặt, và in ra một thông điệp chẩn đoán.\n" +"\n" +"\tNếu biến trình bao OPTERR có giá trị 0,\n" +"\tthì getopts tắt chức năng in ra thông điệp,\n" +"\tthậm chí nếu ký tá»± đầu tiên của chuỗi OPTSTRING\n" +"\tkhông phải là dấu hai chấm. OPTERR có giá trị 1 theo mặc định.\n" +"\n" +"Getopts bình thường phân tích cách tham số thuộc vị trí ($0 - $9),\n" +"\tnhÆ°ng nếu đưa ra đối số bổ sung,\n" +"\t(các) đối số này được phân tích để thay thế.\n" +"\n" +"\tTrạng thái thoát:\n" +"\tTrả lại thành công nếu tìm thấy một tùy chọn;\n" +"\tkhông thành công nếu gặp kết thúc các tùy chọn,\n" +"\thoặc nếu gặp lỗi." + +#: builtins.c:664 +msgid "" +"Replace the shell with the given command.\n" +" \n" +" Execute COMMAND, replacing this shell with the specified program.\n" +" ARGUMENTS become the arguments to COMMAND. If COMMAND is not " +"specified,\n" +" any redirections take effect in the current shell.\n" +" \n" +" Options:\n" +" -a name\tpass NAME as the zeroth argument to COMMAND\n" +" -c\t\texecute COMMAND with an empty environment\n" +" -l\t\tplace a dash in the zeroth argument to COMMAND\n" +" \n" +" If the command cannot be executed, a non-interactive shell exits, " +"unless\n" +" the shell option `execfail' is set.\n" +" \n" +" Exit Status:\n" +" Returns success unless COMMAND is not found or a redirection error " +"occurs." +msgstr "" +"Thay thế trình bao bằng câu lệnh đưa ra.\n" +"\n" +"\tThá»±c thi câu LỆNH, cÅ©ng thay thế trình bao này bằng chÆ°Æ¡ng trình được ghi " +"rõ.\n" +"\tCác ĐỐI_SỐ trở thành các đối số đối với câu LỆNH.\n" +"\tKhông đưa ra câu LỆNH thì bất cứ việc chuyển hướng nào\n" +"\tsẽ xảy ra trong trình bao đang chạy.\n" +"\n" +"\tTùy chọn:\n" +"\t\t-a tên\tgá»­i TÊN cho câu LỆNH dưới dạng đối số thứ không\n" +"\t\t-c\tthá»±c thi câu LỆNH với một môi trường trống\n" +"\t\t-l\tđặt một dấu gạch vào đối số thứ không đối với câu LỆNH\n" +"\n" +"\tNếu câu LỆNH không thể thá»±c thi được, một trình bao không tÆ°Æ¡ng tác\n" +"\tsẽ thoát ra, nếu không đặt tùy chọn trình bao « execfail ».\n" +"\n" +"\tTrạng thái thoát:\n" +"\tTrả lại thành công nếu tìm được câu LỆNH và không gặp lỗi chuyển hướng." + +#: builtins.c:685 +msgid "" +"Exit the shell.\n" +" \n" +" Exits the shell with a status of N. If N is omitted, the exit status\n" +" is that of the last command executed." +msgstr "" +"Thoát khỏi trình bao.\n" +"\n" +"\tThoát khỏi trình bao với trạng thái N.\n" +"\tKhông đưa ra N thì trạng thái thoát\n" +"\tlà trạng thái của câu lệnh cuối cùng được chạy." + +#: builtins.c:694 +msgid "" +"Exit a login shell.\n" +" \n" +" Exits a login shell with exit status N. Returns an error if not " +"executed\n" +" in a login shell." +msgstr "" +"Thoát khỏi một trình bao đăng nhập.\n" +"\n" +"\tThoát khỏi một trình bao đăng nhập, với trạng thái thoát N.\n" +"\tTrả lại lỗi nếu không được thá»±c thi trong trình bao đăng nhập." + +#: builtins.c:704 +msgid "" +"Display or execute commands from the history list.\n" +" \n" +" fc is used to list or edit and re-execute commands from the history " +"list.\n" +" FIRST and LAST can be numbers specifying the range, or FIRST can be a\n" +" string, which means the most recent command beginning with that\n" +" string.\n" +" \n" +" Options:\n" +" -e ENAME\tselect which editor to use. Default is FCEDIT, then " +"EDITOR,\n" +" \t\tthen vi\n" +" -l \tlist lines instead of editing\n" +" -n\tomit line numbers when listing\n" +" -r\treverse the order of the lines (newest listed first)\n" +" \n" +" With the `fc -s [pat=rep ...] [command]' format, COMMAND is\n" +" re-executed after the substitution OLD=NEW is performed.\n" +" \n" +" A useful alias to use with this is r='fc -s', so that typing `r cc'\n" +" runs the last command beginning with `cc' and typing `r' re-executes\n" +" the last command.\n" +" \n" +" Exit Status:\n" +" Returns success or status of executed command; non-zero if an error " +"occurs." +msgstr "" +"Hiển thị hoặc thá»±c thi các câu lệnh từ danh sách lược sá»­.\n" +"\n" +"\tfc được dùng để liệt kê hoặc chỉnh sá»­a và thá»±c thi lại\n" +"\tcâu lệnh từ danh sách lược sá»­.\n" +"\tĐẦU và CUỐI có thể là số mà xác định phạm vi,\n" +"hoặc ĐẦU có thể là một chuỗi đại diện câu lệnh\n" +"\tvừa chạy nhất mà bắt đầu với chuỗi đó.\n" +"\tTùy chọn:\n" +"\t\t-e ENAME\tchọn trình soạn thảo nào cần dùng;\n" +"\t\t\tmặc định là FCEDIT, sau đó EDITOR, sau đó vi\n" +"\t\t-l\tliệt kê các dòng thay vào chỉnh sá»­a\n" +"\t\t-n\tliệt kê mà không in ra số thứ tá»± dòng\n" +"\t\t-r\tđảo ngược thứ tá»± các dòng (mới nhất trước)\n" +"\n" +"\tTùy theo định dạng « fc -s [mẫu=lần_lập_lại ...] [lệnh] »,\n" +"\tcâu LỆNH được chạy lại sau khi thay thế CŨ bằng MỚI.\n" +"\n" +"\tCÅ©ng có thể sá»­ dụng bí danh có ích « r='fc -s' »,\n" +"\tvì thế việc gõ « r cc » sẽ chạy câu lệnh cuối cùng\n" +"\tmà bắt đầu với « cc », và việc gõ « r »\n" +"\tsẽ đơn giản chạy lại câu lệnh cuối cùng.\n" +"\n" +"\tTrạng thái thoát:\n" +"\tTrả lại thành công hay trạng thái của câu lệnh được thá»±c thi;\n" +"\t\tgặp lỗi thì khác số không." + +#: builtins.c:734 +msgid "" +"Move job to the foreground.\n" +" \n" +" Place the job identified by JOB_SPEC in the foreground, making it the\n" +" current job. If JOB_SPEC is not present, the shell's notion of the\n" +" current job is used.\n" +" \n" +" Exit Status:\n" +" Status of command placed in foreground, or failure if an error occurs." +msgstr "" +"Nâng công việc lên trước.\n" +"\n" +"\tNâng lên trước công việc được ĐẶC_TẢ_CÔNG_VIỆC đại diện,\n" +"\tthì làm cho nó là công việc hiện thời.\n" +"\tKhông đưa ra ĐẶC_TẢ_CÔNG_VIỆC\n" +"\tthì dùng công việc hiện thời tùy theo trình bao.\n" +"\n" +"\tTrạng thái thoát:\n" +"\tTrạng thái của câu lệnh được nâng lên trước;\n" +"\tgặp lỗi thì không thành công." + +#: builtins.c:749 +msgid "" +"Move jobs to the background.\n" +" \n" +" Place the jobs identified by each JOB_SPEC in the background, as if " +"they\n" +" had been started with `&'. If JOB_SPEC is not present, the shell's " +"notion\n" +" of the current job is used.\n" +" \n" +" Exit Status:\n" +" Returns success unless job control is not enabled or an error occurs." +msgstr "" +"Gá»­i công việc ra sau.\n" +"\n" +"\tGá»­i ra sau các công việc được mỗi ĐẶC_TẢ_CÔNG_VIỆC đại diện,\n" +"\tnhÆ° là công việc được bắt đầu với « & ».\n" +"\tKhông đưa ra ĐẶC_TẢ_CÔNG_VIỆC\n" +"\tthì dùng công việc hiện thời tùy theo trình bao.\n" +"\n" +"\tTrạng thái thoát:\n" +"\tTrả lại thành công nếu chức năng điều khiển công việc được bật\n" +"\tvà không gặp lỗi." + +#: builtins.c:763 +msgid "" +"Remember or display program locations.\n" +" \n" +" Determine and remember the full pathname of each command NAME. If\n" +" no arguments are given, information about remembered commands is " +"displayed.\n" +" \n" +" Options:\n" +" -d\t\tforget the remembered location of each NAME\n" +" -l\t\tdisplay in a format that may be reused as input\n" +" -p pathname\tuse PATHNAME is the full pathname of NAME\n" +" -r\t\tforget all remembered locations\n" +" -t\t\tprint the remembered location of each NAME, preceding\n" +" \t\teach location with the corresponding NAME if multiple\n" +" \t\tNAMEs are given\n" +" Arguments:\n" +" NAME\t\tEach NAME is searched for in $PATH and added to the list\n" +" \t\tof remembered commands.\n" +" \n" +" Exit Status:\n" +" Returns success unless NAME is not found or an invalid option is given." +msgstr "" +"Nhớ hoặc hiển thị vị trí của chÆ°Æ¡ng trình.\n" +"\n" +"\tXác định và ghi nhớ tên đường dẫn đầy đủ của mỗi TÊN câu lệnh.\n" +"\tNếu không đưa ra đối số, hiển thị thông tin về các câu lệnh được ghi nhớ.\n" +"\n" +"\tTùy chọn:\n" +"\t\t-d\tquên vị trí được ghi nhớ của mỗi TÊN\n" +"\t\t-l\thiển thị theo một định dạng có thể được dùng lại\n" +"\t\t\tdưới dạng dữ liệu nhập vào\n" +"\t\t-p tên_đường_dẫn\tdùng TÊN_ĐƯỜNG_DẪN là tên đường dẫn đầy đủ của TÊN\n" +"\t\t-r\tquên mọi vị trí được ghi nhớ\n" +"\t\t-t\tin ra vị trí được ghi nhớ của mỗi TÊN,\n" +"\t\t\tcó nhiều TÊN thì cÅ©ng in ra TÊN tÆ°Æ¡ng ứng ở trước vị trí\n" +"\n" +"\tĐối số:\n" +"\t\tTÊN\tmỗi TÊN được tìm theo đường dẫn mặc định $PATH,\n" +"\t\tvà được thêm vào danh sách các câu lệnh được ghi nhớ.\n" +"\n" +"\tTrạng thái thoát:\n" +"\tTrả lại thành công nếu tìm được TÊN và không đưa ra tùy chọn sai." + +#: builtins.c:788 +msgid "" +"Display information about builtin commands.\n" +" \n" +" Displays brief summaries of builtin commands. If PATTERN is\n" +" specified, gives detailed help on all commands matching PATTERN,\n" +" otherwise the list of help topics is printed.\n" +" \n" +" Options:\n" +" -d\toutput short description for each topic\n" +" -m\tdisplay usage in pseudo-manpage format\n" +" -s\toutput only a short usage synopsis for each topic matching\n" +" \tPATTERN\n" +" \n" +" Arguments:\n" +" PATTERN\tPattern specifiying a help topic\n" +" \n" +" Exit Status:\n" +" Returns success unless PATTERN is not found or an invalid option is " +"given." +msgstr "" +"Hiển thị thông tin về các câu lệnh dá»±ng sẵn.\n" +"\n" +"\tHiển thị bản tóm tắt ngắn về các câu lệnh dá»±ng sẵn.\n" +"\tNếu cÅ©ng ghi rõ MẪU thì in ra trợ giúp chi tiết\n" +"\tvề tất cả các câu lệnh tÆ°Æ¡ng ứng với mẫu đó ;\n" +"\tkhông thì in ra danh sách các chủ đề trợ giúp.\n" +"\n" +"\rTùy chọn:\n" +"\t\t-d\txuất mô tả ngắn về mỗi chủ đề\n" +"\t\t-m\thiển thị cách sá»­ dụng theo định dạng\n" +"\t\t\tkiểu trang hướng dẫn (man)\n" +"\t\t-s\txuất chỉ một bản tóm tắt ngắn về cách sá»­ dụng\n" +"\t\t\tcho mỗi chủ đề tÆ°Æ¡ng ứng với MẪU\n" +"\n" +"\tĐối số :\n" +"\t\tMẪU\tmẫu ghi rõ một chủ đề trợ giúp\n" +"\n" +"\tTrạng thái thoát:\n" +"\tTrả lại thành công nếu tìm được MẪU và không đưa ra tùy chọn sai." + +#: builtins.c:812 +msgid "" +"Display or manipulate the history list.\n" +" \n" +" Display the history list with line numbers, prefixing each modified\n" +" entry with a `*'. An argument of N lists only the last N entries.\n" +" \n" +" Options:\n" +" -c\tclear the history list by deleting all of the entries\n" +" -d offset\tdelete the history entry at offset OFFSET.\n" +" \n" +" -a\tappend history lines from this session to the history file\n" +" -n\tread all history lines not already read from the history file\n" +" -r\tread the history file and append the contents to the history\n" +" \tlist\n" +" -w\twrite the current history to the history file\n" +" \tand append them to the history list\n" +" \n" +" -p\tperform history expansion on each ARG and display the result\n" +" \twithout storing it in the history list\n" +" -s\tappend the ARGs to the history list as a single entry\n" +" \n" +" If FILENAME is given, it is used as the history file. Otherwise,\n" +" if $HISTFILE has a value, that is used, else ~/.bash_history.\n" +" \n" +" If the $HISTTIMEFORMAT variable is set and not null, its value is used\n" +" as a format string for strftime(3) to print the time stamp associated\n" +" with each displayed history entry. No time stamps are printed " +"otherwise.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or an error occurs." +msgstr "" +"Hiển thị hoặc thao tác danh sách lượd sá»­.\n" +"\n" +"\tHiển thị danh sách lược sá»­ với các số thứ tá»± dòng,\n" +"\tcÅ©ng đặt dấu sao « * » vào trước mỗi mục nhập bị sá»­a đổi.\n" +"\tĐối số N thì liệt kê chỉ N mục nhập cuối cùng.\n" +"\n" +"\tTùy chọn:\n" +"\t\t-c\txoá sạch danh sách lược sá»­ bằng cách xoá mọi mục nhập\n" +"\t\t-d hiệu\txoá mục nhập lược sá»­ ở hiệu này\n" +"\n" +"\t\t-a\tphụ thêm vào tập tin lÆ° ợc sá»­ các dòng lược sá»­ từ phiên chạy này\n" +"\t\t-n\tđọc mọi dòng lược sá»­ chÆ°a đọc từ tập tin lược sá»­\n" +"\t\t-r\tđọc tÆ° lược sá»­ và phụ thêm nội dung vào lược sá»­\n" +"\t\t-w\tghi lược sá»­ hiện thời vào tập tin lược sá»­\n" +"\t\t\tcÅ©ng phụ thêm vào danh sách lược sá»­\n" +"\n" +"\t\t-p\tmở rộng lược sá»­ với mỗi ĐỐI_SỐ, và hiển thị kết quả\n" +"\t\t\tmà không ghi nhớ nó vào danh sách lược sá»­\n" +"\t\t-s\tphụ thêm các ĐỐI_SỐ vào danh sách lược sá»­\n" +"\t\t\tdưới dạng một mục nhập riêng lẻ\n" +"\n" +"\tĐưa ra TÊN_TẬP_TIN thì nó được dùng làm tập tin lược sá»­.\n" +"\tNếu không, và nếu $HISTFILE có giá trị, thì nó được dùng;\n" +"\tnếu $HISTFILE không có giá trị thì dùng « ~/.bash_history ».\n" +"\n" +"\tNếu biến $HISTTIMEFORMAT đã được đặt và có giá trị,\n" +"\tthì giá trị đó được dùng làm chuỗi định dạng\n" +"\tcho strftime(3) in ra nhãn thời gian tÆ°Æ¡ng ứng\n" +"\tvới mỗi mục nhập lược sá»­ được hiển thị.\n" +"\tKhông thì không in ra nhãn thời gian.\n" +"\n" +"\tTrạng thái thoát:\n" +"\tTrả lại thành công nếu không gặp tùy chọn sai hay gặp lỗi." + +#: builtins.c:848 +msgid "" +"Display status of jobs.\n" +" \n" +" Lists the active jobs. JOBSPEC restricts output to that job.\n" +" Without options, the status of all active jobs is displayed.\n" +" \n" +" Options:\n" +" -l\tlists process IDs in addition to the normal information\n" +" -n\tlist only processes that have changed status since the last\n" +" \tnotification\n" +" -p\tlists process IDs only\n" +" -r\trestrict output to running jobs\n" +" -s\trestrict output to stopped jobs\n" +" \n" +" If -x is supplied, COMMAND is run after all job specifications that\n" +" appear in ARGS have been replaced with the process ID of that job's\n" +" process group leader.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or an error occurs.\n" +" If -x is used, returns the exit status of COMMAND." +msgstr "" +"Hiển thị trạng thái của công việc.\n" +"\n" +"\tLiệt kê các công việc đang chạy.\n" +"\tĐẶC_TẢ_CÔNG_VIỆC hạn chế kết xuất thành công việc đó.\n" +"\tKhông đưa ra tùy chọn thì hiển thị trạng thái\n" +"\tcủa mọi công việc đang chạy.\n" +"\n" +"\tTùy chọn:\n" +"\t\t-l\tliệt kê các mã số tiến trình, thêm vào thông tin bình thường\n" +"\t\t-n\tliệt kê chỉ những tiến trình đã thay đổi trạng thái\n" +"\t\t\tkể từ lần thông báo cuối cùng\n" +"\t\t-s\thạn chế kết xuất thành những công việc bị dừng chạy\n" +"\n" +"\tĐưa ra « -x » thì câu LỆNH được chạy sau khi tất cả các đặc tả công việc\n" +"\tmà xuất hiện trong các ĐỐI_SỐ đã được thay thế bằng mã số tiến trình\n" +"\tcủa trình dẫn đầu nhóm tiến trình của công việc đó.\n" +"\n" +"\tTrạng thái thoát:\n" +"\tTrả lại thành công nếu không gặp tùy chọn sai hay gặp lỗi.\n" +"\tĐưa ra « -x » thì trả lại trạng thái thoát của câu LỆNH." + +#: builtins.c:875 +msgid "" +"Remove jobs from current shell.\n" +" \n" +" Removes each JOBSPEC argument from the table of active jobs. Without\n" +" any JOBSPECs, the shell uses its notion of the current job.\n" +" \n" +" Options:\n" +" -a\tremove all jobs if JOBSPEC is not supplied\n" +" -h\tmark each JOBSPEC so that SIGHUP is not sent to the job if the\n" +" \tshell receives a SIGHUP\n" +" -r\tremove only running jobs\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option or JOBSPEC is given." +msgstr "" +"Gỡ bỏ công việc khỏi trình bao đang chạy.\n" +"\n" +"\tGỡ bỏ mỗi đối số JOBSPEC (đặc tả công việc) khỏi bảng các công việc đang " +"chạy.\n" +"\tKhông có JOBSPEC thì trình bao dùng thông tin riêng về công việc đang đang " +"chạy.\n" +"\n" +"\tTùy chọn:\n" +"\t\t-a\tgỡ bỏ mọi công việc nếu không đưa ra JOBSPEC\n" +"\t\t-h\tđánh dấu mỗi JOBSPEC để không gá»­i tín hiệu ngÆ°ng kết nối SIGHUP\n" +"\t\t\tcho công việc nếu trình bao nhận được SIGHUP\n" +"\t\t-r\tgỡ bỏ chỉ những công việc đang chạy\n" +"\n" +"\tTrạng thái thoát:\n" +"\tTrả lại thành công nếu không đưa ra tùy chọn sai hay JOBSPEC sai." + +#: builtins.c:894 +msgid "" +"Send a signal to a job.\n" +" \n" +" Send the processes identified by PID or JOBSPEC the signal named by\n" +" SIGSPEC or SIGNUM. If neither SIGSPEC nor SIGNUM is present, then\n" +" SIGTERM is assumed.\n" +" \n" +" Options:\n" +" -s sig\tSIG is a signal name\n" +" -n sig\tSIG is a signal number\n" +" -l\tlist the signal names; if arguments follow `-l' they are\n" +" \tassumed to be signal numbers for which names should be listed\n" +" \n" +" Kill is a shell builtin for two reasons: it allows job IDs to be used\n" +" instead of process IDs, and allows processes to be killed if the limit\n" +" on processes that you can create is reached.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or an error occurs." +msgstr "" +"Gá»­i một tín hiệu cho một công việc.\n" +"\n" +"\tGá»­i cho những tiến trình được mã số hay đặc tả công việc đại diện\n" +"\ttín hiệu được SIGSPEC hay SIGNUM được đặt tên.\n" +"\tKhông đưa ra SIGSPEC, cÅ©ng không đưa ra SIGNUM,\n" +"\tthì giả sá»­ SIGTERM.\n" +"\n" +"\tTùy chọn:\n" +"\t\t-s TTH\tTTH là một tên tín hiệu\n" +"\t\t-n STH\tSTH là một số thứ tá»± tín hiệu\n" +"\t\t-l\tliệt kê các tên tín hiệu ;\n" +"\t\t\tnếu có đối số theo sau « -l », thì giả sá»­ mỗi đối số\n" +"\t\t\tlà số thứ tá»± tin hiệu cho đó nên liệt kê tên\n" +"\n" +"\tKill là một dá»±ng sẵn trình bao vì hai lý do :\n" +"\tnó cho phép dùng mã số công việc thay cho mã số tiến trình,\n" +"\tvà cho phép giết tiến trình nếu tới giới hạn số các tiến trình\n" +"\tđược phép tạo.\n" +"\tTrạng thái thoát:\n" +"\tTrả lại thành công nếu không đưa ra tùy chọn sai hay gặp lỗi." + +#: builtins.c:917 +msgid "" +"Evaluate arithmetic expressions.\n" +" \n" +" Evaluate each ARG as an arithmetic expression. Evaluation is done in\n" +" fixed-width integers with no check for overflow, though division by 0\n" +" is trapped and flagged as an error. The following list of operators is\n" +" grouped into levels of equal-precedence operators. The levels are " +"listed\n" +" in order of decreasing precedence.\n" +" \n" +" \tid++, id--\tvariable post-increment, post-decrement\n" +" \t++id, --id\tvariable pre-increment, pre-decrement\n" +" \t-, +\t\tunary minus, plus\n" +" \t!, ~\t\tlogical and bitwise negation\n" +" \t**\t\texponentiation\n" +" \t*, /, %\t\tmultiplication, division, remainder\n" +" \t+, -\t\taddition, subtraction\n" +" \t<<, >>\t\tleft and right bitwise shifts\n" +" \t<=, >=, <, >\tcomparison\n" +" \t==, !=\t\tequality, inequality\n" +" \t&\t\tbitwise AND\n" +" \t^\t\tbitwise XOR\n" +" \t|\t\tbitwise OR\n" +" \t&&\t\tlogical AND\n" +" \t||\t\tlogical OR\n" +" \texpr ? expr : expr\n" +" \t\t\tconditional operator\n" +" \t=, *=, /=, %=,\n" +" \t+=, -=, <<=, >>=,\n" +" \t&=, ^=, |=\tassignment\n" +" \n" +" Shell variables are allowed as operands. The name of the variable\n" +" is replaced by its value (coerced to a fixed-width integer) within\n" +" an expression. The variable need not have its integer attribute\n" +" turned on to be used in an expression.\n" +" \n" +" Operators are evaluated in order of precedence. Sub-expressions in\n" +" parentheses are evaluated first and may override the precedence\n" +" rules above.\n" +" \n" +" Exit Status:\n" +" If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise.." +msgstr "" +"Định giá biểu thức số học.\n" +"\n" +"\tĐịnh giá mỗi ĐỐI_SỐ nhÆ° là một biểu thức số học.\n" +"\tViệc định giá xảy ra theo số nguyên có độ rộng cố định\n" +"\tmà không kiểm tra có tràn chÆ°a,\n" +"\tdù trường hợp chia cho không được bắt và đặt cờ là một lỗi.\n" +"\tTheo đây có danh sách các toán tá»­ được nhóm lại\n" +"\ttheo cấp các toán tá»­ cùng quyền đi trước.\n" +"\tDanh sách các cấp có thứ tá»± quyền đi trước giảm.\n" +"\n" +"\tid++, id--\tbiến đổi sau khi tăng/giảm dần\n" +"\t++id, --id\tbiến đổi trước khi tăng/giảm dần\n" +"\t-, +\ttrừ, cộng nguyên phân\n" +"\t!, ~\tphủ định lôgic và theo vị trí bit\n" +"\t**\tmÅ© hoá\n" +"\t*, /, %\tphép nhân, phép chia, số dÆ°\n" +"\t+, -\tphép công, phép trừ\n" +"\t<<, >>\tdời theo vị trí bit bên trái/phải\n" +"\t<=, >=, <, >\tso sánh\n" +"\t==, !=\t bất đẳng thức, đẳng thức\n" +"\t&\tAND (và) theo vị trí bit\n" +"\t^\tXOR (hoặc loại từ) theo vị trí bit\n" +"\t||\tOR (hoặc) theo vị trí bit\n" +"\tb_thức ? b_thức : b_thức\ttoán từ điều kiện\n" +"\t=, *=, /=, %=, +=, -=, <<=, >>=, &=, ^=, |=\tgán\n" +"\n" +"\tCho phép biến trình bao dưới dạng toán hạng.\n" +"\tTên của biến được thay thế bằng giá trị của nó\n" +"\t(bị ép buộc thành một số nguyên rộng cố định)\n" +"\tbên trong một biểu thức.\n" +"\tBiến không cần có thuộc tính số nguyên được bật\n" +"\tđể được dùng làm biểu thức.\n" +"\n" +"\tCác toán tá»­ được định giá theo thứ tá»± quyền đi trước.\n" +"\tCác biểu thức con nằm trong dấu ngoặc vẫn còn được định giá trước tiên,\n" +"\tthì có quyền cao hÆ¡n các quy tắc đi trước bên trên.\n" +"\n" +"\tTrạng thái thoát:\n" +"\tNếu ĐỐI_SỐ cuối cùng được định giá thành 0 thì let trả lại 1;\n" +"\tkhông thì let trả lại 0." + +#: builtins.c:962 +#, fuzzy +msgid "" +"Read a line from the standard input and split it into fields.\n" +" \n" +" Reads a single line from the standard input, or from file descriptor FD\n" +" if the -u option is supplied. The line is split into fields as with " +"word\n" +" splitting, and the first word is assigned to the first NAME, the second\n" +" word to the second NAME, and so on, with any leftover words assigned to\n" +" the last NAME. Only the characters found in $IFS are recognized as " +"word\n" +" delimiters.\n" +" \n" +" If no NAMEs are supplied, the line read is stored in the REPLY " +"variable.\n" +" \n" +" Options:\n" +" -a array\tassign the words read to sequential indices of the array\n" +" \t\tvariable ARRAY, starting at zero\n" +" -d delim\tcontinue until the first character of DELIM is read, rather\n" +" \t\tthan newline\n" +" -e\t\tuse Readline to obtain the line in an interactive shell\n" +" -i text\tUse TEXT as the initial text for Readline\n" +" -n nchars\treturn after reading NCHARS characters rather than waiting\n" +" \t\tfor a newline\n" +" -p prompt\toutput the string PROMPT without a trailing newline before\n" +" \t\tattempting to read\n" +" -r\t\tdo not allow backslashes to escape any characters\n" +" -s\t\tdo not echo input coming from a terminal\n" +" -t timeout\ttime out and return failure if a complete line of input " +"is\n" +" \t\tnot read withint TIMEOUT seconds. The value of the TMOUT\n" +" \t\tvariable is the default timeout. TIMEOUT may be a\n" +" \t\tfractional number. If TIMEOUT is 0, read returns success only\n" +" \t\tif input is available on the specified file descriptor. The\n" +" \t\texit status is greater than 128 if the timeout is exceeded\n" +" -u fd\t\tread from file descriptor FD instead of the standard input\n" +" \n" +" Exit Status:\n" +" The return code is zero, unless end-of-file is encountered, read times " +"out,\n" +" or an invalid file descriptor is supplied as the argument to -u." +msgstr "" +"Đọc một dòng từ đầu vào tiêu chuẩn, sau đó chia nó ra nhiều trường.\n" +"\n" +"\tĐọc một dòng riêng lẻ từ đầu vào tiêu chuẩn,\n" +"\thoặc từ bộ mô tả tập tin FD nếu đưa ra tùy chọn « -u ».\n" +"\tDòng được chia ra nhiều trường giống nhÆ° khi chia từ ra,\n" +"\tvà từ đầu tiên được gán cho TÊN đầu tiên,\n" +"\ttừ thứ hai cho TÊN thứ hai, v.v.,\n" +"\tvà từ còn lại nào được gán cho TÊN cuối cùng.\n" +"\tChỉ những ký tá»± được tìm trong $IFS được nhận ra là ký tá»± định giới từ.\n" +"\n" +"\tKhông đưa ra TÊN thì dòng được đọc sẽ được ghi nhớ vào biến REPLY (trả " +"lời).\n" +"\n" +"\tTùy chọn:\n" +"\t\t-a MẢNG\tgán các từ được đọc cho những số mÅ© tuần tá»±\n" +"\t\t\tcủa biến mảng MẢNG, bắt đầu từ số không.\n" +"\t\t-d định_giới\ttiếp tục đến khi đọc ký tá»± đầu tiên của DELIM,\n" +"\t\t\thÆ¡n là ký tá»± dòng mới\n" +"\t\t-e\tdùng Readline để lấy dòng trong một trình bao tÆ°Æ¡ng tác\n" +"\t\t-i chuỗi\tdùng chuỗi này nhÆ° là văn bản đầu tiên cho Readline\n" +"\t\t-n số_ky_tá»±\ttrở về sau khi đọc số các ký tá»± này,\n" +"\t\t\thÆ¡n là đợi một ký tá»± dòng mới\n" +"\t\t-p nhắc\txuất chuỗi NHẮC mà không có ký tá»± dòng mới theo sau,\n" +"\t\t\ttrước khi thá»­ đọc\n" +"\t\t-r\tđừng cho phép gạch chéo ngược thoát ký tá»±\n" +"\t\t-s\tđừng báo lai dữ liệu nhập vào đến từ thiết bị cuối\n" +"\t\t-t thời_hạn\tquá thời và trả lại không thành công\n" +"\t\t\tnếu chÆ°a đọc một dòng dữ liệu nhập hoàn toàn trong số giấy này.\n" +"\t\t\tGiá trị của biến TMOUT là thời hạn mặc định.\n" +"\t\t\tThời hạn này có thể là một số thuộc phân số.\n" +"\t\t\tTrạng thái thoát lớn hÆ¡n 128 nếu vượt quá thời hạn này.\n" +"\t\t-u fd\tđọc từ bộ mô tả tập tin FD thay cho đầu vào tiêu chuẩn\n" +"\n" +"\tTrạng thái thoát:\n" +"\tMã trả lại là số không, nếu không gặp kết thúc tập tin,\n" +"\tkhông quá thời khi đọc, và không đưa ra bộ mô tả tập tin sai\n" +"\tlàm đối số tới « -u »." + +#: builtins.c:1002 +msgid "" +"Return from a shell function.\n" +" \n" +" Causes a function or sourced script to exit with the return value\n" +" specified by N. If N is omitted, the return status is that of the\n" +" last command executed within the function or script.\n" +" \n" +" Exit Status:\n" +" Returns N, or failure if the shell is not executing a function or script." +msgstr "" +"Trả lại từ một chức năng trình bao.\n" +"\n" +"\tGây ra một chức năng hay văn lệnh từ nguồn sẽ thoát\n" +"\tvới giá trị trả lại được N ghi rõ.\n" +"\tKhông đưa ra N thì trạng thái trả lại thuộc về câu lệnh cuối cùng\n" +"\t\tđược chạy bên trong chức năng hay văn lệnh.\n" +"\n" +"\tTrạng thái thoát:\n" +"\tTrả lại N, hoặc bị lỗi nếu trình bao không đang chạy\n" +"\t\tmột chức năng hay văn lệnh." + +#: builtins.c:1015 +msgid "" +"Set or unset values of shell options and positional parameters.\n" +" \n" +" Change the value of shell attributes and positional parameters, or\n" +" display the names and values of shell variables.\n" +" \n" +" Options:\n" +" -a Mark variables which are modified or created for export.\n" +" -b Notify of job termination immediately.\n" +" -e Exit immediately if a command exits with a non-zero status.\n" +" -f Disable file name generation (globbing).\n" +" -h Remember the location of commands as they are looked up.\n" +" -k All assignment arguments are placed in the environment for a\n" +" command, not just those that precede the command name.\n" +" -m Job control is enabled.\n" +" -n Read commands but do not execute them.\n" +" -o option-name\n" +" Set the variable corresponding to option-name:\n" +" allexport same as -a\n" +" braceexpand same as -B\n" +" emacs use an emacs-style line editing interface\n" +" errexit same as -e\n" +" errtrace same as -E\n" +" functrace same as -T\n" +" hashall same as -h\n" +" histexpand same as -H\n" +" history enable command history\n" +" ignoreeof the shell will not exit upon reading EOF\n" +" interactive-comments\n" +" allow comments to appear in interactive commands\n" +" keyword same as -k\n" +" monitor same as -m\n" +" noclobber same as -C\n" +" noexec same as -n\n" +" noglob same as -f\n" +" nolog currently accepted but ignored\n" +" notify same as -b\n" +" nounset same as -u\n" +" onecmd same as -t\n" +" physical same as -P\n" +" pipefail the return value of a pipeline is the status of\n" +" the last command to exit with a non-zero status,\n" +" or zero if no command exited with a non-zero " +"status\n" +" posix change the behavior of bash where the default\n" +" operation differs from the Posix standard to\n" +" match the standard\n" +" privileged same as -p\n" +" verbose same as -v\n" +" vi use a vi-style line editing interface\n" +" xtrace same as -x\n" +" -p Turned on whenever the real and effective user ids do not match.\n" +" Disables processing of the $ENV file and importing of shell\n" +" functions. Turning this option off causes the effective uid and\n" +" gid to be set to the real uid and gid.\n" +" -t Exit after reading and executing one command.\n" +" -u Treat unset variables as an error when substituting.\n" +" -v Print shell input lines as they are read.\n" +" -x Print commands and their arguments as they are executed.\n" +" -B the shell will perform brace expansion\n" +" -C If set, disallow existing regular files to be overwritten\n" +" by redirection of output.\n" +" -E If set, the ERR trap is inherited by shell functions.\n" +" -H Enable ! style history substitution. This flag is on\n" +" by default when the shell is interactive.\n" +" -P If set, do not follow symbolic links when executing commands\n" +" such as cd which change the current directory.\n" +" -T If set, the DEBUG trap is inherited by shell functions.\n" +" - Assign any remaining arguments to the positional parameters.\n" +" The -x and -v options are turned off.\n" +" \n" +" Using + rather than - causes these flags to be turned off. The\n" +" flags can also be used upon invocation of the shell. The current\n" +" set of flags may be found in $-. The remaining n ARGs are positional\n" +" parameters and are assigned, in order, to $1, $2, .. $n. If no\n" +" ARGs are given, all shell variables are printed.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given." +msgstr "" +"Đặt hay bỏ đặt giá trị của tùy chọn trình bao và tham số thuộc vị trí.\n" +"\n" +"\tSá»­a đổi giá trị của thuộc tính trình bao và tham số thuộc vị trí,\n" +"\thoặc hiển thị tên và giá trị của biến trình bao.\n" +"\n" +"\tTùy chọn:\n" +"\t\t-a\tđánh dấu các biến được tạo hay sá»­a đổi để xuất ra\n" +"\t\t-b\tthông báo ngay về công việc bị chấm dứt\n" +"\t\t-e\tthoát ngay nếu câu lệnh thoát với trạng thái khác số không\n" +"\t\t-f\ttắt chức năng tạo tên tập tin (glob)\n" +"\t\t-h\tnhớ vị trí của mỗi câu lệnh khi nó được dò tìm\n" +"\t\t-k\tmọi đối số gán được đặt vào môi trường cho một câu lệnh,\n" +"\t\t\tkhông phải chỉ những đối số nằm trước tên câu lệnh\n" +"\t\t-m\tbật chức năng điều khiển công việc\n" +"\t\t-n\tđọc câu lệnh mà không thá»±c thi\n" +"\t\t-o tên_tùy_chọn\tđặt biến tÆ°Æ¡ng ứng với tùy chọn này:\n" +"\t\t\t• allexport\tbằng -a\n" +"\t\t\t• braceexpand\tbằng -B\n" +"\t\t\t• emacs\tdùng một giao diện chỉnh sá»­a dòng kiểu emacs\n" +"\t\t\t• errexit\tbằng -e\n" +"\t\t\t• errtrace\tbằng -E\n" +"\t\t\t• functrace\tbằng -T\n" +"\t\t\t• hashall\tbằng -h\n" +"\t\t\t• histexpand\tbằng -H\n" +"\t\t\t• history\tbật lược sá»­ câu lệnh\n" +"\t\t\t• ignoreeof\ttrình bao sẽ không thoát khi đọc ký tá»± kết thúc tập tin\n" +"\t\t\t• interactive-comments\tcho phép ghi chú trong câu lệnh tÆ°Æ¡ng tác\n" +"\t\t\t• keyword\tbằng -k\n" +"\t\t\t• monitor\tbằng -m\n" +"\t\t\t• noclobber\tbằng -C\n" +"\t\t\t• noexec\tbằng -n\n" +"\t\t\t• noglob\tbằng -f\n" +"\t\t\t• nolog\thiện thời được chấp nhận nhÆ°ng bị bỏ qua\n" +"\t\t\t• notify\tbằng -b\n" +"\t\t\t• nounset\tbằng -u\n" +"\t\t\t• onecmd\tbằng -t\n" +"\t\t\t• physical\tbằng -P\n" +"\t\t\t• pipefail\tgiá trị trả lại của một ống dẫn\n" +"\t\t\t\tlà trạng thái của câu lệnh cuối cùng\n" +"\t\t\t\tthoát với trạng thái khác số không,\n" +"\t\t\t\thay số không nếu không có câu lệnh\n" +"\t\t\t\tthoát với trạng thái khác số không\n" +"\t\t\t• posix\tthay đổi ứng xá»­ của bash\n" +"\t\t\t\tmà thao tác mặc định khác với tiêu chuẩn Posix,\n" +"\t\t\t\tđể tùy theo tiêu chuẩn\n" +"\t\t\t• privileged\tbằng -p\n" +"\t\t\t• verbose\tbằng -v\n" +"\t\t\t• vi\tdùng một giao diện chỉnh sá»­a kiểu vi\n" +"\t\t\t• xtrace\tbằng -x\n" +"\t\t-p\tbật khi nào mã số thật và mã số có kết quả\n" +"\t\t\tkhông tÆ°Æ¡ng ứng với nhau.\n" +"\t\t\tTắt tính năng xá»­ lý tập tin $ENV\n" +"\t\t\tvà nhập chức năng trình bao.\n" +"\t\t\tViệc tắt tùy chọn này thì gêy ra UID và GID có kết quả\n" +"\t\t\tđược đặt thành UID và GID thật.\n" +"\t\t-t\tthoát sau khi đọc và thá»±c thi một câu lệnh\n" +"\t\t-u\txá»­ lý biến chÆ°a đặt là lỗi khi thay thế\n" +"\t\t-v\tin ra mỗi dòng nhập vào trình bao khi nó được đọc\n" +"\t\t-x\tin ra mỗi câu lệnh và đối số tÆ°Æ¡ng ứng\n" +"\t\t\tkhi nó được thá»±c thi\n" +"\\t-B\ttrình bao sẽ mở rộng các dấu ngoặc móc\n" +"\t\t-C\tđặt thì không cho phép ghi đề lên tập tin bình thường\n" +"\t\t\tđã tồn tại bằng cách chuyển hướng kết xuất\n" +"\t\t-E\tđặt thì bẫy ERR được chức năng trình bao kế thừa\n" +"\t\t-H\tbật chức năng thay thế kiểu !\n" +"\t\t\tCờ này được đặt theo mặc định khi trình bao tÆ°Æ¡ng tác\n" +"\t\t-P\tđặt thì không theo liên kết tượng trÆ°ng\n" +"\t\t\tkhi thá»±c thi câu lệnh nhÆ° cd mà chuyển đổi thÆ° mục hiện tại\n" +"\t\t-T\tđặt thì bẩy DEBUG (gỡ lỗi) được chức năng trình bao kế thừa\n" +"\t\t-\tgán bất cứ đối số còn lại nào cho những tham số thuộc vị trí.\n" +"\t\t\tHai tùy chọn « -x » và « -v » đều bị tắt.\n" +"\n" +"\tViệc dùng « + » hÆ¡n là « - » thì gây ra các cờ này bị tắt.\n" +"\tCác cờ cÅ©ng có thể được dùng khi gọi trình bao.\n" +"\tCÅ©ng có thể tìm thấy tập cờ hiện thời trong « $- ».\n" +"\tCác đối số còn lại là tham số thuộc vị trí,\n" +"\tvà được gán (theo thứ tá»±) cho $1, $2, .. $n.\n" +"\tKhông đưa ra đối số thì in ra mọi biến trình bao.\n" +"\n" +"\tTrạng thái thoát:\n" +"\tTrả lại thành công nếu không gặp tùy chọn sai." + +#: builtins.c:1097 +msgid "" +"Unset values and attributes of shell variables and functions.\n" +" \n" +" For each NAME, remove the corresponding variable or function.\n" +" \n" +" Options:\n" +" -f\ttreat each NAME as a shell function\n" +" -v\ttreat each NAME as a shell variable\n" +" \n" +" Without options, unset first tries to unset a variable, and if that " +"fails,\n" +" tries to unset a function.\n" +" \n" +" Some variables cannot be unset; also see `readonly'.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or a NAME is read-only." +msgstr "" +"Bỏ đặt giá trị và thuộc tính của biến và chức năng của trình bao.\n" +"\n" +"\tĐối với mỗi TÊN, gỡ bỏ biến hay chức năng mà tÆ°Æ¡ng ứng.\n" +"\n" +"\tTùy chọn:\n" +"\t\t-f\tđọc mỗi TÊN dượi dạng một chức năng trình bao\n" +"\t\t-v\tđọc mỗi TÊN dượi dạng một biến trình bao\n" +"\n" +"\tKhông có tùy chọn thì chức năng bỏ đặt sẽ thá»­ bỏ đặt một biến,\n" +"\tvà nếu không thành công, sau đó thá»­ bỏ đặt một chức năng.\n" +"\n" +"\tTrạng thái thoát:\n" +"\tTrả lại thành công nếu không đưa ra tùy chọn sai, và TÊN không chỉ đọc." + +#: builtins.c:1117 +msgid "" +"Set export attribute for shell variables.\n" +" \n" +" Marks each NAME for automatic export to the environment of subsequently\n" +" executed commands. If VALUE is supplied, assign VALUE before " +"exporting.\n" +" \n" +" Options:\n" +" -f\trefer to shell functions\n" +" -n\tremove the export property from each NAME\n" +" -p\tdisplay a list of all exported variables and functions\n" +" \n" +" An argument of `--' disables further option processing.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or NAME is invalid." +msgstr "" +"Đặt thuộc tính xuất khẩu cho biến trình bao.\n" +"\n" +"\tĐánh dấu mỗi TÊN để tá»± động xuất vào môi trường của câu lệnh được chạy về " +"sau.\n" +"\tĐưa ra GIÁ_TRỊ thì gán GIÁ_TRỊ trước khi xuất ra.\n" +"\n" +"\tTùy chọn:\n" +"\t\t-f\ttham chiếu đến chức năng trình bao\n" +"\t\t-n\tgỡ bỏ thuộc tính xuất khẩu khỏi mỗi TÊN\n" +"\t\t-p\thiển thị danh sách các biến và chức năng đều được xuất ra\n" +"\n" +"\tĐối số « -- » thì tắt chức năng xá»­ lý tùy chọn sau nữa.\n" +"\n" +"\tTrạng thái thoát:\n" +"\tTrả lại thành công nếu không đưa ra tùy chọn sai hay TÊN sai," + +#: builtins.c:1136 +msgid "" +"Mark shell variables as unchangeable.\n" +" \n" +" Mark each NAME as read-only; the values of these NAMEs may not be\n" +" changed by subsequent assignment. If VALUE is supplied, assign VALUE\n" +" before marking as read-only.\n" +" \n" +" Options:\n" +" -a\trefer to indexed array variables\n" +" -A\trefer to associative array variables\n" +" -f\trefer to shell functions\n" +" -p\tdisplay a list of all readonly variables and functions\n" +" \n" +" An argument of `--' disables further option processing.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or NAME is invalid." +msgstr "" +"Đánh dấu biến trình bao không thể thay đổi được.\n" +"\n" +"\tĐánh dấu mỗi TÊN là chỉ đọc; những giá trị của TÊN nhÆ° vậy\n" +"\tthì không thay đổi được bất chấp việc gán theo sau.\n" +"\tĐưa ra GIÁ_TRỊ thì gán GIÁ_TRỊ trước khi đánh dấu là chỉ đọc.\n" +"\n" +"\tTùy chọn:\n" +"\t\t-a\ttham chiếu đến biến kiểu mảng theo số mÅ©\n" +"\t\t-A\ttham chiếu đến biến kiểu mảng kết hợp\n" +"\t\t-f\ttham chiếu đến chức năng trình bao\n" +"\t\t-p\thiển thị danh sách các biến và chức năng vẫn chỉ đọc\n" +"\n" +"\tĐối số « -- » thì tắt chức năng xá»­ lý tùy chọn sau nữa.\n" +"\n" +"\tTrạng thái thoát:\n" +"\tTrả lại thành công nếu không đưa ra tùy chọn sai hay TÊN sai." + +#: builtins.c:1157 +msgid "" +"Shift positional parameters.\n" +" \n" +" Rename the positional parameters $N+1,$N+2 ... to $1,$2 ... If N is\n" +" not given, it is assumed to be 1.\n" +" \n" +" Exit Status:\n" +" Returns success unless N is negative or greater than $#." +msgstr "" +"Dời tham số thuộc vị trí.\n" +"\n" +"\tThay đổi tên của tham số thuộc vị trí $N+1,$N+2 ... đến $1,$2 ...\n" +"\tKhông đưa ra N thì giả sá»­ nó là 1.\n" +"\n" +"\tTrạng thái thoát:\n" +"\tTrả lại thành công nếu N không âm hay lớn hÆ¡n $#." + +#: builtins.c:1169 builtins.c:1184 +msgid "" +"Execute commands from a file in the current shell.\n" +" \n" +" Read and execute commands from FILENAME in the current shell. The\n" +" entries in $PATH are used to find the directory containing FILENAME.\n" +" If any ARGUMENTS are supplied, they become the positional parameters\n" +" when FILENAME is executed.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed in FILENAME; fails if\n" +" FILENAME cannot be read." +msgstr "" +"Thá»±c thi các câu lệnh từ một tập tin trong trình bao đang chạy.\n" +"\n" +"\tĐọc và thá»±c thi các câu lệnh từ TÊN_TẬP_TIN\n" +"\ttrong trình bao đang chạy.\n" +"\tNhững mục nhập trong $PATH được dùng\n" +"\tđể tìm thÆ° mục chứa tên tập tin này.\n" +"\tĐưa ra đối số thì mỗi đối số trở thành tham số thuộc vị trí\n" +"\tkhi TÊN_TẬP_TIN được thá»±c thi.\n" +"\n" +"\tTrạng thái thoát:\n" +"\tTrả lại trạng thái của câu lệnh cuối cùng được thá»±c thi trong " +"TÊN_TẬP_TIN;\n" +"\tkhông thành công nếu không thể đọc TÊN_TẬP_TIN." + +#: builtins.c:1200 +msgid "" +"Suspend shell execution.\n" +" \n" +" Suspend the execution of this shell until it receives a SIGCONT signal.\n" +" Unless forced, login shells cannot be suspended.\n" +" \n" +" Options:\n" +" -f\tforce the suspend, even if the shell is a login shell\n" +" \n" +" Exit Status:\n" +" Returns success unless job control is not enabled or an error occurs." +msgstr "" +"NgÆ°ng chạy trình bao.\n" +"\n" +"\tNgÆ°ng chạy trình bao này đến khi nó nhận tín hiệu tiếp tục (SIGCONT).\n" +"\tNếu không ép buộc thì không thể ngÆ°ng chạy trình bao kiểu đăng nhập.\n" +"\n" +"\tTùy chọn:\n" +"\t\t-f\tép buộc việc ngÆ°ng, thậm chí nếu trình bao có kiểu đăng nhập\n" +"\n" +"\tTrạng thái thoát:\n" +"\tTrả lại thành công nếu chức năng điều khiển công việc đã được bật, và " +"không gặp lỗi." + +#: builtins.c:1216 +msgid "" +"Evaluate conditional expression.\n" +" \n" +" Exits with a status of 0 (true) or 1 (false) depending on\n" +" the evaluation of EXPR. Expressions may be unary or binary. Unary\n" +" expressions are often used to examine the status of a file. There\n" +" are string operators as well, and numeric comparison operators.\n" +" \n" +" File operators:\n" +" \n" +" -a FILE True if file exists.\n" +" -b FILE True if file is block special.\n" +" -c FILE True if file is character special.\n" +" -d FILE True if file is a directory.\n" +" -e FILE True if file exists.\n" +" -f FILE True if file exists and is a regular file.\n" +" -g FILE True if file is set-group-id.\n" +" -h FILE True if file is a symbolic link.\n" +" -L FILE True if file is a symbolic link.\n" +" -k FILE True if file has its `sticky' bit set.\n" +" -p FILE True if file is a named pipe.\n" +" -r FILE True if file is readable by you.\n" +" -s FILE True if file exists and is not empty.\n" +" -S FILE True if file is a socket.\n" +" -t FD True if FD is opened on a terminal.\n" +" -u FILE True if the file is set-user-id.\n" +" -w FILE True if the file is writable by you.\n" +" -x FILE True if the file is executable by you.\n" +" -O FILE True if the file is effectively owned by you.\n" +" -G FILE True if the file is effectively owned by your group.\n" +" -N FILE True if the file has been modified since it was last " +"read.\n" +" \n" +" FILE1 -nt FILE2 True if file1 is newer than file2 (according to\n" +" modification date).\n" +" \n" +" FILE1 -ot FILE2 True if file1 is older than file2.\n" +" \n" +" FILE1 -ef FILE2 True if file1 is a hard link to file2.\n" +" \n" +" String operators:\n" +" \n" +" -z STRING True if string is empty.\n" +" \n" +" -n STRING\n" +" STRING True if string is not empty.\n" +" \n" +" STRING1 = STRING2\n" +" True if the strings are equal.\n" +" STRING1 != STRING2\n" +" True if the strings are not equal.\n" +" STRING1 < STRING2\n" +" True if STRING1 sorts before STRING2 " +"lexicographically.\n" +" STRING1 > STRING2\n" +" True if STRING1 sorts after STRING2 lexicographically.\n" +" \n" +" Other operators:\n" +" \n" +" -o OPTION True if the shell option OPTION is enabled.\n" +" ! EXPR True if expr is false.\n" +" EXPR1 -a EXPR2 True if both expr1 AND expr2 are true.\n" +" EXPR1 -o EXPR2 True if either expr1 OR expr2 is true.\n" +" \n" +" arg1 OP arg2 Arithmetic tests. OP is one of -eq, -ne,\n" +" -lt, -le, -gt, or -ge.\n" +" \n" +" Arithmetic binary operators return true if ARG1 is equal, not-equal,\n" +" less-than, less-than-or-equal, greater-than, or greater-than-or-equal\n" +" than ARG2.\n" +" \n" +" Exit Status:\n" +" Returns success if EXPR evaluates to true; fails if EXPR evaluates to\n" +" false or an invalid argument is given." +msgstr "" +"Định giá biểu thức điều kiện.\n" +"\n" +"Thoát với trạng thái 0 (đúng) hoặc 1 (sai), phụ thuộc vào phép tính B_THỨC.\n" +"Biểu thức kiểu nguyên phân hoặc nhị phân cÅ©ng được.\n" +"Biểu thức nguyên phân thường dùng để kiểm tra trạng thái của tập tin.\n" +"CÅ©ng có đối số chuỗi, và toán tá»­ so sánh thuộc số.\n" +" \n" +" Toán tá»­ tập tin:\n" +" \n" +" -a TẬP_TIN Đúng nếu tập tin có phải tồn tại.\n" +" -b TẬP_TIN Đúng nếu tập tin là đặc biệt về khối.\n" +" -c TẬP_TIN Đúng nếu tập tin là đặc biệt về ký tá»±.\n" +" -d TẬP_TIN Đúng nếu tập tin là một thÆ° mục.\n" +" -e TẬP_TIN Đúng nếu tập tin có phải tồn tại.\n" +" -f TẬP_TIN Đúng nếu tập tin có phải tồn tại\n" +"\t\t\t\t\tcÅ©ng là một tập tin bình thường.\n" +" -g TẬP_TIN Đúng nếu tập tin là set-group-id (đặt mã số " +"nhóm).\n" +" -h TẬP_TIN Đúng nếu tập tin là một liên kết tượng trÆ°ng.\n" +" -L TẬP_TIN Đúng nếu tập tin là một liên kết tượng trÆ°ng.\n" +" -k TẬP_TIN Đúng nếu tập tin có bit « dính » được đặt.\n" +" -p TẬP_TIN Đúng nếu tập tin là một ống dẫn đặt tên.\n" +" -r TẬP_TIN Đúng nếu tập tin cho bạn đọc được.\n" +" -s TẬP_TIN Đúng nếu tập tin có phải tồn tại và không phải " +"rỗng.\n" +" -S TẬP_TIN Đúng nếu tập tin là một ổ cắm.\n" +" -t FD Đúng nếu FD (bộ mô tả tập tin) được mở trên thiết bị " +"cuối.\n" +" -u TẬP_TIN Đúng nếu tập tin is set-user-id.\n" +" -w TẬP_TIN Đúng nếu tập tin cho bạn ghi vào được.\n" +" -x TẬP_TIN Đúng nếu tập tin cho bạn thá»±c hiện được.\n" +" -O TẬP_TIN Đúng nếu tập tin được bạn sở hữu một cách hiệu " +"quả.\n" +" -G TẬP_TIN Đúng nếu tập tin được nhóm của bạn sở hữu\n" +"\t\t\t\t\tmột cách hiệu quả.\n" +" -N TẬP_TIN Đúng nếu tập tin đã bị sá»­a đổi kể từ lần đọc cuối " +"cùng.\n" +" \n" +" TẬP_TIN1 -nt TẬP_TIN2 Đúng nếu tập tin 1 mới hÆ¡n tập tin 2\n" +"\t\t(tùy theo ngày sá»­a đổi)\n" +" \n" +" TẬP_TIN1 -ot TẬP_TIN2 Đúng nếu tập tin 1 cÅ© hÆ¡n tập tin 2.\n" +" \n" +" TẬP_TIN1 -ef TẬP_TIN2 Đúng nếu tập tin 1 là một liên kết cứng\n" +"\t\t\t\t\t\ttới tập tin 2.\n" +" \n" +" Toán tá»­ chuỗi:\n" +" \n" +" -z CHUỖI Đúng nếu chuỗi rỗng.\n" +" \n" +" -n CHUỖI\n" +" CHUỖI Đúng nếu chuỗi không rỗng.\n" +" \n" +" CHUỖI1 = CHUỖI2\t\tĐúng nếu hai chuỗi trùng nhau.\n" +" CHUỖI1 != CHUỖI2\tĐúng nếu hai chuỗi khác nhau.\n" +" CHUỖI1 < CHUỖI2\t\tĐúng nếu CHUỖI1 sắp xếp đằng trước CHUỖI2\n" +"\t\t\t\t\t\ttheo thứ tá»± từ điển.\n" +" CHUỖI1 > CHUỖI2\t\tĐúng nếu CHUỖI1 sắp xếp đằng sau CHUỖI2\n" +"\t\t\t\t\t\ttheo thứ tá»± từ điển.\n" +" \n" +" Toán tá»­ khác:\n" +" \n" +" -o TÙY_CHỌN Đúng nếu tùy chọn trình bao này đã được bật.\n" +" ! B_THỨC Đúng nếu biểu thức này không đúng.\n" +" B_THỨC1 -a B_THỨC2 \t\tĐúng nếu cả hai biểu thức này là đúng.\n" +" B_THỨC1 -o B_THỨC2 \t\tĐúng nếu một của hai biểu thức này là đúng.\n" +" \n" +" đối_số1 OP đối_số2 \t\tPhép thá»­ số học. OP là một của:\n" +"\t\t-eq\t\tbằng\n" +"\t\t-ne\t\tkhông bằng\n" +" \t-lt\t\tnhỏ hÆ¡n\n" +"\t\t-le\t\tnhỏ hÆ¡n hoặc bằng\n" +"\t\t-gt\t\tlớn hÆ¡n\n" +"\t\t-ge\t\tlớn hÆ¡n hoặc bằng\n" +"\n" +"\tTrạng thái thoát:\n" +"\tTrả lại thành công nếu B_THỨC định giá thành Đúng;\n" +"\tkhông thành công nếu B_THỨC định giá thành Sai hay đưa ra đối số sai." + +#: builtins.c:1292 +msgid "" +"Evaluate conditional expression.\n" +" \n" +" This is a synonym for the \"test\" builtin, but the last argument must\n" +" be a literal `]', to match the opening `['." +msgstr "" +"Định giá biểu thức điều kiện.\n" +"\n" +"\tĐây là một từ đồng nghÄ©a với dá»±ng sẵn « test »,\n" +"\tnhÆ°ng đối số cuối cùng phải là một « ] » nghÄ©a chữ,\n" +"\tđổ tÆ°Æ¡ng ứng với « [ » mở." + +#: builtins.c:1301 +msgid "" +"Display process times.\n" +" \n" +" Prints the accumulated user and system times for the shell and all of " +"its\n" +" child processes.\n" +" \n" +" Exit Status:\n" +" Always succeeds." +msgstr "" +"Hiển thị thời lượng chạy tiến trình.\n" +"\n" +"\tIn ra thời lượng chạy trình bao (và các tiến trình con)\n" +"\t\tđối với hệ thống và mỗi người dùng.\n" +"\n" +"\tTrạng thái thoát:\n" +"\tLúc nào cÅ©ng thành công." + +#: builtins.c:1313 +msgid "" +"Trap signals and other events.\n" +" \n" +" Defines and activates handlers to be run when the shell receives " +"signals\n" +" or other conditions.\n" +" \n" +" ARG is a command to be read and executed when the shell receives the\n" +" signal(s) SIGNAL_SPEC. If ARG is absent (and a single SIGNAL_SPEC\n" +" is supplied) or `-', each specified signal is reset to its original\n" +" value. If ARG is the null string each SIGNAL_SPEC is ignored by the\n" +" shell and by the commands it invokes.\n" +" \n" +" If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell. " +"If\n" +" a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command.\n" +" \n" +" If no arguments are supplied, trap prints the list of commands " +"associated\n" +" with each signal.\n" +" \n" +" Options:\n" +" -l\tprint a list of signal names and their corresponding numbers\n" +" -p\tdisplay the trap commands associated with each SIGNAL_SPEC\n" +" \n" +" Each SIGNAL_SPEC is either a signal name in or a signal " +"number.\n" +" Signal names are case insensitive and the SIG prefix is optional. A\n" +" signal may be sent to the shell with \"kill -signal $$\".\n" +" \n" +" Exit Status:\n" +" Returns success unless a SIGSPEC is invalid or an invalid option is " +"given." +msgstr "" +"Bắt các tín hiệu và dữ kiện khác.\n" +"\n" +"\tXác định và kích hoạt các bộ xá»­ lý cần chạy khi trình bao\n" +"\tnhận được tín hiệu hay điều kiện khác.\n" +"\n" +"\tĐỐI_SỐ là một câu lệnh cần đọc và thá»±c thi khi trình bao\n" +"\tnhận được (các) tín hiệu ĐẶC_TẢ_TÍN_HIỆU.\n" +"\tNếu không đưa ra ĐỐI_SỐ\n" +"\t(và cung cấp chỉ một ĐẶC_TẢ_TÍN_HIỆU riêng lẻ),\n" +"\thoặc đưa ra « - », mỗi tín hiệu được ghi rõ\n" +"\tthì được đặt lại về giá trị gốc.\n" +"\tNếu ĐỐI_SỐ là chuỗi vô giá trị\n" +"\tthì mỗi ĐẶC_TẢ_TÍN_HIỆU bị bỏ qua\n" +"\tbởi trình bao và những câu lệnh nó gọi.\n" +"\n" +"\tNếu đưa ra một ĐẶC_TẢ_TÍN_HIỆU là EXIT (0),\n" +"\tthì ĐỐI_SỐ được thá»±c thi khi thoát khỏi trình bao.\n" +"\tNếu đưa ra một ĐẶC_TẢ_TÍN_HIỆU là DEBUG,\n" +"\tĐỐI_SỐ được thá»±c thi đằng trước mỗi câu lệnh đơn giản.\n" +"\n" +"\tTùy chọn:\n" +"\t\t-l\tin ra danh sách các tên tín hiệu và số thứ tá»± tÆ°Æ¡ng ứng\n" +"\t\t-p\thiển thị các câu lệnh bắt tÆ°Æ¡ng ứng với mỗi ĐẶC_TẢ_TÍN_HIỆU\n" +"\n" +"\tMỗi ĐẶC_TẢ_TÍN_HIỆU là hoặc một tên tín hiệu trong ,\n" +"\thoặc một số thứ tá»± tín hiệu.\n" +"\tTên tín hiệu không phân biệt chữ hoa/thường,\n" +"\tvà không bắt buộc phải dùng tiền tố « SIG ».\n" +"\tCó thể gá»­i cho trình bao một tín hiệu,\n" +"\tdùng « kill -signal $$ ».\n" +"\n" +"\tTrạng thái thoát:\n" +"\tTrả lại thành công nếu không đưa ra ĐẶC_TẢ_TÍN_HIỆU sai\n" +"\thay tùy chọn sai." + +#: builtins.c:1345 +msgid "" +"Display information about command type.\n" +" \n" +" For each NAME, indicate how it would be interpreted if used as a\n" +" command name.\n" +" \n" +" Options:\n" +" -a\tdisplay all locations containing an executable named NAME;\n" +" \tincludes aliases, builtins, and functions, if and only if\n" +" \tthe `-p' option is not also used\n" +" -f\tsuppress shell function lookup\n" +" -P\tforce a PATH search for each NAME, even if it is an alias,\n" +" \tbuiltin, or function, and returns the name of the disk file\n" +" \tthat would be executed\n" +" -p\treturns either the name of the disk file that would be executed,\n" +" \tor nothing if `type -t NAME' would not return `file'.\n" +" -t\toutput a single word which is one of `alias', `keyword',\n" +" \t`function', `builtin', `file' or `', if NAME is an alias, shell\n" +" \treserved word, shell function, shell builtin, disk file, or not\n" +" \tfound, respectively\n" +" \n" +" Arguments:\n" +" NAME\tCommand name to be interpreted.\n" +" \n" +" Exit Status:\n" +" Returns success if all of the NAMEs are found; fails if any are not " +"found." +msgstr "" +"Hiển thị thông tin về kiểu câu lệnh.\n" +"\n" +"\tĐối với mỗi TÊN, ngụ ý nó sẽ được giải thích nhÆ° thế nào\n" +"\t\tnếu nó được dùng dưới dạng một tên câu lệnh.\n" +"\n" +"\tTùy chọn:\n" +"\t\t-a\thiển thị mọi vị trí chứa tập tin thá»±c thi được có TÊN;\n" +"\t\t\tkhông đặt tùy chọn « -p » thì cÅ©ng bao gồm\n" +"\t\t\tcác bí danh, dá»±ng sẵn và chức năng.\n" +"\t\t-f\tthu hồi tính năng dò tìm chức năng trình bao\n" +"\t\t-P\tép buộc tìm kiếm ĐƯỜNG_DẪN đối với mỗi TÊN,\n" +"\t\t\tthậm chí nếu nó là bí danh, dá»±ng sẵn hay chức năng,\n" +"\t\t\tvà trả lại tên của tập tin trên đĩa mà sẽ được thá»±c thi\n" +"\t\t-p\ttrả lại hoặc tên của tập tin trên đĩa mà sẽ được thá»±c thi,\n" +"\t\t\thoặc không trả lại gì nếu câu lệnh « type -t TÊN »\n" +"\t\t\tsẽ không trả lại « file » (tập tin).\n" +"\t\t-t\txuất một từ riêng lẻ mà một của:\n" +"\t\t\t• alias\tbí danh\n" +"\t\t\t• keyword\ttừ dành riêng của trình bao\n" +"\t\t\t• function\tchức năng của trình bao\n" +"\t\t\t• builtin\tdá»±ng sẵn của trình bao\n" +"\t\t\t• file\ttập tin trên đĩa\n" +"\t\t\t• \t\t(không gì) không tìm thấy\n" +"\n" +"\tĐối số :\n" +"\tTÊN\ttên câu lệnh cần giải thích.\n" +"\n" +"\tTráng thái thoát:\n" +"\tTrả lại thành công nếu tìm thấy tất cả các TÊN; không thì bị lỗi." + +#: builtins.c:1376 +msgid "" +"Modify shell resource limits.\n" +" \n" +" Provides control over the resources available to the shell and " +"processes\n" +" it creates, on systems that allow such control.\n" +" \n" +" Options:\n" +" -S\tuse the `soft' resource limit\n" +" -H\tuse the `hard' resource limit\n" +" -a\tall current limits are reported\n" +" -b\tthe socket buffer size\n" +" -c\tthe maximum size of core files created\n" +" -d\tthe maximum size of a process's data segment\n" +" -e\tthe maximum scheduling priority (`nice')\n" +" -f\tthe maximum size of files written by the shell and its children\n" +" -i\tthe maximum number of pending signals\n" +" -l\tthe maximum size a process may lock into memory\n" +" -m\tthe maximum resident set size\n" +" -n\tthe maximum number of open file descriptors\n" +" -p\tthe pipe buffer size\n" +" -q\tthe maximum number of bytes in POSIX message queues\n" +" -r\tthe maximum real-time scheduling priority\n" +" -s\tthe maximum stack size\n" +" -t\tthe maximum amount of cpu time in seconds\n" +" -u\tthe maximum number of user processes\n" +" -v\tthe size of virtual memory\n" +" -x\tthe maximum number of file locks\n" +" \n" +" If LIMIT is given, it is the new value of the specified resource; the\n" +" special LIMIT values `soft', `hard', and `unlimited' stand for the\n" +" current soft limit, the current hard limit, and no limit, respectively.\n" +" Otherwise, the current value of the specified resource is printed. If\n" +" no option is given, then -f is assumed.\n" +" \n" +" Values are in 1024-byte increments, except for -t, which is in seconds,\n" +" -p, which is in increments of 512 bytes, and -u, which is an unscaled\n" +" number of processes.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" +"Sá»­a đổi các giới hạn tài nguyên trình bao.\n" +"\n" +"\tCung cấp điều khiển với các tài nguyên sẵn sàng\n" +"\tcho trình bao và các tiến trình được nó tạo,\n" +"\ttrên hệ thống cho phép điều khiển nhÆ° vậy.\n" +"\n" +"\tTùy chọn:\n" +"\t\t-S\tdùng giới hạn tài nguyên « soft » (mềm)\n" +"\t\t-H\tdùng giới hạn tài nguyên « hard » (cứng)\n" +"\t\t-a\tthông báo mọi giới hạn hiện thời\n" +"\t\t-b\tkích cỡ của vùng đệm ổ cắm\n" +"\t\t-c\tkích cỡ tối đa của tập tin lõi được tạo\n" +"\t\t-d\tkích cỡ tối đa của từng đoạn dữ liệu của một tiến trình\n" +"\t\t-e\tmức Æ°u tiên cao nhất khi định thời (« nice »)\n" +"\t\t-f\tkích cỡ tối đa của của tập tin được ghi bởi trình bao\n" +"\t\t\tvà các tiến trình con của nó\n" +"\t\t-i\tsố tối đa các tín hiệu bị hoãn\n" +"\t\t-l\tkích cỡ tối đa mà một tiến trình có thể khoá vào bộ nhớ\n" +"\t\t-m\tkích cỡ tối đa của tập hợp nội trú\n" +"\t\t-n\tsố tối đa các bộ mô tả tập tin còn mở\n" +"\t\t-p\tkích cỡ của vùng đệm ống dẫn\n" +"\t\t-q\tsố tối đa các byte trong hàng đợi thông điệp POSIX\n" +"\t\t-r\tmức Æ°u tiên cao nhất khi định thời thật\n" +"\t\t-s\tkích cỡ tối đa của đống\n" +"\t\t-t\tthời gian CPU lâu nhất, theo giây\n" +"\t\t-u\tsố tối đa các tiến trình của người dùng\n" +"\t\t-v\tkích cỡ của bộ nhớ ảo\n" +"\t\tsố tối đa các khoá tập tin\n" +"\n" +"\tNếu đưa ra GIỚI_HẠN thì nó là giá trị mới của tài nguyên được ghi rõ ;\n" +"\tcÅ©ng có ba giá trị GIỚI_HẠN đặc biệt:\n" +"\t\t• soft\tgiới hạn mềm hiện thời\n" +"\t\t• hard\tgiới hạn cứng hiện thời\n" +"\t\t• unlimited\tvô hạn\n" +"\tKhông thì in ra giá trị hiện thời của tài nguyên được ghi rõ.\n" +"\tKhông đưa ra tùy chọn thì giả sá»­ « -f ».\n" +"\n" +"\tGiá trị được ghi rõ theo bước 1024-byte, trừ :\n" +"\t\t• -t\ttheo giây\n" +"\t\t• -p\ttheo bước 512-byte\n" +"\t\t• -u\tsố các tiến trình không theo tá»· lệ\n" +"\n" +"\tTrạng thái thoát:\n" +"\tTrả lại thành công nếu không đưa ra tùy chọn sai hay gặp lỗi." + +#: builtins.c:1421 +msgid "" +"Display or set file mode mask.\n" +" \n" +" Sets the user file-creation mask to MODE. If MODE is omitted, prints\n" +" the current value of the mask.\n" +" \n" +" If MODE begins with a digit, it is interpreted as an octal number;\n" +" otherwise it is a symbolic mode string like that accepted by chmod(1).\n" +" \n" +" Options:\n" +" -p\tif MODE is omitted, output in a form that may be reused as input\n" +" -S\tmakes the output symbolic; otherwise an octal number is output\n" +" \n" +" Exit Status:\n" +" Returns success unless MODE is invalid or an invalid option is given." +msgstr "" +"Hiển thị hoặc đặt mặt nạ chế độ tập tin.\n" +"\n" +"\tĐặt mặt nạ (bộ lọc) tạo tập tin của người dùng thành CHẾ_ĐỘ.\n" +"\t\tKhông đưa ra CHẾ_ĐỘ thì in ra giá trị hiện thời của mặt nạ.\n" +"\n" +"\tNếu CHẾ_ĐỘ bắt đầu với một chữ số, nó được đọc là một số bát phân;\n" +"\t\tkhông thì nó là một chuỗi chế độ tượng trÆ°ng\n" +"\t\tgiống nhÆ° chuỗi được chmod(1) chấp nhận.\n" +"\n" +"\tTùy chọn:\n" +"\t\t-p\tkhông đưa ra CHẾ_ĐỘ thì xuất theo một định dạng\n" +"\t\t\tcó thể được dùng lại làm dữ liệu nhập vào\n" +"\t\t-S\tlàm cho kết xuất cÅ©ng tượng trÆ°ng,\n" +"\t\t\tkhông thì xuất một số bát phân\n" +"\n" +"\tTráng thái thoát:\n" +"\tTrả lại thành công nếu không có CHẾ_ĐỘ sai hay tùy chọn sai." + +#: builtins.c:1441 +msgid "" +"Wait for job completion and return exit status.\n" +" \n" +" Waits for the process identified by ID, which may be a process ID or a\n" +" job specification, and reports its termination status. If ID is not\n" +" given, waits for all currently active child processes, and the return\n" +" status is zero. If ID is a a job specification, waits for all " +"processes\n" +" in the job's pipeline.\n" +" \n" +" Exit Status:\n" +" Returns the status of ID; fails if ID is invalid or an invalid option " +"is\n" +" given." +msgstr "" +"Đợi công việc chạy xong, sau đó trả lại trạng thái thoát.\n" +"\n" +"\tĐợi tiến trình được ID nhận diện, mà có thể là một mã số tiến trình\n" +"\t\thay một đặc tả công việc, sau đó trả lại trạng thái chấm dứt của nó.\n" +"\t\tKhông đưa ra ID thì đợi tất cả các tiến trình con đang chạy,\n" +"\t\tvà trạng thái trả lại là số không.\n" +"\t\tNếu ID là một đặc tả công việc thì đợi tất cả các tiến trình\n" +"\t\tvẫn nằm trong ống dẫn của công việc đó.\n" +"\n" +"\tTráng thái thoát:\n" +"\tTrả lại trạng thái của ID; không thành công nếu ID sai\n" +"\t\thoặc đưa ra tùy chọn sai." + +#: builtins.c:1459 +msgid "" +"Wait for process completion and return exit status.\n" +" \n" +" Waits for the specified process and reports its termination status. If\n" +" PID is not given, all currently active child processes are waited for,\n" +" and the return code is zero. PID must be a process ID.\n" +" \n" +" Exit Status:\n" +" Returns the status of ID; fails if ID is invalid or an invalid option " +"is\n" +" given." +msgstr "" +"Đợi tiến trình chạy xong, sau đó thông báo trạng thái thoát của nó.\n" +"\n" +"\tĐợi tiến trình đã ghi rõ,\n" +"\tsau đó thông báo trạng thái chấm dứt của nó.\n" +"\tNếu không đưa ra PID (mã số tiến trình)\n" +"\tthì đợi tất cả các tiến trình con đang chạy,\n" +"\tvà mã trả lại là số không.\n" +"\tPID phải là một mã số tiến trình.\n" +"\n" +"\tTrạng thái thoát:\n" +"\tTrả lại trạng thái của ID (mã số);\n" +"\tkhông thành công nếu ID sai,\n" +"\thoặc nếu đưa ra tùy chọn sai." + +#: builtins.c:1474 +msgid "" +"Execute commands for each member in a list.\n" +" \n" +" The `for' loop executes a sequence of commands for each member in a\n" +" list of items. If `in WORDS ...;' is not present, then `in \"$@\"' is\n" +" assumed. For each element in WORDS, NAME is set to that element, and\n" +" the COMMANDS are executed.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"Thá»±c thi câu lệnh cho mỗi bộ phận trong một danh sách.\n" +"\n" +"\tVòng lặp « for » (cho) thì thá»±c thi câu lệnh\n" +"\tcho mỗi bộ phận trong một danh sách các mục.\n" +"\tKhông đưa ra « in CÁC_TỪ ... » thì giả sá»­ « in \"$@\" ».\n" +"\tĐối với mỗi phần tá»­ trong CÁC_TỪ,\n" +"\tTÊN được đặt thành phần tá»­ đó,\n" +"\tvà các câu LỆNH được thá»±c thi.\n" +"\n" +"\tTrạng thái thoát:\n" +"\tTrả lại trạng thái của câu lệnh cuối cùng được chạy." + +#: builtins.c:1488 +msgid "" +"Arithmetic for loop.\n" +" \n" +" Equivalent to\n" +" \t(( EXP1 ))\n" +" \twhile (( EXP2 )); do\n" +" \t\tCOMMANDS\n" +" \t\t(( EXP3 ))\n" +" \tdone\n" +" EXP1, EXP2, and EXP3 are arithmetic expressions. If any expression is\n" +" omitted, it behaves as if it evaluates to 1.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"Số học cho vòng lặp.\n" +"\n" +"\tTÆ°Æ¡ng đương với:\n" +" \t(( EXP1 ))\n" +" \twhile (( EXP2 )); do\n" +" \t\tCOMMANDS\n" +" \t\t(( EXP3 ))\n" +" \tdone\n" +"EXP1, EXP2, EXP3 là biểu thức số học.\n" +"Bỏ sót biểu thức nào thì ứng xá»­ nhÆ° nó tính là 1.\n" +"\tTrạng thái thoát:\n" +"\tTrả lại trạng thái của câu lệnh cuối cùng được chạy." + +#: builtins.c:1506 +msgid "" +"Select words from a list and execute commands.\n" +" \n" +" The WORDS are expanded, generating a list of words. The\n" +" set of expanded words is printed on the standard error, each\n" +" preceded by a number. If `in WORDS' is not present, `in \"$@\"'\n" +" is assumed. The PS3 prompt is then displayed and a line read\n" +" from the standard input. If the line consists of the number\n" +" corresponding to one of the displayed words, then NAME is set\n" +" to that word. If the line is empty, WORDS and the prompt are\n" +" redisplayed. If EOF is read, the command completes. Any other\n" +" value read causes NAME to be set to null. The line read is saved\n" +" in the variable REPLY. COMMANDS are executed after each selection\n" +" until a break command is executed.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"Chọn từ trong một danh sách, và thá»±c thi câu lệnh.\n" +"\n" +"WORDS được mở rộng, mà tạo một danh sách các từ.\n" +"Tập hợp các từ đã mở rộng được in trên đầu lỗi tiêu chuẩn.\n" +"\tmỗi từ có con số đi trước.\n" +"Không có « in WORDS » thì giả sá»­ « in \"$@\" ».\n" +"Dấu nhắc PS3 thì được hiển thị, và một dòng được đọc\n" +"\ttừ đầu vào tiêu chuẩn.\n" +"Nếu dòng này là số tÆ°Æ¡ng ứng với một của những từ được hiển thị,\n" +"\tTÊN sẽ được đặt thành từ đó.\n" +"Dòng rỗng thì hiển thị lại WORDS và dấu nhắc.\n" +"Đọc kết thúc tập tin thì chạy xong câu lệnh đó.\n" +"Bất cứ giá trị khác nào được đọc sẽ gây ra TÊN được đặt thành vô giá trị.\n" +"Dòng được đọc sẽ được lÆ°u lại vào biến REPLY (trả lời).\n" +"Các CÂU_LỆNH được thá»±c hiện sau khi chọn mỗi đồ,\n" +"\tđến khi một lệnh gián đoạn được thá»±c hiện.\n" +"\n" +"\tTrạng thái thoát:\n" +"\tTrả lại trạng thái của câu lệnh cuối cùng được chạy." + +#: builtins.c:1527 +msgid "" +"Report time consumed by pipeline's execution.\n" +" \n" +" Execute PIPELINE and print a summary of the real time, user CPU time,\n" +" and system CPU time spent executing PIPELINE when it terminates.\n" +" \n" +" Options:\n" +" -p\tprint the timing summary in the portable Posix format\n" +" \n" +" The value of the TIMEFORMAT variable is used as the output format.\n" +" \n" +" Exit Status:\n" +" The return status is the return status of PIPELINE." +msgstr "" +"Thông báo thời gian được chiếm khi ống dẫn thá»±c thi.\n" +"\n" +"\tThá»±c thi PIPELINE (ống dẫn) và in ra bản tóm tắt thời gian thật,\n" +"\tthời gian CPU của người dùng, và thời gian CPU của hệ thống\n" +"\t00 chiếm khi thá»±c thi ống dẫn, khi ống dẫn chấm dứt.\n" +"\n" +"\tTùy chọn:\n" +"\t\t-p\tin ra bản tóm tắt đếm thời gian\n" +"\t\t\ttheo định dạng POSIX có thể mang theo\n" +"\n" +"\tGiá trị của biến TIMEFORMAT (định dạng thời gian)\n" +"\tđược dùng làm định dạng kết xuất.\n" +"\n" +"\tTrạng thái thoát:\n" +"\tTrạng thái trả lai là trạng thái trả lại của PIPELINE." + +#: builtins.c:1544 +msgid "" +"Execute commands based on pattern matching.\n" +" \n" +" Selectively execute COMMANDS based upon WORD matching PATTERN. The\n" +" `|' is used to separate multiple patterns.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"Thức thi câu lệnh dá»±a vào khớp mẫu.\n" +"\n" +"\tThá»±c thi các câu LỆNH một cách chọn lọc,\n" +"\tdá»±a vào TỪ tÆ°Æ¡ng ứng với MẪU.\n" +"\tNhiều mẫu định giới bằng « | ».\n" +"\n" +"\tTrạng thái thoát:\n" +"\tTrả lại trạng thái của câu lệnh cuối cùng được chạy." + +#: builtins.c:1556 +msgid "" +"Execute commands based on conditional.\n" +" \n" +" The `if COMMANDS' list is executed. If its exit status is zero, then " +"the\n" +" `then COMMANDS' list is executed. Otherwise, each `elif COMMANDS' list " +"is\n" +" executed in turn, and if its exit status is zero, the corresponding\n" +" `then COMMANDS' list is executed and the if command completes. " +"Otherwise,\n" +" the `else COMMANDS' list is executed, if present. The exit status of " +"the\n" +" entire construct is the exit status of the last command executed, or " +"zero\n" +" if no condition tested true.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"Thá»±c thi câu lệnh dá»±a vào điều kiện.\n" +"\n" +"\tDanh sách « if LỆNH » được thá»±c thi.\n" +"\tNếu trạng thái thoát của nó là số không,\n" +"\tthì danh sách « then LỆNH » được thá»±c thi.\n" +"\tKhông thì mỗi danh sách « elif LỆNH » được thá»±c thi lần lượt,\n" +"\tvà nếu trạng thái thoát của nó là số không,\n" +"\tthì danh sách « then LỆNH » tÆ°Æ¡ng ứng được thá»±c thi\n" +"\tvà câu lệnh « nếu » (if) sẽ chạy xong.\n" +"\tKhông thì danh sách « else LỆNH » được thá»±c thi, nếu có.\n" +"\tTrạng thái thoát của toàn bộ tạo dá»±ng\n" +"\tlà trạng thái của câu lệnh cuối cùng được chạy,\n" +"\thoặc số không nếu không có điều kiện có kết quả là Đúng.\n" +"\n" +"\tTrạng thái thoát:\n" +"\tTrả lại trạng thái của câu lệnh cuối cùng được chạy." + +#: builtins.c:1573 +msgid "" +"Execute commands as long as a test succeeds.\n" +" \n" +" Expand and execute COMMANDS as long as the final command in the\n" +" `while' COMMANDS has an exit status of zero.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"Thá»±c thi câu lệnh miễn là một phép thá»­ thành công.\n" +"\n" +"\tMở rộng và thá»±c thi các câu LỆNH miễn là câu lệnh cuối cùng\n" +"\ttrong những câu LỆNH « while » (trong khi)\n" +"\tcó trạng thái thoát là số không.\n" +"\n" +"\tTrạng thái thoát:\n" +"\tTrả lại trạng thái của câu lệnh cuối cùng được chạy." + +#: builtins.c:1585 +msgid "" +"Execute commands as long as a test does not succeed.\n" +" \n" +" Expand and execute COMMANDS as long as the final command in the\n" +" `until' COMMANDS has an exit status which is not zero.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"Thá»±c thi câu lệnh miễn là một phép thá»­ không thành công.\n" +"\n" +"\tMở rộng và thá»±c thi các câu LỆNH miễn là câu lệnh cuối cùng\n" +"\ttrong các câu LỆNH « until » (đến khi) có trạng thái thoát\n" +"\tkhác số không.\n" +"\n" +"\tTrạng thái thoát:\n" +"\tTrả lại trạng thái của câu lệnh cuối cùng được chạy." + +#: builtins.c:1597 +msgid "" +"Define shell function.\n" +" \n" +" Create a shell function named NAME. When invoked as a simple command,\n" +" NAME runs COMMANDs in the calling shell's context. When NAME is " +"invoked,\n" +" the arguments are passed to the function as $1...$n, and the function's\n" +" name is in $FUNCNAME.\n" +" \n" +" Exit Status:\n" +" Returns success unless NAME is readonly." +msgstr "" +"Xác định chức năng trình bao.\n" +"\n" +"\tTạo một chức năng trình bao có TÊN.\n" +"\tKhi được gọi dưới dạng một câu lệnh đơn giản,\n" +"\tTÊN chạy các câu LỆNH theo ngữ cảnh của trình bao đang gọi.\n" +"\tKhi TÊN được gọi, các đối số được gá»­i cho chức năng dưới dạng $1...$n,\n" +"\tvà tên chức năng nằm trong $FUNCNAME.\n" +"\n" +"\tTráng thái thoát:\n" +"\tTrả lại thành công nếu TÊN không phải chỉ đọc." + +#: builtins.c:1611 +msgid "" +"Group commands as a unit.\n" +" \n" +" Run a set of commands in a group. This is one way to redirect an\n" +" entire set of commands.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" +"Nhóm lại các câu lệnh làm cùng một đơn vị.\n" +"\n" +"\tChạy một tập hợp các câu lệnh trong cùng một nhóm.\n" +"\tĐây là một phÆ°Æ¡ng pháp chuyển hướng\n" +"\tmột tập hợp câu lệnh hoàn toàn.\n" +"\n" +"\tTrạng thái thoát:\n" +"\tTrả lại trạng thái của câu lệnh cuối cùng được chạy." + +#: builtins.c:1623 +msgid "" +"Resume job in foreground.\n" +" \n" +" Equivalent to the JOB_SPEC argument to the `fg' command. Resume a\n" +" stopped or background job. JOB_SPEC can specify either a job name\n" +" or a job number. Following JOB_SPEC with a `&' places the job in\n" +" the background, as if the job specification had been supplied as an\n" +" argument to `bg'.\n" +" \n" +" Exit Status:\n" +" Returns the status of the resumed job." +msgstr "" +"Tiếp tục lại công việc ở trước.\n" +"\n" +"\tTÆ°Æ¡ng đương với đối số ĐẶC_TẢ_CÔNG_VIỆC với câu lệnh « fg ».\n" +"\tTiếp tục lai một công việc bị dừng chạy hay chạy về nền.\n" +"\tĐẶC_TẢ_CÔNG_VIỆC có thể ghi rõ hoặc một tên công việc,\n" +"\thoặc một số thứ tá»± công việc.\n" +"\tĐặt một « & » theo sau ĐẶC_TẢ_CÔNG_VIỆC sẽ đặt công việc về nền,\n" +"\tnhÆ° là đặc tả công việc đã được cung cấp dưới dạng một đối số với « bg ».\n" +"\n" +"\tTrạng thái thoát:\n" +"\tTrả lại trạng thái của công việc đã tiếp tục lại." + +#: builtins.c:1638 +msgid "" +"Evaluate arithmetic expression.\n" +" \n" +" The EXPRESSION is evaluated according to the rules for arithmetic\n" +" evaluation. Equivalent to \"let EXPRESSION\".\n" +" \n" +" Exit Status:\n" +" Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise." +msgstr "" +"Định giá biểut thức số học.\n" +"\n" +"\tBIỂU_THỨC được tính tùy theo các quy tắc về định giá số học.\n" +"\tTÆ°Æ¡ng đương với « let BIỂU_THỨC ».\n" +"\n" +"\tTrạng thái thoát:\n" +"\tTrả lại 1 nếu BIỂU_THỨC tính là 0; không thì trả lại 0." + +#: builtins.c:1650 +msgid "" +"Execute conditional command.\n" +" \n" +" Returns a status of 0 or 1 depending on the evaluation of the " +"conditional\n" +" expression EXPRESSION. Expressions are composed of the same primaries " +"used\n" +" by the `test' builtin, and may be combined using the following " +"operators:\n" +" \n" +" ( EXPRESSION )\tReturns the value of EXPRESSION\n" +" ! EXPRESSION\t\tTrue if EXPRESSION is false; else false\n" +" EXPR1 && EXPR2\tTrue if both EXPR1 and EXPR2 are true; else false\n" +" EXPR1 || EXPR2\tTrue if either EXPR1 or EXPR2 is true; else false\n" +" \n" +" When the `==' and `!=' operators are used, the string to the right of\n" +" the operator is used as a pattern and pattern matching is performed.\n" +" When the `=~' operator is used, the string to the right of the operator\n" +" is matched as a regular expression.\n" +" \n" +" The && and || operators do not evaluate EXPR2 if EXPR1 is sufficient to\n" +" determine the expression's value.\n" +" \n" +" Exit Status:\n" +" 0 or 1 depending on value of EXPRESSION." +msgstr "" +"Thá»±c thi câu lệnh điều kiện.\n" +"\n" +"Trả về trạng thái 0 hoặc 1, phụ thuộc vào phép tính\n" +"\tbiểu thức điều kiện BIỂU_THỨC.\n" +"Biểu thức chứa cùng những nguyên sÆ¡ được dùng bởi dá»±ng sẵn « test »,\n" +"\tvà có thể được tổ hợp dùng các toán tá»­ theo đây:\n" +" \n" +" \t( BIỂU_THỨC )\tTrả về giá trị của BIỂU_THỨC\n" +" \t! BIỂU_THỨC\tĐúng nếu BIỂU_THỨC là không đúng; không thì sai\n" +" \tB_THỨC1 && B_THỨC2\n" +"\tĐúng nếu cả hai B_THỨC1 và B_THỨC2 đều là đúng; không thì sai\n" +" \tB_THỨC1 || B_THỨC2\n" +"\tĐúng nếu một của B_THỨC1 và B_THỨC2 là đúng; không thì sai\n" +" \n" +"Khi dùng toán từ « == » và « != », chuỗi bên phải toán tá»­ được dùng làm mẫu,\n" +"\tvà thá»±c hiện chức năng khớp mẫu.\n" +"Toán tá»­ « && » và « || » không tính B_THỨC2 nếu B_THỨC1 là đủ\n" +"\tđể tính giá trị của biểu thức.\n" +"\n" +"\tTrạng thái thoát:\n" +"\t0 hay 1 phụ thuộc vào giá trị của BIỂU_THỨC." + +#: builtins.c:1676 +msgid "" +"Common shell variable names and usage.\n" +" \n" +" BASH_VERSION\tVersion information for this Bash.\n" +" CDPATH\tA colon-separated list of directories to search\n" +" \t\tfor directories given as arguments to `cd'.\n" +" GLOBIGNORE\tA colon-separated list of patterns describing filenames to\n" +" \t\tbe ignored by pathname expansion.\n" +" HISTFILE\tThe name of the file where your command history is stored.\n" +" HISTFILESIZE\tThe maximum number of lines this file can contain.\n" +" HISTSIZE\tThe maximum number of history lines that a running\n" +" \t\tshell can access.\n" +" HOME\tThe complete pathname to your login directory.\n" +" HOSTNAME\tThe name of the current host.\n" +" HOSTTYPE\tThe type of CPU this version of Bash is running under.\n" +" IGNOREEOF\tControls the action of the shell on receipt of an EOF\n" +" \t\tcharacter as the sole input. If set, then the value\n" +" \t\tof it is the number of EOF characters that can be seen\n" +" \t\tin a row on an empty line before the shell will exit\n" +" \t\t(default 10). When unset, EOF signifies the end of input.\n" +" MACHTYPE\tA string describing the current system Bash is running on.\n" +" MAILCHECK\tHow often, in seconds, Bash checks for new mail.\n" +" MAILPATH\tA colon-separated list of filenames which Bash checks\n" +" \t\tfor new mail.\n" +" OSTYPE\tThe version of Unix this version of Bash is running on.\n" +" PATH\tA colon-separated list of directories to search when\n" +" \t\tlooking for commands.\n" +" PROMPT_COMMAND\tA command to be executed before the printing of each\n" +" \t\tprimary prompt.\n" +" PS1\t\tThe primary prompt string.\n" +" PS2\t\tThe secondary prompt string.\n" +" PWD\t\tThe full pathname of the current directory.\n" +" SHELLOPTS\tA colon-separated list of enabled shell options.\n" +" TERM\tThe name of the current terminal type.\n" +" TIMEFORMAT\tThe output format for timing statistics displayed by the\n" +" \t\t`time' reserved word.\n" +" auto_resume\tNon-null means a command word appearing on a line by\n" +" \t\titself is first looked for in the list of currently\n" +" \t\tstopped jobs. If found there, that job is foregrounded.\n" +" \t\tA value of `exact' means that the command word must\n" +" \t\texactly match a command in the list of stopped jobs. A\n" +" \t\tvalue of `substring' means that the command word must\n" +" \t\tmatch a substring of the job. Any other value means that\n" +" \t\tthe command must be a prefix of a stopped job.\n" +" histchars\tCharacters controlling history expansion and quick\n" +" \t\tsubstitution. The first character is the history\n" +" \t\tsubstitution character, usually `!'. The second is\n" +" \t\tthe `quick substitution' character, usually `^'. The\n" +" \t\tthird is the `history comment' character, usually `#'.\n" +" HISTIGNORE\tA colon-separated list of patterns used to decide which\n" +" \t\tcommands should be saved on the history list.\n" +msgstr "" +"Tên và sá»­ dụng của mỗi biến trình bao thường dùng.\n" +"\n" +"BASH_VERSION\tThông tin phiên bản về phần mềm Bash này.\n" +" CDPATH\tDanh sách các thÆ° mục định giới bằng dấu hai chấm,\n" +"\tqua đó cần tìm kiếm thÆ° mục được đưa ra dạng đối số với « cd ».\n" +" GLOBIGNORE\tDanh sách các mẫu định giới bằng dấu hai chấm,\n" +"\tmà diễn tả các tên tập tin cần bỏ qua khi mở rộng tên đường dẫn.\n" +" HISTFILE\tTên của tập tin chứa lịch sá»­ câu lệnh của bạn.\n" +" HISTFILESIZE\tSố tối đa các dòng có thể được tập tin này chứa.\n" +" HISTSIZE\tSố tối đa các dòng lịch sá»­ mà trình bao đang chạy có thể truy " +"cập.\n" +" HOME\tTên đường dẫn đầy đủ đến thÆ° mục đăng nhập của bạn.\n" +" HOSTNAME\tTên của máy chủ hiện thời của bạn.\n" +" HOSTTYPE\tKiểu CPU dưới đó phiên bản Bash này đang chạy.\n" +" IGNOREEOF\tĐiều khiển ứng xá»­ của trình bao khi nhận\n" +"\tký tá»± kết thúc tập tin (EOF) là dữ liệu nhập độc nhất.\n" +"\tĐặt thì giá trị của nó là số ký tá»± EOF có thể gặp liên tục\n" +"\ttrên một dòng rỗng trước khi trình bao sẽ thoát (mặc định là 10).\n" +"\tKhông đặt thì EOF sẽ cÅ©ng kết thúc nhập vào.\n" +" MACHTYPE\tMột chuỗi diễn tả hệ thống hiện thời trên đó Bash đang chạy.\n" +" MAILCHECK\tKhoảng thời gian, theo giây, giữa hai lần Bash kiểm tra\n" +"\tcó thÆ° mới chÆ°a.\n" +" MAILPATH\tDanh sách các tên tập tin định giới bằng dấu hai chấm\n" +"\ttrong đó Bash kiểm tra có thÆ° mới chÆ°a.\n" +" OSTYPE\tPhiên bản UNIX trên đó Bash này đang chạy.\n" +" PATH\tDanh sách các thÆ° mục định giới bằng dấu hai chấm,\n" +"\tqua đó cần tìm kiếm câu lệnh.\n" +" PROMPT_COMMAND\tMột câu lệnh cần thá»±c hiện trước khi in ra\n" +"\tmỗi chuỗi nhắc chính.\n" +" PS1\t\tChuỗi nhắc chính.\n" +" PS2\t\tChuỗi nhắc phụ.\n" +" PWD\t\tTên đường dẫn đầy đủ của thÆ° mục hiện tại.\n" +" SHELLOPTS\tDanh sách các tùy chọn trình bao đã hiệu lá»±c\n" +"\tđịnh giới bằng dấu hai chấm.\n" +" TERM\tTên của kiểu thiết bị cuối hiện thời.\n" +" TIMEFORMAT\tĐịnh dạng kết xuất cho thống kê đếm thời gian\n" +"\tđược hiển thị bởi từ dành riêng « time ».\n" +" auto_resume\tCó giá trị thì trước tiên tìm một từ lệnh xuất hiện một " +"mình\n" +"\ttrên một dòng, trong danh sách các công việc bị dừng chạy.\n" +"\tTìm được thì đặt công việc đó vào trước.\n" +"\tGiá trị « exact » (chính xác) có nghÄ©a là từ lệnh phải tÆ°Æ¡ng ứng\n" +"\tchính xác với một câu lệnh trong danh sách các công việc bị dừng chạy.\n" +"\tGiá trị « substring » (chuỗi phụ) có nghÄ©a là từ lệnh phải tÆ°Æ¡ng ứng\n" +"\tvới một chuỗi phụ của công việc đó.\n" +" histchars\tCác ký tá»± điều khiển mở rộng và thay thế nhanh lịch sá»­.\n" +"\tKý tá»± đầu tiên thường là ký tá»± thay thế lịch sá»­, thường là « ! ».\n" +"\tKý tá»± thứ hai là ký tá»± thay thế nhanh, thường là « ^ ».\n" +"\tKý tá»± thứ ba là ký tá»± ghi chú về lịch sá»­, thường là « # ».\n" +" HISTIGNORE\tDanh sách các mẫu định giới bằng dấu hai chấm,\n" +"\tđược ùng để quyết định những câu lệnh nào nên được lÆ°u\n" +"\tvào danh sách lịch sá»­.\n" + +#: builtins.c:1733 +msgid "" +"Add directories to stack.\n" +" \n" +" Adds a directory to the top of the directory stack, or rotates\n" +" the stack, making the new top of the stack the current working\n" +" directory. With no arguments, exchanges the top two directories.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when adding\n" +" \tdirectories to the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the left of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" -N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the right of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" dir\tAdds DIR to the directory stack at the top, making it the\n" +" \tnew current working directory.\n" +" \n" +" The `dirs' builtin displays the directory stack.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid argument is supplied or the directory\n" +" change fails." +msgstr "" +"Thêm thÆ° mục vào đống.\n" +"\n" +"Thêm một thÆ° mục vào đầu của đống thÆ° mục, hoặc xoay đống,\n" +"\tlàm cho thÆ° mục mới đầu đống là thÆ° mục làm việc hiện thời.\n" +"Không có đối số thì trao đổi hai thÆ° mục đầu.\n" +"\n" +"+N\tXoay đống để thÆ° mục thứ N (đếm từ bên trái danh sách\n" +"\tđược hiển thị bằng « dirs », bắt đầu từ số không) dời lên đầu.\n" +"\n" +"-N\tXoay đống để thÆ° mục thứ N (đếm từ bên phải danh sách\n" +"\tđược hiển thị bằng « dirs », bắt đầu từ số không) dời lên đầu.\n" +"\n" +"-n\tThu hồi chức năng chuyển đổi bình thường khi thêm thÆ° mục\n" +"\tvào đống, để thao tác chỉ đống.\n" +"\n" +"dir\tThêm T_MỤC vào đầu đống thÆ° mục, làm cho nó là thÆ° mục\n" +"\tlàm việc hiện thời mới.\n" +"\n" +"Dá»±ng sẵn « dirs » thì hiển thị đống thÆ° mục.\n" +"\n" +"\tTrạng thái thoát:\n" +"\tTrả lại thành công nếu không đưa ra đối số sai,\n" +"\tcÅ©ng không sai chuyển đổi thÆ° mục." + +#: builtins.c:1767 +msgid "" +"Remove directories from stack.\n" +" \n" +" Removes entries from the directory stack. With no arguments, removes\n" +" the top directory from the stack, and changes to the new top directory.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when removing\n" +" \tdirectories from the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRemoves the Nth entry counting from the left of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd +0'\n" +" \tremoves the first directory, `popd +1' the second.\n" +" \n" +" -N\tRemoves the Nth entry counting from the right of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd -0'\n" +" \tremoves the last directory, `popd -1' the next to last.\n" +" \n" +" The `dirs' builtin displays the directory stack.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid argument is supplied or the directory\n" +" change fails." +msgstr "" +"Gỡ bỏ thÆ° mục khỏi đống.\n" +"\n" +"Gỡ bỏ thÆ° mục khỏi đống thÆ° mục.\n" +"Không có đối số thì gỡ bỏ thÆ° mục đầu khỏi đống,\n" +"\tvà cd (chuyển đổi thÆ° mục) sang thÆ° mục đầu mới.\n" +"\n" +"+N\tGỡ bỏ thÆ° mục thứ N (đếm từ bên trái danh sách\n" +"\tđược hiển thị bằng « dirs », bắt đầu từ số không).\n" +"\tVí dụ :\n" +"\t\tpopd +0\t\tgỡ bỏ thÆ° mục cuối cùng\n" +"\t\tpopd +1\t\tgỡ bỏ thÆ° mục thứ hai.\n" +"\n" +"-N\tGỡ bỏ thÆ° mục thứ N (đếm từ bên phải danh sách\n" +"\tđược hiển thị bằng « dirs », bắt đầu từ số không).\n" +"\tVí dụ :\n" +"\t\tpopd -0\t\tgỡ bỏ thÆ° mục cuối cùng\n" +"\t\tpopd -1\t\tgỡ bỏ thÆ° mục giáp cuối.\n" +"\n" +"-n\tThu hồi chức năng chuyển đổi bình thường khi gỡ bỏ thÆ° mục\n" +"\tkhỏi đống, để thao tác chỉ đống.\n" +"\n" +"Dá»±ng sẵn « dirs » thì hiển thị đống thÆ° mục.\n" +"\n" +"\tTrạng thái thoát:\n" +"\tTrả lại thành công nếu không đưa ra đối số sai,\n" +"\tcÅ©ng không sai chuyển đổi thÆ° mục." + +#: builtins.c:1797 +msgid "" +"Display directory stack.\n" +" \n" +" Display the list of currently remembered directories. Directories\n" +" find their way onto the list with the `pushd' command; you can get\n" +" back up through the list with the `popd' command.\n" +" \n" +" Options:\n" +" -c\tclear the directory stack by deleting all of the elements\n" +" -l\tdo not print tilde-prefixed versions of directories relative\n" +" \tto your home directory\n" +" -p\tprint the directory stack with one entry per line\n" +" -v\tprint the directory stack with one entry per line prefixed\n" +" \twith its position in the stack\n" +" \n" +" Arguments:\n" +" +N\tDisplays the Nth entry counting from the left of the list shown " +"by\n" +" \tdirs when invoked without options, starting with zero.\n" +" \n" +" -N\tDisplays the Nth entry counting from the right of the list shown " +"by\n" +" \tdirs when invoked without options, starting with zero.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" +"Hiển thị đống thÆ° mục.\n" +"\n" +"\tHiển thị danh sách các thÆ° mục được nhớ hiện thời.\n" +"\tCâu lệnh « pushd » sẽ thêm thÆ° mục vào danh sách;\n" +"\tcâu lệnh « popd » cÅ©ng nâng thÆ° mục lên danh sách.\n" +"\n" +"\tTùy chọn:\n" +"\t\t-c\tgột đống thÆ° mục bằng cách xoá mọi phần tá»­\n" +"\t\t₫l\tđừng in a phiên bản thÆ° mục có dấu ngã\n" +"\t\t\t(tÆ°Æ¡ng đối so với thÆ° mục chính của người dùng)\n" +"\t\t-p\tin ra đống thÆ° mục, mỗi dòng một mục\n" +"\t\t-v\tin ra đống thÆ° mục, mỗi dòng một mục,\n" +"\t\t\tvới tiền tố là vị trí trong đống\n" +"\n" +"\tĐối số :\n" +"\t\t+N\thiển thị mục thứ N bắt đầu từ bên trái danh sách\n" +"\t\t\tđược hiển thị bằng « dirs »\n" +"\t\t\tkhi được gọi mà không đưa ra tùy chọn,\n" +"\t\t\tbắt đầu từ số không.\n" +"\n" +"\t\t-N\thiển thị mục thứ N bắt đầu từ bên phải danh sách\n" +"\t\t\tđược hiển thị bằng « dirs »\n" +"\t\t\tkhi được gọi mà không đưa ra tùy chọn,\n" +"\t\t\tbắt đầu từ số không.\n" +"\n" +"\tTrạng thái thoát:\n" +"\tTrả lại thành công nếu không đưa ra tùy chọn sai hay gặp lỗi." + +#: builtins.c:1826 +msgid "" +"Set and unset shell options.\n" +" \n" +" Change the setting of each shell option OPTNAME. Without any option\n" +" arguments, list all shell options with an indication of whether or not " +"each\n" +" is set.\n" +" \n" +" Options:\n" +" -o\trestrict OPTNAMEs to those defined for use with `set -o'\n" +" -p\tprint each shell option with an indication of its status\n" +" -q\tsuppress output\n" +" -s\tenable (set) each OPTNAME\n" +" -u\tdisable (unset) each OPTNAME\n" +" \n" +" Exit Status:\n" +" Returns success if OPTNAME is enabled; fails if an invalid option is\n" +" given or OPTNAME is disabled." +msgstr "" +"Đặt và bỏ đặt các tùy chọn trình bao.\n" +"\n" +"\tThay đổi thiết lập của mỗi tùy chọn trình bao có TÊN_TÙY_CHỌN.\n" +"\tKhông có đối số tùy chọn thì liệt kê tất cả các tùy chọn trình bao,\n" +"\tcÅ©ng ngụ ý mỗi tùy chọn được đặt hay không.\n" +"\n" +"\tTùy chọn:\n" +"\t\t-o\thạn chế TÊN_TÙY_CHỌN thành những tên được xác định\n" +"\t\tđể sá»­ dụng với « set -o »\n" +"\t\t-p\tin ra mỗi tùy chọn trình bao, cÅ©ng ngụ ý trạng thái của nó\n" +"\t\t-q\tthu hồi kết xuất\n" +"\t\t-u\ttắt (bỏ đặt) mỗi TÊN_TÙY_CHỌN\n" +"\n" +"\tTrạng thái thoát:\n" +"\tTrả lại thành công nếu TÊN_TÙY_CHỌN được bật;\n" +"\tkhông thành công nếu đưa ra tùy chọn sai hay TÊN_TÙY_CHỌN bị tắt." + +#: builtins.c:1847 +msgid "" +"Formats and prints ARGUMENTS under control of the FORMAT.\n" +" \n" +" Options:\n" +" -v var\tassign the output to shell variable VAR rather than\n" +" \t\tdisplay it on the standard output\n" +" \n" +" FORMAT is a character string which contains three types of objects: " +"plain\n" +" characters, which are simply copied to standard output; character " +"escape\n" +" sequences, which are converted and copied to the standard output; and\n" +" format specifications, each of which causes printing of the next " +"successive\n" +" argument.\n" +" \n" +" In addition to the standard format specifications described in printf" +"(1)\n" +" and printf(3), printf interprets:\n" +" \n" +" %b\texpand backslash escape sequences in the corresponding argument\n" +" %q\tquote the argument in a way that can be reused as shell input\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or a write or " +"assignment\n" +" error occurs." +msgstr "" +"Định dạng và in ra các ĐỐI_SỐ tùy theo ĐỊNH_DẠNG.\n" +"\n" +"\tTùy chọn:\n" +"\t\t-v BIẾN\tgán kết xuất cho biến trình bao này,\n" +"\t\t\thÆ¡n là hiển thị nó trên đầu ra tiêu chuẩn\n" +"\n" +"\tĐỊNH_DẠNG là một chuỗi ký tá»± mà chứa ba kiểu đối tượng:\n" +"\t\t• ký tá»± bình thường\tđược sao chép sang đầu ra tiêu chuẩn\n" +"\t\t• dãy ký tá»± thoát\t00 chuyển đổi và sao chép sang đầu ra tiêu chuẩn\n" +"\t\tđặc tả định dạng\tmỗi đặc tả gây ra in đối số kế tiếp.\n" +"\n" +"\tThêm vào đặc tả định dạng tiêu chuẩn được diễn tả\n" +"\ttrong printf(1) và printf(3), printf đọc được:\n" +"\n" +"\t\t%b\tmở rộng dãy thoát kiểu gạch chéo ngược trong đối số tÆ°Æ¡ng ứng\n" +"\t\t%q\ttrích dẫn đối số bằng một cách có thể dùng lại được\n" +"\t\t\tlàm dữ liệu nhập vào trình bao\n" +"\n" +"\tTrạng thái thoát:\n" +"\tTrả lại thành công nếu không đưa ra tùy chọn sai hay gặp lỗi kiểu ghi hay " +"gán." + +#: builtins.c:1874 +msgid "" +"Specify how arguments are to be completed by Readline.\n" +" \n" +" For each NAME, specify how arguments are to be completed. If no " +"options\n" +" are supplied, existing completion specifications are printed in a way " +"that\n" +" allows them to be reused as input.\n" +" \n" +" Options:\n" +" -p\tprint existing completion specifications in a reusable format\n" +" -r\tremove a completion specification for each NAME, or, if no\n" +" \tNAMEs are supplied, all completion specifications\n" +" \n" +" When completion is attempted, the actions are applied in the order the\n" +" uppercase-letter options are listed above.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" +"Ghi rõ Readline sẽ điền nốt các đối số nhÆ° thế nào.\n" +"\n" +"\tĐối với mỗi TÊN, ghi rõ các đối số sẽ được điền nốt nhÆ° thế nào.\n" +"\tKhông đưa ra tùy chọn thì in ra các đặc tả điền nốt\n" +"\tbằng một cách cho phép dùng lại đặc tả làm dữ liệu nhập vào.\n" +"\n" +"\tTùy chọn:\n" +"\t\t-p\tin ra các đặc tả điền nốt đã tồn tại theo một định dạng\n" +"\t\t\tcó thể dùng lại được\n" +"\t\t-r\tgỡ bỏ một đặc tả điền nốt cho mỗi TÊN,\n" +"\t\t\thoặc nếu không đưa ra TÊN thì gỡ bỏ tất cả các đặc tả điền nốt\n" +"\n" +"\tKhi chức năng điền nốt được thá»­, những hành động được làm\n" +"\t\ttheo thứ tá»± của những tùy chọn chữ hoa bên trên.\n" +"\n" +"\tTrạng thái thoát:\n" +"\tTrả lại thành công nếu không đưa ra tùy chọn sai hay gặp lỗi." + +#: builtins.c:1897 +msgid "" +"Display possible completions depending on the options.\n" +" \n" +" Intended to be used from within a shell function generating possible\n" +" completions. If the optional WORD argument is supplied, matches " +"against\n" +" WORD are generated.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" +"Hiển thị các việc điền nốt có thể làm, phụ thuộc vào những tùy chọn.\n" +"\n" +"\tDá»± định dùng từ bên trong một chức năng trình bao\n" +"\tmà tạo các việc điền nốt có thể làm.\n" +"\tNếu đưa ra đối số TỪ vẫn tùy chọn,\n" +"\tthì tạo các kết quả tÆ°Æ¡ng ứng với TỪ.\n" +"\n" +"\tTrạng thái thoát:\n" +"\tTrả lại thành công nếu không đưa ra tùy chọn sai hay gặp lỗi." + +#: builtins.c:1912 +msgid "" +"Modify or display completion options.\n" +" \n" +" Modify the completion options for each NAME, or, if no NAMEs are " +"supplied,\n" +" the completion currently begin executed. If no OPTIONs are givenm, " +"print\n" +" the completion options for each NAME or the current completion " +"specification.\n" +" \n" +" Options:\n" +" \t-o option\tSet completion option OPTION for each NAME\n" +" \n" +" Using `+o' instead of `-o' turns off the specified option.\n" +" \n" +" Arguments:\n" +" \n" +" Each NAME refers to a command for which a completion specification must\n" +" have previously been defined using the `complete' builtin. If no NAMEs\n" +" are supplied, compopt must be called by a function currently generating\n" +" completions, and the options for that currently-executing completion\n" +" generator are modified.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or NAME does not\n" +" have a completion specification defined." +msgstr "" +"Sá»­a đổi hoặc hiển thị các tùy chọn điền nốt.\n" +"\n" +"\tSá»­a đổi các tùy chọn điền nốt đối với mỗi TÊN,\n" +"\thoặc nếu không đưa ra TÊN thì chức năng điền nốt đang chạy.\n" +"\tKhông đưa ra tùy chọn thì in ra các tùy chọn điền nốt\n" +"\tđối với mỗi TÊN hay đặc tả điền nốt hiện thời.\n" +"\n" +"\tTùy chọn\"\n" +"\t\t-o tùy_chọn\tđặt tùy chọn điền nốt này đối với mỗi TÊN\n" +"\n" +"\tDùng « +o » thay cho « -o » thì tắt tùy chọn đưa ra.\n" +"\n" +"\tĐối số :\n" +"\n" +"\tMỗi TÊN tham chiếu đến một câu lệnh cho đó một đặc tả điền nốt\n" +"\tphải được xác định trước dùng dá»±ng sẵn « complete ».\n" +"\tKhông đưa ra TÊN thì « compopt » phải được gọi\n" +"\tbởi một chức năng đang tạo việc điền nốt,\n" +"\tcác tùy chọn về hàm tạo việc điền nốt đang chạy cÅ©ng được sá»­a đổi.\n" +"\n" +"\tTrạng thái thoát:\n" +"\tTrả lại thành công nếu không đưa ra tùy chọn sai,\n" +"\tvà TÊN có một đặc tả điền nốt được xác định." + +#: builtins.c:1940 +#, fuzzy +msgid "" +"Read lines from a file into an array variable.\n" +" \n" +" Read lines from the standard input into the array variable ARRAY, or " +"from\n" +" file descriptor FD if the -u option is supplied. The variable MAPFILE " +"is\n" +" the default ARRAY.\n" +" \n" +" Options:\n" +" -n count\tCopy at most COUNT lines. If COUNT is 0, all lines are " +"copied.\n" +" -O origin\tBegin assigning to ARRAY at index ORIGIN. The default " +"index is 0.\n" +" -s count \tDiscard the first COUNT lines read.\n" +" -t\t\tRemove a trailing newline from each line read.\n" +" -u fd\t\tRead lines from file descriptor FD instead of the standard " +"input.\n" +" -C callback\tEvaluate CALLBACK each time QUANTUM lines are read.\n" +" -c quantum\tSpecify the number of lines read between each call to " +"CALLBACK.\n" +" \n" +" Arguments:\n" +" ARRAY\t\tArray variable name to use for file data.\n" +" \n" +" If -C is supplied without -c, the default quantum is 5000.\n" +" \n" +" If not supplied with an explicit origin, mapfile will clear ARRAY " +"before\n" +" assigning to it.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or ARRAY is readonly." +msgstr "" +"Đọc các dòng từ một tập tin vào một biến mảng.\n" +"\n" +"\tĐọc các dòng từ đầu vào tiêu chuẩn vào biến mảng MẢNG,\n" +"\thoặc từ bộ mô tả tập tin FD nếu đưa ra tùy chọn « -u ».\n" +"\tBiến TẬP_TIN_SÆ _ĐỒ là MẢNG mặc định.\n" +"\n" +"\tTùy chọn:\n" +"\t\t-n SỐ\tsao chép nhiều nhất SỐ dòng. Nếu SỐ là 0 thì sao chép mọi dòng.\n" +"\t\t-O GỐC\tbắt đầu gán cho MẢNG ở chỉ mục GỐC. Chỉ mục mặc định là 0.\n" +"\t\t-s SỐ\thủy SỐ dòng đầu tiên được đọc.\n" +"\t\t-t\tgỡ bỏ một ký tá»± dòng mới theo sau khỏi mỗi dòng được đọc.\n" +"\t\t-u FD\tđọc các dòng từ bộ mô tả tập tin FD thay vào từ đầu vào tiêu " +"chuẩn.\n" +"\t\t-C GỌI_NGƯỢC\tđịnh giá GỌI_NGƯỢC mỗi lần đọc LƯỢNG dòng.\n" +"\t\t-c LƯỢNG\tghi rõ số các dòng được đọc giữa hai lần gọi GỌI_NGƯỢC.\n" +"\n" +"\tĐối số :\n" +"\tMẢNG\ttên biến mảg cần dùng cho dữ liệu tập tin.\n" +"\n" +"\tNếu đưa ra « -C » mà không có « -c » thì lượng mặc định là 5000.\n" +"\n" +"\tKhông đưa ra một GỐC dứt khoát thì mapfile (tập tin sÆ¡ đồ)\n" +"\t\tsẽ xoá sạch MẢNG trước khi gán cho nó.\n" +"\n" +"\tTráng thái thoát:\n" +"\tTrả lại thành công nếu không đưa ra tùy chọn sai và MẢNG không phải chỉ " +"đọc." diff --git a/po/zh_TW.gmo b/po/zh_TW.gmo new file mode 100644 index 0000000000000000000000000000000000000000..22e6a7f20d17f81299e44d9aa683fd3c13592c09 GIT binary patch literal 5993 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, 2008. +# +msgid "" +msgstr "" +"Project-Id-Version: bash-3.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2009-01-06 11:56-0500\n" +"PO-Revision-Date: 2008-08-20 20:12+0800\n" +"Last-Translator: Zi-You Dai \n" +"Language-Team: Chinese (traditional) \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: arrayfunc.c:50 +msgid "bad array subscript" +msgstr "" + +#: arrayfunc.c:313 builtins/declare.def:474 +#, c-format +msgid "%s: cannot convert indexed to associative array" +msgstr "" + +#: arrayfunc.c:479 +#, fuzzy, c-format +msgid "%s: invalid associative array key" +msgstr "%s:無效的功能名稱" + +#: arrayfunc.c:481 +#, c-format +msgid "%s: cannot assign to non-numeric index" +msgstr "" + +#: arrayfunc.c:517 +#, c-format +msgid "%s: %s: must use subscript when assigning associative array" +msgstr "" + +#: bashhist.c:380 +#, c-format +msgid "%s: cannot create: %s" +msgstr "" + +#: bashline.c:3413 +msgid "bash_execute_unix_command: cannot find keymap for command" +msgstr "" + +#: bashline.c:3491 +#, c-format +msgid "%s: first non-whitespace character is not `\"'" +msgstr "" + +#: bashline.c:3520 +#, c-format +msgid "no closing `%c' in %s" +msgstr "" + +#: bashline.c:3554 +#, c-format +msgid "%s: missing colon separator" +msgstr "" + +#: builtins/bind.def:120 builtins/bind.def:123 +msgid "line editing not enabled" +msgstr "" + +#: builtins/bind.def:206 +#, c-format +msgid "`%s': invalid keymap name" +msgstr "" + +#: builtins/bind.def:245 +#, c-format +msgid "%s: cannot read: %s" +msgstr "%s:不能讀取: %s" + +#: builtins/bind.def:260 +#, c-format +msgid "`%s': cannot unbind" +msgstr "" + +#: builtins/bind.def:295 builtins/bind.def:325 +#, c-format +msgid "`%s': unknown function name" +msgstr "`%s':未知函數名稱" + +#: builtins/bind.def:303 +#, c-format +msgid "%s is not bound to any keys.\n" +msgstr "" + +#: builtins/bind.def:307 +#, c-format +msgid "%s can be invoked via " +msgstr "" + +#: builtins/break.def:77 builtins/break.def:117 +msgid "loop count" +msgstr "" + +#: builtins/break.def:137 +msgid "only meaningful in a `for', `while', or `until' loop" +msgstr "" + +#: builtins/caller.def:133 +msgid "" +"Returns the context of the current subroutine call.\n" +" \n" +" Without EXPR, returns " +msgstr "" + +#: builtins/cd.def:215 +msgid "HOME not set" +msgstr "HOME 沒有設置" + +#: builtins/cd.def:227 +msgid "OLDPWD not set" +msgstr "OLDPWD 沒有設置" + +#: builtins/common.c:101 +#, c-format +msgid "line %d: " +msgstr "" + +#: builtins/common.c:139 error.c:260 +#, fuzzy, c-format +msgid "warning: " +msgstr "%s:警告:" + +#: builtins/common.c:153 +#, fuzzy, c-format +msgid "%s: usage: " +msgstr "%s:警告:" + +#: builtins/common.c:166 test.c:822 +msgid "too many arguments" +msgstr "太多引數" + +#: builtins/common.c:191 shell.c:493 shell.c:774 +#, c-format +msgid "%s: option requires an argument" +msgstr "%s:選項需要一個引數" + +#: builtins/common.c:198 +#, c-format +msgid "%s: numeric argument required" +msgstr "%s:數字引數必須" + +#: builtins/common.c:205 +#, c-format +msgid "%s: not found" +msgstr "%s:沒有找到" + +#: builtins/common.c:214 shell.c:787 +#, c-format +msgid "%s: invalid option" +msgstr "%s:無效選項" + +#: builtins/common.c:221 +#, c-format +msgid "%s: invalid option name" +msgstr "%s:無效選項名" + +#: builtins/common.c:228 general.c:231 general.c:236 +#, c-format +msgid "`%s': not a valid identifier" +msgstr "`%s':不是一個有效的識別符" + +#: builtins/common.c:238 +#, fuzzy +msgid "invalid octal number" +msgstr "無效信號數" + +#: builtins/common.c:240 +#, fuzzy +msgid "invalid hex number" +msgstr "%s:無效的號碼" + +#: builtins/common.c:242 expr.c:1255 +msgid "invalid number" +msgstr "" + +#: builtins/common.c:250 +#, c-format +msgid "%s: invalid signal specification" +msgstr "%s:無效的信號規格" + +#: builtins/common.c:257 +#, c-format +msgid "`%s': not a pid or valid job spec" +msgstr "`%s':不是一個 pid 或有效的工作規格" + +#: builtins/common.c:264 error.c:453 +#, c-format +msgid "%s: readonly variable" +msgstr "%s:只讀變數" + +#: builtins/common.c:272 +#, c-format +msgid "%s: %s out of range" +msgstr "%s:%s 超出範圍" + +#: builtins/common.c:272 builtins/common.c:274 +msgid "argument" +msgstr "引數" + +#: builtins/common.c:274 +#, c-format +msgid "%s out of range" +msgstr "%s 超出範圍" + +#: builtins/common.c:282 +#, c-format +msgid "%s: no such job" +msgstr "%s:沒有此類的工作" + +#: builtins/common.c:290 +#, c-format +msgid "%s: no job control" +msgstr "%s:沒有工作控制" + +#: builtins/common.c:292 +msgid "no job control" +msgstr "沒有工作控制" + +#: builtins/common.c:302 +#, c-format +msgid "%s: restricted" +msgstr "%s:有限的" + +#: builtins/common.c:304 +msgid "restricted" +msgstr "有限的" + +#: builtins/common.c:312 +#, c-format +msgid "%s: not a shell builtin" +msgstr "%s:不是一個內建 shell" + +#: builtins/common.c:321 +#, c-format +msgid "write error: %s" +msgstr "寫入錯誤: %s" + +#: builtins/common.c:553 +#, c-format +msgid "%s: error retrieving current directory: %s: %s\n" +msgstr "%s:錯誤檢索當前目錄: %s: %s\n" + +#: builtins/common.c:619 builtins/common.c:621 +#, c-format +msgid "%s: ambiguous job spec" +msgstr "%s:含糊的工作規格" + +#: builtins/complete.def:270 +#, c-format +msgid "%s: invalid action name" +msgstr "%s:無效的功能名稱" + +#: builtins/complete.def:430 builtins/complete.def:615 +#: builtins/complete.def:813 +#, c-format +msgid "%s: no completion specification" +msgstr "%s:沒有完成的規格" + +#: builtins/complete.def:667 +msgid "warning: -F option may not work as you expect" +msgstr "警告: -F 選項可能無法按預期工作" + +#: builtins/complete.def:669 +msgid "warning: -C option may not work as you expect" +msgstr "警告: -C 選項可能無法按預期工作" + +#: builtins/complete.def:786 +msgid "not currently executing completion function" +msgstr "" + +#: builtins/declare.def:122 +msgid "can only be used in a function" +msgstr "只能用在一個函數" + +#: builtins/declare.def:353 +msgid "cannot use `-f' to make functions" +msgstr "" + +#: builtins/declare.def:365 execute_cmd.c:4731 +#, c-format +msgid "%s: readonly function" +msgstr "%s:只讀函數" + +#: builtins/declare.def:461 +#, c-format +msgid "%s: cannot destroy array variables in this way" +msgstr "" + +#: builtins/declare.def:468 +#, c-format +msgid "%s: cannot convert associative to indexed array" +msgstr "" + +#: builtins/enable.def:137 builtins/enable.def:145 +msgid "dynamic loading not available" +msgstr "" + +#: builtins/enable.def:312 +#, c-format +msgid "cannot open shared object %s: %s" +msgstr "" + +#: builtins/enable.def:335 +#, c-format +msgid "cannot find %s in shared object %s: %s" +msgstr "" + +#: builtins/enable.def:459 +#, c-format +msgid "%s: not dynamically loaded" +msgstr "" + +#: builtins/enable.def:474 +#, c-format +msgid "%s: cannot delete: %s" +msgstr "" + +#: builtins/evalfile.c:134 builtins/hash.def:169 execute_cmd.c:4588 +#: shell.c:1439 +#, c-format +msgid "%s: is a directory" +msgstr "" + +#: builtins/evalfile.c:139 +#, c-format +msgid "%s: not a regular file" +msgstr "" + +#: builtins/evalfile.c:147 +#, c-format +msgid "%s: file is too large" +msgstr "" + +#: builtins/evalfile.c:185 execute_cmd.c:4658 shell.c:1449 +#, c-format +msgid "%s: cannot execute binary file" +msgstr "" + +#: builtins/exec.def:212 +#, c-format +msgid "%s: cannot execute: %s" +msgstr "" + +#: builtins/exit.def:65 +#, c-format +msgid "logout\n" +msgstr "" + +#: builtins/exit.def:88 +msgid "not login shell: use `exit'" +msgstr "" + +#: builtins/exit.def:120 +#, c-format +msgid "There are stopped jobs.\n" +msgstr "" + +#: builtins/exit.def:122 +#, c-format +msgid "There are running jobs.\n" +msgstr "" + +#: builtins/fc.def:261 +msgid "no command found" +msgstr "" + +#: builtins/fc.def:341 +msgid "history specification" +msgstr "" + +#: builtins/fc.def:362 +#, c-format +msgid "%s: cannot open temp file: %s" +msgstr "" + +#: builtins/fg_bg.def:149 builtins/jobs.def:282 +msgid "current" +msgstr "" + +#: builtins/fg_bg.def:158 +#, c-format +msgid "job %d started without job control" +msgstr "" + +#: builtins/getopt.c:110 +#, c-format +msgid "%s: illegal option -- %c\n" +msgstr "" + +#: builtins/getopt.c:111 +#, c-format +msgid "%s: option requires an argument -- %c\n" +msgstr "" + +#: builtins/hash.def:92 +msgid "hashing disabled" +msgstr "" + +#: builtins/hash.def:138 +#, c-format +msgid "%s: hash table empty\n" +msgstr "" + +#: builtins/hash.def:244 +#, fuzzy, c-format +msgid "hits\tcommand\n" +msgstr "最後的命令: %s\n" + +#: builtins/help.def:130 +#, c-format +msgid "Shell commands matching keyword `" +msgid_plural "Shell commands matching keywords `" +msgstr[0] "" + +#: builtins/help.def:168 +#, c-format +msgid "" +"no help topics match `%s'. Try `help help' or `man -k %s' or `info %s'." +msgstr "" + +#: builtins/help.def:185 +#, c-format +msgid "%s: cannot open: %s" +msgstr "" + +#: builtins/help.def:337 +#, c-format +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:154 +msgid "cannot use more than one of -anrw" +msgstr "" + +#: builtins/history.def:186 +msgid "history position" +msgstr "" + +#: builtins/history.def:365 +#, c-format +msgid "%s: history expansion failed" +msgstr "" + +#: builtins/inlib.def:71 +#, fuzzy, c-format +msgid "%s: inlib failed" +msgstr "%s:無效服務" + +#: builtins/jobs.def:109 +msgid "no other options allowed with `-x'" +msgstr "" + +#: builtins/kill.def:197 +#, c-format +msgid "%s: arguments must be process or job IDs" +msgstr "" + +#: builtins/kill.def:260 +msgid "Unknown error" +msgstr "" + +#: builtins/let.def:95 builtins/let.def:120 expr.c:501 expr.c:516 +msgid "expression expected" +msgstr "" + +#: builtins/mapfile.def:215 builtins/read.def:272 +#, c-format +msgid "%s: invalid file descriptor specification" +msgstr "" + +#: builtins/mapfile.def:223 builtins/read.def:279 +#, c-format +msgid "%d: invalid file descriptor: %s" +msgstr "" + +#: builtins/mapfile.def:232 builtins/mapfile.def:270 +#, fuzzy, c-format +msgid "%s: invalid line count" +msgstr "%s:無效選項" + +#: builtins/mapfile.def:243 +#, fuzzy, c-format +msgid "%s: invalid array origin" +msgstr "%s:無效選項" + +#: builtins/mapfile.def:260 +#, fuzzy, c-format +msgid "%s: invalid callback quantum" +msgstr "%s:無效的功能名稱" + +#: builtins/mapfile.def:292 +msgid "empty array variable name" +msgstr "" + +#: builtins/mapfile.def:313 +msgid "array variable support required" +msgstr "" + +#: builtins/printf.def:367 +#, c-format +msgid "`%s': missing format character" +msgstr "" + +#: builtins/printf.def:544 +#, c-format +msgid "`%c': invalid format character" +msgstr "" + +#: builtins/printf.def:571 +#, fuzzy, c-format +msgid "warning: %s: %s" +msgstr "%s:警告:" + +#: builtins/printf.def:750 +msgid "missing hex digit for \\x" +msgstr "" + +#: builtins/pushd.def:195 +msgid "no other directory" +msgstr "" + +#: builtins/pushd.def:462 +msgid "" +msgstr "" + +#: builtins/pushd.def:506 +msgid "directory stack empty" +msgstr "" + +#: builtins/pushd.def:508 +msgid "directory stack index" +msgstr "" + +#: builtins/pushd.def:683 +msgid "" +"Display the list of currently remembered directories. Directories\n" +" find their way onto the list with the `pushd' command; you can get\n" +" back up through the list with the `popd' command.\n" +" \n" +" Options:\n" +" -c\tclear the directory stack by deleting all of the elements\n" +" -l\tdo not print tilde-prefixed versions of directories relative\n" +" \tto your home directory\n" +" -p\tprint the directory stack with one entry per line\n" +" -v\tprint the directory stack with one entry per line prefixed\n" +" \twith its position in the stack\n" +" \n" +" Arguments:\n" +" +N\tDisplays the Nth entry counting from the left of the list shown " +"by\n" +" \tdirs when invoked without options, starting with zero.\n" +" \n" +" -N\tDisplays the Nth entry counting from the right of the list shown " +"by\n" +"\tdirs when invoked without options, starting with zero." +msgstr "" + +#: builtins/pushd.def:705 +msgid "" +"Adds a directory to the top of the directory stack, or rotates\n" +" the stack, making the new top of the stack the current working\n" +" directory. With no arguments, exchanges the top two directories.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when adding\n" +" \tdirectories to the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the left of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" -N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the right of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" dir\tAdds DIR to the directory stack at the top, making it the\n" +" \tnew current working directory.\n" +" \n" +" The `dirs' builtin displays the directory stack." +msgstr "" + +#: builtins/pushd.def:730 +msgid "" +"Removes entries from the directory stack. With no arguments, removes\n" +" the top directory from the stack, and changes to the new top directory.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when removing\n" +" \tdirectories from the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRemoves the Nth entry counting from the left of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd +0'\n" +" \tremoves the first directory, `popd +1' the second.\n" +" \n" +" -N\tRemoves the Nth entry counting from the right of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd -0'\n" +" \tremoves the last directory, `popd -1' the next to last.\n" +" \n" +" The `dirs' builtin displays the directory stack." +msgstr "" + +#: builtins/read.def:248 +#, c-format +msgid "%s: invalid timeout specification" +msgstr "" + +#: builtins/read.def:574 +#, c-format +msgid "read error: %d: %s" +msgstr "" + +#: builtins/return.def:73 +msgid "can only `return' from a function or sourced script" +msgstr "" + +#: builtins/set.def:768 +msgid "cannot simultaneously unset a function and a variable" +msgstr "" + +#: builtins/set.def:805 +#, c-format +msgid "%s: cannot unset" +msgstr "" + +#: builtins/set.def:812 +#, c-format +msgid "%s: cannot unset: readonly %s" +msgstr "" + +#: builtins/set.def:823 +#, c-format +msgid "%s: not an array variable" +msgstr "" + +#: builtins/setattr.def:186 +#, c-format +msgid "%s: not a function" +msgstr "" + +#: builtins/shift.def:71 builtins/shift.def:77 +msgid "shift count" +msgstr "" + +#: builtins/shopt.def:254 +msgid "cannot set and unset shell options simultaneously" +msgstr "" + +#: builtins/shopt.def:319 +#, c-format +msgid "%s: invalid shell option name" +msgstr "" + +#: builtins/source.def:128 +msgid "filename argument required" +msgstr "" + +#: builtins/source.def:153 +#, c-format +msgid "%s: file not found" +msgstr "" + +#: builtins/suspend.def:101 +msgid "cannot suspend" +msgstr "" + +#: builtins/suspend.def:111 +msgid "cannot suspend a login shell" +msgstr "" + +#: builtins/type.def:234 +#, c-format +msgid "%s is aliased to `%s'\n" +msgstr "" + +#: builtins/type.def:255 +#, c-format +msgid "%s is a shell keyword\n" +msgstr "" + +#: builtins/type.def:274 +#, 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:391 +#, c-format +msgid "%s is %s\n" +msgstr "" + +#: builtins/type.def:337 +#, c-format +msgid "%s is hashed (%s)\n" +msgstr "" + +#: builtins/ulimit.def:372 +#, c-format +msgid "%s: invalid limit argument" +msgstr "" + +#: builtins/ulimit.def:398 +#, c-format +msgid "`%c': bad command" +msgstr "`%c':壞的命令" + +#: builtins/ulimit.def:427 +#, c-format +msgid "%s: cannot get limit: %s" +msgstr "%s:不能得到 limit: %s" + +#: builtins/ulimit.def:453 +msgid "limit" +msgstr "" + +#: builtins/ulimit.def:465 builtins/ulimit.def:765 +#, c-format +msgid "%s: cannot modify limit: %s" +msgstr "%s:不能修改 limit: %s" + +#: builtins/umask.def:118 +msgid "octal number" +msgstr "八進制數" + +#: builtins/umask.def:231 +#, c-format +msgid "`%c': invalid symbolic mode operator" +msgstr "" + +#: builtins/umask.def:286 +#, c-format +msgid "`%c': invalid symbolic mode character" +msgstr "" + +#: error.c:89 error.c:320 error.c:322 error.c:324 +msgid " line " +msgstr "" + +#: error.c:164 +#, c-format +msgid "last command: %s\n" +msgstr "最後的命令: %s\n" + +#: error.c:172 +#, c-format +msgid "Aborting..." +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:181 +#, c-format +msgid "\atimed out waiting for input: auto-logout\n" +msgstr "" + +#: execute_cmd.c:491 +#, c-format +msgid "cannot redirect standard input from /dev/null: %s" +msgstr "" + +#: execute_cmd.c:1091 +#, c-format +msgid "TIMEFORMAT: `%c': invalid format character" +msgstr "" + +#: execute_cmd.c:1942 +#, fuzzy +msgid "pipe error" +msgstr "寫入錯誤: %s" + +#: execute_cmd.c:4276 +#, c-format +msgid "%s: restricted: cannot specify `/' in command names" +msgstr "" + +#: execute_cmd.c:4367 +#, c-format +msgid "%s: command not found" +msgstr "%s:命令找不到" + +#: execute_cmd.c:4621 +#, c-format +msgid "%s: %s: bad interpreter" +msgstr "" + +#: execute_cmd.c:4770 +#, c-format +msgid "cannot duplicate fd %d to fd %d" +msgstr "" + +#: expr.c:241 +msgid "expression recursion level exceeded" +msgstr "" + +#: expr.c:265 +msgid "recursion stack underflow" +msgstr "" + +#: expr.c:379 +msgid "syntax error in expression" +msgstr "表達語法錯誤" + +#: expr.c:419 +msgid "attempted assignment to non-variable" +msgstr "" + +#: expr.c:440 expr.c:445 expr.c:756 +msgid "division by 0" +msgstr "" + +#: expr.c:471 +msgid "bug: bad expassign token" +msgstr "" + +#: expr.c:513 +msgid "`:' expected for conditional expression" +msgstr "" + +#: expr.c:781 +msgid "exponent less than 0" +msgstr "" + +#: expr.c:826 +msgid "identifier expected after pre-increment or pre-decrement" +msgstr "" + +#: expr.c:854 +msgid "missing `)'" +msgstr "" + +#: expr.c:897 expr.c:1175 +msgid "syntax error: operand expected" +msgstr "" + +#: expr.c:1177 +msgid "syntax error: invalid arithmetic operator" +msgstr "" + +#: expr.c:1201 +#, c-format +msgid "%s%s%s: %s (error token is \"%s\")" +msgstr "" + +#: expr.c:1259 +msgid "invalid arithmetic base" +msgstr "" + +#: expr.c:1279 +msgid "value too great for base" +msgstr "" + +#: expr.c:1328 +#, c-format +msgid "%s: expression error\n" +msgstr "" + +#: general.c:61 +msgid "getcwd: cannot access parent directories" +msgstr "" + +#: input.c:94 subst.c:4559 +#, c-format +msgid "cannot reset nodelay mode for fd %d" +msgstr "" + +#: input.c:258 +#, c-format +msgid "cannot allocate new file descriptor for bash input from fd %d" +msgstr "" + +#: input.c:266 +#, c-format +msgid "save_bash_input: buffer already exists for new fd %d" +msgstr "" + +#: jobs.c:466 +msgid "start_pipeline: pgrp pipe" +msgstr "" + +#: jobs.c:882 +#, c-format +msgid "forked pid %d appears in running job %d" +msgstr "" + +#: jobs.c:1000 +#, c-format +msgid "deleting stopped job %d with process group %ld" +msgstr "" + +#: jobs.c:1105 +#, c-format +msgid "add_process: process %5ld (%s) in the_pipeline" +msgstr "" + +#: jobs.c:1108 +#, c-format +msgid "add_process: pid %5ld (%s) marked as still alive" +msgstr "" + +#: jobs.c:1396 +#, c-format +msgid "describe_pid: %ld: no such pid" +msgstr "" + +#: jobs.c:1411 +#, c-format +msgid "Signal %d" +msgstr "" + +#: jobs.c:1425 jobs.c:1450 +msgid "Done" +msgstr "" + +#: jobs.c:1430 siglist.c:122 +msgid "Stopped" +msgstr "" + +#: jobs.c:1434 +#, c-format +msgid "Stopped(%s)" +msgstr "" + +#: jobs.c:1438 +msgid "Running" +msgstr "" + +#: jobs.c:1452 +#, c-format +msgid "Done(%d)" +msgstr "" + +#: jobs.c:1454 +#, c-format +msgid "Exit %d" +msgstr "" + +#: jobs.c:1457 +msgid "Unknown status" +msgstr "" + +#: jobs.c:1544 +#, c-format +msgid "(core dumped) " +msgstr "" + +#: jobs.c:1563 +#, c-format +msgid " (wd: %s)" +msgstr "" + +#: jobs.c:1766 +#, c-format +msgid "child setpgid (%ld to %ld)" +msgstr "" + +#: jobs.c:2094 nojobs.c:576 +#, c-format +msgid "wait: pid %ld is not a child of this shell" +msgstr "" + +#: jobs.c:2321 +#, c-format +msgid "wait_for: No record of process %ld" +msgstr "" + +#: jobs.c:2593 +#, c-format +msgid "wait_for_job: job %d is stopped" +msgstr "" + +#: jobs.c:2815 +#, c-format +msgid "%s: job has terminated" +msgstr "" + +#: jobs.c:2824 +#, c-format +msgid "%s: job %d already in background" +msgstr "" + +#: jobs.c:3487 +#, fuzzy, c-format +msgid "%s: line %d: " +msgstr "%s:警告:" + +#: jobs.c:3501 nojobs.c:805 +#, c-format +msgid " (core dumped)" +msgstr "" + +#: jobs.c:3513 jobs.c:3526 +#, c-format +msgid "(wd now: %s)\n" +msgstr "" + +#: jobs.c:3558 +msgid "initialize_job_control: getpgrp failed" +msgstr "" + +#: jobs.c:3618 +msgid "initialize_job_control: line discipline" +msgstr "" + +#: jobs.c:3628 +msgid "initialize_job_control: setpgid" +msgstr "" + +#: jobs.c:3656 +#, c-format +msgid "cannot set terminal process group (%d)" +msgstr "" + +#: jobs.c:3661 +msgid "no job control in this shell" +msgstr "" + +#: lib/malloc/malloc.c:296 +#, c-format +msgid "malloc: failed assertion: %s\n" +msgstr "" + +#: lib/malloc/malloc.c:312 +#, c-format +msgid "" +"\r\n" +"malloc: %s:%d: assertion botched\r\n" +msgstr "" + +#: lib/malloc/malloc.c:313 +#, fuzzy +msgid "unknown" +msgstr "%s:主機未知" + +#: lib/malloc/malloc.c:797 +msgid "malloc: block on free list clobbered" +msgstr "" + +#: lib/malloc/malloc.c:874 +msgid "free: called with already freed block argument" +msgstr "" + +#: lib/malloc/malloc.c:877 +msgid "free: called with unallocated block argument" +msgstr "" + +#: lib/malloc/malloc.c:896 +msgid "free: underflow detected; mh_nbytes out of range" +msgstr "" + +#: lib/malloc/malloc.c:902 +msgid "free: start and end chunk sizes differ" +msgstr "" + +#: lib/malloc/malloc.c:1001 +msgid "realloc: called with unallocated block argument" +msgstr "" + +#: lib/malloc/malloc.c:1016 +msgid "realloc: underflow detected; mh_nbytes out of range" +msgstr "" + +#: lib/malloc/malloc.c:1022 +msgid "realloc: start and end chunk sizes differ" +msgstr "" + +#: lib/malloc/table.c:177 +#, c-format +msgid "register_alloc: alloc table is full with FIND_ALLOC?\n" +msgstr "" + +#: lib/malloc/table.c:184 +#, c-format +msgid "register_alloc: %p already in table as allocated?\n" +msgstr "" + +#: lib/malloc/table.c:220 +#, c-format +msgid "register_free: %p already in table as free?\n" +msgstr "" + +#: lib/sh/fmtulong.c:101 +msgid "invalid base" +msgstr "" + +#: lib/sh/netopen.c:168 +#, c-format +msgid "%s: host unknown" +msgstr "%s:主機未知" + +#: lib/sh/netopen.c:175 +#, c-format +msgid "%s: invalid service" +msgstr "%s:無效服務" + +#: lib/sh/netopen.c:306 +#, c-format +msgid "%s: bad network path specification" +msgstr "%s:壞的網路路徑規格" + +#: lib/sh/netopen.c:346 +msgid "network operations not supported" +msgstr "不支持網路操作" + +#: mailcheck.c:433 +msgid "You have mail in $_" +msgstr "您有郵件在 $_" + +#: mailcheck.c:458 +msgid "You have new mail in $_" +msgstr "您有新郵件在 $_" + +#: mailcheck.c:474 +#, c-format +msgid "The mail in %s has been read\n" +msgstr "郵件在 %s 已閱讀\n" + +#: make_cmd.c:322 +msgid "syntax error: arithmetic expression required" +msgstr "語法錯誤:必須算術表達" + +#: make_cmd.c:324 +msgid "syntax error: `;' unexpected" +msgstr "語法錯誤: `;' 意外" + +#: make_cmd.c:325 +#, c-format +msgid "syntax error: `((%s))'" +msgstr "語法錯誤: `((%s))'" + +#: make_cmd.c:567 +#, c-format +msgid "make_here_document: bad instruction type %d" +msgstr "make_here_document:壞的指示類型 %d" + +#: make_cmd.c:651 +#, c-format +msgid "here-document at line %d delimited by end-of-file (wanted `%s')" +msgstr "" + +#: make_cmd.c:746 +#, c-format +msgid "make_redirection: redirection instruction `%d' out of range" +msgstr "make_redirection:重新導向指示 `%d' 超出範圍" + +#: parse.y:2986 parse.y:3218 +#, c-format +msgid "unexpected EOF while looking for matching `%c'" +msgstr "" + +#: parse.y:3722 +msgid "unexpected EOF while looking for `]]'" +msgstr "" + +#: parse.y:3727 +#, c-format +msgid "syntax error in conditional expression: unexpected token `%s'" +msgstr "" + +#: parse.y:3731 +msgid "syntax error in conditional expression" +msgstr "語法錯誤,在有條件的表達" + +#: parse.y:3809 +#, c-format +msgid "unexpected token `%s', expected `)'" +msgstr "" + +#: parse.y:3813 +msgid "expected `)'" +msgstr "預期 `)'" + +#: parse.y:3841 +#, c-format +msgid "unexpected argument `%s' to conditional unary operator" +msgstr "" + +#: parse.y:3845 +msgid "unexpected argument to conditional unary operator" +msgstr "" + +#: parse.y:3885 +#, c-format +msgid "unexpected token `%s', conditional binary operator expected" +msgstr "" + +#: parse.y:3889 +msgid "conditional binary operator expected" +msgstr "" + +#: parse.y:3906 +#, c-format +msgid "unexpected argument `%s' to conditional binary operator" +msgstr "" + +#: parse.y:3910 +msgid "unexpected argument to conditional binary operator" +msgstr "" + +#: parse.y:3921 +#, c-format +msgid "unexpected token `%c' in conditional command" +msgstr "" + +#: parse.y:3924 +#, c-format +msgid "unexpected token `%s' in conditional command" +msgstr "" + +#: parse.y:3928 +#, c-format +msgid "unexpected token %d in conditional command" +msgstr "" + +#: parse.y:5195 +#, c-format +msgid "syntax error near unexpected token `%s'" +msgstr "" + +#: parse.y:5213 +#, c-format +msgid "syntax error near `%s'" +msgstr "" + +#: parse.y:5223 +msgid "syntax error: unexpected end of file" +msgstr "" + +#: parse.y:5223 +msgid "syntax error" +msgstr "語法錯誤" + +#: parse.y:5285 +#, c-format +msgid "Use \"%s\" to leave the shell.\n" +msgstr "" + +#: parse.y:5447 +msgid "unexpected EOF while looking for matching `)'" +msgstr "" + +#: pcomplete.c:1016 +#, c-format +msgid "completion: function `%s' not found" +msgstr "" + +#: pcomplib.c:179 +#, c-format +msgid "progcomp_insert: %s: NULL COMPSPEC" +msgstr "" + +#: print_cmd.c:287 +#, c-format +msgid "print_command: bad connector `%d'" +msgstr "" + +#: print_cmd.c:1347 +#, c-format +msgid "cprintf: `%c': invalid format character" +msgstr "" + +#: redir.c:105 +msgid "file descriptor out of range" +msgstr "" + +#: redir.c:148 +#, c-format +msgid "%s: ambiguous redirect" +msgstr "" + +#: redir.c:152 +#, c-format +msgid "%s: cannot overwrite existing file" +msgstr "" + +#: redir.c:157 +#, c-format +msgid "%s: restricted: cannot redirect output" +msgstr "" + +#: redir.c:162 +#, c-format +msgid "cannot create temp file for here-document: %s" +msgstr "" + +#: redir.c:517 +msgid "/dev/(tcp|udp)/host/port not supported without networking" +msgstr "" + +#: redir.c:1023 +msgid "redirection error: cannot duplicate fd" +msgstr "" + +#: shell.c:328 +msgid "could not find /tmp, please create!" +msgstr "" + +#: shell.c:332 +msgid "/tmp must be a valid directory name" +msgstr "" + +#: shell.c:876 +#, c-format +msgid "%c%c: invalid option" +msgstr "%c%c:無效選項" + +#: shell.c:1638 +msgid "I have no name!" +msgstr "我沒有名字!" + +#: shell.c:1778 +#, c-format +msgid "GNU bash, version %s-(%s)\n" +msgstr "" + +#: shell.c:1779 +#, c-format +msgid "" +"Usage:\t%s [GNU long option] [option] ...\n" +"\t%s [GNU long option] [option] script-file ...\n" +msgstr "" +"用法:\t%s [GNU 長選項] [選項] ...\n" +"\t%s [GNU 長選項] [選項] script-file ...\n" + +#: shell.c:1781 +msgid "GNU long options:\n" +msgstr "GNU 長選項:\n" + +#: shell.c:1785 +msgid "Shell options:\n" +msgstr "Shell 選項:\n" + +#: shell.c:1786 +msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n" +msgstr "\t-irsD 或 -c 命令或 -O shopt_option\t\t(只有引用)\n" + +#: shell.c:1801 +#, c-format +msgid "\t-%s or -o option\n" +msgstr "\t-%s or -o 選項\n" + +#: shell.c:1807 +#, c-format +msgid "Type `%s -c \"help set\"' for more information about shell options.\n" +msgstr "輸入 `%s -c \"help set\"' 更多訊息關於 shell 選項。\n" + +#: shell.c:1808 +#, c-format +msgid "Type `%s -c help' for more information about shell builtin commands.\n" +msgstr "輸入 `%s -c help' 更多訊息關於內建 shell 命令。\n" + +#: shell.c:1809 +#, c-format +msgid "Use the `bashbug' command to report bugs.\n" +msgstr "使用 `bashbug' 命令報告臭蟲。\n" + +#: sig.c:583 +#, c-format +msgid "sigprocmask: %d: invalid operation" +msgstr "sigprocmask: %d:無效操作" + +#: 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 +#, fuzzy +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 +#, fuzzy +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:1181 subst.c:1302 +#, c-format +msgid "bad substitution: no closing `%s' in %s" +msgstr "" + +#: subst.c:2458 +#, c-format +msgid "%s: cannot assign list to array member" +msgstr "" + +#: subst.c:4456 subst.c:4472 +msgid "cannot make pipe for process substitution" +msgstr "" + +#: subst.c:4504 +msgid "cannot make child for process substitution" +msgstr "" + +#: subst.c:4549 +#, c-format +msgid "cannot open named pipe %s for reading" +msgstr "" + +#: subst.c:4551 +#, c-format +msgid "cannot open named pipe %s for writing" +msgstr "" + +#: subst.c:4569 +#, c-format +msgid "cannot duplicate named pipe %s as fd %d" +msgstr "" + +#: subst.c:4765 +msgid "cannot make pipe for command substitution" +msgstr "" + +#: subst.c:4799 +msgid "cannot make child for command substitution" +msgstr "" + +#: subst.c:4816 +msgid "command_substitute: cannot duplicate pipe as fd 1" +msgstr "" + +#: subst.c:5318 +#, c-format +msgid "%s: parameter null or not set" +msgstr "" + +#: subst.c:5608 +#, c-format +msgid "%s: substring expression < 0" +msgstr "" + +#: subst.c:6660 +#, c-format +msgid "%s: bad substitution" +msgstr "" + +#: subst.c:6740 +#, c-format +msgid "$%s: cannot assign in this way" +msgstr "" + +#: subst.c:7479 +#, c-format +msgid "bad substitution: no closing \"`\" in %s" +msgstr "" + +#: subst.c:8354 +#, c-format +msgid "no match: %s" +msgstr "" + +#: test.c:145 +msgid "argument expected" +msgstr "" + +#: test.c:154 +#, c-format +msgid "%s: integer expression expected" +msgstr "" + +#: test.c:262 +msgid "`)' expected" +msgstr "" + +#: test.c:264 +#, c-format +msgid "`)' expected, found %s" +msgstr "" + +#: test.c:279 test.c:688 test.c:691 +#, c-format +msgid "%s: unary operator expected" +msgstr "" + +#: test.c:444 test.c:731 +#, c-format +msgid "%s: binary operator expected" +msgstr "" + +#: test.c:806 +msgid "missing `]'" +msgstr "" + +#: trap.c:201 +msgid "invalid signal number" +msgstr "無效信號數" + +#: trap.c:324 +#, c-format +msgid "run_pending_traps: bad value in trap_list[%d]: %p" +msgstr "" + +#: trap.c:328 +#, c-format +msgid "" +"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself" +msgstr "run_pending_traps: 信號處理是 SIG_DFL, resending %d (%s) to myself" + +#: trap.c:372 +#, c-format +msgid "trap_handler: bad signal %d" +msgstr "trap_handler:壞的信號 %d" + +#: variables.c:358 +#, c-format +msgid "error importing function definition for `%s'" +msgstr "錯誤,輸入的函數定義為 `%s'" + +#: variables.c:736 +#, c-format +msgid "shell level (%d) too high, resetting to 1" +msgstr "" + +#: variables.c:1898 +msgid "make_local_variable: no function context at current scope" +msgstr "" + +#: variables.c:3127 +msgid "all_local_variables: no function context at current scope" +msgstr "" + +#: variables.c:3344 variables.c:3353 +#, c-format +msgid "invalid character %d in exportstr for %s" +msgstr "" + +#: variables.c:3359 +#, c-format +msgid "no `=' in exportstr for %s" +msgstr "" + +#: variables.c:3794 +msgid "pop_var_context: head of shell_variables not a function context" +msgstr "" + +#: variables.c:3807 +msgid "pop_var_context: no global_variables context" +msgstr "" + +#: variables.c:3881 +msgid "pop_scope: head of shell_variables not a temporary environment scope" +msgstr "" + +#: version.c:46 +msgid "Copyright (C) 2009 Free Software Foundation, Inc." +msgstr "" + +#: version.c:47 +msgid "" +"License GPLv3+: GNU GPL version 3 or later \n" +msgstr "" + +#: version.c:86 +#, c-format +msgid "GNU bash, version %s (%s)\n" +msgstr "" + +#: version.c:91 +#, c-format +msgid "This is free software; you are free to change and redistribute it.\n" +msgstr "" + +#: version.c:92 +#, c-format +msgid "There is NO WARRANTY, to the extent permitted by law.\n" +msgstr "" + +#: xmalloc.c:92 +#, c-format +msgid "xmalloc: cannot allocate %lu bytes (%lu bytes allocated)" +msgstr "" + +#: xmalloc.c:94 +#, c-format +msgid "xmalloc: cannot allocate %lu bytes" +msgstr "" + +#: xmalloc.c:114 +#, c-format +msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)" +msgstr "" + +#: xmalloc.c:116 +#, c-format +msgid "xrealloc: cannot allocate %lu bytes" +msgstr "" + +#: xmalloc.c:150 +#, c-format +msgid "xmalloc: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)" +msgstr "" + +#: xmalloc.c:152 +#, c-format +msgid "xmalloc: %s:%d: cannot allocate %lu bytes" +msgstr "" + +#: xmalloc.c:174 +#, c-format +msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)" +msgstr "" + +#: xmalloc.c:176 +#, c-format +msgid "xrealloc: %s:%d: cannot allocate %lu bytes" +msgstr "" + +#: builtins.c:43 +msgid "alias [-p] [name[=value] ... ]" +msgstr "" + +#: builtins.c:47 +msgid "unalias [-a] name [name ...]" +msgstr "" + +#: builtins.c:51 +msgid "" +"bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-" +"x keyseq:shell-command] [keyseq:readline-function or readline-command]" +msgstr "" + +#: builtins.c:54 +msgid "break [n]" +msgstr "" + +#: builtins.c:56 +msgid "continue [n]" +msgstr "" + +#: builtins.c:58 +msgid "builtin [shell-builtin [arg ...]]" +msgstr "" + +#: builtins.c:61 +msgid "caller [expr]" +msgstr "" + +#: builtins.c:64 +msgid "cd [-L|-P] [dir]" +msgstr "" + +#: builtins.c:66 +msgid "pwd [-LP]" +msgstr "" + +#: builtins.c:68 +msgid ":" +msgstr "" + +#: builtins.c:70 +msgid "true" +msgstr "" + +#: builtins.c:72 +msgid "false" +msgstr "" + +#: builtins.c:74 +msgid "command [-pVv] command [arg ...]" +msgstr "" + +#: builtins.c:76 +msgid "declare [-aAfFilrtux] [-p] [name[=value] ...]" +msgstr "" + +#: builtins.c:78 +msgid "typeset [-aAfFilrtux] [-p] name[=value] ..." +msgstr "" + +#: builtins.c:80 +msgid "local [option] name[=value] ..." +msgstr "" + +#: builtins.c:83 +msgid "echo [-neE] [arg ...]" +msgstr "" + +#: builtins.c:87 +msgid "echo [-n] [arg ...]" +msgstr "" + +#: builtins.c:90 +msgid "enable [-a] [-dnps] [-f filename] [name ...]" +msgstr "" + +#: builtins.c:92 +msgid "eval [arg ...]" +msgstr "" + +#: builtins.c:94 +msgid "getopts optstring name [arg]" +msgstr "" + +#: builtins.c:96 +msgid "exec [-cl] [-a name] [command [arguments ...]] [redirection ...]" +msgstr "" + +#: builtins.c:98 +msgid "exit [n]" +msgstr "" + +#: builtins.c:100 +msgid "logout [n]" +msgstr "" + +#: builtins.c:103 +msgid "fc [-e ename] [-lnr] [first] [last] or fc -s [pat=rep] [command]" +msgstr "" + +#: builtins.c:107 +msgid "fg [job_spec]" +msgstr "" + +#: builtins.c:111 +msgid "bg [job_spec ...]" +msgstr "" + +#: builtins.c:114 +msgid "hash [-lr] [-p pathname] [-dt] [name ...]" +msgstr "" + +#: builtins.c:117 +msgid "help [-ds] [pattern ...]" +msgstr "" + +#: builtins.c:121 +msgid "" +"history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg " +"[arg...]" +msgstr "" + +#: builtins.c:125 +msgid "jobs [-lnprs] [jobspec ...] or jobs -x command [args]" +msgstr "" + +#: builtins.c:129 +msgid "disown [-h] [-ar] [jobspec ...]" +msgstr "" + +#: builtins.c:132 +msgid "" +"kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l " +"[sigspec]" +msgstr "" + +#: builtins.c:134 +msgid "let arg [arg ...]" +msgstr "" + +#: builtins.c:136 +msgid "" +"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-p prompt] [-t " +"timeout] [-u fd] [name ...]" +msgstr "" + +#: builtins.c:138 +msgid "return [n]" +msgstr "" + +#: builtins.c:140 +msgid "set [--abefhkmnptuvxBCHP] [-o option-name] [arg ...]" +msgstr "" + +#: builtins.c:142 +msgid "unset [-f] [-v] [name ...]" +msgstr "" + +#: builtins.c:144 +msgid "export [-fn] [name[=value] ...] or export -p" +msgstr "" + +#: builtins.c:146 +msgid "readonly [-af] [name[=value] ...] or readonly -p" +msgstr "" + +#: builtins.c:148 +msgid "shift [n]" +msgstr "" + +#: builtins.c:150 +msgid "source filename [arguments]" +msgstr "" + +#: builtins.c:152 +#, fuzzy +msgid ". filename [arguments]" +msgstr "太多引數" + +#: builtins.c:155 +msgid "suspend [-f]" +msgstr "" + +#: builtins.c:158 +msgid "test [expr]" +msgstr "" + +#: builtins.c:160 +msgid "[ arg... ]" +msgstr "" + +#: builtins.c:162 +msgid "times" +msgstr "" + +#: builtins.c:164 +msgid "trap [-lp] [[arg] signal_spec ...]" +msgstr "" + +#: builtins.c:166 +msgid "type [-afptP] name [name ...]" +msgstr "" + +#: builtins.c:169 +msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]" +msgstr "" + +#: builtins.c:172 +msgid "umask [-p] [-S] [mode]" +msgstr "" + +#: builtins.c:175 +msgid "wait [id]" +msgstr "" + +#: builtins.c:179 +msgid "wait [pid]" +msgstr "" + +#: builtins.c:182 +msgid "for NAME [in WORDS ... ] ; do COMMANDS; done" +msgstr "" + +#: builtins.c:184 +msgid "for (( exp1; exp2; exp3 )); do COMMANDS; done" +msgstr "" + +#: builtins.c:186 +msgid "select NAME [in WORDS ... ;] do COMMANDS; done" +msgstr "" + +#: builtins.c:188 +msgid "time [-p] pipeline" +msgstr "" + +#: builtins.c:190 +msgid "case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac" +msgstr "" + +#: builtins.c:192 +msgid "" +"if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else " +"COMMANDS; ] fi" +msgstr "" + +#: builtins.c:194 +msgid "while COMMANDS; do COMMANDS; done" +msgstr "" + +#: builtins.c:196 +msgid "until COMMANDS; do COMMANDS; done" +msgstr "" + +#: builtins.c:198 +msgid "function name { COMMANDS ; } or name () { COMMANDS ; }" +msgstr "" + +#: builtins.c:200 +msgid "{ COMMANDS ; }" +msgstr "" + +#: builtins.c:202 +msgid "job_spec [&]" +msgstr "" + +#: builtins.c:204 +msgid "(( expression ))" +msgstr "" + +#: builtins.c:206 +msgid "[[ expression ]]" +msgstr "" + +#: builtins.c:208 +msgid "variables - Names and meanings of some shell variables" +msgstr "" + +#: builtins.c:211 +msgid "pushd [-n] [+N | -N | dir]" +msgstr "" + +#: builtins.c:215 +msgid "popd [-n] [+N | -N]" +msgstr "" + +#: builtins.c:219 +msgid "dirs [-clpv] [+N] [-N]" +msgstr "" + +#: builtins.c:222 +msgid "shopt [-pqsu] [-o] [optname ...]" +msgstr "" + +#: builtins.c:224 +msgid "printf [-v var] format [arguments]" +msgstr "" + +#: builtins.c:227 +msgid "" +"complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W " +"wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] " +"[name ...]" +msgstr "" + +#: builtins.c:231 +msgid "" +"compgen [-abcdefgjksuv] [-o option] [-A action] [-G globpat] [-W wordlist] " +"[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]" +msgstr "" + +#: builtins.c:235 +msgid "compopt [-o|+o option] [name ...]" +msgstr "" + +#: builtins.c:238 +msgid "" +"mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c " +"quantum] [array]" +msgstr "" + +#: builtins.c:250 +#, fuzzy +msgid "" +"Define or display aliases.\n" +" \n" +" Without arguments, `alias' prints the list of aliases in the reusable\n" +" form `alias NAME=VALUE' on standard output.\n" +" \n" +" Otherwise, an alias is defined for each NAME whose VALUE is given.\n" +" A trailing space in VALUE causes the next word to be checked for\n" +" alias substitution when the alias is expanded.\n" +" \n" +" Options:\n" +" -p\tPrint all defined aliases in a reusable format\n" +" \n" +" Exit Status:\n" +" alias returns true unless a NAME is supplied for which no alias has " +"been\n" +" defined." +msgstr "" +"`alias' with no arguments or with the -p option prints the list\n" +" of aliases in the form alias NAME=VALUE on standard output.\n" +" Otherwise, an alias is defined for each NAME whose VALUE is given.\n" +" A trailing space in VALUE causes the next word to be checked for\n" +" alias substitution when the alias is expanded. Alias returns\n" +" true unless a NAME is given for which no alias has been defined." + +#: builtins.c:272 +msgid "" +"Remove each NAME from the list of defined aliases.\n" +" \n" +" Options:\n" +" -a\tremove all alias definitions.\n" +" \n" +" Return success unless a NAME is not an existing alias." +msgstr "" + +#: builtins.c:285 +msgid "" +"Set Readline key bindings and variables.\n" +" \n" +" Bind a key sequence to a Readline function or a macro, or set a\n" +" Readline variable. The non-option argument syntax is equivalent to\n" +" that found in ~/.inputrc, but must be passed as a single argument:\n" +" e.g., bind '\"\\C-x\\C-r\": re-read-init-file'.\n" +" \n" +" Options:\n" +" -m keymap Use KEYMAP as the keymap for the duration of this\n" +" command. Acceptable keymap names are emacs,\n" +" emacs-standard, emacs-meta, emacs-ctlx, vi, vi-" +"move,\n" +" vi-command, and vi-insert.\n" +" -l List names of functions.\n" +" -P List function names and bindings.\n" +" -p List functions and bindings in a form that can be\n" +" reused as input.\n" +" -S List key sequences that invoke macros and their " +"values\n" +" -s List key sequences that invoke macros and their " +"values\n" +" in a form that can be reused as input.\n" +" -V List variable names and values\n" +" -v List variable names and values in a form that can\n" +" be reused as input.\n" +" -q function-name Query about which keys invoke the named function.\n" +" -u function-name Unbind all keys which are bound to the named " +"function.\n" +" -r keyseq Remove the binding for KEYSEQ.\n" +" -f filename Read key bindings from FILENAME.\n" +" -x keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n" +" \t\t\t\tKEYSEQ is entered.\n" +" \n" +" Exit Status:\n" +" bind returns 0 unless an unrecognized option is given or an error occurs." +msgstr "" + +#: builtins.c:322 +msgid "" +"Exit for, while, or until loops.\n" +" \n" +" Exit a FOR, WHILE or UNTIL loop. If N is specified, break N enclosing\n" +" loops.\n" +" \n" +" Exit Status:\n" +" The exit status is 0 unless N is not greater than or equal to 1." +msgstr "" + +#: builtins.c:334 +msgid "" +"Resume for, while, or until loops.\n" +" \n" +" Resumes the next iteration of the enclosing FOR, WHILE or UNTIL loop.\n" +" If N is specified, resumes the Nth enclosing loop.\n" +" \n" +" Exit Status:\n" +" The exit status is 0 unless N is not greater than or equal to 1." +msgstr "" + +#: builtins.c:346 +msgid "" +"Execute shell builtins.\n" +" \n" +" Execute SHELL-BUILTIN with arguments ARGs without performing command\n" +" lookup. This is useful when you wish to reimplement a shell builtin\n" +" as a shell function, but need to execute the builtin within the " +"function.\n" +" \n" +" Exit Status:\n" +" Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is\n" +" not a shell builtin.." +msgstr "" + +#: builtins.c:361 +msgid "" +"Return the context of the current subroutine call.\n" +" \n" +" Without EXPR, returns \"$line $filename\". With EXPR, returns\n" +" \"$line $subroutine $filename\"; this extra information can be used to\n" +" provide a stack trace.\n" +" \n" +" The value of EXPR indicates how many call frames to go back before the\n" +" current one; the top frame is frame 0.\n" +" \n" +" Exit Status:\n" +" Returns 0 unless the shell is not executing a shell function or EXPR\n" +" is invalid." +msgstr "" + +#: builtins.c:379 +msgid "" +"Change the shell working directory.\n" +" \n" +" Change the current directory to DIR. The default DIR is the value of " +"the\n" +" HOME shell variable.\n" +" \n" +" The variable CDPATH defines the search path for the directory " +"containing\n" +" DIR. Alternative directory names in CDPATH are separated by a colon " +"(:).\n" +" A null directory name is the same as the current directory. If DIR " +"begins\n" +" with a slash (/), then CDPATH is not used.\n" +" \n" +" If the directory is not found, and the shell option `cdable_vars' is " +"set,\n" +" the word is assumed to be a variable name. If that variable has a " +"value,\n" +" its value is used for DIR.\n" +" \n" +" Options:\n" +" -L\tforce symbolic links to be followed\n" +" -P\tuse the physical directory structure without following symbolic\n" +" \tlinks\n" +" \n" +" The default is to follow symbolic links, as if `-L' were specified.\n" +" \n" +" Exit Status:\n" +" Returns 0 if the directory is changed; non-zero otherwise." +msgstr "" + +#: builtins.c:407 +msgid "" +"Print the name of the current working directory.\n" +" \n" +" Options:\n" +" -L\tprint the value of $PWD if it names the current working\n" +" \tdirectory\n" +" -P\tprint the physical directory, without any symbolic links\n" +" \n" +" By default, `pwd' behaves as if `-L' were specified.\n" +" \n" +" Exit Status:\n" +" Returns 0 unless an invalid option is given or the current directory\n" +" cannot be read." +msgstr "" + +#: builtins.c:424 +msgid "" +"Null command.\n" +" \n" +" No effect; the command does nothing.\n" +" \n" +" Exit Status:\n" +" Always succeeds." +msgstr "" + +#: builtins.c:435 +msgid "" +"Return a successful result.\n" +" \n" +" Exit Status:\n" +" Always succeeds." +msgstr "" + +#: builtins.c:444 +msgid "" +"Return an unsuccessful result.\n" +" \n" +" Exit Status:\n" +" Always fails." +msgstr "" + +#: builtins.c:453 +msgid "" +"Execute a simple command or display information about commands.\n" +" \n" +" Runs COMMAND with ARGS suppressing shell function lookup, or display\n" +" information about the specified COMMANDs. Can be used to invoke " +"commands\n" +" on disk when a function with the same name exists.\n" +" \n" +" Options:\n" +" -p\tuse a default value for PATH that is guaranteed to find all of\n" +" \tthe standard utilities\n" +" -v\tprint a description of COMMAND similar to the `type' builtin\n" +" -V\tprint a more verbose description of each COMMAND\n" +" \n" +" Exit Status:\n" +" Returns exit status of COMMAND, or failure if COMMAND is not found." +msgstr "" + +#: builtins.c:472 +msgid "" +"Set variable values and attributes.\n" +" \n" +" Declare variables and give them attributes. If no NAMEs are given,\n" +" display the attributes and values of all variables.\n" +" \n" +" Options:\n" +" -f\trestrict action or display to function names and definitions\n" +" -F\trestrict display to function names only (plus line number and\n" +" \tsource file when debugging)\n" +" -p\tdisplay the attributes and value of each NAME\n" +" \n" +" Options which set attributes:\n" +" -a\tto make NAMEs indexed arrays (if supported)\n" +" -A\tto make NAMEs associative arrays (if supported)\n" +" -i\tto make NAMEs have the `integer' attribute\n" +" -l\tto convert NAMEs to lower case on assignment\n" +" -r\tto make NAMEs readonly\n" +" -t\tto make NAMEs have the `trace' attribute\n" +" -u\tto convert NAMEs to upper case on assignment\n" +" -x\tto make NAMEs export\n" +" \n" +" Using `+' instead of `-' turns off the given attribute.\n" +" \n" +" Variables with the integer attribute have arithmetic evaluation (see\n" +" the `let' command) performed when the variable is assigned a value.\n" +" \n" +" When used in a function, `declare' makes NAMEs local, as with the " +"`local'\n" +" command.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" + +#: builtins.c:508 +msgid "" +"Set variable values and attributes.\n" +" \n" +" Obsolete. See `help declare'." +msgstr "" + +#: builtins.c:516 +msgid "" +"Define local variables.\n" +" \n" +" Create a local variable called NAME, and give it VALUE. OPTION can\n" +" be any option accepted by `declare'.\n" +" \n" +" Local variables can only be used within a function; they are visible\n" +" only to the function where they are defined and its children.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied, an error occurs,\n" +" or the shell is not executing a function." +msgstr "" + +#: builtins.c:533 +msgid "" +"Write arguments to the standard output.\n" +" \n" +" Display the ARGs on the standard output followed by a newline.\n" +" \n" +" Options:\n" +" -n\tdo not append a newline\n" +" -e\tenable interpretation of the following backslash escapes\n" +" -E\texplicitly suppress interpretation of backslash escapes\n" +" \n" +" `echo' interprets the following backslash-escaped characters:\n" +" \\a\talert (bell)\n" +" \\b\tbackspace\n" +" \\c\tsuppress further output\n" +" \\e\tescape character\n" +" \\f\tform feed\n" +" \\n\tnew line\n" +" \\r\tcarriage return\n" +" \\t\thorizontal tab\n" +" \\v\tvertical tab\n" +" \\\\\tbackslash\n" +" \\0nnn\tthe character whose ASCII code is NNN (octal). NNN can be\n" +" \t0 to 3 octal digits\n" +" \\xHH\tthe eight-bit character whose value is HH (hexadecimal). HH\n" +" \tcan be one or two hex digits\n" +" \n" +" Exit Status:\n" +" Returns success unless a write error occurs." +msgstr "" + +#: builtins.c:567 +msgid "" +"Write arguments to the standard output.\n" +" \n" +" Display the ARGs on the standard output followed by a newline.\n" +" \n" +" Options:\n" +" -n\tdo not append a newline\n" +" \n" +" Exit Status:\n" +" Returns success unless a write error occurs." +msgstr "" + +#: builtins.c:582 +msgid "" +"Enable and disable shell builtins.\n" +" \n" +" Enables and disables builtin shell commands. Disabling allows you to\n" +" execute a disk command which has the same name as a shell builtin\n" +" without using a full pathname.\n" +" \n" +" Options:\n" +" -a\tprint a list of builtins showing whether or not each is enabled\n" +" -n\tdisable each NAME or display a list of disabled builtins\n" +" -p\tprint the list of builtins in a reusable format\n" +" -s\tprint only the names of Posix `special' builtins\n" +" \n" +" Options controlling dynamic loading:\n" +" -f\tLoad builtin NAME from shared object FILENAME\n" +" -d\tRemove a builtin loaded with -f\n" +" \n" +" Without options, each NAME is enabled.\n" +" \n" +" To use the `test' found in $PATH instead of the shell builtin\n" +" version, type `enable -n test'.\n" +" \n" +" Exit Status:\n" +" Returns success unless NAME is not a shell builtin or an error occurs." +msgstr "" + +#: builtins.c:610 +msgid "" +"Execute arguments as a shell command.\n" +" \n" +" Combine ARGs into a single string, use the result as input to the " +"shell,\n" +" and execute the resulting commands.\n" +" \n" +" Exit Status:\n" +" Returns exit status of command or success if command is null." +msgstr "" + +#: builtins.c:622 +msgid "" +"Parse option arguments.\n" +" \n" +" Getopts is used by shell procedures to parse positional parameters\n" +" as options.\n" +" \n" +" OPTSTRING contains the option letters to be recognized; if a letter\n" +" is followed by a colon, the option is expected to have an argument,\n" +" which should be separated from it by white space.\n" +" \n" +" Each time it is invoked, getopts will place the next option in the\n" +" shell variable $name, initializing name if it does not exist, and\n" +" the index of the next argument to be processed into the shell\n" +" variable OPTIND. OPTIND is initialized to 1 each time the shell or\n" +" a shell script is invoked. When an option requires an argument,\n" +" getopts places that argument into the shell variable OPTARG.\n" +" \n" +" getopts reports errors in one of two ways. If the first character\n" +" of OPTSTRING is a colon, getopts uses silent error reporting. In\n" +" this mode, no error messages are printed. If an invalid option is\n" +" seen, getopts places the option character found into OPTARG. If a\n" +" required argument is not found, getopts places a ':' into NAME and\n" +" sets OPTARG to the option character found. If getopts is not in\n" +" silent mode, and an invalid option is seen, getopts places '?' into\n" +" NAME and unsets OPTARG. If a required argument is not found, a '?'\n" +" is placed in NAME, OPTARG is unset, and a diagnostic message is\n" +" printed.\n" +" \n" +" If the shell variable OPTERR has the value 0, getopts disables the\n" +" printing of error messages, even if the first character of\n" +" OPTSTRING is not a colon. OPTERR has the value 1 by default.\n" +" \n" +" Getopts normally parses the positional parameters ($0 - $9), but if\n" +" more arguments are given, they are parsed instead.\n" +" \n" +" Exit Status:\n" +" Returns success if an option is found; fails if the end of options is\n" +" encountered or an error occurs." +msgstr "" + +#: builtins.c:664 +msgid "" +"Replace the shell with the given command.\n" +" \n" +" Execute COMMAND, replacing this shell with the specified program.\n" +" ARGUMENTS become the arguments to COMMAND. If COMMAND is not " +"specified,\n" +" any redirections take effect in the current shell.\n" +" \n" +" Options:\n" +" -a name\tpass NAME as the zeroth argument to COMMAND\n" +" -c\t\texecute COMMAND with an empty environment\n" +" -l\t\tplace a dash in the zeroth argument to COMMAND\n" +" \n" +" If the command cannot be executed, a non-interactive shell exits, " +"unless\n" +" the shell option `execfail' is set.\n" +" \n" +" Exit Status:\n" +" Returns success unless COMMAND is not found or a redirection error " +"occurs." +msgstr "" + +#: builtins.c:685 +msgid "" +"Exit the shell.\n" +" \n" +" Exits the shell with a status of N. If N is omitted, the exit status\n" +" is that of the last command executed." +msgstr "" + +#: builtins.c:694 +msgid "" +"Exit a login shell.\n" +" \n" +" Exits a login shell with exit status N. Returns an error if not " +"executed\n" +" in a login shell." +msgstr "" + +#: builtins.c:704 +msgid "" +"Display or execute commands from the history list.\n" +" \n" +" fc is used to list or edit and re-execute commands from the history " +"list.\n" +" FIRST and LAST can be numbers specifying the range, or FIRST can be a\n" +" string, which means the most recent command beginning with that\n" +" string.\n" +" \n" +" Options:\n" +" -e ENAME\tselect which editor to use. Default is FCEDIT, then " +"EDITOR,\n" +" \t\tthen vi\n" +" -l \tlist lines instead of editing\n" +" -n\tomit line numbers when listing\n" +" -r\treverse the order of the lines (newest listed first)\n" +" \n" +" With the `fc -s [pat=rep ...] [command]' format, COMMAND is\n" +" re-executed after the substitution OLD=NEW is performed.\n" +" \n" +" A useful alias to use with this is r='fc -s', so that typing `r cc'\n" +" runs the last command beginning with `cc' and typing `r' re-executes\n" +" the last command.\n" +" \n" +" Exit Status:\n" +" Returns success or status of executed command; non-zero if an error " +"occurs." +msgstr "" + +#: builtins.c:734 +msgid "" +"Move job to the foreground.\n" +" \n" +" Place the job identified by JOB_SPEC in the foreground, making it the\n" +" current job. If JOB_SPEC is not present, the shell's notion of the\n" +" current job is used.\n" +" \n" +" Exit Status:\n" +" Status of command placed in foreground, or failure if an error occurs." +msgstr "" + +#: builtins.c:749 +msgid "" +"Move jobs to the background.\n" +" \n" +" Place the jobs identified by each JOB_SPEC in the background, as if " +"they\n" +" had been started with `&'. If JOB_SPEC is not present, the shell's " +"notion\n" +" of the current job is used.\n" +" \n" +" Exit Status:\n" +" Returns success unless job control is not enabled or an error occurs." +msgstr "" + +#: builtins.c:763 +msgid "" +"Remember or display program locations.\n" +" \n" +" Determine and remember the full pathname of each command NAME. If\n" +" no arguments are given, information about remembered commands is " +"displayed.\n" +" \n" +" Options:\n" +" -d\t\tforget the remembered location of each NAME\n" +" -l\t\tdisplay in a format that may be reused as input\n" +" -p pathname\tuse PATHNAME is the full pathname of NAME\n" +" -r\t\tforget all remembered locations\n" +" -t\t\tprint the remembered location of each NAME, preceding\n" +" \t\teach location with the corresponding NAME if multiple\n" +" \t\tNAMEs are given\n" +" Arguments:\n" +" NAME\t\tEach NAME is searched for in $PATH and added to the list\n" +" \t\tof remembered commands.\n" +" \n" +" Exit Status:\n" +" Returns success unless NAME is not found or an invalid option is given." +msgstr "" + +#: builtins.c:788 +msgid "" +"Display information about builtin commands.\n" +" \n" +" Displays brief summaries of builtin commands. If PATTERN is\n" +" specified, gives detailed help on all commands matching PATTERN,\n" +" otherwise the list of help topics is printed.\n" +" \n" +" Options:\n" +" -d\toutput short description for each topic\n" +" -m\tdisplay usage in pseudo-manpage format\n" +" -s\toutput only a short usage synopsis for each topic matching\n" +" \tPATTERN\n" +" \n" +" Arguments:\n" +" PATTERN\tPattern specifiying a help topic\n" +" \n" +" Exit Status:\n" +" Returns success unless PATTERN is not found or an invalid option is " +"given." +msgstr "" + +#: builtins.c:812 +msgid "" +"Display or manipulate the history list.\n" +" \n" +" Display the history list with line numbers, prefixing each modified\n" +" entry with a `*'. An argument of N lists only the last N entries.\n" +" \n" +" Options:\n" +" -c\tclear the history list by deleting all of the entries\n" +" -d offset\tdelete the history entry at offset OFFSET.\n" +" \n" +" -a\tappend history lines from this session to the history file\n" +" -n\tread all history lines not already read from the history file\n" +" -r\tread the history file and append the contents to the history\n" +" \tlist\n" +" -w\twrite the current history to the history file\n" +" \tand append them to the history list\n" +" \n" +" -p\tperform history expansion on each ARG and display the result\n" +" \twithout storing it in the history list\n" +" -s\tappend the ARGs to the history list as a single entry\n" +" \n" +" If FILENAME is given, it is used as the history file. Otherwise,\n" +" if $HISTFILE has a value, that is used, else ~/.bash_history.\n" +" \n" +" If the $HISTTIMEFORMAT variable is set and not null, its value is used\n" +" as a format string for strftime(3) to print the time stamp associated\n" +" with each displayed history entry. No time stamps are printed " +"otherwise.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or an error occurs." +msgstr "" + +#: builtins.c:848 +msgid "" +"Display status of jobs.\n" +" \n" +" Lists the active jobs. JOBSPEC restricts output to that job.\n" +" Without options, the status of all active jobs is displayed.\n" +" \n" +" Options:\n" +" -l\tlists process IDs in addition to the normal information\n" +" -n\tlist only processes that have changed status since the last\n" +" \tnotification\n" +" -p\tlists process IDs only\n" +" -r\trestrict output to running jobs\n" +" -s\trestrict output to stopped jobs\n" +" \n" +" If -x is supplied, COMMAND is run after all job specifications that\n" +" appear in ARGS have been replaced with the process ID of that job's\n" +" process group leader.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or an error occurs.\n" +" If -x is used, returns the exit status of COMMAND." +msgstr "" + +#: builtins.c:875 +msgid "" +"Remove jobs from current shell.\n" +" \n" +" Removes each JOBSPEC argument from the table of active jobs. Without\n" +" any JOBSPECs, the shell uses its notion of the current job.\n" +" \n" +" Options:\n" +" -a\tremove all jobs if JOBSPEC is not supplied\n" +" -h\tmark each JOBSPEC so that SIGHUP is not sent to the job if the\n" +" \tshell receives a SIGHUP\n" +" -r\tremove only running jobs\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option or JOBSPEC is given." +msgstr "" + +#: builtins.c:894 +msgid "" +"Send a signal to a job.\n" +" \n" +" Send the processes identified by PID or JOBSPEC the signal named by\n" +" SIGSPEC or SIGNUM. If neither SIGSPEC nor SIGNUM is present, then\n" +" SIGTERM is assumed.\n" +" \n" +" Options:\n" +" -s sig\tSIG is a signal name\n" +" -n sig\tSIG is a signal number\n" +" -l\tlist the signal names; if arguments follow `-l' they are\n" +" \tassumed to be signal numbers for which names should be listed\n" +" \n" +" Kill is a shell builtin for two reasons: it allows job IDs to be used\n" +" instead of process IDs, and allows processes to be killed if the limit\n" +" on processes that you can create is reached.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or an error occurs." +msgstr "" + +#: builtins.c:917 +msgid "" +"Evaluate arithmetic expressions.\n" +" \n" +" Evaluate each ARG as an arithmetic expression. Evaluation is done in\n" +" fixed-width integers with no check for overflow, though division by 0\n" +" is trapped and flagged as an error. The following list of operators is\n" +" grouped into levels of equal-precedence operators. The levels are " +"listed\n" +" in order of decreasing precedence.\n" +" \n" +" \tid++, id--\tvariable post-increment, post-decrement\n" +" \t++id, --id\tvariable pre-increment, pre-decrement\n" +" \t-, +\t\tunary minus, plus\n" +" \t!, ~\t\tlogical and bitwise negation\n" +" \t**\t\texponentiation\n" +" \t*, /, %\t\tmultiplication, division, remainder\n" +" \t+, -\t\taddition, subtraction\n" +" \t<<, >>\t\tleft and right bitwise shifts\n" +" \t<=, >=, <, >\tcomparison\n" +" \t==, !=\t\tequality, inequality\n" +" \t&\t\tbitwise AND\n" +" \t^\t\tbitwise XOR\n" +" \t|\t\tbitwise OR\n" +" \t&&\t\tlogical AND\n" +" \t||\t\tlogical OR\n" +" \texpr ? expr : expr\n" +" \t\t\tconditional operator\n" +" \t=, *=, /=, %=,\n" +" \t+=, -=, <<=, >>=,\n" +" \t&=, ^=, |=\tassignment\n" +" \n" +" Shell variables are allowed as operands. The name of the variable\n" +" is replaced by its value (coerced to a fixed-width integer) within\n" +" an expression. The variable need not have its integer attribute\n" +" turned on to be used in an expression.\n" +" \n" +" Operators are evaluated in order of precedence. Sub-expressions in\n" +" parentheses are evaluated first and may override the precedence\n" +" rules above.\n" +" \n" +" Exit Status:\n" +" If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise.." +msgstr "" + +#: builtins.c:962 +msgid "" +"Read a line from the standard input and split it into fields.\n" +" \n" +" Reads a single line from the standard input, or from file descriptor FD\n" +" if the -u option is supplied. The line is split into fields as with " +"word\n" +" splitting, and the first word is assigned to the first NAME, the second\n" +" word to the second NAME, and so on, with any leftover words assigned to\n" +" the last NAME. Only the characters found in $IFS are recognized as " +"word\n" +" delimiters.\n" +" \n" +" If no NAMEs are supplied, the line read is stored in the REPLY " +"variable.\n" +" \n" +" Options:\n" +" -a array\tassign the words read to sequential indices of the array\n" +" \t\tvariable ARRAY, starting at zero\n" +" -d delim\tcontinue until the first character of DELIM is read, rather\n" +" \t\tthan newline\n" +" -e\t\tuse Readline to obtain the line in an interactive shell\n" +" -i text\tUse TEXT as the initial text for Readline\n" +" -n nchars\treturn after reading NCHARS characters rather than waiting\n" +" \t\tfor a newline\n" +" -p prompt\toutput the string PROMPT without a trailing newline before\n" +" \t\tattempting to read\n" +" -r\t\tdo not allow backslashes to escape any characters\n" +" -s\t\tdo not echo input coming from a terminal\n" +" -t timeout\ttime out and return failure if a complete line of input " +"is\n" +" \t\tnot read withint TIMEOUT seconds. The value of the TMOUT\n" +" \t\tvariable is the default timeout. TIMEOUT may be a\n" +" \t\tfractional number. If TIMEOUT is 0, read returns success only\n" +" \t\tif input is available on the specified file descriptor. The\n" +" \t\texit status is greater than 128 if the timeout is exceeded\n" +" -u fd\t\tread from file descriptor FD instead of the standard input\n" +" \n" +" Exit Status:\n" +" The return code is zero, unless end-of-file is encountered, read times " +"out,\n" +" or an invalid file descriptor is supplied as the argument to -u." +msgstr "" + +#: builtins.c:1002 +msgid "" +"Return from a shell function.\n" +" \n" +" Causes a function or sourced script to exit with the return value\n" +" specified by N. If N is omitted, the return status is that of the\n" +" last command executed within the function or script.\n" +" \n" +" Exit Status:\n" +" Returns N, or failure if the shell is not executing a function or script." +msgstr "" + +#: builtins.c:1015 +msgid "" +"Set or unset values of shell options and positional parameters.\n" +" \n" +" Change the value of shell attributes and positional parameters, or\n" +" display the names and values of shell variables.\n" +" \n" +" Options:\n" +" -a Mark variables which are modified or created for export.\n" +" -b Notify of job termination immediately.\n" +" -e Exit immediately if a command exits with a non-zero status.\n" +" -f Disable file name generation (globbing).\n" +" -h Remember the location of commands as they are looked up.\n" +" -k All assignment arguments are placed in the environment for a\n" +" command, not just those that precede the command name.\n" +" -m Job control is enabled.\n" +" -n Read commands but do not execute them.\n" +" -o option-name\n" +" Set the variable corresponding to option-name:\n" +" allexport same as -a\n" +" braceexpand same as -B\n" +" emacs use an emacs-style line editing interface\n" +" errexit same as -e\n" +" errtrace same as -E\n" +" functrace same as -T\n" +" hashall same as -h\n" +" histexpand same as -H\n" +" history enable command history\n" +" ignoreeof the shell will not exit upon reading EOF\n" +" interactive-comments\n" +" allow comments to appear in interactive commands\n" +" keyword same as -k\n" +" monitor same as -m\n" +" noclobber same as -C\n" +" noexec same as -n\n" +" noglob same as -f\n" +" nolog currently accepted but ignored\n" +" notify same as -b\n" +" nounset same as -u\n" +" onecmd same as -t\n" +" physical same as -P\n" +" pipefail the return value of a pipeline is the status of\n" +" the last command to exit with a non-zero status,\n" +" or zero if no command exited with a non-zero " +"status\n" +" posix change the behavior of bash where the default\n" +" operation differs from the Posix standard to\n" +" match the standard\n" +" privileged same as -p\n" +" verbose same as -v\n" +" vi use a vi-style line editing interface\n" +" xtrace same as -x\n" +" -p Turned on whenever the real and effective user ids do not match.\n" +" Disables processing of the $ENV file and importing of shell\n" +" functions. Turning this option off causes the effective uid and\n" +" gid to be set to the real uid and gid.\n" +" -t Exit after reading and executing one command.\n" +" -u Treat unset variables as an error when substituting.\n" +" -v Print shell input lines as they are read.\n" +" -x Print commands and their arguments as they are executed.\n" +" -B the shell will perform brace expansion\n" +" -C If set, disallow existing regular files to be overwritten\n" +" by redirection of output.\n" +" -E If set, the ERR trap is inherited by shell functions.\n" +" -H Enable ! style history substitution. This flag is on\n" +" by default when the shell is interactive.\n" +" -P If set, do not follow symbolic links when executing commands\n" +" such as cd which change the current directory.\n" +" -T If set, the DEBUG trap is inherited by shell functions.\n" +" - Assign any remaining arguments to the positional parameters.\n" +" The -x and -v options are turned off.\n" +" \n" +" Using + rather than - causes these flags to be turned off. The\n" +" flags can also be used upon invocation of the shell. The current\n" +" set of flags may be found in $-. The remaining n ARGs are positional\n" +" parameters and are assigned, in order, to $1, $2, .. $n. If no\n" +" ARGs are given, all shell variables are printed.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given." +msgstr "" + +#: builtins.c:1097 +msgid "" +"Unset values and attributes of shell variables and functions.\n" +" \n" +" For each NAME, remove the corresponding variable or function.\n" +" \n" +" Options:\n" +" -f\ttreat each NAME as a shell function\n" +" -v\ttreat each NAME as a shell variable\n" +" \n" +" Without options, unset first tries to unset a variable, and if that " +"fails,\n" +" tries to unset a function.\n" +" \n" +" Some variables cannot be unset; also see `readonly'.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or a NAME is read-only." +msgstr "" + +#: builtins.c:1117 +msgid "" +"Set export attribute for shell variables.\n" +" \n" +" Marks each NAME for automatic export to the environment of subsequently\n" +" executed commands. If VALUE is supplied, assign VALUE before " +"exporting.\n" +" \n" +" Options:\n" +" -f\trefer to shell functions\n" +" -n\tremove the export property from each NAME\n" +" -p\tdisplay a list of all exported variables and functions\n" +" \n" +" An argument of `--' disables further option processing.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or NAME is invalid." +msgstr "" + +#: builtins.c:1136 +msgid "" +"Mark shell variables as unchangeable.\n" +" \n" +" Mark each NAME as read-only; the values of these NAMEs may not be\n" +" changed by subsequent assignment. If VALUE is supplied, assign VALUE\n" +" before marking as read-only.\n" +" \n" +" Options:\n" +" -a\trefer to indexed array variables\n" +" -A\trefer to associative array variables\n" +" -f\trefer to shell functions\n" +" -p\tdisplay a list of all readonly variables and functions\n" +" \n" +" An argument of `--' disables further option processing.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or NAME is invalid." +msgstr "" + +#: builtins.c:1157 +msgid "" +"Shift positional parameters.\n" +" \n" +" Rename the positional parameters $N+1,$N+2 ... to $1,$2 ... If N is\n" +" not given, it is assumed to be 1.\n" +" \n" +" Exit Status:\n" +" Returns success unless N is negative or greater than $#." +msgstr "" + +#: builtins.c:1169 builtins.c:1184 +msgid "" +"Execute commands from a file in the current shell.\n" +" \n" +" Read and execute commands from FILENAME in the current shell. The\n" +" entries in $PATH are used to find the directory containing FILENAME.\n" +" If any ARGUMENTS are supplied, they become the positional parameters\n" +" when FILENAME is executed.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed in FILENAME; fails if\n" +" FILENAME cannot be read." +msgstr "" + +#: builtins.c:1200 +msgid "" +"Suspend shell execution.\n" +" \n" +" Suspend the execution of this shell until it receives a SIGCONT signal.\n" +" Unless forced, login shells cannot be suspended.\n" +" \n" +" Options:\n" +" -f\tforce the suspend, even if the shell is a login shell\n" +" \n" +" Exit Status:\n" +" Returns success unless job control is not enabled or an error occurs." +msgstr "" + +#: builtins.c:1216 +msgid "" +"Evaluate conditional expression.\n" +" \n" +" Exits with a status of 0 (true) or 1 (false) depending on\n" +" the evaluation of EXPR. Expressions may be unary or binary. Unary\n" +" expressions are often used to examine the status of a file. There\n" +" are string operators as well, and numeric comparison operators.\n" +" \n" +" File operators:\n" +" \n" +" -a FILE True if file exists.\n" +" -b FILE True if file is block special.\n" +" -c FILE True if file is character special.\n" +" -d FILE True if file is a directory.\n" +" -e FILE True if file exists.\n" +" -f FILE True if file exists and is a regular file.\n" +" -g FILE True if file is set-group-id.\n" +" -h FILE True if file is a symbolic link.\n" +" -L FILE True if file is a symbolic link.\n" +" -k FILE True if file has its `sticky' bit set.\n" +" -p FILE True if file is a named pipe.\n" +" -r FILE True if file is readable by you.\n" +" -s FILE True if file exists and is not empty.\n" +" -S FILE True if file is a socket.\n" +" -t FD True if FD is opened on a terminal.\n" +" -u FILE True if the file is set-user-id.\n" +" -w FILE True if the file is writable by you.\n" +" -x FILE True if the file is executable by you.\n" +" -O FILE True if the file is effectively owned by you.\n" +" -G FILE True if the file is effectively owned by your group.\n" +" -N FILE True if the file has been modified since it was last " +"read.\n" +" \n" +" FILE1 -nt FILE2 True if file1 is newer than file2 (according to\n" +" modification date).\n" +" \n" +" FILE1 -ot FILE2 True if file1 is older than file2.\n" +" \n" +" FILE1 -ef FILE2 True if file1 is a hard link to file2.\n" +" \n" +" String operators:\n" +" \n" +" -z STRING True if string is empty.\n" +" \n" +" -n STRING\n" +" STRING True if string is not empty.\n" +" \n" +" STRING1 = STRING2\n" +" True if the strings are equal.\n" +" STRING1 != STRING2\n" +" True if the strings are not equal.\n" +" STRING1 < STRING2\n" +" True if STRING1 sorts before STRING2 " +"lexicographically.\n" +" STRING1 > STRING2\n" +" True if STRING1 sorts after STRING2 lexicographically.\n" +" \n" +" Other operators:\n" +" \n" +" -o OPTION True if the shell option OPTION is enabled.\n" +" ! EXPR True if expr is false.\n" +" EXPR1 -a EXPR2 True if both expr1 AND expr2 are true.\n" +" EXPR1 -o EXPR2 True if either expr1 OR expr2 is true.\n" +" \n" +" arg1 OP arg2 Arithmetic tests. OP is one of -eq, -ne,\n" +" -lt, -le, -gt, or -ge.\n" +" \n" +" Arithmetic binary operators return true if ARG1 is equal, not-equal,\n" +" less-than, less-than-or-equal, greater-than, or greater-than-or-equal\n" +" than ARG2.\n" +" \n" +" Exit Status:\n" +" Returns success if EXPR evaluates to true; fails if EXPR evaluates to\n" +" false or an invalid argument is given." +msgstr "" + +#: builtins.c:1292 +msgid "" +"Evaluate conditional expression.\n" +" \n" +" This is a synonym for the \"test\" builtin, but the last argument must\n" +" be a literal `]', to match the opening `['." +msgstr "" + +#: builtins.c:1301 +msgid "" +"Display process times.\n" +" \n" +" Prints the accumulated user and system times for the shell and all of " +"its\n" +" child processes.\n" +" \n" +" Exit Status:\n" +" Always succeeds." +msgstr "" + +#: builtins.c:1313 +msgid "" +"Trap signals and other events.\n" +" \n" +" Defines and activates handlers to be run when the shell receives " +"signals\n" +" or other conditions.\n" +" \n" +" ARG is a command to be read and executed when the shell receives the\n" +" signal(s) SIGNAL_SPEC. If ARG is absent (and a single SIGNAL_SPEC\n" +" is supplied) or `-', each specified signal is reset to its original\n" +" value. If ARG is the null string each SIGNAL_SPEC is ignored by the\n" +" shell and by the commands it invokes.\n" +" \n" +" If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell. " +"If\n" +" a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command.\n" +" \n" +" If no arguments are supplied, trap prints the list of commands " +"associated\n" +" with each signal.\n" +" \n" +" Options:\n" +" -l\tprint a list of signal names and their corresponding numbers\n" +" -p\tdisplay the trap commands associated with each SIGNAL_SPEC\n" +" \n" +" Each SIGNAL_SPEC is either a signal name in or a signal " +"number.\n" +" Signal names are case insensitive and the SIG prefix is optional. A\n" +" signal may be sent to the shell with \"kill -signal $$\".\n" +" \n" +" Exit Status:\n" +" Returns success unless a SIGSPEC is invalid or an invalid option is " +"given." +msgstr "" + +#: builtins.c:1345 +msgid "" +"Display information about command type.\n" +" \n" +" For each NAME, indicate how it would be interpreted if used as a\n" +" command name.\n" +" \n" +" Options:\n" +" -a\tdisplay all locations containing an executable named NAME;\n" +" \tincludes aliases, builtins, and functions, if and only if\n" +" \tthe `-p' option is not also used\n" +" -f\tsuppress shell function lookup\n" +" -P\tforce a PATH search for each NAME, even if it is an alias,\n" +" \tbuiltin, or function, and returns the name of the disk file\n" +" \tthat would be executed\n" +" -p\treturns either the name of the disk file that would be executed,\n" +" \tor nothing if `type -t NAME' would not return `file'.\n" +" -t\toutput a single word which is one of `alias', `keyword',\n" +" \t`function', `builtin', `file' or `', if NAME is an alias, shell\n" +" \treserved word, shell function, shell builtin, disk file, or not\n" +" \tfound, respectively\n" +" \n" +" Arguments:\n" +" NAME\tCommand name to be interpreted.\n" +" \n" +" Exit Status:\n" +" Returns success if all of the NAMEs are found; fails if any are not " +"found." +msgstr "" + +#: builtins.c:1376 +msgid "" +"Modify shell resource limits.\n" +" \n" +" Provides control over the resources available to the shell and " +"processes\n" +" it creates, on systems that allow such control.\n" +" \n" +" Options:\n" +" -S\tuse the `soft' resource limit\n" +" -H\tuse the `hard' resource limit\n" +" -a\tall current limits are reported\n" +" -b\tthe socket buffer size\n" +" -c\tthe maximum size of core files created\n" +" -d\tthe maximum size of a process's data segment\n" +" -e\tthe maximum scheduling priority (`nice')\n" +" -f\tthe maximum size of files written by the shell and its children\n" +" -i\tthe maximum number of pending signals\n" +" -l\tthe maximum size a process may lock into memory\n" +" -m\tthe maximum resident set size\n" +" -n\tthe maximum number of open file descriptors\n" +" -p\tthe pipe buffer size\n" +" -q\tthe maximum number of bytes in POSIX message queues\n" +" -r\tthe maximum real-time scheduling priority\n" +" -s\tthe maximum stack size\n" +" -t\tthe maximum amount of cpu time in seconds\n" +" -u\tthe maximum number of user processes\n" +" -v\tthe size of virtual memory\n" +" -x\tthe maximum number of file locks\n" +" \n" +" If LIMIT is given, it is the new value of the specified resource; the\n" +" special LIMIT values `soft', `hard', and `unlimited' stand for the\n" +" current soft limit, the current hard limit, and no limit, respectively.\n" +" Otherwise, the current value of the specified resource is printed. If\n" +" no option is given, then -f is assumed.\n" +" \n" +" Values are in 1024-byte increments, except for -t, which is in seconds,\n" +" -p, which is in increments of 512 bytes, and -u, which is an unscaled\n" +" number of processes.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" + +#: builtins.c:1421 +msgid "" +"Display or set file mode mask.\n" +" \n" +" Sets the user file-creation mask to MODE. If MODE is omitted, prints\n" +" the current value of the mask.\n" +" \n" +" If MODE begins with a digit, it is interpreted as an octal number;\n" +" otherwise it is a symbolic mode string like that accepted by chmod(1).\n" +" \n" +" Options:\n" +" -p\tif MODE is omitted, output in a form that may be reused as input\n" +" -S\tmakes the output symbolic; otherwise an octal number is output\n" +" \n" +" Exit Status:\n" +" Returns success unless MODE is invalid or an invalid option is given." +msgstr "" + +#: builtins.c:1441 +msgid "" +"Wait for job completion and return exit status.\n" +" \n" +" Waits for the process identified by ID, which may be a process ID or a\n" +" job specification, and reports its termination status. If ID is not\n" +" given, waits for all currently active child processes, and the return\n" +" status is zero. If ID is a a job specification, waits for all " +"processes\n" +" in the job's pipeline.\n" +" \n" +" Exit Status:\n" +" Returns the status of ID; fails if ID is invalid or an invalid option " +"is\n" +" given." +msgstr "" + +#: builtins.c:1459 +msgid "" +"Wait for process completion and return exit status.\n" +" \n" +" Waits for the specified process and reports its termination status. If\n" +" PID is not given, all currently active child processes are waited for,\n" +" and the return code is zero. PID must be a process ID.\n" +" \n" +" Exit Status:\n" +" Returns the status of ID; fails if ID is invalid or an invalid option " +"is\n" +" given." +msgstr "" + +#: builtins.c:1474 +msgid "" +"Execute commands for each member in a list.\n" +" \n" +" The `for' loop executes a sequence of commands for each member in a\n" +" list of items. If `in WORDS ...;' is not present, then `in \"$@\"' is\n" +" assumed. For each element in WORDS, NAME is set to that element, and\n" +" the COMMANDS are executed.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" + +#: builtins.c:1488 +msgid "" +"Arithmetic for loop.\n" +" \n" +" Equivalent to\n" +" \t(( EXP1 ))\n" +" \twhile (( EXP2 )); do\n" +" \t\tCOMMANDS\n" +" \t\t(( EXP3 ))\n" +" \tdone\n" +" EXP1, EXP2, and EXP3 are arithmetic expressions. If any expression is\n" +" omitted, it behaves as if it evaluates to 1.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" + +#: builtins.c:1506 +msgid "" +"Select words from a list and execute commands.\n" +" \n" +" The WORDS are expanded, generating a list of words. The\n" +" set of expanded words is printed on the standard error, each\n" +" preceded by a number. If `in WORDS' is not present, `in \"$@\"'\n" +" is assumed. The PS3 prompt is then displayed and a line read\n" +" from the standard input. If the line consists of the number\n" +" corresponding to one of the displayed words, then NAME is set\n" +" to that word. If the line is empty, WORDS and the prompt are\n" +" redisplayed. If EOF is read, the command completes. Any other\n" +" value read causes NAME to be set to null. The line read is saved\n" +" in the variable REPLY. COMMANDS are executed after each selection\n" +" until a break command is executed.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" + +#: builtins.c:1527 +msgid "" +"Report time consumed by pipeline's execution.\n" +" \n" +" Execute PIPELINE and print a summary of the real time, user CPU time,\n" +" and system CPU time spent executing PIPELINE when it terminates.\n" +" \n" +" Options:\n" +" -p\tprint the timing summary in the portable Posix format\n" +" \n" +" The value of the TIMEFORMAT variable is used as the output format.\n" +" \n" +" Exit Status:\n" +" The return status is the return status of PIPELINE." +msgstr "" + +#: builtins.c:1544 +msgid "" +"Execute commands based on pattern matching.\n" +" \n" +" Selectively execute COMMANDS based upon WORD matching PATTERN. The\n" +" `|' is used to separate multiple patterns.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" + +#: builtins.c:1556 +msgid "" +"Execute commands based on conditional.\n" +" \n" +" The `if COMMANDS' list is executed. If its exit status is zero, then " +"the\n" +" `then COMMANDS' list is executed. Otherwise, each `elif COMMANDS' list " +"is\n" +" executed in turn, and if its exit status is zero, the corresponding\n" +" `then COMMANDS' list is executed and the if command completes. " +"Otherwise,\n" +" the `else COMMANDS' list is executed, if present. The exit status of " +"the\n" +" entire construct is the exit status of the last command executed, or " +"zero\n" +" if no condition tested true.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" + +#: builtins.c:1573 +msgid "" +"Execute commands as long as a test succeeds.\n" +" \n" +" Expand and execute COMMANDS as long as the final command in the\n" +" `while' COMMANDS has an exit status of zero.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" + +#: builtins.c:1585 +msgid "" +"Execute commands as long as a test does not succeed.\n" +" \n" +" Expand and execute COMMANDS as long as the final command in the\n" +" `until' COMMANDS has an exit status which is not zero.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" + +#: builtins.c:1597 +msgid "" +"Define shell function.\n" +" \n" +" Create a shell function named NAME. When invoked as a simple command,\n" +" NAME runs COMMANDs in the calling shell's context. When NAME is " +"invoked,\n" +" the arguments are passed to the function as $1...$n, and the function's\n" +" name is in $FUNCNAME.\n" +" \n" +" Exit Status:\n" +" Returns success unless NAME is readonly." +msgstr "" + +#: builtins.c:1611 +msgid "" +"Group commands as a unit.\n" +" \n" +" Run a set of commands in a group. This is one way to redirect an\n" +" entire set of commands.\n" +" \n" +" Exit Status:\n" +" Returns the status of the last command executed." +msgstr "" + +#: builtins.c:1623 +msgid "" +"Resume job in foreground.\n" +" \n" +" Equivalent to the JOB_SPEC argument to the `fg' command. Resume a\n" +" stopped or background job. JOB_SPEC can specify either a job name\n" +" or a job number. Following JOB_SPEC with a `&' places the job in\n" +" the background, as if the job specification had been supplied as an\n" +" argument to `bg'.\n" +" \n" +" Exit Status:\n" +" Returns the status of the resumed job." +msgstr "" + +#: builtins.c:1638 +msgid "" +"Evaluate arithmetic expression.\n" +" \n" +" The EXPRESSION is evaluated according to the rules for arithmetic\n" +" evaluation. Equivalent to \"let EXPRESSION\".\n" +" \n" +" Exit Status:\n" +" Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise." +msgstr "" + +#: builtins.c:1650 +msgid "" +"Execute conditional command.\n" +" \n" +" Returns a status of 0 or 1 depending on the evaluation of the " +"conditional\n" +" expression EXPRESSION. Expressions are composed of the same primaries " +"used\n" +" by the `test' builtin, and may be combined using the following " +"operators:\n" +" \n" +" ( EXPRESSION )\tReturns the value of EXPRESSION\n" +" ! EXPRESSION\t\tTrue if EXPRESSION is false; else false\n" +" EXPR1 && EXPR2\tTrue if both EXPR1 and EXPR2 are true; else false\n" +" EXPR1 || EXPR2\tTrue if either EXPR1 or EXPR2 is true; else false\n" +" \n" +" When the `==' and `!=' operators are used, the string to the right of\n" +" the operator is used as a pattern and pattern matching is performed.\n" +" When the `=~' operator is used, the string to the right of the operator\n" +" is matched as a regular expression.\n" +" \n" +" The && and || operators do not evaluate EXPR2 if EXPR1 is sufficient to\n" +" determine the expression's value.\n" +" \n" +" Exit Status:\n" +" 0 or 1 depending on value of EXPRESSION." +msgstr "" + +#: builtins.c:1676 +msgid "" +"Common shell variable names and usage.\n" +" \n" +" BASH_VERSION\tVersion information for this Bash.\n" +" CDPATH\tA colon-separated list of directories to search\n" +" \t\tfor directories given as arguments to `cd'.\n" +" GLOBIGNORE\tA colon-separated list of patterns describing filenames to\n" +" \t\tbe ignored by pathname expansion.\n" +" HISTFILE\tThe name of the file where your command history is stored.\n" +" HISTFILESIZE\tThe maximum number of lines this file can contain.\n" +" HISTSIZE\tThe maximum number of history lines that a running\n" +" \t\tshell can access.\n" +" HOME\tThe complete pathname to your login directory.\n" +" HOSTNAME\tThe name of the current host.\n" +" HOSTTYPE\tThe type of CPU this version of Bash is running under.\n" +" IGNOREEOF\tControls the action of the shell on receipt of an EOF\n" +" \t\tcharacter as the sole input. If set, then the value\n" +" \t\tof it is the number of EOF characters that can be seen\n" +" \t\tin a row on an empty line before the shell will exit\n" +" \t\t(default 10). When unset, EOF signifies the end of input.\n" +" MACHTYPE\tA string describing the current system Bash is running on.\n" +" MAILCHECK\tHow often, in seconds, Bash checks for new mail.\n" +" MAILPATH\tA colon-separated list of filenames which Bash checks\n" +" \t\tfor new mail.\n" +" OSTYPE\tThe version of Unix this version of Bash is running on.\n" +" PATH\tA colon-separated list of directories to search when\n" +" \t\tlooking for commands.\n" +" PROMPT_COMMAND\tA command to be executed before the printing of each\n" +" \t\tprimary prompt.\n" +" PS1\t\tThe primary prompt string.\n" +" PS2\t\tThe secondary prompt string.\n" +" PWD\t\tThe full pathname of the current directory.\n" +" SHELLOPTS\tA colon-separated list of enabled shell options.\n" +" TERM\tThe name of the current terminal type.\n" +" TIMEFORMAT\tThe output format for timing statistics displayed by the\n" +" \t\t`time' reserved word.\n" +" auto_resume\tNon-null means a command word appearing on a line by\n" +" \t\titself is first looked for in the list of currently\n" +" \t\tstopped jobs. If found there, that job is foregrounded.\n" +" \t\tA value of `exact' means that the command word must\n" +" \t\texactly match a command in the list of stopped jobs. A\n" +" \t\tvalue of `substring' means that the command word must\n" +" \t\tmatch a substring of the job. Any other value means that\n" +" \t\tthe command must be a prefix of a stopped job.\n" +" histchars\tCharacters controlling history expansion and quick\n" +" \t\tsubstitution. The first character is the history\n" +" \t\tsubstitution character, usually `!'. The second is\n" +" \t\tthe `quick substitution' character, usually `^'. The\n" +" \t\tthird is the `history comment' character, usually `#'.\n" +" HISTIGNORE\tA colon-separated list of patterns used to decide which\n" +" \t\tcommands should be saved on the history list.\n" +msgstr "" + +#: builtins.c:1733 +msgid "" +"Add directories to stack.\n" +" \n" +" Adds a directory to the top of the directory stack, or rotates\n" +" the stack, making the new top of the stack the current working\n" +" directory. With no arguments, exchanges the top two directories.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when adding\n" +" \tdirectories to the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the left of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" -N\tRotates the stack so that the Nth directory (counting\n" +" \tfrom the right of the list shown by `dirs', starting with\n" +" \tzero) is at the top.\n" +" \n" +" dir\tAdds DIR to the directory stack at the top, making it the\n" +" \tnew current working directory.\n" +" \n" +" The `dirs' builtin displays the directory stack.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid argument is supplied or the directory\n" +" change fails." +msgstr "" + +#: builtins.c:1767 +msgid "" +"Remove directories from stack.\n" +" \n" +" Removes entries from the directory stack. With no arguments, removes\n" +" the top directory from the stack, and changes to the new top directory.\n" +" \n" +" Options:\n" +" -n\tSuppresses the normal change of directory when removing\n" +" \tdirectories from the stack, so only the stack is manipulated.\n" +" \n" +" Arguments:\n" +" +N\tRemoves the Nth entry counting from the left of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd +0'\n" +" \tremoves the first directory, `popd +1' the second.\n" +" \n" +" -N\tRemoves the Nth entry counting from the right of the list\n" +" \tshown by `dirs', starting with zero. For example: `popd -0'\n" +" \tremoves the last directory, `popd -1' the next to last.\n" +" \n" +" The `dirs' builtin displays the directory stack.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid argument is supplied or the directory\n" +" change fails." +msgstr "" + +#: builtins.c:1797 +msgid "" +"Display directory stack.\n" +" \n" +" Display the list of currently remembered directories. Directories\n" +" find their way onto the list with the `pushd' command; you can get\n" +" back up through the list with the `popd' command.\n" +" \n" +" Options:\n" +" -c\tclear the directory stack by deleting all of the elements\n" +" -l\tdo not print tilde-prefixed versions of directories relative\n" +" \tto your home directory\n" +" -p\tprint the directory stack with one entry per line\n" +" -v\tprint the directory stack with one entry per line prefixed\n" +" \twith its position in the stack\n" +" \n" +" Arguments:\n" +" +N\tDisplays the Nth entry counting from the left of the list shown " +"by\n" +" \tdirs when invoked without options, starting with zero.\n" +" \n" +" -N\tDisplays the Nth entry counting from the right of the list shown " +"by\n" +" \tdirs when invoked without options, starting with zero.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" + +#: builtins.c:1826 +msgid "" +"Set and unset shell options.\n" +" \n" +" Change the setting of each shell option OPTNAME. Without any option\n" +" arguments, list all shell options with an indication of whether or not " +"each\n" +" is set.\n" +" \n" +" Options:\n" +" -o\trestrict OPTNAMEs to those defined for use with `set -o'\n" +" -p\tprint each shell option with an indication of its status\n" +" -q\tsuppress output\n" +" -s\tenable (set) each OPTNAME\n" +" -u\tdisable (unset) each OPTNAME\n" +" \n" +" Exit Status:\n" +" Returns success if OPTNAME is enabled; fails if an invalid option is\n" +" given or OPTNAME is disabled." +msgstr "" + +#: builtins.c:1847 +msgid "" +"Formats and prints ARGUMENTS under control of the FORMAT.\n" +" \n" +" Options:\n" +" -v var\tassign the output to shell variable VAR rather than\n" +" \t\tdisplay it on the standard output\n" +" \n" +" FORMAT is a character string which contains three types of objects: " +"plain\n" +" characters, which are simply copied to standard output; character " +"escape\n" +" sequences, which are converted and copied to the standard output; and\n" +" format specifications, each of which causes printing of the next " +"successive\n" +" argument.\n" +" \n" +" In addition to the standard format specifications described in printf" +"(1)\n" +" and printf(3), printf interprets:\n" +" \n" +" %b\texpand backslash escape sequences in the corresponding argument\n" +" %q\tquote the argument in a way that can be reused as shell input\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or a write or " +"assignment\n" +" error occurs." +msgstr "" + +#: builtins.c:1874 +msgid "" +"Specify how arguments are to be completed by Readline.\n" +" \n" +" For each NAME, specify how arguments are to be completed. If no " +"options\n" +" are supplied, existing completion specifications are printed in a way " +"that\n" +" allows them to be reused as input.\n" +" \n" +" Options:\n" +" -p\tprint existing completion specifications in a reusable format\n" +" -r\tremove a completion specification for each NAME, or, if no\n" +" \tNAMEs are supplied, all completion specifications\n" +" \n" +" When completion is attempted, the actions are applied in the order the\n" +" uppercase-letter options are listed above.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" + +#: builtins.c:1897 +msgid "" +"Display possible completions depending on the options.\n" +" \n" +" Intended to be used from within a shell function generating possible\n" +" completions. If the optional WORD argument is supplied, matches " +"against\n" +" WORD are generated.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or an error occurs." +msgstr "" + +#: builtins.c:1912 +msgid "" +"Modify or display completion options.\n" +" \n" +" Modify the completion options for each NAME, or, if no NAMEs are " +"supplied,\n" +" the completion currently begin executed. If no OPTIONs are givenm, " +"print\n" +" the completion options for each NAME or the current completion " +"specification.\n" +" \n" +" Options:\n" +" \t-o option\tSet completion option OPTION for each NAME\n" +" \n" +" Using `+o' instead of `-o' turns off the specified option.\n" +" \n" +" Arguments:\n" +" \n" +" Each NAME refers to a command for which a completion specification must\n" +" have previously been defined using the `complete' builtin. If no NAMEs\n" +" are supplied, compopt must be called by a function currently generating\n" +" completions, and the options for that currently-executing completion\n" +" generator are modified.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is supplied or NAME does not\n" +" have a completion specification defined." +msgstr "" + +#: builtins.c:1940 +msgid "" +"Read lines from a file into an array variable.\n" +" \n" +" Read lines from the standard input into the array variable ARRAY, or " +"from\n" +" file descriptor FD if the -u option is supplied. The variable MAPFILE " +"is\n" +" the default ARRAY.\n" +" \n" +" Options:\n" +" -n count\tCopy at most COUNT lines. If COUNT is 0, all lines are " +"copied.\n" +" -O origin\tBegin assigning to ARRAY at index ORIGIN. The default " +"index is 0.\n" +" -s count \tDiscard the first COUNT lines read.\n" +" -t\t\tRemove a trailing newline from each line read.\n" +" -u fd\t\tRead lines from file descriptor FD instead of the standard " +"input.\n" +" -C callback\tEvaluate CALLBACK each time QUANTUM lines are read.\n" +" -c quantum\tSpecify the number of lines read between each call to " +"CALLBACK.\n" +" \n" +" Arguments:\n" +" ARRAY\t\tArray variable name to use for file data.\n" +" \n" +" If -C is supplied without -c, the default quantum is 5000.\n" +" \n" +" If not supplied with an explicit origin, mapfile will clear ARRAY " +"before\n" +" assigning to it.\n" +" \n" +" Exit Status:\n" +" Returns success unless an invalid option is given or ARRAY is readonly." +msgstr "" + +#~ msgid "requesting resize" +#~ msgstr "要求調整" + +#~ msgid "just resized" +#~ msgstr "只是大小" + +#~ msgid "bug: unknown operation" +#~ msgstr "bug:未知操作" diff --git a/print_cmd.c b/print_cmd.c index d1dfd1a78..50b26a3fa 100644 --- a/print_cmd.c +++ b/print_cmd.c @@ -1,22 +1,22 @@ /* print_command -- A way to make readable commands from a command tree. */ -/* Copyright (C) 1989-2005 Free Software Foundation, Inc. +/* Copyright (C) 1989-2009 Free Software Foundation, Inc. -This file is part of GNU Bash, the Bourne Again SHell. + 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. -Bash is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. + 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #include "config.h" @@ -78,6 +78,10 @@ static void command_print_word_list __P((WORD_LIST *, char *)); static void print_case_clauses __P((PATTERN_LIST *)); static void print_redirection_list __P((REDIRECT *)); static void print_redirection __P((REDIRECT *)); +static void print_heredoc_header __P((REDIRECT *)); +static void print_heredoc_body __P((REDIRECT *)); +static void print_heredocs __P((REDIRECT *)); +static void print_deferred_heredocs __P((const char *)); static void print_for_command __P((FOR_COM *)); #if defined (ARITH_FOR_COMMAND) @@ -108,6 +112,8 @@ int command_string_index = 0; static int inside_function_def; static int skip_this_indent; static int was_heredoc; +static int printing_connection; +static REDIRECT *deferred_heredocs; /* The depth of the group commands that we are currently printing. This includes the group command that is a function body. */ @@ -134,6 +140,7 @@ make_command_string (command) COMMAND *command; { command_string_index = was_heredoc = 0; + deferred_heredocs = 0; make_command_string_internal (command); return (the_printed_command); } @@ -143,6 +150,8 @@ static void make_command_string_internal (command) COMMAND *command; { + char s[3]; + if (command == 0) cprintf (""); else @@ -215,6 +224,7 @@ make_command_string_internal (command) case cm_connection: skip_this_indent++; + printing_connection++; make_command_string_internal (command->value.Connection->first); switch (command->value.Connection->connector) @@ -223,7 +233,13 @@ make_command_string_internal (command) case '|': { char c = command->value.Connection->connector; - cprintf (" %c", c); + + s[0] = ' '; + s[1] = c; + s[2] = '\0'; + + print_deferred_heredocs (s); + if (c != '&' || command->value.Connection->second) { cprintf (" "); @@ -233,22 +249,29 @@ make_command_string_internal (command) break; case AND_AND: - cprintf (" && "); + print_deferred_heredocs (" && "); if (command->value.Connection->second) skip_this_indent++; break; case OR_OR: - cprintf (" || "); + print_deferred_heredocs (" || "); if (command->value.Connection->second) skip_this_indent++; break; case ';': +#if 0 if (was_heredoc == 0) cprintf (";"); else was_heredoc = 0; +#else + if (deferred_heredocs == 0) + cprintf (";"); + else + print_deferred_heredocs (";"); +#endif if (inside_function_def) cprintf ("\n"); @@ -267,6 +290,7 @@ make_command_string_internal (command) } make_command_string_internal (command->value.Connection->second); + printing_connection--; break; case cm_function_def: @@ -284,6 +308,12 @@ make_command_string_internal (command) cprintf (" )"); break; + case cm_coproc: + cprintf ("coproc %s ", command->value.Coproc->name); + skip_this_indent++; + make_command_string_internal (command->value.Coproc->command); + break; + default: command_error ("print_command", CMDERR_BADTYPE, command->type, 0); break; @@ -609,7 +639,12 @@ print_case_clauses (clauses) indentation += indentation_amount; make_command_string_internal (clauses->action); indentation -= indentation_amount; - newline (";;"); + if (clauses->flags & CASEPAT_FALLTHROUGH) + newline (";&"); + else if (clauses->flags & CASEPAT_TESTNEXT) + newline (";;&"); + else + newline (";;"); clauses = clauses->next; } indentation -= indentation_amount; @@ -806,6 +841,56 @@ print_simple_command (simple_command) } } +static void +print_heredocs (heredocs) + REDIRECT *heredocs; +{ + REDIRECT *hdtail; + + cprintf (" "); + for (hdtail = heredocs; hdtail; hdtail = hdtail->next) + { + print_redirection (hdtail); + cprintf ("\n"); + } + was_heredoc = 1; +} + +/* Print heredocs that are attached to the command before the connector + represented by CSTRING. The parsing semantics require us to print the + here-doc delimiters, then the connector (CSTRING), then the here-doc + bodies. We don't print the connector if it's a `;', but we use it to + note not to print an extra space after the last heredoc body and + newline. */ +static void +print_deferred_heredocs (cstring) + const char *cstring; +{ + REDIRECT *hdtail; + + for (hdtail = deferred_heredocs; hdtail; hdtail = hdtail->next) + { + cprintf (" "); + print_heredoc_header (hdtail); + } + if (cstring[0] != ';' || cstring[1]) + cprintf ("%s", cstring); + if (deferred_heredocs) + cprintf ("\n"); + for (hdtail = deferred_heredocs; hdtail; hdtail = hdtail->next) + { + print_heredoc_body (hdtail); + cprintf ("\n"); + } + if (deferred_heredocs) + { + if (cstring[0] != ';' || cstring[1]) + cprintf (" "); /* make sure there's at least one space */ + dispose_redirects (deferred_heredocs); + } + deferred_heredocs = (REDIRECT *)NULL; +} + static void print_redirection_list (redirects) REDIRECT *redirects; @@ -849,19 +934,47 @@ print_redirection_list (redirects) /* Now that we've printed all the other redirections (on one line), print the here documents. */ - if (heredocs) + if (heredocs && printing_connection) + deferred_heredocs = heredocs; + else if (heredocs) { - cprintf (" "); - for (hdtail = heredocs; hdtail; hdtail = hdtail->next) - { - print_redirection (hdtail); - cprintf ("\n"); - } + print_heredocs (heredocs); dispose_redirects (heredocs); - was_heredoc = 1; } } +static void +print_heredoc_header (redirect) + REDIRECT *redirect; +{ + int kill_leading; + char *x; + + kill_leading = redirect->instruction == r_deblank_reading_until; + + /* Here doc header */ + if (redirect->redirector != 0) + cprintf ("%d", redirect->redirector); + + /* If the here document delimiter is quoted, single-quote it. */ + if (redirect->redirectee.filename->flags & W_QUOTED) + { + x = sh_single_quote (redirect->here_doc_eof); + cprintf ("<<%s%s", kill_leading ? "-" : "", x); + free (x); + } + else + cprintf ("<<%s%s", kill_leading ? "-" : "", redirect->here_doc_eof); +} + +static void +print_heredoc_body (redirect) + REDIRECT *redirect; +{ + /* Here doc body */ + cprintf ("%s%s", redirect->redirectee.filename->word, redirect->here_doc_eof); +} + static void print_redirection (redirect) REDIRECT *redirect; @@ -899,23 +1012,10 @@ print_redirection (redirect) break; case r_deblank_reading_until: - kill_leading++; - /* ... */ case r_reading_until: - if (redirector != 0) - cprintf ("%d", redirector); - /* If the here document delimiter is quoted, single-quote it. */ - if (redirect->redirectee.filename->flags & W_QUOTED) - { - char *x; - x = sh_single_quote (redirect->here_doc_eof); - cprintf ("<<%s%s\n", kill_leading? "-" : "", x); - free (x); - } - else - cprintf ("<<%s%s\n", kill_leading? "-" : "", redirect->here_doc_eof); - cprintf ("%s%s", - redirect->redirectee.filename->word, redirect->here_doc_eof); + print_heredoc_header (redirect); + cprintf ("\n"); + print_heredoc_body (redirect); break; case r_reading_string: @@ -969,7 +1069,11 @@ print_redirection (redirect) break; case r_err_and_out: - cprintf (">&%s", redirectee->word); + cprintf ("&>%s", redirectee->word); + break; + + case r_append_err_and_out: + cprintf ("&>>%s", redirectee->word); break; case r_input_output: @@ -991,6 +1095,8 @@ reset_locals () { inside_function_def = 0; indentation = 0; + printing_connection = 0; + deferred_heredocs = 0; } static void @@ -1039,13 +1145,14 @@ print_function_def (func) /* Return the string representation of the named function. NAME is the name of the function. COMMAND is the function body. It should be a GROUP_COM. - MULTI_LINE is non-zero to pretty-print, or zero for all on one line. + flags&FUNC_MULTILINE is non-zero to pretty-print, or zero for all on one line. + flags&FUNC_EXTERNAL means convert from internal to external form */ char * -named_function_string (name, command, multi_line) +named_function_string (name, command, flags) char *name; COMMAND *command; - int multi_line; + int flags; { char *result; int old_indent, old_amount; @@ -1055,13 +1162,14 @@ named_function_string (name, command, multi_line) old_indent = indentation; old_amount = indentation_amount; command_string_index = was_heredoc = 0; + deferred_heredocs = 0; if (name && *name) cprintf ("%s ", name); cprintf ("() "); - if (multi_line == 0) + if ((flags & FUNC_MULTILINE) == 0) { indentation = 1; indentation_amount = 0; @@ -1074,7 +1182,7 @@ named_function_string (name, command, multi_line) inside_function_def++; - cprintf (multi_line ? "{ \n" : "{ "); + cprintf ((flags & FUNC_MULTILINE) ? "{ \n" : "{ "); cmdcopy = copy_command (command); /* Take any redirections specified in the function definition (which should @@ -1104,7 +1212,7 @@ named_function_string (name, command, multi_line) result = the_printed_command; - if (!multi_line) + if ((flags & FUNC_MULTILINE) == 0) { #if 0 register int i; @@ -1122,6 +1230,9 @@ named_function_string (name, command, multi_line) dispose_command (cmdcopy); + if (flags & FUNC_EXTERNAL) + result = remove_quoted_escapes (result); + return (result); } diff --git a/quit.h b/quit.h index a33543968..e7bf05b69 100644 --- a/quit.h +++ b/quit.h @@ -1,22 +1,22 @@ /* quit.h -- How to handle SIGINT gracefully. */ -/* Copyright (C) 1993 Free Software Foundation, Inc. +/* Copyright (C) 1993-2009 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. + 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #if !defined (_QUIT_H_) #define _QUIT_H_ diff --git a/redir.c b/redir.c index 0bd2d5f51..182891763 100644 --- a/redir.c +++ b/redir.c @@ -1,22 +1,23 @@ /* redir.c -- Functions to perform input and output redirection. */ -/* Copyright (C) 1997-2005 Free Software Foundation, Inc. +/* Copyright (C) 1997-2009 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public - License for more details. + 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. */ + along with Bash. If not, see . +*/ + #include "config.h" #if !defined (__GNUC__) && !defined (HAVE_ALLOCA_H) && defined (_AIX) @@ -43,8 +44,10 @@ extern int errno; #include "bashansi.h" #include "bashintl.h" - #include "memalloc.h" + +#define NEED_FPURGE_DECL + #include "shell.h" #include "flags.h" #include "execute_cmd.h" @@ -54,6 +57,8 @@ extern int errno; # include "input.h" #endif +#define SHELL_FD_BASE 10 + int expanding_redir; extern int posixly_correct; @@ -63,9 +68,10 @@ extern REDIRECT *exec_redirection_undo_list; /* Static functions defined and used in this file. */ static void add_undo_close_redirect __P((int)); static void add_exec_redirect __P((REDIRECT *)); -static int add_undo_redirect __P((int, enum r_instruction)); +static int add_undo_redirect __P((int, enum r_instruction, int)); static int expandable_redirection_filename __P((REDIRECT *)); static int stdin_redirection __P((enum r_instruction, int)); +static int undoablefd __P((int)); static int do_redirection_internal __P((REDIRECT *, int)); static int write_here_document __P((int, WORD_DESC *)); @@ -98,7 +104,8 @@ redirection_error (temp, error) exec 4294967297>x */ filename = _("file descriptor out of range"); #ifdef EBADF - else if (temp->redirector >= 0 && errno == EBADF) + /* This error can never involve NOCLOBBER */ + else if (error != NOCLOBBER_REDIRECT && temp->redirector >= 0 && error == EBADF) { /* If we're dealing with two file descriptors, we have to guess about which one is invalid; in the cases of r_{duplicating,move}_input and @@ -152,7 +159,7 @@ redirection_error (temp, error) #endif /* RESTRICTED_SHELL */ case HEREDOC_REDIRECT: - internal_error (_("cannot create temp file for here document: %s"), strerror (heredoc_errno)); + internal_error (_("cannot create temp file for here-document: %s"), strerror (heredoc_errno)); break; default: @@ -213,6 +220,7 @@ expandable_redirection_filename (redirect) case r_input_direction: case r_inputa_direction: case r_err_and_out: + case r_append_err_and_out: case r_input_output: case r_output_force: case r_duplicating_input_word: @@ -375,7 +383,7 @@ here_document_to_fd (redirectee, ri) char *filename; int r, fd, fd2; - fd = sh_mktmpfd ("sh-thd", MT_USERANDOM, &filename); + fd = sh_mktmpfd ("sh-thd", MT_USERANDOM|MT_USETMPDIR, &filename); /* If we failed for some reason other than the file existing, abort */ if (fd < 0) @@ -481,7 +489,7 @@ redir_special_open (spec, filename, flags, mode, ri) if (all_digits (filename+8) && legal_number (filename+8, &lfd) && lfd == (int)lfd) { fd = lfd; - fd = fcntl (fd, F_DUPFD, 10); + fd = fcntl (fd, F_DUPFD, SHELL_FD_BASE); } else fd = AMBIGUOUS_REDIRECT; @@ -490,13 +498,13 @@ redir_special_open (spec, filename, flags, mode, ri) #if !defined (HAVE_DEV_STDIN) case RF_DEVSTDIN: - fd = fcntl (0, F_DUPFD, 10); + fd = fcntl (0, F_DUPFD, SHELL_FD_BASE); break; case RF_DEVSTDOUT: - fd = fcntl (1, F_DUPFD, 10); + fd = fcntl (1, F_DUPFD, SHELL_FD_BASE); break; case RF_DEVSTDERR: - fd = fcntl (2, F_DUPFD, 10); + fd = fcntl (2, F_DUPFD, SHELL_FD_BASE); break; #endif @@ -606,6 +614,18 @@ redir_open (filename, flags, mode, ri) return fd; } +static int +undoablefd (fd) + int fd; +{ + int clexec; + + clexec = fcntl (fd, F_GETFD, 0); + if (clexec == -1 || (fd >= SHELL_FD_BASE && clexec == 1)) + return 0; + return 1; +} + /* Do the specific redirection requested. Returns errno or one of the special redirection errors (*_REDIRECT) in case of error, 0 on success. If flags & RX_ACTIVE is zero, then just do whatever is neccessary to @@ -720,6 +740,7 @@ do_redirection_internal (redirect, flags) case r_input_direction: case r_inputa_direction: case r_err_and_out: /* command &>filename */ + case r_append_err_and_out: /* command &>> filename */ case r_input_output: case r_output_force: if (posixly_correct && interactive_shell == 0) @@ -757,7 +778,7 @@ do_redirection_internal (redirect, flags) { /* Only setup to undo it if the thing to undo is active. */ if ((fd != redirector) && (fcntl (redirector, F_GETFD, 0) != -1)) - add_undo_redirect (redirector, ri); + add_undo_redirect (redirector, ri, -1); else add_undo_close_redirect (redirector); } @@ -766,6 +787,20 @@ do_redirection_internal (redirect, flags) check_bash_input (redirector); #endif + /* Make sure there is no pending output before we change the state + of the underlying file descriptor, since the builtins use stdio + for output. */ + if (redirector == 1 && fileno (stdout) == redirector) + { + fflush (stdout); + fpurge (stdout); + } + else if (redirector == 2 && fileno (stderr) == redirector) + { + fflush (stderr); + fpurge (stderr); + } + if ((fd != redirector) && (dup2 (fd, redirector) < 0)) return (errno); @@ -803,12 +838,12 @@ do_redirection_internal (redirect, flags) /* If we are hacking both stdout and stderr, do the stderr redirection here. */ - if (ri == r_err_and_out) + if (ri == r_err_and_out || ri == r_append_err_and_out) { if (flags & RX_ACTIVE) { if (flags & RX_UNDOABLE) - add_undo_redirect (2, ri); + add_undo_redirect (2, ri, -1); if (dup2 (1, 2) < 0) return (errno); } @@ -836,7 +871,7 @@ do_redirection_internal (redirect, flags) { /* Only setup to undo it if the thing to undo is active. */ if ((fd != redirector) && (fcntl (redirector, F_GETFD, 0) != -1)) - add_undo_redirect (redirector, ri); + add_undo_redirect (redirector, ri, -1); else add_undo_close_redirect (redirector); } @@ -878,11 +913,10 @@ do_redirection_internal (redirect, flags) { /* Only setup to undo it if the thing to undo is active. */ if (fcntl (redirector, F_GETFD, 0) != -1) - add_undo_redirect (redirector, ri); + add_undo_redirect (redirector, ri, redir_fd); else add_undo_close_redirect (redirector); } - #if defined (BUFFERED_INPUT) check_bash_input (redirector); #endif @@ -915,9 +949,21 @@ do_redirection_internal (redirect, flags) #endif SET_CLOSE_ON_EXEC (redirector); + /* When undoing saving of non-standard file descriptors (>=3) using + file descriptors >= SHELL_FD_BASE, we set the saving fd to be + close-on-exec and use a flag to decide how to set close-on-exec + when the fd is restored. */ + if ((redirect->flags & RX_INTERNAL) && (redirect->flags & RX_SAVCLEXEC) && redirector >= 3 && redir_fd >= SHELL_FD_BASE) + SET_OPEN_ON_EXEC (redirector); + /* dup-and-close redirection */ if (ri == r_move_input || ri == r_move_output) - close (redir_fd); + { + close (redir_fd); +#if defined (COPROCESS_SUPPORT) + coproc_fdchk (redir_fd); /* XXX - loses coproc fds */ +#endif + } } break; @@ -925,7 +971,11 @@ do_redirection_internal (redirect, flags) if (flags & RX_ACTIVE) { if ((flags & RX_UNDOABLE) && (fcntl (redirector, F_GETFD, 0) != -1)) - add_undo_redirect (redirector, ri); + add_undo_redirect (redirector, ri, -1); + +#if defined (COPROCESS_SUPPORT) + coproc_fdchk (redirector); +#endif #if defined (BUFFERED_INPUT) check_bash_input (redirector); @@ -943,22 +993,30 @@ do_redirection_internal (redirect, flags) return (0); } -#define SHELL_FD_BASE 10 - /* Remember the file descriptor associated with the slot FD, on REDIRECTION_UNDO_LIST. Note that the list will be reversed before it is executed. Any redirections that need to be undone even if REDIRECTION_UNDO_LIST is discarded by the exec builtin - are also saved on EXEC_REDIRECTION_UNDO_LIST. */ + are also saved on EXEC_REDIRECTION_UNDO_LIST. FDBASE says where to + start the duplicating. If it's less than SHELL_FD_BASE, we're ok, + and can use SHELL_FD_BASE (-1 == don't care). If it's >= SHELL_FD_BASE, + we have to make sure we don't use fdbase to save a file descriptor, + since we're going to use it later (e.g., make sure we don't save fd 0 + to fd 10 if we have a redirection like 0<&10). If the value of fdbase + puts the process over its fd limit, causing fcntl to fail, we try + again with SHELL_FD_BASE. */ static int -add_undo_redirect (fd, ri) +add_undo_redirect (fd, ri, fdbase) int fd; enum r_instruction ri; + int fdbase; { int new_fd, clexec_flag; REDIRECT *new_redirect, *closer, *dummy_redirect; - new_fd = fcntl (fd, F_DUPFD, SHELL_FD_BASE); + new_fd = fcntl (fd, F_DUPFD, (fdbase < SHELL_FD_BASE) ? SHELL_FD_BASE : fdbase+1); + if (new_fd < 0) + new_fd = fcntl (fd, F_DUPFD, SHELL_FD_BASE); if (new_fd < 0) { @@ -979,6 +1037,8 @@ add_undo_redirect (fd, ri) else new_redirect = make_redirection (fd, r_duplicating_output, rd); new_redirect->flags |= RX_INTERNAL; + if (clexec_flag == 0 && fd >= 3 && new_fd >= SHELL_FD_BASE) + new_redirect->flags |= RX_SAVCLEXEC; new_redirect->next = closer; closer->next = redirection_undo_list; @@ -990,17 +1050,19 @@ add_undo_redirect (fd, ri) /* experimental: if we're saving a redirection to undo for a file descriptor above SHELL_FD_BASE, add a redirection to be undone if the exec builtin - causes redirections to be discarded. */ - if (fd >= SHELL_FD_BASE && ri != r_close_this) + causes redirections to be discarded. There needs to be a difference + between fds that are used to save other fds and then are the target of + user redirctions and fds that are just the target of user redirections. + We use the close-on-exec flag to tell the difference; fds > SHELL_FD_BASE + that have the close-on-exec flag set are assumed to be fds used internally + to save others. */ + if (fd >= SHELL_FD_BASE && ri != r_close_this && clexec_flag) { rd.dest = new_fd; new_redirect = make_redirection (fd, r_duplicating_output, rd); -#if 0 - closer = copy_redirects (new_redirect); - add_exec_redirect (closer); -#else + new_redirect->flags |= RX_INTERNAL; + add_exec_redirect (new_redirect); -#endif } /* File descriptors used only for saving others should always be @@ -1013,6 +1075,8 @@ add_undo_redirect (fd, ri) and the restore above in do_redirection() will take care of it. */ if (clexec_flag || fd < 3) SET_CLOSE_ON_EXEC (new_fd); + else if (redirection_undo_list->flags & RX_SAVCLEXEC) + SET_CLOSE_ON_EXEC (new_fd); return (0); } @@ -1064,6 +1128,7 @@ stdin_redirection (ri, redirector) case r_appending_to: case r_duplicating_output: case r_err_and_out: + case r_append_err_and_out: case r_output_force: case r_duplicating_output_word: return (0); diff --git a/redir.h b/redir.h index 3eb726147..474acda1d 100644 --- a/redir.h +++ b/redir.h @@ -1,22 +1,22 @@ /* redir.h - functions from redir.c. */ -/* Copyright (C) 1997 Free Software Foundation, Inc. +/* Copyright (C) 1997, 2001, 2005, 2008,2009 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. + 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #if !defined (_REDIR_H_) #define _REDIR_H_ @@ -29,6 +29,7 @@ #define RX_CLEXEC 0x04 /* set close-on-exec for opened fds > 2 */ #define RX_INTERNAL 0x08 #define RX_USER 0x10 +#define RX_SAVCLEXEC 0x20 /* set close-on-exec off in restored fd even though saved on has it on */ extern void redirection_error __P((REDIRECT *, int)); extern int do_redirections __P((REDIRECT *, int)); diff --git a/shell.c b/shell.c index 6693f852e..b28e3b485 100644 --- a/shell.c +++ b/shell.c @@ -1,23 +1,24 @@ /* shell.c -- GNU's idea of the POSIX shell specification. */ -/* Copyright (C) 1987-2005 Free Software Foundation, Inc. +/* Copyright (C) 1987-2009 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public - License for more details. + 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. + along with Bash. If not, see . +*/ +/* Birthdate: Sunday, January 10th, 1988. Initial author: Brian Fox @@ -71,6 +72,10 @@ # include #endif +#if defined (READLINE) +# include "bashline.h" +#endif + #include #include @@ -139,6 +144,12 @@ int interactive_shell = 0; shell exits. */ int hup_on_exit = 0; +/* Non-zero means to list status of running and stopped jobs at shell exit */ +int check_jobs_at_exit = 0; + +/* Non-zero means to change to a directory name supplied as a command name */ +int autocd = 0; + /* Tells what state the shell was in when it started: 0 = non-interactive shell script 1 = interactive @@ -172,6 +183,13 @@ time_t shell_start_time; /* Are we running in an emacs shell window? */ int running_under_emacs; +/* Do we have /dev/fd? */ +#ifdef HAVE_DEV_FD +int have_devfd = HAVE_DEV_FD; +#else +int have_devfd = 0; +#endif + /* The name of the .(shell)rc file. */ static char *bashrc_file = "~/.bashrc"; @@ -212,8 +230,8 @@ int posixly_correct = 0; /* Non-zero means posix.2 superset. */ /* Some long-winded argument names. These are obviously new. */ #define Int 1 #define Charp 2 -struct { - char *name; +static const struct { + const char *name; int type; int *int_value; char **char_value; @@ -292,6 +310,7 @@ static int uidget __P((void)); static void init_interactive __P((void)); static void init_noninteractive __P((void)); +static void init_interactive_script __P((void)); static void set_shell_name __P((char *)); static void shell_initialize __P((void)); @@ -535,19 +554,26 @@ main (argc, argv, env) set_default_lang (); set_default_locale_vars (); + /* + * M-x term -> TERM=eterm EMACS=22.1 (term:0.96) (eterm) + * M-x shell -> TERM=dumb EMACS=t (no line editing) + * M-x terminal -> TERM=emacs-em7955 EMACS= (line editing) + */ if (interactive_shell) { char *term, *emacs; term = get_string_value ("TERM"); - no_line_editing |= term && (STREQ (term, "emacs")); emacs = get_string_value ("EMACS"); - running_under_emacs = emacs ? ((strstr (emacs, "term") != 0) ? 2 : 1) : 0; -#if 0 - no_line_editing |= emacs && emacs[0] == 't' && emacs[1] == '\0'; -#else + + /* Not sure any emacs terminal emulator sets TERM=emacs any more */ + no_line_editing |= term && (STREQ (term, "emacs")); no_line_editing |= emacs && emacs[0] == 't' && emacs[1] == '\0' && STREQ (term, "dumb"); -#endif + + /* running_under_emacs == 2 for `eterm' */ + running_under_emacs = (emacs != 0) || (term && STREQN (term, "emacs", 5)); + running_under_emacs += term && STREQN (term, "eterm", 5) && strstr (emacs, "term"); + if (running_under_emacs) gnu_error_format = 1; } @@ -687,8 +713,8 @@ main (argc, argv, env) if (interactive_shell) { /* Set up for checking for presence of mail. */ - remember_mail_dates (); reset_mail_timer (); + init_mail_dates (); #if defined (HISTORY) /* Initialize the interactive history stuff. */ @@ -880,6 +906,10 @@ exit_shell (s) maybe_save_shell_history (); #endif /* HISTORY */ +#if defined (COPROCESS_SUPPORT) + coproc_flush (); +#endif + #if defined (JOB_CONTROL) /* If the user has run `shopt -s huponexit', hangup all jobs when we exit an interactive login shell. ksh does this unconditionally. */ @@ -1416,7 +1446,7 @@ open_shell_script (script_name) } else if (sample_len > 0 && (check_binary_file (sample, sample_len))) { - internal_error ("%s: cannot execute binary file", filename); + internal_error (_("%s: cannot execute binary file"), filename); exit (EX_BINARY_FILE); } /* Now rewind the file back to the beginning. */ @@ -1426,7 +1456,7 @@ open_shell_script (script_name) /* Open the script. But try to move the file descriptor to a randomly large one, in the hopes that any descriptors used by the script will not match with ours. */ - fd = move_to_high_fd (fd, 0, -1); + fd = move_to_high_fd (fd, 1, -1); #if defined (__CYGWIN__) && defined (O_TEXT) setmode (fd, O_TEXT); @@ -1467,7 +1497,7 @@ open_shell_script (script_name) /* But if a script is called with something like `bash -i scriptname', we need to do a non-interactive setup here, since we didn't do it before. */ - init_noninteractive (); + init_interactive_script (); free (filename); return (fd); @@ -1511,6 +1541,7 @@ unset_bash_input (check_zero) { close_buffered_fd (default_buffered_input); default_buffered_input = bash_input.location.buffered_fd = -1; + bash_input.type = st_none; /* XXX */ } #else /* !BUFFERED_INPUT */ if (default_input) @@ -1560,8 +1591,8 @@ set_shell_name (argv0) static void init_interactive () { - interactive_shell = startup_state = interactive = 1; - expand_aliases = 1; + expand_aliases = interactive_shell = startup_state = 1; + interactive = 1; } static void @@ -1578,6 +1609,13 @@ init_noninteractive () #endif /* JOB_CONTROL */ } +static void +init_interactive_script () +{ + init_noninteractive (); + expand_aliases = interactive_shell = startup_state = 1; +} + void get_current_user_info () { @@ -1719,6 +1757,12 @@ shell_reinitialize () delete_all_contexts (shell_variables); delete_all_variables (shell_functions); + reinit_special_variables (); + +#if defined (READLINE) + bashline_reinitialize (); +#endif + shell_reinitialized = 1; } @@ -1731,7 +1775,7 @@ show_shell_usage (fp, extra) char *set_opts, *s, *t; if (extra) - fprintf (fp, "GNU bash, version %s-(%s)\n", shell_version_string (), MACHTYPE); + fprintf (fp, _("GNU bash, version %s-(%s)\n"), shell_version_string (), MACHTYPE); fprintf (fp, _("Usage:\t%s [GNU long option] [option] ...\n\t%s [GNU long option] [option] script-file ...\n"), shell_name, shell_name); fputs (_("GNU long options:\n"), fp); diff --git a/shell.h b/shell.h index 8b6a4fc59..bc3890325 100644 --- a/shell.h +++ b/shell.h @@ -1,22 +1,22 @@ /* shell.h -- The data structures used by the shell */ -/* Copyright (C) 1993-2002 Free Software Foundation, Inc. +/* Copyright (C) 1993-2009 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. + 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #ifdef HAVE_CONFIG_H #include "config.h" diff --git a/sig.c b/sig.c index c479a4a0d..f9beee144 100644 --- a/sig.c +++ b/sig.c @@ -1,22 +1,22 @@ /* sig.c - interface for shell signal handlers and signal initialization. */ -/* Copyright (C) 1994-2006 Free Software Foundation, Inc. +/* Copyright (C) 1994-2009 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. + 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #include "config.h" @@ -56,6 +56,8 @@ extern int last_command_exit_value; extern int last_command_exit_signal; extern int return_catch_flag; extern int loop_level, continuing, breaking; +extern int executing_list; +extern int comsub_ignore_return; extern int parse_and_execute_level, shell_initialized; /* Non-zero after SIGINT. */ @@ -366,7 +368,7 @@ top_level_cleanup () run_unwind_protects (); loop_level = continuing = breaking = 0; - return_catch_flag = 0; + executing_list = comsub_ignore_return = return_catch_flag = 0; } /* What to do when we've been interrupted, and it is safe to handle it. */ @@ -391,7 +393,7 @@ throw_to_top_level () /* Run any traps set on SIGINT. */ run_interrupt_trap (); - /* Cleanup string parser environment. */ + /* Clean up string parser environment. */ while (parse_and_execute_level) parse_and_execute_cleanup (); @@ -408,7 +410,7 @@ throw_to_top_level () #if defined (READLINE) if (interactive) - bashline_reinitialize (); + bashline_reset (); #endif /* READLINE */ #if defined (PROCESS_SUBSTITUTION) @@ -417,7 +419,7 @@ throw_to_top_level () run_unwind_protects (); loop_level = continuing = breaking = 0; - return_catch_flag = 0; + executing_list = comsub_ignore_return = return_catch_flag = 0; if (interactive && print_newline) { @@ -448,6 +450,7 @@ termsig_sighandler (sig) { terminating_signal = sig; + /* XXX - should this also trigger when interrupt_immediately is set? */ if (terminate_immediately) { terminate_immediately = 0; @@ -490,6 +493,10 @@ termsig_handler (sig) unlink_fifo_list (); #endif /* PROCESS_SUBSTITUTION */ + /* Reset execution context */ + loop_level = continuing = breaking = 0; + executing_list = comsub_ignore_return = return_catch_flag = 0; + run_exit_trap (); set_signal_handler (sig, SIG_DFL); kill (getpid (), sig); diff --git a/sig.h b/sig.h index 46bded81f..d67f6cca5 100644 --- a/sig.h +++ b/sig.h @@ -1,22 +1,22 @@ /* sig.h -- header file for signal handler definitions. */ -/* Copyright (C) 1994-2006 Free Software Foundation, Inc. +/* Copyright (C) 1994-2009 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. + 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ /* Make sure that this is included *after* config.h! */ diff --git a/siglist.c b/siglist.c index 127facf6a..27eb26a44 100644 --- a/siglist.c +++ b/siglist.c @@ -1,22 +1,22 @@ /* siglist.c -- signal list for those machines that don't have one. */ -/* Copyright (C) 1989 Free Software Foundation, Inc. +/* Copyright (C) 1989-2009 Free Software Foundation, Inc. -This file is part of GNU Bash, the Bourne Again SHell. + 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. -Bash is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. + 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #include "config.h" @@ -44,26 +44,26 @@ initialize_siglist () for (i = 0; i < NSIG; i++) sys_siglist[i] = (char *)0x0; - sys_siglist[0] = "Bogus signal"; + sys_siglist[0] = _("Bogus signal"); #if defined (SIGHUP) - sys_siglist[SIGHUP] = "Hangup"; + sys_siglist[SIGHUP] = _("Hangup"); #endif #if defined (SIGINT) - sys_siglist[SIGINT] = "Interrupt"; + sys_siglist[SIGINT] = _("Interrupt"); #endif #if defined (SIGQUIT) - sys_siglist[SIGQUIT] = "Quit"; + sys_siglist[SIGQUIT] = _("Quit"); #endif #if defined (SIGILL) - sys_siglist[SIGILL] = "Illegal instruction"; + sys_siglist[SIGILL] = _("Illegal instruction"); #endif #if defined (SIGTRAP) - sys_siglist[SIGTRAP] = "BPT trace/trap"; + sys_siglist[SIGTRAP] = _("BPT trace/trap"); #endif #if defined (SIGIOT) && !defined (SIGABRT) @@ -71,59 +71,59 @@ initialize_siglist () #endif #if defined (SIGABRT) - sys_siglist[SIGABRT] = "ABORT instruction"; + sys_siglist[SIGABRT] = _("ABORT instruction"); #endif #if defined (SIGEMT) - sys_siglist[SIGEMT] = "EMT instruction"; + sys_siglist[SIGEMT] = _("EMT instruction"); #endif #if defined (SIGFPE) - sys_siglist[SIGFPE] = "Floating point exception"; + sys_siglist[SIGFPE] = _("Floating point exception"); #endif #if defined (SIGKILL) - sys_siglist[SIGKILL] = "Killed"; + sys_siglist[SIGKILL] = _("Killed"); #endif #if defined (SIGBUS) - sys_siglist[SIGBUS] = "Bus error"; + sys_siglist[SIGBUS] = _("Bus error"); #endif #if defined (SIGSEGV) - sys_siglist[SIGSEGV] = "Segmentation fault"; + sys_siglist[SIGSEGV] = _("Segmentation fault"); #endif #if defined (SIGSYS) - sys_siglist[SIGSYS] = "Bad system call"; + sys_siglist[SIGSYS] = _("Bad system call"); #endif #if defined (SIGPIPE) - sys_siglist[SIGPIPE] = "Broken pipe"; + sys_siglist[SIGPIPE] = _("Broken pipe"); #endif #if defined (SIGALRM) - sys_siglist[SIGALRM] = "Alarm clock"; + sys_siglist[SIGALRM] = _("Alarm clock"); #endif #if defined (SIGTERM) - sys_siglist[SIGTERM] = "Terminated"; + sys_siglist[SIGTERM] = _("Terminated"); #endif #if defined (SIGURG) - sys_siglist[SIGURG] = "Urgent IO condition"; + sys_siglist[SIGURG] = _("Urgent IO condition"); #endif #if defined (SIGSTOP) - sys_siglist[SIGSTOP] = "Stopped (signal)"; + sys_siglist[SIGSTOP] = _("Stopped (signal)"); #endif #if defined (SIGTSTP) - sys_siglist[SIGTSTP] = "Stopped"; + sys_siglist[SIGTSTP] = _("Stopped"); #endif #if defined (SIGCONT) - sys_siglist[SIGCONT] = "Continue"; + sys_siglist[SIGCONT] = _("Continue"); #endif #if !defined (SIGCHLD) && defined (SIGCLD) @@ -131,87 +131,87 @@ initialize_siglist () #endif #if defined (SIGCHLD) - sys_siglist[SIGCHLD] = "Child death or stop"; + sys_siglist[SIGCHLD] = _("Child death or stop"); #endif #if defined (SIGTTIN) - sys_siglist[SIGTTIN] = "Stopped (tty input)"; + sys_siglist[SIGTTIN] = _("Stopped (tty input)"); #endif #if defined (SIGTTOU) - sys_siglist[SIGTTOU] = "Stopped (tty output)"; + sys_siglist[SIGTTOU] = _("Stopped (tty output)"); #endif #if defined (SIGIO) - sys_siglist[SIGIO] = "I/O ready"; + sys_siglist[SIGIO] = _("I/O ready"); #endif #if defined (SIGXCPU) - sys_siglist[SIGXCPU] = "CPU limit"; + sys_siglist[SIGXCPU] = _("CPU limit"); #endif #if defined (SIGXFSZ) - sys_siglist[SIGXFSZ] = "File limit"; + sys_siglist[SIGXFSZ] = _("File limit"); #endif #if defined (SIGVTALRM) - sys_siglist[SIGVTALRM] = "Alarm (virtual)"; + sys_siglist[SIGVTALRM] = _("Alarm (virtual)"); #endif #if defined (SIGPROF) - sys_siglist[SIGPROF] = "Alarm (profile)"; + sys_siglist[SIGPROF] = _("Alarm (profile)"); #endif #if defined (SIGWINCH) - sys_siglist[SIGWINCH] = "Window changed"; + sys_siglist[SIGWINCH] = _("Window changed"); #endif #if defined (SIGLOST) - sys_siglist[SIGLOST] = "Record lock"; + sys_siglist[SIGLOST] = _("Record lock"); #endif #if defined (SIGUSR1) - sys_siglist[SIGUSR1] = "User signal 1"; + sys_siglist[SIGUSR1] = _("User signal 1"); #endif #if defined (SIGUSR2) - sys_siglist[SIGUSR2] = "User signal 2"; + sys_siglist[SIGUSR2] = _("User signal 2"); #endif #if defined (SIGMSG) - sys_siglist[SIGMSG] = "HFT input data pending"; + sys_siglist[SIGMSG] = _("HFT input data pending"); #endif #if defined (SIGPWR) - sys_siglist[SIGPWR] = "power failure imminent"; + sys_siglist[SIGPWR] = _("power failure imminent"); #endif #if defined (SIGDANGER) - sys_siglist[SIGDANGER] = "system crash imminent"; + sys_siglist[SIGDANGER] = _("system crash imminent"); #endif #if defined (SIGMIGRATE) - sys_siglist[SIGMIGRATE] = "migrate process to another CPU"; + sys_siglist[SIGMIGRATE] = _("migrate process to another CPU"); #endif #if defined (SIGPRE) - sys_siglist[SIGPRE] = "programming error"; + sys_siglist[SIGPRE] = _("programming error"); #endif #if defined (SIGGRANT) - sys_siglist[SIGGRANT] = "HFT monitor mode granted"; + sys_siglist[SIGGRANT] = _("HFT monitor mode granted"); #endif #if defined (SIGRETRACT) - sys_siglist[SIGRETRACT] = "HFT monitor mode retracted"; + sys_siglist[SIGRETRACT] = _("HFT monitor mode retracted"); #endif #if defined (SIGSOUND) - sys_siglist[SIGSOUND] = "HFT sound sequence has completed"; + sys_siglist[SIGSOUND] = _("HFT sound sequence has completed"); #endif #if defined (SIGINFO) - sys_siglist[SIGINFO] = "Information request"; + sys_siglist[SIGINFO] = _("Information request"); #endif for (i = 0; i < NSIG; i++) @@ -219,9 +219,9 @@ initialize_siglist () if (!sys_siglist[i]) { sys_siglist[i] = - (char *)xmalloc (10 + strlen ("Unknown Signal #")); + (char *)xmalloc (10 + strlen (_("Unknown Signal #"))); - sprintf (sys_siglist[i], "Unknown Signal #%d", i); + sprintf (sys_siglist[i], _("Unknown Signal #%d"), i); } } } diff --git a/siglist.h b/siglist.h index d185691a0..4cb65308f 100644 --- a/siglist.h +++ b/siglist.h @@ -1,22 +1,22 @@ /* siglist.h -- encapsulate various definitions for sys_siglist */ -/* Copyright (C) 1993 Free Software Foundation, Inc. +/* Copyright (C) 1993, 2001, 2005, 2008,2009 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. + 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #if !defined (_SIGLIST_H_) #define _SIGLIST_H_ diff --git a/stringlib.c b/stringlib.c index 97280cf5a..09866d5da 100644 --- a/stringlib.c +++ b/stringlib.c @@ -1,22 +1,22 @@ /* stringlib.c - Miscellaneous string functions. */ -/* Copyright (C) 1996-2002 Free Software Foundation, Inc. +/* Copyright (C) 1996-2009 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. + 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #include "config.h" @@ -170,7 +170,10 @@ strsub (string, pat, rep, global) temp[templen++] = string[i++]; } } - temp[templen] = 0; + if (temp) + temp[templen] = 0; + else + temp = savestring (string); return (temp); } diff --git a/subst.c b/subst.c index 089457fb0..13e960dde 100644 --- a/subst.c +++ b/subst.c @@ -4,30 +4,32 @@ /* ``Have a little faith, there's magic in the night. You ain't a beauty, but, hey, you're alright.'' */ -/* Copyright (C) 1987-2007 Free Software Foundation, Inc. +/* Copyright (C) 1987-2009 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. + 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #include "config.h" #include "bashtypes.h" #include #include "chartypes.h" -#include +#if defined (HAVE_PWD_H) +# include +#endif #include #include @@ -53,6 +55,8 @@ #include "builtins/getopt.h" #include "builtins/common.h" +#include "builtins/builtext.h" + #include #include @@ -69,6 +73,7 @@ extern int errno; #define VT_POSPARMS 1 #define VT_ARRAYVAR 2 #define VT_ARRAYMEMBER 3 +#define VT_ASSOCVAR 4 #define VT_STARSUB 128 /* $* or ${array[*]} -- used to split */ @@ -78,12 +83,6 @@ extern int errno; #define ST_SQUOTE 0x04 /* unused yet */ #define ST_DQUOTE 0x08 /* unused yet */ -/* Flags for the string extraction functions. */ -#define EX_NOALLOC 0x01 /* just skip; don't return substring */ -#define EX_VARNAME 0x02 /* variable name; for string_extract () */ -#define EX_REQMATCH 0x04 /* closing/matching delimiter required */ -#define EX_COMMAND 0x08 /* extracting a shell script/command */ - /* Flags for the `pflags' argument to param_expand() */ #define PF_NOCOMSUB 0x01 /* Do not perform command substitution */ @@ -134,6 +133,8 @@ size_t ifs_firstc_len; unsigned char ifs_firstc; #endif +int assigning_in_environment; + /* Extern functions and variables from different files. */ extern int last_command_exit_value, last_command_exit_signal; extern int subshell_environment; @@ -202,11 +203,8 @@ static WORD_LIST *expand_string_leave_quoted __P((char *, int)); static WORD_LIST *expand_string_for_rhs __P((char *, int, int *, int *)); static WORD_LIST *list_quote_escapes __P((WORD_LIST *)); -static char *dequote_escapes __P((char *)); static char *make_quoted_char __P((int)); static WORD_LIST *quote_list __P((WORD_LIST *)); -static char *remove_quoted_escapes __P((char *)); -static char *remove_quoted_nulls __P((char *)); static int unquoted_substring __P((char *, char *)); static int unquoted_member __P((int, char *)); @@ -216,7 +214,7 @@ static SHELL_VAR *do_compound_assignment __P((char *, char *, int)); #endif static int do_assignment_internal __P((const WORD_DESC *, int)); -static char *string_extract_verbatim __P((char *, size_t, int *, char *)); +static char *string_extract_verbatim __P((char *, size_t, int *, char *, int)); static char *string_extract __P((char *, int *, char *, int)); static char *string_extract_double_quoted __P((char *, int *, int)); static inline char *string_extract_single_quoted __P((char *, int *)); @@ -248,13 +246,13 @@ static char *variable_remove_pattern __P((char *, char *, int, int)); static char *list_remove_pattern __P((WORD_LIST *, char *, int, int, int)); static char *parameter_list_remove_pattern __P((int, char *, int, int)); #ifdef ARRAY_VARS -static char *array_remove_pattern __P((ARRAY *, char *, int, char *, int)); +static char *array_remove_pattern __P((SHELL_VAR *, char *, int, char *, int)); #endif static char *parameter_brace_remove_pattern __P((char *, char *, char *, int, int)); static char *process_substitute __P((char *, int)); -static char *read_comsub __P((int, int)); +static char *read_comsub __P((int, int, int *)); #ifdef ARRAY_VARS static arrayind_t array_length_reference __P((char *)); @@ -273,7 +271,7 @@ static int valid_length_expression __P((char *)); static intmax_t parameter_brace_expand_length __P((char *)); static char *skiparith __P((char *, int)); -static int verify_substring_values __P((char *, char *, int, intmax_t *, intmax_t *)); +static int verify_substring_values __P((SHELL_VAR *, char *, char *, int, intmax_t *, intmax_t *)); static int get_var_and_type __P((char *, char *, int, SHELL_VAR **, char **)); static char *mb_substring __P((char *, int, int)); static char *parameter_brace_substring __P((char *, char *, char *, int)); @@ -282,6 +280,9 @@ static char *pos_params_pat_subst __P((char *, char *, char *, int)); static char *parameter_brace_patsub __P((char *, char *, char *, int)); +static char *pos_params_casemod __P((char *, char *, int, int)); +static char *parameter_brace_casemod __P((char *, char *, int, char *, int)); + static WORD_DESC *parameter_brace_expand __P((char *, int *, int, int *, int *)); static WORD_DESC *param_expand __P((char *, int *, int, int *, int *, int *, int *, int)); @@ -296,6 +297,9 @@ static WORD_LIST *glob_expand_word_list __P((WORD_LIST *, int)); #ifdef BRACE_EXPANSION static WORD_LIST *brace_expand_word_list __P((WORD_LIST *, int)); #endif +#if defined (ARRAY_VARS) +static int make_internal_declare __P((char *, char *)); +#endif static WORD_LIST *shell_expand_word_list __P((WORD_LIST *, int)); static WORD_LIST *expand_word_list_internal __P((WORD_LIST *, int)); @@ -543,11 +547,11 @@ sub_append_number (number, target, indx, size) /* Extract a substring from STRING, starting at SINDEX and ending with one of the characters in CHARLIST. Don't make the ending character part of the string. Leave SINDEX pointing at the ending character. - Understand about backslashes in the string. If (flags & EX_VARNAME) + Understand about backslashes in the string. If (flags & SX_VARNAME) is non-zero, and array variables have been compiled into the shell, everything between a `[' and a corresponding `]' is skipped over. - If (flags & EX_NOALLOC) is non-zero, don't return the substring, just - update SINDEX. If (flags & EX_REQMATCH) is non-zero, the string must + If (flags & SX_NOALLOC) is non-zero, don't return the substring, just + update SINDEX. If (flags & SX_REQMATCH) is non-zero, the string must contain a closing character from CHARLIST. */ static char * string_extract (string, sindex, charlist, flags) @@ -575,7 +579,7 @@ string_extract (string, sindex, charlist, flags) break; } #if defined (ARRAY_VARS) - else if ((flags & EX_VARNAME) && c == '[') + else if ((flags & SX_VARNAME) && c == '[') { int ni; /* If this is an array subscript, skip over it and continue. */ @@ -595,13 +599,13 @@ string_extract (string, sindex, charlist, flags) /* If we had to have a matching delimiter and didn't find one, return an error and let the caller deal with it. */ - if ((flags & EX_REQMATCH) && found == 0) + if ((flags & SX_REQMATCH) && found == 0) { *sindex = i; return (&extract_string_error); } - temp = (flags & EX_NOALLOC) ? (char *)NULL : substring (string, *sindex, i); + temp = (flags & SX_NOALLOC) ? (char *)NULL : substring (string, *sindex, i); *sindex = i; return (temp); @@ -712,7 +716,7 @@ add_one_character: si = i + 2; if (string[i + 1] == LPAREN) - ret = extract_delimited_string (string, &si, "$(", "(", ")", EX_COMMAND); /*)*/ + ret = extract_command_subst (string, &si, 0); else ret = extract_dollar_brace_string (string, &si, 1, 0); @@ -814,9 +818,9 @@ skip_double_quoted (string, slen, sind) { si = i + 2; if (string[i + 1] == LPAREN) - ret = extract_delimited_string (string, &si, "$(", "(", ")", EX_NOALLOC|EX_COMMAND); /* ) */ + ret = extract_command_subst (string, &si, SX_NOALLOC); else - ret = extract_dollar_brace_string (string, &si, 0, EX_NOALLOC); + ret = extract_dollar_brace_string (string, &si, 1, SX_NOALLOC); i = si + 1; continue; @@ -886,11 +890,12 @@ skip_single_quoted (string, slen, sind) /* Just like string_extract, but doesn't hack backslashes or any of that other stuff. Obeys CTLESC quoting. Used to do splitting on $IFS. */ static char * -string_extract_verbatim (string, slen, sindex, charlist) +string_extract_verbatim (string, slen, sindex, charlist, flags) char *string; size_t slen; int *sindex; char *charlist; + int flags; { register int i = *sindex; #if defined (HANDLE_MULTIBYTE) @@ -923,7 +928,15 @@ string_extract_verbatim (string, slen, sindex, charlist) #if defined (HANDLE_MULTIBYTE) size_t mblength; #endif - if (c == CTLESC) + if ((flags & SX_NOCTLESC) == 0 && c == CTLESC) + { + i += 2; + continue; + } + /* Even if flags contains SX_NOCTLESC, we let CTLESC quoting CTLNUL + through, to protect the CTLNULs from later calls to + remove_quoted_nulls. */ + else if ((flags & SX_NOESCCTLNUL) == 0 && c == CTLESC && string[i+1] == CTLNUL) { i += 2; continue; @@ -976,13 +989,21 @@ string_extract_verbatim (string, slen, sindex, charlist) /* Extract the $( construct in STRING, and return a new string. Start extracting at (SINDEX) as if we had just seen "$(". - Make (SINDEX) get the position of the matching ")". ) */ + Make (SINDEX) get the position of the matching ")". ) + XFLAGS is additional flags to pass to other extraction functions, */ char * -extract_command_subst (string, sindex) +extract_command_subst (string, sindex, xflags) char *string; int *sindex; + int xflags; { - return (extract_delimited_string (string, sindex, "$(", "(", ")", EX_COMMAND)); /*)*/ + if (string[*sindex] == '(') /*)*/ + return (extract_delimited_string (string, sindex, "$(", "(", ")", xflags|SX_COMMAND)); /*)*/ + else + { + xflags |= (no_longjmp_on_fatal_error ? SX_NOLONGJMP : 0); + return (xparse_dolparen (string, string+*sindex, sindex, xflags)); + } } /* Extract the $[ construct in STRING, and return a new string. (]) @@ -1089,7 +1110,7 @@ extract_delimited_string (string, sindex, opener, alt_opener, closer, flags) /* Not exactly right yet; should handle shell metacharacters and multibyte characters, too. */ - if ((flags & EX_COMMAND) && c == '#' && (i == 0 || string[i - 1] == '\n' || whitespace (string[i - 1]))) + if ((flags & SX_COMMAND) && c == '#' && (i == 0 || string[i - 1] == '\n' || shellblank (string[i - 1]))) { in_comment = 1; ADVANCE_CHAR (string, slen, i); @@ -1107,7 +1128,7 @@ extract_delimited_string (string, sindex, opener, alt_opener, closer, flags) if (STREQN (string + i, opener, len_opener)) { si = i + len_opener; - t = extract_delimited_string (string, &si, opener, alt_opener, closer, flags|EX_NOALLOC); + t = extract_delimited_string (string, &si, opener, alt_opener, closer, flags|SX_NOALLOC); i = si + 1; continue; } @@ -1116,7 +1137,7 @@ extract_delimited_string (string, sindex, opener, alt_opener, closer, flags) if (len_alt_opener && STREQN (string + i, alt_opener, len_alt_opener)) { si = i + len_alt_opener; - t = extract_delimited_string (string, &si, alt_opener, alt_opener, closer, flags|EX_NOALLOC); + t = extract_delimited_string (string, &si, alt_opener, alt_opener, closer, flags|SX_NOALLOC); i = si + 1; continue; } @@ -1135,7 +1156,7 @@ extract_delimited_string (string, sindex, opener, alt_opener, closer, flags) if (c == '`') { si = i + 1; - t = string_extract (string, &si, "`", flags|EX_NOALLOC); + t = string_extract (string, &si, "`", flags|SX_NOALLOC); i = si + 1; continue; } @@ -1169,7 +1190,7 @@ extract_delimited_string (string, sindex, opener, alt_opener, closer, flags) } si = i - *sindex - len_closer + 1; - if (flags & EX_NOALLOC) + if (flags & SX_NOALLOC) result = (char *)NULL; else { @@ -1244,7 +1265,7 @@ extract_dollar_brace_string (string, sindex, quoted, flags) if (c == '`') { si = i + 1; - t = string_extract (string, &si, "`", flags|EX_NOALLOC); + t = string_extract (string, &si, "`", flags|SX_NOALLOC); i = si + 1; continue; } @@ -1254,7 +1275,7 @@ extract_dollar_brace_string (string, sindex, quoted, flags) if (string[i] == '$' && string[i+1] == LPAREN) { si = i + 2; - t = extract_delimited_string (string, &si, "$(", "(", ")", flags|EX_NOALLOC|EX_COMMAND); /*)*/ + t = extract_command_subst (string, &si, flags|SX_NOALLOC); i = si + 1; continue; } @@ -1289,7 +1310,7 @@ extract_dollar_brace_string (string, sindex, quoted, flags) } } - result = (flags & EX_NOALLOC) ? (char *)NULL : substring (string, *sindex, i); + result = (flags & SX_NOALLOC) ? (char *)NULL : substring (string, *sindex, i); *sindex = i; return (result); @@ -1351,6 +1372,95 @@ unquote_bang (string) } #endif +#define CQ_RETURN(x) do { no_longjmp_on_fatal_error = 0; return (x); } while (0) + +/* Skip characters in STRING until we find a character in DELIMS, and return + the index of that character. START is the index into string at which we + begin. This is similar in spirit to strpbrk, but it returns an index into + STRING and takes a starting index. This little piece of code knows quite + a lot of shell syntax. It's very similar to skip_double_quoted and other + functions of that ilk. */ +int +skip_to_delim (string, start, delims, flags) + char *string; + int start; + char *delims; + int flags; +{ + int i, pass_next, backq, si, c, invert; + size_t slen; + char *temp; + DECLARE_MBSTATE; + + slen = strlen (string + start) + start; + if (flags & SD_NOJMP) + no_longjmp_on_fatal_error = 1; + invert = (flags & SD_INVERT); + + i = start; + pass_next = backq = 0; + while (c = string[i]) + { + if (pass_next) + { + pass_next = 0; + if (c == 0) + CQ_RETURN(i); + ADVANCE_CHAR (string, slen, i); + continue; + } + else if (c == '\\') + { + pass_next = 1; + i++; + continue; + } + else if (backq) + { + if (c == '`') + backq = 0; + ADVANCE_CHAR (string, slen, i); + continue; + } + else if (c == '`') + { + backq = 1; + i++; + continue; + } + else if (invert == 0 && member (c, delims)) + break; + else if (c == '\'' || c == '"') + { + i = (c == '\'') ? skip_single_quoted (string, slen, ++i) + : skip_double_quoted (string, slen, ++i); + /* no increment, the skip functions increment past the closing quote. */ + } + else if (c == '$' && (string[i+1] == LPAREN || string[i+1] == LBRACE)) + { + si = i + 2; + if (string[si] == '\0') + CQ_RETURN(si); + + if (string[i+1] == LPAREN) + temp = extract_delimited_string (string, &si, "$(", "(", ")", SX_NOALLOC|SX_COMMAND); /* ) */ + else + temp = extract_dollar_brace_string (string, &si, 0, SX_NOALLOC); + i = si; + if (string[i] == '\0') /* don't increment i past EOS in loop */ + break; + i++; + continue; + } + else if (invert && (member (c, delims) == 0)) + break; + else + ADVANCE_CHAR (string, slen, i); + } + + CQ_RETURN(i); +} + #if defined (READLINE) /* Return 1 if the portion of STRING ending at EINDEX is quoted (there is an unclosed quoted string), or if the character at EINDEX is quoted @@ -1360,8 +1470,6 @@ unquote_bang (string) recognizes need to be the same as the contents of rl_completer_quote_characters. */ -#define CQ_RETURN(x) do { no_longjmp_on_fatal_error = 0; return (x); } while (0) - int char_is_quoted (string, eindex) char *string; @@ -1454,87 +1562,6 @@ unclosed_pair (string, eindex, openstr) return (openc); } -/* Skip characters in STRING until we find a character in DELIMS, and return - the index of that character. START is the index into string at which we - begin. This is similar in spirit to strpbrk, but it returns an index into - STRING and takes a starting index. This little piece of code knows quite - a lot of shell syntax. It's very similar to skip_double_quoted and other - functions of that ilk. */ -int -skip_to_delim (string, start, delims) - char *string; - int start; - char *delims; -{ - int i, pass_next, backq, si, c; - size_t slen; - char *temp; - DECLARE_MBSTATE; - - slen = strlen (string + start) + start; - no_longjmp_on_fatal_error = 1; - i = start; - pass_next = backq = 0; - while (c = string[i]) - { - if (pass_next) - { - pass_next = 0; - if (c == 0) - CQ_RETURN(i); - ADVANCE_CHAR (string, slen, i); - continue; - } - else if (c == '\\') - { - pass_next = 1; - i++; - continue; - } - else if (backq) - { - if (c == '`') - backq = 0; - ADVANCE_CHAR (string, slen, i); - continue; - } - else if (c == '`') - { - backq = 1; - i++; - continue; - } - else if (c == '\'' || c == '"') - { - i = (c == '\'') ? skip_single_quoted (string, slen, ++i) - : skip_double_quoted (string, slen, ++i); - /* no increment, the skip functions increment past the closing quote. */ - } - else if (c == '$' && (string[i+1] == LPAREN || string[i+1] == LBRACE)) - { - si = i + 2; - if (string[si] == '\0') - CQ_RETURN(si); - - if (string[i+1] == LPAREN) - temp = extract_delimited_string (string, &si, "$(", "(", ")", EX_NOALLOC|EX_COMMAND); /* ) */ - else - temp = extract_dollar_brace_string (string, &si, 0, EX_NOALLOC); - i = si; - if (string[i] == '\0') /* don't increment i past EOS in loop */ - break; - i++; - continue; - } - else if (member (c, delims)) - break; - else - ADVANCE_CHAR (string, slen, i); - } - - CQ_RETURN(i); -} - /* Split STRING (length SLEN) at DELIMS, and return a WORD_LIST with the individual words. If DELIMS is NULL, the current value of $IFS is used to split the string, and the function follows the shell field splitting @@ -1619,7 +1646,7 @@ split_at_delims (string, slen, delims, sentinel, nwp, cwp) cw = -1; while (1) { - te = skip_to_delim (string, ts, d); + te = skip_to_delim (string, ts, d, SD_NOJMP); /* If we have a non-whitespace delimiter character, use it to make a separate field. This is just about what $IFS splitting does and @@ -1785,6 +1812,42 @@ string_list (list) return (string_list_internal (list, " ")); } +/* An external interface that can be used by the rest of the shell to + obtain a string containing the first character in $IFS. Handles all + the multibyte complications. If LENP is non-null, it is set to the + length of the returned string. */ +char * +ifs_firstchar (lenp) + int *lenp; +{ + char *ret; + int len; + + ret = xmalloc (MB_LEN_MAX + 1); +#if defined (HANDLE_MULTIBYTE) + if (ifs_firstc_len == 1) + { + ret[0] = ifs_firstc[0]; + ret[1] = '\0'; + len = ret[0] ? 1 : 0; + } + else + { + memcpy (ret, ifs_firstc, ifs_firstc_len); + ret[len = ifs_firstc_len] = '\0'; + } +#else + ret[0] = ifs_firstc; + ret[1] = '\0'; + len = ret[0] ? 0 : 1; +#endif + + if (lenp) + *lenp = len; + + return ret; +} + /* Return a single string of all the words present in LIST, obeying the quoting rules for "$*", to wit: (P1003.2, draft 11, 3.5.2) "If the expansion [of $*] appears within a double quoted string, it expands @@ -1904,6 +1967,55 @@ string_list_dollar_at (list, quoted) return ret; } +/* Turn the positional paramters into a string, understanding quoting and + the various subtleties of using the first character of $IFS as the + separator. Calls string_list_dollar_at, string_list_dollar_star, and + string_list as appropriate. */ +char * +string_list_pos_params (pchar, list, quoted) + int pchar; + WORD_LIST *list; + int quoted; +{ + char *ret; + WORD_LIST *tlist; + + if (pchar == '*' && (quoted & Q_DOUBLE_QUOTES)) + { + tlist = quote_list (list); + word_list_remove_quoted_nulls (tlist); + ret = string_list_dollar_star (tlist); + } + else if (pchar == '*' && (quoted & Q_HERE_DOCUMENT)) + { + tlist = quote_list (list); + word_list_remove_quoted_nulls (tlist); + ret = string_list (tlist); + } + else if (pchar == '*') + { + /* Even when unquoted, string_list_dollar_star does the right thing + making sure that the first character of $IFS is used as the + separator. */ + ret = string_list_dollar_star (list); + } + else if (pchar == '@' && (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES))) + /* We use string_list_dollar_at, but only if the string is quoted, since + that quotes the escapes if it's not, which we don't want. We could + use string_list (the old code did), but that doesn't do the right + thing if the first character of $IFS is not a space. We use + string_list_dollar_star if the string is unquoted so we make sure that + the elements of $@ are separated by the first character of $IFS for + later splitting. */ + ret = string_list_dollar_at (list, quoted); + else if (pchar == '@') + ret = string_list_dollar_star (list); + else + ret = string_list ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) ? quote_list (list) : list); + + return ret; +} + /* Return the list of words present in STRING. Separate the string into words at any of the characters found in SEPARATORS. If QUOTED is non-zero then word in the list will have its quoted flag set, otherwise @@ -1944,7 +2056,7 @@ list_string (string, separators, quoted) WORD_LIST *result; WORD_DESC *t; char *current_word, *s; - int sindex, sh_style_split, whitesep; + int sindex, sh_style_split, whitesep, xflags; size_t slen; if (!string || !*string) @@ -1954,6 +2066,11 @@ list_string (string, separators, quoted) separators[1] == '\t' && separators[2] == '\n' && separators[3] == '\0'; + for (xflags = 0, s = ifs_value; s && *s; s++) + { + if (*s == CTLESC) xflags |= SX_NOCTLESC; + else if (*s == CTLNUL) xflags |= SX_NOESCCTLNUL; + } slen = 0; /* Remove sequences of whitespace at the beginning of STRING, as @@ -1979,7 +2096,7 @@ list_string (string, separators, quoted) { /* Don't need string length in ADVANCE_CHAR or string_extract_verbatim unless multibyte chars are possible. */ - current_word = string_extract_verbatim (string, slen, &sindex, separators); + current_word = string_extract_verbatim (string, slen, &sindex, separators, xflags); if (current_word == 0) break; @@ -2061,19 +2178,23 @@ get_word_from_string (stringp, separators, endptr) { register char *s; char *current_word; - int sindex, sh_style_split, whitesep; + int sindex, sh_style_split, whitesep, xflags; size_t slen; if (!stringp || !*stringp || !**stringp) return ((char *)NULL); - s = *stringp; - sh_style_split = separators && separators[0] == ' ' && separators[1] == '\t' && separators[2] == '\n' && separators[3] == '\0'; + for (xflags = 0, s = ifs_value; s && *s; s++) + { + if (*s == CTLESC) xflags |= SX_NOCTLESC; + if (*s == CTLNUL) xflags |= SX_NOESCCTLNUL; + } + s = *stringp; slen = 0; /* Remove sequences of whitespace at the beginning of STRING, as @@ -2102,7 +2223,7 @@ get_word_from_string (stringp, separators, endptr) /* Don't need string length in ADVANCE_CHAR or string_extract_verbatim unless multibyte chars are possible. */ slen = (MB_CUR_MAX > 1) ? strlen (s) : 1; - current_word = string_extract_verbatim (s, slen, &sindex, separators); + current_word = string_extract_verbatim (s, slen, &sindex, separators, xflags); /* Set ENDPTR to the first character after the end of the word. */ if (endptr) @@ -2229,16 +2350,19 @@ do_compound_assignment (name, value, flags) int flags; { SHELL_VAR *v; - int mklocal; + int mklocal, mkassoc; WORD_LIST *list; mklocal = flags & ASS_MKLOCAL; + mkassoc = flags & ASS_MKASSOC; if (mklocal && variable_context) { - list = expand_compound_array_assignment (value, flags); v = find_variable (name); - if (v == 0 || array_p (v) == 0 || v->context != variable_context) + list = expand_compound_array_assignment (v, value, flags); + if (mkassoc) + v = make_local_assoc_variable (name); + else if (v == 0 || (array_p (v) == 0 && assoc_p (v) == 0) || v->context != variable_context) v = make_local_array_variable (name); assign_compound_array_list (v, list, flags); } @@ -2259,7 +2383,7 @@ do_assignment_internal (word, expand) const WORD_DESC *word; int expand; { - int offset, tlen, appendop, assign_list, aflags; + int offset, tlen, appendop, assign_list, aflags, retval; char *name, *value; SHELL_VAR *entry; #if defined (ARRAY_VARS) @@ -2342,6 +2466,8 @@ do_assignment_internal (word, expand) { if (word->flags & W_ASSIGNARG) aflags |= ASS_MKLOCAL; + if (word->flags & W_ASSIGNASSOC) + aflags |= ASS_MKASSOC; entry = do_compound_assignment (name, value, aflags); } else @@ -2350,11 +2476,28 @@ do_assignment_internal (word, expand) stupidly_hack_special_variables (name); +#if 1 + /* Return 1 if the assignment seems to have been performed correctly. */ + if (entry == 0 || readonly_p (entry)) + retval = 0; /* assignment failure */ + else if (noassign_p (entry)) + { + last_command_exit_value = EXECUTION_FAILURE; + retval = 1; /* error status, but not assignment failure */ + } + else + retval = 1; + + if (entry && retval != 0 && noassign_p (entry) == 0) + VUNSETATTR (entry, att_invisible); + + ASSIGN_RETURN (retval); +#else if (entry) VUNSETATTR (entry, att_invisible); - /* Return 1 if the assignment seems to have been performed correctly. */ ASSIGN_RETURN (entry ? ((readonly_p (entry) == 0) && noassign_p (entry) == 0) : 0); +#endif } /* Perform the assignment statement in STRING, and expand the @@ -2487,6 +2630,12 @@ pos_params (string, start, end, quoted) if (save == 0) return ((char *)NULL); + if (start == 0) /* handle ${@:0[:x]} specially */ + { + t = make_word_list (make_word (dollar_vars[0]), params); + save = params = t; + } + for (i = 1; params && i < start; i++) params = params->next; if (params == 0) @@ -2498,17 +2647,9 @@ pos_params (string, start, end, quoted) } t->next = (WORD_LIST *)NULL; - if (string[0] == '*') - { - if (quoted & Q_DOUBLE_QUOTES) - ret = string_list_dollar_star (quote_list (h)); - else if (quoted & Q_HERE_DOCUMENT) - ret = string_list (quote_list (h)); - else - ret = string_list (h); - } - else - ret = string_list ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) ? quote_list (h) : h); + + ret = string_list_pos_params (string[0], h, quoted); + if (t != params) t->next = params; @@ -2625,6 +2766,7 @@ expand_assignment_string_to_string (string, quoted) char * expand_arith_string (string, quoted) char *string; + int quoted; { return (expand_string_if_necessary (string, quoted, expand_string)); } @@ -2928,12 +3070,14 @@ expand_string (string, quoted) /* Quote escape characters in string s, but no other characters. This is used to protect CTLESC and CTLNUL in variable values from the rest of - the word expansion process after the variable is expanded. If IFS is - null, we quote spaces as well, just in case we split on spaces later - (in the case of unquoted $@, we will eventually attempt to split the - entire word on spaces). Corresponding code exists in dequote_escapes. - Even if we don't end up splitting on spaces, quoting spaces is not a - problem. */ + the word expansion process after the variable is expanded (word splitting + and filename generation). If IFS is null, we quote spaces as well, just + in case we split on spaces later (in the case of unquoted $@, we will + eventually attempt to split the entire word on spaces). Corresponding + code exists in dequote_escapes. Even if we don't end up splitting on + spaces, quoting spaces is not a problem. This should never be called on + a string that is quoted with single or double quotes or part of a here + document (effectively double-quoted). */ char * quote_escapes (string) char *string; @@ -2941,19 +3085,23 @@ quote_escapes (string) register char *s, *t; size_t slen; char *result, *send; - int quote_spaces; + int quote_spaces, skip_ctlesc, skip_ctlnul; DECLARE_MBSTATE; slen = strlen (string); send = string + slen; quote_spaces = (ifs_value && *ifs_value == 0); + + for (skip_ctlesc = skip_ctlnul = 0, s = ifs_value; s && *s; s++) + skip_ctlesc |= *s == CTLESC, skip_ctlnul |= *s == CTLNUL; + t = result = (char *)xmalloc ((slen * 2) + 1); s = string; while (*s) { - if (*s == CTLESC || *s == CTLNUL || (quote_spaces && *s == ' ')) + if ((skip_ctlesc == 0 && *s == CTLESC) || (skip_ctlnul == 0 && *s == CTLNUL) || (quote_spaces && *s == ' ')) *t++ = CTLESC; COPY_CHAR_P (t, s, send); } @@ -2988,11 +3136,11 @@ list_quote_escapes (list) characters. Also used by parts of the pattern substitution code. */ -static char * +char * dequote_escapes (string) char *string; { - register char *s, *t; + register char *s, *t, *s1; size_t slen; char *result, *send; int quote_spaces; @@ -3005,12 +3153,13 @@ dequote_escapes (string) send = string + slen; t = result = (char *)xmalloc (slen + 1); - s = string; if (strchr (string, CTLESC) == 0) - return (strcpy (result, s)); + return (strcpy (result, string)); quote_spaces = (ifs_value && *ifs_value == 0); + + s = string; while (*s) { if (*s == CTLESC && (s[1] == CTLESC || s[1] == CTLNUL || (quote_spaces && s[1] == ' '))) @@ -3139,9 +3288,10 @@ quote_list (list) { t = w->word->word; w->word->word = quote_string (t); - free (t); + if (*t == 0) + w->word->flags |= W_HASQUOTEDNULL; /* XXX - turn on W_HASQUOTEDNULL here? */ w->word->flags |= W_QUOTED; - /* XXX - turn on W_HAVEQUOTEDNULL here? */ + free (t); } return list; } @@ -3157,16 +3307,17 @@ dequote_list (list) for (tlist = list; tlist; tlist = tlist->next) { s = dequote_string (tlist->word->word); + if (QUOTED_NULL (tlist->word->word)) + tlist->word->flags &= ~W_HASQUOTEDNULL; free (tlist->word->word); tlist->word->word = s; - /* XXX - turn off W_HAVEQUOTEDNULL here? */ } return list; } /* Remove CTLESC protecting a CTLESC or CTLNUL in place. Return the passed string. */ -static char * +char * remove_quoted_escapes (string) char *string; { @@ -3187,7 +3338,7 @@ remove_quoted_escapes (string) of how expand_word_internal works. remove_quoted_nulls () turns STRING into an empty string iff it only consists of a quoted null, and removes all unquoted CTLNUL characters. */ -static char * +char * remove_quoted_nulls (string) char *string; { @@ -3533,11 +3684,11 @@ match_upattern (string, pat, mtype, sp, ep) /* XXX - check this later if I ever implement `**' with special meaning, since this will potentially result in `**' at the beginning or end */ len = STRLEN (pat); - if (pat[0] != '*' || pat[len - 1] != '*') + if (pat[0] != '*' || (pat[0] == '*' && pat[1] == '(' && extended_glob) || pat[len - 1] != '*') /*)*/ { p = npat = (char *)xmalloc (len + 3); p1 = pat; - if (*p1 != '*') + if (*p1 != '*' || (*p1 == '*' && p1[1] == '(' && extended_glob)) /*)*/ *p++ = '*'; while (*p1) *p++ = *p1++; @@ -3677,11 +3828,11 @@ match_wpattern (wstring, indices, wstrlen, wpat, mtype, sp, ep) /* XXX - check this later if I ever implement `**' with special meaning, since this will potentially result in `**' at the beginning or end */ len = wcslen (wpat); - if (wpat[0] != L'*' || wpat[len - 1] != L'*') + if (wpat[0] != L'*' || (wpat[0] == L'*' && wpat[1] == L'(' && extended_glob) || wpat[len - 1] != L'*') /*)*/ { wp = nwpat = (wchar_t *)xmalloc ((len + 3) * sizeof (wchar_t)); wp1 = wpat; - if (*wp1 != L'*') + if (*wp1 != L'*' || (*wp1 == '*' && wp1[1] == '(' && extended_glob)) /*)*/ *wp++ = L'*'; while (*wp1 != L'\0') *wp++ = *wp1++; @@ -3828,7 +3979,6 @@ getpattern (value, quoted, expandpat) #if 0 int i; #endif - /* There is a problem here: how to handle single or double quotes in the pattern string when the whole expression is between double quotes? POSIX.2 says that enclosing double quotes do not cause the pattern to @@ -3896,12 +4046,9 @@ list_remove_pattern (list, pattern, patspec, itype, quoted) } l = REVERSE_LIST (new, WORD_LIST *); - if (itype == '*') - tword = (quoted & Q_DOUBLE_QUOTES) ? string_list_dollar_star (l) : string_list (l); - else - tword = string_list ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) ? quote_list (l) : l); - + tword = string_list_pos_params (itype, l, quoted); dispose_words (l); + return (tword); } @@ -3924,13 +4071,15 @@ parameter_list_remove_pattern (itype, pattern, patspec, quoted) #if defined (ARRAY_VARS) static char * -array_remove_pattern (a, pattern, patspec, varname, quoted) - ARRAY *a; +array_remove_pattern (var, pattern, patspec, varname, quoted) + SHELL_VAR *var; char *pattern; int patspec; char *varname; /* so we can figure out how it's indexed */ int quoted; { + ARRAY *a; + HASH_TABLE *h; int itype; char *ret; WORD_LIST *list; @@ -3940,7 +4089,10 @@ array_remove_pattern (a, pattern, patspec, varname, quoted) v = array_variable_part (varname, &ret, 0); itype = ret[0]; - list = array_to_word_list (a); + a = (v && array_p (v)) ? array_cell (v) : 0; + h = (v && assoc_p (v)) ? assoc_cell (v) : 0; + + list = a ? array_to_word_list (a) : (h ? assoc_to_word_list (h) : 0); if (list == 0) return ((char *)NULL); ret = list_remove_pattern (list, pattern, patspec, itype, quoted); @@ -3991,14 +4143,16 @@ parameter_brace_remove_pattern (varname, value, patstr, rtype, quoted) FREE (val); if (temp1) { - val = quote_escapes (temp1); + val = (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) + ? quote_string (temp1) + : quote_escapes (temp1); free (temp1); temp1 = val; } break; #if defined (ARRAY_VARS) case VT_ARRAYVAR: - temp1 = array_remove_pattern (array_cell (v), pattern, patspec, varname, quoted); + temp1 = array_remove_pattern (v, pattern, patspec, varname, quoted); if (temp1 && ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) == 0)) { val = quote_escapes (temp1); @@ -4159,7 +4313,7 @@ make_named_pipe () { char *tname; - tname = sh_mktmpname ("sh-np", MT_USERANDOM); + tname = sh_mktmpname ("sh-np", MT_USERANDOM|MT_USETMPDIR); if (mkfifo (tname, 0600) < 0) { free (tname); @@ -4192,7 +4346,7 @@ add_fifo_list (fd) totfds = getdtablesize (); if (totfds < 0 || totfds > 256) totfds = 256; - if (fd > totfds) + if (fd >= totfds) totfds = fd + 2; dev_fd_list = (char *)xrealloc (dev_fd_list, totfds); @@ -4313,7 +4467,7 @@ process_substitute (string, open_for_read_in_child) pathname = make_dev_fd_filename (parent_pipe_fd); #endif /* HAVE_DEV_FD */ - if (!pathname) + if (pathname == 0) { sys_error (_("cannot make pipe for process substitution")); return ((char *)NULL); @@ -4335,12 +4489,13 @@ process_substitute (string, open_for_read_in_child) /* Cancel traps, in trap.c. */ restore_original_signals (); setup_async_signals (); - subshell_environment |= SUBSHELL_COMSUB; + subshell_environment |= SUBSHELL_COMSUB|SUBSHELL_PROCSUB; } #if defined (JOB_CONTROL) set_sigchld_handler (); stop_making_children (); + /* XXX - should we only do this in the parent? (as in command subst) */ pipeline_pgrp = old_pipeline_pgrp; #endif /* JOB_CONTROL */ @@ -4401,7 +4556,7 @@ process_substitute (string, open_for_read_in_child) { if (sh_unset_nodelay_mode (fd) < 0) { - sys_error (_("cannout reset nodelay mode for fd %d"), fd); + sys_error (_("cannot reset nodelay mode for fd %d"), fd); exit (127); } } @@ -4454,21 +4609,26 @@ process_substitute (string, open_for_read_in_child) /***********************************/ static char * -read_comsub (fd, quoted) +read_comsub (fd, quoted, rflag) int fd, quoted; + int *rflag; { - char *istring, buf[128], *bufp; - int istring_index, istring_size, c; + char *istring, buf[128], *bufp, *s; + int istring_index, istring_size, c, tflag, skip_ctlesc, skip_ctlnul; ssize_t bufn; istring = (char *)NULL; - istring_index = istring_size = bufn = 0; + istring_index = istring_size = bufn = tflag = 0; + + for (skip_ctlesc = skip_ctlnul = 0, s = ifs_value; s && *s; s++) + skip_ctlesc |= *s == CTLESC, skip_ctlnul |= *s == CTLNUL; #ifdef __CYGWIN__ setmode (fd, O_TEXT); /* we don't want CR/LF, we want Unix-style */ #endif - /* Read the output of the command through the pipe. */ + /* Read the output of the command through the pipe. This may need to be + changed to understand multibyte characters in the future. */ while (1) { if (fd < 0) @@ -4499,9 +4659,12 @@ read_comsub (fd, quoted) /* Escape CTLESC and CTLNUL in the output to protect those characters from the rest of the word expansions (word splitting and globbing.) This is essentially quote_escapes inline. */ - else if (c == CTLESC) - istring[istring_index++] = CTLESC; - else if (c == CTLNUL || (c == ' ' && (ifs_value && *ifs_value == 0))) + else if (skip_ctlesc == 0 && c == CTLESC) + { + tflag |= W_HASCTLESC; + istring[istring_index++] = CTLESC; + } + else if ((skip_ctlnul == 0 && c == CTLNUL) || (c == ' ' && (ifs_value && *ifs_value == 0))) istring[istring_index++] = CTLESC; istring[istring_index++] = c; @@ -4525,6 +4688,8 @@ read_comsub (fd, quoted) if (istring_index == 0) { FREE (istring); + if (rflag) + *rflag = tflag; return (char *)NULL; } @@ -4549,26 +4714,29 @@ read_comsub (fd, quoted) else strip_trailing (istring, istring_index - 1, 1); + if (rflag) + *rflag = tflag; return istring; } -/* Perform command substitution on STRING. This returns a string, - possibly quoted. */ -char * +/* Perform command substitution on STRING. This returns a WORD_DESC * with the + contained string possibly quoted. */ +WORD_DESC * command_substitute (string, quoted) char *string; int quoted; { pid_t pid, old_pid, old_pipeline_pgrp, old_async_pid; char *istring; - int result, fildes[2], function_value, pflags, rc; + int result, fildes[2], function_value, pflags, rc, tflag; + WORD_DESC *ret; istring = (char *)NULL; /* Don't fork () if there is no need to. In the case of no command to run, just return NULL. */ if (!string || !*string || (string[0] == '\n' && !string[1])) - return ((char *)NULL); + return ((WORD_DESC *)NULL); if (wordexp_only && read_but_dont_execute) { @@ -4608,11 +4776,7 @@ command_substitute (string, quoted) #endif /* JOB_CONTROL */ old_async_pid = last_asynchronous_pid; -#if 0 - pid = make_child ((char *)NULL, 0); -#else pid = make_child ((char *)NULL, subshell_environment&SUBSHELL_ASYNC); -#endif last_asynchronous_pid = old_async_pid; if (pid == 0) @@ -4621,6 +4785,7 @@ command_substitute (string, quoted) reset_signal_handlers (); #if defined (JOB_CONTROL) + /* XXX DO THIS ONLY IN PARENT ? XXX */ set_sigchld_handler (); stop_making_children (); if (pid != 0) @@ -4637,7 +4802,7 @@ command_substitute (string, quoted) FREE (istring); close (fildes[0]); close (fildes[1]); - return ((char *)NULL); + return ((WORD_DESC *)NULL); } if (pid == 0) @@ -4724,7 +4889,8 @@ command_substitute (string, quoted) close (fildes[1]); - istring = read_comsub (fildes[0], quoted); + tflag = 0; + istring = read_comsub (fildes[0], quoted, &tflag); close (fildes[0]); @@ -4754,7 +4920,11 @@ command_substitute (string, quoted) give_terminal_to (pipeline_pgrp, 0); #endif /* JOB_CONTROL */ - return (istring); + ret = alloc_word_desc (); + ret->word = istring; + ret->flags = tflag; + + return ret; } } @@ -4772,6 +4942,7 @@ array_length_reference (s) { int len; arrayind_t ind; + char *akey; char *t, c; ARRAY *array; SHELL_VAR *var; @@ -4780,7 +4951,7 @@ array_length_reference (s) /* If unbound variables should generate an error, report one and return failure. */ - if ((var == 0 || array_p (var) == 0) && unbound_vars_is_error) + if ((var == 0 || (assoc_p (var) == 0 && array_p (var) == 0)) && unbound_vars_is_error) { c = *--t; *t = '\0'; @@ -4798,19 +4969,40 @@ array_length_reference (s) array = array_p (var) ? array_cell (var) : (ARRAY *)NULL; if (ALL_ELEMENT_SUB (t[0]) && t[1] == ']') - return (array_p (var) ? array_num_elements (array) : 1); - - ind = array_expand_index (t, len); - if (ind < 0) { - err_badarraysub (t); - return (-1); + if (assoc_p (var)) + return (assoc_num_elements (assoc_cell (var))); + else if (array_p (var)) + return (array_num_elements (array)); + else + return 1; } - if (array_p (var)) - t = array_reference (array, ind); + if (assoc_p (var)) + { + t[len - 1] = '\0'; + akey = expand_assignment_string_to_string (t, 0); /* [ */ + t[len - 1] = ']'; + if (akey == 0 || *akey == 0) + { + err_badarraysub (t); + return (-1); + } + t = assoc_reference (assoc_cell (var), akey); + } else - t = (ind == 0) ? value_cell (var) : (char *)NULL; + { + ind = array_expand_index (t, len); + if (ind < 0) + { + err_badarraysub (t); + return (-1); + } + if (array_p (var)) + t = array_reference (array, ind); + else + t = (ind == 0) ? value_cell (var) : (char *)NULL; + } len = MB_STRLEN (t); return (len); @@ -4955,7 +5147,12 @@ parameter_brace_expand_word (name, var_is_special, quoted) if (var_isset (var) && invisible_p (var) == 0) { #if defined (ARRAY_VARS) - temp = array_p (var) ? array_reference (array_cell (var), 0) : value_cell (var); + if (assoc_p (var)) + temp = assoc_reference (assoc_cell (var), "0"); + else if (array_p (var)) + temp = array_reference (array_cell (var), 0); + else + temp = value_cell (var); #else temp = value_cell (var); #endif @@ -5030,7 +5227,7 @@ parameter_brace_expand_rhs (name, value, c, quoted, qdollaratp, hasdollarat) /* If the entire expression is between double quotes, we want to treat the value as a double-quoted string, with the exception that we strip - embedded unescaped double quotes. */ + embedded unescaped double quotes (for sh backwards compatibility). */ if ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) && *value) { hasdol = 0; @@ -5228,9 +5425,12 @@ parameter_brace_expand_length (name) FREE (t); } #if defined (ARRAY_VARS) - else if ((var = find_variable (name + 1)) && (invisible_p (var) == 0) && array_p (var)) + else if ((var = find_variable (name + 1)) && (invisible_p (var) == 0) && (array_p (var) || assoc_p (var))) { - t = array_reference (array_cell (var), 0); + if (assoc_p (var)) + t = assoc_reference (assoc_cell (var), "0"); + else + t = array_reference (array_cell (var), 0); number = MB_STRLEN (t); } #endif @@ -5319,7 +5519,8 @@ skiparith (substr, delim) Return value is 1 if both values were OK, 0 if there was a problem with an invalid expression, or -1 if the values were out of range. */ static int -verify_substring_values (value, substr, vtype, e1p, e2p) +verify_substring_values (v, value, substr, vtype, e1p, e2p) + SHELL_VAR *v; char *value, *substr; int vtype; intmax_t *e1p, *e2p; @@ -5329,6 +5530,7 @@ verify_substring_values (value, substr, vtype, e1p, e2p) int expok; #if defined (ARRAY_VARS) ARRAY *a; + HASH_TABLE *h; #endif /* duplicate behavior of strchr(3) */ @@ -5353,13 +5555,24 @@ verify_substring_values (value, substr, vtype, e1p, e2p) break; case VT_POSPARMS: len = number_of_args () + 1; + if (*e1p == 0) + len++; /* add one arg if counting from $0 */ break; #if defined (ARRAY_VARS) case VT_ARRAYVAR: - a = (ARRAY *)value; /* 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 */ + offsets count from one past the array's maximum index. Associative + arrays treat the number of elements as the maximum index. */ + if (assoc_p (v)) + { + h = assoc_cell (v); + len = assoc_num_elements (h) + (*e1p < 0); + } + else + { + a = (ARRAY *)value; + len = array_max_index (a) + (*e1p < 0); /* arrays index from 0 to n - 1 */ + } break; #endif } @@ -5376,7 +5589,7 @@ verify_substring_values (value, substr, vtype, e1p, e2p) #if defined (ARRAY_VARS) /* For arrays, the second offset deals with the number of elements. */ if (vtype == VT_ARRAYVAR) - len = array_num_elements (a); + len = assoc_p (v) ? assoc_num_elements (h) : array_num_elements (a); #endif if (t) @@ -5442,14 +5655,15 @@ get_var_and_type (varname, value, quoted, varp, valp) if (valid_array_reference (varname)) { v = array_variable_part (varname, &temp, (int *)0); - if (v && array_p (v)) + if (v && (array_p (v) || assoc_p (v))) { /* [ */ if (ALL_ELEMENT_SUB (temp[0]) && temp[1] == ']') { + /* Callers have to differentiate betwen indexed and associative */ vtype = VT_ARRAYVAR; if (temp[0] == '*') vtype |= VT_STARSUB; - *valp = (char *)array_cell (v); + *valp = array_p (v) ? (char *)array_cell (v) : (char *)assoc_cell (v); } else { @@ -5468,13 +5682,17 @@ get_var_and_type (varname, value, quoted, varp, valp) *valp = dequote_escapes (value); } else - return -1; + { + vtype = VT_ARRAYMEMBER; + *varp = v; + *valp = array_value (varname, 1, (int *)NULL); + } } - else if ((v = find_variable (varname)) && (invisible_p (v) == 0) && array_p (v)) + else if ((v = find_variable (varname)) && (invisible_p (v) == 0) && (assoc_p (v) || array_p (v))) { vtype = VT_ARRAYMEMBER; *varp = v; - *valp = array_reference (array_cell (v), 0); + *valp = assoc_p (v) ? assoc_reference (assoc_cell (v), "0") : array_reference (array_cell (v), 0); } else #endif @@ -5559,7 +5777,7 @@ parameter_brace_substring (varname, value, substr, quoted) starsub = vtype & VT_STARSUB; vtype &= ~VT_STARSUB; - r = verify_substring_values (val, substr, vtype, &e1, &e2); + r = verify_substring_values (v, val, substr, vtype, &e1, &e2); this_command_name = oname; if (r <= 0) return ((r == 0) ? &expand_param_error : (char *)NULL); @@ -5595,21 +5813,17 @@ parameter_brace_substring (varname, value, substr, quoted) break; #if defined (ARRAY_VARS) case VT_ARRAYVAR: + if (assoc_p (v)) + /* we convert to list and take first e2 elements starting at e1th + element -- officially undefined for now */ + temp = assoc_subrange (assoc_cell (v), e1, e2, starsub, quoted); + else /* We want E2 to be the number of elements desired (arrays can be sparse, so verify_substring_values just returns the numbers specified and we rely on array_subrange to understand how to deal with them). */ - tt = array_subrange (array_cell (v), e1, e2, starsub, quoted); -#if 0 + temp = array_subrange (array_cell (v), e1, e2, starsub, quoted); /* array_subrange now calls array_quote_escapes as appropriate, so the caller no longer needs to. */ - if ((quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT)) == 0) - { - temp = tt ? quote_escapes (tt) : (char *)NULL; - FREE (tt); - } - else -#endif - temp = tt; break; #endif default: @@ -5715,6 +5929,7 @@ pos_params_pat_subst (string, pat, rep, mflags) WORD_LIST *save, *params; WORD_DESC *w; char *ret; + int pchar, qflags; save = params = list_rest_of_args (); if (save == 0) @@ -5729,10 +5944,22 @@ pos_params_pat_subst (string, pat, rep, mflags) params->word = w; } + pchar = (mflags & MATCH_STARSUB) == MATCH_STARSUB ? '*' : '@'; + qflags = (mflags & MATCH_QUOTED) == MATCH_QUOTED ? Q_DOUBLE_QUOTES : 0; + +#if 0 if ((mflags & (MATCH_QUOTED|MATCH_STARSUB)) == (MATCH_QUOTED|MATCH_STARSUB)) ret = string_list_dollar_star (quote_list (save)); + else if ((mflags & MATCH_STARSUB) == MATCH_STARSUB) + ret = string_list_dollar_star (save); + else if ((mflags & MATCH_QUOTED) == MATCH_QUOTED) + ret = string_list_dollar_at (save, qflags); else - ret = string_list ((mflags & MATCH_QUOTED) ? quote_list (save) : save); + ret = string_list_dollar_star (save); +#else + ret = string_list_pos_params (pchar, save, qflags); +#endif + dispose_words (save); return (ret); @@ -5747,7 +5974,7 @@ parameter_brace_patsub (varname, value, patsub, quoted) char *varname, *value, *patsub; int quoted; { - int vtype, mflags, starsub; + int vtype, mflags, starsub, delim; char *val, *temp, *pat, *rep, *p, *lpatsub, *tt; SHELL_VAR *v; @@ -5782,10 +6009,21 @@ parameter_brace_patsub (varname, value, patsub, quoted) /* If the pattern starts with a `/', make sure we skip over it when looking for the replacement delimiter. */ +#if 0 if (rep = quoted_strchr ((*patsub == '/') ? lpatsub+1 : lpatsub, '/', ST_BACKSL)) *rep++ = '\0'; else rep = (char *)NULL; +#else + delim = skip_to_delim (lpatsub, ((*patsub == '/') ? 1 : 0), "/", 0); + if (lpatsub[delim] == '/') + { + lpatsub[delim] = 0; + rep = lpatsub + delim + 1; + } + else + rep = (char *)NULL; +#endif if (rep && *rep == '\0') rep = (char *)NULL; @@ -5842,7 +6080,7 @@ parameter_brace_patsub (varname, value, patsub, quoted) FREE (val); if (temp) { - tt = quote_escapes (temp); + tt = (mflags & MATCH_QUOTED) ? quote_string (temp) : quote_escapes (temp); free (temp); temp = tt; } @@ -5858,24 +6096,161 @@ parameter_brace_patsub (varname, value, patsub, quoted) break; #if defined (ARRAY_VARS) case VT_ARRAYVAR: - temp = array_patsub (array_cell (v), p, rep, mflags); -#if 0 - /* Don't need to do this anymore; array_patsub calls array_quote_escapes - as appropriate before adding the space separators. */ - if (temp && (mflags & MATCH_QUOTED) == 0) + temp = assoc_p (v) ? assoc_patsub (assoc_cell (v), p, rep, mflags) + : array_patsub (array_cell (v), p, rep, mflags); + /* Don't call quote_escapes anymore; array_patsub calls + array_quote_escapes as appropriate before adding the + space separators; ditto for assoc_patsub. */ + break; +#endif + } + + FREE (pat); + FREE (rep); + free (lpatsub); + + return temp; +} + +/****************************************************************/ +/* */ +/* Functions to perform case modification on variable values */ +/* */ +/****************************************************************/ + +/* Do case modification on the positional parameters. */ + +static char * +pos_params_modcase (string, pat, modop, mflags) + char *string, *pat; + int modop; + int mflags; +{ + WORD_LIST *save, *params; + WORD_DESC *w; + char *ret; + int pchar, qflags; + + save = params = list_rest_of_args (); + if (save == 0) + return ((char *)NULL); + + for ( ; params; params = params->next) + { + ret = sh_modcase (params->word->word, pat, modop); + w = alloc_word_desc (); + w->word = ret ? ret : savestring (""); + dispose_word (params->word); + params->word = w; + } + + pchar = (mflags & MATCH_STARSUB) == MATCH_STARSUB ? '*' : '@'; + qflags = (mflags & MATCH_QUOTED) == MATCH_QUOTED ? Q_DOUBLE_QUOTES : 0; + + ret = string_list_pos_params (pchar, save, qflags); + dispose_words (save); + + return (ret); +} + +/* Perform case modification on VALUE, which is the expansion of + VARNAME. MODSPEC is an expression supplying the type of modification + to perform. QUOTED is a flags word containing the type of quoting + currently in effect. */ +static char * +parameter_brace_casemod (varname, value, modspec, patspec, quoted) + char *varname, *value; + int modspec; + char *patspec; + int quoted; +{ + int vtype, starsub, modop, mflags, x; + char *val, *temp, *pat, *p, *lpat, *tt; + SHELL_VAR *v; + + if (value == 0) + return ((char *)NULL); + + this_command_name = varname; + + vtype = get_var_and_type (varname, value, quoted, &v, &val); + if (vtype == -1) + return ((char *)NULL); + + starsub = vtype & VT_STARSUB; + vtype &= ~VT_STARSUB; + + modop = 0; + mflags = 0; + if (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) + mflags |= MATCH_QUOTED; + if (starsub) + mflags |= MATCH_STARSUB; + + p = patspec; + if (modspec == '^') + { + x = p && p[0] == modspec; + modop = x ? CASE_UPPER : CASE_CAPITALIZE; + p += x; + } + else if (modspec == ',') + { + x = p && p[0] == modspec; + modop = x ? CASE_LOWER : CASE_UNCAP; + p += x; + } + else if (modspec == '~') + { + x = p && p[0] == modspec; + modop = x ? CASE_TOGGLEALL : CASE_TOGGLE; + p += x; + } + + lpat = p ? savestring (p) : 0; + /* Perform the same expansions on the pattern as performed by the + pattern removal expansions. FOR LATER */ + pat = lpat ? getpattern (lpat, quoted, 1) : 0; + + /* OK, now we do the case modification. */ + switch (vtype) + { + case VT_VARIABLE: + case VT_ARRAYMEMBER: + temp = sh_modcase (val, pat, modop); + if (vtype == VT_VARIABLE) + FREE (val); + if (temp) + { + tt = (mflags & MATCH_QUOTED) ? quote_string (temp) : quote_escapes (temp); + free (temp); + temp = tt; + } + break; + + case VT_POSPARMS: + temp = pos_params_modcase (val, pat, modop, mflags); + if (temp && (mflags & MATCH_QUOTED) == 0) { tt = quote_escapes (temp); free (temp); temp = tt; } -#endif + break; + +#if defined (ARRAY_VARS) + case VT_ARRAYVAR: + temp = assoc_p (v) ? assoc_modcase (assoc_cell (v), pat, modop, mflags) + : array_modcase (array_cell (v), pat, modop, mflags); + /* Don't call quote_escapes; array_modcase calls array_quote_escapes + as appropriate before adding the space separators; ditto for + assoc_modcase. */ break; #endif } FREE (pat); - FREE (rep); - free (lpatsub); + free (lpat); return temp; } @@ -5937,30 +6312,40 @@ chk_arithsub (s, len) /* */ /****************************************************************/ -/* ${[#][!]name[[:]#[#]%[%]-=?+[word][:e1[:e2]]]} */ +/* ${[#][!]name[[:][^[^]][,[,]]#[#]%[%]-=?+[word][:e1[:e2]]]} */ static WORD_DESC * parameter_brace_expand (string, indexp, quoted, quoted_dollar_atp, contains_dollar_at) char *string; int *indexp, quoted, *quoted_dollar_atp, *contains_dollar_at; { int check_nullness, var_is_set, var_is_null, var_is_special; - int want_substring, want_indir, want_patsub; + int want_substring, want_indir, want_patsub, want_casemod; char *name, *value, *temp, *temp1; WORD_DESC *tdesc, *ret; - int t_index, sindex, c, tflag; + int t_index, sindex, c, tflag, modspec; intmax_t number; - value = (char *)NULL; + temp = temp1 = value = (char *)NULL; var_is_set = var_is_null = var_is_special = check_nullness = 0; - want_substring = want_indir = want_patsub = 0; + want_substring = want_indir = want_patsub = want_casemod = 0; sindex = *indexp; t_index = ++sindex; /* ${#var} doesn't have any of the other parameter expansions on it. */ if (string[t_index] == '#' && legal_variable_starter (string[t_index+1])) /* {{ */ - name = string_extract (string, &t_index, "}", EX_VARNAME); + name = string_extract (string, &t_index, "}", SX_VARNAME); else - name = string_extract (string, &t_index, "#%:-=?+/}", EX_VARNAME); +#if defined (CASEMOD_EXPANSIONS) + /* To enable case-toggling expansions using the `~' operator character + change the 1 to 0. */ +# if defined (CASEMOD_CAPCASE) + name = string_extract (string, &t_index, "#%^,~:-=?+/}", SX_VARNAME); +# else + name = string_extract (string, &t_index, "#%^,:-=?+/}", SX_VARNAME); +# endif /* CASEMOD_CAPCASE */ +#else + name = string_extract (string, &t_index, "#%:-=?+/}", SX_VARNAME); +#endif /* CASEMOD_EXPANSIONS */ ret = 0; tflag = 0; @@ -6014,6 +6399,13 @@ parameter_brace_expand (string, indexp, quoted, quoted_dollar_atp, contains_doll want_substring = 1; else if (c == '/' && string[sindex] != RBRACE) want_patsub = 1; +#if defined (CASEMOD_EXPANSIONS) + else if (c == '^' || c == ',' || c == '~') + { + modspec = c; + want_casemod = 1; + } +#endif /* Catch the valid and invalid brace expressions that made it through the tests above. */ @@ -6132,7 +6524,7 @@ parameter_brace_expand (string, indexp, quoted, quoted_dollar_atp, contains_doll FREE (x); if (ALL_ELEMENT_SUB (x1[0]) && x1[1] == ']') { - temp = array_keys (temp1, quoted); + temp = array_keys (temp1, quoted); /* handles assoc vars too */ if (x1[0] == '@') { if ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) && quoted_dollar_atp) @@ -6232,8 +6624,32 @@ parameter_brace_expand (string, indexp, quoted, quoted_dollar_atp, contains_doll ret = alloc_word_desc (); ret->word = temp1; + ret = alloc_word_desc (); + ret->word = temp1; + if (temp1 && QUOTED_NULL (temp1) && (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES))) + ret->flags |= W_QUOTED|W_HASQUOTEDNULL; return ret; } +#if defined (CASEMOD_EXPANSIONS) + else if (want_casemod) + { + temp1 = parameter_brace_casemod (name, temp, modspec, value, quoted); + FREE (name); + FREE (value); + FREE (temp); + + if (temp1 == &expand_param_error) + return (&expand_wdesc_error); + else if (temp1 == &expand_param_fatal) + return (&expand_wdesc_fatal); + + ret = alloc_word_desc (); + ret->word = temp1; + if (temp1 && QUOTED_NULL (temp1) && (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES))) + ret->flags |= W_QUOTED|W_HASQUOTEDNULL; + return ret; + } +#endif /* Do the right thing based on which character ended the variable name. */ switch (c) @@ -6269,8 +6685,12 @@ parameter_brace_expand (string, indexp, quoted, quoted_dollar_atp, contains_doll temp1 = parameter_brace_remove_pattern (name, temp, value, c, quoted); free (temp); free (value); - temp = temp1; - break; + + ret = alloc_word_desc (); + ret->word = temp1; + if (temp1 && QUOTED_NULL (temp1) && (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES))) + ret->flags |= W_QUOTED|W_HASQUOTEDNULL; + return ret; case '-': case '=': @@ -6467,6 +6887,16 @@ param_expand (string, sindex, quoted, expanded_something, case '*': /* `$*' */ list = list_rest_of_args (); + if (list == 0 && unbound_vars_is_error) + { + uerror[0] = '$'; + uerror[1] = '*'; + uerror[2] = '\0'; + err_unboundvar (uerror); + last_command_exit_value = EXECUTION_FAILURE; + return (interactive_shell ? &expand_wdesc_error : &expand_wdesc_fatal); + } + /* If there are no command-line arguments, this should just disappear if there are other characters in the expansion, even if it's quoted. */ @@ -6519,6 +6949,16 @@ param_expand (string, sindex, quoted, expanded_something, case '@': /* `$@' */ list = list_rest_of_args (); + if (list == 0 && unbound_vars_is_error) + { + uerror[0] = '$'; + uerror[1] = '@'; + uerror[2] = '\0'; + err_unboundvar (uerror); + last_command_exit_value = EXECUTION_FAILURE; + return (interactive_shell ? &expand_wdesc_error : &expand_wdesc_fatal); + } + /* We want to flag the fact that we saw this. We can't turn off quoting entirely, because other characters in the string might need it (consider "\"$@\""), but we need some @@ -6575,7 +7015,7 @@ param_expand (string, sindex, quoted, expanded_something, case LPAREN: /* We have to extract the contents of this paren substitution. */ t_index = zindex + 1; - temp = extract_command_subst (string, &t_index); + temp = extract_command_subst (string, &t_index, 0); zindex = t_index; /* For Posix.2-style `$(( ))' arithmetic substitution, @@ -6631,7 +7071,12 @@ comsub: /* we need zindex+1 because string[zindex] == RPAREN */ temp1 = substring (string, *sindex, zindex+1); else - temp1 = command_substitute (temp, quoted); + { + tdesc = command_substitute (temp, quoted); + temp1 = tdesc ? tdesc->word : (char *)NULL; + if (tdesc) + dispose_word_desc (tdesc); + } FREE (temp); temp = temp1; break; @@ -6643,6 +7088,13 @@ comsub: t_index = zindex + 1; temp = extract_arithmetic_subst (string, &t_index); zindex = t_index; + if (temp == 0) + { + temp = savestring (string); + if (expanded_something) + *expanded_something = 0; + goto return0; + } /* Do initial variable expansion. */ temp1 = expand_arith_string (temp, Q_DOUBLE_QUOTES); @@ -6675,9 +7127,10 @@ comsub: if (var && invisible_p (var) == 0 && var_isset (var)) { #if defined (ARRAY_VARS) - if (array_p (var)) + if (assoc_p (var) || array_p (var)) { - temp = array_reference (array_cell (var), 0); + temp = array_p (var) ? array_reference (array_cell (var), 0) + : assoc_reference (assoc_cell (var), "0"); if (temp) temp = (*temp && (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES))) ? quote_string (temp) @@ -6972,7 +7425,7 @@ add_string: free (temp); temp = temp1; sindex += t_index; - goto add_string; + goto add_quoted_string; /* XXX was add_string */ } else { @@ -7013,7 +7466,7 @@ add_string: { t_index = sindex++; - temp = string_extract (string, &sindex, "`", EX_REQMATCH); + temp = string_extract (string, &sindex, "`", SX_REQMATCH); /* The test of sindex against t_index is to allow bare instances of ` to pass through, for backwards compatibility. */ if (temp == &extract_string_error || temp == &extract_string_fatal) @@ -7023,7 +7476,7 @@ add_string: sindex = t_index; goto add_character; } - report_error ("bad substitution: no closing \"`\" in %s", string+t_index); + report_error (_("bad substitution: no closing \"`\" in %s") , string+t_index); free (string); free (istring); return ((temp == &extract_string_error) ? &expand_word_error @@ -7039,7 +7492,10 @@ add_string: else { de_backslash (temp); - temp1 = command_substitute (temp, quoted); + tword = command_substitute (temp, quoted); + temp1 = tword ? tword->word : (char *)NULL; + if (tword) + dispose_word_desc (tword); } FREE (temp); temp = temp1; @@ -7467,6 +7923,11 @@ string_quote_removal (string, quoted) { case '\\': c = string[++sindex]; + if (c == 0) + { + *r++ = '\\'; + break; + } if (((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) || dquote) && (sh_syntaxtab[c] & CBSDQUOTE) == 0) *r++ = '\\'; /* FALLTHROUGH */ @@ -7565,11 +8026,7 @@ setifs (v) unsigned char uc; ifs_var = v; -#if 0 - ifs_value = v ? value_cell (v) : " \t\n"; -#else ifs_value = (v && value_cell (v)) ? value_cell (v) : " \t\n"; -#endif /* Should really merge ifs_cmap with sh_syntaxtab. XXX - doesn't yet handle multibyte chars in IFS */ @@ -7668,14 +8125,16 @@ static void exp_jump_to_top_level (v) int v; { + set_pipestatus_from_exit (last_command_exit_value); + /* Cleanup code goes here. */ expand_no_split_dollar_star = 0; /* XXX */ expanding_redir = 0; + assigning_in_environment = 0; if (parse_and_execute_level == 0) top_level_cleanup (); /* from sig.c */ - jump_to_top_level (v); } @@ -7988,6 +8447,30 @@ brace_expand_word_list (tlist, eflags) } #endif +#if defined (ARRAY_VARS) +/* Take WORD, a compound associative array assignment, and internally run + 'declare -A w', where W is the variable name portion of WORD. */ +static int +make_internal_declare (word, option) + char *word; + char *option; +{ + int t; + WORD_LIST *wl; + WORD_DESC *w; + + w = make_word (word); + + t = assignment (w->word, 0); + w->word[t] = '\0'; + + wl = make_word_list (w, (WORD_LIST *)NULL); + wl = make_word_list (make_word (option), wl); + + return (declare_builtin (wl)); +} +#endif + static WORD_LIST * shell_expand_word_list (tlist, eflags) WORD_LIST *tlist; @@ -8016,6 +8499,9 @@ shell_expand_word_list (tlist, eflags) { int t; + if (tlist->word->flags & W_ASSIGNASSOC) + make_internal_declare (tlist->word->word, "-A"); + t = do_word_assignment (tlist->word); if (t == 0) { @@ -8026,7 +8512,7 @@ shell_expand_word_list (tlist, eflags) /* Now transform the word as ksh93 appears to do and go on */ t = assignment (tlist->word->word, 0); tlist->word->word[t] = '\0'; - tlist->word->flags &= ~(W_ASSIGNMENT|W_NOSPLIT|W_COMPASSIGN|W_ASSIGNARG); + tlist->word->flags &= ~(W_ASSIGNMENT|W_NOSPLIT|W_COMPASSIGN|W_ASSIGNARG|W_ASSIGNASSOC); } #endif @@ -8175,7 +8661,9 @@ expand_word_list_internal (list, eflags) for (temp_list = subst_assign_varlist; temp_list; temp_list = temp_list->next) { this_command_name = (char *)NULL; + assigning_in_environment = (assign_func == assign_in_env); tint = (*assign_func) (temp_list->word); + assigning_in_environment = 0; /* Variable assignment errors in non-interactive shells running in Posix.2 mode cause the shell to exit. */ if (tint == 0) diff --git a/subst.h b/subst.h index 3c3828f54..b0149cc12 100644 --- a/subst.h +++ b/subst.h @@ -1,22 +1,22 @@ /* subst.h -- Names of externally visible functions in subst.c. */ -/* Copyright (C) 1993-2004 Free Software Foundation, Inc. +/* Copyright (C) 1993-2009 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. + 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #if !defined (_SUBST_H_) #define _SUBST_H_ @@ -42,6 +42,16 @@ /* Flag values controlling how assignment statements are treated. */ #define ASS_APPEND 0x01 #define ASS_MKLOCAL 0x02 +#define ASS_MKASSOC 0x04 + +/* Flags for the string extraction functions. */ +#define SX_NOALLOC 0x01 /* just skip; don't return substring */ +#define SX_VARNAME 0x02 /* variable name; for string_extract () */ +#define SX_REQMATCH 0x04 /* closing/matching delimiter required */ +#define SX_COMMAND 0x08 /* extracting a shell script/command */ +#define SX_NOCTLESC 0x10 /* don't honor CTLESC quoting */ +#define SX_NOESCCTLNUL 0x20 /* don't let CTLESC quote CTLNUL */ +#define SX_NOLONGJMP 0x40 /* don't longjmp on fatal error */ /* Remove backslashes which are quoting backquotes from STRING. Modifies STRING, and returns a pointer to it. */ @@ -52,8 +62,9 @@ extern void unquote_bang __P((char *)); /* Extract the $( construct in STRING, and return a new string. Start extracting at (SINDEX) as if we had just seen "$(". - Make (SINDEX) get the position just after the matching ")". */ -extern char *extract_command_subst __P((char *, int *)); + Make (SINDEX) get the position just after the matching ")". + XFLAGS is additional flags to pass to other extraction functions, */ +extern char *extract_command_subst __P((char *, int *, int)); /* Extract the $[ construct in STRING, and return a new string. Start extracting at (SINDEX) as if we had just seen "$[". @@ -84,6 +95,12 @@ extern char *string_list_dollar_star __P((WORD_LIST *)); /* Expand $@ into a single string, obeying POSIX rules. */ extern char *string_list_dollar_at __P((WORD_LIST *, int)); +/* Turn the positional paramters into a string, understanding quoting and + the various subtleties of using the first character of $IFS as the + separator. Calls string_list_dollar_at, string_list_dollar_star, and + string_list as appropriate. */ +extern char *string_list_pos_params __P((int, WORD_LIST *, int)); + /* Perform quoted null character removal on each element of LIST. This modifies LIST. */ extern void word_list_remove_quoted_nulls __P((WORD_LIST *)); @@ -92,6 +109,7 @@ extern void word_list_remove_quoted_nulls __P((WORD_LIST *)); STRING. */ extern WORD_LIST *list_string __P((char *, char *, int)); +extern char *ifs_firstchar __P((int *)); extern char *get_word_from_string __P((char **, char *, char **)); extern char *strip_trailing_ifs_whitespace __P((char *, char *, int)); @@ -157,6 +175,9 @@ extern char *expand_arith_string __P((char *, int)); /* De-quote quoted characters in STRING. */ extern char *dequote_string __P((char *)); +/* De-quote CTLESC-escaped CTLESC or CTLNUL characters in STRING. */ +extern char *dequote_escapes __P((char *)); + /* De-quote quoted characters in each word in LIST. */ extern WORD_LIST *dequote_list __P((WORD_LIST *)); @@ -181,6 +202,12 @@ extern char *quote_string __P((char *)); in a string. */ extern char *quote_escapes __P((char *)); +/* And remove such quoted special characters. */ +extern char *remove_quoted_escapes __P((char *)); + +/* Remove CTLNUL characters from STRING unless they are quoted with CTLESC. */ +extern char *remove_quoted_nulls __P((char *)); + /* Perform quote removal on STRING. If QUOTED > 0, assume we are obeying the backslash quoting rules for within double quotes. */ extern char *string_quote_removal __P((char *, int)); @@ -219,7 +246,7 @@ extern WORD_LIST *expand_words_no_vars __P((WORD_LIST *)); command substitution, arithmetic expansion, and word splitting. */ extern WORD_LIST *expand_words_shellexp __P((WORD_LIST *)); -extern char *command_substitute __P((char *, int)); +extern WORD_DESC *command_substitute __P((char *, int)); extern char *pat_subst __P((char *, char *, char *, int)); extern int fifos_pending __P((void)); @@ -236,10 +263,15 @@ extern char *remove_backslashes __P((char *)); extern char *cond_expand_word __P((WORD_DESC *, int)); #endif +/* Flags for skip_to_delim */ +#define SD_NOJMP 0x01 /* don't longjmp on fatal error. */ +#define SD_INVERT 0x02 /* look for chars NOT in passed set */ + +extern int skip_to_delim __P((char *, int, char *, int)); + #if defined (READLINE) extern int char_is_quoted __P((char *, int)); extern int unclosed_pair __P((char *, int, char *)); -extern int skip_to_delim __P((char *, int, char *)); extern WORD_LIST *split_at_delims __P((char *, int, char *, int, int *, int *)); #endif diff --git a/support/Makefile.in b/support/Makefile.in index b94e445d1..1ff3f1a91 100644 --- a/support/Makefile.in +++ b/support/Makefile.in @@ -2,28 +2,26 @@ # Simple Makefile for the support programs. # # documentation support: man2html -# testing support: printenv recho zecho +# testing support: printenv recho zecho xcase # # bashbug lives here but is created by the top-level makefile # # Currently only man2html is built # -# -# Copyright (C) 1998 Free Software Foundation, Inc. +# Copyright (C) 1998-2009 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 free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# 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. +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . # # Boilerplate @@ -58,7 +56,7 @@ LIBS_FOR_BUILD = ${LIBS} # XXX LOCAL_LDFLAGS = @LOCAL_LDFLAGS@ LDFLAGS = @LDFLAGS@ $(LOCAL_LDFLAGS) $(CFLAGS) -LDFLAGS_FOR_BUILD = $(LDFLAGS) +LDFLAGS_FOR_BUILD = @LDFLAGS_FOR_BUILD@ $(LOCAL_LDFLAGS) $(CFLAGS_FOR_BUILD) INCLUDES = -I${BUILD_DIR} -I${topdir} diff --git a/support/bashbug.sh b/support/bashbug.sh index 8c4e1ecdb..b00a55be9 100644 --- a/support/bashbug.sh +++ b/support/bashbug.sh @@ -9,19 +9,18 @@ # # 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 free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. # -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# 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. +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . # # configuration section: diff --git a/support/bashversion.c b/support/bashversion.c index abf1aa8df..59c2321e7 100644 --- a/support/bashversion.c +++ b/support/bashversion.c @@ -4,19 +4,19 @@ 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. + 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #include "config.h" @@ -47,6 +47,9 @@ extern char *optarg; extern char *dist_version; extern int patch_level; +extern char *shell_version_string __P((void)); +extern void show_shell_version __P((int)); + char *shell_name = "bash"; char *progname; diff --git a/support/checkbashisms b/support/checkbashisms new file mode 100755 index 000000000..ea6cc14ff --- /dev/null +++ b/support/checkbashisms @@ -0,0 +1,170 @@ +#! /usr/bin/perl -w + +# This script is essentially copied from /usr/share/lintian/checks/scripts, +# which is: +# Copyright (C) 1998 Richard Braakman +# Copyright (C) 2002 Josip Rodin +# This version is +# Copyright (C) 2003 Julian Gilbey +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + +use strict; + +(my $progname = $0) =~ s|.*/||; + +my $usage = <<"EOF"; +Usage: $progname [-n] script ... + or: $progname --help + or: $progname --version +This script performs basic checks for the presence of bashisms +in /bin/sh scripts. +EOF + +my $version = <<"EOF"; +This is $progname, from the Debian devscripts package, version 2.10.7ubuntu5 +This code is copyright 2003 by Julian Gilbey , +based on original code which is copyright 1998 by Richard Braakman +and copyright 2002 by Josip Rodin. +This program comes with ABSOLUTELY NO WARRANTY. +You are free to redistribute this code under the terms of the +GNU General Public License, version 3, or (at your option) any later version. +EOF + +my $opt_echo = 0; + +## +## handle command-line options +## +if (int(@ARGV) == 0 or $ARGV[0] =~ /^(--help|-h)$/) { print $usage; exit 0; } +if (@ARGV and $ARGV[0] =~ /^(--version|-v)$/) { print $version; exit 0; } +if (@ARGV and $ARGV[0] =~ /^(--newline|-n)$/) { $opt_echo = 1; } + + +my $status = 0; + +foreach my $filename (@ARGV) { + if ($filename eq '-n' or $filename eq '--newline') { + next; + } + unless (open C, "$filename") { + warn "cannot open script $filename for reading: $!\n"; + $status |= 2; + next; + } + + my $cat_string = ""; + + while () { + if ($. == 1) { # This should be an interpreter line + if (m,^\#!\s*(\S+),) { + my $interpreter = $1; + if ($interpreter =~ m,/bash$,) { + warn "script $filename is already a bash script; skipping\n"; + $status |= 2; + last; # end this file + } + elsif ($interpreter !~ m,/(sh|ash|dash)$,) { + warn "script $filename does not appear to be a /bin/sh script; skipping\n"; + $status |= 2; + last; + } + } else { + warn "script $filename does not appear to have a \#! interpreter line;\nyou may get strange results\n"; + } + } + + next if m,^\s*\#,; # skip comment lines + chomp; + my $orig_line = $_; + + s/(? q<'function' is useless>, + '(?:^|\s+)select\s+\w+' => q<'select' is not POSIX>, + '(?:^|\s+)source\s+(?:\.\/|\/|\$)[^\s]+' => + q, + '(\[|test|-o|-a)\s*[^\s]+\s+==\s' => + q, + '\s\|\&' => q, + '\$\[\w+\]' => q, + '\$\{\w+\:\d+(?::\d+)?\}' => q<${foo:3[:1]}>, + '\$\{!\w+[@*]\}' => q<${!prefix[*|@]>, + '\$\{!\w+\}' => q<${!name}>, + '\$\{\w+(/.+?){1,2}\}' => q<${parm/?/pat[/str]}>, + '[^\\\]\{([^\s]+?,)+[^\\\}\s]+\}' => + q, + '(?:^|\s+)\w+\[\d+\]=' => q, + '\$\{\#?\w+\[[0-9\*\@]+\]\}' => q, + '(?:^|\s+)(read\s*(?:;|$))' => q, + '\$\(\([A-Za-z]' => q, + 'echo\s+-[e]' => q, + 'exec\s+-[acl]' => q, + '\blet\s' => q, + '\$RANDOM\b' => q<$RANDOM>, + '(? q<'((' should be '$(('>, + ); + + if ($opt_echo) { + $bashisms{'echo\s+-[n]'} = 'q'; + } + + while (my ($re,$expl) = each %bashisms) { + if (m/($re)/) { + $found = 1; + $match = $1; + $explanation = $expl; + last; + } + } + # since this test is ugly, I have to do it by itself + # detect source (.) trying to pass args to the command it runs + if (not $found and m/^\s*(\.\s+[^\s]+\s+([^\s]+))/) { + if ($2 eq '&&' || $2 eq '||') { + # everything is ok + ; + } else { + $found = 1; + $match = $1; + } + } + unless ($found == 0) { + warn "possible bashism in $filename line $. ($explanation):\n$orig_line\n"; + $status |= 1; + } + } + } + + close C; +} + +exit $status; diff --git a/support/config.guess b/support/config.guess old mode 100755 new mode 100644 index 6d90d6f50..994d98a46 --- a/support/config.guess +++ b/support/config.guess @@ -1,9 +1,10 @@ #! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002 Free Software Foundation, Inc. +# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 +# Free Software Foundation, Inc. -timestamp='2002-11-30' +timestamp='2008-03-12' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -17,13 +18,15 @@ timestamp='2002-11-30' # # 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. +# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA +# 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. + # Originally written by Per Bothner . # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. @@ -53,8 +56,8 @@ version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 -Free Software Foundation, Inc. +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, +2002, 2003, 2004, 2005, 2006, 2007, 2008,2009 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -66,11 +69,11 @@ Try \`$me --help' for more information." while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) - echo "$timestamp" ; exit 0 ;; + echo "$timestamp" ; exit ;; --version | -v ) - echo "$version" ; exit 0 ;; + echo "$version" ; exit ;; --help | --h* | -h ) - echo "$usage"; exit 0 ;; + echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. @@ -98,14 +101,18 @@ trap 'exit 1' 1 2 15 # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. -# This shell variable is my proudest work .. or something. --bje +# Portable tmp directory creation inspired by the Autoconf team. -set_cc_for_build='tmpdir=${TMPDIR-/tmp}/config-guess-$$ ; -(old=`umask` && umask 077 && mkdir $tmpdir && umask $old && unset old) - || (echo "$me: cannot create $tmpdir" >&2 && exit 1) ; -dummy=$tmpdir/dummy ; -files="$dummy.c $dummy.o $dummy.rel $dummy" ; -trap '"'"'rm -f $files; rmdir $tmpdir; exit 1'"'"' 1 2 15 ; +set_cc_for_build=' +trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; +trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; +: ${TMPDIR=/tmp} ; + { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || + { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || + { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || + { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; +dummy=$tmp/dummy ; +tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in ,,) echo "int x;" > $dummy.c ; for c in cc gcc c89 c99 ; do @@ -113,15 +120,13 @@ case $CC_FOR_BUILD,$HOST_CC,$CC in CC_FOR_BUILD="$c"; break ; fi ; done ; - rm -f $files ; if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found ; fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; -esac ; -unset files' +esac ; set_cc_for_build= ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) @@ -156,6 +161,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; + sh5el) machine=sh5le-unknown ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched @@ -194,139 +200,112 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" - exit 0 ;; - amiga:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - arc:OpenBSD:*:*) - echo mipsel-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - hp300:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mac68k:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - macppc:OpenBSD:*:*) - echo powerpc-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mvme68k:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mvme88k:OpenBSD:*:*) - echo m88k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mvmeppc:OpenBSD:*:*) - echo powerpc-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - pmax:OpenBSD:*:*) - echo mipsel-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - sgi:OpenBSD:*:*) - echo mipseb-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - sun3:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - wgrisc:OpenBSD:*:*) - echo mipsel-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; + exit ;; *:OpenBSD:*:*) - echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; + UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` + echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} + exit ;; + *:ekkoBSD:*:*) + echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} + exit ;; + *:SolidBSD:*:*) + echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} + exit ;; + macppc:MirBSD:*:*) + echo powerpc-unknown-mirbsd${UNAME_RELEASE} + exit ;; + *:MirBSD:*:*) + echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} + exit ;; alpha:OSF1:*:*) - if test $UNAME_RELEASE = "V4.0"; then + case $UNAME_RELEASE in + *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` - fi + ;; + *5.*) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` + ;; + esac + # According to Compaq, /usr/sbin/psrinfo has been available on + # OSF/1 and Tru64 systems produced since 1995. I hope that + # covers most systems running today. This code pipes the CPU + # types through head -n 1, so we only detect the type of CPU 0. + ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` + case "$ALPHA_CPU_TYPE" in + "EV4 (21064)") + UNAME_MACHINE="alpha" ;; + "EV4.5 (21064)") + UNAME_MACHINE="alpha" ;; + "LCA4 (21066/21068)") + UNAME_MACHINE="alpha" ;; + "EV5 (21164)") + UNAME_MACHINE="alphaev5" ;; + "EV5.6 (21164A)") + UNAME_MACHINE="alphaev56" ;; + "EV5.6 (21164PC)") + UNAME_MACHINE="alphapca56" ;; + "EV5.7 (21164PC)") + UNAME_MACHINE="alphapca57" ;; + "EV6 (21264)") + UNAME_MACHINE="alphaev6" ;; + "EV6.7 (21264A)") + UNAME_MACHINE="alphaev67" ;; + "EV6.8CB (21264C)") + UNAME_MACHINE="alphaev68" ;; + "EV6.8AL (21264B)") + UNAME_MACHINE="alphaev68" ;; + "EV6.8CX (21264D)") + UNAME_MACHINE="alphaev68" ;; + "EV6.9A (21264/EV69A)") + UNAME_MACHINE="alphaev69" ;; + "EV7 (21364)") + UNAME_MACHINE="alphaev7" ;; + "EV7.9 (21364A)") + UNAME_MACHINE="alphaev79" ;; + esac + # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. - eval $set_cc_for_build - cat <$dummy.s - .data -\$Lformat: - .byte 37,100,45,37,120,10,0 # "%d-%x\n" - - .text - .globl main - .align 4 - .ent main -main: - .frame \$30,16,\$26,0 - ldgp \$29,0(\$27) - .prologue 1 - .long 0x47e03d80 # implver \$0 - lda \$2,-1 - .long 0x47e20c21 # amask \$2,\$1 - lda \$16,\$Lformat - mov \$0,\$17 - not \$1,\$18 - jsr \$26,printf - ldgp \$29,0(\$26) - mov 0,\$16 - jsr \$26,exit - .end main -EOF - $CC_FOR_BUILD -o $dummy $dummy.s 2>/dev/null - if test "$?" = 0 ; then - case `$dummy` in - 0-0) - UNAME_MACHINE="alpha" - ;; - 1-0) - UNAME_MACHINE="alphaev5" - ;; - 1-1) - UNAME_MACHINE="alphaev56" - ;; - 1-101) - UNAME_MACHINE="alphapca56" - ;; - 2-303) - UNAME_MACHINE="alphaev6" - ;; - 2-307) - UNAME_MACHINE="alphaev67" - ;; - 2-1307) - UNAME_MACHINE="alphaev68" - ;; - 3-1307) - UNAME_MACHINE="alphaev7" - ;; - esac - fi - rm -f $dummy.s $dummy && rmdir $tmpdir - echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - exit 0 ;; + echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + exit ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead # of the specific Alpha model? echo alpha-pc-interix - exit 0 ;; + exit ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 - exit 0 ;; + exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 - exit 0;; + exit ;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos - exit 0 ;; + exit ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos - exit 0 ;; + exit ;; *:OS/390:*:*) echo i370-ibm-openedition - exit 0 ;; + exit ;; + *:z/VM:*:*) + echo s390-ibm-zvmoe + exit ;; + *:OS400:*:*) + echo powerpc-ibm-os400 + exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} - exit 0;; + exit ;; + arm:riscos:*:*|arm:RISCOS:*:*) + echo arm-unknown-riscos + exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp - exit 0;; + exit ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then @@ -334,29 +313,32 @@ EOF else echo pyramid-pyramid-bsd fi - exit 0 ;; + exit ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 - exit 0 ;; - DRS?6000:UNIX_SV:4.2*:7*) + exit ;; + DRS?6000:unix:4.0:6*) + echo sparc-icl-nx6 + exit ;; + DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in - sparc) echo sparc-icl-nx7 && exit 0 ;; + sparc) echo sparc-icl-nx7; exit ;; esac ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; + exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; - i86pc:SunOS:5.*:*) + exit ;; + i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; + exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; + exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) @@ -365,10 +347,10 @@ EOF esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` - exit 0 ;; + exit ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} - exit 0 ;; + exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 @@ -380,10 +362,10 @@ EOF echo sparc-sun-sunos${UNAME_RELEASE} ;; esac - exit 0 ;; + exit ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} - exit 0 ;; + exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor @@ -394,37 +376,40 @@ EOF # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} - exit 0 ;; + exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} - exit 0 ;; + exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} - exit 0 ;; + exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} - exit 0 ;; + exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} - exit 0 ;; + exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} - exit 0 ;; + exit ;; + m68k:machten:*:*) + echo m68k-apple-machten${UNAME_RELEASE} + exit ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} - exit 0 ;; + exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 - exit 0 ;; + exit ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} - exit 0 ;; + exit ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} - exit 0 ;; + exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} - exit 0 ;; + exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c @@ -448,33 +433,33 @@ EOF exit (-1); } EOF - $CC_FOR_BUILD -o $dummy $dummy.c \ - && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ - && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0 - rm -f $dummy.c $dummy && rmdir $tmpdir + $CC_FOR_BUILD -o $dummy $dummy.c && + dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && + SYSTEM_NAME=`$dummy $dummyarg` && + { echo "$SYSTEM_NAME"; exit; } echo mips-mips-riscos${UNAME_RELEASE} - exit 0 ;; + exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax - exit 0 ;; + exit ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax - exit 0 ;; + exit ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax - exit 0 ;; + exit ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix - exit 0 ;; + exit ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 - exit 0 ;; + exit ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 - exit 0 ;; + exit ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 - exit 0 ;; + exit ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` @@ -490,29 +475,29 @@ EOF else echo i586-dg-dgux${UNAME_RELEASE} fi - exit 0 ;; + exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 - exit 0 ;; + exit ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 - exit 0 ;; + exit ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 - exit 0 ;; + exit ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd - exit 0 ;; + exit ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` - exit 0 ;; + exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. - echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id - exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX ' + echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id + exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix - exit 0 ;; + exit ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` @@ -520,7 +505,7 @@ EOF IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} - exit 0 ;; + exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build @@ -535,16 +520,19 @@ EOF exit(0); } EOF - $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0 - rm -f $dummy.c $dummy && rmdir $tmpdir - echo rs6000-ibm-aix3.2.5 + if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` + then + echo "$SYSTEM_NAME" + else + echo rs6000-ibm-aix3.2.5 + fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi - exit 0 ;; - *:AIX:*:[45]) + exit ;; + *:AIX:*:[456]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 @@ -557,28 +545,28 @@ EOF IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} - exit 0 ;; + exit ;; *:AIX:*:*) echo rs6000-ibm-aix - exit 0 ;; + exit ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 - exit 0 ;; + exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to - exit 0 ;; # report: romp-ibm BSD 4.3 + exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx - exit 0 ;; + exit ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 - exit 0 ;; + exit ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd - exit 0 ;; + exit ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 - exit 0 ;; + exit ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in @@ -635,16 +623,36 @@ EOF } EOF (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` - if test -z "$HP_ARCH"; then HP_ARCH=hppa; fi - rm -f $dummy.c $dummy && rmdir $tmpdir + test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac + if [ ${HP_ARCH} = "hppa2.0w" ] + then + eval $set_cc_for_build + + # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating + # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler + # generating 64-bit code. GNU and HP use different nomenclature: + # + # $ CC_FOR_BUILD=cc ./config.guess + # => hppa2.0w-hp-hpux11.23 + # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess + # => hppa64-hp-hpux11.23 + + if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | + grep __LP64__ >/dev/null + then + HP_ARCH="hppa2.0w" + else + HP_ARCH="hppa64" + fi + fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} - exit 0 ;; + exit ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} - exit 0 ;; + exit ;; 3050*:HI-UX:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c @@ -672,152 +680,192 @@ EOF exit (0); } EOF - $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0 - rm -f $dummy.c $dummy && rmdir $tmpdir + $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && + { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 - exit 0 ;; + exit ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd - exit 0 ;; + exit ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd - exit 0 ;; + exit ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix - exit 0 ;; + exit ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf - exit 0 ;; + exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf - exit 0 ;; + exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi - exit 0 ;; + exit ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites - exit 0 ;; + exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd - exit 0 ;; + exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi - exit 0 ;; + exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd - exit 0 ;; + exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd - exit 0 ;; + exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd - exit 0 ;; + exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; + exit ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' - exit 0 ;; + exit ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; - CRAY*T3D:*:*:*) - echo alpha-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; + exit ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; + exit ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; + exit ;; + *:UNICOS/mp:*:*) + echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit 0 ;; + exit ;; + 5000:UNIX_System_V:4.*:*) + FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` + echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} - exit 0 ;; + exit ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} - exit 0 ;; + exit ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} - exit 0 ;; - amd64:FreeBSD:*:*) - echo x86_64-unknown-freebsd - exit 0 ;; + exit ;; *:FreeBSD:*:*) - # Determine whether the default compiler uses glibc. - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - #if __GLIBC__ >= 2 - LIBC=gnu - #else - LIBC= - #endif -EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` - rm -f $dummy.c && rmdir $tmpdir - echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC} - exit 0 ;; + case ${UNAME_MACHINE} in + pc98) + echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + amd64) + echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + *) + echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + esac + exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin - exit 0 ;; - i*:MINGW*:*) + exit ;; + *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 - exit 0 ;; + exit ;; + i*:windows32*:*) + # uname -m includes "-pc" on this system. + echo ${UNAME_MACHINE}-mingw32 + exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 - exit 0 ;; - x86:Interix*:3*) - echo i586-pc-interix3 - exit 0 ;; + exit ;; + *:Interix*:[3456]*) + case ${UNAME_MACHINE} in + x86) + echo i586-pc-interix${UNAME_RELEASE} + exit ;; + EM64T | authenticamd) + echo x86_64-unknown-interix${UNAME_RELEASE} + exit ;; + IA64) + echo ia64-unknown-interix${UNAME_RELEASE} + exit ;; + esac ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks - exit 0 ;; + exit ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? echo i586-pc-interix - exit 0 ;; + exit ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin - exit 0 ;; + exit ;; + amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) + echo x86_64-unknown-cygwin + exit ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin - exit 0 ;; + exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; + exit ;; *:GNU:*:*) + # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` - exit 0 ;; + exit ;; + *:GNU/*:*:*) + # other systems with GNU libc and userland + echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu + exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix - exit 0 ;; + exit ;; arm*:Linux:*:*) + eval $set_cc_for_build + if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_EABI__ + then + echo ${UNAME_MACHINE}-unknown-linux-gnu + else + echo ${UNAME_MACHINE}-unknown-linux-gnueabi + fi + exit ;; + avr32*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; + exit ;; + cris:Linux:*:*) + echo cris-axis-linux-gnu + exit ;; + crisv32:Linux:*:*) + echo crisv32-axis-linux-gnu + exit ;; + frv:Linux:*:*) + echo frv-unknown-linux-gnu + exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; + exit ;; + m32r*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; + exit ;; mips:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c @@ -834,9 +882,12 @@ EOF #endif #endif EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` - rm -f $dummy.c && rmdir $tmpdir - test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 + eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' + /^CPU/{ + s: ::g + p + }'`" + test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; mips64:Linux:*:*) eval $set_cc_for_build @@ -854,16 +905,22 @@ EOF #endif #endif EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` - rm -f $dummy.c && rmdir $tmpdir - test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 + eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' + /^CPU/{ + s: ::g + p + }'`" + test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; + or32:Linux:*:*) + echo or32-unknown-linux-gnu + exit ;; ppc:Linux:*:*) echo powerpc-unknown-linux-gnu - exit 0 ;; + exit ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-gnu - exit 0 ;; + exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; @@ -877,7 +934,7 @@ EOF objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} - exit 0 ;; + exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in @@ -885,22 +942,31 @@ EOF PA8*) echo hppa2.0-unknown-linux-gnu ;; *) echo hppa-unknown-linux-gnu ;; esac - exit 0 ;; + exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-gnu - exit 0 ;; + exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux - exit 0 ;; + exit ;; + sh64*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; + exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; + exit ;; + vax:Linux:*:*) + echo ${UNAME_MACHINE}-dec-linux-gnu + exit ;; x86_64:Linux:*:*) echo x86_64-unknown-linux-gnu - exit 0 ;; + exit ;; + xtensa*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; i*86:Linux:*:*) # The BFD linker knows what the default object file format is, so # first see if it will tell us. cd to the root directory to prevent @@ -918,15 +984,15 @@ EOF ;; a.out-i386-linux) echo "${UNAME_MACHINE}-pc-linux-gnuaout" - exit 0 ;; + exit ;; coff-i386) echo "${UNAME_MACHINE}-pc-linux-gnucoff" - exit 0 ;; + exit ;; "") # Either a pre-BFD a.out linker (linux-gnuoldld) or # one that does not give us useful --help. echo "${UNAME_MACHINE}-pc-linux-gnuoldld" - exit 0 ;; + exit ;; esac # Determine whether the default compiler is a.out or elf eval $set_cc_for_build @@ -943,24 +1009,33 @@ EOF LIBC=gnulibc1 # endif #else - #ifdef __INTEL_COMPILER + #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) LIBC=gnu #else LIBC=gnuaout #endif #endif + #ifdef __dietlibc__ + LIBC=dietlibc + #endif EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` - rm -f $dummy.c && rmdir $tmpdir - test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0 - test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0 + eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' + /^LIBC/{ + s: ::g + p + }'`" + test x"${LIBC}" != x && { + echo "${UNAME_MACHINE}-pc-linux-${LIBC}" + exit + } + test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. echo i386-sequent-sysv4 - exit 0 ;; + exit ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... @@ -968,24 +1043,27 @@ EOF # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} - exit 0 ;; + exit ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. echo ${UNAME_MACHINE}-pc-os2-emx - exit 0 ;; + exit ;; i*86:XTS-300:*:STOP) echo ${UNAME_MACHINE}-unknown-stop - exit 0 ;; + exit ;; i*86:atheos:*:*) echo ${UNAME_MACHINE}-unknown-atheos - exit 0 ;; + exit ;; + i*86:syllable:*:*) + echo ${UNAME_MACHINE}-pc-syllable + exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) echo i386-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; + exit ;; i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp - exit 0 ;; + exit ;; i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then @@ -993,15 +1071,16 @@ EOF else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi - exit 0 ;; - i*86:*:5:[78]*) + exit ;; + i*86:*:5:[678]*) + # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} - exit 0 ;; + exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi - exit 0 ;; + exit ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv - exit 0 ;; + exit ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv - exit 0 ;; + exit ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix - exit 0 ;; - M68*:*:R3V[567]*:*) - test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; - 3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0) + exit ;; + M68*:*:R3V[5678]*:*) + test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; + 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && echo i486-ncr-sysv4.3${OS_REL} && exit 0 + && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;; + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && echo i486-ncr-sysv4 && exit 0 ;; + && { echo i486-ncr-sysv4; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; + exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 - exit 0 ;; + exit ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; + exit ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; + exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; + exit ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} - exit 0 ;; + exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 - exit 0 ;; + exit ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 - exit 0 ;; + exit ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` @@ -1093,64 +1172,84 @@ EOF else echo ns32k-sni-sysv fi - exit 0 ;; + exit ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 - exit 0 ;; + exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 - exit 0 ;; + exit ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 - exit 0 ;; + exit ;; + i*86:VOS:*:*) + # From Paul.Green@stratus.com. + echo ${UNAME_MACHINE}-stratus-vos + exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos - exit 0 ;; + exit ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} - exit 0 ;; + exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 - exit 0 ;; + exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv${UNAME_RELEASE} else echo mips-unknown-sysv${UNAME_RELEASE} fi - exit 0 ;; + exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos - exit 0 ;; + exit ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos - exit 0 ;; + exit ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos - exit 0 ;; + exit ;; + BePC:Haiku:*:*) # Haiku running on Intel PC compatible. + echo i586-pc-haiku + exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} - exit 0 ;; + exit ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} - exit 0 ;; + exit ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} - exit 0 ;; + exit ;; + SX-7:SUPER-UX:*:*) + echo sx7-nec-superux${UNAME_RELEASE} + exit ;; + SX-8:SUPER-UX:*:*) + echo sx8-nec-superux${UNAME_RELEASE} + exit ;; + SX-8R:SUPER-UX:*:*) + echo sx8r-nec-superux${UNAME_RELEASE} + exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} - exit 0 ;; + exit ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} - exit 0 ;; + exit ;; *:Darwin:*:*) - echo `uname -p`-apple-darwin${UNAME_RELEASE} - exit 0 ;; + UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown + case $UNAME_PROCESSOR in + unknown) UNAME_PROCESSOR=powerpc ;; + esac + echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} + exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = "x86"; then @@ -1158,22 +1257,25 @@ EOF UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} - exit 0 ;; + exit ;; *:QNX:*:4*) echo i386-pc-qnx - exit 0 ;; - NSR-[DGKLNPTVWXY]:NONSTOP_KERNEL:*:*) + exit ;; + NSE-?:NONSTOP_KERNEL:*:*) + echo nse-tandem-nsk${UNAME_RELEASE} + exit ;; + NSR-?:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} - exit 0 ;; + exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux - exit 0 ;; + exit ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv - exit 0 ;; + exit ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} - exit 0 ;; + exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 @@ -1184,25 +1286,47 @@ EOF UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 - exit 0 ;; + exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 - exit 0 ;; + exit ;; *:TENEX:*:*) echo pdp10-unknown-tenex - exit 0 ;; + exit ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 - exit 0 ;; + exit ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 - exit 0 ;; + exit ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 - exit 0 ;; + exit ;; *:ITS:*:*) echo pdp10-unknown-its - exit 0 ;; + exit ;; + SEI:*:*:SEIUX) + echo mips-sei-seiux${UNAME_RELEASE} + exit ;; + *:DragonFly:*:*) + echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` + exit ;; + *:*VMS:*:*) + UNAME_MACHINE=`(uname -p) 2>/dev/null` + case "${UNAME_MACHINE}" in + A*) echo alpha-dec-vms ; exit ;; + I*) echo ia64-dec-vms ; exit ;; + V*) echo vax-dec-vms ; exit ;; + esac ;; + *:XENIX:*:SysV) + echo i386-pc-xenix + exit ;; + i*86:skyos:*:*) + echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' + exit ;; + i*86:rdos:*:*) + echo ${UNAME_MACHINE}-pc-rdos + exit ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 @@ -1234,7 +1358,7 @@ main () #endif #if defined (__arm) && defined (__acorn) && defined (__unix) - printf ("arm-acorn-riscix"); exit (0); + printf ("arm-acorn-riscix\n"); exit (0); #endif #if defined (hp300) && !defined (hpux) @@ -1323,12 +1447,12 @@ main () } EOF -$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0 -rm -f $dummy.c $dummy && rmdir $tmpdir +$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && + { echo "$SYSTEM_NAME"; exit; } # Apollos put the system type in the environment. -test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; } +test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } # Convex versions that predate uname can use getsysinfo(1) @@ -1337,22 +1461,22 @@ then case `getsysinfo -f cpu_type` in c1*) echo c1-convex-bsd - exit 0 ;; + exit ;; c2*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi - exit 0 ;; + exit ;; c34*) echo c34-convex-bsd - exit 0 ;; + exit ;; c38*) echo c38-convex-bsd - exit 0 ;; + exit ;; c4*) echo c4-convex-bsd - exit 0 ;; + exit ;; esac fi @@ -1363,7 +1487,9 @@ This script, last modified $timestamp, has failed to recognize the operating system you are using. It is advised that you download the most up to date version of the config scripts from - ftp://ftp.gnu.org/pub/gnu/config/ + http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD +and + http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD If the version you run ($0) is already up to date, please send the following data and any information you think might be diff --git a/support/config.rpath b/support/config.rpath index fa24bfc2d..b6c4d8ffc 100755 --- a/support/config.rpath +++ b/support/config.rpath @@ -6,19 +6,18 @@ # Taken from GNU libtool, 2001 # Originally by Gordon Matzigkeit , 1996 # -# This program is free software; you can redistribute it and/or modify +# 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 of the License, or +# the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. +# 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. +# along with this program. If not, see . # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a diff --git a/support/config.sub b/support/config.sub old mode 100755 new mode 100644 index aefb7e157..8659ca360 --- a/support/config.sub +++ b/support/config.sub @@ -1,9 +1,10 @@ #! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002 Free Software Foundation, Inc. +# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 20098 +# Free Software Foundation, Inc. -timestamp='2002-11-30' +timestamp='2008-03-26' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software @@ -21,14 +22,15 @@ timestamp='2002-11-30' # # 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. - +# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA +# 02110-1301, USA. +# # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. + # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # @@ -70,8 +72,8 @@ Report bugs and patches to ." version="\ GNU config.sub ($timestamp) -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 -Free Software Foundation, Inc. +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, +2002, 2003, 2004, 2005, 2006, 2007, 2008,2009 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -83,11 +85,11 @@ Try \`$me --help' for more information." while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) - echo "$timestamp" ; exit 0 ;; + echo "$timestamp" ; exit ;; --version | -v ) - echo "$version" ; exit 0 ;; + echo "$version" ; exit ;; --help | --h* | -h ) - echo "$usage"; exit 0 ;; + echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. @@ -99,7 +101,7 @@ while test $# -gt 0 ; do *local*) # First pass through any local machine types. echo $1 - exit 0;; + exit ;; * ) break ;; @@ -118,7 +120,9 @@ esac # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in - nto-qnx* | linux-gnu* | freebsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*) + nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ + uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ + storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; @@ -144,7 +148,7 @@ case $os in -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ - -apple | -axis) + -apple | -axis | -knuth | -cray) os= basic_machine=$1 ;; @@ -169,6 +173,10 @@ case $os in -hiux*) os=-hiuxwe2 ;; + -sco6) + os=-sco5v6 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` @@ -185,6 +193,10 @@ case $os in # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; + -sco5v6*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` @@ -228,41 +240,54 @@ case $basic_machine in | a29k \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ - | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \ - | clipper \ + | am33_2.0 \ + | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ + | bfin \ + | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ - | fr30 | frv \ + | fido | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ - | ip2k \ - | m32r | m68000 | m68k | m88k | mcore \ + | ip2k | iq2000 \ + | m32c | m32r | m32rle | m68000 | m68k | m88k \ + | maxq | mb | microblaze | mcore | mep | metag \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ - | mips64vr | mips64vrel \ + | mips64octeon | mips64octeonel \ | mips64orion | mips64orionel \ + | mips64r5900 | mips64r5900el \ + | mips64vr | mips64vrel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ + | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ + | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ + | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ + | mt \ + | msp430 \ + | nios | nios2 \ | ns16k | ns32k \ - | openrisc | or32 \ + | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ - | sh | sh[1234] | sh3e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ + | score \ + | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ - | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv9b \ - | strongarm \ - | tahoe | thumb | tic80 | tron \ + | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ + | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ + | spu | strongarm \ + | tahoe | thumb | tic4x | tic80 | tron \ | v850 | v850e \ | we32k \ - | x86 | xscale | xstormy16 | xtensa \ + | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ | z8k) basic_machine=$basic_machine-unknown ;; @@ -273,11 +298,14 @@ case $basic_machine in ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; + ms1) + basic_machine=mt-unknown + ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. - i*86 | x86_64 | amd64) + i*86 | x86_64) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. @@ -291,53 +319,68 @@ case $basic_machine in | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ - | amd64-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ - | avr-* \ - | bs2000-* \ - | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* \ - | clipper-* | cydra-* \ + | avr-* | avr32-* \ + | bfin-* | bs2000-* \ + | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ + | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ - | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ + | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | i*86-* | i860-* | i960-* | ia64-* \ - | ip2k-* \ - | m32r-* \ + | ip2k-* | iq2000-* \ + | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ - | m88110-* | m88k-* | mcore-* \ + | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ - | mips64vr-* | mips64vrel-* \ + | mips64octeon-* | mips64octeonel-* \ | mips64orion-* | mips64orionel-* \ + | mips64r5900-* | mips64r5900el-* \ + | mips64vr-* | mips64vrel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ + | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ + | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa64-* | mipsisa64el-* \ + | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ - | mipstx39 | mipstx39el \ + | mipstx39-* | mipstx39el-* \ + | mmix-* \ + | mt-* \ + | msp430-* \ + | nios-* | nios2-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ | romp-* | rs6000-* \ - | sh-* | sh[1234]-* | sh3e-* | sh[34]eb-* | shbe-* \ + | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ - | sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \ - | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ - | tahoe-* | thumb-* | tic30-* | tic4x-* | tic54x-* | tic80-* | tron-* \ + | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ + | sparclite-* \ + | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ + | tahoe-* | thumb-* \ + | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \ + | tron-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ - | x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \ - | xtensa-* \ + | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ + | xstormy16-* | xtensa*-* \ | ymp-* \ | z8k-*) ;; + # Recognize the basic CPU types without company name, with glob match. + xtensa*) + basic_machine=$basic_machine-unknown + ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) @@ -354,6 +397,9 @@ case $basic_machine in basic_machine=a29k-amd os=-udi ;; + abacus) + basic_machine=abacus-unknown + ;; adobe68k) basic_machine=m68010-adobe os=-scout @@ -368,6 +414,12 @@ case $basic_machine in basic_machine=a29k-none os=-bsd ;; + amd64) + basic_machine=x86_64-pc + ;; + amd64-*) + basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; amdahl) basic_machine=580-amdahl os=-sysv @@ -399,6 +451,14 @@ case $basic_machine in basic_machine=ns32k-sequent os=-dynix ;; + blackfin) + basic_machine=bfin-unknown + os=-linux + ;; + blackfin-*) + basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; c90) basic_machine=c90-cray os=-unicos @@ -427,12 +487,27 @@ case $basic_machine in basic_machine=j90-cray os=-unicos ;; + craynv) + basic_machine=craynv-cray + os=-unicosmp + ;; + cr16) + basic_machine=cr16-unknown + os=-elf + ;; crds | unos) basic_machine=m68k-crds ;; + crisv32 | crisv32-* | etraxfs*) + basic_machine=crisv32-axis + ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; + crx) + basic_machine=crx-unknown + os=-elf + ;; da30 | da30-*) basic_machine=m68k-da30 ;; @@ -455,6 +530,10 @@ case $basic_machine in basic_machine=m88k-motorola os=-sysv3 ;; + djgpp) + basic_machine=i586-pc + os=-msdosdjgpp + ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx @@ -605,6 +684,14 @@ case $basic_machine in basic_machine=m68k-isi os=-sysv ;; + m68knommu) + basic_machine=m68k-unknown + os=-linux + ;; + m68knommu-*) + basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; m88k-omron*) basic_machine=m88k-omron ;; @@ -620,6 +707,10 @@ case $basic_machine in basic_machine=i386-pc os=-mingw32 ;; + mingw32ce) + basic_machine=arm-unknown + os=-mingw32ce + ;; miniframe) basic_machine=m68000-convergent ;; @@ -633,10 +724,6 @@ case $basic_machine in mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; - mmix*) - basic_machine=mmix-knuth - os=-mmixware - ;; monitor) basic_machine=m68k-rom68k os=-coff @@ -649,6 +736,9 @@ case $basic_machine in basic_machine=i386-pc os=-msdos ;; + ms1-*) + basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` + ;; mvs) basic_machine=i370-ibm os=-mvs @@ -724,9 +814,12 @@ case $basic_machine in basic_machine=hppa1.1-oki os=-proelf ;; - or32 | or32-*) + openrisc | openrisc-*) basic_machine=or32-unknown - os=-coff + ;; + os400) + basic_machine=powerpc-ibm + os=-os400 ;; OSE68000 | ose68000) basic_machine=m68000-ericsson @@ -744,6 +837,14 @@ case $basic_machine in basic_machine=i860-intel os=-osf ;; + parisc) + basic_machine=hppa-unknown + os=-linux + ;; + parisc-*) + basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; pbd) basic_machine=sparc-tti ;; @@ -753,24 +854,36 @@ case $basic_machine in pc532 | pc532-*) basic_machine=ns32k-pc532 ;; + pc98) + basic_machine=i386-pc + ;; + pc98-*) + basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; - pentiumii | pentium2) + pentiumii | pentium2 | pentiumiii | pentium3) basic_machine=i686-pc ;; + pentium4) + basic_machine=i786-pc + ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; - pentiumii-* | pentium2-*) + pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; + pentium4-*) + basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; pn) basic_machine=pn-gould ;; @@ -803,6 +916,10 @@ case $basic_machine in basic_machine=i586-unknown os=-pw32 ;; + rdos) + basic_machine=i386-pc + os=-rdos + ;; rom68k) basic_machine=m68k-rom68k os=-coff @@ -829,6 +946,14 @@ case $basic_machine in sb1el) basic_machine=mipsisa64sb1el-unknown ;; + sde) + basic_machine=mipsisa32-sde + os=-elf + ;; + sei) + basic_machine=mips-sei + os=-seiux + ;; sequent) basic_machine=i386-sequent ;; @@ -836,6 +961,12 @@ case $basic_machine in basic_machine=sh-hitachi os=-hms ;; + sh5el) + basic_machine=sh5le-unknown + ;; + sh64) + basic_machine=sh64-unknown + ;; sparclite-wrs | simso-wrs) basic_machine=sparclite-wrs os=-vxworks @@ -902,10 +1033,6 @@ case $basic_machine in basic_machine=i386-sequent os=-dynix ;; - t3d) - basic_machine=alpha-cray - os=-unicos - ;; t3e) basic_machine=alphaev5-cray os=-unicos @@ -914,14 +1041,22 @@ case $basic_machine in basic_machine=t90-cray os=-unicos ;; - tic4x | c4x*) - basic_machine=tic4x-unknown - os=-coff - ;; tic54x | c54x*) basic_machine=tic54x-unknown os=-coff ;; + tic55x | c55x*) + basic_machine=tic55x-unknown + os=-coff + ;; + tic6x | c6x*) + basic_machine=tic6x-unknown + os=-coff + ;; + tile*) + basic_machine=tile-unknown + os=-linux-gnu + ;; tx39) basic_machine=mipstx39-unknown ;; @@ -935,6 +1070,10 @@ case $basic_machine in tower | tower-32) basic_machine=m68k-ncr ;; + tpf) + basic_machine=s390x-ibm + os=-tpf + ;; udi29k) basic_machine=a29k-amd os=-udi @@ -978,6 +1117,10 @@ case $basic_machine in basic_machine=hppa1.1-winbond os=-proelf ;; + xbox) + basic_machine=i686-pc + os=-mingw32 + ;; xps | xps100) basic_machine=xps100-honeywell ;; @@ -1008,6 +1151,9 @@ case $basic_machine in romp) basic_machine=romp-ibm ;; + mmix) + basic_machine=mmix-knuth + ;; rs6000) basic_machine=rs6000-ibm ;; @@ -1024,13 +1170,10 @@ case $basic_machine in we32k) basic_machine=we32k-att ;; - sh3 | sh4 | sh3eb | sh4eb | sh[1234]le | sh3ele) + sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; - sh64) - basic_machine=sh64-unknown - ;; - sparc | sparcv9 | sparcv9b) + sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) basic_machine=sparc-sun ;; cydra) @@ -1103,19 +1246,23 @@ case $os in | -aos* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ - | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \ - | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ + | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ + | -openbsd* | -solidbsd* \ + | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ + | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ - | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \ + | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ + | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ - | -powermax* | -dnix*) + | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ + | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) @@ -1133,12 +1280,15 @@ case $os in os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ - | -windows* | -osx | -abug | -netware* | -os9* | -beos* \ + | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; + -linux-dietlibc) + os=-linux-dietlibc + ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; @@ -1151,6 +1301,9 @@ case $os in -opened*) os=-openedition ;; + -os400*) + os=-os400 + ;; -wince*) os=-wince ;; @@ -1172,6 +1325,9 @@ case $os in -atheos*) os=-atheos ;; + -syllable*) + os=-syllable + ;; -386bsd) os=-bsd ;; @@ -1194,6 +1350,9 @@ case $os in -sinix*) os=-sysv4 ;; + -tpf*) + os=-tpf + ;; -triton*) os=-sysv3 ;; @@ -1224,6 +1383,15 @@ case $os in -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; + -aros*) + os=-aros + ;; + -kaos*) + os=-kaos + ;; + -zvmoe) + os=-zvmoe + ;; -none) ;; *) @@ -1246,6 +1414,12 @@ else # system, and we'll never get to this point. case $basic_machine in + score-*) + os=-elf + ;; + spu-*) + os=-elf + ;; *-acorn) os=-riscix1.2 ;; @@ -1255,6 +1429,9 @@ case $basic_machine in arm*-semi) os=-aout ;; + c4x-* | tic4x-*) + os=-coff + ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 @@ -1280,6 +1457,9 @@ case $basic_machine in m68*-cisco) os=-aout ;; + mep-*) + os=-elf + ;; mips*-cisco) os=-elf ;; @@ -1298,9 +1478,15 @@ case $basic_machine in *-be) os=-beos ;; + *-haiku) + os=-haiku + ;; *-ibm) os=-aix ;; + *-knuth) + os=-mmixware + ;; *-wec) os=-proelf ;; @@ -1433,9 +1619,15 @@ case $basic_machine in -mvs* | -opened*) vendor=ibm ;; + -os400*) + vendor=ibm + ;; -ptx*) vendor=sequent ;; + -tpf*) + vendor=ibm + ;; -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; @@ -1460,7 +1652,7 @@ case $basic_machine in esac echo $basic_machine$os -exit 0 +exit # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) diff --git a/support/fixlinks b/support/fixlinks index 13a86c8ec..73b0fa3ab 100755 --- a/support/fixlinks +++ b/support/fixlinks @@ -5,19 +5,19 @@ # # 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 free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. # -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . # -# 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. SRCDIR=. while [ $# -gt 0 ]; do diff --git a/support/missing b/support/missing index cbe2b0ef0..31977a1ed 100755 --- a/support/missing +++ b/support/missing @@ -3,20 +3,19 @@ # Copyright (C) 1996, 1997 Free Software Foundation, Inc. # Franc,ois Pinard , 1996. -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 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. +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# if test $# -eq 0; then echo 1>&2 "Try \`$0 --help' for more information" diff --git a/support/mkclone b/support/mkclone index 10b08c0ed..1840b03fe 100755 --- a/support/mkclone +++ b/support/mkclone @@ -6,19 +6,18 @@ # # 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 free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. # -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# 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. +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . # prog=`basename $0` diff --git a/support/mkconffiles b/support/mkconffiles index ec52614d7..9eb223187 100755 --- a/support/mkconffiles +++ b/support/mkconffiles @@ -15,19 +15,18 @@ # 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 free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. # -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# 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. +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . PROG=`basename $0` diff --git a/support/mkdirs b/support/mkdirs index ce4fb235d..46f656eaf 100755 --- a/support/mkdirs +++ b/support/mkdirs @@ -7,19 +7,18 @@ # 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 free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. # -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# 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. +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . for dir do diff --git a/support/mksignames.c b/support/mksignames.c index adfbb9b42..a308310bc 100644 --- a/support/mksignames.c +++ b/support/mksignames.c @@ -5,19 +5,19 @@ 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. */ + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #include diff --git a/support/mkversion.sh b/support/mkversion.sh index 92fa77c73..08a5d9812 100755 --- a/support/mkversion.sh +++ b/support/mkversion.sh @@ -7,19 +7,19 @@ # 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 free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. # -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . # -# 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]" @@ -140,6 +140,10 @@ echo echo "/* The release status of this shell. */" echo "#define RELSTATUS \"${rel_status}\"" +echo +echo "/* The default shell compatibility-level (the current version) */" +echo "#define DEFAULT_COMPAT_LEVEL ${dist_major}${dist_minor}" + # Output the SCCS version string sccs_string="${float_dist}.${patch_level}(${build_ver}) ${rel_status} GNU" echo diff --git a/support/printenv.c b/support/printenv.c index f835792b3..b45e4c7b9 100644 --- a/support/printenv.c +++ b/support/printenv.c @@ -10,19 +10,19 @@ 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. + 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #if defined (HAVE_CONFIG_H) # include diff --git a/support/printenv.sh b/support/printenv.sh index b3a716c7c..32b7ee845 100755 --- a/support/printenv.sh +++ b/support/printenv.sh @@ -2,19 +2,19 @@ # 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 free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. # -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . # -# 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. if [ $# -eq 0 ]; then env diff --git a/support/recho.c b/support/recho.c index 287fffb71..7e3c6bc65 100644 --- a/support/recho.c +++ b/support/recho.c @@ -10,19 +10,20 @@ 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ - 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 (HAVE_CONFIG_H) # include #endif diff --git a/support/rlvers.sh b/support/rlvers.sh index b3de8feb0..64cadc776 100755 --- a/support/rlvers.sh +++ b/support/rlvers.sh @@ -6,19 +6,19 @@ # 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 free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. # -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . # -# 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` diff --git a/support/shobj-conf b/support/shobj-conf index ef7863a3b..bcc9dc7ff 100755 --- a/support/shobj-conf +++ b/support/shobj-conf @@ -10,21 +10,23 @@ # Chet Ramey # chet@po.cwru.edu -# Copyright (C) 1996-2002 Free Software Foundation, Inc. +# Copyright (C) 1996-2009 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 file is part of GNU Bash, the Bourne Again SHell. # -# 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. +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . # -# 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. # # defaults @@ -80,15 +82,17 @@ sunos4*) ;; sunos5*-*gcc*|solaris2*-*gcc*) - SHOBJ_CFLAGS=-fpic SHOBJ_LD='${CC}' ld_used=`gcc -print-prog-name=ld` if ${ld_used} -V 2>&1 | grep GNU >/dev/null 2>&1; then # This line works for the GNU ld SHOBJ_LDFLAGS='-shared -Wl,-h,$@' + # http://sourceware.org/ml/binutils/2001-08/msg00361.html + SHOBJ_CFLAGS=-fPIC else # This line works for the Solaris linker in /usr/ccs/bin/ld SHOBJ_LDFLAGS='-shared -Wl,-i -Wl,-h,$@' + SHOBJ_CFLAGS=-fpic fi # SHLIB_XLDFLAGS='-R $(libdir)' @@ -114,7 +118,7 @@ linux*-*|gnu*-*|k*bsd*-gnu-*) SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)' ;; -freebsd2* | netbsd*) +freebsd2*) SHOBJ_CFLAGS=-fpic SHOBJ_LD=ld SHOBJ_LDFLAGS='-x -Bshareable' @@ -125,7 +129,7 @@ freebsd2* | netbsd*) # FreeBSD-3.x ELF freebsd[3-9]*|freebsdelf[3-9]*|freebsdaout[3-9]*|dragonfly*) - SHOBJ_CFLAGS=-fpic + SHOBJ_CFLAGS=-fPIC SHOBJ_LD='${CC}' if [ -x /usr/bin/objformat ] && [ "`/usr/bin/objformat`" = "elf" ]; then @@ -142,7 +146,7 @@ freebsd[3-9]*|freebsdelf[3-9]*|freebsdaout[3-9]*|dragonfly*) ;; # Darwin/MacOS X -darwin8*) +darwin[89]*|darwin10*) SHOBJ_STATUS=supported SHLIB_STATUS=supported @@ -153,7 +157,7 @@ darwin8*) SHLIB_LIBVERSION='$(SHLIB_MAJOR)$(SHLIB_MINOR).$(SHLIB_LIBSUFF)' SHLIB_LIBSUFF='dylib' - SHOBJ_LDFLAGS='-undefined dynamic_lookup' + SHOBJ_LDFLAGS='-dynamiclib -dynamic -undefined dynamic_lookup -arch_only `/usr/bin/arch`' SHLIB_XLDFLAGS='-dynamiclib -arch_only `/usr/bin/arch` -install_name $(libdir)/$@ -current_version $(SHLIB_MAJOR)$(SHLIB_MINOR) -compatibility_version $(SHLIB_MAJOR) -v' SHLIB_LIBS='-lncurses' # see if -lcurses works on MacOS X 10.1 @@ -171,7 +175,7 @@ darwin*|macosx*) SHLIB_LIBSUFF='dylib' case "${host_os}" in - darwin[78]*) SHOBJ_LDFLAGS='' + darwin[789]*|darwin10*) SHOBJ_LDFLAGS='' SHLIB_XLDFLAGS='-dynamiclib -arch_only `/usr/bin/arch` -install_name $(libdir)/$@ -current_version $(SHLIB_MAJOR)$(SHLIB_MINOR) -compatibility_version $(SHLIB_MAJOR) -v' ;; *) SHOBJ_LDFLAGS='-dynamic' @@ -182,7 +186,7 @@ darwin*|macosx*) SHLIB_LIBS='-lncurses' # see if -lcurses works on MacOS X 10.1 ;; -openbsd*) +openbsd*|netbsd*) SHOBJ_CFLAGS=-fPIC SHOBJ_LD='${CC}' SHOBJ_LDFLAGS='-shared' @@ -247,7 +251,7 @@ osf*) SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)' ;; -aix4.[2-9]*-*gcc*) # lightly tested by jik@cisco.com +aix4.[2-9]*-*gcc*|aix[5-9].*-*gcc*) # lightly tested by jik@cisco.com SHOBJ_CFLAGS=-fpic SHOBJ_LD='ld' SHOBJ_LDFLAGS='-bdynamic -bnoentry -bexpall' @@ -258,7 +262,7 @@ aix4.[2-9]*-*gcc*) # lightly tested by jik@cisco.com SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)' ;; -aix4.[2-9]*) +aix4.[2-9]*|aix[5-9].*) SHOBJ_CFLAGS=-K SHOBJ_LD='ld' SHOBJ_LDFLAGS='-bdynamic -bnoentry -bexpall' @@ -329,7 +333,7 @@ hpux10*-*gcc*) SHOBJ_LD='${CC}' # if you have problems linking here, moving the `-Wl,+h,$@' from # SHLIB_XLDFLAGS to SHOBJ_LDFLAGS has been reported to work - SHOBJ_LDFLAGS='-shared -Wl,-b -Wl,+s' + SHOBJ_LDFLAGS='-shared -fpic -Wl,-b -Wl,+s' SHLIB_XLDFLAGS='-Wl,+h,$@ -Wl,+b,$(libdir)' SHLIB_LIBSUFF='sl' @@ -489,20 +493,37 @@ msdos*) cygwin*) SHOBJ_LD='$(CC)' - SHOBJ_LDFLAGS='-shared -Wl,--enable-auto-import -Wl,--enable-auto-image-base -Wl,--export-all -Wl,--out-implib=$(@).a' - SHLIB_LIBPREF='cyg' - SHLIB_LIBSUFF='dll' - SHLIB_LIBVERSION='$(SHLIB_DLLVERSION).$(SHLIB_LIBSUFF)' - SHLIB_LIBS='$(TERMCAP_LIB)' + SHOBJ_LDFLAGS='-shared -Wl,--enable-auto-import -Wl,--enable-auto-image-base -Wl,--export-all -Wl,--out-implib=$(@).a' + SHLIB_LIBPREF='cyg' + SHLIB_LIBSUFF='dll' + SHLIB_LIBVERSION='$(SHLIB_DLLVERSION).$(SHLIB_LIBSUFF)' + SHLIB_LIBS='$(TERMCAP_LIB)' + + SHLIB_DOT= + # For official cygwin releases, DLLVERSION will be defined in the + # environment of configure, and will be incremented any time the API + # changes in a non-backwards compatible manner. Otherwise, it is just + # SHLIB_MAJOR. + if [ -n "$DLLVERSION" ] ; then + SHLIB_DLLVERSION="$DLLVERSION" + fi + ;; + +mingw*) + SHOBJ_LD='$(CC)' + SHOBJ_LDFLAGS='-shared -Wl,--enable-auto-import -Wl,--enable-auto-image-base -Wl,--export-all -Wl,--out-implib=$(@).a' + SHLIB_LIBSUFF='dll' + SHLIB_LIBVERSION='$(SHLIB_DLLVERSION).$(SHLIB_LIBSUFF)' + SHLIB_LIBS='$(TERMCAP_LIB)' SHLIB_DOT= - # For official cygwin releases, DLLVERSION will be defined in the - # environment of configure, and will be incremented any time the API - # changes in a non-backwards compatible manner. Otherwise, it is just - # SHLIB_MAJOR. - if [ -n "$DLLVERSION" ] ; then + # For official cygwin releases, DLLVERSION will be defined in the + # environment of configure, and will be incremented any time the API + # changes in a non-backwards compatible manner. Otherwise, it is just + # SHLIB_MAJOR. + if [ -n "$DLLVERSION" ] ; then SHLIB_DLLVERSION="$DLLVERSION" - fi + fi ;; # diff --git a/support/signames.c b/support/signames.c index 46b07e376..137826f68 100644 --- a/support/signames.c +++ b/support/signames.c @@ -4,19 +4,19 @@ 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. */ + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #include diff --git a/support/texi2dvi b/support/texi2dvi index 010b586b4..83c08425d 100755 --- a/support/texi2dvi +++ b/support/texi2dvi @@ -5,20 +5,18 @@ # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2001, # 2002, 2003 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 free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. # -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# 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, you can either send email to this -# program's maintainer or write to: The Free Software Foundation, -# Inc.; 59 Temple Place, Suite 330; Boston, MA 02111-1307, USA. +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . # # Original author: Noah Friedman . # diff --git a/support/texi2html b/support/texi2html index bdb3bee33..13b55884c 100755 --- a/support/texi2html +++ b/support/texi2html @@ -7,20 +7,19 @@ # # Copyright (C) 1999, 2000 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 of the License, or -# (at your option) any later version. +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. # -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . # -# 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 -# #-############################################################################## # This requires perl version 5 or higher @@ -3564,7 +3563,7 @@ INPUT_LINE: while ($_ = &next_line) { $name = &normalise_node($name); $level = $sec2level{$tag}; # check for index - $first_index_chapter = $name + $first_index_chapter = $node if ($level == 1 && !$first_index_chapter && $name =~ /index/i); if ($in_top && /heading/){ diff --git a/support/xcase.c b/support/xcase.c new file mode 100644 index 000000000..efd11befb --- /dev/null +++ b/support/xcase.c @@ -0,0 +1,95 @@ +/* xcase - change uppercase characters to lowercase or vice versa. */ + +/* Copyright (C) 2008,2009 Free Software Foundation, Inc. + + This file is part of GNU Bash. + + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include +#include + +#if HAVE_UNISTD_H +#include +#endif + +#include "bashansi.h" +#include + +#ifndef errno +extern int errno; +#endif + +#define LOWER 1 +#define UPPER 2 + +main(ac, av) +int ac; +char **av; +{ + int c, x; + int op; + FILE *inf; + + op = 0; + while ((c = getopt(ac, av, "lnu")) != EOF) { + switch (c) { + case 'n': + setbuf (stdout, (char *)NULL); + break; + case 'u': + op = UPPER; + break; + case 'l': + op = LOWER; + break; + default: + fprintf(stderr, "casemod: usage: casemod [-lnu] [file]\n"); + exit(2); + } + } + av += optind; + ac -= optind; + + if (av[0] && (av[0][0] != '-' || av[0][1])) { + inf = fopen(av[0], "r"); + if (inf == 0) { + fprintf(stderr, "casemod: %s: cannot open: %s\n", av[0], strerror(errno)); + exit(1); + } + } else + inf = stdin; + + while ((c = getc(inf)) != EOF) { + switch (op) { + case UPPER: + x = islower(c) ? toupper(c) : c; + break; + case LOWER: + x = isupper(c) ? tolower(c) : c; + break; + default: + x = c; + break; + } + putchar(x); + } + + exit(0); +} diff --git a/support/xenix-link.sh b/support/xenix-link.sh index ed22a08c9..4d82e009a 100755 --- a/support/xenix-link.sh +++ b/support/xenix-link.sh @@ -16,19 +16,19 @@ # Copyright (C) 1989-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 free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. # -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . # -# 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. set -x diff --git a/support/zecho.c b/support/zecho.c index cc6ae60f6..f3a4fe03e 100644 --- a/support/zecho.c +++ b/support/zecho.c @@ -4,19 +4,20 @@ 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. */ + Bash is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Bash is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ + #if defined (HAVE_CONFIG_H) # include #endif diff --git a/syntax.h b/syntax.h index dd6bf5210..e01110e70 100644 --- a/syntax.h +++ b/syntax.h @@ -1,22 +1,22 @@ /* syntax.h -- Syntax definitions for the shell */ -/* Copyright (C) 2000 Free Software Foundation, Inc. +/* Copyright (C) 2000, 2001, 2005, 2008,2009 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. + 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #ifndef _SYNTAX_H_ #define _SYNTAX_H_ diff --git a/test.c b/test.c index f01929f70..ad634f9ab 100644 --- a/test.c +++ b/test.c @@ -1,24 +1,24 @@ -/* GNU test program (ksb and mjb) */ +/* test.c - GNU test program (ksb and mjb) */ /* Modified to run with the GNU shell Apr 25, 1988 by bfox. */ -/* Copyright (C) 1987-2005 Free Software Foundation, Inc. +/* Copyright (C) 1987-2009 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. + 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ /* Define PATTERN_MATCHING to get the csh-like =~ and !~ pattern-matching binary operators. */ @@ -310,7 +310,7 @@ filecomp (s, t, op) { case OT: return (r1 < r2 || (r2 == 0 && st1.st_mtime < st2.st_mtime)); case NT: return (r1 > r2 || (r1 == 0 && st1.st_mtime > st2.st_mtime)); - case EF: return ((st1.st_dev == st2.st_dev) && (st1.st_ino == st2.st_ino)); + case EF: return (same_file (s, t, &st1, &st2)); } return (FALSE); } @@ -659,7 +659,7 @@ int test_unop (op) char *op; { - if (op[0] != '-') + if (op[0] != '-' || op[2] != 0) return (0); switch (op[1]) diff --git a/test.h b/test.h index 2ae5fc9da..9188b5b5a 100644 --- a/test.h +++ b/test.h @@ -1,22 +1,22 @@ /* test.h -- external interface to the conditional command code. */ -/* Copyright (C) 1997 Free Software Foundation, Inc. +/* Copyright (C) 1997-2009 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. + 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-1307, USA. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #ifndef _TEST_H_ #define _TEST_H_ diff --git a/tests/COPYRIGHT b/tests/COPYRIGHT index 414d91044..c69f29793 100644 --- a/tests/COPYRIGHT +++ b/tests/COPYRIGHT @@ -1,5 +1,6 @@ Unless otherwise stated, all files in this directory are Copyright (C) -1991,1992,1993,1994,1995,1996,1997,1998,1999,2000,2001,2002,2003,2004,2005,2006 +1991,1992,1993,1994,1995,1996,1997,1998,1999,2000,2001,2002,2003, +2004,2005,2006,2007,2008,2009 Free Software Foundation, Inc. The file ifs-posix.tests is Copyright (C) 2005 Glen Fowler. diff --git a/tests/arith.right b/tests/arith.right index 1365786f6..51d740e49 100644 --- a/tests/arith.right +++ b/tests/arith.right @@ -51,6 +51,7 @@ 1 1 32 +4 20 1,i+=2 30 @@ -59,7 +60,7 @@ 1,i+=2 30 1,j+=2 -./arith.tests: line 108: 1 ? 20 : x+=2: attempted assignment to non-variable (error token is "+=2") +./arith.tests: line 114: 1 ? 20 : x+=2: attempted assignment to non-variable (error token is "+=2") 20 6 6,5,3 @@ -79,16 +80,16 @@ 36 62 63 -./arith.tests: line 143: 3425#56: invalid arithmetic base (error token is "3425#56") +./arith.tests: line 149: 3425#56: invalid arithmetic base (error token is "3425#56") 0 -./arith.tests: line 149: 7 = 43 : attempted assignment to non-variable (error token is "= 43 ") -./arith.tests: line 150: 2#44: value too great for base (error token is "2#44") -./arith.tests: line 151: 44 / 0 : division by 0 (error token is " ") -./arith.tests: line 152: let: jv += $iv: syntax error: operand expected (error token is "$iv") -./arith.tests: line 153: jv += $iv : syntax error: operand expected (error token is "$iv ") -./arith.tests: line 154: let: rv = 7 + (43 * 6: missing `)' (error token is "6") -./arith.tests: line 158: 0#4: invalid number (error token is "0#4") -./arith.tests: line 159: 2#110#11: invalid number (error token is "2#110#11") +./arith.tests: line 155: 7 = 43 : attempted assignment to non-variable (error token is "= 43 ") +./arith.tests: line 156: 2#44: value too great for base (error token is "2#44") +./arith.tests: line 157: 44 / 0 : division by 0 (error token is "0 ") +./arith.tests: line 158: let: jv += $iv: syntax error: operand expected (error token is "$iv") +./arith.tests: line 159: jv += $iv : syntax error: operand expected (error token is "$iv ") +./arith.tests: line 160: let: rv = 7 + (43 * 6: missing `)' (error token is "6") +./arith.tests: line 164: 0#4: invalid number (error token is "0#4") +./arith.tests: line 165: 2#110#11: invalid number (error token is "2#110#11") abc def ghi @@ -96,15 +97,15 @@ ok 6 1 0 -./arith.tests: line 177: 4 + : syntax error: operand expected (error token is " ") +./arith.tests: line 183: 4 + : syntax error: operand expected (error token is "+ ") 16 -./arith.tests: line 182: 4 ? : 3 + 5 : expression expected (error token is ": 3 + 5 ") -./arith.tests: line 183: 1 ? 20 : `:' expected for conditional expression (error token is " ") -./arith.tests: line 184: 4 ? 20 : : expression expected (error token is " ") +./arith.tests: line 188: 4 ? : 3 + 5 : expression expected (error token is ": 3 + 5 ") +./arith.tests: line 189: 1 ? 20 : `:' expected for conditional expression (error token is "20 ") +./arith.tests: line 190: 4 ? 20 : : expression expected (error token is ": ") 9 -./arith.tests: line 190: 0 && B=42 : attempted assignment to non-variable (error token is "=42 ") +./arith.tests: line 196: 0 && B=42 : attempted assignment to non-variable (error token is "=42 ") 9 -./arith.tests: line 193: 1 || B=88 : attempted assignment to non-variable (error token is "=88 ") +./arith.tests: line 199: 1 || B=88 : attempted assignment to non-variable (error token is "=88 ") 9 0 9 @@ -130,20 +131,20 @@ ok 4 4 7 -./arith.tests: line 241: 7-- : syntax error: operand expected (error token is " ") -./arith.tests: line 243: --x=7 : attempted assignment to non-variable (error token is "=7 ") -./arith.tests: line 244: ++x=7 : attempted assignment to non-variable (error token is "=7 ") -./arith.tests: line 246: x++=7 : attempted assignment to non-variable (error token is "=7 ") -./arith.tests: line 247: x--=7 : attempted assignment to non-variable (error token is "=7 ") +./arith.tests: line 247: 7-- : syntax error: operand expected (error token is "- ") +./arith.tests: line 249: --x=7 : attempted assignment to non-variable (error token is "=7 ") +./arith.tests: line 250: ++x=7 : attempted assignment to non-variable (error token is "=7 ") +./arith.tests: line 252: x++=7 : attempted assignment to non-variable (error token is "=7 ") +./arith.tests: line 253: x--=7 : attempted assignment to non-variable (error token is "=7 ") 4 7 -7 7 7 -./arith1.sub: line 2: 4-- : syntax error: operand expected (error token is " ") -./arith1.sub: line 3: 4++ : syntax error: operand expected (error token is " ") -./arith1.sub: line 4: 4 -- : syntax error: operand expected (error token is " ") -./arith1.sub: line 5: 4 ++ : syntax error: operand expected (error token is " ") +./arith1.sub: line 2: 4-- : syntax error: operand expected (error token is "- ") +./arith1.sub: line 3: 4++ : syntax error: operand expected (error token is "+ ") +./arith1.sub: line 4: 4 -- : syntax error: operand expected (error token is "- ") +./arith1.sub: line 5: 4 ++ : syntax error: operand expected (error token is "+ ") 1 2 1 @@ -158,10 +159,10 @@ ok 2 -2 1 -./arith1.sub: line 35: ((: ++ : syntax error: operand expected (error token is " ") +./arith1.sub: line 35: ((: ++ : syntax error: operand expected (error token is "+ ") 7 7 -./arith1.sub: line 38: ((: -- : syntax error: operand expected (error token is " ") +./arith1.sub: line 38: ((: -- : syntax error: operand expected (error token is "- ") 7 7 7 @@ -180,10 +181,10 @@ ok 1 4 0 -./arith2.sub: line 33: ((: -- : syntax error: operand expected (error token is " ") +./arith2.sub: line 33: ((: -- : syntax error: operand expected (error token is "- ") -7 -7 -./arith2.sub: line 37: ((: ++ : syntax error: operand expected (error token is " ") +./arith2.sub: line 37: ((: ++ : syntax error: operand expected (error token is "+ ") 7 7 -7 @@ -191,13 +192,13 @@ ok 7 7 8 12 -./arith.tests: line 268: ((: x=9 y=41 : syntax error in expression (error token is "y=41 ") -./arith.tests: line 272: a b: syntax error in expression (error token is "b") -./arith.tests: line 273: ((: a b: syntax error in expression (error token is "b") +./arith.tests: line 274: ((: x=9 y=41 : syntax error in expression (error token is "y=41 ") +./arith.tests: line 278: a b: syntax error in expression (error token is "b") +./arith.tests: line 279: ((: a b: syntax error in expression (error token is "b") 42 42 42 42 42 42 -./arith.tests: line 284: b[c]d: syntax error in expression (error token is "d") +./arith.tests: line 290: b[c]d: syntax error in expression (error token is "d") diff --git a/tests/arith.tests b/tests/arith.tests index 33622e76b..9e82bb1db 100644 --- a/tests/arith.tests +++ b/tests/arith.tests @@ -84,6 +84,12 @@ echo $(( 4<(2+3) ? 1 : 32)) echo $(( (2+2)<(2+3) ? 1 : 32)) echo $(( (2+2)>(2+3) ? 1 : 32)) +# bug in bash versions through bash-3.2 +S=105 +W=$((S>99?4:S>9?3:S>0?2:0)) +echo $W +unset W S + # check that the unevaluated part of the ternary operator does not do # evaluation or assignment x=i+=2 diff --git a/tests/array.right b/tests/array.right index 53a7a0061..f9c7eee7c 100644 --- a/tests/array.right +++ b/tests/array.right @@ -152,10 +152,10 @@ for case if then else 12 14 16 18 20 4414758999202 aaa bbb -./array.tests: line 285: syntax error near unexpected token `<>' -./array.tests: line 285: `metas=( <> < > ! )' -./array.tests: line 286: syntax error near unexpected token `<>' -./array.tests: line 286: `metas=( [1]=<> [2]=< [3]=> [4]=! )' +./array.tests: line 287: syntax error near unexpected token `<>' +./array.tests: line 287: `metas=( <> < > ! )' +./array.tests: line 288: syntax error near unexpected token `<>' +./array.tests: line 288: `metas=( [1]=<> [2]=< [3]=> [4]=! )' abc 3 case 4 abc case if then else 5 @@ -206,3 +206,109 @@ t e 9 2 +a b c +argv[1] = <"-iname '"a> +argv[2] = <"-iname '"b> +argv[3] = <"-iname '"c> +'hey' +hey +''hey +'hey' +argv[1] = +argv[2] = +argv[3] = +argv[4] = +argv[1] = +argv[2] = +argv[1] = +argv[2] = +argv[1] = +argv[2] = +argv[1] = <"-iname '"abc> +argv[2] = <"-iname '"def> +argv[1] = <-iname 'abc> +argv[2] = <-iname 'def> +argv[1] = <-iname \'abc> +argv[2] = <-iname \'def> +argv[1] = <-iname> +argv[2] = <'abc> +argv[3] = <-iname> +argv[4] = <'def> +argv[1] = <"-iname '"abc> +argv[2] = <"-iname '"def> +argv[1] = <-iname 'abc> +argv[2] = <-iname 'def> +*.* OK +1 +a1 2 3c +argv[1] = +argv[1] = +argv[1] = +argv[2] = +argv[3] = +argv[1] = +argv[2] = +argv[3] = +argv[1] = +argv[2] = +argv[3] = +argv[1] = +argv[2] = +argv[3] = +argv[1] = +argv[2] = +argv[3] = +argv[1] = +argv[2] = +argv[3] = +2 +argv[1] = +argv[2] = +argv[1] = +argv[2] = +nord!olz + +rdholz + +rdholz +rdho + + +argv[1] = +argv[1] = +argv[2] = <> +argv[3] = +argv[4] = <> +argv[1] = +argv[1] = +argv[2] = <> +argv[3] = +argv[4] = <> +argv[1] = +argv[1] = +argv[2] = <> +argv[3] = +argv[4] = <> +argv[1] = +argv[1] = +argv[2] = <> +argv[3] = +argv[4] = <> +argv[1] = +argv[1] = +argv[2] = <> +argv[3] = +argv[4] = <> +126 +127 +128 +argv[1] = <€> +argv[1] = <~> +argv[2] = <^?> +argv[3] = <€> +argv[1] = <~> +argv[2] = <^?> +argv[3] = <€> +argv[1] = <~> +argv[2] = <^?> +argv[3] = <€> diff --git a/tests/array.tests b/tests/array.tests index ce4617971..1ac614bf3 100644 --- a/tests/array.tests +++ b/tests/array.tests @@ -253,6 +253,8 @@ foo=([10]="bar") echo ${foo[0]} rm 1=bar +cd $OLDPWD + foo=(a b c d e f g) echo ${foo[@]} @@ -372,34 +374,13 @@ declare -a x=($0) declare -a x=(\$0) echo "${x[@]}" -: ${TMPDIR:=/tmp} - -mkdir $TMPDIR/bash-test-$$ -cd $TMPDIR/bash-test-$$ - -trap "cd / ; rm -rf $TMPDIR/bash-test-$$" 0 1 2 3 6 15 - -touch '[3]=abcde' - -touch r s t u v - -declare -a x=(*) - -echo ${x[3]} -echo ${x[@]} - -unset x -x=(a b c d e) - -echo ${x[*]: -1} - -unset x[4] -unset x[2] +# tests for bash-3.1 problems +${THIS_SH} ./array5.sub -x[9]='9' +# tests for post-bash-3.2 problems, most fixed in bash-3.2 patches +${THIS_SH} ./array6.sub +${THIS_SH} ./array7.sub -echo ${x[*]: -1} +${THIS_SH} ./array8.sub -TOOLKIT=(1 2 3 4 5 6 7 8 9 10) -ARRAY="1" -echo ${TOOLKIT["$ARRAY"]} +${THIS_SH} ./array9.sub diff --git a/tests/array5.sub b/tests/array5.sub new file mode 100644 index 000000000..778a28df4 --- /dev/null +++ b/tests/array5.sub @@ -0,0 +1,34 @@ + +: ${TMPDIR:=/tmp} + +mkdir $TMPDIR/bash-test-$$ +cd $TMPDIR/bash-test-$$ + +trap "cd / ; rm -rf $TMPDIR/bash-test-$$" 0 1 2 3 6 15 + +touch '[3]=abcde' + +touch r s t u v + +declare -a x=(*) + +echo ${x[3]} +echo ${x[@]} + +unset x +x=(a b c d e) + +echo ${x[*]: -1} + +unset x[4] +unset x[2] + +x[9]='9' + +echo ${x[*]: -1} + +TOOLKIT=(1 2 3 4 5 6 7 8 9 10) +ARRAY="1" +echo ${TOOLKIT["$ARRAY"]} + +exit 0 diff --git a/tests/array6.sub b/tests/array6.sub new file mode 100644 index 000000000..590132603 --- /dev/null +++ b/tests/array6.sub @@ -0,0 +1,109 @@ +# test cases for array quoting and escaping fixed post bash-3.2-release + +oIFS="$IFS" + +a=(a b c) +echo ${a[@]} + +a2=("${a[@]/#/"-iname '"}") +recho "${a2[@]}" + +echo "${dbg-"'hey'"}" +echo "${dbg-"hey"}" +echo "${dbg-'"'hey}" +echo "${dbg-'"hey'}" + +unset a a2 + +IFS= +a2=(${a[@]/#/"-iname '"}) +recho "${a2[@]}" + +IFS="$oIFS" +unset a a2 + +a=('a b' 'c d' 'e f') + +recho ${a[@]:1:2} +recho "${a[@]:1:2}" + +IFS= +recho ${a[@]:1:2} +recho "${a[@]:1:2}" + +IFS="$oIFS" +unset a a2 + +a=(abc def) + +# Prevent word splitting +#IFS= + +a2=("${a[@]/#/"-iname '"}") +recho "${a2[@]}" + +eval a2=("${a[@]/#/"-iname '"}") +recho "${a2[@]}" + +a2=("${a[@]/#/-iname \'}") +recho "${a2[@]}" + +eval a2=("${a[@]/#/-iname \'}") +recho "${a2[@]}" + +set -- abc def + +a2=("${@/#/"-iname '"}") +recho "${a2[@]}" + +eval a2=("${@/#/"-iname '"}") +recho "${a2[@]}" + +unset a a2 + +IFS= +pat=('*.*') +case $(ls ${pat[@]} 2>/dev/null) in +'') echo '*.* BAD' ;; +*) echo '*.* OK' ;; +esac + +IFS="$oIFS" +unset a a2 pat + +IFS= + +s='abc' + +set - ${s/b/1 2 3} +echo $# +echo "$1" + +IFS="$oIFS" +unset s + +set -- ab cd ef +foo="var with spaces" + +IFS= +recho $foo +recho "$foo" + +recho ${foo}"$@" +recho ${foo}$@ + +array=(ab cd ef) +recho ${foo}"${array[@]}" +recho ${foo}${array[@]} + +recho $(echo $foo)"$@" +recho $(echo $foo)$@ + +a=('word1 with spaces' 'word2 with spaces') +set - ${a[@]/word/element} +echo $# +recho "$@" +recho $@ + +IFS="$oIFS" +unset a a2 array foo diff --git a/tests/array7.sub b/tests/array7.sub new file mode 100644 index 000000000..8935cc216 --- /dev/null +++ b/tests/array7.sub @@ -0,0 +1,14 @@ +# these didn't work in versions of bash before bash-4.0 + +LNAME=nordholz + +echo ${LNAME[$(( 0 ))]//h/!} +echo ${LNAME[$(( 2 ))]//h/!} + +echo ${LNAME[$(( 0 ))]##??} +echo ${LNAME[$(( 2 ))]##??} + +echo ${LNAME[$(( 0 ))]:2} +echo ${LNAME[$(( 0 ))]:2:4} +echo ${LNAME[$(( 2 ))]:2} +echo ${LNAME[$(( 2 ))]:2:4} diff --git a/tests/array8.sub b/tests/array8.sub new file mode 100644 index 000000000..481ccdbcd --- /dev/null +++ b/tests/array8.sub @@ -0,0 +1,23 @@ +IFS=/ +declare -a i + +i[0]=fooq +i[1]= +i[2]=barq +i[3]= +recho "${i[*]:0}" +recho "${i[@]:0}" + +recho "${i[*]/q/!}" +recho "${i[@]/q/!}" + +recho "${i[*]#?}" +recho "${i[@]#?}" + +# Need to complete this with case-modifying expansion examples +recho "${i[*]^?}" +recho "${i[@]^?}" + +recho "${i[*]^^?}" +recho "${i[@]^^?}" + diff --git a/tests/array9.sub b/tests/array9.sub new file mode 100644 index 000000000..444247fa3 --- /dev/null +++ b/tests/array9.sub @@ -0,0 +1,27 @@ +echo $(( 0x7e )) +echo $(( 0x7f )) +echo $(( 0x80 )) + +a=$'\x80' +recho "$a" + +a=( $'\x7e' $'\x7f' $'\x80' ) + +recho "${a[@]}" + +unset a +a[0]=$'\x7e' +a[1]=$'\x7f' +a[2]=$'\x80' + +recho "${a[@]}" + +b1=$'\x7e' +b2=$'\x7f' +b3=$'\x80' + +unset a +a=( "$b1" "$b2" "$b3" ) + +recho "${a[@]}" + diff --git a/tests/assoc.right b/tests/assoc.right new file mode 100644 index 000000000..ec1d46d2e --- /dev/null +++ b/tests/assoc.right @@ -0,0 +1,134 @@ +declare -A BASH_ALIASES='()' +declare -A BASH_CMDS='()' +declare -A fluff='()' +declare -A BASH_ALIASES='()' +declare -A BASH_CMDS='()' +declare -A fluff='([bar]="two" [foo]="one" )' +declare -A fluff='([bar]="two" [foo]="one" )' +declare -A fluff='([bar]="two" )' +declare -A fluff='([bar]="newval" )' +./assoc.tests: line 24: chaff: four: must use subscript when assigning associative array +declare -A BASH_ALIASES='()' +declare -A BASH_CMDS='()' +declare -Ai chaff='([one]="10" [zero]="5" )' +declare -Ar waste='([version]="4.0-devel" [source]="./assoc.tests" [lineno]="26" [pid]="42134" )' +declare -A wheat='([one]="a" [zero]="0" [two]="b" [three]="c" )' +declare -A chaff='([one]="10" [hello world]="flip" [zero]="5" )' +./assoc.tests: line 36: unset: waste: cannot unset: readonly variable +./assoc.tests: line 37: chaff[*]: bad array subscript +./assoc.tests: line 38: [*]=12: invalid associative array key +declare -A chaff='([one]="a" [hello world]="flip" )' +flip +argv[1] = +argv[2] = +argv[3] = +argv[4] = +argv[1] = +argv[2] = +argv[3] = +argv[1] = +argv[2] = +argv[3] = +argv[4] = +argv[1] = +./assoc.tests: line 55: declare: chaff: cannot destroy array variables in this way +./assoc.tests: line 57: chaff[*]: bad array subscript +./assoc.tests: line 58: [*]=12: invalid associative array key +declare -A wheat='([six]="6" [foo bar]="qux qix" )' +argv[1] = +argv[2] = +argv[1] = +declare -A wheat='([six]="6" [foo bar]="qux qix" )' +argv[1] = <2> +argv[1] = <7> +argv[1] = +argv[2] = +argv[3] = +argv[1] = +argv[1] = <16> +argv[1] = <16> +argv[1] = +argv[2] = <6> +argv[1] = +argv[2] = +argv[3] = +argv[1] = +argv[2] = +8 +/usr/local/bin . /bin /sbin /usr/sbin /usr/bin /bin /usr/ucb +bin . bin sbin sbin bin bin ucb +bin +/ / / / / / / +/ +argv[1] = +argv[1] = +argv[1] = +argv[1] = +8 +/usr/local/bin . /bin /sbin /usr/sbin /usr/bin /bin /usr/ucb +bin . bin sbin sbin bin bin ucb +/ / / / / / / +8 +4 -- /bin +^usr^local^bin . ^bin ^sbin ^usr^sbin ^usr^bin ^bin ^usr^ucb +^usr^local^bin . ^bin ^sbin ^usr^sbin ^usr^bin ^bin ^usr^ucb +\usr/local/bin . \bin \sbin \usr/sbin \usr/bin \bin \usr/ucb +\usr\local\bin . \bin \sbin \usr\sbin \usr\bin \bin \usr\ucb +\usr\local\bin . \bin \sbin \usr\sbin \usr\bin \bin \usr\ucb + +qux foo +/usr/local/bin/qux /usr/sbin/foo +hits command + 0 /sbin/blat + 0 /usr/local/bin/qux + 0 /bin/sh + 0 /usr/sbin/foo +blat qux sh foo +/sbin/blat /usr/local/bin/qux /bin/sh /usr/sbin/foo + +foo qux +argv[1] = +argv[2] = +argv[3] = <-l> +alias blat='cd /blat ; echo $PWD' +alias foo='/usr/sbin/foo' +alias qux='/usr/local/bin/qux -l' +alias sh='/bin/bash --login -o posix' +sh foo blat qux +argv[1] = +argv[2] = +argv[3] = +argv[4] = +outside: outside +declare -A BASH_ALIASES='()' +declare -A BASH_CMDS='()' +declare -A afoo='([six]="six" [foo bar]="foo quux" )' +argv[1] = +argv[2] = +argv[3] = +outside 2: outside +argv[1] = +argv[1] = +argv[2] = <> +argv[3] = +argv[4] = <> +argv[1] = +argv[1] = +argv[2] = <> +argv[3] = +argv[4] = <> +argv[1] = +argv[1] = +argv[2] = <> +argv[3] = +argv[4] = <> +argv[1] = +argv[1] = +argv[2] = <> +argv[3] = +argv[4] = <> +argv[1] = +argv[1] = +argv[2] = <> +argv[3] = +argv[4] = <> diff --git a/tests/assoc.tests b/tests/assoc.tests new file mode 100644 index 000000000..76d86fe1e --- /dev/null +++ b/tests/assoc.tests @@ -0,0 +1,173 @@ +# TEST - basic declaration and assignment +typeset -A fluff +declare -A + +fluff[foo]=one +fluff[bar]=two + +declare -A +declare -p fluff + +unset fluff[foo] +declare -p fluff + +fluff[bar]=newval +declare -p fluff + +unset fluff + +# TEST - compount assignment and variable attributes +declare -A wheat chaff +wheat=( [zero]=0 [one]=a [two]=b [three]=c ) + +declare -i chaff +chaff=( [zero]=1+4 [one]=3+7 four ) + +declare -A waste=( [pid]=42134 [version]=4.0-devel [source]=$0 [lineno]=$LINENO ) +declare -r waste + +declare -A + +declare +i chaff +chaff[hello world]=flip +declare -p chaff + +# TEST - errors +unset waste +chaff[*]=12 +chaff=( [one]=a [*]=12 ) + +# TEST - key expansion -- no word splitting +chaff[hello world]=flip +declare -p chaff +echo ${chaff[hello world]} + +chaff[box]="multiple words" + +recho ${chaff[@]} +recho "${chaff[@]}" + +recho ${chaff[*]} +recho "${chaff[*]}" + +unset chaff +declare -A chaff[200] +declare +A chaff + +chaff[*]=12 +chaff=( [one]=a [*]=12 ) + +# TEST - keys and values containing spaces +unset wheat +declare -A wheat +wheat=([six]=6 [foo bar]="qux qix" ) + +declare -p wheat + +unset wheat +declare -A wheat=([six]=6 [foo bar]="qux qix" ) + +recho ${wheat[foo bar]} +recho "${wheat[foo bar]}" + +declare -p wheat + +# TEST - basic expansions: number of elements and value length +unset wheat +typeset -A wheat +wheat=([six]=6 [foo bar]="qux qix" ) + +recho ${#wheat[@]} + +recho ${#wheat[foo bar]} + +# TEST - appending assignment operator +unset wheat +typeset -A wheat +wheat=([six]=6 [foo bar]="qux qix" ) + +wheat[foo bar]+=' blat' + +recho ${wheat[foo bar]} +recho "${wheat[foo bar]}" +unset wheat + +flix=9 +typeset -Ai wheat +wheat=([six]=6 [foo bar]=flix ) + +wheat[foo bar]+=7 + +recho ${wheat[foo bar]} +recho "${wheat[foo bar]}" +unset flix wheat + +# TEST - index expansion: no word splitting or globbing +typeset -A wheat +cd /tmp +touch '[sfiri]' +wheat=([s*]=6 [foo bar]=flix ) + +recho ${wheat[@]} +rm '[sfiri]' +cd $OLDPWD + +# TEST -- associative array keys expansion +unset wheat +typeset -A wheat + +wheat=([six]=6 [foo bar]=flix ) + +recho ${!wheat[@]} +recho "${!wheat[@]}" + +# TEST -- associative array pattern removal +unset xpath +typeset -A xpath + +xpath=( [0]=/bin [one]=/bin [two]=/usr/bin [three]=/usr/ucb [four]=/usr/local/bin) +xpath+=( [five]=/sbin [six]=/usr/sbin [seven]=. ) + +echo ${#xpath[@]} + +echo ${xpath[@]} +echo ${xpath[@]##*/} +echo ${xpath[0]##*/} +echo ${xpath[@]%%[!/]*} +echo ${xpath[0]%%[!/]*} +recho ${xpath##*/} +recho ${xpath%%[!/]*} +recho ${xpath[five]##*/} +recho ${xpath[five]%%[!/]*} + +echo ${#xpath[*]} + +echo ${xpath[*]} +echo ${xpath[*]##*/} +echo ${xpath[*]%%[!/]*} + +# TEST -- associative array pattern substitution +unset xpath +typeset -A xpath + +xpath=( [0]=/bin [one]=/bin [two]=/usr/bin [three]=/usr/ucb [four]=/usr/local/bin) +xpath+=( [five]=/sbin [six]=/usr/sbin [seven]=. ) + +echo ${#xpath[@]} +# default element is "0" (as a string) +echo ${#xpath} -- ${xpath["0"]} + +echo ${xpath[@]//\//^} +echo "${xpath[@]//\//^}" | cat -v + +zecho "${xpath[@]/\//\\}" +zecho "${xpath[@]//\//\\}" +zecho "${xpath[@]//[\/]/\\}" + +${THIS_SH} ./assoc1.sub + +${THIS_SH} ./assoc2.sub + +${THIS_SH} ./assoc3.sub + +${THIS_SH} ./assoc4.sub diff --git a/tests/assoc1.sub b/tests/assoc1.sub new file mode 100644 index 000000000..a045bde96 --- /dev/null +++ b/tests/assoc1.sub @@ -0,0 +1,16 @@ +hash -r +echo ${BASH_CMDS[@]} + +hash -p /usr/sbin/foo foo +hash -p /usr/local/bin/qux qux + +echo ${!BASH_CMDS[@]} +echo ${BASH_CMDS[@]} + +BASH_CMDS[blat]=/sbin/blat +BASH_CMDS[sh]=/bin/sh + +hash + +echo ${!BASH_CMDS[@]} +echo "${BASH_CMDS[@]}" diff --git a/tests/assoc2.sub b/tests/assoc2.sub new file mode 100644 index 000000000..396b87a3d --- /dev/null +++ b/tests/assoc2.sub @@ -0,0 +1,15 @@ +echo ${BASH_ALIASES[@]} + +alias foo=/usr/sbin/foo +alias qux='/usr/local/bin/qux -l' + +echo ${!BASH_ALIASES[@]} +recho ${BASH_ALIASES[@]} + +BASH_ALIASES[blat]='cd /blat ; echo $PWD' +BASH_ALIASES[sh]='/bin/bash --login -o posix' + +alias -p + +echo ${!BASH_ALIASES[@]} +recho "${BASH_ALIASES[@]}" diff --git a/tests/assoc3.sub b/tests/assoc3.sub new file mode 100644 index 000000000..9129ef1d5 --- /dev/null +++ b/tests/assoc3.sub @@ -0,0 +1,15 @@ +foo() +{ + declare -A afoo=([six]="six" [foo bar]="foo quux") + + declare -A + recho inside: "${afoo[@]}" +} + +declare -A afoo=([main]=outside) +echo outside: "${afoo[@]}" + +foo + +echo outside 2: "${afoo[@]}" + diff --git a/tests/assoc4.sub b/tests/assoc4.sub new file mode 100644 index 000000000..1516dc58a --- /dev/null +++ b/tests/assoc4.sub @@ -0,0 +1,22 @@ +IFS=/ +declare -A i + +i[0]=fooq +i[1]= +i[2]=barq +i[3]= + +recho "${i[*]:0}" +recho "${i[@]:0}" + +recho "${i[*]/q/!}" +recho "${i[@]/q/!}" + +recho "${i[*]#?}" +recho "${i[@]#?}" + +# Need to complete this with case-modifying expansion examples +recho "${i[*]^?}" +recho "${i[@]^?}" +recho "${i[*]^^?}" +recho "${i[@]^^?}" diff --git a/tests/braces.right b/tests/braces.right index f00d39a76..5369a7e3a 100644 --- a/tests/braces.right +++ b/tests/braces.right @@ -43,3 +43,31 @@ f -20 -19 -18 -17 -16 -15 -14 -13 -12 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0 a-{bd}-c a-{be}-c a-{bdef-g-c a-{bdef-i-c +{klklkl}1 {klklkl}2 {klklkl}3 +{x,x} +1 3 5 7 9 +-1 -3 -5 -7 -9 +-1 -3 -5 -7 -9 +10 8 6 4 2 +10 8 6 4 2 +1 3 5 7 9 11 13 15 17 19 +1 +0100 0095 0090 0085 0080 0075 0070 0065 0060 0055 0050 0045 0040 0035 0030 0025 0020 0015 0010 0005 0000 +00100 00095 00090 00085 00080 00075 00070 00065 00060 00055 00050 00045 00040 00035 00030 00025 00020 00015 00010 00005 00000 +a b c d e f g h i j k l m n o p q r s t u v w x y z +a c e g i k m o q s u w y +z x v t r p n l j h f d b +{1..10.f} +{1..ff} +{1..10..ff} +{1.20..2} +{1..20..f2} +{1..20..2f} +{1..2f..2} +{1..ff..2} +{1..ff} +{1..f} +{1..0f} +{1..10f} +{1..10.f} +{1..10.f} diff --git a/tests/braces.tests b/tests/braces.tests index 5a57f2844..25b07b6a2 100644 --- a/tests/braces.tests +++ b/tests/braces.tests @@ -73,3 +73,39 @@ echo {-20..0} echo a-{b{d,e}}-c echo a-{bdef-{g,i}-c + +echo {"klklkl"}{1,2,3} +echo {"x,x"} + +echo {1..10..2} +echo {-1..-10..2} +echo {-1..-10..-2} + +echo {10..1..-2} +echo {10..1..2} + +echo {1..20..2} +echo {1..20..20} + +echo {100..0..5} +echo {100..0..-5} + +echo {a..z} +echo {a..z..2} +echo {z..a..-2} + +# bad +echo {1..10.f} +echo {1..ff} +echo {1..10..ff} +echo {1.20..2} +echo {1..20..f2} +echo {1..20..2f} +echo {1..2f..2} +echo {1..ff..2} +echo {1..ff} +echo {1..f} +echo {1..0f} +echo {1..10f} +echo {1..10.f} +echo {1..10.f} diff --git a/tests/builtins.right b/tests/builtins.right index 9266b5a71..30e10ca94 100644 --- a/tests/builtins.right +++ b/tests/builtins.right @@ -108,6 +108,15 @@ m n o p ./source5.sub: line 10: /tmp/source-notthere: No such file or directory after bad source 1 ./source5.sub: line 17: /tmp/source-notthere: No such file or directory +one - OK +0 +0 +two - OK +0 +three - OK +0 +four - OK +0 AVAR foo foo @@ -118,15 +127,15 @@ AVAR foo declare -x foo="" declare -x FOO="\$\$" -./builtins.tests: line 207: declare: FOO: not found +./builtins.tests: line 210: declare: FOO: not found declare -x FOO="\$\$" ok ok -./builtins.tests: line 239: kill: 4096: invalid signal specification +./builtins.tests: line 242: kill: 4096: invalid signal specification 1 a\n\n\nb a b -./builtins.tests: line 248: exit: status: numeric argument required +./builtins.tests: line 251: exit: status: numeric argument required diff --git a/tests/builtins.tests b/tests/builtins.tests index 3c286338a..6d20ae92a 100644 --- a/tests/builtins.tests +++ b/tests/builtins.tests @@ -176,6 +176,9 @@ ${THIS_SH} ./builtins1.sub # test behavior of `.' when given a non-existant file argument ${THIS_SH} ./source5.sub +# test bugs in sourcing non-regular files, fixed post-bash-3.2 +${THIS_SH} ./source6.sub + # in posix mode, assignment statements preceding special builtins are # reflected in the shell environment. `.' and `eval' need special-case # code. diff --git a/tests/builtins1.sub b/tests/builtins1.sub index 5b7971136..52185b54f 100644 --- a/tests/builtins1.sub +++ b/tests/builtins1.sub @@ -10,5 +10,5 @@ cd $DIR pwd echo $PWD -cd $MYDIR +cd "$MYDIR" rmdir $FULLDIR diff --git a/tests/case.right b/tests/case.right new file mode 100644 index 000000000..b82ad9a78 --- /dev/null +++ b/tests/case.right @@ -0,0 +1,5 @@ +fallthrough +to here +and here +retest +and match diff --git a/tests/case.tests b/tests/case.tests new file mode 100644 index 000000000..d85dc3ed6 --- /dev/null +++ b/tests/case.tests @@ -0,0 +1,14 @@ +case foo in +bar) echo skip ;; +foo) echo fallthrough ;& +bax) echo to here ;& +qux) echo and here;; +fop) echo but not here;; +esac + +case foobar in +bar) echo skip ;; +foo*) echo retest ;;& +*bar) echo and match ;;& +qux) echo but not this ;; +esac diff --git a/tests/casemod.right b/tests/casemod.right new file mode 100644 index 000000000..d66fc55f8 --- /dev/null +++ b/tests/casemod.right @@ -0,0 +1,35 @@ +Acknowledgement +ACKNOWLEDGEMENT +Oenophile +OEnOphIlE +aCKNOWLEDGEMENT +acknowledgement +oENOPHILE +oENOPHILE +oeNoPHiLe +Acknowledgement Oenophile +AcknOwlEdgEmEnt OEnOphIlE +aCKNOWLEDGEMENT oENOPHILE +aCKNoWLeDGeMeNT oeNoPHiLe +aCKNOWLEDGEMENT oENOPHILE +acknowledgement oenophile +Acknowledgement Oenophile +ACKNOWLEDGEMENT OENOPHILE +Acknowledgement Oenophile +AcknOwlEdgEmEnt OEnOphIlE +oENOPHILE aCKNOWLEDGEMENT +oenophile acknowledgement +oENOPHILE aCKNOWLEDGEMENT +oeNoPHiLe aCKNoWLeDGeMeNT +Acknowledgement Oenophile +ACKNOWLEDGEMENT OENOPHILE +acknowledgement oenophile +ackNowLEdgEmENT oENophiLE +acknowledgement oenophile +ackNowLEdgEmENT oENophiLE +ackNowLEdgEmENT oENophiLE +acknowledgement oenophile +ackNowLEdgEmENT oENophiLE +acknowledgement oenophile +Acknowledgement Oenophile +ACKNOWLEDGEMENT OENOPHILE diff --git a/tests/casemod.tests b/tests/casemod.tests new file mode 100644 index 000000000..e1e3a3ee5 --- /dev/null +++ b/tests/casemod.tests @@ -0,0 +1,72 @@ +S1=acknowledgement +S2=oenophile + +echo ${S1^} +echo ${S1^^} + +echo ${S2^[aeiou]} +echo ${S2^^[aeiou]} + +U1=${S1^^} +U2=${S2^^} + +echo ${U1,} +echo ${U1,,} + +echo ${U2,} +echo ${U2,[AEIOU]} +echo ${U2,,[AEIOU]} + +A1=( $S1 $S2 ) + +echo ${A1[@]^[aeiou]} +echo ${A1[@]^^[aeiou]} + +A2=( $U1 $U2 ) + +echo ${A2[@],[AEIOU]} +echo ${A2[@],,[AEIOU]} + +echo ${A2[@],?} +echo ${A2[@],,?} + +declare -A AA1 AA2 + +AA1[ack]=$S1 +AA1[oen]=$S2 + +echo ${AA1[@]^} +echo ${AA1[@]^^} + +echo ${AA1[@]^[aeiou]} +echo ${AA1[@]^^[aeiou]} + +AA2[ACK]=$U1 +AA2[OEN]=$U2 + +echo ${AA2[@],} +echo ${AA2[@],,} + +echo ${AA2[@],[AEIOU]} +echo ${AA2[@],,[AEIOU]} + +set -- $S1 $S2 + +echo ${@^} +echo ${@^^} + + +echo ${S1^[rstlne]} ${S2^[rstlne]} +echo ${S1^^[rstlne]} ${S2^^[rstlne]} + +echo ${@^[rstlne]} +echo ${@^^[rstlne]} + +echo ${S1,[rstlne]} ${S2,[rstlne]} +echo ${S1,,[rstlne]} ${S2,,[rstlne]} + +echo ${@,[rstlne]} +echo ${@,,[rstlne]} + +echo ${@^?} +echo ${@^^?} diff --git a/tests/comsub-eof.right b/tests/comsub-eof.right new file mode 100644 index 000000000..4fc9ae282 --- /dev/null +++ b/tests/comsub-eof.right @@ -0,0 +1,7 @@ +./comsub-eof0.sub: line 1: unexpected EOF while looking for matching `)' +./comsub-eof0.sub: line 5: syntax error: unexpected end of file +hi +./comsub-eof2.sub: line 2: warning: here-document at line 1 delimited by end-of-file (wanted `EOF') +hi +./comsub-eof3.sub: line 1: unexpected EOF while looking for matching `)' +./comsub-eof3.sub: line 5: syntax error: unexpected end of file diff --git a/tests/comsub-eof.tests b/tests/comsub-eof.tests new file mode 100644 index 000000000..0b0ead9fd --- /dev/null +++ b/tests/comsub-eof.tests @@ -0,0 +1,7 @@ +${THIS_SH} ./comsub-eof0.sub + +${THIS_SH} ./comsub-eof1.sub + +${THIS_SH} ./comsub-eof2.sub + +${THIS_SH} ./comsub-eof3.sub diff --git a/tests/comsub-eof0.sub b/tests/comsub-eof0.sub new file mode 100644 index 000000000..7b0775fb1 --- /dev/null +++ b/tests/comsub-eof0.sub @@ -0,0 +1,4 @@ +foo=$(cat < +abcdefoo +argv[1] = +argv[2] = +argv[1] = +argv[1] = +' +after 1 +' +after 2 +' +after 3 +` +after 4 +hello +after 5 +' +after 6 +x +x +quoted ) +comment +here-doc with ) +here-doc terminated with a parenthesis +' # or a single back- or doublequote +./comsub-posix1.sub: command substitution: line 2: syntax error near unexpected token `)' +./comsub-posix1.sub: command substitution: line 2: ` if x; then echo foo )' +after diff --git a/tests/comsub-posix.tests b/tests/comsub-posix.tests new file mode 100644 index 000000000..6b590dfb8 --- /dev/null +++ b/tests/comsub-posix.tests @@ -0,0 +1,204 @@ + +# works right +echo ab$(echo mnop)yz +# works right +echo ab$(echo mnop +)yz +# +# works right +echo $(echo ab + ) +# works right +echo $( +) +echo $() +echo ab$()cd + +echo $(case a in (a) echo sh_352.26ax; esac ) +echo $(case a in (a) echo sh_352.26ay; esac) + +echo $((echo sh_352.25a);(echo sh_352.25b)) + +echo $(echo sh_352.27 ')' ")" \) + # ) comment + ) + +echo $( +echo abc # a comment with ) +) + +echo $( +cat < +argv[2] = +argv[1] = +argv[2] = +argv[1] = +argv[1] = +argv[2] = +argv[1] = <$> +argv[2] = +argv[1] = <`> +argv[2] = +argv[1] = <\> +argv[2] = +argv[1] = +argv[1] = +argv[1] = argv[2] = <-e> argv[3] = +argv[1] = argv[2] = <-e> argv[3] = +argv[1] = +argv[1] = +argv[1] = diff --git a/tests/comsub.tests b/tests/comsub.tests new file mode 100644 index 000000000..d481dc32d --- /dev/null +++ b/tests/comsub.tests @@ -0,0 +1,42 @@ +# command substution parsing tests + +TABSIZE=`grep -v '^[ #]' $CAPS &${REFLECT[1]} +read LINE <&${REFLECT[0]} + +echo $LINE + +kill $REFLECT_PID +wait $REFLECT_PID + +coproc xcase -n -u + +echo $COPROC_PID +echo ${COPROC[@]} + +echo foo >&${COPROC[1]} +read <&${COPROC[0]} + +echo $REPLY +echo ${COPROC[@]} + +cat /etc/passwd | grep root | awk -F: '{print $1;}' | sed 1q + +exec 4<&${COPROC[0]}- +exec >&${COPROC[1]}- + +echo ${COPROC[@]} + +read foo <&4 +echo $foo >&2 + +exit 0 diff --git a/tests/dbg-support.right b/tests/dbg-support.right index eb7d3c3ac..63a86f2c8 100644 --- a/tests/dbg-support.right +++ b/tests/dbg-support.right @@ -19,7 +19,7 @@ debug lineno: 24 fn1 debug lineno: 24 fn1 debug lineno: 25 fn1 ./dbg-support.tests: line 25: caller: foo: invalid number -caller: usage: caller [EXPR] +caller: usage: caller [expr] debug lineno: 25 fn1 debug lineno: 17 fn1 debug lineno: 12 print_return_trap @@ -48,7 +48,7 @@ debug lineno: 24 fn1 debug lineno: 24 fn1 71 main ./dbg-support.tests debug lineno: 25 fn1 ./dbg-support.tests: line 25: caller: foo: invalid number -caller: usage: caller [EXPR] +caller: usage: caller [expr] debug lineno: 25 fn1 debug lineno: 17 fn1 debug lineno: 12 print_return_trap @@ -190,7 +190,7 @@ FUNCNAME[0] fn1 79 main ./dbg-support.tests ./dbg-support.tests: line 25: caller: foo: invalid number -caller: usage: caller [EXPR] +caller: usage: caller [expr] debug lineno: 80 main fn2 here. Calling fn1... @@ -202,7 +202,7 @@ FUNCNAME[0] fn1 30 fn2 ./dbg-support.tests 80 main ./dbg-support.tests ./dbg-support.tests: line 25: caller: foo: invalid number -caller: usage: caller [EXPR] +caller: usage: caller [expr] debug lineno: 81 main LINENO 34 diff --git a/tests/dollar-at-star b/tests/dollar-at-star index 25c24435b..10467ae30 100755 --- a/tests/dollar-at-star +++ b/tests/dollar-at-star @@ -223,4 +223,8 @@ ${THIS_SH} ./dollar-at2.sub # no splitting, etc. when $IFS is NUL ${THIS_SH} ./dollar-star2.sub +# tests for expansions of "${array[*]}" and "${array[@]}" when $IFS is not the +# default and the array contains null elements +${THIS_SH} ./dollar-star3.sub + exit 0 diff --git a/tests/dollar-star3.sub b/tests/dollar-star3.sub new file mode 100644 index 000000000..8cf4bb221 --- /dev/null +++ b/tests/dollar-star3.sub @@ -0,0 +1,18 @@ +IFS=/ +#file=/mnt/cdrom/RedHat/RPMS +#recho "${file[*]:0:3}" + +i[0]=fooq +i[1]= +i[2]=barq +i[3]= +recho "${i[*]:0}" +recho "${i[@]:0}" + +recho "${i[*]/q/!}" +recho "${i[@]/q/!}" + +recho "${i[*]#?}" +recho "${i[@]#?}" + +# Need to complete this with case-modifying expansion examples diff --git a/tests/dollar.right b/tests/dollar.right index ff57f1c48..68641cfe5 100644 --- a/tests/dollar.right +++ b/tests/dollar.right @@ -134,3 +134,18 @@ argv[1] = argv[2] = argv[1] = argv[1] = +argv[1] = +argv[1] = +argv[2] = <> +argv[3] = +argv[4] = <> +argv[1] = +argv[1] = +argv[2] = <> +argv[3] = +argv[4] = <> +argv[1] = +argv[1] = +argv[2] = <> +argv[3] = +argv[4] = <> diff --git a/tests/dstack.right b/tests/dstack.right index 73a006ceb..8f27d28bb 100644 --- a/tests/dstack.right +++ b/tests/dstack.right @@ -2,9 +2,9 @@ ./dstack.tests: line 9: pushd: no other directory ./dstack.tests: line 10: popd: directory stack empty ./dstack.tests: line 13: pushd: -m: invalid number -pushd: usage: pushd [dir | +N | -N] [-n] +pushd: usage: pushd [-n] [+N | -N | dir] ./dstack.tests: line 14: popd: -m: invalid number -popd: usage: popd [+N | -N] [-n] +popd: usage: popd [-n] [+N | -N] ./dstack.tests: line 15: dirs: -m: invalid number dirs: usage: dirs [-clpv] [+N] [-N] ./dstack.tests: line 16: dirs: 7: invalid option diff --git a/tests/dstack.tests b/tests/dstack.tests index 6c4cef142..49b97d3ff 100644 --- a/tests/dstack.tests +++ b/tests/dstack.tests @@ -84,4 +84,4 @@ dirs -c dirs # this is for the benefit of pure coverage -cd $MYDIR +cd "$MYDIR" diff --git a/tests/errors.right b/tests/errors.right index ac987fbdd..ae7bf29ce 100644 --- a/tests/errors.right +++ b/tests/errors.right @@ -15,12 +15,12 @@ unset: usage: unset [-f] [-v] [name ...] ./errors.tests: line 52: unset: `/bin/sh': not a valid identifier ./errors.tests: line 55: unset: cannot simultaneously unset a function and a variable ./errors.tests: line 58: declare: -z: invalid option -declare: usage: declare [-afFirtx] [-p] [name[=value] ...] +declare: usage: declare [-aAfFilrtux] [-p] [name[=value] ...] ./errors.tests: line 60: declare: `-z': not a valid identifier ./errors.tests: line 61: declare: `/bin/sh': not a valid identifier ./errors.tests: line 65: declare: cannot use `-f' to make functions ./errors.tests: line 68: exec: -i: invalid option -exec: usage: exec [-cl] [-a name] file [redirection ...] +exec: usage: exec [-cl] [-a name] [command [arguments ...]] [redirection ...] ./errors.tests: line 72: export: XPATH: not a function ./errors.tests: line 75: break: only meaningful in a `for', `while', or `until' loop ./errors.tests: line 76: continue: only meaningful in a `for', `while', or `until' loop @@ -53,9 +53,10 @@ umask: usage: umask [-p] [-S] [mode] ./errors.tests: line 159: declare: VAR: readonly variable ./errors.tests: line 161: declare: unset: not found ./errors.tests: line 164: VAR: readonly variable -./errors.tests: command substitution: line 168: syntax error: unexpected end of file -./errors.tests: command substitution: line 168: syntax error near unexpected token `done' -./errors.tests: command substitution: line 168: ` for z in 1 2 3; done ' +./errors.tests: command substitution: line 168: syntax error near unexpected token `)' +./errors.tests: command substitution: line 168: ` for z in 1 2 3; do )' +./errors.tests: command substitution: line 169: syntax error near unexpected token `done' +./errors.tests: command substitution: line 169: ` for z in 1 2 3; done )' ./errors.tests: line 171: cd: HOME not set ./errors.tests: line 172: cd: /tmp/xyz.bash: No such file or directory ./errors.tests: line 174: cd: OLDPWD not set @@ -68,7 +69,7 @@ source: usage: source filename [arguments] ./errors.tests: line 184: .: -i: invalid option .: usage: . filename [arguments] ./errors.tests: line 187: set: -q: invalid option -set: usage: set [--abefhkmnptuvxBCHP] [-o option] [arg ...] +set: usage: set [--abefhkmnptuvxBCHP] [-o option-name] [arg ...] ./errors.tests: line 190: enable: sh: not a shell builtin ./errors.tests: line 190: enable: bash: not a shell builtin ./errors.tests: line 193: shopt: cannot set and unset shell options simultaneously @@ -85,7 +86,7 @@ command: usage: command [-pVv] command [arg ...] ./errors.tests: line 213: /bin/sh + 0: syntax error: operand expected (error token is "/bin/sh + 0") ./errors.tests: line 216: trap: NOSIG: invalid signal specification ./errors.tests: line 219: trap: -s: invalid option -trap: usage: trap [-lp] [arg signal_spec ...] +trap: usage: trap [-lp] [[arg] signal_spec ...] ./errors.tests: line 225: return: can only `return' from a function or sourced script ./errors.tests: line 229: break: 0: loop count out of range ./errors.tests: line 233: continue: 0: loop count out of range diff --git a/tests/exec.right b/tests/exec.right index d65b89df6..8f974ae59 100644 --- a/tests/exec.right +++ b/tests/exec.right @@ -51,4 +51,5 @@ this is ohio-state 0 1 testb +expand_aliases on after diff --git a/tests/exec8.sub b/tests/exec8.sub new file mode 100644 index 000000000..014726dce --- /dev/null +++ b/tests/exec8.sub @@ -0,0 +1 @@ +shopt expand_aliases diff --git a/tests/execscript b/tests/execscript index 09a4ba5f5..5e11e235d 100644 --- a/tests/execscript +++ b/tests/execscript @@ -105,6 +105,8 @@ ${THIS_SH} ./exec6.sub # checks for properly deciding what constitutes an executable file ${THIS_SH} ./exec7.sub +${THIS_SH} -i ./exec8.sub + true | `echo true` & echo after diff --git a/tests/exp.right b/tests/exp.right index fdadbd910..faafad2b1 100644 --- a/tests/exp.right +++ b/tests/exp.right @@ -145,3 +145,20 @@ argv[4] = argv[5] = a?b?c a b c +argv[1] = <^?> +argv[1] = <^?> +argv[1] = <^?> +argv[1] = <^?> +argv[1] = <^?> +argv[1] = <^?> +argv[1] = <^A> +argv[2] = <^?> +argv[1] = <^A^?> +argv[1] = <^A^?^A^?> +argv[1] = <^A^A^?> +0.net +0.net0 + +0.net +0.net +0.net diff --git a/tests/exp-tests b/tests/exp.tests similarity index 99% rename from tests/exp-tests rename to tests/exp.tests index 884b5a699..42fbf7244 100644 --- a/tests/exp-tests +++ b/tests/exp.tests @@ -378,3 +378,7 @@ a="a?b?c" echo ${a//\\?/ } echo ${a//\?/ } + +${THIS_SH} ./exp1.sub + +${THIS_SH} ./exp2.sub diff --git a/tests/exp1.sub b/tests/exp1.sub new file mode 100644 index 000000000..3e40f2a9d --- /dev/null +++ b/tests/exp1.sub @@ -0,0 +1,21 @@ +# Test the substitution quoting characters (CTLESC and CTLNUL) in different +# combinations + +recho `echo ''` +recho `echo ""` +recho `echo ` + +# Test the unquoted special quoting characters +recho  +recho "" +recho '' + +# This should give argv[1] = ^A argv[2] = ^? +FOO=`echo ' ' | tr ' ' '\012'` +recho $FOO + +# Test patterns that come up when the shell quotes funny character +# combinations +recho '' +recho '' +recho '' diff --git a/tests/exp2.sub b/tests/exp2.sub new file mode 100644 index 000000000..a70179ec7 --- /dev/null +++ b/tests/exp2.sub @@ -0,0 +1,12 @@ +K=dvb0.net A=${K#dvb} eval echo \$A +unset K A +x=${K:=dvb0.net0} A=${K#dvb} eval echo \$A + +unset K A +K=dvb0.net A=${K#dvb} echo "$A" +unset K A +K=dvb0.net A=${K#dvb} ; echo "$A" +unset K A +K=dvb0.net A=${K#dvb} eval echo '$A' +unset K A +K=dvb0.net A=${K#dvb} eval echo \$A diff --git a/tests/extglob.right b/tests/extglob.right index 301e97b22..7b9cc9467 100644 --- a/tests/extglob.right +++ b/tests/extglob.right @@ -78,6 +78,7 @@ a b a,b a-b a.b a:b a;b a_b a b a,b a-b a.b a:b a;b a_b a b a,b a-b a.b a:b a;b a_b argv[1] = +a,b a.c a.c a.c diff --git a/tests/extglob.tests b/tests/extglob.tests index 51e33ee73..eb26d5501 100644 --- a/tests/extglob.tests +++ b/tests/extglob.tests @@ -356,9 +356,14 @@ rm -rf $TESTDIR x=abcdef recho "${x#*(a|b)cd}" +TEST='a , b' +shopt -s globstar +echo ${TEST//*([[:space:]]),*([[:space:]])/,} +shopt -u globstar + # this is for the benefit of pure coverage, so it writes the pcv file # in the right place -builtin cd $MYDIR +builtin cd "$MYDIR" ${THIS_SH} ./extglob1.sub diff --git a/tests/extglob1.sub b/tests/extglob1.sub index 3beec9e86..bf65a9eac 100644 --- a/tests/extglob1.sub +++ b/tests/extglob1.sub @@ -33,5 +33,5 @@ case . in *) echo bad 3;; esac -cd $MYDIR +cd "$MYDIR" rm -rf $GDIR diff --git a/tests/func.right b/tests/func.right index e97a4865b..1bd12e121 100644 --- a/tests/func.right +++ b/tests/func.right @@ -27,7 +27,7 @@ f1 () return $status } before: try to assign to FUNCNAME -outside: FUNCNAME = main +outside: FUNCNAME = before: FUNCNAME = func FUNCNAME = func2 after: FUNCNAME = func diff --git a/tests/heredoc.right b/tests/heredoc.right index c3f6a7fdf..8eee6b214 100644 --- a/tests/heredoc.right +++ b/tests/heredoc.right @@ -39,5 +39,6 @@ ENDOFINPUT aa=1 } +./heredoc.tests: line 94: warning: here-document at line 92 delimited by end-of-file (wanted `EOF') hi there diff --git a/tests/history.right b/tests/history.right index 556a3129b..128b0deb8 100644 --- a/tests/history.right +++ b/tests/history.right @@ -1,8 +1,8 @@ ./history.tests: line 4: history: -x: invalid option -history: usage: history [-c] [-d offset] [n] or history -awrn [filename] or history -ps arg [arg...] +history: usage: history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg [arg...] ./history.tests: line 6: history: cannot use more than one of -anrw ./history.tests: line 9: fc: -v: invalid option -fc: usage: fc [-e ename] [-nlr] [first] [last] or fc -s [pat=rep] [cmd] +fc: usage: fc [-e ename] [-lnr] [first] [last] or fc -s [pat=rep] [command] 1 for i in one two three; do echo $i; done 2 /bin/sh -c 'echo this is $0' 3 ls @@ -108,4 +108,35 @@ xx xb xc echo 44 48 4c 44 48 4c ./history.tests: line 90: fc: no command found +aa +bb +cc +echo cc +echo cc +cc +aa +bb +cc +echo cc +echo cc +cc 1 +one +two +three + 1 cat < argv[1] = <> argv[1] = <> argv[1] = <12> -./new-exp.tests: line 560: ABXD: parameter unset +argv[1] = <> +argv[1] = <> +argv[1] = +foo is a function +foo () +{ + echo < <(cat x1) +} +foo () +{ + echo < <(cat x1) +} +bar () { echo < <(cat x1) } +bar is a function +bar () +{ + echo < <(cat x1) +} +argv[1] = +argv[1] = +./new-exp.tests: line 568: ABXD: parameter unset diff --git a/tests/new-exp.tests b/tests/new-exp.tests index 78a0e7fb0..3a0581f00 100644 --- a/tests/new-exp.tests +++ b/tests/new-exp.tests @@ -555,6 +555,14 @@ echo ${var##?} ${THIS_SH} ./new-exp6.sub +${THIS_SH} ./new-exp7.sub + +# problems with stray CTLNUL in bash-4.0-alpha +unset a +a=/a +recho "/${a%/*}" +recho "/${a///a/}" + # this must be last! expect $0: 'ABXD: parameter unset' recho ${ABXD:?"parameter unset"} diff --git a/tests/new-exp5.sub b/tests/new-exp5.sub index 9b3e1b350..0ee86e985 100644 --- a/tests/new-exp5.sub +++ b/tests/new-exp5.sub @@ -28,3 +28,13 @@ a=0123456789 echo ${a:1} echo ${a: -1} echo ${a: ${#a}-1} + +# problem with bash through 3.2.33 +oIFS="$IFS" +IFS=$'\n' +a=(A B C D) +b=("${a[@]}") +echo "${#b[@]}", "${b[@]}" # 4, A B C D -- OK +b=("${a[@]:2}") +echo "${#b[@]}", "${b[@]}" # 1, C D -- bug, should be 2, C D +IFS="$oIFS" diff --git a/tests/new-exp6.sub b/tests/new-exp6.sub index c2fbd73c9..532ec1af7 100644 --- a/tests/new-exp6.sub +++ b/tests/new-exp6.sub @@ -20,3 +20,10 @@ recho "${str/$str/}" recho "${snul##$snul}" recho "${str##$str}" recho "${str##$nul}" + +A="" +B="${A:0}" + +recho "$B" +recho "${A:0}" +recho "/tmp/test/TEST${A:0}" diff --git a/tests/new-exp7.sub b/tests/new-exp7.sub new file mode 100644 index 000000000..970475ccd --- /dev/null +++ b/tests/new-exp7.sub @@ -0,0 +1,13 @@ +foo() +{ + echo < <(cat x1) +} + +type foo + +declare -f foo + +echo $(declare -f foo | sed 's:foo:bar:') +eval "$(declare -f foo | sed 's:foo:bar:')" + +type bar diff --git a/tests/nquote5.right b/tests/nquote5.right new file mode 100644 index 000000000..a89332941 --- /dev/null +++ b/tests/nquote5.right @@ -0,0 +1,86 @@ +argv[1] = +argv[2] = +argv[3] = +argv[1] = +argv[2] = +argv[3] = +argv[1] = +argv[2] = +argv[3] = +argv[1] = +argv[1] = +argv[1] = +argv[2] = +argv[3] = +argv[1] = +argv[2] = +argv[1] = +argv[1] = +argv[2] = +argv[3] = +argv[1] = +argv[1] = +argv[2] = +argv[3] = +argv[1] = +argv[2] = +argv[3] = +argv[1] = <> +argv[2] = +argv[1] = +argv[2] = <--> +argv[3] = +argv[4] = <--> +argv[5] = +argv[1] = +argv[2] = +argv[3] = +argv[1] = +argv[2] = +argv[3] = +argv[1] = +argv[2] = <--> +argv[3] = +argv[4] = <--> +argv[5] = +argv[1] = +argv[1] = +argv[1] = +argv[2] = +argv[3] = +argv[1] = +argv[1] = +argv[2] = +argv[3] = +argv[1] = +argv[2] = <--> +argv[3] = +argv[4] = <--> +argv[5] = +argv[6] = <--> +argv[1] = +argv[1] = +argv[2] = +argv[3] = +argv[1] = +argv[1] = +argv[2] = +argv[3] = +argv[1] = +argv[1] = +argv[2] = +argv[3] = +argv[1] = +argv[2] = <--> +argv[3] = +argv[4] = <--> +argv[5] = +argv[6] = <--> +argv[7] = <> +argv[1] = +argv[2] = <--> +argv[3] = +argv[4] = <--> +argv[5] = +argv[6] = <--> +argv[7] = <> diff --git a/tests/nquote5.tests b/tests/nquote5.tests new file mode 100644 index 000000000..85a2ff632 --- /dev/null +++ b/tests/nquote5.tests @@ -0,0 +1,63 @@ +a=$'ab\001cd\001ef' +IFS=$'\001' + +recho $a +recho ${a} +recho xx${a}yy +recho "$a" + +recho $(echo $a) +recho $(echo "$a") + +recho ${a%%??} +recho "${a%%??}" + +recho ${a/f/} +recho "${a/f/}" + +a1=("$a") +recho ${a1[0]} +recho ${a1} + +recho ${a:2:2} + +set -- $a +recho $1 -- $2 -- $3 + +set -- "$a" +recho $1 +recho ${1} + +echo "$a" | { IFS=$'\001' read x y z; recho $x -- $y -- $z ; } +unset x y z +b=$'uv\177wx\177yz' + +recho $b + +recho "ab${x}y${a}z" +recho ab${x}y${a}z + +recho "ab${b}y${a}z" +recho ab${b}y${a}z + +echo "ab${b}y${a}z" | { IFS=$'\001' read l m n o ; recho $l -- $m -- $n -- $o; } +unset l m n o + +a=$'ab\001cd\001ef' +b=$'uv\177wx\177yz' + +IFS=$'\177' + +recho $a +recho $b + +recho "ab${x}y${b}z" +recho ab${x}y${b}z + +recho "ab${b}y${a}z" +recho ab${b}y${a}z + +echo "ab${b}y${a}z" | { IFS=$'\001' read l m n o ; recho "$l" -- "$m" -- "$n" -- "$o"; } +unset l m n o +echo "ab${b}y${a}z" | { IFS=$'\177' read l m n o ; recho "$l" -- "$m" -- "$n" -- "$o"; } +unset l m n o diff --git a/tests/printf.right b/tests/printf.right index cea11ce9eec4866cc4203bc3830b101a046436aa..a6bb04d643ca9a1d2ab88cd5dd07e98a25376ad2 100644 GIT binary patch delta 212 zc-ouI^^ALiG;6&9mjRc8f&!E<0YV@HN*L%FfB`B4LYTmWP#6#brrcE argv[3] = <> FOO 0 0 0 +0 +0 +1 diff --git a/tests/read.tests b/tests/read.tests index f9c78c5a9..fe27dae3e 100644 --- a/tests/read.tests +++ b/tests/read.tests @@ -93,3 +93,6 @@ ${THIS_SH} ./read4.sub # test behavior when IFS is not the default -- bug through bash-2.05b ${THIS_SH} ./read5.sub + +# test behavior of read -t 0 +${THIS_SH} ./read6.sub diff --git a/tests/read2.sub b/tests/read2.sub index 176cf8636..c4a1f771b 100644 --- a/tests/read2.sub +++ b/tests/read2.sub @@ -1,12 +1,22 @@ a=4 read -t 2 a < /dev/tty -echo $? +estat=$? +if [ $estat -gt 128 ]; then + echo timeout 1: ok +else + echo $estat +fi echo $a sleep 5 | read -t 1 a -echo $? +estat=$? +if [ $estat -gt 128 ]; then + echo timeout 2: ok +else + echo $estat +fi echo $a diff --git a/tests/read6.sub b/tests/read6.sub new file mode 100644 index 000000000..34a369235 --- /dev/null +++ b/tests/read6.sub @@ -0,0 +1,10 @@ +# test read with a timeout of 0 -- input polling + +echo abcde | { sleep 0.25 ; read -t 0; } +echo $? + +read -t 0 < $0 +echo $? + +read -t 0 +echo $? diff --git a/tests/redir.right b/tests/redir.right index e56b98048..f816c63b7 100644 --- a/tests/redir.right +++ b/tests/redir.right @@ -1,9 +1,9 @@ abc -./redir.tests: line 13: /tmp/redir-test: cannot overwrite existing file +./redir.tests: line 15: /tmp/redir-test: cannot overwrite existing file abc def def -./redir.tests: line 29: $z: ambiguous redirect +./redir.tests: line 31: $z: ambiguous redirect Point 1 Point 2 to a @@ -44,7 +44,7 @@ kl ab cd cd -./redir.tests: line 152: redir1.*: No such file or directory +./redir.tests: line 154: redir1.*: No such file or directory # tests of ksh93-like dup-and-close redirection operators exec 9<$0 @@ -100,3 +100,42 @@ c1 is 1 c2 is 2 c3 is 3 c4 is 4 +fd 10 +fd 8 +fd 10 +fd 8 +1 +2 +3 +4 +1 +2 +3 +4 +cat /tmp/foo +whatsis +hey +to stdout +to stderr + +to stdout +to stderr + +to stderr +to stdout + +to stderr +hey +to stdout +logfunc is a function +logfunc () +{ + echo "$@" &>>$TMPDIR/log +} +foo +bix is a function +bix () +{ + echo foo 2>&1 | cat +} +foo diff --git a/tests/redir.tests b/tests/redir.tests index 2669cd406..37759b5aa 100644 --- a/tests/redir.tests +++ b/tests/redir.tests @@ -1,3 +1,5 @@ +: ${TMPDIR:=/tmp} + export LC_ALL=C export LANG=C @@ -31,31 +33,31 @@ cat < $z echo "Point 1" exec 3/tmp/bash-a -exec 5>/tmp/bash-b +exec 4>$TMPDIR/bash-a +exec 5>$TMPDIR/bash-b echo "Point 2" echo to a 1>&4 echo to b 1>&5 -cat /tmp/bash-a -cat /tmp/bash-b +cat $TMPDIR/bash-a +cat $TMPDIR/bash-b exec 11&4 echo to b 1>&5 -cat /tmp/bash-a -cat /tmp/bash-b +cat $TMPDIR/bash-a +cat $TMPDIR/bash-b exec 11<&- echo "Point 4" -exec 6<>/tmp/bash-c +exec 6<>$TMPDIR/bash-c echo to c 1>&6 -cat /tmp/bash-c +cat $TMPDIR/bash-c echo "Point 5" -rm -f /tmp/bash-a /tmp/bash-b /tmp/bash-c +rm -f $TMPDIR/bash-a $TMPDIR/bash-b $TMPDIR/bash-c # # Test the effect of input buffering on the shell's input @@ -78,34 +80,34 @@ testf() fi } -> /tmp/null-redir-a -testf /tmp/null-redir-a +> $TMPDIR/null-redir-a +testf $TMPDIR/null-redir-a -$EXIT > /tmp/null-redir-b -testf /tmp/null-redir-b +$EXIT > $TMPDIR/null-redir-b +testf $TMPDIR/null-redir-b -( > /tmp/null-redir-c ) -testf /tmp/null-redir-c +( > $TMPDIR/null-redir-c ) +testf $TMPDIR/null-redir-c -$EXIT > /tmp/null-redir-d & +$EXIT > $TMPDIR/null-redir-d & wait -testf /tmp/null-redir-d +testf $TMPDIR/null-redir-d -exit 3 | $EXIT > /tmp/null-redir-e +exit 3 | $EXIT > $TMPDIR/null-redir-e echo $? -- ${PIPESTATUS[@]} -testf /tmp/null-redir-e +testf $TMPDIR/null-redir-e -exit 4 | > /tmp/null-redir-f +exit 4 | > $TMPDIR/null-redir-f echo $? -- ${PIPESTATUS[@]} -testf /tmp/null-redir-f +testf $TMPDIR/null-redir-f -> /tmp/null-redir-g & +> $TMPDIR/null-redir-g & wait -testf /tmp/null-redir-g +testf $TMPDIR/null-redir-g -exec >/tmp/null-redir-h & +exec >$TMPDIR/null-redir-h & wait -testf /tmp/null-redir-h +testf $TMPDIR/null-redir-h # make sure async commands don't get /dev/null as stdin when an explicit # input redirection is supplied @@ -158,7 +160,7 @@ ${THIS_SH} ./redir5.sub ${THIS_SH} ./redir6.sub # problem with redirections using fds bash uses internally -: ${TMPDIR:=/tmp} +: ${TMPDIR:=$TMPDIR} trap 'rm -f $TMPDIR/bash-redir-$$' 0 1 2 3 6 15 @@ -172,3 +174,16 @@ echo before block echo after block ${THIS_SH} ./redir7.sub + +${THIS_SH} ./redir8.sub + +exec 9>&2 +command exec 2>$TMPDIR/foo-$$ +echo whatsis >&2 +echo cat /tmp/foo +cat $TMPDIR/foo-$$ +rm -f $TMPDIR/foo-$$ +exec 2>&9 +exec 9>&- + +${THIS_SH} ./redir9.sub diff --git a/tests/redir8.sub b/tests/redir8.sub new file mode 100644 index 000000000..7990a4afb --- /dev/null +++ b/tests/redir8.sub @@ -0,0 +1,58 @@ +rm -f u + +${THIS_SH} -c 'exec 10>&1; echo fd 10 >&10' 10>u +cat u +rm -f u + +${THIS_SH} -c 'exec 8>&1; echo fd 8 >&8' 8>u +cat u +rm -f u + +exec 10>u +exec 10>&1; echo 'fd 10' >&10 +cat u +rm -f u +exec 10>&- + +exec 8>u +exec 8>&1; echo 'fd 8' >&8 +cat u +rm -f u +exec 8>&- + +rm -f infile +cat > infile <&2 +} + +TMPFN=$TMPDIR/foo-$$ + +rm -f $TMPFN + +echo hey > $TMPFN +func &>> $TMPFN + +cat $TMPFN + +echo +func &> $TMPFN + +cat $TMPFN + +echo +func >$TMPFN +cat $TMPFN + +echo +echo hey > $TMPFN +func >> $TMPFN +cat $TMPFN + +rm -f $TMPFN + +logfunc() +{ + echo "$@" &>> $TMPDIR/log +} + +type logfunc + +echo foo 2>&1 + +bix() +{ +echo foo |& cat +} + +type bix + +bix diff --git a/tests/rsh.right b/tests/rsh.right index e673b94d4..04c697108 100644 --- a/tests/rsh.right +++ b/tests/rsh.right @@ -7,7 +7,7 @@ ./rsh.tests: line 21: /tmp/restricted: restricted: cannot redirect output ./rsh.tests: line 26: command: -p: restricted ./rsh.tests: line 28: set: +r: invalid option -set: usage: set [--abefhkmnptuvxBCHP] [-o option] [arg ...] +set: usage: set [--abefhkmnptuvxBCHP] [-o option-name] [arg ...] ./rsh.tests: line 29: set: restricted: invalid option name ./rsh.tests: line 31: exec: restricted ./rsh.tests: after exec diff --git a/tests/run-array b/tests/run-array index 44207d9cc..6fdbae494 100644 --- a/tests/run-array +++ b/tests/run-array @@ -1,4 +1,6 @@ echo "warning: all of these tests will fail if arrays have not" >&2 echo "warning: been compiled into the shell" >&2 +echo "warning: the BASH_ARGC and BASH_ARGV tests will fail if debugging support" >&2 +echo "warning: has not been compiled into the shell" >&2 ${THIS_SH} ./array.tests > /tmp/xx 2>&1 diff /tmp/xx array.right && rm -f /tmp/xx diff --git a/tests/run-assoc b/tests/run-assoc new file mode 100644 index 000000000..18c3a9cf1 --- /dev/null +++ b/tests/run-assoc @@ -0,0 +1,4 @@ +echo "warning: all of these tests will fail if arrays have not" >&2 +echo "warning: been compiled into the shell" >&2 +${THIS_SH} ./assoc.tests > /tmp/xx 2>&1 +diff /tmp/xx assoc.right && rm -f /tmp/xx diff --git a/tests/run-builtins b/tests/run-builtins index 53d963ebf..db88c8c14 100644 --- a/tests/run-builtins +++ b/tests/run-builtins @@ -1,2 +1,6 @@ +echo "warning: some of these tests may fail if process substitution has not" >&2 +echo "warning: been compiled into the shell or if the OS does not provide" >&2 +echo "warning: /dev/fd." >&2 + ${THIS_SH} ./builtins.tests > /tmp/xx 2>&1 diff /tmp/xx builtins.right && rm -f /tmp/xx diff --git a/tests/run-case b/tests/run-case new file mode 100644 index 000000000..71d9b83d2 --- /dev/null +++ b/tests/run-case @@ -0,0 +1,2 @@ +${THIS_SH} ./case.tests > /tmp/xx 2>&1 +diff /tmp/xx case.right && rm -f /tmp/xx diff --git a/tests/run-casemod b/tests/run-casemod new file mode 100644 index 000000000..83c1b5a32 --- /dev/null +++ b/tests/run-casemod @@ -0,0 +1,2 @@ +${THIS_SH} ./casemod.tests > /tmp/xx 2>&1 +diff /tmp/xx casemod.right && rm -f /tmp/xx diff --git a/tests/run-comsub b/tests/run-comsub new file mode 100644 index 000000000..0bbcad5e8 --- /dev/null +++ b/tests/run-comsub @@ -0,0 +1,2 @@ +${THIS_SH} ./comsub.tests > /tmp/xx 2>&1 +diff /tmp/xx comsub.right && rm -f /tmp/xx diff --git a/tests/run-comsub-eof b/tests/run-comsub-eof new file mode 100644 index 000000000..5c006be11 --- /dev/null +++ b/tests/run-comsub-eof @@ -0,0 +1,2 @@ +${THIS_SH} ./comsub-eof.tests > /tmp/xx 2>&1 +diff /tmp/xx comsub-eof.right && rm -f /tmp/xx diff --git a/tests/run-comsub-posix b/tests/run-comsub-posix new file mode 100644 index 000000000..38bf8eeae --- /dev/null +++ b/tests/run-comsub-posix @@ -0,0 +1,2 @@ +${THIS_SH} ./comsub-posix.tests > /tmp/xx 2>&1 +diff /tmp/xx comsub-posix.right && rm -f /tmp/xx diff --git a/tests/run-coproc b/tests/run-coproc new file mode 100644 index 000000000..ce62474ef --- /dev/null +++ b/tests/run-coproc @@ -0,0 +1,4 @@ +echo "warning: the process IDs printed will differ on every run" >&2 +echo "warning: and generate diffs" >&2 +${THIS_SH} ./coproc.tests > /tmp/xx 2>&1 +diff /tmp/xx coproc.right && rm -f /tmp/xx diff --git a/tests/run-exp-tests b/tests/run-exp-tests index c55f7147b..cbabacefe 100644 --- a/tests/run-exp-tests +++ b/tests/run-exp-tests @@ -1,2 +1,2 @@ -${THIS_SH} ./exp-tests | grep -v '^expect' > /tmp/xx +${THIS_SH} ./exp.tests | grep -v '^expect' > /tmp/xx diff /tmp/xx exp.right && rm -f /tmp/xx diff --git a/tests/run-invert b/tests/run-invert index 67e08792a..494930762 100644 --- a/tests/run-invert +++ b/tests/run-invert @@ -1,2 +1,2 @@ -${THIS_SH} ./invert.tests | grep -v '^expect' > /tmp/xx +${THIS_SH} ./invert.tests 2>&1 | grep -v '^expect' > /tmp/xx diff /tmp/xx invert.right && rm -f /tmp/xx diff --git a/tests/run-mapfile b/tests/run-mapfile new file mode 100644 index 000000000..a207f09c7 --- /dev/null +++ b/tests/run-mapfile @@ -0,0 +1,2 @@ +${THIS_SH} ./mapfile.tests > /tmp/xx 2>&1 +diff /tmp/xx mapfile.right && rm -f /tmp/xx diff --git a/tests/run-minimal b/tests/run-minimal index 5c5dcc498..0054cda85 100644 --- a/tests/run-minimal +++ b/tests/run-minimal @@ -27,7 +27,7 @@ do *.orig|*~) ;; run-dollars|run-execscript|run-func|run-getopts|run-heredoc) echo $x ; sh $x ;; run-ifs-tests|run-input-test|run-invert|run-more-exp|run-nquote) echo $x ; sh $x ;; - run-ifs-0posix|run-posix2|run-posixpat) echo $x ; sh $x ;; + run-ifs-posix|run-posix2|run-posixpat) echo $x ; sh $x ;; run-precedence|run-quote|run-read|run-rhs-exp|run-strip|run-tilde) echo $x ; sh $x ;; *) ;; esac diff --git a/tests/run-nquote4 b/tests/run-nquote4 index f7d05bb29..493f4aa1e 100644 --- a/tests/run-nquote4 +++ b/tests/run-nquote4 @@ -1,4 +1,4 @@ echo warning: some of these tests will fail if you do not have UTF-8 >&2 -echo warning: locales installed on your system +echo warning: locales installed on your system >&2 ${THIS_SH} ./nquote4.tests 2>&1 | grep -v '^expect' > /tmp/xx diff /tmp/xx nquote4.right && rm -f /tmp/xx diff --git a/tests/run-nquote5 b/tests/run-nquote5 new file mode 100644 index 000000000..14cef64c1 --- /dev/null +++ b/tests/run-nquote5 @@ -0,0 +1,2 @@ +${THIS_SH} ./nquote5.tests 2>&1 | grep -v '^expect' > /tmp/xx +diff /tmp/xx nquote5.right && rm -f /tmp/xx diff --git a/tests/set-e-test b/tests/set-e-test index fe1549c41..1fdf360d9 100644 --- a/tests/set-e-test +++ b/tests/set-e-test @@ -82,3 +82,24 @@ echo ! eval succeeded -- 1 ! eval '(exit 5)' echo ! eval succeeded -- 2 + +set -e +until builtin false; do echo a; break; done +echo $? + +until eval false; do echo b; break; done +echo $? + +: ${TMPDIR:=/tmp} +FN=$TMPDIR/set-e-$$ +cat > $FN << EOF +false +echo after 1 +false +EOF + +set -e +until . $FN; do echo a; break; done +echo $? + +rm -f $FN diff --git a/tests/set-e.right b/tests/set-e.right index 644841352..b9762a40e 100644 --- a/tests/set-e.right +++ b/tests/set-e.right @@ -26,3 +26,10 @@ OR list succeeded eval succeeded ! eval succeeded -- 1 ! eval succeeded -- 2 +a +0 +b +0 +after 1 +a +0 diff --git a/tests/shopt.right b/tests/shopt.right index 55b6fc952..6393bba4c 100644 --- a/tests/shopt.right +++ b/tests/shopt.right @@ -1,12 +1,16 @@ ./shopt.tests: line 2: shopt: -z: invalid option -shopt: usage: shopt [-pqsu] [-o long-option] optname [optname...] +shopt: usage: shopt [-pqsu] [-o] [optname ...] -- +shopt -u autocd shopt -u cdable_vars shopt -s cdspell shopt -u checkhash +shopt -u checkjobs shopt -u checkwinsize shopt -s cmdhist shopt -u compat31 +shopt -u compat32 +shopt -u dirspell shopt -u dotglob shopt -u execfail shopt -s expand_aliases @@ -15,6 +19,7 @@ shopt -u extglob shopt -s extquote shopt -u failglob shopt -s force_fignore +shopt -u globstar shopt -u gnu_errfmt shopt -u histappend shopt -u histreedit @@ -51,15 +56,20 @@ shopt -s progcomp shopt -s promptvars shopt -s sourcepath -- +shopt -u autocd shopt -u cdable_vars shopt -u checkhash +shopt -u checkjobs shopt -u checkwinsize shopt -u compat31 +shopt -u compat32 +shopt -u dirspell shopt -u dotglob shopt -u execfail shopt -u extdebug shopt -u extglob shopt -u failglob +shopt -u globstar shopt -u gnu_errfmt shopt -u histappend shopt -u histreedit @@ -76,15 +86,20 @@ shopt -u restricted_shell shopt -u shift_verbose shopt -u xpg_echo -- +autocd off cdable_vars off checkhash off +checkjobs off checkwinsize off compat31 off +compat32 off +dirspell off dotglob off execfail off extdebug off extglob off failglob off +globstar off gnu_errfmt off histappend off histreedit off diff --git a/tests/source5.sub b/tests/source5.sub index 813ffaed1..e6188094c 100644 --- a/tests/source5.sub +++ b/tests/source5.sub @@ -1,4 +1,4 @@ -LC_ALL=en_US +LC_ALL=en_US.UTF-8 unset LC_ALL unset LANG export LC_ALL=C diff --git a/tests/source6.sub b/tests/source6.sub new file mode 100644 index 000000000..9e1cb6491 --- /dev/null +++ b/tests/source6.sub @@ -0,0 +1,31 @@ +# tests sourcing non-regular files, fixed post-3.2 + +: ${TMPDIR:=/tmp} + +TMPFN=$TMPDIR/foo-$$ + +rm -f $TMPFN +echo "echo one - OK" > $TMPFN +. $TMPFN +echo $? +rm -f $TMPFN + +# non-regular readable file +. /dev/null +echo $? + +# FIFO or pipe via /dev/fd +. <(echo "echo two - OK") +echo $? + +# pipe +echo "echo three - OK" | . /dev/stdin +echo $? + +# FIFO +mkfifo $TMPDIR/fifo-$$ +echo "echo four - OK" > $TMPDIR/fifo-$$ & +sleep 1 # allow the child echo to execute +. $TMPDIR/fifo-$$ +echo $? +rm -f $TMPDIR/fifo-$$ diff --git a/tests/test.right b/tests/test.right index beb3af6b2..c5d7c9041 100644 --- a/tests/test.right +++ b/tests/test.right @@ -282,3 +282,4 @@ t -t /dev/tty4 1 t -t /dev/tty4444444... 1 +1 diff --git a/tests/test.tests b/tests/test.tests index a915c4e40..47ad9bb1c 100644 --- a/tests/test.tests +++ b/tests/test.tests @@ -421,3 +421,6 @@ echo 't -t /dev/tty4' t -t /dev/tty4 echo 't -t /dev/tty4444444...' t -t /dev/tty4444444... + +# fixed in bash-4.0-beta +t -t ' ' diff --git a/tests/trap.right b/tests/trap.right index 72f3b6d28..6e357d9ab 100644 --- a/tests/trap.right +++ b/tests/trap.right @@ -64,8 +64,6 @@ before false in trap2a.sub after false in trap2a.sub command substitution caught a child death -caught a child death -caught a child death trap -- 'echo caught a child death' SIGCHLD trap -- 'echo exiting' EXIT trap -- 'echo aborting' SIGABRT diff --git a/tests/trap.tests b/tests/trap.tests index 9aac72545..83497a31c 100644 --- a/tests/trap.tests +++ b/tests/trap.tests @@ -75,6 +75,7 @@ trap 'echo caught a child death' SIGCHLD sleep 7 & sleep 6 & sleep 5 & +# this will only catch the first, since there's a trap on SIGCHLD wait trap -p SIGCHLD @@ -84,3 +85,6 @@ trap -p SIGCHLD trap - SIGINT QUIT TERM trap + +trap - SIGCHLD +wait diff --git a/tests/type.right b/tests/type.right index dbd51caf2..18208d132 100644 --- a/tests/type.right +++ b/tests/type.right @@ -46,3 +46,18 @@ file hits command 3 /tmp/bash 1 /bin/sh +f is a function +f () +{ + v='^A' +} +foo is a function +foo () +{ + echo $(. +*/ #include "config.h" @@ -38,6 +38,7 @@ #include "shell.h" #include "flags.h" #include "input.h" /* for save_token_state, restore_token_state */ +#include "jobs.h" #include "signames.h" #include "builtins.h" #include "builtins/common.h" @@ -295,6 +296,14 @@ run_pending_traps () run_interrupt_trap (); CLRINTERRUPT; } +#if defined (JOB_CONTROL) && defined (SIGCHLD) + else if (sig == SIGCHLD && + trap_list[SIGCHLD] != (char *)IMPOSSIBLE_TRAP_HANDLER && + (sigmodes[SIGCHLD] & SIG_INPROGRESS) == 0) + { + run_sigchld_trap (pending_traps[sig]); /* use as counter */ + } +#endif else if (trap_list[sig] == (char *)DEFAULT_SIG || trap_list[sig] == (char *)IGNORE_SIG || trap_list[sig] == (char *)IMPOSSIBLE_TRAP_HANDLER) @@ -349,6 +358,14 @@ trap_handler (sig) { int oerrno; + if ((sigmodes[sig] & SIG_TRAPPED) == 0) + { +#if defined (DEBUG) + internal_warning ("trap_handler: signal %d: signal not trapped", sig); +#endif + SIGRETURN (0); + } + if ((sig >= NSIG) || (trap_list[sig] == (char *)DEFAULT_SIG) || (trap_list[sig] == (char *)IGNORE_SIG)) @@ -357,6 +374,9 @@ trap_handler (sig) { oerrno = errno; #if defined (MUST_REINSTALL_SIGHANDLERS) +# if defined (JOB_CONTROL) && defined (SIGCHLD) + if (sig != SIGCHLD) +# endif /* JOB_CONTROL && SIGCHLD */ set_signal_handler (sig, trap_handler); #endif /* MUST_REINSTALL_SIGHANDLERS */ @@ -391,14 +411,28 @@ set_sigchld_trap (command_string) #endif /* Make COMMAND_STRING be executed when SIGCHLD is caught iff SIGCHLD - is not already trapped. */ + is not already trapped. IMPOSSIBLE_TRAP_HANDLER is used as a sentinel + to make sure that a SIGCHLD trap handler run via run_sigchld_trap can + reset the disposition to the default and not have the original signal + accidentally restored, undoing the user's command. */ void maybe_set_sigchld_trap (command_string) char *command_string; { - if ((sigmodes[SIGCHLD] & SIG_TRAPPED) == 0) + if ((sigmodes[SIGCHLD] & SIG_TRAPPED) == 0 && trap_list[SIGCHLD] == (char *)IMPOSSIBLE_TRAP_HANDLER) set_signal (SIGCHLD, command_string); } + +/* Temporarily set the SIGCHLD trap string to IMPOSSIBLE_TRAP_HANDLER. Used + as a sentinel in run_sigchld_trap and maybe_set_sigchld_trap to see whether + or not a SIGCHLD trap handler reset SIGCHLD disposition to the default. */ +void +set_impossible_sigchld_trap () +{ + restore_default_signal (SIGCHLD); + change_signal (SIGCHLD, (char *)IMPOSSIBLE_TRAP_HANDLER); + sigmodes[SIGCHLD] &= ~SIG_TRAPPED; /* maybe_set_sigchld_trap checks this */ +} #endif /* JOB_CONTROL && SIGCHLD */ void diff --git a/trap.h b/trap.h index d1600e030..c34b7eb5d 100644 --- a/trap.h +++ b/trap.h @@ -1,22 +1,22 @@ /* trap.h -- data structures used in the trap mechanism. */ -/* Copyright (C) 1993 Free Software Foundation, Inc. +/* Copyright (C) 1993-2009 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. + 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #if !defined (_TRAP_H_) #define _TRAP_H_ @@ -63,6 +63,7 @@ extern void initialize_traps __P((void)); extern void run_pending_traps __P((void)); extern void maybe_set_sigchld_trap __P((char *)); +extern void set_impossible_sigchld_trap __P((void)); extern void set_sigchld_trap __P((char *)); extern void set_debug_trap __P((char *)); diff --git a/unwind_prot.c b/unwind_prot.c index 4fd194e8f..9e150a662 100644 --- a/unwind_prot.c +++ b/unwind_prot.c @@ -1,23 +1,25 @@ +/* unwind_prot.c - a simple unwind-protect system for internal variables */ + /* I can't stand it anymore! Please can't we just write the whole Unix system in lisp or something? */ -/* Copyright (C) 1987-2002 Free Software Foundation, Inc. +/* Copyright (C) 1987-2009 Free Software Foundation, Inc. -This file is part of GNU Bash, the Bourne Again SHell. + 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. -Bash is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. + 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ /* **************************************************************** */ /* */ @@ -174,6 +176,12 @@ clear_unwind_protect_list (flags) } } +int +have_unwind_protects () +{ + return (unwind_protect_list != 0); +} + /* **************************************************************** */ /* */ /* The Actual Functions */ diff --git a/unwind_prot.h b/unwind_prot.h index 8033a0500..cc556f746 100644 --- a/unwind_prot.h +++ b/unwind_prot.h @@ -1,22 +1,22 @@ /* unwind_prot.h - Macros and functions for hacking unwind protection. */ -/* Copyright (C) 1993 Free Software Foundation, Inc. +/* Copyright (C) 1993-2009 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. + 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #if !defined (_UNWIND_PROT_H) #define _UNWIND_PROT_H @@ -29,6 +29,7 @@ extern void add_unwind_protect (); /* Not portable to arbitrary C99 hosts. */ extern void remove_unwind_protect __P((void)); extern void run_unwind_protects __P((void)); extern void clear_unwind_protect_list __P((int)); +extern int have_unwind_protects __P((void)); extern void uwp_init __P((void)); /* Define for people who like their code to look a certain way. */ diff --git a/variables.c b/variables.c index 725cfa692..8920bad1d 100644 --- a/variables.c +++ b/variables.c @@ -1,22 +1,22 @@ /* variables.c -- Functions for hacking shell variables. */ -/* Copyright (C) 1987-2005 Free Software Foundation, Inc. +/* Copyright (C) 1987-2009 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public - License for more details. + 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. */ + along with Bash. If not, see . +*/ #include "config.h" @@ -24,13 +24,13 @@ #include "posixstat.h" #include "posixtime.h" -#if defined (qnx) -# if defined (qnx6) -# include +#if defined (__QNX__) +# if defined (__QNXNTO__) +# include # else # include -# endif /* !qnx6 */ -#endif /* qnx */ +# endif /* !__QNXNTO__ */ +#endif /* __QNX__ */ #if defined (HAVE_UNISTD_H) # include @@ -38,7 +38,9 @@ #include #include "chartypes.h" -#include +#if defined (HAVE_PWD_H) +# include +#endif #include "bashansi.h" #include "bashintl.h" @@ -50,6 +52,7 @@ #include "input.h" #include "hashcmd.h" #include "pathexp.h" +#include "alias.h" #include "builtins/getopt.h" #include "builtins/common.h" @@ -92,6 +95,8 @@ extern char *the_printed_command_except_trap; extern char *this_command_name; extern char *command_execution_string; extern time_t shell_start_time; +extern int assigning_in_environment; +extern int executing_builtin; #if defined (READLINE) extern int no_line_editing; @@ -135,6 +140,13 @@ WORD_LIST *rest_of_args = (WORD_LIST *)NULL; /* The value of $$. */ pid_t dollar_dollar_pid; +/* Non-zero means that we have to remake EXPORT_ENV. */ +int array_needs_making = 1; + +/* The number of times BASH has been executed. This is set + by initialize_variables (). */ +int shell_level = 0; + /* An array which is passed to commands as their environment. It is manufactured from the union of the initial environment and the shell variables that are marked for export. */ @@ -147,13 +159,6 @@ static int winsize_assignment; /* currently assigning to LINES or COLUMNS */ static int winsize_assigned; /* assigned to LINES or COLUMNS */ #endif -/* Non-zero means that we have to remake EXPORT_ENV. */ -int array_needs_making = 1; - -/* The number of times BASH has been executed. This is set - by initialize_variables (). */ -int shell_level = 0; - /* Some forward declarations. */ static void create_variable_tables __P((void)); @@ -167,42 +172,58 @@ static void uidset __P((void)); static void make_vers_array __P((void)); #endif -static SHELL_VAR *null_assign __P((SHELL_VAR *, char *, arrayind_t)); +static SHELL_VAR *null_assign __P((SHELL_VAR *, char *, arrayind_t, char *)); #if defined (ARRAY_VARS) -static SHELL_VAR *null_array_assign __P((SHELL_VAR *, char *, arrayind_t)); +static SHELL_VAR *null_array_assign __P((SHELL_VAR *, char *, arrayind_t, char *)); #endif static SHELL_VAR *get_self __P((SHELL_VAR *)); #if defined (ARRAY_VARS) static SHELL_VAR *init_dynamic_array_var __P((char *, sh_var_value_func_t *, sh_var_assign_func_t *, int)); +static SHELL_VAR *init_dynamic_assoc_var __P((char *, sh_var_value_func_t *, sh_var_assign_func_t *, int)); #endif -static SHELL_VAR *assign_seconds __P((SHELL_VAR *, char *, arrayind_t)); +static SHELL_VAR *assign_seconds __P((SHELL_VAR *, char *, arrayind_t, char *)); static SHELL_VAR *get_seconds __P((SHELL_VAR *)); static SHELL_VAR *init_seconds_var __P((void)); static int brand __P((void)); static void sbrand __P((unsigned long)); /* set bash random number generator. */ -static SHELL_VAR *assign_random __P((SHELL_VAR *, char *, arrayind_t)); +static void seedrand __P((void)); /* seed generator randomly */ +static SHELL_VAR *assign_random __P((SHELL_VAR *, char *, arrayind_t, char *)); static SHELL_VAR *get_random __P((SHELL_VAR *)); -static SHELL_VAR *assign_lineno __P((SHELL_VAR *, char *, arrayind_t)); +static SHELL_VAR *assign_lineno __P((SHELL_VAR *, char *, arrayind_t, char *)); static SHELL_VAR *get_lineno __P((SHELL_VAR *)); -static SHELL_VAR *assign_subshell __P((SHELL_VAR *, char *, arrayind_t)); +static SHELL_VAR *assign_subshell __P((SHELL_VAR *, char *, arrayind_t, char *)); static SHELL_VAR *get_subshell __P((SHELL_VAR *)); +static SHELL_VAR *get_bashpid __P((SHELL_VAR *)); + #if defined (HISTORY) static SHELL_VAR *get_histcmd __P((SHELL_VAR *)); #endif +#if defined (READLINE) +static SHELL_VAR *get_comp_wordbreaks __P((SHELL_VAR *)); +static SHELL_VAR *assign_comp_wordbreaks __P((SHELL_VAR *, char *, arrayind_t, char *)); +#endif + #if defined (PUSHD_AND_POPD) && defined (ARRAY_VARS) -static SHELL_VAR *assign_dirstack __P((SHELL_VAR *, char *, arrayind_t)); +static SHELL_VAR *assign_dirstack __P((SHELL_VAR *, char *, arrayind_t, char *)); static SHELL_VAR *get_dirstack __P((SHELL_VAR *)); #endif #if defined (ARRAY_VARS) static SHELL_VAR *get_groupset __P((SHELL_VAR *)); + +static SHELL_VAR *build_hashcmd __P((SHELL_VAR *)); +static SHELL_VAR *get_hashcmd __P((SHELL_VAR *)); +static SHELL_VAR *assign_hashcmd __P((SHELL_VAR *, char *, arrayind_t, char *)); +static SHELL_VAR *build_aliasvar __P((SHELL_VAR *)); +static SHELL_VAR *get_aliasvar __P((SHELL_VAR *)); +static SHELL_VAR *assign_aliasvar __P((SHELL_VAR *, char *, arrayind_t, char *)); #endif static SHELL_VAR *get_funcname __P((SHELL_VAR *)); @@ -215,6 +236,7 @@ static SHELL_VAR *new_shell_variable __P((const char *)); static SHELL_VAR *make_new_variable __P((const char *, HASH_TABLE *)); static SHELL_VAR *bind_variable_internal __P((const char *, char *, HASH_TABLE *, int, int)); +static void dispose_variable_value __P((SHELL_VAR *)); static void free_variable_hash_data __P((PTR_T)); static VARLIST *vlist_alloc __P((int)); @@ -307,6 +329,8 @@ initialize_shell_variables (env, privmode) /* Now, name = env variable name, string = env variable value, and char_index == strlen (name) */ + temp_var = (SHELL_VAR *)NULL; + /* If exported function, define it now. Don't import functions from the environment in privileged mode. */ if (privmode == 0 && read_but_dont_execute == 0 && STREQN ("() {", string, 4)) @@ -351,7 +375,7 @@ initialize_shell_variables (env, privmode) } # endif #endif - else + else if (legal_identifier (name)) { temp_var = bind_variable (name, string, 0); VSETATTR (temp_var, (att_exported | att_imported)); @@ -387,11 +411,11 @@ initialize_shell_variables (env, privmode) set_auto_export (temp_var); /* XXX */ #endif -#if defined (qnx) +#if defined (__QNX__) /* set node id -- don't import it from the environment */ { char node_name[22]; -# if defined (qnx6) +# if defined (__QNXNTO__) netmgr_ndtostr(ND2S_LOCAL_STR, ND_LOCAL_NODE, node_name, sizeof(node_name)); # else qnx_nidtostr (getnid (), node_name, sizeof (node_name)); @@ -495,7 +519,7 @@ initialize_shell_variables (env, privmode) #endif /* HISTORY */ /* Seed the random number generator. */ - sbrand (dollar_dollar_pid + shell_start_time); + seedrand (); /* Handle some "special" variables that we may have inherited from a parent shell. */ @@ -513,6 +537,7 @@ initialize_shell_variables (env, privmode) { sv_history_control ("HISTCONTROL"); sv_histignore ("HISTIGNORE"); + sv_histtimefmt ("HISTTIMEFORMAT"); } #endif /* HISTORY */ @@ -935,6 +960,8 @@ print_assignment (var) #if defined (ARRAY_VARS) else if (array_p (var)) print_array_assignment (var, 0); + else if (assoc_p (var)) + print_assoc_assignment (var, 0); #endif /* ARRAY_VARS */ else { @@ -980,8 +1007,13 @@ void print_var_function (var) SHELL_VAR *var; { + char *x; + if (function_p (var) && var_isset (var)) - printf ("%s", named_function_string ((char *)NULL, function_cell(var), 1)); + { + x = named_function_string ((char *)NULL, function_cell(var), FUNC_MULTILINE|FUNC_EXTERNAL); + printf ("%s", x); + } } /* **************************************************************** */ @@ -1041,21 +1073,32 @@ print_var_function (var) } \ while (0) +#define INIT_DYNAMIC_ASSOC_VAR(var, gfunc, afunc) \ + do \ + { \ + v = make_new_assoc_variable (var); \ + v->dynamic_value = gfunc; \ + v->assign_func = afunc; \ + } \ + while (0) + static SHELL_VAR * -null_assign (self, value, unused) +null_assign (self, value, unused, key) SHELL_VAR *self; char *value; arrayind_t unused; + char *key; { return (self); } #if defined (ARRAY_VARS) static SHELL_VAR * -null_array_assign (self, value, ind) +null_array_assign (self, value, ind, key) SHELL_VAR *self; char *value; arrayind_t ind; + char *key; { return (self); } @@ -1090,8 +1133,25 @@ init_dynamic_array_var (name, getfunc, setfunc, attrs) VSETATTR (v, attrs); return v; } -#endif +static SHELL_VAR * +init_dynamic_assoc_var (name, getfunc, setfunc, attrs) + char *name; + sh_var_value_func_t *getfunc; + sh_var_assign_func_t *setfunc; + int attrs; +{ + SHELL_VAR *v; + + v = find_variable (name); + if (v) + return (v); + INIT_DYNAMIC_ASSOC_VAR (name, getfunc, setfunc); + if (attrs) + VSETATTR (v, attrs); + return v; +} +#endif /* The value of $SECONDS. This is the number of seconds since shell invocation, or, the number of seconds since the last assignment + the @@ -1099,10 +1159,11 @@ init_dynamic_array_var (name, getfunc, setfunc, attrs) static intmax_t seconds_value_assigned; static SHELL_VAR * -assign_seconds (self, value, unused) +assign_seconds (self, value, unused, key) SHELL_VAR *self; char *value; arrayind_t unused; + char *key; { if (legal_number (value, &seconds_value_assigned) == 0) seconds_value_assigned = 0; @@ -1155,8 +1216,26 @@ static int seeded_subshell = 0; static int brand () { +#if 0 rseed = rseed * 1103515245 + 12345; return ((unsigned int)((rseed >> 16) & 32767)); /* was % 32768 */ +#else + /* From "Random number generators: good ones are hard to find", + Park and Miller, Communications of the ACM, vol. 31, no. 10, + October 1988, p. 1195. filtered through FreeBSD */ + long h, l; + + if (rseed == 0) + seedrand (); + h = rseed / 127773; + l = rseed % 127773; + rseed = 16807 * l - 2836 * h; +#if 0 + if (rseed < 0) + rseed += 0x7fffffff; +#endif + return ((unsigned int)(rseed & 32767)); /* was % 32768 */ +#endif } /* Set the random number generator seed to SEED. */ @@ -1168,28 +1247,39 @@ sbrand (seed) last_random_value = 0; } +static void +seedrand () +{ + struct timeval tv; + + gettimeofday (&tv, NULL); + sbrand (tv.tv_sec ^ tv.tv_usec ^ getpid ()); +} + static SHELL_VAR * -assign_random (self, value, unused) +assign_random (self, value, unused, key) SHELL_VAR *self; char *value; arrayind_t unused; + char *key; { sbrand (strtoul (value, (char **)NULL, 10)); if (subshell_environment) - seeded_subshell = 1; + seeded_subshell = getpid (); return (self); } int get_random_number () { - int rv; + int rv, pid; /* Reset for command and process substitution. */ - if (subshell_environment && seeded_subshell == 0) + pid = getpid (); + if (subshell_environment && seeded_subshell != pid) { - sbrand (rseed + getpid() + NOW); - seeded_subshell = 1; + seedrand (); + seeded_subshell = pid; } do @@ -1217,10 +1307,11 @@ get_random (var) } static SHELL_VAR * -assign_lineno (var, value, unused) +assign_lineno (var, value, unused, key) SHELL_VAR *var; char *value; arrayind_t unused; + char *key; { intmax_t new_value; @@ -1246,10 +1337,11 @@ get_lineno (var) } static SHELL_VAR * -assign_subshell (var, value, unused) +assign_subshell (var, value, unused, key) SHELL_VAR *var; char *value; arrayind_t unused; + char *key; { intmax_t new_value; @@ -1271,13 +1363,28 @@ get_subshell (var) return (var); } +static SHELL_VAR * +get_bashpid (var) + SHELL_VAR *var; +{ + int pid; + char *p; + + pid = getpid (); + p = itos (pid); + + FREE (value_cell (var)); + VSETATTR (var, att_integer|att_readonly); + var_setvalue (var, p); + return (var); +} + static SHELL_VAR * get_bash_command (var) SHELL_VAR *var; { char *p; - if (the_printed_command_except_trap) p = savestring (the_printed_command_except_trap); else @@ -1314,7 +1421,8 @@ get_comp_wordbreaks (var) if (rl_completer_word_break_characters == 0 && bash_readline_initialized == 0) enable_hostname_completion (perform_hostname_completion); - var_setvalue (var, rl_completer_word_break_characters); + FREE (value_cell (var)); + var_setvalue (var, savestring (rl_completer_word_break_characters)); return (var); } @@ -1322,10 +1430,11 @@ get_comp_wordbreaks (var) /* When this function returns, rl_completer_word_break_characters points to malloced memory. */ static SHELL_VAR * -assign_comp_wordbreaks (self, value, unused) +assign_comp_wordbreaks (self, value, unused, key) SHELL_VAR *self; char *value; arrayind_t unused; + char *key; { if (rl_completer_word_break_characters && rl_completer_word_break_characters != rl_basic_word_break_characters) @@ -1338,10 +1447,11 @@ assign_comp_wordbreaks (self, value, unused) #if defined (PUSHD_AND_POPD) && defined (ARRAY_VARS) static SHELL_VAR * -assign_dirstack (self, value, ind) +assign_dirstack (self, value, ind, key) SHELL_VAR *self; char *value; arrayind_t ind; + char *key; { set_dirstack_element (ind, 1, value); return self; @@ -1384,6 +1494,112 @@ get_groupset (self) } return (self); } + +static SHELL_VAR * +build_hashcmd (self) + SHELL_VAR *self; +{ + HASH_TABLE *h; + int i; + char *k, *v; + BUCKET_CONTENTS *item; + + h = assoc_cell (self); + if (h) + assoc_dispose (h); + + if (hashed_filenames == 0 || HASH_ENTRIES (hashed_filenames) == 0) + { + var_setvalue (self, (char *)NULL); + return self; + } + + h = assoc_create (hashed_filenames->nbuckets); + for (i = 0; i < hashed_filenames->nbuckets; i++) + { + for (item = hash_items (i, hashed_filenames); item; item = item->next) + { + k = savestring (item->key); + v = pathdata(item)->path; + assoc_insert (h, k, v); + } + } + + var_setvalue (self, (char *)h); + return self; +} + +static SHELL_VAR * +get_hashcmd (self) + SHELL_VAR *self; +{ + build_hashcmd (self); + return (self); +} + +static SHELL_VAR * +assign_hashcmd (self, value, ind, key) + SHELL_VAR *self; + char *value; + arrayind_t ind; + char *key; +{ + phash_insert (key, value, 0, 0); + return (build_hashcmd (self)); +} + +static SHELL_VAR * +build_aliasvar (self) + SHELL_VAR *self; +{ + HASH_TABLE *h; + int i; + char *k, *v; + BUCKET_CONTENTS *item; + + h = assoc_cell (self); + if (h) + assoc_dispose (h); + + if (aliases == 0 || HASH_ENTRIES (aliases) == 0) + { + var_setvalue (self, (char *)NULL); + return self; + } + + h = assoc_create (aliases->nbuckets); + for (i = 0; i < aliases->nbuckets; i++) + { + for (item = hash_items (i, aliases); item; item = item->next) + { + k = savestring (item->key); + v = ((alias_t *)(item->data))->value; + assoc_insert (h, k, v); + } + } + + var_setvalue (self, (char *)h); + return self; +} + +static SHELL_VAR * +get_aliasvar (self) + SHELL_VAR *self; +{ + build_aliasvar (self); + return (self); +} + +static SHELL_VAR * +assign_aliasvar (self, value, ind, key) + SHELL_VAR *self; + char *value; + arrayind_t ind; + char *key; +{ + add_alias (key, value); + return (build_aliasvar (self)); +} #endif /* ARRAY_VARS */ /* If ARRAY_VARS is not defined, this just returns the name of any @@ -1452,6 +1668,9 @@ initialize_dynamic_variables () INIT_DYNAMIC_VAR ("LINENO", (char *)NULL, get_lineno, assign_lineno); VSETATTR (v, att_integer); + INIT_DYNAMIC_VAR ("BASHPID", (char *)NULL, get_bashpid, null_assign); + VSETATTR (v, att_integer|att_readonly); + #if defined (HISTORY) INIT_DYNAMIC_VAR ("HISTCMD", (char *)NULL, get_histcmd, (sh_var_assign_func_t *)NULL); VSETATTR (v, att_integer); @@ -1474,6 +1693,9 @@ initialize_dynamic_variables () # endif /* DEBUGGER */ v = init_dynamic_array_var ("BASH_SOURCE", get_self, null_array_assign, att_noassign|att_nounset); v = init_dynamic_array_var ("BASH_LINENO", get_self, null_array_assign, att_noassign|att_nounset); + + v = init_dynamic_assoc_var ("BASH_CMDS", get_hashcmd, assign_hashcmd, att_nofree); + v = init_dynamic_assoc_var ("BASH_ALIASES", get_aliasvar, assign_aliasvar, att_nofree); #endif v = init_funcname_var (); @@ -1520,7 +1742,7 @@ var_lookup (name, vcontext) then also search the temporarily built list of exported variables. The lookup order is: temporary_env - shell_variables list + shell_variables list */ SHELL_VAR * @@ -1557,7 +1779,7 @@ SHELL_VAR * find_variable (name) const char *name; { - return (find_variable_internal (name, (expanding_redir == 0 && this_shell_builtin != 0))); + return (find_variable_internal (name, (expanding_redir == 0 && (assigning_in_environment || executing_builtin)))); } /* Look up the function entry whose name matches STRING. @@ -1575,7 +1797,11 @@ FUNCTION_DEF * find_function_def (name) const char *name; { +#if defined (DEBUGGER) return ((FUNCTION_DEF *)hash_lookup (name, shell_function_defs)); +#else + return ((FUNCTION_DEF *)0); +#endif } /* Return the value of VAR. VAR is assumed to have been the result of a @@ -1589,6 +1815,8 @@ get_variable_value (var) #if defined (ARRAY_VARS) else if (array_p (var)) return (array_reference (array_cell (var), 0)); + else if (assoc_p (var)) + return (assoc_reference (assoc_cell (var), "0")); #endif else return (value_cell (var)); @@ -1689,7 +1917,7 @@ make_local_variable (name) } if (old_var == 0) - new_var = bind_variable_internal (name, "", vc->table, HASH_NOSRCH, 0); + new_var = make_new_variable (name, vc->table); else { new_var = make_new_variable (name, vc->table); @@ -1698,7 +1926,7 @@ make_local_variable (name) inherit its value. Watch to see if this causes problems with things like `x=4 local x'. */ if (was_tmpvar) - var_setvalue (new_var, savestring (tmp_value)); + var_setvalue (new_var, savestring (tmp_value)); new_var->attributes = exported_p (old_var) ? att_exported : 0; } @@ -1714,27 +1942,6 @@ make_local_variable (name) return (new_var); } -#if defined (ARRAY_VARS) -SHELL_VAR * -make_local_array_variable (name) - char *name; -{ - SHELL_VAR *var; - ARRAY *array; - - var = make_local_variable (name); - if (var == 0 || array_p (var)) - return var; - - array = array_create (); - - FREE (value_cell(var)); - var_setarray (var, array); - VSETATTR (var, att_array); - return var; -} -#endif /* ARRAY_VARS */ - /* Create a new shell variable with name NAME. */ static SHELL_VAR * new_shell_variable (name) @@ -1793,10 +2000,64 @@ make_new_array_variable (name) entry = make_new_variable (name, global_variables->table); array = array_create (); + var_setarray (entry, array); VSETATTR (entry, att_array); return entry; } + +SHELL_VAR * +make_local_array_variable (name) + char *name; +{ + SHELL_VAR *var; + ARRAY *array; + + var = make_local_variable (name); + if (var == 0 || array_p (var)) + return var; + + array = array_create (); + + dispose_variable_value (var); + var_setarray (var, array); + VSETATTR (var, att_array); + return var; +} + +SHELL_VAR * +make_new_assoc_variable (name) + char *name; +{ + SHELL_VAR *entry; + HASH_TABLE *hash; + + entry = make_new_variable (name, global_variables->table); + hash = assoc_create (0); + + var_setassoc (entry, hash); + VSETATTR (entry, att_assoc); + return entry; +} + +SHELL_VAR * +make_local_assoc_variable (name) + char *name; +{ + SHELL_VAR *var; + HASH_TABLE *hash; + + var = make_local_variable (name); + if (var == 0 || assoc_p (var)) + return var; + + dispose_variable_value (var); + hash = assoc_create (0); + + var_setassoc (var, hash); + VSETATTR (var, att_assoc); + return var; +} #endif char * @@ -1807,7 +2068,7 @@ make_variable_value (var, value, flags) { char *retval, *oval; intmax_t lval, rval; - int expok, olen; + int expok, olen, op; /* If this variable has had its type set to integer (via `declare -i'), then do expression evaluation on it and store the result. The @@ -1836,6 +2097,34 @@ make_variable_value (var, value, flags) rval += lval; retval = itos (rval); } +#if defined (CASEMOD_ATTRS) + else if (capcase_p (var) || uppercase_p (var) || lowercase_p (var)) + { + if (flags & ASS_APPEND) + { + oval = get_variable_value (var); + if (oval == 0) /* paranoia */ + oval = ""; + olen = STRLEN (oval); + retval = (char *)xmalloc (olen + (value ? STRLEN (value) : 0) + 1); + strcpy (retval, oval); + if (value) + strcpy (retval+olen, value); + } + else if (*value) + retval = savestring (value); + else + { + retval = (char *)xmalloc (1); + retval[0] = '\0'; + } + op = capcase_p (var) ? CASE_CAPITALIZE + : (uppercase_p (var) ? CASE_UPPER : CASE_LOWER); + oval = sh_modcase (retval, (char *)0, op); + free (retval); + retval = oval; + } +#endif /* CASEMOD_ATTRS */ else if (value) { if (flags & ASS_APPEND) @@ -1886,9 +2175,9 @@ bind_variable_internal (name, value, table, hflags, aflags) { INVALIDATE_EXPORTSTR (entry); newval = (aflags & ASS_APPEND) ? make_variable_value (entry, value, aflags) : value; - entry = (*(entry->assign_func)) (entry, newval, -1); + entry = (*(entry->assign_func)) (entry, newval, -1, 0); if (newval != value) - free (newval); + free (newval); return (entry); } else @@ -1918,6 +2207,11 @@ bind_variable_internal (name, value, table, hflags, aflags) array_insert (array_cell (entry), 0, newval); free (newval); } + else if (assoc_p (entry)) + { + assoc_insert (assoc_cell (entry), "0", newval); + free (newval); + } else #endif { @@ -1963,11 +2257,11 @@ bind_variable (name, value, flags) for (vc = shell_variables; vc; vc = vc->down) { if (vc_isfuncenv (vc) || vc_isbltnenv (vc)) - { - v = hash_lookup (name, vc->table); - if (v) + { + v = hash_lookup (name, vc->table); + if (v) return (bind_variable_internal (name, value, vc->table, 0, flags)); - } + } } return (bind_variable_internal (name, value, global_variables->table, 0, flags)); } @@ -1992,7 +2286,7 @@ bind_variable_value (var, value, aflags) /* If we're appending, we need the old value, so use make_variable_value */ t = (aflags & ASS_APPEND) ? make_variable_value (var, value, aflags) : value; - (*(var->assign_func)) (var, t, -1); + (*(var->assign_func)) (var, t, -1, 0); if (t != value && t) free (t); } @@ -2118,6 +2412,7 @@ bind_function (name, value) return (entry); } +#if defined (DEBUGGER) /* Bind a function definition, which includes source file and line number information in addition to the command, into the FUNCTION_DEF hash table.*/ void @@ -2146,6 +2441,7 @@ bind_function_def (name, value) elt->data = (PTR_T *)entry; } } +#endif /* DEBUGGER */ /* Add STRING, which is of the form foo=bar, to the temporary environment HASH_TABLE (temporary_env). The functions in execute_cmd.c are @@ -2184,13 +2480,7 @@ assign_in_env (word) } temp = name + offset + 1; -#if 0 - temp = (xstrchr (temp, '~') != 0) ? bash_tilde_expand (temp, 1) : savestring (temp); - value = expand_string_unsplit_to_string (temp, 0); - free (temp); -#else value = expand_assignment_string_to_string (temp, 0); -#endif } if (temporary_env == 0) @@ -2254,7 +2544,9 @@ copy_variable (var) var_setfunc (copy, copy_command (function_cell (var))); #if defined (ARRAY_VARS) else if (array_p (var)) - var_setarray (copy, dup_array (array_cell (var))); + var_setarray (copy, array_copy (array_cell (var))); + else if (assoc_p (var)) + var_setassoc (copy, assoc_copy (assoc_cell (var))); #endif else if (value_cell (var)) var_setvalue (copy, savestring (value_cell (var))); @@ -2279,21 +2571,31 @@ copy_variable (var) /* **************************************************************** */ /* Dispose of the information attached to VAR. */ -void -dispose_variable (var) +static void +dispose_variable_value (var) SHELL_VAR *var; { - if (var == 0) - return; - if (function_p (var)) dispose_command (function_cell (var)); #if defined (ARRAY_VARS) else if (array_p (var)) array_dispose (array_cell (var)); + else if (assoc_p (var)) + assoc_dispose (assoc_cell (var)); #endif else FREE (value_cell (var)); +} + +void +dispose_variable (var) + SHELL_VAR *var; +{ + if (var == 0) + return; + + if (nofree_p (var) == 0) + dispose_variable_value (var); FREE_EXPORTSTR (var); @@ -2344,6 +2646,7 @@ unbind_func (name) return 0; } +#if defined (DEBUGGER) int unbind_function_def (name) const char *name; @@ -2365,6 +2668,7 @@ unbind_function_def (name) return 0; } +#endif /* DEBUGGER */ /* Make the variable associated with NAME go away. HASH_LIST is the hash table from which this variable should be deleted (either @@ -2400,15 +2704,19 @@ makunbound (name, vc) We also need to add it back into the correct hash table. */ if (old_var && local_p (old_var) && variable_context == old_var->context) { + if (nofree_p (old_var)) + var_setvalue (old_var, (char *)NULL); #if defined (ARRAY_VARS) - if (array_p (old_var)) + else if (array_p (old_var)) array_dispose (array_cell (old_var)); - else + else if (assoc_p (old_var)) + assoc_dispose (assoc_cell (old_var)); #endif + else FREE (value_cell (old_var)); /* Reset the attributes. Preserve the export attribute if the variable - came from a temporary environment. Make sure it stays local, and - make it invisible. */ + came from a temporary environment. Make sure it stays local, and + make it invisible. */ old_var->attributes = (exported_p (old_var) && tempvar_p (old_var)) ? att_exported : 0; VSETATTR (old_var, att_local); VSETATTR (old_var, att_invisible); @@ -2971,7 +3279,7 @@ dispose_temporary_env (pushf) { hash_flush (temporary_env, pushf); hash_dispose (temporary_env); - temporary_env = (HASH_TABLE *)NULL; + temporary_env = (HASH_TABLE *)NULL; array_needs_making = 1; @@ -3083,6 +3391,12 @@ make_env_array_from_var_list (vars) value = array_to_assignment_string (array_cell (var)); # else continue; /* XXX array vars cannot yet be exported */ +# endif + else if (assoc_p (var)) +# if 0 + value = assoc_to_assignment_string (assoc_cell (var)); +# else + continue; /* XXX associative array vars cannot yet be exported */ # endif #endif else @@ -3103,7 +3417,7 @@ make_env_array_from_var_list (vars) #if 0 /* not yet */ #if defined (ARRAY_VARS) - if (array_p (var)) + if (array_p (var) || assoc_p (var)) free (value); #endif #endif @@ -3257,7 +3571,7 @@ maybe_make_export_env () if (array_needs_making) { if (export_env) - strvec_flush (export_env); + strvec_flush (export_env); /* Make a guess based on how many shell variables and functions we have. Since there will always be array variables, and array @@ -3274,24 +3588,24 @@ maybe_make_export_env () export_env[export_env_index = 0] = (char *)NULL; /* Make a dummy variable context from the temporary_env, stick it on - the front of shell_variables, call make_var_export_array on the - whole thing to flatten it, and convert the list of SHELL_VAR *s - to the form needed by the environment. */ + the front of shell_variables, call make_var_export_array on the + whole thing to flatten it, and convert the list of SHELL_VAR *s + to the form needed by the environment. */ if (temporary_env) - { - tcxt = new_var_context ((char *)NULL, 0); - tcxt->table = temporary_env; - tcxt->down = shell_variables; - } + { + tcxt = new_var_context ((char *)NULL, 0); + tcxt->table = temporary_env; + tcxt->down = shell_variables; + } else - tcxt = shell_variables; + tcxt = shell_variables; temp_array = make_var_export_array (tcxt); if (temp_array) add_temp_array_to_env (temp_array, 0, 0); if (tcxt != shell_variables) - free (tcxt); + free (tcxt); #if defined (RESTRICTED_SHELL) /* Restricted shells may not export shell functions. */ @@ -3505,7 +3819,7 @@ delete_all_contexts (vcxt) { t = v->down; dispose_var_context (v); - } + } delete_all_variables (global_variables->table); shell_variables = global_variables; @@ -3841,7 +4155,7 @@ find_special_var (name) else if (r > 0) /* Can't match any of rest of elements in sorted list. Take this out if it causes problems in certain environments. */ - break; + break; } return -1; } @@ -3867,6 +4181,18 @@ stupidly_hack_special_variables (name) (*(special_vars[i].function)) (name); } +/* Special variables that need hooks to be run when they are unset as part + of shell reinitialization should have their sv_ functions run here. */ +void +reinit_special_variables () +{ +#if defined (READLINE) + sv_comp_wordbreaks ("COMP_WORDBREAKS"); +#endif + sv_globignore ("GLOBIGNORE"); + sv_opterr ("OPTERR"); +} + void sv_ifs (name) char *name; @@ -3911,7 +4237,8 @@ void sv_globignore (name) char *name; { - setup_glob_ignore (name); + if (privileged_mode == 0) + setup_glob_ignore (name); } #if defined (READLINE) @@ -3923,7 +4250,7 @@ sv_comp_wordbreaks (name) sv = find_variable (name); if (sv == 0) - rl_completer_word_break_characters = (char *)NULL; + reset_completer_word_break_chars (); } /* What to do just after one of the TERMxxx variables has changed. diff --git a/variables.h b/variables.h index 00e6ca272..dbc81fbea 100644 --- a/variables.h +++ b/variables.h @@ -1,28 +1,29 @@ /* variables.h -- data structures for shell variables. */ -/* Copyright (C) 1987-2005 Free Software Foundation, Inc. +/* Copyright (C) 1987-2009 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public - License for more details. + 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. */ + along with Bash. If not, see . +*/ #if !defined (_VARIABLES_H_) #define _VARIABLES_H_ #include "stdc.h" #include "array.h" +#include "assoc.h" /* Shell variables and functions are stored in hash tables. */ #include "hashlib.h" @@ -61,7 +62,7 @@ typedef struct var_context { /* What a shell variable looks like. */ typedef struct variable *sh_var_value_func_t __P((struct variable *)); -typedef struct variable *sh_var_assign_func_t __P((struct variable *, char *, arrayind_t)); +typedef struct variable *sh_var_assign_func_t __P((struct variable *, char *, arrayind_t, char *)); /* For the future */ union _value { @@ -108,6 +109,11 @@ typedef struct _vlist { #define att_local 0x0000020 /* variable is local to a function */ #define att_assoc 0x0000040 /* variable is an associative array */ #define att_trace 0x0000080 /* function is traced with DEBUG trap */ +#define att_uppercase 0x0000100 /* word converted to uppercase on assignment */ +#define att_lowercase 0x0000200 /* word converted to lowercase on assignment */ +#define att_capcase 0x0000400 /* word capitalized on assignment */ + +#define user_attrs (att_exported|att_readonly|att_integer|att_local|att_trace|att_uppercase|att_lowercase|att_capcase) #define attmask_user 0x0000fff @@ -117,6 +123,7 @@ typedef struct _vlist { #define att_noassign 0x0004000 /* assignment not allowed */ #define att_imported 0x0008000 /* came from environment */ #define att_special 0x0010000 /* requires special handling */ +#define att_nofree 0x0020000 /* do not free value on unset */ #define attmask_int 0x00ff000 @@ -134,12 +141,16 @@ typedef struct _vlist { #define local_p(var) ((((var)->attributes) & (att_local))) #define assoc_p(var) ((((var)->attributes) & (att_assoc))) #define trace_p(var) ((((var)->attributes) & (att_trace))) +#define uppercase_p(var) ((((var)->attributes) & (att_uppercase))) +#define lowercase_p(var) ((((var)->attributes) & (att_lowercase))) +#define capcase_p(var) ((((var)->attributes) & (att_capcase))) #define invisible_p(var) ((((var)->attributes) & (att_invisible))) #define non_unsettable_p(var) ((((var)->attributes) & (att_nounset))) #define noassign_p(var) ((((var)->attributes) & (att_noassign))) #define imported_p(var) ((((var)->attributes) & (att_imported))) #define specialvar_p(var) ((((var)->attributes) & (att_special))) +#define nofree_p(var) ((((var)->attributes) & (att_nofree))) #define tempvar_p(var) ((((var)->attributes) & (att_tempvar))) @@ -147,6 +158,7 @@ typedef struct _vlist { #define value_cell(var) ((var)->value) #define function_cell(var) (COMMAND *)((var)->value) #define array_cell(var) (ARRAY *)((var)->value) +#define assoc_cell(var) (HASH_TABLE *)((var)->value) #define var_isnull(var) ((var)->value == 0) #define var_isset(var) ((var)->value != 0) @@ -155,6 +167,7 @@ typedef struct _vlist { #define var_setvalue(var, str) ((var)->value = (str)) #define var_setfunc(var, func) ((var)->value = (char *)(func)) #define var_setarray(var, arr) ((var)->value = (char *)(arr)) +#define var_setassoc(var, arr) ((var)->value = (char *)(arr)) /* Make VAR be auto-exported. */ #define set_auto_export(var) \ @@ -314,6 +327,9 @@ extern void print_var_function __P((SHELL_VAR *)); extern SHELL_VAR *make_new_array_variable __P((char *)); extern SHELL_VAR *make_local_array_variable __P((char *)); +extern SHELL_VAR *make_new_assoc_variable __P((char *)); +extern SHELL_VAR *make_local_assoc_variable __P((char *)); + extern void set_pipestatus_array __P((int *, int)); #endif @@ -323,6 +339,10 @@ extern void set_pipestatus_from_exit __P((int)); is one of the special ones where something special happens. */ extern void stupidly_hack_special_variables __P((char *)); +/* Reinitialize some special variables that have external effects upon unset + when the shell reinitializes itself. */ +extern void reinit_special_variables __P((void)); + extern int get_random_number __P((void)); /* The `special variable' functions that get called when a particular diff --git a/version.c b/version.c index 0a8173f89..b97fa0697 100644 --- a/version.c +++ b/version.c @@ -1,22 +1,22 @@ /* version.c -- distribution and version numbers. */ -/* Copyright (C) 1989-2005 Free Software Foundation, Inc. +/* Copyright (C) 1989-2009 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. + 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #include @@ -33,18 +33,21 @@ extern char *shell_name; /* Defines from version.h */ -const char *dist_version = DISTVERSION; -int patch_level = PATCHLEVEL; -int build_version = BUILDVERSION; +const char * const dist_version = DISTVERSION; +const int patch_level = PATCHLEVEL; +const int build_version = BUILDVERSION; #ifdef RELSTATUS -const char *release_status = RELSTATUS; +const char * const release_status = RELSTATUS; #else -const char *release_status = (char *)0; +const char * const release_status = (char *)0; #endif -const char *sccs_version = SCCSVERSION; +const char * const sccs_version = SCCSVERSION; + +const char * const bash_copyright = N_("Copyright (C) 2009 Free Software Foundation, Inc."); +const char * const bash_license = N_("License GPLv3+: GNU GPL version 3 or later \n"); /* If == 31, shell compatible with bash-3.1, == 32 with bash-3.2, and so on */ -int shell_compatibility_level = 32; +int shell_compatibility_level = DEFAULT_COMPAT_LEVEL; /* Functions for getting, setting, and displaying the shell version. */ @@ -80,7 +83,12 @@ void show_shell_version (extended) int extended; { - printf ("GNU bash, version %s (%s)\n", shell_version_string (), MACHTYPE); + printf (_("GNU bash, version %s (%s)\n"), shell_version_string (), MACHTYPE); if (extended) - printf (_("Copyright (C) 2007 Free Software Foundation, Inc.\n")); + { + printf ("%s\n", _(bash_copyright)); + printf ("%s\n", _(bash_license)); + printf (_("This is free software; you are free to change and redistribute it.\n")); + printf (_("There is NO WARRANTY, to the extent permitted by law.\n")); + } } diff --git a/xmalloc.c b/xmalloc.c index 93d192810..58c337e99 100644 --- a/xmalloc.c +++ b/xmalloc.c @@ -1,23 +1,22 @@ /* xmalloc.c -- safe versions of malloc and realloc */ -/* Copyright (C) 1991 Free Software Foundation, Inc. +/* Copyright (C) 1991-2009 Free Software Foundation, Inc. - This file is part of GNU Readline, a library for reading lines - of text with interactive input and history editing. + This file is part of GNU Bash, the GNU Bourne Again SHell. - Readline 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Readline 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. + 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 Readline; see the file COPYING. If not, write to the Free - Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ + along with Bash. If not, see . +*/ #if defined (HAVE_CONFIG_H) #include diff --git a/xmalloc.h b/xmalloc.h index 5ae8294ce..bea71fdd6 100644 --- a/xmalloc.h +++ b/xmalloc.h @@ -1,22 +1,22 @@ /* xmalloc.h -- defines for the `x' memory allocation functions */ -/* Copyright (C) 2001 Free Software Foundation, Inc. +/* Copyright (C) 2001-2009 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 free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - Bash is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. + 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. */ + You should have received a copy of the GNU General Public License + along with Bash. If not, see . +*/ #if !defined (_XMALLOC_H_) #define _XMALLOC_H_ diff --git a/y.tab.c b/y.tab.c index f8db50d28..7fbd86e79 100644 --- a/y.tab.c +++ b/y.tab.c @@ -1,50 +1,169 @@ +/* A Bison parser, made by GNU Bison 2.3. */ -/* A Bison parser, made from /Users/chet/src/bash/src/parse.y - by GNU Bison version 1.28 */ - -#define YYBISON 1 /* Identify Bison output. */ - -#define IF 257 -#define THEN 258 -#define ELSE 259 -#define ELIF 260 -#define FI 261 -#define CASE 262 -#define ESAC 263 -#define FOR 264 -#define SELECT 265 -#define WHILE 266 -#define UNTIL 267 -#define DO 268 -#define DONE 269 -#define FUNCTION 270 -#define COND_START 271 -#define COND_END 272 -#define COND_ERROR 273 -#define IN 274 -#define BANG 275 -#define TIME 276 -#define TIMEOPT 277 -#define WORD 278 -#define ASSIGNMENT_WORD 279 -#define NUMBER 280 -#define ARITH_CMD 281 -#define ARITH_FOR_EXPRS 282 -#define COND_CMD 283 -#define AND_AND 284 -#define OR_OR 285 -#define GREATER_GREATER 286 -#define LESS_LESS 287 -#define LESS_AND 288 -#define LESS_LESS_LESS 289 -#define GREATER_AND 290 -#define SEMI_SEMI 291 -#define LESS_LESS_MINUS 292 -#define AND_GREATER 293 -#define LESS_GREATER 294 -#define GREATER_BAR 295 -#define yacc_EOF 296 +/* Skeleton implementation for Bison's Yacc-like parsers in C + Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 + 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., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. */ + +/* As a special exception, you may create a larger work that contains + part or all of the Bison parser skeleton and distribute that work + under terms of your choice, so long as that work isn't itself a + parser generator using the skeleton or a modified version thereof + as a parser skeleton. Alternatively, if you modify or redistribute + the parser skeleton itself, you may (at your option) remove this + special exception, which will cause the skeleton and the resulting + Bison output files to be licensed under the GNU General Public + License without this special exception. + + This special exception was added by the Free Software Foundation in + version 2.2 of Bison. */ + +/* C LALR(1) parser skeleton written by Richard Stallman, by + simplifying the original so-called "semantic" parser. */ + +/* All symbols defined below should begin with yy or YY, to avoid + infringing on user name space. This should be done even for local + variables, as they might otherwise be expanded by user macros. + There are some unavoidable exceptions within include files to + define necessary library symbols; they are noted "INFRINGES ON + USER NAME SPACE" below. */ + +/* Identify Bison output. */ +#define YYBISON 1 + +/* Bison version. */ +#define YYBISON_VERSION "2.3" + +/* Skeleton name. */ +#define YYSKELETON_NAME "yacc.c" + +/* Pure parsers. */ +#define YYPURE 0 + +/* Using locations. */ +#define YYLSP_NEEDED 0 + + + +/* Tokens. */ +#ifndef YYTOKENTYPE +# define YYTOKENTYPE + /* Put the tokens into the symbol table, so that GDB and other debuggers + know about them. */ + enum yytokentype { + IF = 258, + THEN = 259, + ELSE = 260, + ELIF = 261, + FI = 262, + CASE = 263, + ESAC = 264, + FOR = 265, + SELECT = 266, + WHILE = 267, + UNTIL = 268, + DO = 269, + DONE = 270, + FUNCTION = 271, + COPROC = 272, + COND_START = 273, + COND_END = 274, + COND_ERROR = 275, + IN = 276, + BANG = 277, + TIME = 278, + TIMEOPT = 279, + WORD = 280, + ASSIGNMENT_WORD = 281, + NUMBER = 282, + ARITH_CMD = 283, + ARITH_FOR_EXPRS = 284, + COND_CMD = 285, + AND_AND = 286, + OR_OR = 287, + GREATER_GREATER = 288, + LESS_LESS = 289, + LESS_AND = 290, + LESS_LESS_LESS = 291, + GREATER_AND = 292, + SEMI_SEMI = 293, + SEMI_AND = 294, + SEMI_SEMI_AND = 295, + LESS_LESS_MINUS = 296, + AND_GREATER = 297, + AND_GREATER_GREATER = 298, + LESS_GREATER = 299, + GREATER_BAR = 300, + BAR_AND = 301, + yacc_EOF = 302 + }; +#endif +/* Tokens. */ +#define IF 258 +#define THEN 259 +#define ELSE 260 +#define ELIF 261 +#define FI 262 +#define CASE 263 +#define ESAC 264 +#define FOR 265 +#define SELECT 266 +#define WHILE 267 +#define UNTIL 268 +#define DO 269 +#define DONE 270 +#define FUNCTION 271 +#define COPROC 272 +#define COND_START 273 +#define COND_END 274 +#define COND_ERROR 275 +#define IN 276 +#define BANG 277 +#define TIME 278 +#define TIMEOPT 279 +#define WORD 280 +#define ASSIGNMENT_WORD 281 +#define NUMBER 282 +#define ARITH_CMD 283 +#define ARITH_FOR_EXPRS 284 +#define COND_CMD 285 +#define AND_AND 286 +#define OR_OR 287 +#define GREATER_GREATER 288 +#define LESS_LESS 289 +#define LESS_AND 290 +#define LESS_LESS_LESS 291 +#define GREATER_AND 292 +#define SEMI_SEMI 293 +#define SEMI_AND 294 +#define SEMI_SEMI_AND 295 +#define LESS_LESS_MINUS 296 +#define AND_GREATER 297 +#define AND_GREATER_GREATER 298 +#define LESS_GREATER 299 +#define GREATER_BAR 300 +#define BAR_AND 301 +#define yacc_EOF 302 + + + + +/* Copy the first part of user declarations. */ #line 21 "/Users/chet/src/bash/src/parse.y" #include "config.h" @@ -143,7 +262,7 @@ extern int extended_glob; extern int eof_encountered; extern int no_line_editing, running_under_emacs; extern int current_command_number; -extern int sourcelevel; +extern int sourcelevel, parse_and_execute_level; extern int posixly_correct; extern int last_command_exit_value; extern char *shell_name, *current_host_name; @@ -176,6 +295,7 @@ static int yy_readline_unget __P((int)); static int yy_string_get __P((void)); static int yy_string_unget __P((int)); +static void rewind_input_string __P((void)); static int yy_stream_get __P((void)); static int yy_stream_unget __P((int)); @@ -198,6 +318,7 @@ 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)); +static char *parse_comsub __P((int, int, int, int *, int)); #if defined (ARRAY_VARS) static char *parse_compound_assignment __P((int *)); #endif @@ -279,6 +400,12 @@ static char *current_decoded_prompt; /* The number of lines read from input while creating the current command. */ int current_command_line_count; +/* The token that currently denotes the end of parse. */ +int shell_eof_token; + +/* The token currently being read. */ +int current_token; + /* 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]; @@ -303,6 +430,19 @@ static int function_bstart; /* The line number in a script at which an arithmetic for command starts. */ static int arith_for_lineno; +/* The current parser state. */ +static int parser_state; + +/* 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 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. */ @@ -319,8 +459,29 @@ static WORD_DESC *word_desc_to_read; static REDIRECTEE redir; -#line 295 "/Users/chet/src/bash/src/parse.y" -typedef union { + +/* Enabling traces. */ +#ifndef YYDEBUG +# define YYDEBUG 0 +#endif + +/* Enabling verbose error messages. */ +#ifdef YYERROR_VERBOSE +# undef YYERROR_VERBOSE +# define YYERROR_VERBOSE 1 +#else +# define YYERROR_VERBOSE 0 +#endif + +/* Enabling the token table. */ +#ifndef YYTOKEN_TABLE +# define YYTOKEN_TABLE 0 +#endif + +#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED +typedef union YYSTYPE +#line 316 "/Users/chet/src/bash/src/parse.y" +{ WORD_DESC *word; /* the word that we read. */ int number; /* the number that we read. */ WORD_LIST *word_list; @@ -328,716 +489,1395 @@ typedef union { REDIRECT *redirect; ELEMENT element; PATTERN_LIST *pattern; -} YYSTYPE; -#include +} +/* Line 187 of yacc.c. */ +#line 495 "y.tab.c" + YYSTYPE; +# define yystype YYSTYPE /* obsolescent; will be withdrawn */ +# define YYSTYPE_IS_DECLARED 1 +# define YYSTYPE_IS_TRIVIAL 1 +#endif + + + +/* Copy the second part of user declarations. */ + + +/* Line 216 of yacc.c. */ +#line 508 "y.tab.c" -#ifndef __cplusplus -#ifndef __STDC__ -#define const +#ifdef short +# undef short #endif + +#ifdef YYTYPE_UINT8 +typedef YYTYPE_UINT8 yytype_uint8; +#else +typedef unsigned char yytype_uint8; #endif +#ifdef YYTYPE_INT8 +typedef YYTYPE_INT8 yytype_int8; +#elif (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +typedef signed char yytype_int8; +#else +typedef short int yytype_int8; +#endif +#ifdef YYTYPE_UINT16 +typedef YYTYPE_UINT16 yytype_uint16; +#else +typedef unsigned short int yytype_uint16; +#endif -#define YYFINAL 302 -#define YYFLAG -32768 -#define YYNTBASE 54 - -#define YYTRANSLATE(x) ((unsigned)(x) <= 296 ? yytranslate[x] : 90) - -static const char yytranslate[] = { 0, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 44, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 42, 2, 52, - 53, 2, 2, 2, 49, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 43, 48, - 2, 47, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 50, 46, 51, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 1, 3, 4, 5, 6, - 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, - 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, - 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, - 37, 38, 39, 40, 41, 45 -}; +#ifdef YYTYPE_INT16 +typedef YYTYPE_INT16 yytype_int16; +#else +typedef short int yytype_int16; +#endif -#if YYDEBUG != 0 -static const short yyprhs[] = { 0, - 0, 3, 5, 8, 10, 12, 15, 18, 21, 25, - 29, 32, 36, 39, 43, 46, 50, 53, 57, 60, - 64, 67, 71, 74, 78, 81, 85, 88, 92, 95, - 99, 102, 106, 109, 112, 116, 118, 120, 122, 124, - 127, 129, 132, 134, 136, 139, 141, 143, 145, 151, - 157, 159, 161, 163, 165, 167, 169, 171, 178, 185, - 193, 201, 212, 223, 233, 243, 251, 259, 265, 271, - 278, 285, 293, 301, 312, 323, 330, 338, 345, 351, - 358, 363, 365, 368, 372, 378, 386, 393, 397, 399, - 403, 408, 415, 421, 423, 426, 431, 436, 442, 448, - 451, 455, 457, 461, 464, 466, 469, 473, 477, 481, - 486, 491, 496, 501, 506, 508, 510, 512, 514, 516, - 518, 519, 522, 524, 527, 530, 535, 540, 544, 548, - 550, 552, 555, 558, 562, 566, 569, 574, 576, 578 -}; +#ifndef YYSIZE_T +# ifdef __SIZE_TYPE__ +# define YYSIZE_T __SIZE_TYPE__ +# elif defined size_t +# define YYSIZE_T size_t +# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +# include /* INFRINGES ON USER NAME SPACE */ +# define YYSIZE_T size_t +# else +# define YYSIZE_T unsigned int +# endif +#endif -static const short yyrhs[] = { 85, - 82, 0, 44, 0, 1, 44, 0, 45, 0, 24, - 0, 55, 24, 0, 47, 24, 0, 48, 24, 0, - 26, 47, 24, 0, 26, 48, 24, 0, 32, 24, - 0, 26, 32, 24, 0, 33, 24, 0, 26, 33, - 24, 0, 35, 24, 0, 26, 35, 24, 0, 34, - 26, 0, 26, 34, 26, 0, 36, 26, 0, 26, - 36, 26, 0, 34, 24, 0, 26, 34, 24, 0, - 36, 24, 0, 26, 36, 24, 0, 38, 24, 0, - 26, 38, 24, 0, 36, 49, 0, 26, 36, 49, - 0, 34, 49, 0, 26, 34, 49, 0, 39, 24, - 0, 26, 40, 24, 0, 40, 24, 0, 41, 24, - 0, 26, 41, 24, 0, 24, 0, 25, 0, 56, - 0, 56, 0, 58, 56, 0, 57, 0, 59, 57, - 0, 59, 0, 61, 0, 61, 58, 0, 66, 0, - 62, 0, 65, 0, 12, 79, 14, 79, 15, 0, - 13, 79, 14, 79, 15, 0, 64, 0, 69, 0, - 68, 0, 70, 0, 71, 0, 72, 0, 63, 0, - 10, 24, 84, 14, 79, 15, 0, 10, 24, 84, - 50, 79, 51, 0, 10, 24, 43, 84, 14, 79, - 15, 0, 10, 24, 43, 84, 50, 79, 51, 0, - 10, 24, 84, 20, 55, 83, 84, 14, 79, 15, - 0, 10, 24, 84, 20, 55, 83, 84, 50, 79, - 51, 0, 10, 24, 84, 20, 83, 84, 14, 79, - 15, 0, 10, 24, 84, 20, 83, 84, 50, 79, - 51, 0, 10, 28, 83, 84, 14, 79, 15, 0, - 10, 28, 83, 84, 50, 79, 51, 0, 10, 28, - 14, 79, 15, 0, 10, 28, 50, 79, 51, 0, - 11, 24, 84, 14, 78, 15, 0, 11, 24, 84, - 50, 78, 51, 0, 11, 24, 43, 84, 14, 78, - 15, 0, 11, 24, 43, 84, 50, 78, 51, 0, - 11, 24, 84, 20, 55, 83, 84, 14, 78, 15, - 0, 11, 24, 84, 20, 55, 83, 84, 50, 78, - 51, 0, 8, 24, 84, 20, 84, 9, 0, 8, - 24, 84, 20, 76, 84, 9, 0, 8, 24, 84, - 20, 74, 9, 0, 24, 52, 53, 84, 67, 0, - 16, 24, 52, 53, 84, 67, 0, 16, 24, 84, - 67, 0, 61, 0, 61, 58, 0, 52, 79, 53, - 0, 3, 79, 4, 79, 7, 0, 3, 79, 4, - 79, 5, 79, 7, 0, 3, 79, 4, 79, 73, - 7, 0, 50, 79, 51, 0, 27, 0, 17, 29, - 18, 0, 6, 79, 4, 79, 0, 6, 79, 4, - 79, 5, 79, 0, 6, 79, 4, 79, 73, 0, - 75, 0, 76, 75, 0, 84, 77, 53, 79, 0, - 84, 77, 53, 84, 0, 84, 52, 77, 53, 79, - 0, 84, 52, 77, 53, 84, 0, 75, 37, 0, - 76, 75, 37, 0, 24, 0, 77, 46, 24, 0, - 84, 80, 0, 78, 0, 84, 81, 0, 81, 44, - 84, 0, 81, 42, 84, 0, 81, 43, 84, 0, - 81, 30, 84, 81, 0, 81, 31, 84, 81, 0, - 81, 42, 84, 81, 0, 81, 43, 84, 81, 0, - 81, 44, 84, 81, 0, 87, 0, 44, 0, 45, - 0, 44, 0, 43, 0, 45, 0, 0, 84, 44, - 0, 86, 0, 86, 42, 0, 86, 43, 0, 86, - 30, 84, 86, 0, 86, 31, 84, 86, 0, 86, - 42, 86, 0, 86, 43, 86, 0, 87, 0, 88, - 0, 21, 88, 0, 89, 88, 0, 89, 21, 88, - 0, 21, 89, 88, 0, 89, 83, 0, 88, 46, - 84, 88, 0, 60, 0, 22, 0, 22, 23, 0 -}; +#define YYSIZE_MAXIMUM ((YYSIZE_T) -1) +#ifndef YY_ +# if YYENABLE_NLS +# if ENABLE_NLS +# include /* INFRINGES ON USER NAME SPACE */ +# define YY_(msgid) dgettext ("bison-runtime", msgid) +# endif +# endif +# ifndef YY_ +# define YY_(msgid) msgid +# endif #endif -#if YYDEBUG != 0 -static const short yyrline[] = { 0, - 346, 355, 362, 377, 387, 389, 393, 398, 403, 408, - 413, 418, 423, 429, 435, 440, 445, 450, 455, 460, - 465, 470, 475, 480, 485, 492, 499, 504, 509, 514, - 519, 524, 529, 534, 539, 546, 548, 550, 554, 558, - 569, 571, 575, 577, 579, 595, 599, 601, 603, 605, - 607, 609, 611, 613, 615, 617, 619, 623, 628, 633, - 638, 643, 648, 653, 658, 665, 670, 675, 680, 687, - 692, 697, 702, 707, 712, 719, 724, 729, 736, 739, - 742, 747, 749, 780, 787, 789, 791, 796, 800, 804, - 808, 810, 812, 816, 817, 821, 823, 825, 827, 831, - 832, 836, 838, 847, 855, 856, 862, 863, 870, 874, - 876, 878, 885, 887, 889, 893, 894, 897, 899, 901, - 905, 906, 915, 921, 930, 938, 940, 942, 949, 952, - 956, 958, 964, 970, 976, 982, 1002, 1005, 1009, 1011 -}; +/* Suppress unused-variable warnings by "using" E. */ +#if ! defined lint || defined __GNUC__ +# define YYUSE(e) ((void) (e)) +#else +# define YYUSE(e) /* empty */ #endif +/* Identity function, used to suppress warnings about constant conditions. */ +#ifndef lint +# define YYID(n) (n) +#else +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static int +YYID (int i) +#else +static int +YYID (i) + int i; +#endif +{ + return i; +} +#endif + +#if ! defined yyoverflow || YYERROR_VERBOSE + +/* The parser invokes alloca or malloc; define the necessary symbols. */ + +# ifdef YYSTACK_USE_ALLOCA +# if YYSTACK_USE_ALLOCA +# ifdef __GNUC__ +# define YYSTACK_ALLOC __builtin_alloca +# elif defined __BUILTIN_VA_ARG_INCR +# include /* INFRINGES ON USER NAME SPACE */ +# elif defined _AIX +# define YYSTACK_ALLOC __alloca +# elif defined _MSC_VER +# include /* INFRINGES ON USER NAME SPACE */ +# define alloca _alloca +# else +# define YYSTACK_ALLOC alloca +# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +# include /* INFRINGES ON USER NAME SPACE */ +# ifndef _STDLIB_H +# define _STDLIB_H 1 +# endif +# endif +# endif +# endif +# endif + +# ifdef YYSTACK_ALLOC + /* Pacify GCC's `empty if-body' warning. */ +# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0)) +# ifndef YYSTACK_ALLOC_MAXIMUM + /* The OS might guarantee only one guard page at the bottom of the stack, + and a page size can be as small as 4096 bytes. So we cannot safely + invoke alloca (N) if N exceeds 4096. Use a slightly smaller number + to allow for a few compiler-allocated temporary stack slots. */ +# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */ +# endif +# else +# define YYSTACK_ALLOC YYMALLOC +# define YYSTACK_FREE YYFREE +# ifndef YYSTACK_ALLOC_MAXIMUM +# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM +# endif +# if (defined __cplusplus && ! defined _STDLIB_H \ + && ! ((defined YYMALLOC || defined malloc) \ + && (defined YYFREE || defined free))) +# include /* INFRINGES ON USER NAME SPACE */ +# ifndef _STDLIB_H +# define _STDLIB_H 1 +# endif +# endif +# ifndef YYMALLOC +# define YYMALLOC malloc +# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ +# endif +# endif +# ifndef YYFREE +# define YYFREE free +# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +void free (void *); /* INFRINGES ON USER NAME SPACE */ +# endif +# endif +# endif +#endif /* ! defined yyoverflow || YYERROR_VERBOSE */ + + +#if (! defined yyoverflow \ + && (! defined __cplusplus \ + || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) + +/* A type that is properly aligned for any stack member. */ +union yyalloc +{ + yytype_int16 yyss; + YYSTYPE yyvs; + }; + +/* The size of the maximum gap between one aligned stack and the next. */ +# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) + +/* The size of an array large to enough to hold all stacks, each with + N elements. */ +# define YYSTACK_BYTES(N) \ + ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \ + + YYSTACK_GAP_MAXIMUM) + +/* Copy COUNT objects from FROM to TO. The source and destination do + not overlap. */ +# ifndef YYCOPY +# if defined __GNUC__ && 1 < __GNUC__ +# define YYCOPY(To, From, Count) \ + __builtin_memcpy (To, From, (Count) * sizeof (*(From))) +# else +# define YYCOPY(To, From, Count) \ + do \ + { \ + YYSIZE_T yyi; \ + for (yyi = 0; yyi < (Count); yyi++) \ + (To)[yyi] = (From)[yyi]; \ + } \ + while (YYID (0)) +# endif +# endif + +/* Relocate STACK from its old location to the new one. The + local variables YYSIZE and YYSTACKSIZE give the old and new number of + elements in the stack, and YYPTR gives the new location of the + stack. Advance YYPTR to a properly aligned location for the next + stack. */ +# define YYSTACK_RELOCATE(Stack) \ + do \ + { \ + YYSIZE_T yynewbytes; \ + YYCOPY (&yyptr->Stack, Stack, yysize); \ + Stack = &yyptr->Stack; \ + yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ + yyptr += yynewbytes / sizeof (*yyptr); \ + } \ + while (YYID (0)) -#if YYDEBUG != 0 || defined (YYERROR_VERBOSE) - -static const char * const yytname[] = { "$","error","$undefined.","IF","THEN", -"ELSE","ELIF","FI","CASE","ESAC","FOR","SELECT","WHILE","UNTIL","DO","DONE", -"FUNCTION","COND_START","COND_END","COND_ERROR","IN","BANG","TIME","TIMEOPT", -"WORD","ASSIGNMENT_WORD","NUMBER","ARITH_CMD","ARITH_FOR_EXPRS","COND_CMD","AND_AND", -"OR_OR","GREATER_GREATER","LESS_LESS","LESS_AND","LESS_LESS_LESS","GREATER_AND", -"SEMI_SEMI","LESS_LESS_MINUS","AND_GREATER","LESS_GREATER","GREATER_BAR","'&'", -"';'","'\\n'","yacc_EOF","'|'","'>'","'<'","'-'","'{'","'}'","'('","')'","inputunit", -"word_list","redirection","simple_command_element","redirection_list","simple_command", -"command","shell_command","for_command","arith_for_command","select_command", -"case_command","function_def","function_body","subshell","if_command","group_command", -"arith_command","cond_command","elif_clause","case_clause","pattern_list","case_clause_sequence", -"pattern","list","compound_list","list0","list1","simple_list_terminator","list_terminator", -"newline_list","simple_list","simple_list1","pipeline_command","pipeline","timespec", NULL -}; #endif -static const short yyr1[] = { 0, - 54, 54, 54, 54, 55, 55, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 57, 57, 57, 58, 58, - 59, 59, 60, 60, 60, 60, 61, 61, 61, 61, - 61, 61, 61, 61, 61, 61, 61, 62, 62, 62, - 62, 62, 62, 62, 62, 63, 63, 63, 63, 64, - 64, 64, 64, 64, 64, 65, 65, 65, 66, 66, - 66, 67, 67, 68, 69, 69, 69, 70, 71, 72, - 73, 73, 73, 74, 74, 75, 75, 75, 75, 76, - 76, 77, 77, 78, 79, 79, 80, 80, 80, 81, - 81, 81, 81, 81, 81, 82, 82, 83, 83, 83, - 84, 84, 85, 85, 85, 86, 86, 86, 86, 86, - 87, 87, 87, 87, 87, 87, 88, 88, 89, 89 +/* YYFINAL -- State number of the termination state. */ +#define YYFINAL 102 +/* YYLAST -- Last index in YYTABLE. */ +#define YYLAST 728 + +/* YYNTOKENS -- Number of terminals. */ +#define YYNTOKENS 59 +/* YYNNTS -- Number of nonterminals. */ +#define YYNNTS 38 +/* YYNRULES -- Number of rules. */ +#define YYNRULES 153 +/* YYNRULES -- Number of states. */ +#define YYNSTATES 319 + +/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ +#define YYUNDEFTOK 2 +#define YYMAXUTOK 302 + +#define YYTRANSLATE(YYX) \ + ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) + +/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ +static const yytype_uint8 yytranslate[] = +{ + 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 49, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 47, 2, + 57, 58, 2, 2, 2, 54, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 48, + 53, 2, 52, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 55, 51, 56, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 50 }; -static const short yyr2[] = { 0, - 2, 1, 2, 1, 1, 2, 2, 2, 3, 3, - 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, - 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, - 2, 3, 2, 2, 3, 1, 1, 1, 1, 2, - 1, 2, 1, 1, 2, 1, 1, 1, 5, 5, - 1, 1, 1, 1, 1, 1, 1, 6, 6, 7, - 7, 10, 10, 9, 9, 7, 7, 5, 5, 6, - 6, 7, 7, 10, 10, 6, 7, 6, 5, 6, - 4, 1, 2, 3, 5, 7, 6, 3, 1, 3, - 4, 6, 5, 1, 2, 4, 4, 5, 5, 2, - 3, 1, 3, 2, 1, 2, 3, 3, 3, 4, - 4, 4, 4, 4, 1, 1, 1, 1, 1, 1, - 0, 2, 1, 2, 2, 4, 4, 3, 3, 1, - 1, 2, 2, 3, 3, 2, 4, 1, 1, 2 +#if YYDEBUG +/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in + YYRHS. */ +static const yytype_uint16 yyprhs[] = +{ + 0, 0, 3, 6, 8, 11, 13, 15, 18, 21, + 24, 28, 32, 35, 39, 42, 46, 49, 53, 56, + 60, 63, 67, 70, 74, 77, 81, 84, 88, 91, + 95, 98, 102, 105, 108, 112, 115, 118, 122, 124, + 126, 128, 130, 133, 135, 138, 140, 142, 145, 147, + 149, 151, 153, 159, 165, 167, 169, 171, 173, 175, + 177, 179, 186, 193, 201, 209, 220, 231, 241, 251, + 259, 267, 273, 279, 286, 293, 301, 309, 320, 331, + 338, 346, 353, 359, 366, 371, 373, 376, 380, 383, + 387, 391, 396, 399, 405, 413, 420, 424, 426, 430, + 435, 442, 448, 450, 453, 458, 463, 469, 475, 478, + 482, 485, 489, 492, 496, 498, 502, 505, 507, 510, + 514, 518, 522, 527, 532, 537, 542, 547, 549, 551, + 553, 555, 557, 559, 560, 563, 565, 568, 571, 576, + 581, 585, 589, 591, 593, 596, 599, 603, 607, 610, + 615, 620, 622, 624 }; -static const short yydefact[] = { 0, - 0, 121, 0, 0, 0, 121, 121, 0, 0, 0, - 139, 36, 37, 0, 89, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 4, 0, 0, 121, 121, - 38, 41, 43, 138, 44, 47, 57, 51, 48, 46, - 53, 52, 54, 55, 56, 0, 123, 130, 131, 0, - 3, 105, 0, 0, 121, 121, 0, 121, 0, 0, - 121, 0, 132, 0, 140, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 11, 13, 21, 17, - 29, 15, 23, 19, 27, 25, 31, 33, 34, 7, - 8, 0, 0, 36, 42, 39, 45, 116, 117, 1, - 121, 121, 124, 125, 121, 0, 119, 118, 120, 136, - 133, 121, 122, 104, 106, 115, 0, 121, 0, 121, - 121, 121, 121, 0, 121, 121, 0, 0, 90, 135, - 121, 12, 14, 22, 18, 30, 16, 24, 20, 28, - 26, 32, 35, 9, 10, 88, 84, 40, 0, 0, - 128, 129, 0, 134, 0, 121, 121, 121, 121, 121, - 121, 0, 121, 0, 121, 0, 0, 0, 0, 121, - 0, 121, 0, 0, 121, 82, 81, 0, 126, 127, - 0, 0, 137, 121, 121, 85, 0, 0, 0, 108, - 109, 107, 0, 94, 121, 0, 121, 121, 0, 5, - 0, 121, 0, 68, 69, 121, 121, 121, 121, 0, - 0, 0, 0, 49, 50, 0, 83, 79, 0, 0, - 87, 110, 111, 112, 113, 114, 78, 100, 95, 0, - 76, 102, 0, 0, 0, 0, 58, 6, 121, 0, - 59, 0, 0, 0, 0, 70, 0, 121, 71, 80, - 86, 121, 121, 121, 121, 101, 77, 0, 0, 121, - 60, 61, 0, 121, 121, 66, 67, 72, 73, 0, - 91, 0, 0, 0, 121, 103, 96, 97, 121, 121, - 0, 0, 121, 121, 121, 93, 98, 99, 0, 0, - 64, 65, 0, 0, 92, 62, 63, 74, 75, 0, - 0, 0 +/* YYRHS -- A `-1'-separated list of the rules' RHS. */ +static const yytype_int8 yyrhs[] = +{ + 60, 0, -1, 92, 89, -1, 49, -1, 1, 49, + -1, 50, -1, 25, -1, 61, 25, -1, 52, 25, + -1, 53, 25, -1, 27, 52, 25, -1, 27, 53, + 25, -1, 33, 25, -1, 27, 33, 25, -1, 34, + 25, -1, 27, 34, 25, -1, 36, 25, -1, 27, + 36, 25, -1, 35, 27, -1, 27, 35, 27, -1, + 37, 27, -1, 27, 37, 27, -1, 35, 25, -1, + 27, 35, 25, -1, 37, 25, -1, 27, 37, 25, + -1, 41, 25, -1, 27, 41, 25, -1, 37, 54, + -1, 27, 37, 54, -1, 35, 54, -1, 27, 35, + 54, -1, 42, 25, -1, 43, 25, -1, 27, 44, + 25, -1, 44, 25, -1, 45, 25, -1, 27, 45, + 25, -1, 25, -1, 26, -1, 62, -1, 62, -1, + 64, 62, -1, 63, -1, 65, 63, -1, 65, -1, + 67, -1, 67, 64, -1, 72, -1, 75, -1, 68, + -1, 71, -1, 12, 86, 14, 86, 15, -1, 13, + 86, 14, 86, 15, -1, 70, -1, 76, -1, 74, + -1, 77, -1, 78, -1, 79, -1, 69, -1, 10, + 25, 91, 14, 86, 15, -1, 10, 25, 91, 55, + 86, 56, -1, 10, 25, 48, 91, 14, 86, 15, + -1, 10, 25, 48, 91, 55, 86, 56, -1, 10, + 25, 91, 21, 61, 90, 91, 14, 86, 15, -1, + 10, 25, 91, 21, 61, 90, 91, 55, 86, 56, + -1, 10, 25, 91, 21, 90, 91, 14, 86, 15, + -1, 10, 25, 91, 21, 90, 91, 55, 86, 56, + -1, 10, 29, 90, 91, 14, 86, 15, -1, 10, + 29, 90, 91, 55, 86, 56, -1, 10, 29, 14, + 86, 15, -1, 10, 29, 55, 86, 56, -1, 11, + 25, 91, 14, 85, 15, -1, 11, 25, 91, 55, + 85, 56, -1, 11, 25, 48, 91, 14, 85, 15, + -1, 11, 25, 48, 91, 55, 85, 56, -1, 11, + 25, 91, 21, 61, 90, 91, 14, 85, 15, -1, + 11, 25, 91, 21, 61, 90, 91, 55, 85, 56, + -1, 8, 25, 91, 21, 91, 9, -1, 8, 25, + 91, 21, 83, 91, 9, -1, 8, 25, 91, 21, + 81, 9, -1, 25, 57, 58, 91, 73, -1, 16, + 25, 57, 58, 91, 73, -1, 16, 25, 91, 73, + -1, 67, -1, 67, 64, -1, 57, 86, 58, -1, + 17, 67, -1, 17, 67, 64, -1, 17, 25, 67, + -1, 17, 25, 67, 64, -1, 17, 65, -1, 3, + 86, 4, 86, 7, -1, 3, 86, 4, 86, 5, + 86, 7, -1, 3, 86, 4, 86, 80, 7, -1, + 55, 86, 56, -1, 28, -1, 18, 30, 19, -1, + 6, 86, 4, 86, -1, 6, 86, 4, 86, 5, + 86, -1, 6, 86, 4, 86, 80, -1, 82, -1, + 83, 82, -1, 91, 84, 58, 86, -1, 91, 84, + 58, 91, -1, 91, 57, 84, 58, 86, -1, 91, + 57, 84, 58, 91, -1, 82, 38, -1, 83, 82, + 38, -1, 82, 39, -1, 83, 82, 39, -1, 82, + 40, -1, 83, 82, 40, -1, 25, -1, 84, 51, + 25, -1, 91, 87, -1, 85, -1, 91, 88, -1, + 88, 49, 91, -1, 88, 47, 91, -1, 88, 48, + 91, -1, 88, 31, 91, 88, -1, 88, 32, 91, + 88, -1, 88, 47, 91, 88, -1, 88, 48, 91, + 88, -1, 88, 49, 91, 88, -1, 94, -1, 49, + -1, 50, -1, 49, -1, 48, -1, 50, -1, -1, + 91, 49, -1, 93, -1, 93, 47, -1, 93, 48, + -1, 93, 31, 91, 93, -1, 93, 32, 91, 93, + -1, 93, 47, 93, -1, 93, 48, 93, -1, 94, + -1, 95, -1, 22, 95, -1, 96, 95, -1, 96, + 22, 95, -1, 22, 96, 95, -1, 96, 90, -1, + 95, 51, 91, 95, -1, 95, 46, 91, 95, -1, + 66, -1, 23, -1, 23, 24, -1 }; -static const short yydefgoto[] = { 300, - 201, 31, 32, 97, 33, 34, 35, 36, 37, 38, - 39, 40, 177, 41, 42, 43, 44, 45, 187, 193, - 194, 195, 234, 52, 53, 114, 115, 100, 110, 54, - 46, 151, 116, 49, 50 +/* YYRLINE[YYN] -- source line where rule number YYN was defined. */ +static const yytype_uint16 yyrline[] = +{ + 0, 369, 369, 380, 389, 404, 414, 416, 420, 425, + 430, 435, 440, 445, 450, 456, 462, 467, 472, 477, + 482, 487, 492, 497, 502, 507, 512, 519, 526, 531, + 536, 541, 546, 551, 556, 561, 566, 571, 578, 580, + 582, 586, 590, 601, 603, 607, 609, 611, 627, 629, + 633, 635, 637, 639, 641, 643, 645, 647, 649, 651, + 653, 657, 662, 667, 672, 677, 682, 687, 692, 699, + 704, 709, 714, 721, 726, 731, 736, 741, 746, 753, + 758, 763, 770, 773, 776, 780, 782, 813, 820, 825, + 842, 847, 864, 871, 873, 875, 880, 884, 888, 892, + 894, 896, 900, 901, 905, 907, 909, 911, 915, 917, + 919, 921, 923, 925, 929, 931, 940, 948, 949, 955, + 956, 963, 967, 969, 971, 978, 980, 982, 986, 987, + 990, 992, 994, 998, 999, 1008, 1021, 1037, 1052, 1054, + 1056, 1063, 1066, 1070, 1072, 1078, 1084, 1090, 1096, 1116, + 1118, 1140, 1144, 1146 }; +#endif -static const short yypact[] = { 274, - -23,-32768, 5, 55, 10,-32768,-32768, 21, 31, 446, - 32, 19,-32768, 553,-32768, 56, 72, -12, 89, -11, - 92, 102, 111, 113,-32768,-32768, 117, 124,-32768,-32768, --32768,-32768, 183,-32768, 202,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768, -13, 134,-32768, 52, 317, --32768,-32768, 148, 360,-32768, 115, 22, 120, 154, 173, - 114, 155, 52, 532,-32768, 140, 180, 181, 101, 182, - 112, 186, 188, 189, 190, 205,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768, 193, 195,-32768,-32768,-32768, 202,-32768,-32768,-32768, --32768,-32768, 403, 403,-32768, 532,-32768,-32768,-32768,-32768, - 52,-32768,-32768,-32768, 221,-32768, -9,-32768, 42,-32768, --32768,-32768,-32768, 61,-32768,-32768, 200, 41,-32768, 52, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 360, 360, - 152, 152, 489, 52, 192,-32768,-32768,-32768,-32768,-32768, --32768, 26,-32768, 127,-32768, 218, 194, 34, 73,-32768, - 215,-32768, 242, 245,-32768, 202,-32768, 41,-32768,-32768, - 403, 403, 52,-32768,-32768,-32768, 254, 360, 360, 360, - 360, 360, 253, 229,-32768, -2,-32768,-32768, 252,-32768, - 151,-32768, 217,-32768,-32768,-32768,-32768,-32768,-32768, 255, - 360, 151, 220,-32768,-32768, 41, 202,-32768, 265, 272, --32768,-32768,-32768, 159, 159, 159,-32768,-32768, 241, 17, --32768,-32768, 256, 36, 266, 232,-32768,-32768,-32768, 74, --32768, 273, 238, 277, 243,-32768, 221,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768, 116, 269,-32768, --32768,-32768, 90,-32768,-32768,-32768,-32768,-32768,-32768, 95, - 197, 360, 360, 360,-32768,-32768,-32768, 360,-32768,-32768, - 282, 251,-32768,-32768,-32768,-32768,-32768, 360, 288, 260, --32768,-32768, 289, 280,-32768,-32768,-32768,-32768,-32768, 305, - 316,-32768 +#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE +/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. + First, the terminals, then, starting at YYNTOKENS, nonterminals. */ +static const char *const yytname[] = +{ + "$end", "error", "$undefined", "IF", "THEN", "ELSE", "ELIF", "FI", + "CASE", "ESAC", "FOR", "SELECT", "WHILE", "UNTIL", "DO", "DONE", + "FUNCTION", "COPROC", "COND_START", "COND_END", "COND_ERROR", "IN", + "BANG", "TIME", "TIMEOPT", "WORD", "ASSIGNMENT_WORD", "NUMBER", + "ARITH_CMD", "ARITH_FOR_EXPRS", "COND_CMD", "AND_AND", "OR_OR", + "GREATER_GREATER", "LESS_LESS", "LESS_AND", "LESS_LESS_LESS", + "GREATER_AND", "SEMI_SEMI", "SEMI_AND", "SEMI_SEMI_AND", + "LESS_LESS_MINUS", "AND_GREATER", "AND_GREATER_GREATER", "LESS_GREATER", + "GREATER_BAR", "BAR_AND", "'&'", "';'", "'\\n'", "yacc_EOF", "'|'", + "'>'", "'<'", "'-'", "'{'", "'}'", "'('", "')'", "$accept", "inputunit", + "word_list", "redirection", "simple_command_element", "redirection_list", + "simple_command", "command", "shell_command", "for_command", + "arith_for_command", "select_command", "case_command", "function_def", + "function_body", "subshell", "coproc", "if_command", "group_command", + "arith_command", "cond_command", "elif_clause", "case_clause", + "pattern_list", "case_clause_sequence", "pattern", "list", + "compound_list", "list0", "list1", "simple_list_terminator", + "list_terminator", "newline_list", "simple_list", "simple_list1", + "pipeline_command", "pipeline", "timespec", 0 }; +#endif -static const short yypgoto[] = {-32768, - 146, -33, 290, 156,-32768,-32768, -119,-32768,-32768,-32768, --32768,-32768, -153,-32768,-32768,-32768,-32768,-32768, 64,-32768, - 141,-32768, 104, -162, -6,-32768, -172,-32768, -52, -28, --32768, 6, 4, -7, 329 +# ifdef YYPRINT +/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to + token YYLEX-NUM. */ +static const yytype_uint16 yytoknum[] = +{ + 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 38, 59, 10, + 302, 124, 62, 60, 45, 123, 125, 40, 41 +}; +# endif + +/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ +static const yytype_uint8 yyr1[] = +{ + 0, 59, 60, 60, 60, 60, 61, 61, 62, 62, + 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, + 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, + 62, 62, 62, 62, 62, 62, 62, 62, 63, 63, + 63, 64, 64, 65, 65, 66, 66, 66, 66, 66, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 68, 68, 68, 68, 68, 68, 68, 68, 69, + 69, 69, 69, 70, 70, 70, 70, 70, 70, 71, + 71, 71, 72, 72, 72, 73, 73, 74, 75, 75, + 75, 75, 75, 76, 76, 76, 77, 78, 79, 80, + 80, 80, 81, 81, 82, 82, 82, 82, 83, 83, + 83, 83, 83, 83, 84, 84, 85, 86, 86, 87, + 87, 87, 88, 88, 88, 88, 88, 88, 89, 89, + 90, 90, 90, 91, 91, 92, 92, 92, 93, 93, + 93, 93, 93, 94, 94, 94, 94, 94, 94, 95, + 95, 95, 96, 96 }; +/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ +static const yytype_uint8 yyr2[] = +{ + 0, 2, 2, 1, 2, 1, 1, 2, 2, 2, + 3, 3, 2, 3, 2, 3, 2, 3, 2, 3, + 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, + 2, 3, 2, 2, 3, 2, 2, 3, 1, 1, + 1, 1, 2, 1, 2, 1, 1, 2, 1, 1, + 1, 1, 5, 5, 1, 1, 1, 1, 1, 1, + 1, 6, 6, 7, 7, 10, 10, 9, 9, 7, + 7, 5, 5, 6, 6, 7, 7, 10, 10, 6, + 7, 6, 5, 6, 4, 1, 2, 3, 2, 3, + 3, 4, 2, 5, 7, 6, 3, 1, 3, 4, + 6, 5, 1, 2, 4, 4, 5, 5, 2, 3, + 2, 3, 2, 3, 1, 3, 2, 1, 2, 3, + 3, 3, 4, 4, 4, 4, 4, 1, 1, 1, + 1, 1, 1, 0, 2, 1, 2, 2, 4, 4, + 3, 3, 1, 1, 2, 2, 3, 3, 2, 4, + 4, 1, 1, 2 +}; -#define YYLAST 601 - - -static const short yytable[] = { 59, - 60, 96, 63, 48, 122, 47, 231, 210, 176, 213, - 161, 79, 83, 80, 84, 222, 223, 224, 225, 226, - 51, 232, 92, 93, 218, 257, 117, 119, 55, 124, - 98, 99, 128, 58, 113, 120, 81, 85, 247, 197, - 232, 113, 111, 2, 61, 244, 245, 206, 3, 233, - 4, 5, 6, 7, 65, 163, 130, 9, 176, 62, - 113, 164, 250, 148, 107, 108, 109, 15, 233, 113, - 66, 121, 149, 150, 170, 198, 153, 113, 56, 77, - 171, 259, 57, 207, 113, 113, 208, 264, 260, 162, - 29, 165, 30, 168, 169, 78, 176, 105, 154, 224, - 225, 226, 178, 279, 113, 155, 48, 48, 283, 152, - 172, 202, 82, 166, 167, 86, 113, 113, 173, 174, - 293, 294, 209, 265, 134, 87, 135, 188, 189, 190, - 191, 192, 196, 113, 88, 138, 89, 139, 113, 280, - 90, 211, 96, 211, 284, 183, 216, 91, 239, 136, - 200, 112, 48, 48, 179, 180, 199, 118, 203, 248, - 140, 259, 123, 101, 102, 127, 230, 125, 275, 107, - 108, 109, 129, 240, 238, 103, 104, 219, 220, 211, - 211, 101, 102, 148, 48, 48, 126, 152, 156, 157, - 235, 236, 131, 107, 108, 109, 184, 185, 186, 242, - 243, 285, 185, 132, 133, 137, 94, 13, 14, 141, - 263, 142, 143, 144, 16, 17, 18, 19, 20, 270, - 21, 22, 23, 24, 272, 273, 274, 14, 145, 27, - 28, 278, 204, 16, 17, 18, 19, 20, 200, 21, - 22, 23, 24, 146, 205, 271, 288, 147, 27, 28, - 156, 157, 175, 277, 211, 211, 214, 281, 282, 215, - 221, 227, 158, 159, 160, 228, 237, 241, 287, 246, - 249, 251, 289, 290, 1, 252, 2, 256, 295, 232, - 261, 3, 262, 4, 5, 6, 7, 266, 267, 8, - 9, 268, 276, 269, 10, 11, 291, 12, 13, 14, - 15, 292, 296, 298, 301, 16, 17, 18, 19, 20, - 297, 21, 22, 23, 24, 302, 212, 25, 26, 2, - 27, 28, 95, 29, 3, 30, 4, 5, 6, 7, - 299, 217, 8, 9, 286, 229, 258, 106, 64, 0, - 12, 13, 14, 15, 0, 0, 0, 0, 16, 17, - 18, 19, 20, 0, 21, 22, 23, 24, 0, 107, - 108, 109, 2, 27, 28, 0, 29, 3, 30, 4, - 5, 6, 7, 0, 0, 8, 9, 0, 0, 0, - 10, 11, 0, 12, 13, 14, 15, 0, 0, 0, - 0, 16, 17, 18, 19, 20, 0, 21, 22, 23, - 24, 0, 0, 113, 0, 2, 27, 28, 0, 29, - 3, 30, 4, 5, 6, 7, 0, 0, 8, 9, - 0, 0, 0, 10, 11, 0, 12, 13, 14, 15, - 0, 0, 0, 0, 16, 17, 18, 19, 20, 0, - 21, 22, 23, 24, 0, 0, 0, 0, 2, 27, - 28, 0, 29, 3, 30, 4, 5, 6, 7, 0, - 0, 8, 9, 0, 0, 0, 0, 11, 0, 12, - 13, 14, 15, 0, 0, 0, 0, 16, 17, 18, - 19, 20, 0, 21, 22, 23, 24, 0, 0, 0, - 0, 2, 27, 28, 0, 29, 3, 30, 4, 5, - 6, 7, 0, 0, 8, 9, 0, 0, 0, 0, - 0, 0, 12, 13, 14, 15, 0, 0, 0, 0, - 16, 17, 18, 19, 20, 0, 21, 22, 23, 24, - 0, 0, 113, 0, 2, 27, 28, 0, 29, 3, - 30, 4, 5, 6, 7, 0, 0, 8, 9, 0, - 0, 0, 0, 0, 0, 12, 13, 14, 15, 0, - 0, 0, 0, 16, 17, 18, 19, 20, 0, 21, - 22, 23, 24, 0, 0, 0, 0, 0, 27, 28, - 0, 29, 0, 30, 67, 68, 69, 70, 71, 0, - 72, 0, 73, 74, 0, 0, 0, 0, 0, 75, - 76 +/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state + STATE-NUM when YYTABLE doesn't specify something else to do. Zero + means the default is an error. */ +static const yytype_uint8 yydefact[] = +{ + 0, 0, 133, 0, 0, 0, 133, 133, 0, 0, + 0, 0, 152, 38, 39, 0, 97, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 5, 0, + 0, 133, 133, 0, 40, 43, 45, 151, 46, 50, + 60, 54, 51, 48, 56, 49, 55, 57, 58, 59, + 0, 135, 142, 143, 0, 4, 117, 0, 0, 133, + 133, 0, 133, 0, 0, 133, 38, 92, 88, 0, + 144, 0, 153, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 12, 14, 22, 18, 30, 16, + 24, 20, 28, 26, 32, 33, 35, 36, 8, 9, + 0, 0, 1, 38, 44, 41, 47, 128, 129, 2, + 133, 133, 136, 137, 133, 133, 0, 131, 130, 132, + 148, 145, 133, 134, 116, 118, 127, 0, 133, 0, + 133, 133, 133, 133, 0, 133, 133, 0, 0, 90, + 89, 98, 147, 133, 13, 15, 23, 19, 31, 17, + 25, 21, 29, 27, 34, 37, 10, 11, 96, 87, + 42, 0, 0, 140, 141, 0, 0, 146, 0, 133, + 133, 133, 133, 133, 133, 0, 133, 0, 133, 0, + 0, 0, 0, 133, 0, 133, 0, 0, 133, 85, + 84, 91, 0, 138, 139, 0, 0, 150, 149, 133, + 133, 93, 0, 0, 0, 120, 121, 119, 0, 102, + 133, 0, 133, 133, 0, 6, 0, 133, 0, 71, + 72, 133, 133, 133, 133, 0, 0, 0, 0, 52, + 53, 0, 86, 82, 0, 0, 95, 122, 123, 124, + 125, 126, 81, 108, 110, 112, 103, 0, 79, 114, + 0, 0, 0, 0, 61, 7, 133, 0, 62, 0, + 0, 0, 0, 73, 0, 133, 74, 83, 94, 133, + 133, 133, 133, 109, 111, 113, 80, 0, 0, 133, + 63, 64, 0, 133, 133, 69, 70, 75, 76, 0, + 99, 0, 0, 0, 133, 115, 104, 105, 133, 133, + 0, 0, 133, 133, 133, 101, 106, 107, 0, 0, + 67, 68, 0, 0, 100, 65, 66, 77, 78 }; -static const short yycheck[] = { 6, - 7, 35, 10, 0, 57, 0, 9, 170, 128, 172, - 20, 24, 24, 26, 26, 188, 189, 190, 191, 192, - 44, 24, 29, 30, 178, 9, 55, 56, 24, 58, - 44, 45, 61, 24, 44, 14, 49, 49, 211, 14, - 24, 44, 50, 3, 24, 208, 209, 14, 8, 52, - 10, 11, 12, 13, 23, 14, 64, 17, 178, 29, - 44, 20, 216, 97, 43, 44, 45, 27, 52, 44, - 52, 50, 101, 102, 14, 50, 105, 44, 24, 24, - 20, 46, 28, 50, 44, 44, 14, 14, 53, 118, - 50, 50, 52, 122, 123, 24, 216, 46, 106, 272, - 273, 274, 131, 14, 44, 112, 103, 104, 14, 104, - 50, 164, 24, 120, 121, 24, 44, 44, 125, 126, - 283, 284, 50, 50, 24, 24, 26, 156, 157, 158, - 159, 160, 161, 44, 24, 24, 24, 26, 44, 50, - 24, 170, 176, 172, 50, 153, 175, 24, 201, 49, - 24, 4, 149, 150, 149, 150, 163, 43, 165, 212, - 49, 46, 43, 30, 31, 52, 195, 14, 53, 43, - 44, 45, 18, 202, 24, 42, 43, 184, 185, 208, - 209, 30, 31, 217, 181, 182, 14, 182, 30, 31, - 197, 198, 53, 43, 44, 45, 5, 6, 7, 206, - 207, 5, 6, 24, 24, 24, 24, 25, 26, 24, - 239, 24, 24, 24, 32, 33, 34, 35, 36, 248, - 38, 39, 40, 41, 253, 254, 255, 26, 24, 47, - 48, 260, 15, 32, 33, 34, 35, 36, 24, 38, - 39, 40, 41, 51, 51, 252, 275, 53, 47, 48, - 30, 31, 53, 260, 283, 284, 15, 264, 265, 15, - 7, 9, 42, 43, 44, 37, 15, 51, 275, 15, - 51, 7, 279, 280, 1, 4, 3, 37, 285, 24, - 15, 8, 51, 10, 11, 12, 13, 15, 51, 16, - 17, 15, 24, 51, 21, 22, 15, 24, 25, 26, - 27, 51, 15, 15, 0, 32, 33, 34, 35, 36, - 51, 38, 39, 40, 41, 0, 171, 44, 45, 3, - 47, 48, 33, 50, 8, 52, 10, 11, 12, 13, - 51, 176, 16, 17, 271, 195, 233, 21, 10, -1, - 24, 25, 26, 27, -1, -1, -1, -1, 32, 33, - 34, 35, 36, -1, 38, 39, 40, 41, -1, 43, - 44, 45, 3, 47, 48, -1, 50, 8, 52, 10, - 11, 12, 13, -1, -1, 16, 17, -1, -1, -1, - 21, 22, -1, 24, 25, 26, 27, -1, -1, -1, - -1, 32, 33, 34, 35, 36, -1, 38, 39, 40, - 41, -1, -1, 44, -1, 3, 47, 48, -1, 50, - 8, 52, 10, 11, 12, 13, -1, -1, 16, 17, - -1, -1, -1, 21, 22, -1, 24, 25, 26, 27, - -1, -1, -1, -1, 32, 33, 34, 35, 36, -1, - 38, 39, 40, 41, -1, -1, -1, -1, 3, 47, - 48, -1, 50, 8, 52, 10, 11, 12, 13, -1, - -1, 16, 17, -1, -1, -1, -1, 22, -1, 24, - 25, 26, 27, -1, -1, -1, -1, 32, 33, 34, - 35, 36, -1, 38, 39, 40, 41, -1, -1, -1, - -1, 3, 47, 48, -1, 50, 8, 52, 10, 11, - 12, 13, -1, -1, 16, 17, -1, -1, -1, -1, - -1, -1, 24, 25, 26, 27, -1, -1, -1, -1, - 32, 33, 34, 35, 36, -1, 38, 39, 40, 41, - -1, -1, 44, -1, 3, 47, 48, -1, 50, 8, - 52, 10, 11, 12, 13, -1, -1, 16, 17, -1, - -1, -1, -1, -1, -1, 24, 25, 26, 27, -1, - -1, -1, -1, 32, 33, 34, 35, 36, -1, 38, - 39, 40, 41, -1, -1, -1, -1, -1, 47, 48, - -1, 50, -1, 52, 32, 33, 34, 35, 36, -1, - 38, -1, 40, 41, -1, -1, -1, -1, -1, 47, - 48 +/* YYDEFGOTO[NTERM-NUM]. */ +static const yytype_int16 yydefgoto[] = +{ + -1, 33, 216, 34, 35, 106, 36, 37, 38, 39, + 40, 41, 42, 43, 190, 44, 45, 46, 47, 48, + 49, 202, 208, 209, 210, 251, 56, 57, 124, 125, + 109, 120, 58, 50, 163, 126, 53, 54 }; -/* -*-C-*- Note some compilers choke on comments on `#line' lines. */ -#line 3 "/usr/share/bison.simple" -/* This file comes from bison-1.28. */ -/* Skeleton output parser for bison, - Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc. +/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing + STATE-NUM. */ +#define YYPACT_NINF -188 +static const yytype_int16 yypact[] = +{ + 293, -26, -188, 7, 41, 43, -188, -188, 46, 629, + -17, 485, 11, 23, -188, 675, -188, 65, 68, 96, + 77, 119, 92, 124, 127, 140, 143, -188, -188, 149, + 154, -188, -188, 98, -188, -188, 662, -188, 208, -188, + -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, + 24, 12, -188, -36, 341, -188, -188, 177, 389, -188, + 142, 8, 147, 169, 185, 148, 200, 662, 208, 181, + -36, 581, -188, 146, 184, 189, 130, 192, 135, 197, + 198, 202, 207, 209, -188, -188, -188, -188, -188, -188, + -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, + 180, 167, -188, -188, -188, -188, 208, -188, -188, -188, + -188, -188, 437, 437, -188, -188, 581, -188, -188, -188, + -188, -36, -188, -188, -188, 227, -188, -12, -188, 20, + -188, -188, -188, -188, 122, -188, -188, 179, 37, 208, + 208, -188, -36, -188, -188, -188, -188, -188, -188, -188, + -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, + -188, 389, 389, 53, 53, 533, 533, -36, 224, -188, + -188, -188, -188, -188, -188, 40, -188, 171, -188, 233, + 190, 48, 73, -188, 247, -188, 239, 267, -188, 208, + -188, 208, 37, -188, -188, 437, 437, -36, -36, -188, + -188, -188, 276, 389, 389, 389, 389, 389, 275, 226, + -188, 42, -188, -188, 270, -188, 231, -188, 230, -188, + -188, -188, -188, -188, -188, 272, 389, 231, 234, -188, + -188, 37, 208, -188, 282, 287, -188, -188, -188, 76, + 76, 76, -188, -188, -188, -188, 229, 63, -188, -188, + 274, -27, 280, 241, -188, -188, -188, 99, -188, 285, + 246, 292, 252, -188, 227, -188, -188, -188, -188, -188, + -188, -188, -188, -188, -188, -188, -188, -22, 288, -188, + -188, -188, 131, -188, -188, -188, -188, -188, -188, 133, + 129, 389, 389, 389, -188, -188, -188, 389, -188, -188, + 297, 258, -188, -188, -188, -188, -188, 389, 302, 266, + -188, -188, 308, 268, -188, -188, -188, -188, -188 +}; - 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. +/* YYPGOTO[NTERM-NUM]. */ +static const yytype_int16 yypgoto[] = +{ + -188, -188, 141, -30, -25, -62, 322, -188, -5, -188, + -188, -188, -188, -188, -185, -188, -188, -188, -188, -188, + -188, 49, -188, 123, -188, 82, -171, -6, -188, -187, + -188, -58, -32, -188, 5, 2, 10, 329 +}; - 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. +/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If + positive, shift that token. If negative, reduce the rule which + number is the opposite. If zero, do what YYDEFACT says. + If YYTABLE_NINF, syntax error. */ +#define YYTABLE_NINF -1 +static const yytype_uint16 yytable[] = +{ + 63, 64, 52, 132, 68, 51, 140, 233, 105, 174, + 114, 104, 225, 69, 228, 115, 237, 238, 239, 240, + 241, 70, 130, 55, 278, 100, 101, 127, 129, 278, + 134, 279, 59, 138, 176, 72, 294, 123, 105, 264, + 2, 177, 104, 110, 111, 3, 267, 4, 5, 6, + 7, 248, 261, 262, 212, 10, 117, 118, 119, 112, + 113, 139, 221, 131, 121, 16, 60, 249, 62, 123, + 61, 65, 276, 107, 108, 178, 160, 191, 161, 162, + 73, 142, 165, 166, 110, 111, 123, 223, 249, 123, + 84, 123, 31, 85, 32, 213, 175, 123, 102, 250, + 181, 182, 89, 222, 239, 240, 241, 169, 170, 105, + 160, 192, 123, 283, 52, 52, 168, 93, 164, 217, + 250, 86, 123, 87, 179, 180, 167, 232, 224, 186, + 187, 312, 313, 189, 304, 200, 183, 203, 204, 205, + 206, 207, 211, 184, 90, 298, 91, 302, 123, 94, + 88, 226, 95, 226, 284, 146, 231, 147, 256, 105, + 150, 160, 151, 52, 52, 96, 193, 194, 97, 265, + 214, 123, 218, 92, 98, 197, 198, 185, 247, 99, + 123, 122, 123, 135, 148, 257, 299, 189, 303, 152, + 128, 226, 226, 234, 235, 133, 215, 52, 52, 136, + 141, 164, 160, 2, 143, 137, 252, 253, 3, 144, + 4, 5, 6, 7, 145, 259, 260, 149, 10, 117, + 118, 119, 153, 154, 282, 159, 189, 155, 16, 199, + 200, 201, 156, 289, 157, 15, 158, 188, 291, 292, + 293, 17, 18, 19, 20, 21, 220, 297, 219, 22, + 23, 24, 25, 26, 229, 31, 255, 32, 169, 170, + 29, 30, 307, 290, 243, 244, 245, 273, 274, 275, + 226, 226, 215, 296, 171, 172, 173, 300, 301, 117, + 118, 119, 230, 236, 242, 254, 258, 263, 306, 268, + 266, 269, 308, 309, 1, 280, 2, 281, 314, 249, + 285, 3, 286, 4, 5, 6, 7, 287, 288, 8, + 9, 10, 310, 295, 311, 11, 12, 315, 13, 14, + 15, 16, 316, 317, 318, 227, 17, 18, 19, 20, + 21, 67, 277, 246, 22, 23, 24, 25, 26, 305, + 71, 0, 27, 28, 2, 29, 30, 0, 31, 3, + 32, 4, 5, 6, 7, 0, 0, 8, 9, 10, + 0, 0, 0, 116, 0, 0, 13, 14, 15, 16, + 0, 0, 0, 0, 17, 18, 19, 20, 21, 0, + 0, 0, 22, 23, 24, 25, 26, 0, 0, 117, + 118, 119, 2, 29, 30, 0, 31, 3, 32, 4, + 5, 6, 7, 0, 0, 8, 9, 10, 0, 0, + 0, 11, 12, 0, 13, 14, 15, 16, 0, 0, + 0, 0, 17, 18, 19, 20, 21, 0, 0, 0, + 22, 23, 24, 25, 26, 0, 0, 0, 123, 0, + 2, 29, 30, 0, 31, 3, 32, 4, 5, 6, + 7, 0, 0, 8, 9, 10, 0, 0, 0, 11, + 12, 0, 13, 14, 15, 16, 0, 0, 0, 0, + 17, 18, 19, 20, 21, 0, 0, 0, 22, 23, + 24, 25, 26, 0, 0, 0, 0, 0, 2, 29, + 30, 0, 31, 3, 32, 4, 5, 6, 7, 0, + 0, 8, 9, 10, 0, 0, 0, 0, 12, 0, + 13, 14, 15, 16, 0, 0, 0, 0, 17, 18, + 19, 20, 21, 0, 0, 0, 22, 23, 24, 25, + 26, 0, 0, 0, 0, 0, 2, 29, 30, 0, + 31, 3, 32, 4, 5, 6, 7, 0, 0, 8, + 9, 10, 0, 0, 0, 0, 0, 0, 13, 14, + 15, 16, 0, 0, 0, 0, 17, 18, 19, 20, + 21, 0, 0, 0, 22, 23, 24, 25, 26, 0, + 0, 0, 123, 0, 2, 29, 30, 0, 31, 3, + 32, 4, 5, 6, 7, 0, 0, 8, 9, 10, + 0, 0, 0, 0, 0, 0, 13, 14, 15, 16, + 0, 0, 0, 0, 17, 18, 19, 20, 21, 0, + 0, 0, 22, 23, 24, 25, 26, 0, 0, 0, + 0, 0, 2, 29, 30, 0, 31, 3, 32, 4, + 5, 6, 7, 0, 0, 0, 0, 10, 0, 0, + 0, 0, 0, 0, 66, 14, 15, 16, 0, 0, + 0, 0, 17, 18, 19, 20, 21, 0, 0, 0, + 22, 23, 24, 25, 26, 0, 0, 0, 0, 0, + 0, 29, 30, 0, 31, 0, 32, 103, 14, 15, + 0, 0, 0, 0, 0, 17, 18, 19, 20, 21, + 0, 0, 0, 22, 23, 24, 25, 26, 74, 75, + 76, 77, 78, 0, 29, 30, 79, 0, 0, 80, + 81, 0, 0, 0, 0, 0, 0, 82, 83 +}; - 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. */ - -/* As a special exception, when this file is copied by Bison into a - Bison output file, you may use that output file without restriction. - This special exception was added by the Free Software Foundation - in version 1.24 of Bison. */ - -/* This is the parser code that is written into each bison parser - when the %semantic_parser declaration is not specified in the grammar. - It was written by Richard Stallman by simplifying the hairy parser - used when %semantic_parser is specified. */ - -#ifndef YYSTACK_USE_ALLOCA -#ifdef alloca -#define YYSTACK_USE_ALLOCA -#else /* alloca not defined */ -#ifdef __GNUC__ -#define YYSTACK_USE_ALLOCA -#define alloca __builtin_alloca -#else /* not GNU C. */ -#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386)) -#define YYSTACK_USE_ALLOCA -#include -#else /* not sparc */ -/* We think this test detects Watcom and Microsoft C. */ -/* This used to test MSDOS, but that is a bad idea - since that symbol is in the user namespace. */ -#if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__) -#if 0 /* No need for malloc.h, which pollutes the namespace; - instead, just don't use alloca. */ -#include -#endif -#else /* not MSDOS, or __TURBOC__ */ -#if defined(_AIX) -/* I don't know what this was needed for, but it pollutes the namespace. - So I turned it off. rms, 2 May 1997. */ -/* #include */ - #pragma alloca -#define YYSTACK_USE_ALLOCA -#else /* not MSDOS, or __TURBOC__, or _AIX */ -#if 0 -#ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up, - and on HPUX 10. Eventually we can turn this on. */ -#define YYSTACK_USE_ALLOCA -#define alloca __builtin_alloca -#endif /* __hpux */ -#endif -#endif /* not _AIX */ -#endif /* not MSDOS, or __TURBOC__ */ -#endif /* not sparc */ -#endif /* not GNU C */ -#endif /* alloca not defined */ -#endif /* YYSTACK_USE_ALLOCA not defined */ - -#ifdef YYSTACK_USE_ALLOCA -#define YYSTACK_ALLOC alloca -#else -#define YYSTACK_ALLOC malloc -#endif +static const yytype_int16 yycheck[] = +{ + 6, 7, 0, 61, 9, 0, 68, 192, 38, 21, + 46, 36, 183, 30, 185, 51, 203, 204, 205, 206, + 207, 11, 14, 49, 51, 31, 32, 59, 60, 51, + 62, 58, 25, 65, 14, 24, 58, 49, 68, 226, + 3, 21, 67, 31, 32, 8, 231, 10, 11, 12, + 13, 9, 223, 224, 14, 18, 48, 49, 50, 47, + 48, 66, 14, 55, 54, 28, 25, 25, 25, 49, + 29, 25, 9, 49, 50, 55, 106, 139, 110, 111, + 57, 71, 114, 115, 31, 32, 49, 14, 25, 49, + 25, 49, 55, 25, 57, 55, 128, 49, 0, 57, + 132, 133, 25, 55, 291, 292, 293, 31, 32, 139, + 140, 143, 49, 14, 112, 113, 122, 25, 113, 177, + 57, 25, 49, 27, 130, 131, 116, 189, 55, 135, + 136, 302, 303, 138, 5, 6, 14, 169, 170, 171, + 172, 173, 174, 21, 25, 14, 27, 14, 49, 25, + 54, 183, 25, 185, 55, 25, 188, 27, 216, 189, + 25, 191, 27, 161, 162, 25, 161, 162, 25, 227, + 176, 49, 178, 54, 25, 165, 166, 55, 210, 25, + 49, 4, 49, 14, 54, 217, 55, 192, 55, 54, + 48, 223, 224, 199, 200, 48, 25, 195, 196, 14, + 19, 196, 232, 3, 58, 57, 212, 213, 8, 25, + 10, 11, 12, 13, 25, 221, 222, 25, 18, 48, + 49, 50, 25, 25, 256, 58, 231, 25, 28, 5, + 6, 7, 25, 265, 25, 27, 56, 58, 270, 271, + 272, 33, 34, 35, 36, 37, 56, 279, 15, 41, + 42, 43, 44, 45, 15, 55, 25, 57, 31, 32, + 52, 53, 294, 269, 38, 39, 40, 38, 39, 40, + 302, 303, 25, 279, 47, 48, 49, 283, 284, 48, + 49, 50, 15, 7, 9, 15, 56, 15, 294, 7, + 56, 4, 298, 299, 1, 15, 3, 56, 304, 25, + 15, 8, 56, 10, 11, 12, 13, 15, 56, 16, + 17, 18, 15, 25, 56, 22, 23, 15, 25, 26, + 27, 28, 56, 15, 56, 184, 33, 34, 35, 36, + 37, 9, 250, 210, 41, 42, 43, 44, 45, 290, + 11, -1, 49, 50, 3, 52, 53, -1, 55, 8, + 57, 10, 11, 12, 13, -1, -1, 16, 17, 18, + -1, -1, -1, 22, -1, -1, 25, 26, 27, 28, + -1, -1, -1, -1, 33, 34, 35, 36, 37, -1, + -1, -1, 41, 42, 43, 44, 45, -1, -1, 48, + 49, 50, 3, 52, 53, -1, 55, 8, 57, 10, + 11, 12, 13, -1, -1, 16, 17, 18, -1, -1, + -1, 22, 23, -1, 25, 26, 27, 28, -1, -1, + -1, -1, 33, 34, 35, 36, 37, -1, -1, -1, + 41, 42, 43, 44, 45, -1, -1, -1, 49, -1, + 3, 52, 53, -1, 55, 8, 57, 10, 11, 12, + 13, -1, -1, 16, 17, 18, -1, -1, -1, 22, + 23, -1, 25, 26, 27, 28, -1, -1, -1, -1, + 33, 34, 35, 36, 37, -1, -1, -1, 41, 42, + 43, 44, 45, -1, -1, -1, -1, -1, 3, 52, + 53, -1, 55, 8, 57, 10, 11, 12, 13, -1, + -1, 16, 17, 18, -1, -1, -1, -1, 23, -1, + 25, 26, 27, 28, -1, -1, -1, -1, 33, 34, + 35, 36, 37, -1, -1, -1, 41, 42, 43, 44, + 45, -1, -1, -1, -1, -1, 3, 52, 53, -1, + 55, 8, 57, 10, 11, 12, 13, -1, -1, 16, + 17, 18, -1, -1, -1, -1, -1, -1, 25, 26, + 27, 28, -1, -1, -1, -1, 33, 34, 35, 36, + 37, -1, -1, -1, 41, 42, 43, 44, 45, -1, + -1, -1, 49, -1, 3, 52, 53, -1, 55, 8, + 57, 10, 11, 12, 13, -1, -1, 16, 17, 18, + -1, -1, -1, -1, -1, -1, 25, 26, 27, 28, + -1, -1, -1, -1, 33, 34, 35, 36, 37, -1, + -1, -1, 41, 42, 43, 44, 45, -1, -1, -1, + -1, -1, 3, 52, 53, -1, 55, 8, 57, 10, + 11, 12, 13, -1, -1, -1, -1, 18, -1, -1, + -1, -1, -1, -1, 25, 26, 27, 28, -1, -1, + -1, -1, 33, 34, 35, 36, 37, -1, -1, -1, + 41, 42, 43, 44, 45, -1, -1, -1, -1, -1, + -1, 52, 53, -1, 55, -1, 57, 25, 26, 27, + -1, -1, -1, -1, -1, 33, 34, 35, 36, 37, + -1, -1, -1, 41, 42, 43, 44, 45, 33, 34, + 35, 36, 37, -1, 52, 53, 41, -1, -1, 44, + 45, -1, -1, -1, -1, -1, -1, 52, 53 +}; -/* Note: there must be only one dollar sign in this file. - It is replaced by the list of actions, each action - as one case of the switch. */ +/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing + symbol of state STATE-NUM. */ +static const yytype_uint8 yystos[] = +{ + 0, 1, 3, 8, 10, 11, 12, 13, 16, 17, + 18, 22, 23, 25, 26, 27, 28, 33, 34, 35, + 36, 37, 41, 42, 43, 44, 45, 49, 50, 52, + 53, 55, 57, 60, 62, 63, 65, 66, 67, 68, + 69, 70, 71, 72, 74, 75, 76, 77, 78, 79, + 92, 93, 94, 95, 96, 49, 85, 86, 91, 25, + 25, 29, 25, 86, 86, 25, 25, 65, 67, 30, + 95, 96, 24, 57, 33, 34, 35, 36, 37, 41, + 44, 45, 52, 53, 25, 25, 25, 27, 54, 25, + 25, 27, 54, 25, 25, 25, 25, 25, 25, 25, + 86, 86, 0, 25, 63, 62, 64, 49, 50, 89, + 31, 32, 47, 48, 46, 51, 22, 48, 49, 50, + 90, 95, 4, 49, 87, 88, 94, 91, 48, 91, + 14, 55, 90, 48, 91, 14, 14, 57, 91, 67, + 64, 19, 95, 58, 25, 25, 25, 27, 54, 25, + 25, 27, 54, 25, 25, 25, 25, 25, 56, 58, + 62, 91, 91, 93, 93, 91, 91, 95, 86, 31, + 32, 47, 48, 49, 21, 91, 14, 21, 55, 86, + 86, 91, 91, 14, 21, 55, 86, 86, 58, 67, + 73, 64, 91, 93, 93, 47, 48, 95, 95, 5, + 6, 7, 80, 91, 91, 91, 91, 91, 81, 82, + 83, 91, 14, 55, 86, 25, 61, 90, 86, 15, + 56, 14, 55, 14, 55, 85, 91, 61, 85, 15, + 15, 91, 64, 73, 86, 86, 7, 88, 88, 88, + 88, 88, 9, 38, 39, 40, 82, 91, 9, 25, + 57, 84, 86, 86, 15, 25, 90, 91, 56, 86, + 86, 85, 85, 15, 88, 90, 56, 73, 7, 4, + 47, 48, 49, 38, 39, 40, 9, 84, 51, 58, + 15, 56, 91, 14, 55, 15, 56, 15, 56, 91, + 86, 91, 91, 91, 58, 25, 86, 91, 14, 55, + 86, 86, 14, 55, 5, 80, 86, 91, 86, 86, + 15, 56, 85, 85, 86, 15, 56, 15, 56 +}; #define yyerrok (yyerrstatus = 0) #define yyclearin (yychar = YYEMPTY) -#define YYEMPTY -2 +#define YYEMPTY (-2) #define YYEOF 0 + #define YYACCEPT goto yyacceptlab -#define YYABORT goto yyabortlab -#define YYERROR goto yyerrlab1 -/* Like YYERROR except do call yyerror. - This remains here temporarily to ease the - transition to the new meaning of YYERROR, for GCC. +#define YYABORT goto yyabortlab +#define YYERROR goto yyerrorlab + + +/* Like YYERROR except do call yyerror. This remains here temporarily + to ease the transition to the new meaning of YYERROR, for GCC. Once GCC version 2 has supplanted version 1, this can go. */ + #define YYFAIL goto yyerrlab + #define YYRECOVERING() (!!yyerrstatus) -#define YYBACKUP(token, value) \ + +#define YYBACKUP(Token, Value) \ do \ if (yychar == YYEMPTY && yylen == 1) \ - { yychar = (token), yylval = (value); \ - yychar1 = YYTRANSLATE (yychar); \ - YYPOPSTACK; \ + { \ + yychar = (Token); \ + yylval = (Value); \ + yytoken = YYTRANSLATE (yychar); \ + YYPOPSTACK (1); \ goto yybackup; \ } \ else \ - { yyerror ("syntax error: cannot back up"); YYERROR; } \ -while (0) + { \ + yyerror (YY_("syntax error: cannot back up")); \ + YYERROR; \ + } \ +while (YYID (0)) + #define YYTERROR 1 #define YYERRCODE 256 -#ifndef YYPURE -#define YYLEX yylex() + +/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N]. + If N is 0, then set CURRENT to the empty location which ends + the previous symbol: RHS[0] (always defined). */ + +#define YYRHSLOC(Rhs, K) ((Rhs)[K]) +#ifndef YYLLOC_DEFAULT +# define YYLLOC_DEFAULT(Current, Rhs, N) \ + do \ + if (YYID (N)) \ + { \ + (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \ + (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \ + (Current).last_line = YYRHSLOC (Rhs, N).last_line; \ + (Current).last_column = YYRHSLOC (Rhs, N).last_column; \ + } \ + else \ + { \ + (Current).first_line = (Current).last_line = \ + YYRHSLOC (Rhs, 0).last_line; \ + (Current).first_column = (Current).last_column = \ + YYRHSLOC (Rhs, 0).last_column; \ + } \ + while (YYID (0)) #endif -#ifdef YYPURE -#ifdef YYLSP_NEEDED -#ifdef YYLEX_PARAM -#define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM) -#else -#define YYLEX yylex(&yylval, &yylloc) + +/* YY_LOCATION_PRINT -- Print the location on the stream. + This macro was not mandated originally: define only if we know + we won't break user code: when these are the locations we know. */ + +#ifndef YY_LOCATION_PRINT +# if YYLTYPE_IS_TRIVIAL +# define YY_LOCATION_PRINT(File, Loc) \ + fprintf (File, "%d.%d-%d.%d", \ + (Loc).first_line, (Loc).first_column, \ + (Loc).last_line, (Loc).last_column) +# else +# define YY_LOCATION_PRINT(File, Loc) ((void) 0) +# endif #endif -#else /* not YYLSP_NEEDED */ + + +/* YYLEX -- calling `yylex' with the right arguments. */ + #ifdef YYLEX_PARAM -#define YYLEX yylex(&yylval, YYLEX_PARAM) +# define YYLEX yylex (YYLEX_PARAM) #else -#define YYLEX yylex(&yylval) +# define YYLEX yylex () #endif -#endif /* not YYLSP_NEEDED */ + +/* Enable debugging if requested. */ +#if YYDEBUG + +# ifndef YYFPRINTF +# include /* INFRINGES ON USER NAME SPACE */ +# define YYFPRINTF fprintf +# endif + +# define YYDPRINTF(Args) \ +do { \ + if (yydebug) \ + YYFPRINTF Args; \ +} while (YYID (0)) + +# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ +do { \ + if (yydebug) \ + { \ + YYFPRINTF (stderr, "%s ", Title); \ + yy_symbol_print (stderr, \ + Type, Value); \ + YYFPRINTF (stderr, "\n"); \ + } \ +} while (YYID (0)) + + +/*--------------------------------. +| Print this symbol on YYOUTPUT. | +`--------------------------------*/ + +/*ARGSUSED*/ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static void +yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) +#else +static void +yy_symbol_value_print (yyoutput, yytype, yyvaluep) + FILE *yyoutput; + int yytype; + YYSTYPE const * const yyvaluep; #endif +{ + if (!yyvaluep) + return; +# ifdef YYPRINT + if (yytype < YYNTOKENS) + YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); +# else + YYUSE (yyoutput); +# endif + switch (yytype) + { + default: + break; + } +} + + +/*--------------------------------. +| Print this symbol on YYOUTPUT. | +`--------------------------------*/ -/* If nonreentrant, generate the variables here */ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static void +yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) +#else +static void +yy_symbol_print (yyoutput, yytype, yyvaluep) + FILE *yyoutput; + int yytype; + YYSTYPE const * const yyvaluep; +#endif +{ + if (yytype < YYNTOKENS) + YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); + else + YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); -#ifndef YYPURE + yy_symbol_value_print (yyoutput, yytype, yyvaluep); + YYFPRINTF (yyoutput, ")"); +} -int yychar; /* the lookahead symbol */ -YYSTYPE yylval; /* the semantic value of the */ - /* lookahead symbol */ +/*------------------------------------------------------------------. +| yy_stack_print -- Print the state stack from its BOTTOM up to its | +| TOP (included). | +`------------------------------------------------------------------*/ -#ifdef YYLSP_NEEDED -YYLTYPE yylloc; /* location data for the lookahead */ - /* symbol */ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static void +yy_stack_print (yytype_int16 *bottom, yytype_int16 *top) +#else +static void +yy_stack_print (bottom, top) + yytype_int16 *bottom; + yytype_int16 *top; #endif +{ + YYFPRINTF (stderr, "Stack now"); + for (; bottom <= top; ++bottom) + YYFPRINTF (stderr, " %d", *bottom); + YYFPRINTF (stderr, "\n"); +} -int yynerrs; /* number of parse errors so far */ -#endif /* not YYPURE */ +# define YY_STACK_PRINT(Bottom, Top) \ +do { \ + if (yydebug) \ + yy_stack_print ((Bottom), (Top)); \ +} while (YYID (0)) -#if YYDEBUG != 0 -int yydebug; /* nonzero means print parse trace */ -/* Since this is uninitialized, it does not stop multiple parsers - from coexisting. */ + +/*------------------------------------------------. +| Report that the YYRULE is going to be reduced. | +`------------------------------------------------*/ + +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static void +yy_reduce_print (YYSTYPE *yyvsp, int yyrule) +#else +static void +yy_reduce_print (yyvsp, yyrule) + YYSTYPE *yyvsp; + int yyrule; #endif +{ + int yynrhs = yyr2[yyrule]; + int yyi; + unsigned long int yylno = yyrline[yyrule]; + YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", + yyrule - 1, yylno); + /* The symbols being reduced. */ + for (yyi = 0; yyi < yynrhs; yyi++) + { + fprintf (stderr, " $%d = ", yyi + 1); + yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi], + &(yyvsp[(yyi + 1) - (yynrhs)]) + ); + fprintf (stderr, "\n"); + } +} + +# define YY_REDUCE_PRINT(Rule) \ +do { \ + if (yydebug) \ + yy_reduce_print (yyvsp, Rule); \ +} while (YYID (0)) -/* YYINITDEPTH indicates the initial size of the parser's stacks */ +/* Nonzero means print parse trace. It is left uninitialized so that + multiple parsers can coexist. */ +int yydebug; +#else /* !YYDEBUG */ +# define YYDPRINTF(Args) +# define YY_SYMBOL_PRINT(Title, Type, Value, Location) +# define YY_STACK_PRINT(Bottom, Top) +# define YY_REDUCE_PRINT(Rule) +#endif /* !YYDEBUG */ + +/* YYINITDEPTH -- initial size of the parser's stacks. */ #ifndef YYINITDEPTH -#define YYINITDEPTH 200 +# define YYINITDEPTH 200 #endif -/* YYMAXDEPTH is the maximum size the stacks can grow to - (effective only if the built-in stack extension method is used). */ +/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only + if the built-in stack extension method is used). -#if YYMAXDEPTH == 0 -#undef YYMAXDEPTH -#endif + Do not make this value too large; the results are undefined if + YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH) + evaluated with infinite-precision integer arithmetic. */ #ifndef YYMAXDEPTH -#define YYMAXDEPTH 10000 +# define YYMAXDEPTH 10000 #endif + -/* Define __yy_memcpy. Note that the size argument - should be passed with type unsigned int, because that is what the non-GCC - definitions require. With GCC, __builtin_memcpy takes an arg - of type size_t, but it can handle unsigned int. */ - -#if __GNUC__ > 1 /* GNU C and GNU C++ define this. */ -#define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT) -#else /* not GNU C or C++ */ -#ifndef __cplusplus - -/* This is the most reliable way to avoid incompatibilities - in available built-in functions on various systems. */ -static void -__yy_memcpy (to, from, count) - char *to; - char *from; - unsigned int count; + +#if YYERROR_VERBOSE + +# ifndef yystrlen +# if defined __GLIBC__ && defined _STRING_H +# define yystrlen strlen +# else +/* Return the length of YYSTR. */ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static YYSIZE_T +yystrlen (const char *yystr) +#else +static YYSIZE_T +yystrlen (yystr) + const char *yystr; +#endif +{ + YYSIZE_T yylen; + for (yylen = 0; yystr[yylen]; yylen++) + continue; + return yylen; +} +# endif +# endif + +# ifndef yystpcpy +# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE +# define yystpcpy stpcpy +# else +/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in + YYDEST. */ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static char * +yystpcpy (char *yydest, const char *yysrc) +#else +static char * +yystpcpy (yydest, yysrc) + char *yydest; + const char *yysrc; +#endif { - register char *f = from; - register char *t = to; - register int i = count; + char *yyd = yydest; + const char *yys = yysrc; + + while ((*yyd++ = *yys++) != '\0') + continue; + + return yyd - 1; +} +# endif +# endif + +# ifndef yytnamerr +/* Copy to YYRES the contents of YYSTR after stripping away unnecessary + quotes and backslashes, so that it's suitable for yyerror. The + heuristic is that double-quoting is unnecessary unless the string + contains an apostrophe, a comma, or backslash (other than + backslash-backslash). YYSTR is taken from yytname. If YYRES is + null, do not copy; instead, return the length of what the result + would have been. */ +static YYSIZE_T +yytnamerr (char *yyres, const char *yystr) +{ + if (*yystr == '"') + { + YYSIZE_T yyn = 0; + char const *yyp = yystr; + + for (;;) + switch (*++yyp) + { + case '\'': + case ',': + goto do_not_strip_quotes; + + case '\\': + if (*++yyp != '\\') + goto do_not_strip_quotes; + /* Fall through. */ + default: + if (yyres) + yyres[yyn] = *yyp; + yyn++; + break; + + case '"': + if (yyres) + yyres[yyn] = '\0'; + return yyn; + } + do_not_strip_quotes: ; + } - while (i-- > 0) - *t++ = *f++; + if (! yyres) + return yystrlen (yystr); + + return yystpcpy (yyres, yystr) - yyres; +} +# endif + +/* Copy into YYRESULT an error message about the unexpected token + YYCHAR while in state YYSTATE. Return the number of bytes copied, + including the terminating null byte. If YYRESULT is null, do not + copy anything; just return the number of bytes that would be + copied. As a special case, return 0 if an ordinary "syntax error" + message will do. Return YYSIZE_MAXIMUM if overflow occurs during + size calculation. */ +static YYSIZE_T +yysyntax_error (char *yyresult, int yystate, int yychar) +{ + int yyn = yypact[yystate]; + + if (! (YYPACT_NINF < yyn && yyn <= YYLAST)) + return 0; + else + { + int yytype = YYTRANSLATE (yychar); + YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]); + YYSIZE_T yysize = yysize0; + YYSIZE_T yysize1; + int yysize_overflow = 0; + enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; + char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; + int yyx; + +# if 0 + /* This is so xgettext sees the translatable formats that are + constructed on the fly. */ + YY_("syntax error, unexpected %s"); + YY_("syntax error, unexpected %s, expecting %s"); + YY_("syntax error, unexpected %s, expecting %s or %s"); + YY_("syntax error, unexpected %s, expecting %s or %s or %s"); + YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"); +# endif + char *yyfmt; + char const *yyf; + static char const yyunexpected[] = "syntax error, unexpected %s"; + static char const yyexpecting[] = ", expecting %s"; + static char const yyor[] = " or %s"; + char yyformat[sizeof yyunexpected + + sizeof yyexpecting - 1 + + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2) + * (sizeof yyor - 1))]; + char const *yyprefix = yyexpecting; + + /* Start YYX at -YYN if negative to avoid negative indexes in + YYCHECK. */ + int yyxbegin = yyn < 0 ? -yyn : 0; + + /* Stay within bounds of both yycheck and yytname. */ + int yychecklim = YYLAST - yyn + 1; + int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; + int yycount = 1; + + yyarg[0] = yytname[yytype]; + yyfmt = yystpcpy (yyformat, yyunexpected); + + for (yyx = yyxbegin; yyx < yyxend; ++yyx) + if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) + { + if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) + { + yycount = 1; + yysize = yysize0; + yyformat[sizeof yyunexpected - 1] = '\0'; + break; + } + yyarg[yycount++] = yytname[yyx]; + yysize1 = yysize + yytnamerr (0, yytname[yyx]); + yysize_overflow |= (yysize1 < yysize); + yysize = yysize1; + yyfmt = yystpcpy (yyfmt, yyprefix); + yyprefix = yyor; + } + + yyf = YY_(yyformat); + yysize1 = yysize + yystrlen (yyf); + yysize_overflow |= (yysize1 < yysize); + yysize = yysize1; + + if (yysize_overflow) + return YYSIZE_MAXIMUM; + + if (yyresult) + { + /* Avoid sprintf, as that infringes on the user's name space. + Don't have undefined behavior even if the translation + produced a string with the wrong number of "%s"s. */ + char *yyp = yyresult; + int yyi = 0; + while ((*yyp = *yyf) != '\0') + { + if (*yyp == '%' && yyf[1] == 's' && yyi < yycount) + { + yyp += yytnamerr (yyp, yyarg[yyi++]); + yyf += 2; + } + else + { + yyp++; + yyf++; + } + } + } + return yysize; + } } +#endif /* YYERROR_VERBOSE */ + -#else /* __cplusplus */ +/*-----------------------------------------------. +| Release the memory associated to this symbol. | +`-----------------------------------------------*/ -/* This is the most reliable way to avoid incompatibilities - in available built-in functions on various systems. */ +/*ARGSUSED*/ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static void +yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep) +#else static void -__yy_memcpy (char *to, char *from, unsigned int count) +yydestruct (yymsg, yytype, yyvaluep) + const char *yymsg; + int yytype; + YYSTYPE *yyvaluep; +#endif { - register char *t = to; - register char *f = from; - register int i = count; + YYUSE (yyvaluep); - while (i-- > 0) - *t++ = *f++; -} + if (!yymsg) + yymsg = "Deleting"; + YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); -#endif -#endif + switch (yytype) + { + + default: + break; + } +} -#line 217 "/usr/share/bison.simple" -/* The user can define YYPARSE_PARAM as the name of an argument to be passed - into yyparse. The argument should have type void *. - It should actually point to an object. - Grammar actions can access the variable by casting it - to the proper pointer type. */ +/* Prevent warnings from -Wmissing-prototypes. */ #ifdef YYPARSE_PARAM -#ifdef __cplusplus -#define YYPARSE_PARAM_ARG void *YYPARSE_PARAM -#define YYPARSE_PARAM_DECL -#else /* not __cplusplus */ -#define YYPARSE_PARAM_ARG YYPARSE_PARAM -#define YYPARSE_PARAM_DECL void *YYPARSE_PARAM; -#endif /* not __cplusplus */ -#else /* not YYPARSE_PARAM */ -#define YYPARSE_PARAM_ARG -#define YYPARSE_PARAM_DECL -#endif /* not YYPARSE_PARAM */ - -/* Prevent warning if -Wstrict-prototypes. */ -#ifdef __GNUC__ -#ifdef YYPARSE_PARAM -int yyparse (void *); +#if defined __STDC__ || defined __cplusplus +int yyparse (void *YYPARSE_PARAM); #else -int yyparse (void); +int yyparse (); #endif +#else /* ! YYPARSE_PARAM */ +#if defined __STDC__ || defined __cplusplus +int yyparse (void); +#else +int yyparse (); #endif +#endif /* ! YYPARSE_PARAM */ + -int -yyparse(YYPARSE_PARAM_ARG) - YYPARSE_PARAM_DECL -{ - register int yystate; - register int yyn; - register short *yyssp; - register YYSTYPE *yyvsp; - int yyerrstatus; /* number of tokens to shift before error messages enabled */ - int yychar1 = 0; /* lookahead token as an internal (translated) token number */ - short yyssa[YYINITDEPTH]; /* the state stack */ - YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */ +/* The look-ahead symbol. */ +int yychar; - short *yyss = yyssa; /* refer to the stacks thru separate pointers */ - YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */ +/* The semantic value of the look-ahead symbol. */ +YYSTYPE yylval; -#ifdef YYLSP_NEEDED - YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */ - YYLTYPE *yyls = yylsa; - YYLTYPE *yylsp; +/* Number of syntax errors so far. */ +int yynerrs; -#define YYPOPSTACK (yyvsp--, yyssp--, yylsp--) + + +/*----------. +| yyparse. | +`----------*/ + +#ifdef YYPARSE_PARAM +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +int +yyparse (void *YYPARSE_PARAM) #else -#define YYPOPSTACK (yyvsp--, yyssp--) +int +yyparse (YYPARSE_PARAM) + void *YYPARSE_PARAM; #endif +#else /* ! YYPARSE_PARAM */ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +int +yyparse (void) +#else +int +yyparse () - int yystacksize = YYINITDEPTH; - int yyfree_stacks = 0; - -#ifdef YYPURE - int yychar; - YYSTYPE yylval; - int yynerrs; -#ifdef YYLSP_NEEDED - YYLTYPE yylloc; #endif +#endif +{ + + int yystate; + int yyn; + int yyresult; + /* Number of tokens to shift before error messages enabled. */ + int yyerrstatus; + /* Look-ahead token as an internal (translated) token number. */ + int yytoken = 0; +#if YYERROR_VERBOSE + /* Buffer for error messages, and its allocated size. */ + char yymsgbuf[128]; + char *yymsg = yymsgbuf; + YYSIZE_T yymsg_alloc = sizeof yymsgbuf; #endif - YYSTYPE yyval; /* the variable used to return */ - /* semantic values from the action */ - /* routines */ + /* Three stacks and their tools: + `yyss': related to states, + `yyvs': related to semantic values, + `yyls': related to locations. - int yylen; + Refer to the stacks thru separate pointers, to allow yyoverflow + to reallocate them elsewhere. */ -#if YYDEBUG != 0 - if (yydebug) - fprintf(stderr, "Starting parse\n"); -#endif + /* The state stack. */ + yytype_int16 yyssa[YYINITDEPTH]; + yytype_int16 *yyss = yyssa; + yytype_int16 *yyssp; + + /* The semantic value stack. */ + YYSTYPE yyvsa[YYINITDEPTH]; + YYSTYPE *yyvs = yyvsa; + YYSTYPE *yyvsp; + + + +#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) + + YYSIZE_T yystacksize = YYINITDEPTH; + + /* The variables used to return semantic value and location from the + action routines. */ + YYSTYPE yyval; + + + /* The number of symbols on the RHS of the reduced rule. + Keep to zero when no symbol should be popped. */ + int yylen = 0; + + YYDPRINTF ((stderr, "Starting parse\n")); yystate = 0; yyerrstatus = 0; @@ -1049,272 +1889,224 @@ yyparse(YYPARSE_PARAM_ARG) so that they stay on the same level as the state stack. The wasted elements are never initialized. */ - yyssp = yyss - 1; + yyssp = yyss; yyvsp = yyvs; -#ifdef YYLSP_NEEDED - yylsp = yyls; -#endif -/* Push a new state, which is found in yystate . */ -/* In all cases, when you get here, the value and location stacks - have just been pushed. so pushing a state here evens the stacks. */ -yynewstate: + goto yysetstate; - *++yyssp = yystate; +/*------------------------------------------------------------. +| yynewstate -- Push a new state, which is found in yystate. | +`------------------------------------------------------------*/ + yynewstate: + /* In all cases, when you get here, the value and location stacks + have just been pushed. So pushing a state here evens the stacks. */ + yyssp++; - if (yyssp >= yyss + yystacksize - 1) - { - /* Give user a chance to reallocate the stack */ - /* Use copies of these so that the &'s don't force the real ones into memory. */ - YYSTYPE *yyvs1 = yyvs; - short *yyss1 = yyss; -#ifdef YYLSP_NEEDED - YYLTYPE *yyls1 = yyls; -#endif + yysetstate: + *yyssp = yystate; + if (yyss + yystacksize - 1 <= yyssp) + { /* Get the current used size of the three stacks, in elements. */ - int size = yyssp - yyss + 1; + YYSIZE_T yysize = yyssp - yyss + 1; #ifdef yyoverflow - /* Each stack pointer address is followed by the size of - the data in use in that stack, in bytes. */ -#ifdef YYLSP_NEEDED - /* This used to be a conditional around just the two extra args, - but that might be undefined if yyoverflow is a macro. */ - yyoverflow("parser stack overflow", - &yyss1, size * sizeof (*yyssp), - &yyvs1, size * sizeof (*yyvsp), - &yyls1, size * sizeof (*yylsp), - &yystacksize); -#else - yyoverflow("parser stack overflow", - &yyss1, size * sizeof (*yyssp), - &yyvs1, size * sizeof (*yyvsp), - &yystacksize); -#endif + { + /* Give user a chance to reallocate the stack. Use copies of + these so that the &'s don't force the real ones into + memory. */ + YYSTYPE *yyvs1 = yyvs; + yytype_int16 *yyss1 = yyss; - yyss = yyss1; yyvs = yyvs1; -#ifdef YYLSP_NEEDED - yyls = yyls1; -#endif + + /* Each stack pointer address is followed by the size of the + data in use in that stack, in bytes. This used to be a + conditional around just the two extra args, but that might + be undefined if yyoverflow is a macro. */ + yyoverflow (YY_("memory exhausted"), + &yyss1, yysize * sizeof (*yyssp), + &yyvs1, yysize * sizeof (*yyvsp), + + &yystacksize); + + yyss = yyss1; + yyvs = yyvs1; + } #else /* no yyoverflow */ +# ifndef YYSTACK_RELOCATE + goto yyexhaustedlab; +# else /* Extend the stack our own way. */ - if (yystacksize >= YYMAXDEPTH) - { - yyerror("parser stack overflow"); - if (yyfree_stacks) - { - free (yyss); - free (yyvs); -#ifdef YYLSP_NEEDED - free (yyls); -#endif - } - return 2; - } + if (YYMAXDEPTH <= yystacksize) + goto yyexhaustedlab; yystacksize *= 2; - if (yystacksize > YYMAXDEPTH) + if (YYMAXDEPTH < yystacksize) yystacksize = YYMAXDEPTH; -#ifndef YYSTACK_USE_ALLOCA - yyfree_stacks = 1; -#endif - yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp)); - __yy_memcpy ((char *)yyss, (char *)yyss1, - size * (unsigned int) sizeof (*yyssp)); - yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp)); - __yy_memcpy ((char *)yyvs, (char *)yyvs1, - size * (unsigned int) sizeof (*yyvsp)); -#ifdef YYLSP_NEEDED - yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp)); - __yy_memcpy ((char *)yyls, (char *)yyls1, - size * (unsigned int) sizeof (*yylsp)); -#endif + + { + yytype_int16 *yyss1 = yyss; + union yyalloc *yyptr = + (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); + if (! yyptr) + goto yyexhaustedlab; + YYSTACK_RELOCATE (yyss); + YYSTACK_RELOCATE (yyvs); + +# undef YYSTACK_RELOCATE + if (yyss1 != yyssa) + YYSTACK_FREE (yyss1); + } +# endif #endif /* no yyoverflow */ - yyssp = yyss + size - 1; - yyvsp = yyvs + size - 1; -#ifdef YYLSP_NEEDED - yylsp = yyls + size - 1; -#endif + yyssp = yyss + yysize - 1; + yyvsp = yyvs + yysize - 1; -#if YYDEBUG != 0 - if (yydebug) - fprintf(stderr, "Stack size increased to %d\n", yystacksize); -#endif - if (yyssp >= yyss + yystacksize - 1) + YYDPRINTF ((stderr, "Stack size increased to %lu\n", + (unsigned long int) yystacksize)); + + if (yyss + yystacksize - 1 <= yyssp) YYABORT; } -#if YYDEBUG != 0 - if (yydebug) - fprintf(stderr, "Entering state %d\n", yystate); -#endif + YYDPRINTF ((stderr, "Entering state %d\n", yystate)); goto yybackup; - yybackup: -/* Do appropriate processing given the current state. */ -/* Read a lookahead token if we need one and don't already have one. */ -/* yyresume: */ +/*-----------. +| yybackup. | +`-----------*/ +yybackup: - /* First try to decide what to do without reference to lookahead token. */ + /* Do appropriate processing given the current state. Read a + look-ahead token if we need one and don't already have one. */ + /* First try to decide what to do without reference to look-ahead token. */ yyn = yypact[yystate]; - if (yyn == YYFLAG) + if (yyn == YYPACT_NINF) goto yydefault; - /* Not known => get a lookahead token if don't already have one. */ - - /* yychar is either YYEMPTY or YYEOF - or a valid token in external form. */ + /* Not known => get a look-ahead token if don't already have one. */ + /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */ if (yychar == YYEMPTY) { -#if YYDEBUG != 0 - if (yydebug) - fprintf(stderr, "Reading a token: "); -#endif + YYDPRINTF ((stderr, "Reading a token: ")); yychar = YYLEX; } - /* Convert token to internal form (in yychar1) for indexing tables with */ - - if (yychar <= 0) /* This means end of input. */ + if (yychar <= YYEOF) { - yychar1 = 0; - yychar = YYEOF; /* Don't call YYLEX any more */ - -#if YYDEBUG != 0 - if (yydebug) - fprintf(stderr, "Now at end of input.\n"); -#endif + yychar = yytoken = YYEOF; + YYDPRINTF ((stderr, "Now at end of input.\n")); } else { - yychar1 = YYTRANSLATE(yychar); - -#if YYDEBUG != 0 - if (yydebug) - { - fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]); - /* Give the individual parser a way to print the precise meaning - of a token, for further debugging info. */ -#ifdef YYPRINT - YYPRINT (stderr, yychar, yylval); -#endif - fprintf (stderr, ")\n"); - } -#endif + yytoken = YYTRANSLATE (yychar); + YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc); } - yyn += yychar1; - if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1) + /* If the proper action on seeing token YYTOKEN is to reduce or to + detect an error, take that action. */ + yyn += yytoken; + if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) goto yydefault; - yyn = yytable[yyn]; - - /* yyn is what to do for this token type in this state. - Negative => reduce, -yyn is rule number. - Positive => shift, yyn is new state. - New state is final state => don't bother to shift, - just return success. - 0, or most negative number => error. */ - - if (yyn < 0) + if (yyn <= 0) { - if (yyn == YYFLAG) + if (yyn == 0 || yyn == YYTABLE_NINF) goto yyerrlab; yyn = -yyn; goto yyreduce; } - else if (yyn == 0) - goto yyerrlab; if (yyn == YYFINAL) YYACCEPT; - /* Shift the lookahead token. */ + /* Count tokens shifted since error; after three, turn off error + status. */ + if (yyerrstatus) + yyerrstatus--; -#if YYDEBUG != 0 - if (yydebug) - fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]); -#endif + /* Shift the look-ahead token. */ + YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); - /* Discard the token being shifted unless it is eof. */ + /* Discard the shifted token unless it is eof. */ if (yychar != YYEOF) yychar = YYEMPTY; + yystate = yyn; *++yyvsp = yylval; -#ifdef YYLSP_NEEDED - *++yylsp = yylloc; -#endif - - /* count tokens shifted since error; after three, turn off error status. */ - if (yyerrstatus) yyerrstatus--; - yystate = yyn; goto yynewstate; -/* Do the default action for the current state. */ -yydefault: +/*-----------------------------------------------------------. +| yydefault -- do the default action for the current state. | +`-----------------------------------------------------------*/ +yydefault: yyn = yydefact[yystate]; if (yyn == 0) goto yyerrlab; + goto yyreduce; -/* Do a reduction. yyn is the number of a rule to reduce with. */ + +/*-----------------------------. +| yyreduce -- Do a reduction. | +`-----------------------------*/ yyreduce: + /* yyn is the number of a rule to reduce with. */ yylen = yyr2[yyn]; - if (yylen > 0) - yyval = yyvsp[1-yylen]; /* implement default value of the action */ - -#if YYDEBUG != 0 - if (yydebug) - { - int i; - - fprintf (stderr, "Reducing via rule %d (line %d), ", - yyn, yyrline[yyn]); - /* Print the symbols being reduced, and their result. */ - for (i = yyprhs[yyn]; yyrhs[i] > 0; i++) - fprintf (stderr, "%s ", yytname[yyrhs[i]]); - fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]); - } -#endif + /* If YYLEN is nonzero, implement the default value of the action: + `$$ = $1'. + Otherwise, the following line sets YYVAL to garbage. + This behavior is undocumented and Bison + users should not rely upon it. Assigning to YYVAL + unconditionally makes the parser a bit smaller, and it avoids a + GCC warning that YYVAL may be used uninitialized. */ + yyval = yyvsp[1-yylen]; - switch (yyn) { -case 1: -#line 347 "/Users/chet/src/bash/src/parse.y" -{ + YY_REDUCE_PRINT (yyn); + switch (yyn) + { + case 2: +#line 370 "/Users/chet/src/bash/src/parse.y" + { /* Case of regular command. Discard the error safety net,and return the command just parsed. */ - global_command = yyvsp[-1].command; + global_command = (yyvsp[(1) - (2)].command); eof_encountered = 0; /* discard_parser_constructs (0); */ + if (parser_state & PST_CMDSUBST) + parser_state |= PST_EOFTOKEN; YYACCEPT; - ; - break;} -case 2: -#line 356 "/Users/chet/src/bash/src/parse.y" -{ + } + break; + + case 3: +#line 381 "/Users/chet/src/bash/src/parse.y" + { /* Case of regular command, but not a very interesting one. Return a NULL command. */ global_command = (COMMAND *)NULL; + if (parser_state & PST_CMDSUBST) + parser_state |= PST_EOFTOKEN; YYACCEPT; - ; - break;} -case 3: -#line 363 "/Users/chet/src/bash/src/parse.y" -{ + } + break; + + case 4: +#line 390 "/Users/chet/src/bash/src/parse.y" + { /* Error during parsing. Return NULL command. */ global_command = (COMMAND *)NULL; eof_encountered = 0; /* discard_parser_constructs (1); */ - if (interactive) + if (interactive && parse_and_execute_level == 0) { YYACCEPT; } @@ -1322,515 +2114,608 @@ case 3: { YYABORT; } - ; - break;} -case 4: -#line 378 "/Users/chet/src/bash/src/parse.y" -{ + } + break; + + case 5: +#line 405 "/Users/chet/src/bash/src/parse.y" + { /* Case of EOF seen by itself. Do ignoreeof or not. */ global_command = (COMMAND *)NULL; handle_eof_input_unit (); YYACCEPT; - ; - break;} -case 5: -#line 388 "/Users/chet/src/bash/src/parse.y" -{ yyval.word_list = make_word_list (yyvsp[0].word, (WORD_LIST *)NULL); ; - break;} -case 6: -#line 390 "/Users/chet/src/bash/src/parse.y" -{ yyval.word_list = make_word_list (yyvsp[0].word, yyvsp[-1].word_list); ; - break;} -case 7: -#line 394 "/Users/chet/src/bash/src/parse.y" -{ - redir.filename = yyvsp[0].word; - yyval.redirect = make_redirection (1, r_output_direction, redir); - ; - break;} -case 8: -#line 399 "/Users/chet/src/bash/src/parse.y" -{ - redir.filename = yyvsp[0].word; - yyval.redirect = make_redirection (0, r_input_direction, redir); - ; - break;} -case 9: -#line 404 "/Users/chet/src/bash/src/parse.y" -{ - redir.filename = yyvsp[0].word; - yyval.redirect = make_redirection (yyvsp[-2].number, r_output_direction, redir); - ; - break;} -case 10: -#line 409 "/Users/chet/src/bash/src/parse.y" -{ - redir.filename = yyvsp[0].word; - yyval.redirect = make_redirection (yyvsp[-2].number, r_input_direction, redir); - ; - break;} -case 11: -#line 414 "/Users/chet/src/bash/src/parse.y" -{ - redir.filename = yyvsp[0].word; - yyval.redirect = make_redirection (1, r_appending_to, redir); - ; - break;} -case 12: -#line 419 "/Users/chet/src/bash/src/parse.y" -{ - redir.filename = yyvsp[0].word; - yyval.redirect = make_redirection (yyvsp[-2].number, r_appending_to, redir); - ; - break;} -case 13: -#line 424 "/Users/chet/src/bash/src/parse.y" -{ - redir.filename = yyvsp[0].word; - yyval.redirect = make_redirection (0, r_reading_until, redir); - redir_stack[need_here_doc++] = yyval.redirect; - ; - break;} -case 14: -#line 430 "/Users/chet/src/bash/src/parse.y" -{ - redir.filename = yyvsp[0].word; - yyval.redirect = make_redirection (yyvsp[-2].number, r_reading_until, redir); - redir_stack[need_here_doc++] = yyval.redirect; - ; - break;} -case 15: + } + break; + + case 6: +#line 415 "/Users/chet/src/bash/src/parse.y" + { (yyval.word_list) = make_word_list ((yyvsp[(1) - (1)].word), (WORD_LIST *)NULL); } + break; + + case 7: +#line 417 "/Users/chet/src/bash/src/parse.y" + { (yyval.word_list) = make_word_list ((yyvsp[(2) - (2)].word), (yyvsp[(1) - (2)].word_list)); } + break; + + case 8: +#line 421 "/Users/chet/src/bash/src/parse.y" + { + redir.filename = (yyvsp[(2) - (2)].word); + (yyval.redirect) = make_redirection (1, r_output_direction, redir); + } + break; + + case 9: +#line 426 "/Users/chet/src/bash/src/parse.y" + { + redir.filename = (yyvsp[(2) - (2)].word); + (yyval.redirect) = make_redirection (0, r_input_direction, redir); + } + break; + + case 10: +#line 431 "/Users/chet/src/bash/src/parse.y" + { + redir.filename = (yyvsp[(3) - (3)].word); + (yyval.redirect) = make_redirection ((yyvsp[(1) - (3)].number), r_output_direction, redir); + } + break; + + case 11: #line 436 "/Users/chet/src/bash/src/parse.y" -{ - redir.filename = yyvsp[0].word; - yyval.redirect = make_redirection (0, r_reading_string, redir); - ; - break;} -case 16: + { + redir.filename = (yyvsp[(3) - (3)].word); + (yyval.redirect) = make_redirection ((yyvsp[(1) - (3)].number), r_input_direction, redir); + } + break; + + case 12: #line 441 "/Users/chet/src/bash/src/parse.y" -{ - redir.filename = yyvsp[0].word; - yyval.redirect = make_redirection (yyvsp[-2].number, r_reading_string, redir); - ; - break;} -case 17: + { + redir.filename = (yyvsp[(2) - (2)].word); + (yyval.redirect) = make_redirection (1, r_appending_to, redir); + } + break; + + case 13: #line 446 "/Users/chet/src/bash/src/parse.y" -{ - redir.dest = yyvsp[0].number; - yyval.redirect = make_redirection (0, r_duplicating_input, redir); - ; - break;} -case 18: + { + redir.filename = (yyvsp[(3) - (3)].word); + (yyval.redirect) = make_redirection ((yyvsp[(1) - (3)].number), r_appending_to, redir); + } + break; + + case 14: #line 451 "/Users/chet/src/bash/src/parse.y" -{ - redir.dest = yyvsp[0].number; - yyval.redirect = make_redirection (yyvsp[-2].number, r_duplicating_input, redir); - ; - break;} -case 19: -#line 456 "/Users/chet/src/bash/src/parse.y" -{ - redir.dest = yyvsp[0].number; - yyval.redirect = make_redirection (1, r_duplicating_output, redir); - ; - break;} -case 20: -#line 461 "/Users/chet/src/bash/src/parse.y" -{ - redir.dest = yyvsp[0].number; - yyval.redirect = make_redirection (yyvsp[-2].number, r_duplicating_output, redir); - ; - break;} -case 21: -#line 466 "/Users/chet/src/bash/src/parse.y" -{ - redir.filename = yyvsp[0].word; - yyval.redirect = make_redirection (0, r_duplicating_input_word, redir); - ; - break;} -case 22: -#line 471 "/Users/chet/src/bash/src/parse.y" -{ - redir.filename = yyvsp[0].word; - yyval.redirect = make_redirection (yyvsp[-2].number, r_duplicating_input_word, redir); - ; - break;} -case 23: -#line 476 "/Users/chet/src/bash/src/parse.y" -{ - redir.filename = yyvsp[0].word; - yyval.redirect = make_redirection (1, r_duplicating_output_word, redir); - ; - break;} -case 24: -#line 481 "/Users/chet/src/bash/src/parse.y" -{ - redir.filename = yyvsp[0].word; - yyval.redirect = make_redirection (yyvsp[-2].number, r_duplicating_output_word, redir); - ; - break;} -case 25: -#line 486 "/Users/chet/src/bash/src/parse.y" -{ - redir.filename = yyvsp[0].word; - yyval.redirect = make_redirection - (0, r_deblank_reading_until, redir); - redir_stack[need_here_doc++] = yyval.redirect; - ; - break;} -case 26: + { + redir.filename = (yyvsp[(2) - (2)].word); + (yyval.redirect) = make_redirection (0, r_reading_until, redir); + redir_stack[need_here_doc++] = (yyval.redirect); + } + break; + + case 15: +#line 457 "/Users/chet/src/bash/src/parse.y" + { + redir.filename = (yyvsp[(3) - (3)].word); + (yyval.redirect) = make_redirection ((yyvsp[(1) - (3)].number), r_reading_until, redir); + redir_stack[need_here_doc++] = (yyval.redirect); + } + break; + + case 16: +#line 463 "/Users/chet/src/bash/src/parse.y" + { + redir.filename = (yyvsp[(2) - (2)].word); + (yyval.redirect) = make_redirection (0, r_reading_string, redir); + } + break; + + case 17: +#line 468 "/Users/chet/src/bash/src/parse.y" + { + redir.filename = (yyvsp[(3) - (3)].word); + (yyval.redirect) = make_redirection ((yyvsp[(1) - (3)].number), r_reading_string, redir); + } + break; + + case 18: +#line 473 "/Users/chet/src/bash/src/parse.y" + { + redir.dest = (yyvsp[(2) - (2)].number); + (yyval.redirect) = make_redirection (0, r_duplicating_input, redir); + } + break; + + case 19: +#line 478 "/Users/chet/src/bash/src/parse.y" + { + redir.dest = (yyvsp[(3) - (3)].number); + (yyval.redirect) = make_redirection ((yyvsp[(1) - (3)].number), r_duplicating_input, redir); + } + break; + + case 20: +#line 483 "/Users/chet/src/bash/src/parse.y" + { + redir.dest = (yyvsp[(2) - (2)].number); + (yyval.redirect) = make_redirection (1, r_duplicating_output, redir); + } + break; + + case 21: +#line 488 "/Users/chet/src/bash/src/parse.y" + { + redir.dest = (yyvsp[(3) - (3)].number); + (yyval.redirect) = make_redirection ((yyvsp[(1) - (3)].number), r_duplicating_output, redir); + } + break; + + case 22: #line 493 "/Users/chet/src/bash/src/parse.y" -{ - redir.filename = yyvsp[0].word; - yyval.redirect = make_redirection - (yyvsp[-2].number, r_deblank_reading_until, redir); - redir_stack[need_here_doc++] = yyval.redirect; - ; - break;} -case 27: -#line 500 "/Users/chet/src/bash/src/parse.y" -{ + { + redir.filename = (yyvsp[(2) - (2)].word); + (yyval.redirect) = make_redirection (0, r_duplicating_input_word, redir); + } + break; + + case 23: +#line 498 "/Users/chet/src/bash/src/parse.y" + { + redir.filename = (yyvsp[(3) - (3)].word); + (yyval.redirect) = make_redirection ((yyvsp[(1) - (3)].number), r_duplicating_input_word, redir); + } + break; + + case 24: +#line 503 "/Users/chet/src/bash/src/parse.y" + { + redir.filename = (yyvsp[(2) - (2)].word); + (yyval.redirect) = make_redirection (1, r_duplicating_output_word, redir); + } + break; + + case 25: +#line 508 "/Users/chet/src/bash/src/parse.y" + { + redir.filename = (yyvsp[(3) - (3)].word); + (yyval.redirect) = make_redirection ((yyvsp[(1) - (3)].number), r_duplicating_output_word, redir); + } + break; + + case 26: +#line 513 "/Users/chet/src/bash/src/parse.y" + { + redir.filename = (yyvsp[(2) - (2)].word); + (yyval.redirect) = make_redirection + (0, r_deblank_reading_until, redir); + redir_stack[need_here_doc++] = (yyval.redirect); + } + break; + + case 27: +#line 520 "/Users/chet/src/bash/src/parse.y" + { + redir.filename = (yyvsp[(3) - (3)].word); + (yyval.redirect) = make_redirection + ((yyvsp[(1) - (3)].number), r_deblank_reading_until, redir); + redir_stack[need_here_doc++] = (yyval.redirect); + } + break; + + case 28: +#line 527 "/Users/chet/src/bash/src/parse.y" + { redir.dest = 0; - yyval.redirect = make_redirection (1, r_close_this, redir); - ; - break;} -case 28: -#line 505 "/Users/chet/src/bash/src/parse.y" -{ + (yyval.redirect) = make_redirection (1, r_close_this, redir); + } + break; + + case 29: +#line 532 "/Users/chet/src/bash/src/parse.y" + { redir.dest = 0; - yyval.redirect = make_redirection (yyvsp[-2].number, r_close_this, redir); - ; - break;} -case 29: -#line 510 "/Users/chet/src/bash/src/parse.y" -{ + (yyval.redirect) = make_redirection ((yyvsp[(1) - (3)].number), r_close_this, redir); + } + break; + + case 30: +#line 537 "/Users/chet/src/bash/src/parse.y" + { redir.dest = 0; - yyval.redirect = make_redirection (0, r_close_this, redir); - ; - break;} -case 30: -#line 515 "/Users/chet/src/bash/src/parse.y" -{ + (yyval.redirect) = make_redirection (0, r_close_this, redir); + } + break; + + case 31: +#line 542 "/Users/chet/src/bash/src/parse.y" + { redir.dest = 0; - yyval.redirect = make_redirection (yyvsp[-2].number, r_close_this, redir); - ; - break;} -case 31: -#line 520 "/Users/chet/src/bash/src/parse.y" -{ - redir.filename = yyvsp[0].word; - yyval.redirect = make_redirection (1, r_err_and_out, redir); - ; - break;} -case 32: -#line 525 "/Users/chet/src/bash/src/parse.y" -{ - redir.filename = yyvsp[0].word; - yyval.redirect = make_redirection (yyvsp[-2].number, r_input_output, redir); - ; - break;} -case 33: -#line 530 "/Users/chet/src/bash/src/parse.y" -{ - redir.filename = yyvsp[0].word; - yyval.redirect = make_redirection (0, r_input_output, redir); - ; - break;} -case 34: -#line 535 "/Users/chet/src/bash/src/parse.y" -{ - redir.filename = yyvsp[0].word; - yyval.redirect = make_redirection (1, r_output_force, redir); - ; - break;} -case 35: -#line 540 "/Users/chet/src/bash/src/parse.y" -{ - redir.filename = yyvsp[0].word; - yyval.redirect = make_redirection (yyvsp[-2].number, r_output_force, redir); - ; - break;} -case 36: + (yyval.redirect) = make_redirection ((yyvsp[(1) - (3)].number), r_close_this, redir); + } + break; + + case 32: #line 547 "/Users/chet/src/bash/src/parse.y" -{ yyval.element.word = yyvsp[0].word; yyval.element.redirect = 0; ; - break;} -case 37: -#line 549 "/Users/chet/src/bash/src/parse.y" -{ yyval.element.word = yyvsp[0].word; yyval.element.redirect = 0; ; - break;} -case 38: -#line 551 "/Users/chet/src/bash/src/parse.y" -{ yyval.element.redirect = yyvsp[0].redirect; yyval.element.word = 0; ; - break;} -case 39: -#line 555 "/Users/chet/src/bash/src/parse.y" -{ - yyval.redirect = yyvsp[0].redirect; - ; - break;} -case 40: -#line 559 "/Users/chet/src/bash/src/parse.y" -{ + { + redir.filename = (yyvsp[(2) - (2)].word); + (yyval.redirect) = make_redirection (1, r_err_and_out, redir); + } + break; + + case 33: +#line 552 "/Users/chet/src/bash/src/parse.y" + { + redir.filename = (yyvsp[(2) - (2)].word); + (yyval.redirect) = make_redirection (1, r_append_err_and_out, redir); + } + break; + + case 34: +#line 557 "/Users/chet/src/bash/src/parse.y" + { + redir.filename = (yyvsp[(3) - (3)].word); + (yyval.redirect) = make_redirection ((yyvsp[(1) - (3)].number), r_input_output, redir); + } + break; + + case 35: +#line 562 "/Users/chet/src/bash/src/parse.y" + { + redir.filename = (yyvsp[(2) - (2)].word); + (yyval.redirect) = make_redirection (0, r_input_output, redir); + } + break; + + case 36: +#line 567 "/Users/chet/src/bash/src/parse.y" + { + redir.filename = (yyvsp[(2) - (2)].word); + (yyval.redirect) = make_redirection (1, r_output_force, redir); + } + break; + + case 37: +#line 572 "/Users/chet/src/bash/src/parse.y" + { + redir.filename = (yyvsp[(3) - (3)].word); + (yyval.redirect) = make_redirection ((yyvsp[(1) - (3)].number), r_output_force, redir); + } + break; + + case 38: +#line 579 "/Users/chet/src/bash/src/parse.y" + { (yyval.element).word = (yyvsp[(1) - (1)].word); (yyval.element).redirect = 0; } + break; + + case 39: +#line 581 "/Users/chet/src/bash/src/parse.y" + { (yyval.element).word = (yyvsp[(1) - (1)].word); (yyval.element).redirect = 0; } + break; + + case 40: +#line 583 "/Users/chet/src/bash/src/parse.y" + { (yyval.element).redirect = (yyvsp[(1) - (1)].redirect); (yyval.element).word = 0; } + break; + + case 41: +#line 587 "/Users/chet/src/bash/src/parse.y" + { + (yyval.redirect) = (yyvsp[(1) - (1)].redirect); + } + break; + + case 42: +#line 591 "/Users/chet/src/bash/src/parse.y" + { register REDIRECT *t; - for (t = yyvsp[-1].redirect; t->next; t = t->next) + for (t = (yyvsp[(1) - (2)].redirect); t->next; t = t->next) ; - t->next = yyvsp[0].redirect; - yyval.redirect = yyvsp[-1].redirect; - ; - break;} -case 41: -#line 570 "/Users/chet/src/bash/src/parse.y" -{ yyval.command = make_simple_command (yyvsp[0].element, (COMMAND *)NULL); ; - break;} -case 42: -#line 572 "/Users/chet/src/bash/src/parse.y" -{ yyval.command = make_simple_command (yyvsp[0].element, yyvsp[-1].command); ; - break;} -case 43: -#line 576 "/Users/chet/src/bash/src/parse.y" -{ yyval.command = clean_simple_command (yyvsp[0].command); ; - break;} -case 44: -#line 578 "/Users/chet/src/bash/src/parse.y" -{ yyval.command = yyvsp[0].command; ; - break;} -case 45: -#line 580 "/Users/chet/src/bash/src/parse.y" -{ + t->next = (yyvsp[(2) - (2)].redirect); + (yyval.redirect) = (yyvsp[(1) - (2)].redirect); + } + break; + + case 43: +#line 602 "/Users/chet/src/bash/src/parse.y" + { (yyval.command) = make_simple_command ((yyvsp[(1) - (1)].element), (COMMAND *)NULL); } + break; + + case 44: +#line 604 "/Users/chet/src/bash/src/parse.y" + { (yyval.command) = make_simple_command ((yyvsp[(2) - (2)].element), (yyvsp[(1) - (2)].command)); } + break; + + case 45: +#line 608 "/Users/chet/src/bash/src/parse.y" + { (yyval.command) = clean_simple_command ((yyvsp[(1) - (1)].command)); } + break; + + case 46: +#line 610 "/Users/chet/src/bash/src/parse.y" + { (yyval.command) = (yyvsp[(1) - (1)].command); } + break; + + case 47: +#line 612 "/Users/chet/src/bash/src/parse.y" + { COMMAND *tc; - tc = yyvsp[-1].command; + tc = (yyvsp[(1) - (2)].command); if (tc->redirects) { register REDIRECT *t; for (t = tc->redirects; t->next; t = t->next) ; - t->next = yyvsp[0].redirect; + t->next = (yyvsp[(2) - (2)].redirect); } else - tc->redirects = yyvsp[0].redirect; - yyval.command = yyvsp[-1].command; - ; - break;} -case 46: -#line 596 "/Users/chet/src/bash/src/parse.y" -{ yyval.command = yyvsp[0].command; ; - break;} -case 47: -#line 600 "/Users/chet/src/bash/src/parse.y" -{ yyval.command = yyvsp[0].command; ; - break;} -case 48: -#line 602 "/Users/chet/src/bash/src/parse.y" -{ yyval.command = yyvsp[0].command; ; - break;} -case 49: -#line 604 "/Users/chet/src/bash/src/parse.y" -{ yyval.command = make_while_command (yyvsp[-3].command, yyvsp[-1].command); ; - break;} -case 50: -#line 606 "/Users/chet/src/bash/src/parse.y" -{ yyval.command = make_until_command (yyvsp[-3].command, yyvsp[-1].command); ; - break;} -case 51: -#line 608 "/Users/chet/src/bash/src/parse.y" -{ yyval.command = yyvsp[0].command; ; - break;} -case 52: -#line 610 "/Users/chet/src/bash/src/parse.y" -{ yyval.command = yyvsp[0].command; ; - break;} -case 53: -#line 612 "/Users/chet/src/bash/src/parse.y" -{ yyval.command = yyvsp[0].command; ; - break;} -case 54: -#line 614 "/Users/chet/src/bash/src/parse.y" -{ yyval.command = yyvsp[0].command; ; - break;} -case 55: -#line 616 "/Users/chet/src/bash/src/parse.y" -{ yyval.command = yyvsp[0].command; ; - break;} -case 56: -#line 618 "/Users/chet/src/bash/src/parse.y" -{ yyval.command = yyvsp[0].command; ; - break;} -case 57: -#line 620 "/Users/chet/src/bash/src/parse.y" -{ yyval.command = yyvsp[0].command; ; - break;} -case 58: -#line 624 "/Users/chet/src/bash/src/parse.y" -{ - yyval.command = make_for_command (yyvsp[-4].word, add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), yyvsp[-1].command, word_lineno[word_top]); + tc->redirects = (yyvsp[(2) - (2)].redirect); + (yyval.command) = (yyvsp[(1) - (2)].command); + } + break; + + case 48: +#line 628 "/Users/chet/src/bash/src/parse.y" + { (yyval.command) = (yyvsp[(1) - (1)].command); } + break; + + case 49: +#line 630 "/Users/chet/src/bash/src/parse.y" + { (yyval.command) = (yyvsp[(1) - (1)].command); } + break; + + case 50: +#line 634 "/Users/chet/src/bash/src/parse.y" + { (yyval.command) = (yyvsp[(1) - (1)].command); } + break; + + case 51: +#line 636 "/Users/chet/src/bash/src/parse.y" + { (yyval.command) = (yyvsp[(1) - (1)].command); } + break; + + case 52: +#line 638 "/Users/chet/src/bash/src/parse.y" + { (yyval.command) = make_while_command ((yyvsp[(2) - (5)].command), (yyvsp[(4) - (5)].command)); } + break; + + case 53: +#line 640 "/Users/chet/src/bash/src/parse.y" + { (yyval.command) = make_until_command ((yyvsp[(2) - (5)].command), (yyvsp[(4) - (5)].command)); } + break; + + case 54: +#line 642 "/Users/chet/src/bash/src/parse.y" + { (yyval.command) = (yyvsp[(1) - (1)].command); } + break; + + case 55: +#line 644 "/Users/chet/src/bash/src/parse.y" + { (yyval.command) = (yyvsp[(1) - (1)].command); } + break; + + case 56: +#line 646 "/Users/chet/src/bash/src/parse.y" + { (yyval.command) = (yyvsp[(1) - (1)].command); } + break; + + case 57: +#line 648 "/Users/chet/src/bash/src/parse.y" + { (yyval.command) = (yyvsp[(1) - (1)].command); } + break; + + case 58: +#line 650 "/Users/chet/src/bash/src/parse.y" + { (yyval.command) = (yyvsp[(1) - (1)].command); } + break; + + case 59: +#line 652 "/Users/chet/src/bash/src/parse.y" + { (yyval.command) = (yyvsp[(1) - (1)].command); } + break; + + case 60: +#line 654 "/Users/chet/src/bash/src/parse.y" + { (yyval.command) = (yyvsp[(1) - (1)].command); } + break; + + case 61: +#line 658 "/Users/chet/src/bash/src/parse.y" + { + (yyval.command) = make_for_command ((yyvsp[(2) - (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - (6)].command), word_lineno[word_top]); if (word_top > 0) word_top--; - ; - break;} -case 59: -#line 629 "/Users/chet/src/bash/src/parse.y" -{ - yyval.command = make_for_command (yyvsp[-4].word, add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), yyvsp[-1].command, word_lineno[word_top]); + } + break; + + case 62: +#line 663 "/Users/chet/src/bash/src/parse.y" + { + (yyval.command) = make_for_command ((yyvsp[(2) - (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - (6)].command), word_lineno[word_top]); if (word_top > 0) word_top--; - ; - break;} -case 60: -#line 634 "/Users/chet/src/bash/src/parse.y" -{ - yyval.command = make_for_command (yyvsp[-5].word, add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), yyvsp[-1].command, word_lineno[word_top]); + } + break; + + case 63: +#line 668 "/Users/chet/src/bash/src/parse.y" + { + (yyval.command) = make_for_command ((yyvsp[(2) - (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - (7)].command), word_lineno[word_top]); if (word_top > 0) word_top--; - ; - break;} -case 61: -#line 639 "/Users/chet/src/bash/src/parse.y" -{ - yyval.command = make_for_command (yyvsp[-5].word, add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), yyvsp[-1].command, word_lineno[word_top]); + } + break; + + case 64: +#line 673 "/Users/chet/src/bash/src/parse.y" + { + (yyval.command) = make_for_command ((yyvsp[(2) - (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - (7)].command), word_lineno[word_top]); if (word_top > 0) word_top--; - ; - break;} -case 62: -#line 644 "/Users/chet/src/bash/src/parse.y" -{ - yyval.command = make_for_command (yyvsp[-8].word, REVERSE_LIST (yyvsp[-5].word_list, WORD_LIST *), yyvsp[-1].command, word_lineno[word_top]); + } + break; + + case 65: +#line 678 "/Users/chet/src/bash/src/parse.y" + { + (yyval.command) = make_for_command ((yyvsp[(2) - (10)].word), REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), (yyvsp[(9) - (10)].command), word_lineno[word_top]); if (word_top > 0) word_top--; - ; - break;} -case 63: -#line 649 "/Users/chet/src/bash/src/parse.y" -{ - yyval.command = make_for_command (yyvsp[-8].word, REVERSE_LIST (yyvsp[-5].word_list, WORD_LIST *), yyvsp[-1].command, word_lineno[word_top]); + } + break; + + case 66: +#line 683 "/Users/chet/src/bash/src/parse.y" + { + (yyval.command) = make_for_command ((yyvsp[(2) - (10)].word), REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), (yyvsp[(9) - (10)].command), word_lineno[word_top]); if (word_top > 0) word_top--; - ; - break;} -case 64: -#line 654 "/Users/chet/src/bash/src/parse.y" -{ - yyval.command = make_for_command (yyvsp[-7].word, (WORD_LIST *)NULL, yyvsp[-1].command, word_lineno[word_top]); + } + break; + + case 67: +#line 688 "/Users/chet/src/bash/src/parse.y" + { + (yyval.command) = make_for_command ((yyvsp[(2) - (9)].word), (WORD_LIST *)NULL, (yyvsp[(8) - (9)].command), word_lineno[word_top]); if (word_top > 0) word_top--; - ; - break;} -case 65: -#line 659 "/Users/chet/src/bash/src/parse.y" -{ - yyval.command = make_for_command (yyvsp[-7].word, (WORD_LIST *)NULL, yyvsp[-1].command, word_lineno[word_top]); + } + break; + + case 68: +#line 693 "/Users/chet/src/bash/src/parse.y" + { + (yyval.command) = make_for_command ((yyvsp[(2) - (9)].word), (WORD_LIST *)NULL, (yyvsp[(8) - (9)].command), word_lineno[word_top]); if (word_top > 0) word_top--; - ; - break;} -case 66: -#line 666 "/Users/chet/src/bash/src/parse.y" -{ - yyval.command = make_arith_for_command (yyvsp[-5].word_list, yyvsp[-1].command, arith_for_lineno); + } + break; + + case 69: +#line 700 "/Users/chet/src/bash/src/parse.y" + { + (yyval.command) = make_arith_for_command ((yyvsp[(2) - (7)].word_list), (yyvsp[(6) - (7)].command), arith_for_lineno); if (word_top > 0) word_top--; - ; - break;} -case 67: -#line 671 "/Users/chet/src/bash/src/parse.y" -{ - yyval.command = make_arith_for_command (yyvsp[-5].word_list, yyvsp[-1].command, arith_for_lineno); + } + break; + + case 70: +#line 705 "/Users/chet/src/bash/src/parse.y" + { + (yyval.command) = make_arith_for_command ((yyvsp[(2) - (7)].word_list), (yyvsp[(6) - (7)].command), arith_for_lineno); if (word_top > 0) word_top--; - ; - break;} -case 68: -#line 676 "/Users/chet/src/bash/src/parse.y" -{ - yyval.command = make_arith_for_command (yyvsp[-3].word_list, yyvsp[-1].command, arith_for_lineno); + } + break; + + case 71: +#line 710 "/Users/chet/src/bash/src/parse.y" + { + (yyval.command) = make_arith_for_command ((yyvsp[(2) - (5)].word_list), (yyvsp[(4) - (5)].command), arith_for_lineno); if (word_top > 0) word_top--; - ; - break;} -case 69: -#line 681 "/Users/chet/src/bash/src/parse.y" -{ - yyval.command = make_arith_for_command (yyvsp[-3].word_list, yyvsp[-1].command, arith_for_lineno); + } + break; + + case 72: +#line 715 "/Users/chet/src/bash/src/parse.y" + { + (yyval.command) = make_arith_for_command ((yyvsp[(2) - (5)].word_list), (yyvsp[(4) - (5)].command), arith_for_lineno); if (word_top > 0) word_top--; - ; - break;} -case 70: -#line 688 "/Users/chet/src/bash/src/parse.y" -{ - yyval.command = make_select_command (yyvsp[-4].word, add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), yyvsp[-1].command, word_lineno[word_top]); + } + break; + + case 73: +#line 722 "/Users/chet/src/bash/src/parse.y" + { + (yyval.command) = make_select_command ((yyvsp[(2) - (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - (6)].command), word_lineno[word_top]); if (word_top > 0) word_top--; - ; - break;} -case 71: -#line 693 "/Users/chet/src/bash/src/parse.y" -{ - yyval.command = make_select_command (yyvsp[-4].word, add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), yyvsp[-1].command, word_lineno[word_top]); + } + break; + + case 74: +#line 727 "/Users/chet/src/bash/src/parse.y" + { + (yyval.command) = make_select_command ((yyvsp[(2) - (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - (6)].command), word_lineno[word_top]); if (word_top > 0) word_top--; - ; - break;} -case 72: -#line 698 "/Users/chet/src/bash/src/parse.y" -{ - yyval.command = make_select_command (yyvsp[-5].word, add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), yyvsp[-1].command, word_lineno[word_top]); + } + break; + + case 75: +#line 732 "/Users/chet/src/bash/src/parse.y" + { + (yyval.command) = make_select_command ((yyvsp[(2) - (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - (7)].command), word_lineno[word_top]); if (word_top > 0) word_top--; - ; - break;} -case 73: -#line 703 "/Users/chet/src/bash/src/parse.y" -{ - yyval.command = make_select_command (yyvsp[-5].word, add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), yyvsp[-1].command, word_lineno[word_top]); + } + break; + + case 76: +#line 737 "/Users/chet/src/bash/src/parse.y" + { + (yyval.command) = make_select_command ((yyvsp[(2) - (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - (7)].command), word_lineno[word_top]); if (word_top > 0) word_top--; - ; - break;} -case 74: -#line 708 "/Users/chet/src/bash/src/parse.y" -{ - yyval.command = make_select_command (yyvsp[-8].word, REVERSE_LIST (yyvsp[-5].word_list, WORD_LIST *), yyvsp[-1].command, word_lineno[word_top]); + } + break; + + case 77: +#line 742 "/Users/chet/src/bash/src/parse.y" + { + (yyval.command) = make_select_command ((yyvsp[(2) - (10)].word), REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), (yyvsp[(9) - (10)].command), word_lineno[word_top]); if (word_top > 0) word_top--; - ; - break;} -case 75: -#line 713 "/Users/chet/src/bash/src/parse.y" -{ - yyval.command = make_select_command (yyvsp[-8].word, REVERSE_LIST (yyvsp[-5].word_list, WORD_LIST *), yyvsp[-1].command, word_lineno[word_top]); + } + break; + + case 78: +#line 747 "/Users/chet/src/bash/src/parse.y" + { + (yyval.command) = make_select_command ((yyvsp[(2) - (10)].word), REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), (yyvsp[(9) - (10)].command), word_lineno[word_top]); if (word_top > 0) word_top--; - ; - break;} -case 76: -#line 720 "/Users/chet/src/bash/src/parse.y" -{ - yyval.command = make_case_command (yyvsp[-4].word, (PATTERN_LIST *)NULL, word_lineno[word_top]); + } + break; + + case 79: +#line 754 "/Users/chet/src/bash/src/parse.y" + { + (yyval.command) = make_case_command ((yyvsp[(2) - (6)].word), (PATTERN_LIST *)NULL, word_lineno[word_top]); if (word_top > 0) word_top--; - ; - break;} -case 77: -#line 725 "/Users/chet/src/bash/src/parse.y" -{ - yyval.command = make_case_command (yyvsp[-5].word, yyvsp[-2].pattern, word_lineno[word_top]); + } + break; + + case 80: +#line 759 "/Users/chet/src/bash/src/parse.y" + { + (yyval.command) = make_case_command ((yyvsp[(2) - (7)].word), (yyvsp[(5) - (7)].pattern), word_lineno[word_top]); if (word_top > 0) word_top--; - ; - break;} -case 78: -#line 730 "/Users/chet/src/bash/src/parse.y" -{ - yyval.command = make_case_command (yyvsp[-4].word, yyvsp[-1].pattern, word_lineno[word_top]); + } + break; + + case 81: +#line 764 "/Users/chet/src/bash/src/parse.y" + { + (yyval.command) = make_case_command ((yyvsp[(2) - (6)].word), (yyvsp[(5) - (6)].pattern), word_lineno[word_top]); if (word_top > 0) word_top--; - ; - break;} -case 79: -#line 737 "/Users/chet/src/bash/src/parse.y" -{ yyval.command = make_function_def (yyvsp[-4].word, yyvsp[0].command, function_dstart, function_bstart); ; - break;} -case 80: -#line 740 "/Users/chet/src/bash/src/parse.y" -{ yyval.command = make_function_def (yyvsp[-4].word, yyvsp[0].command, function_dstart, function_bstart); ; - break;} -case 81: -#line 743 "/Users/chet/src/bash/src/parse.y" -{ yyval.command = make_function_def (yyvsp[-2].word, yyvsp[0].command, function_dstart, function_bstart); ; - break;} -case 82: -#line 748 "/Users/chet/src/bash/src/parse.y" -{ yyval.command = yyvsp[0].command; ; - break;} -case 83: -#line 750 "/Users/chet/src/bash/src/parse.y" -{ + } + break; + + case 82: +#line 771 "/Users/chet/src/bash/src/parse.y" + { (yyval.command) = make_function_def ((yyvsp[(1) - (5)].word), (yyvsp[(5) - (5)].command), function_dstart, function_bstart); } + break; + + case 83: +#line 774 "/Users/chet/src/bash/src/parse.y" + { (yyval.command) = make_function_def ((yyvsp[(2) - (6)].word), (yyvsp[(6) - (6)].command), function_dstart, function_bstart); } + break; + + case 84: +#line 777 "/Users/chet/src/bash/src/parse.y" + { (yyval.command) = make_function_def ((yyvsp[(2) - (4)].word), (yyvsp[(4) - (4)].command), function_dstart, function_bstart); } + break; + + case 85: +#line 781 "/Users/chet/src/bash/src/parse.y" + { (yyval.command) = (yyvsp[(1) - (1)].command); } + break; + + case 86: +#line 783 "/Users/chet/src/bash/src/parse.y" + { COMMAND *tc; - tc = yyvsp[-1].command; + tc = (yyvsp[(1) - (2)].command); /* According to Posix.2 3.9.5, redirections specified after the body of a function should be attached to the function and performed when @@ -1849,243 +2734,397 @@ case 83: register REDIRECT *t; for (t = tc->redirects; t->next; t = t->next) ; - t->next = yyvsp[0].redirect; + t->next = (yyvsp[(2) - (2)].redirect); } else - tc->redirects = yyvsp[0].redirect; - yyval.command = yyvsp[-1].command; - ; - break;} -case 84: -#line 781 "/Users/chet/src/bash/src/parse.y" -{ - yyval.command = make_subshell_command (yyvsp[-1].command); - yyval.command->flags |= CMD_WANT_SUBSHELL; - ; - break;} -case 85: -#line 788 "/Users/chet/src/bash/src/parse.y" -{ yyval.command = make_if_command (yyvsp[-3].command, yyvsp[-1].command, (COMMAND *)NULL); ; - break;} -case 86: -#line 790 "/Users/chet/src/bash/src/parse.y" -{ yyval.command = make_if_command (yyvsp[-5].command, yyvsp[-3].command, yyvsp[-1].command); ; - break;} -case 87: -#line 792 "/Users/chet/src/bash/src/parse.y" -{ yyval.command = make_if_command (yyvsp[-4].command, yyvsp[-2].command, yyvsp[-1].command); ; - break;} -case 88: -#line 797 "/Users/chet/src/bash/src/parse.y" -{ yyval.command = make_group_command (yyvsp[-1].command); ; - break;} -case 89: -#line 801 "/Users/chet/src/bash/src/parse.y" -{ yyval.command = make_arith_command (yyvsp[0].word_list); ; - break;} -case 90: -#line 805 "/Users/chet/src/bash/src/parse.y" -{ yyval.command = yyvsp[-1].command; ; - break;} -case 91: -#line 809 "/Users/chet/src/bash/src/parse.y" -{ yyval.command = make_if_command (yyvsp[-2].command, yyvsp[0].command, (COMMAND *)NULL); ; - break;} -case 92: -#line 811 "/Users/chet/src/bash/src/parse.y" -{ yyval.command = make_if_command (yyvsp[-4].command, yyvsp[-2].command, yyvsp[0].command); ; - break;} -case 93: -#line 813 "/Users/chet/src/bash/src/parse.y" -{ yyval.command = make_if_command (yyvsp[-3].command, yyvsp[-1].command, yyvsp[0].command); ; - break;} -case 95: -#line 818 "/Users/chet/src/bash/src/parse.y" -{ yyvsp[0].pattern->next = yyvsp[-1].pattern; yyval.pattern = yyvsp[0].pattern; ; - break;} -case 96: -#line 822 "/Users/chet/src/bash/src/parse.y" -{ yyval.pattern = make_pattern_list (yyvsp[-2].word_list, yyvsp[0].command); ; - break;} -case 97: -#line 824 "/Users/chet/src/bash/src/parse.y" -{ yyval.pattern = make_pattern_list (yyvsp[-2].word_list, (COMMAND *)NULL); ; - break;} -case 98: + tc->redirects = (yyvsp[(2) - (2)].redirect); + (yyval.command) = (yyvsp[(1) - (2)].command); + } + break; + + case 87: +#line 814 "/Users/chet/src/bash/src/parse.y" + { + (yyval.command) = make_subshell_command ((yyvsp[(2) - (3)].command)); + (yyval.command)->flags |= CMD_WANT_SUBSHELL; + } + break; + + case 88: +#line 821 "/Users/chet/src/bash/src/parse.y" + { + (yyval.command) = make_coproc_command ("COPROC", (yyvsp[(2) - (2)].command)); + (yyval.command)->flags |= CMD_WANT_SUBSHELL|CMD_COPROC_SUBSHELL; + } + break; + + case 89: #line 826 "/Users/chet/src/bash/src/parse.y" -{ yyval.pattern = make_pattern_list (yyvsp[-2].word_list, yyvsp[0].command); ; - break;} -case 99: -#line 828 "/Users/chet/src/bash/src/parse.y" -{ yyval.pattern = make_pattern_list (yyvsp[-2].word_list, (COMMAND *)NULL); ; - break;} -case 101: -#line 833 "/Users/chet/src/bash/src/parse.y" -{ yyvsp[-1].pattern->next = yyvsp[-2].pattern; yyval.pattern = yyvsp[-1].pattern; ; - break;} -case 102: -#line 837 "/Users/chet/src/bash/src/parse.y" -{ yyval.word_list = make_word_list (yyvsp[0].word, (WORD_LIST *)NULL); ; - break;} -case 103: -#line 839 "/Users/chet/src/bash/src/parse.y" -{ yyval.word_list = make_word_list (yyvsp[0].word, yyvsp[-2].word_list); ; - break;} -case 104: + { + COMMAND *tc; + + tc = (yyvsp[(2) - (3)].command); + if (tc->redirects) + { + register REDIRECT *t; + for (t = tc->redirects; t->next; t = t->next) + ; + t->next = (yyvsp[(3) - (3)].redirect); + } + else + tc->redirects = (yyvsp[(3) - (3)].redirect); + (yyval.command) = make_coproc_command ("COPROC", (yyvsp[(2) - (3)].command)); + (yyval.command)->flags |= CMD_WANT_SUBSHELL|CMD_COPROC_SUBSHELL; + } + break; + + case 90: +#line 843 "/Users/chet/src/bash/src/parse.y" + { + (yyval.command) = make_coproc_command ((yyvsp[(2) - (3)].word)->word, (yyvsp[(3) - (3)].command)); + (yyval.command)->flags |= CMD_WANT_SUBSHELL|CMD_COPROC_SUBSHELL; + } + break; + + case 91: #line 848 "/Users/chet/src/bash/src/parse.y" -{ - yyval.command = yyvsp[0].command; + { + COMMAND *tc; + + tc = (yyvsp[(3) - (4)].command); + if (tc->redirects) + { + register REDIRECT *t; + for (t = tc->redirects; t->next; t = t->next) + ; + t->next = (yyvsp[(4) - (4)].redirect); + } + else + tc->redirects = (yyvsp[(4) - (4)].redirect); + (yyval.command) = make_coproc_command ((yyvsp[(2) - (4)].word)->word, (yyvsp[(3) - (4)].command)); + (yyval.command)->flags |= CMD_WANT_SUBSHELL|CMD_COPROC_SUBSHELL; + } + break; + + case 92: +#line 865 "/Users/chet/src/bash/src/parse.y" + { + (yyval.command) = make_coproc_command ("COPROC", clean_simple_command ((yyvsp[(2) - (2)].command))); + (yyval.command)->flags |= CMD_WANT_SUBSHELL|CMD_COPROC_SUBSHELL; + } + break; + + case 93: +#line 872 "/Users/chet/src/bash/src/parse.y" + { (yyval.command) = make_if_command ((yyvsp[(2) - (5)].command), (yyvsp[(4) - (5)].command), (COMMAND *)NULL); } + break; + + case 94: +#line 874 "/Users/chet/src/bash/src/parse.y" + { (yyval.command) = make_if_command ((yyvsp[(2) - (7)].command), (yyvsp[(4) - (7)].command), (yyvsp[(6) - (7)].command)); } + break; + + case 95: +#line 876 "/Users/chet/src/bash/src/parse.y" + { (yyval.command) = make_if_command ((yyvsp[(2) - (6)].command), (yyvsp[(4) - (6)].command), (yyvsp[(5) - (6)].command)); } + break; + + case 96: +#line 881 "/Users/chet/src/bash/src/parse.y" + { (yyval.command) = make_group_command ((yyvsp[(2) - (3)].command)); } + break; + + case 97: +#line 885 "/Users/chet/src/bash/src/parse.y" + { (yyval.command) = make_arith_command ((yyvsp[(1) - (1)].word_list)); } + break; + + case 98: +#line 889 "/Users/chet/src/bash/src/parse.y" + { (yyval.command) = (yyvsp[(2) - (3)].command); } + break; + + case 99: +#line 893 "/Users/chet/src/bash/src/parse.y" + { (yyval.command) = make_if_command ((yyvsp[(2) - (4)].command), (yyvsp[(4) - (4)].command), (COMMAND *)NULL); } + break; + + case 100: +#line 895 "/Users/chet/src/bash/src/parse.y" + { (yyval.command) = make_if_command ((yyvsp[(2) - (6)].command), (yyvsp[(4) - (6)].command), (yyvsp[(6) - (6)].command)); } + break; + + case 101: +#line 897 "/Users/chet/src/bash/src/parse.y" + { (yyval.command) = make_if_command ((yyvsp[(2) - (5)].command), (yyvsp[(4) - (5)].command), (yyvsp[(5) - (5)].command)); } + break; + + case 103: +#line 902 "/Users/chet/src/bash/src/parse.y" + { (yyvsp[(2) - (2)].pattern)->next = (yyvsp[(1) - (2)].pattern); (yyval.pattern) = (yyvsp[(2) - (2)].pattern); } + break; + + case 104: +#line 906 "/Users/chet/src/bash/src/parse.y" + { (yyval.pattern) = make_pattern_list ((yyvsp[(2) - (4)].word_list), (yyvsp[(4) - (4)].command)); } + break; + + case 105: +#line 908 "/Users/chet/src/bash/src/parse.y" + { (yyval.pattern) = make_pattern_list ((yyvsp[(2) - (4)].word_list), (COMMAND *)NULL); } + break; + + case 106: +#line 910 "/Users/chet/src/bash/src/parse.y" + { (yyval.pattern) = make_pattern_list ((yyvsp[(3) - (5)].word_list), (yyvsp[(5) - (5)].command)); } + break; + + case 107: +#line 912 "/Users/chet/src/bash/src/parse.y" + { (yyval.pattern) = make_pattern_list ((yyvsp[(3) - (5)].word_list), (COMMAND *)NULL); } + break; + + case 108: +#line 916 "/Users/chet/src/bash/src/parse.y" + { (yyval.pattern) = (yyvsp[(1) - (2)].pattern); } + break; + + case 109: +#line 918 "/Users/chet/src/bash/src/parse.y" + { (yyvsp[(2) - (3)].pattern)->next = (yyvsp[(1) - (3)].pattern); (yyval.pattern) = (yyvsp[(2) - (3)].pattern); } + break; + + case 110: +#line 920 "/Users/chet/src/bash/src/parse.y" + { (yyvsp[(1) - (2)].pattern)->flags |= CASEPAT_FALLTHROUGH; (yyval.pattern) = (yyvsp[(1) - (2)].pattern); } + break; + + case 111: +#line 922 "/Users/chet/src/bash/src/parse.y" + { (yyvsp[(2) - (3)].pattern)->flags |= CASEPAT_FALLTHROUGH; (yyvsp[(2) - (3)].pattern)->next = (yyvsp[(1) - (3)].pattern); (yyval.pattern) = (yyvsp[(2) - (3)].pattern); } + break; + + case 112: +#line 924 "/Users/chet/src/bash/src/parse.y" + { (yyvsp[(1) - (2)].pattern)->flags |= CASEPAT_TESTNEXT; (yyval.pattern) = (yyvsp[(1) - (2)].pattern); } + break; + + case 113: +#line 926 "/Users/chet/src/bash/src/parse.y" + { (yyvsp[(2) - (3)].pattern)->flags |= CASEPAT_TESTNEXT; (yyvsp[(2) - (3)].pattern)->next = (yyvsp[(1) - (3)].pattern); (yyval.pattern) = (yyvsp[(2) - (3)].pattern); } + break; + + case 114: +#line 930 "/Users/chet/src/bash/src/parse.y" + { (yyval.word_list) = make_word_list ((yyvsp[(1) - (1)].word), (WORD_LIST *)NULL); } + break; + + case 115: +#line 932 "/Users/chet/src/bash/src/parse.y" + { (yyval.word_list) = make_word_list ((yyvsp[(3) - (3)].word), (yyvsp[(1) - (3)].word_list)); } + break; + + case 116: +#line 941 "/Users/chet/src/bash/src/parse.y" + { + (yyval.command) = (yyvsp[(2) - (2)].command); if (need_here_doc) gather_here_documents (); - ; - break;} -case 106: -#line 857 "/Users/chet/src/bash/src/parse.y" -{ - yyval.command = yyvsp[0].command; - ; - break;} -case 108: -#line 864 "/Users/chet/src/bash/src/parse.y" -{ - if (yyvsp[-2].command->type == cm_connection) - yyval.command = connect_async_list (yyvsp[-2].command, (COMMAND *)NULL, '&'); + } + break; + + case 118: +#line 950 "/Users/chet/src/bash/src/parse.y" + { + (yyval.command) = (yyvsp[(2) - (2)].command); + } + break; + + case 120: +#line 957 "/Users/chet/src/bash/src/parse.y" + { + if ((yyvsp[(1) - (3)].command)->type == cm_connection) + (yyval.command) = connect_async_list ((yyvsp[(1) - (3)].command), (COMMAND *)NULL, '&'); else - yyval.command = command_connect (yyvsp[-2].command, (COMMAND *)NULL, '&'); - ; - break;} -case 110: -#line 875 "/Users/chet/src/bash/src/parse.y" -{ yyval.command = command_connect (yyvsp[-3].command, yyvsp[0].command, AND_AND); ; - break;} -case 111: -#line 877 "/Users/chet/src/bash/src/parse.y" -{ yyval.command = command_connect (yyvsp[-3].command, yyvsp[0].command, OR_OR); ; - break;} -case 112: -#line 879 "/Users/chet/src/bash/src/parse.y" -{ - if (yyvsp[-3].command->type == cm_connection) - yyval.command = connect_async_list (yyvsp[-3].command, yyvsp[0].command, '&'); + (yyval.command) = command_connect ((yyvsp[(1) - (3)].command), (COMMAND *)NULL, '&'); + } + break; + + case 122: +#line 968 "/Users/chet/src/bash/src/parse.y" + { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), AND_AND); } + break; + + case 123: +#line 970 "/Users/chet/src/bash/src/parse.y" + { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), OR_OR); } + break; + + case 124: +#line 972 "/Users/chet/src/bash/src/parse.y" + { + if ((yyvsp[(1) - (4)].command)->type == cm_connection) + (yyval.command) = connect_async_list ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), '&'); else - yyval.command = command_connect (yyvsp[-3].command, yyvsp[0].command, '&'); - ; - break;} -case 113: -#line 886 "/Users/chet/src/bash/src/parse.y" -{ yyval.command = command_connect (yyvsp[-3].command, yyvsp[0].command, ';'); ; - break;} -case 114: -#line 888 "/Users/chet/src/bash/src/parse.y" -{ yyval.command = command_connect (yyvsp[-3].command, yyvsp[0].command, ';'); ; - break;} -case 115: -#line 890 "/Users/chet/src/bash/src/parse.y" -{ yyval.command = yyvsp[0].command; ; - break;} -case 118: -#line 898 "/Users/chet/src/bash/src/parse.y" -{ yyval.number = '\n'; ; - break;} -case 119: -#line 900 "/Users/chet/src/bash/src/parse.y" -{ yyval.number = ';'; ; - break;} -case 120: -#line 902 "/Users/chet/src/bash/src/parse.y" -{ yyval.number = yacc_EOF; ; - break;} -case 123: -#line 916 "/Users/chet/src/bash/src/parse.y" -{ - yyval.command = yyvsp[0].command; + (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), '&'); + } + break; + + case 125: +#line 979 "/Users/chet/src/bash/src/parse.y" + { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), ';'); } + break; + + case 126: +#line 981 "/Users/chet/src/bash/src/parse.y" + { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), ';'); } + break; + + case 127: +#line 983 "/Users/chet/src/bash/src/parse.y" + { (yyval.command) = (yyvsp[(1) - (1)].command); } + break; + + case 130: +#line 991 "/Users/chet/src/bash/src/parse.y" + { (yyval.number) = '\n'; } + break; + + case 131: +#line 993 "/Users/chet/src/bash/src/parse.y" + { (yyval.number) = ';'; } + break; + + case 132: +#line 995 "/Users/chet/src/bash/src/parse.y" + { (yyval.number) = yacc_EOF; } + break; + + case 135: +#line 1009 "/Users/chet/src/bash/src/parse.y" + { + (yyval.command) = (yyvsp[(1) - (1)].command); if (need_here_doc) gather_here_documents (); - ; - break;} -case 124: -#line 922 "/Users/chet/src/bash/src/parse.y" -{ - if (yyvsp[-1].command->type == cm_connection) - yyval.command = connect_async_list (yyvsp[-1].command, (COMMAND *)NULL, '&'); + if ((parser_state & PST_CMDSUBST) && current_token == shell_eof_token) + { + global_command = (yyvsp[(1) - (1)].command); + eof_encountered = 0; + rewind_input_string (); + YYACCEPT; + } + } + break; + + case 136: +#line 1022 "/Users/chet/src/bash/src/parse.y" + { + if ((yyvsp[(1) - (2)].command)->type == cm_connection) + (yyval.command) = connect_async_list ((yyvsp[(1) - (2)].command), (COMMAND *)NULL, '&'); else - yyval.command = command_connect (yyvsp[-1].command, (COMMAND *)NULL, '&'); + (yyval.command) = command_connect ((yyvsp[(1) - (2)].command), (COMMAND *)NULL, '&'); if (need_here_doc) gather_here_documents (); - ; - break;} -case 125: -#line 931 "/Users/chet/src/bash/src/parse.y" -{ - yyval.command = yyvsp[-1].command; + if ((parser_state & PST_CMDSUBST) && current_token == shell_eof_token) + { + global_command = (yyvsp[(1) - (2)].command); + eof_encountered = 0; + rewind_input_string (); + YYACCEPT; + } + } + break; + + case 137: +#line 1038 "/Users/chet/src/bash/src/parse.y" + { + (yyval.command) = (yyvsp[(1) - (2)].command); if (need_here_doc) gather_here_documents (); - ; - break;} -case 126: -#line 939 "/Users/chet/src/bash/src/parse.y" -{ yyval.command = command_connect (yyvsp[-3].command, yyvsp[0].command, AND_AND); ; - break;} -case 127: -#line 941 "/Users/chet/src/bash/src/parse.y" -{ yyval.command = command_connect (yyvsp[-3].command, yyvsp[0].command, OR_OR); ; - break;} -case 128: -#line 943 "/Users/chet/src/bash/src/parse.y" -{ - if (yyvsp[-2].command->type == cm_connection) - yyval.command = connect_async_list (yyvsp[-2].command, yyvsp[0].command, '&'); + if ((parser_state & PST_CMDSUBST) && current_token == shell_eof_token) + { + global_command = (yyvsp[(1) - (2)].command); + eof_encountered = 0; + rewind_input_string (); + YYACCEPT; + } + } + break; + + case 138: +#line 1053 "/Users/chet/src/bash/src/parse.y" + { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), AND_AND); } + break; + + case 139: +#line 1055 "/Users/chet/src/bash/src/parse.y" + { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), OR_OR); } + break; + + case 140: +#line 1057 "/Users/chet/src/bash/src/parse.y" + { + if ((yyvsp[(1) - (3)].command)->type == cm_connection) + (yyval.command) = connect_async_list ((yyvsp[(1) - (3)].command), (yyvsp[(3) - (3)].command), '&'); else - yyval.command = command_connect (yyvsp[-2].command, yyvsp[0].command, '&'); - ; - break;} -case 129: -#line 950 "/Users/chet/src/bash/src/parse.y" -{ yyval.command = command_connect (yyvsp[-2].command, yyvsp[0].command, ';'); ; - break;} -case 130: -#line 953 "/Users/chet/src/bash/src/parse.y" -{ yyval.command = yyvsp[0].command; ; - break;} -case 131: -#line 957 "/Users/chet/src/bash/src/parse.y" -{ yyval.command = yyvsp[0].command; ; - break;} -case 132: -#line 959 "/Users/chet/src/bash/src/parse.y" -{ - if (yyvsp[0].command) - yyvsp[0].command->flags |= CMD_INVERT_RETURN; - yyval.command = yyvsp[0].command; - ; - break;} -case 133: -#line 965 "/Users/chet/src/bash/src/parse.y" -{ - if (yyvsp[0].command) - yyvsp[0].command->flags |= yyvsp[-1].number; - yyval.command = yyvsp[0].command; - ; - break;} -case 134: -#line 971 "/Users/chet/src/bash/src/parse.y" -{ - if (yyvsp[0].command) - yyvsp[0].command->flags |= yyvsp[-2].number|CMD_INVERT_RETURN; - yyval.command = yyvsp[0].command; - ; - break;} -case 135: -#line 977 "/Users/chet/src/bash/src/parse.y" -{ - if (yyvsp[0].command) - yyvsp[0].command->flags |= yyvsp[-1].number|CMD_INVERT_RETURN; - yyval.command = yyvsp[0].command; - ; - break;} -case 136: -#line 983 "/Users/chet/src/bash/src/parse.y" -{ + (yyval.command) = command_connect ((yyvsp[(1) - (3)].command), (yyvsp[(3) - (3)].command), '&'); + } + break; + + case 141: +#line 1064 "/Users/chet/src/bash/src/parse.y" + { (yyval.command) = command_connect ((yyvsp[(1) - (3)].command), (yyvsp[(3) - (3)].command), ';'); } + break; + + case 142: +#line 1067 "/Users/chet/src/bash/src/parse.y" + { (yyval.command) = (yyvsp[(1) - (1)].command); } + break; + + case 143: +#line 1071 "/Users/chet/src/bash/src/parse.y" + { (yyval.command) = (yyvsp[(1) - (1)].command); } + break; + + case 144: +#line 1073 "/Users/chet/src/bash/src/parse.y" + { + if ((yyvsp[(2) - (2)].command)) + (yyvsp[(2) - (2)].command)->flags |= CMD_INVERT_RETURN; + (yyval.command) = (yyvsp[(2) - (2)].command); + } + break; + + case 145: +#line 1079 "/Users/chet/src/bash/src/parse.y" + { + if ((yyvsp[(2) - (2)].command)) + (yyvsp[(2) - (2)].command)->flags |= (yyvsp[(1) - (2)].number); + (yyval.command) = (yyvsp[(2) - (2)].command); + } + break; + + case 146: +#line 1085 "/Users/chet/src/bash/src/parse.y" + { + if ((yyvsp[(3) - (3)].command)) + (yyvsp[(3) - (3)].command)->flags |= (yyvsp[(1) - (3)].number)|CMD_INVERT_RETURN; + (yyval.command) = (yyvsp[(3) - (3)].command); + } + break; + + case 147: +#line 1091 "/Users/chet/src/bash/src/parse.y" + { + if ((yyvsp[(3) - (3)].command)) + (yyvsp[(3) - (3)].command)->flags |= (yyvsp[(2) - (3)].number)|CMD_INVERT_RETURN; + (yyval.command) = (yyvsp[(3) - (3)].command); + } + break; + + case 148: +#line 1097 "/Users/chet/src/bash/src/parse.y" + { ELEMENT x; /* Boy, this is unclean. `time' by itself can @@ -2095,270 +3134,277 @@ case 136: terminate this, one to terminate the command) */ x.word = 0; x.redirect = 0; - yyval.command = make_simple_command (x, (COMMAND *)NULL); - yyval.command->flags |= yyvsp[-1].number; + (yyval.command) = make_simple_command (x, (COMMAND *)NULL); + (yyval.command)->flags |= (yyvsp[(1) - (2)].number); /* XXX - let's cheat and push a newline back */ - if (yyvsp[0].number == '\n') + if ((yyvsp[(2) - (2)].number) == '\n') token_to_read = '\n'; - ; - break;} -case 137: -#line 1004 "/Users/chet/src/bash/src/parse.y" -{ yyval.command = command_connect (yyvsp[-3].command, yyvsp[0].command, '|'); ; - break;} -case 138: -#line 1006 "/Users/chet/src/bash/src/parse.y" -{ yyval.command = yyvsp[0].command; ; - break;} -case 139: -#line 1010 "/Users/chet/src/bash/src/parse.y" -{ yyval.number = CMD_TIME_PIPELINE; ; - break;} -case 140: -#line 1012 "/Users/chet/src/bash/src/parse.y" -{ yyval.number = CMD_TIME_PIPELINE|CMD_TIME_POSIX; ; - break;} -} - /* the action file gets copied in in place of this dollarsign */ -#line 543 "/usr/share/bison.simple" - - yyvsp -= yylen; - yyssp -= yylen; -#ifdef YYLSP_NEEDED - yylsp -= yylen; -#endif + } + break; -#if YYDEBUG != 0 - if (yydebug) + case 149: +#line 1117 "/Users/chet/src/bash/src/parse.y" + { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), '|'); } + break; + + case 150: +#line 1119 "/Users/chet/src/bash/src/parse.y" { - short *ssp1 = yyss - 1; - fprintf (stderr, "state stack now"); - while (ssp1 != yyssp) - fprintf (stderr, " %d", *++ssp1); - fprintf (stderr, "\n"); + /* Make cmd1 |& cmd2 equivalent to cmd1 2>&1 | cmd2 */ + COMMAND *tc; + REDIRECTEE rd; + REDIRECT *r; + + tc = (yyvsp[(1) - (4)].command); + rd.dest = 1; + r = make_redirection (2, r_duplicating_output, rd); + if (tc->redirects) + { + register REDIRECT *t; + for (t = tc->redirects; t->next; t = t->next) + ; + t->next = r; + } + else + tc->redirects = r; + + (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), '|'); + } + break; + + case 151: +#line 1141 "/Users/chet/src/bash/src/parse.y" + { (yyval.command) = (yyvsp[(1) - (1)].command); } + break; + + case 152: +#line 1145 "/Users/chet/src/bash/src/parse.y" + { (yyval.number) = CMD_TIME_PIPELINE; } + break; + + case 153: +#line 1147 "/Users/chet/src/bash/src/parse.y" + { (yyval.number) = CMD_TIME_PIPELINE|CMD_TIME_POSIX; } + break; + + +/* Line 1267 of yacc.c. */ +#line 3193 "y.tab.c" + default: break; } -#endif + YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); + + YYPOPSTACK (yylen); + yylen = 0; + YY_STACK_PRINT (yyss, yyssp); *++yyvsp = yyval; -#ifdef YYLSP_NEEDED - yylsp++; - if (yylen == 0) - { - yylsp->first_line = yylloc.first_line; - yylsp->first_column = yylloc.first_column; - yylsp->last_line = (yylsp-1)->last_line; - yylsp->last_column = (yylsp-1)->last_column; - yylsp->text = 0; - } - else - { - yylsp->last_line = (yylsp+yylen-1)->last_line; - yylsp->last_column = (yylsp+yylen-1)->last_column; - } -#endif - /* Now "shift" the result of the reduction. - Determine what state that goes to, - based on the state we popped back to - and the rule number reduced by. */ + /* Now `shift' the result of the reduction. Determine what state + that goes to, based on the state we popped back to and the rule + number reduced by. */ yyn = yyr1[yyn]; - yystate = yypgoto[yyn - YYNTBASE] + *yyssp; - if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp) + yystate = yypgoto[yyn - YYNTOKENS] + *yyssp; + if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp) yystate = yytable[yystate]; else - yystate = yydefgoto[yyn - YYNTBASE]; + yystate = yydefgoto[yyn - YYNTOKENS]; goto yynewstate; -yyerrlab: /* here on detecting error */ - if (! yyerrstatus) - /* If not already recovering from an error, report this error. */ +/*------------------------------------. +| yyerrlab -- here on detecting error | +`------------------------------------*/ +yyerrlab: + /* If not already recovering from an error, report this error. */ + if (!yyerrstatus) { ++yynerrs; +#if ! YYERROR_VERBOSE + yyerror (YY_("syntax error")); +#else + { + YYSIZE_T yysize = yysyntax_error (0, yystate, yychar); + if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM) + { + YYSIZE_T yyalloc = 2 * yysize; + if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM)) + yyalloc = YYSTACK_ALLOC_MAXIMUM; + if (yymsg != yymsgbuf) + YYSTACK_FREE (yymsg); + yymsg = (char *) YYSTACK_ALLOC (yyalloc); + if (yymsg) + yymsg_alloc = yyalloc; + else + { + yymsg = yymsgbuf; + yymsg_alloc = sizeof yymsgbuf; + } + } -#ifdef YYERROR_VERBOSE - yyn = yypact[yystate]; - - if (yyn > YYFLAG && yyn < YYLAST) - { - int size = 0; - char *msg; - int x, count; - - count = 0; - /* Start X at -yyn if nec to avoid negative indexes in yycheck. */ - for (x = (yyn < 0 ? -yyn : 0); - x < (sizeof(yytname) / sizeof(char *)); x++) - if (yycheck[x + yyn] == x) - size += strlen(yytname[x]) + 15, count++; - msg = (char *) malloc(size + 15); - if (msg != 0) - { - strcpy(msg, "parse error"); - - if (count < 5) - { - count = 0; - for (x = (yyn < 0 ? -yyn : 0); - x < (sizeof(yytname) / sizeof(char *)); x++) - if (yycheck[x + yyn] == x) - { - strcat(msg, count == 0 ? ", expecting `" : " or `"); - strcat(msg, yytname[x]); - strcat(msg, "'"); - count++; - } - } - yyerror(msg); - free(msg); - } - else - yyerror ("parse error; also virtual memory exceeded"); - } - else -#endif /* YYERROR_VERBOSE */ - yyerror("parse error"); + if (0 < yysize && yysize <= yymsg_alloc) + { + (void) yysyntax_error (yymsg, yystate, yychar); + yyerror (yymsg); + } + else + { + yyerror (YY_("syntax error")); + if (yysize != 0) + goto yyexhaustedlab; + } + } +#endif } - goto yyerrlab1; -yyerrlab1: /* here on error raised explicitly by an action */ + if (yyerrstatus == 3) { - /* if just tried and failed to reuse lookahead token after an error, discard it. */ - - /* return failure if at end of input */ - if (yychar == YYEOF) - YYABORT; + /* If just tried and failed to reuse look-ahead token after an + error, discard it. */ -#if YYDEBUG != 0 - if (yydebug) - fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]); -#endif - - yychar = YYEMPTY; + if (yychar <= YYEOF) + { + /* Return failure if at end of input. */ + if (yychar == YYEOF) + YYABORT; + } + else + { + yydestruct ("Error: discarding", + yytoken, &yylval); + yychar = YYEMPTY; + } } - /* Else will try to reuse lookahead token - after shifting the error token. */ + /* Else will try to reuse look-ahead token after shifting the error + token. */ + goto yyerrlab1; - yyerrstatus = 3; /* Each real token shifted decrements this */ - goto yyerrhandle; +/*---------------------------------------------------. +| yyerrorlab -- error raised explicitly by YYERROR. | +`---------------------------------------------------*/ +yyerrorlab: -yyerrdefault: /* current state does not do anything special for the error token. */ + /* Pacify compilers like GCC when the user code never invokes + YYERROR and the label yyerrorlab therefore never appears in user + code. */ + if (/*CONSTCOND*/ 0) + goto yyerrorlab; -#if 0 - /* This is wrong; only states that explicitly want error tokens - should shift them. */ - yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/ - if (yyn) goto yydefault; -#endif + /* Do not reclaim the symbols of the rule which action triggered + this YYERROR. */ + YYPOPSTACK (yylen); + yylen = 0; + YY_STACK_PRINT (yyss, yyssp); + yystate = *yyssp; + goto yyerrlab1; -yyerrpop: /* pop the current state because it cannot handle the error token */ - if (yyssp == yyss) YYABORT; - yyvsp--; - yystate = *--yyssp; -#ifdef YYLSP_NEEDED - yylsp--; -#endif +/*-------------------------------------------------------------. +| yyerrlab1 -- common code for both syntax error and YYERROR. | +`-------------------------------------------------------------*/ +yyerrlab1: + yyerrstatus = 3; /* Each real token shifted decrements this. */ -#if YYDEBUG != 0 - if (yydebug) + for (;;) { - short *ssp1 = yyss - 1; - fprintf (stderr, "Error: state stack now"); - while (ssp1 != yyssp) - fprintf (stderr, " %d", *++ssp1); - fprintf (stderr, "\n"); - } -#endif - -yyerrhandle: + yyn = yypact[yystate]; + if (yyn != YYPACT_NINF) + { + yyn += YYTERROR; + if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) + { + yyn = yytable[yyn]; + if (0 < yyn) + break; + } + } - yyn = yypact[yystate]; - if (yyn == YYFLAG) - goto yyerrdefault; + /* Pop the current state because it cannot handle the error token. */ + if (yyssp == yyss) + YYABORT; - yyn += YYTERROR; - if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR) - goto yyerrdefault; - yyn = yytable[yyn]; - if (yyn < 0) - { - if (yyn == YYFLAG) - goto yyerrpop; - yyn = -yyn; - goto yyreduce; + yydestruct ("Error: popping", + yystos[yystate], yyvsp); + YYPOPSTACK (1); + yystate = *yyssp; + YY_STACK_PRINT (yyss, yyssp); } - else if (yyn == 0) - goto yyerrpop; if (yyn == YYFINAL) YYACCEPT; -#if YYDEBUG != 0 - if (yydebug) - fprintf(stderr, "Shifting error token, "); -#endif - *++yyvsp = yylval; -#ifdef YYLSP_NEEDED - *++yylsp = yylloc; -#endif + + + /* Shift the error token. */ + YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); yystate = yyn; goto yynewstate; - yyacceptlab: - /* YYACCEPT comes here. */ - if (yyfree_stacks) - { - free (yyss); - free (yyvs); -#ifdef YYLSP_NEEDED - free (yyls); + +/*-------------------------------------. +| yyacceptlab -- YYACCEPT comes here. | +`-------------------------------------*/ +yyacceptlab: + yyresult = 0; + goto yyreturn; + +/*-----------------------------------. +| yyabortlab -- YYABORT comes here. | +`-----------------------------------*/ +yyabortlab: + yyresult = 1; + goto yyreturn; + +#ifndef yyoverflow +/*-------------------------------------------------. +| yyexhaustedlab -- memory exhaustion comes here. | +`-------------------------------------------------*/ +yyexhaustedlab: + yyerror (YY_("memory exhausted")); + yyresult = 2; + /* Fall through. */ #endif - } - return 0; - yyabortlab: - /* YYABORT comes here. */ - if (yyfree_stacks) +yyreturn: + if (yychar != YYEOF && yychar != YYEMPTY) + yydestruct ("Cleanup: discarding lookahead", + yytoken, &yylval); + /* Do not reclaim the symbols of the rule which action triggered + this YYABORT or YYACCEPT. */ + YYPOPSTACK (yylen); + YY_STACK_PRINT (yyss, yyssp); + while (yyssp != yyss) { - free (yyss); - free (yyvs); -#ifdef YYLSP_NEEDED - free (yyls); -#endif + yydestruct ("Cleanup: popping", + yystos[*yyssp], yyvsp); + YYPOPSTACK (1); } - return 1; +#ifndef yyoverflow + if (yyss != yyssa) + YYSTACK_FREE (yyss); +#endif +#if YYERROR_VERBOSE + if (yymsg != yymsgbuf) + YYSTACK_FREE (yymsg); +#endif + /* Make sure YYID is used. */ + return YYID (yyresult); } -#line 1014 "/Users/chet/src/bash/src/parse.y" - - -/* 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 */ + + +#line 1149 "/Users/chet/src/bash/src/parse.y" + /* Initial size to allocate for tokens, and the amount to grow them by. */ @@ -2375,22 +3421,6 @@ yyerrhandle: # 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; @@ -2653,6 +3683,33 @@ with_input_from_string (string, name) init_yy_io (yy_string_get, yy_string_unget, st_string, name, location); } +/* Count the number of characters we've consumed from bash_input.location.string + and read into shell_input_line, but have not returned from shell_getc. + That is the true input location. Rewind bash_input.location.string by + that number of characters, so it points to the last character actually + consumed by the parser. */ +static void +rewind_input_string () +{ + int xchars; + + /* number of unconsumed characters in the input -- XXX need to take newlines + into account, e.g., $(...\n) */ + xchars = shell_input_line_len - shell_input_line_index; + if (bash_input.location.string[-1] == '\n') + xchars++; + + /* XXX - how to reflect bash_input.location.string back to string passed to + parse_and_execute or xparse_dolparen? xparse_dolparen needs to know how + far into the string we parsed. parse_and_execute knows where bash_input. + location.string is, and how far from orig_string that is -- that's the + number of characters the command consumed. */ + + /* bash_input.location.string - xchars should be where we parsed to */ + /* need to do more validation on xchars value for sanity -- test cases. */ + bash_input.location.string -= xchars; +} + /* **************************************************************** */ /* */ /* Let input come from STREAM. */ @@ -3070,10 +4127,27 @@ char * read_secondary_line (remove_quoted_newline) int remove_quoted_newline; { + char *ret; + int n, c; + prompt_string_pointer = &ps2_prompt; if (SHOULD_PROMPT()) prompt_again (); - return (read_a_line (remove_quoted_newline)); + ret = read_a_line (remove_quoted_newline); +#if defined (HISTORY) + if (remember_on_history && (parser_state & PST_HEREDOC)) + { + /* To make adding the the here-document body right, we need to rely + on history_delimiting_chars() returning \n for the first line of + the here-document body and the null string for the second and + subsequent lines, so we avoid double newlines. + current_command_line_count == 2 for the first line of the body. */ + + current_command_line_count++; + maybe_add_history (ret); + } +#endif /* HISTORY */ + return ret; } /* **************************************************************** */ @@ -3111,6 +4185,9 @@ STRING_INT_ALIST word_token_alist[] = { #if defined (COND_COMMAND) { "[[", COND_START }, { "]]", COND_END }, +#endif +#if defined (COPROCESS_SUPPORT) + { "coproc", COPROC }, #endif { (char *)NULL, 0} }; @@ -3126,11 +4203,15 @@ STRING_INT_ALIST other_token_alist[] = { { "<&", LESS_AND }, { ">&", GREATER_AND }, { ";;", SEMI_SEMI }, + { ";&", SEMI_AND }, + { ";;&", SEMI_SEMI_AND }, { "<<-", LESS_LESS_MINUS }, { "<<<", LESS_LESS_LESS }, { "&>", AND_GREATER }, + { "&>>", AND_GREATER_GREATER }, { "<>", LESS_GREATER }, { ">|", GREATER_BAR }, + { "|&", BAR_AND }, { "EOF", yacc_EOF }, /* Tokens whose value is the character itself */ { ">", '>' }, @@ -3535,6 +4616,15 @@ yylex () token_before_that = last_read_token; last_read_token = current_token; current_token = read_token (READ); + + if ((parser_state & PST_EOFTOKEN) && current_token == shell_eof_token) + { + current_token = yacc_EOF; + if (bash_input.type == st_string) + rewind_input_string (); + } + parser_state &= ~PST_EOFTOKEN; + return (current_token); } @@ -3545,10 +4635,14 @@ static int esacs_needed_count; void gather_here_documents () { - int r = 0; + int r; + + r = 0; while (need_here_doc) { - make_here_document (redir_stack[r++]); + parser_state |= PST_HEREDOC; + make_here_document (redir_stack[r++], line_number); + parser_state &= ~PST_HEREDOC; need_here_doc--; } } @@ -3559,7 +4653,7 @@ static int open_brace_count; #define command_token_position(token) \ (((token) == ASSIGNMENT_WORD) || \ - ((token) != SEMI_SEMI && reserved_word_acceptable(token))) + ((token) != SEMI_SEMI && (token) != SEMI_AND && (token) != SEMI_SEMI_AND && reserved_word_acceptable(token))) #define assignment_acceptable(token) \ (command_token_position(token) && ((parser_state & PST_CASEPAT) == 0)) @@ -3921,6 +5015,9 @@ read_token (command) return (character); } + if (parser_state & PST_REGEXP) + goto tokword; + /* Shell meta-characters. */ if MBTEST(shellmeta (character) && ((parser_state & PST_DBLPAREN) == 0)) { @@ -3942,9 +5039,9 @@ read_token (command) /* If '<' then we could be at "<<" or at "<<-". We have to look ahead one more character. */ peek_char = shell_getc (1); - if (peek_char == '-') + if MBTEST(peek_char == '-') return (LESS_LESS_MINUS); - else if (peek_char == '<') + else if MBTEST(peek_char == '<') return (LESS_LESS_LESS); else { @@ -3961,7 +5058,14 @@ read_token (command) parser_state &= ~PST_ALEXPNEXT; #endif /* ALIAS */ - return (SEMI_SEMI); + peek_char = shell_getc (1); + if MBTEST(peek_char == '&') + return (SEMI_SEMI_AND); + else + { + shell_ungetc (peek_char); + return (SEMI_SEMI); + } case '&': return (AND_AND); @@ -3987,8 +5091,27 @@ read_token (command) return (LESS_GREATER); else if MBTEST(character == '>' && peek_char == '|') return (GREATER_BAR); - else if MBTEST(peek_char == '>' && character == '&') - return (AND_GREATER); + else if MBTEST(character == '&' && peek_char == '>') + { + peek_char = shell_getc (1); + if MBTEST(peek_char == '>') + return (AND_GREATER_GREATER); + else + { + shell_ungetc (peek_char); + return (AND_GREATER); + } + } + else if MBTEST(character == '|' && peek_char == '&') + return (BAR_AND); + else if MBTEST(character == ';' && peek_char == '&') + { + parser_state |= PST_CASEPAT; +#if defined (ALIAS) + parser_state &= ~PST_ALEXPNEXT; +#endif /* ALIAS */ + return (SEMI_AND); + } shell_ungetc (peek_char); @@ -4024,102 +5147,531 @@ read_token (command) 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); + /* Hack <&- (close stdin) case. Also <&N- (dup and close). */ + if MBTEST(character == '-' && (last_read_token == LESS_AND || last_read_token == GREATER_AND)) + return (character); + +tokword: + /* 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, and returning + * correct error values if it reads EOF. + */ +#define P_FIRSTCLOSE 0x01 +#define P_ALLOWESC 0x02 +#define P_DQUOTE 0x04 +#define P_COMMAND 0x08 /* parsing a command, so look for comments */ +#define P_BACKQUOTE 0x10 /* parsing a backquoted command substitution */ + +/* Lexical state while parsing a grouping construct or $(...). */ +#define LEX_WASDOL 0x001 +#define LEX_CKCOMMENT 0x002 +#define LEX_INCOMMENT 0x004 +#define LEX_PASSNEXT 0x008 +#define LEX_RESWDOK 0x010 +#define LEX_CKCASE 0x020 +#define LEX_INCASE 0x040 +#define LEX_INHEREDOC 0x080 +#define LEX_HEREDELIM 0x100 /* reading here-doc delimiter */ +#define LEX_STRIPDOC 0x200 /* <<- strip tabs from here doc delim */ + +#define COMSUB_META(ch) ((ch) == ';' || (ch) == '&' || (ch) == '|') + +#define CHECK_NESTRET_ERROR() \ + do { \ + if (nestret == &matched_pair_error) \ + { \ + free (ret); \ + return &matched_pair_error; \ + } \ + } while (0) + +#define APPEND_NESTRET() \ + do { \ + if (nestlen) \ + { \ + RESIZE_MALLOCED_BUFFER (ret, retind, nestlen, retsize, 64); \ + strcpy (ret + retind, nestret); \ + retind += nestlen; \ + } \ + } while (0) + +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, tflags; + int nestlen, ttranslen, start_lineno; + char *ret, *nestret, *ttrans; + int retind, retsize, rflags; + +/* itrace("parse_matched_pair: open = %c close = %c flags = %d", open, close, flags); */ + count = 1; + tflags = 0; + + if ((flags & P_COMMAND) && qc != '`' && qc != '\'' && qc != '"' && (flags & P_DQUOTE) == 0) + tflags |= LEX_CKCOMMENT; + + /* 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 != '\'' && (tflags & LEX_PASSNEXT) == 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 (); + + /* Don't bother counting parens or doing anything else if in a comment + or part of a case statement */ + if (tflags & LEX_INCOMMENT) + { + /* Add this character. */ + RESIZE_MALLOCED_BUFFER (ret, retind, 1, retsize, 64); + ret[retind++] = ch; + + if (ch == '\n') + tflags &= ~LEX_INCOMMENT; + + continue; + } + + /* Not exactly right yet, should handle shell metacharacters, too. If + any changes are made to this test, make analogous changes to subst.c: + extract_delimited_string(). */ + else if MBTEST((tflags & LEX_CKCOMMENT) && (tflags & LEX_INCOMMENT) == 0 && ch == '#' && (retind == 0 || ret[retind-1] == '\n' || shellblank (ret[retind - 1]))) + tflags |= LEX_INCOMMENT; + + if (tflags & LEX_PASSNEXT) /* last char was backslash */ + { + tflags &= ~LEX_PASSNEXT; + 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; + } + /* If we're reparsing the input (e.g., from parse_string_to_word_list), + we've already prepended CTLESC to single-quoted results of $'...'. + We may want to do this for other CTLESC-quoted characters in + reparse, too. */ + else if MBTEST((parser_state & PST_REPARSE) && open == '\'' && (ch == CTLESC || ch == CTLNUL)) + { + RESIZE_MALLOCED_BUFFER (ret, retind, 1, retsize, 64); + 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--; + /* handle nested ${...} specially. */ + else if MBTEST(open != close && (tflags & LEX_WASDOL) && open == '{' && ch == open) /* } */ + count++; + 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 we just read the ending character, don't bother continuing. */ + if (count == 0) + break; + + if (open == '\'') /* '' inside grouping construct */ + { + if MBTEST((flags & P_ALLOWESC) && ch == '\\') + tflags |= LEX_PASSNEXT; + continue; + } + + if MBTEST(ch == '\\') /* backslashes */ + tflags |= LEX_PASSNEXT; + +#if 0 + /* The big hammer. Single quotes aren't special in double quotes. The + problem is that Posix says the single quotes are semi-special: + within a double-quoted ${...} construct "an even number of + unescaped double-quotes or single-quotes, if any, shall occur." */ + if MBTEST(open == '{' && (flags & P_DQUOTE) && ch == '\'') /* } */ + continue; +#endif + + /* Could also check open == '`' if we want to parse grouping constructs + inside old-style command substitution. */ + if (open != close) /* a grouping construct */ + { + if MBTEST(shellquote (ch)) + { + /* '', ``, or "" inside $(...) or other grouping construct. */ + push_delimiter (dstack, ch); + if MBTEST((tflags & LEX_WASDOL) && 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); + CHECK_NESTRET_ERROR (); + + if MBTEST((tflags & LEX_WASDOL) && ch == '\'' && (extended_quote || (rflags & P_DQUOTE) == 0)) + { + /* Translate $'...' here. */ + ttrans = ansiexpand (nestret, 0, nestlen - 1, &ttranslen); + xfree (nestret); + + if ((rflags & P_DQUOTE) == 0) + { + nestret = sh_single_quote (ttrans); + free (ttrans); + nestlen = strlen (nestret); + } + else + { + nestret = ttrans; + nestlen = ttranslen; + } + retind -= 2; /* back up before the $' */ + } + else if MBTEST((tflags & LEX_WASDOL) && ch == '"' && (extended_quote || (rflags & P_DQUOTE) == 0)) + { + /* Locale expand $"..." here. */ + ttrans = localeexpand (nestret, 0, nestlen - 1, start_lineno, &ttranslen); + xfree (nestret); + + nestret = sh_mkdoublequoted (ttrans, ttranslen, 0); + free (ttrans); + nestlen = ttranslen + 2; + retind -= 2; /* back up before the $" */ + } + + APPEND_NESTRET (); + 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); + + CHECK_NESTRET_ERROR (); + APPEND_NESTRET (); + + FREE (nestret); + } + else if MBTEST(open != '`' && (tflags & LEX_WASDOL) && (ch == '(' || ch == '{' || ch == '[')) /* ) } ] */ + /* check for $(), $[], or ${} inside quoted string. */ + { + if (open == ch) /* undo previous increment */ + count--; + if (ch == '(') /* ) */ + nestret = parse_comsub (0, '(', ')', &nestlen, (rflags|P_COMMAND) & ~P_DQUOTE); + else if (ch == '{') /* } */ + nestret = parse_matched_pair (0, '{', '}', &nestlen, P_FIRSTCLOSE|rflags); + else if (ch == '[') /* ] */ + nestret = parse_matched_pair (0, '[', ']', &nestlen, rflags); + + CHECK_NESTRET_ERROR (); + APPEND_NESTRET (); - /* 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; -} + FREE (nestret); + } + if MBTEST(ch == '$') + tflags |= LEX_WASDOL; + else + tflags &= ~LEX_WASDOL; + } -/* - * 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, and returning - * correct error values if it reads EOF. - */ -#define P_FIRSTCLOSE 0x01 -#define P_ALLOWESC 0x02 -#define P_DQUOTE 0x04 -#define P_COMMAND 0x08 /* parsing a command, so look for comments */ -#define P_BACKQUOTE 0x10 /* parsing a backquoted command substitution */ + ret[retind] = '\0'; + if (lenp) + *lenp = retind; + return ret; +} -static char matched_pair_error; +/* Parse a $(...) command substitution. This is messier than I'd like, and + reproduces a lot more of the token-reading code than I'd like. */ static char * -parse_matched_pair (qc, open, close, lenp, flags) +parse_comsub (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, in_comment, check_comment; - int pass_next_character, backq_backslash, nestlen, ttranslen, start_lineno; - char *ret, *nestret, *ttrans; - int retind, retsize, rflags; + int count, ch, peekc, tflags, lex_rwlen, lex_firstind; + int nestlen, ttranslen, start_lineno; + char *ret, *nestret, *ttrans, *heredelim; + int retind, retsize, rflags, hdlen; -/* itrace("parse_matched_pair: open = %c close = %c", open, close); */ +/*itrace("parse_comsub: qc = `%c' open = %c close = %c", qc, open, close);*/ count = 1; - pass_next_character = backq_backslash = was_dollar = in_comment = 0; - check_comment = (flags & P_COMMAND) && qc != '\'' && qc != '"' && (flags & P_DQUOTE) == 0; + tflags = LEX_RESWDOK; + + if ((flags & P_COMMAND) && qc != '\'' && qc != '"' && (flags & P_DQUOTE) == 0) + tflags |= LEX_CKCASE; + if ((tflags & LEX_CKCASE) && (interactive == 0 || interactive_comments)) + tflags |= LEX_CKCOMMENT; /* RFLAGS is the set of flags we want to pass to recursive calls. */ - rflags = (qc == '"') ? P_DQUOTE : (flags & P_DQUOTE); + rflags = (flags & P_DQUOTE); ret = (char *)xmalloc (retsize = 64); retind = 0; start_lineno = line_number; + lex_rwlen = 0; + + heredelim = 0; + lex_firstind = -1; + while (count) { - ch = shell_getc (qc != '\'' && pass_next_character == 0 && backq_backslash == 0); +comsub_readchar: + ch = shell_getc (qc != '\'' && (tflags & LEX_PASSNEXT) == 0); if (ch == EOF) { +eof_error: free (ret); + FREE (heredelim); parser_error (start_lineno, _("unexpected EOF while looking for matching `%c'"), close); EOF_Reached = 1; /* XXX */ return (&matched_pair_error); } + /* If we hit the end of a line and are reading the contents of a here + document, and it's not the same line that the document starts on, + check for this line being the here doc delimiter. Otherwise, if + we're in a here document, mark the next character as the beginning + of a line. */ + if (ch == '\n') + { + if ((tflags & LEX_HEREDELIM) && heredelim) + { + tflags &= ~LEX_HEREDELIM; + tflags |= LEX_INHEREDOC; + lex_firstind = retind + 1; + } + else if (tflags & LEX_INHEREDOC) + { + int tind; + tind = lex_firstind; + while ((tflags & LEX_STRIPDOC) && ret[tind] == '\t') + tind++; + if (STREQN (ret + tind, heredelim, hdlen)) + { + tflags &= ~(LEX_STRIPDOC|LEX_INHEREDOC); +/*itrace("parse_comsub:%d: found here doc end `%s'", line_number, ret + tind);*/ + lex_firstind = -1; + } + else + lex_firstind = retind + 1; + } + } + /* Possible reprompting. */ if (ch == '\n' && SHOULD_PROMPT ()) prompt_again (); - if (in_comment) + /* Don't bother counting parens or doing anything else if in a comment */ + if (tflags & (LEX_INCOMMENT|LEX_INHEREDOC)) { /* Add this character. */ RESIZE_MALLOCED_BUFFER (ret, retind, 1, retsize, 64); ret[retind++] = ch; - if (ch == '\n') - in_comment = 0; + if ((tflags & LEX_INCOMMENT) && ch == '\n') + tflags &= ~LEX_INCOMMENT; continue; } - /* Not exactly right yet, should handle shell metacharacters, too. If - any changes are made to this test, make analogous changes to subst.c: - extract_delimited_string(). */ - else if MBTEST(check_comment && in_comment == 0 && ch == '#' && (retind == 0 || ret[retind-1] == '\n' || whitespace (ret[retind - 1]))) - in_comment = 1; - /* last char was backslash inside backquoted command substitution */ - if (backq_backslash) + /* Skip whitespace */ + if MBTEST(shellblank (ch) && lex_rwlen == 0) + { + /* Add this character. */ + RESIZE_MALLOCED_BUFFER (ret, retind, 1, retsize, 64); + ret[retind++] = ch; + continue; + } + + /* Either we are looking for the start of the here-doc delimiter + (lex_firstind == -1) or we are reading one (lex_firstind >= 0). + If this character is a shell break character and we are reading + the delimiter, save it and note that we are now reading a here + document. If we've found the start of the delimiter, note it by + setting lex_firstind. Backslashes can quote shell metacharacters + in here-doc delimiters. */ + if (tflags & LEX_HEREDELIM) { - backq_backslash = 0; - /* Placeholder for adding special characters */ + if (lex_firstind == -1 && shellbreak (ch) == 0) + lex_firstind = retind; + else if (lex_firstind >= 0 && (tflags & LEX_PASSNEXT) == 0 && shellbreak (ch)) + { + nestret = substring (ret, lex_firstind, retind); + heredelim = string_quote_removal (nestret, 0); + free (nestret); + hdlen = STRLEN(heredelim); +/*itrace("parse_comsub:%d: found here doc delimiter `%s' (%d)", line_number, heredelim, hdlen);*/ + if (ch == '\n') + { + tflags |= LEX_INHEREDOC; + tflags &= ~LEX_HEREDELIM; + lex_firstind = retind + 1; + } + else + lex_firstind = -1; + } } - if (pass_next_character) /* last char was backslash */ + /* Meta-characters that can introduce a reserved word. Not perfect yet. */ + if MBTEST((tflags & LEX_RESWDOK) == 0 && (tflags & LEX_CKCASE) && (tflags & LEX_INCOMMENT) == 0 && shellmeta(ch)) { - pass_next_character = 0; + /* Add this character. */ + RESIZE_MALLOCED_BUFFER (ret, retind, 1, retsize, 64); + ret[retind++] = ch; + peekc = shell_getc (1); + if (ch == peekc && (ch == '&' || ch == '|' || ch == ';')) /* two-character tokens */ + { + RESIZE_MALLOCED_BUFFER (ret, retind, 1, retsize, 64); + ret[retind++] = peekc; +/*itrace("parse_comsub:%d: set lex_reswordok = 1, ch = `%c'", line_number, ch); */ + tflags |= LEX_RESWDOK; + lex_rwlen = 0; + continue; + } + else if (ch == '\n' || COMSUB_META(ch)) + { + shell_ungetc (peekc); + tflags |= LEX_RESWDOK; +/*itrace("parse_comsub:%d: set lex_reswordok = 1, ch = `%c'", line_number, ch);*/ + lex_rwlen = 0; + continue; + } + else if (ch == EOF) + goto eof_error; + else + { + /* `unget' the character we just added and fall through */ + retind--; + shell_ungetc (peekc); + } + } + + /* If we can read a reserved word, try to read one. */ + if (tflags & LEX_RESWDOK) + { + if MBTEST(islower (ch)) + { + /* Add this character. */ + RESIZE_MALLOCED_BUFFER (ret, retind, 1, retsize, 64); + ret[retind++] = ch; + lex_rwlen++; + continue; + } + else if MBTEST(lex_rwlen == 4 && shellbreak (ch)) + { + if (STREQN (ret + retind - 4, "case", 4)) +{ + tflags |= LEX_INCASE; +/*itrace("parse_comsub:%d: found `case', lex_incase -> 1", line_number);*/ +} + else if (STREQN (ret + retind - 4, "esac", 4)) +{ + tflags &= ~LEX_INCASE; +/*itrace("parse_comsub:%d: found `esac', lex_incase -> 0", line_number);*/ +} + tflags &= ~LEX_RESWDOK; + } + else if (shellbreak (ch) == 0) +{ + tflags &= ~LEX_RESWDOK; +/*itrace("parse_comsub:%d: found `%c', lex_reswordok -> 0", line_number, ch);*/ +} + } + + if MBTEST((tflags & LEX_INCOMMENT) == 0 && (tflags & LEX_CKCASE) && ch == '<') + { + /* Add this character. */ + RESIZE_MALLOCED_BUFFER (ret, retind, 1, retsize, 64); + ret[retind++] = ch; + peekc = shell_getc (1); + if (peekc == EOF) + goto eof_error; + if (peekc == ch) + { + RESIZE_MALLOCED_BUFFER (ret, retind, 1, retsize, 64); + ret[retind++] = peekc; + peekc = shell_getc (1); + if (peekc == EOF) + goto eof_error; + if (peekc == '-') + { + RESIZE_MALLOCED_BUFFER (ret, retind, 1, retsize, 64); + ret[retind++] = peekc; + tflags |= LEX_STRIPDOC; + } + else + shell_ungetc (peekc); + tflags |= LEX_HEREDELIM; + lex_firstind = -1; + continue; + } + else + ch = peekc; /* fall through and continue XXX - this skips comments if peekc == '#' */ + } + /* Not exactly right yet, should handle shell metacharacters, too. If + any changes are made to this test, make analogous changes to subst.c: + extract_delimited_string(). */ + else if MBTEST((tflags & LEX_CKCOMMENT) && (tflags & LEX_INCOMMENT) == 0 && ch == '#' && (retind == 0 || ret[retind-1] == '\n' || shellblank (ret[retind - 1]))) + tflags |= LEX_INCOMMENT; + + if (tflags & LEX_PASSNEXT) /* last char was backslash */ + { + tflags &= ~LEX_PASSNEXT; if (qc != '\'' && ch == '\n') /* double-quoted \ disappears. */ { - if (retind > 0) retind--; /* swallow previously-added backslash */ + if (retind > 0) + retind--; /* swallow previously-added backslash */ continue; } @@ -4136,139 +5688,171 @@ parse_matched_pair (qc, open, close, lenp, flags) ret[retind++] = ch; continue; } - else if MBTEST(ch == close) /* ending delimiter */ +#if 0 + else if MBTEST((tflags & LEX_INCASE) && ch == close && close == ')') + tflags &= ~LEX_INCASE; /* XXX */ +#endif + else if MBTEST(ch == close && (tflags & LEX_INCASE) == 0) /* ending delimiter */ +{ count--; - /* handle nested ${...} specially. */ - else if MBTEST(open != close && was_dollar && open == '{' && ch == open) /* } */ - count++; - else if MBTEST(((flags & P_FIRSTCLOSE) == 0) && ch == open) /* nested begin */ +/*itrace("parse_comsub:%d: found close: count = %d", line_number, count);*/ +} + else if MBTEST(((flags & P_FIRSTCLOSE) == 0) && (tflags & LEX_INCASE) == 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++; -#if 0 - else if MBTEST((flags & P_BACKQUOTE) && ch == '\\') - backq_backslash++; -#endif - continue; - } + /* If we just read the ending character, don't bother continuing. */ + if (count == 0) + break; if MBTEST(ch == '\\') /* backslashes */ - pass_next_character++; + tflags |= LEX_PASSNEXT; - if (open != close) /* a grouping construct */ - { - if MBTEST(shellquote (ch)) + if MBTEST(shellquote (ch)) + { + /* '', ``, or "" inside $(...). */ + push_delimiter (dstack, ch); + if MBTEST((tflags & LEX_WASDOL) && 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); + CHECK_NESTRET_ERROR (); + + if MBTEST((tflags & LEX_WASDOL) && ch == '\'' && (extended_quote || (rflags & P_DQUOTE) == 0)) { - /* '', ``, 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); + /* Translate $'...' here. */ + ttrans = ansiexpand (nestret, 0, nestlen - 1, &ttranslen); + xfree (nestret); - if ((rflags & P_DQUOTE) == 0) - { - nestret = sh_single_quote (ttrans); - free (ttrans); - nestlen = strlen (nestret); - } - else - { - nestret = ttrans; - nestlen = ttranslen; - } - retind -= 2; /* back up before the $' */ - } - else if MBTEST(was_dollar && ch == '"' && (extended_quote || (rflags & P_DQUOTE) == 0)) + if ((rflags & P_DQUOTE) == 0) { - /* Locale expand $"..." here. */ - ttrans = localeexpand (nestret, 0, nestlen - 1, start_lineno, &ttranslen); - xfree (nestret); - - nestret = sh_mkdoublequoted (ttrans, ttranslen, 0); + nestret = sh_single_quote (ttrans); free (ttrans); - nestlen = ttranslen + 2; - retind -= 2; /* back up before the $" */ + nestlen = strlen (nestret); } - - if (nestlen) + else { - RESIZE_MALLOCED_BUFFER (ret, retind, nestlen, retsize, 64); - strcpy (ret + retind, nestret); - retind += nestlen; + nestret = ttrans; + nestlen = ttranslen; } - 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); -add_nestret: - if (nestret == &matched_pair_error) - { - free (ret); - return &matched_pair_error; + retind -= 2; /* back up before the $' */ } - if (nestlen) + else if MBTEST((tflags & LEX_WASDOL) && ch == '"' && (extended_quote || (rflags & P_DQUOTE) == 0)) { - RESIZE_MALLOCED_BUFFER (ret, retind, nestlen, retsize, 64); - strcpy (ret + retind, nestret); - retind += nestlen; + /* Locale expand $"..." here. */ + ttrans = localeexpand (nestret, 0, nestlen - 1, start_lineno, &ttranslen); + xfree (nestret); + + nestret = sh_mkdoublequoted (ttrans, ttranslen, 0); + free (ttrans); + nestlen = ttranslen + 2; + retind -= 2; /* back up before the $" */ } + + APPEND_NESTRET (); FREE (nestret); } -#if 0 - else if MBTEST(qc == '`' && (ch == '"' || ch == '\'') && in_comment == 0) - { - /* Add P_BACKQUOTE so backslash quotes the next character and - shell_getc does the right thing with \. We do this for - a measure of backwards compatibility -- it's not strictly the - right POSIX thing. */ - nestret = parse_matched_pair (0, ch, ch, &nestlen, rflags|P_BACKQUOTE); - goto add_nestret; - } -#endif - else if MBTEST(open != '`' && was_dollar && (ch == '(' || ch == '{' || ch == '[')) /* ) } ] */ - /* check for $(), $[], or ${} inside quoted string. */ + else if MBTEST((tflags & LEX_WASDOL) && (ch == '(' || ch == '{' || ch == '[')) /* ) } ] */ + /* check for $(), $[], or ${} inside command substitution. */ { - if (open == ch) /* undo previous increment */ + if ((tflags & LEX_INCASE) == 0 && open == ch) /* undo previous increment */ count--; if (ch == '(') /* ) */ - nestret = parse_matched_pair (0, '(', ')', &nestlen, rflags & ~P_DQUOTE); + nestret = parse_comsub (0, '(', ')', &nestlen, (rflags|P_COMMAND) & ~P_DQUOTE); else if (ch == '{') /* } */ nestret = parse_matched_pair (0, '{', '}', &nestlen, P_FIRSTCLOSE|rflags); else if (ch == '[') /* ] */ nestret = parse_matched_pair (0, '[', ']', &nestlen, rflags); - goto add_nestret; + CHECK_NESTRET_ERROR (); + APPEND_NESTRET (); + + FREE (nestret); } - was_dollar = MBTEST(ch == '$'); + if MBTEST(ch == '$') + tflags |= LEX_WASDOL; + else + tflags &= ~LEX_WASDOL; } + FREE (heredelim); ret[retind] = '\0'; if (lenp) *lenp = retind; +/*itrace("parse_comsub:%d: returning `%s'", line_number, ret);*/ + return ret; +} + +/* XXX - this needs to handle functionality like subst.c:no_longjmp_on_fatal_error; + maybe extract_command_subst should handle it. */ +char * +xparse_dolparen (base, string, indp, flags) + char *base; + char *string; + int *indp; + int flags; +{ + sh_parser_state_t ps; + int orig_ind, nc, sflags; + char *ret, *s, *ep, *ostring; + + /*yydebug = 1;*/ + orig_ind = *indp; + ostring = string; + + sflags = SEVAL_NONINT|SEVAL_NOHIST|SEVAL_NOFREE; + if (flags & SX_NOLONGJMP) + sflags |= SEVAL_NOLONGJMP; + save_parser_state (&ps); + + /*(*/ + parser_state |= PST_CMDSUBST|PST_EOFTOKEN; /* allow instant ')' */ /*(*/ + shell_eof_token = ')'; + parse_string (string, "command substitution", sflags, &ep); + + restore_parser_state (&ps); + reset_parser (); + if (interactive) + token_to_read = 0; + + /* Need to find how many characters parse_and_execute consumed, update + *indp, if flags != 0, copy the portion of the string parsed into RET + and return it. If flags & 1 (EX_NOALLOC) we can return NULL. */ + + /*(*/ + if (ep[-1] != ')') + { +#if DEBUG + if (ep[-1] != '\n') + itrace("xparse_dolparen:%d: ep[-1] != RPAREN (%d), ep = `%s'", line_number, ep[-1], ep); +#endif + while (ep > ostring && ep[-1] == '\n') ep--; + } + + nc = ep - ostring; + *indp = ep - base - 1; + + /*(*/ +#if DEBUG + if (base[*indp] != ')') + itrace("xparse_dolparen:%d: base[%d] != RPAREN (%d), base = `%s'", line_number, *indp, base[*indp], base); +#endif + + if (flags & SX_NOALLOC) + return (char *)NULL; + + if (nc == 0) + { + ret = xmalloc (1); + ret[0] = '\0'; + } + else + ret = substring (ostring, 0, nc - 1); + return ret; } @@ -4498,7 +6082,7 @@ cond_term () if (term) term->flags |= CMD_INVERT_RETURN; } - else if (tok == WORD && test_unop (yylval.word->word)) + else if (tok == WORD && yylval.word->word[0] == '-' && yylval.word->word[2] == 0 && test_unop (yylval.word->word)) { op = yylval.word; tok = read_token (READ); @@ -4532,8 +6116,11 @@ cond_term () 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; + else if (tok == WORD && STREQ (yylval.word->word, "=~")) + { + op = yylval.word; + parser_state |= PST_REGEXP; + } #endif else if (tok == '<' || tok == '>') op = make_word_from_token (tok); /* ( */ @@ -4564,6 +6151,7 @@ cond_term () /* rhs */ tok = read_token (READ); + parser_state &= ~PST_REGEXP; if (tok == WORD) { tright = make_cond_node (COND_TERM, yylval.word, (COND_COM *)NULL, (COND_COM *)NULL); @@ -4697,7 +6285,7 @@ read_token_word (character) if (pass_next_character) { pass_next_character = 0; - goto got_character; + goto got_escaped_character; } cd = current_delimiter (dstack); @@ -4749,9 +6337,34 @@ read_token_word (character) goto next_character; } +#ifdef COND_REGEXP + /* When parsing a regexp as a single word inside a conditional command, + we need to special-case characters special to both the shell and + regular expressions. Right now, that is only '(' and '|'. */ /*)*/ + if MBTEST((parser_state & PST_REGEXP) && (character == '(' || character == '|')) /*)*/ + { + if (character == '|') + goto got_character; + + push_delimiter (dstack, character); + 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; + strcpy (token + token_index, ttok); + token_index += ttoklen; + FREE (ttok); + dollar_present = all_digit_token = 0; + goto next_character; + } +#endif /* COND_REGEXP */ + #ifdef EXTENDED_GLOB /* Parse a ksh-style extended pattern matching specification. */ - if (extended_glob && PATTERN_CHAR (character)) + if MBTEST(extended_glob && PATTERN_CHAR (character)) { peek_char = shell_getc (1); if MBTEST(peek_char == '(') /* ) */ @@ -4796,7 +6409,7 @@ read_token_word (character) history literally rather than causing a possibly- incorrect `;' to be added. ) */ push_delimiter (dstack, peek_char); - ttok = parse_matched_pair (cd, '(', ')', &ttoklen, P_COMMAND); + ttok = parse_comsub (cd, '(', ')', &ttoklen, P_COMMAND); pop_delimiter (dstack); } else @@ -4886,8 +6499,12 @@ read_token_word (character) } #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)) /* ] */ + /* Identify possible array subscript assignment; match [...]. If + parser_state&PST_COMPASSIGN, we need to parse [sub]=words treating + `sub' as if it were enclosed in double quotes. */ + else if MBTEST(character == '[' && /* ] */ + ((token_index > 0 && assignment_acceptable (last_read_token) && token_is_ident (token, token_index)) || + (token_index == 0 && (parser_state&PST_COMPASSIGN)))) { ttok = parse_matched_pair (cd, '[', ']', &ttoklen, 0); if (ttok == &matched_pair_error) @@ -4946,12 +6563,14 @@ read_token_word (character) got_character: - all_digit_token &= DIGIT (character); - dollar_present |= character == '$'; - if (character == CTLESC || character == CTLNUL) token[token_index++] = CTLESC; + got_escaped_character: + + all_digit_token &= DIGIT (character); + dollar_present |= character == '$'; + token[token_index++] = character; RESIZE_MALLOCED_BUFFER (token, token_index, 1, token_buffer_size, @@ -5097,14 +6716,21 @@ reserved_word_acceptable (toksym) case IF: case OR_OR: case SEMI_SEMI: + case SEMI_AND: + case SEMI_SEMI_AND: case THEN: case TIME: case TIMEOPT: + case COPROC: case UNTIL: case WHILE: case 0: return 1; default: +#if defined (COPROCESS_SUPPORT) + if (last_read_token == WORD && token_before_that == COPROC) + return 1; +#endif return 0; } } @@ -5155,9 +6781,10 @@ reset_readline_prompt () /* 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[] = { +static const int no_semi_successors[] = { '\n', '{', '(', ')', ';', '&', '|', - CASE, DO, ELSE, IF, SEMI_SEMI, THEN, UNTIL, WHILE, AND_AND, OR_OR, IN, + CASE, DO, ELSE, IF, SEMI_SEMI, SEMI_AND, SEMI_SEMI_AND, THEN, UNTIL, + WHILE, AND_AND, OR_OR, IN, 0 }; @@ -5172,7 +6799,13 @@ history_delimiting_chars () if (dstack.delimiter_depth != 0) return ("\n"); - + + /* We look for current_command_line_count == 2 because we are looking to + add the first line of the body of the here document (the second line + of the command). */ + if (parser_state & PST_HEREDOC) + return (current_command_line_count == 2 ? "\n" : ""); + /* First, handle some special cases. */ /*(*/ /* If we just read `()', assume it's a function definition, and don't @@ -5198,7 +6831,7 @@ history_delimiting_chars () { /* 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++) + 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 " "; @@ -5526,6 +7159,7 @@ decode_prompt_string (string) no longer than PATH_MAX - 1 characters. */ strcpy (t_string, polite_directory_format (t_string)); + temp = trim_pathname (t_string, PATH_MAX - 1); /* If we're going to be expanding the prompt string later, quote the directory name. */ if (promptvars || posixly_correct) @@ -5660,7 +7294,7 @@ not_escape: if (promptvars || posixly_correct) { last_exit_value = last_command_exit_value; - list = expand_prompt_string (result, Q_DOUBLE_QUOTES); + list = expand_prompt_string (result, Q_DOUBLE_QUOTES, 0); free (result); result = string_list (list); dispose_words (list); @@ -5979,7 +7613,7 @@ parse_string_to_word_list (s, flags, whom) wl = (WORD_LIST *)NULL; if (flags & 1) - parser_state |= PST_COMPASSIGN; + parser_state |= PST_COMPASSIGN|PST_REPARSE; while ((tok = read_token (READ)) != yacc_EOF) { @@ -6019,7 +7653,7 @@ parse_string_to_word_list (s, flags, whom) shell_input_line_terminator = orig_input_terminator; if (flags & 1) - parser_state &= ~PST_COMPASSIGN; + parser_state &= ~(PST_COMPASSIGN|PST_REPARSE); if (wl == &parse_string_error) { @@ -6275,3 +7909,4 @@ set_line_mbstate () } } #endif /* HANDLE_MULTIBYTE */ + diff --git a/y.tab.h b/y.tab.h index 352722738..552d7adb5 100644 --- a/y.tab.h +++ b/y.tab.h @@ -1,4 +1,145 @@ -typedef union { +/* A Bison parser, made by GNU Bison 2.3. */ + +/* Skeleton interface for Bison's Yacc-like parsers in C + + Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 + 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., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. */ + +/* As a special exception, you may create a larger work that contains + part or all of the Bison parser skeleton and distribute that work + under terms of your choice, so long as that work isn't itself a + parser generator using the skeleton or a modified version thereof + as a parser skeleton. Alternatively, if you modify or redistribute + the parser skeleton itself, you may (at your option) remove this + special exception, which will cause the skeleton and the resulting + Bison output files to be licensed under the GNU General Public + License without this special exception. + + This special exception was added by the Free Software Foundation in + version 2.2 of Bison. */ + +/* Tokens. */ +#ifndef YYTOKENTYPE +# define YYTOKENTYPE + /* Put the tokens into the symbol table, so that GDB and other debuggers + know about them. */ + enum yytokentype { + IF = 258, + THEN = 259, + ELSE = 260, + ELIF = 261, + FI = 262, + CASE = 263, + ESAC = 264, + FOR = 265, + SELECT = 266, + WHILE = 267, + UNTIL = 268, + DO = 269, + DONE = 270, + FUNCTION = 271, + COPROC = 272, + COND_START = 273, + COND_END = 274, + COND_ERROR = 275, + IN = 276, + BANG = 277, + TIME = 278, + TIMEOPT = 279, + WORD = 280, + ASSIGNMENT_WORD = 281, + NUMBER = 282, + ARITH_CMD = 283, + ARITH_FOR_EXPRS = 284, + COND_CMD = 285, + AND_AND = 286, + OR_OR = 287, + GREATER_GREATER = 288, + LESS_LESS = 289, + LESS_AND = 290, + LESS_LESS_LESS = 291, + GREATER_AND = 292, + SEMI_SEMI = 293, + SEMI_AND = 294, + SEMI_SEMI_AND = 295, + LESS_LESS_MINUS = 296, + AND_GREATER = 297, + AND_GREATER_GREATER = 298, + LESS_GREATER = 299, + GREATER_BAR = 300, + BAR_AND = 301, + yacc_EOF = 302 + }; +#endif +/* Tokens. */ +#define IF 258 +#define THEN 259 +#define ELSE 260 +#define ELIF 261 +#define FI 262 +#define CASE 263 +#define ESAC 264 +#define FOR 265 +#define SELECT 266 +#define WHILE 267 +#define UNTIL 268 +#define DO 269 +#define DONE 270 +#define FUNCTION 271 +#define COPROC 272 +#define COND_START 273 +#define COND_END 274 +#define COND_ERROR 275 +#define IN 276 +#define BANG 277 +#define TIME 278 +#define TIMEOPT 279 +#define WORD 280 +#define ASSIGNMENT_WORD 281 +#define NUMBER 282 +#define ARITH_CMD 283 +#define ARITH_FOR_EXPRS 284 +#define COND_CMD 285 +#define AND_AND 286 +#define OR_OR 287 +#define GREATER_GREATER 288 +#define LESS_LESS 289 +#define LESS_AND 290 +#define LESS_LESS_LESS 291 +#define GREATER_AND 292 +#define SEMI_SEMI 293 +#define SEMI_AND 294 +#define SEMI_SEMI_AND 295 +#define LESS_LESS_MINUS 296 +#define AND_GREATER 297 +#define AND_GREATER_GREATER 298 +#define LESS_GREATER 299 +#define GREATER_BAR 300 +#define BAR_AND 301 +#define yacc_EOF 302 + + + + +#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED +typedef union YYSTYPE +#line 316 "/Users/chet/src/bash/src/parse.y" +{ WORD_DESC *word; /* the word that we read. */ int number; /* the number that we read. */ WORD_LIST *word_list; @@ -6,47 +147,14 @@ typedef union { REDIRECT *redirect; ELEMENT element; PATTERN_LIST *pattern; -} YYSTYPE; -#define IF 257 -#define THEN 258 -#define ELSE 259 -#define ELIF 260 -#define FI 261 -#define CASE 262 -#define ESAC 263 -#define FOR 264 -#define SELECT 265 -#define WHILE 266 -#define UNTIL 267 -#define DO 268 -#define DONE 269 -#define FUNCTION 270 -#define COND_START 271 -#define COND_END 272 -#define COND_ERROR 273 -#define IN 274 -#define BANG 275 -#define TIME 276 -#define TIMEOPT 277 -#define WORD 278 -#define ASSIGNMENT_WORD 279 -#define NUMBER 280 -#define ARITH_CMD 281 -#define ARITH_FOR_EXPRS 282 -#define COND_CMD 283 -#define AND_AND 284 -#define OR_OR 285 -#define GREATER_GREATER 286 -#define LESS_LESS 287 -#define LESS_AND 288 -#define LESS_LESS_LESS 289 -#define GREATER_AND 290 -#define SEMI_SEMI 291 -#define LESS_LESS_MINUS 292 -#define AND_GREATER 293 -#define LESS_GREATER 294 -#define GREATER_BAR 295 -#define yacc_EOF 296 - +} +/* Line 1489 of yacc.c. */ +#line 153 "y.tab.h" + YYSTYPE; +# define yystype YYSTYPE /* obsolescent; will be withdrawn */ +# define YYSTYPE_IS_DECLARED 1 +# define YYSTYPE_IS_TRIVIAL 1 +#endif extern YYSTYPE yylval; + -- 2.39.5